@ardium-ui/ui 1.0.0 → 1.0.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 (269) hide show
  1. package/esm2022/lib/_internal/boolean-component.mjs +1 -1
  2. package/esm2022/lib/_internal/clear-button/clear-button.component.mjs +1 -1
  3. package/esm2022/lib/_internal/clear-button/clear-button.module.mjs +1 -1
  4. package/esm2022/lib/_internal/disablable-component.mjs +1 -1
  5. package/esm2022/lib/_internal/focusable-component.mjs +1 -1
  6. package/esm2022/lib/_internal/item-storages/dropdown-item-storage.mjs +1 -1
  7. package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +1 -1
  8. package/esm2022/lib/_internal/item-storages/simplest-item-storage.mjs +1 -1
  9. package/esm2022/lib/_internal/models/pagination.model.mjs +1 -1
  10. package/esm2022/lib/_internal/ngmodel-component.mjs +1 -1
  11. package/esm2022/lib/_internal/queue.mjs +1 -1
  12. package/esm2022/lib/_internal/selectable-list-component.mjs +1 -1
  13. package/esm2022/lib/badge/badge.directive.mjs +1 -1
  14. package/esm2022/lib/badge/badge.module.mjs +1 -1
  15. package/esm2022/lib/badge/badge.types.mjs +1 -1
  16. package/esm2022/lib/buttons/_button-base.mjs +1 -1
  17. package/esm2022/lib/buttons/button/button.component.mjs +1 -1
  18. package/esm2022/lib/buttons/button/button.module.mjs +1 -1
  19. package/esm2022/lib/buttons/fab/fab.component.mjs +1 -1
  20. package/esm2022/lib/buttons/fab/fab.module.mjs +1 -1
  21. package/esm2022/lib/buttons/general-button.types.mjs +1 -1
  22. package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +1 -1
  23. package/esm2022/lib/buttons/icon-button/icon-button.module.mjs +1 -1
  24. package/esm2022/lib/calendar/calendar.component.mjs +2 -5
  25. package/esm2022/lib/calendar/calendar.directives.mjs +1 -1
  26. package/esm2022/lib/calendar/calendar.helpers.mjs +1 -1
  27. package/esm2022/lib/calendar/calendar.module.mjs +1 -1
  28. package/esm2022/lib/calendar/calendar.types.mjs +1 -1
  29. package/esm2022/lib/card/card.children.mjs +1 -1
  30. package/esm2022/lib/card/card.component.mjs +1 -1
  31. package/esm2022/lib/card/card.module.mjs +1 -1
  32. package/esm2022/lib/card/card.types.mjs +1 -1
  33. package/esm2022/lib/checkbox/checkbox.component.mjs +1 -1
  34. package/esm2022/lib/checkbox/checkbox.module.mjs +1 -1
  35. package/esm2022/lib/checkbox/checkbox.types.mjs +1 -1
  36. package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +1 -1
  37. package/esm2022/lib/checkbox-list/checkbox-list.module.mjs +1 -1
  38. package/esm2022/lib/checkbox-list/checkbox-list.types.mjs +1 -1
  39. package/esm2022/lib/chip/chip.component.mjs +1 -1
  40. package/esm2022/lib/chip/chip.module.mjs +1 -1
  41. package/esm2022/lib/chip/deletable-chip/deletable-chip.component.mjs +1 -1
  42. package/esm2022/lib/chip/selectable-chip/selectable-chip.component.mjs +1 -1
  43. package/esm2022/lib/color/color-display/color-display.component.mjs +1 -1
  44. package/esm2022/lib/color/color-display/color-display.module.mjs +1 -1
  45. package/esm2022/lib/color/color-display/color-display.types.mjs +1 -1
  46. package/esm2022/lib/color/color-picker/color-picker.component.mjs +1 -1
  47. package/esm2022/lib/color/color-picker/color-picker.directives.mjs +1 -1
  48. package/esm2022/lib/color/color-picker/color-picker.module.mjs +1 -1
  49. package/esm2022/lib/color/color-picker/color-picker.types.mjs +1 -1
  50. package/esm2022/lib/dialog/dialog.component.mjs +1 -1
  51. package/esm2022/lib/dialog/dialog.directives.mjs +1 -1
  52. package/esm2022/lib/dialog/dialog.module.mjs +1 -1
  53. package/esm2022/lib/dialog/dialog.types.mjs +1 -1
  54. package/esm2022/lib/divider/divider.component.mjs +1 -1
  55. package/esm2022/lib/divider/divider.module.mjs +1 -1
  56. package/esm2022/lib/dropdown-panel/dropdown-panel.component.mjs +1 -1
  57. package/esm2022/lib/dropdown-panel/dropdown-panel.module.mjs +1 -1
  58. package/esm2022/lib/dropdown-panel/dropdown-panel.types.mjs +1 -1
  59. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +1 -1
  60. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.directives.mjs +1 -1
  61. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.module.mjs +1 -1
  62. package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +1 -1
  63. package/esm2022/lib/file-inputs/file-input/file-input.directives.mjs +1 -1
  64. package/esm2022/lib/file-inputs/file-input/file-input.module.mjs +1 -1
  65. package/esm2022/lib/file-inputs/file-input-base.mjs +1 -1
  66. package/esm2022/lib/file-inputs/file-input-types.mjs +1 -1
  67. package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +1 -1
  68. package/esm2022/lib/form-field-frame/form-field-frame.directives.mjs +1 -1
  69. package/esm2022/lib/form-field-frame/form-field-frame.module.mjs +1 -1
  70. package/esm2022/lib/icon/icon.component.mjs +1 -1
  71. package/esm2022/lib/icon/icon.module.mjs +1 -1
  72. package/esm2022/lib/icon/icon.pipe.mjs +1 -1
  73. package/esm2022/lib/inputs/color-input/color-input.component.mjs +1 -1
  74. package/esm2022/lib/inputs/color-input/color-input.directives.mjs +1 -1
  75. package/esm2022/lib/inputs/color-input/color-input.module.mjs +1 -1
  76. package/esm2022/lib/inputs/color-input/color-input.types.mjs +1 -1
  77. package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +1 -1
  78. package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +1 -1
  79. package/esm2022/lib/inputs/digit-input/digit-input.module.mjs +1 -1
  80. package/esm2022/lib/inputs/digit-input/digit-input.types.mjs +1 -1
  81. package/esm2022/lib/inputs/digit-input/digit-input.utils.mjs +1 -1
  82. package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +2 -3
  83. package/esm2022/lib/inputs/hex-input/hex-input.directives.mjs +1 -1
  84. package/esm2022/lib/inputs/hex-input/hex-input.module.mjs +1 -1
  85. package/esm2022/lib/inputs/hex-input.model.mjs +1 -1
  86. package/esm2022/lib/inputs/input/input.component.mjs +1 -1
  87. package/esm2022/lib/inputs/input/input.directives.mjs +1 -1
  88. package/esm2022/lib/inputs/input/input.module.mjs +1 -1
  89. package/esm2022/lib/inputs/input-transformers.mjs +1 -1
  90. package/esm2022/lib/inputs/input-types.mjs +1 -1
  91. package/esm2022/lib/inputs/input-utils.mjs +1 -1
  92. package/esm2022/lib/inputs/number-input/number-input.component.mjs +2 -3
  93. package/esm2022/lib/inputs/number-input/number-input.directives.mjs +1 -1
  94. package/esm2022/lib/inputs/number-input/number-input.module.mjs +1 -1
  95. package/esm2022/lib/inputs/password-input/password-input.component.mjs +2 -3
  96. package/esm2022/lib/inputs/password-input/password-input.directives.mjs +1 -1
  97. package/esm2022/lib/inputs/password-input/password-input.module.mjs +1 -1
  98. package/esm2022/lib/inputs/password-input/password-input.types.mjs +1 -1
  99. package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +2 -3
  100. package/esm2022/lib/inputs/simple-input/simple-input.directives.mjs +1 -1
  101. package/esm2022/lib/inputs/simple-input/simple-input.module.mjs +1 -1
  102. package/esm2022/lib/kbd/kbd.component.mjs +1 -1
  103. package/esm2022/lib/kbd/kbd.module.mjs +1 -1
  104. package/esm2022/lib/kbd/kbd.pipe.mjs +1 -1
  105. package/esm2022/lib/kbd-shortcut/kbd-shortcut.component.mjs +1 -1
  106. package/esm2022/lib/kbd-shortcut/kbd-shortcut.module.mjs +1 -1
  107. package/esm2022/lib/modal/modal.component.mjs +1 -1
  108. package/esm2022/lib/modal/modal.module.mjs +1 -1
  109. package/esm2022/lib/option/option.component.mjs +1 -1
  110. package/esm2022/lib/option/option.module.mjs +1 -1
  111. package/esm2022/lib/progress-bar/progress-bar.component.mjs +1 -1
  112. package/esm2022/lib/progress-bar/progress-bar.directive.mjs +1 -1
  113. package/esm2022/lib/progress-bar/progress-bar.module.mjs +1 -1
  114. package/esm2022/lib/progress-bar/progress-bar.types.mjs +1 -1
  115. package/esm2022/lib/progress-circle/progress-circle.component.mjs +1 -1
  116. package/esm2022/lib/progress-circle/progress-circle.directive.mjs +1 -1
  117. package/esm2022/lib/progress-circle/progress-circle.module.mjs +1 -1
  118. package/esm2022/lib/progress-circle/progress-circle.types.mjs +1 -1
  119. package/esm2022/lib/radio/radio/radio.component.mjs +1 -1
  120. package/esm2022/lib/radio/radio-group.component.mjs +1 -1
  121. package/esm2022/lib/radio/radio.module.mjs +1 -1
  122. package/esm2022/lib/search-functions.mjs +1 -1
  123. package/esm2022/lib/segment/segment.component.mjs +1 -1
  124. package/esm2022/lib/segment/segment.directives.mjs +1 -1
  125. package/esm2022/lib/segment/segment.module.mjs +1 -1
  126. package/esm2022/lib/segment/segment.types.mjs +1 -1
  127. package/esm2022/lib/select/select.component.mjs +2 -4
  128. package/esm2022/lib/select/select.directive.mjs +1 -1
  129. package/esm2022/lib/select/select.module.mjs +1 -1
  130. package/esm2022/lib/select/select.types.mjs +1 -1
  131. package/esm2022/lib/slide-toggle/slide-toggle.component.mjs +1 -1
  132. package/esm2022/lib/slide-toggle/slide-toggle.module.mjs +1 -1
  133. package/esm2022/lib/slider/abstract-slider.mjs +1 -1
  134. package/esm2022/lib/slider/range-slider/range-slider.component.mjs +1 -1
  135. package/esm2022/lib/slider/range-slider/range-slider.module.mjs +1 -1
  136. package/esm2022/lib/slider/slider.component.mjs +1 -1
  137. package/esm2022/lib/slider/slider.directive.mjs +1 -1
  138. package/esm2022/lib/slider/slider.module.mjs +1 -1
  139. package/esm2022/lib/slider/slider.types.mjs +1 -1
  140. package/esm2022/lib/snackbar/snackbar-ref.mjs +1 -1
  141. package/esm2022/lib/snackbar/snackbar.component.mjs +1 -1
  142. package/esm2022/lib/snackbar/snackbar.service.mjs +1 -1
  143. package/esm2022/lib/snackbar/snackbar.token.mjs +1 -1
  144. package/esm2022/lib/snackbar/snackbar.types.mjs +1 -1
  145. package/esm2022/lib/spinner/spinner.component.mjs +1 -1
  146. package/esm2022/lib/spinner/spinner.module.mjs +1 -1
  147. package/esm2022/lib/star/star-button/star-button.component.mjs +1 -1
  148. package/esm2022/lib/star/star-button/star-button.module.mjs +1 -1
  149. package/esm2022/lib/star/star-display/star-display.component.mjs +1 -1
  150. package/esm2022/lib/star/star-display/star-display.module.mjs +1 -1
  151. package/esm2022/lib/star/star-input/star-input.component.mjs +1 -1
  152. package/esm2022/lib/star/star-input/star-input.module.mjs +1 -1
  153. package/esm2022/lib/star/star.component.mjs +1 -1
  154. package/esm2022/lib/star/star.module.mjs +1 -1
  155. package/esm2022/lib/star/star.types.mjs +1 -1
  156. package/esm2022/lib/statebox/statebox.component.mjs +1 -1
  157. package/esm2022/lib/statebox/statebox.module.mjs +1 -1
  158. package/esm2022/lib/statebox/statebox.types.mjs +1 -1
  159. package/esm2022/lib/table/table-item-storage.mjs +1 -1
  160. package/esm2022/lib/table/table.component.mjs +2 -2
  161. package/esm2022/lib/table/table.directives.mjs +1 -1
  162. package/esm2022/lib/table/table.module.mjs +1 -1
  163. package/esm2022/lib/table/table.types.mjs +1 -1
  164. package/esm2022/lib/table/utils.mjs +1 -1
  165. package/esm2022/lib/table-from-csv/table-from-csv.component.mjs +1 -1
  166. package/esm2022/lib/table-from-csv/table-from-csv.module.mjs +1 -1
  167. package/esm2022/lib/table-pagination/table-pagination.component.mjs +1 -1
  168. package/esm2022/lib/table-pagination/table-pagination.module.mjs +1 -1
  169. package/esm2022/lib/table-pagination/table-pagination.types.mjs +1 -1
  170. package/esm2022/lib/types/alignment.types.mjs +1 -1
  171. package/esm2022/lib/types/colors.types.mjs +1 -1
  172. package/esm2022/lib/types/item-storage.types.mjs +1 -1
  173. package/esm2022/lib/types/theming.types.mjs +1 -1
  174. package/esm2022/lib/types/utility.types.mjs +1 -1
  175. package/fesm2022/ardium-ui-ui.mjs +7 -16
  176. package/fesm2022/ardium-ui-ui.mjs.map +1 -1
  177. package/lib/color/color-picker/color-picker.component.d.ts +12 -12
  178. package/lib/inputs/color-input/color-input.component.d.ts +24 -24
  179. package/package.json +6 -2
  180. package/prebuilt-themes/default/badge.css.map +1 -1
  181. package/prebuilt-themes/default/buttons/button.css.map +1 -1
  182. package/prebuilt-themes/default/buttons/fab.css.map +1 -1
  183. package/prebuilt-themes/default/buttons/icon-button.css.map +1 -1
  184. package/prebuilt-themes/default/calendar.css.map +1 -1
  185. package/prebuilt-themes/default/card.css.map +1 -1
  186. package/prebuilt-themes/default/checkbox-list.css.map +1 -1
  187. package/prebuilt-themes/default/checkbox.css.map +1 -1
  188. package/prebuilt-themes/default/chips.css.map +1 -1
  189. package/prebuilt-themes/default/color-display.css.map +1 -1
  190. package/prebuilt-themes/default/color-picker.css.map +1 -1
  191. package/prebuilt-themes/default/core.css.map +1 -1
  192. package/prebuilt-themes/default/dialog.css.map +1 -1
  193. package/prebuilt-themes/default/divider.css.map +1 -1
  194. package/prebuilt-themes/default/dropdown-panel.css.map +1 -1
  195. package/prebuilt-themes/default/file-drop-area.css.map +1 -1
  196. package/prebuilt-themes/default/form-field-frame.css.map +1 -1
  197. package/prebuilt-themes/default/inputs/color-input.css.map +1 -1
  198. package/prebuilt-themes/default/inputs/digit-input.css.map +1 -1
  199. package/prebuilt-themes/default/inputs/file-input.css.map +1 -1
  200. package/prebuilt-themes/default/inputs/hex-input.css.map +1 -1
  201. package/prebuilt-themes/default/inputs/input.css.map +1 -1
  202. package/prebuilt-themes/default/inputs/number-input.css.map +1 -1
  203. package/prebuilt-themes/default/inputs/password-input.css.map +1 -1
  204. package/prebuilt-themes/default/inputs/search-bar.css.map +1 -1
  205. package/prebuilt-themes/default/inputs/simple-input.css.map +1 -1
  206. package/prebuilt-themes/default/kbd-shortcut.css.map +1 -1
  207. package/prebuilt-themes/default/kbd.css.map +1 -1
  208. package/prebuilt-themes/default/modal.css.map +1 -1
  209. package/prebuilt-themes/default/progress-bar.css.map +1 -1
  210. package/prebuilt-themes/default/progress-circle.css.map +1 -1
  211. package/prebuilt-themes/default/radio.css.map +1 -1
  212. package/prebuilt-themes/default/segment.css.map +1 -1
  213. package/prebuilt-themes/default/select.css.map +1 -1
  214. package/prebuilt-themes/default/slide-toggle.css.map +1 -1
  215. package/prebuilt-themes/default/slider.css.map +1 -1
  216. package/prebuilt-themes/default/snackbar.css.map +1 -1
  217. package/prebuilt-themes/default/spinner.css.map +1 -1
  218. package/prebuilt-themes/default/stars.css.map +1 -1
  219. package/prebuilt-themes/default/statebox.css.map +1 -1
  220. package/prebuilt-themes/default/table-pagination.css.map +1 -1
  221. package/prebuilt-themes/default/table.css.map +1 -1
  222. package/themes/default/_clear-button.scss +59 -59
  223. package/themes/default/_coloring.scss +133 -133
  224. package/themes/default/_dropdown-arrow.scss +8 -8
  225. package/themes/default/_mixins.scss +50 -50
  226. package/themes/default/badge.scss +79 -79
  227. package/themes/default/buttons/_button-mixins.scss +112 -112
  228. package/themes/default/buttons/button.scss +47 -47
  229. package/themes/default/buttons/fab.scss +53 -53
  230. package/themes/default/buttons/icon-button.scss +40 -40
  231. package/themes/default/calendar.scss +154 -154
  232. package/themes/default/card.scss +90 -90
  233. package/themes/default/checkbox-list.scss +67 -67
  234. package/themes/default/checkbox.scss +87 -87
  235. package/themes/default/chips.scss +167 -167
  236. package/themes/default/color-display.scss +29 -29
  237. package/themes/default/color-picker.scss +97 -97
  238. package/themes/default/core.scss +75 -75
  239. package/themes/default/dialog.scss +8 -8
  240. package/themes/default/divider.scss +7 -7
  241. package/themes/default/dropdown-panel.scss +33 -33
  242. package/themes/default/file-drop-area.scss +139 -139
  243. package/themes/default/form-field-frame.scss +59 -59
  244. package/themes/default/inputs/_shared.scss +34 -34
  245. package/themes/default/inputs/color-input.scss +30 -30
  246. package/themes/default/inputs/digit-input.scss +37 -37
  247. package/themes/default/inputs/file-input.scss +62 -62
  248. package/themes/default/inputs/hex-input.scss +16 -16
  249. package/themes/default/inputs/input.scss +34 -34
  250. package/themes/default/inputs/number-input.scss +95 -95
  251. package/themes/default/inputs/password-input.scss +31 -31
  252. package/themes/default/inputs/search-bar.scss +9 -9
  253. package/themes/default/inputs/simple-input.scss +9 -9
  254. package/themes/default/kbd-shortcut.scss +8 -8
  255. package/themes/default/kbd.scss +15 -15
  256. package/themes/default/modal.scss +75 -75
  257. package/themes/default/progress-bar.scss +140 -140
  258. package/themes/default/progress-circle.scss +43 -43
  259. package/themes/default/radio.scss +87 -87
  260. package/themes/default/segment.scss +283 -283
  261. package/themes/default/select.scss +226 -226
  262. package/themes/default/slide-toggle.scss +121 -121
  263. package/themes/default/slider.scss +206 -206
  264. package/themes/default/snackbar.scss +40 -40
  265. package/themes/default/spinner.scss +12 -12
  266. package/themes/default/stars.scss +93 -93
  267. package/themes/default/statebox.scss +91 -91
  268. package/themes/default/table-pagination.scss +44 -44
  269. package/themes/default/table.scss +345 -345
@@ -87,10 +87,7 @@ export class ArdiumCalendarComponent extends _NgModelComponentBase {
87
87
  isDaySelected(day) {
88
88
  if (day instanceof Date)
89
89
  day = day.getDate();
90
- return (this.selected != null &&
91
- this.activeYear == this.selected.getFullYear() &&
92
- this.activeMonth == this.selected.getMonth() &&
93
- day == this.selected.getDate());
90
+ return (this.selected != null && this.activeYear == this.selected.getFullYear() && this.activeMonth == this.selected.getMonth() && day == this.selected.getDate());
94
91
  }
95
92
  isMonthSelected(month) {
96
93
  if (month instanceof Date)
@@ -979,4 +976,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
979
976
  type: ContentChild,
980
977
  args: [ArdDayTemplateDirective]
981
978
  }] } });
982
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBNEIsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4saUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFDSCxrQ0FBa0MsRUFDbEMsdUJBQXVCLEVBQ3ZCLGlDQUFpQyxFQUNqQyxvQ0FBb0MsRUFDcEMseUJBQXlCLEVBQ3pCLDJCQUEyQixFQUMzQixtQ0FBbUMsRUFDbkMsd0JBQXdCLEdBQzNCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFDSCxZQUFZLEdBVWYsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7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QkFHbEQsc0JBQXNCO3NCQURyQixZQUFZO3VCQUFDLGtDQUFrQztnQkFJaEQsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLDJCQUEyQjtnQkFJekMscUJBQXFCO3NCQURwQixZQUFZO3VCQUFDLGlDQUFpQztnQkFJL0MsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLHdCQUF3QjtnQkFHdEMsYUFBYTtzQkFEWixZQUFZO3VCQUFDLHlCQUF5QjtnQkFHdkMsV0FBVztzQkFEVixZQUFZO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRoaXNSZWNlaXZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCB7IE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xuaW1wb3J0IHsgcm91bmRUb011bHRpcGxlIH0gZnJvbSAnbW9yZS1yb3VuZGluZyc7XG5pbXBvcnQgeyBpc0RlZmluZWQsIGlzTnVsbCB9IGZyb20gJ3NpbXBsZS1ib29sJztcbmltcG9ydCB7IENvbXBvbmVudENvbG9yIH0gZnJvbSAnLi4vdHlwZXMvY29sb3JzLnR5cGVzJztcbmltcG9ydCB7IF9OZ01vZGVsQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uL19pbnRlcm5hbC9uZ21vZGVsLWNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIEFyZERheXNWaWV3SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgQXJkRGF5VGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgQXJkRmxvYXRpbmdNb250aFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIEFyZE1vbnRoc1ZpZXdIZWFkZXJUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBBcmRNb250aFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIEFyZFdlZWtkYXlUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBBcmRZZWFyc1ZpZXdIZWFkZXJUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBBcmRZZWFyVGVtcGxhdGVEaXJlY3RpdmUsXG59IGZyb20gJy4vY2FsZW5kYXIuZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBnZXRNb250aExheW91dCB9IGZyb20gJy4vY2FsZW5kYXIuaGVscGVycyc7XG5pbXBvcnQge1xuICAgIENhbGVuZGFyVmlldyxcbiAgICBDYWxlbmRhckRheUNvbnRleHQsXG4gICAgQ2FsZW5kYXJEYXlzVmlld0hlYWRlckNvbnRleHQsXG4gICAgQ2FsZW5kYXJGbG9hdGluZ01vbnRoQ29udGV4dCxcbiAgICBDYWxlbmRhck1vbnRoQ29udGV4dCxcbiAgICBDYWxlbmRhck1vbnRoc1ZpZXdIZWFkZXJDb250ZXh0LFxuICAgIENhbGVuZGFyV2Vla2RheUNvbnRleHQsXG4gICAgQ2FsZW5kYXJZZWFyQ29udGV4dCxcbiAgICBDYWxlbmRhclllYXJzVmlld0hlYWRlckNvbnRleHQsXG4gICAgRGF0ZVJhbmdlLFxufSBmcm9tICcuL2NhbGVuZGFyLnR5cGVzJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5mdW5jdGlvbiBpc0xlYXBZZWFyKHllYXI6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoeWVhciAlIDQgPT0gMCAmJiB5ZWFyICUgMTAwICE9IDApIHx8IHllYXIgJSA0MDAgPT0gMDtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcmQtY2FsZW5kYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFyZGl1bUNhbGVuZGFyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFyZGl1bUNhbGVuZGFyQ29tcG9uZW50IGV4dGVuZHMgX05nTW9kZWxDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91cGRhdGVDYWxlbmRhckFycmF5KCk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZVdlZWtkYXlBcnJheSgpO1xuICAgICAgICB0aGlzLl91cGRhdGVEaXNwbGF5ZWRZZWFyUmFuZ2VTdGFydCgpO1xuICAgIH1cbiAgICBwcml2YXRlIF93YXNTZWxlY3RlZENoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl93YXNTZWxlY3RlZENoZWNrZWQpIHJldHVybjtcbiAgICAgICAgdGhpcy5fd2FzU2VsZWN0ZWRDaGVja2VkID0gdHJ1ZTtcblxuICAgICAgICBpZiAoY2hhbmdlc1snc2VsZWN0ZWQnXSkge1xuICAgICAgICAgICAgY29uc3QgdiA9IHRoaXMuc2VsZWN0ZWQ7XG4gICAgICAgICAgICBpZiAoaXNOdWxsKHYpKSByZXR1cm47XG5cbiAgICAgICAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IG5ldyBEYXRlKHYuZ2V0RnVsbFllYXIoKSwgdi5nZXRNb250aCgpLCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vISBkZXRlcm1pbmluZyB0b2RheSBzdGF0ZVxuICAgIHRvZGF5RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgICBpc0RheVRvZGF5KGRheTogbnVtYmVyIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVZZWFyID09IHRoaXMudG9kYXlEYXRlLmdldEZ1bGxZZWFyKCkgJiYgdGhpcy5hY3RpdmVNb250aCA9PSB0aGlzLnRvZGF5RGF0ZS5nZXRNb250aCgpICYmIGRheSA9PSB0aGlzLnRvZGF5RGF0ZS5nZXREYXRlKCk7XG4gICAgfVxuICAgIGlzTW9udGhUb2RheShtb250aDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVllYXIgPT0gdGhpcy50b2RheURhdGUuZ2V0RnVsbFllYXIoKSAmJiBtb250aCA9PSB0aGlzLnRvZGF5RGF0ZS5nZXRNb250aCgpO1xuICAgIH1cbiAgICBpc1llYXJUb2RheSh5ZWFyOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHllYXIgPT0gdGhpcy50b2RheURhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICB9XG5cbiAgICAvLyEgZGV0ZXJtaW5pbmcgaWYgYW4gZW50cnkgaXMgc2VsZWN0ZWRcbiAgICBpc0RheVNlbGVjdGVkKGRheTogbnVtYmVyIHwgRGF0ZSB8IG51bGwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGRheSBpbnN0YW5jZW9mIERhdGUpIGRheSA9IGRheS5nZXREYXRlKCk7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkICE9IG51bGwgJiZcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlWWVhciA9PSB0aGlzLnNlbGVjdGVkLmdldEZ1bGxZZWFyKCkgJiZcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlTW9udGggPT0gdGhpcy5zZWxlY3RlZC5nZXRNb250aCgpICYmXG4gICAgICAgICAgICBkYXkgPT0gdGhpcy5zZWxlY3RlZC5nZXREYXRlKClcbiAgICAgICAgKTtcbiAgICB9XG4gICAgaXNNb250aFNlbGVjdGVkKG1vbnRoOiBudW1iZXIgfCBEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChtb250aCBpbnN0YW5jZW9mIERhdGUpIG1vbnRoID0gbW9udGguZ2V0TW9udGgoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQgIT0gbnVsbCAmJiB0aGlzLmFjdGl2ZVllYXIgPT0gdGhpcy5zZWxlY3RlZC5nZXRGdWxsWWVhcigpICYmIG1vbnRoID09IHRoaXMuc2VsZWN0ZWQuZ2V0TW9udGgoKTtcbiAgICB9XG4gICAgaXNZZWFyU2VsZWN0ZWQoeWVhcjogbnVtYmVyIHwgRGF0ZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoeWVhciBpbnN0YW5jZW9mIERhdGUpIHllYXIgPSB5ZWFyLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkICE9IG51bGwgJiYgeWVhciA9PSB0aGlzLnNlbGVjdGVkLmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuXG4gICAgLy8hIGNvbG9yICYgd3JhcHBlciBjbGFzc2VzXG4gICAgQElucHV0KCkgY29sb3I6IENvbXBvbmVudENvbG9yID0gQ29tcG9uZW50Q29sb3IuUHJpbWFyeTtcblxuICAgIGdldCBuZ0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtgYXJkLWNvbG9yLSR7dGhpcy5jb2xvcn1gLCB0aGlzLm5vaW50ZXJhY3QgPyAnYXJkLWNhbGVuZGFyLW5vaW50ZXJhY3QnIDogJycsIHRoaXMuc3RhdGljSGVpZ2h0ID8gJ2FyZC1jYWxlbmRhci1zdGF0aWMtaGVpZ2h0JyA6ICcnXS5qb2luKCcgJyk7XG4gICAgfVxuXG4gICAgLy8hIG9wZW4geWVhciAmIG1vbnRoIHNldHRlcnNcbiAgICAvL3BpY2sgYSB5ZWFyIHJhbmdlIHN0YXJ0IHNvIHRoYXQgdGhlIHRvZGF5IGRhdGUgaXMgYWx3YXlzIGluIHRoZSAzcmQgcm93XG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2RheVllYXJSYW5nZVN0YXJ0OiBudW1iZXIgPSB0aGlzLnRvZGF5RGF0ZS5nZXRGdWxsWWVhcigpIC0gKHRoaXMudG9kYXlEYXRlLmdldEZ1bGxZZWFyKCkgJSA0KSAtIDg7XG5cbiAgICBkaXNwbGF5ZWRZZWFyUmFuZ2VTdGFydDogbnVtYmVyID0gdGhpcy50b2RheVllYXJSYW5nZVN0YXJ0O1xuXG4gICAgcHJpdmF0ZSBfdXBkYXRlRGlzcGxheWVkWWVhclJhbmdlU3RhcnQoZm9yY2VkWWVhcj86IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoaXNEZWZpbmVkKGZvcmNlZFllYXIpKSB0aGlzLmRpc3BsYXllZFllYXJSYW5nZVN0YXJ0ID0gZm9yY2VkWWVhcjtcblxuICAgICAgICAvL2FkZCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBhY3RpdmUgeWVhciBhbmQgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZSBmb3IgdGhlIGN1cnJlbnQgeWVhclxuICAgICAgICAvL3JvdW5kZWQgdG8gYSBtdWx0aXBsZSBvZiAyNCwgdG93YXJkcyB0aGUgbnVtYmVyIHplcm9cbiAgICAgICAgLy90aGUgZGlmZmVyZW5jZSBtYXkgYmUgbmVnYXRpdmUsIGlmIHRoZSBhY3RpdmUgeWVhciBpcyBiZWZvcmUgdG9kYXlZZWFyUmFuZ2VTdGFydFxuICAgICAgICB0aGlzLmRpc3BsYXllZFllYXJSYW5nZVN0YXJ0ID0gdGhpcy50b2RheVllYXJSYW5nZVN0YXJ0ICsgcm91bmRUb011bHRpcGxlKHRoaXMuYWN0aXZlWWVhciAtIHRoaXMudG9kYXlZZWFyUmFuZ2VTdGFydCwgMjQsICd0b196ZXJvJyk7XG4gICAgfVxuXG4gICAgeWVhclJhbmdlQXJyYXlDYWNoZTogbnVtYmVyW10gfCBudWxsID0gbnVsbDtcbiAgICBnZXQgeWVhclJhbmdlQXJyYXkoKTogbnVtYmVyW10ge1xuICAgICAgICBpZiAoIXRoaXMueWVhclJhbmdlQXJyYXlDYWNoZSkge1xuICAgICAgICAgICAgbGV0IHllYXJSYW5nZVN0YXJ0ID0gdGhpcy5kaXNwbGF5ZWRZZWFyUmFuZ2VTdGFydDtcbiAgICAgICAgICAgIGNvbnN0IG5ld0FycmF5ID0gbmV3IEFycmF5KDI0KS5tYXAoKCkgPT4geWVhclJhbmdlU3RhcnQrKyk7XG4gICAgICAgICAgICB0aGlzLnllYXJSYW5nZUFycmF5Q2FjaGUgPSBuZXdBcnJheTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy55ZWFyUmFuZ2VBcnJheUNhY2hlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfYWN0aXZlRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKHRoaXMudG9kYXlEYXRlLmdldEZ1bGxZZWFyKCksIHRoaXMudG9kYXlEYXRlLmdldE1vbnRoKCksIHRoaXMudG9kYXlEYXRlLmdldERhdGUoKSk7XG4gICAgc2V0IGFjdGl2ZURhdGUodjogRGF0ZSB8IHN0cmluZyB8IG51bWJlcikge1xuICAgICAgICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUodik7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZVllYXIgIT0gbmV3RGF0ZS5nZXRGdWxsWWVhcigpKSB0aGlzLnllYXJSYW5nZUFycmF5Q2FjaGUgPSBudWxsO1xuICAgICAgICB0aGlzLl9hY3RpdmVEYXRlID0gbmV3RGF0ZTtcblxuICAgICAgICB0aGlzLl91cGRhdGVDYWxlbmRhckFycmF5KCk7XG4gICAgfVxuICAgIGdldCBhY3RpdmVEYXRlKCk6IERhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlRGF0ZTtcbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlWWVhcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIH1cbiAgICBASW5wdXQoKVxuICAgIHNldCBhY3RpdmVZZWFyKHY6IGFueSkge1xuICAgICAgICBjb25zdCB5ZWFyID0gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpKTtcbiAgICAgICAgdGhpcy5fYWN0aXZlRGF0ZS5zZXRGdWxsWWVhcih5ZWFyKTtcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gbmV3IERhdGUoeWVhciwgdGhpcy5hY3RpdmVNb250aCwgMSk7XG4gICAgICAgIHRoaXMueWVhclJhbmdlQXJyYXlDYWNoZSA9IG51bGw7XG5cbiAgICAgICAgdGhpcy5fdXBkYXRlQ2FsZW5kYXJBcnJheSgpO1xuICAgIH1cblxuICAgIGdldCBhY3RpdmVNb250aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlRGF0ZS5nZXRNb250aCgpO1xuICAgIH1cbiAgICBASW5wdXQoKVxuICAgIHNldCBhY3RpdmVNb250aCh2OiBhbnkpIHtcbiAgICAgICAgY29uc3QgbW9udGggPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCBuZXcgRGF0ZSgpLmdldE1vbnRoKCkpO1xuICAgICAgICBjb25zdCBvbGREYXRlWWVhciA9IHRoaXMuYWN0aXZlWWVhcjtcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyLCBtb250aCwgMSk7XG4gICAgICAgIGlmIChvbGREYXRlWWVhciAhPSB0aGlzLmFjdGl2ZVllYXIpIHRoaXMueWVhclJhbmdlQXJyYXlDYWNoZSA9IG51bGw7XG5cbiAgICAgICAgdGhpcy5fdXBkYXRlQ2FsZW5kYXJBcnJheSgpO1xuICAgIH1cbiAgICAvLyEgc2VsZWN0aW9uIGZ1bmN0aW9uc1xuICAgIHByb3RlY3RlZCBfc2VsZWN0ZWQ6IERhdGUgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBzZWxlY3RlZCh2OiBhbnkpIHtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKHYpO1xuICAgIH1cbiAgICBnZXQgc2VsZWN0ZWQoKTogRGF0ZSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2ID09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAvL3RyeSB0byBzZWUgaWYgaXQgaXMgYW4gYXJyYXkgb2YgbnVtYmVycyBzZXBhcmF0ZWQgYnkgYSBjb21tYVxuICAgICAgICAgICAgY29uc3QgdkFzQXJyYXkxID0gdi5zcGxpdCgnLCcpLm1hcCh2ID0+IE51bWJlcih2KSk7XG4gICAgICAgICAgICBpZiAodkFzQXJyYXkxLmxlbmd0aCA+PSAxICYmIHZBc0FycmF5MS5sZW5ndGggPD0gMyAmJiB2QXNBcnJheTEuZXZlcnkodiA9PiAhaXNOYU4odikpKSB7XG4gICAgICAgICAgICAgICAgdiA9IG5ldyBEYXRlKHZBc0FycmF5MVswXSwgdkFzQXJyYXkxWzFdID8/IDAsIHZBc0FycmF5MVsyXSA/PyAxKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy90cnkgdG8gc2VlIGlmIGl0IGlzIGFuIGFycmF5IG9mIG51bWJlcnMgc2VwYXJhdGVkIGJ5IHNvbWUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGNvbnN0IHZBc0FycmF5MiA9IHYuc3BsaXQoL1xccy8pLm1hcCh2ID0+IE51bWJlcih2KSk7XG4gICAgICAgICAgICAgICAgaWYgKHZBc0FycmF5Mi5sZW5ndGggPj0gMSAmJiB2QXNBcnJheTIubGVuZ3RoIDw9IDMgJiYgdkFzQXJyYXkyLmV2ZXJ5KHYgPT4gIWlzTmFOKHYpKSkge1xuICAgICAgICAgICAgICAgICAgICB2ID0gbmV3IERhdGUodkFzQXJyYXkyWzBdLCB2QXNBcnJheTJbMV0gPz8gMCwgdkFzQXJyYXkyWzJdID8/IDEpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHYgPSBuZXcgRGF0ZSh2KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy9pcyBhIERhdGUgb2JqZWN0ICYmIGRvZXMgbm90IGNvbnRhaW4gYW4gZXJyb3JcbiAgICAgICAgaWYgKHYgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTih2LnZhbHVlT2YoKSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkID0gdjtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodiA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IG51bGw7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS53YXJuKGBDb3VsZCBub3QgcGFyc2UgW3NlbGVjdGVkXSB2YWx1ZSBvbiA8YXJkLWNhbGVuZGFyPiwgYXMgaXQgaXMgbm90IGEgdmFsaWQgdmFsdWUuIFByb3ZpZGVkIHZhbHVlOiBcIiR7dn1cImApO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8hIG91dHB1dCBldmVudHNcbiAgICBAT3V0cHV0KCkgeWVhclNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gICAgQE91dHB1dCgpIG1vbnRoU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIEBPdXRwdXQoKSBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+KCk7XG4gICAgQE91dHB1dCgpIGFjdGl2ZVllYXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICBAT3V0cHV0KCkgYWN0aXZlTW9udGhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIEBPdXRwdXQoKSB2aWV3Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDYWxlbmRhclZpZXc+KCk7XG5cbiAgICBAT3V0cHV0KCdjaGFuZ2UnKSBjaGFuZ2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+KCk7XG5cbiAgICBwcm90ZWN0ZWQgX2VtaXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHYgPSB0aGlzLnNlbGVjdGVkO1xuICAgICAgICB0aGlzLl9vbkNoYW5nZVJlZ2lzdGVyZWQ/Lih2KTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHYpO1xuICAgICAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQodik7XG4gICAgfVxuXG4gICAgLy8hIGNhbGVuZGFyIGVudHJ5IGhvdmVyICYgY2xpY2tcbiAgICBwcml2YXRlIF9oaWdobGlnaHRlZERheTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgZ2V0IGhpZ2hsaWdodGVkRGF5KCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlnaGxpZ2h0ZWREYXk7XG4gICAgfVxuICAgIHNldCBoaWdobGlnaHRlZERheSh2OiBudW1iZXIgfCBudWxsKSB7XG4gICAgICAgIGlmIChpc051bGwodikpIHtcbiAgICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodGVkRGF5ID0gdjtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyLCB0aGlzLmFjdGl2ZU1vbnRoLCB2KTtcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0ZWREYXkgPSBkYXRlLmdldERhdGUoKTtcbiAgICB9XG5cbiAgICBzZXRIaWdobGlnaHRlZERheUFkanVzdERhdGUoZGF5OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWdobGlnaHRlZERheSA9IGRheTtcblxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyLCB0aGlzLmFjdGl2ZU1vbnRoLCBkYXkpO1xuXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZVllYXIgIT0gZGF0ZS5nZXRGdWxsWWVhcigpKSB0aGlzLmFjdGl2ZVllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlTW9udGggIT0gZGF0ZS5nZXRNb250aCgpKSB0aGlzLmFjdGl2ZU1vbnRoID0gZGF0ZS5nZXRNb250aCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2hpZ2hsaWdodGVkTW9udGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIGdldCBoaWdobGlnaHRlZE1vbnRoKCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlnaGxpZ2h0ZWRNb250aDtcbiAgICB9XG4gICAgc2V0IGhpZ2hsaWdodGVkTW9udGgodjogbnVtYmVyIHwgbnVsbCkge1xuICAgICAgICBpZiAoaXNOdWxsKHYpKSB7XG4gICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRlZE1vbnRoID0gdjtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyLCB2LCAxKTtcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0ZWRNb250aCA9IGRhdGUuZ2V0TW9udGgoKTtcbiAgICB9XG5cbiAgICBzZXRIaWdobGlnaHRlZE1vbnRoQWRqdXN0RGF0ZShtb250aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRNb250aCA9IG1vbnRoO1xuXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLmFjdGl2ZVllYXIsIG1vbnRoLCAxKTtcblxuICAgICAgICBpZiAodGhpcy5hY3RpdmVZZWFyICE9IGRhdGUuZ2V0RnVsbFllYXIoKSkgdGhpcy5hY3RpdmVZZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2hpZ2hsaWdodGVkWWVhcjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgZ2V0IGhpZ2hsaWdodGVkWWVhcigpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZ2hsaWdodGVkWWVhcjtcbiAgICB9XG4gICAgc2V0IGhpZ2hsaWdodGVkWWVhcih2OiBudW1iZXIgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX2hpZ2hsaWdodGVkWWVhciA9IHY7XG4gICAgfVxuXG4gICAgc2V0SGlnaGxpZ2h0ZWRZZWFyQWRqdXN0UGFnZSh5ZWFyOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWdobGlnaHRlZFllYXIgPSB5ZWFyO1xuXG4gICAgICAgIGlmICh5ZWFyIDwgdGhpcy5kaXNwbGF5ZWRZZWFyUmFuZ2VTdGFydCB8fCB5ZWFyID49IHRoaXMuZGlzcGxheWVkWWVhclJhbmdlU3RhcnQgKyAyNCkge1xuICAgICAgICAgICAgLy9hZGQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgaGlnaGxpZ2h0ZWQgeWVhciBhbmQgdGhlIGRpc3BsYXllZCByYW5nZSBzdGFydCB5ZWFyXG4gICAgICAgICAgICAvL3JvdW5kZWQgdG8gYSBtdWx0aXBsZSBvZiAyNCwgYXdheSBmcm9tIHRoZSBudW1iZXIgemVyb1xuICAgICAgICAgICAgLy90aGUgZGlmZmVyZW5jZSBtYXkgYmUgbmVnYXRpdmUsIGlmIHRoZSBmaXJzdCBpZiBjb25kaXRpb24gaXMgbWV0XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXllZFllYXJSYW5nZVN0YXJ0ICs9IHJvdW5kVG9NdWx0aXBsZSh5ZWFyIC0gdGhpcy5kaXNwbGF5ZWRZZWFyUmFuZ2VTdGFydCwgMjQsICdmcm9tX3plcm8nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBjdXJyZW50QXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLmFjdGl2ZVllYXIsIHRoaXMuYWN0aXZlTW9udGgsIHRoaXMuaGlnaGxpZ2h0ZWREYXkgPz8gMSkudG9Mb2NhbGVEYXRlU3RyaW5nKHVuZGVmaW5lZCwge1xuICAgICAgICAgICAgd2Vla2RheTogJ2xvbmcnLFxuICAgICAgICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgICAgICAgbW9udGg6ICdsb25nJyxcbiAgICAgICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkNhbGVuZGFyRGF5TW91c2VvdmVyKGRheTogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBpZiAoZGF5ID09IG51bGwpIHJldHVybjtcbiAgICAgICAgaWYgKHRoaXMuX2lzVXNpbmdLZXlib2FyZCkgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWREYXkgPSBkYXk7XG4gICAgfVxuICAgIG9uQ2FsZW5kYXJNb250aE1vdXNlb3Zlcihtb250aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pc1VzaW5nS2V5Ym9hcmQpIHJldHVybjtcblxuICAgICAgICB0aGlzLmhpZ2hsaWdodGVkTW9udGggPSBtb250aDtcbiAgICB9XG4gICAgb25DYWxlbmRhclllYXJNb3VzZW92ZXIoeWVhcjogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pc1VzaW5nS2V5Ym9hcmQpIHJldHVybjtcblxuICAgICAgICB0aGlzLmhpZ2hsaWdodGVkWWVhciA9IHllYXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaXNVc2luZ0tleWJvYXJkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2Vtb3ZlJylcbiAgICBvbkRvY3VtZW50TW91c2Vtb3ZlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2lzVXNpbmdLZXlib2FyZCkgdGhpcy5oaWdobGlnaHRlZERheSA9IG51bGw7XG5cbiAgICAgICAgdGhpcy5faXNVc2luZ0tleWJvYXJkID0gZmFsc2U7XG4gICAgfVxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nKVxuICAgIG9uRG9jdW1lbnRLZXlkb3duKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc1VzaW5nS2V5Ym9hcmQgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uQ2FsZW5kYXJEYXlDbGljayhkYXk6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRheSA9PSBudWxsKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5zZWxlY3REYXkoZGF5KTtcblxuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWREYXkgPSBkYXk7XG4gICAgfVxuICAgIG9uQ2FsZW5kYXJNb250aENsaWNrKG1vbnRoOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RNb250aChtb250aCk7XG4gICAgfVxuICAgIG9uQ2FsZW5kYXJZZWFyQ2xpY2soeWVhcjogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0WWVhcih5ZWFyKTtcbiAgICB9XG5cbiAgICBvbkRheUdyaWRGb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWdobGlnaHRlZERheSA9IDE7XG4gICAgfVxuICAgIG9uRGF5R3JpZEJsdXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWREYXkgPSBudWxsO1xuICAgIH1cbiAgICBvbkRheUdyaWRDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWdobGlnaHRlZERheSA/Pz0gMTtcbiAgICB9XG5cbiAgICBvbk1vbnRoR3JpZEZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpZ2hsaWdodGVkTW9udGggPSAwO1xuICAgIH1cbiAgICBvbk1vbnRoR3JpZEJsdXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRNb250aCA9IG51bGw7XG4gICAgfVxuICAgIG9uTW9udGhHcmlkQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRNb250aCA/Pz0gMDtcbiAgICB9XG5cbiAgICBvblllYXJHcmlkRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRZZWFyID0gdGhpcy5kaXNwbGF5ZWRZZWFyUmFuZ2VTdGFydDtcbiAgICB9XG4gICAgb25ZZWFyR3JpZEJsdXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRZZWFyID0gbnVsbDtcbiAgICB9XG4gICAgb25ZZWFyR3JpZENsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpZ2hsaWdodGVkWWVhciA/Pz0gdGhpcy5kaXNwbGF5ZWRZZWFyUmFuZ2VTdGFydDtcbiAgICB9XG5cbiAgICAvLyEgbWFpbiBncmlkIGtleWJvYXJkIGNvbnRyb2xzXG4gICAgb25NYWluR3JpZEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoIChldmVudC5jb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdTcGFjZSc6XG4gICAgICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgICAgICAgdGhpcy5fb25FbnRlclByZXNzKGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgICAgIHRoaXMuX29uQXJyb3dVcFByZXNzKGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICAgICAgdGhpcy5fb25BcnJvd0Rvd25QcmVzcyhldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICAgICAgICAgIHRoaXMuX29uQXJyb3dMZWZ0UHJlc3MoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5fb25BcnJvd1JpZ2h0UHJlc3MoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5fb25Ib21lUHJlc3MoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgICAgICAgICB0aGlzLl9vbkVuZFByZXNzKGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1BhZ2VVcCc6XG4gICAgICAgICAgICAgICAgdGhpcy5fb25QYWdlVXBQcmVzcyhldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdQYWdlRG93bic6XG4gICAgICAgICAgICAgICAgdGhpcy5fb25QYWdlRG93blByZXNzKGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9zZWxlY3QgY3VycmVudGx5IHNlbGVjdGVkIGVudHJ5XG4gICAgcHJpdmF0ZSBfb25FbnRlclByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgdGhpcy5zZWxlY3RDdXJyZW50bHlIaWdobGlnaHRlZCgpO1xuICAgIH1cbiAgICAvL2hpZ2hsaWdodCB0aGUgZW50cnkgb25lIGxpbmUgYWJvdmVcbiAgICBwcml2YXRlIF9vbkFycm93VXBQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBzd2l0Y2ggKHRoaXMuYWN0aXZlVmlldykge1xuICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuRGF5czpcbiAgICAgICAgICAgICAgICB0aGlzLmhpZ2hsaWdodFByZXZpb3VzRGF5KDcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhzOlxuICAgICAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0UHJldmlvdXNNb250aCgzKTsgLy8zIG1vbnRocyBwZXIgbGluZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuWWVhcnM6XG4gICAgICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRQcmV2aW91c1llYXIoNCk7IC8vNCB5ZWFycyBwZXIgbGluZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vaGlnaGxpZ2h0IHRoZSBlbnRyeSBvbmUgbGluZSBiZWxvd1xuICAgIHByaXZhdGUgX29uQXJyb3dEb3duUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc3dpdGNoICh0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LkRheXM6XG4gICAgICAgICAgICAgICAgdGhpcy5oaWdobGlnaHROZXh0RGF5KDcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhzOlxuICAgICAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0TmV4dE1vbnRoKDMpOyAvLzMgbW9udGhzIHBlciBsaW5lXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5ZZWFyczpcbiAgICAgICAgICAgICAgICB0aGlzLmhpZ2hsaWdodE5leHRZZWFyKDQpOyAvLzQgeWVhcnMgcGVyIGxpbmVcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL2hpZ2hsaWdodCBwcmV2aW91cyBlbnRyeVxuICAgIHByaXZhdGUgX29uQXJyb3dMZWZ0UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc3dpdGNoICh0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LkRheXM6XG4gICAgICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRQcmV2aW91c0RheSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhzOlxuICAgICAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0UHJldmlvdXNNb250aCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuWWVhcnM6XG4gICAgICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRQcmV2aW91c1llYXIoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL2hpZ2hsaWdodCBuZXh0IGVudHJ5XG4gICAgcHJpdmF0ZSBfb25BcnJvd1JpZ2h0UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc3dpdGNoICh0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LkRheXM6XG4gICAgICAgICAgICAgICAgdGhpcy5oaWdobGlnaHROZXh0RGF5KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5Nb250aHM6XG4gICAgICAgICAgICAgICAgdGhpcy5oaWdobGlnaHROZXh0TW9udGgoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LlllYXJzOlxuICAgICAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0TmV4dFllYXIoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL2hpZ2hsaWdodCBmaXJzdCBlbnRyeSBvbiB0aGUgcGFnZVxuICAgIHByaXZhdGUgX29uSG9tZVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5EYXlzOlxuICAgICAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0Rmlyc3REYXkoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3Lk1vbnRoczpcbiAgICAgICAgICAgICAgICB0aGlzLmhpZ2hsaWdodEZpcnN0TW9udGgoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LlllYXJzOlxuICAgICAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0Rmlyc3RZZWFyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9oaWdobGlnaHQgbGFzdCBlbnRyeSBvbiB0aGUgcGFnZVxuICAgIHByaXZhdGUgX29uRW5kUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc3dpdGNoICh0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LkRheXM6XG4gICAgICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRMYXN0RGF5KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5Nb250aHM6XG4gICAgICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRMYXN0TW9udGgoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LlllYXJzOlxuICAgICAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0TGFzdFllYXIoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL2Fsb25lOiBoaWdobGlnaHQgc2FtZSBlbnRyeSBvbiB0aGUgcHJldmlvdXMgcGFnZVxuICAgIC8vd2l0aCBhbHQ6IGhpZ2hsaWdodCBzYW1lIGVudHJ5IG11bHRpcGxlIHBhZ2VzIGJlZm9yZSAoZGF5cyB2aWV3OiAxMiBwYWdlcywgbW9udGhzIHZpZXc6IDEwIHBhZ2VzLCB5ZWFycyB2aWV3OiA1IHBhZ2VzKVxuICAgIHByaXZhdGUgX29uUGFnZVVwUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc3dpdGNoICh0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LkRheXM6XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmFsdEtleSkgdGhpcy5oaWdobGlnaHRTYW1lRGF5UHJldmlvdXNZZWFyKCk7XG4gICAgICAgICAgICAgICAgZWxzZSB0aGlzLmhpZ2hsaWdodFNhbWVEYXlQcmV2aW91c01vbnRoKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5Nb250aHM6XG4gICAgICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRTYW1lTW9udGhQcmV2aW91c1llYXIoZXZlbnQuYWx0S2V5KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LlllYXJzOlxuICAgICAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0U2FtZVllYXJQcmV2aW91c1BhZ2UoZXZlbnQuYWx0S2V5KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL2Fsb25lOiBoaWdobGlnaHQgc2FtZSBlbnRyeSBvbiB0aGUgbmV4dCBwYWdlXG4gICAgLy93aXRoIGFsdDogaGlnaGxpZ2h0IHNhbWUgZW50cnkgbXVsdGlwbGUgcGFnZXMgYWZ0ZXIgKGRheXMgdmlldzogMTIgcGFnZXMsIG1vbnRocyB2aWV3OiAxMCBwYWdlcywgeWVhcnMgdmlldzogNSBwYWdlcylcbiAgICBwcml2YXRlIF9vblBhZ2VEb3duUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc3dpdGNoICh0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LkRheXM6XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmFsdEtleSkgdGhpcy5oaWdobGlnaHRTYW1lRGF5TmV4dFllYXIoKTtcbiAgICAgICAgICAgICAgICBlbHNlIHRoaXMuaGlnaGxpZ2h0U2FtZURheU5leHRNb250aCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhzOlxuICAgICAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0U2FtZU1vbnRoTmV4dFllYXIoZXZlbnQuYWx0S2V5KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LlllYXJzOlxuICAgICAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0U2FtZVllYXJOZXh0UGFnZShldmVudC5hbHRLZXkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vISBtYW5pcHVsYXRpb24gbWV0aG9kc1xuICAgIC8vc2VsZWN0aW5nXG4gICAgc2VsZWN0RGF5KGRheTogbnVtYmVyIHwgRGF0ZSB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEYXlTZWxlY3RlZChkYXkpKSByZXR1cm47XG4gICAgICAgIGlmIChpc051bGwoZGF5KSkge1xuICAgICAgICAgICAgaWYgKCFpc0RlZmluZWQodGhpcy5zZWxlY3RlZCkpIHJldHVybjtcblxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGF5IGluc3RhbmNlb2YgRGF0ZSkgZGF5ID0gZGF5LmdldERhdGUoKTtcblxuICAgICAgICB0aGlzLnNlbGVjdGVkID0gbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyLCB0aGlzLmFjdGl2ZU1vbnRoLCBkYXkpO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XG4gICAgfVxuICAgIHNlbGVjdE1vbnRoKG1vbnRoOiBudW1iZXIgfCBEYXRlIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBpZiAoaXNOdWxsKG1vbnRoKSkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVNb250aCA9IG51bGw7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1vbnRoIGluc3RhbmNlb2YgRGF0ZSkgbW9udGggPSBtb250aC5nZXRNb250aCgpO1xuXG4gICAgICAgIHRoaXMuYWN0aXZlTW9udGggPSBtb250aDtcblxuICAgICAgICB0aGlzLmFjdGl2ZU1vbnRoQ2hhbmdlLmVtaXQobW9udGgpO1xuICAgICAgICB0aGlzLm1vbnRoU2VsZWN0ZWQuZW1pdChtb250aCk7XG5cbiAgICAgICAgdGhpcy5vcGVuRGF5c1ZpZXcoKTtcbiAgICB9XG4gICAgc2VsZWN0WWVhcih5ZWFyOiBudW1iZXIgfCBEYXRlIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBpZiAoaXNOdWxsKHllYXIpKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVllYXIgPSBudWxsO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh5ZWFyIGluc3RhbmNlb2YgRGF0ZSkgeWVhciA9IHllYXIuZ2V0RnVsbFllYXIoKTtcblxuICAgICAgICB0aGlzLmFjdGl2ZVllYXIgPSB5ZWFyO1xuXG4gICAgICAgIHRoaXMuYWN0aXZlWWVhckNoYW5nZS5lbWl0KHllYXIpO1xuICAgICAgICB0aGlzLnllYXJTZWxlY3RlZC5lbWl0KHllYXIpO1xuXG4gICAgICAgIHRoaXMub3Blbk1vbnRoc1ZpZXcoKTtcbiAgICB9XG4gICAgc2VsZWN0Q3VycmVudGx5SGlnaGxpZ2h0ZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNEZWZpbmVkKHRoaXMuaGlnaGxpZ2h0ZWREYXkpKSByZXR1cm47XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LkRheXM6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3REYXkodGhpcy5oaWdobGlnaHRlZERheSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhzOlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0TW9udGgodGhpcy5oaWdobGlnaHRlZE1vbnRoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5ZZWFyczpcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdFllYXIodGhpcy5oaWdobGlnaHRlZFllYXIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9hY3RpdmUgbW9udGhzL3llYXJzXG4gICAgY2hhbmdlTW9udGgob2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2xkeWVhciA9IHRoaXMuYWN0aXZlWWVhcjtcbiAgICAgICAgdGhpcy5hY3RpdmVNb250aCArPSBvZmZzZXQ7XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlWWVhciAhPSBvbGR5ZWFyKSB0aGlzLmFjdGl2ZVllYXJDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZVllYXIpO1xuICAgICAgICB0aGlzLmFjdGl2ZU1vbnRoQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVNb250aCk7XG4gICAgfVxuICAgIGNoYW5nZVllYXIob2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVZZWFyICs9IG9mZnNldDtcblxuICAgICAgICB0aGlzLmFjdGl2ZVllYXJDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZVllYXIpO1xuICAgIH1cbiAgICAvL2NoYW5naW5nIHllYXIgcGFnZVxuICAgIGNoYW5nZVllYXJzVmlld1BhZ2UocGFnZXM6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc3BsYXllZFllYXJSYW5nZVN0YXJ0ICs9IDI0ICogcGFnZXM7XG4gICAgfVxuICAgIC8vbmV4dC9wcmV2IGhpZ2hsaWdodGluZ1xuICAgIGhpZ2hsaWdodE5leHREYXkob2Zmc2V0OiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnREYXkgPSB0aGlzLmhpZ2hsaWdodGVkRGF5O1xuICAgICAgICBpZiAoIWlzRGVmaW5lZChjdXJyZW50RGF5KSkge1xuICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRlZERheSA9IDE7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRIaWdobGlnaHRlZERheUFkanVzdERhdGUoY3VycmVudERheSArIG9mZnNldCk7XG4gICAgfVxuICAgIGhpZ2hsaWdodFByZXZpb3VzRGF5KG9mZnNldDogbnVtYmVyID0gMSk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpZ2hsaWdodE5leHREYXkob2Zmc2V0ICogLTEpO1xuICAgIH1cbiAgICBoaWdobGlnaHROZXh0TW9udGgob2Zmc2V0OiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb250aCA9IHRoaXMuaGlnaGxpZ2h0ZWRNb250aDtcbiAgICAgICAgaWYgKCFpc0RlZmluZWQoY3VycmVudE1vbnRoKSkge1xuICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRlZE1vbnRoID0gMDtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldEhpZ2hsaWdodGVkTW9udGhBZGp1c3REYXRlKGN1cnJlbnRNb250aCArIG9mZnNldCk7XG4gICAgfVxuICAgIGhpZ2hsaWdodFByZXZpb3VzTW9udGgob2Zmc2V0OiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0TmV4dE1vbnRoKG9mZnNldCAqIC0xKTtcbiAgICB9XG4gICAgaGlnaGxpZ2h0TmV4dFllYXIob2Zmc2V0OiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRZZWFyID0gdGhpcy5oaWdobGlnaHRlZFllYXI7XG4gICAgICAgIGlmICghaXNEZWZpbmVkKGN1cnJlbnRZZWFyKSkge1xuICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRlZFllYXIgPSAwO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWRZZWFyQWRqdXN0UGFnZShjdXJyZW50WWVhciArIG9mZnNldCk7XG4gICAgfVxuICAgIGhpZ2hsaWdodFByZXZpb3VzWWVhcihvZmZzZXQ6IG51bWJlciA9IDEpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWdobGlnaHROZXh0WWVhcihvZmZzZXQgKiAtMSk7XG4gICAgfVxuICAgIC8vZmlyc3QvbGFzdCBoaWdobGlnaHRpbmdcbiAgICBoaWdobGlnaHRGaXJzdERheSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWdobGlnaHRlZERheSA9IDE7XG4gICAgfVxuICAgIGhpZ2hsaWdodExhc3REYXkoKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5hY3RpdmVNb250aCArIDEpIHtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgICBjYXNlIDEyOlxuICAgICAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWREYXkgPSAzMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgIGNhc2UgOTpcbiAgICAgICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRlZERheSA9IDMwO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgIGlmIChpc0xlYXBZZWFyKHRoaXMuYWN0aXZlWWVhcikpIHRoaXMuaGlnaGxpZ2h0ZWREYXkgPSAyOTtcbiAgICAgICAgICAgICAgICBlbHNlIHRoaXMuaGlnaGxpZ2h0ZWREYXkgPSAyODtcbiAgICAgICAgfVxuICAgIH1cbiAgICBoaWdobGlnaHRGaXJzdE1vbnRoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpZ2hsaWdodGVkTW9udGggPSAwO1xuICAgIH1cbiAgICBoaWdobGlnaHRMYXN0TW9udGgoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRNb250aCA9IDExO1xuICAgIH1cbiAgICBoaWdobGlnaHRGaXJzdFllYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRZZWFyID0gdGhpcy5kaXNwbGF5ZWRZZWFyUmFuZ2VTdGFydDtcbiAgICB9XG4gICAgaGlnaGxpZ2h0TGFzdFllYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRZZWFyID0gdGhpcy5kaXNwbGF5ZWRZZWFyUmFuZ2VTdGFydCArIDIzOyAvLzI0IHllYXJzIHBlciBwYWdlXG4gICAgfVxuICAgIC8vc2FtZSBkYXkgbmV4dC9wcmV2IG1vbnRoL3llYXJcbiAgICBoaWdobGlnaHRTYW1lRGF5TmV4dE1vbnRoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZU1vbnRoKys7XG5cbiAgICAgICAgdGhpcy5fZml4RGF0ZUFmdGVyTW9udGhDaGFuZ2UoKTtcbiAgICB9XG4gICAgaGlnaGxpZ2h0U2FtZURheVByZXZpb3VzTW9udGgoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlTW9udGgtLTtcblxuICAgICAgICB0aGlzLl9maXhEYXRlQWZ0ZXJNb250aENoYW5nZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9maXhEYXRlQWZ0ZXJNb250aENoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmFjdGl2ZU1vbnRoICsgMSkge1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgY2FzZSA4OlxuICAgICAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgICAgICAgLy9kbyBub3RoaW5nXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICBjYXNlIDExOlxuICAgICAgICAgICAgICAgIC8vb25seSBkbyBpZiBkYXkgaXMgMzFcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oaWdobGlnaHRlZERheSA9PSAzMSkgdGhpcy5oaWdobGlnaHRlZERheSA9IDMwO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAyOiB7XG4gICAgICAgICAgICAgICAgLy9za2lwIGlmIGJlbG93IDI5IG9yIG51bGxcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaGlnaGxpZ2h0ZWREYXkgfHwgdGhpcy5oaWdobGlnaHRlZERheSA8IDI5KSBicmVhaztcblxuICAgICAgICAgICAgICAgIGlmIChpc0xlYXBZZWFyKHRoaXMuYWN0aXZlWWVhcikpIHRoaXMuaGlnaGxpZ2h0ZWREYXkgPSAyOTtcbiAgICAgICAgICAgICAgICBlbHNlIHRoaXMuaGlnaGxpZ2h0ZWREYXkgPSAyODtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBoaWdobGlnaHRTYW1lRGF5TmV4dFllYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlWWVhcisrO1xuXG4gICAgICAgIHRoaXMuX2ZpeERhdGVBZnRlclllYXJDaGFuZ2UoKTtcbiAgICB9XG4gICAgaGlnaGxpZ2h0U2FtZURheVByZXZpb3VzWWVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVZZWFyLS07XG5cbiAgICAgICAgdGhpcy5fZml4RGF0ZUFmdGVyWWVhckNoYW5nZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9maXhEYXRlQWZ0ZXJZZWFyQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5oaWdobGlnaHRlZERheSAhPSAyOSkgcmV0dXJuOyAvL3NraXAgaWYgbm90IDI5dGggZGF5IGlzIHNlbGVjdGVkXG4gICAgICAgIGlmIChpc0xlYXBZZWFyKHRoaXMuYWN0aXZlWWVhcikpIHJldHVybjsgLy9za2lwIGlmIG5lYSB5ZWFyIGlzIGEgbGVhcCB5ZWFyXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZU1vbnRoICE9IDEpIHJldHVybjsgLy9za2lwIGlmIG5vdCBmZWJydWFyeVxuXG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWREYXkgPSAyODtcbiAgICB9XG4gICAgLy9zYW1lIG1vbnRoIG5leHQvcHJldiB5ZWFyXG4gICAgaGlnaGxpZ2h0U2FtZU1vbnRoTmV4dFllYXIobXVsdGlwbGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVZZWFyICs9IG11bHRpcGxlID8gMTAgOiAxO1xuICAgIH1cbiAgICBoaWdobGlnaHRTYW1lTW9udGhQcmV2aW91c1llYXIobXVsdGlwbGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVZZWFyIC09IG11bHRpcGxlID8gMTAgOiAxO1xuICAgIH1cbiAgICAvL3NhbWUgeWVhciBuZXh0L3ByZXYgcGFnZShzKVxuICAgIGhpZ2hsaWdodFNhbWVZZWFyTmV4dFBhZ2UobXVsdGlwbGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc0RlZmluZWQodGhpcy5oaWdobGlnaHRlZFllYXIpKSB7XG4gICAgICAgICAgICB0aGlzLmhpZ2hsaWdodGVkWWVhciA9IHRoaXMuZGlzcGxheWVkWWVhclJhbmdlU3RhcnQ7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldEhpZ2hsaWdodGVkWWVhckFkanVzdFBhZ2UodGhpcy5oaWdobGlnaHRlZFllYXIgKyAobXVsdGlwbGUgPyA2MCA6IDI0KSk7XG4gICAgfVxuICAgIGhpZ2hsaWdodFNhbWVZZWFyUHJldmlvdXNQYWdlKG11bHRpcGxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNEZWZpbmVkKHRoaXMuaGlnaGxpZ2h0ZWRZZWFyKSkge1xuICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRlZFllYXIgPSB0aGlzLmRpc3BsYXllZFllYXJSYW5nZVN0YXJ0O1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRIaWdobGlnaHRlZFllYXJBZGp1c3RQYWdlKHRoaXMuaGlnaGxpZ2h0ZWRZZWFyIC0gKG11bHRpcGxlID8gNjAgOiAyNCkpO1xuICAgIH1cblxuICAgIC8vISBzZXR0aW5nc1xuICAgIHByb3RlY3RlZCBfZmlyc3RXZWVrZGF5OiBudW1iZXIgPSAxO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGZpcnN0V2Vla2RheSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlyc3RXZWVrZGF5O1xuICAgIH1cbiAgICBzZXQgZmlyc3RXZWVrZGF5KHY6IGFueSkge1xuICAgICAgICB0aGlzLl9maXJzdFdlZWtkYXkgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCAxKSAlIDc7XG5cbiAgICAgICAgdGhpcy5fdXBkYXRlQ2FsZW5kYXJBcnJheSgpO1xuICAgICAgICB0aGlzLl91cGRhdGVXZWVrZGF5QXJyYXkoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX25vaW50ZXJhY3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBub2ludGVyYWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbm9pbnRlcmFjdCB8fCB0aGlzLmRpc2FibGVkO1xuICAgIH1cbiAgICBzZXQgbm9pbnRlcmFjdCh2OiBhbnkpIHtcbiAgICAgICAgdGhpcy5fbm9pbnRlcmFjdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3N0YXRpY0hlaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHN0YXRpY0hlaWdodCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXRpY0hlaWdodDtcbiAgICB9XG4gICAgc2V0IHN0YXRpY0hlaWdodCh2OiBhbnkpIHtcbiAgICAgICAgdGhpcy5fc3RhdGljSGVpZ2h0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpO1xuICAgIH1cblxuICAgIC8vISBjYWxlbmRhciBhcnJheVxuICAgIC8vZGF5cyB2aWV3IGFycmF5XG4gICAgY2FsZW5kYXJBcnJheSE6IChudW1iZXIgfCBudWxsKVtdW107XG5cbiAgICByZXNlcnZlVG9wUm93ITogYm9vbGVhbjtcblxuICAgIHByb3RlY3RlZCBfdXBkYXRlQ2FsZW5kYXJBcnJheSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVzdWx0T2JqID0gZ2V0TW9udGhMYXlvdXQodGhpcy5fYWN0aXZlRGF0ZSwgdGhpcy5maXJzdFdlZWtkYXkpO1xuXG4gICAgICAgIHRoaXMucmVzZXJ2ZVRvcFJvdyA9IHJlc3VsdE9iai5sZWFkaW5nU3BhY2VzIDwgMztcbiAgICAgICAgdGhpcy5jYWxlbmRhckFycmF5ID0gcmVzdWx0T2JqLmFycmF5O1xuICAgIH1cblxuICAgIC8vbW9udGhzIHZpZXcgYXJyYXlcbiAgICByZWFkb25seSBtb250aHNBcnJheTogbnVtYmVyW10gPSBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExXTtcblxuICAgIC8veWVhcnMgdmlldyBhcnJheVxuICAgIHByaXZhdGUgX3llYXJzQXJyYXlDYWNoZTogbnVtYmVyW10gfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF95ZWFyc0FycmF5Q2FjaGVTdGFydFllYXI6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIGdldFllYXJzQXJyYXkoKTogbnVtYmVyW10ge1xuICAgICAgICBjb25zdCB5ZWFyID0gdGhpcy5kaXNwbGF5ZWRZZWFyUmFuZ2VTdGFydDtcblxuICAgICAgICBpZiAodGhpcy5feWVhcnNBcnJheUNhY2hlU3RhcnRZZWFyID09IHllYXIgJiYgaXNEZWZpbmVkKHRoaXMuX3llYXJzQXJyYXlDYWNoZSkpIHJldHVybiB0aGlzLl95ZWFyc0FycmF5Q2FjaGU7XG5cbiAgICAgICAgY29uc3QgbmV3QXJyYXk6IG51bWJlcltdID0gW107XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IHllYXI7IGkgPCB5ZWFyICsgMjQ7IGkrKykge1xuICAgICAgICAgICAgbmV3QXJyYXkucHVzaChpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3llYXJzQXJyYXlDYWNoZSA9IG5ld0FycmF5O1xuICAgICAgICB0aGlzLl95ZWFyc0FycmF5Q2FjaGVTdGFydFllYXIgPSB5ZWFyO1xuICAgICAgICByZXR1cm4gbmV3QXJyYXk7XG4gICAgfVxuXG4gICAgLy8hIHdlZWtkYXkgYXJyYXlcbiAgICB3ZWVrZGF5QXJyYXkhOiBudW1iZXJbXTtcblxuICAgIHByb3RlY3RlZCBfdXBkYXRlV2Vla2RheUFycmF5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLndlZWtkYXlBcnJheSA9IFswLCAxLCAyLCAzLCA0LCA1LCA2XS5tYXAodiA9PiAodiArIHRoaXMuZmlyc3RXZWVrZGF5KSAlIDcpO1xuICAgIH1cblxuICAgIC8vISBjaGFuZ2UgdmlldyBmdW5jdGlvbnNcbiAgICBhY3RpdmVWaWV3OiBDYWxlbmRhclZpZXcgPSBDYWxlbmRhclZpZXcuRGF5cztcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHN0YXJ0Vmlldyh2OiBDYWxlbmRhclZpZXcpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gdjtcbiAgICB9XG5cbiAgICBvcGVuWWVhcnNWaWV3KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSBDYWxlbmRhclZpZXcuWWVhcnM7XG5cbiAgICAgICAgdGhpcy5fdXBkYXRlRGlzcGxheWVkWWVhclJhbmdlU3RhcnQoKTtcblxuICAgICAgICB0aGlzLnZpZXdDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZVZpZXcpO1xuICAgIH1cbiAgICBvcGVuTW9udGhzVmlldygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gQ2FsZW5kYXJWaWV3Lk1vbnRocztcbiAgICAgICAgLy9icmluZyBiYWNrIG9sZCB2YWx1ZVxuICAgICAgICBjb25zdCBvbGRZZWFyID0gdGhpcy5hY3RpdmVZZWFyO1xuICAgICAgICB0aGlzLmFjdGl2ZVllYXIgPSB0aGlzLmFjdGl2ZVllYXIgPz8gdGhpcy50b2RheURhdGUuZ2V0RnVsbFllYXIoKTtcblxuICAgICAgICAvL2VtaXQgZXZlbnRzXG4gICAgICAgIHRoaXMudmlld0NoYW5nZS5lbWl0KHRoaXMuYWN0aXZlVmlldyk7XG4gICAgICAgIGlmIChvbGRZZWFyICE9IHRoaXMuYWN0aXZlWWVhciAmJiB0aGlzLmFjdGl2ZVllYXIgPT0gdGhpcy50b2RheURhdGUuZ2V0RnVsbFllYXIoKSkgdGhpcy5hY3RpdmVZZWFyQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVZZWFyKTtcbiAgICB9XG4gICAgb3BlbkRheXNWaWV3KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSBDYWxlbmRhclZpZXcuRGF5cztcbiAgICAgICAgLy9icmluZyBiYWNrIG9sZCB2YWx1ZXNcbiAgICAgICAgY29uc3Qgb2xkWWVhciA9IHRoaXMuYWN0aXZlWWVhcjtcbiAgICAgICAgdGhpcy5hY3RpdmVZZWFyID0gdGhpcy5hY3RpdmVZZWFyID8/IHRoaXMudG9kYXlEYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIGNvbnN0IG9sZE1vbnRoID0gdGhpcy5hY3RpdmVNb250aDtcbiAgICAgICAgdGhpcy5hY3RpdmVNb250aCA9IHRoaXMuYWN0aXZlTW9udGggPz8gdGhpcy50b2RheURhdGUuZ2V0TW9udGgoKTtcblxuICAgICAgICAvL2VtaXQgZXZlbnRzXG4gICAgICAgIHRoaXMudmlld0NoYW5nZS5lbWl0KHRoaXMuYWN0aXZlVmlldyk7XG4gICAgICAgIGlmIChvbGRZZWFyICE9IHRoaXMuYWN0aXZlWWVhciAmJiB0aGlzLmFjdGl2ZVllYXIgPT0gdGhpcy50b2RheURhdGUuZ2V0RnVsbFllYXIoKSkgdGhpcy5hY3RpdmVZZWFyQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVZZWFyKTtcbiAgICAgICAgaWYgKG9sZE1vbnRoICE9IHRoaXMuYWN0aXZlTW9udGggJiYgdGhpcy5hY3RpdmVNb250aCA9PSB0aGlzLnRvZGF5RGF0ZS5nZXRNb250aCgpKSB0aGlzLmFjdGl2ZU1vbnRoQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVNb250aCk7XG4gICAgfVxuXG4gICAgLy8hIHRlbXBsYXRlIGN1c3RvbWl6YXRpb25cbiAgICAvL2hlYWRlcnNcbiAgICBAQ29udGVudENoaWxkKEFyZFllYXJzVmlld0hlYWRlclRlbXBsYXRlRGlyZWN0aXZlKVxuICAgIHllYXJzVmlld0hlYWRlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8Q2FsZW5kYXJZZWFyc1ZpZXdIZWFkZXJDb250ZXh0PjtcbiAgICBAQ29udGVudENoaWxkKEFyZE1vbnRoc1ZpZXdIZWFkZXJUZW1wbGF0ZURpcmVjdGl2ZSlcbiAgICBtb250aHNWaWV3SGVhZGVyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxDYWxlbmRhck1vbnRoc1ZpZXdIZWFkZXJDb250ZXh0PjtcbiAgICBAQ29udGVudENoaWxkKEFyZERheXNWaWV3SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUpXG4gICAgZGF5c1ZpZXdIZWFkZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPENhbGVuZGFyRGF5c1ZpZXdIZWFkZXJDb250ZXh0PjtcbiAgICAvL3dlZWtkYXlcbiAgICBAQ29udGVudENoaWxkKEFyZFdlZWtkYXlUZW1wbGF0ZURpcmVjdGl2ZSlcbiAgICB3ZWVrZGF5VGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxDYWxlbmRhcldlZWtkYXlDb250ZXh0PjtcbiAgICAvL2Zsb2F0aW5nIG1vbnRoXG4gICAgQENvbnRlbnRDaGlsZChBcmRGbG9hdGluZ01vbnRoVGVtcGxhdGVEaXJlY3RpdmUpXG4gICAgZmxvYXRpbmdNb250aFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8Q2FsZW5kYXJGbG9hdGluZ01vbnRoQ29udGV4dD47XG4gICAgLy9ncmlkIGVsZW1lbnRzICh5ZWFyLCBtb250aCwgZGF5KVxuICAgIEBDb250ZW50Q2hpbGQoQXJkWWVhclRlbXBsYXRlRGlyZWN0aXZlKVxuICAgIHllYXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPENhbGVuZGFyWWVhckNvbnRleHQ+O1xuICAgIEBDb250ZW50Q2hpbGQoQXJkTW9udGhUZW1wbGF0ZURpcmVjdGl2ZSlcbiAgICBtb250aFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8Q2FsZW5kYXJNb250aENvbnRleHQ+O1xuICAgIEBDb250ZW50Q2hpbGQoQXJkRGF5VGVtcGxhdGVEaXJlY3RpdmUpXG4gICAgZGF5VGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxDYWxlbmRhckRheUNvbnRleHQ+O1xuXG4gICAgLy8hIGNvbnRleHQgZ2V0dGVyc1xuICAgIC8vaGVhZGVyc1xuICAgIGdldFllYXJzVmlld0hlYWRlckNvbnRleHQoKTogQ2FsZW5kYXJZZWFyc1ZpZXdIZWFkZXJDb250ZXh0IHtcbiAgICAgICAgY29uc3QgeWVhclJhbmdlU3RhcnQgPSB0aGlzLmRpc3BsYXllZFllYXJSYW5nZVN0YXJ0O1xuICAgICAgICBjb25zdCB5ZWFyUmFuZ2VFbmQgPSB5ZWFyUmFuZ2VTdGFydCArIDIzO1xuICAgICAgICBjb25zdCBkYXRlUmFuZ2U6IERhdGVSYW5nZSA9IHtcbiAgICAgICAgICAgIGxvdzogbmV3IERhdGUoeWVhclJhbmdlU3RhcnQsIDAsIDEpLFxuICAgICAgICAgICAgaGlnaDogbmV3IERhdGUoeWVhclJhbmdlRW5kLCAwLCAxKSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5leHRQYWdlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VZZWFyc1ZpZXdQYWdlKCsxKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcmV2UGFnZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlWWVhcnNWaWV3UGFnZSgtMSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3BlbkRheXNWaWV3OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuRGF5c1ZpZXcoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB5ZWFyUmFuZ2U6IHtcbiAgICAgICAgICAgICAgICBsb3c6IHllYXJSYW5nZVN0YXJ0LFxuICAgICAgICAgICAgICAgIGhpZ2g6IHllYXJSYW5nZUVuZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkYXRlUmFuZ2UsXG4gICAgICAgICAgICAkaW1wbGljaXQ6IGRhdGVSYW5nZSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0TW9udGhzVmlld0hlYWRlckNvbnRleHQoKTogQ2FsZW5kYXJNb250aHNWaWV3SGVhZGVyQ29udGV4dCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvcGVuWWVhcnNWaWV3OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuWWVhcnNWaWV3KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3BlbkRheXNWaWV3OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuRGF5c1ZpZXcoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB5ZWFyOiB0aGlzLmFjdGl2ZVllYXIsXG4gICAgICAgICAgICBkYXRlOiB0aGlzLmFjdGl2ZURhdGUsXG4gICAgICAgICAgICAkaW1wbGljaXQ6IHRoaXMuYWN0aXZlWWVhcixcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0RGF5c1ZpZXdIZWFkZXJDb250ZXh0KCk6IENhbGVuZGFyRGF5c1ZpZXdIZWFkZXJDb250ZXh0IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5leHRNb250aDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlTW9udGgoKzEpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHByZXZNb250aDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlTW9udGgoLTEpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHRZZWFyOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VZZWFyKCsxKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcmV2WWVhcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlWWVhcigtMSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3BlblllYXJzVmlldzogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlblllYXJzVmlldygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9wZW5Nb250aHNWaWV3OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTW9udGhzVmlldygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHllYXI6IHRoaXMuYWN0aXZlWWVhcixcbiAgICAgICAgICAgIG1vbnRoOiB0aGlzLmFjdGl2ZU1vbnRoLFxuICAgICAgICAgICAgZGF0ZTogdGhpcy5hY3RpdmVEYXRlLFxuICAgICAgICAgICAgJGltcGxpY2l0OiB0aGlzLmFjdGl2ZURhdGUsXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8vd2Vla2RheVxuICAgIGdldFdlZWtkYXlDb250ZXh0KGRheUluZGV4OiBudW1iZXIpOiBDYWxlbmRhcldlZWtkYXlDb250ZXh0IHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKDE5NzAsIDAsIDQgKyBkYXlJbmRleCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkYXlJbmRleCxcbiAgICAgICAgICAgIGRhdGUsXG4gICAgICAgICAgICAkaW1wbGljaXQ6IGRhdGUsXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8vZmxvYXRpbmcgbW9udGhcbiAgICBnZXRGbG9hdGluZ01vbnRoQ29udGV4dCgpOiBDYWxlbmRhckZsb2F0aW5nTW9udGhDb250ZXh0IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1vbnRoOiB0aGlzLmFjdGl2ZU1vbnRoLFxuICAgICAgICAgICAgZGF0ZTogdGhpcy5hY3RpdmVEYXRlLFxuICAgICAgICAgICAgJGltcGxpY2l0OiB0aGlzLmFjdGl2ZURhdGUsXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8vZ3JpZCBlbGVtZW50cyAoeWVhciwgbW9udGgsIGRheSlcbiAgICBnZXRZZWFyQ29udGV4dCh5ZWFyOiBudW1iZXIpOiBDYWxlbmRhclllYXJDb250ZXh0IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbHVlOiB5ZWFyLFxuICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyLCAwLCAxKSxcbiAgICAgICAgICAgICRpbXBsaWNpdDogeWVhcixcbiAgICAgICAgICAgIHNlbGVjdDogKHllYXI6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0WWVhcih5ZWFyKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIGdldE1vbnRoQ29udGV4dChtb250aDogbnVtYmVyKTogQ2FsZW5kYXJNb250aENvbnRleHQge1xuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyLCBtb250aCwgMSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtb250aCxcbiAgICAgICAgICAgIGRhdGUsXG4gICAgICAgICAgICAkaW1wbGljaXQ6IGRhdGUsXG4gICAgICAgICAgICBzZWxlY3Q6IChtb250aDogbnVtYmVyIHwgRGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0TW9udGgobW9udGgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0RGF5Q29udGV4dChkYXk6IG51bWJlcik6IENhbGVuZGFyRGF5Q29udGV4dCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogZGF5LFxuICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyLCB0aGlzLmFjdGl2ZU1vbnRoLCBkYXkpLFxuICAgICAgICAgICAgJGltcGxpY2l0OiBkYXksXG4gICAgICAgICAgICBzZWxlY3Q6IChkYXk6IG51bWJlciB8IERhdGUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdERheShkYXkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXJkLWNhbGVuZGFyXCIgW25nQ2xhc3NdPVwibmdDbGFzc2VzXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWN0aXZlVmlldyA9PSAnZGF5cycgPyBkYXlzVmlldyA6IGFjdGl2ZVZpZXcgPT0gJ21vbnRocycgPyBtb250aHNWaWV3IDogeWVhcnNWaWV3XCIvPlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjeWVhcnNWaWV3PlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhci1oZWFkZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0WWVhcnNWaWV3SGVhZGVyVGVtcGxhdGUgbGV0LWN1cnJSYW5nZSBsZXQtbmV4dFBhZ2U9XCJuZXh0UGFnZVwiIGxldC1wcmV2UGFnZT1cInByZXZQYWdlXCIgbGV0LW9wZW5EYXlzVmlldz1cIm9wZW5EYXlzVmlld1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWNhbGVuZGFyLWRheXMtdmlldy1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxhcmQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhcmQtY2FsZW5kYXItaGVhZGVyLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5EYXlzVmlldygpXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7eyBjdXJyUmFuZ2UubG93IHwgZGF0ZTogJ1lZWVknIH19XHJcbiAgICAgICAgICAgICAgICAgICAgJm1kYXNoO1xyXG4gICAgICAgICAgICAgICAgICAgIHt7IGN1cnJSYW5nZS5oaWdoIHwgZGF0ZTogJ1lZWVknIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1kcm9wZG93bi1hcnJvd1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9hcmQtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhci1hcnJvd3NcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YXJkLWljb24tYnV0dG9uIHNpemU9XCJzbWFsbFwiIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiIGNvbG9yPVwibm9uZVwiIChjbGljayk9XCJwcmV2UGFnZSgpXCIgW3RhYkluZGV4XT1cInRhYkluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcmQtaWNvbj5jaGV2cm9uX2xlZnQ8L2FyZC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYXJkLWljb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcmQtaWNvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgYXBwZWFyYW5jZT1cInRyYW5zcGFyZW50XCIgY29sb3I9XCJub25lXCIgKGNsaWNrKT1cIm5leHRQYWdlKClcIiBbdGFiSW5kZXhdPVwidGFiSW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFyZC1pY29uPmNoZXZyb25fcmlnaHQ8L2FyZC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYXJkLWljb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ5ZWFyc1ZpZXdIZWFkZXJUZW1wbGF0ZSB8fCBkZWZhdWx0WWVhcnNWaWV3SGVhZGVyVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0WWVhcnNWaWV3SGVhZGVyQ29udGV4dCgpXCJcclxuICAgICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWNhbGVuZGFyLW1haW4tY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiAjZm9jdXNhYmxlRWxlbWVudFxyXG4gICAgICAgICAgICBjbGFzcz1cImFyZC1jYWxlbmRhci1zaW1wbGUtZ3JpZFwiXHJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiXHJcbiAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiY3VycmVudEFyaWFMYWJlbFwiXHJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxyXG4gICAgICAgICAgICAoZm9jdXMpPVwib25ZZWFyR3JpZEZvY3VzKClcIlxyXG4gICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIm9uWWVhckdyaWRCbHVyKClcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25ZZWFyR3JpZENsaWNrKClcIlxyXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJvbk1haW5HcmlkS2V5ZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgcm9sZT1cImdyaWRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgeWVhciBvZiBnZXRZZWFyc0FycmF5KClcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXItZW50cnlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hcmQtY2FsZW5kYXItZW50cnktaGlnaGxpZ2h0ZWRdPVwiaGlnaGxpZ2h0ZWRZZWFyID09IHllYXIgfHwgYWN0aXZlWWVhciA9PSB5ZWFyXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXJkLWNhbGVuZGFyLWVudHJ5LXNlbGVjdGVkXT1cImlzWWVhclNlbGVjdGVkKHllYXIpXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXJkLWNhbGVuZGFyLXRvZGF5XT1cImlzWWVhclRvZGF5KHllYXIpXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DYWxlbmRhclllYXJDbGljayh5ZWFyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG1vdXNlbW92ZSk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChtb3VzZW92ZXIpPVwib25DYWxlbmRhclllYXJNb3VzZW92ZXIoeWVhcilcIlxyXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJncmlkY2VsbFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFyZC1jYWxlbmRhci1lbnRyeS1idXR0b25cIiB0YWJpbmRleD1cIi0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZm9jdXMtb3ZlcmxheVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWJ1dHRvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRZZWFyVGVtcGxhdGUgbGV0LXllYXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgeWVhciB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInllYXJUZW1wbGF0ZSB8fCBkZWZhdWx0WWVhclRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0WWVhckNvbnRleHQoeWVhcilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI21vbnRoc1ZpZXc+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWNhbGVuZGFyLWhlYWRlci1jb250YWluZXJcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRNb250aHNWaWV3SGVhZGVyVGVtcGxhdGUgbGV0LXllYXIgbGV0LW5leHRQYWdlPVwibmV4dFBhZ2VcIiBsZXQtcHJldlBhZ2U9XCJwcmV2UGFnZVwiIGxldC1vcGVuRGF5c1ZpZXc9XCJvcGVuRGF5c1ZpZXdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhci1kYXlzLXZpZXctaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8YXJkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXJkLWNhbGVuZGFyLWhlYWRlci1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRGF5c1ZpZXcoKVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgeWVhciB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZHJvcGRvd24tYXJyb3dcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvYXJkLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1vbnRoc1ZpZXdIZWFkZXJUZW1wbGF0ZSB8fCBkZWZhdWx0TW9udGhzVmlld0hlYWRlclRlbXBsYXRlXCJcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldE1vbnRoc1ZpZXdIZWFkZXJDb250ZXh0KClcIlxyXG4gICAgICAgIC8+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXItbWFpbi1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2ICNmb2N1c2FibGVFbGVtZW50XHJcbiAgICAgICAgICAgIGNsYXNzPVwiYXJkLWNhbGVuZGFyLXNpbXBsZS1ncmlkXCJcclxuICAgICAgICAgICAgW3RhYmluZGV4XT1cInRhYkluZGV4XCJcclxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJjdXJyZW50QXJpYUxhYmVsXCJcclxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvbk1vbnRoR3JpZEZvY3VzKClcIlxyXG4gICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIm9uTW9udGhHcmlkQmx1cigpXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uTW9udGhHcmlkQ2xpY2soKVwiXHJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIm9uTWFpbkdyaWRLZXlkb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICByb2xlPVwiZ3JpZFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtb250aCBvZiBtb250aHNBcnJheVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhci1lbnRyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFyZC1jYWxlbmRhci1lbnRyeS1oaWdobGlnaHRlZF09XCJoaWdobGlnaHRlZE1vbnRoID09IG1vbnRoIHx8IGFjdGl2ZU1vbnRoID09IG1vbnRoXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXJkLWNhbGVuZGFyLWVudHJ5LXNlbGVjdGVkXT1cImlzTW9udGhTZWxlY3RlZChtb250aClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hcmQtY2FsZW5kYXItdG9kYXldPVwiaXNNb250aFRvZGF5KG1vbnRoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2FsZW5kYXJNb250aENsaWNrKG1vbnRoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG1vdXNlbW92ZSk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChtb3VzZW92ZXIpPVwib25DYWxlbmRhck1vbnRoTW91c2VvdmVyKG1vbnRoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImdyaWRjZWxsXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYXJkLWNhbGVuZGFyLWVudHJ5LWJ1dHRvblwiIHRhYmluZGV4PVwiLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1mb2N1cy1vdmVybGF5XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtYnV0dG9uLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdE1vbnRoVGVtcGxhdGUgbGV0LW1vbnRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG1vbnRoIHwgZGF0ZTogXCJNTU1cIiB8IHVwcGVyY2FzZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1vbnRoVGVtcGxhdGUgfHwgZGVmYXVsdE1vbnRoVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRNb250aENvbnRleHQobW9udGgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkYXlzVmlldz5cclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXItaGVhZGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdERheXNWaWV3SGVhZGVyVGVtcGxhdGUgbGV0LWN1cnJEYXRlIGxldC1uZXh0TW9udGg9XCJuZXh0TW9udGhcIiBsZXQtcHJldk1vbnRoPVwicHJldk1vbnRoXCIgbGV0LW9wZW5ZZWFyc1ZpZXc9XCJvcGVuWWVhcnNWaWV3XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXItZGF5cy12aWV3LWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGFyZC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFyZC1jYWxlbmRhci1oZWFkZXItYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblllYXJzVmlldygpXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7eyBjdXJyRGF0ZSB8IGRhdGU6ICdNTU0gWVlZWScgfCB1cHBlcmNhc2UgfX1cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWRyb3Bkb3duLWFycm93XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2FyZC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWNhbGVuZGFyLWFycm93c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcmQtaWNvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgYXBwZWFyYW5jZT1cInRyYW5zcGFyZW50XCIgY29sb3I9XCJub25lXCIgKGNsaWNrKT1cInByZXZNb250aCgpXCIgW3RhYkluZGV4XT1cInRhYkluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcmQtaWNvbj5jaGV2cm9uX2xlZnQ8L2FyZC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYXJkLWljb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcmQtaWNvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgYXBwZWFyYW5jZT1cInRyYW5zcGFyZW50XCIgY29sb3I9XCJub25lXCIgKGNsaWNrKT1cIm5leHRNb250aCgpXCIgW3RhYkluZGV4XT1cInRhYkluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcmQtaWNvbj5jaGV2cm9uX3JpZ2h0PC9hcmQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2FyZC1pY29uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGF5c1ZpZXdIZWFkZXJUZW1wbGF0ZSB8fCBkZWZhdWx0RGF5c1ZpZXdIZWFkZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXREYXlzVmlld0hlYWRlckNvbnRleHQoKVwiXHJcbiAgICAgICAgLz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhci1tYWluLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXItZGF5LWxhYmVscyBhcmQtY2FsZW5kYXItZ3JpZFwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRXZWVrZGF5VGVtcGxhdGUgbGV0LWRhdGU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWNhbGVuZGFyLXdlZWtkYXlcIj57eyBkYXRlIHwgZGF0ZTogJ0VFRUVFJyB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB3ZWVrZGF5SW5kZXggb2Ygd2Vla2RheUFycmF5XCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ3ZWVrZGF5VGVtcGxhdGUgfHwgZGVmYXVsdFdlZWtkYXlUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldFdlZWtkYXlDb250ZXh0KHdlZWtkYXlJbmRleClcIlxyXG4gICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgI2ZvY3VzYWJsZUVsZW1lbnRcclxuICAgICAgICAgICAgY2xhc3M9XCJhcmQtY2FsZW5kYXItbWFpbi1ncmlkIGFyZC1jYWxlbmRhci1ncmlkXCJcclxuICAgICAgICAgICAgW2NsYXNzLmFyZC1yZXNlcnZlLXRvcC1yb3ddPVwicmVzZXJ2ZVRvcFJvd1wiXHJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiXHJcbiAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiY3VycmVudEFyaWFMYWJlbFwiXHJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxyXG4gICAgICAgICAgICAoZm9jdXMpPVwib25EYXlHcmlkRm9jdXMoKVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGJsdXIpPVwib25EYXlHcmlkQmx1cigpXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGF5R3JpZENsaWNrKClcIlxyXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJvbk1haW5HcmlkS2V5ZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgcm9sZT1cImdyaWRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhci1mbG9hdGluZy1tb250aFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0RmxvYXRpbmdNb250aFRlbXBsYXRlIGxldC1kYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGRhdGUgfCBkYXRlOiAnTExMJyB8IHVwcGVyY2FzZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmbG9hdGluZ01vbnRoVGVtcGxhdGUgfHwgZGVmYXVsdEZsb2F0aW5nTW9udGhUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldEZsb2F0aW5nTW9udGhDb250ZXh0KClcIlxyXG4gICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB3ZWVrIG9mIGNhbGVuZGFyQXJyYXlcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGRheSBvZiB3ZWVrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhci1lbnRyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hcmQtY2FsZW5kYXItZW50cnktZW1wdHldPVwiZGF5ID09IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXJkLWNhbGVuZGFyLWVudHJ5LWhpZ2hsaWdodGVkXT1cImhpZ2hsaWdodGVkRGF5ID09IGRheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hcmQtY2FsZW5kYXItZW50cnktc2VsZWN0ZWRdPVwiaXNEYXlTZWxlY3RlZChkYXkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFyZC1jYWxlbmRhci10b2RheV09XCJpc0RheVRvZGF5KGRheSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DYWxlbmRhckRheUNsaWNrKGRheSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAobW91c2Vtb3ZlKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZW92ZXIpPVwib25DYWxlbmRhckRheU1vdXNlb3ZlcihkYXkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImdyaWRjZWxsXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhcmQtY2FsZW5kYXItZW50cnktYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF5ICE9IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZm9jdXMtb3ZlcmxheVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1idXR0b24tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdERheVRlbXBsYXRlIGxldC1kYXk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRheSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRheVRlbXBsYXRlIHx8IGRlZmF1bHREYXlUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXREYXlDb250ZXh0KGRheSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNMb2FkaW5nXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRMb2FkaW5nU3Bpbm5lclRlbXBsYXRlPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtc3Bpbm5lclwiPjwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibG9hZGluZ1NwaW5uZXJUZW1wbGF0ZSB8fCBkZWZhdWx0TG9hZGluZ1NwaW5uZXJUZW1wbGF0ZVwiPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9uZy1jb250YWluZXI+IC0tPiJdfQ==
979
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBNEIsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFDTCxrQ0FBa0MsRUFDbEMsdUJBQXVCLEVBQ3ZCLGlDQUFpQyxFQUNqQyxvQ0FBb0MsRUFDcEMseUJBQXlCLEVBQ3pCLDJCQUEyQixFQUMzQixtQ0FBbUMsRUFDbkMsd0JBQXdCLEdBQ3pCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxZQUFZLEdBVWIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7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b0NBQW9DO2dCQUdsRCxzQkFBc0I7c0JBRHJCLFlBQVk7dUJBQUMsa0NBQWtDO2dCQUloRCxlQUFlO3NCQURkLFlBQVk7dUJBQUMsMkJBQTJCO2dCQUl6QyxxQkFBcUI7c0JBRHBCLFlBQVk7dUJBQUMsaUNBQWlDO2dCQUkvQyxZQUFZO3NCQURYLFlBQVk7dUJBQUMsd0JBQXdCO2dCQUd0QyxhQUFhO3NCQURaLFlBQVk7dUJBQUMseUJBQXlCO2dCQUd2QyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGhpc1JlY2VpdmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0IHsgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xuaW1wb3J0IHsgcm91bmRUb011bHRpcGxlIH0gZnJvbSAnbW9yZS1yb3VuZGluZyc7XG5pbXBvcnQgeyBpc0RlZmluZWQsIGlzTnVsbCB9IGZyb20gJ3NpbXBsZS1ib29sJztcbmltcG9ydCB7IENvbXBvbmVudENvbG9yIH0gZnJvbSAnLi4vdHlwZXMvY29sb3JzLnR5cGVzJztcbmltcG9ydCB7IF9OZ01vZGVsQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uL19pbnRlcm5hbC9uZ21vZGVsLWNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBBcmREYXlzVmlld0hlYWRlclRlbXBsYXRlRGlyZWN0aXZlLFxuICBBcmREYXlUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkRmxvYXRpbmdNb250aFRlbXBsYXRlRGlyZWN0aXZlLFxuICBBcmRNb250aHNWaWV3SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZE1vbnRoVGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZFdlZWtkYXlUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkWWVhcnNWaWV3SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZFllYXJUZW1wbGF0ZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi9jYWxlbmRhci5kaXJlY3RpdmVzJztcbmltcG9ydCB7IGdldE1vbnRoTGF5b3V0IH0gZnJvbSAnLi9jYWxlbmRhci5oZWxwZXJzJztcbmltcG9ydCB7XG4gIENhbGVuZGFyVmlldyxcbiAgQ2FsZW5kYXJEYXlDb250ZXh0LFxuICBDYWxlbmRhckRheXNWaWV3SGVhZGVyQ29udGV4dCxcbiAgQ2FsZW5kYXJGbG9hdGluZ01vbnRoQ29udGV4dCxcbiAgQ2FsZW5kYXJNb250aENvbnRleHQsXG4gIENhbGVuZGFyTW9udGhzVmlld0hlYWRlckNvbnRleHQsXG4gIENhbGVuZGFyV2Vla2RheUNvbnRleHQsXG4gIENhbGVuZGFyWWVhckNvbnRleHQsXG4gIENhbGVuZGFyWWVhcnNWaWV3SGVhZGVyQ29udGV4dCxcbiAgRGF0ZVJhbmdlLFxufSBmcm9tICcuL2NhbGVuZGFyLnR5cGVzJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5mdW5jdGlvbiBpc0xlYXBZZWFyKHllYXI6IG51bWJlcik6IGJvb2xlYW4ge1xuICByZXR1cm4gKHllYXIgJSA0ID09IDAgJiYgeWVhciAlIDEwMCAhPSAwKSB8fCB5ZWFyICUgNDAwID09IDA7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FyZC1jYWxlbmRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFyZGl1bUNhbGVuZGFyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFyZGl1bUNhbGVuZGFyQ29tcG9uZW50IGV4dGVuZHMgX05nTW9kZWxDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVDYWxlbmRhckFycmF5KCk7XG4gICAgdGhpcy5fdXBkYXRlV2Vla2RheUFycmF5KCk7XG4gICAgdGhpcy5fdXBkYXRlRGlzcGxheWVkWWVhclJhbmdlU3RhcnQoKTtcbiAgfVxuICBwcml2YXRlIF93YXNTZWxlY3RlZENoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICh0aGlzLl93YXNTZWxlY3RlZENoZWNrZWQpIHJldHVybjtcbiAgICB0aGlzLl93YXNTZWxlY3RlZENoZWNrZWQgPSB0cnVlO1xuXG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGVkJ10pIHtcbiAgICAgIGNvbnN0IHYgPSB0aGlzLnNlbGVjdGVkO1xuICAgICAgaWYgKGlzTnVsbCh2KSkgcmV0dXJuO1xuXG4gICAgICB0aGlzLmFjdGl2ZURhdGUgPSBuZXcgRGF0ZSh2LmdldEZ1bGxZZWFyKCksIHYuZ2V0TW9udGgoKSwgMSk7XG4gICAgfVxuICB9XG5cbiAgLy8hIGRldGVybWluaW5nIHRvZGF5IHN0YXRlXG4gIHRvZGF5RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgaXNEYXlUb2RheShkYXk6IG51bWJlciB8IG51bGwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVZZWFyID09IHRoaXMudG9kYXlEYXRlLmdldEZ1bGxZZWFyKCkgJiYgdGhpcy5hY3RpdmVNb250aCA9PSB0aGlzLnRvZGF5RGF0ZS5nZXRNb250aCgpICYmIGRheSA9PSB0aGlzLnRvZGF5RGF0ZS5nZXREYXRlKCk7XG4gIH1cbiAgaXNNb250aFRvZGF5KG1vbnRoOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVZZWFyID09IHRoaXMudG9kYXlEYXRlLmdldEZ1bGxZZWFyKCkgJiYgbW9udGggPT0gdGhpcy50b2RheURhdGUuZ2V0TW9udGgoKTtcbiAgfVxuICBpc1llYXJUb2RheSh5ZWFyOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4geWVhciA9PSB0aGlzLnRvZGF5RGF0ZS5nZXRGdWxsWWVhcigpO1xuICB9XG5cbiAgLy8hIGRldGVybWluaW5nIGlmIGFuIGVudHJ5IGlzIHNlbGVjdGVkXG4gIGlzRGF5U2VsZWN0ZWQoZGF5OiBudW1iZXIgfCBEYXRlIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIGlmIChkYXkgaW5zdGFuY2VvZiBEYXRlKSBkYXkgPSBkYXkuZ2V0RGF0ZSgpO1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnNlbGVjdGVkICE9IG51bGwgJiYgdGhpcy5hY3RpdmVZZWFyID09IHRoaXMuc2VsZWN0ZWQuZ2V0RnVsbFllYXIoKSAmJiB0aGlzLmFjdGl2ZU1vbnRoID09IHRoaXMuc2VsZWN0ZWQuZ2V0TW9udGgoKSAmJiBkYXkgPT0gdGhpcy5zZWxlY3RlZC5nZXREYXRlKClcbiAgICApO1xuICB9XG4gIGlzTW9udGhTZWxlY3RlZChtb250aDogbnVtYmVyIHwgRGF0ZSk6IGJvb2xlYW4ge1xuICAgIGlmIChtb250aCBpbnN0YW5jZW9mIERhdGUpIG1vbnRoID0gbW9udGguZ2V0TW9udGgoKTtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZCAhPSBudWxsICYmIHRoaXMuYWN0aXZlWWVhciA9PSB0aGlzLnNlbGVjdGVkLmdldEZ1bGxZZWFyKCkgJiYgbW9udGggPT0gdGhpcy5zZWxlY3RlZC5nZXRNb250aCgpO1xuICB9XG4gIGlzWWVhclNlbGVjdGVkKHllYXI6IG51bWJlciB8IERhdGUpOiBib29sZWFuIHtcbiAgICBpZiAoeWVhciBpbnN0YW5jZW9mIERhdGUpIHllYXIgPSB5ZWFyLmdldEZ1bGxZZWFyKCk7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQgIT0gbnVsbCAmJiB5ZWFyID09IHRoaXMuc2VsZWN0ZWQuZ2V0RnVsbFllYXIoKTtcbiAgfVxuXG4gIC8vISBjb2xvciAmIHdyYXBwZXIgY2xhc3Nlc1xuICBASW5wdXQoKSBjb2xvcjogQ29tcG9uZW50Q29sb3IgPSBDb21wb25lbnRDb2xvci5QcmltYXJ5O1xuXG4gIGdldCBuZ0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW2BhcmQtY29sb3ItJHt0aGlzLmNvbG9yfWAsIHRoaXMubm9pbnRlcmFjdCA/ICdhcmQtY2FsZW5kYXItbm9pbnRlcmFjdCcgOiAnJywgdGhpcy5zdGF0aWNIZWlnaHQgPyAnYXJkLWNhbGVuZGFyLXN0YXRpYy1oZWlnaHQnIDogJyddLmpvaW4oJyAnKTtcbiAgfVxuXG4gIC8vISBvcGVuIHllYXIgJiBtb250aCBzZXR0ZXJzXG4gIC8vcGljayBhIHllYXIgcmFuZ2Ugc3RhcnQgc28gdGhhdCB0aGUgdG9kYXkgZGF0ZSBpcyBhbHdheXMgaW4gdGhlIDNyZCByb3dcbiAgcHJpdmF0ZSByZWFkb25seSB0b2RheVllYXJSYW5nZVN0YXJ0OiBudW1iZXIgPSB0aGlzLnRvZGF5RGF0ZS5nZXRGdWxsWWVhcigpIC0gKHRoaXMudG9kYXlEYXRlLmdldEZ1bGxZZWFyKCkgJSA0KSAtIDg7XG5cbiAgZGlzcGxheWVkWWVhclJhbmdlU3RhcnQ6IG51bWJlciA9IHRoaXMudG9kYXlZZWFyUmFuZ2VTdGFydDtcblxuICBwcml2YXRlIF91cGRhdGVEaXNwbGF5ZWRZZWFyUmFuZ2VTdGFydChmb3JjZWRZZWFyPzogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKGlzRGVmaW5lZChmb3JjZWRZZWFyKSkgdGhpcy5kaXNwbGF5ZWRZZWFyUmFuZ2VTdGFydCA9IGZvcmNlZFllYXI7XG5cbiAgICAvL2FkZCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBhY3RpdmUgeWVhciBhbmQgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZSBmb3IgdGhlIGN1cnJlbnQgeWVhclxuICAgIC8vcm91bmRlZCB0byBhIG11bHRpcGxlIG9mIDI0LCB0b3dhcmRzIHRoZSBudW1iZXIgemVyb1xuICAgIC8vdGhlIGRpZmZlcmVuY2UgbWF5IGJlIG5lZ2F0aXZlLCBpZiB0aGUgYWN0aXZlIHllYXIgaXMgYmVmb3JlIHRvZGF5WWVhclJhbmdlU3RhcnRcbiAgICB0aGlzLmRpc3BsYXllZFllYXJSYW5nZVN0YXJ0ID0gdGhpcy50b2RheVllYXJSYW5nZVN0YXJ0ICsgcm91bmRUb011bHRpcGxlKHRoaXMuYWN0aXZlWWVhciAtIHRoaXMudG9kYXlZZWFyUmFuZ2VTdGFydCwgMjQsICd0b196ZXJvJyk7XG4gIH1cblxuICB5ZWFyUmFuZ2VBcnJheUNhY2hlOiBudW1iZXJbXSB8IG51bGwgPSBudWxsO1xuICBnZXQgeWVhclJhbmdlQXJyYXkoKTogbnVtYmVyW10ge1xuICAgIGlmICghdGhpcy55ZWFyUmFuZ2VBcnJheUNhY2hlKSB7XG4gICAgICBsZXQgeWVhclJhbmdlU3RhcnQgPSB0aGlzLmRpc3BsYXllZFllYXJSYW5nZVN0YXJ0O1xuICAgICAgY29uc3QgbmV3QXJyYXkgPSBuZXcgQXJyYXkoMjQpLm1hcCgoKSA9PiB5ZWFyUmFuZ2VTdGFydCsrKTtcbiAgICAgIHRoaXMueWVhclJhbmdlQXJyYXlDYWNoZSA9IG5ld0FycmF5O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy55ZWFyUmFuZ2VBcnJheUNhY2hlO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9hY3RpdmVEYXRlOiBEYXRlID0gbmV3IERhdGUodGhpcy50b2RheURhdGUuZ2V0RnVsbFllYXIoKSwgdGhpcy50b2RheURhdGUuZ2V0TW9udGgoKSwgdGhpcy50b2RheURhdGUuZ2V0RGF0ZSgpKTtcbiAgc2V0IGFjdGl2ZURhdGUodjogRGF0ZSB8IHN0cmluZyB8IG51bWJlcikge1xuICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZSh2KTtcbiAgICBpZiAodGhpcy5hY3RpdmVZZWFyICE9IG5ld0RhdGUuZ2V0RnVsbFllYXIoKSkgdGhpcy55ZWFyUmFuZ2VBcnJheUNhY2hlID0gbnVsbDtcbiAgICB0aGlzLl9hY3RpdmVEYXRlID0gbmV3RGF0ZTtcblxuICAgIHRoaXMuX3VwZGF0ZUNhbGVuZGFyQXJyYXkoKTtcbiAgfVxuICBnZXQgYWN0aXZlRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlRGF0ZTtcbiAgfVxuXG4gIGdldCBhY3RpdmVZZWFyKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZURhdGUuZ2V0RnVsbFllYXIoKTtcbiAgfVxuICBASW5wdXQoKVxuICBzZXQgYWN0aXZlWWVhcih2OiBhbnkpIHtcbiAgICBjb25zdCB5ZWFyID0gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpKTtcbiAgICB0aGlzLl9hY3RpdmVEYXRlLnNldEZ1bGxZZWFyKHllYXIpO1xuICAgIHRoaXMuYWN0aXZlRGF0ZSA9IG5ldyBEYXRlKHllYXIsIHRoaXMuYWN0aXZlTW9udGgsIDEpO1xuICAgIHRoaXMueWVhclJhbmdlQXJyYXlDYWNoZSA9IG51bGw7XG5cbiAgICB0aGlzLl91cGRhdGVDYWxlbmRhckFycmF5KCk7XG4gIH1cblxuICBnZXQgYWN0aXZlTW9udGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlRGF0ZS5nZXRNb250aCgpO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBhY3RpdmVNb250aCh2OiBhbnkpIHtcbiAgICBjb25zdCBtb250aCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHYsIG5ldyBEYXRlKCkuZ2V0TW9udGgoKSk7XG4gICAgY29uc3Qgb2xkRGF0ZVllYXIgPSB0aGlzLmFjdGl2ZVllYXI7XG4gICAgdGhpcy5hY3RpdmVEYXRlID0gbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyLCBtb250aCwgMSk7XG4gICAgaWYgKG9sZERhdGVZZWFyICE9IHRoaXMuYWN0aXZlWWVhcikgdGhpcy55ZWFyUmFuZ2VBcnJheUNhY2hlID0gbnVsbDtcblxuICAgIHRoaXMuX3VwZGF0ZUNhbGVuZGFyQXJyYXkoKTtcbiAgfVxuICAvLyEgc2VsZWN0aW9uIGZ1bmN0aW9uc1xuICBwcm90ZWN0ZWQgX3NlbGVjdGVkOiBEYXRlIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpXG4gIHNldCBzZWxlY3RlZCh2OiBhbnkpIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodik7XG4gIH1cbiAgZ2V0IHNlbGVjdGVkKCk6IERhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7XG4gIH1cblxuICB3cml0ZVZhbHVlKHY6IGFueSk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgdiA9PSAnc3RyaW5nJykge1xuICAgICAgLy90cnkgdG8gc2VlIGlmIGl0IGlzIGFuIGFycmF5IG9mIG51bWJlcnMgc2VwYXJhdGVkIGJ5IGEgY29tbWFcbiAgICAgIGNvbnN0IHZBc0FycmF5MSA9IHYuc3BsaXQoJywnKS5tYXAodiA9PiBOdW1iZXIodikpO1xuICAgICAgaWYgKHZBc0FycmF5MS5sZW5ndGggPj0gMSAmJiB2QXNBcnJheTEubGVuZ3RoIDw9IDMgJiYgdkFzQXJyYXkxLmV2ZXJ5KHYgPT4gIWlzTmFOKHYpKSkge1xuICAgICAgICB2ID0gbmV3IERhdGUodkFzQXJyYXkxWzBdLCB2QXNBcnJheTFbMV0gPz8gMCwgdkFzQXJyYXkxWzJdID8/IDEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy90cnkgdG8gc2VlIGlmIGl0IGlzIGFuIGFycmF5IG9mIG51bWJlcnMgc2VwYXJhdGVkIGJ5IHNvbWUgd2hpdGVzcGFjZVxuICAgICAgICBjb25zdCB2QXNBcnJheTIgPSB2LnNwbGl0KC9cXHMvKS5tYXAodiA9PiBOdW1iZXIodikpO1xuICAgICAgICBpZiAodkFzQXJyYXkyLmxlbmd0aCA+PSAxICYmIHZBc0FycmF5Mi5sZW5ndGggPD0gMyAmJiB2QXNBcnJheTIuZXZlcnkodiA9PiAhaXNOYU4odikpKSB7XG4gICAgICAgICAgdiA9IG5ldyBEYXRlKHZBc0FycmF5MlswXSwgdkFzQXJyYXkyWzFdID8/IDAsIHZBc0FycmF5MlsyXSA/PyAxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2ID0gbmV3IERhdGUodik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy9pcyBhIERhdGUgb2JqZWN0ICYmIGRvZXMgbm90IGNvbnRhaW4gYW4gZXJyb3JcbiAgICBpZiAodiBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKHYudmFsdWVPZigpKSkge1xuICAgICAgdGhpcy5fc2VsZWN0ZWQgPSB2O1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodiA9PSBudWxsKSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZCA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnNvbGUud2FybihgQ291bGQgbm90IHBhcnNlIFtzZWxlY3RlZF0gdmFsdWUgb24gPGFyZC1jYWxlbmRhcj4sIGFzIGl0IGlzIG5vdCBhIHZhbGlkIHZhbHVlLiBQcm92aWRlZCB2YWx1ZTogXCIke3Z9XCJgKTtcbiAgICB0aGlzLl9zZWxlY3RlZCA9IG51bGw7XG4gIH1cblxuICAvLyEgb3V0cHV0IGV2ZW50c1xuICBAT3V0cHV0KCkgeWVhclNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBtb250aFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQE91dHB1dCgpIHNlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4oKTtcbiAgQE91dHB1dCgpIGFjdGl2ZVllYXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIGFjdGl2ZU1vbnRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQE91dHB1dCgpIHZpZXdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENhbGVuZGFyVmlldz4oKTtcblxuICBAT3V0cHV0KCdjaGFuZ2UnKSBjaGFuZ2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+KCk7XG5cbiAgcHJvdGVjdGVkIF9lbWl0Q2hhbmdlKCk6IHZvaWQge1xuICAgIGNvbnN0IHYgPSB0aGlzLnNlbGVjdGVkO1xuICAgIHRoaXMuX29uQ2hhbmdlUmVnaXN0ZXJlZD8uKHYpO1xuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdCh2KTtcbiAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQodik7XG4gIH1cblxuICAvLyEgY2FsZW5kYXIgZW50cnkgaG92ZXIgJiBjbGlja1xuICBwcml2YXRlIF9oaWdobGlnaHRlZERheTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGdldCBoaWdobGlnaHRlZERheSgpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5faGlnaGxpZ2h0ZWREYXk7XG4gIH1cbiAgc2V0IGhpZ2hsaWdodGVkRGF5KHY6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAoaXNOdWxsKHYpKSB7XG4gICAgICB0aGlzLl9oaWdobGlnaHRlZERheSA9IHY7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLmFjdGl2ZVllYXIsIHRoaXMuYWN0aXZlTW9udGgsIHYpO1xuICAgIHRoaXMuX2hpZ2hsaWdodGVkRGF5ID0gZGF0ZS5nZXREYXRlKCk7XG4gIH1cblxuICBzZXRIaWdobGlnaHRlZERheUFkanVzdERhdGUoZGF5OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmhpZ2hsaWdodGVkRGF5ID0gZGF5O1xuXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuYWN0aXZlWWVhciwgdGhpcy5hY3RpdmVNb250aCwgZGF5KTtcblxuICAgIGlmICh0aGlzLmFjdGl2ZVllYXIgIT0gZGF0ZS5nZXRGdWxsWWVhcigpKSB0aGlzLmFjdGl2ZVllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG5cbiAgICBpZiAodGhpcy5hY3RpdmVNb250aCAhPSBkYXRlLmdldE1vbnRoKCkpIHRoaXMuYWN0aXZlTW9udGggPSBkYXRlLmdldE1vbnRoKCk7XG4gIH1cblxuICBwcml2YXRlIF9oaWdobGlnaHRlZE1vbnRoOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgZ2V0IGhpZ2hsaWdodGVkTW9udGgoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZ2hsaWdodGVkTW9udGg7XG4gIH1cbiAgc2V0IGhpZ2hsaWdodGVkTW9udGgodjogbnVtYmVyIHwgbnVsbCkge1xuICAgIGlmIChpc051bGwodikpIHtcbiAgICAgIHRoaXMuX2hpZ2hsaWdodGVkTW9udGggPSB2O1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyLCB2LCAxKTtcbiAgICB0aGlzLl9oaWdobGlnaHRlZE1vbnRoID0gZGF0ZS5nZXRNb250aCgpO1xuICB9XG5cbiAgc2V0SGlnaGxpZ2h0ZWRNb250aEFkanVzdERhdGUobW9udGg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuaGlnaGxpZ2h0ZWRNb250aCA9IG1vbnRoO1xuXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuYWN0aXZlWWVhciwgbW9udGgsIDEpO1xuXG4gICAgaWYgKHRoaXMuYWN0aXZlWWVhciAhPSBkYXRlLmdldEZ1bGxZZWFyKCkpIHRoaXMuYWN0aXZlWWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hpZ2hsaWdodGVkWWVhcjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGdldCBoaWdobGlnaHRlZFllYXIoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZ2hsaWdodGVkWWVhcjtcbiAgfVxuICBzZXQgaGlnaGxpZ2h0ZWRZZWFyKHY6IG51bWJlciB8IG51bGwpIHtcbiAgICB0aGlzLl9oaWdobGlnaHRlZFllYXIgPSB2O1xuICB9XG5cbiAgc2V0SGlnaGxpZ2h0ZWRZZWFyQWRqdXN0UGFnZSh5ZWFyOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmhpZ2hsaWdodGVkWWVhciA9IHllYXI7XG5cbiAgICBpZiAoeWVhciA8IHRoaXMuZGlzcGxheWVkWWVhclJhbmdlU3RhcnQgfHwgeWVhciA+PSB0aGlzLmRpc3BsYXllZFllYXJSYW5nZVN0YXJ0ICsgMjQpIHtcbiAgICAgIC8vYWRkIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGhpZ2hsaWdodGVkIHllYXIgYW5kIHRoZSBkaXNwbGF5ZWQgcmFuZ2Ugc3RhcnQgeWVhclxuICAgICAgLy9yb3VuZGVkIHRvIGEgbXVsdGlwbGUgb2YgMjQsIGF3YXkgZnJvbSB0aGUgbnVtYmVyIHplcm9cbiAgICAgIC8vdGhlIGRpZmZlcmVuY2UgbWF5IGJlIG5lZ2F0aXZlLCBpZiB0aGUgZmlyc3QgaWYgY29uZGl0aW9uIGlzIG1ldFxuICAgICAgdGhpcy5kaXNwbGF5ZWRZZWFyUmFuZ2VTdGFydCArPSByb3VuZFRvTXVsdGlwbGUoeWVhciAtIHRoaXMuZGlzcGxheWVkWWVhclJhbmdlU3RhcnQsIDI0LCAnZnJvbV96ZXJvJyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGN1cnJlbnRBcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyLCB0aGlzLmFjdGl2ZU1vbnRoLCB0aGlzLmhpZ2hsaWdodGVkRGF5ID8/IDEpLnRvTG9jYWxlRGF0ZVN0cmluZyh1bmRlZmluZWQsIHtcbiAgICAgIHdlZWtkYXk6ICdsb25nJyxcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ2FsZW5kYXJEYXlNb3VzZW92ZXIoZGF5OiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKGRheSA9PSBudWxsKSByZXR1cm47XG4gICAgaWYgKHRoaXMuX2lzVXNpbmdLZXlib2FyZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5oaWdobGlnaHRlZERheSA9IGRheTtcbiAgfVxuICBvbkNhbGVuZGFyTW9udGhNb3VzZW92ZXIobW9udGg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pc1VzaW5nS2V5Ym9hcmQpIHJldHVybjtcblxuICAgIHRoaXMuaGlnaGxpZ2h0ZWRNb250aCA9IG1vbnRoO1xuICB9XG4gIG9uQ2FsZW5kYXJZZWFyTW91c2VvdmVyKHllYXI6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pc1VzaW5nS2V5Ym9hcmQpIHJldHVybjtcblxuICAgIHRoaXMuaGlnaGxpZ2h0ZWRZZWFyID0geWVhcjtcbiAgfVxuXG4gIHByaXZhdGUgX2lzVXNpbmdLZXlib2FyZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZW1vdmUnKVxuICBvbkRvY3VtZW50TW91c2Vtb3ZlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNVc2luZ0tleWJvYXJkKSB0aGlzLmhpZ2hsaWdodGVkRGF5ID0gbnVsbDtcblxuICAgIHRoaXMuX2lzVXNpbmdLZXlib2FyZCA9IGZhbHNlO1xuICB9XG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nKVxuICBvbkRvY3VtZW50S2V5ZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLl9pc1VzaW5nS2V5Ym9hcmQgPSB0cnVlO1xuICB9XG5cbiAgb25DYWxlbmRhckRheUNsaWNrKGRheTogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChkYXkgPT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgdGhpcy5zZWxlY3REYXkoZGF5KTtcblxuICAgIHRoaXMuZm9jdXMoKTtcbiAgICB0aGlzLmhpZ2hsaWdodGVkRGF5ID0gZGF5O1xuICB9XG4gIG9uQ2FsZW5kYXJNb250aENsaWNrKG1vbnRoOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdE1vbnRoKG1vbnRoKTtcbiAgfVxuICBvbkNhbGVuZGFyWWVhckNsaWNrKHllYXI6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0WWVhcih5ZWFyKTtcbiAgfVxuXG4gIG9uRGF5R3JpZEZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuaGlnaGxpZ2h0ZWREYXkgPSAxO1xuICB9XG4gIG9uRGF5R3JpZEJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5oaWdobGlnaHRlZERheSA9IG51bGw7XG4gIH1cbiAgb25EYXlHcmlkQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5oaWdobGlnaHRlZERheSA/Pz0gMTtcbiAgfVxuXG4gIG9uTW9udGhHcmlkRm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5oaWdobGlnaHRlZE1vbnRoID0gMDtcbiAgfVxuICBvbk1vbnRoR3JpZEJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5oaWdobGlnaHRlZE1vbnRoID0gbnVsbDtcbiAgfVxuICBvbk1vbnRoR3JpZENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuaGlnaGxpZ2h0ZWRNb250aCA/Pz0gMDtcbiAgfVxuXG4gIG9uWWVhckdyaWRGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmhpZ2hsaWdodGVkWWVhciA9IHRoaXMuZGlzcGxheWVkWWVhclJhbmdlU3RhcnQ7XG4gIH1cbiAgb25ZZWFyR3JpZEJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5oaWdobGlnaHRlZFllYXIgPSBudWxsO1xuICB9XG4gIG9uWWVhckdyaWRDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmhpZ2hsaWdodGVkWWVhciA/Pz0gdGhpcy5kaXNwbGF5ZWRZZWFyUmFuZ2VTdGFydDtcbiAgfVxuXG4gIC8vISBtYWluIGdyaWQga2V5Ym9hcmQgY29udHJvbHNcbiAgb25NYWluR3JpZEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcbiAgICAgIGNhc2UgJ1NwYWNlJzpcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgdGhpcy5fb25FbnRlclByZXNzKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgdGhpcy5fb25BcnJvd1VwUHJlc3MoZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIHRoaXMuX29uQXJyb3dEb3duUHJlc3MoZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgIHRoaXMuX29uQXJyb3dMZWZ0UHJlc3MoZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICB0aGlzLl9vbkFycm93UmlnaHRQcmVzcyhldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICAgIHRoaXMuX29uSG9tZVByZXNzKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFbmQnOlxuICAgICAgICB0aGlzLl9vbkVuZFByZXNzKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdQYWdlVXAnOlxuICAgICAgICB0aGlzLl9vblBhZ2VVcFByZXNzKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdQYWdlRG93bic6XG4gICAgICAgIHRoaXMuX29uUGFnZURvd25QcmVzcyhldmVudCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm47XG4gICAgfVxuICB9XG4gIC8vc2VsZWN0IGN1cnJlbnRseSBzZWxlY3RlZCBlbnRyeVxuICBwcml2YXRlIF9vbkVudGVyUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5zZWxlY3RDdXJyZW50bHlIaWdobGlnaHRlZCgpO1xuICB9XG4gIC8vaGlnaGxpZ2h0IHRoZSBlbnRyeSBvbmUgbGluZSBhYm92ZVxuICBwcml2YXRlIF9vbkFycm93VXBQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgc3dpdGNoICh0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LkRheXM6XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0UHJldmlvdXNEYXkoNyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhzOlxuICAgICAgICB0aGlzLmhpZ2hsaWdodFByZXZpb3VzTW9udGgoMyk7IC8vMyBtb250aHMgcGVyIGxpbmVcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENhbGVuZGFyVmlldy5ZZWFyczpcbiAgICAgICAgdGhpcy5oaWdobGlnaHRQcmV2aW91c1llYXIoNCk7IC8vNCB5ZWFycyBwZXIgbGluZVxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgLy9oaWdobGlnaHQgdGhlIGVudHJ5IG9uZSBsaW5lIGJlbG93XG4gIHByaXZhdGUgX29uQXJyb3dEb3duUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICBjYXNlIENhbGVuZGFyVmlldy5EYXlzOlxuICAgICAgICB0aGlzLmhpZ2hsaWdodE5leHREYXkoNyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhzOlxuICAgICAgICB0aGlzLmhpZ2hsaWdodE5leHRNb250aCgzKTsgLy8zIG1vbnRocyBwZXIgbGluZVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LlllYXJzOlxuICAgICAgICB0aGlzLmhpZ2hsaWdodE5leHRZZWFyKDQpOyAvLzQgeWVhcnMgcGVyIGxpbmVcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIC8vaGlnaGxpZ2h0IHByZXZpb3VzIGVudHJ5XG4gIHByaXZhdGUgX29uQXJyb3dMZWZ0UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICBjYXNlIENhbGVuZGFyVmlldy5EYXlzOlxuICAgICAgICB0aGlzLmhpZ2hsaWdodFByZXZpb3VzRGF5KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhzOlxuICAgICAgICB0aGlzLmhpZ2hsaWdodFByZXZpb3VzTW9udGgoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENhbGVuZGFyVmlldy5ZZWFyczpcbiAgICAgICAgdGhpcy5oaWdobGlnaHRQcmV2aW91c1llYXIoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIC8vaGlnaGxpZ2h0IG5leHQgZW50cnlcbiAgcHJpdmF0ZSBfb25BcnJvd1JpZ2h0UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICBjYXNlIENhbGVuZGFyVmlldy5EYXlzOlxuICAgICAgICB0aGlzLmhpZ2hsaWdodE5leHREYXkoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENhbGVuZGFyVmlldy5Nb250aHM6XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0TmV4dE1vbnRoKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDYWxlbmRhclZpZXcuWWVhcnM6XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0TmV4dFllYXIoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIC8vaGlnaGxpZ2h0IGZpcnN0IGVudHJ5IG9uIHRoZSBwYWdlXG4gIHByaXZhdGUgX29uSG9tZVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBzd2l0Y2ggKHRoaXMuYWN0aXZlVmlldykge1xuICAgICAgY2FzZSBDYWxlbmRhclZpZXcuRGF5czpcbiAgICAgICAgdGhpcy5oaWdobGlnaHRGaXJzdERheSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3Lk1vbnRoczpcbiAgICAgICAgdGhpcy5oaWdobGlnaHRGaXJzdE1vbnRoKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDYWxlbmRhclZpZXcuWWVhcnM6XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0Rmlyc3RZZWFyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICAvL2hpZ2hsaWdodCBsYXN0IGVudHJ5IG9uIHRoZSBwYWdlXG4gIHByaXZhdGUgX29uRW5kUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICBjYXNlIENhbGVuZGFyVmlldy5EYXlzOlxuICAgICAgICB0aGlzLmhpZ2hsaWdodExhc3REYXkoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENhbGVuZGFyVmlldy5Nb250aHM6XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0TGFzdE1vbnRoKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDYWxlbmRhclZpZXcuWWVhcnM6XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0TGFzdFllYXIoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIC8vYWxvbmU6IGhpZ2hsaWdodCBzYW1lIGVudHJ5IG9uIHRoZSBwcmV2aW91cyBwYWdlXG4gIC8vd2l0aCBhbHQ6IGhpZ2hsaWdodCBzYW1lIGVudHJ5IG11bHRpcGxlIHBhZ2VzIGJlZm9yZSAoZGF5cyB2aWV3OiAxMiBwYWdlcywgbW9udGhzIHZpZXc6IDEwIHBhZ2VzLCB5ZWFycyB2aWV3OiA1IHBhZ2VzKVxuICBwcml2YXRlIF9vblBhZ2VVcFByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBzd2l0Y2ggKHRoaXMuYWN0aXZlVmlldykge1xuICAgICAgY2FzZSBDYWxlbmRhclZpZXcuRGF5czpcbiAgICAgICAgaWYgKGV2ZW50LmFsdEtleSkgdGhpcy5oaWdobGlnaHRTYW1lRGF5UHJldmlvdXNZZWFyKCk7XG4gICAgICAgIGVsc2UgdGhpcy5oaWdobGlnaHRTYW1lRGF5UHJldmlvdXNNb250aCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3Lk1vbnRoczpcbiAgICAgICAgdGhpcy5oaWdobGlnaHRTYW1lTW9udGhQcmV2aW91c1llYXIoZXZlbnQuYWx0S2V5KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENhbGVuZGFyVmlldy5ZZWFyczpcbiAgICAgICAgdGhpcy5oaWdobGlnaHRTYW1lWWVhclByZXZpb3VzUGFnZShldmVudC5hbHRLZXkpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgLy9hbG9uZTogaGlnaGxpZ2h0IHNhbWUgZW50cnkgb24gdGhlIG5leHQgcGFnZVxuICAvL3dpdGggYWx0OiBoaWdobGlnaHQgc2FtZSBlbnRyeSBtdWx0aXBsZSBwYWdlcyBhZnRlciAoZGF5cyB2aWV3OiAxMiBwYWdlcywgbW9udGhzIHZpZXc6IDEwIHBhZ2VzLCB5ZWFycyB2aWV3OiA1IHBhZ2VzKVxuICBwcml2YXRlIF9vblBhZ2VEb3duUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICBjYXNlIENhbGVuZGFyVmlldy5EYXlzOlxuICAgICAgICBpZiAoZXZlbnQuYWx0S2V5KSB0aGlzLmhpZ2hsaWdodFNhbWVEYXlOZXh0WWVhcigpO1xuICAgICAgICBlbHNlIHRoaXMuaGlnaGxpZ2h0U2FtZURheU5leHRNb250aCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3Lk1vbnRoczpcbiAgICAgICAgdGhpcy5oaWdobGlnaHRTYW1lTW9udGhOZXh0WWVhcihldmVudC5hbHRLZXkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LlllYXJzOlxuICAgICAgICB0aGlzLmhpZ2hsaWdodFNhbWVZZWFyTmV4dFBhZ2UoZXZlbnQuYWx0S2V5KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIC8vISBtYW5pcHVsYXRpb24gbWV0aG9kc1xuICAvL3NlbGVjdGluZ1xuICBzZWxlY3REYXkoZGF5OiBudW1iZXIgfCBEYXRlIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGF5U2VsZWN0ZWQoZGF5KSkgcmV0dXJuO1xuICAgIGlmIChpc051bGwoZGF5KSkge1xuICAgICAgaWYgKCFpc0RlZmluZWQodGhpcy5zZWxlY3RlZCkpIHJldHVybjtcblxuICAgICAgdGhpcy5zZWxlY3RlZCA9IG51bGw7XG4gICAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGRheSBpbnN0YW5jZW9mIERhdGUpIGRheSA9IGRheS5nZXREYXRlKCk7XG5cbiAgICB0aGlzLnNlbGVjdGVkID0gbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyLCB0aGlzLmFjdGl2ZU1vbnRoLCBkYXkpO1xuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcbiAgfVxuICBzZWxlY3RNb250aChtb250aDogbnVtYmVyIHwgRGF0ZSB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAoaXNOdWxsKG1vbnRoKSkge1xuICAgICAgdGhpcy5hY3RpdmVNb250aCA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChtb250aCBpbnN0YW5jZW9mIERhdGUpIG1vbnRoID0gbW9udGguZ2V0TW9udGgoKTtcblxuICAgIHRoaXMuYWN0aXZlTW9udGggPSBtb250aDtcblxuICAgIHRoaXMuYWN0aXZlTW9udGhDaGFuZ2UuZW1pdChtb250aCk7XG4gICAgdGhpcy5tb250aFNlbGVjdGVkLmVtaXQobW9udGgpO1xuXG4gICAgdGhpcy5vcGVuRGF5c1ZpZXcoKTtcbiAgfVxuICBzZWxlY3RZZWFyKHllYXI6IG51bWJlciB8IERhdGUgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKGlzTnVsbCh5ZWFyKSkge1xuICAgICAgdGhpcy5hY3RpdmVZZWFyID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHllYXIgaW5zdGFuY2VvZiBEYXRlKSB5ZWFyID0geWVhci5nZXRGdWxsWWVhcigpO1xuXG4gICAgdGhpcy5hY3RpdmVZZWFyID0geWVhcjtcblxuICAgIHRoaXMuYWN0aXZlWWVhckNoYW5nZS5lbWl0KHllYXIpO1xuICAgIHRoaXMueWVhclNlbGVjdGVkLmVtaXQoeWVhcik7XG5cbiAgICB0aGlzLm9wZW5Nb250aHNWaWV3KCk7XG4gIH1cbiAgc2VsZWN0Q3VycmVudGx5SGlnaGxpZ2h0ZWQoKTogdm9pZCB7XG4gICAgaWYgKCFpc0RlZmluZWQodGhpcy5oaWdobGlnaHRlZERheSkpIHJldHVybjtcblxuICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICBjYXNlIENhbGVuZGFyVmlldy5EYXlzOlxuICAgICAgICB0aGlzLnNlbGVjdERheSh0aGlzLmhpZ2hsaWdodGVkRGF5KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhzOlxuICAgICAgICB0aGlzLnNlbGVjdE1vbnRoKHRoaXMuaGlnaGxpZ2h0ZWRNb250aCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LlllYXJzOlxuICAgICAgICB0aGlzLnNlbGVjdFllYXIodGhpcy5oaWdobGlnaHRlZFllYXIpO1xuICAgICAgICByZXR1cm47XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgLy9hY3RpdmUgbW9udGhzL3llYXJzXG4gIGNoYW5nZU1vbnRoKG9mZnNldDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3Qgb2xkeWVhciA9IHRoaXMuYWN0aXZlWWVhcjtcbiAgICB0aGlzLmFjdGl2ZU1vbnRoICs9IG9mZnNldDtcblxuICAgIGlmICh0aGlzLmFjdGl2ZVllYXIgIT0gb2xkeWVhcikgdGhpcy5hY3RpdmVZZWFyQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVZZWFyKTtcbiAgICB0aGlzLmFjdGl2ZU1vbnRoQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVNb250aCk7XG4gIH1cbiAgY2hhbmdlWWVhcihvZmZzZXQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlWWVhciArPSBvZmZzZXQ7XG5cbiAgICB0aGlzLmFjdGl2ZVllYXJDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZVllYXIpO1xuICB9XG4gIC8vY2hhbmdpbmcgeWVhciBwYWdlXG4gIGNoYW5nZVllYXJzVmlld1BhZ2UocGFnZXM6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheWVkWWVhclJhbmdlU3RhcnQgKz0gMjQgKiBwYWdlcztcbiAgfVxuICAvL25leHQvcHJldiBoaWdobGlnaHRpbmdcbiAgaGlnaGxpZ2h0TmV4dERheShvZmZzZXQ6IG51bWJlciA9IDEpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50RGF5ID0gdGhpcy5oaWdobGlnaHRlZERheTtcbiAgICBpZiAoIWlzRGVmaW5lZChjdXJyZW50RGF5KSkge1xuICAgICAgdGhpcy5oaWdobGlnaHRlZERheSA9IDE7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWREYXlBZGp1c3REYXRlKGN1cnJlbnREYXkgKyBvZmZzZXQpO1xuICB9XG4gIGhpZ2hsaWdodFByZXZpb3VzRGF5KG9mZnNldDogbnVtYmVyID0gMSk6IHZvaWQge1xuICAgIHRoaXMuaGlnaGxpZ2h0TmV4dERheShvZmZzZXQgKiAtMSk7XG4gIH1cbiAgaGlnaGxpZ2h0TmV4dE1vbnRoKG9mZnNldDogbnVtYmVyID0gMSk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRNb250aCA9IHRoaXMuaGlnaGxpZ2h0ZWRNb250aDtcbiAgICBpZiAoIWlzRGVmaW5lZChjdXJyZW50TW9udGgpKSB7XG4gICAgICB0aGlzLmhpZ2hsaWdodGVkTW9udGggPSAwO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNldEhpZ2hsaWdodGVkTW9udGhBZGp1c3REYXRlKGN1cnJlbnRNb250aCArIG9mZnNldCk7XG4gIH1cbiAgaGlnaGxpZ2h0UHJldmlvdXNNb250aChvZmZzZXQ6IG51bWJlciA9IDEpOiB2b2lkIHtcbiAgICB0aGlzLmhpZ2hsaWdodE5leHRNb250aChvZmZzZXQgKiAtMSk7XG4gIH1cbiAgaGlnaGxpZ2h0TmV4dFllYXIob2Zmc2V0OiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFllYXIgPSB0aGlzLmhpZ2hsaWdodGVkWWVhcjtcbiAgICBpZiAoIWlzRGVmaW5lZChjdXJyZW50WWVhcikpIHtcbiAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRZZWFyID0gMDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZXRIaWdobGlnaHRlZFllYXJBZGp1c3RQYWdlKGN1cnJlbnRZZWFyICsgb2Zmc2V0KTtcbiAgfVxuICBoaWdobGlnaHRQcmV2aW91c1llYXIob2Zmc2V0OiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgdGhpcy5oaWdobGlnaHROZXh0WWVhcihvZmZzZXQgKiAtMSk7XG4gIH1cbiAgLy9maXJzdC9sYXN0IGhpZ2hsaWdodGluZ1xuICBoaWdobGlnaHRGaXJzdERheSgpOiB2b2lkIHtcbiAgICB0aGlzLmhpZ2hsaWdodGVkRGF5ID0gMTtcbiAgfVxuICBoaWdobGlnaHRMYXN0RGF5KCk6IHZvaWQge1xuICAgIHN3aXRjaCAodGhpcy5hY3RpdmVNb250aCArIDEpIHtcbiAgICAgIGNhc2UgMTpcbiAgICAgIGNhc2UgMzpcbiAgICAgIGNhc2UgNTpcbiAgICAgIGNhc2UgNzpcbiAgICAgIGNhc2UgODpcbiAgICAgIGNhc2UgMTA6XG4gICAgICBjYXNlIDEyOlxuICAgICAgICB0aGlzLmhpZ2hsaWdodGVkRGF5ID0gMzE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA0OlxuICAgICAgY2FzZSA2OlxuICAgICAgY2FzZSA5OlxuICAgICAgY2FzZSAxMTpcbiAgICAgICAgdGhpcy5oaWdobGlnaHRlZERheSA9IDMwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgaWYgKGlzTGVhcFllYXIodGhpcy5hY3RpdmVZZWFyKSkgdGhpcy5oaWdobGlnaHRlZERheSA9IDI5O1xuICAgICAgICBlbHNlIHRoaXMuaGlnaGxpZ2h0ZWREYXkgPSAyODtcbiAgICB9XG4gIH1cbiAgaGlnaGxpZ2h0Rmlyc3RNb250aCgpOiB2b2lkIHtcbiAgICB0aGlzLmhpZ2hsaWdodGVkTW9udGggPSAwO1xuICB9XG4gIGhpZ2hsaWdodExhc3RNb250aCgpOiB2b2lkIHtcbiAgICB0aGlzLmhpZ2hsaWdodGVkTW9udGggPSAxMTtcbiAgfVxuICBoaWdobGlnaHRGaXJzdFllYXIoKTogdm9pZCB7XG4gICAgdGhpcy5oaWdobGlnaHRlZFllYXIgPSB0aGlzLmRpc3BsYXllZFllYXJSYW5nZVN0YXJ0O1xuICB9XG4gIGhpZ2hsaWdodExhc3RZZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuaGlnaGxpZ2h0ZWRZZWFyID0gdGhpcy5kaXNwbGF5ZWRZZWFyUmFuZ2VTdGFydCArIDIzOyAvLzI0IHllYXJzIHBlciBwYWdlXG4gIH1cbiAgLy9zYW1lIGRheSBuZXh0L3ByZXYgbW9udGgveWVhclxuICBoaWdobGlnaHRTYW1lRGF5TmV4dE1vbnRoKCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlTW9udGgrKztcblxuICAgIHRoaXMuX2ZpeERhdGVBZnRlck1vbnRoQ2hhbmdlKCk7XG4gIH1cbiAgaGlnaGxpZ2h0U2FtZURheVByZXZpb3VzTW9udGgoKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVNb250aC0tO1xuXG4gICAgdGhpcy5fZml4RGF0ZUFmdGVyTW9udGhDaGFuZ2UoKTtcbiAgfVxuICBwcml2YXRlIF9maXhEYXRlQWZ0ZXJNb250aENoYW5nZSgpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHRoaXMuYWN0aXZlTW9udGggKyAxKSB7XG4gICAgICBjYXNlIDE6XG4gICAgICBjYXNlIDM6XG4gICAgICBjYXNlIDU6XG4gICAgICBjYXNlIDc6XG4gICAgICBjYXNlIDg6XG4gICAgICBjYXNlIDEwOlxuICAgICAgY2FzZSAxMjpcbiAgICAgICAgLy9kbyBub3RoaW5nXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA0OlxuICAgICAgY2FzZSA2OlxuICAgICAgY2FzZSA5OlxuICAgICAgY2FzZSAxMTpcbiAgICAgICAgLy9vbmx5IGRvIGlmIGRheSBpcyAzMVxuICAgICAgICBpZiAodGhpcy5oaWdobGlnaHRlZERheSA9PSAzMSkgdGhpcy5oaWdobGlnaHRlZERheSA9IDMwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjoge1xuICAgICAgICAvL3NraXAgaWYgYmVsb3cgMjkgb3IgbnVsbFxuICAgICAgICBpZiAoIXRoaXMuaGlnaGxpZ2h0ZWREYXkgfHwgdGhpcy5oaWdobGlnaHRlZERheSA8IDI5KSBicmVhaztcblxuICAgICAgICBpZiAoaXNMZWFwWWVhcih0aGlzLmFjdGl2ZVllYXIpKSB0aGlzLmhpZ2hsaWdodGVkRGF5ID0gMjk7XG4gICAgICAgIGVsc2UgdGhpcy5oaWdobGlnaHRlZERheSA9IDI4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBoaWdobGlnaHRTYW1lRGF5TmV4dFllYXIoKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVZZWFyKys7XG5cbiAgICB0aGlzLl9maXhEYXRlQWZ0ZXJZZWFyQ2hhbmdlKCk7XG4gIH1cbiAgaGlnaGxpZ2h0U2FtZURheVByZXZpb3VzWWVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZVllYXItLTtcblxuICAgIHRoaXMuX2ZpeERhdGVBZnRlclllYXJDaGFuZ2UoKTtcbiAgfVxuICBwcml2YXRlIF9maXhEYXRlQWZ0ZXJZZWFyQ2hhbmdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhpZ2hsaWdodGVkRGF5ICE9IDI5KSByZXR1cm47IC8vc2tpcCBpZiBub3QgMjl0aCBkYXkgaXMgc2VsZWN0ZWRcbiAgICBpZiAoaXNMZWFwWWVhcih0aGlzLmFjdGl2ZVllYXIpKSByZXR1cm47IC8vc2tpcCBpZiBuZWEgeWVhciBpcyBhIGxlYXAgeWVhclxuICAgIGlmICh0aGlzLmFjdGl2ZU1vbnRoICE9IDEpIHJldHVybjsgLy9za2lwIGlmIG5vdCBmZWJydWFyeVxuXG4gICAgdGhpcy5oaWdobGlnaHRlZERheSA9IDI4O1xuICB9XG4gIC8vc2FtZSBtb250aCBuZXh0L3ByZXYgeWVhclxuICBoaWdobGlnaHRTYW1lTW9udGhOZXh0WWVhcihtdWx0aXBsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlWWVhciArPSBtdWx0aXBsZSA/IDEwIDogMTtcbiAgfVxuICBoaWdobGlnaHRTYW1lTW9udGhQcmV2aW91c1llYXIobXVsdGlwbGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZVllYXIgLT0gbXVsdGlwbGUgPyAxMCA6IDE7XG4gIH1cbiAgLy9zYW1lIHllYXIgbmV4dC9wcmV2IHBhZ2UocylcbiAgaGlnaGxpZ2h0U2FtZVllYXJOZXh0UGFnZShtdWx0aXBsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghaXNEZWZpbmVkKHRoaXMuaGlnaGxpZ2h0ZWRZZWFyKSkge1xuICAgICAgdGhpcy5oaWdobGlnaHRlZFllYXIgPSB0aGlzLmRpc3BsYXllZFllYXJSYW5nZVN0YXJ0O1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWRZZWFyQWRqdXN0UGFnZSh0aGlzLmhpZ2hsaWdodGVkWWVhciArIChtdWx0aXBsZSA/IDYwIDogMjQpKTtcbiAgfVxuICBoaWdobGlnaHRTYW1lWWVhclByZXZpb3VzUGFnZShtdWx0aXBsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghaXNEZWZpbmVkKHRoaXMuaGlnaGxpZ2h0ZWRZZWFyKSkge1xuICAgICAgdGhpcy5oaWdobGlnaHRlZFllYXIgPSB0aGlzLmRpc3BsYXllZFllYXJSYW5nZVN0YXJ0O1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWRZZWFyQWRqdXN0UGFnZSh0aGlzLmhpZ2hsaWdodGVkWWVhciAtIChtdWx0aXBsZSA/IDYwIDogMjQpKTtcbiAgfVxuXG4gIC8vISBzZXR0aW5nc1xuICBwcm90ZWN0ZWQgX2ZpcnN0V2Vla2RheTogbnVtYmVyID0gMTtcbiAgQElucHV0KClcbiAgZ2V0IGZpcnN0V2Vla2RheSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9maXJzdFdlZWtkYXk7XG4gIH1cbiAgc2V0IGZpcnN0V2Vla2RheSh2OiBhbnkpIHtcbiAgICB0aGlzLl9maXJzdFdlZWtkYXkgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCAxKSAlIDc7XG5cbiAgICB0aGlzLl91cGRhdGVDYWxlbmRhckFycmF5KCk7XG4gICAgdGhpcy5fdXBkYXRlV2Vla2RheUFycmF5KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX25vaW50ZXJhY3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KClcbiAgZ2V0IG5vaW50ZXJhY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX25vaW50ZXJhY3QgfHwgdGhpcy5kaXNhYmxlZDtcbiAgfVxuICBzZXQgbm9pbnRlcmFjdCh2OiBhbnkpIHtcbiAgICB0aGlzLl9ub2ludGVyYWN0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9zdGF0aWNIZWlnaHQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KClcbiAgZ2V0IHN0YXRpY0hlaWdodCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGljSGVpZ2h0O1xuICB9XG4gIHNldCBzdGF0aWNIZWlnaHQodjogYW55KSB7XG4gICAgdGhpcy5fc3RhdGljSGVpZ2h0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpO1xuICB9XG5cbiAgLy8hIGNhbGVuZGFyIGFycmF5XG4gIC8vZGF5cyB2aWV3IGFycmF5XG4gIGNhbGVuZGFyQXJyYXkhOiAobnVtYmVyIHwgbnVsbClbXVtdO1xuXG4gIHJlc2VydmVUb3BSb3chOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCBfdXBkYXRlQ2FsZW5kYXJBcnJheSgpOiB2b2lkIHtcbiAgICBjb25zdCByZXN1bHRPYmogPSBnZXRNb250aExheW91dCh0aGlzLl9hY3RpdmVEYXRlLCB0aGlzLmZpcnN0V2Vla2RheSk7XG5cbiAgICB0aGlzLnJlc2VydmVUb3BSb3cgPSByZXN1bHRPYmoubGVhZGluZ1NwYWNlcyA8IDM7XG4gICAgdGhpcy5jYWxlbmRhckFycmF5ID0gcmVzdWx0T2JqLmFycmF5O1xuICB9XG5cbiAgLy9tb250aHMgdmlldyBhcnJheVxuICByZWFkb25seSBtb250aHNBcnJheTogbnVtYmVyW10gPSBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExXTtcblxuICAvL3llYXJzIHZpZXcgYXJyYXlcbiAgcHJpdmF0ZSBfeWVhcnNBcnJheUNhY2hlOiBudW1iZXJbXSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF95ZWFyc0FycmF5Q2FjaGVTdGFydFllYXI6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBnZXRZZWFyc0FycmF5KCk6IG51bWJlcltdIHtcbiAgICBjb25zdCB5ZWFyID0gdGhpcy5kaXNwbGF5ZWRZZWFyUmFuZ2VTdGFydDtcblxuICAgIGlmICh0aGlzLl95ZWFyc0FycmF5Q2FjaGVTdGFydFllYXIgPT0geWVhciAmJiBpc0RlZmluZWQodGhpcy5feWVhcnNBcnJheUNhY2hlKSkgcmV0dXJuIHRoaXMuX3llYXJzQXJyYXlDYWNoZTtcblxuICAgIGNvbnN0IG5ld0FycmF5OiBudW1iZXJbXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IHllYXI7IGkgPCB5ZWFyICsgMjQ7IGkrKykge1xuICAgICAgbmV3QXJyYXkucHVzaChpKTtcbiAgICB9XG5cbiAgICB0aGlzLl95ZWFyc0FycmF5Q2FjaGUgPSBuZXdBcnJheTtcbiAgICB0aGlzLl95ZWFyc0FycmF5Q2FjaGVTdGFydFllYXIgPSB5ZWFyO1xuICAgIHJldHVybiBuZXdBcnJheTtcbiAgfVxuXG4gIC8vISB3ZWVrZGF5IGFycmF5XG4gIHdlZWtkYXlBcnJheSE6IG51bWJlcltdO1xuXG4gIHByb3RlY3RlZCBfdXBkYXRlV2Vla2RheUFycmF5KCk6IHZvaWQge1xuICAgIHRoaXMud2Vla2RheUFycmF5ID0gWzAsIDEsIDIsIDMsIDQsIDUsIDZdLm1hcCh2ID0+ICh2ICsgdGhpcy5maXJzdFdlZWtkYXkpICUgNyk7XG4gIH1cblxuICAvLyEgY2hhbmdlIHZpZXcgZnVuY3Rpb25zXG4gIGFjdGl2ZVZpZXc6IENhbGVuZGFyVmlldyA9IENhbGVuZGFyVmlldy5EYXlzO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBzdGFydFZpZXcodjogQ2FsZW5kYXJWaWV3KSB7XG4gICAgdGhpcy5hY3RpdmVWaWV3ID0gdjtcbiAgfVxuXG4gIG9wZW5ZZWFyc1ZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVWaWV3ID0gQ2FsZW5kYXJWaWV3LlllYXJzO1xuXG4gICAgdGhpcy5fdXBkYXRlRGlzcGxheWVkWWVhclJhbmdlU3RhcnQoKTtcblxuICAgIHRoaXMudmlld0NoYW5nZS5lbWl0KHRoaXMuYWN0aXZlVmlldyk7XG4gIH1cbiAgb3Blbk1vbnRoc1ZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVWaWV3ID0gQ2FsZW5kYXJWaWV3Lk1vbnRocztcbiAgICAvL2JyaW5nIGJhY2sgb2xkIHZhbHVlXG4gICAgY29uc3Qgb2xkWWVhciA9IHRoaXMuYWN0aXZlWWVhcjtcbiAgICB0aGlzLmFjdGl2ZVllYXIgPSB0aGlzLmFjdGl2ZVllYXIgPz8gdGhpcy50b2RheURhdGUuZ2V0RnVsbFllYXIoKTtcblxuICAgIC8vZW1pdCBldmVudHNcbiAgICB0aGlzLnZpZXdDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZVZpZXcpO1xuICAgIGlmIChvbGRZZWFyICE9IHRoaXMuYWN0aXZlWWVhciAmJiB0aGlzLmFjdGl2ZVllYXIgPT0gdGhpcy50b2RheURhdGUuZ2V0RnVsbFllYXIoKSkgdGhpcy5hY3RpdmVZZWFyQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVZZWFyKTtcbiAgfVxuICBvcGVuRGF5c1ZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVWaWV3ID0gQ2FsZW5kYXJWaWV3LkRheXM7XG4gICAgLy9icmluZyBiYWNrIG9sZCB2YWx1ZXNcbiAgICBjb25zdCBvbGRZZWFyID0gdGhpcy5hY3RpdmVZZWFyO1xuICAgIHRoaXMuYWN0aXZlWWVhciA9IHRoaXMuYWN0aXZlWWVhciA/PyB0aGlzLnRvZGF5RGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IG9sZE1vbnRoID0gdGhpcy5hY3RpdmVNb250aDtcbiAgICB0aGlzLmFjdGl2ZU1vbnRoID0gdGhpcy5hY3RpdmVNb250aCA/PyB0aGlzLnRvZGF5RGF0ZS5nZXRNb250aCgpO1xuXG4gICAgLy9lbWl0IGV2ZW50c1xuICAgIHRoaXMudmlld0NoYW5nZS5lbWl0KHRoaXMuYWN0aXZlVmlldyk7XG4gICAgaWYgKG9sZFllYXIgIT0gdGhpcy5hY3RpdmVZZWFyICYmIHRoaXMuYWN0aXZlWWVhciA9PSB0aGlzLnRvZGF5RGF0ZS5nZXRGdWxsWWVhcigpKSB0aGlzLmFjdGl2ZVllYXJDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZVllYXIpO1xuICAgIGlmIChvbGRNb250aCAhPSB0aGlzLmFjdGl2ZU1vbnRoICYmIHRoaXMuYWN0aXZlTW9udGggPT0gdGhpcy50b2RheURhdGUuZ2V0TW9udGgoKSkgdGhpcy5hY3RpdmVNb250aENoYW5nZS5lbWl0KHRoaXMuYWN0aXZlTW9udGgpO1xuICB9XG5cbiAgLy8hIHRlbXBsYXRlIGN1c3RvbWl6YXRpb25cbiAgLy9oZWFkZXJzXG4gIEBDb250ZW50Q2hpbGQoQXJkWWVhcnNWaWV3SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUpXG4gIHllYXJzVmlld0hlYWRlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8Q2FsZW5kYXJZZWFyc1ZpZXdIZWFkZXJDb250ZXh0PjtcbiAgQENvbnRlbnRDaGlsZChBcmRNb250aHNWaWV3SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUpXG4gIG1vbnRoc1ZpZXdIZWFkZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPENhbGVuZGFyTW9udGhzVmlld0hlYWRlckNvbnRleHQ+O1xuICBAQ29udGVudENoaWxkKEFyZERheXNWaWV3SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUpXG4gIGRheXNWaWV3SGVhZGVyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxDYWxlbmRhckRheXNWaWV3SGVhZGVyQ29udGV4dD47XG4gIC8vd2Vla2RheVxuICBAQ29udGVudENoaWxkKEFyZFdlZWtkYXlUZW1wbGF0ZURpcmVjdGl2ZSlcbiAgd2Vla2RheVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8Q2FsZW5kYXJXZWVrZGF5Q29udGV4dD47XG4gIC8vZmxvYXRpbmcgbW9udGhcbiAgQENvbnRlbnRDaGlsZChBcmRGbG9hdGluZ01vbnRoVGVtcGxhdGVEaXJlY3RpdmUpXG4gIGZsb2F0aW5nTW9udGhUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPENhbGVuZGFyRmxvYXRpbmdNb250aENvbnRleHQ+O1xuICAvL2dyaWQgZWxlbWVudHMgKHllYXIsIG1vbnRoLCBkYXkpXG4gIEBDb250ZW50Q2hpbGQoQXJkWWVhclRlbXBsYXRlRGlyZWN0aXZlKVxuICB5ZWFyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxDYWxlbmRhclllYXJDb250ZXh0PjtcbiAgQENvbnRlbnRDaGlsZChBcmRNb250aFRlbXBsYXRlRGlyZWN0aXZlKVxuICBtb250aFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8Q2FsZW5kYXJNb250aENvbnRleHQ+O1xuICBAQ29udGVudENoaWxkKEFyZERheVRlbXBsYXRlRGlyZWN0aXZlKVxuICBkYXlUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPENhbGVuZGFyRGF5Q29udGV4dD47XG5cbiAgLy8hIGNvbnRleHQgZ2V0dGVyc1xuICAvL2hlYWRlcnNcbiAgZ2V0WWVhcnNWaWV3SGVhZGVyQ29udGV4dCgpOiBDYWxlbmRhclllYXJzVmlld0hlYWRlckNvbnRleHQge1xuICAgIGNvbnN0IHllYXJSYW5nZVN0YXJ0ID0gdGhpcy5kaXNwbGF5ZWRZZWFyUmFuZ2VTdGFydDtcbiAgICBjb25zdCB5ZWFyUmFuZ2VFbmQgPSB5ZWFyUmFuZ2VTdGFydCArIDIzO1xuICAgIGNvbnN0IGRhdGVSYW5nZTogRGF0ZVJhbmdlID0ge1xuICAgICAgbG93OiBuZXcgRGF0ZSh5ZWFyUmFuZ2VTdGFydCwgMCwgMSksXG4gICAgICBoaWdoOiBuZXcgRGF0ZSh5ZWFyUmFuZ2VFbmQsIDAsIDEpLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIG5leHRQYWdlOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuY2hhbmdlWWVhcnNWaWV3UGFnZSgrMSk7XG4gICAgICB9LFxuICAgICAgcHJldlBhZ2U6ICgpID0+IHtcbiAgICAgICAgdGhpcy5jaGFuZ2VZZWFyc1ZpZXdQYWdlKC0xKTtcbiAgICAgIH0sXG4gICAgICBvcGVuRGF5c1ZpZXc6ICgpID0+IHtcbiAgICAgICAgdGhpcy5vcGVuRGF5c1ZpZXcoKTtcbiAgICAgIH0sXG4gICAgICB5ZWFyUmFuZ2U6IHtcbiAgICAgICAgbG93OiB5ZWFyUmFuZ2VTdGFydCxcbiAgICAgICAgaGlnaDogeWVhclJhbmdlRW5kLFxuICAgICAgfSxcbiAgICAgIGRhdGVSYW5nZSxcbiAgICAgICRpbXBsaWNpdDogZGF0ZVJhbmdlLFxuICAgIH07XG4gIH1cbiAgZ2V0TW9udGhzVmlld0hlYWRlckNvbnRleHQoKTogQ2FsZW5kYXJNb250aHNWaWV3SGVhZGVyQ29udGV4dCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9wZW5ZZWFyc1ZpZXc6ICgpID0+IHtcbiAgICAgICAgdGhpcy5vcGVuWWVhcnNWaWV3KCk7XG4gICAgICB9LFxuICAgICAgb3BlbkRheXNWaWV3OiAoKSA9PiB7XG4gICAgICAgIHRoaXMub3BlbkRheXNWaWV3KCk7XG4gICAgICB9LFxuICAgICAgeWVhcjogdGhpcy5hY3RpdmVZZWFyLFxuICAgICAgZGF0ZTogdGhpcy5hY3RpdmVEYXRlLFxuICAgICAgJGltcGxpY2l0OiB0aGlzLmFjdGl2ZVllYXIsXG4gICAgfTtcbiAgfVxuICBnZXREYXlzVmlld0hlYWRlckNvbnRleHQoKTogQ2FsZW5kYXJEYXlzVmlld0hlYWRlckNvbnRleHQge1xuICAgIHJldHVybiB7XG4gICAgICBuZXh0TW9udGg6ICgpID0+IHtcbiAgICAgICAgdGhpcy5jaGFuZ2VNb250aCgrMSk7XG4gICAgICB9LFxuICAgICAgcHJldk1vbnRoOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuY2hhbmdlTW9udGgoLTEpO1xuICAgICAgfSxcbiAgICAgIG5leHRZZWFyOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuY2hhbmdlWWVhcigrMSk7XG4gICAgICB9LFxuICAgICAgcHJldlllYXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5jaGFuZ2VZZWFyKC0xKTtcbiAgICAgIH0sXG4gICAgICBvcGVuWWVhcnNWaWV3OiAoKSA9PiB7XG4gICAgICAgIHRoaXMub3BlblllYXJzVmlldygpO1xuICAgICAgfSxcbiAgICAgIG9wZW5Nb250aHNWaWV3OiAoKSA9PiB7XG4gICAgICAgIHRoaXMub3Blbk1vbnRoc1ZpZXcoKTtcbiAgICAgIH0sXG4gICAgICB5ZWFyOiB0aGlzLmFjdGl2ZVllYXIsXG4gICAgICBtb250aDogdGhpcy5hY3RpdmVNb250aCxcbiAgICAgIGRhdGU6IHRoaXMuYWN0aXZlRGF0ZSxcbiAgICAgICRpbXBsaWNpdDogdGhpcy5hY3RpdmVEYXRlLFxuICAgIH07XG4gIH1cbiAgLy93ZWVrZGF5XG4gIGdldFdlZWtkYXlDb250ZXh0KGRheUluZGV4OiBudW1iZXIpOiBDYWxlbmRhcldlZWtkYXlDb250ZXh0IHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoMTk3MCwgMCwgNCArIGRheUluZGV4KTtcbiAgICByZXR1cm4ge1xuICAgICAgZGF5SW5kZXgsXG4gICAgICBkYXRlLFxuICAgICAgJGltcGxpY2l0OiBkYXRlLFxuICAgIH07XG4gIH1cbiAgLy9mbG9hdGluZyBtb250aFxuICBnZXRGbG9hdGluZ01vbnRoQ29udGV4dCgpOiBDYWxlbmRhckZsb2F0aW5nTW9udGhDb250ZXh0IHtcbiAgICByZXR1cm4ge1xuICAgICAgbW9udGg6IHRoaXMuYWN0aXZlTW9udGgsXG4gICAgICBkYXRlOiB0aGlzLmFjdGl2ZURhdGUsXG4gICAgICAkaW1wbGljaXQ6IHRoaXMuYWN0aXZlRGF0ZSxcbiAgICB9O1xuICB9XG4gIC8vZ3JpZCBlbGVtZW50cyAoeWVhciwgbW9udGgsIGRheSlcbiAgZ2V0WWVhckNvbnRleHQoeWVhcjogbnVtYmVyKTogQ2FsZW5kYXJZZWFyQ29udGV4dCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiB5ZWFyLFxuICAgICAgZGF0ZTogbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyLCAwLCAxKSxcbiAgICAgICRpbXBsaWNpdDogeWVhcixcbiAgICAgIHNlbGVjdDogKHllYXI6IG51bWJlcikgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdFllYXIoeWVhcik7XG4gICAgICB9LFxuICAgIH07XG4gIH1cbiAgZ2V0TW9udGhDb250ZXh0KG1vbnRoOiBudW1iZXIpOiBDYWxlbmRhck1vbnRoQ29udGV4dCB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuYWN0aXZlWWVhciwgbW9udGgsIDEpO1xuICAgIHJldHVybiB7XG4gICAgICBtb250aCxcbiAgICAgIGRhdGUsXG4gICAgICAkaW1wbGljaXQ6IGRhdGUsXG4gICAgICBzZWxlY3Q6IChtb250aDogbnVtYmVyIHwgRGF0ZSkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdE1vbnRoKG1vbnRoKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuICBnZXREYXlDb250ZXh0KGRheTogbnVtYmVyKTogQ2FsZW5kYXJEYXlDb250ZXh0IHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IGRheSxcbiAgICAgIGRhdGU6IG5ldyBEYXRlKHRoaXMuYWN0aXZlWWVhciwgdGhpcy5hY3RpdmVNb250aCwgZGF5KSxcbiAgICAgICRpbXBsaWNpdDogZGF5LFxuICAgICAgc2VsZWN0OiAoZGF5OiBudW1iZXIgfCBEYXRlKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0RGF5KGRheSk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXJcIiBbbmdDbGFzc109XCJuZ0NsYXNzZXNcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJhY3RpdmVWaWV3ID09ICdkYXlzJyA/IGRheXNWaWV3IDogYWN0aXZlVmlldyA9PSAnbW9udGhzJyA/IG1vbnRoc1ZpZXcgOiB5ZWFyc1ZpZXdcIi8+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICN5ZWFyc1ZpZXc+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWNhbGVuZGFyLWhlYWRlci1jb250YWluZXJcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRZZWFyc1ZpZXdIZWFkZXJUZW1wbGF0ZSBsZXQtY3VyclJhbmdlIGxldC1uZXh0UGFnZT1cIm5leHRQYWdlXCIgbGV0LXByZXZQYWdlPVwicHJldlBhZ2VcIiBsZXQtb3BlbkRheXNWaWV3PVwib3BlbkRheXNWaWV3XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXItZGF5cy12aWV3LWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGFyZC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFyZC1jYWxlbmRhci1oZWFkZXItYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkRheXNWaWV3KClcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGN1cnJSYW5nZS5sb3cgfCBkYXRlOiAnWVlZWScgfX1cclxuICAgICAgICAgICAgICAgICAgICAmbWRhc2g7XHJcbiAgICAgICAgICAgICAgICAgICAge3sgY3VyclJhbmdlLmhpZ2ggfCBkYXRlOiAnWVlZWScgfX1cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWRyb3Bkb3duLWFycm93XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2FyZC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWNhbGVuZGFyLWFycm93c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcmQtaWNvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgYXBwZWFyYW5jZT1cInRyYW5zcGFyZW50XCIgY29sb3I9XCJub25lXCIgKGNsaWNrKT1cInByZXZQYWdlKClcIiBbdGFiSW5kZXhdPVwidGFiSW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFyZC1pY29uPmNoZXZyb25fbGVmdDwvYXJkLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hcmQtaWNvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFyZC1pY29uLWJ1dHRvbiBzaXplPVwic21hbGxcIiBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIiBjb2xvcj1cIm5vbmVcIiAoY2xpY2spPVwibmV4dFBhZ2UoKVwiIFt0YWJJbmRleF09XCJ0YWJJbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXJkLWljb24+Y2hldnJvbl9yaWdodDwvYXJkLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hcmQtaWNvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInllYXJzVmlld0hlYWRlclRlbXBsYXRlIHx8IGRlZmF1bHRZZWFyc1ZpZXdIZWFkZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRZZWFyc1ZpZXdIZWFkZXJDb250ZXh0KClcIlxyXG4gICAgICAgIC8+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXItbWFpbi1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2ICNmb2N1c2FibGVFbGVtZW50XHJcbiAgICAgICAgICAgIGNsYXNzPVwiYXJkLWNhbGVuZGFyLXNpbXBsZS1ncmlkXCJcclxuICAgICAgICAgICAgW3RhYmluZGV4XT1cInRhYkluZGV4XCJcclxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJjdXJyZW50QXJpYUxhYmVsXCJcclxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvblllYXJHcmlkRm9jdXMoKVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGJsdXIpPVwib25ZZWFyR3JpZEJsdXIoKVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvblllYXJHcmlkQ2xpY2soKVwiXHJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIm9uTWFpbkdyaWRLZXlkb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICByb2xlPVwiZ3JpZFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB5ZWFyIG9mIGdldFllYXJzQXJyYXkoKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhci1lbnRyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFyZC1jYWxlbmRhci1lbnRyeS1oaWdobGlnaHRlZF09XCJoaWdobGlnaHRlZFllYXIgPT0geWVhciB8fCBhY3RpdmVZZWFyID09IHllYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hcmQtY2FsZW5kYXItZW50cnktc2VsZWN0ZWRdPVwiaXNZZWFyU2VsZWN0ZWQoeWVhcilcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hcmQtY2FsZW5kYXItdG9kYXldPVwiaXNZZWFyVG9kYXkoeWVhcilcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNhbGVuZGFyWWVhckNsaWNrKHllYXIpXCJcclxuICAgICAgICAgICAgICAgICAgICAobW91c2Vtb3ZlKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG1vdXNlb3Zlcik9XCJvbkNhbGVuZGFyWWVhck1vdXNlb3Zlcih5ZWFyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImdyaWRjZWxsXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYXJkLWNhbGVuZGFyLWVudHJ5LWJ1dHRvblwiIHRhYmluZGV4PVwiLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1mb2N1cy1vdmVybGF5XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtYnV0dG9uLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFllYXJUZW1wbGF0ZSBsZXQteWVhcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB5ZWFyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwieWVhclRlbXBsYXRlIHx8IGRlZmF1bHRZZWFyVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRZZWFyQ29udGV4dCh5ZWFyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbW9udGhzVmlldz5cclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXItaGVhZGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdE1vbnRoc1ZpZXdIZWFkZXJUZW1wbGF0ZSBsZXQteWVhciBsZXQtbmV4dFBhZ2U9XCJuZXh0UGFnZVwiIGxldC1wcmV2UGFnZT1cInByZXZQYWdlXCIgbGV0LW9wZW5EYXlzVmlldz1cIm9wZW5EYXlzVmlld1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWNhbGVuZGFyLWRheXMtdmlldy1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxhcmQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhcmQtY2FsZW5kYXItaGVhZGVyLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiY29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5EYXlzVmlldygpXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7eyB5ZWFyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1kcm9wZG93bi1hcnJvd1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9hcmQtYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwibW9udGhzVmlld0hlYWRlclRlbXBsYXRlIHx8IGRlZmF1bHRNb250aHNWaWV3SGVhZGVyVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0TW9udGhzVmlld0hlYWRlckNvbnRleHQoKVwiXHJcbiAgICAgICAgLz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhci1tYWluLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgI2ZvY3VzYWJsZUVsZW1lbnRcclxuICAgICAgICAgICAgY2xhc3M9XCJhcmQtY2FsZW5kYXItc2ltcGxlLWdyaWRcIlxyXG4gICAgICAgICAgICBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIlxyXG4gICAgICAgICAgICBbYXJpYUxhYmVsXT1cImN1cnJlbnRBcmlhTGFiZWxcIlxyXG4gICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uTW9udGhHcmlkRm9jdXMoKVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGJsdXIpPVwib25Nb250aEdyaWRCbHVyKClcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25Nb250aEdyaWRDbGljaygpXCJcclxuICAgICAgICAgICAgKGtleWRvd24pPVwib25NYWluR3JpZEtleWRvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIHJvbGU9XCJncmlkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1vbnRoIG9mIG1vbnRoc0FycmF5XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWNhbGVuZGFyLWVudHJ5XCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXJkLWNhbGVuZGFyLWVudHJ5LWhpZ2hsaWdodGVkXT1cImhpZ2hsaWdodGVkTW9udGggPT0gbW9udGggfHwgYWN0aXZlTW9udGggPT0gbW9udGhcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hcmQtY2FsZW5kYXItZW50cnktc2VsZWN0ZWRdPVwiaXNNb250aFNlbGVjdGVkKG1vbnRoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFyZC1jYWxlbmRhci10b2RheV09XCJpc01vbnRoVG9kYXkobW9udGgpXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DYWxlbmRhck1vbnRoQ2xpY2sobW9udGgpXCJcclxuICAgICAgICAgICAgICAgICAgICAobW91c2Vtb3ZlKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG1vdXNlb3Zlcik9XCJvbkNhbGVuZGFyTW9udGhNb3VzZW92ZXIobW9udGgpXCJcclxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiZ3JpZGNlbGxcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhcmQtY2FsZW5kYXItZW50cnktYnV0dG9uXCIgdGFiaW5kZXg9XCItMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvY3VzLW92ZXJsYXlcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1idXR0b24tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TW9udGhUZW1wbGF0ZSBsZXQtbW9udGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbW9udGggfCBkYXRlOiBcIk1NTVwiIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwibW9udGhUZW1wbGF0ZSB8fCBkZWZhdWx0TW9udGhUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldE1vbnRoQ29udGV4dChtb250aClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2RheXNWaWV3PlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhci1oZWFkZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0RGF5c1ZpZXdIZWFkZXJUZW1wbGF0ZSBsZXQtY3VyckRhdGUgbGV0LW5leHRNb250aD1cIm5leHRNb250aFwiIGxldC1wcmV2TW9udGg9XCJwcmV2TW9udGhcIiBsZXQtb3BlblllYXJzVmlldz1cIm9wZW5ZZWFyc1ZpZXdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhci1kYXlzLXZpZXctaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8YXJkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXJkLWNhbGVuZGFyLWhlYWRlci1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuWWVhcnNWaWV3KClcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGN1cnJEYXRlIHwgZGF0ZTogJ01NTSBZWVlZJyB8IHVwcGVyY2FzZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZHJvcGRvd24tYXJyb3dcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvYXJkLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXItYXJyb3dzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFyZC1pY29uLWJ1dHRvbiBzaXplPVwic21hbGxcIiBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIiBjb2xvcj1cIm5vbmVcIiAoY2xpY2spPVwicHJldk1vbnRoKClcIiBbdGFiSW5kZXhdPVwidGFiSW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFyZC1pY29uPmNoZXZyb25fbGVmdDwvYXJkLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hcmQtaWNvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFyZC1pY29uLWJ1dHRvbiBzaXplPVwic21hbGxcIiBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIiBjb2xvcj1cIm5vbmVcIiAoY2xpY2spPVwibmV4dE1vbnRoKClcIiBbdGFiSW5kZXhdPVwidGFiSW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFyZC1pY29uPmNoZXZyb25fcmlnaHQ8L2FyZC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYXJkLWljb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkYXlzVmlld0hlYWRlclRlbXBsYXRlIHx8IGRlZmF1bHREYXlzVmlld0hlYWRlclRlbXBsYXRlXCJcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldERheXNWaWV3SGVhZGVyQ29udGV4dCgpXCJcclxuICAgICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWNhbGVuZGFyLW1haW4tY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhci1kYXktbGFiZWxzIGFyZC1jYWxlbmRhci1ncmlkXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFdlZWtkYXlUZW1wbGF0ZSBsZXQtZGF0ZT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXItd2Vla2RheVwiPnt7IGRhdGUgfCBkYXRlOiAnRUVFRUUnIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHdlZWtkYXlJbmRleCBvZiB3ZWVrZGF5QXJyYXlcIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIndlZWtkYXlUZW1wbGF0ZSB8fCBkZWZhdWx0V2Vla2RheVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0V2Vla2RheUNvbnRleHQod2Vla2RheUluZGV4KVwiXHJcbiAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAjZm9jdXNhYmxlRWxlbWVudFxyXG4gICAgICAgICAgICBjbGFzcz1cImFyZC1jYWxlbmRhci1tYWluLWdyaWQgYXJkLWNhbGVuZGFyLWdyaWRcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYXJkLXJlc2VydmUtdG9wLXJvd109XCJyZXNlcnZlVG9wUm93XCJcclxuICAgICAgICAgICAgW3RhYmluZGV4XT1cInRhYkluZGV4XCJcclxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJjdXJyZW50QXJpYUxhYmVsXCJcclxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvbkRheUdyaWRGb2N1cygpXCJcclxuICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAoYmx1cik9XCJvbkRheUdyaWRCbHVyKClcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25EYXlHcmlkQ2xpY2soKVwiXHJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIm9uTWFpbkdyaWRLZXlkb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICByb2xlPVwiZ3JpZFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWNhbGVuZGFyLWZsb2F0aW5nLW1vbnRoXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRGbG9hdGluZ01vbnRoVGVtcGxhdGUgbGV0LWRhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgZGF0ZSB8IGRhdGU6ICdMTEwnIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZsb2F0aW5nTW9udGhUZW1wbGF0ZSB8fCBkZWZhdWx0RmxvYXRpbmdNb250aFRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0RmxvYXRpbmdNb250aENvbnRleHQoKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHdlZWsgb2YgY2FsZW5kYXJBcnJheVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZGF5IG9mIHdlZWtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWNhbGVuZGFyLWVudHJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFyZC1jYWxlbmRhci1lbnRyeS1lbXB0eV09XCJkYXkgPT0gbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hcmQtY2FsZW5kYXItZW50cnktaGlnaGxpZ2h0ZWRdPVwiaGlnaGxpZ2h0ZWREYXkgPT0gZGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFyZC1jYWxlbmRhci1lbnRyeS1zZWxlY3RlZF09XCJpc0RheVNlbGVjdGVkKGRheSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXJkLWNhbGVuZGFyLXRvZGF5XT1cImlzRGF5VG9kYXkoZGF5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNhbGVuZGFyRGF5Q2xpY2soZGF5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZW1vdmUpPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlb3Zlcik9XCJvbkNhbGVuZGFyRGF5TW91c2VvdmVyKGRheSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiZ3JpZGNlbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFyZC1jYWxlbmRhci1lbnRyeS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkYXkgIT0gbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1mb2N1cy1vdmVybGF5XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWJ1dHRvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0RGF5VGVtcGxhdGUgbGV0LWRheT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGF5IH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGF5VGVtcGxhdGUgfHwgZGVmYXVsdERheVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldERheUNvbnRleHQoZGF5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG48IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xvYWRpbmdcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdExvYWRpbmdTcGlubmVyVGVtcGxhdGU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1zcGlubmVyXCI+PC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsb2FkaW5nU3Bpbm5lclRlbXBsYXRlIHx8IGRlZmF1bHRMb2FkaW5nU3Bpbm5lclRlbXBsYXRlXCI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L25nLWNvbnRhaW5lcj4gLS0+Il19
@@ -104,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
104
104
  selector: 'ard-calendar > ng-template[ard-day-tmp], ard-datepicker > ng-template[ard-day-tmp]',
105
105
  }]
106
106
  }], ctorParameters: () => [{ type: i0.TemplateRef }] });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuZGlyZWN0aXZlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIuZGlyZWN0aXZlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDOztBQWdCdkQsTUFBTSxPQUFPLGtDQUFrQztJQUMzQyxZQUFtQixRQUFvRDtRQUFwRCxhQUFRLEdBQVIsUUFBUSxDQUE0QztJQUFHLENBQUM7OEdBRGxFLGtDQUFrQztrR0FBbEMsa0NBQWtDOzsyRkFBbEMsa0NBQWtDO2tCQUg5QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwwRkFBMEY7aUJBQ3ZHOztBQVFELE1BQU0sT0FBTyxtQ0FBbUM7SUFDNUMsWUFBbUIsUUFBcUQ7UUFBckQsYUFBUSxHQUFSLFFBQVEsQ0FBNkM7SUFBRyxDQUFDOzhHQURuRSxtQ0FBbUM7a0dBQW5DLG1DQUFtQzs7MkZBQW5DLG1DQUFtQztrQkFIL0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0hBQWtIO2lCQUMvSDs7QUFRRCxNQUFNLE9BQU8sb0NBQW9DO0lBQzdDLFlBQW1CLFFBQXNEO1FBQXRELGFBQVEsR0FBUixRQUFRLENBQThDO0lBQUcsQ0FBQzs4R0FEcEUsb0NBQW9DO2tHQUFwQyxvQ0FBb0M7OzJGQUFwQyxvQ0FBb0M7a0JBSGhELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9IQUFvSDtpQkFDakk7O0FBUUQsTUFBTSxPQUFPLDJCQUEyQjtJQUNwQyxZQUFtQixRQUE2QztRQUE3QyxhQUFRLEdBQVIsUUFBUSxDQUFxQztJQUFHLENBQUM7OEdBRDNELDJCQUEyQjtrR0FBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUh2QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0RkFBNEY7aUJBQ3pHOztBQVFELE1BQU0sT0FBTyxpQ0FBaUM7SUFDMUMsWUFBbUIsUUFBbUQ7UUFBbkQsYUFBUSxHQUFSLFFBQVEsQ0FBMkM7SUFBRyxDQUFDOzhHQURqRSxpQ0FBaUM7a0dBQWpDLGlDQUFpQzs7MkZBQWpDLGlDQUFpQztrQkFIN0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMEdBQTBHO2lCQUN2SDs7QUFRRCxNQUFNLE9BQU8sd0JBQXdCO0lBQ2pDLFlBQW1CLFFBQTBDO1FBQTFDLGFBQVEsR0FBUixRQUFRLENBQWtDO0lBQUcsQ0FBQzs4R0FEeEQsd0JBQXdCO2tHQUF4Qix3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBSHBDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNGQUFzRjtpQkFDbkc7O0FBUUQsTUFBTSxPQUFPLHlCQUF5QjtJQUNsQyxZQUFtQixRQUEyQztRQUEzQyxhQUFRLEdBQVIsUUFBUSxDQUFtQztJQUFHLENBQUM7OEdBRHpELHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3RkFBd0Y7aUJBQ3JHOztBQVFELE1BQU0sT0FBTyx1QkFBdUI7SUFDaEMsWUFBbUIsUUFBeUM7UUFBekMsYUFBUSxHQUFSLFFBQVEsQ0FBaUM7SUFBRyxDQUFDOzhHQUR2RCx1QkFBdUI7a0dBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFIbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0ZBQW9GO2lCQUNqRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ2FsZW5kYXJBY3Rpb25CdXR0b25zQ29udGV4dCxcbiAgICBDYWxlbmRhckRheUNvbnRleHQsXG4gICAgQ2FsZW5kYXJGbG9hdGluZ01vbnRoQ29udGV4dCxcbiAgICBDYWxlbmRhckRheXNWaWV3SGVhZGVyQ29udGV4dCxcbiAgICBDYWxlbmRhck1vbnRoQ29udGV4dCxcbiAgICBDYWxlbmRhcldlZWtkYXlDb250ZXh0LFxuICAgIENhbGVuZGFyWWVhckNvbnRleHQsXG4gICAgQ2FsZW5kYXJNb250aHNWaWV3SGVhZGVyQ29udGV4dCxcbiAgICBDYWxlbmRhclllYXJzVmlld0hlYWRlckNvbnRleHQsXG59IGZyb20gJy4vY2FsZW5kYXIudHlwZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2FyZC1jYWxlbmRhciA+IG5nLXRlbXBsYXRlW2FyZC1oZWFkZXItdG1wXSwgYXJkLWRhdGVwaWNrZXIgPiBuZy10ZW1wbGF0ZVthcmQtaGVhZGVyLXRtcF0nLFxufSlcbmV4cG9ydCBjbGFzcyBBcmREYXlzVmlld0hlYWRlclRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPENhbGVuZGFyRGF5c1ZpZXdIZWFkZXJDb250ZXh0Pikge31cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdhcmQtY2FsZW5kYXIgPiBuZy10ZW1wbGF0ZVthcmQteWVhci1waWNrZXItaGVhZGVyLXRtcF0sIGFyZC1kYXRlcGlja2VyID4gbmctdGVtcGxhdGVbYXJkLXllYXItcGlja2VyLWhlYWRlci10bXBdJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJkWWVhcnNWaWV3SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8Q2FsZW5kYXJZZWFyc1ZpZXdIZWFkZXJDb250ZXh0Pikge31cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdhcmQtY2FsZW5kYXIgPiBuZy10ZW1wbGF0ZVthcmQtbW9udGgtcGlja2VyLWhlYWRlci10bXBdLCBhcmQtZGF0ZXBpY2tlciA+IG5nLXRlbXBsYXRlW2FyZC1tb250aC1waWNrZXItaGVhZGVyLXRtcF0nLFxufSlcbmV4cG9ydCBjbGFzcyBBcmRNb250aHNWaWV3SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8Q2FsZW5kYXJNb250aHNWaWV3SGVhZGVyQ29udGV4dD4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnYXJkLWNhbGVuZGFyID4gbmctdGVtcGxhdGVbYXJkLXdlZWtkYXktdG1wXSwgYXJkLWRhdGVwaWNrZXIgPiBuZy10ZW1wbGF0ZVthcmQtd2Vla2RheS10bXBdJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJkV2Vla2RheVRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPENhbGVuZGFyV2Vla2RheUNvbnRleHQ+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2FyZC1jYWxlbmRhciA+IG5nLXRlbXBsYXRlW2FyZC1mbG9hdGluZy1tb250aC10bXBdLCBhcmQtZGF0ZXBpY2tlciA+IG5nLXRlbXBsYXRlW2FyZC1mbG9hdGluZy1tb250aC10bXBdJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJkRmxvYXRpbmdNb250aFRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPENhbGVuZGFyRmxvYXRpbmdNb250aENvbnRleHQ+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2FyZC1jYWxlbmRhciA+IG5nLXRlbXBsYXRlW2FyZC15ZWFyLXRtcF0sIGFyZC1kYXRlcGlja2VyID4gbmctdGVtcGxhdGVbYXJkLXllYXItdG1wXScsXG59KVxuZXhwb3J0IGNsYXNzIEFyZFllYXJUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDYWxlbmRhclllYXJDb250ZXh0Pikge31cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdhcmQtY2FsZW5kYXIgPiBuZy10ZW1wbGF0ZVthcmQtbW9udGgtdG1wXSwgYXJkLWRhdGVwaWNrZXIgPiBuZy10ZW1wbGF0ZVthcmQtbW9udGgtdG1wXScsXG59KVxuZXhwb3J0IGNsYXNzIEFyZE1vbnRoVGVtcGxhdGVEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8Q2FsZW5kYXJNb250aENvbnRleHQ+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2FyZC1jYWxlbmRhciA+IG5nLXRlbXBsYXRlW2FyZC1kYXktdG1wXSwgYXJkLWRhdGVwaWNrZXIgPiBuZy10ZW1wbGF0ZVthcmQtZGF5LXRtcF0nLFxufSlcbmV4cG9ydCBjbGFzcyBBcmREYXlUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDYWxlbmRhckRheUNvbnRleHQ+KSB7fVxufVxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuZGlyZWN0aXZlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIuZGlyZWN0aXZlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDOztBQWdCdkQsTUFBTSxPQUFPLGtDQUFrQztJQUM3QyxZQUFtQixRQUFvRDtRQUFwRCxhQUFRLEdBQVIsUUFBUSxDQUE0QztJQUFHLENBQUM7OEdBRGhFLGtDQUFrQztrR0FBbEMsa0NBQWtDOzsyRkFBbEMsa0NBQWtDO2tCQUg5QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwRkFBMEY7aUJBQ3JHOztBQVFELE1BQU0sT0FBTyxtQ0FBbUM7SUFDOUMsWUFBbUIsUUFBcUQ7UUFBckQsYUFBUSxHQUFSLFFBQVEsQ0FBNkM7SUFBRyxDQUFDOzhHQURqRSxtQ0FBbUM7a0dBQW5DLG1DQUFtQzs7MkZBQW5DLG1DQUFtQztrQkFIL0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0hBQWtIO2lCQUM3SDs7QUFRRCxNQUFNLE9BQU8sb0NBQW9DO0lBQy9DLFlBQW1CLFFBQXNEO1FBQXRELGFBQVEsR0FBUixRQUFRLENBQThDO0lBQUcsQ0FBQzs4R0FEbEUsb0NBQW9DO2tHQUFwQyxvQ0FBb0M7OzJGQUFwQyxvQ0FBb0M7a0JBSGhELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9IQUFvSDtpQkFDL0g7O0FBUUQsTUFBTSxPQUFPLDJCQUEyQjtJQUN0QyxZQUFtQixRQUE2QztRQUE3QyxhQUFRLEdBQVIsUUFBUSxDQUFxQztJQUFHLENBQUM7OEdBRHpELDJCQUEyQjtrR0FBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUh2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0RkFBNEY7aUJBQ3ZHOztBQVFELE1BQU0sT0FBTyxpQ0FBaUM7SUFDNUMsWUFBbUIsUUFBbUQ7UUFBbkQsYUFBUSxHQUFSLFFBQVEsQ0FBMkM7SUFBRyxDQUFDOzhHQUQvRCxpQ0FBaUM7a0dBQWpDLGlDQUFpQzs7MkZBQWpDLGlDQUFpQztrQkFIN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEdBQTBHO2lCQUNySDs7QUFRRCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQW1CLFFBQTBDO1FBQTFDLGFBQVEsR0FBUixRQUFRLENBQWtDO0lBQUcsQ0FBQzs4R0FEdEQsd0JBQXdCO2tHQUF4Qix3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBSHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNGQUFzRjtpQkFDakc7O0FBUUQsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxZQUFtQixRQUEyQztRQUEzQyxhQUFRLEdBQVIsUUFBUSxDQUFtQztJQUFHLENBQUM7OEdBRHZELHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3RkFBd0Y7aUJBQ25HOztBQVFELE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFBbUIsUUFBeUM7UUFBekMsYUFBUSxHQUFSLFFBQVEsQ0FBaUM7SUFBRyxDQUFDOzhHQURyRCx1QkFBdUI7a0dBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFIbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0ZBQW9GO2lCQUMvRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENhbGVuZGFyQWN0aW9uQnV0dG9uc0NvbnRleHQsXG4gIENhbGVuZGFyRGF5Q29udGV4dCxcbiAgQ2FsZW5kYXJGbG9hdGluZ01vbnRoQ29udGV4dCxcbiAgQ2FsZW5kYXJEYXlzVmlld0hlYWRlckNvbnRleHQsXG4gIENhbGVuZGFyTW9udGhDb250ZXh0LFxuICBDYWxlbmRhcldlZWtkYXlDb250ZXh0LFxuICBDYWxlbmRhclllYXJDb250ZXh0LFxuICBDYWxlbmRhck1vbnRoc1ZpZXdIZWFkZXJDb250ZXh0LFxuICBDYWxlbmRhclllYXJzVmlld0hlYWRlckNvbnRleHQsXG59IGZyb20gJy4vY2FsZW5kYXIudHlwZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhcmQtY2FsZW5kYXIgPiBuZy10ZW1wbGF0ZVthcmQtaGVhZGVyLXRtcF0sIGFyZC1kYXRlcGlja2VyID4gbmctdGVtcGxhdGVbYXJkLWhlYWRlci10bXBdJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJkRGF5c1ZpZXdIZWFkZXJUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8Q2FsZW5kYXJEYXlzVmlld0hlYWRlckNvbnRleHQ+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhcmQtY2FsZW5kYXIgPiBuZy10ZW1wbGF0ZVthcmQteWVhci1waWNrZXItaGVhZGVyLXRtcF0sIGFyZC1kYXRlcGlja2VyID4gbmctdGVtcGxhdGVbYXJkLXllYXItcGlja2VyLWhlYWRlci10bXBdJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJkWWVhcnNWaWV3SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPENhbGVuZGFyWWVhcnNWaWV3SGVhZGVyQ29udGV4dD4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2FyZC1jYWxlbmRhciA+IG5nLXRlbXBsYXRlW2FyZC1tb250aC1waWNrZXItaGVhZGVyLXRtcF0sIGFyZC1kYXRlcGlja2VyID4gbmctdGVtcGxhdGVbYXJkLW1vbnRoLXBpY2tlci1oZWFkZXItdG1wXScsXG59KVxuZXhwb3J0IGNsYXNzIEFyZE1vbnRoc1ZpZXdIZWFkZXJUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8Q2FsZW5kYXJNb250aHNWaWV3SGVhZGVyQ29udGV4dD4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2FyZC1jYWxlbmRhciA+IG5nLXRlbXBsYXRlW2FyZC13ZWVrZGF5LXRtcF0sIGFyZC1kYXRlcGlja2VyID4gbmctdGVtcGxhdGVbYXJkLXdlZWtkYXktdG1wXScsXG59KVxuZXhwb3J0IGNsYXNzIEFyZFdlZWtkYXlUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8Q2FsZW5kYXJXZWVrZGF5Q29udGV4dD4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2FyZC1jYWxlbmRhciA+IG5nLXRlbXBsYXRlW2FyZC1mbG9hdGluZy1tb250aC10bXBdLCBhcmQtZGF0ZXBpY2tlciA+IG5nLXRlbXBsYXRlW2FyZC1mbG9hdGluZy1tb250aC10bXBdJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJkRmxvYXRpbmdNb250aFRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDYWxlbmRhckZsb2F0aW5nTW9udGhDb250ZXh0Pikge31cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnYXJkLWNhbGVuZGFyID4gbmctdGVtcGxhdGVbYXJkLXllYXItdG1wXSwgYXJkLWRhdGVwaWNrZXIgPiBuZy10ZW1wbGF0ZVthcmQteWVhci10bXBdJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJkWWVhclRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDYWxlbmRhclllYXJDb250ZXh0Pikge31cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnYXJkLWNhbGVuZGFyID4gbmctdGVtcGxhdGVbYXJkLW1vbnRoLXRtcF0sIGFyZC1kYXRlcGlja2VyID4gbmctdGVtcGxhdGVbYXJkLW1vbnRoLXRtcF0nLFxufSlcbmV4cG9ydCBjbGFzcyBBcmRNb250aFRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDYWxlbmRhck1vbnRoQ29udGV4dD4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2FyZC1jYWxlbmRhciA+IG5nLXRlbXBsYXRlW2FyZC1kYXktdG1wXSwgYXJkLWRhdGVwaWNrZXIgPiBuZy10ZW1wbGF0ZVthcmQtZGF5LXRtcF0nLFxufSlcbmV4cG9ydCBjbGFzcyBBcmREYXlUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8Q2FsZW5kYXJEYXlDb250ZXh0Pikge31cbn1cbiJdfQ==
@@ -44,4 +44,4 @@ export function getMonthLayout(date, firstWeekday = 1) {
44
44
  weeks: totalWeeks,
45
45
  };
46
46
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFVLEVBQUUsZUFBdUIsQ0FBQztJQUMvRCxZQUFZLElBQUksQ0FBQyxDQUFDO0lBRWxCLE1BQU0sWUFBWSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsTUFBTSxlQUFlLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV2RSxNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzQyxXQUFXLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNsRCxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUV0QyxNQUFNLGFBQWEsR0FBd0IsRUFBRSxDQUFDO0lBQzlDLElBQUksVUFBVSxHQUFHLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN0QyxJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDdkIsSUFBSSxVQUFVLEdBQUcsR0FBRyxDQUFDO0lBRXJCLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDakMsTUFBTSxXQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUMxQyxLQUFLLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQzFDLFVBQVUsRUFBRSxDQUFDO1lBQ2IsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLFVBQVUsR0FBRyxPQUFPLEVBQUU7Z0JBQ3hDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLGNBQWMsRUFBRSxDQUFDO2dCQUNqQixTQUFTO2FBQ1o7WUFDRCxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2hDO1FBQ0QsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoQyxJQUFJLFVBQVUsR0FBRyxPQUFPLEVBQUU7WUFDdEIsVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7WUFDdEIsTUFBTTtTQUNUO0tBQ0o7SUFDRCxjQUFjLElBQUksZUFBZSxDQUFDO0lBRWxDLE9BQU87UUFDSCxLQUFLLEVBQUUsYUFBYTtRQUNwQixhQUFhLEVBQUUsZUFBZTtRQUM5QixjQUFjO1FBQ2QsS0FBSyxFQUFFLFVBQVU7S0FDcEIsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBDYWxlbmRhckFycmF5ID0ge1xuICAgIGFycmF5OiAobnVtYmVyIHwgbnVsbClbXVtdO1xuICAgIGxlYWRpbmdTcGFjZXM6IG51bWJlcjtcbiAgICB0cmFpbGluZ1NwYWNlczogbnVtYmVyO1xuICAgIHdlZWtzOiBudW1iZXI7XG59O1xuXG4vKipcbiAqIEdlbmVyYXRlcyBhIGxheW91dCBhcnJheSB0byBiZSB1c2VkIHRvIGNyZWF0ZSBhIGNhbGVuZGFyIHBhZ2UgZm9yIHRoZSBnaXZlbiBkYXRlJ3MgbW9udGguXG4gKlxuICogVGhlIHJldHVybmVkIG9iamVjdCBjb250YWlucyBhbiBhcnJheSB0byBjcmVhdGUgdGhlIGxheW91dCBmcm9tLCB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHNwYWNlcyBpbiB0aGUgbGF5b3V0LCBhbmQgdGhlIG51bWJlciBvZiB3ZWVrcyAoZnVsbCBvciBub3QpIGluIHRoZSBtb250aC5cbiAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGdldCB0aGUgbW9udGggZnJvbS5cbiAqIEBwYXJhbSBmaXJzdFdlZWtkYXkgVGhlIGluZGV4IG9mIHRoZSBmaXJzdCB3ZWVrZGF5IGluIHRoZSBjYWxlbmRhciBsYXlvdXQuIFN0YXJ0cyBhdCBTdW5kYXksIHdpdGggdGhlIGluZGV4IDAuIERlZmF1bHRzIHRvIDEuXG4gKiBAcmV0dXJucyBBIHtAbGluayBDYWxlbmRhckFycmF5fSBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb250aExheW91dChkYXRlOiBEYXRlLCBmaXJzdFdlZWtkYXk6IG51bWJlciA9IDEpOiBDYWxlbmRhckFycmF5IHtcbiAgICBmaXJzdFdlZWtkYXkgJT0gNztcblxuICAgIGNvbnN0IGZpcnN0RGF5RGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIGZpcnN0RGF5RGF0ZS5zZXREYXRlKDEpO1xuICAgIGNvbnN0IGZpcnN0RGF5V2Vla2RheSA9IChmaXJzdERheURhdGUuZ2V0RGF5KCkgLSBmaXJzdFdlZWtkYXkgKyA3KSAlIDc7XG5cbiAgICBjb25zdCBsYXN0RGF5RGF0ZSA9IG5ldyBEYXRlKGZpcnN0RGF5RGF0ZSk7XG4gICAgbGFzdERheURhdGUuc2V0TW9udGgoZmlyc3REYXlEYXRlLmdldE1vbnRoKCkgKyAxKTtcbiAgICBsYXN0RGF5RGF0ZS5zZXREYXRlKDApO1xuICAgIGNvbnN0IGxhc3REYXkgPSBsYXN0RGF5RGF0ZS5nZXREYXRlKCk7XG5cbiAgICBjb25zdCBjYWxlbmRhckFycmF5OiAobnVtYmVyIHwgbnVsbClbXVtdID0gW107XG4gICAgbGV0IGN1cnJlbnREYXkgPSBmaXJzdERheVdlZWtkYXkgKiAtMTtcbiAgICBsZXQgdHJhaWxpbmdTcGFjZXMgPSAwO1xuICAgIGxldCB0b3RhbFdlZWtzID0gTmFOO1xuXG4gICAgZm9yIChsZXQgd2VlayA9IDA7IHdlZWsgPCA2OyB3ZWVrKyspIHtcbiAgICAgICAgY29uc3QgY3VycmVudFdlZWs6IChudW1iZXIgfCBudWxsKVtdID0gW107XG4gICAgICAgIGZvciAobGV0IHdlZWtkYXkgPSAwOyB3ZWVrZGF5IDwgNzsgd2Vla2RheSsrKSB7XG4gICAgICAgICAgICBjdXJyZW50RGF5Kys7XG4gICAgICAgICAgICBpZiAoY3VycmVudERheSA8IDEgfHwgY3VycmVudERheSA+IGxhc3REYXkpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50V2Vlay5wdXNoKG51bGwpO1xuICAgICAgICAgICAgICAgIHRyYWlsaW5nU3BhY2VzKys7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjdXJyZW50V2Vlay5wdXNoKGN1cnJlbnREYXkpO1xuICAgICAgICB9XG4gICAgICAgIGNhbGVuZGFyQXJyYXkucHVzaChjdXJyZW50V2Vlayk7XG4gICAgICAgIGlmIChjdXJyZW50RGF5ID4gbGFzdERheSkge1xuICAgICAgICAgICAgdG90YWxXZWVrcyA9IHdlZWsgKyAxO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdHJhaWxpbmdTcGFjZXMgLT0gZmlyc3REYXlXZWVrZGF5O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXJyYXk6IGNhbGVuZGFyQXJyYXksXG4gICAgICAgIGxlYWRpbmdTcGFjZXM6IGZpcnN0RGF5V2Vla2RheSxcbiAgICAgICAgdHJhaWxpbmdTcGFjZXMsXG4gICAgICAgIHdlZWtzOiB0b3RhbFdlZWtzLFxuICAgIH07XG59XG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFVLEVBQUUsZUFBdUIsQ0FBQztJQUNqRSxZQUFZLElBQUksQ0FBQyxDQUFDO0lBRWxCLE1BQU0sWUFBWSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsTUFBTSxlQUFlLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV2RSxNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzQyxXQUFXLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNsRCxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUV0QyxNQUFNLGFBQWEsR0FBd0IsRUFBRSxDQUFDO0lBQzlDLElBQUksVUFBVSxHQUFHLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN0QyxJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDdkIsSUFBSSxVQUFVLEdBQUcsR0FBRyxDQUFDO0lBRXJCLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDbkMsTUFBTSxXQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUMxQyxLQUFLLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQzVDLFVBQVUsRUFBRSxDQUFDO1lBQ2IsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLFVBQVUsR0FBRyxPQUFPLEVBQUU7Z0JBQzFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLGNBQWMsRUFBRSxDQUFDO2dCQUNqQixTQUFTO2FBQ1Y7WUFDRCxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzlCO1FBQ0QsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoQyxJQUFJLFVBQVUsR0FBRyxPQUFPLEVBQUU7WUFDeEIsVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7WUFDdEIsTUFBTTtTQUNQO0tBQ0Y7SUFDRCxjQUFjLElBQUksZUFBZSxDQUFDO0lBRWxDLE9BQU87UUFDTCxLQUFLLEVBQUUsYUFBYTtRQUNwQixhQUFhLEVBQUUsZUFBZTtRQUM5QixjQUFjO1FBQ2QsS0FBSyxFQUFFLFVBQVU7S0FDbEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBDYWxlbmRhckFycmF5ID0ge1xuICBhcnJheTogKG51bWJlciB8IG51bGwpW11bXTtcbiAgbGVhZGluZ1NwYWNlczogbnVtYmVyO1xuICB0cmFpbGluZ1NwYWNlczogbnVtYmVyO1xuICB3ZWVrczogbnVtYmVyO1xufTtcblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBsYXlvdXQgYXJyYXkgdG8gYmUgdXNlZCB0byBjcmVhdGUgYSBjYWxlbmRhciBwYWdlIGZvciB0aGUgZ2l2ZW4gZGF0ZSdzIG1vbnRoLlxuICpcbiAqIFRoZSByZXR1cm5lZCBvYmplY3QgY29udGFpbnMgYW4gYXJyYXkgdG8gY3JlYXRlIHRoZSBsYXlvdXQgZnJvbSwgdGhlIG51bWJlciBvZiBsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZXMgaW4gdGhlIGxheW91dCwgYW5kIHRoZSBudW1iZXIgb2Ygd2Vla3MgKGZ1bGwgb3Igbm90KSBpbiB0aGUgbW9udGguXG4gKiBAcGFyYW0gZGF0ZSBUaGUgZGF0ZSB0byBnZXQgdGhlIG1vbnRoIGZyb20uXG4gKiBAcGFyYW0gZmlyc3RXZWVrZGF5IFRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgd2Vla2RheSBpbiB0aGUgY2FsZW5kYXIgbGF5b3V0LiBTdGFydHMgYXQgU3VuZGF5LCB3aXRoIHRoZSBpbmRleCAwLiBEZWZhdWx0cyB0byAxLlxuICogQHJldHVybnMgQSB7QGxpbmsgQ2FsZW5kYXJBcnJheX0gb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9udGhMYXlvdXQoZGF0ZTogRGF0ZSwgZmlyc3RXZWVrZGF5OiBudW1iZXIgPSAxKTogQ2FsZW5kYXJBcnJheSB7XG4gIGZpcnN0V2Vla2RheSAlPSA3O1xuXG4gIGNvbnN0IGZpcnN0RGF5RGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xuICBmaXJzdERheURhdGUuc2V0RGF0ZSgxKTtcbiAgY29uc3QgZmlyc3REYXlXZWVrZGF5ID0gKGZpcnN0RGF5RGF0ZS5nZXREYXkoKSAtIGZpcnN0V2Vla2RheSArIDcpICUgNztcblxuICBjb25zdCBsYXN0RGF5RGF0ZSA9IG5ldyBEYXRlKGZpcnN0RGF5RGF0ZSk7XG4gIGxhc3REYXlEYXRlLnNldE1vbnRoKGZpcnN0RGF5RGF0ZS5nZXRNb250aCgpICsgMSk7XG4gIGxhc3REYXlEYXRlLnNldERhdGUoMCk7XG4gIGNvbnN0IGxhc3REYXkgPSBsYXN0RGF5RGF0ZS5nZXREYXRlKCk7XG5cbiAgY29uc3QgY2FsZW5kYXJBcnJheTogKG51bWJlciB8IG51bGwpW11bXSA9IFtdO1xuICBsZXQgY3VycmVudERheSA9IGZpcnN0RGF5V2Vla2RheSAqIC0xO1xuICBsZXQgdHJhaWxpbmdTcGFjZXMgPSAwO1xuICBsZXQgdG90YWxXZWVrcyA9IE5hTjtcblxuICBmb3IgKGxldCB3ZWVrID0gMDsgd2VlayA8IDY7IHdlZWsrKykge1xuICAgIGNvbnN0IGN1cnJlbnRXZWVrOiAobnVtYmVyIHwgbnVsbClbXSA9IFtdO1xuICAgIGZvciAobGV0IHdlZWtkYXkgPSAwOyB3ZWVrZGF5IDwgNzsgd2Vla2RheSsrKSB7XG4gICAgICBjdXJyZW50RGF5Kys7XG4gICAgICBpZiAoY3VycmVudERheSA8IDEgfHwgY3VycmVudERheSA+IGxhc3REYXkpIHtcbiAgICAgICAgY3VycmVudFdlZWsucHVzaChudWxsKTtcbiAgICAgICAgdHJhaWxpbmdTcGFjZXMrKztcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjdXJyZW50V2Vlay5wdXNoKGN1cnJlbnREYXkpO1xuICAgIH1cbiAgICBjYWxlbmRhckFycmF5LnB1c2goY3VycmVudFdlZWspO1xuICAgIGlmIChjdXJyZW50RGF5ID4gbGFzdERheSkge1xuICAgICAgdG90YWxXZWVrcyA9IHdlZWsgKyAxO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHRyYWlsaW5nU3BhY2VzIC09IGZpcnN0RGF5V2Vla2RheTtcblxuICByZXR1cm4ge1xuICAgIGFycmF5OiBjYWxlbmRhckFycmF5LFxuICAgIGxlYWRpbmdTcGFjZXM6IGZpcnN0RGF5V2Vla2RheSxcbiAgICB0cmFpbGluZ1NwYWNlcyxcbiAgICB3ZWVrczogdG90YWxXZWVrcyxcbiAgfTtcbn1cbiJdfQ==
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
18
18
  exports: [ArdiumCalendarComponent],
19
19
  }]
20
20
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBT25GLE1BQU0sT0FBTyxvQkFBb0I7OEdBQXBCLG9CQUFvQjsrR0FBcEIsb0JBQW9CLGlCQUpkLHVCQUF1QixhQUM1QixZQUFZLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLGFBQzFFLHVCQUF1QjsrR0FFeEIsb0JBQW9CLFlBSG5CLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0I7OzJGQUczRSxvQkFBb0I7a0JBTGhDLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ3ZDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsQ0FBQztvQkFDckYsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBcmRpdW1DYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFyZGl1bUJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbnMvYnV0dG9uL2J1dHRvbi5tb2R1bGUnO1xuaW1wb3J0IHsgQXJkaXVtRmFiTW9kdWxlIH0gZnJvbSAnLi4vYnV0dG9ucy9mYWIvZmFiLm1vZHVsZSc7XG5pbXBvcnQgeyBBcmRpdW1JY29uTW9kdWxlIH0gZnJvbSAnLi8uLi9pY29uL2ljb24ubW9kdWxlJztcbmltcG9ydCB7IEFyZGl1bUljb25CdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b25zL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbQXJkaXVtQ2FsZW5kYXJDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFyZGl1bUJ1dHRvbk1vZHVsZSwgQXJkaXVtSWNvbkJ1dHRvbk1vZHVsZSwgQXJkaXVtSWNvbk1vZHVsZV0sXG4gICAgZXhwb3J0czogW0FyZGl1bUNhbGVuZGFyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQXJkaXVtQ2FsZW5kYXJNb2R1bGUge31cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBT25GLE1BQU0sT0FBTyxvQkFBb0I7OEdBQXBCLG9CQUFvQjsrR0FBcEIsb0JBQW9CLGlCQUpoQix1QkFBdUIsYUFDNUIsWUFBWSxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixhQUMxRSx1QkFBdUI7K0dBRXRCLG9CQUFvQixZQUhyQixZQUFZLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCOzsyRkFHekUsb0JBQW9CO2tCQUxoQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUN2QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ3JGLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQXJkaXVtQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcmRpdW1CdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b25zL2J1dHRvbi9idXR0b24ubW9kdWxlJztcbmltcG9ydCB7IEFyZGl1bUZhYk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbnMvZmFiL2ZhYi5tb2R1bGUnO1xuaW1wb3J0IHsgQXJkaXVtSWNvbk1vZHVsZSB9IGZyb20gJy4vLi4vaWNvbi9pY29uLm1vZHVsZSc7XG5pbXBvcnQgeyBBcmRpdW1JY29uQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vYnV0dG9ucy9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtBcmRpdW1DYWxlbmRhckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFyZGl1bUJ1dHRvbk1vZHVsZSwgQXJkaXVtSWNvbkJ1dHRvbk1vZHVsZSwgQXJkaXVtSWNvbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtBcmRpdW1DYWxlbmRhckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEFyZGl1bUNhbGVuZGFyTW9kdWxlIHt9XG4iXX0=
@@ -8,4 +8,4 @@ export const CalendarView = {
8
8
  Months: 'months',
9
9
  Days: 'days',
10
10
  };
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2hDLEdBQUcsRUFBRSxLQUFLO0lBQ1YsY0FBYyxFQUFFLGlCQUFpQjtJQUNqQyxZQUFZLEVBQUUsZUFBZTtDQUN2QixDQUFDO0FBYVgsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQ3hCLEtBQUssRUFBRSxPQUFPO0lBQ2QsTUFBTSxFQUFFLFFBQVE7SUFDaEIsSUFBSSxFQUFFLE1BQU07Q0FDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENhbGVuZGFyUmFuZ2VWYXJpYW50ID0ge1xuICAgIFJvdzogJ3JvdycsXG4gICAgT3V0bGluZVJvdW5kZWQ6ICdvdXRsaW5lLXJvdW5kZWQnLFxuICAgIE91dGxpbmVTaGFycDogJ291dGxpbmUtc2hhcnAnLFxufSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIENhbGVuZGFyUmFuZ2VWYXJpYW50ID0gKHR5cGVvZiBDYWxlbmRhclJhbmdlVmFyaWFudClba2V5b2YgdHlwZW9mIENhbGVuZGFyUmFuZ2VWYXJpYW50XTtcblxuZXhwb3J0IHR5cGUgRGF0ZVJhbmdlID0ge1xuICAgIGxvdzogRGF0ZTtcbiAgICBoaWdoOiBEYXRlO1xufTtcblxuZXhwb3J0IHR5cGUgWWVhclJhbmdlID0ge1xuICAgIGxvdzogbnVtYmVyO1xuICAgIGhpZ2g6IG51bWJlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBDYWxlbmRhclZpZXcgPSB7XG4gICAgWWVhcnM6ICd5ZWFycycsXG4gICAgTW9udGhzOiAnbW9udGhzJyxcbiAgICBEYXlzOiAnZGF5cycsXG59IGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQ2FsZW5kYXJWaWV3ID0gKHR5cGVvZiBDYWxlbmRhclZpZXcpW2tleW9mIHR5cGVvZiBDYWxlbmRhclZpZXddO1xuXG4vLyEgdGVtcGxhdGUgY29udGV4dHNcbmV4cG9ydCB0eXBlIENhbGVuZGFyWWVhcnNWaWV3SGVhZGVyQ29udGV4dCA9IHtcbiAgICBuZXh0UGFnZTogKCkgPT4gdm9pZDtcbiAgICBwcmV2UGFnZTogKCkgPT4gdm9pZDtcbiAgICBvcGVuRGF5c1ZpZXc6ICgpID0+IHZvaWQ7XG4gICAgeWVhclJhbmdlOiBZZWFyUmFuZ2U7XG4gICAgZGF0ZVJhbmdlOiBEYXRlUmFuZ2U7XG4gICAgJGltcGxpY2l0OiBEYXRlUmFuZ2U7XG59O1xuXG5leHBvcnQgdHlwZSBDYWxlbmRhck1vbnRoc1ZpZXdIZWFkZXJDb250ZXh0ID0ge1xuICAgIG9wZW5EYXlzVmlldzogKCkgPT4gdm9pZDtcbiAgICBvcGVuWWVhcnNWaWV3OiAoKSA9PiB2b2lkO1xuICAgIHllYXI6IG51bWJlcjtcbiAgICBkYXRlOiBEYXRlO1xuICAgICRpbXBsaWNpdDogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQ2FsZW5kYXJEYXlzVmlld0hlYWRlckNvbnRleHQgPSB7XG4gICAgbmV4dE1vbnRoOiAoKSA9PiB2b2lkO1xuICAgIHByZXZNb250aDogKCkgPT4gdm9pZDtcbiAgICBuZXh0WWVhcjogKCkgPT4gdm9pZDtcbiAgICBwcmV2WWVhcjogKCkgPT4gdm9pZDtcbiAgICBvcGVuWWVhcnNWaWV3OiAoKSA9PiB2b2lkO1xuICAgIG9wZW5Nb250aHNWaWV3OiAoKSA9PiB2b2lkO1xuICAgIHllYXI6IG51bWJlcjtcbiAgICBtb250aDogbnVtYmVyO1xuICAgIGRhdGU6IERhdGU7XG4gICAgJGltcGxpY2l0OiBEYXRlO1xufTtcblxuZXhwb3J0IHR5cGUgQ2FsZW5kYXJXZWVrZGF5Q29udGV4dCA9IHtcbiAgICBkYXlJbmRleDogbnVtYmVyO1xuICAgIGRhdGU6IERhdGU7XG4gICAgJGltcGxpY2l0OiBEYXRlO1xufTtcblxuZXhwb3J0IHR5cGUgQ2FsZW5kYXJGbG9hdGluZ01vbnRoQ29udGV4dCA9IHtcbiAgICBtb250aDogbnVtYmVyO1xuICAgIGRhdGU6IERhdGU7XG4gICAgJGltcGxpY2l0OiBEYXRlO1xufTtcblxuZXhwb3J0IHR5cGUgQ2FsZW5kYXJZZWFyQ29udGV4dCA9IHtcbiAgICB2YWx1ZTogbnVtYmVyO1xuICAgIGRhdGU6IERhdGU7XG4gICAgJGltcGxpY2l0OiBudW1iZXI7XG4gICAgc2VsZWN0OiAoeWVhcjogbnVtYmVyKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgQ2FsZW5kYXJNb250aENvbnRleHQgPSB7XG4gICAgbW9udGg6IG51bWJlcjtcbiAgICBkYXRlOiBEYXRlO1xuICAgICRpbXBsaWNpdDogRGF0ZTtcbiAgICBzZWxlY3Q6IChtb250aDogbnVtYmVyIHwgRGF0ZSkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIENhbGVuZGFyRGF5Q29udGV4dCA9IHtcbiAgICB2YWx1ZTogbnVtYmVyO1xuICAgIGRhdGU6IERhdGU7XG4gICAgJGltcGxpY2l0OiBudW1iZXI7XG4gICAgc2VsZWN0OiAoZGF5OiBudW1iZXIgfCBEYXRlKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgQ2FsZW5kYXJBY3Rpb25CdXR0b25zQ29udGV4dCA9IHtcbiAgICBjYW5jZWw6ICgpID0+IHZvaWQ7XG4gICAgYXBwbHk6ICgpID0+IHZvaWQ7XG4gICAgcmVzZXQ6ICgpID0+IHZvaWQ7XG59O1xuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2xDLEdBQUcsRUFBRSxLQUFLO0lBQ1YsY0FBYyxFQUFFLGlCQUFpQjtJQUNqQyxZQUFZLEVBQUUsZUFBZTtDQUNyQixDQUFDO0FBYVgsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLEtBQUssRUFBRSxPQUFPO0lBQ2QsTUFBTSxFQUFFLFFBQVE7SUFDaEIsSUFBSSxFQUFFLE1BQU07Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENhbGVuZGFyUmFuZ2VWYXJpYW50ID0ge1xuICBSb3c6ICdyb3cnLFxuICBPdXRsaW5lUm91bmRlZDogJ291dGxpbmUtcm91bmRlZCcsXG4gIE91dGxpbmVTaGFycDogJ291dGxpbmUtc2hhcnAnLFxufSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIENhbGVuZGFyUmFuZ2VWYXJpYW50ID0gKHR5cGVvZiBDYWxlbmRhclJhbmdlVmFyaWFudClba2V5b2YgdHlwZW9mIENhbGVuZGFyUmFuZ2VWYXJpYW50XTtcblxuZXhwb3J0IHR5cGUgRGF0ZVJhbmdlID0ge1xuICBsb3c6IERhdGU7XG4gIGhpZ2g6IERhdGU7XG59O1xuXG5leHBvcnQgdHlwZSBZZWFyUmFuZ2UgPSB7XG4gIGxvdzogbnVtYmVyO1xuICBoaWdoOiBudW1iZXI7XG59O1xuXG5leHBvcnQgY29uc3QgQ2FsZW5kYXJWaWV3ID0ge1xuICBZZWFyczogJ3llYXJzJyxcbiAgTW9udGhzOiAnbW9udGhzJyxcbiAgRGF5czogJ2RheXMnLFxufSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIENhbGVuZGFyVmlldyA9ICh0eXBlb2YgQ2FsZW5kYXJWaWV3KVtrZXlvZiB0eXBlb2YgQ2FsZW5kYXJWaWV3XTtcblxuLy8hIHRlbXBsYXRlIGNvbnRleHRzXG5leHBvcnQgdHlwZSBDYWxlbmRhclllYXJzVmlld0hlYWRlckNvbnRleHQgPSB7XG4gIG5leHRQYWdlOiAoKSA9PiB2b2lkO1xuICBwcmV2UGFnZTogKCkgPT4gdm9pZDtcbiAgb3BlbkRheXNWaWV3OiAoKSA9PiB2b2lkO1xuICB5ZWFyUmFuZ2U6IFllYXJSYW5nZTtcbiAgZGF0ZVJhbmdlOiBEYXRlUmFuZ2U7XG4gICRpbXBsaWNpdDogRGF0ZVJhbmdlO1xufTtcblxuZXhwb3J0IHR5cGUgQ2FsZW5kYXJNb250aHNWaWV3SGVhZGVyQ29udGV4dCA9IHtcbiAgb3BlbkRheXNWaWV3OiAoKSA9PiB2b2lkO1xuICBvcGVuWWVhcnNWaWV3OiAoKSA9PiB2b2lkO1xuICB5ZWFyOiBudW1iZXI7XG4gIGRhdGU6IERhdGU7XG4gICRpbXBsaWNpdDogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQ2FsZW5kYXJEYXlzVmlld0hlYWRlckNvbnRleHQgPSB7XG4gIG5leHRNb250aDogKCkgPT4gdm9pZDtcbiAgcHJldk1vbnRoOiAoKSA9PiB2b2lkO1xuICBuZXh0WWVhcjogKCkgPT4gdm9pZDtcbiAgcHJldlllYXI6ICgpID0+IHZvaWQ7XG4gIG9wZW5ZZWFyc1ZpZXc6ICgpID0+IHZvaWQ7XG4gIG9wZW5Nb250aHNWaWV3OiAoKSA9PiB2b2lkO1xuICB5ZWFyOiBudW1iZXI7XG4gIG1vbnRoOiBudW1iZXI7XG4gIGRhdGU6IERhdGU7XG4gICRpbXBsaWNpdDogRGF0ZTtcbn07XG5cbmV4cG9ydCB0eXBlIENhbGVuZGFyV2Vla2RheUNvbnRleHQgPSB7XG4gIGRheUluZGV4OiBudW1iZXI7XG4gIGRhdGU6IERhdGU7XG4gICRpbXBsaWNpdDogRGF0ZTtcbn07XG5cbmV4cG9ydCB0eXBlIENhbGVuZGFyRmxvYXRpbmdNb250aENvbnRleHQgPSB7XG4gIG1vbnRoOiBudW1iZXI7XG4gIGRhdGU6IERhdGU7XG4gICRpbXBsaWNpdDogRGF0ZTtcbn07XG5cbmV4cG9ydCB0eXBlIENhbGVuZGFyWWVhckNvbnRleHQgPSB7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGRhdGU6IERhdGU7XG4gICRpbXBsaWNpdDogbnVtYmVyO1xuICBzZWxlY3Q6ICh5ZWFyOiBudW1iZXIpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBDYWxlbmRhck1vbnRoQ29udGV4dCA9IHtcbiAgbW9udGg6IG51bWJlcjtcbiAgZGF0ZTogRGF0ZTtcbiAgJGltcGxpY2l0OiBEYXRlO1xuICBzZWxlY3Q6IChtb250aDogbnVtYmVyIHwgRGF0ZSkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIENhbGVuZGFyRGF5Q29udGV4dCA9IHtcbiAgdmFsdWU6IG51bWJlcjtcbiAgZGF0ZTogRGF0ZTtcbiAgJGltcGxpY2l0OiBudW1iZXI7XG4gIHNlbGVjdDogKGRheTogbnVtYmVyIHwgRGF0ZSkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIENhbGVuZGFyQWN0aW9uQnV0dG9uc0NvbnRleHQgPSB7XG4gIGNhbmNlbDogKCkgPT4gdm9pZDtcbiAgYXBwbHk6ICgpID0+IHZvaWQ7XG4gIHJlc2V0OiAoKSA9PiB2b2lkO1xufTtcbiJdfQ==
@@ -94,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
94
94
  type: Directive,
95
95
  args: [{ selector: 'ard-card-footer, [ard-card-footer]' }]
96
96
  }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }] });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jaGlsZHJlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY2FyZC9jYXJkLmNoaWxkcmVuLnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jYXJkL2NhcmQtaGVhZGVyLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBYSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1SSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFRNUQsTUFBTSxPQUFPLHlCQUF5Qjs4R0FBekIseUJBQXlCO2tHQUF6Qix5QkFBeUIsdURDVHRDLHVSQU15Qjs7MkZER1oseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNJLGlCQUFpQixpQkFFWixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOztBQUtuRCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3BDLFlBQVksUUFBbUIsRUFBRSxXQUF1QjtRQUNwRCxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUN0RSxDQUFDOzhHQUhRLDJCQUEyQjtrR0FBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUR2QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHdDQUF3QyxFQUFFOztBQVFqRSxNQUFNLE9BQU8sd0JBQXdCO0lBQ2pDLFlBQVksUUFBbUIsRUFBRSxXQUF1QjtRQUNwRCxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNuRSxDQUFDOzhHQUhRLHdCQUF3QjtrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQURwQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGtDQUFrQyxFQUFFOztBQVEzRCxNQUFNLE9BQU8seUJBQXlCO0lBQ2xDLFlBQVksUUFBbUIsRUFBRSxXQUF1QjtRQUNwRCxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUNwRSxDQUFDOzhHQUhRLHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFOztBQVE1QyxNQUFNLE9BQU8sMEJBQTBCO0lBQ25DLFlBQVksUUFBbUIsRUFBRSxXQUF1QjtRQUNwRCxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUNyRSxDQUFDOzhHQUhRLDBCQUEwQjtrR0FBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUR0QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHNDQUFzQyxFQUFFOztBQVEvRCxNQUFNLE9BQU8sd0JBQXdCO0lBQ2pDLFlBQVksUUFBbUIsRUFBRSxXQUF1QjtRQUNwRCxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNuRSxDQUFDOzhHQUhRLHdCQUF3QjtrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQURwQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFOztBQVEzQyxNQUFNLE9BQU8sZ0NBQWdDO0lBRDdDO1FBRWEsVUFBSyxHQUFxQixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7S0FNN0Q7SUFKRyxJQUNJLFVBQVU7UUFDVixPQUFPLHFDQUFxQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0QsQ0FBQzs4R0FOUSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQzs7MkZBQWhDLGdDQUFnQztrQkFENUMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxvREFBb0QsRUFBRTs4QkFFaEUsS0FBSztzQkFBYixLQUFLO2dCQUdGLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPOztBQU94QixNQUFNLE9BQU8seUJBQXlCO0lBQ2xDLFlBQVksUUFBbUIsRUFBRSxXQUF1QjtRQUNwRCxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUNwRSxDQUFDOzhHQUhRLHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLG9DQUFvQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIFJlbmRlcmVyMiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9uZUF4aXNBbGlnbm1lbnQgfSBmcm9tICcuLi90eXBlcy9hbGlnbm1lbnQudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FyZC1jYXJkLWhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICdjYXJkLWhlYWRlci50ZW1wbGF0ZS5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1DYXJkSGVhZGVyQ29tcG9uZW50IHt9XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2FyZC1jYXJkLXN1YnRpdGxlLCBbYXJkLWNhcmQtc3VidGl0bGVdJyB9KVxuZXhwb3J0IGNsYXNzIEFyZGl1bUNhcmRTdWJ0aXRsZURpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocmVuZGVyZXI6IFJlbmRlcmVyMiwgaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgcmVuZGVyZXIuYWRkQ2xhc3MoaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2FyZC1jYXJkLXN1YnRpdGxlJyk7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdhcmQtY2FyZC10aXRsZSwgW2FyZC1jYXJkLXRpdGxlXScgfSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1DYXJkVGl0bGVEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHJlbmRlcmVyOiBSZW5kZXJlcjIsIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHJlbmRlcmVyLmFkZENsYXNzKGhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdhcmQtY2FyZC10aXRsZScpO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2FyZC1jYXJkLWF2YXRhcl0nIH0pXG5leHBvcnQgY2xhc3MgQXJkaXVtQ2FyZEF2YXRhckRpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocmVuZGVyZXI6IFJlbmRlcmVyMiwgaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgcmVuZGVyZXIuYWRkQ2xhc3MoaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2FyZC1jYXJkLWF2YXRhcicpO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLWNhcmQtY29udGVudCwgW2FyZC1jYXJkLWNvbnRlbnRdJyB9KVxuZXhwb3J0IGNsYXNzIEFyZGl1bUNhcmRDb250ZW50RGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihyZW5kZXJlcjogUmVuZGVyZXIyLCBob3N0RWxlbWVudDogRWxlbWVudFJlZikge1xuICAgICAgICByZW5kZXJlci5hZGRDbGFzcyhob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnYXJkLWNhcmQtY29udGVudCcpO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2FyZC1jYXJkLWltYWdlXScgfSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1DYXJkSW1hZ2VEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHJlbmRlcmVyOiBSZW5kZXJlcjIsIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHJlbmRlcmVyLmFkZENsYXNzKGhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdhcmQtY2FyZC1pbWFnZScpO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLWNhcmQtYWN0aW9uLWJ1dHRvbnMsIFthcmQtY2FyZC1hY3Rpb24tYnV0dG9uc10nIH0pXG5leHBvcnQgY2xhc3MgQXJkaXVtQ2FyZEFjdGlvbkJ1dHRvbnNEaXJlY3RpdmUge1xuICAgIEBJbnB1dCgpIGFsaWduOiBPbmVBeGlzQWxpZ25tZW50ID0gT25lQXhpc0FsaWdubWVudC5SaWdodDtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBhbGlnbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgYXJkLWNhcmQtYWN0aW9uLWJ1dHRvbnMgYXJkLWFsaWduLSR7dGhpcy5hbGlnbn1gO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLWNhcmQtZm9vdGVyLCBbYXJkLWNhcmQtZm9vdGVyXScgfSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1DYXJkRm9vdGVyRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihyZW5kZXJlcjogUmVuZGVyZXIyLCBob3N0RWxlbWVudDogRWxlbWVudFJlZikge1xuICAgICAgICByZW5kZXJlci5hZGRDbGFzcyhob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnYXJkLWNhcmQtZm9vdGVyJyk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2FyZC1jYXJkLWF2YXRhcl1cIj48L25nLWNvbnRlbnQ+XHJcbjxkaXYgY2xhc3M9XCJhcmQtY2FyZC1oZWFkZXItdGl0bGUtY29udGFpbmVyXCI+XHJcbiAgPG5nLWNvbnRlbnRcclxuICAgICAgc2VsZWN0PVwiYXJkLWNhcmQtdGl0bGUsIGFyZC1jYXJkLXN1YnRpdGxlLFxyXG4gICAgICBbYXJkLWNhcmQtdGl0bGVdLCBbYXJkLWNhcmQtc3VidGl0bGVdXCI+PC9uZy1jb250ZW50PlxyXG48L2Rpdj5cclxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiJdfQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jaGlsZHJlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY2FyZC9jYXJkLmNoaWxkcmVuLnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jYXJkL2NhcmQtaGVhZGVyLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBYSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1SSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFRNUQsTUFBTSxPQUFPLHlCQUF5Qjs4R0FBekIseUJBQXlCO2tHQUF6Qix5QkFBeUIsdURDVHRDLHVSQU15Qjs7MkZER1oseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLGlCQUFpQixpQkFFWixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOztBQUtqRCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQVksUUFBbUIsRUFBRSxXQUF1QjtRQUN0RCxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNwRSxDQUFDOzhHQUhVLDJCQUEyQjtrR0FBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUR2QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHdDQUF3QyxFQUFFOztBQVFqRSxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQVksUUFBbUIsRUFBRSxXQUF1QjtRQUN0RCxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNqRSxDQUFDOzhHQUhVLHdCQUF3QjtrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQURwQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGtDQUFrQyxFQUFFOztBQVEzRCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQVksUUFBbUIsRUFBRSxXQUF1QjtRQUN0RCxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUNsRSxDQUFDOzhHQUhVLHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFOztBQVE1QyxNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLFlBQVksUUFBbUIsRUFBRSxXQUF1QjtRQUN0RCxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUNuRSxDQUFDOzhHQUhVLDBCQUEwQjtrR0FBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUR0QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHNDQUFzQyxFQUFFOztBQVEvRCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQVksUUFBbUIsRUFBRSxXQUF1QjtRQUN0RCxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNqRSxDQUFDOzhHQUhVLHdCQUF3QjtrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQURwQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFOztBQVEzQyxNQUFNLE9BQU8sZ0NBQWdDO0lBRDdDO1FBRVcsVUFBSyxHQUFxQixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7S0FNM0Q7SUFKQyxJQUNJLFVBQVU7UUFDWixPQUFPLHFDQUFxQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0QsQ0FBQzs4R0FOVSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQzs7MkZBQWhDLGdDQUFnQztrQkFENUMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxvREFBb0QsRUFBRTs4QkFFbEUsS0FBSztzQkFBYixLQUFLO2dCQUdGLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPOztBQU90QixNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQVksUUFBbUIsRUFBRSxXQUF1QjtRQUN0RCxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUNsRSxDQUFDOzhHQUhVLHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLG9DQUFvQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIFJlbmRlcmVyMiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9uZUF4aXNBbGlnbm1lbnQgfSBmcm9tICcuLi90eXBlcy9hbGlnbm1lbnQudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcmQtY2FyZC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJ2NhcmQtaGVhZGVyLnRlbXBsYXRlLmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQXJkaXVtQ2FyZEhlYWRlckNvbXBvbmVudCB7fVxuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdhcmQtY2FyZC1zdWJ0aXRsZSwgW2FyZC1jYXJkLXN1YnRpdGxlXScgfSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1DYXJkU3VidGl0bGVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihyZW5kZXJlcjogUmVuZGVyZXIyLCBob3N0RWxlbWVudDogRWxlbWVudFJlZikge1xuICAgIHJlbmRlcmVyLmFkZENsYXNzKGhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdhcmQtY2FyZC1zdWJ0aXRsZScpO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2FyZC1jYXJkLXRpdGxlLCBbYXJkLWNhcmQtdGl0bGVdJyB9KVxuZXhwb3J0IGNsYXNzIEFyZGl1bUNhcmRUaXRsZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHJlbmRlcmVyOiBSZW5kZXJlcjIsIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gICAgcmVuZGVyZXIuYWRkQ2xhc3MoaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2FyZC1jYXJkLXRpdGxlJyk7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2FyZC1jYXJkLWF2YXRhcl0nIH0pXG5leHBvcnQgY2xhc3MgQXJkaXVtQ2FyZEF2YXRhckRpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHJlbmRlcmVyOiBSZW5kZXJlcjIsIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gICAgcmVuZGVyZXIuYWRkQ2xhc3MoaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2FyZC1jYXJkLWF2YXRhcicpO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2FyZC1jYXJkLWNvbnRlbnQsIFthcmQtY2FyZC1jb250ZW50XScgfSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1DYXJkQ29udGVudERpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHJlbmRlcmVyOiBSZW5kZXJlcjIsIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gICAgcmVuZGVyZXIuYWRkQ2xhc3MoaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2FyZC1jYXJkLWNvbnRlbnQnKTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbYXJkLWNhcmQtaW1hZ2VdJyB9KVxuZXhwb3J0IGNsYXNzIEFyZGl1bUNhcmRJbWFnZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHJlbmRlcmVyOiBSZW5kZXJlcjIsIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gICAgcmVuZGVyZXIuYWRkQ2xhc3MoaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2FyZC1jYXJkLWltYWdlJyk7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLWNhcmQtYWN0aW9uLWJ1dHRvbnMsIFthcmQtY2FyZC1hY3Rpb24tYnV0dG9uc10nIH0pXG5leHBvcnQgY2xhc3MgQXJkaXVtQ2FyZEFjdGlvbkJ1dHRvbnNEaXJlY3RpdmUge1xuICBASW5wdXQoKSBhbGlnbjogT25lQXhpc0FsaWdubWVudCA9IE9uZUF4aXNBbGlnbm1lbnQuUmlnaHQ7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBhbGlnbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBhcmQtY2FyZC1hY3Rpb24tYnV0dG9ucyBhcmQtYWxpZ24tJHt0aGlzLmFsaWdufWA7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLWNhcmQtZm9vdGVyLCBbYXJkLWNhcmQtZm9vdGVyXScgfSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1DYXJkRm9vdGVyRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocmVuZGVyZXI6IFJlbmRlcmVyMiwgaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWYpIHtcbiAgICByZW5kZXJlci5hZGRDbGFzcyhob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnYXJkLWNhcmQtZm9vdGVyJyk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cIlthcmQtY2FyZC1hdmF0YXJdXCI+PC9uZy1jb250ZW50PlxyXG48ZGl2IGNsYXNzPVwiYXJkLWNhcmQtaGVhZGVyLXRpdGxlLWNvbnRhaW5lclwiPlxyXG4gIDxuZy1jb250ZW50XHJcbiAgICAgIHNlbGVjdD1cImFyZC1jYXJkLXRpdGxlLCBhcmQtY2FyZC1zdWJ0aXRsZSxcclxuICAgICAgW2FyZC1jYXJkLXRpdGxlXSwgW2FyZC1jYXJkLXN1YnRpdGxlXVwiPjwvbmctY29udGVudD5cclxuPC9kaXY+XHJcbjxuZy1jb250ZW50PjwvbmctY29udGVudD4iXX0=