@fundamental-ngx/core 0.49.1 → 0.49.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 (310) hide show
  1. package/avatar-group-legacy/avatar-group-legacy.component.d.ts +6 -6
  2. package/avatar-group-legacy/directives/avatar-group-legacy-overflow-body.directive.d.ts +2 -2
  3. package/avatar-group-legacy/directives/avatar-group-legacy-overflow-button.directive.d.ts +2 -2
  4. package/bar/bar.component.d.ts +6 -6
  5. package/bar/button-bar/button-bar.component.d.ts +4 -4
  6. package/calendar/calendar-header/calendar-header.component.d.ts +2 -2
  7. package/card/card-content.component.d.ts +2 -2
  8. package/card/card-counter.directive.d.ts +2 -2
  9. package/card/card-header.component.d.ts +6 -6
  10. package/card/card-loader.component.d.ts +2 -2
  11. package/card/card-second-subtitle.directive.d.ts +2 -2
  12. package/card/card-subtitle.directive.d.ts +2 -2
  13. package/card/card-title.directive.d.ts +2 -2
  14. package/card/card.component.d.ts +3 -3
  15. package/card/kpi/card-kpi-analytics-content.directive.d.ts +2 -2
  16. package/card/kpi/card-kpi-analytics-label.directive.d.ts +2 -2
  17. package/card/kpi/card-kpi-analytics.directive.d.ts +2 -2
  18. package/card/kpi/card-kpi-header.component.d.ts +2 -2
  19. package/card/kpi/card-kpi-scale-icon.directive.d.ts +2 -2
  20. package/card/kpi/card-kpi-scale-text.directive.d.ts +2 -2
  21. package/card/kpi/card-kpi-value.directive.d.ts +4 -4
  22. package/checkbox/checkbox/checkbox.component.d.ts +3 -5
  23. package/content-density/providers/url-content-density-storage.d.ts +4 -4
  24. package/content-density/services/content-density-observer.service.d.ts +15 -15
  25. package/datetime/datetime-adapter.d.ts +9 -2
  26. package/datetime/fd-date.d.ts +10 -14
  27. package/datetime/fd-datetime-adapter.d.ts +2 -2
  28. package/dialog/base/dialog-base.class.d.ts +2 -2
  29. package/dialog/base/dialog-header-base.class.d.ts +4 -4
  30. package/dialog/base/dialog-ref-base.class.d.ts +6 -4
  31. package/dynamic-side-content/dynamic-side-content.component.d.ts +4 -4
  32. package/esm2022/avatar-group-legacy/avatar-group-legacy.component.mjs +15 -15
  33. package/esm2022/avatar-group-legacy/directives/avatar-group-legacy-overflow-body.directive.mjs +12 -12
  34. package/esm2022/avatar-group-legacy/directives/avatar-group-legacy-overflow-button.directive.mjs +9 -9
  35. package/esm2022/bar/bar.component.mjs +13 -13
  36. package/esm2022/bar/button-bar/button-bar.component.mjs +3 -3
  37. package/esm2022/calendar/calendar-header/calendar-header.component.mjs +1 -1
  38. package/esm2022/card/card-content.component.mjs +5 -5
  39. package/esm2022/card/card-counter.directive.mjs +6 -6
  40. package/esm2022/card/card-header.component.mjs +5 -5
  41. package/esm2022/card/card-loader.component.mjs +5 -5
  42. package/esm2022/card/card-second-subtitle.directive.mjs +5 -5
  43. package/esm2022/card/card-subtitle.directive.mjs +5 -5
  44. package/esm2022/card/card-title.directive.mjs +5 -5
  45. package/esm2022/card/card.component.mjs +5 -5
  46. package/esm2022/card/kpi/card-kpi-analytics-content.directive.mjs +5 -5
  47. package/esm2022/card/kpi/card-kpi-analytics-label.directive.mjs +5 -5
  48. package/esm2022/card/kpi/card-kpi-analytics.directive.mjs +5 -5
  49. package/esm2022/card/kpi/card-kpi-header.component.mjs +5 -5
  50. package/esm2022/card/kpi/card-kpi-scale-icon.directive.mjs +5 -5
  51. package/esm2022/card/kpi/card-kpi-scale-text.directive.mjs +5 -5
  52. package/esm2022/card/kpi/card-kpi-value.directive.mjs +5 -5
  53. package/esm2022/checkbox/checkbox/checkbox.component.mjs +1 -1
  54. package/esm2022/combobox/combobox.component.mjs +2 -2
  55. package/esm2022/content-density/providers/url-content-density-storage.mjs +11 -11
  56. package/esm2022/content-density/services/content-density-observer.service.mjs +7 -16
  57. package/esm2022/datetime/datetime-adapter.mjs +4 -2
  58. package/esm2022/datetime/fd-date.mjs +34 -27
  59. package/esm2022/datetime/fd-datetime-adapter.mjs +1 -1
  60. package/esm2022/dialog/base/dialog-base.class.mjs +1 -1
  61. package/esm2022/dialog/base/dialog-header-base.class.mjs +1 -1
  62. package/esm2022/dialog/base/dialog-ref-base.class.mjs +4 -8
  63. package/esm2022/dynamic-side-content/dynamic-side-content.component.mjs +9 -9
  64. package/esm2022/feed-input/directives/feed-input-avatar.directive.mjs +5 -5
  65. package/esm2022/feed-list-item/components/list/feed-list.component.mjs +15 -15
  66. package/esm2022/file-uploader/directives/file-uploader-select.directive.mjs +1 -1
  67. package/esm2022/file-uploader/file-uploader.component.mjs +5 -5
  68. package/esm2022/fixed-card-layout/fixed-card-layout-item/fixed-card-layout-item.component.mjs +3 -3
  69. package/esm2022/form/form-group/form-group.component.mjs +8 -8
  70. package/esm2022/form/form-message/form-message.component.mjs +9 -9
  71. package/esm2022/grid-list/components/grid-list/grid-list.component.mjs +2 -3
  72. package/esm2022/grid-list/components/grid-list-item/grid-list-item.component.mjs +3 -3
  73. package/esm2022/illustrated-message/illustrated-message.component.mjs +10 -10
  74. package/esm2022/input-group/input-group-directives.mjs +22 -22
  75. package/esm2022/layout-grid/directives/layout-grid-col.directive.mjs +9 -9
  76. package/esm2022/layout-grid/layout-grid.component.mjs +9 -9
  77. package/esm2022/layout-panel/layout-panel-footer/layout-panel-footer.component.mjs +9 -9
  78. package/esm2022/list/list-item/list-item.component.mjs +20 -17
  79. package/esm2022/list/list-message.directive.mjs +9 -9
  80. package/esm2022/menu/directives/segmented-button/segmented-button-header.directive.mjs +1 -2
  81. package/esm2022/menu/directives/toggle-button.directive.mjs +1 -2
  82. package/esm2022/message-box/message-box.component.mjs +17 -17
  83. package/esm2022/message-page/message-page.component.mjs +5 -5
  84. package/esm2022/message-strip/alert/message-strip-alert/message-strip-alert.component.mjs +5 -5
  85. package/esm2022/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.mjs +1 -1
  86. package/esm2022/message-strip/alert/message-strip-alert.service.mjs +2 -3
  87. package/esm2022/message-strip/message-strip.component.mjs +16 -16
  88. package/esm2022/micro-process-flow/components/micro-process-flow/micro-process-flow.component.mjs +43 -45
  89. package/esm2022/micro-process-flow/components/micro-process-flow-item/micro-process-flow-item.component.mjs +1 -1
  90. package/esm2022/micro-process-flow/micro-process-flow-focusable-item.directive.mjs +13 -13
  91. package/esm2022/multi-combobox/multi-combobox.component.mjs +2 -5
  92. package/esm2022/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +1 -1
  93. package/esm2022/multi-input/multi-input.component.mjs +2 -2
  94. package/esm2022/nested-list/nested-content/nested-list-content.directive.mjs +6 -6
  95. package/esm2022/nested-list/nested-item/nested-item.directive.mjs +3 -3
  96. package/esm2022/nested-list/nested-list/nested-list.directive.mjs +3 -3
  97. package/esm2022/notification/directives/notification-indicator.directive.mjs +9 -9
  98. package/esm2022/notification/notification/notification.component.mjs +9 -9
  99. package/esm2022/notification/notification-group/notification-group.component.mjs +5 -5
  100. package/esm2022/notification/notification-service/notification.service.mjs +5 -2
  101. package/esm2022/notification/notification-utils/notification-ref.mjs +2 -5
  102. package/esm2022/object-number/object-number.component.mjs +9 -9
  103. package/esm2022/object-status/object-status.component.mjs +13 -12
  104. package/esm2022/overflow-layout/directives/overflow-expand.directive.mjs +5 -5
  105. package/esm2022/overflow-layout/directives/overflow-item-ref.directive.mjs +1 -1
  106. package/esm2022/overflow-layout/directives/overflow-layout-focusable-item.directive.mjs +5 -5
  107. package/esm2022/overflow-layout/directives/overflow-layout-item-container.directive.mjs +8 -8
  108. package/esm2022/overflow-layout/interfaces/overflow-focusable-item.interface.mjs +1 -1
  109. package/esm2022/overflow-layout/overflow-layout.component.mjs +18 -18
  110. package/esm2022/radio/radio-button/radio-button.component.mjs +8 -9
  111. package/esm2022/rating-indicator/components/rating-indicator.component.mjs +28 -28
  112. package/esm2022/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.mjs +23 -23
  113. package/esm2022/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.mjs +7 -8
  114. package/esm2022/select/select.component.mjs +18 -18
  115. package/esm2022/shared/interfaces/search-component.interface.mjs +1 -1
  116. package/esm2022/shellbar/shellbar.component.mjs +7 -7
  117. package/esm2022/side-navigation/side-navigation.component.mjs +7 -7
  118. package/esm2022/skeleton/components/skeleton.component.mjs +3 -3
  119. package/esm2022/status-indicator/status-indicator.component.mjs +15 -15
  120. package/esm2022/table/directives/table-responsive-wrapper.directive.mjs +3 -3
  121. package/esm2022/tabs/tab-item/tab-item.directive.mjs +9 -9
  122. package/esm2022/tabs/tab-link/tab-link.directive.mjs +8 -8
  123. package/esm2022/tabs/tab-nav/tab-nav.component.mjs +15 -15
  124. package/esm2022/tabs/tab-panel/tab-panel.component.mjs +3 -3
  125. package/esm2022/tabs/tab-utils/tab-directives.mjs +8 -8
  126. package/esm2022/tile/directives/tile.directives.mjs +25 -25
  127. package/esm2022/tile/tile.component.mjs +9 -11
  128. package/esm2022/time/time-column/time-column.component.mjs +23 -23
  129. package/esm2022/timeline/services/position-strategies/base-strategy.mjs +1 -1
  130. package/esm2022/timeline/timeline.component.mjs +5 -5
  131. package/esm2022/title/title.component.mjs +4 -4
  132. package/esm2022/token/tokenizer.component.mjs +71 -71
  133. package/esm2022/toolbar/toolbar.component.mjs +3 -3
  134. package/esm2022/tree/components/tree-item/tree-item.component.mjs +4 -6
  135. package/esm2022/tree/tree.component.mjs +1 -4
  136. package/esm2022/upload-collection/upload-collection-item.directive.mjs +3 -3
  137. package/esm2022/vertical-navigation/vertical-navigation.component.mjs +6 -6
  138. package/esm2022/wizard/wizard-step/wizard-step.component.mjs +3 -3
  139. package/feed-input/directives/feed-input-avatar.directive.d.ts +2 -2
  140. package/feed-list-item/components/list/feed-list.component.d.ts +6 -6
  141. package/fesm2022/fundamental-ngx-core-avatar-group-legacy.mjs +33 -33
  142. package/fesm2022/fundamental-ngx-core-avatar-group-legacy.mjs.map +1 -1
  143. package/fesm2022/fundamental-ngx-core-bar.mjs +14 -14
  144. package/fesm2022/fundamental-ngx-core-bar.mjs.map +1 -1
  145. package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
  146. package/fesm2022/fundamental-ngx-core-card.mjs +61 -61
  147. package/fesm2022/fundamental-ngx-core-card.mjs.map +1 -1
  148. package/fesm2022/fundamental-ngx-core-checkbox.mjs.map +1 -1
  149. package/fesm2022/fundamental-ngx-core-combobox.mjs +1 -1
  150. package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
  151. package/fesm2022/fundamental-ngx-core-content-density.mjs +17 -26
  152. package/fesm2022/fundamental-ngx-core-content-density.mjs.map +1 -1
  153. package/fesm2022/fundamental-ngx-core-datetime.mjs +36 -27
  154. package/fesm2022/fundamental-ngx-core-datetime.mjs.map +1 -1
  155. package/fesm2022/fundamental-ngx-core-dialog.mjs +3 -7
  156. package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
  157. package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs +8 -8
  158. package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs.map +1 -1
  159. package/fesm2022/fundamental-ngx-core-feed-input.mjs +4 -4
  160. package/fesm2022/fundamental-ngx-core-feed-input.mjs.map +1 -1
  161. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +14 -14
  162. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
  163. package/fesm2022/fundamental-ngx-core-file-uploader.mjs +4 -4
  164. package/fesm2022/fundamental-ngx-core-file-uploader.mjs.map +1 -1
  165. package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs +2 -2
  166. package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
  167. package/fesm2022/fundamental-ngx-core-form.mjs +15 -15
  168. package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
  169. package/fesm2022/fundamental-ngx-core-grid-list.mjs +3 -4
  170. package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
  171. package/fesm2022/fundamental-ngx-core-illustrated-message.mjs +9 -9
  172. package/fesm2022/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
  173. package/fesm2022/fundamental-ngx-core-input-group.mjs +21 -21
  174. package/fesm2022/fundamental-ngx-core-input-group.mjs.map +1 -1
  175. package/fesm2022/fundamental-ngx-core-layout-grid.mjs +16 -16
  176. package/fesm2022/fundamental-ngx-core-layout-grid.mjs.map +1 -1
  177. package/fesm2022/fundamental-ngx-core-layout-panel.mjs +8 -8
  178. package/fesm2022/fundamental-ngx-core-layout-panel.mjs.map +1 -1
  179. package/fesm2022/fundamental-ngx-core-list.mjs +27 -24
  180. package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
  181. package/fesm2022/fundamental-ngx-core-menu.mjs +0 -2
  182. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  183. package/fesm2022/fundamental-ngx-core-message-box.mjs +16 -16
  184. package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
  185. package/fesm2022/fundamental-ngx-core-message-page.mjs +4 -4
  186. package/fesm2022/fundamental-ngx-core-message-page.mjs.map +1 -1
  187. package/fesm2022/fundamental-ngx-core-message-strip.mjs +20 -21
  188. package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
  189. package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs +55 -57
  190. package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs.map +1 -1
  191. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +1 -4
  192. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  193. package/fesm2022/fundamental-ngx-core-multi-input.mjs +1 -1
  194. package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
  195. package/fesm2022/fundamental-ngx-core-nested-list.mjs +9 -9
  196. package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
  197. package/fesm2022/fundamental-ngx-core-notification.mjs +25 -25
  198. package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
  199. package/fesm2022/fundamental-ngx-core-object-number.mjs +8 -8
  200. package/fesm2022/fundamental-ngx-core-object-number.mjs.map +1 -1
  201. package/fesm2022/fundamental-ngx-core-object-status.mjs +12 -11
  202. package/fesm2022/fundamental-ngx-core-object-status.mjs.map +1 -1
  203. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +32 -32
  204. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
  205. package/fesm2022/fundamental-ngx-core-radio.mjs +7 -8
  206. package/fesm2022/fundamental-ngx-core-radio.mjs.map +1 -1
  207. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +27 -27
  208. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  209. package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs +28 -29
  210. package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
  211. package/fesm2022/fundamental-ngx-core-select.mjs +17 -17
  212. package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
  213. package/fesm2022/fundamental-ngx-core-shellbar.mjs +6 -6
  214. package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
  215. package/fesm2022/fundamental-ngx-core-side-navigation.mjs +6 -6
  216. package/fesm2022/fundamental-ngx-core-side-navigation.mjs.map +1 -1
  217. package/fesm2022/fundamental-ngx-core-skeleton.mjs +2 -2
  218. package/fesm2022/fundamental-ngx-core-skeleton.mjs.map +1 -1
  219. package/fesm2022/fundamental-ngx-core-status-indicator.mjs +14 -14
  220. package/fesm2022/fundamental-ngx-core-status-indicator.mjs.map +1 -1
  221. package/fesm2022/fundamental-ngx-core-table.mjs +2 -2
  222. package/fesm2022/fundamental-ngx-core-table.mjs.map +1 -1
  223. package/fesm2022/fundamental-ngx-core-tabs.mjs +38 -38
  224. package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
  225. package/fesm2022/fundamental-ngx-core-tile.mjs +32 -34
  226. package/fesm2022/fundamental-ngx-core-tile.mjs.map +1 -1
  227. package/fesm2022/fundamental-ngx-core-time.mjs +23 -23
  228. package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
  229. package/fesm2022/fundamental-ngx-core-timeline.mjs +4 -4
  230. package/fesm2022/fundamental-ngx-core-timeline.mjs.map +1 -1
  231. package/fesm2022/fundamental-ngx-core-title.mjs +3 -3
  232. package/fesm2022/fundamental-ngx-core-title.mjs.map +1 -1
  233. package/fesm2022/fundamental-ngx-core-token.mjs +70 -70
  234. package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
  235. package/fesm2022/fundamental-ngx-core-toolbar.mjs +2 -2
  236. package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
  237. package/fesm2022/fundamental-ngx-core-tree.mjs +3 -8
  238. package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
  239. package/fesm2022/fundamental-ngx-core-upload-collection.mjs +2 -2
  240. package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  241. package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs +5 -5
  242. package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs.map +1 -1
  243. package/fesm2022/fundamental-ngx-core-wizard.mjs +2 -2
  244. package/fesm2022/fundamental-ngx-core-wizard.mjs.map +1 -1
  245. package/file-uploader/directives/file-uploader-select.directive.d.ts +1 -1
  246. package/file-uploader/file-uploader.component.d.ts +4 -4
  247. package/form/form-group/form-group.component.d.ts +4 -4
  248. package/form/form-message/form-message.component.d.ts +2 -2
  249. package/grid-list/components/grid-list/grid-list.component.d.ts +3 -2
  250. package/grid-list/components/grid-list-item/grid-list-item.component.d.ts +8 -8
  251. package/illustrated-message/illustrated-message.component.d.ts +7 -7
  252. package/input-group/input-group-directives.d.ts +12 -12
  253. package/layout-grid/directives/layout-grid-col.directive.d.ts +2 -2
  254. package/layout-grid/layout-grid.component.d.ts +2 -2
  255. package/layout-panel/layout-panel-footer/layout-panel-footer.component.d.ts +2 -2
  256. package/list/list-item/list-item.component.d.ts +13 -13
  257. package/list/list-message.directive.d.ts +4 -4
  258. package/message-box/message-box.component.d.ts +5 -5
  259. package/message-page/message-page.component.d.ts +2 -2
  260. package/message-strip/alert/message-strip-alert/message-strip-alert.component.d.ts +4 -4
  261. package/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.d.ts +4 -4
  262. package/message-strip/alert/message-strip-alert.service.d.ts +3 -2
  263. package/message-strip/message-strip.component.d.ts +6 -6
  264. package/micro-process-flow/components/micro-process-flow/micro-process-flow.component.d.ts +15 -17
  265. package/micro-process-flow/components/micro-process-flow-item/micro-process-flow-item.component.d.ts +2 -2
  266. package/micro-process-flow/micro-process-flow-focusable-item.directive.d.ts +6 -6
  267. package/multi-input/multi-input-mobile/multi-input-mobile.component.d.ts +2 -2
  268. package/nested-list/nested-content/nested-list-content.directive.d.ts +2 -2
  269. package/nested-list/nested-item/nested-item.directive.d.ts +2 -2
  270. package/nested-list/nested-list/nested-list.directive.d.ts +2 -2
  271. package/notification/directives/notification-indicator.directive.d.ts +4 -4
  272. package/notification/notification/notification.component.d.ts +2 -2
  273. package/notification/notification-group/notification-group.component.d.ts +2 -2
  274. package/notification/notification-utils/notification-ref.d.ts +5 -3
  275. package/object-number/object-number.component.d.ts +4 -4
  276. package/object-status/object-status.component.d.ts +5 -4
  277. package/overflow-layout/directives/overflow-expand.directive.d.ts +2 -2
  278. package/overflow-layout/directives/overflow-item-ref.directive.d.ts +2 -2
  279. package/overflow-layout/directives/overflow-layout-focusable-item.directive.d.ts +2 -2
  280. package/overflow-layout/directives/overflow-layout-item-container.directive.d.ts +2 -2
  281. package/overflow-layout/interfaces/overflow-focusable-item.interface.d.ts +1 -1
  282. package/overflow-layout/overflow-layout.component.d.ts +4 -4
  283. package/package.json +3 -3
  284. package/radio/radio-button/radio-button.component.d.ts +7 -7
  285. package/rating-indicator/components/rating-indicator.component.d.ts +12 -12
  286. package/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.d.ts +8 -8
  287. package/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.d.ts +2 -2
  288. package/select/select.component.d.ts +19 -19
  289. package/shared/interfaces/search-component.interface.d.ts +1 -1
  290. package/shellbar/shellbar.component.d.ts +12 -12
  291. package/side-navigation/side-navigation.component.d.ts +2 -2
  292. package/skeleton/components/skeleton.component.d.ts +2 -2
  293. package/status-indicator/status-indicator.component.d.ts +7 -7
  294. package/tabs/tab-item/tab-item.directive.d.ts +2 -2
  295. package/tabs/tab-link/tab-link.directive.d.ts +2 -2
  296. package/tabs/tab-nav/tab-nav.component.d.ts +8 -8
  297. package/tabs/tab-panel/tab-panel.component.d.ts +2 -2
  298. package/tabs/tab-utils/tab-directives.d.ts +5 -5
  299. package/tile/directives/tile.directives.d.ts +12 -12
  300. package/tile/tile.component.d.ts +4 -6
  301. package/time/time-column/time-column.component.d.ts +6 -6
  302. package/timeline/services/position-strategies/base-strategy.d.ts +2 -2
  303. package/timeline/timeline.component.d.ts +2 -2
  304. package/title/title.component.d.ts +2 -2
  305. package/token/tokenizer.component.d.ts +16 -16
  306. package/toolbar/toolbar.component.d.ts +2 -2
  307. package/tree/components/tree-item/tree-item.component.d.ts +10 -9
  308. package/upload-collection/upload-collection-item.directive.d.ts +2 -2
  309. package/vertical-navigation/vertical-navigation.component.d.ts +2 -2
  310. package/wizard/wizard-step/wizard-step.component.d.ts +4 -4
@@ -60,13 +60,19 @@ export class RadioButtonComponent {
60
60
  this.standalone = false;
61
61
  /** @hidden */
62
62
  this._subscriptions = new Subscription();
63
- // ControlValueAccessor implementation
64
63
  /** @hidden */
65
64
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
66
65
  this.onChange = (value) => { };
67
66
  /** @hidden */
68
67
  this.onTouched = () => { };
69
68
  }
69
+ /** This method is responsible for building a css class based on current state
70
+ * It is implementation of CssClassBuilder interface and
71
+ * should be used with @applyCssClass decorator
72
+ */
73
+ buildComponentCssClass() {
74
+ return ['fd-radio', this.state !== 'default' ? `is-${this.state}` : ''];
75
+ }
70
76
  /** @hidden */
71
77
  ngOnDestroy() {
72
78
  this._subscriptions.unsubscribe();
@@ -99,13 +105,6 @@ export class RadioButtonComponent {
99
105
  this.valueChange(value, false);
100
106
  }
101
107
  // End implementation
102
- /** This method is responsible for building a css class based on current state
103
- * It is implementation of CssClassBuilder interface and
104
- * should be used with @applyCssClass decorator
105
- */
106
- buildComponentCssClass() {
107
- return ['fd-radio', this.state !== 'default' ? `is-${this.state}` : ''];
108
- }
109
108
  /** @hidden */
110
109
  get elementRef() {
111
110
  return this.inputElement;
@@ -219,4 +218,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
219
218
  }], standalone: [{
220
219
  type: Input
221
220
  }], buildComponentCssClass: [] } });
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9yYWRpby9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9yYWRpby9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQWUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixLQUFLLEVBR0wsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxhQUFhLEVBQTZCLE1BQU0sNEJBQTRCLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEgsT0FBTyxFQUFtQix1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7O0FBR3RELElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQTJCakIsTUFBTSxPQUFPLG9CQUFvQjtJQXVCN0I7O09BRUc7SUFDSCxJQUNJLFFBQVEsQ0FBQyxLQUFrQjtRQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxT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LEtBQUs7Z0JBS04sVUFBVTtzQkFEVCxLQUFLO2dCQStFTixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSwgTnVtYmVySW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgYXBwbHlDc3NDbGFzcywgQ3NzQ2xhc3NCdWlsZGVyLCBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7IEZvcm1JdGVtQ29udHJvbCwgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZEX1JBRElPX0JVVFRPTl9DT01QT05FTlQgfSBmcm9tICcuLi90b2tlbnMnO1xuXG5leHBvcnQgdHlwZSBzdGF0ZVR5cGUgPSAnc3VjY2VzcycgfCAnZXJyb3InIHwgJ3dhcm5pbmcnIHwgJ2RlZmF1bHQnIHwgJ2luZm9ybWF0aW9uJztcbmxldCB1bmlxdWVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtcmFkaW8tYnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhZGlvQnV0dG9uQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX1JBRElPX0JVVFRPTl9DT01QT05FTlQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogUmFkaW9CdXR0b25Db21wb25lbnRcbiAgICAgICAgfSxcbiAgICAgICAgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2woUmFkaW9CdXR0b25Db21wb25lbnQpLFxuICAgICAgICBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzKClcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhmb2N1c291dCknOiAnb25Ub3VjaGVkKCknXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9CdXR0b25Db21wb25lbnQ8VCA9IGFueT5cbiAgICBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgQ3NzQ2xhc3NCdWlsZGVyLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95LCBGb3JtSXRlbUNvbnRyb2xcbntcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudCcpXG4gICAgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgLyoqIFNldHMgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUgdG8gdGhlIGVsZW1lbnQuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWw6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogU2V0cyB0aGUgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlIHRvIHRoZSBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsbGVkQnk6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogU2V0cyB0aGUgYGFyaWEtZGVzY3JpYmVkYnlgIGF0dHJpYnV0ZSB0byB0aGUgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFEZXNjcmliZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBzZXRzIHJhZGlvIHRvb2x0aXAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBJbmNsdWRlcyB0aGUgcmFkaW8gaW4gdGhlIHBhZ2UgdGFiIHNlcXVlbmNlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRhYkluZGV4KHZhbHVlOiBOdW1iZXJJbnB1dCkge1xuICAgICAgICB0aGlzLl90YWJJbmRleCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgdGFiSW5kZXgoKTogTnVtYmVySW5wdXQge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFiSW5kZXg7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90YWJJbmRleDogbnVtYmVyO1xuXG4gICAgLyoqIFRoZSBmaWVsZCB0byBzZXQgc3RhdGUgb2YgcmFkaW8gYnV0dG9uIHVzaW5nOlxuICAgICAqICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnd2FybmluZycgfCAnZGVmYXVsdCcgfCAnaW5mb3JtYXRpb24nXG4gICAgICogYnkgZGVmYXVsdCB2YWx1ZSBpcyBzZXQgdG8gJ2RlZmF1bHQnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGF0ZT86IHN0YXRlVHlwZSA9ICdkZWZhdWx0JztcblxuICAgIC8qKiBUaGUgZmllbGQgaXMgdXNlZCB0byB0ZWxsIGlmIHJhZGlvIGJ1dHRvbiBzaG91bGQgYmUgZGlzYWJsZWRcbiAgICAgKiBWYWx1ZTogdHJ1ZSBvciBmYWxzZVxuICAgICAqIGJ5IGRlZmF1bHQgZGlzYWJsZWQgc3RhdGUgaXMgc2V0IHRvIGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqIFRoZSBmaWVsZCBzaG91bGQgYmUgb25seSB1c2VkIHdpdGggcmVhY3RpdmUgZm9ybXNcbiAgICAgKiBJdHMgcHVycG9zZSBpcyB0byBwYXNzIGEgY3VycmVudCBzZWxlY3RlZCB2YWx1ZSBmcm9tIGZyb3VtR3JvdXBcbiAgICAgKiBUaGUgZmllbGQgaXMgbWFuZGF0b3J5IHdoZW4gd29ya2luZyB3aXRoIHJlYWN0aXZlIGZvcm1zXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgc2VsZWN0ZWRWYWx1ZSh2YWw6IFQpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSB2YWw7XG4gICAgICAgIHRoaXMuX3NldE5hdGl2ZUVsZW1lbnRDaGVja2VkU3RhdGUoKTtcbiAgICB9XG5cbiAgICAvKiogVGhlIG5hbWUgb2YgdGhlIHJhZGlvIGJ1dHRvblxuICAgICAqIFRoZSBmaWVsZCBpcyBtYW5kYXRvcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIHVuaXF1ZUlkIHRvIGEgcmFkaW8gYnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpZCA9IGByYWRpby1pZC0ke3VuaXF1ZUlkKyt9YDtcblxuICAgIC8qKiBWYWx1ZSBmaWVsZCBzdG9yZXMgaW5mb3JtYXRpb24gYWJvdXQgaG9sZGluZyB2YWx1ZSBieSByYWRpbyBidXR0b25cbiAgICAgKiBUaGUgZmllbGQgaXMgbWFuZGF0b3J5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB2YWx1ZTogVDtcblxuICAgIC8qKiBJZiBpdCBpcyBhIG1hbmRhdG9yeSBmaWVsZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVxdWlyZWQgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjb250cm9sIGlzIGEgc3RhbmRhbG9uZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YW5kYWxvbmUgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSByYWRpbyBidXR0b24gaXMgY2hlY2tlZC4gKi9cbiAgICBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRWYWx1ZSA9PT0gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNsYXNzOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGN1cnJlbnRWYWx1ZTogVDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0aW9uUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcmVhZG9ubHkgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXI6IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXJcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgICAgIHRoaXMuX2NoZWNrTWFuZGF0b3J5RmllbGRzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgICAgICB0aGlzLl9jaGVja01hbmRhdG9yeUZpZWxkcygpO1xuICAgIH1cblxuICAgIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudGF0aW9uXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgb25DaGFuZ2UgPSAodmFsdWU6IFQpOiB2b2lkID0+IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBUKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZSh2YWx1ZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIC8vIEVuZCBpbXBsZW1lbnRhdGlvblxuXG4gICAgLyoqIFRoaXMgbWV0aG9kIGlzIHJlc3BvbnNpYmxlIGZvciBidWlsZGluZyBhIGNzcyBjbGFzcyBiYXNlZCBvbiBjdXJyZW50IHN0YXRlXG4gICAgICogIEl0IGlzIGltcGxlbWVudGF0aW9uIG9mIENzc0NsYXNzQnVpbGRlciBpbnRlcmZhY2UgYW5kXG4gICAgICogIHNob3VsZCBiZSB1c2VkIHdpdGggQGFwcGx5Q3NzQ2xhc3MgZGVjb3JhdG9yXG4gICAgICovXG4gICAgQGFwcGx5Q3NzQ2xhc3NcbiAgICBidWlsZENvbXBvbmVudENzc0NsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIFsnZmQtcmFkaW8nLCB0aGlzLnN0YXRlICE9PSAnZGVmYXVsdCcgPyBgaXMtJHt0aGlzLnN0YXRlfWAgOiAnJ107XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgZWxlbWVudFJlZigpOiBFbGVtZW50UmVmIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbGFiZWxDbGlja2VkKGV2ZW50OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCwgYXBwbHlGb2N1cyA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZSh0aGlzLnZhbHVlKTtcblxuICAgICAgICBpZiAoYXBwbHlGb2N1cykge1xuICAgICAgICAgICAgdGhpcy5fc2V0Rm9jdXNPbk5hdGl2ZUVsZW1lbnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdmFsdWVDaGFuZ2UodmFsdWU6IFQsIGVtaXRFdmVudCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLl9zZXROYXRpdmVFbGVtZW50Q2hlY2tlZFN0YXRlKCk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rpb25SZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBpZiAoZW1pdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2hlY2tNYW5kYXRvcnlGaWVsZHMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN0YW5kYWxvbmUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5uYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbmFtZSBmaWVsZCBpcyByZXF1aXJlZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndmFsdWUgZmllbGQgaXMgcmVxdWlyZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0Rm9jdXNPbk5hdGl2ZUVsZW1lbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0RWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXROYXRpdmVFbGVtZW50Q2hlY2tlZFN0YXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHRoaXMuY2hlY2tlZDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxpbnB1dFxuICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgY2xhc3M9XCJmZC1yYWRpb1wiXG4gICAgW2NsYXNzLmlzLWNvbXBhY3RdPVwiX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXIuaXNDb21wYWN0U2lnbmFsKClcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2lkXT1cImlkXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4XCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRCeVwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cImNoZWNrZWRcIlxuICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtuZ01vZGVsXT1cImN1cnJlbnRWYWx1ZVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogc3RhbmRhbG9uZSB9XCJcbiAgICAjaW5wdXRFbGVtZW50XG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICBbYXR0ci52YWx1ZV09XCJ2YWx1ZVwiXG4vPlxuPGxhYmVsIGNsYXNzPVwiZmQtcmFkaW9fX2xhYmVsXCIgW2F0dHIudGl0bGVdPVwidGl0bGVcIiBbZm9yXT1cImlkXCIgKGNsaWNrKT1cImxhYmVsQ2xpY2tlZCgkZXZlbnQpXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJmZC1yYWRpb19fdGV4dFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9zcGFuPlxuPC9sYWJlbD5cbiJdfQ==
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9yYWRpby9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9yYWRpby9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQWUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixLQUFLLEVBR0wsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxhQUFhLEVBQTZCLE1BQU0sNEJBQTRCLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEgsT0FBTyxFQUFtQix1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7O0FBR3RELElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQTJCakIsTUFBTSxPQUFPLG9CQUFvQjtJQXVCN0I7O09BRUc7SUFDSCxJQUNJLFFBQVEsQ0FBQyxLQUFrQjtRQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxT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QVU7c0JBRFQsS0FBSztnQkFrQ04sc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlTnVtYmVyUHJvcGVydHksIE51bWJlcklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGFwcGx5Q3NzQ2xhc3MsIENzc0NsYXNzQnVpbGRlciwgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU9ic2VydmVyLCBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBGb3JtSXRlbUNvbnRyb2wsIHJlZ2lzdGVyRm9ybUl0ZW1Db250cm9sIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Zvcm0nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGRF9SQURJT19CVVRUT05fQ09NUE9ORU5UIH0gZnJvbSAnLi4vdG9rZW5zJztcblxuZXhwb3J0IHR5cGUgc3RhdGVUeXBlID0gJ3N1Y2Nlc3MnIHwgJ2Vycm9yJyB8ICd3YXJuaW5nJyB8ICdkZWZhdWx0JyB8ICdpbmZvcm1hdGlvbic7XG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXJhZGlvLWJ1dHRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3JhZGlvLWJ1dHRvbi5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYWRpb0J1dHRvbkNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9SQURJT19CVVRUT05fQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFJhZGlvQnV0dG9uQ29tcG9uZW50XG4gICAgICAgIH0sXG4gICAgICAgIHJlZ2lzdGVyRm9ybUl0ZW1Db250cm9sKFJhZGlvQnV0dG9uQ29tcG9uZW50KSxcbiAgICAgICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycygpXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoZm9jdXNvdXQpJzogJ29uVG91Y2hlZCgpJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRm9ybXNNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvQnV0dG9uQ29tcG9uZW50PFQgPSBhbnk+XG4gICAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIENzc0NsYXNzQnVpbGRlciwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSwgRm9ybUl0ZW1Db250cm9sXG57XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnQnKVxuICAgIGlucHV0RWxlbWVudDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIC8qKiBTZXRzIHRoZSBgYXJpYS1sYWJlbGAgYXR0cmlidXRlIHRvIHRoZSBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFNldHMgdGhlIGBhcmlhLWxhYmVsbGVkYnlgIGF0dHJpYnV0ZSB0byB0aGUgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbGxlZEJ5OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFNldHMgdGhlIGBhcmlhLWRlc2NyaWJlZGJ5YCBhdHRyaWJ1dGUgdG8gdGhlIGVsZW1lbnQuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhRGVzY3JpYmVkQnk6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogc2V0cyByYWRpbyB0b29sdGlwICovXG4gICAgQElucHV0KClcbiAgICB0aXRsZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSW5jbHVkZXMgdGhlIHJhZGlvIGluIHRoZSBwYWdlIHRhYiBzZXF1ZW5jZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0YWJJbmRleCh2YWx1ZTogTnVtYmVySW5wdXQpIHtcbiAgICAgICAgdGhpcy5fdGFiSW5kZXggPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IHRhYkluZGV4KCk6IE51bWJlcklucHV0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYkluZGV4O1xuICAgIH1cblxuICAgIC8qKiBUaGUgZmllbGQgdG8gc2V0IHN0YXRlIG9mIHJhZGlvIGJ1dHRvbiB1c2luZzpcbiAgICAgKiAnc3VjY2VzcycgfCAnZXJyb3InIHwgJ3dhcm5pbmcnIHwgJ2RlZmF1bHQnIHwgJ2luZm9ybWF0aW9uJ1xuICAgICAqIGJ5IGRlZmF1bHQgdmFsdWUgaXMgc2V0IHRvICdkZWZhdWx0J1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhdGU/OiBzdGF0ZVR5cGUgPSAnZGVmYXVsdCc7XG5cbiAgICAvKiogVGhlIGZpZWxkIGlzIHVzZWQgdG8gdGVsbCBpZiByYWRpbyBidXR0b24gc2hvdWxkIGJlIGRpc2FibGVkXG4gICAgICogVmFsdWU6IHRydWUgb3IgZmFsc2VcbiAgICAgKiBieSBkZWZhdWx0IGRpc2FibGVkIHN0YXRlIGlzIHNldCB0byBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBUaGUgZmllbGQgc2hvdWxkIGJlIG9ubHkgdXNlZCB3aXRoIHJlYWN0aXZlIGZvcm1zXG4gICAgICogSXRzIHB1cnBvc2UgaXMgdG8gcGFzcyBhIGN1cnJlbnQgc2VsZWN0ZWQgdmFsdWUgZnJvbSBmcm91bUdyb3VwXG4gICAgICogVGhlIGZpZWxkIGlzIG1hbmRhdG9yeSB3aGVuIHdvcmtpbmcgd2l0aCByZWFjdGl2ZSBmb3Jtc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNlbGVjdGVkVmFsdWUodmFsOiBUKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFZhbHVlID0gdmFsO1xuICAgICAgICB0aGlzLl9zZXROYXRpdmVFbGVtZW50Q2hlY2tlZFN0YXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSByYWRpbyBidXR0b25cbiAgICAgKiBUaGUgZmllbGQgaXMgbWFuZGF0b3J5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiB1bmlxdWVJZCB0byBhIHJhZGlvIGJ1dHRvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQgPSBgcmFkaW8taWQtJHt1bmlxdWVJZCsrfWA7XG5cbiAgICAvKiogVmFsdWUgZmllbGQgc3RvcmVzIGluZm9ybWF0aW9uIGFib3V0IGhvbGRpbmcgdmFsdWUgYnkgcmFkaW8gYnV0dG9uXG4gICAgICogVGhlIGZpZWxkIGlzIG1hbmRhdG9yeVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdmFsdWU6IFQ7XG5cbiAgICAvKiogSWYgaXQgaXMgYSBtYW5kYXRvcnkgZmllbGQgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgY29udHJvbCBpcyBhIHN0YW5kYWxvbmUuICovXG4gICAgQElucHV0KClcbiAgICBzdGFuZGFsb25lID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgcmFkaW8gYnV0dG9uIGlzIGNoZWNrZWQuICovXG4gICAgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50VmFsdWUgPT09IHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjbGFzczogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjdXJyZW50VmFsdWU6IFQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RhYkluZGV4OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdGlvblJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHJlYWRvbmx5IF9jb250ZW50RGVuc2l0eU9ic2VydmVyOiBDb250ZW50RGVuc2l0eU9ic2VydmVyXG4gICAgKSB7fVxuXG4gICAgLyoqIFRoaXMgbWV0aG9kIGlzIHJlc3BvbnNpYmxlIGZvciBidWlsZGluZyBhIGNzcyBjbGFzcyBiYXNlZCBvbiBjdXJyZW50IHN0YXRlXG4gICAgICogIEl0IGlzIGltcGxlbWVudGF0aW9uIG9mIENzc0NsYXNzQnVpbGRlciBpbnRlcmZhY2UgYW5kXG4gICAgICogIHNob3VsZCBiZSB1c2VkIHdpdGggQGFwcGx5Q3NzQ2xhc3MgZGVjb3JhdG9yXG4gICAgICovXG4gICAgQGFwcGx5Q3NzQ2xhc3NcbiAgICBidWlsZENvbXBvbmVudENzc0NsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIFsnZmQtcmFkaW8nLCB0aGlzLnN0YXRlICE9PSAnZGVmYXVsdCcgPyBgaXMtJHt0aGlzLnN0YXRlfWAgOiAnJ107XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgICAgICB0aGlzLl9jaGVja01hbmRhdG9yeUZpZWxkcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICAgICAgdGhpcy5fY2hlY2tNYW5kYXRvcnlGaWVsZHMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBvbkNoYW5nZSA9ICh2YWx1ZTogVCk6IHZvaWQgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFQpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rpb25SZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlKHZhbHVlLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgLy8gRW5kIGltcGxlbWVudGF0aW9uXG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBlbGVtZW50UmVmKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBsYWJlbENsaWNrZWQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50LCBhcHBseUZvY3VzID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlKHRoaXMudmFsdWUpO1xuXG4gICAgICAgIGlmIChhcHBseUZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRGb2N1c09uTmF0aXZlRWxlbWVudCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB2YWx1ZUNoYW5nZSh2YWx1ZTogVCwgZW1pdEV2ZW50ID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMuX3NldE5hdGl2ZUVsZW1lbnRDaGVja2VkU3RhdGUoKTtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdGlvblJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIGlmIChlbWl0RXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jaGVja01hbmRhdG9yeUZpZWxkcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhbmRhbG9uZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCduYW1lIGZpZWxkIGlzIHJlcXVpcmVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YWx1ZSBmaWVsZCBpcyByZXF1aXJlZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRGb2N1c09uTmF0aXZlRWxlbWVudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldE5hdGl2ZUVsZW1lbnRDaGVja2VkU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0RWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5jaGVja2VkID0gdGhpcy5jaGVja2VkO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGlucHV0XG4gICAgdHlwZT1cInJhZGlvXCJcbiAgICBjbGFzcz1cImZkLXJhZGlvXCJcbiAgICBbY2xhc3MuaXMtY29tcGFjdF09XCJfY29udGVudERlbnNpdHlPYnNlcnZlci5pc0NvbXBhY3RTaWduYWwoKVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbaWRdPVwiaWRcIlxuICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgW25hbWVdPVwibmFtZVwiXG4gICAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXhcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW25nTW9kZWxdPVwiY3VycmVudFZhbHVlXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiBzdGFuZGFsb25lIH1cIlxuICAgICNpbnB1dEVsZW1lbnRcbiAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgIFthdHRyLnZhbHVlXT1cInZhbHVlXCJcbi8+XG48bGFiZWwgY2xhc3M9XCJmZC1yYWRpb19fbGFiZWxcIiBbYXR0ci50aXRsZV09XCJ0aXRsZVwiIFtmb3JdPVwiaWRcIiAoY2xpY2spPVwibGFiZWxDbGlja2VkKCRldmVudClcIj5cbiAgICA8c3BhbiBjbGFzcz1cImZkLXJhZGlvX190ZXh0XCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L3NwYW4+XG48L2xhYmVsPlxuIl19
@@ -19,6 +19,18 @@ export class RatingIndicatorComponent {
19
19
  this._indicatorCapacity = val < 1 ? INDICATOR_DEFAULT_CAPACITY : val;
20
20
  }
21
21
  /** @hidden */
22
+ get viewRatingUID() {
23
+ return this._ratingUID;
24
+ }
25
+ /** @hidden */
26
+ get indicatorCount() {
27
+ return this._indicatorCapacity;
28
+ }
29
+ /** @hidden */
30
+ get viewValue() {
31
+ return this._value;
32
+ }
33
+ /** @hidden */
22
34
  constructor(elementRef, _changeDetectorRef) {
23
35
  this.elementRef = elementRef;
24
36
  this._changeDetectorRef = _changeDetectorRef;
@@ -79,17 +91,21 @@ export class RatingIndicatorComponent {
79
91
  /** @hidden */
80
92
  this.onTouched = () => { };
81
93
  }
82
- /** @hidden */
83
- get viewRatingUID() {
84
- return this._ratingUID;
85
- }
86
- /** @hidden */
87
- get indicatorCount() {
88
- return this._indicatorCapacity;
89
- }
90
- /** @hidden */
91
- get viewValue() {
92
- return this._value;
94
+ /** @hidden
95
+ * CssClassBuilder interface implementation
96
+ * function must return single string
97
+ * function is responsible for order which css classes are applied
98
+ */
99
+ buildComponentCssClass() {
100
+ this.sizeClass = this._getSizeClass(this.size);
101
+ return [
102
+ INDICATOR_PREFIX,
103
+ this.sizeClass,
104
+ this.allowHalves ? INDICATOR_CLASSES.halves : '',
105
+ !!this.ratedIcon && !!this.unratedIcon ? INDICATOR_CLASSES.icon : '',
106
+ this._hideDynamicText || !this._value ? INDICATOR_CLASSES.hideDynamicText : '',
107
+ this.class
108
+ ];
93
109
  }
94
110
  /** @hidden */
95
111
  ngOnInit() {
@@ -145,22 +161,6 @@ export class RatingIndicatorComponent {
145
161
  this.onTouched();
146
162
  this.ratingChanged.emit(value);
147
163
  }
148
- /** @hidden
149
- * CssClassBuilder interface implementation
150
- * function must return single string
151
- * function is responsible for order which css classes are applied
152
- */
153
- buildComponentCssClass() {
154
- this.sizeClass = this._getSizeClass(this.size);
155
- return [
156
- INDICATOR_PREFIX,
157
- this.sizeClass,
158
- this.allowHalves ? INDICATOR_CLASSES.halves : '',
159
- !!this.ratedIcon && !!this.unratedIcon ? INDICATOR_CLASSES.icon : '',
160
- this._hideDynamicText || !this._value ? INDICATOR_CLASSES.hideDynamicText : '',
161
- this.class
162
- ];
163
- }
164
164
  /**
165
165
  * @hidden
166
166
  * Generate rating items for popover content if rating object was defined
@@ -319,4 +319,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
319
319
  }], ratingChanged: [{
320
320
  type: Output
321
321
  }], buildComponentCssClass: [] } });
322
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLWluZGljYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvcmF0aW5nLWluZGljYXRvci9jb21wb25lbnRzL3JhdGluZy1pbmRpY2F0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3JhdGluZy1pbmRpY2F0b3IvY29tcG9uZW50cy9yYXRpbmctaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLE1BQU0sRUFFTixpQkFBaUIsRUFDakIsVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQTZCLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RGLE9BQU8sRUFBbUIsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRixPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLDBCQUEwQixFQUMxQixnQkFBZ0IsRUFFaEIsdUJBQXVCLEVBQzFCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQUV0RSxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7QUE0QmxCLE1BQU0sT0FBTyx3QkFBd0I7SUFpRGpDOztPQUVH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VztzQkFEVixLQUFLO2dCQU9OLElBQUk7c0JBREgsS0FBSztnQkFPTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBT04sYUFBYTtzQkFEWixNQUFNO2dCQWdIUCxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGZvcndhcmRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ3NzQ2xhc3NCdWlsZGVyLCBOdWxsYWJsZSwgYXBwbHlDc3NDbGFzcyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEZvcm1JdGVtQ29udHJvbCwgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50LCBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7XG4gICAgSU5ESUNBVE9SX0NMQVNTRVMsXG4gICAgSU5ESUNBVE9SX0RFRkFVTFRfQ0FQQUNJVFksXG4gICAgSU5ESUNBVE9SX1BSRUZJWCxcbiAgICBSYXRpbmdJbmRpY2F0b3JTaXplLFxuICAgIFJhdGluZ0luZGljYXRvclNpemVFbnVtXG59IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBSYXRpbmdTdGFyTGFiZWxQaXBlIH0gZnJvbSAnLi4vcGlwZXMvcmF0aW5nLXN0YXItbGFiZWwucGlwZSc7XG5cbmxldCByYXRpbmdVSUQgPSAwO1xuXG5pbnRlcmZhY2UgTnVtYmVyS2V5PFQ+IHtcbiAgICBba2V5OiBudW1iZXJdOiBUO1xufVxuXG5pbnRlcmZhY2UgUmF0aW5nVmlld0l0ZW0ge1xuICAgIHJhdGU6IG51bWJlcjtcbiAgICB2b3RlczogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXJhdGluZy1pbmRpY2F0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yYXRpbmctaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vcmF0aW5nLWluZGljYXRvci5jb21wb25lbnQuc2NzcycsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYXRpbmdJbmRpY2F0b3JDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2woUmF0aW5nSW5kaWNhdG9yQ29tcG9uZW50KVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgUG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUsIFBvcG92ZXJDb21wb25lbnQsIFJhdGluZ1N0YXJMYWJlbFBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFJhdGluZ0luZGljYXRvckNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIENzc0NsYXNzQnVpbGRlciwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1JdGVtQ29udHJvbFxue1xuICAgIC8qKiBVc2VyJ3MgY3VzdG9tIGNsYXNzZXMgKi9cbiAgICBASW5wdXQoKVxuICAgIGNsYXNzOiBzdHJpbmc7XG5cbiAgICAvKiogU2V0cyBbbmFtZV0gYXR0cmlidXRlIG9mIGlucHV0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYXJpYS1sYWJlbCBhdHRyaWJ1dGUgdG8gdGhlIGVsZW1lbnQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbCcpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYXJpYS1sYWJlbGxlZGJ5IGF0dHJpYnV0ZSB0byB0aGUgZWxlbWVudC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsJylcbiAgICBhcmlhTGFiZWxsZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGFyaWEtZGlzYWJsZWQgYXR0cmlidXRlIHRvIHRoZSBlbGVtZW50LlxuICAgICAqIFNldHMgdGhlIGlzLWRpc2FibGVkIGNsYXNzIHRvIHRoZSBlbGVtZW50LlxuICAgICAqIFdoZXRoZXIgdGhlIHJhdGluZyBpbmRpY2F0b3IgaXMgZGlzYWJsZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaXMtZGlzYWJsZWQnKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRpc2FibGVkJylcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgcmF0aW5nIGluZGljYXRvciBpcyBpbiBkaXNwbGF5TW9kZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1yYXRpbmctaW5kaWNhdG9yLS1kaXNwbGF5LW1vZGUnKVxuICAgIGRpc3BsYXlNb2RlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSByYXRpbmcgaW5kaWNhdG9yIGlzIGluIG5vbi1pbnRlcmFjdGl2ZSBzdGF0ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtcmF0aW5nLWluZGljYXRvci0tbm9uLWludGVyYWN0aXZlJylcbiAgICBub25JbnRlcmFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogTnVtYmVyIG9mIHJhdGVzIHRvIGRpc3BsYXlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBpbmRpY2F0b3JDYXBhY2l0eSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHZhbCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlLCBJTkRJQ0FUT1JfREVGQVVMVF9DQVBBQ0lUWSk7XG4gICAgICAgIHRoaXMuX2luZGljYXRvckNhcGFjaXR5ID0gdmFsIDwgMSA/IElORElDQVRPUl9ERUZBVUxUX0NBUEFDSVRZIDogdmFsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRvIGRpc3BsYXkgaGFsZiB2YWx1ZXMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd0hhbHZlcyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVXNlcidzIHZhbHVlIG51bWJlciBvZiByYXRpbmdzLiBJZiBwcm92aWRlZCwgT3ZlcnJpZGVzIHJhdGluZ0F2ZXJhZ2UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB2YWx1ZSA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBUb3RhbCBudW1iZXIgb2YgcmF0aW5ncy4gSWYgcHJvdmlkZWQsIHdpbGwgZGlzcGxheSB0ZXh0IHNob3dpbmcgdGhlIHRvdGFsIG51bWJlciBvZiByYXRpbmdzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdG90YWxSYXRpbmdzOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBSYXRpbmcgYXZlcmFnZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmF0aW5nQXZlcmFnZTogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogT2JqZWN0IGNvbnRhaW5pbmcga2V5LXZhbHVlIHBhaXJzIHdoZXJlIHRoZSBrZXkgaXMgdGhlIHJhdGluZyBhbmQgdGhlIHZhbHVlIGlzIHRoZSB0b3RhbCBzdW0gb2YgdGhvc2UgcmF0aW5ncy5cbiAgICAgKiBPdmVycmlkZXMgdG90YWxSYXRpbmdzIGFuZCByYXRpbmdBdmVyYWdlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmF0aW5nczogTnVtYmVyS2V5PG51bWJlcj47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0byBkaXNwbGF5IHRoZSBwb3BvdmVyIHRoYXQgc2hvd3MgdGhlIHN1bSBvZiBlYWNoIHJhdGluZy4gUmVxdWlyZXMgW3JhdGluZ3NdIG9iamVjdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlBbGxSYXRpbmdzID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBJY29uIGNsYXNzIGZvciByYXRlZCBpY29uIGZyb20gZnVuZGFtZW50YWwtc3R5bGVzIGxpYiBodHRwczovL3NhcC5naXRodWIuaW8vZnVuZGFtZW50YWwtc3R5bGVzLz9wYXRoPS9kb2NzL2NvbXBvbmVudHMtaWNvbi0tc2l6ZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJhdGVkSWNvbjogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEljb24gY2xhc3MgZm9yIHVucmF0ZWQgaWNvbiBmcm9tIGZ1bmRhbWVudGFsLXN0eWxlcyBsaWIgaHR0cHM6Ly9zYXAuZ2l0aHViLmlvL2Z1bmRhbWVudGFsLXN0eWxlcy8/cGF0aD0vZG9jcy9jb21wb25lbnRzLWljb24tLXNpemVzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB1bnJhdGVkSWNvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogUG9zc2libGUgdmFsdWVzIGFyZSAneHMnLCAnc20nLCAnbWQnLCAnbGcnLCAnY296eScsICdjb21wYWN0JywgJ2NvbmRlbnNlZCdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNpemU6IFJhdGluZ0luZGljYXRvclNpemUgPSAnbWQnO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCBkaXZpZGVyIGxhYmVsIGJldHdlZW4gdmlldyB2YWx1ZSBhbmQgaW5kaWNhdG9yIGNvdW50LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZHluYW1pY1RleHRJbmRpY2F0b3IgPSAnb2YnO1xuXG4gICAgLyoqXG4gICAgICogRmlyZWQgd2hlbiB0aGUgdXNlciBzZXRzIG9yIGNoYW5nZXMgdGhlaXIgcmF0aW5nLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJhdGluZ0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2l6ZUNsYXNzID0gdGhpcy5fZ2V0U2l6ZUNsYXNzKHRoaXMuc2l6ZSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcmF0ZXM6IHsgaWQ6IHN0cmluZzsgdmFsdWU6IG51bWJlciB9W10gPSBbXTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9yYXRpbmdJdGVtczogUmF0aW5nVmlld0l0ZW1bXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yYXRpbmdVSUQgPSByYXRpbmdVSUQrKztcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luZGljYXRvckNhcGFjaXR5ID0gSU5ESUNBVE9SX0RFRkFVTFRfQ0FQQUNJVFk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF92YWx1ZSA9IDA7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oaWRlRHluYW1pY1RleHQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgdmlld1JhdGluZ1VJRCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmF0aW5nVUlEO1xuICAgIH1cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBpbmRpY2F0b3JDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5kaWNhdG9yQ2FwYWNpdHk7XG4gICAgfVxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IHZpZXdWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZTogKHZhbHVlOiBudW1iZXIpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX2NvbnZlcnRUb1ZhbHVlKCk7XG4gICAgICAgIHRoaXMuX3JhdGVzID0gdGhpcy5fZ2V0UmF0ZXMoKTtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgICAgIHRoaXMuX2dlbmVyYXRlUmF0aW5ncygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAnY2xhc3MnIGluIGNoYW5nZXMgfHxcbiAgICAgICAgICAgICdzaXplJyBpbiBjaGFuZ2VzIHx8XG4gICAgICAgICAgICAncmF0ZWRJY29uJyBpbiBjaGFuZ2VzIHx8XG4gICAgICAgICAgICAndW5yYXRlZEljb24nIGluIGNoYW5nZXMgfHxcbiAgICAgICAgICAgICdhbGxvd0hhbHZlcycgaW4gY2hhbmdlc1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgndmFsdWUnIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fY29udmVydFRvVmFsdWUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ2luZGljYXRvckNhcGFjaXR5JyBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLl9yYXRlcyA9IHRoaXMuX2dldFJhdGVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCdhbGxvd0hhbHZlcycgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jb252ZXJ0VG9WYWx1ZSgpO1xuICAgICAgICAgICAgdGhpcy5fcmF0ZXMgPSB0aGlzLl9nZXRSYXRlcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCdyYXRpbmdzJyBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLl9nZW5lcmF0ZVJhdGluZ3MoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fcGFyc2VWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBudW1iZXIpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvblNlbGVjdCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5yYXRpbmdDaGFuZ2VkLmVtaXQodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogQ3NzQ2xhc3NCdWlsZGVyIGludGVyZmFjZSBpbXBsZW1lbnRhdGlvblxuICAgICAqIGZ1bmN0aW9uIG11c3QgcmV0dXJuIHNpbmdsZSBzdHJpbmdcbiAgICAgKiBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3Igb3JkZXIgd2hpY2ggY3NzIGNsYXNzZXMgYXJlIGFwcGxpZWRcbiAgICAgKi9cbiAgICBAYXBwbHlDc3NDbGFzc1xuICAgIGJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTogc3RyaW5nW10ge1xuICAgICAgICB0aGlzLnNpemVDbGFzcyA9IHRoaXMuX2dldFNpemVDbGFzcyh0aGlzLnNpemUpO1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBJTkRJQ0FUT1JfUFJFRklYLFxuICAgICAgICAgICAgdGhpcy5zaXplQ2xhc3MsXG4gICAgICAgICAgICB0aGlzLmFsbG93SGFsdmVzID8gSU5ESUNBVE9SX0NMQVNTRVMuaGFsdmVzIDogJycsXG4gICAgICAgICAgICAhIXRoaXMucmF0ZWRJY29uICYmICEhdGhpcy51bnJhdGVkSWNvbiA/IElORElDQVRPUl9DTEFTU0VTLmljb24gOiAnJyxcbiAgICAgICAgICAgIHRoaXMuX2hpZGVEeW5hbWljVGV4dCB8fCAhdGhpcy5fdmFsdWUgPyBJTkRJQ0FUT1JfQ0xBU1NFUy5oaWRlRHluYW1pY1RleHQgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuY2xhc3NcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogR2VuZXJhdGUgcmF0aW5nIGl0ZW1zIGZvciBwb3BvdmVyIGNvbnRlbnQgaWYgcmF0aW5nIG9iamVjdCB3YXMgZGVmaW5lZFxuICAgICAqL1xuICAgIHByaXZhdGUgX2dlbmVyYXRlUmF0aW5ncygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnJhdGluZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByYXRpbmdzID0gT2JqZWN0LmVudHJpZXModGhpcy5yYXRpbmdzKVxuICAgICAgICAgICAgLmZpbHRlcigoW3JhdGUsIHZvdGVdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgX3JhdGUgPSArcmF0ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWlzTmFOKF9yYXRlKSAmJiAhaXNOYU4oK3ZvdGUpICYmIF9yYXRlID4gMDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAubWFwKChbcmF0ZSwgdm90ZXNdKSA9PiAoeyByYXRlOiArcmF0ZSwgdm90ZXMgfSkpO1xuICAgICAgICBpZiAocmF0aW5ncy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHRvdGFsVm90ZXMsIHRvdGFsUmF0aW5nIH0gPSByYXRpbmdzLnJlZHVjZShcbiAgICAgICAgICAgICh0b3RhbCwgcmF0aW5nKSA9PiAoe1xuICAgICAgICAgICAgICAgIHRvdGFsVm90ZXM6IHRvdGFsLnRvdGFsVm90ZXMgKyByYXRpbmcudm90ZXMsXG4gICAgICAgICAgICAgICAgdG90YWxSYXRpbmc6IHRvdGFsLnRvdGFsUmF0aW5nICsgcmF0aW5nLnJhdGUgKiByYXRpbmcudm90ZXNcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgeyB0b3RhbFZvdGVzOiAwLCB0b3RhbFJhdGluZzogMCB9XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fcmF0aW5nSXRlbXMgPSByYXRpbmdzO1xuICAgICAgICB0aGlzLnJhdGluZ0F2ZXJhZ2UgPSB0b3RhbFJhdGluZyAvIHRvdGFsVm90ZXM7XG4gICAgICAgIHRoaXMudG90YWxSYXRpbmdzID0gdG90YWxWb3RlcztcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jb252ZXJ0VG9WYWx1ZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogZ2V0IGNvbnZlcnRlZCB2aWV3VmFsdWUgZm9yIHJlbmRlciBpbiBjb21wb25lbnQgdGVtcGxhdGUgZnJvbSBvcmlnaW5hbCB2YWx1ZSBpZiBpdCBzdGlsbCBleGlzdHMsIG9yIHJhdGluZ0F2ZXJhZ2UuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfY29udmVydFRvVmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcnNlVmFsdWUodGhpcy52YWx1ZSB8fCB0aGlzLnJhdGluZ0F2ZXJhZ2UpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogZ2V0IGNvbnZlcnRlZCB2YWx1ZSBmcm9tIG9yaWdpbmFsIHRvIHZpZXcgdmFsdWUgd2l0aCBkZXBlbmRzIG9uIGhhbHZlc1xuICAgICAqIEZvciBleGFtcGxlLFxuICAgICAqICBvcmlnaW5hbCB2YWx1ZSBpcyBlcXVhbCB0byAyLjM0LCB5b3Ugd2lsbCBnZXQgYW5kIHJlbmRlciAyXG4gICAgICogIG9yaWdpbmFsIHZhbHVlIGlzIGVxdWFsIHRvIDMuNzQsIHlvdSB3aWxsIGdldCBhbmQgcmVuZGVyIDRcbiAgICAgKi9cbiAgICBwcml2YXRlIF9wYXJzZVZhbHVlKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbnRlZ2VyID0gTWF0aC5mbG9vcih2YWx1ZSk7XG4gICAgICAgIGNvbnN0IGZyYWN0aW9uYWwgPSB2YWx1ZSAlIDE7XG4gICAgICAgIGxldCB2ID0gaW50ZWdlcjtcblxuICAgICAgICBpZiAodGhpcy5hbGxvd0hhbHZlcyAmJiBmcmFjdGlvbmFsID4gMC4yNSAmJiBmcmFjdGlvbmFsIDw9IDAuNSkge1xuICAgICAgICAgICAgdiA9IGludGVnZXIgKyAwLjU7XG4gICAgICAgIH0gZWxzZSBpZiAoZnJhY3Rpb25hbCA+IDAuNSkge1xuICAgICAgICAgICAgdiA9IGludGVnZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIE1hdGgubWluKHRoaXMuaW5kaWNhdG9yQ291bnQsIHYpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogZ2V0IHJhdGluZyBpY29ucyBhcnJheSB3aXRoIHZhbHVlIGFuZCB1bmljIGlkXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0UmF0ZXMoKTogeyBpZDogc3RyaW5nOyB2YWx1ZTogbnVtYmVyIH1bXSB7XG4gICAgICAgIGNvbnN0IHdpdGhIYWx2ZXMgPSB0aGlzLmFsbG93SGFsdmVzID8gMiA6IDE7XG4gICAgICAgIHJldHVybiBBcnJheSh0aGlzLmluZGljYXRvckNvdW50ICogd2l0aEhhbHZlcylcbiAgICAgICAgICAgIC5maWxsKGByYXRpbmctJHt0aGlzLl9yYXRpbmdVSUR9YClcbiAgICAgICAgICAgIC5tYXAoKG5hbWUsIGluZGV4KSA9PiAoe1xuICAgICAgICAgICAgICAgIGlkOiBgJHtuYW1lfS0ke2luZGV4ICsgMX1gLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAoaW5kZXggKyAxKSAvIHdpdGhIYWx2ZXNcbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogZ2V0IHJhdGluZyBpY29ucyBhcnJheSB3aXRoIHZhbHVlIGFuZCB1bmljIGlkXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0U2l6ZUNsYXNzKHNpemU6IFJhdGluZ0luZGljYXRvclNpemUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7SU5ESUNBVE9SX1BSRUZJWH0tLSR7c2l6ZSBpbiBSYXRpbmdJbmRpY2F0b3JTaXplRW51bSA/IHNpemUgOiAnbWQnfWA7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICN6ZXJvUmF0ZSBsZXQtaGFsdmVzPVwiaGFsdmVzXCI+XG4gICAgPGlucHV0XG4gICAgICAgIGFyaWEtbGFiZWw9XCJSZXNldCB0byB6ZXJvXCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgIGNsYXNzPVwiZmQtcmF0aW5nLWluZGljYXRvcl9faW5wdXQgZmQtcmF0aW5nLWluZGljYXRvcl9faW5wdXQtLXplcm8tcmF0aW5nXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KDApXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IG5vbkludGVyYWN0aXZlIHx8IGRpc3BsYXlNb2RlXCJcbiAgICAgICAgbmFtZT1cInJhdGluZy17eyB2aWV3UmF0aW5nVUlEIH19e3sgaGFsdmVzID8gJy1oYWx2ZXMnIDogJycgfX1cIlxuICAgICAgICBbY2hlY2tlZF09XCJ2aWV3VmFsdWUgPT09IDBcIlxuICAgIC8+XG4gICAgPGxhYmVsIGNsYXNzPVwiZmQtcmF0aW5nLWluZGljYXRvcl9fbGFiZWwgZmQtcmF0aW5nLWluZGljYXRvcl9fbGFiZWwtLXplcm8tcmF0aW5nXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9sYWJlbD5cbjwvbmctdGVtcGxhdGU+XG48IS0tICByb2xlPVwiYXBwbGljYXRpb25cIiBpcyB1c2VkIGluIG9yZGVyIHRvIGxldCB1c2VyIHRvIGNoYW5nZSB2YWx1ZSB3aXRoIGxlZnQvcmlnaHQgYXJyb3dzIGluIEpBV1MsIHNpbmNlIEpBV1Mgb3Z2ZXJyaWRlcyB0aGVzZSBhY3Rpb25zIC0tPlxuPGRpdiBjbGFzcz1cImZkLXJhdGluZy1pbmRpY2F0b3JfX2NvbnRhaW5lclwiIHJvbGU9XCJhcHBsaWNhdGlvblwiIGFyaWEtcm9sZWRlc2NyaXB0aW9uPVwiUmF0aW5nIGluZGljYXRvclwiPlxuICAgIDwhLS0gWmVybyB2YWx1ZSBpZiB3ZSBkb24ndCBoYXZlIHByb3ZpZGVkIHZhbHVlIGZyb20gdXNlciwgYHJhdGluZ0F2ZXJhZ2VgIG9yIGByYXRpbmdzYCAtLT5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiemVyb1JhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgIDwhLS0gQXZhaWxhYmxlIHJhdGUgdmFsdWVzIC0tPlxuICAgIEBmb3IgKHJhdGUgb2YgX3JhdGVzOyB0cmFjayByYXRlLmlkOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaSB8IHJhdGluZ1N0YXJMYWJlbDogX3JhdGVzLmxlbmd0aCA6IGFsbG93SGFsdmVzXCJcbiAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtcmF0aW5nLWluZGljYXRvcl9faW5wdXRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IG5vbkludGVyYWN0aXZlIHx8IGRpc3BsYXlNb2RlXCJcbiAgICAgICAgICAgIFtpZF09XCJyYXRlLmlkXCJcbiAgICAgICAgICAgIG5hbWU9XCJyYXRpbmcte3sgdmlld1JhdGluZ1VJRCB9fVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwicmF0ZS52YWx1ZVwiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJ2aWV3VmFsdWUgPT09IHJhdGUudmFsdWVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KHJhdGUudmFsdWUpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZmQtcmF0aW5nLWluZGljYXRvcl9fbGFiZWxcIiBbZm9yXT1cInJhdGUuaWRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgIEBpZiAocmF0ZWRJY29uKSB7XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmZC1yYXRpbmctaW5kaWNhdG9yX19sYWJlbC1yYXRlZFwiIFtjbGFzc109XCJ1bnJhdGVkSWNvblwiPjwvaT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAodW5yYXRlZEljb24pIHtcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZkLXJhdGluZy1pbmRpY2F0b3JfX2xhYmVsLXVucmF0ZWRcIiBbY2xhc3NdPVwicmF0ZWRJY29uXCI+PC9pPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2xhYmVsPlxuICAgIH1cbjwvZGl2PlxuPCEtLSBQb3BvdmVyIGlmIGRpc3BsYXlBbGxSYXRpbmdzIGlzIHRydWUgYW5kIHdlIGhhdmUgcmF0aW5ncyBvYmplY3QgLS0+XG5AaWYgKGRpc3BsYXlBbGxSYXRpbmdzICYmIF9yYXRpbmdJdGVtcy5sZW5ndGgpIHtcbiAgICA8c3BhbiBbZmRQb3BvdmVyVHJpZ2dlcl09XCJhbGxSYXRpbmdDb250ZW50XCIgY2xhc3M9XCJmZC1yYXRpbmctaW5kaWNhdG9yX19keW5hbWljLXRleHRcIj5cbiAgICAgICAgKDxzcGFuIGFyaWEtbGFiZWw9XCJUb3RhbCByYWl0aW5nXCIgZmQtbGluaz57eyB0b3RhbFJhdGluZ3MgfX08L3NwYW5cbiAgICAgICAgPilcbiAgICA8L3NwYW4+XG59IEBlbHNlIHtcbiAgICBAaWYgKHRvdGFsUmF0aW5ncykge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImZkLXJhdGluZy1pbmRpY2F0b3JfX2R5bmFtaWMtdGV4dFwiPih7eyB0b3RhbFJhdGluZ3MgfX0pPC9zcGFuPlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImZkLXJhdGluZy1pbmRpY2F0b3JfX2R5bmFtaWMtdGV4dFwiXG4gICAgICAgICAgICA+KHt7IHZpZXdWYWx1ZSB9fSB7eyBkeW5hbWljVGV4dEluZGljYXRvciB9fSB7eyBpbmRpY2F0b3JDb3VudCB9fSk8L3NwYW5cbiAgICAgICAgPlxuICAgIH1cbn1cbjxmZC1wb3BvdmVyXG4gICAgI2FsbFJhdGluZ0NvbnRlbnRcbiAgICBbdHJpZ2dlcnNdPVwiWydtb3VzZWVudGVyJywgJ21vdXNlbGVhdmUnXVwiXG4gICAgW25vQXJyb3ddPVwiZmFsc2VcIlxuICAgIHBsYWNlbWVudD1cInRvcFwiXG4gICAgYWRkaXRpb25hbEJvZHlDbGFzcz1cImZkLXJhdGluZy1pbmRpY2F0b3JfX3BvcG92ZXJcIlxuPlxuICAgIEBmb3IgKHJhdGluZyBvZiBfcmF0aW5nSXRlbXM7IHRyYWNrIHJhdGluZykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtcmF0aW5nLWluZGljYXRvcl9fc3VtLXJvd1wiIFtjbGFzc109XCJzaXplQ2xhc3NcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC1yYXRpbmctaW5kaWNhdG9yX19jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChyYXRlIG9mIF9yYXRlczsgdHJhY2sgcmF0ZS5pZCkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZkLXJhdGluZy1pbmRpY2F0b3JfX2lucHV0LWNoZWNrZWRdPVwicmF0ZS52YWx1ZSA9PT0gcmF0aW5nLnJhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1yYXRpbmctaW5kaWNhdG9yX19pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZkLXJhdGluZy1pbmRpY2F0b3JfX2xhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHJhdGVkSWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmQtcmF0aW5nLWluZGljYXRvcl9fbGFiZWwtcmF0ZWRcIiBbY2xhc3NdPVwidW5yYXRlZEljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHVucmF0ZWRJY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmZC1yYXRpbmctaW5kaWNhdG9yX19sYWJlbC11bnJhdGVkXCIgW2NsYXNzXT1cInJhdGVkSWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICh7eyByYXRpbmcudm90ZXMgfX0pXG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvZmQtcG9wb3Zlcj5cbiJdfQ==
322
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLWluZGljYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvcmF0aW5nLWluZGljYXRvci9jb21wb25lbnRzL3JhdGluZy1pbmRpY2F0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3JhdGluZy1pbmRpY2F0b3IvY29tcG9uZW50cy9yYXRpbmctaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLE1BQU0sRUFFTixpQkFBaUIsRUFDakIsVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQTZCLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RGLE9BQU8sRUFBbUIsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRixPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLDBCQUEwQixFQUMxQixnQkFBZ0IsRUFFaEIsdUJBQXVCLEVBQzFCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQUV0RSxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7QUE0QmxCLE1BQU0sT0FBTyx3QkFBd0I7SUFpRGpDOztPQUVHO0lBQ0gsSUFDSSxpQkFBaUIsQ0FBQyxLQUFhO1FBQy9CLE1BQU0sR0FBRyxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ3pFLENBQUM7SUEyRUQsY0FBYztJQUNkLElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsY0FBYztJQUNkLElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFDRCxjQUFjO0lBQ2QsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFXRCxjQUFjO0lBQ2QsWUFDb0IsVUFBc0IsRUFDckIsa0JBQXFDO1FBRHRDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDckIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQW5JMUQ7Ozs7V0FJRztRQUlILGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakI7O1dBRUc7UUFHSCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQjs7V0FFRztRQUdILG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBV3ZCOztXQUVHO1FBRUgsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEI7O1dBRUc7UUFFSCxVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBcUJWOztXQUVHO1FBRUgsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBYTFCOztXQUVHO1FBRUgsU0FBSSxHQUF3QixJQUFJLENBQUM7UUFFakM7O1dBRUc7UUFFSCx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFFNUI7O1dBRUc7UUFFSCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFM0MsY0FBYztRQUNkLGNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxjQUFjO1FBQ2QsV0FBTSxHQUFvQyxFQUFFLENBQUM7UUFDN0MsY0FBYztRQUNkLGlCQUFZLEdBQXFCLEVBQUUsQ0FBQztRQWVwQyxjQUFjO1FBQ04sZUFBVSxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLGNBQWM7UUFDTix1QkFBa0IsR0FBRywwQkFBMEIsQ0FBQztRQUN4RCxjQUFjO1FBQ04sV0FBTSxHQUFHLENBQUMsQ0FBQztRQUVuQixjQUFjO1FBQ04scUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBMEJqQyxjQUFjO1FBQ2QsYUFBUSxHQUE0QixHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFN0MsY0FBYztRQUNkLGNBQVMsR0FBRyxHQUFTLEVBQUUsR0FBRSxDQUFDLENBQUM7SUF6QnhCLENBQUM7SUFFSjs7OztPQUlHO0lBRUgsc0JBQXNCO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0MsT0FBTztZQUNILGdCQUFnQjtZQUNoQixJQUFJLENBQUMsU0FBUztZQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoRCxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BFLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5RSxJQUFJLENBQUMsS0FBSztTQUNiLENBQUM7SUFDTixDQUFDO0lBUUQsY0FBYztJQUNkLFFBQVE7UUFDSixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUNJLE9BQU8sSUFBSSxPQUFPO1lBQ2xCLE1BQU0sSUFBSSxPQUFPO1lBQ2pCLFdBQVcsSUFBSSxPQUFPO1lBQ3RCLGFBQWEsSUFBSSxPQUFPO1lBQ3hCLGFBQWEsSUFBSSxPQUFPLEVBQzFCO1lBQ0UsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDakM7UUFDRCxJQUFJLE9BQU8sSUFBSSxPQUFPLEVBQUU7WUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDeEM7UUFDRCxJQUFJLG1CQUFtQixJQUFJLE9BQU8sRUFBRTtZQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQztRQUNELElBQUksYUFBYSxJQUFJLE9BQU8sRUFBRTtZQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQztRQUVELElBQUksU0FBUyxJQUFJLE9BQU8sRUFBRTtZQUN0QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUMzQjtJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ2QsVUFBVSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsY0FBYztJQUNkLGdCQUFnQixDQUFDLEVBQTJCO1FBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxjQUFjO0lBQ2QsaUJBQWlCLENBQUMsRUFBYztRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsY0FBYztJQUNkLGdCQUFnQixDQUFDLFVBQW1CO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCxjQUFjO0lBQ2QsUUFBUSxDQUFDLEtBQWE7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2YsT0FBTztTQUNWO1FBQ0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ3ZDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDckIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdEIsT0FBTztTQUNWO1FBQ0QsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUM5QyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUs7WUFDM0MsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSztTQUM5RCxDQUFDLEVBQ0YsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FDcEMsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUM5QyxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQztRQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0ssZUFBZTtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUNEOzs7Ozs7T0FNRztJQUNLLFdBQVcsQ0FBQyxLQUFhO1FBQzdCLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtZQUN2QixPQUFPLENBQUMsQ0FBQztTQUNaO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxNQUFNLFVBQVUsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUVoQixJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksVUFBVSxHQUFHLElBQUksSUFBSSxVQUFVLElBQUksR0FBRyxFQUFFO1lBQzVELENBQUMsR0FBRyxPQUFPLEdBQUcsR0FBRyxDQUFDO1NBQ3JCO2FBQU0sSUFBSSxVQUFVLEdBQUcsR0FBRyxFQUFFO1lBQ3pCLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1NBQ25CO1FBRUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNEOzs7T0FHRztJQUNLLFNBQVM7UUFDYixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQzthQUN6QyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDakMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuQixFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtZQUMxQixLQUFLLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsVUFBVTtTQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFRDs7O09BR0c7SUFDSyxhQUFhLENBQUMsSUFBeUI7UUFDM0MsT0FBTyxHQUFHLGdCQUFnQixLQUFLLElBQUksSUFBSSx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuRixDQUFDOzhHQXZVUSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwwM0JBWHRCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztnQkFDdkQsS0FBSyxFQUFFLElBQUk7YUFDZDtZQUNELHVCQUF1QixDQUFDLHdCQUF3QixDQUFDO1NBQ3BELCtDQ3ZETCx5d0hBcUZBLDB0ZEQ1QmMsZ0JBQWdCLG9KQUFFLHVCQUF1QixtSEFBRSxnQkFBZ0IsMEpBQUUsbUJBQW1COztBQXVLMUY7SUFEQyxhQUFhOzs7O3NFQVliOzJGQWhMUSx3QkFBd0I7a0JBakJwQyxTQUFTOytCQUNJLHFCQUFxQixpQkFHaEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQzs0QkFDdkQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7d0JBQ0QsdUJBQXVCLDBCQUEwQjtxQkFDcEQsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQzsrR0FPM0YsS0FBSztzQkFESixLQUFLO2dCQUtOLElBQUk7c0JBREgsS0FBSztnQkFRTixTQUFTO3NCQUZSLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsaUJBQWlCO2dCQVE5QixjQUFjO3NCQUZiLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsaUJBQWlCO2dCQVc5QixRQUFRO3NCQUhQLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsbUJBQW1COztzQkFDL0IsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBUWpDLFdBQVc7c0JBRlYsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyx5Q0FBeUM7Z0JBUXRELGNBQWM7c0JBRmIsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyw0Q0FBNEM7Z0JBT3JELGlCQUFpQjtzQkFEcEIsS0FBSztnQkFVTixXQUFXO3NCQURWLEtBQUs7Z0JBT04sS0FBSztzQkFESixLQUFLO2dCQU9OLFlBQVk7c0JBRFgsS0FBSztnQkFPTixhQUFhO3NCQURaLEtBQUs7Z0JBUU4sT0FBTztzQkFETixLQUFLO2dCQU9OLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFPTixTQUFTO3NCQURSLEtBQUs7Z0JBTU4sV0FBVztzQkFEVixLQUFLO2dCQU9OLElBQUk7c0JBREgsS0FBSztnQkFPTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBT04sYUFBYTtzQkFEWixNQUFNO2dCQTRDUCxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGZvcndhcmRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ3NzQ2xhc3NCdWlsZGVyLCBOdWxsYWJsZSwgYXBwbHlDc3NDbGFzcyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEZvcm1JdGVtQ29udHJvbCwgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50LCBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7XG4gICAgSU5ESUNBVE9SX0NMQVNTRVMsXG4gICAgSU5ESUNBVE9SX0RFRkFVTFRfQ0FQQUNJVFksXG4gICAgSU5ESUNBVE9SX1BSRUZJWCxcbiAgICBSYXRpbmdJbmRpY2F0b3JTaXplLFxuICAgIFJhdGluZ0luZGljYXRvclNpemVFbnVtXG59IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBSYXRpbmdTdGFyTGFiZWxQaXBlIH0gZnJvbSAnLi4vcGlwZXMvcmF0aW5nLXN0YXItbGFiZWwucGlwZSc7XG5cbmxldCByYXRpbmdVSUQgPSAwO1xuXG5pbnRlcmZhY2UgTnVtYmVyS2V5PFQ+IHtcbiAgICBba2V5OiBudW1iZXJdOiBUO1xufVxuXG5pbnRlcmZhY2UgUmF0aW5nVmlld0l0ZW0ge1xuICAgIHJhdGU6IG51bWJlcjtcbiAgICB2b3RlczogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXJhdGluZy1pbmRpY2F0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yYXRpbmctaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vcmF0aW5nLWluZGljYXRvci5jb21wb25lbnQuc2NzcycsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYXRpbmdJbmRpY2F0b3JDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2woUmF0aW5nSW5kaWNhdG9yQ29tcG9uZW50KVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgUG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUsIFBvcG92ZXJDb21wb25lbnQsIFJhdGluZ1N0YXJMYWJlbFBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFJhdGluZ0luZGljYXRvckNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIENzc0NsYXNzQnVpbGRlciwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1JdGVtQ29udHJvbFxue1xuICAgIC8qKiBVc2VyJ3MgY3VzdG9tIGNsYXNzZXMgKi9cbiAgICBASW5wdXQoKVxuICAgIGNsYXNzOiBzdHJpbmc7XG5cbiAgICAvKiogU2V0cyBbbmFtZV0gYXR0cmlidXRlIG9mIGlucHV0LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYXJpYS1sYWJlbCBhdHRyaWJ1dGUgdG8gdGhlIGVsZW1lbnQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbCcpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYXJpYS1sYWJlbGxlZGJ5IGF0dHJpYnV0ZSB0byB0aGUgZWxlbWVudC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsJylcbiAgICBhcmlhTGFiZWxsZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGFyaWEtZGlzYWJsZWQgYXR0cmlidXRlIHRvIHRoZSBlbGVtZW50LlxuICAgICAqIFNldHMgdGhlIGlzLWRpc2FibGVkIGNsYXNzIHRvIHRoZSBlbGVtZW50LlxuICAgICAqIFdoZXRoZXIgdGhlIHJhdGluZyBpbmRpY2F0b3IgaXMgZGlzYWJsZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaXMtZGlzYWJsZWQnKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRpc2FibGVkJylcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgcmF0aW5nIGluZGljYXRvciBpcyBpbiBkaXNwbGF5TW9kZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1yYXRpbmctaW5kaWNhdG9yLS1kaXNwbGF5LW1vZGUnKVxuICAgIGRpc3BsYXlNb2RlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSByYXRpbmcgaW5kaWNhdG9yIGlzIGluIG5vbi1pbnRlcmFjdGl2ZSBzdGF0ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtcmF0aW5nLWluZGljYXRvci0tbm9uLWludGVyYWN0aXZlJylcbiAgICBub25JbnRlcmFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogTnVtYmVyIG9mIHJhdGVzIHRvIGRpc3BsYXlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBpbmRpY2F0b3JDYXBhY2l0eSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHZhbCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlLCBJTkRJQ0FUT1JfREVGQVVMVF9DQVBBQ0lUWSk7XG4gICAgICAgIHRoaXMuX2luZGljYXRvckNhcGFjaXR5ID0gdmFsIDwgMSA/IElORElDQVRPUl9ERUZBVUxUX0NBUEFDSVRZIDogdmFsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRvIGRpc3BsYXkgaGFsZiB2YWx1ZXMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd0hhbHZlcyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVXNlcidzIHZhbHVlIG51bWJlciBvZiByYXRpbmdzLiBJZiBwcm92aWRlZCwgT3ZlcnJpZGVzIHJhdGluZ0F2ZXJhZ2UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB2YWx1ZSA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBUb3RhbCBudW1iZXIgb2YgcmF0aW5ncy4gSWYgcHJvdmlkZWQsIHdpbGwgZGlzcGxheSB0ZXh0IHNob3dpbmcgdGhlIHRvdGFsIG51bWJlciBvZiByYXRpbmdzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdG90YWxSYXRpbmdzOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBSYXRpbmcgYXZlcmFnZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmF0aW5nQXZlcmFnZTogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogT2JqZWN0IGNvbnRhaW5pbmcga2V5LXZhbHVlIHBhaXJzIHdoZXJlIHRoZSBrZXkgaXMgdGhlIHJhdGluZyBhbmQgdGhlIHZhbHVlIGlzIHRoZSB0b3RhbCBzdW0gb2YgdGhvc2UgcmF0aW5ncy5cbiAgICAgKiBPdmVycmlkZXMgdG90YWxSYXRpbmdzIGFuZCByYXRpbmdBdmVyYWdlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmF0aW5nczogTnVtYmVyS2V5PG51bWJlcj47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0byBkaXNwbGF5IHRoZSBwb3BvdmVyIHRoYXQgc2hvd3MgdGhlIHN1bSBvZiBlYWNoIHJhdGluZy4gUmVxdWlyZXMgW3JhdGluZ3NdIG9iamVjdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlBbGxSYXRpbmdzID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBJY29uIGNsYXNzIGZvciByYXRlZCBpY29uIGZyb20gZnVuZGFtZW50YWwtc3R5bGVzIGxpYiBodHRwczovL3NhcC5naXRodWIuaW8vZnVuZGFtZW50YWwtc3R5bGVzLz9wYXRoPS9kb2NzL2NvbXBvbmVudHMtaWNvbi0tc2l6ZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJhdGVkSWNvbjogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEljb24gY2xhc3MgZm9yIHVucmF0ZWQgaWNvbiBmcm9tIGZ1bmRhbWVudGFsLXN0eWxlcyBsaWIgaHR0cHM6Ly9zYXAuZ2l0aHViLmlvL2Z1bmRhbWVudGFsLXN0eWxlcy8/cGF0aD0vZG9jcy9jb21wb25lbnRzLWljb24tLXNpemVzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB1bnJhdGVkSWNvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogUG9zc2libGUgdmFsdWVzIGFyZSAneHMnLCAnc20nLCAnbWQnLCAnbGcnLCAnY296eScsICdjb21wYWN0JywgJ2NvbmRlbnNlZCdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNpemU6IFJhdGluZ0luZGljYXRvclNpemUgPSAnbWQnO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCBkaXZpZGVyIGxhYmVsIGJldHdlZW4gdmlldyB2YWx1ZSBhbmQgaW5kaWNhdG9yIGNvdW50LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZHluYW1pY1RleHRJbmRpY2F0b3IgPSAnb2YnO1xuXG4gICAgLyoqXG4gICAgICogRmlyZWQgd2hlbiB0aGUgdXNlciBzZXRzIG9yIGNoYW5nZXMgdGhlaXIgcmF0aW5nLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJhdGluZ0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2l6ZUNsYXNzID0gdGhpcy5fZ2V0U2l6ZUNsYXNzKHRoaXMuc2l6ZSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcmF0ZXM6IHsgaWQ6IHN0cmluZzsgdmFsdWU6IG51bWJlciB9W10gPSBbXTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9yYXRpbmdJdGVtczogUmF0aW5nVmlld0l0ZW1bXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgdmlld1JhdGluZ1VJRCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmF0aW5nVUlEO1xuICAgIH1cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBpbmRpY2F0b3JDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5kaWNhdG9yQ2FwYWNpdHk7XG4gICAgfVxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IHZpZXdWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yYXRpbmdVSUQgPSByYXRpbmdVSUQrKztcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luZGljYXRvckNhcGFjaXR5ID0gSU5ESUNBVE9SX0RFRkFVTFRfQ0FQQUNJVFk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF92YWx1ZSA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2hpZGVEeW5hbWljVGV4dCA9IGZhbHNlO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIENzc0NsYXNzQnVpbGRlciBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cbiAgICAgKiBmdW5jdGlvbiBtdXN0IHJldHVybiBzaW5nbGUgc3RyaW5nXG4gICAgICogZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIG9yZGVyIHdoaWNoIGNzcyBjbGFzc2VzIGFyZSBhcHBsaWVkXG4gICAgICovXG4gICAgQGFwcGx5Q3NzQ2xhc3NcbiAgICBidWlsZENvbXBvbmVudENzc0NsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgdGhpcy5zaXplQ2xhc3MgPSB0aGlzLl9nZXRTaXplQ2xhc3ModGhpcy5zaXplKTtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgSU5ESUNBVE9SX1BSRUZJWCxcbiAgICAgICAgICAgIHRoaXMuc2l6ZUNsYXNzLFxuICAgICAgICAgICAgdGhpcy5hbGxvd0hhbHZlcyA/IElORElDQVRPUl9DTEFTU0VTLmhhbHZlcyA6ICcnLFxuICAgICAgICAgICAgISF0aGlzLnJhdGVkSWNvbiAmJiAhIXRoaXMudW5yYXRlZEljb24gPyBJTkRJQ0FUT1JfQ0xBU1NFUy5pY29uIDogJycsXG4gICAgICAgICAgICB0aGlzLl9oaWRlRHluYW1pY1RleHQgfHwgIXRoaXMuX3ZhbHVlID8gSU5ESUNBVE9SX0NMQVNTRVMuaGlkZUR5bmFtaWNUZXh0IDogJycsXG4gICAgICAgICAgICB0aGlzLmNsYXNzXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZTogKHZhbHVlOiBudW1iZXIpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX2NvbnZlcnRUb1ZhbHVlKCk7XG4gICAgICAgIHRoaXMuX3JhdGVzID0gdGhpcy5fZ2V0UmF0ZXMoKTtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgICAgIHRoaXMuX2dlbmVyYXRlUmF0aW5ncygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAnY2xhc3MnIGluIGNoYW5nZXMgfHxcbiAgICAgICAgICAgICdzaXplJyBpbiBjaGFuZ2VzIHx8XG4gICAgICAgICAgICAncmF0ZWRJY29uJyBpbiBjaGFuZ2VzIHx8XG4gICAgICAgICAgICAndW5yYXRlZEljb24nIGluIGNoYW5nZXMgfHxcbiAgICAgICAgICAgICdhbGxvd0hhbHZlcycgaW4gY2hhbmdlc1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgndmFsdWUnIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fY29udmVydFRvVmFsdWUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ2luZGljYXRvckNhcGFjaXR5JyBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLl9yYXRlcyA9IHRoaXMuX2dldFJhdGVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCdhbGxvd0hhbHZlcycgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jb252ZXJ0VG9WYWx1ZSgpO1xuICAgICAgICAgICAgdGhpcy5fcmF0ZXMgPSB0aGlzLl9nZXRSYXRlcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCdyYXRpbmdzJyBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLl9nZW5lcmF0ZVJhdGluZ3MoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fcGFyc2VWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBudW1iZXIpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvblNlbGVjdCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5yYXRpbmdDaGFuZ2VkLmVtaXQodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBHZW5lcmF0ZSByYXRpbmcgaXRlbXMgZm9yIHBvcG92ZXIgY29udGVudCBpZiByYXRpbmcgb2JqZWN0IHdhcyBkZWZpbmVkXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVSYXRpbmdzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMucmF0aW5ncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJhdGluZ3MgPSBPYmplY3QuZW50cmllcyh0aGlzLnJhdGluZ3MpXG4gICAgICAgICAgICAuZmlsdGVyKChbcmF0ZSwgdm90ZV0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBfcmF0ZSA9ICtyYXRlO1xuICAgICAgICAgICAgICAgIHJldHVybiAhaXNOYU4oX3JhdGUpICYmICFpc05hTigrdm90ZSkgJiYgX3JhdGUgPiAwO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5tYXAoKFtyYXRlLCB2b3Rlc10pID0+ICh7IHJhdGU6ICtyYXRlLCB2b3RlcyB9KSk7XG4gICAgICAgIGlmIChyYXRpbmdzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgdG90YWxWb3RlcywgdG90YWxSYXRpbmcgfSA9IHJhdGluZ3MucmVkdWNlKFxuICAgICAgICAgICAgKHRvdGFsLCByYXRpbmcpID0+ICh7XG4gICAgICAgICAgICAgICAgdG90YWxWb3RlczogdG90YWwudG90YWxWb3RlcyArIHJhdGluZy52b3RlcyxcbiAgICAgICAgICAgICAgICB0b3RhbFJhdGluZzogdG90YWwudG90YWxSYXRpbmcgKyByYXRpbmcucmF0ZSAqIHJhdGluZy52b3Rlc1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB7IHRvdGFsVm90ZXM6IDAsIHRvdGFsUmF0aW5nOiAwIH1cbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9yYXRpbmdJdGVtcyA9IHJhdGluZ3M7XG4gICAgICAgIHRoaXMucmF0aW5nQXZlcmFnZSA9IHRvdGFsUmF0aW5nIC8gdG90YWxWb3RlcztcbiAgICAgICAgdGhpcy50b3RhbFJhdGluZ3MgPSB0b3RhbFZvdGVzO1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX2NvbnZlcnRUb1ZhbHVlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBnZXQgY29udmVydGVkIHZpZXdWYWx1ZSBmb3IgcmVuZGVyIGluIGNvbXBvbmVudCB0ZW1wbGF0ZSBmcm9tIG9yaWdpbmFsIHZhbHVlIGlmIGl0IHN0aWxsIGV4aXN0cywgb3IgcmF0aW5nQXZlcmFnZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9jb252ZXJ0VG9WYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyc2VWYWx1ZSh0aGlzLnZhbHVlIHx8IHRoaXMucmF0aW5nQXZlcmFnZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBnZXQgY29udmVydGVkIHZhbHVlIGZyb20gb3JpZ2luYWwgdG8gdmlldyB2YWx1ZSB3aXRoIGRlcGVuZHMgb24gaGFsdmVzXG4gICAgICogRm9yIGV4YW1wbGUsXG4gICAgICogIG9yaWdpbmFsIHZhbHVlIGlzIGVxdWFsIHRvIDIuMzQsIHlvdSB3aWxsIGdldCBhbmQgcmVuZGVyIDJcbiAgICAgKiAgb3JpZ2luYWwgdmFsdWUgaXMgZXF1YWwgdG8gMy43NCwgeW91IHdpbGwgZ2V0IGFuZCByZW5kZXIgNFxuICAgICAqL1xuICAgIHByaXZhdGUgX3BhcnNlVmFsdWUodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGlmICghdmFsdWUgfHwgdmFsdWUgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGludGVnZXIgPSBNYXRoLmZsb29yKHZhbHVlKTtcbiAgICAgICAgY29uc3QgZnJhY3Rpb25hbCA9IHZhbHVlICUgMTtcbiAgICAgICAgbGV0IHYgPSBpbnRlZ2VyO1xuXG4gICAgICAgIGlmICh0aGlzLmFsbG93SGFsdmVzICYmIGZyYWN0aW9uYWwgPiAwLjI1ICYmIGZyYWN0aW9uYWwgPD0gMC41KSB7XG4gICAgICAgICAgICB2ID0gaW50ZWdlciArIDAuNTtcbiAgICAgICAgfSBlbHNlIGlmIChmcmFjdGlvbmFsID4gMC41KSB7XG4gICAgICAgICAgICB2ID0gaW50ZWdlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gTWF0aC5taW4odGhpcy5pbmRpY2F0b3JDb3VudCwgdik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBnZXQgcmF0aW5nIGljb25zIGFycmF5IHdpdGggdmFsdWUgYW5kIHVuaWMgaWRcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRSYXRlcygpOiB7IGlkOiBzdHJpbmc7IHZhbHVlOiBudW1iZXIgfVtdIHtcbiAgICAgICAgY29uc3Qgd2l0aEhhbHZlcyA9IHRoaXMuYWxsb3dIYWx2ZXMgPyAyIDogMTtcbiAgICAgICAgcmV0dXJuIEFycmF5KHRoaXMuaW5kaWNhdG9yQ291bnQgKiB3aXRoSGFsdmVzKVxuICAgICAgICAgICAgLmZpbGwoYHJhdGluZy0ke3RoaXMuX3JhdGluZ1VJRH1gKVxuICAgICAgICAgICAgLm1hcCgobmFtZSwgaW5kZXgpID0+ICh7XG4gICAgICAgICAgICAgICAgaWQ6IGAke25hbWV9LSR7aW5kZXggKyAxfWAsXG4gICAgICAgICAgICAgICAgdmFsdWU6IChpbmRleCArIDEpIC8gd2l0aEhhbHZlc1xuICAgICAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBnZXQgcmF0aW5nIGljb25zIGFycmF5IHdpdGggdmFsdWUgYW5kIHVuaWMgaWRcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRTaXplQ2xhc3Moc2l6ZTogUmF0aW5nSW5kaWNhdG9yU2l6ZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtJTkRJQ0FUT1JfUFJFRklYfS0tJHtzaXplIGluIFJhdGluZ0luZGljYXRvclNpemVFbnVtID8gc2l6ZSA6ICdtZCd9YDtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI3plcm9SYXRlIGxldC1oYWx2ZXM9XCJoYWx2ZXNcIj5cbiAgICA8aW5wdXRcbiAgICAgICAgYXJpYS1sYWJlbD1cIlJlc2V0IHRvIHplcm9cIlxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgY2xhc3M9XCJmZC1yYXRpbmctaW5kaWNhdG9yX19pbnB1dCBmZC1yYXRpbmctaW5kaWNhdG9yX19pbnB1dC0temVyby1yYXRpbmdcIlxuICAgICAgICAoY2xpY2spPVwib25TZWxlY3QoMClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbm9uSW50ZXJhY3RpdmUgfHwgZGlzcGxheU1vZGVcIlxuICAgICAgICBuYW1lPVwicmF0aW5nLXt7IHZpZXdSYXRpbmdVSUQgfX17eyBoYWx2ZXMgPyAnLWhhbHZlcycgOiAnJyB9fVwiXG4gICAgICAgIFtjaGVja2VkXT1cInZpZXdWYWx1ZSA9PT0gMFwiXG4gICAgLz5cbiAgICA8bGFiZWwgY2xhc3M9XCJmZC1yYXRpbmctaW5kaWNhdG9yX19sYWJlbCBmZC1yYXRpbmctaW5kaWNhdG9yX19sYWJlbC0temVyby1yYXRpbmdcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2xhYmVsPlxuPC9uZy10ZW1wbGF0ZT5cbjwhLS0gIHJvbGU9XCJhcHBsaWNhdGlvblwiIGlzIHVzZWQgaW4gb3JkZXIgdG8gbGV0IHVzZXIgdG8gY2hhbmdlIHZhbHVlIHdpdGggbGVmdC9yaWdodCBhcnJvd3MgaW4gSkFXUywgc2luY2UgSkFXUyBvdnZlcnJpZGVzIHRoZXNlIGFjdGlvbnMgLS0+XG48ZGl2IGNsYXNzPVwiZmQtcmF0aW5nLWluZGljYXRvcl9fY29udGFpbmVyXCIgcm9sZT1cImFwcGxpY2F0aW9uXCIgYXJpYS1yb2xlZGVzY3JpcHRpb249XCJSYXRpbmcgaW5kaWNhdG9yXCI+XG4gICAgPCEtLSBaZXJvIHZhbHVlIGlmIHdlIGRvbid0IGhhdmUgcHJvdmlkZWQgdmFsdWUgZnJvbSB1c2VyLCBgcmF0aW5nQXZlcmFnZWAgb3IgYHJhdGluZ3NgIC0tPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ6ZXJvUmF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPCEtLSBBdmFpbGFibGUgcmF0ZSB2YWx1ZXMgLS0+XG4gICAgQGZvciAocmF0ZSBvZiBfcmF0ZXM7IHRyYWNrIHJhdGUuaWQ7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpIHwgcmF0aW5nU3RhckxhYmVsOiBfcmF0ZXMubGVuZ3RoIDogYWxsb3dIYWx2ZXNcIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgY2xhc3M9XCJmZC1yYXRpbmctaW5kaWNhdG9yX19pbnB1dFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbm9uSW50ZXJhY3RpdmUgfHwgZGlzcGxheU1vZGVcIlxuICAgICAgICAgICAgW2lkXT1cInJhdGUuaWRcIlxuICAgICAgICAgICAgbmFtZT1cInJhdGluZy17eyB2aWV3UmF0aW5nVUlEIH19XCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJyYXRlLnZhbHVlXCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cInZpZXdWYWx1ZSA9PT0gcmF0ZS52YWx1ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3QocmF0ZS52YWx1ZSlcIlxuICAgICAgICAvPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmZC1yYXRpbmctaW5kaWNhdG9yX19sYWJlbFwiIFtmb3JdPVwicmF0ZS5pZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgQGlmIChyYXRlZEljb24pIHtcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZkLXJhdGluZy1pbmRpY2F0b3JfX2xhYmVsLXJhdGVkXCIgW2NsYXNzXT1cInVucmF0ZWRJY29uXCI+PC9pPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICh1bnJhdGVkSWNvbikge1xuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmQtcmF0aW5nLWluZGljYXRvcl9fbGFiZWwtdW5yYXRlZFwiIFtjbGFzc109XCJyYXRlZEljb25cIj48L2k+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbGFiZWw+XG4gICAgfVxuPC9kaXY+XG48IS0tIFBvcG92ZXIgaWYgZGlzcGxheUFsbFJhdGluZ3MgaXMgdHJ1ZSBhbmQgd2UgaGF2ZSByYXRpbmdzIG9iamVjdCAtLT5cbkBpZiAoZGlzcGxheUFsbFJhdGluZ3MgJiYgX3JhdGluZ0l0ZW1zLmxlbmd0aCkge1xuICAgIDxzcGFuIFtmZFBvcG92ZXJUcmlnZ2VyXT1cImFsbFJhdGluZ0NvbnRlbnRcIiBjbGFzcz1cImZkLXJhdGluZy1pbmRpY2F0b3JfX2R5bmFtaWMtdGV4dFwiPlxuICAgICAgICAoPHNwYW4gYXJpYS1sYWJlbD1cIlRvdGFsIHJhaXRpbmdcIiBmZC1saW5rPnt7IHRvdGFsUmF0aW5ncyB9fTwvc3BhblxuICAgICAgICA+KVxuICAgIDwvc3Bhbj5cbn0gQGVsc2Uge1xuICAgIEBpZiAodG90YWxSYXRpbmdzKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtcmF0aW5nLWluZGljYXRvcl9fZHluYW1pYy10ZXh0XCI+KHt7IHRvdGFsUmF0aW5ncyB9fSk8L3NwYW4+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtcmF0aW5nLWluZGljYXRvcl9fZHluYW1pYy10ZXh0XCJcbiAgICAgICAgICAgID4oe3sgdmlld1ZhbHVlIH19IHt7IGR5bmFtaWNUZXh0SW5kaWNhdG9yIH19IHt7IGluZGljYXRvckNvdW50IH19KTwvc3BhblxuICAgICAgICA+XG4gICAgfVxufVxuPGZkLXBvcG92ZXJcbiAgICAjYWxsUmF0aW5nQ29udGVudFxuICAgIFt0cmlnZ2Vyc109XCJbJ21vdXNlZW50ZXInLCAnbW91c2VsZWF2ZSddXCJcbiAgICBbbm9BcnJvd109XCJmYWxzZVwiXG4gICAgcGxhY2VtZW50PVwidG9wXCJcbiAgICBhZGRpdGlvbmFsQm9keUNsYXNzPVwiZmQtcmF0aW5nLWluZGljYXRvcl9fcG9wb3ZlclwiXG4+XG4gICAgQGZvciAocmF0aW5nIG9mIF9yYXRpbmdJdGVtczsgdHJhY2sgcmF0aW5nKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZC1yYXRpbmctaW5kaWNhdG9yX19zdW0tcm93XCIgW2NsYXNzXT1cInNpemVDbGFzc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLXJhdGluZy1pbmRpY2F0b3JfX2NvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKHJhdGUgb2YgX3JhdGVzOyB0cmFjayByYXRlLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZmQtcmF0aW5nLWluZGljYXRvcl9faW5wdXQtY2hlY2tlZF09XCJyYXRlLnZhbHVlID09PSByYXRpbmcucmF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLXJhdGluZy1pbmRpY2F0b3JfX2lucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZmQtcmF0aW5nLWluZGljYXRvcl9fbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAocmF0ZWRJY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmZC1yYXRpbmctaW5kaWNhdG9yX19sYWJlbC1yYXRlZFwiIFtjbGFzc109XCJ1bnJhdGVkSWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAodW5yYXRlZEljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZkLXJhdGluZy1pbmRpY2F0b3JfX2xhYmVsLXVucmF0ZWRcIiBbY2xhc3NdPVwicmF0ZWRJY29uXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKHt7IHJhdGluZy52b3RlcyB9fSlcbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9mZC1wb3BvdmVyPlxuIl19