@taiga-ui/kit 3.23.1 → 3.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (432) hide show
  1. package/abstract/abstract-native-select.d.ts +2 -2
  2. package/bundles/taiga-ui-kit-abstract.umd.js +3 -3
  3. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  4. package/bundles/taiga-ui-kit-components-accordion.umd.js +5 -5
  5. package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
  6. package/bundles/taiga-ui-kit-components-action.umd.js +3 -3
  7. package/bundles/taiga-ui-kit-components-action.umd.js.map +1 -1
  8. package/bundles/taiga-ui-kit-components-calendar-range.umd.js +2 -4
  9. package/bundles/taiga-ui-kit-components-calendar-range.umd.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-carousel.umd.js +12 -12
  11. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js +2 -2
  13. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js +2 -2
  15. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-checkbox.umd.js +2 -2
  17. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-combo-box.umd.js +2 -2
  19. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-elastic-container.umd.js +337 -9
  21. package/bundles/taiga-ui-kit-components-elastic-container.umd.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-files.umd.js +8 -9
  23. package/bundles/taiga-ui-kit-components-files.umd.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-filter.umd.js +4 -4
  25. package/bundles/taiga-ui-kit-components-filter.umd.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-input-copy.umd.js +4 -4
  27. package/bundles/taiga-ui-kit-components-input-copy.umd.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-input-count.umd.js +2 -2
  29. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +5 -5
  31. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +3 -3
  33. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-input-date.umd.js +5 -5
  35. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-input-files.umd.js +9 -9
  37. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
  38. package/bundles/taiga-ui-kit-components-input-inline.umd.js +2 -2
  39. package/bundles/taiga-ui-kit-components-input-inline.umd.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +2 -2
  41. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  42. package/bundles/taiga-ui-kit-components-input-month.umd.js +2 -2
  43. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-input-number.umd.js +3 -3
  45. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-input-password.umd.js +2 -2
  47. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +3 -3
  49. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-input-phone.umd.js +2 -2
  51. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-input-range.umd.js +4 -4
  53. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  54. package/bundles/taiga-ui-kit-components-input-slider.umd.js +2 -2
  55. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  56. package/bundles/taiga-ui-kit-components-input-tag.umd.js +4 -5
  57. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  58. package/bundles/taiga-ui-kit-components-input-time.umd.js +2 -2
  59. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  60. package/bundles/taiga-ui-kit-components-input-year.umd.js +2 -2
  61. package/bundles/taiga-ui-kit-components-input-year.umd.js.map +1 -1
  62. package/bundles/taiga-ui-kit-components-input.umd.js +2 -2
  63. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  64. package/bundles/taiga-ui-kit-components-items-with-more.umd.js +3 -3
  65. package/bundles/taiga-ui-kit-components-items-with-more.umd.js.map +1 -1
  66. package/bundles/taiga-ui-kit-components-line-clamp.umd.js +5 -5
  67. package/bundles/taiga-ui-kit-components-line-clamp.umd.js.map +1 -1
  68. package/bundles/taiga-ui-kit-components-multi-select.umd.js +3 -4
  69. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  70. package/bundles/taiga-ui-kit-components-pagination.umd.js +11 -11
  71. package/bundles/taiga-ui-kit-components-pagination.umd.js.map +1 -1
  72. package/bundles/taiga-ui-kit-components-progress.umd.js +8 -9
  73. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
  74. package/bundles/taiga-ui-kit-components-prompt.umd.js +11 -10
  75. package/bundles/taiga-ui-kit-components-prompt.umd.js.map +1 -1
  76. package/bundles/taiga-ui-kit-components-push.umd.js +3 -7
  77. package/bundles/taiga-ui-kit-components-push.umd.js.map +1 -1
  78. package/bundles/taiga-ui-kit-components-radio-block.umd.js +2 -2
  79. package/bundles/taiga-ui-kit-components-radio-block.umd.js.map +1 -1
  80. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js +2 -2
  81. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js.map +1 -1
  82. package/bundles/taiga-ui-kit-components-radio-list.umd.js +4 -4
  83. package/bundles/taiga-ui-kit-components-radio-list.umd.js.map +1 -1
  84. package/bundles/taiga-ui-kit-components-radio.umd.js +2 -2
  85. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  86. package/bundles/taiga-ui-kit-components-range.umd.js +16 -16
  87. package/bundles/taiga-ui-kit-components-range.umd.js.map +1 -1
  88. package/bundles/taiga-ui-kit-components-rating.umd.js +2 -2
  89. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -1
  90. package/bundles/taiga-ui-kit-components-routable-dialog.umd.js +2 -2
  91. package/bundles/taiga-ui-kit-components-routable-dialog.umd.js.map +1 -1
  92. package/bundles/taiga-ui-kit-components-select-option.umd.js +3 -3
  93. package/bundles/taiga-ui-kit-components-select-option.umd.js.map +1 -1
  94. package/bundles/taiga-ui-kit-components-select.umd.js +2 -2
  95. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  96. package/bundles/taiga-ui-kit-components-slider.umd.js +24 -22
  97. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  98. package/bundles/taiga-ui-kit-components-stepper.umd.js +68 -50
  99. package/bundles/taiga-ui-kit-components-stepper.umd.js.map +1 -1
  100. package/bundles/taiga-ui-kit-components-tabs.umd.js +23 -23
  101. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  102. package/bundles/taiga-ui-kit-components-tag.umd.js +3 -3
  103. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  104. package/bundles/taiga-ui-kit-components-text-area.umd.js +2 -2
  105. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  106. package/bundles/taiga-ui-kit-components-tiles.umd.js +9 -9
  107. package/bundles/taiga-ui-kit-components-tiles.umd.js.map +1 -1
  108. package/bundles/taiga-ui-kit-components-toggle.umd.js +2 -2
  109. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  110. package/bundles/taiga-ui-kit-components-tree.umd.js +3 -3
  111. package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
  112. package/bundles/taiga-ui-kit-directives-data-list-dropdown-manager.umd.js +5 -5
  113. package/bundles/taiga-ui-kit-directives-data-list-dropdown-manager.umd.js.map +1 -1
  114. package/bundles/taiga-ui-kit-directives-highlight.umd.js +9 -9
  115. package/bundles/taiga-ui-kit-directives-highlight.umd.js.map +1 -1
  116. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js +5 -5
  117. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js.map +1 -1
  118. package/bundles/taiga-ui-kit-directives-project-class.umd.js +3 -3
  119. package/bundles/taiga-ui-kit-directives-project-class.umd.js.map +1 -1
  120. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js +2 -4
  121. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js.map +1 -1
  122. package/bundles/taiga-ui-kit-pipes-filter-by-input.umd.js +14 -7
  123. package/bundles/taiga-ui-kit-pipes-filter-by-input.umd.js.map +1 -1
  124. package/bundles/taiga-ui-kit-services.umd.js +3 -3
  125. package/bundles/taiga-ui-kit-services.umd.js.map +1 -1
  126. package/bundles/taiga-ui-kit-tokens.umd.js +1 -0
  127. package/bundles/taiga-ui-kit-tokens.umd.js.map +1 -1
  128. package/bundles/taiga-ui-kit-utils-mask.umd.js +4 -2
  129. package/bundles/taiga-ui-kit-utils-mask.umd.js.map +1 -1
  130. package/components/accordion/accordion-item/accordion-item-content.directive.d.ts +1 -1
  131. package/components/accordion/accordion-item/accordion-item.component.d.ts +2 -2
  132. package/components/action/action.component.d.ts +2 -2
  133. package/components/arrow/arrow.component.d.ts +1 -1
  134. package/components/calendar-range/calendar-range.component.d.ts +1 -1
  135. package/components/carousel/carousel-scroll.directive.d.ts +2 -2
  136. package/components/carousel/carousel.component.d.ts +3 -3
  137. package/components/carousel/carousel.directive.d.ts +2 -2
  138. package/components/checkbox/checkbox.component.d.ts +1 -1
  139. package/components/checkbox-block/checkbox-block.component.d.ts +1 -1
  140. package/components/checkbox-labeled/checkbox-labeled.component.d.ts +1 -1
  141. package/components/combo-box/combo-box.component.d.ts +1 -1
  142. package/components/elastic-container/elastic-container.component.d.ts +2 -0
  143. package/components/elastic-container/elastic-container.directive.d.ts +2 -2
  144. package/components/files/file/file.component.d.ts +2 -3
  145. package/components/files/files.module.d.ts +1 -1
  146. package/components/filter/filter.component.d.ts +2 -2
  147. package/components/input/input.component.d.ts +1 -1
  148. package/components/input-copy/input-copy.component.d.ts +2 -2
  149. package/components/input-count/input-count.component.d.ts +1 -1
  150. package/components/input-date/input-date.component.d.ts +4 -4
  151. package/components/input-date-range/input-date-range.component.d.ts +4 -4
  152. package/components/input-date-time/input-date-time.component.d.ts +3 -3
  153. package/components/input-files/input-files.component.d.ts +1 -1
  154. package/components/input-files/input-files.directive.d.ts +2 -2
  155. package/components/input-inline/input-inline.component.d.ts +1 -1
  156. package/components/input-month/input-month.component.d.ts +1 -1
  157. package/components/input-month-range/input-month-range.component.d.ts +1 -1
  158. package/components/input-number/input-number.component.d.ts +1 -1
  159. package/components/input-password/input-password.component.d.ts +1 -1
  160. package/components/input-phone/input-phone.component.d.ts +1 -1
  161. package/components/input-phone-international/input-phone-international.component.d.ts +1 -1
  162. package/components/input-range/input-range.component.d.ts +2 -2
  163. package/components/input-slider/input-slider.component.d.ts +1 -1
  164. package/components/input-tag/input-tag.component.d.ts +2 -2
  165. package/components/input-time/input-time.component.d.ts +1 -1
  166. package/components/input-year/input-year.component.d.ts +1 -1
  167. package/components/items-with-more/items-with-more.service.d.ts +2 -2
  168. package/components/line-clamp/line-clamp.component.d.ts +2 -2
  169. package/components/multi-select/multi-select-group/multi-select-group.directive.d.ts +1 -1
  170. package/components/multi-select/multi-select.component.d.ts +1 -1
  171. package/components/pagination/pagination.component.d.ts +3 -3
  172. package/components/pdf-viewer/pdf-viewer.service.d.ts +1 -1
  173. package/components/progress/progress-bar/progress-color-segments.directive.d.ts +2 -2
  174. package/components/progress/progress-circle/progress-circle.component.d.ts +3 -3
  175. package/components/prompt/prompt.component.d.ts +1 -1
  176. package/components/prompt/prompt.module.d.ts +2 -1
  177. package/components/push/push-alert.directive.d.ts +1 -1
  178. package/components/push/push.service.d.ts +3 -5
  179. package/components/radio/radio.component.d.ts +1 -1
  180. package/components/radio-block/radio-block.component.d.ts +1 -1
  181. package/components/radio-labeled/radio-labeled.component.d.ts +1 -1
  182. package/components/radio-list/radio-list.component.d.ts +2 -2
  183. package/components/range/range-change.directive.d.ts +4 -4
  184. package/components/range/range.component.d.ts +2 -2
  185. package/components/rating/rating.component.d.ts +1 -1
  186. package/components/routable-dialog/routable-dialog.component.d.ts +1 -1
  187. package/components/select/select.component.d.ts +1 -1
  188. package/components/select-option/select-option.component.d.ts +3 -3
  189. package/components/slider/helpers/slider-key-steps.directive.d.ts +2 -2
  190. package/components/slider/helpers/slider-readonly.directive.d.ts +1 -1
  191. package/components/slider/slider.component.d.ts +2 -2
  192. package/components/stepper/step/step.component.d.ts +2 -2
  193. package/components/stepper/stepper.component.d.ts +7 -3
  194. package/components/tabs/tab/tab.component.d.ts +2 -2
  195. package/components/tabs/tabs/tabs.component.d.ts +2 -2
  196. package/components/tabs/tabs-with-more/tabs-with-more.component.d.ts +3 -3
  197. package/components/tabs/tabs.directive.d.ts +2 -2
  198. package/components/tabs/underline/underline.component.d.ts +1 -1
  199. package/components/tag/tag.component.d.ts +2 -2
  200. package/components/text-area/text-area.component.d.ts +1 -1
  201. package/components/tiles/tile.component.d.ts +2 -2
  202. package/components/tiles/tiles.component.d.ts +3 -3
  203. package/components/toggle/toggle.component.d.ts +1 -1
  204. package/components/tree/components/tree-item/tree-item.component.d.ts +2 -2
  205. package/components/tree/misc/tree.constants.d.ts +1 -1
  206. package/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.d.ts +2 -2
  207. package/directives/highlight/highlight.directive.d.ts +3 -3
  208. package/directives/lazy-loading/lazy-loading.directive.d.ts +2 -2
  209. package/directives/lazy-loading/lazy-loading.service.d.ts +1 -1
  210. package/directives/project-class/project-class.directive.d.ts +2 -2
  211. package/esm2015/abstract/abstract-native-select.js +4 -4
  212. package/esm2015/components/accordion/accordion-item/accordion-item-content.directive.js +3 -3
  213. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +4 -4
  214. package/esm2015/components/action/action.component.js +4 -4
  215. package/esm2015/components/calendar-range/calendar-range.component.js +3 -5
  216. package/esm2015/components/carousel/carousel-scroll.directive.js +5 -5
  217. package/esm2015/components/carousel/carousel.component.js +6 -6
  218. package/esm2015/components/carousel/carousel.directive.js +4 -4
  219. package/esm2015/components/checkbox/checkbox.component.js +3 -3
  220. package/esm2015/components/checkbox-block/checkbox-block.component.js +3 -3
  221. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +3 -3
  222. package/esm2015/components/combo-box/combo-box.component.js +3 -3
  223. package/esm2015/components/elastic-container/elastic-container.component.js +15 -3
  224. package/esm2015/components/elastic-container/elastic-container.directive.js +4 -4
  225. package/esm2015/components/files/file/file.component.js +6 -10
  226. package/esm2015/components/files/files.module.js +6 -3
  227. package/esm2015/components/filter/filter.component.js +5 -5
  228. package/esm2015/components/input/input.component.js +3 -3
  229. package/esm2015/components/input-copy/input-copy.component.js +5 -5
  230. package/esm2015/components/input-count/input-count.component.js +3 -3
  231. package/esm2015/components/input-date/input-date.component.js +6 -6
  232. package/esm2015/components/input-date-range/input-date-range.component.js +6 -6
  233. package/esm2015/components/input-date-time/input-date-time.component.js +4 -4
  234. package/esm2015/components/input-files/input-files.component.js +3 -3
  235. package/esm2015/components/input-files/input-files.directive.js +8 -8
  236. package/esm2015/components/input-inline/input-inline.component.js +3 -3
  237. package/esm2015/components/input-month/input-month.component.js +3 -3
  238. package/esm2015/components/input-month-range/input-month-range.component.js +3 -3
  239. package/esm2015/components/input-number/input-number.component.js +4 -4
  240. package/esm2015/components/input-password/input-password.component.js +3 -3
  241. package/esm2015/components/input-phone/input-phone.component.js +3 -3
  242. package/esm2015/components/input-phone-international/input-phone-international.component.js +4 -4
  243. package/esm2015/components/input-range/input-range.component.js +5 -5
  244. package/esm2015/components/input-slider/input-slider.component.js +3 -3
  245. package/esm2015/components/input-tag/input-tag.component.js +5 -6
  246. package/esm2015/components/input-time/input-time.component.js +3 -3
  247. package/esm2015/components/input-year/input-year.component.js +3 -3
  248. package/esm2015/components/items-with-more/items-with-more.service.js +4 -4
  249. package/esm2015/components/line-clamp/line-clamp.component.js +6 -6
  250. package/esm2015/components/multi-select/multi-select.component.js +3 -3
  251. package/esm2015/components/multi-select/native-multi-select/native-multi-select.js +2 -3
  252. package/esm2015/components/pagination/pagination.component.js +12 -12
  253. package/esm2015/components/progress/progress-bar/progress-color-segments.directive.js +4 -4
  254. package/esm2015/components/progress/progress-circle/progress-circle.component.js +6 -7
  255. package/esm2015/components/prompt/prompt.component.js +5 -4
  256. package/esm2015/components/prompt/prompt.module.js +5 -4
  257. package/esm2015/components/push/push-alert.component.js +2 -2
  258. package/esm2015/components/push/push-alert.directive.js +3 -3
  259. package/esm2015/components/push/push.service.js +1 -4
  260. package/esm2015/components/radio/radio.component.js +3 -3
  261. package/esm2015/components/radio-block/radio-block.component.js +3 -3
  262. package/esm2015/components/radio-labeled/radio-labeled.component.js +3 -3
  263. package/esm2015/components/radio-list/radio-list.component.js +5 -5
  264. package/esm2015/components/range/range-change.directive.js +11 -11
  265. package/esm2015/components/range/range.component.js +6 -6
  266. package/esm2015/components/rating/rating.component.js +3 -3
  267. package/esm2015/components/routable-dialog/routable-dialog.component.js +3 -3
  268. package/esm2015/components/select/select.component.js +3 -3
  269. package/esm2015/components/select-option/select-option.component.js +4 -4
  270. package/esm2015/components/slider/helpers/slider-key-steps.directive.js +7 -6
  271. package/esm2015/components/slider/helpers/slider-readonly.directive.js +5 -5
  272. package/esm2015/components/slider/helpers/slider-thumb-label/slider-thumb-label.component.js +5 -4
  273. package/esm2015/components/slider/slider.component.js +11 -11
  274. package/esm2015/components/stepper/step/step.component.js +4 -4
  275. package/esm2015/components/stepper/stepper.component.js +40 -20
  276. package/esm2015/components/tabs/tab/tab.component.js +5 -5
  277. package/esm2015/components/tabs/tabs/tabs.component.js +5 -5
  278. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.component.js +7 -7
  279. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.providers.js +3 -3
  280. package/esm2015/components/tabs/tabs.directive.js +4 -4
  281. package/esm2015/components/tabs/underline/underline.component.js +5 -5
  282. package/esm2015/components/tag/tag.component.js +4 -4
  283. package/esm2015/components/text-area/text-area.component.js +3 -3
  284. package/esm2015/components/tiles/tile.component.js +4 -4
  285. package/esm2015/components/tiles/tiles.component.js +7 -7
  286. package/esm2015/components/toggle/toggle.component.js +3 -3
  287. package/esm2015/components/tree/components/tree-item/tree-item.component.js +4 -4
  288. package/esm2015/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.js +6 -6
  289. package/esm2015/directives/highlight/highlight.directive.js +10 -10
  290. package/esm2015/directives/lazy-loading/lazy-loading.directive.js +4 -4
  291. package/esm2015/directives/lazy-loading/lazy-loading.service.js +3 -3
  292. package/esm2015/directives/project-class/project-class.directive.js +4 -4
  293. package/esm2015/internal/primitive-calendar-range/primitive-calendar-range.component.js +3 -5
  294. package/esm2015/pipes/filter-by-input/filter-by-input-with.pipe.js +4 -1
  295. package/esm2015/pipes/filter-by-input/filter-by-input.pipe.js +9 -4
  296. package/esm2015/services/dialog-form.service.js +4 -4
  297. package/esm2015/tokens/date-inputs-value-transformers.js +2 -1
  298. package/esm2015/utils/mask/create-date-mask.js +3 -2
  299. package/esm2015/utils/mask/create-date-range-mask.js +3 -2
  300. package/fesm2015/taiga-ui-kit-abstract.js +3 -3
  301. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  302. package/fesm2015/taiga-ui-kit-components-accordion.js +5 -5
  303. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  304. package/fesm2015/taiga-ui-kit-components-action.js +3 -3
  305. package/fesm2015/taiga-ui-kit-components-action.js.map +1 -1
  306. package/fesm2015/taiga-ui-kit-components-calendar-range.js +2 -4
  307. package/fesm2015/taiga-ui-kit-components-calendar-range.js.map +1 -1
  308. package/fesm2015/taiga-ui-kit-components-carousel.js +12 -12
  309. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  310. package/fesm2015/taiga-ui-kit-components-checkbox-block.js +2 -2
  311. package/fesm2015/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  312. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js +2 -2
  313. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  314. package/fesm2015/taiga-ui-kit-components-checkbox.js +2 -2
  315. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  316. package/fesm2015/taiga-ui-kit-components-combo-box.js +2 -2
  317. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  318. package/fesm2015/taiga-ui-kit-components-elastic-container.js +17 -5
  319. package/fesm2015/taiga-ui-kit-components-elastic-container.js.map +1 -1
  320. package/fesm2015/taiga-ui-kit-components-files.js +9 -10
  321. package/fesm2015/taiga-ui-kit-components-files.js.map +1 -1
  322. package/fesm2015/taiga-ui-kit-components-filter.js +4 -4
  323. package/fesm2015/taiga-ui-kit-components-filter.js.map +1 -1
  324. package/fesm2015/taiga-ui-kit-components-input-copy.js +4 -4
  325. package/fesm2015/taiga-ui-kit-components-input-copy.js.map +1 -1
  326. package/fesm2015/taiga-ui-kit-components-input-count.js +2 -2
  327. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  328. package/fesm2015/taiga-ui-kit-components-input-date-range.js +5 -5
  329. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  330. package/fesm2015/taiga-ui-kit-components-input-date-time.js +3 -3
  331. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  332. package/fesm2015/taiga-ui-kit-components-input-date.js +5 -5
  333. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  334. package/fesm2015/taiga-ui-kit-components-input-files.js +9 -9
  335. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
  336. package/fesm2015/taiga-ui-kit-components-input-inline.js +2 -2
  337. package/fesm2015/taiga-ui-kit-components-input-inline.js.map +1 -1
  338. package/fesm2015/taiga-ui-kit-components-input-month-range.js +2 -2
  339. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  340. package/fesm2015/taiga-ui-kit-components-input-month.js +2 -2
  341. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  342. package/fesm2015/taiga-ui-kit-components-input-number.js +3 -3
  343. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  344. package/fesm2015/taiga-ui-kit-components-input-password.js +2 -2
  345. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  346. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +3 -3
  347. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  348. package/fesm2015/taiga-ui-kit-components-input-phone.js +2 -2
  349. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  350. package/fesm2015/taiga-ui-kit-components-input-range.js +4 -4
  351. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  352. package/fesm2015/taiga-ui-kit-components-input-slider.js +2 -2
  353. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  354. package/fesm2015/taiga-ui-kit-components-input-tag.js +4 -5
  355. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  356. package/fesm2015/taiga-ui-kit-components-input-time.js +2 -2
  357. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  358. package/fesm2015/taiga-ui-kit-components-input-year.js +2 -2
  359. package/fesm2015/taiga-ui-kit-components-input-year.js.map +1 -1
  360. package/fesm2015/taiga-ui-kit-components-input.js +2 -2
  361. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  362. package/fesm2015/taiga-ui-kit-components-items-with-more.js +3 -3
  363. package/fesm2015/taiga-ui-kit-components-items-with-more.js.map +1 -1
  364. package/fesm2015/taiga-ui-kit-components-line-clamp.js +5 -5
  365. package/fesm2015/taiga-ui-kit-components-line-clamp.js.map +1 -1
  366. package/fesm2015/taiga-ui-kit-components-multi-select.js +3 -4
  367. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  368. package/fesm2015/taiga-ui-kit-components-pagination.js +11 -11
  369. package/fesm2015/taiga-ui-kit-components-pagination.js.map +1 -1
  370. package/fesm2015/taiga-ui-kit-components-progress.js +8 -9
  371. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
  372. package/fesm2015/taiga-ui-kit-components-prompt.js +8 -7
  373. package/fesm2015/taiga-ui-kit-components-prompt.js.map +1 -1
  374. package/fesm2015/taiga-ui-kit-components-push.js +3 -6
  375. package/fesm2015/taiga-ui-kit-components-push.js.map +1 -1
  376. package/fesm2015/taiga-ui-kit-components-radio-block.js +2 -2
  377. package/fesm2015/taiga-ui-kit-components-radio-block.js.map +1 -1
  378. package/fesm2015/taiga-ui-kit-components-radio-labeled.js +2 -2
  379. package/fesm2015/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  380. package/fesm2015/taiga-ui-kit-components-radio-list.js +4 -4
  381. package/fesm2015/taiga-ui-kit-components-radio-list.js.map +1 -1
  382. package/fesm2015/taiga-ui-kit-components-radio.js +2 -2
  383. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  384. package/fesm2015/taiga-ui-kit-components-range.js +15 -15
  385. package/fesm2015/taiga-ui-kit-components-range.js.map +1 -1
  386. package/fesm2015/taiga-ui-kit-components-rating.js +2 -2
  387. package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -1
  388. package/fesm2015/taiga-ui-kit-components-routable-dialog.js +2 -2
  389. package/fesm2015/taiga-ui-kit-components-routable-dialog.js.map +1 -1
  390. package/fesm2015/taiga-ui-kit-components-select-option.js +3 -3
  391. package/fesm2015/taiga-ui-kit-components-select-option.js.map +1 -1
  392. package/fesm2015/taiga-ui-kit-components-select.js +2 -2
  393. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  394. package/fesm2015/taiga-ui-kit-components-slider.js +24 -22
  395. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  396. package/fesm2015/taiga-ui-kit-components-stepper.js +44 -27
  397. package/fesm2015/taiga-ui-kit-components-stepper.js.map +1 -1
  398. package/fesm2015/taiga-ui-kit-components-tabs.js +23 -23
  399. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  400. package/fesm2015/taiga-ui-kit-components-tag.js +3 -3
  401. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  402. package/fesm2015/taiga-ui-kit-components-text-area.js +2 -2
  403. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  404. package/fesm2015/taiga-ui-kit-components-tiles.js +9 -9
  405. package/fesm2015/taiga-ui-kit-components-tiles.js.map +1 -1
  406. package/fesm2015/taiga-ui-kit-components-toggle.js +2 -2
  407. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  408. package/fesm2015/taiga-ui-kit-components-tree.js +3 -3
  409. package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
  410. package/fesm2015/taiga-ui-kit-directives-data-list-dropdown-manager.js +5 -5
  411. package/fesm2015/taiga-ui-kit-directives-data-list-dropdown-manager.js.map +1 -1
  412. package/fesm2015/taiga-ui-kit-directives-highlight.js +9 -9
  413. package/fesm2015/taiga-ui-kit-directives-highlight.js.map +1 -1
  414. package/fesm2015/taiga-ui-kit-directives-lazy-loading.js +5 -5
  415. package/fesm2015/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
  416. package/fesm2015/taiga-ui-kit-directives-project-class.js +3 -3
  417. package/fesm2015/taiga-ui-kit-directives-project-class.js.map +1 -1
  418. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js +2 -4
  419. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js.map +1 -1
  420. package/fesm2015/taiga-ui-kit-pipes-filter-by-input.js +11 -3
  421. package/fesm2015/taiga-ui-kit-pipes-filter-by-input.js.map +1 -1
  422. package/fesm2015/taiga-ui-kit-services.js +3 -3
  423. package/fesm2015/taiga-ui-kit-services.js.map +1 -1
  424. package/fesm2015/taiga-ui-kit-tokens.js +1 -0
  425. package/fesm2015/taiga-ui-kit-tokens.js.map +1 -1
  426. package/fesm2015/taiga-ui-kit-utils-mask.js +4 -2
  427. package/fesm2015/taiga-ui-kit-utils-mask.js.map +1 -1
  428. package/internal/primitive-calendar-range/primitive-calendar-range.component.d.ts +1 -1
  429. package/package.json +4 -4
  430. package/pipes/filter-by-input/filter-by-input-with.pipe.d.ts +3 -0
  431. package/pipes/filter-by-input/filter-by-input.pipe.d.ts +3 -1
  432. package/services/dialog-form.service.d.ts +2 -2
@@ -14,9 +14,9 @@ import * as i3 from "@angular/common";
14
14
  import * as i4 from "@angular/forms";
15
15
  import * as i5 from "rxjs";
16
16
  export class TuiInputPasswordComponent extends AbstractTuiControl {
17
- constructor(control, changeDetectorRef, textfieldSize, passwordTexts$, options, hintOptions, mode$) {
17
+ constructor(control, cdr, textfieldSize, passwordTexts$, options, hintOptions, mode$) {
18
18
  var _a;
19
- super(control, changeDetectorRef);
19
+ super(control, cdr);
20
20
  this.textfieldSize = textfieldSize;
21
21
  this.passwordTexts$ = passwordTexts$;
22
22
  this.options = options;
@@ -115,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
115
115
  type: ViewChild,
116
116
  args: [TuiPrimitiveTextfieldComponent]
117
117
  }], getContext: [] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGFzc3dvcmQvaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGFzc3dvcmQvaW5wdXQtcGFzc3dvcmQudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILGtCQUFrQixFQUNsQixZQUFZLEVBQ1osMEJBQTBCLEVBSzFCLE9BQU8sR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsYUFBYSxFQUNiLFFBQVEsRUFDUixrQkFBa0IsRUFFbEIsdUJBQXVCLEVBQ3ZCLDhCQUE4QixHQUlqQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE9BQU8sRUFBQyxhQUFhLEVBQUUsS0FBSyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUNILDBCQUEwQixHQUU3QixNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBYWxDLE1BQU0sT0FBTyx5QkFDVCxTQUFRLGtCQUEwQjtJQXVCbEMsWUFJSSxPQUF5QixFQUNFLGlCQUFvQyxFQUU5QyxhQUF3QyxFQUVoRCxjQUE0QyxFQUU1QyxPQUFnQyxFQUdoQyxXQUEy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QXVCLDZCQUV2QixRQUFROzJHQXZDWCx5QkFBeUIsNkNBTnZCO1FBQ1AsMEJBQTBCLENBQUMseUJBQXlCLENBQUM7UUFDckQsWUFBWSxDQUFDLHlCQUF5QixDQUFDO1FBQ3ZDLGFBQWE7S0FDaEIscUVBTVUsOEJBQThCLHVFQ3hEN0MsbytDQStDQTtBRHlGSTtJQURDLE9BQU87MkRBS1A7NEZBeEZRLHlCQUF5QjtrQkFYckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixXQUFXLEVBQUUsZ0NBQWdDO29CQUM3QyxTQUFTLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztvQkFDMUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFNBQVMsRUFBRTt3QkFDUCwwQkFBMEIsMkJBQTJCO3dCQUNyRCxZQUFZLDJCQUEyQjt3QkFDdkMsYUFBYTtxQkFDaEI7aUJBQ0o7OzBCQTBCUSxRQUFROzswQkFDUixJQUFJOzswQkFDSixNQUFNOzJCQUFDLFNBQVM7OzBCQUVoQixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ3hCLE1BQU07MkJBQUMsa0JBQWtCOzswQkFFekIsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUV6QixNQUFNOzJCQUFDLDBCQUEwQjs7MEJBRWpDLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsdUJBQXVCOzswQkFFOUIsTUFBTTsyQkFBQyxRQUFROzRDQWxDSCxTQUFTO3NCQUR6QixTQUFTO3VCQUFDLDhCQUE4QjtnQkFnRmpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBJbmplY3QsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlDb250cm9sLFxuICAgIHR1aUFzQ29udHJvbCxcbiAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcixcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlJbnB1dFR5cGUsXG4gICAgVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbiAgICB0dWlQdXJlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgTU9ERV9QUk9WSURFUixcbiAgICBUVUlfTU9ERSxcbiAgICBUVUlfVEVYVEZJRUxEX1NJWkUsXG4gICAgVHVpQnJpZ2h0bmVzcyxcbiAgICBUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpU2l6ZUwsXG4gICAgVHVpU2l6ZVMsXG4gICAgVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUVUlfUEFTU1dPUkRfVEVYVFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgRU1QVFksIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHN0YXJ0V2l0aH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICAgIFRVSV9JTlBVVF9QQVNTV09SRF9PUFRJT05TLFxuICAgIFR1aUlucHV0UGFzc3dvcmRPcHRpb25zLFxufSBmcm9tICcuL2lucHV0LXBhc3N3b3JkLW9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1wYXNzd29yZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXBhc3N3b3JkLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LXBhc3N3b3JkLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IoVHVpSW5wdXRQYXNzd29yZENvbXBvbmVudCksXG4gICAgICAgIHR1aUFzQ29udHJvbChUdWlJbnB1dFBhc3N3b3JkQ29tcG9uZW50KSxcbiAgICAgICAgTU9ERV9QUk9WSURFUixcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFBhc3N3b3JkQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8c3RyaW5nPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpcmVjdGl2ZSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuaGludE9wdGlvbnM/LmNoYW5nZSQgfHwgRU1QVFk7XG5cbiAgICBpc1Bhc3N3b3JkSGlkZGVuID0gdHJ1ZTtcblxuICAgIHJlYWRvbmx5IGNvbXB1dGVkQXBwZWFyYW5jZSQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLm1vZGUkLnBpcGUobWFwKHZhbCA9PiAodmFsID09PSAnb25EYXJrJyA/ICdvbkRhcmsnIDogJycpKSksXG4gICAgICAgIHRoaXMuZGlyZWN0aXZlJC5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuaGludE9wdGlvbnM/LmFwcGVhcmFuY2UgfHwgJycpLFxuICAgICAgICApLFxuICAgIF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW21vZGUsIGNvbnRyb2xsZXJdKSA9PiBjb250cm9sbGVyIHx8IG1vZGUpLFxuICAgICAgICBzdGFydFdpdGgoJycpLFxuICAgICk7XG5cbiAgICByZWFkb25seSB0eXBlITogVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlTaXplTCB8IFR1aVNpemVTPjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemU6IFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX1BBU1NXT1JEX1RFWFRTKVxuICAgICAgICByZWFkb25seSBwYXNzd29yZFRleHRzJDogT2JzZXJ2YWJsZTxbc3RyaW5nLCBzdHJpbmddPixcbiAgICAgICAgQEluamVjdChUVUlfSU5QVVRfUEFTU1dPUkRfT1BUSU9OUylcbiAgICAgICAgcmVhZG9ubHkgb3B0aW9uczogVHVpSW5wdXRQYXNzd29yZE9wdGlvbnMsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpSGludE9wdGlvbnNEaXJlY3RpdmUpXG4gICAgICAgIHJlYWRvbmx5IGhpbnRPcHRpb25zOiBUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoVFVJX01PREUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kZSQ6IE9ic2VydmFibGU8VHVpQnJpZ2h0bmVzcyB8IG51bGw+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZERpc2FibGVkIHx8ICF0aGlzLnRleHRmaWVsZFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHRoaXMudGV4dGZpZWxkLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudGV4dGZpZWxkICYmIHRoaXMudGV4dGZpZWxkLmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGljb24oKTogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aVNpemVMIHwgVHVpU2l6ZVM+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUGFzc3dvcmRIaWRkZW4gPyB0aGlzLm9wdGlvbnMuaWNvbnMuaGlkZSA6IHRoaXMub3B0aW9ucy5pY29ucy5zaG93O1xuICAgIH1cblxuICAgIGdldCBjb250ZXh0KCk6IFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpU2l6ZUwgfCBUdWlTaXplUz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDb250ZXh0KHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplKTtcbiAgICB9XG5cbiAgICBnZXQgaW5wdXRUeXBlKCk6IFR1aUlucHV0VHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUGFzc3dvcmRIaWRkZW4gfHwgIXRoaXMuaW50ZXJhY3RpdmUgPyAncGFzc3dvcmQnIDogJ3RleHQnO1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodGV4dFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRleHRWYWx1ZTtcbiAgICB9XG5cbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlUGFzc3dvcmRWaXNpYmlsaXR5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzUGFzc3dvcmRIaWRkZW4gPSAhdGhpcy5pc1Bhc3N3b3JkSGlkZGVuO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0Q29udGV4dChcbiAgICAgICAgJGltcGxpY2l0OiBUdWlTaXplTCB8IFR1aVNpemVTLFxuICAgICk6IFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpU2l6ZUwgfCBUdWlTaXplUz4ge1xuICAgICAgICByZXR1cm4geyRpbXBsaWNpdH07XG4gICAgfVxufVxuIiwiPHR1aS1wcmltaXRpdmUtdGV4dGZpZWxkXG4gICAgY2xhc3M9XCJ0LXRleHRmaWVsZFwiXG4gICAgW3BzZXVkb0ZvY3VzXT1cInBzZXVkb0ZvY3VzXCJcbiAgICBbcHNldWRvSG92ZXJdPVwicHNldWRvSG92ZXJcIlxuICAgIFtwc2V1ZG9BY3RpdmVdPVwicHNldWRvQWN0aXZlXCJcbiAgICBbaW52YWxpZF09XCJjb21wdXRlZEludmFsaWRcIlxuICAgIFtmb2N1c2FibGVdPVwiZm9jdXNhYmxlXCJcbiAgICBbbmF0aXZlSWRdPVwibmF0aXZlSWRcIlxuICAgIFtkaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkXCJcbiAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgIFt0dWlUZXh0ZmllbGRJY29uXT1cImludGVyYWN0aXZlID8gaWNvbkNvbnRlbnQgOiAnJ1wiXG4gICAgWyh2YWx1ZSldPVwidmFsdWVcIlxuICAgIChmb2N1c2VkQ2hhbmdlKT1cIm9uRm9jdXNlZCgkZXZlbnQpXCJcbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnRcbiAgICAgICAgc2VsZWN0PVwiaW5wdXRcIlxuICAgICAgICBuZ1Byb2plY3RBcz1cImlucHV0XCJcbiAgICA+PC9uZy1jb250ZW50PlxuPC90dWktcHJpbWl0aXZlLXRleHRmaWVsZD5cblxuPG5nLXRlbXBsYXRlXG4gICAgI2ljb25Db250ZW50PVwicG9seW1vcnBoZXVzXCJcbiAgICBbcG9seW1vcnBoZXVzXT1cInR5cGVcIlxuPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYXNzd29yZFRleHRzJCB8IGFzeW5jIGFzIHRleHRzXCI+XG4gICAgICAgIDx0dWktc3ZnXG4gICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiaWNvbiBhcyBzcmM7IGNvbnRleHQ6IGNvbnRleHRcIlxuICAgICAgICAgICAgdHVpV3JhcHBlclxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1wYXNzd29yZF9faWNvblwiXG4gICAgICAgICAgICBjbGFzcz1cInQtaWNvblwiXG4gICAgICAgICAgICBbdHVpSGludF09XCJ0ZXh0c1swXSAmJiB0ZXh0c1sxXSAmJiBoaW50Q29udGVudFwiXG4gICAgICAgICAgICBbdHVpSGludERpcmVjdGlvbl09XCJoaW50T3B0aW9ucz8uZGlyZWN0aW9uIHx8ICdib3R0b20tbGVmdCdcIlxuICAgICAgICAgICAgW3R1aUhpbnRBcHBlYXJhbmNlXT1cIihjb21wdXRlZEFwcGVhcmFuY2UkIHwgYXN5bmMpIHx8ICcnXCJcbiAgICAgICAgICAgIFtzcmNdPVwic3JjXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVQYXNzd29yZFZpc2liaWxpdHkoKVwiXG4gICAgICAgID48L3R1aS1zdmc+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAjaGludENvbnRlbnQ9XCJwb2x5bW9ycGhldXNcIlxuICAgICAgICAgICAgcG9seW1vcnBoZXVzXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGlzUGFzc3dvcmRIaWRkZW4gPyB0ZXh0c1swXSA6IHRleHRzWzFdIH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGFzc3dvcmQvaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGFzc3dvcmQvaW5wdXQtcGFzc3dvcmQudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILGtCQUFrQixFQUNsQixZQUFZLEVBQ1osMEJBQTBCLEVBSzFCLE9BQU8sR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsYUFBYSxFQUNiLFFBQVEsRUFDUixrQkFBa0IsRUFFbEIsdUJBQXVCLEVBQ3ZCLDhCQUE4QixHQUlqQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE9BQU8sRUFBQyxhQUFhLEVBQUUsS0FBSyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUNILDBCQUEwQixHQUU3QixNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBYWxDLE1BQU0sT0FBTyx5QkFDVCxTQUFRLGtCQUEwQjtJQXVCbEMsWUFJSSxPQUF5QixFQUNFLEdBQXNCLEVBRWhDLGFBQXdDLEVBRWhELGNBQTRDLEVBRTVDLE9BQWdDLEVBR2hDLFdBQTJDLEVBRW5DLEtBQXVDOztRQUV4RCxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBWEgsa0JBQWEsR0FBYixhQUFhLENBQTJCO1FBRWhELG1CQUFjLEdBQWQsY0FBYyxDQUE4QjtRQUU1QyxZQUFPLEdBQVAsT0FBTyxDQUF5QjtRQUdoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0M7UUFFbkMsVUFBSyxHQUFMLEtBQUssQ0FBa0M7UUFqQzNDLGVBQVUsR0FBb0IsQ0FBQSxNQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLE9BQU8sS0FBSSxLQUFLLENBQUM7UUFFbEYscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBRWYsd0JBQW1CLEdBQXVCLGFBQWEsQ0FBQztZQUM3RCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDaEIsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNmLEdBQUcsQ0FBQyxHQUFHLEVBQUUsV0FBQyxPQUFBLENBQUEsTUFBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxVQUFVLEtBQUksRUFBRSxDQUFBLEVBQUEsQ0FBQyxDQUNoRDtTQUNKLENBQUMsQ0FBQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsRUFDL0MsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUNoQixDQUFDO0lBdUJGLENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQzNDLENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztJQUNyRixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDNUUsQ0FBQztJQUVELGFBQWEsQ0FBQyxTQUFpQjtRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztJQUMzQixDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWdCO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELHdCQUF3QjtRQUNwQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDbkQsQ0FBQztJQUVTLGdCQUFnQjtRQUN0QixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFHTyxVQUFVLENBQ2QsU0FBOEI7UUFFOUIsT0FBTyxFQUFDLFNBQVMsRUFBQyxDQUFDO0lBQ3ZCLENBQUM7O3VIQXhGUSx5QkFBeUIsa0JBMkJ0QixTQUFTLHlDQUVULGlCQUFpQixhQUNqQixrQkFBa0IsYUFFbEIsa0JBQWtCLGFBRWxCLDBCQUEwQixhQUcxQix1QkFBdUIsNkJBRXZCLFFBQVE7MkdBdkNYLHlCQUF5Qiw2Q0FOdkI7UUFDUCwwQkFBMEIsQ0FBQyx5QkFBeUIsQ0FBQztRQUNyRCxZQUFZLENBQUMseUJBQXlCLENBQUM7UUFDdkMsYUFBYTtLQUNoQixxRUFNVSw4QkFBOEIsdUVDeEQ3QyxvK0NBK0NBO0FEeUZJO0lBREMsT0FBTzsyREFLUDs0RkF4RlEseUJBQXlCO2tCQVhyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLFNBQVMsRUFBRSxDQUFDLDZCQUE2QixDQUFDO29CQUMxQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFO3dCQUNQLDBCQUEwQiwyQkFBMkI7d0JBQ3JELFlBQVksMkJBQTJCO3dCQUN2QyxhQUFhO3FCQUNoQjtpQkFDSjs7MEJBMEJRLFFBQVE7OzBCQUNSLElBQUk7OzBCQUNKLE1BQU07MkJBQUMsU0FBUzs7MEJBRWhCLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDeEIsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUV6QixNQUFNOzJCQUFDLGtCQUFrQjs7MEJBRXpCLE1BQU07MkJBQUMsMEJBQTBCOzswQkFFakMsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyx1QkFBdUI7OzBCQUU5QixNQUFNOzJCQUFDLFFBQVE7NENBbENILFNBQVM7c0JBRHpCLFNBQVM7dUJBQUMsOEJBQThCO2dCQWdGakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEluamVjdCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgdHVpQXNDb250cm9sLFxuICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yLFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aUlucHV0VHlwZSxcbiAgICBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50LFxuICAgIHR1aVB1cmUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBNT0RFX1BST1ZJREVSLFxuICAgIFRVSV9NT0RFLFxuICAgIFRVSV9URVhURklFTERfU0laRSxcbiAgICBUdWlCcmlnaHRuZXNzLFxuICAgIFR1aUhpbnRPcHRpb25zRGlyZWN0aXZlLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplUyxcbiAgICBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1RVSV9QQVNTV09SRF9URVhUU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBFTVBUWSwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgc3RhcnRXaXRofSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gICAgVFVJX0lOUFVUX1BBU1NXT1JEX09QVElPTlMsXG4gICAgVHVpSW5wdXRQYXNzd29yZE9wdGlvbnMsXG59IGZyb20gJy4vaW5wdXQtcGFzc3dvcmQtb3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LXBhc3N3b3JkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtcGFzc3dvcmQudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtcGFzc3dvcmQuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcihUdWlJbnB1dFBhc3N3b3JkQ29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0UGFzc3dvcmRDb21wb25lbnQpLFxuICAgICAgICBNT0RFX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0UGFzc3dvcmRDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxzdHJpbmc+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlyZWN0aXZlJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5oaW50T3B0aW9ucz8uY2hhbmdlJCB8fCBFTVBUWTtcblxuICAgIGlzUGFzc3dvcmRIaWRkZW4gPSB0cnVlO1xuXG4gICAgcmVhZG9ubHkgY29tcHV0ZWRBcHBlYXJhbmNlJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMubW9kZSQucGlwZShtYXAodmFsID0+ICh2YWwgPT09ICdvbkRhcmsnID8gJ29uRGFyaycgOiAnJykpKSxcbiAgICAgICAgdGhpcy5kaXJlY3RpdmUkLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5oaW50T3B0aW9ucz8uYXBwZWFyYW5jZSB8fCAnJyksXG4gICAgICAgICksXG4gICAgXSkucGlwZShcbiAgICAgICAgbWFwKChbbW9kZSwgY29udHJvbGxlcl0pID0+IGNvbnRyb2xsZXIgfHwgbW9kZSksXG4gICAgICAgIHN0YXJ0V2l0aCgnJyksXG4gICAgKTtcblxuICAgIHJlYWRvbmx5IHR5cGUhOiBUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aVNpemVMIHwgVHVpU2l6ZVM+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemU6IFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX1BBU1NXT1JEX1RFWFRTKVxuICAgICAgICByZWFkb25seSBwYXNzd29yZFRleHRzJDogT2JzZXJ2YWJsZTxbc3RyaW5nLCBzdHJpbmddPixcbiAgICAgICAgQEluamVjdChUVUlfSU5QVVRfUEFTU1dPUkRfT1BUSU9OUylcbiAgICAgICAgcmVhZG9ubHkgb3B0aW9uczogVHVpSW5wdXRQYXNzd29yZE9wdGlvbnMsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpSGludE9wdGlvbnNEaXJlY3RpdmUpXG4gICAgICAgIHJlYWRvbmx5IGhpbnRPcHRpb25zOiBUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZSB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoVFVJX01PREUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kZSQ6IE9ic2VydmFibGU8VHVpQnJpZ2h0bmVzcyB8IG51bGw+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjZHIpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZWREaXNhYmxlZCB8fCAhdGhpcy50ZXh0ZmllbGRcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLnRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnRleHRmaWVsZCAmJiB0aGlzLnRleHRmaWVsZC5mb2N1c2VkO1xuICAgIH1cblxuICAgIGdldCBpY29uKCk6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlTaXplTCB8IFR1aVNpemVTPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1Bhc3N3b3JkSGlkZGVuID8gdGhpcy5vcHRpb25zLmljb25zLmhpZGUgOiB0aGlzLm9wdGlvbnMuaWNvbnMuc2hvdztcbiAgICB9XG5cbiAgICBnZXQgY29udGV4dCgpOiBUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aVNpemVMIHwgVHVpU2l6ZVM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29udGV4dCh0aGlzLnRleHRmaWVsZFNpemUuc2l6ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0VHlwZSgpOiBUdWlJbnB1dFR5cGUge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1Bhc3N3b3JkSGlkZGVuIHx8ICF0aGlzLmludGVyYWN0aXZlID8gJ3Bhc3N3b3JkJyA6ICd0ZXh0JztcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHRleHRWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0ZXh0VmFsdWU7XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIHRvZ2dsZVBhc3N3b3JkVmlzaWJpbGl0eSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1Bhc3N3b3JkSGlkZGVuID0gIXRoaXMuaXNQYXNzd29yZEhpZGRlbjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGdldENvbnRleHQoXG4gICAgICAgICRpbXBsaWNpdDogVHVpU2l6ZUwgfCBUdWlTaXplUyxcbiAgICApOiBUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aVNpemVMIHwgVHVpU2l6ZVM+IHtcbiAgICAgICAgcmV0dXJuIHskaW1wbGljaXR9O1xuICAgIH1cbn1cbiIsIjx0dWktcHJpbWl0aXZlLXRleHRmaWVsZFxuICAgIGNsYXNzPVwidC10ZXh0ZmllbGRcIlxuICAgIFtwc2V1ZG9Gb2N1c109XCJwc2V1ZG9Gb2N1c1wiXG4gICAgW3BzZXVkb0hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICBbcHNldWRvQWN0aXZlXT1cInBzZXVkb0FjdGl2ZVwiXG4gICAgW2ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICBbZm9jdXNhYmxlXT1cImZvY3VzYWJsZVwiXG4gICAgW25hdGl2ZUlkXT1cIm5hdGl2ZUlkXCJcbiAgICBbZGlzYWJsZWRdPVwiY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICBbdHVpVGV4dGZpZWxkSWNvbl09XCJpbnRlcmFjdGl2ZSA/IGljb25Db250ZW50IDogJydcIlxuICAgIFsodmFsdWUpXT1cInZhbHVlXCJcbiAgICAoZm9jdXNlZENoYW5nZSk9XCJvbkZvY3VzZWQoJGV2ZW50KVwiXG4+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50XG4gICAgICAgIHNlbGVjdD1cImlucHV0XCJcbiAgICAgICAgbmdQcm9qZWN0QXM9XCJpbnB1dFwiXG4gICAgPjwvbmctY29udGVudD5cbjwvdHVpLXByaW1pdGl2ZS10ZXh0ZmllbGQ+XG5cbjxuZy10ZW1wbGF0ZVxuICAgICNpY29uQ29udGVudD1cInBvbHltb3JwaGV1c1wiXG4gICAgW3BvbHltb3JwaGV1c109XCJ0eXBlXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFzc3dvcmRUZXh0cyQgfCBhc3luYyBhcyB0ZXh0c1wiPlxuICAgICAgICA8dHVpLXN2Z1xuICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cImljb24gYXMgc3JjOyBjb250ZXh0OiBjb250ZXh0XCJcbiAgICAgICAgICAgIHR1aVdyYXBwZXJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktcGFzc3dvcmRfX2ljb25cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWljb25cIlxuICAgICAgICAgICAgW3R1aUhpbnRdPVwidGV4dHNbMF0gJiYgdGV4dHNbMV0gJiYgaGludENvbnRlbnRcIlxuICAgICAgICAgICAgW3R1aUhpbnREaXJlY3Rpb25dPVwiaGludE9wdGlvbnM/LmRpcmVjdGlvbiB8fCAnYm90dG9tLWxlZnQnXCJcbiAgICAgICAgICAgIFt0dWlIaW50QXBwZWFyYW5jZV09XCIoY29tcHV0ZWRBcHBlYXJhbmNlJCB8IGFzeW5jKSB8fCAnJ1wiXG4gICAgICAgICAgICBbc3JjXT1cInNyY1wiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUGFzc3dvcmRWaXNpYmlsaXR5KClcIlxuICAgICAgICA+PC90dWktc3ZnPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgI2hpbnRDb250ZW50PVwicG9seW1vcnBoZXVzXCJcbiAgICAgICAgICAgIHBvbHltb3JwaGV1c1xuICAgICAgICA+XG4gICAgICAgICAgICB7eyBpc1Bhc3N3b3JkSGlkZGVuID8gdGV4dHNbMF0gOiB0ZXh0c1sxXSB9fVxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -13,8 +13,8 @@ import * as i3 from "@taiga-ui/kit/directives";
13
13
  import * as i4 from "@angular/forms";
14
14
  import * as i5 from "rxjs";
15
15
  export class TuiInputPhoneComponent extends AbstractTuiControl {
16
- constructor(control, destroy$, changeDetectorRef, selection$, textfieldCleaner, options) {
17
- super(control, changeDetectorRef);
16
+ constructor(control, destroy$, cdr, selection$, textfieldCleaner, options) {
17
+ super(control, cdr);
18
18
  this.textfieldCleaner = textfieldCleaner;
19
19
  this.options = options;
20
20
  this.phoneMaskAfterCountryCode = this.options.phoneMaskAfterCountryCode;
@@ -281,4 +281,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
281
281
  function isText(value) {
282
282
  return Number.isNaN(parseInt(value.replace(TUI_MASK_SYMBOLS_REGEXP, ''), 10));
283
283
  }
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUvaW5wdXQtcGhvbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUvaW5wdXQtcGhvbmUudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixXQUFXLEVBQ1gsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBRWxCLFlBQVksRUFDWiwwQkFBMEIsRUFFMUIsY0FBYyxFQUNkLGlCQUFpQixFQUVqQix1QkFBdUIsRUFFdkIsa0JBQWtCLEVBQ2xCLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUVwQixjQUFjLEVBQ2QsMEJBQTBCLEVBQzFCLDhCQUE4QixHQUdqQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTNFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUMsdUJBQXVCLEVBQXVCLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFlcEYsTUFBTSxPQUFPLHNCQUNULFNBQVEsa0JBQTBCO0lBOERsQyxZ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O29CQUMxQyxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztvQkFDdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFNBQVMsRUFBRTt3QkFDUCxpQkFBaUI7d0JBQ2pCLDBCQUEwQix3QkFBd0I7d0JBQ2xELFlBQVksd0JBQXdCO3dCQUNwQyxpQkFBaUIsd0JBQXdCO3FCQUM1QztvQkFDRCxhQUFhLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQztpQkFDdEQ7OzBCQWlFUSxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLFNBQVM7OzBCQUNwQyxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ2hDLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDeEIsTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUMzQixNQUFNOzJCQUFDLHFCQUFxQjs7MEJBRTVCLE1BQU07MkJBQUMsdUJBQXVCOzRDQWpFbEIsUUFBUTtzQkFEeEIsU0FBUzt1QkFBQywwQkFBMEI7Z0JBSXBCLFNBQVM7c0JBRHpCLFNBQVM7dUJBQUMsOEJBQThCO2dCQUtyQyxpQkFBaUI7c0JBRnBCLEtBQUs7dUJBQUMsYUFBYTtnQkFTcEIseUJBQXlCO3NCQUZ4QixLQUFLO2dCQU1OLFNBQVM7c0JBRlIsS0FBSztnQkFNTixNQUFNO3NCQUZMLEtBQUs7Z0JBS0csWUFBWTtzQkFEcEIsTUFBTTtnQkFJRSxRQUFRO3NCQURoQixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQzs7QUFnUTNELFNBQVMsTUFBTSxDQUFDLEtBQWE7SUFDekIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDbEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgVHVpQWN0aXZlWm9uZURpcmVjdGl2ZSxcbiAgICB0dWlBc0NvbnRyb2wsXG4gICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgdHVpR2V0Q2xpcGJvYXJkRGF0YVRleHQsXG4gICAgVHVpSW5wdXRNb2RlLFxuICAgIHR1aUlzTmF0aXZlRm9jdXNlZCxcbiAgICB0dWlSZXF1aXJlZFNldHRlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRVSV9NQVNLX1NZTUJPTFNfUkVHRVhQLFxuICAgIFRVSV9TRUxFQ1RJT05fU1RSRUFNLFxuICAgIFRVSV9URVhURklFTERfQ0xFQU5FUixcbiAgICB0dWlBc0RhdGFMaXN0SG9zdCxcbiAgICBUdWlEYXRhTGlzdERpcmVjdGl2ZSxcbiAgICBUdWlEYXRhTGlzdEhvc3QsXG4gICAgdHVpRm9ybWF0UGhvbmUsXG4gICAgVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVRleHRmaWVsZENsZWFuZXJEaXJlY3RpdmUsXG4gICAgVHVpVGV4dE1hc2tPcHRpb25zLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvcHJvdmlkZXJzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1RVSV9JTlBVVF9QSE9ORV9PUFRJT05TLCBUdWlJbnB1dFBob25lT3B0aW9uc30gZnJvbSAnLi9pbnB1dC1waG9uZS5vcHRpb25zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtcGhvbmUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1waG9uZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1waG9uZS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgICAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcihUdWlJbnB1dFBob25lQ29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0UGhvbmVDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0RhdGFMaXN0SG9zdChUdWlJbnB1dFBob25lQ29tcG9uZW50KSxcbiAgICBdLFxuICAgIHZpZXdQcm92aWRlcnM6IFtGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRQaG9uZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPHN0cmluZz5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciwgVHVpRGF0YUxpc3RIb3N0PHN0cmluZz5cbntcbiAgICBAVmlld0NoaWxkKFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd24/OiBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgQElucHV0KCdjb3VudHJ5Q29kZScpXG4gICAgQHR1aVJlcXVpcmVkU2V0dGVyKClcbiAgICBzZXQgY291bnRyeUNvZGVTZXR0ZXIoY291bnRyeUNvZGU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlV2l0aE5ld0NvdW50cnlDb2RlKGNvdW50cnlDb2RlKTtcbiAgICAgICAgdGhpcy5jb3VudHJ5Q29kZSA9IGNvdW50cnlDb2RlO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwaG9uZU1hc2tBZnRlckNvdW50cnlDb2RlID0gdGhpcy5vcHRpb25zLnBob25lTWFza0FmdGVyQ291bnRyeUNvZGU7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgYWxsb3dUZXh0ID0gdGhpcy5vcHRpb25zLmFsbG93VGV4dDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZWFyY2ggPSAnJztcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlYXJjaENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQENvbnRlbnRDaGlsZChUdWlEYXRhTGlzdERpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmfSlcbiAgICByZWFkb25seSBkYXRhbGlzdD86IFRlbXBsYXRlUmVmPFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpQWN0aXZlWm9uZURpcmVjdGl2ZT4+O1xuXG4gICAgcmVhZG9ubHkgdGV4dE1hc2tPcHRpb25zOiBUdWlUZXh0TWFza09wdGlvbnMgPSB7XG4gICAgICAgIG1hc2s6IHZhbHVlID0+XG4gICAgICAgICAgICB0aGlzLmFsbG93VGV4dCAmJiAhdGhpcy52YWx1ZSAmJiBpc1RleHQodmFsdWUpICYmIHZhbHVlICE9PSAnKydcbiAgICAgICAgICAgICAgICA/IGZhbHNlXG4gICAgICAgICAgICAgICAgOiBbXG4gICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5jb3VudHJ5Q29kZS5zcGxpdCgnJyksXG4gICAgICAgICAgICAgICAgICAgICAgJyAnLFxuICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMucGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvW14jXFwtICgpXSsvZywgJycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChpdGVtID0+IChpdGVtID09PSAnIycgPyAvXFxkLyA6IGl0ZW0pKSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgIHBpcGU6IHZhbHVlID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFsbG93VGV4dCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09PSAnJyAmJiB0aGlzLmZvY3VzZWQgJiYgIXRoaXMucmVhZE9ubHlcbiAgICAgICAgICAgICAgICA/IGAke3RoaXMuY291bnRyeUNvZGV9IGBcbiAgICAgICAgICAgICAgICA6IHZhbHVlLnJlcGxhY2UoLy0kLywgJycpO1xuICAgICAgICB9LFxuICAgICAgICBndWlkZTogZmFsc2UsXG4gICAgfTtcblxuICAgIGNvdW50cnlDb2RlID0gdGhpcy5vcHRpb25zLmNvdW50cnlDb2RlO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgQEluamVjdChOZ0NvbnRyb2wpIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBTZWxmKCkgQEluamVjdChUdWlEZXN0cm95U2VydmljZSkgZGVzdHJveSQ6IE9ic2VydmFibGU8dW5rbm93bj4sXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfU0VMRUNUSU9OX1NUUkVBTSkgc2VsZWN0aW9uJDogT2JzZXJ2YWJsZTx1bmtub3duPixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0NMRUFORVIpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkQ2xlYW5lcjogVHVpVGV4dGZpZWxkQ2xlYW5lckRpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfSU5QVVRfUEhPTkVfT1BUSU9OUykgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBUdWlJbnB1dFBob25lT3B0aW9ucyxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgICAgIHNlbGVjdGlvbiQucGlwZSh0YWtlVW50aWwoZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnRleHRmaWVsZCB8fCB0aGlzLmNvbXB1dGVkRGlzYWJsZWRcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLnRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdHVpSXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkgfHxcbiAgICAgICAgICAgICghIXRoaXMuZHJvcGRvd24gJiYgdGhpcy5kcm9wZG93bi5mb2N1c2VkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlXG4gICAgICAgICAgICA/IHR1aUZvcm1hdFBob25lKHRoaXMudmFsdWUsIHRoaXMuY291bnRyeUNvZGUsIHRoaXMucGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZSlcbiAgICAgICAgICAgIDogdGhpcy5zZWFyY2ggfHwgJyc7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0TW9kZSgpOiBUdWlJbnB1dE1vZGUge1xuICAgICAgICByZXR1cm4gdGhpcy5hbGxvd1RleHQgPyAndGV4dCcgOiAnbnVtZXJpYyc7XG4gICAgfVxuXG4gICAgZ2V0IGNhbk9wZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmludGVyYWN0aXZlICYmICEhdGhpcy5kYXRhbGlzdDtcbiAgICB9XG5cbiAgICBnZXQgY2FuQ2xlYW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXB1dGVkVmFsdWUgIT09IHRoaXMuY291bnRyeUNvZGUgJiYgdGhpcy50ZXh0ZmllbGRDbGVhbmVyLmNsZWFuZXI7XG4gICAgfVxuXG4gICAgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFldmVudC5kYXRhVHJhbnNmZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0VmFsdWVXaXRob3V0UHJlZml4KGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKCd0ZXh0JykpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uUGFzdGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWVXaXRob3V0UHJlZml4KHR1aUdldENsaXBib2FyZERhdGFUZXh0KGV2ZW50IGFzIENsaXBib2FyZEV2ZW50KSk7XG4gICAgfVxuXG4gICAgb25BY3RpdmVab25lKGFjdGl2ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoYWN0aXZlKTtcblxuICAgICAgICBpZiAoYWN0aXZlICYmICF0aGlzLmNvbXB1dGVkVmFsdWUgJiYgIXRoaXMucmVhZE9ubHkgJiYgIXRoaXMuYWxsb3dUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaCh0aGlzLmNvdW50cnlDb2RlKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5jb21wdXRlZFZhbHVlID09PSB0aGlzLmNvdW50cnlDb2RlIHx8XG4gICAgICAgICAgICAodGhpcy5zZWFyY2ggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICBOdW1iZXIuaXNOYU4oXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KHRoaXMuc2VhcmNoLnJlcGxhY2UoVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsICcnKSwgMTApLFxuICAgICAgICAgICAgICAgICkpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTZWFyY2goJycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25CYWNrc3BhY2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICh0YXJnZXQuc2VsZWN0aW9uU3RhcnQgfHwgMCkgPD0gdGhpcy5ub25SZW1vdmFibGVMZW5ndGggJiZcbiAgICAgICAgICAgIHRhcmdldC5zZWxlY3Rpb25TdGFydCA9PT0gdGFyZ2V0LnNlbGVjdGlvbkVuZFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZSA9PT0gJycgPyB0aGlzLmNvdW50cnlDb2RlIDogdmFsdWU7XG5cbiAgICAgICAgY29uc3QgcGFyc2VkID0gaXNUZXh0KHZhbHVlKVxuICAgICAgICAgICAgPyB2YWx1ZVxuICAgICAgICAgICAgOiB2YWx1ZS5yZXBsYWNlKFRVSV9NQVNLX1NZTUJPTFNfUkVHRVhQLCAnJykuc2xpY2UoMCwgdGhpcy5tYXhQaG9uZUxlbmd0aCk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2gocGFyc2VkKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHBhcnNlZCA9PT0gdGhpcy5jb3VudHJ5Q29kZSB8fCBpc1RleHQocGFyc2VkKSA/ICcnIDogcGFyc2VkO1xuICAgICAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgIH1cblxuICAgIGhhbmRsZU9wdGlvbihpdGVtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICAgIHRoaXMudmFsdWUgPSBpdGVtO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaCgnJyk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHNldERpc2FibGVkU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2goJycpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBjYXJldElzSW5Gb3JiaWRkZW5BcmVhKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB7bmF0aXZlRm9jdXNhYmxlRWxlbWVudH0gPSB0aGlzO1xuXG4gICAgICAgIGlmICghbmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge3NlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmR9ID0gbmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdHVpSXNOYXRpdmVGb2N1c2VkKG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpICYmXG4gICAgICAgICAgICBzZWxlY3Rpb25TdGFydCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgc2VsZWN0aW9uU3RhcnQgPCB0aGlzLm5vblJlbW92YWJsZUxlbmd0aCAmJlxuICAgICAgICAgICAgc2VsZWN0aW9uU3RhcnQgPT09IHNlbGVjdGlvbkVuZFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IG5vblJlbW92YWJsZUxlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1RleHRWYWx1ZSA/IDAgOiB0aGlzLmNvdW50cnlDb2RlLmxlbmd0aCArIDE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgbWF4UGhvbmVMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuY291bnRyeUNvZGUubGVuZ3RoICtcbiAgICAgICAgICAgIHRoaXMucGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZS5yZXBsYWNlKC9bXiNdKy9nLCAnJykubGVuZ3RoXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNUZXh0VmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc2VhcmNoICYmIGlzVGV4dCh0aGlzLnNlYXJjaCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDYXJldFBvc2l0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jYXJldElzSW5Gb3JiaWRkZW5BcmVhICYmICEhdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgICAgICAgdGhpcy5ub25SZW1vdmFibGVMZW5ndGgsXG4gICAgICAgICAgICAgICAgdGhpcy5ub25SZW1vdmFibGVMZW5ndGgsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWYWx1ZVdpdGhvdXRQcmVmaXgodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY2xlYW5WYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKFxuICAgICAgICAgICAgdGhpcy5hbGxvd1RleHQgJiYgaXNUZXh0KHZhbHVlKVxuICAgICAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgICAgICA6IHZhbHVlLnJlcGxhY2UoVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsICcnKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFuVmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJlZzogUmVnRXhwID1cbiAgICAgICAgICAgIHRoaXMuY291bnRyeUNvZGUgPT09ICcrNycgPyAvXjd8XjgvIDogbmV3IFJlZ0V4cCh0aGlzLmNvdW50cnlDb2RlLnNsaWNlKDEpKTtcbiAgICAgICAgY29uc3Qgb2xkVmFsdWVFeGlzdCA9XG4gICAgICAgICAgICB0aGlzLnZhbHVlLmxlbmd0aCA+IHRoaXMuY291bnRyeUNvZGUubGVuZ3RoICYmXG4gICAgICAgICAgICB0aGlzLnZhbHVlLmxlbmd0aCA8IHRoaXMubWF4UGhvbmVMZW5ndGg7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlTGVuZ3RoID0gdmFsdWUucmVwbGFjZShUVUlfTUFTS19TWU1CT0xTX1JFR0VYUCwgJycpLmxlbmd0aDtcbiAgICAgICAgY29uc3QgY2xlYW5OZXdWYWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1teMC05XSsvZywgJycpO1xuICAgICAgICBjb25zdCBzZWxlY3Rpb25MZW5ndGggPSBTdHJpbmcoZ2V0U2VsZWN0aW9uKCkpLmxlbmd0aDtcblxuICAgICAgICBpZiAob2xkVmFsdWVFeGlzdCAmJiBzZWxlY3Rpb25MZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLnZhbHVlfSR7Y2xlYW5OZXdWYWx1ZX1gLnNsaWNlKDAsIHRoaXMubWF4UGhvbmVMZW5ndGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5ld1ZhbHVlTGVuZ3RoIDwgdGhpcy5tYXhQaG9uZUxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLmNvdW50cnlDb2RlfSR7Y2xlYW5OZXdWYWx1ZX1gLnNsaWNlKDAsIHRoaXMubWF4UGhvbmVMZW5ndGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGAke3RoaXMuY291bnRyeUNvZGV9JHtjbGVhbk5ld1ZhbHVlLnJlcGxhY2UocmVnLCAnJyl9YC5zbGljZShcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICB0aGlzLm1heFBob25lTGVuZ3RoLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNJbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiB0cnVlfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVNlYXJjaChzZWFyY2g6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZWFyY2ggPT09IHNlYXJjaCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWFyY2ggPSBzZWFyY2g7XG4gICAgICAgIHRoaXMuc2VhcmNoQ2hhbmdlLmVtaXQoc2VhcmNoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZhbHVlV2l0aE5ld0NvdW50cnlDb2RlKG5ld0NvdW50cnlDb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVGV4dFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZS5yZXBsYWNlKHRoaXMuY291bnRyeUNvZGUsIG5ld0NvdW50cnlDb2RlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZnVuY3Rpb24gaXNUZXh0KHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gTnVtYmVyLmlzTmFOKHBhcnNlSW50KHZhbHVlLnJlcGxhY2UoVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsICcnKSwgMTApKTtcbn1cbiIsIjx0dWktaG9zdGVkLWRyb3Bkb3duXG4gICAgY2xhc3M9XCJ0LWhvc3RlZFwiXG4gICAgW2Nhbk9wZW5dPVwiY2FuT3BlblwiXG4gICAgW2NvbnRlbnRdPVwiZGF0YWxpc3QgfHwgJydcIlxuICAgIFsob3BlbildPVwib3BlblwiXG4gICAgKHR1aUFjdGl2ZVpvbmVDaGFuZ2UpPVwib25BY3RpdmVab25lKCRldmVudClcIlxuPlxuICAgIDx0dWktcHJpbWl0aXZlLXRleHRmaWVsZFxuICAgICAgICB0dWlWYWx1ZUFjY2Vzc29yXG4gICAgICAgIGNsYXNzPVwidC10ZXh0ZmllbGRcIlxuICAgICAgICBbcHNldWRvSG92ZXJdPVwicHNldWRvSG92ZXJcIlxuICAgICAgICBbcHNldWRvRm9jdXNdPVwiY29tcHV0ZWRGb2N1c2VkXCJcbiAgICAgICAgW2ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICAgICAgW25hdGl2ZUlkXT1cIm5hdGl2ZUlkXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICBbZm9jdXNhYmxlXT1cImZvY3VzYWJsZVwiXG4gICAgICAgIFt0ZXh0TWFza109XCJ0ZXh0TWFza09wdGlvbnNcIlxuICAgICAgICBbdmFsdWVdPVwiY29tcHV0ZWRWYWx1ZVwiXG4gICAgICAgIFt0dWlUZXh0ZmllbGRDbGVhbmVyXT1cImNhbkNsZWFuXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChkcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uYmFja3NwYWNlKT1cIm9uQmFja3NwYWNlKCRldmVudClcIlxuICAgICAgICAocGFzdGUucHJldmVudCk9XCJvblBhc3RlKCRldmVudClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudFxuICAgICAgICAgICAgc2VsZWN0PVwiaW5wdXRcIlxuICAgICAgICAgICAgbmdQcm9qZWN0QXM9XCJpbnB1dFwiXG4gICAgICAgID48L25nLWNvbnRlbnQ+XG4gICAgPC90dWktcHJpbWl0aXZlLXRleHRmaWVsZD5cbjwvdHVpLWhvc3RlZC1kcm9wZG93bj5cbiJdfQ==
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUvaW5wdXQtcGhvbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUvaW5wdXQtcGhvbmUudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixXQUFXLEVBQ1gsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBRWxCLFlBQVksRUFDWiwwQkFBMEIsRUFFMUIsY0FBYyxFQUNkLGlCQUFpQixFQUVqQix1QkFBdUIsRUFFdkIsa0JBQWtCLEVBQ2xCLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUVwQixjQUFjLEVBQ2QsMEJBQTBCLEVBQzFCLDhCQUE4QixHQUdqQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTNFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUMsdUJBQXVCLEVBQXVCLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFlcEYsTUFBTSxPQUFPLHNCQUNULFNBQVEsa0JBQTBCO0lBOERsQyxZ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QzFDLFNBQVMsRUFBRSxDQUFDLDBCQUEwQixDQUFDO29CQUN2QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFO3dCQUNQLGlCQUFpQjt3QkFDakIsMEJBQTBCLHdCQUF3Qjt3QkFDbEQsWUFBWSx3QkFBd0I7d0JBQ3BDLGlCQUFpQix3QkFBd0I7cUJBQzVDO29CQUNELGFBQWEsRUFBRSxDQUFDLGtDQUFrQyxDQUFDO2lCQUN0RDs7MEJBaUVRLFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsU0FBUzs7MEJBQ3BDLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDaEMsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLG9CQUFvQjs7MEJBQzNCLE1BQU07MkJBQUMscUJBQXFCOzswQkFFNUIsTUFBTTsyQkFBQyx1QkFBdUI7NENBakVsQixRQUFRO3NCQUR4QixTQUFTO3VCQUFDLDBCQUEwQjtnQkFJcEIsU0FBUztzQkFEekIsU0FBUzt1QkFBQyw4QkFBOEI7Z0JBS3JDLGlCQUFpQjtzQkFGcEIsS0FBSzt1QkFBQyxhQUFhO2dCQVNwQix5QkFBeUI7c0JBRnhCLEtBQUs7Z0JBTU4sU0FBUztzQkFGUixLQUFLO2dCQU1OLE1BQU07c0JBRkwsS0FBSztnQkFLRyxZQUFZO3NCQURwQixNQUFNO2dCQUlFLFFBQVE7c0JBRGhCLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFDOztBQWdRM0QsU0FBUyxNQUFNLENBQUMsS0FBYTtJQUN6QixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNsRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBUdWlBY3RpdmVab25lRGlyZWN0aXZlLFxuICAgIHR1aUFzQ29udHJvbCxcbiAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcixcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlHZXRDbGlwYm9hcmREYXRhVGV4dCxcbiAgICBUdWlJbnB1dE1vZGUsXG4gICAgdHVpSXNOYXRpdmVGb2N1c2VkLFxuICAgIHR1aVJlcXVpcmVkU2V0dGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsXG4gICAgVFVJX1NFTEVDVElPTl9TVFJFQU0sXG4gICAgVFVJX1RFWFRGSUVMRF9DTEVBTkVSLFxuICAgIHR1aUFzRGF0YUxpc3RIb3N0LFxuICAgIFR1aURhdGFMaXN0RGlyZWN0aXZlLFxuICAgIFR1aURhdGFMaXN0SG9zdCxcbiAgICB0dWlGb3JtYXRQaG9uZSxcbiAgICBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudCxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpVGV4dGZpZWxkQ2xlYW5lckRpcmVjdGl2ZSxcbiAgICBUdWlUZXh0TWFza09wdGlvbnMsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7RklYRURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9wcm92aWRlcnMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VFVJX0lOUFVUX1BIT05FX09QVElPTlMsIFR1aUlucHV0UGhvbmVPcHRpb25zfSBmcm9tICcuL2lucHV0LXBob25lLm9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1waG9uZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXBob25lLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LXBob25lLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0UGhvbmVDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXRQaG9uZUNvbXBvbmVudCksXG4gICAgICAgIHR1aUFzRGF0YUxpc3RIb3N0KFR1aUlucHV0UGhvbmVDb21wb25lbnQpLFxuICAgIF0sXG4gICAgdmlld1Byb3ZpZGVyczogW0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFBob25lQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8c3RyaW5nPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLCBUdWlEYXRhTGlzdEhvc3Q8c3RyaW5nPlxue1xuICAgIEBWaWV3Q2hpbGQoVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBkcm9wZG93bj86IFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoJ2NvdW50cnlDb2RlJylcbiAgICBAdHVpUmVxdWlyZWRTZXR0ZXIoKVxuICAgIHNldCBjb3VudHJ5Q29kZVNldHRlcihjb3VudHJ5Q29kZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWVXaXRoTmV3Q291bnRyeUNvZGUoY291bnRyeUNvZGUpO1xuICAgICAgICB0aGlzLmNvdW50cnlDb2RlID0gY291bnRyeUNvZGU7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHBob25lTWFza0FmdGVyQ291bnRyeUNvZGUgPSB0aGlzLm9wdGlvbnMucGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBhbGxvd1RleHQgPSB0aGlzLm9wdGlvbnMuYWxsb3dUZXh0O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNlYXJjaCA9ICcnO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAQ29udGVudENoaWxkKFR1aURhdGFMaXN0RGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWZ9KVxuICAgIHJlYWRvbmx5IGRhdGFsaXN0PzogVGVtcGxhdGVSZWY8VHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlBY3RpdmVab25lRGlyZWN0aXZlPj47XG5cbiAgICByZWFkb25seSB0ZXh0TWFza09wdGlvbnM6IFR1aVRleHRNYXNrT3B0aW9ucyA9IHtcbiAgICAgICAgbWFzazogdmFsdWUgPT5cbiAgICAgICAgICAgIHRoaXMuYWxsb3dUZXh0ICYmICF0aGlzLnZhbHVlICYmIGlzVGV4dCh2YWx1ZSkgJiYgdmFsdWUgIT09ICcrJ1xuICAgICAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmNvdW50cnlDb2RlLnNwbGl0KCcnKSxcbiAgICAgICAgICAgICAgICAgICAgICAnICcsXG4gICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5waG9uZU1hc2tBZnRlckNvdW50cnlDb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9bXiNcXC0gKCldKy9nLCAnJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCcnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKGl0ZW0gPT4gKGl0ZW0gPT09ICcjJyA/IC9cXGQvIDogaXRlbSkpLFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgcGlwZTogdmFsdWUgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWxsb3dUZXh0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09ICcnICYmIHRoaXMuZm9jdXNlZCAmJiAhdGhpcy5yZWFkT25seVxuICAgICAgICAgICAgICAgID8gYCR7dGhpcy5jb3VudHJ5Q29kZX0gYFxuICAgICAgICAgICAgICAgIDogdmFsdWUucmVwbGFjZSgvLSQvLCAnJyk7XG4gICAgICAgIH0sXG4gICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgY291bnRyeUNvZGUgPSB0aGlzLm9wdGlvbnMuY291bnRyeUNvZGU7XG5cbiAgICBvcGVuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBASW5qZWN0KE5nQ29udHJvbCkgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQFNlbGYoKSBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBkZXN0cm95JDogT2JzZXJ2YWJsZTx1bmtub3duPixcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfU0VMRUNUSU9OX1NUUkVBTSkgc2VsZWN0aW9uJDogT2JzZXJ2YWJsZTx1bmtub3duPixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0NMRUFORVIpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkQ2xlYW5lcjogVHVpVGV4dGZpZWxkQ2xlYW5lckRpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfSU5QVVRfUEhPTkVfT1BUSU9OUykgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBUdWlJbnB1dFBob25lT3B0aW9ucyxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2RyKTtcblxuICAgICAgICBzZWxlY3Rpb24kLnBpcGUodGFrZVVudGlsKGRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAhdGhpcy50ZXh0ZmllbGQgfHwgdGhpcy5jb21wdXRlZERpc2FibGVkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy50ZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHx8XG4gICAgICAgICAgICAoISF0aGlzLmRyb3Bkb3duICYmIHRoaXMuZHJvcGRvd24uZm9jdXNlZClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVxuICAgICAgICAgICAgPyB0dWlGb3JtYXRQaG9uZSh0aGlzLnZhbHVlLCB0aGlzLmNvdW50cnlDb2RlLCB0aGlzLnBob25lTWFza0FmdGVyQ291bnRyeUNvZGUpXG4gICAgICAgICAgICA6IHRoaXMuc2VhcmNoIHx8ICcnO1xuICAgIH1cblxuICAgIGdldCBpbnB1dE1vZGUoKTogVHVpSW5wdXRNb2RlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxsb3dUZXh0ID8gJ3RleHQnIDogJ251bWVyaWMnO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGl2ZSAmJiAhIXRoaXMuZGF0YWxpc3Q7XG4gICAgfVxuXG4gICAgZ2V0IGNhbkNsZWFuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlZFZhbHVlICE9PSB0aGlzLmNvdW50cnlDb2RlICYmIHRoaXMudGV4dGZpZWxkQ2xlYW5lci5jbGVhbmVyO1xuICAgIH1cblxuICAgIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghZXZlbnQuZGF0YVRyYW5zZmVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFZhbHVlV2l0aG91dFByZWZpeChldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgndGV4dCcpKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvblBhc3RlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFZhbHVlV2l0aG91dFByZWZpeCh0dWlHZXRDbGlwYm9hcmREYXRhVGV4dChldmVudCBhcyBDbGlwYm9hcmRFdmVudCkpO1xuICAgIH1cblxuICAgIG9uQWN0aXZlWm9uZShhY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGFjdGl2ZSk7XG5cbiAgICAgICAgaWYgKGFjdGl2ZSAmJiAhdGhpcy5jb21wdXRlZFZhbHVlICYmICF0aGlzLnJlYWRPbmx5ICYmICF0aGlzLmFsbG93VGV4dCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTZWFyY2godGhpcy5jb3VudHJ5Q29kZSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuY29tcHV0ZWRWYWx1ZSA9PT0gdGhpcy5jb3VudHJ5Q29kZSB8fFxuICAgICAgICAgICAgKHRoaXMuc2VhcmNoICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgTnVtYmVyLmlzTmFOKFxuICAgICAgICAgICAgICAgICAgICBwYXJzZUludCh0aGlzLnNlYXJjaC5yZXBsYWNlKFRVSV9NQVNLX1NZTUJPTFNfUkVHRVhQLCAnJyksIDEwKSxcbiAgICAgICAgICAgICAgICApKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKCcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQmFja3NwYWNlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAodGFyZ2V0LnNlbGVjdGlvblN0YXJ0IHx8IDApIDw9IHRoaXMubm9uUmVtb3ZhYmxlTGVuZ3RoICYmXG4gICAgICAgICAgICB0YXJnZXQuc2VsZWN0aW9uU3RhcnQgPT09IHRhcmdldC5zZWxlY3Rpb25FbmRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUgPT09ICcnID8gdGhpcy5jb3VudHJ5Q29kZSA6IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IGlzVGV4dCh2YWx1ZSlcbiAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgIDogdmFsdWUucmVwbGFjZShUVUlfTUFTS19TWU1CT0xTX1JFR0VYUCwgJycpLnNsaWNlKDAsIHRoaXMubWF4UGhvbmVMZW5ndGgpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKHBhcnNlZCk7XG4gICAgICAgIHRoaXMudmFsdWUgPSBwYXJzZWQgPT09IHRoaXMuY291bnRyeUNvZGUgfHwgaXNUZXh0KHBhcnNlZCkgPyAnJyA6IHBhcnNlZDtcbiAgICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBoYW5kbGVPcHRpb24oaXRlbTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB0aGlzLnZhbHVlID0gaXRlbTtcbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2goJycpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBzZXREaXNhYmxlZFN0YXRlKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5zZXREaXNhYmxlZFN0YXRlKCk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKCcnKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY2FyZXRJc0luRm9yYmlkZGVuQXJlYSgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qge25hdGl2ZUZvY3VzYWJsZUVsZW1lbnR9ID0gdGhpcztcblxuICAgICAgICBpZiAoIW5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHtzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kfSA9IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHR1aUlzTmF0aXZlRm9jdXNlZChuYXRpdmVGb2N1c2FibGVFbGVtZW50KSAmJlxuICAgICAgICAgICAgc2VsZWN0aW9uU3RhcnQgIT09IG51bGwgJiZcbiAgICAgICAgICAgIHNlbGVjdGlvblN0YXJ0IDwgdGhpcy5ub25SZW1vdmFibGVMZW5ndGggJiZcbiAgICAgICAgICAgIHNlbGVjdGlvblN0YXJ0ID09PSBzZWxlY3Rpb25FbmRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBub25SZW1vdmFibGVMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUZXh0VmFsdWUgPyAwIDogdGhpcy5jb3VudHJ5Q29kZS5sZW5ndGggKyAxO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IG1heFBob25lTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmNvdW50cnlDb2RlLmxlbmd0aCArXG4gICAgICAgICAgICB0aGlzLnBob25lTWFza0FmdGVyQ291bnRyeUNvZGUucmVwbGFjZSgvW14jXSsvZywgJycpLmxlbmd0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlzVGV4dFZhbHVlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnNlYXJjaCAmJiBpc1RleHQodGhpcy5zZWFyY2gpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q2FyZXRQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY2FyZXRJc0luRm9yYmlkZGVuQXJlYSAmJiAhIXRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgICAgICAgIHRoaXMubm9uUmVtb3ZhYmxlTGVuZ3RoLFxuICAgICAgICAgICAgICAgIHRoaXMubm9uUmVtb3ZhYmxlTGVuZ3RoLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWVXaXRob3V0UHJlZml4KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNsZWFuVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaChcbiAgICAgICAgICAgIHRoaXMuYWxsb3dUZXh0ICYmIGlzVGV4dCh2YWx1ZSlcbiAgICAgICAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICAgICAgOiB2YWx1ZS5yZXBsYWNlKFRVSV9NQVNLX1NZTUJPTFNfUkVHRVhQLCAnJyksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhblZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCByZWc6IFJlZ0V4cCA9XG4gICAgICAgICAgICB0aGlzLmNvdW50cnlDb2RlID09PSAnKzcnID8gL143fF44LyA6IG5ldyBSZWdFeHAodGhpcy5jb3VudHJ5Q29kZS5zbGljZSgxKSk7XG4gICAgICAgIGNvbnN0IG9sZFZhbHVlRXhpc3QgPVxuICAgICAgICAgICAgdGhpcy52YWx1ZS5sZW5ndGggPiB0aGlzLmNvdW50cnlDb2RlLmxlbmd0aCAmJlxuICAgICAgICAgICAgdGhpcy52YWx1ZS5sZW5ndGggPCB0aGlzLm1heFBob25lTGVuZ3RoO1xuICAgICAgICBjb25zdCBuZXdWYWx1ZUxlbmd0aCA9IHZhbHVlLnJlcGxhY2UoVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsICcnKS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGNsZWFuTmV3VmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9bXjAtOV0rL2csICcnKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uTGVuZ3RoID0gU3RyaW5nKGdldFNlbGVjdGlvbigpKS5sZW5ndGg7XG5cbiAgICAgICAgaWYgKG9sZFZhbHVlRXhpc3QgJiYgc2VsZWN0aW9uTGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy52YWx1ZX0ke2NsZWFuTmV3VmFsdWV9YC5zbGljZSgwLCB0aGlzLm1heFBob25lTGVuZ3RoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXdWYWx1ZUxlbmd0aCA8IHRoaXMubWF4UGhvbmVMZW5ndGggLSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5jb3VudHJ5Q29kZX0ke2NsZWFuTmV3VmFsdWV9YC5zbGljZSgwLCB0aGlzLm1heFBob25lTGVuZ3RoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHt0aGlzLmNvdW50cnlDb2RlfSR7Y2xlYW5OZXdWYWx1ZS5yZXBsYWNlKHJlZywgJycpfWAuc2xpY2UoXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAgdGhpcy5tYXhQaG9uZUxlbmd0aCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzSW5wdXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVTZWFyY2goc2VhcmNoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoID09PSBzZWFyY2gpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VhcmNoID0gc2VhcmNoO1xuICAgICAgICB0aGlzLnNlYXJjaENoYW5nZS5lbWl0KHNlYXJjaCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVWYWx1ZVdpdGhOZXdDb3VudHJ5Q29kZShuZXdDb3VudHJ5Q29kZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc1RleHRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUucmVwbGFjZSh0aGlzLmNvdW50cnlDb2RlLCBuZXdDb3VudHJ5Q29kZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIGlzVGV4dCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE51bWJlci5pc05hTihwYXJzZUludCh2YWx1ZS5yZXBsYWNlKFRVSV9NQVNLX1NZTUJPTFNfUkVHRVhQLCAnJyksIDEwKSk7XG59XG4iLCI8dHVpLWhvc3RlZC1kcm9wZG93blxuICAgIGNsYXNzPVwidC1ob3N0ZWRcIlxuICAgIFtjYW5PcGVuXT1cImNhbk9wZW5cIlxuICAgIFtjb250ZW50XT1cImRhdGFsaXN0IHx8ICcnXCJcbiAgICBbKG9wZW4pXT1cIm9wZW5cIlxuICAgICh0dWlBY3RpdmVab25lQ2hhbmdlKT1cIm9uQWN0aXZlWm9uZSgkZXZlbnQpXCJcbj5cbiAgICA8dHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRcbiAgICAgICAgdHVpVmFsdWVBY2Nlc3NvclxuICAgICAgICBjbGFzcz1cInQtdGV4dGZpZWxkXCJcbiAgICAgICAgW3BzZXVkb0hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICAgICAgW3BzZXVkb0ZvY3VzXT1cImNvbXB1dGVkRm9jdXNlZFwiXG4gICAgICAgIFtpbnZhbGlkXT1cImNvbXB1dGVkSW52YWxpZFwiXG4gICAgICAgIFtuYXRpdmVJZF09XCJuYXRpdmVJZFwiXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkXCJcbiAgICAgICAgW2ZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgICAgICBbdGV4dE1hc2tdPVwidGV4dE1hc2tPcHRpb25zXCJcbiAgICAgICAgW3ZhbHVlXT1cImNvbXB1dGVkVmFsdWVcIlxuICAgICAgICBbdHVpVGV4dGZpZWxkQ2xlYW5lcl09XCJjYW5DbGVhblwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gICAgICAgIChrZXlkb3duLmJhY2tzcGFjZSk9XCJvbkJhY2tzcGFjZSgkZXZlbnQpXCJcbiAgICAgICAgKHBhc3RlLnByZXZlbnQpPVwib25QYXN0ZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICAgIHNlbGVjdD1cImlucHV0XCJcbiAgICAgICAgICAgIG5nUHJvamVjdEFzPVwiaW5wdXRcIlxuICAgICAgICA+PC9uZy1jb250ZW50PlxuICAgIDwvdHVpLXByaW1pdGl2ZS10ZXh0ZmllbGQ+XG48L3R1aS1ob3N0ZWQtZHJvcGRvd24+XG4iXX0=
@@ -21,8 +21,8 @@ import * as i5 from "@angular/forms";
21
21
  import * as i6 from "@tinkoff/ng-polymorpheus";
22
22
  import * as i7 from "rxjs";
23
23
  export class TuiInputPhoneInternationalComponent extends AbstractTuiControl {
24
- constructor(control, changeDetectorRef, countriesNames$, countriesMasks, options, flagPipe) {
25
- super(control, changeDetectorRef);
24
+ constructor(control, cdr, countriesNames$, countriesMasks, options, flagPipe) {
25
+ super(control, cdr);
26
26
  this.countriesNames$ = countriesNames$;
27
27
  this.countriesMasks = countriesMasks;
28
28
  this.options = options;
@@ -91,7 +91,7 @@ export class TuiInputPhoneInternationalComponent extends AbstractTuiControl {
91
91
  this.open = false;
92
92
  this.updateCountryIsoCode(isoCode);
93
93
  // recalculates mask inside inputPhone to prevent isoCode conflict
94
- this.changeDetectorRef.detectChanges();
94
+ this.cdr.detectChanges();
95
95
  const maxLength = this.getMaxAllowedLength(isoCode);
96
96
  if (this.value.length > maxLength) {
97
97
  this.value = this.value.slice(0, maxLength);
@@ -212,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
212
212
  type: HostListener,
213
213
  args: ['drop.capture.prevent.stop', ['$event']]
214
214
  }], calculateMaskAfterCountryCode: [] } });
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsL2lucHV0LXBob25lLWludGVybmF0aW9uYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCxZQUFZLEVBQ1osMEJBQTBCLEVBRTFCLGNBQWMsRUFHZCxPQUFPLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsV0FBVyxFQUNYLDhCQUE4QixHQUlqQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFJbkQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUNILHFDQUFxQyxHQUV4QyxNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7QUFlMUUsTUFBTSxPQUFPLG1DQUNULFNBQVEsa0JBQTBCO0lBa0NsQyxZQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBRXRELGVBQThELEVBRTlELGNBQWlELEVBRXpDLE9BQTBDLEVBRTFDLFFBQXFCO1FBRXRDLEtBQUssQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQVJ6QixvQkFBZSxHQUFmLGVBQWUsQ0FBK0M7UUFFOUQsbUJBQWMsR0FBZCxjQUFjLENBQW1DO1FBRXpDLFlBQU8sR0FBUCxPQUFPLENBQW1DO1FBRTFDLGFBQVEsR0FBUixRQUFRLENBQWE7UUExQjFDLGNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUcxQix5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUV0RSxtQkFBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBRTdDLFNBQUksR0FBRyxLQUFLLENBQUM7UUFFSixVQUFLLEdBRVYsU0FBUyxDQUFDO1FBNEVMLDJCQUFzQixHQUF5QyxJQUFJLENBQUMsRUFBRSxDQUMzRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUEzRGhDLENBQUM7SUF2Q0QsSUFBSSxPQUFPLENBQUMsSUFBdUI7O1FBQy9CLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLEVBQUU7WUFDOUIsT0FBTztTQUNWO1FBRUQsTUFBQSxJQUFJLENBQUMsbUJBQW1CLDBDQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQWtDRCxJQUFJLHNCQUFzQjtRQUN0QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0I7WUFDckQsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxzQkFBc0I7WUFDakQsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLENBQ0gsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7WUFDOUQsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FDbkUsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFJLHFCQUFxQjtRQUNyQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUkseUJBQXlCO1FBQ3pCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFL0QsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUN4QyxXQUFXLENBQ2QsQ0FBQztJQUNOLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFJRCxPQUFPLENBQUMsS0FBaUM7UUFDckMsSUFBSSxLQUFLLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0RCxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxFQUFFO2lCQUMvQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDO2lCQUNwQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUU3RCxPQUFPO1NBQ1Y7UUFFRCxJQUFJLGNBQWMsS0FBSyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUU7WUFDekMsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxTQUFTLEdBQUcsS0FBSyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUtEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxJQUF1QjtRQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBMEI7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLGtFQUFrRTtRQUNsRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFdkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXBELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsU0FBUyxFQUFFO1lBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQy9DO1FBRUQsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDN0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQztJQUVRLGdCQUFnQjtRQUNyQixLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQTBCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxhQUFhLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWU7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRVMsZ0JBQWdCO1FBQ3RCLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUdPLDZCQUE2QixDQUFDLElBQVksRUFBRSxXQUFtQjtRQUNuRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFTyxLQUFLO1FBQ1QsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVPLG1CQUFtQixDQUFDLE9BQTBCO1FBQ2xELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN2RSxDQUFDO0lBRU8sb0JBQW9CLENBQUMsSUFBdUI7UUFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBYTtRQUNwQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ3hDLE1BQU0sVUFBVSxHQUNaLGNBQWMsS0FBSyxpQkFBaUIsQ0FBQyxFQUFFO2dCQUN2QyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDdEIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDNUIsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRXhFLE9BQU8sQ0FDSCxVQUFVO2dCQUNWLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FDYixJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FDL0Q7b0JBQ0csS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQ3JFLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O2lJQWpNUSxtQ0FBbUMsa0JBc0NoQyxTQUFTLHlDQUVULGlCQUFpQixhQUNqQixhQUFhLGFBRWIsbUJBQW1CLGFBRW5CLHFDQUFxQyxhQUVyQyxXQUFXO3FIQS9DZCxtQ0FBbUMseVRBUmpDO1FBQ1AsMEJBQTBCLENBQUMsbUNBQW1DLENBQUM7UUFDL0QsWUFBWSxDQUFDLG1DQUFtQyxDQUFDO1FBQ2pELHNEQUFzRDtRQUN0RCxXQUFXO0tBQ2QsK0VBT1Usc0JBQXNCLHFGQUd0Qiw4QkFBOEIsdUVDdEU3Qyw4dkZBbUZBLHdpSUR0Qm1CLENBQUMsa0NBQWtDLENBQUM7QUFjbkQ7SUFEQyxjQUFjLEVBQUU7a0VBUWhCO0FBNklEO0lBREMsT0FBTzt3RkFHUDs0RkFsS1EsbUNBQW1DO2tCQWIvQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwrQkFBK0I7b0JBQ3pDLFdBQVcsRUFBRSwyQ0FBMkM7b0JBQ3hELFNBQVMsRUFBRSxDQUFDLHdDQUF3QyxDQUFDO29CQUNyRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFO3dCQUNQLDBCQUEwQixxQ0FBcUM7d0JBQy9ELFlBQVkscUNBQXFDO3dCQUNqRCxzREFBc0Q7d0JBQ3RELFdBQVc7cUJBQ2Q7b0JBQ0QsYUFBYSxFQUFFLENBQUMsa0NBQWtDLENBQUM7aUJBQ3REOzswQkFxQ1EsUUFBUTs7MEJBQ1IsSUFBSTs7MEJBQ0osTUFBTTsyQkFBQyxTQUFTOzswQkFFaEIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLGFBQWE7OzBCQUVwQixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBRTFCLE1BQU07MkJBQUMscUNBQXFDOzswQkFFNUMsTUFBTTsyQkFBQyxXQUFXOzRDQTFDTixtQkFBbUI7c0JBRG5DLFNBQVM7dUJBQUMsc0JBQXNCO2dCQUloQixrQkFBa0I7c0JBRGxDLFNBQVM7dUJBQUMsOEJBQThCO2dCQUtyQyxPQUFPO3NCQUZWLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQVl2QixTQUFTO3NCQURSLEtBQUs7Z0JBSUcsb0JBQW9CO3NCQUQ1QixNQUFNO2dCQWlFUCxPQUFPO3NCQUZOLFlBQVk7dUJBQUMsNEJBQTRCLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUNyRCxZQUFZO3VCQUFDLDJCQUEyQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXdFN0MsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBDSEFSX1BMVVMsXG4gICAgdHVpQXNDb250cm9sLFxuICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yLFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU1hcHBlcixcbiAgICB0dWlQdXJlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsXG4gICAgVFVJX05PTl9ESUdJVFNfUkVHRVhQLFxuICAgIFR1aUZsYWdQaXBlLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplTSxcbiAgICBUdWlTaXplUyxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlDb3VudHJ5SXNvQ29kZX0gZnJvbSAnQHRhaWdhLXVpL2kxOG4nO1xuaW1wb3J0IHtUVUlfQVJST1d9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9hcnJvdyc7XG5pbXBvcnQge1R1aUlucHV0UGhvbmVDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1waG9uZSc7XG5pbXBvcnQge0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvcHJvdmlkZXJzJztcbmltcG9ydCB7VFVJX0NPVU5UUklFU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtNQVNLX0FGVEVSX0NPREVfUkVHRVhQfSBmcm9tICcuL2NvbnN0L21hc2stYWZ0ZXItY29kZS1yZWdleHAnO1xuaW1wb3J0IHtcbiAgICBUVUlfSU5QVVRfUEhPTkVfSU5URVJOQVRJT05BTF9PUFRJT05TLFxuICAgIFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsT3B0aW9ucyxcbn0gZnJvbSAnLi9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsLm9wdGlvbnMnO1xuaW1wb3J0IHtUVUlfQ09VTlRSSUVTX01BU0tTfSBmcm9tICcuL3Rva2Vucy9jb3VudHJpZXMtbWFza3MnO1xuaW1wb3J0IHt0dWlFeHRyYWN0VmFsdWVGcm9tRXZlbnR9IGZyb20gJy4vdXRpbHMvZXh0cmFjdC12YWx1ZS1mcm9tLWV2ZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXBob25lLWludGVybmF0aW9uYWwudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsQ29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsQ29tcG9uZW50KSxcbiAgICAgICAgLy8gVE9ETzogZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgb25seS4gRHJvcCBpbiB2NC4wXG4gICAgICAgIFR1aUZsYWdQaXBlLFxuICAgIF0sXG4gICAgdmlld1Byb3ZpZGVyczogW0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFBob25lSW50ZXJuYXRpb25hbENvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPHN0cmluZz5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpSW5wdXRQaG9uZUNvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0UGhvbmVDb21wb25lbnQ/OiBUdWlJbnB1dFBob25lQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmltaXRpdmVUZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoJ2NvdW50cnlJc29Db2RlJylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNldCBpc29Db2RlKGNvZGU6IFR1aUNvdW50cnlJc29Db2RlKSB7XG4gICAgICAgIGlmICh0aGlzLmNvdW50cnlJc29Db2RlID09PSBjb2RlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlucHV0UGhvbmVDb21wb25lbnQ/LndyaXRlVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMuY291bnRyeUlzb0NvZGUgPSBjb2RlO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgY291bnRyaWVzID0gdGhpcy5vcHRpb25zLmNvdW50cmllcztcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGNvdW50cnlJc29Db2RlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUdWlDb3VudHJ5SXNvQ29kZT4oKTtcblxuICAgIGNvdW50cnlJc29Db2RlID0gdGhpcy5vcHRpb25zLmNvdW50cnlJc29Db2RlO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgcmVhZG9ubHkgYXJyb3c6IFBvbHltb3JwaGV1c0NvbnRlbnQ8XG4gICAgICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpU2l6ZUwgfCBUdWlTaXplTSB8IFR1aVNpemVTPlxuICAgID4gPSBUVUlfQVJST1c7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9DT1VOVFJJRVMpXG4gICAgICAgIHJlYWRvbmx5IGNvdW50cmllc05hbWVzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8VHVpQ291bnRyeUlzb0NvZGUsIHN0cmluZz4+LFxuICAgICAgICBASW5qZWN0KFRVSV9DT1VOVFJJRVNfTUFTS1MpXG4gICAgICAgIHJlYWRvbmx5IGNvdW50cmllc01hc2tzOiBSZWNvcmQ8VHVpQ291bnRyeUlzb0NvZGUsIHN0cmluZz4sXG4gICAgICAgIEBJbmplY3QoVFVJX0lOUFVUX1BIT05FX0lOVEVSTkFUSU9OQUxfT1BUSU9OUylcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBUdWlJbnB1dFBob25lSW50ZXJuYXRpb25hbE9wdGlvbnMsXG4gICAgICAgIEBJbmplY3QoVHVpRmxhZ1BpcGUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmxhZ1BpcGU6IFR1aUZsYWdQaXBlLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRQaG9uZUNvbXBvbmVudCAmJiAhdGhpcy5jb21wdXRlZERpc2FibGVkXG4gICAgICAgICAgICA/IHRoaXMuaW5wdXRQaG9uZUNvbXBvbmVudC5uYXRpdmVGb2N1c2FibGVFbGVtZW50XG4gICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoISF0aGlzLnByaW1pdGl2ZVRleHRmaWVsZCAmJiB0aGlzLnByaW1pdGl2ZVRleHRmaWVsZC5mb2N1c2VkKSB8fFxuICAgICAgICAgICAgKCEhdGhpcy5pbnB1dFBob25lQ29tcG9uZW50ICYmIHRoaXMuaW5wdXRQaG9uZUNvbXBvbmVudC5mb2N1c2VkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBpbnB1dFBob25lQ291bnRyeUNvZGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNvVG9Db3VudHJ5Q29kZSh0aGlzLmNvdW50cnlJc29Db2RlKTtcbiAgICB9XG5cbiAgICBnZXQgcGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBjb3VudHJ5Q29kZSA9IHRoaXMuaXNvVG9Db3VudHJ5Q29kZSh0aGlzLmNvdW50cnlJc29Db2RlKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVNYXNrQWZ0ZXJDb3VudHJ5Q29kZShcbiAgICAgICAgICAgIHRoaXMuY291bnRyaWVzTWFza3NbdGhpcy5jb3VudHJ5SXNvQ29kZV0sXG4gICAgICAgICAgICBjb3VudHJ5Q29kZSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgYDxpbWcgW3NyY109XCJjb3VudHJ5SXNvQ29kZSB8IHR1aUZsYWdQaXBlXCIgLz5gXG4gICAgICogVE9ETyBkcm9wIGluIHY0LjBcbiAgICAgKi9cbiAgICBnZXQgY291bnRyeUZsYWdQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEZsYWdQYXRoKHRoaXMuY291bnRyeUlzb0NvZGUpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3Bhc3RlLmNhcHR1cmUucHJldmVudC5zdG9wJywgWyckZXZlbnQnXSlcbiAgICBASG9zdExpc3RlbmVyKCdkcm9wLmNhcHR1cmUucHJldmVudC5zdG9wJywgWyckZXZlbnQnXSlcbiAgICBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCB8IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBsZXQgdmFsdWUgPSB0dWlFeHRyYWN0VmFsdWVGcm9tRXZlbnQoZXZlbnQpLnJlcGxhY2UoVFVJX05PTl9ESUdJVFNfUkVHRVhQLCAnJyk7XG4gICAgICAgIGNvbnN0IGNvdW50cnlJc29Db2RlID0gdGhpcy5leHRyYWN0Q291bnRyeUNvZGUodmFsdWUpO1xuXG4gICAgICAgIGlmICghY291bnRyeUlzb0NvZGUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBgJHt0aGlzLmlucHV0UGhvbmVDb3VudHJ5Q29kZX0ke3ZhbHVlfWBcbiAgICAgICAgICAgICAgICAucmVwbGFjZShUVUlfTUFTS19TWU1CT0xTX1JFR0VYUCwgJycpXG4gICAgICAgICAgICAgICAgLnNsaWNlKDAsIHRoaXMuZ2V0TWF4QWxsb3dlZExlbmd0aCh0aGlzLmNvdW50cnlJc29Db2RlKSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb3VudHJ5SXNvQ29kZSA9PT0gVHVpQ291bnRyeUlzb0NvZGUuUlUpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvXjgvLCAnNycpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVDb3VudHJ5SXNvQ29kZShjb3VudHJ5SXNvQ29kZSk7XG4gICAgICAgIHRoaXMudmFsdWUgPSBgJHtDSEFSX1BMVVN9JHt2YWx1ZX1gO1xuICAgIH1cblxuICAgIHJlYWRvbmx5IGlzb1RvQ291bnRyeUNvZGVNYXBwZXI6IFR1aU1hcHBlcjxUdWlDb3VudHJ5SXNvQ29kZSwgc3RyaW5nPiA9IGl0ZW0gPT5cbiAgICAgICAgdGhpcy5pc29Ub0NvdW50cnlDb2RlKGl0ZW0pO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGA8aW1nIFtzcmNdPVwiY291bnRyeUlzb0NvZGUgfCB0dWlGbGFnUGlwZVwiIC8+YFxuICAgICAqIFRPRE8gZHJvcCBpbiB2NC4wXG4gICAgICovXG4gICAgZ2V0RmxhZ1BhdGgoY29kZTogVHVpQ291bnRyeUlzb0NvZGUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5mbGFnUGlwZS50cmFuc2Zvcm0oY29kZSk7XG4gICAgfVxuXG4gICAgb25JdGVtQ2xpY2soaXNvQ29kZTogVHVpQ291bnRyeUlzb0NvZGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMudXBkYXRlQ291bnRyeUlzb0NvZGUoaXNvQ29kZSk7XG4gICAgICAgIC8vIHJlY2FsY3VsYXRlcyBtYXNrIGluc2lkZSBpbnB1dFBob25lIHRvIHByZXZlbnQgaXNvQ29kZSBjb25mbGljdFxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICBjb25zdCBtYXhMZW5ndGggPSB0aGlzLmdldE1heEFsbG93ZWRMZW5ndGgoaXNvQ29kZSk7XG5cbiAgICAgICAgaWYgKHRoaXMudmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZS5zbGljZSgwLCBtYXhMZW5ndGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvdmVycmlkZSBzZXREaXNhYmxlZFN0YXRlKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5zZXREaXNhYmxlZFN0YXRlKCk7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBpc29Ub0NvdW50cnlDb2RlKGlzb0NvZGU6IFR1aUNvdW50cnlJc29Db2RlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY291bnRyaWVzTWFza3NbaXNvQ29kZV0ucmVwbGFjZShNQVNLX0FGVEVSX0NPREVfUkVHRVhQLCAnJyk7XG4gICAgfVxuXG4gICAgLyoqIEBkZXByZWNhdGVkIHVzZSAndmFsdWUnIHNldHRlciAqL1xuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgb25BY3RpdmVab25lKGFjdGl2ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoYWN0aXZlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNhbGN1bGF0ZU1hc2tBZnRlckNvdW50cnlDb2RlKG1hc2s6IHN0cmluZywgY291bnRyeUNvZGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBtYXNrLnJlcGxhY2UoY291bnRyeUNvZGUsICcnKS50cmltKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNYXhBbGxvd2VkTGVuZ3RoKGlzb0NvZGU6IFR1aUNvdW50cnlJc29Db2RlKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY291bnRyaWVzTWFza3NbaXNvQ29kZV0ucmVwbGFjZSgvWygpXFwtIF0vZywgJycpLmxlbmd0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNvdW50cnlJc29Db2RlKGNvZGU6IFR1aUNvdW50cnlJc29Db2RlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY291bnRyeUlzb0NvZGUgPSBjb2RlO1xuICAgICAgICB0aGlzLmNvdW50cnlJc29Db2RlQ2hhbmdlLmVtaXQoY29kZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHRyYWN0Q291bnRyeUNvZGUodmFsdWU6IHN0cmluZyk6IFR1aUNvdW50cnlJc29Db2RlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY291bnRyaWVzLmZpbmQoY291bnRyeUlzb0NvZGUgPT4ge1xuICAgICAgICAgICAgY29uc3QgcnVDb2RlVGVzdCA9XG4gICAgICAgICAgICAgICAgY291bnRyeUlzb0NvZGUgPT09IFR1aUNvdW50cnlJc29Db2RlLlJVICYmXG4gICAgICAgICAgICAgICAgL15bNyB8IDhdLy50ZXN0KHZhbHVlKSAmJlxuICAgICAgICAgICAgICAgIC9eKD8hODgwWzEtOSBdKS8udGVzdCh2YWx1ZSkgJiZcbiAgICAgICAgICAgICAgICB2YWx1ZS5sZW5ndGggKyAxID09PSB0aGlzLmdldE1heEFsbG93ZWRMZW5ndGgoVHVpQ291bnRyeUlzb0NvZGUuUlUpO1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHJ1Q29kZVRlc3QgfHxcbiAgICAgICAgICAgICAgICAodmFsdWUuc3RhcnRzV2l0aChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc29Ub0NvdW50cnlDb2RlKGNvdW50cnlJc29Db2RlKS5yZXBsYWNlKENIQVJfUExVUywgJycpLFxuICAgICAgICAgICAgICAgICkgJiZcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUubGVuZ3RoICsgMSA9PT0gdGhpcy5nZXRNYXhBbGxvd2VkTGVuZ3RoKGNvdW50cnlJc29Db2RlKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjx0dWktaG9zdGVkLWRyb3Bkb3duXG4gICAgKm5nSWY9XCJjb3VudHJpZXNOYW1lcyQgfCBhc3luYyBhcyBjb3VudHJpZXNOYW1lc1wiXG4gICAgY2xhc3M9XCJ0LWhvc3RlZC1kcm9wZG93blwiXG4gICAgW2NvbnRlbnRdPVwiZHJvcGRvd25cIlxuICAgIFtjYW5PcGVuXT1cIiFyZWFkT25seVwiXG4gICAgWyhvcGVuKV09XCJvcGVuXCJcbiAgICAodHVpQWN0aXZlWm9uZUNoYW5nZSk9XCJvbkFjdGl2ZVpvbmUoJGV2ZW50KVwiXG4+XG4gICAgPGRpdiB0dWlHcm91cD5cbiAgICAgICAgPHR1aS1wcmltaXRpdmUtdGV4dGZpZWxkXG4gICAgICAgICAgICB0dWlIaW50Q29udGVudD1cIlwiXG4gICAgICAgICAgICB0dWlUZXh0ZmllbGRQcmVmaXg9XCJcIlxuICAgICAgICAgICAgdHVpVGV4dGZpZWxkUG9zdGZpeD1cIlwiXG4gICAgICAgICAgICBjbGFzcz1cInQtY291bnRyeS1zZWxlY3QgdHVpLWdyb3VwX19hdXRvLXdpZHRoLWl0ZW1cIlxuICAgICAgICAgICAgW3R1aVRleHRmaWVsZEN1c3RvbUNvbnRlbnRdPVwiY291bnRyeVZhbHVlQ29udGVudFwiXG4gICAgICAgICAgICBbdHVpVGV4dGZpZWxkTGFiZWxPdXRzaWRlXT1cInRydWVcIlxuICAgICAgICAgICAgW3R1aVRleHRmaWVsZEljb25dPVwiaWNvblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgICAgICAgICAgW2VkaXRhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtwc2V1ZG9Gb2N1c109XCJvcGVuIHx8IG51bGxcIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgPjwvdHVpLXByaW1pdGl2ZS10ZXh0ZmllbGQ+XG4gICAgICAgIDx0dWktaW5wdXQtcGhvbmVcbiAgICAgICAgICAgIGNsYXNzPVwidC1pbnB1dC1waG9uZSB0dWktZ3JvdXBfX2F1dG8td2lkdGgtaXRlbVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgICAgICAgICAgW2NvdW50cnlDb2RlXT1cImlucHV0UGhvbmVDb3VudHJ5Q29kZVwiXG4gICAgICAgICAgICBbcGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZV09XCJwaG9uZU1hc2tBZnRlckNvdW50cnlDb2RlXCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgICAgICBbcHNldWRvSW52YWxpZF09XCJjb21wdXRlZEludmFsaWRcIlxuICAgICAgICAgICAgW3BzZXVkb0ZvY3VzXT1cInBzZXVkb0ZvY3VzXCJcbiAgICAgICAgICAgIFtwc2V1ZG9Ib3Zlcl09XCJwc2V1ZG9Ib3ZlclwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHVpVGV4dGZpZWxkXG4gICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvdHVpLWlucHV0LXBob25lPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICNkcm9wZG93bj5cbiAgICAgICAgPHR1aS1kYXRhLWxpc3Q+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY291bnRyaWVzXCJcbiAgICAgICAgICAgICAgICB0dWlPcHRpb25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWNvdW50cnktaXRlbS1mbGFnXCJcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJpdGVtIHwgdHVpRmxhZ1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInQtY291bnRyeS1pdGVtLW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgY291bnRyaWVzTmFtZXNbaXRlbV0gfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0LWNvdW50cnktaXRlbS1jb2RlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0gfCB0dWlNYXBwZXIgOiBpc29Ub0NvdW50cnlDb2RlTWFwcGVyIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvdHVpLWRhdGEtbGlzdD5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNjb3VudHJ5VmFsdWVDb250ZW50PlxuICAgICAgICA8IS0tIGVzbGludC1kaXNhYmxlIEBodG1sLWVzbGludC9yZXF1aXJlLWltZy1hbHQgLS0+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICAgIGNsYXNzPVwidC1mbGFnXCJcbiAgICAgICAgICAgIFthbHRdPVwiY291bnRyaWVzTmFtZXNbY291bnRyeUlzb0NvZGVdXCJcbiAgICAgICAgICAgIFtzcmNdPVwiY291bnRyeUlzb0NvZGUgfCB0dWlGbGFnXCJcbiAgICAgICAgLz5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNpY29uPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICB0dWlXcmFwcGVyXG4gICAgICAgICAgICBhcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImFycm93XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3R1aS1ob3N0ZWQtZHJvcGRvd24+XG4iXX0=
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsL2lucHV0LXBob25lLWludGVybmF0aW9uYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCxZQUFZLEVBQ1osMEJBQTBCLEVBRTFCLGNBQWMsRUFHZCxPQUFPLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsV0FBVyxFQUNYLDhCQUE4QixHQUlqQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1B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QVEsRUFBRSwrQkFBK0I7b0JBQ3pDLFdBQVcsRUFBRSwyQ0FBMkM7b0JBQ3hELFNBQVMsRUFBRSxDQUFDLHdDQUF3QyxDQUFDO29CQUNyRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFO3dCQUNQLDBCQUEwQixxQ0FBcUM7d0JBQy9ELFlBQVkscUNBQXFDO3dCQUNqRCxzREFBc0Q7d0JBQ3RELFdBQVc7cUJBQ2Q7b0JBQ0QsYUFBYSxFQUFFLENBQUMsa0NBQWtDLENBQUM7aUJBQ3REOzswQkFxQ1EsUUFBUTs7MEJBQ1IsSUFBSTs7MEJBQ0osTUFBTTsyQkFBQyxTQUFTOzswQkFFaEIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLGFBQWE7OzBCQUVwQixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBRTFCLE1BQU07MkJBQUMscUNBQXFDOzswQkFFNUMsTUFBTTsyQkFBQyxXQUFXOzRDQTFDTixtQkFBbUI7c0JBRG5DLFNBQVM7dUJBQUMsc0JBQXNCO2dCQUloQixrQkFBa0I7c0JBRGxDLFNBQVM7dUJBQUMsOEJBQThCO2dCQUtyQyxPQUFPO3NCQUZWLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQVl2QixTQUFTO3NCQURSLEtBQUs7Z0JBSUcsb0JBQW9CO3NCQUQ1QixNQUFNO2dCQWlFUCxPQUFPO3NCQUZOLFlBQVk7dUJBQUMsNEJBQTRCLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUNyRCxZQUFZO3VCQUFDLDJCQUEyQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXdFN0MsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBDSEFSX1BMVVMsXG4gICAgdHVpQXNDb250cm9sLFxuICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yLFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU1hcHBlcixcbiAgICB0dWlQdXJlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsXG4gICAgVFVJX05PTl9ESUdJVFNfUkVHRVhQLFxuICAgIFR1aUZsYWdQaXBlLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplTSxcbiAgICBUdWlTaXplUyxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlDb3VudHJ5SXNvQ29kZX0gZnJvbSAnQHRhaWdhLXVpL2kxOG4nO1xuaW1wb3J0IHtUVUlfQVJST1d9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9hcnJvdyc7XG5pbXBvcnQge1R1aUlucHV0UGhvbmVDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1waG9uZSc7XG5pbXBvcnQge0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvcHJvdmlkZXJzJztcbmltcG9ydCB7VFVJX0NPVU5UUklFU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtNQVNLX0FGVEVSX0NPREVfUkVHRVhQfSBmcm9tICcuL2NvbnN0L21hc2stYWZ0ZXItY29kZS1yZWdleHAnO1xuaW1wb3J0IHtcbiAgICBUVUlfSU5QVVRfUEhPTkVfSU5URVJOQVRJT05BTF9PUFRJT05TLFxuICAgIFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsT3B0aW9ucyxcbn0gZnJvbSAnLi9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsLm9wdGlvbnMnO1xuaW1wb3J0IHtUVUlfQ09VTlRSSUVTX01BU0tTfSBmcm9tICcuL3Rva2Vucy9jb3VudHJpZXMtbWFza3MnO1xuaW1wb3J0IHt0dWlFeHRyYWN0VmFsdWVGcm9tRXZlbnR9IGZyb20gJy4vdXRpbHMvZXh0cmFjdC12YWx1ZS1mcm9tLWV2ZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXBob25lLWludGVybmF0aW9uYWwudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsQ29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsQ29tcG9uZW50KSxcbiAgICAgICAgLy8gVE9ETzogZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgb25seS4gRHJvcCBpbiB2NC4wXG4gICAgICAgIFR1aUZsYWdQaXBlLFxuICAgIF0sXG4gICAgdmlld1Byb3ZpZGVyczogW0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFBob25lSW50ZXJuYXRpb25hbENvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPHN0cmluZz5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpSW5wdXRQaG9uZUNvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0UGhvbmVDb21wb25lbnQ/OiBUdWlJbnB1dFBob25lQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmltaXRpdmVUZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoJ2NvdW50cnlJc29Db2RlJylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNldCBpc29Db2RlKGNvZGU6IFR1aUNvdW50cnlJc29Db2RlKSB7XG4gICAgICAgIGlmICh0aGlzLmNvdW50cnlJc29Db2RlID09PSBjb2RlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlucHV0UGhvbmVDb21wb25lbnQ/LndyaXRlVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMuY291bnRyeUlzb0NvZGUgPSBjb2RlO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgY291bnRyaWVzID0gdGhpcy5vcHRpb25zLmNvdW50cmllcztcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGNvdW50cnlJc29Db2RlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUdWlDb3VudHJ5SXNvQ29kZT4oKTtcblxuICAgIGNvdW50cnlJc29Db2RlID0gdGhpcy5vcHRpb25zLmNvdW50cnlJc29Db2RlO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgcmVhZG9ubHkgYXJyb3c6IFBvbHltb3JwaGV1c0NvbnRlbnQ8XG4gICAgICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8VHVpU2l6ZUwgfCBUdWlTaXplTSB8IFR1aVNpemVTPlxuICAgID4gPSBUVUlfQVJST1c7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfQ09VTlRSSUVTKVxuICAgICAgICByZWFkb25seSBjb3VudHJpZXNOYW1lcyQ6IE9ic2VydmFibGU8UmVjb3JkPFR1aUNvdW50cnlJc29Db2RlLCBzdHJpbmc+PixcbiAgICAgICAgQEluamVjdChUVUlfQ09VTlRSSUVTX01BU0tTKVxuICAgICAgICByZWFkb25seSBjb3VudHJpZXNNYXNrczogUmVjb3JkPFR1aUNvdW50cnlJc29Db2RlLCBzdHJpbmc+LFxuICAgICAgICBASW5qZWN0KFRVSV9JTlBVVF9QSE9ORV9JTlRFUk5BVElPTkFMX09QVElPTlMpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVHVpSW5wdXRQaG9uZUludGVybmF0aW9uYWxPcHRpb25zLFxuICAgICAgICBASW5qZWN0KFR1aUZsYWdQaXBlKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZsYWdQaXBlOiBUdWlGbGFnUGlwZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2RyKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dFBob25lQ29tcG9uZW50ICYmICF0aGlzLmNvbXB1dGVkRGlzYWJsZWRcbiAgICAgICAgICAgID8gdGhpcy5pbnB1dFBob25lQ29tcG9uZW50Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnRcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICghIXRoaXMucHJpbWl0aXZlVGV4dGZpZWxkICYmIHRoaXMucHJpbWl0aXZlVGV4dGZpZWxkLmZvY3VzZWQpIHx8XG4gICAgICAgICAgICAoISF0aGlzLmlucHV0UGhvbmVDb21wb25lbnQgJiYgdGhpcy5pbnB1dFBob25lQ29tcG9uZW50LmZvY3VzZWQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0UGhvbmVDb3VudHJ5Q29kZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pc29Ub0NvdW50cnlDb2RlKHRoaXMuY291bnRyeUlzb0NvZGUpO1xuICAgIH1cblxuICAgIGdldCBwaG9uZU1hc2tBZnRlckNvdW50cnlDb2RlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNvdW50cnlDb2RlID0gdGhpcy5pc29Ub0NvdW50cnlDb2RlKHRoaXMuY291bnRyeUlzb0NvZGUpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZU1hc2tBZnRlckNvdW50cnlDb2RlKFxuICAgICAgICAgICAgdGhpcy5jb3VudHJpZXNNYXNrc1t0aGlzLmNvdW50cnlJc29Db2RlXSxcbiAgICAgICAgICAgIGNvdW50cnlDb2RlLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBgPGltZyBbc3JjXT1cImNvdW50cnlJc29Db2RlIHwgdHVpRmxhZ1BpcGVcIiAvPmBcbiAgICAgKiBUT0RPIGRyb3AgaW4gdjQuMFxuICAgICAqL1xuICAgIGdldCBjb3VudHJ5RmxhZ1BhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RmxhZ1BhdGgodGhpcy5jb3VudHJ5SXNvQ29kZSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigncGFzdGUuY2FwdHVyZS5wcmV2ZW50LnN0b3AnLCBbJyRldmVudCddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AuY2FwdHVyZS5wcmV2ZW50LnN0b3AnLCBbJyRldmVudCddKVxuICAgIG9uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50IHwgRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGxldCB2YWx1ZSA9IHR1aUV4dHJhY3RWYWx1ZUZyb21FdmVudChldmVudCkucmVwbGFjZShUVUlfTk9OX0RJR0lUU19SRUdFWFAsICcnKTtcbiAgICAgICAgY29uc3QgY291bnRyeUlzb0NvZGUgPSB0aGlzLmV4dHJhY3RDb3VudHJ5Q29kZSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKCFjb3VudHJ5SXNvQ29kZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGAke3RoaXMuaW5wdXRQaG9uZUNvdW50cnlDb2RlfSR7dmFsdWV9YFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKFRVSV9NQVNLX1NZTUJPTFNfUkVHRVhQLCAnJylcbiAgICAgICAgICAgICAgICAuc2xpY2UoMCwgdGhpcy5nZXRNYXhBbGxvd2VkTGVuZ3RoKHRoaXMuY291bnRyeUlzb0NvZGUpKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvdW50cnlJc29Db2RlID09PSBUdWlDb3VudHJ5SXNvQ29kZS5SVSkge1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9eOC8sICc3Jyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZUNvdW50cnlJc29Db2RlKGNvdW50cnlJc29Db2RlKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IGAke0NIQVJfUExVU30ke3ZhbHVlfWA7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgaXNvVG9Db3VudHJ5Q29kZU1hcHBlcjogVHVpTWFwcGVyPFR1aUNvdW50cnlJc29Db2RlLCBzdHJpbmc+ID0gaXRlbSA9PlxuICAgICAgICB0aGlzLmlzb1RvQ291bnRyeUNvZGUoaXRlbSk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgYDxpbWcgW3NyY109XCJjb3VudHJ5SXNvQ29kZSB8IHR1aUZsYWdQaXBlXCIgLz5gXG4gICAgICogVE9ETyBkcm9wIGluIHY0LjBcbiAgICAgKi9cbiAgICBnZXRGbGFnUGF0aChjb2RlOiBUdWlDb3VudHJ5SXNvQ29kZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmZsYWdQaXBlLnRyYW5zZm9ybShjb2RlKTtcbiAgICB9XG5cbiAgICBvbkl0ZW1DbGljayhpc29Db2RlOiBUdWlDb3VudHJ5SXNvQ29kZSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy51cGRhdGVDb3VudHJ5SXNvQ29kZShpc29Db2RlKTtcbiAgICAgICAgLy8gcmVjYWxjdWxhdGVzIG1hc2sgaW5zaWRlIGlucHV0UGhvbmUgdG8gcHJldmVudCBpc29Db2RlIGNvbmZsaWN0XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICBjb25zdCBtYXhMZW5ndGggPSB0aGlzLmdldE1heEFsbG93ZWRMZW5ndGgoaXNvQ29kZSk7XG5cbiAgICAgICAgaWYgKHRoaXMudmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZS5zbGljZSgwLCBtYXhMZW5ndGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvdmVycmlkZSBzZXREaXNhYmxlZFN0YXRlKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5zZXREaXNhYmxlZFN0YXRlKCk7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBpc29Ub0NvdW50cnlDb2RlKGlzb0NvZGU6IFR1aUNvdW50cnlJc29Db2RlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY291bnRyaWVzTWFza3NbaXNvQ29kZV0ucmVwbGFjZShNQVNLX0FGVEVSX0NPREVfUkVHRVhQLCAnJyk7XG4gICAgfVxuXG4gICAgLyoqIEBkZXByZWNhdGVkIHVzZSAndmFsdWUnIHNldHRlciAqL1xuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgb25BY3RpdmVab25lKGFjdGl2ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoYWN0aXZlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNhbGN1bGF0ZU1hc2tBZnRlckNvdW50cnlDb2RlKG1hc2s6IHN0cmluZywgY291bnRyeUNvZGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBtYXNrLnJlcGxhY2UoY291bnRyeUNvZGUsICcnKS50cmltKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNYXhBbGxvd2VkTGVuZ3RoKGlzb0NvZGU6IFR1aUNvdW50cnlJc29Db2RlKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY291bnRyaWVzTWFza3NbaXNvQ29kZV0ucmVwbGFjZSgvWygpXFwtIF0vZywgJycpLmxlbmd0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNvdW50cnlJc29Db2RlKGNvZGU6IFR1aUNvdW50cnlJc29Db2RlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY291bnRyeUlzb0NvZGUgPSBjb2RlO1xuICAgICAgICB0aGlzLmNvdW50cnlJc29Db2RlQ2hhbmdlLmVtaXQoY29kZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHRyYWN0Q291bnRyeUNvZGUodmFsdWU6IHN0cmluZyk6IFR1aUNvdW50cnlJc29Db2RlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY291bnRyaWVzLmZpbmQoY291bnRyeUlzb0NvZGUgPT4ge1xuICAgICAgICAgICAgY29uc3QgcnVDb2RlVGVzdCA9XG4gICAgICAgICAgICAgICAgY291bnRyeUlzb0NvZGUgPT09IFR1aUNvdW50cnlJc29Db2RlLlJVICYmXG4gICAgICAgICAgICAgICAgL15bNyB8IDhdLy50ZXN0KHZhbHVlKSAmJlxuICAgICAgICAgICAgICAgIC9eKD8hODgwWzEtOSBdKS8udGVzdCh2YWx1ZSkgJiZcbiAgICAgICAgICAgICAgICB2YWx1ZS5sZW5ndGggKyAxID09PSB0aGlzLmdldE1heEFsbG93ZWRMZW5ndGgoVHVpQ291bnRyeUlzb0NvZGUuUlUpO1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHJ1Q29kZVRlc3QgfHxcbiAgICAgICAgICAgICAgICAodmFsdWUuc3RhcnRzV2l0aChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc29Ub0NvdW50cnlDb2RlKGNvdW50cnlJc29Db2RlKS5yZXBsYWNlKENIQVJfUExVUywgJycpLFxuICAgICAgICAgICAgICAgICkgJiZcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUubGVuZ3RoICsgMSA9PT0gdGhpcy5nZXRNYXhBbGxvd2VkTGVuZ3RoKGNvdW50cnlJc29Db2RlKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjx0dWktaG9zdGVkLWRyb3Bkb3duXG4gICAgKm5nSWY9XCJjb3VudHJpZXNOYW1lcyQgfCBhc3luYyBhcyBjb3VudHJpZXNOYW1lc1wiXG4gICAgY2xhc3M9XCJ0LWhvc3RlZC1kcm9wZG93blwiXG4gICAgW2NvbnRlbnRdPVwiZHJvcGRvd25cIlxuICAgIFtjYW5PcGVuXT1cIiFyZWFkT25seVwiXG4gICAgWyhvcGVuKV09XCJvcGVuXCJcbiAgICAodHVpQWN0aXZlWm9uZUNoYW5nZSk9XCJvbkFjdGl2ZVpvbmUoJGV2ZW50KVwiXG4+XG4gICAgPGRpdiB0dWlHcm91cD5cbiAgICAgICAgPHR1aS1wcmltaXRpdmUtdGV4dGZpZWxkXG4gICAgICAgICAgICB0dWlIaW50Q29udGVudD1cIlwiXG4gICAgICAgICAgICB0dWlUZXh0ZmllbGRQcmVmaXg9XCJcIlxuICAgICAgICAgICAgdHVpVGV4dGZpZWxkUG9zdGZpeD1cIlwiXG4gICAgICAgICAgICBjbGFzcz1cInQtY291bnRyeS1zZWxlY3QgdHVpLWdyb3VwX19hdXRvLXdpZHRoLWl0ZW1cIlxuICAgICAgICAgICAgW3R1aVRleHRmaWVsZEN1c3RvbUNvbnRlbnRdPVwiY291bnRyeVZhbHVlQ29udGVudFwiXG4gICAgICAgICAgICBbdHVpVGV4dGZpZWxkTGFiZWxPdXRzaWRlXT1cInRydWVcIlxuICAgICAgICAgICAgW3R1aVRleHRmaWVsZEljb25dPVwiaWNvblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgICAgICAgICAgW2VkaXRhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtwc2V1ZG9Gb2N1c109XCJvcGVuIHx8IG51bGxcIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgPjwvdHVpLXByaW1pdGl2ZS10ZXh0ZmllbGQ+XG4gICAgICAgIDx0dWktaW5wdXQtcGhvbmVcbiAgICAgICAgICAgIGNsYXNzPVwidC1pbnB1dC1waG9uZSB0dWktZ3JvdXBfX2F1dG8td2lkdGgtaXRlbVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgICAgICAgICAgW2NvdW50cnlDb2RlXT1cImlucHV0UGhvbmVDb3VudHJ5Q29kZVwiXG4gICAgICAgICAgICBbcGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZV09XCJwaG9uZU1hc2tBZnRlckNvdW50cnlDb2RlXCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgICAgICBbcHNldWRvSW52YWxpZF09XCJjb21wdXRlZEludmFsaWRcIlxuICAgICAgICAgICAgW3BzZXVkb0ZvY3VzXT1cInBzZXVkb0ZvY3VzXCJcbiAgICAgICAgICAgIFtwc2V1ZG9Ib3Zlcl09XCJwc2V1ZG9Ib3ZlclwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHVpVGV4dGZpZWxkXG4gICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvdHVpLWlucHV0LXBob25lPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICNkcm9wZG93bj5cbiAgICAgICAgPHR1aS1kYXRhLWxpc3Q+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY291bnRyaWVzXCJcbiAgICAgICAgICAgICAgICB0dWlPcHRpb25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWNvdW50cnktaXRlbS1mbGFnXCJcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJpdGVtIHwgdHVpRmxhZ1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInQtY291bnRyeS1pdGVtLW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgY291bnRyaWVzTmFtZXNbaXRlbV0gfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0LWNvdW50cnktaXRlbS1jb2RlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0gfCB0dWlNYXBwZXIgOiBpc29Ub0NvdW50cnlDb2RlTWFwcGVyIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvdHVpLWRhdGEtbGlzdD5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNjb3VudHJ5VmFsdWVDb250ZW50PlxuICAgICAgICA8IS0tIGVzbGludC1kaXNhYmxlIEBodG1sLWVzbGludC9yZXF1aXJlLWltZy1hbHQgLS0+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICAgIGNsYXNzPVwidC1mbGFnXCJcbiAgICAgICAgICAgIFthbHRdPVwiY291bnRyaWVzTmFtZXNbY291bnRyeUlzb0NvZGVdXCJcbiAgICAgICAgICAgIFtzcmNdPVwiY291bnRyeUlzb0NvZGUgfCB0dWlGbGFnXCJcbiAgICAgICAgLz5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNpY29uPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICB0dWlXcmFwcGVyXG4gICAgICAgICAgICBhcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImFycm93XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3R1aS1ob3N0ZWQtZHJvcGRvd24+XG4iXX0=
@@ -15,10 +15,10 @@ import * as i5 from "@angular/forms";
15
15
  import * as i6 from "@angular/common";
16
16
  import * as i7 from "@tinkoff/ng-polymorpheus";
17
17
  export class TuiInputRangeComponent extends AbstractTuiControl {
18
- constructor(control, changeDetectorRef, isMobile, elementRef, controller) {
19
- super(control, changeDetectorRef);
18
+ constructor(control, cdr, isMobile, el, controller) {
19
+ super(control, cdr);
20
20
  this.isMobile = isMobile;
21
- this.elementRef = elementRef;
21
+ this.el = el;
22
22
  this.controller = controller;
23
23
  this.inputNumberRefs = EMPTY_QUERY;
24
24
  this.rangeRef = null;
@@ -47,7 +47,7 @@ export class TuiInputRangeComponent extends AbstractTuiControl {
47
47
  : this.leftFocusableElement || this.rightFocusableElement;
48
48
  }
49
49
  get focused() {
50
- return tuiIsNativeFocusedIn(this.elementRef.nativeElement);
50
+ return tuiIsNativeFocusedIn(this.el.nativeElement);
51
51
  }
52
52
  get appearance() {
53
53
  return this.controller.appearance;
@@ -257,4 +257,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
257
257
  }], pluralize: [{
258
258
  type: Input
259
259
  }], computeKeySteps: [] } });
260
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcmFuZ2UvaW5wdXQtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcmFuZ2UvaW5wdXQtcmFuZ2UudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFFUixJQUFJLEVBQ0osU0FBUyxFQUNULFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsYUFBYSxFQUNiLFlBQVksRUFDWiwwQkFBMEIsRUFDMUIsUUFBUSxFQUVSLGNBQWMsRUFFZCxrQkFBa0IsRUFDbEIsb0JBQW9CLEVBRXBCLE9BQU8sRUFDUCxRQUFRLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILDZCQUE2QixFQUM3QixnQ0FBZ0MsRUFFaEMsd0JBQXdCLEdBRzNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7OztBQW1CL0QsTUFBTSxPQUFPLHNCQUNULFNBQVEsa0JBQW9DO0lBcUQ1QyxZQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBRTlDLFFBQWlCLEVBQ0csVUFBc0IsRUFFbEQsVUFB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QUFLO2dCQU1OLEdBQUc7c0JBRkYsS0FBSztnQkFNTixPQUFPO3NCQUZOLEtBQUs7Z0JBU04sS0FBSztzQkFMSixLQUFLO2dCQVlOLFFBQVE7c0JBTFAsS0FBSztnQkFTTixRQUFRO3NCQUZQLEtBQUs7Z0JBTU4sZ0JBQWdCO3NCQUZmLEtBQUs7Z0JBTU4saUJBQWlCO3NCQUZoQixLQUFLO2dCQU1OLFNBQVM7c0JBRlIsS0FBSztnQkE0RU4sZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlDb250cm9sLFxuICAgIEVNUFRZX1FVRVJZLFxuICAgIFRVSV9JU19NT0JJTEUsXG4gICAgdHVpQXNDb250cm9sLFxuICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yLFxuICAgIHR1aUNsYW1wLFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIHR1aUlzTmF0aXZlRm9jdXNlZCxcbiAgICB0dWlJc05hdGl2ZUZvY3VzZWRJbixcbiAgICBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50LFxuICAgIHR1aVB1cmUsXG4gICAgdHVpUm91bmQsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBURVhURklFTERfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUixcbiAgICBUdWlEZWNpbWFsLFxuICAgIHR1aUdldEZyYWN0aW9uUGFydFBhZGRlZCxcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyLFxuICAgIFR1aVdpdGhPcHRpb25hbE1pbk1heCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlJbnB1dE51bWJlckNvbXBvbmVudH0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LW51bWJlcic7XG5pbXBvcnQge1R1aVJhbmdlQ29tcG9uZW50fSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvcmFuZ2UnO1xuaW1wb3J0IHtUVUlfRkxPQVRJTkdfUFJFQ0lTSU9OfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aUtleVN0ZXBzfSBmcm9tICdAdGFpZ2EtdWkva2l0L3R5cGVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtcmFuZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1yYW5nZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1yYW5nZS5zdHlsZS5sZXNzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuZGF0YS1zaXplXSc6ICdjb250cm9sbGVyLnNpemUnLFxuICAgICAgICAnW2NsYXNzLl9sYWJlbC1vdXRzaWRlXSc6ICdjb250cm9sbGVyLmxhYmVsT3V0c2lkZScsXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IoVHVpSW5wdXRSYW5nZUNvbXBvbmVudCksXG4gICAgICAgIHR1aUFzQ29udHJvbChUdWlJbnB1dFJhbmdlQ29tcG9uZW50KSxcbiAgICAgICAgVEVYVEZJRUxEX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRSYW5nZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPFtudW1iZXIsIG51bWJlcl0+XG4gICAgaW1wbGVtZW50cyBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8bnVtYmVyPiwgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZHJlbihUdWlJbnB1dE51bWJlckNvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0TnVtYmVyUmVmczogUXVlcnlMaXN0PFR1aUlucHV0TnVtYmVyQ29tcG9uZW50PiA9IEVNUFRZX1FVRVJZO1xuXG4gICAgQFZpZXdDaGlsZChUdWlSYW5nZUNvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJhbmdlUmVmOiBUdWlSYW5nZUNvbXBvbmVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbiA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4ID0gMTAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AocSA9PiBxID4gMCwgJ1txdWFudHVtXSBtdXN0IGJlIHBvc2l0aXZlJylcbiAgICBxdWFudHVtID0gMTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKFxuICAgICAgICBzID0+IHMgPj0gMCAmJiBOdW1iZXIuaXNJbnRlZ2VyKHMpLFxuICAgICAgICAnW3N0ZXBzXSBtdXN0IGJlIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyJyxcbiAgICApXG4gICAgc3RlcHMgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoXG4gICAgICAgIHMgPT4gcyA+IDAgJiYgTnVtYmVyLmlzSW50ZWdlcihzKSxcbiAgICAgICAgJ1tzZWdtZW50c10gbXVzdCBiZSBwb3NpdGl2ZSBpbnRlZ2VyJyxcbiAgICApXG4gICAgc2VnbWVudHMgPSAxO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGxlZnRWYWx1ZUNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dFdpdGhJbXBsaWNpdDxudW1iZXI+PiA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHJpZ2h0VmFsdWVDb250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8bnVtYmVyPj4gPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwbHVyYWxpemU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBudWxsID0gbnVsbDtcblxuICAgIGxhc3RBY3RpdmVTaWRlOiAnbGVmdCcgfCAncmlnaHQnID0gJ2xlZnQnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfSVNfTU9CSUxFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUilcbiAgICAgICAgcmVhZG9ubHkgY29udHJvbGxlcjogVHVpVGV4dGZpZWxkQ29udHJvbGxlcixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBsZWZ0Rm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0TnVtYmVyUmVmcy5maXJzdD8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fCBudWxsO1xuICAgIH1cblxuICAgIGdldCByaWdodEZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dE51bWJlclJlZnMubGFzdD8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fCBudWxsO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWRcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLmxlZnRGb2N1c2FibGVFbGVtZW50IHx8IHRoaXMucmlnaHRGb2N1c2FibGVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHVpSXNOYXRpdmVGb2N1c2VkSW4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIGdldCBhcHBlYXJhbmNlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuYXBwZWFyYW5jZTtcbiAgICB9XG5cbiAgICBnZXQgc2hvd0xlZnRWYWx1ZUNvbnRlbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKFxuICAgICAgICAgICAgdGhpcy5sZWZ0VmFsdWVDb250ZW50ICYmXG4gICAgICAgICAgICAgICAgIXR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLmxlZnRGb2N1c2FibGVFbGVtZW50KSAmJlxuICAgICAgICAgICAgICAgICEodGhpcy5yYW5nZVJlZj8uZm9jdXNlZCAmJiB0aGlzLmxhc3RBY3RpdmVTaWRlID09PSAnbGVmdCcpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBzaG93UmlnaHRWYWx1ZUNvbnRlbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKFxuICAgICAgICAgICAgdGhpcy5yaWdodFZhbHVlQ29udGVudCAmJlxuICAgICAgICAgICAgICAgICF0dWlJc05hdGl2ZUZvY3VzZWQodGhpcy5yaWdodEZvY3VzYWJsZUVsZW1lbnQpICYmXG4gICAgICAgICAgICAgICAgISh0aGlzLnJhbmdlUmVmPy5mb2N1c2VkICYmIHRoaXMubGFzdEFjdGl2ZVNpZGUgPT09ICdyaWdodCcpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBwcmVjaXNpb24oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHR1aUdldEZyYWN0aW9uUGFydFBhZGRlZCh0aGlzLnF1YW50dW0pLmxlbmd0aDtcbiAgICB9XG5cbiAgICBnZXQgZGVjaW1hbCgpOiBUdWlEZWNpbWFsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlY2lzaW9uID8gJ25vdC16ZXJvJyA6ICduZXZlcic7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkU3RlcHMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcHMgfHwgKHRoaXMubWF4IC0gdGhpcy5taW4pIC8gdGhpcy5xdWFudHVtO1xuICAgIH1cblxuICAgIGdldCBzdGVwKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAodGhpcy5tYXggLSB0aGlzLm1pbikgLyB0aGlzLmNvbXB1dGVkU3RlcHM7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBjb21wdXRlS2V5U3RlcHMoa2V5U3RlcHM6IFR1aUtleVN0ZXBzIHwgbnVsbCwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogVHVpS2V5U3RlcHMge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAga2V5U3RlcHMgfHwgW1xuICAgICAgICAgICAgICAgIFswLCBtaW5dLFxuICAgICAgICAgICAgICAgIFsxMDAsIG1heF0sXG4gICAgICAgICAgICBdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25BY3RpdmVab25lKGFjdGl2ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoYWN0aXZlKTtcbiAgICB9XG5cbiAgICBvblRleHRJbnB1dEZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbiwgcmlnaHQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGZvY3VzZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IFtsZWZ0VGV4dElucHV0UmVmLCByaWdodFRleHRJbnB1dFJlZl0gPSB0aGlzLmlucHV0TnVtYmVyUmVmcztcbiAgICAgICAgY29uc3QgaW5wdXRSZWYgPSByaWdodCA/IHJpZ2h0VGV4dElucHV0UmVmIDogbGVmdFRleHRJbnB1dFJlZjtcbiAgICAgICAgY29uc3QgdmFsdWVJbmRleCA9IHJpZ2h0ID8gMSA6IDA7XG5cbiAgICAgICAgaWYgKCFpbnB1dFJlZi5uYXRpdmVWYWx1ZSB8fCBpbnB1dFJlZi52YWx1ZSAhPT0gdGhpcy52YWx1ZVt2YWx1ZUluZGV4XSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVUZXh0SW5wdXRWYWx1ZSh0aGlzLnNhZmVDdXJyZW50VmFsdWVbdmFsdWVJbmRleF0sIHJpZ2h0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNoYW5nZUJ5U3RlcChcbiAgICAgICAgZXZlbnQ6IEV2ZW50IHwgS2V5Ym9hcmRFdmVudCxcbiAgICAgICAgW2xlZnRDb2VmZmljaWVudCwgcmlnaHRDb2VmZmljaWVudF06IFtudW1iZXIsIG51bWJlcl0sXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy52YWx1ZUd1YXJkKFtcbiAgICAgICAgICAgIHRoaXMudmFsdWVbMF0gKyBsZWZ0Q29lZmZpY2llbnQgKiB0aGlzLnN0ZXAsXG4gICAgICAgICAgICB0aGlzLnZhbHVlWzFdICsgcmlnaHRDb2VmZmljaWVudCAqIHRoaXMuc3RlcCxcbiAgICAgICAgXSk7XG4gICAgICAgIGNvbnN0IGxlZnRWYWx1ZUNoYW5nZWQgPSBuZXdWYWx1ZVswXSAhPT0gdGhpcy52YWx1ZVswXTtcbiAgICAgICAgY29uc3QgcmlnaHRWYWx1ZUNoYW5nZWQgPSBuZXdWYWx1ZVsxXSAhPT0gdGhpcy52YWx1ZVsxXTtcblxuICAgICAgICBpZiAobGVmdFZhbHVlQ2hhbmdlZCB8fCByaWdodFZhbHVlQ2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5zYWZlbHlVcGRhdGVWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRleHRJbnB1dFZhbHVlKFxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlW3JpZ2h0VmFsdWVDaGFuZ2VkID8gMSA6IDBdLFxuICAgICAgICAgICAgICAgIHJpZ2h0VmFsdWVDaGFuZ2VkLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSW5wdXRMZWZ0KHZhbHVlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2FmZWx5VXBkYXRlVmFsdWUoW3ZhbHVlID8/IHRoaXMuc2FmZUN1cnJlbnRWYWx1ZVswXSwgdGhpcy52YWx1ZVsxXV0pO1xuICAgIH1cblxuICAgIG9uSW5wdXRSaWdodCh2YWx1ZTogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNhZmVseVVwZGF0ZVZhbHVlKFt0aGlzLnZhbHVlWzBdLCB2YWx1ZSA/PyB0aGlzLnNhZmVDdXJyZW50VmFsdWVbMV1dKTtcbiAgICB9XG5cbiAgICBvblJhbmdlVmFsdWUodmFsdWU6IFtudW1iZXIsIG51bWJlcl0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zYWZlbHlVcGRhdGVWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgY29uc3QgcmlnaHRWYWx1ZUNoYW5nZWQgPSB0aGlzLmxhc3RBY3RpdmVTaWRlID09PSAncmlnaHQnO1xuXG4gICAgICAgIHRoaXMudXBkYXRlVGV4dElucHV0VmFsdWUoXG4gICAgICAgICAgICB0aGlzLnZhbHVlW3JpZ2h0VmFsdWVDaGFuZ2VkID8gMSA6IDBdLFxuICAgICAgICAgICAgcmlnaHRWYWx1ZUNoYW5nZWQsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZm9jdXNUb1RleHRJbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9XG4gICAgICAgICAgICB0aGlzLmxhc3RBY3RpdmVTaWRlID09PSAnbGVmdCdcbiAgICAgICAgICAgICAgICA/IHRoaXMubGVmdEZvY3VzYWJsZUVsZW1lbnRcbiAgICAgICAgICAgICAgICA6IHRoaXMucmlnaHRGb2N1c2FibGVFbGVtZW50O1xuXG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZSAmJiBlbGVtZW50KSB7XG4gICAgICAgICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFjdGl2ZVRodW1iQ2hhbmdlKGFjdGl2ZVRodW1iOiAnbGVmdCcgfCAncmlnaHQnKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGFzdEFjdGl2ZVNpZGUgPSBhY3RpdmVUaHVtYjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgICAgICAgcmV0dXJuIFswLCAwXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNhZmVseVVwZGF0ZVZhbHVlKHZhbHVlOiBbbnVtYmVyLCBudW1iZXJdKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlR3VhcmQodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsdWVHdWFyZChbbGVmdFZhbHVlLCByaWdodFZhbHVlXTogW251bWJlciwgbnVtYmVyXSk6IFtudW1iZXIsIG51bWJlcl0ge1xuICAgICAgICBjb25zdCBsZWZ0Q2FsaWJyYXRlZFZhbHVlID0gdGhpcy5jYWxpYnJhdGUobGVmdFZhbHVlKTtcbiAgICAgICAgY29uc3QgcmlnaHRDYWxpYnJhdGVkVmFsdWUgPSB0aGlzLmNhbGlicmF0ZShyaWdodFZhbHVlKTtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgTWF0aC5taW4obGVmdENhbGlicmF0ZWRWYWx1ZSwgdGhpcy52YWx1ZVsxXSksXG4gICAgICAgICAgICBNYXRoLm1heChyaWdodENhbGlicmF0ZWRWYWx1ZSwgdGhpcy52YWx1ZVswXSksXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxpYnJhdGUodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHJvdW5kZWRWYWx1ZSA9IHR1aVJvdW5kKFxuICAgICAgICAgICAgTWF0aC5yb3VuZCh2YWx1ZSAvIHRoaXMucXVhbnR1bSkgKiB0aGlzLnF1YW50dW0sXG4gICAgICAgICAgICBUVUlfRkxPQVRJTkdfUFJFQ0lTSU9OLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB0dWlDbGFtcChyb3VuZGVkVmFsdWUsIHRoaXMubWluLCB0aGlzLm1heCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUZXh0SW5wdXRWYWx1ZSh2YWx1ZTogbnVtYmVyLCByaWdodDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCBbbGVmdElucHV0UmVmLCByaWdodElucHV0UmVmXSA9IHRoaXMuaW5wdXROdW1iZXJSZWZzO1xuICAgICAgICBjb25zdCB0ZXh0SW5wdXRSZWYgPSByaWdodCA/IHJpZ2h0SW5wdXRSZWYgOiBsZWZ0SW5wdXRSZWY7XG5cbiAgICAgICAgaWYgKHRleHRJbnB1dFJlZikge1xuICAgICAgICAgICAgdGV4dElucHV0UmVmLm5hdGl2ZVZhbHVlID0gdGV4dElucHV0UmVmLmdldEZvcm1hdHRlZFZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICB0dWlXcmFwcGVyXG4gICAgY2xhc3M9XCJ0LXdyYXBwZXJcIlxuICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbZm9jdXNdPVwiY29tcHV0ZWRGb2N1c2VkXCJcbiAgICBbaG92ZXJdPVwicHNldWRvSG92ZXJcIlxuICAgIFtpbnZhbGlkXT1cImNvbXB1dGVkSW52YWxpZFwiXG4gICAgKHR1aUFjdGl2ZVpvbmVDaGFuZ2UpPVwib25BY3RpdmVab25lKCRldmVudClcIlxuPlxuICAgIDx0dWktaW5wdXQtbnVtYmVyXG4gICAgICAgIHR1aVRleHRmaWVsZEFwcGVhcmFuY2U9XCJub25lXCJcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1yYW5nZV9fbGVmdC1pbnB1dFwiXG4gICAgICAgIGNsYXNzPVwidC1sZWZ0IHQtdGV4dC1pbnB1dFwiXG4gICAgICAgIFttaW5dPVwibWluXCJcbiAgICAgICAgW21heF09XCJ2YWx1ZVsxXVwiXG4gICAgICAgIFtwcmVjaXNpb25dPVwicHJlY2lzaW9uXCJcbiAgICAgICAgW2RlY2ltYWxdPVwiZGVjaW1hbFwiXG4gICAgICAgIFtwb3N0Zml4XT1cInBsdXJhbGl6ZSAmJiAhc2hvd0xlZnRWYWx1ZUNvbnRlbnQgPyAodmFsdWVbMF0gfCBpMThuUGx1cmFsIDogcGx1cmFsaXplKSA6ICcnXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVswXVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uSW5wdXRMZWZ0KCRldmVudClcIlxuICAgICAgICAoZm9jdXNlZENoYW5nZSk9XCJvblRleHRJbnB1dEZvY3VzZWQoJGV2ZW50LCBmYWxzZSlcIlxuICAgICAgICAoa2V5ZG93bi5hcnJvd1VwKT1cImNoYW5nZUJ5U3RlcCgkZXZlbnQsIFsxLCAwXSlcIlxuICAgICAgICAoa2V5ZG93bi5hcnJvd0Rvd24pPVwiY2hhbmdlQnlTdGVwKCRldmVudCwgWy0xLCAwXSlcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cInNob3dMZWZ0VmFsdWVDb250ZW50XCJcbiAgICAgICAgICAgIG5nUHJvamVjdEFzPVwidHVpQ29udGVudFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImxlZnRWYWx1ZUNvbnRlbnQgYXMgdGV4dDsgY29udGV4dDogeyRpbXBsaWNpdDogdmFsdWVbMF19XCI+XG4gICAgICAgICAgICAgICAge3sgdGV4dCB9fVxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvdHVpLWlucHV0LW51bWJlcj5cblxuICAgIDxkaXYgY2xhc3M9XCJ0LXJpZ2h0XCI+XG4gICAgICAgIDx0dWktaW5wdXQtbnVtYmVyXG4gICAgICAgICAgICB0dWlUZXh0ZmllbGRBcHBlYXJhbmNlPVwibm9uZVwiXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LXJhbmdlX19yaWdodC1pbnB1dFwiXG4gICAgICAgICAgICBjbGFzcz1cInQtdGV4dC1pbnB1dFwiXG4gICAgICAgICAgICBbbWluXT1cInZhbHVlWzBdXCJcbiAgICAgICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgICAgIFtwcmVjaXNpb25dPVwicHJlY2lzaW9uXCJcbiAgICAgICAgICAgIFtkZWNpbWFsXT1cImRlY2ltYWxcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlWzFdXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uSW5wdXRSaWdodCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChmb2N1c2VkQ2hhbmdlKT1cIm9uVGV4dElucHV0Rm9jdXNlZCgkZXZlbnQsIHRydWUpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmFycm93VXApPVwiY2hhbmdlQnlTdGVwKCRldmVudCwgWzAsIDFdKVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5hcnJvd0Rvd24pPVwiY2hhbmdlQnlTdGVwKCRldmVudCwgWzAsIC0xXSlcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93UmlnaHRWYWx1ZUNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIG5nUHJvamVjdEFzPVwidHVpQ29udGVudFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwicmlnaHRWYWx1ZUNvbnRlbnQgYXMgdGV4dDsgY29udGV4dDogeyRpbXBsaWNpdDogdmFsdWVbMV19XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHRleHQgfX1cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3R1aS1pbnB1dC1udW1iZXI+XG5cbiAgICAgICAgPCEtLSBUT0RPIHJlcGxhY2UgYnkgcG9zdGZpeCBvZiB0aGUgcmlnaHQgSW5wdXROdW1iZXIgKGFmdGVyIGZpeCBodHRwczovL2dpdGh1Yi5jb20vVGlua29mZi90YWlnYS11aS9pc3N1ZXMvMTE5MykgLS0+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIiFzaG93UmlnaHRWYWx1ZUNvbnRlbnQgJiYgcGx1cmFsaXplXCJcbiAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXQtcmFuZ2VfX3BsdXJhbGl6ZS1yaWdodFwiXG4gICAgICAgICAgICBjbGFzcz1cInQtcGx1cmFsaXplLXJpZ2h0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgJm5ic3A7e3sgdmFsdWVbMV0gfCBpMThuUGx1cmFsIDogcGx1cmFsaXplIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDx0dWktcmFuZ2VcbiAgICAgICAgY2xhc3M9XCJ0LXJhbmdlXCJcbiAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgIFtzdGVwXT1cInN0ZXBcIlxuICAgICAgICBbc2VnbWVudHNdPVwic2VnbWVudHNcIlxuICAgICAgICBba2V5U3RlcHNdPVwiY29tcHV0ZUtleVN0ZXBzKGtleVN0ZXBzLCBtaW4sIG1heClcIlxuICAgICAgICBbZm9jdXNhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRPbmx5IHx8IGRpc2FibGVkXCJcbiAgICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblJhbmdlVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICh0dWlQcmVzc2VkQ2hhbmdlKT1cImZvY3VzVG9UZXh0SW5wdXQoKVwiXG4gICAgICAgIChhY3RpdmVUaHVtYkNoYW5nZSk9XCJvbkFjdGl2ZVRodW1iQ2hhbmdlKCRldmVudClcIlxuICAgID48L3R1aS1yYW5nZT5cbjwvZGl2PlxuIl19
260
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcmFuZ2UvaW5wdXQtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcmFuZ2UvaW5wdXQtcmFuZ2UudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFFUixJQUFJLEVBQ0osU0FBUyxFQUNULFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsYUFBYSxFQUNiLFlBQVksRUFDWiwwQkFBMEIsRUFDMUIsUUFBUSxFQUVSLGNBQWMsRUFFZCxrQkFBa0IsRUFDbEIsb0JBQW9CLEVBRXBCLE9BQU8sRUFDUCxRQUFRLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILDZCQUE2QixFQUM3QixnQ0FBZ0MsRUFFaEMsd0JBQXdCLEdBRzNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7OztBQW1CL0QsTUFBTSxPQUFPLHNCQUNULFNBQVEsa0JBQW9DO0lBcUQ1QyxZQUlJLE9BQXlCLEVBQ0UsR0FBc0IsRUFFaEMsUUFBaUIsRUFDRyxFQUFjLEVBRTFDLFVBQWtD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QkFNTixHQUFHO3NCQUZGLEtBQUs7Z0JBTU4sT0FBTztzQkFGTixLQUFLO2dCQVNOLEtBQUs7c0JBTEosS0FBSztnQkFZTixRQUFRO3NCQUxQLEtBQUs7Z0JBU04sUUFBUTtzQkFGUCxLQUFLO2dCQU1OLGdCQUFnQjtzQkFGZixLQUFLO2dCQU1OLGlCQUFpQjtzQkFGaEIsS0FBSztnQkFNTixTQUFTO3NCQUZSLEtBQUs7Z0JBNEVOLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBFTVBUWV9RVUVSWSxcbiAgICBUVUlfSVNfTU9CSUxFLFxuICAgIHR1aUFzQ29udHJvbCxcbiAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcixcbiAgICB0dWlDbGFtcCxcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlJc05hdGl2ZUZvY3VzZWQsXG4gICAgdHVpSXNOYXRpdmVGb2N1c2VkSW4sXG4gICAgVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbiAgICB0dWlQdXJlLFxuICAgIHR1aVJvdW5kLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVEVYVEZJRUxEX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIsXG4gICAgVHVpRGVjaW1hbCxcbiAgICB0dWlHZXRGcmFjdGlvblBhcnRQYWRkZWQsXG4gICAgVHVpVGV4dGZpZWxkQ29udHJvbGxlcixcbiAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXgsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpSW5wdXROdW1iZXJDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1udW1iZXInO1xuaW1wb3J0IHtUdWlSYW5nZUNvbXBvbmVudH0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3JhbmdlJztcbmltcG9ydCB7VFVJX0ZMT0FUSU5HX1BSRUNJU0lPTn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb25zdGFudHMnO1xuaW1wb3J0IHtUdWlLZXlTdGVwc30gZnJvbSAnQHRhaWdhLXVpL2tpdC90eXBlcyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LXJhbmdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtcmFuZ2UudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtcmFuZ2Uuc3R5bGUubGVzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnY29udHJvbGxlci5zaXplJyxcbiAgICAgICAgJ1tjbGFzcy5fbGFiZWwtb3V0c2lkZV0nOiAnY29udHJvbGxlci5sYWJlbE91dHNpZGUnLFxuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0UmFuZ2VDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXRSYW5nZUNvbXBvbmVudCksXG4gICAgICAgIFRFWFRGSUVMRF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0UmFuZ2VDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxbbnVtYmVyLCBudW1iZXJdPlxuICAgIGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PG51bWJlcj4sIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGRyZW4oVHVpSW5wdXROdW1iZXJDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dE51bWJlclJlZnM6IFF1ZXJ5TGlzdDxUdWlJbnB1dE51bWJlckNvbXBvbmVudD4gPSBFTVBUWV9RVUVSWTtcblxuICAgIEBWaWV3Q2hpbGQoVHVpUmFuZ2VDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSByYW5nZVJlZjogVHVpUmFuZ2VDb21wb25lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW4gPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IDEwMDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKHEgPT4gcSA+IDAsICdbcXVhbnR1bV0gbXVzdCBiZSBwb3NpdGl2ZScpXG4gICAgcXVhbnR1bSA9IDE7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcChcbiAgICAgICAgcyA9PiBzID49IDAgJiYgTnVtYmVyLmlzSW50ZWdlcihzKSxcbiAgICAgICAgJ1tzdGVwc10gbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlcicsXG4gICAgKVxuICAgIHN0ZXBzID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKFxuICAgICAgICBzID0+IHMgPiAwICYmIE51bWJlci5pc0ludGVnZXIocyksXG4gICAgICAgICdbc2VnbWVudHNdIG11c3QgYmUgcG9zaXRpdmUgaW50ZWdlcicsXG4gICAgKVxuICAgIHNlZ21lbnRzID0gMTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBrZXlTdGVwczogVHVpS2V5U3RlcHMgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBsZWZ0VmFsdWVDb250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8bnVtYmVyPj4gPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICByaWdodFZhbHVlQ29udGVudDogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PG51bWJlcj4+ID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgcGx1cmFsaXplOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBsYXN0QWN0aXZlU2lkZTogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUilcbiAgICAgICAgcmVhZG9ubHkgY29udHJvbGxlcjogVHVpVGV4dGZpZWxkQ29udHJvbGxlcixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2RyKTtcbiAgICB9XG5cbiAgICBnZXQgbGVmdEZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dE51bWJlclJlZnMuZmlyc3Q/Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgcmlnaHRGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXROdW1iZXJSZWZzLmxhc3Q/Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy5sZWZ0Rm9jdXNhYmxlRWxlbWVudCB8fCB0aGlzLnJpZ2h0Rm9jdXNhYmxlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzTmF0aXZlRm9jdXNlZEluKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0IGFwcGVhcmFuY2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5hcHBlYXJhbmNlO1xuICAgIH1cblxuICAgIGdldCBzaG93TGVmdFZhbHVlQ29udGVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgICAgICB0aGlzLmxlZnRWYWx1ZUNvbnRlbnQgJiZcbiAgICAgICAgICAgICAgICAhdHVpSXNOYXRpdmVGb2N1c2VkKHRoaXMubGVmdEZvY3VzYWJsZUVsZW1lbnQpICYmXG4gICAgICAgICAgICAgICAgISh0aGlzLnJhbmdlUmVmPy5mb2N1c2VkICYmIHRoaXMubGFzdEFjdGl2ZVNpZGUgPT09ICdsZWZ0JyksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IHNob3dSaWdodFZhbHVlQ29udGVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgICAgICB0aGlzLnJpZ2h0VmFsdWVDb250ZW50ICYmXG4gICAgICAgICAgICAgICAgIXR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLnJpZ2h0Rm9jdXNhYmxlRWxlbWVudCkgJiZcbiAgICAgICAgICAgICAgICAhKHRoaXMucmFuZ2VSZWY/LmZvY3VzZWQgJiYgdGhpcy5sYXN0QWN0aXZlU2lkZSA9PT0gJ3JpZ2h0JyksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IHByZWNpc2lvbigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdHVpR2V0RnJhY3Rpb25QYXJ0UGFkZGVkKHRoaXMucXVhbnR1bSkubGVuZ3RoO1xuICAgIH1cblxuICAgIGdldCBkZWNpbWFsKCk6IFR1aURlY2ltYWwge1xuICAgICAgICByZXR1cm4gdGhpcy5wcmVjaXNpb24gPyAnbm90LXplcm8nIDogJ25ldmVyJztcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRTdGVwcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGVwcyB8fCAodGhpcy5tYXggLSB0aGlzLm1pbikgLyB0aGlzLnF1YW50dW07XG4gICAgfVxuXG4gICAgZ2V0IHN0ZXAoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLm1heCAtIHRoaXMubWluKSAvIHRoaXMuY29tcHV0ZWRTdGVwcztcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIGNvbXB1dGVLZXlTdGVwcyhrZXlTdGVwczogVHVpS2V5U3RlcHMgfCBudWxsLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBUdWlLZXlTdGVwcyB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBrZXlTdGVwcyB8fCBbXG4gICAgICAgICAgICAgICAgWzAsIG1pbl0sXG4gICAgICAgICAgICAgICAgWzEwMCwgbWF4XSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkFjdGl2ZVpvbmUoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuICAgIH1cblxuICAgIG9uVGV4dElucHV0Rm9jdXNlZChmb2N1c2VkOiBib29sZWFuLCByaWdodDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoZm9jdXNlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgW2xlZnRUZXh0SW5wdXRSZWYsIHJpZ2h0VGV4dElucHV0UmVmXSA9IHRoaXMuaW5wdXROdW1iZXJSZWZzO1xuICAgICAgICBjb25zdCBpbnB1dFJlZiA9IHJpZ2h0ID8gcmlnaHRUZXh0SW5wdXRSZWYgOiBsZWZ0VGV4dElucHV0UmVmO1xuICAgICAgICBjb25zdCB2YWx1ZUluZGV4ID0gcmlnaHQgPyAxIDogMDtcblxuICAgICAgICBpZiAoIWlucHV0UmVmLm5hdGl2ZVZhbHVlIHx8IGlucHV0UmVmLnZhbHVlICE9PSB0aGlzLnZhbHVlW3ZhbHVlSW5kZXhdKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRleHRJbnB1dFZhbHVlKHRoaXMuc2FmZUN1cnJlbnRWYWx1ZVt2YWx1ZUluZGV4XSwgcmlnaHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hhbmdlQnlTdGVwKFxuICAgICAgICBldmVudDogRXZlbnQgfCBLZXlib2FyZEV2ZW50LFxuICAgICAgICBbbGVmdENvZWZmaWNpZW50LCByaWdodENvZWZmaWNpZW50XTogW251bWJlciwgbnVtYmVyXSxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLnZhbHVlR3VhcmQoW1xuICAgICAgICAgICAgdGhpcy52YWx1ZVswXSArIGxlZnRDb2VmZmljaWVudCAqIHRoaXMuc3RlcCxcbiAgICAgICAgICAgIHRoaXMudmFsdWVbMV0gKyByaWdodENvZWZmaWNpZW50ICogdGhpcy5zdGVwLFxuICAgICAgICBdKTtcbiAgICAgICAgY29uc3QgbGVmdFZhbHVlQ2hhbmdlZCA9IG5ld1ZhbHVlWzBdICE9PSB0aGlzLnZhbHVlWzBdO1xuICAgICAgICBjb25zdCByaWdodFZhbHVlQ2hhbmdlZCA9IG5ld1ZhbHVlWzFdICE9PSB0aGlzLnZhbHVlWzFdO1xuXG4gICAgICAgIGlmIChsZWZ0VmFsdWVDaGFuZ2VkIHx8IHJpZ2h0VmFsdWVDaGFuZ2VkKSB7XG4gICAgICAgICAgICB0aGlzLnNhZmVseVVwZGF0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVGV4dElucHV0VmFsdWUoXG4gICAgICAgICAgICAgICAgbmV3VmFsdWVbcmlnaHRWYWx1ZUNoYW5nZWQgPyAxIDogMF0sXG4gICAgICAgICAgICAgICAgcmlnaHRWYWx1ZUNoYW5nZWQsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JbnB1dExlZnQodmFsdWU6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zYWZlbHlVcGRhdGVWYWx1ZShbdmFsdWUgPz8gdGhpcy5zYWZlQ3VycmVudFZhbHVlWzBdLCB0aGlzLnZhbHVlWzFdXSk7XG4gICAgfVxuXG4gICAgb25JbnB1dFJpZ2h0KHZhbHVlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2FmZWx5VXBkYXRlVmFsdWUoW3RoaXMudmFsdWVbMF0sIHZhbHVlID8/IHRoaXMuc2FmZUN1cnJlbnRWYWx1ZVsxXV0pO1xuICAgIH1cblxuICAgIG9uUmFuZ2VWYWx1ZSh2YWx1ZTogW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNhZmVseVVwZGF0ZVZhbHVlKHZhbHVlKTtcblxuICAgICAgICBjb25zdCByaWdodFZhbHVlQ2hhbmdlZCA9IHRoaXMubGFzdEFjdGl2ZVNpZGUgPT09ICdyaWdodCc7XG5cbiAgICAgICAgdGhpcy51cGRhdGVUZXh0SW5wdXRWYWx1ZShcbiAgICAgICAgICAgIHRoaXMudmFsdWVbcmlnaHRWYWx1ZUNoYW5nZWQgPyAxIDogMF0sXG4gICAgICAgICAgICByaWdodFZhbHVlQ2hhbmdlZCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmb2N1c1RvVGV4dElucHV0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50ID1cbiAgICAgICAgICAgIHRoaXMubGFzdEFjdGl2ZVNpZGUgPT09ICdsZWZ0J1xuICAgICAgICAgICAgICAgID8gdGhpcy5sZWZ0Rm9jdXNhYmxlRWxlbWVudFxuICAgICAgICAgICAgICAgIDogdGhpcy5yaWdodEZvY3VzYWJsZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlICYmIGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQWN0aXZlVGh1bWJDaGFuZ2UoYWN0aXZlVGh1bWI6ICdsZWZ0JyB8ICdyaWdodCcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sYXN0QWN0aXZlU2lkZSA9IGFjdGl2ZVRodW1iO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IFtudW1iZXIsIG51bWJlcl0ge1xuICAgICAgICByZXR1cm4gWzAsIDBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2FmZWx5VXBkYXRlVmFsdWUodmFsdWU6IFtudW1iZXIsIG51bWJlcl0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWVHdWFyZCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWx1ZUd1YXJkKFtsZWZ0VmFsdWUsIHJpZ2h0VmFsdWVdOiBbbnVtYmVyLCBudW1iZXJdKTogW251bWJlciwgbnVtYmVyXSB7XG4gICAgICAgIGNvbnN0IGxlZnRDYWxpYnJhdGVkVmFsdWUgPSB0aGlzLmNhbGlicmF0ZShsZWZ0VmFsdWUpO1xuICAgICAgICBjb25zdCByaWdodENhbGlicmF0ZWRWYWx1ZSA9IHRoaXMuY2FsaWJyYXRlKHJpZ2h0VmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBNYXRoLm1pbihsZWZ0Q2FsaWJyYXRlZFZhbHVlLCB0aGlzLnZhbHVlWzFdKSxcbiAgICAgICAgICAgIE1hdGgubWF4KHJpZ2h0Q2FsaWJyYXRlZFZhbHVlLCB0aGlzLnZhbHVlWzBdKSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGlicmF0ZSh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qgcm91bmRlZFZhbHVlID0gdHVpUm91bmQoXG4gICAgICAgICAgICBNYXRoLnJvdW5kKHZhbHVlIC8gdGhpcy5xdWFudHVtKSAqIHRoaXMucXVhbnR1bSxcbiAgICAgICAgICAgIFRVSV9GTE9BVElOR19QUkVDSVNJT04sXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHR1aUNsYW1wKHJvdW5kZWRWYWx1ZSwgdGhpcy5taW4sIHRoaXMubWF4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVRleHRJbnB1dFZhbHVlKHZhbHVlOiBudW1iZXIsIHJpZ2h0OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IFtsZWZ0SW5wdXRSZWYsIHJpZ2h0SW5wdXRSZWZdID0gdGhpcy5pbnB1dE51bWJlclJlZnM7XG4gICAgICAgIGNvbnN0IHRleHRJbnB1dFJlZiA9IHJpZ2h0ID8gcmlnaHRJbnB1dFJlZiA6IGxlZnRJbnB1dFJlZjtcblxuICAgICAgICBpZiAodGV4dElucHV0UmVmKSB7XG4gICAgICAgICAgICB0ZXh0SW5wdXRSZWYubmF0aXZlVmFsdWUgPSB0ZXh0SW5wdXRSZWYuZ2V0Rm9ybWF0dGVkVmFsdWUodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIHR1aVdyYXBwZXJcbiAgICBjbGFzcz1cInQtd3JhcHBlclwiXG4gICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtmb2N1c109XCJjb21wdXRlZEZvY3VzZWRcIlxuICAgIFtob3Zlcl09XCJwc2V1ZG9Ib3ZlclwiXG4gICAgW2ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICAodHVpQWN0aXZlWm9uZUNoYW5nZSk9XCJvbkFjdGl2ZVpvbmUoJGV2ZW50KVwiXG4+XG4gICAgPHR1aS1pbnB1dC1udW1iZXJcbiAgICAgICAgdHVpVGV4dGZpZWxkQXBwZWFyYW5jZT1cIm5vbmVcIlxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LXJhbmdlX19sZWZ0LWlucHV0XCJcbiAgICAgICAgY2xhc3M9XCJ0LWxlZnQgdC10ZXh0LWlucHV0XCJcbiAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICBbbWF4XT1cInZhbHVlWzFdXCJcbiAgICAgICAgW3ByZWNpc2lvbl09XCJwcmVjaXNpb25cIlxuICAgICAgICBbZGVjaW1hbF09XCJkZWNpbWFsXCJcbiAgICAgICAgW3Bvc3RmaXhdPVwicGx1cmFsaXplICYmICFzaG93TGVmdFZhbHVlQ29udGVudCA/ICh2YWx1ZVswXSB8IGkxOG5QbHVyYWwgOiBwbHVyYWxpemUpIDogJydcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgIFtuZ01vZGVsXT1cInZhbHVlWzBdXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25JbnB1dExlZnQoJGV2ZW50KVwiXG4gICAgICAgIChmb2N1c2VkQ2hhbmdlKT1cIm9uVGV4dElucHV0Rm9jdXNlZCgkZXZlbnQsIGZhbHNlKVwiXG4gICAgICAgIChrZXlkb3duLmFycm93VXApPVwiY2hhbmdlQnlTdGVwKCRldmVudCwgWzEsIDBdKVwiXG4gICAgICAgIChrZXlkb3duLmFycm93RG93bik9XCJjaGFuZ2VCeVN0ZXAoJGV2ZW50LCBbLTEsIDBdKVwiXG4gICAgPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0xlZnRWYWx1ZUNvbnRlbnRcIlxuICAgICAgICAgICAgbmdQcm9qZWN0QXM9XCJ0dWlDb250ZW50XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwibGVmdFZhbHVlQ29udGVudCBhcyB0ZXh0OyBjb250ZXh0OiB7JGltcGxpY2l0OiB2YWx1ZVswXX1cIj5cbiAgICAgICAgICAgICAgICB7eyB0ZXh0IH19XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC90dWktaW5wdXQtbnVtYmVyPlxuXG4gICAgPGRpdiBjbGFzcz1cInQtcmlnaHRcIj5cbiAgICAgICAgPHR1aS1pbnB1dC1udW1iZXJcbiAgICAgICAgICAgIHR1aVRleHRmaWVsZEFwcGVhcmFuY2U9XCJub25lXCJcbiAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXQtcmFuZ2VfX3JpZ2h0LWlucHV0XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC10ZXh0LWlucHV0XCJcbiAgICAgICAgICAgIFttaW5dPVwidmFsdWVbMF1cIlxuICAgICAgICAgICAgW21heF09XCJtYXhcIlxuICAgICAgICAgICAgW3ByZWNpc2lvbl09XCJwcmVjaXNpb25cIlxuICAgICAgICAgICAgW2RlY2ltYWxdPVwiZGVjaW1hbFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVbMV1cIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25JbnB1dFJpZ2h0KCRldmVudClcIlxuICAgICAgICAgICAgKGZvY3VzZWRDaGFuZ2UpPVwib25UZXh0SW5wdXRGb2N1c2VkKCRldmVudCwgdHJ1ZSlcIlxuICAgICAgICAgICAgKGtleWRvd24uYXJyb3dVcCk9XCJjaGFuZ2VCeVN0ZXAoJGV2ZW50LCBbMCwgMV0pXCJcbiAgICAgICAgICAgIChrZXlkb3duLmFycm93RG93bik9XCJjaGFuZ2VCeVN0ZXAoJGV2ZW50LCBbMCwgLTFdKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dSaWdodFZhbHVlQ29udGVudFwiXG4gICAgICAgICAgICAgICAgbmdQcm9qZWN0QXM9XCJ0dWlDb250ZW50XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJyaWdodFZhbHVlQ29udGVudCBhcyB0ZXh0OyBjb250ZXh0OiB7JGltcGxpY2l0OiB2YWx1ZVsxXX1cIj5cbiAgICAgICAgICAgICAgICAgICAge3sgdGV4dCB9fVxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdHVpLWlucHV0LW51bWJlcj5cblxuICAgICAgICA8IS0tIFRPRE8gcmVwbGFjZSBieSBwb3N0Zml4IG9mIHRoZSByaWdodCBJbnB1dE51bWJlciAoYWZ0ZXIgZml4IGh0dHBzOi8vZ2l0aHViLmNvbS9UaW5rb2ZmL3RhaWdhLXVpL2lzc3Vlcy8xMTkzKSAtLT5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiIXNob3dSaWdodFZhbHVlQ29udGVudCAmJiBwbHVyYWxpemVcIlxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1yYW5nZV9fcGx1cmFsaXplLXJpZ2h0XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1wbHVyYWxpemUtcmlnaHRcIlxuICAgICAgICA+XG4gICAgICAgICAgICAmbmJzcDt7eyB2YWx1ZVsxXSB8IGkxOG5QbHVyYWwgOiBwbHVyYWxpemUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPHR1aS1yYW5nZVxuICAgICAgICBjbGFzcz1cInQtcmFuZ2VcIlxuICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgW3N0ZXBdPVwic3RlcFwiXG4gICAgICAgIFtzZWdtZW50c109XCJzZWdtZW50c1wiXG4gICAgICAgIFtrZXlTdGVwc109XCJjb21wdXRlS2V5U3RlcHMoa2V5U3RlcHMsIG1pbiwgbWF4KVwiXG4gICAgICAgIFtmb2N1c2FibGVdPVwiZmFsc2VcIlxuICAgICAgICBbZGlzYWJsZWRdPVwicmVhZE9ubHkgfHwgZGlzYWJsZWRcIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uUmFuZ2VWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgKHR1aVByZXNzZWRDaGFuZ2UpPVwiZm9jdXNUb1RleHRJbnB1dCgpXCJcbiAgICAgICAgKGFjdGl2ZVRodW1iQ2hhbmdlKT1cIm9uQWN0aXZlVGh1bWJDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvdHVpLXJhbmdlPlxuPC9kaXY+XG4iXX0=
@@ -15,8 +15,8 @@ import * as i5 from "@angular/common";
15
15
  import * as i6 from "@tinkoff/ng-polymorpheus";
16
16
  import * as i7 from "@taiga-ui/cdk";
17
17
  export class TuiInputSliderComponent extends AbstractTuiControl {
18
- constructor(control, changeDetectorRef, controller) {
19
- super(control, changeDetectorRef);
18
+ constructor(control, cdr, controller) {
19
+ super(control, cdr);
20
20
  this.controller = controller;
21
21
  this.min = 0;
22
22
  this.max = 100;
@@ -208,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
208
208
  type: Input,
209
209
  args: ['postfix']
210
210
  }], computeKeySteps: [] } });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2lucHV0LXNsaWRlci9pbnB1dC1zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtc2xpZGVyL2lucHV0LXNsaWRlci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLDBCQUEwQixFQUMxQixRQUFRLEVBRVIsY0FBYyxFQUVkLGtCQUFrQixFQUVsQixPQUFPLEVBQ1AsUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCw2QkFBNkIsRUFDN0IsZ0NBQWdDLEVBRWhDLHdCQUF3QixHQUczQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsd0JBQXdCLEdBQzNCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7OztBQWdCL0QsTUFBTSxPQUFPLHVCQUNULFNBQVEsa0JBQTBCO0lBcURsQyxZQUlJLE9BQXlCLEVBQ0UsaUJBQW9DLEVBRXRELFVBQWtDO1FBRTNDLEtBQUssQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztR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QyxTQUFTO2dCQTBEaEIsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICB0dWlBc0NvbnRyb2wsXG4gICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IsXG4gICAgdHVpQ2xhbXAsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgdHVpSXNOYXRpdmVGb2N1c2VkLFxuICAgIFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsXG4gICAgdHVpUHVyZSxcbiAgICB0dWlSb3VuZCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIFRFWFRGSUVMRF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIFRVSV9URVhURklFTERfV0FUQ0hFRF9DT05UUk9MTEVSLFxuICAgIFR1aURlY2ltYWwsXG4gICAgdHVpR2V0RnJhY3Rpb25QYXJ0UGFkZGVkLFxuICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXIsXG4gICAgVHVpV2l0aE9wdGlvbmFsTWluTWF4LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aUlucHV0TnVtYmVyQ29tcG9uZW50fSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtbnVtYmVyJztcbmltcG9ydCB7XG4gICAgVHVpU2xpZGVyQ29tcG9uZW50LFxuICAgIHR1aVNsaWRlck9wdGlvbnNQcm92aWRlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3NsaWRlcic7XG5pbXBvcnQge1RVSV9GTE9BVElOR19QUkVDSVNJT059IGZyb20gJ0B0YWlnYS11aS9raXQvY29uc3RhbnRzJztcbmltcG9ydCB7VHVpS2V5U3RlcHN9IGZyb20gJ0B0YWlnYS11aS9raXQvdHlwZXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1zbGlkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1zbGlkZXIudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtc2xpZGVyLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IoVHVpSW5wdXRTbGlkZXJDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXRTbGlkZXJDb21wb25lbnQpLFxuICAgICAgICB0dWlTbGlkZXJPcHRpb25zUHJvdmlkZXIoe3RyYWNrQ29sb3I6ICd0cmFuc3BhcmVudCd9KSxcbiAgICAgICAgVEVYVEZJRUxEX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRTbGlkZXJDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxudW1iZXI+XG4gICAgaW1wbGVtZW50cyBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8bnVtYmVyPiwgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZChUdWlJbnB1dE51bWJlckNvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0TnVtYmVyUmVmPzogVHVpSW5wdXROdW1iZXJDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKFR1aVNsaWRlckNvbXBvbmVudCwge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2xpZGVyUmVmPzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW4gPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IDEwMDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKHEgPT4gcSA+IDAsICdRdWFudHVtIG11c3QgYmUgcG9zaXRpdmUnKVxuICAgIHF1YW50dW0gPSAxO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoXG4gICAgICAgIHMgPT4gcyA+PSAwICYmIE51bWJlci5pc0ludGVnZXIocyksXG4gICAgICAgICdTdGVwcyBtdXN0IGJlIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyJyxcbiAgICApXG4gICAgc3RlcHMgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoXG4gICAgICAgIHMgPT4gcyA+IDAgJiYgTnVtYmVyLmlzSW50ZWdlcihzKSxcbiAgICAgICAgJ1NlZ21lbnRzIG11c3QgYmUgcG9zaXRpdmUgaW50ZWdlcicsXG4gICAgKVxuICAgIHNlZ21lbnRzID0gMTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBrZXlTdGVwczogVHVpS2V5U3RlcHMgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB2YWx1ZUNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dFdpdGhJbXBsaWNpdDxudW1iZXI+PiA9ICcnO1xuXG4gICAgLyoqIEBkZXByZWNhdGVkIHVzZSBgdHVpVGV4dGZpZWxkUHJlZml4YCBmcm9tIHtAbGluayBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlfSBpbnN0ZWFkICovXG4gICAgQElucHV0KCdwcmVmaXgnKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgdGV4dGZpZWxkUHJlZml4ID0gJyc7XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgdXNlIGB0dWlUZXh0ZmllbGRQb3N0Zml4YCBmcm9tIHtAbGluayBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlfSBpbnN0ZWFkICovXG4gICAgQElucHV0KCdwb3N0Zml4JylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHRleHRmaWVsZFBvc3RmaXggPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIpXG4gICAgICAgIHJlYWRvbmx5IGNvbnRyb2xsZXI6IFR1aVRleHRmaWVsZENvbnRyb2xsZXIsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgcHJlZml4KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZFByZWZpeCB8fCB0aGlzLmNvbnRyb2xsZXIucHJlZml4O1xuICAgIH1cblxuICAgIGdldCBwb3N0Zml4KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZFBvc3RmaXggfHwgdGhpcy5jb250cm9sbGVyLnBvc3RmaXg7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gIXRoaXMuaW5wdXROdW1iZXJSZWY/Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfHwgdGhpcy5jb21wdXRlZERpc2FibGVkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy5pbnB1dE51bWJlclJlZi5uYXRpdmVGb2N1c2FibGVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdHVpSXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkgfHxcbiAgICAgICAgICAgIHR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLnNsaWRlclJlZj8ubmF0aXZlRWxlbWVudCB8fCBudWxsKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFN0ZXBzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0ZXBzIHx8ICh0aGlzLm1heCAtIHRoaXMubWluKSAvIHRoaXMucXVhbnR1bTtcbiAgICB9XG5cbiAgICBnZXQgcHJlY2lzaW9uKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0dWlHZXRGcmFjdGlvblBhcnRQYWRkZWQodGhpcy5xdWFudHVtKS5sZW5ndGg7XG4gICAgfVxuXG4gICAgZ2V0IGRlY2ltYWwoKTogVHVpRGVjaW1hbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZWNpc2lvbiA/ICdub3QtemVybycgOiAnbmV2ZXInO1xuICAgIH1cblxuICAgIGdldCBzaG93VmFsdWVDb250ZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gQm9vbGVhbih0aGlzLnZhbHVlQ29udGVudCAmJiAhdGhpcy5mb2N1c2VkKTtcbiAgICB9XG5cbiAgICBnZXQgc3RlcCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKHRoaXMubWF4IC0gdGhpcy5taW4pIC8gdGhpcy5jb21wdXRlZFN0ZXBzO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgY29tcHV0ZUtleVN0ZXBzKGtleVN0ZXBzOiBUdWlLZXlTdGVwcyB8IG51bGwsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcik6IFR1aUtleVN0ZXBzIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGtleVN0ZXBzIHx8IFtcbiAgICAgICAgICAgICAgICBbMCwgbWluXSxcbiAgICAgICAgICAgICAgICBbMTAwLCBtYXhdLFxuICAgICAgICAgICAgXVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZvY3VzVGV4dElucHV0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmb2N1c2FibGVFbGVtZW50ID0gdGhpcy5pbnB1dE51bWJlclJlZj8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcblxuICAgICAgICBpZiAoZm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgZm9jdXNhYmxlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2FmZWx5VXBkYXRlVmFsdWUodmFsdWU6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWVHdWFyZCh2YWx1ZSA/PyB0aGlzLnNhZmVDdXJyZW50VmFsdWUpO1xuICAgIH1cblxuICAgIG9uVmVydGljYWxBcnJvd0tleURvd24oY29lZmZpY2llbnQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSB8fCAhdGhpcy5zdGVwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUgKyBjb2VmZmljaWVudCAqIHRoaXMuc3RlcDtcblxuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2FmZWx5VXBkYXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVUZXh0SW5wdXRWYWx1ZSh0aGlzLnZhbHVlR3VhcmQodmFsdWUpKTtcbiAgICB9XG5cbiAgICBvblNsaWRlckNoYW5nZShuZXdWYWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2FmZWx5VXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICB0aGlzLnVwZGF0ZVRleHRJbnB1dFZhbHVlKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZSwgdGV4dElucHV0VmFsdWUsIHNhZmVDdXJyZW50VmFsdWUsIGlucHV0TnVtYmVyUmVmfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKCFmb2N1c2VkICYmIHRleHRJbnB1dFZhbHVlICE9PSBpbnB1dE51bWJlclJlZj8uZ2V0Rm9ybWF0dGVkVmFsdWUodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRleHRJbnB1dFZhbHVlKHZhbHVlID8/IHNhZmVDdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHRleHRJbnB1dFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0TnVtYmVyUmVmPy5uYXRpdmVWYWx1ZSB8fCAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbHVlR3VhcmQodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHJvdW5kZWRWYWx1ZSA9IHR1aVJvdW5kKFxuICAgICAgICAgICAgTWF0aC5yb3VuZCh2YWx1ZSAvIHRoaXMucXVhbnR1bSkgKiB0aGlzLnF1YW50dW0sXG4gICAgICAgICAgICBUVUlfRkxPQVRJTkdfUFJFQ0lTSU9OLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB0dWlDbGFtcChyb3VuZGVkVmFsdWUsIHRoaXMubWluLCB0aGlzLm1heCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUZXh0SW5wdXRWYWx1ZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0TnVtYmVyUmVmKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0TnVtYmVyUmVmLm5hdGl2ZVZhbHVlID1cbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0TnVtYmVyUmVmLmdldEZvcm1hdHRlZFZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjx0dWktaW5wdXQtbnVtYmVyXG4gICAgW21pbl09XCJtaW5cIlxuICAgIFttYXhdPVwibWF4XCJcbiAgICBbcHJlY2lzaW9uXT1cInByZWNpc2lvblwiXG4gICAgW2RlY2ltYWxdPVwiZGVjaW1hbFwiXG4gICAgW3R1aVRleHRmaWVsZFByZWZpeF09XCJzaG93VmFsdWVDb250ZW50ID8gJycgOiBwcmVmaXhcIlxuICAgIFt0dWlUZXh0ZmllbGRQb3N0Zml4XT1cInNob3dWYWx1ZUNvbnRlbnQgPyAnJyA6IHBvc3RmaXhcIlxuICAgIFtkaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkXCJcbiAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgIFtwc2V1ZG9Gb2N1c109XCJjb21wdXRlZEZvY3VzZWRcIlxuICAgIFtwc2V1ZG9Ib3Zlcl09XCJwc2V1ZG9Ib3ZlclwiXG4gICAgW3BzZXVkb0FjdGl2ZV09XCJwc2V1ZG9BY3RpdmVcIlxuICAgIFtwc2V1ZG9JbnZhbGlkXT1cInBzZXVkb0ludmFsaWRcIlxuICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJzYWZlbHlVcGRhdGVWYWx1ZSgkZXZlbnQpXCJcbiAgICAoZm9jdXNlZENoYW5nZSk9XCJvbkZvY3VzZWQoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uYXJyb3dVcC5wcmV2ZW50KT1cIm9uVmVydGljYWxBcnJvd0tleURvd24oMSlcIlxuICAgIChrZXlkb3duLmFycm93RG93bi5wcmV2ZW50KT1cIm9uVmVydGljYWxBcnJvd0tleURvd24oLTEpXCJcbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cInNob3dWYWx1ZUNvbnRlbnRcIlxuICAgICAgICBuZ1Byb2plY3RBcz1cInR1aUNvbnRlbnRcIlxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LXNsaWRlcl9fdmFsdWUtY29udGVudFwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJ2YWx1ZUNvbnRlbnQgYXMgdGV4dDsgY29udGV4dDogeyRpbXBsaWNpdDogdmFsdWV9XCI+XG4gICAgICAgICAgICB7eyB0ZXh0IH19XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC90dWktaW5wdXQtbnVtYmVyPlxuXG48aW5wdXRcbiAgICB0dWlTbGlkZXJcbiAgICB0eXBlPVwicmFuZ2VcIlxuICAgIFt0dWlGb2N1c2FibGVdPVwiZmFsc2VcIlxuICAgIFttYXhdPVwiY29tcHV0ZWRTdGVwc1wiXG4gICAgW3NlZ21lbnRzXT1cInNlZ21lbnRzXCJcbiAgICBba2V5U3RlcHNdPVwiY29tcHV0ZUtleVN0ZXBzKGtleVN0ZXBzLCBtaW4sIG1heClcIlxuICAgIFthdHRyLmRpc2FibGVkXT1cInJlYWRPbmx5IHx8IGNvbXB1dGVkRGlzYWJsZWQgfHwgbnVsbFwiXG4gICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2xpZGVyQ2hhbmdlKCRldmVudClcIlxuICAgIChjbGljayk9XCJmb2N1c1RleHRJbnB1dCgpXCJcbi8+XG4iXX0=
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2lucHV0LXNsaWRlci9pbnB1dC1zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtc2xpZGVyL2lucHV0LXNsaWRlci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLDBCQUEwQixFQUMxQixRQUFRLEVBRVIsY0FBYyxFQUVkLGtCQUFrQixFQUVsQixPQUFPLEVBQ1AsUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCw2QkFBNkIsRUFDN0IsZ0NBQWdDLEVBRWhDLHdCQUF3QixHQUczQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsd0JBQXdCLEdBQzNCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7OztBQWdCL0QsTUFBTSxPQUFPLHVCQUNULFNBQVEsa0JBQTBCO0lBcURsQyxZQUlJLE9BQXlCLEVBQ0UsR0FBc0IsRUFFeEMsVUFBa0M7UUFFM0MsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUZY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QVM7Z0JBMERoQixlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlDb250cm9sLFxuICAgIHR1aUFzQ29udHJvbCxcbiAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcixcbiAgICB0dWlDbGFtcCxcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlJc05hdGl2ZUZvY3VzZWQsXG4gICAgVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbiAgICB0dWlQdXJlLFxuICAgIHR1aVJvdW5kLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVEVYVEZJRUxEX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIsXG4gICAgVHVpRGVjaW1hbCxcbiAgICB0dWlHZXRGcmFjdGlvblBhcnRQYWRkZWQsXG4gICAgVHVpVGV4dGZpZWxkQ29udHJvbGxlcixcbiAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXgsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7VHVpSW5wdXROdW1iZXJDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1udW1iZXInO1xuaW1wb3J0IHtcbiAgICBUdWlTbGlkZXJDb21wb25lbnQsXG4gICAgdHVpU2xpZGVyT3B0aW9uc1Byb3ZpZGVyLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2xpZGVyJztcbmltcG9ydCB7VFVJX0ZMT0FUSU5HX1BSRUNJU0lPTn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb25zdGFudHMnO1xuaW1wb3J0IHtUdWlLZXlTdGVwc30gZnJvbSAnQHRhaWdhLXVpL2tpdC90eXBlcyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LXNsaWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXNsaWRlci50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1zbGlkZXIuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcihUdWlJbnB1dFNsaWRlckNvbXBvbmVudCksXG4gICAgICAgIHR1aUFzQ29udHJvbChUdWlJbnB1dFNsaWRlckNvbXBvbmVudCksXG4gICAgICAgIHR1aVNsaWRlck9wdGlvbnNQcm92aWRlcih7dHJhY2tDb2xvcjogJ3RyYW5zcGFyZW50J30pLFxuICAgICAgICBURVhURklFTERfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFNsaWRlckNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPG51bWJlcj5cbiAgICBpbXBsZW1lbnRzIFR1aVdpdGhPcHRpb25hbE1pbk1heDxudW1iZXI+LCBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKFR1aUlucHV0TnVtYmVyQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXROdW1iZXJSZWY/OiBUdWlJbnB1dE51bWJlckNvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpU2xpZGVyQ29tcG9uZW50LCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBzbGlkZXJSZWY/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbiA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4ID0gMTAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AocSA9PiBxID4gMCwgJ1F1YW50dW0gbXVzdCBiZSBwb3NpdGl2ZScpXG4gICAgcXVhbnR1bSA9IDE7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcChcbiAgICAgICAgcyA9PiBzID49IDAgJiYgTnVtYmVyLmlzSW50ZWdlcihzKSxcbiAgICAgICAgJ1N0ZXBzIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXInLFxuICAgIClcbiAgICBzdGVwcyA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcChcbiAgICAgICAgcyA9PiBzID4gMCAmJiBOdW1iZXIuaXNJbnRlZ2VyKHMpLFxuICAgICAgICAnU2VnbWVudHMgbXVzdCBiZSBwb3NpdGl2ZSBpbnRlZ2VyJyxcbiAgICApXG4gICAgc2VnbWVudHMgPSAxO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHZhbHVlQ29udGVudDogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PG51bWJlcj4+ID0gJyc7XG5cbiAgICAvKiogQGRlcHJlY2F0ZWQgdXNlIGB0dWlUZXh0ZmllbGRQcmVmaXhgIGZyb20ge0BsaW5rIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGV9IGluc3RlYWQgKi9cbiAgICBASW5wdXQoJ3ByZWZpeCcpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB0ZXh0ZmllbGRQcmVmaXggPSAnJztcblxuICAgIC8qKiBAZGVwcmVjYXRlZCB1c2UgYHR1aVRleHRmaWVsZFBvc3RmaXhgIGZyb20ge0BsaW5rIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGV9IGluc3RlYWQgKi9cbiAgICBASW5wdXQoJ3Bvc3RmaXgnKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgdGV4dGZpZWxkUG9zdGZpeCA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIpXG4gICAgICAgIHJlYWRvbmx5IGNvbnRyb2xsZXI6IFR1aVRleHRmaWVsZENvbnRyb2xsZXIsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNkcik7XG4gICAgfVxuXG4gICAgZ2V0IHByZWZpeCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGRQcmVmaXggfHwgdGhpcy5jb250cm9sbGVyLnByZWZpeDtcbiAgICB9XG5cbiAgICBnZXQgcG9zdGZpeCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGRQb3N0Zml4IHx8IHRoaXMuY29udHJvbGxlci5wb3N0Zml4O1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlucHV0TnVtYmVyUmVmPy5uYXRpdmVGb2N1c2FibGVFbGVtZW50IHx8IHRoaXMuY29tcHV0ZWREaXNhYmxlZFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHRoaXMuaW5wdXROdW1iZXJSZWYubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHx8XG4gICAgICAgICAgICB0dWlJc05hdGl2ZUZvY3VzZWQodGhpcy5zbGlkZXJSZWY/Lm5hdGl2ZUVsZW1lbnQgfHwgbnVsbClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRTdGVwcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGVwcyB8fCAodGhpcy5tYXggLSB0aGlzLm1pbikgLyB0aGlzLnF1YW50dW07XG4gICAgfVxuXG4gICAgZ2V0IHByZWNpc2lvbigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdHVpR2V0RnJhY3Rpb25QYXJ0UGFkZGVkKHRoaXMucXVhbnR1bSkubGVuZ3RoO1xuICAgIH1cblxuICAgIGdldCBkZWNpbWFsKCk6IFR1aURlY2ltYWwge1xuICAgICAgICByZXR1cm4gdGhpcy5wcmVjaXNpb24gPyAnbm90LXplcm8nIDogJ25ldmVyJztcbiAgICB9XG5cbiAgICBnZXQgc2hvd1ZhbHVlQ29udGVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGhpcy52YWx1ZUNvbnRlbnQgJiYgIXRoaXMuZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgZ2V0IHN0ZXAoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLm1heCAtIHRoaXMubWluKSAvIHRoaXMuY29tcHV0ZWRTdGVwcztcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIGNvbXB1dGVLZXlTdGVwcyhrZXlTdGVwczogVHVpS2V5U3RlcHMgfCBudWxsLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBUdWlLZXlTdGVwcyB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBrZXlTdGVwcyB8fCBbXG4gICAgICAgICAgICAgICAgWzAsIG1pbl0sXG4gICAgICAgICAgICAgICAgWzEwMCwgbWF4XSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmb2N1c1RleHRJbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZm9jdXNhYmxlRWxlbWVudCA9IHRoaXMuaW5wdXROdW1iZXJSZWY/Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKGZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNhZmVseVVwZGF0ZVZhbHVlKHZhbHVlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlR3VhcmQodmFsdWUgPz8gdGhpcy5zYWZlQ3VycmVudFZhbHVlKTtcbiAgICB9XG5cbiAgICBvblZlcnRpY2FsQXJyb3dLZXlEb3duKGNvZWZmaWNpZW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkgfHwgIXRoaXMuc3RlcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlICsgY29lZmZpY2llbnQgKiB0aGlzLnN0ZXA7XG5cbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNhZmVseVVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlVGV4dElucHV0VmFsdWUodGhpcy52YWx1ZUd1YXJkKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgb25TbGlkZXJDaGFuZ2UobmV3VmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnNhZmVseVVwZGF0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVUZXh0SW5wdXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzZWQoZm9jdXNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCB7dmFsdWUsIHRleHRJbnB1dFZhbHVlLCBzYWZlQ3VycmVudFZhbHVlLCBpbnB1dE51bWJlclJlZn0gPSB0aGlzO1xuXG4gICAgICAgIGlmICghZm9jdXNlZCAmJiB0ZXh0SW5wdXRWYWx1ZSAhPT0gaW5wdXROdW1iZXJSZWY/LmdldEZvcm1hdHRlZFZhbHVlKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVUZXh0SW5wdXRWYWx1ZSh2YWx1ZSA/PyBzYWZlQ3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCB0ZXh0SW5wdXRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dE51bWJlclJlZj8ubmF0aXZlVmFsdWUgfHwgJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWx1ZUd1YXJkKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCByb3VuZGVkVmFsdWUgPSB0dWlSb3VuZChcbiAgICAgICAgICAgIE1hdGgucm91bmQodmFsdWUgLyB0aGlzLnF1YW50dW0pICogdGhpcy5xdWFudHVtLFxuICAgICAgICAgICAgVFVJX0ZMT0FUSU5HX1BSRUNJU0lPTixcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdHVpQ2xhbXAocm91bmRlZFZhbHVlLCB0aGlzLm1pbiwgdGhpcy5tYXgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVGV4dElucHV0VmFsdWUodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pbnB1dE51bWJlclJlZikge1xuICAgICAgICAgICAgdGhpcy5pbnB1dE51bWJlclJlZi5uYXRpdmVWYWx1ZSA9XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dE51bWJlclJlZi5nZXRGb3JtYXR0ZWRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8dHVpLWlucHV0LW51bWJlclxuICAgIFttaW5dPVwibWluXCJcbiAgICBbbWF4XT1cIm1heFwiXG4gICAgW3ByZWNpc2lvbl09XCJwcmVjaXNpb25cIlxuICAgIFtkZWNpbWFsXT1cImRlY2ltYWxcIlxuICAgIFt0dWlUZXh0ZmllbGRQcmVmaXhdPVwic2hvd1ZhbHVlQ29udGVudCA/ICcnIDogcHJlZml4XCJcbiAgICBbdHVpVGV4dGZpZWxkUG9zdGZpeF09XCJzaG93VmFsdWVDb250ZW50ID8gJycgOiBwb3N0Zml4XCJcbiAgICBbZGlzYWJsZWRdPVwiY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICBbcHNldWRvRm9jdXNdPVwiY29tcHV0ZWRGb2N1c2VkXCJcbiAgICBbcHNldWRvSG92ZXJdPVwicHNldWRvSG92ZXJcIlxuICAgIFtwc2V1ZG9BY3RpdmVdPVwicHNldWRvQWN0aXZlXCJcbiAgICBbcHNldWRvSW52YWxpZF09XCJwc2V1ZG9JbnZhbGlkXCJcbiAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwic2FmZWx5VXBkYXRlVmFsdWUoJGV2ZW50KVwiXG4gICAgKGZvY3VzZWRDaGFuZ2UpPVwib25Gb2N1c2VkKCRldmVudClcIlxuICAgIChrZXlkb3duLmFycm93VXAucHJldmVudCk9XCJvblZlcnRpY2FsQXJyb3dLZXlEb3duKDEpXCJcbiAgICAoa2V5ZG93bi5hcnJvd0Rvd24ucHJldmVudCk9XCJvblZlcnRpY2FsQXJyb3dLZXlEb3duKC0xKVwiXG4+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJzaG93VmFsdWVDb250ZW50XCJcbiAgICAgICAgbmdQcm9qZWN0QXM9XCJ0dWlDb250ZW50XCJcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1zbGlkZXJfX3ZhbHVlLWNvbnRlbnRcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwidmFsdWVDb250ZW50IGFzIHRleHQ7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHZhbHVlfVwiPlxuICAgICAgICAgICAge3sgdGV4dCB9fVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvdHVpLWlucHV0LW51bWJlcj5cblxuPGlucHV0XG4gICAgdHVpU2xpZGVyXG4gICAgdHlwZT1cInJhbmdlXCJcbiAgICBbdHVpRm9jdXNhYmxlXT1cImZhbHNlXCJcbiAgICBbbWF4XT1cImNvbXB1dGVkU3RlcHNcIlxuICAgIFtzZWdtZW50c109XCJzZWdtZW50c1wiXG4gICAgW2tleVN0ZXBzXT1cImNvbXB1dGVLZXlTdGVwcyhrZXlTdGVwcywgbWluLCBtYXgpXCJcbiAgICBbYXR0ci5kaXNhYmxlZF09XCJyZWFkT25seSB8fCBjb21wdXRlZERpc2FibGVkIHx8IG51bGxcIlxuICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvblNsaWRlckNoYW5nZSgkZXZlbnQpXCJcbiAgICAoY2xpY2spPVwiZm9jdXNUZXh0SW5wdXQoKVwiXG4vPlxuIl19