@taiga-ui/kit 2.16.2 → 2.19.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 (239) hide show
  1. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  2. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  3. package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
  4. package/bundles/taiga-ui-kit-components-badged-content.umd.js +1 -1
  5. package/bundles/taiga-ui-kit-components-badged-content.umd.min.js +1 -1
  6. package/bundles/taiga-ui-kit-components-badged-content.umd.min.js.map +1 -1
  7. package/bundles/taiga-ui-kit-components-calendar-month.umd.js +2 -2
  8. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js +1 -1
  10. package/bundles/taiga-ui-kit-components-calendar-month.umd.min.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +5 -1
  12. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  13. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js +1 -1
  14. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.min.js.map +1 -1
  15. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +3 -0
  16. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js +1 -1
  18. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
  19. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
  21. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  23. package/bundles/taiga-ui-kit-components-input-file.umd.js +4 -1
  24. package/bundles/taiga-ui-kit-components-input-file.umd.js.map +1 -1
  25. package/bundles/taiga-ui-kit-components-input-file.umd.min.js +1 -1
  26. package/bundles/taiga-ui-kit-components-input-file.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-kit-components-input-inline.umd.js +1 -1
  28. package/bundles/taiga-ui-kit-components-input-inline.umd.js.map +1 -1
  29. package/bundles/taiga-ui-kit-components-input-inline.umd.min.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +1 -1
  31. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js +1 -1
  33. package/bundles/taiga-ui-kit-components-input-phone-international.umd.min.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  35. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  36. package/bundles/taiga-ui-kit-components-input-tag.umd.js +5 -5
  37. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  38. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  39. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  40. package/bundles/taiga-ui-kit-components-progress.umd.js +136 -9
  41. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
  42. package/bundles/taiga-ui-kit-components-progress.umd.min.js +2 -2
  43. package/bundles/taiga-ui-kit-components-progress.umd.min.js.map +1 -1
  44. package/bundles/taiga-ui-kit-components-stepper.umd.js +1 -4
  45. package/bundles/taiga-ui-kit-components-stepper.umd.js.map +1 -1
  46. package/bundles/taiga-ui-kit-components-stepper.umd.min.js +1 -1
  47. package/bundles/taiga-ui-kit-components-stepper.umd.min.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-tabs.umd.js +1 -4
  49. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  50. package/bundles/taiga-ui-kit-components-tabs.umd.min.js +1 -1
  51. package/bundles/taiga-ui-kit-components-tabs.umd.min.js.map +1 -1
  52. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  53. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  54. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  55. package/bundles/taiga-ui-kit-components-toggle.umd.min.js.map +1 -1
  56. package/bundles/taiga-ui-kit-directives-dropdown-context.umd.js.map +1 -1
  57. package/bundles/taiga-ui-kit-directives-dropdown-context.umd.min.js.map +1 -1
  58. package/bundles/taiga-ui-kit-enums.umd.js +85 -8
  59. package/bundles/taiga-ui-kit-enums.umd.js.map +1 -1
  60. package/bundles/taiga-ui-kit-enums.umd.min.js +1 -1
  61. package/bundles/taiga-ui-kit-enums.umd.min.js.map +1 -1
  62. package/bundles/taiga-ui-kit-pipes-stringify-content.umd.js.map +1 -1
  63. package/bundles/taiga-ui-kit-pipes-stringify-content.umd.min.js.map +1 -1
  64. package/bundles/taiga-ui-kit-pipes-stringify.umd.js +258 -0
  65. package/bundles/taiga-ui-kit-pipes-stringify.umd.js.map +1 -0
  66. package/bundles/taiga-ui-kit-pipes-stringify.umd.min.js +16 -0
  67. package/bundles/taiga-ui-kit-pipes-stringify.umd.min.js.map +1 -0
  68. package/bundles/taiga-ui-kit-pipes.umd.js +12 -4
  69. package/bundles/taiga-ui-kit-pipes.umd.js.map +1 -1
  70. package/bundles/taiga-ui-kit-pipes.umd.min.js +1 -1
  71. package/components/badged-content/taiga-ui-kit-components-badged-content.metadata.json +1 -1
  72. package/components/calendar-month/taiga-ui-kit-components-calendar-month.metadata.json +1 -1
  73. package/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.metadata.json +1 -1
  74. package/components/input-date/taiga-ui-kit-components-input-date.metadata.json +1 -1
  75. package/components/input-date-range/input-date-range.component.d.ts +1 -1
  76. package/components/input-date-range/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
  77. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  78. package/components/input-phone/taiga-ui-kit-components-input-phone.metadata.json +1 -1
  79. package/components/input-phone-international/taiga-ui-kit-components-input-phone-international.metadata.json +1 -1
  80. package/components/progress/index.d.ts +2 -0
  81. package/components/progress/progress-circle/progress-circle.component.d.ts +15 -0
  82. package/components/progress/progress-segmented/progress-segmented.component.d.ts +10 -0
  83. package/components/progress/taiga-ui-kit-components-progress.metadata.json +1 -1
  84. package/components/stepper/taiga-ui-kit-components-stepper.metadata.json +1 -1
  85. package/components/tabs/taiga-ui-kit-components-tabs.metadata.json +1 -1
  86. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  87. package/components/toggle/taiga-ui-kit-components-toggle.metadata.json +1 -1
  88. package/directives/dropdown-context/taiga-ui-kit-directives-dropdown-context.metadata.json +1 -1
  89. package/esm2015/abstract/slider/slider.js +1 -1
  90. package/esm2015/components/badged-content/badged-content.component.js +1 -1
  91. package/esm2015/components/calendar-month/calendar-month.component.js +3 -3
  92. package/esm2015/components/data-list-wrapper/data-list-wrapper.module.js +7 -3
  93. package/esm2015/components/input-date/input-date.component.js +1 -1
  94. package/esm2015/components/input-date-range/input-date-range.component.js +4 -1
  95. package/esm2015/components/input-date-time/input-date-time.component.js +1 -1
  96. package/esm2015/components/input-file/input-file.component.js +5 -2
  97. package/esm2015/components/input-inline/input-inline.module.js +2 -2
  98. package/esm2015/components/input-phone/input-phone.component.js +1 -1
  99. package/esm2015/components/input-phone-international/input-phone-international.component.js +2 -2
  100. package/esm2015/components/input-tag/input-tag.component.js +6 -6
  101. package/esm2015/components/progress/index.js +3 -1
  102. package/esm2015/components/progress/progress-circle/progress-circle.component.js +69 -0
  103. package/esm2015/components/progress/progress-label/progress-label.component.js +3 -3
  104. package/esm2015/components/progress/progress-segmented/progress-segmented.component.js +48 -0
  105. package/esm2015/components/progress/progress.module.js +11 -4
  106. package/esm2015/components/stepper/stepper.component.js +2 -5
  107. package/esm2015/components/tabs/tabs/tabs.component.js +2 -5
  108. package/esm2015/components/text-area/text-area.component.js +1 -1
  109. package/esm2015/components/toggle/toggle.component.js +1 -1
  110. package/esm2015/directives/dropdown-context/dropdown-context.directive.js +1 -1
  111. package/esm2015/enums/borders.js +9 -1
  112. package/esm2015/enums/dropdown-position.js +10 -1
  113. package/esm2015/enums/file-state.js +11 -1
  114. package/esm2015/enums/marker-icon-mode.js +15 -1
  115. package/esm2015/enums/status.js +13 -1
  116. package/esm2015/enums/step-state.js +10 -1
  117. package/esm2015/enums/text-align.js +10 -1
  118. package/esm2015/pipes/index.js +2 -1
  119. package/esm2015/pipes/stringify/index.js +3 -0
  120. package/esm2015/pipes/stringify/stringify.module.js +13 -0
  121. package/esm2015/pipes/stringify/stringify.pipe.js +14 -0
  122. package/esm2015/pipes/stringify/taiga-ui-kit-pipes-stringify.js +5 -0
  123. package/esm2015/pipes/stringify-content/stringify-content.pipe.js +1 -1
  124. package/esm5/abstract/slider/slider.js +1 -1
  125. package/esm5/components/badged-content/badged-content.component.js +1 -1
  126. package/esm5/components/calendar-month/calendar-month.component.js +3 -3
  127. package/esm5/components/data-list-wrapper/data-list-wrapper.module.js +7 -3
  128. package/esm5/components/input-date/input-date.component.js +1 -1
  129. package/esm5/components/input-date-range/input-date-range.component.js +4 -1
  130. package/esm5/components/input-date-time/input-date-time.component.js +1 -1
  131. package/esm5/components/input-file/input-file.component.js +5 -2
  132. package/esm5/components/input-inline/input-inline.module.js +2 -2
  133. package/esm5/components/input-phone/input-phone.component.js +1 -1
  134. package/esm5/components/input-phone-international/input-phone-international.component.js +2 -2
  135. package/esm5/components/input-tag/input-tag.component.js +6 -6
  136. package/esm5/components/progress/index.js +3 -1
  137. package/esm5/components/progress/progress-circle/progress-circle.component.js +78 -0
  138. package/esm5/components/progress/progress-label/progress-label.component.js +3 -3
  139. package/esm5/components/progress/progress-segmented/progress-segmented.component.js +50 -0
  140. package/esm5/components/progress/progress.module.js +11 -4
  141. package/esm5/components/stepper/stepper.component.js +2 -5
  142. package/esm5/components/tabs/tabs/tabs.component.js +2 -5
  143. package/esm5/components/text-area/text-area.component.js +1 -1
  144. package/esm5/components/toggle/toggle.component.js +1 -1
  145. package/esm5/directives/dropdown-context/dropdown-context.directive.js +1 -1
  146. package/esm5/enums/borders.js +9 -1
  147. package/esm5/enums/dropdown-position.js +10 -1
  148. package/esm5/enums/file-state.js +11 -1
  149. package/esm5/enums/marker-icon-mode.js +15 -1
  150. package/esm5/enums/status.js +13 -1
  151. package/esm5/enums/step-state.js +10 -1
  152. package/esm5/enums/text-align.js +10 -1
  153. package/esm5/pipes/index.js +2 -1
  154. package/esm5/pipes/stringify/index.js +3 -0
  155. package/esm5/pipes/stringify/stringify.module.js +16 -0
  156. package/esm5/pipes/stringify/stringify.pipe.js +17 -0
  157. package/esm5/pipes/stringify/taiga-ui-kit-pipes-stringify.js +5 -0
  158. package/esm5/pipes/stringify-content/stringify-content.pipe.js +1 -1
  159. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  160. package/fesm2015/taiga-ui-kit-components-badged-content.js +1 -1
  161. package/fesm2015/taiga-ui-kit-components-calendar-month.js +2 -2
  162. package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
  163. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +6 -2
  164. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  165. package/fesm2015/taiga-ui-kit-components-input-date-range.js +3 -0
  166. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  167. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  168. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  169. package/fesm2015/taiga-ui-kit-components-input-file.js +4 -1
  170. package/fesm2015/taiga-ui-kit-components-input-file.js.map +1 -1
  171. package/fesm2015/taiga-ui-kit-components-input-inline.js +1 -1
  172. package/fesm2015/taiga-ui-kit-components-input-inline.js.map +1 -1
  173. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +1 -1
  174. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  175. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  176. package/fesm2015/taiga-ui-kit-components-input-tag.js +5 -5
  177. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  178. package/fesm2015/taiga-ui-kit-components-progress.js +121 -9
  179. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
  180. package/fesm2015/taiga-ui-kit-components-stepper.js +1 -4
  181. package/fesm2015/taiga-ui-kit-components-stepper.js.map +1 -1
  182. package/fesm2015/taiga-ui-kit-components-tabs.js +1 -4
  183. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  184. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  185. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  186. package/fesm2015/taiga-ui-kit-directives-dropdown-context.js.map +1 -1
  187. package/fesm2015/taiga-ui-kit-enums.js +80 -0
  188. package/fesm2015/taiga-ui-kit-enums.js.map +1 -1
  189. package/fesm2015/taiga-ui-kit-pipes-stringify-content.js.map +1 -1
  190. package/fesm2015/taiga-ui-kit-pipes-stringify.js +29 -0
  191. package/fesm2015/taiga-ui-kit-pipes-stringify.js.map +1 -0
  192. package/fesm2015/taiga-ui-kit-pipes.js +1 -0
  193. package/fesm2015/taiga-ui-kit-pipes.js.map +1 -1
  194. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  195. package/fesm5/taiga-ui-kit-components-badged-content.js +1 -1
  196. package/fesm5/taiga-ui-kit-components-calendar-month.js +2 -2
  197. package/fesm5/taiga-ui-kit-components-calendar-month.js.map +1 -1
  198. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js +6 -2
  199. package/fesm5/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  200. package/fesm5/taiga-ui-kit-components-input-date-range.js +3 -0
  201. package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
  202. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  203. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  204. package/fesm5/taiga-ui-kit-components-input-file.js +4 -1
  205. package/fesm5/taiga-ui-kit-components-input-file.js.map +1 -1
  206. package/fesm5/taiga-ui-kit-components-input-inline.js +1 -1
  207. package/fesm5/taiga-ui-kit-components-input-inline.js.map +1 -1
  208. package/fesm5/taiga-ui-kit-components-input-phone-international.js +1 -1
  209. package/fesm5/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  210. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  211. package/fesm5/taiga-ui-kit-components-input-tag.js +5 -5
  212. package/fesm5/taiga-ui-kit-components-input-tag.js.map +1 -1
  213. package/fesm5/taiga-ui-kit-components-progress.js +132 -9
  214. package/fesm5/taiga-ui-kit-components-progress.js.map +1 -1
  215. package/fesm5/taiga-ui-kit-components-stepper.js +1 -4
  216. package/fesm5/taiga-ui-kit-components-stepper.js.map +1 -1
  217. package/fesm5/taiga-ui-kit-components-tabs.js +1 -4
  218. package/fesm5/taiga-ui-kit-components-tabs.js.map +1 -1
  219. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  220. package/fesm5/taiga-ui-kit-components-toggle.js.map +1 -1
  221. package/fesm5/taiga-ui-kit-directives-dropdown-context.js.map +1 -1
  222. package/fesm5/taiga-ui-kit-enums.js +80 -0
  223. package/fesm5/taiga-ui-kit-enums.js.map +1 -1
  224. package/fesm5/taiga-ui-kit-pipes-stringify-content.js.map +1 -1
  225. package/fesm5/taiga-ui-kit-pipes-stringify.js +35 -0
  226. package/fesm5/taiga-ui-kit-pipes-stringify.js.map +1 -0
  227. package/fesm5/taiga-ui-kit-pipes.js +1 -0
  228. package/fesm5/taiga-ui-kit-pipes.js.map +1 -1
  229. package/package.json +4 -4
  230. package/pipes/index.d.ts +1 -0
  231. package/pipes/stringify/index.d.ts +2 -0
  232. package/pipes/stringify/package.json +13 -0
  233. package/pipes/stringify/stringify.module.d.ts +2 -0
  234. package/pipes/stringify/stringify.pipe.d.ts +5 -0
  235. package/pipes/stringify/taiga-ui-kit-pipes-stringify.d.ts +4 -0
  236. package/pipes/stringify/taiga-ui-kit-pipes-stringify.metadata.json +1 -0
  237. package/pipes/stringify-content/stringify-content.pipe.d.ts +1 -2
  238. package/pipes/stringify-content/taiga-ui-kit-pipes-stringify-content.metadata.json +1 -1
  239. package/pipes/taiga-ui-kit-pipes.metadata.json +1 -1
@@ -107,7 +107,7 @@ var TuiBadgedContentComponent = /** @class */ (function () {
107
107
  selector: 'tui-badged-content',
108
108
  changeDetection: ChangeDetectionStrategy.OnPush,
109
109
  template: "<ng-content></ng-content>\n\n<div\n *ngIf=\"topNotification\"\n class=\"notification notification_top\"\n [style.background]=\"topNotification\"\n [style.boxShadow]=\"boxShadow\"\n></div>\n\n<div\n *ngIf=\"bottomNotification\"\n class=\"notification notification_bottom\"\n [style.background]=\"bottomNotification\"\n [style.boxShadow]=\"boxShadow\"\n></div>\n\n<div\n *ngIf=\"contentTop\"\n polymorpheus-outlet\n class=\"content content_top\"\n [style.boxShadow]=\"boxShadow\"\n [content]=\"contentTop\"\n>\n <ng-template let-content>\n <tui-badge\n *ngIf=\"contentIsNumber(content) && !badgeHidden\"\n [status]=\"getStatus(colorTop)\"\n [style.backgroundColor]=\"colorTop\"\n [size]=\"badgeSize\"\n [value]=\"contentTop\"\n ></tui-badge>\n <tui-svg\n *ngIf=\"contentIsString(content)\"\n class=\"icon\"\n [style.color]=\"colorTop\"\n [src]=\"content\"\n ></tui-svg>\n </ng-template>\n</div>\n\n<div\n polymorpheus-outlet\n *ngIf=\"contentBottom && sizeBig\"\n class=\"content content_bottom\"\n [style.boxShadow]=\"boxShadow\"\n [content]=\"contentBottom\"\n>\n <ng-template let-content>\n <tui-badge\n *ngIf=\"contentIsNumber(content)\"\n [status]=\"getStatus(colorBottom)\"\n [style.backgroundColor]=\"colorBottom\"\n [size]=\"badgeSize\"\n [value]=\"contentBottom\"\n ></tui-badge>\n <tui-svg\n *ngIf=\"contentIsString(content)\"\n class=\"icon\"\n [style.color]=\"colorBottom\"\n [src]=\"content\"\n ></tui-svg>\n </ng-template>\n</div>\n",
110
- styles: [":host{position:relative;display:inline-block;color:var(--tui-base-01)}.notification{position:absolute;border-radius:100%;box-shadow:0 0 0 2px currentColor}.notification:not([data-tui-background]){background-color:currentColor}:host[data-tui-host-size='m']:not(._rounded) .notification_top,:host[data-tui-host-size='s']:not(._rounded) .notification_top,:host[data-tui-host-size=xs]:not(._rounded) .notification_top{top:-.125rem;right:-.125rem}:host[data-tui-host-size='l']:not(._rounded) .notification_top,:host[data-tui-host-size=xl]:not(._rounded) .notification_top{top:-.25rem;right:-.25rem}:host[data-tui-host-size=xxl]:not(._rounded) .notification_top{top:-.5rem;right:-.5rem}:host[data-tui-host-size=xs]._rounded .notification_top{top:0;right:0}:host[data-tui-host-size='s']._rounded .notification_top{top:.0625rem;right:.0625rem}:host[data-tui-host-size='m']._rounded .notification_top{top:.1875rem;right:.1875rem}:host[data-tui-host-size='l']._rounded .notification_top{top:.25rem;right:.25rem}:host[data-tui-host-size=xl]._rounded .notification_top{top:.375rem;right:.375rem}:host[data-tui-host-size=xxl]._rounded .notification_top{top:.5rem;right:.5rem}:host[data-tui-host-size='m']:not(._rounded) .notification_bottom{bottom:-.125rem;right:-.125rem}:host[data-tui-host-size='l']:not(._rounded) .notification_bottom,:host[data-tui-host-size=xl]:not(._rounded) .notification_bottom{bottom:-.25rem;right:-.25rem}:host[data-tui-host-size=xxl]:not(._rounded) .notification_bottom{bottom:-.5rem;right:-.5rem}:host[data-tui-host-size='m']._rounded .notification_bottom{bottom:.1875rem;right:.1875rem}:host[data-tui-host-size='l']._rounded .notification_bottom{bottom:.25rem;right:.25rem}:host[data-tui-host-size=xl]._rounded .notification_bottom{bottom:.375rem;right:.375rem}:host[data-tui-host-size=xxl]._rounded .notification_bottom{bottom:.5rem;right:.5rem}:host[data-tui-host-size='m'] .notification,:host[data-tui-host-size='s'] .notification,:host[data-tui-host-size=xs] .notification{width:.5rem;height:.5rem}:host[data-tui-host-size='l'] .notification{width:.75rem;height:.75rem}:host[data-tui-host-size=xl] .notification{width:1rem;height:1rem}:host[data-tui-host-size=xxl] .notification{width:1.5rem;height:1.5rem}.icon[data-tui-color=normal],.notification[data-tui-color=normal]{color:var(--tui-base-06)}.icon[data-tui-color=onDark],.notification[data-tui-color=onDark]{color:var(--tui-secondary)}.icon[data-tui-color=gray],.notification[data-tui-color=gray]{color:var(--tui-base-03)}.icon[data-tui-color=warning],.notification[data-tui-color=warning]{color:var(--tui-primary)}.icon[data-tui-color=secondary],.notification[data-tui-color=secondary]{color:var(--tui-info-fill)}.icon[data-tui-color=highlight],.icon[data-tui-color=white],.notification[data-tui-color=highlight],.notification[data-tui-color=white]{color:var(--tui-base-01)}.icon[data-tui-color=transparent-dark],.notification[data-tui-color=transparent-dark]{color:var(--tui-clear)}.icon[data-tui-color=transparent-light],.notification[data-tui-color=transparent-light]{color:var(--tui-clear-inverse)}:host[data-tui-host-size='m'] .icon,:host[data-tui-host-size='s'] .icon{width:1.5rem;height:1.5rem;margin:-.125rem}:host[data-tui-host-size='l'] .icon,:host[data-tui-host-size=xl] .icon{transform:scale(1.2)}:host[data-tui-host-size=xxl] .icon{transform:scale(1.6)}.content{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:6.25rem;overflow:hidden;background-color:currentColor;box-shadow:0 0 0 2px currentColor}:host[data-tui-host-size='l'][data-tui-host-top]:not(._rounded) .content_top,:host[data-tui-host-size=xxl][data-tui-host-top]:not(._rounded) .content_top{right:-.5rem;top:-.5rem}:host[data-tui-host-size=xl][data-tui-host-top]:not(._rounded) .content_top{right:-.375rem;top:-.375rem}:host[data-tui-host-size='m'][data-tui-host-top]:not(._rounded) .content_top,:host[data-tui-host-size='s'][data-tui-host-top]:not(._rounded) .content_top,:host[data-tui-host-size=xs][data-tui-host-top]:not(._rounded) .content_top{right:-.25rem;top:-.25rem}:host[data-tui-host-size=xxl][data-tui-host-top]._rounded .content_top{right:.25rem;top:.25rem}:host[data-tui-host-size=xl][data-tui-host-top]._rounded .content_top{right:.125rem;top:.125rem}:host[data-tui-host-size='l'][data-tui-host-top]._rounded .content_top,:host[data-tui-host-size='m'][data-tui-host-top]._rounded .content_top,:host[data-tui-host-size='s'][data-tui-host-top]._rounded .content_top,:host[data-tui-host-size=xs][data-tui-host-top]._rounded .content_top{right:-.25rem;top:-.25rem}:host[data-tui-host-size='l'][data-tui-host-bottom]:not(._rounded) .content_bottom,:host[data-tui-host-size=xxl][data-tui-host-bottom]:not(._rounded) .content_bottom{bottom:-.5rem;right:-.5rem}:host[data-tui-host-size=xl][data-tui-host-bottom]:not(._rounded) .content_bottom{bottom:-.375rem;right:-.375rem}:host[data-tui-host-size='m'][data-tui-host-bottom]:not(._rounded) .content_bottom{bottom:-.25rem;right:-.25rem}:host[data-tui-host-size=xxl][data-tui-host-bottom]._rounded .content_bottom{bottom:.25rem;right:.25rem}:host[data-tui-host-size=xl][data-tui-host-bottom]._rounded .content_bottom{bottom:.125rem;right:.125rem}:host[data-tui-host-size='l'][data-tui-host-bottom]._rounded .content_bottom,:host[data-tui-host-size='m'][data-tui-host-bottom]._rounded .content_bottom{bottom:-.25rem;right:-.25rem}:host[data-tui-host-size=xxl] .content{height:2rem;min-width:2rem}:host[data-tui-host-size='l'] .content,:host[data-tui-host-size=xl] .content{height:1.5rem;min-width:1.5rem}:host[data-tui-host-size='m'] .content,:host[data-tui-host-size='s'] .content{height:1.25rem;min-width:1.25rem}:host[data-tui-host-size=xs] .content{height:1rem;min-width:1rem}"]
110
+ styles: [":host{position:relative;display:inline-block;color:var(--tui-base-01)}.notification{position:absolute;border-radius:100%;box-shadow:0 0 0 2px currentColor}.notification:not([data-tui-background]){background-color:currentColor}:host[data-tui-host-size='m']:not(._rounded) .notification_top,:host[data-tui-host-size='s']:not(._rounded) .notification_top,:host[data-tui-host-size=xs]:not(._rounded) .notification_top{top:-.125rem;right:-.125rem}:host[data-tui-host-size='l']:not(._rounded) .notification_top,:host[data-tui-host-size=xl]:not(._rounded) .notification_top{top:-.25rem;right:-.25rem}:host[data-tui-host-size=xxl]:not(._rounded) .notification_top{top:-.5rem;right:-.5rem}:host[data-tui-host-size=xs]._rounded .notification_top{top:0;right:0}:host[data-tui-host-size='s']._rounded .notification_top{top:.0625rem;right:.0625rem}:host[data-tui-host-size='m']._rounded .notification_top{top:.1875rem;right:.1875rem}:host[data-tui-host-size='l']._rounded .notification_top{top:.25rem;right:.25rem}:host[data-tui-host-size=xl]._rounded .notification_top{top:.375rem;right:.375rem}:host[data-tui-host-size=xxl]._rounded .notification_top{top:.5rem;right:.5rem}:host[data-tui-host-size='m']:not(._rounded) .notification_bottom{bottom:-.125rem;right:-.125rem}:host[data-tui-host-size='l']:not(._rounded) .notification_bottom,:host[data-tui-host-size=xl]:not(._rounded) .notification_bottom{bottom:-.25rem;right:-.25rem}:host[data-tui-host-size=xxl]:not(._rounded) .notification_bottom{bottom:-.5rem;right:-.5rem}:host[data-tui-host-size='m']._rounded .notification_bottom{bottom:.1875rem;right:.1875rem}:host[data-tui-host-size='l']._rounded .notification_bottom{bottom:.25rem;right:.25rem}:host[data-tui-host-size=xl]._rounded .notification_bottom{bottom:.375rem;right:.375rem}:host[data-tui-host-size=xxl]._rounded .notification_bottom{bottom:.5rem;right:.5rem}:host[data-tui-host-size='m'] .notification,:host[data-tui-host-size='s'] .notification,:host[data-tui-host-size=xs] .notification{width:.5rem;height:.5rem}:host[data-tui-host-size='l'] .notification{width:.75rem;height:.75rem}:host[data-tui-host-size=xl] .notification{width:1rem;height:1rem}:host[data-tui-host-size=xxl] .notification{width:1.5rem;height:1.5rem}.icon[data-tui-color=normal],.notification[data-tui-color=normal]{color:var(--tui-base-06)}.icon[data-tui-color=onDark],.notification[data-tui-color=onDark]{color:var(--tui-secondary)}.icon[data-tui-color=gray],.notification[data-tui-color=gray]{color:var(--tui-base-03)}.icon[data-tui-color=warning],.notification[data-tui-color=warning]{color:var(--tui-primary)}.icon[data-tui-color=secondary],.notification[data-tui-color=secondary]{color:var(--tui-info-fill)}.icon[data-tui-color=highlight],.icon[data-tui-color=white],.notification[data-tui-color=highlight],.notification[data-tui-color=white]{color:var(--tui-base-01)}.icon[data-tui-color=transparent-dark],.notification[data-tui-color=transparent-dark]{color:var(--tui-clear)}.icon[data-tui-color=transparent-light],.notification[data-tui-color=transparent-light]{color:var(--tui-clear-inverse)}.icon{color:var(--tui-success-fill)}:host[data-tui-host-size='m'] .icon,:host[data-tui-host-size='s'] .icon{width:1.5rem;height:1.5rem;margin:-.125rem}:host[data-tui-host-size='l'] .icon,:host[data-tui-host-size=xl] .icon{transform:scale(1.2)}:host[data-tui-host-size=xxl] .icon{transform:scale(1.6)}.content{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:6.25rem;overflow:hidden;background-color:currentColor;box-shadow:0 0 0 2px currentColor}:host[data-tui-host-size='l'][data-tui-host-top]:not(._rounded) .content_top,:host[data-tui-host-size=xxl][data-tui-host-top]:not(._rounded) .content_top{right:-.5rem;top:-.5rem}:host[data-tui-host-size=xl][data-tui-host-top]:not(._rounded) .content_top{right:-.375rem;top:-.375rem}:host[data-tui-host-size='m'][data-tui-host-top]:not(._rounded) .content_top,:host[data-tui-host-size='s'][data-tui-host-top]:not(._rounded) .content_top,:host[data-tui-host-size=xs][data-tui-host-top]:not(._rounded) .content_top{right:-.25rem;top:-.25rem}:host[data-tui-host-size=xxl][data-tui-host-top]._rounded .content_top{right:.25rem;top:.25rem}:host[data-tui-host-size=xl][data-tui-host-top]._rounded .content_top{right:.125rem;top:.125rem}:host[data-tui-host-size='l'][data-tui-host-top]._rounded .content_top,:host[data-tui-host-size='m'][data-tui-host-top]._rounded .content_top,:host[data-tui-host-size='s'][data-tui-host-top]._rounded .content_top,:host[data-tui-host-size=xs][data-tui-host-top]._rounded .content_top{right:-.25rem;top:-.25rem}:host[data-tui-host-size='l'][data-tui-host-bottom]:not(._rounded) .content_bottom,:host[data-tui-host-size=xxl][data-tui-host-bottom]:not(._rounded) .content_bottom{bottom:-.5rem;right:-.5rem}:host[data-tui-host-size=xl][data-tui-host-bottom]:not(._rounded) .content_bottom{bottom:-.375rem;right:-.375rem}:host[data-tui-host-size='m'][data-tui-host-bottom]:not(._rounded) .content_bottom{bottom:-.25rem;right:-.25rem}:host[data-tui-host-size=xxl][data-tui-host-bottom]._rounded .content_bottom{bottom:.25rem;right:.25rem}:host[data-tui-host-size=xl][data-tui-host-bottom]._rounded .content_bottom{bottom:.125rem;right:.125rem}:host[data-tui-host-size='l'][data-tui-host-bottom]._rounded .content_bottom,:host[data-tui-host-size='m'][data-tui-host-bottom]._rounded .content_bottom{bottom:-.25rem;right:-.25rem}:host[data-tui-host-size=xxl] .content{height:2rem;min-width:2rem}:host[data-tui-host-size='l'] .content,:host[data-tui-host-size=xl] .content{height:1.5rem;min-width:1.5rem}:host[data-tui-host-size='m'] .content,:host[data-tui-host-size='s'] .content{height:1.25rem;min-width:1.25rem}:host[data-tui-host-size=xs] .content{height:1rem;min-width:1rem}"]
111
111
  })
112
112
  ], TuiBadgedContentComponent);
113
113
  return TuiBadgedContentComponent;
@@ -202,13 +202,13 @@ var TuiCalendarMonthComponent = /** @class */ (function () {
202
202
  TuiCalendarMonthComponent = __decorate([
203
203
  Component({
204
204
  selector: 'tui-calendar-month',
205
- template: "<tui-scrollbar *ngIf=\"isYearPickerShown; else monthSelect\" class=\"scrollbar\">\n <tui-primitive-year-picker\n [min]=\"min\"\n [max]=\"max\"\n [initialItem]=\"year\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n ></tui-primitive-year-picker>\n</tui-scrollbar>\n<ng-template #monthSelect>\n <tui-primitive-spin-button\n [focusable]=\"false\"\n [leftDisabled]=\"previousYearDisabled\"\n [rightDisabled]=\"nextYearDisabled\"\n (leftClick)=\"onPreviousYear()\"\n (rightClick)=\"onNextYear()\"\n >\n <button tuiLink [tuiFocusable]=\"false\" (click)=\"onYearClick()\">\n {{year.formattedYear}}\n </button>\n </tui-primitive-spin-button>\n <div class=\"row\">\n <ng-container\n *ngFor=\"let month of (months$ | async); let index = index\"\n >\n <div\n *tuiLet=\"getTuiMonth(index, year.year) as item\"\n class=\"cell\"\n [class.cell_today]=\"isItemToday(item)\"\n [class.cell_interval]=\"isItemInsideRange(item)\"\n [attr.data-tui-element-range]=\"getItemRange(item)\"\n [attr.data-tui-element-state]=\"getItemState(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n (tuiPressedChange)=\"onItemHovered($event, item)\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"item\">{{month}}</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n",
205
+ template: "<tui-scrollbar *ngIf=\"isYearPickerShown; else monthSelect\" class=\"t-scrollbar\">\n <tui-primitive-year-picker\n [min]=\"min\"\n [max]=\"max\"\n [initialItem]=\"year\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n ></tui-primitive-year-picker>\n</tui-scrollbar>\n<ng-template #monthSelect>\n <tui-primitive-spin-button\n [focusable]=\"false\"\n [leftDisabled]=\"previousYearDisabled\"\n [rightDisabled]=\"nextYearDisabled\"\n (leftClick)=\"onPreviousYear()\"\n (rightClick)=\"onNextYear()\"\n >\n <button tuiLink [tuiFocusable]=\"false\" (click)=\"onYearClick()\">\n {{year.formattedYear}}\n </button>\n </tui-primitive-spin-button>\n <div class=\"t-row\">\n <ng-container\n *ngFor=\"let month of (months$ | async); let index = index\"\n >\n <div\n *tuiLet=\"getTuiMonth(index, year.year) as item\"\n class=\"t-cell\"\n [class.t-cell_today]=\"isItemToday(item)\"\n [class.t-cell_interval]=\"isItemInsideRange(item)\"\n [attr.data-tui-element-range]=\"getItemRange(item)\"\n [attr.data-tui-element-state]=\"getItemState(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n (tuiPressedChange)=\"onItemHovered($event, item)\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"t-item\">{{month}}</div>\n </div>\n </ng-container>\n </div>\n</ng-template>\n",
206
206
  changeDetection: ChangeDetectionStrategy.OnPush,
207
- styles: [":host{font:var(--tui-font-text-m)}.row{position:relative;z-index:0;display:flex;justify-content:space-between;height:2.25rem}.item{position:relative;flex:1;line-height:2rem;border-radius:var(--tui-radius-m)}.item:after,.item:before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.cell{position:relative;display:flex;align-items:center;justify-content:center;width:3.6875rem;text-align:center;outline:0;cursor:pointer;background-clip:content-box;box-sizing:border-box;border:2px solid transparent;box-sizing:content-box}.cell:before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.cell_today:after{position:absolute;left:50%;transform:translate(-50%,0);content:'';bottom:.3125rem;height:.125rem;width:.75rem;border-radius:.375rem;background-color:var(--tui-text-02)}.cell_interval:before{background:var(--tui-base-02)}:host._single .cell_interval:before{background:var(--tui-secondary-hover)}.cell_interval:not(:last-child):before{right:-3.6875rem}.cell_interval:last-child:first-child:before{right:0}.cell_interval:first-child>.item{border-top-left-radius:var(--tui-radius-m);border-bottom-left-radius:var(--tui-radius-m)}.cell_interval:last-child>.item{border-top-right-radius:var(--tui-radius-m);border-bottom-right-radius:var(--tui-radius-m)}.cell_interval>.item{border-radius:0}.cell[data-tui-element-range]:after{background-color:var(--tui-primary-text)}.cell[data-tui-element-range]>.item{color:var(--tui-primary-text)}.cell[data-tui-element-range]>.item:after,.cell[data-tui-element-range]>.item:before{background-color:var(--tui-primary)}.cell[data-tui-element-range][data-tui-element-state=hovered]>.item:after,.cell[data-tui-element-range][data-tui-element-state=hovered]>.item:before{background-color:var(--tui-primary-hover)}.cell[data-tui-element-range][data-tui-element-state=pressed]>.item:after,.cell[data-tui-element-range][data-tui-element-state=pressed]>.item:before{background-color:var(--tui-primary-active)}.cell[data-tui-element-range=end]>.item:before{left:.25rem}.cell[data-tui-element-range=end]>.item:after{left:-2rem;right:100%;transform:translateX(1.4375rem) scaleY(.6) scaleX(.4) rotate(45deg)}.cell[data-tui-element-range=start]>.item:before{right:.25rem}.cell[data-tui-element-range=start]>.item:after{left:100%;right:-2rem;transform:translateX(-1.4375rem) scaleY(.6) scaleX(.4) rotate(45deg)}.cell[data-tui-element-state=disabled]{pointer-events:none}.cell[data-tui-element-state=disabled]>.item{opacity:.36}.cell[data-tui-element-state=hovered]:hover:not([data-tui-element-range])>.item{background-color:var(--tui-secondary-hover)}.cell[data-tui-element-state=pressed]:hover:not([data-tui-element-range])>.item{background-color:var(--tui-secondary-active)}:host{display:block;height:13.625rem;width:15.75rem;padding:1.125rem;box-sizing:content-box}.row{flex-wrap:wrap;margin-top:1.4375rem}.cell:nth-child(n+5){margin-top:1.75rem}.cell_interval:nth-child(4n):before{right:0}.scrollbar{height:inherit;width:inherit}"]
207
+ styles: [":host{font:var(--tui-font-text-m)}.t-row{position:relative;z-index:0;display:flex;justify-content:space-between;height:2.25rem}.t-item{position:relative;flex:1;line-height:2rem;border-radius:var(--tui-radius-m)}.t-item:after,.t-item:before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;width:3.6875rem;text-align:center;outline:0;cursor:pointer;background-clip:content-box;box-sizing:border-box;border:2px solid transparent;box-sizing:content-box}.t-cell:before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;border-radius:var(--tui-radius-m)}.t-cell_today:after{position:absolute;left:50%;transform:translate(-50%,0);content:'';bottom:.3125rem;height:.125rem;width:.75rem;border-radius:.375rem;background-color:var(--tui-text-02)}.t-cell_interval:before{background:var(--tui-base-02)}:host._single .t-cell_interval:before{background:var(--tui-secondary-hover)}.t-cell_interval:not(:last-child):before{right:-3.6875rem}.t-cell_interval:last-child:first-child:before{right:0}.t-cell_interval:first-child>.t-item{border-top-left-radius:var(--tui-radius-m);border-bottom-left-radius:var(--tui-radius-m)}.t-cell_interval:last-child>.t-item{border-top-right-radius:var(--tui-radius-m);border-bottom-right-radius:var(--tui-radius-m)}.t-cell_interval>.t-item{border-radius:0}.t-cell[data-tui-element-range]:after{background-color:var(--tui-primary-text)}.t-cell[data-tui-element-range]>.t-item{color:var(--tui-primary-text)}.t-cell[data-tui-element-range]>.t-item:after,.t-cell[data-tui-element-range]>.t-item:before{background-color:var(--tui-primary)}.t-cell[data-tui-element-range][data-tui-element-state=hovered]>.t-item:after,.t-cell[data-tui-element-range][data-tui-element-state=hovered]>.t-item:before{background-color:var(--tui-primary-hover)}.t-cell[data-tui-element-range][data-tui-element-state=pressed]>.t-item:after,.t-cell[data-tui-element-range][data-tui-element-state=pressed]>.t-item:before{background-color:var(--tui-primary-active)}.t-cell[data-tui-element-range=end]>.t-item:before{left:.25rem}.t-cell[data-tui-element-range=end]>.t-item:after{left:-2rem;right:100%;transform:translateX(1.4375rem) scaleY(.6) scaleX(.4) rotate(45deg)}.t-cell[data-tui-element-range=start]>.t-item:before{right:.25rem}.t-cell[data-tui-element-range=start]>.t-item:after{left:100%;right:-2rem;transform:translateX(-1.4375rem) scaleY(.6) scaleX(.4) rotate(45deg)}.t-cell[data-tui-element-state=disabled]{pointer-events:none}.t-cell[data-tui-element-state=disabled]>.t-item{opacity:.36}.t-cell[data-tui-element-state=hovered]:hover:not([data-tui-element-range])>.t-item{background-color:var(--tui-secondary-hover)}.t-cell[data-tui-element-state=pressed]:hover:not([data-tui-element-range])>.t-item{background-color:var(--tui-secondary-active)}:host{display:block;height:13.625rem;width:15.75rem;padding:1.125rem;box-sizing:content-box}.t-row{flex-wrap:wrap;margin-top:1.4375rem}.t-cell:nth-child(n+5){margin-top:1.75rem}.t-cell_interval:nth-child(4n):before{right:0}.t-scrollbar{height:inherit;width:inherit}"]
208
208
  }),
209
209
  __param(0, Inject(TUI_CALENDAR_MONTHS))
210
210
  ], TuiCalendarMonthComponent);
211
211
  return TuiCalendarMonthComponent;
212
212
  }());
213
213
  export { TuiCalendarMonthComponent };
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbW9udGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2NhbGVuZGFyLW1vbnRoLyIsInNvdXJjZXMiOlsiY2FsZW5kYXItbW9udGguY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsWUFBWSxFQUNaLGFBQWEsRUFDYixZQUFZLEVBRVosTUFBTSxFQUNOLGNBQWMsRUFDZCxRQUFRLEVBQ1IsYUFBYSxFQUNiLE9BQU8sR0FFVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWhDLElBQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztBQUVwQyxXQUFXO0FBT1g7SUFzQ0ksbUNBQzBDLE9BQXNDO1FBQXRDLFlBQU8sR0FBUCxPQUFPLENBQStCO1FBcENoRixVQUFLLEdBQW9DLElBQUksQ0FBQztRQUk5QyxTQUFJLEdBQVksS0FBSyxDQUFDO1FBSXRCLHdCQUFtQixHQUdmLG9CQUFvQixDQUFDO1FBSXpCLFFBQUcsR0FBYSxhQUFhLENBQUM7UUFJOUIsUUFBRyxHQUFhLFlBQVksQ0FBQztRQUdwQixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUcxQyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUd4RCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVsRCxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFMUIsZ0JBQVcsR0FBb0IsSUFBSSxDQUFD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QUssRUFBRTtRQUNQLGNBQWMsRUFBRTsyREFDSztJQUl0QjtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTswRUFJUTtJQUl6QjtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTswREFDYTtJQUk5QjtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTswREFDWTtJQUc3QjtRQURDLE1BQU0sRUFBRTtpRUFDMEM7SUFHbkQ7UUFEQyxNQUFNLEVBQUU7d0VBQ3dEO0lBR2pFO1FBREMsTUFBTSxFQUFFO2lFQUN5QztJQVlsRDtRQURDLFdBQVcsQ0FBQyxlQUFlLENBQUM7NkRBTTVCO0lBa0tEO1FBREMsT0FBTzsyRkFXUDtJQTVOUSx5QkFBeUI7UUFOckMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLG9CQUFvQjtZQUM5Qiwra0RBQTZDO1lBRTdDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztTQUNsRCxDQUFDO1FBd0NPLFdBQUEsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7T0F2Q3ZCLHlCQUF5QixDQTZOckM7SUFBRCxnQ0FBQztDQUFBLEFBN05ELElBNk5DO1NBN05ZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgbnVsbGFibGVTYW1lLFxuICAgIFRVSV9GSVJTVF9EQVksXG4gICAgVFVJX0xBU1RfREFZLFxuICAgIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIFR1aURheSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlNb250aCxcbiAgICBUdWlNb250aFJhbmdlLFxuICAgIHR1aVB1cmUsXG4gICAgVHVpWWVhcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aUludGVyYWN0aXZlU3RhdGUsIFR1aVJhbmdlU3RhdGUsIFR1aVdpdGhPcHRpb25hbE1pbk1heH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlNb250aENvbnRleHR9IGZyb20gJ0B0YWlnYS11aS9raXQvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1RVSV9DQUxFTkRBUl9NT05USFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7VHVpQm9vbGVhbkhhbmRsZXJXaXRoQ29udGV4dH0gZnJvbSAnQHRhaWdhLXVpL2tpdC90eXBlcyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5jb25zdCBUT0RBWSA9IFR1aURheS5jdXJyZW50TG9jYWwoKTtcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWNhbGVuZGFyLW1vbnRoJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItbW9udGgudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXItbW9udGguc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlDYWxlbmRhck1vbnRoQ29tcG9uZW50IGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PFR1aU1vbnRoPiB7XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHZhbHVlOiBUdWlNb250aFJhbmdlIHwgVHVpTW9udGggfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB5ZWFyOiBUdWlZZWFyID0gVE9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXJXaXRoQ29udGV4dDxcbiAgICAgICAgVHVpTW9udGgsXG4gICAgICAgIFR1aU1vbnRoQ29udGV4dFxuICAgID4gPSBBTFdBWVNfRkFMU0VfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW46IFR1aU1vbnRoID0gVFVJX0ZJUlNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXg6IFR1aU1vbnRoID0gVFVJX0xBU1RfREFZO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgbW9udGhDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpTW9udGg+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBob3ZlcmVkSXRlbUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpTW9udGggfCBudWxsPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgeWVhckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpWWVhcj4oKTtcblxuICAgIGlzWWVhclBpY2tlclNob3duID0gZmFsc2U7XG5cbiAgICBob3ZlcmVkSXRlbTogVHVpTW9udGggfCBudWxsID0gbnVsbDtcbiAgICBwcmVzc2VkSXRlbTogVHVpTW9udGggfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRVSV9DQUxFTkRBUl9NT05USFMpIHJlYWRvbmx5IG1vbnRocyQ6IE9ic2VydmFibGU8cmVhZG9ubHkgc3RyaW5nW10+LFxuICAgICkge31cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX3NpbmdsZScpXG4gICAgZ2V0IGlzU2luZ2xlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy52YWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgKHRoaXMudmFsdWUgaW5zdGFuY2VvZiBUdWlNb250aCB8fCB0aGlzLnZhbHVlLmlzU2luZ2xlTW9udGgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IHByZXZpb3VzWWVhckRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy55ZWFyLnllYXJTYW1lT3JCZWZvcmUodGhpcy5taW4pO1xuICAgIH1cblxuICAgIGdldCBuZXh0WWVhckRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy55ZWFyLnllYXJTYW1lT3JBZnRlcih0aGlzLm1heCk7XG4gICAgfVxuXG4gICAgZ2V0SXRlbVN0YXRlKGl0ZW06IFR1aU1vbnRoKTogVHVpSW50ZXJhY3RpdmVTdGF0ZSB8IG51bGwge1xuICAgICAgICBjb25zdCB7ZGlzYWJsZWRJdGVtSGFuZGxlcldpdGhNaW5NYXgsIHByZXNzZWRJdGVtLCBob3ZlcmVkSXRlbX0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChkaXNhYmxlZEl0ZW1IYW5kbGVyV2l0aE1pbk1heChpdGVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIFR1aUludGVyYWN0aXZlU3RhdGUuRGlzYWJsZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJlc3NlZEl0ZW0gIT09IG51bGwgJiYgcHJlc3NlZEl0ZW0ubW9udGhTYW1lKGl0ZW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gVHVpSW50ZXJhY3RpdmVTdGF0ZS5QcmVzc2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhvdmVyZWRJdGVtICE9PSBudWxsICYmIGhvdmVyZWRJdGVtLm1vbnRoU2FtZShpdGVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIFR1aUludGVyYWN0aXZlU3RhdGUuSG92ZXJlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGdldEl0ZW1SYW5nZShpdGVtOiBUdWlNb250aCk6IFR1aVJhbmdlU3RhdGUgfCBudWxsIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBob3ZlcmVkSXRlbX0gPSB0aGlzO1xuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBUdWlNb250aCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1vbnRoU2FtZShpdGVtKSA/IFR1aVJhbmdlU3RhdGUuU2luZ2xlIDogbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRoZUZpcnN0T2ZSYW5nZSA9IHZhbHVlLmZyb20ubW9udGhTYW1lKGl0ZW0pICYmICF2YWx1ZS5pc1NpbmdsZU1vbnRoO1xuICAgICAgICBjb25zdCBob3ZlcmVkSXRlbUFmdGVyRnJvbSA9XG4gICAgICAgICAgICBob3ZlcmVkSXRlbSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgaG92ZXJlZEl0ZW0ubW9udGhBZnRlcih2YWx1ZS5mcm9tKSAmJlxuICAgICAgICAgICAgdmFsdWUuZnJvbS5tb250aFNhbWUoaXRlbSkgJiZcbiAgICAgICAgICAgIHZhbHVlLmlzU2luZ2xlTW9udGg7XG4gICAgICAgIGNvbnN0IGhvdmVyZWRJdGVtSXNDYW5kaWRhdFRvQmVGcm9tID1cbiAgICAgICAgICAgIGhvdmVyZWRJdGVtICE9PSBudWxsICYmXG4gICAgICAgICAgICBob3ZlcmVkSXRlbS5tb250aFNhbWUoaXRlbSkgJiZcbiAgICAgICAgICAgIGhvdmVyZWRJdGVtLm1vbnRoQmVmb3JlKHZhbHVlLmZyb20pICYmXG4gICAgICAgICAgICB2YWx1ZS5pc1NpbmdsZU1vbnRoO1xuXG4gICAgICAgIGlmICh0aGVGaXJzdE9mUmFuZ2UgfHwgaG92ZXJlZEl0ZW1BZnRlckZyb20gfHwgaG92ZXJlZEl0ZW1Jc0NhbmRpZGF0VG9CZUZyb20pIHtcbiAgICAgICAgICAgIHJldHVybiBUdWlSYW5nZVN0YXRlLlN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGhlTGFzdE9mUmFuZ2UgPSB2YWx1ZS50by5tb250aFNhbWUoaXRlbSkgJiYgIXZhbHVlLmlzU2luZ2xlTW9udGg7XG4gICAgICAgIGNvbnN0IGhvdmVyZWRJdGVtQmVmb3JlVG8gPSB2YWx1ZS50by5tb250aFNhbWUoaXRlbSkgJiYgIXZhbHVlLmlzU2luZ2xlTW9udGg7XG4gICAgICAgIGNvbnN0IGhvdmVyZWRJdGVtSXNDYW5kaWRhdFRvQmVUbyA9XG4gICAgICAgICAgICBob3ZlcmVkSXRlbSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgaG92ZXJlZEl0ZW0ubW9udGhTYW1lKGl0ZW0pICYmXG4gICAgICAgICAgICBob3ZlcmVkSXRlbS5tb250aEFmdGVyKHZhbHVlLmZyb20pICYmXG4gICAgICAgICAgICB2YWx1ZS5pc1NpbmdsZU1vbnRoO1xuXG4gICAgICAgIGlmICh0aGVMYXN0T2ZSYW5nZSB8fCBob3ZlcmVkSXRlbUJlZm9yZVRvIHx8IGhvdmVyZWRJdGVtSXNDYW5kaWRhdFRvQmVUbykge1xuICAgICAgICAgICAgcmV0dXJuIFR1aVJhbmdlU3RhdGUuRW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlLmlzU2luZ2xlTW9udGggJiYgdmFsdWUuZnJvbS5tb250aFNhbWUoaXRlbSlcbiAgICAgICAgICAgID8gVHVpUmFuZ2VTdGF0ZS5TaW5nbGVcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXRUdWlNb250aChtb250aE51bWJlcjogbnVtYmVyLCB5ZWFyTnVtYmVyOiBudW1iZXIpOiBUdWlNb250aCB7XG4gICAgICAgIHJldHVybiBuZXcgVHVpTW9udGgoeWVhck51bWJlciwgbW9udGhOdW1iZXIpO1xuICAgIH1cblxuICAgIGlzSXRlbVRvZGF5KGl0ZW06IFR1aU1vbnRoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBUT0RBWS5tb250aFNhbWUoaXRlbSk7XG4gICAgfVxuXG4gICAgaXNJdGVtSW5zaWRlUmFuZ2UobW9udGg6IFR1aU1vbnRoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZSwgaG92ZXJlZEl0ZW19ID0gdGhpcztcblxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgaW5zdGFuY2VvZiBUdWlNb250aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2YWx1ZS5pc1NpbmdsZU1vbnRoKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUuZnJvbS5tb250aFNhbWVPckJlZm9yZShtb250aCkgJiYgdmFsdWUudG8ubW9udGhBZnRlcihtb250aCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaG92ZXJlZEl0ZW0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJhbmdlID0gVHVpTW9udGhSYW5nZS5zb3J0KHZhbHVlLmZyb20sIGhvdmVyZWRJdGVtKTtcblxuICAgICAgICByZXR1cm4gcmFuZ2UuZnJvbS5tb250aFNhbWVPckJlZm9yZShtb250aCkgJiYgcmFuZ2UudG8ubW9udGhBZnRlcihtb250aCk7XG4gICAgfVxuXG4gICAgb25QaWNrZXJZZWFyQ2xpY2soeWVhcjogVHVpWWVhcikge1xuICAgICAgICB0aGlzLmlzWWVhclBpY2tlclNob3duID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHRoaXMueWVhci55ZWFyU2FtZSh5ZWFyKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy55ZWFyID0geWVhcjtcbiAgICAgICAgdGhpcy55ZWFyQ2hhbmdlLmVtaXQoeWVhcik7XG4gICAgfVxuXG4gICAgb25JdGVtQ2xpY2sobW9udGg6IFR1aU1vbnRoKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkSXRlbUhhbmRsZXJXaXRoTWluTWF4KG1vbnRoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tb250aENsaWNrLmVtaXQobW9udGgpO1xuICAgIH1cblxuICAgIG9uWWVhckNsaWNrKCkge1xuICAgICAgICB0aGlzLmlzWWVhclBpY2tlclNob3duID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbk5leHRZZWFyKCkge1xuICAgICAgICB0aGlzLnllYXIgPSB0aGlzLnllYXIuYXBwZW5kKHt5ZWFyOiAxfSk7XG4gICAgfVxuXG4gICAgb25QcmV2aW91c1llYXIoKSB7XG4gICAgICAgIHRoaXMueWVhciA9IHRoaXMueWVhci5hcHBlbmQoe3llYXI6IC0xfSk7XG4gICAgfVxuXG4gICAgb25JdGVtSG92ZXJlZChob3ZlcmVkOiBib29sZWFuLCBpdGVtOiBUdWlNb250aCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWRJdGVtKGhvdmVyZWQgPyBpdGVtIDogbnVsbCk7XG4gICAgfVxuXG4gICAgb25JdGVtUHJlc3NlZChwcmVzc2VkOiBib29sZWFuLCBpdGVtOiBUdWlNb250aCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXNzZWRJdGVtKHByZXNzZWQgPyBpdGVtIDogbnVsbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgZGlzYWJsZWRJdGVtSGFuZGxlcldpdGhNaW5NYXgoKTogVHVpQm9vbGVhbkhhbmRsZXI8VHVpTW9udGg+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlRGlzYWJsZWRJdGVtSGFuZGxlcldpdGhNaW5NYXgoXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkSXRlbUhhbmRsZXIsXG4gICAgICAgICAgICB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgdGhpcy5taW4sXG4gICAgICAgICAgICB0aGlzLm1heCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUhvdmVyZWRJdGVtKG1vbnRoOiBUdWlNb250aCB8IG51bGwpIHtcbiAgICAgICAgaWYgKG51bGxhYmxlU2FtZSh0aGlzLmhvdmVyZWRJdGVtLCBtb250aCwgKGEsIGIpID0+IGEubW9udGhTYW1lKGIpKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ob3ZlcmVkSXRlbSA9IG1vbnRoO1xuICAgICAgICB0aGlzLmhvdmVyZWRJdGVtQ2hhbmdlLmVtaXQobW9udGgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUHJlc3NlZEl0ZW0oaXRlbTogVHVpTW9udGggfCBudWxsKSB7XG4gICAgICAgIHRoaXMucHJlc3NlZEl0ZW0gPSBpdGVtO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVEaXNhYmxlZEl0ZW1IYW5kbGVyV2l0aE1pbk1heChcbiAgICAgICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXJXaXRoQ29udGV4dDxUdWlNb250aCwgVHVpTW9udGhDb250ZXh0PixcbiAgICAgICAgdmFsdWU6IFR1aU1vbnRoIHwgVHVpTW9udGhSYW5nZSB8IG51bGwsXG4gICAgICAgIG1pbjogVHVpTW9udGgsXG4gICAgICAgIG1heDogVHVpTW9udGgsXG4gICAgKTogVHVpQm9vbGVhbkhhbmRsZXI8VHVpTW9udGg+IHtcbiAgICAgICAgcmV0dXJuIGl0ZW0gPT5cbiAgICAgICAgICAgIGl0ZW0ubW9udGhCZWZvcmUobWluKSB8fFxuICAgICAgICAgICAgaXRlbS5tb250aEFmdGVyKG1heCkgfHxcbiAgICAgICAgICAgIGRpc2FibGVkSXRlbUhhbmRsZXIoaXRlbSwge3ZhbHVlfSk7XG4gICAgfVxufVxuIl19
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbW9udGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2NhbGVuZGFyLW1vbnRoLyIsInNvdXJjZXMiOlsiY2FsZW5kYXItbW9udGguY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsWUFBWSxFQUNaLGFBQWEsRUFDYixZQUFZLEVBRVosTUFBTSxFQUNOLGNBQWMsRUFDZCxRQUFRLEVBQ1IsYUFBYSxFQUNiLE9BQU8sR0FFVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWhDLElBQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztBQUVwQyxXQUFXO0FBT1g7SUFzQ0ksbUNBQzBDLE9BQXNDO1FBQXRDLFlBQU8sR0FBUCxPQUFPLENBQStCO1FBcENoRixVQUFLLEdBQW9DLElBQUksQ0FBQztRQUk5QyxTQUFJLEdBQVksS0FBSyxDQUFDO1FBSXRCLHdCQUFtQixHQUdmLG9CQUFvQixDQUFDO1FBSXpCLFFBQUcsR0FBYSxhQUFhLENBQUM7UUFJOUIsUUFBRyxHQUFhLFlBQVksQ0FBQztRQUdwQixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUcxQyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUd4RCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVsRCxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFMUIsZ0JBQVcsR0FBb0IsSUFBSSxDQUFD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QUssRUFBRTtRQUNQLGNBQWMsRUFBRTsyREFDSztJQUl0QjtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTswRUFJUTtJQUl6QjtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTswREFDYTtJQUk5QjtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTswREFDWTtJQUc3QjtRQURDLE1BQU0sRUFBRTtpRUFDMEM7SUFHbkQ7UUFEQyxNQUFNLEVBQUU7d0VBQ3dEO0lBR2pFO1FBREMsTUFBTSxFQUFFO2lFQUN5QztJQVlsRDtRQURDLFdBQVcsQ0FBQyxlQUFlLENBQUM7NkRBTTVCO0lBa0tEO1FBREMsT0FBTzsyRkFXUDtJQTVOUSx5QkFBeUI7UUFOckMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QiwybERBQTZDO1lBRTdDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztTQUNsRCxDQUFDO1FBd0NPLFdBQUEsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7T0F2Q3ZCLHlCQUF5QixDQTZOckM7SUFBRCxnQ0FBQztDQUFBLEFBN05ELElBNk5DO1NBN05ZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgbnVsbGFibGVTYW1lLFxuICAgIFRVSV9GSVJTVF9EQVksXG4gICAgVFVJX0xBU1RfREFZLFxuICAgIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIFR1aURheSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlNb250aCxcbiAgICBUdWlNb250aFJhbmdlLFxuICAgIHR1aVB1cmUsXG4gICAgVHVpWWVhcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aUludGVyYWN0aXZlU3RhdGUsIFR1aVJhbmdlU3RhdGUsIFR1aVdpdGhPcHRpb25hbE1pbk1heH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlNb250aENvbnRleHR9IGZyb20gJ0B0YWlnYS11aS9raXQvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1RVSV9DQUxFTkRBUl9NT05USFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7VHVpQm9vbGVhbkhhbmRsZXJXaXRoQ29udGV4dH0gZnJvbSAnQHRhaWdhLXVpL2tpdC90eXBlcyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5jb25zdCBUT0RBWSA9IFR1aURheS5jdXJyZW50TG9jYWwoKTtcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWNhbGVuZGFyLW1vbnRoJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItbW9udGgudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXItbW9udGguc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlDYWxlbmRhck1vbnRoQ29tcG9uZW50IGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PFR1aU1vbnRoPiB7XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHZhbHVlOiBUdWlNb250aFJhbmdlIHwgVHVpTW9udGggfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB5ZWFyOiBUdWlZZWFyID0gVE9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXJXaXRoQ29udGV4dDxcbiAgICAgICAgVHVpTW9udGgsXG4gICAgICAgIFR1aU1vbnRoQ29udGV4dFxuICAgID4gPSBBTFdBWVNfRkFMU0VfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW46IFR1aU1vbnRoID0gVFVJX0ZJUlNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXg6IFR1aU1vbnRoID0gVFVJX0xBU1RfREFZO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgbW9udGhDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpTW9udGg+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBob3ZlcmVkSXRlbUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpTW9udGggfCBudWxsPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgeWVhckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpWWVhcj4oKTtcblxuICAgIGlzWWVhclBpY2tlclNob3duID0gZmFsc2U7XG5cbiAgICBob3ZlcmVkSXRlbTogVHVpTW9udGggfCBudWxsID0gbnVsbDtcbiAgICBwcmVzc2VkSXRlbTogVHVpTW9udGggfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRVSV9DQUxFTkRBUl9NT05USFMpIHJlYWRvbmx5IG1vbnRocyQ6IE9ic2VydmFibGU8cmVhZG9ubHkgc3RyaW5nW10+LFxuICAgICkge31cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX3NpbmdsZScpXG4gICAgZ2V0IGlzU2luZ2xlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy52YWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgKHRoaXMudmFsdWUgaW5zdGFuY2VvZiBUdWlNb250aCB8fCB0aGlzLnZhbHVlLmlzU2luZ2xlTW9udGgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IHByZXZpb3VzWWVhckRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy55ZWFyLnllYXJTYW1lT3JCZWZvcmUodGhpcy5taW4pO1xuICAgIH1cblxuICAgIGdldCBuZXh0WWVhckRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy55ZWFyLnllYXJTYW1lT3JBZnRlcih0aGlzLm1heCk7XG4gICAgfVxuXG4gICAgZ2V0SXRlbVN0YXRlKGl0ZW06IFR1aU1vbnRoKTogVHVpSW50ZXJhY3RpdmVTdGF0ZSB8IG51bGwge1xuICAgICAgICBjb25zdCB7ZGlzYWJsZWRJdGVtSGFuZGxlcldpdGhNaW5NYXgsIHByZXNzZWRJdGVtLCBob3ZlcmVkSXRlbX0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChkaXNhYmxlZEl0ZW1IYW5kbGVyV2l0aE1pbk1heChpdGVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIFR1aUludGVyYWN0aXZlU3RhdGUuRGlzYWJsZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJlc3NlZEl0ZW0gIT09IG51bGwgJiYgcHJlc3NlZEl0ZW0ubW9udGhTYW1lKGl0ZW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gVHVpSW50ZXJhY3RpdmVTdGF0ZS5QcmVzc2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhvdmVyZWRJdGVtICE9PSBudWxsICYmIGhvdmVyZWRJdGVtLm1vbnRoU2FtZShpdGVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIFR1aUludGVyYWN0aXZlU3RhdGUuSG92ZXJlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGdldEl0ZW1SYW5nZShpdGVtOiBUdWlNb250aCk6IFR1aVJhbmdlU3RhdGUgfCBudWxsIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBob3ZlcmVkSXRlbX0gPSB0aGlzO1xuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBUdWlNb250aCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1vbnRoU2FtZShpdGVtKSA/IFR1aVJhbmdlU3RhdGUuU2luZ2xlIDogbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRoZUZpcnN0T2ZSYW5nZSA9IHZhbHVlLmZyb20ubW9udGhTYW1lKGl0ZW0pICYmICF2YWx1ZS5pc1NpbmdsZU1vbnRoO1xuICAgICAgICBjb25zdCBob3ZlcmVkSXRlbUFmdGVyRnJvbSA9XG4gICAgICAgICAgICBob3ZlcmVkSXRlbSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgaG92ZXJlZEl0ZW0ubW9udGhBZnRlcih2YWx1ZS5mcm9tKSAmJlxuICAgICAgICAgICAgdmFsdWUuZnJvbS5tb250aFNhbWUoaXRlbSkgJiZcbiAgICAgICAgICAgIHZhbHVlLmlzU2luZ2xlTW9udGg7XG4gICAgICAgIGNvbnN0IGhvdmVyZWRJdGVtSXNDYW5kaWRhdFRvQmVGcm9tID1cbiAgICAgICAgICAgIGhvdmVyZWRJdGVtICE9PSBudWxsICYmXG4gICAgICAgICAgICBob3ZlcmVkSXRlbS5tb250aFNhbWUoaXRlbSkgJiZcbiAgICAgICAgICAgIGhvdmVyZWRJdGVtLm1vbnRoQmVmb3JlKHZhbHVlLmZyb20pICYmXG4gICAgICAgICAgICB2YWx1ZS5pc1NpbmdsZU1vbnRoO1xuXG4gICAgICAgIGlmICh0aGVGaXJzdE9mUmFuZ2UgfHwgaG92ZXJlZEl0ZW1BZnRlckZyb20gfHwgaG92ZXJlZEl0ZW1Jc0NhbmRpZGF0VG9CZUZyb20pIHtcbiAgICAgICAgICAgIHJldHVybiBUdWlSYW5nZVN0YXRlLlN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGhlTGFzdE9mUmFuZ2UgPSB2YWx1ZS50by5tb250aFNhbWUoaXRlbSkgJiYgIXZhbHVlLmlzU2luZ2xlTW9udGg7XG4gICAgICAgIGNvbnN0IGhvdmVyZWRJdGVtQmVmb3JlVG8gPSB2YWx1ZS50by5tb250aFNhbWUoaXRlbSkgJiYgIXZhbHVlLmlzU2luZ2xlTW9udGg7XG4gICAgICAgIGNvbnN0IGhvdmVyZWRJdGVtSXNDYW5kaWRhdFRvQmVUbyA9XG4gICAgICAgICAgICBob3ZlcmVkSXRlbSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgaG92ZXJlZEl0ZW0ubW9udGhTYW1lKGl0ZW0pICYmXG4gICAgICAgICAgICBob3ZlcmVkSXRlbS5tb250aEFmdGVyKHZhbHVlLmZyb20pICYmXG4gICAgICAgICAgICB2YWx1ZS5pc1NpbmdsZU1vbnRoO1xuXG4gICAgICAgIGlmICh0aGVMYXN0T2ZSYW5nZSB8fCBob3ZlcmVkSXRlbUJlZm9yZVRvIHx8IGhvdmVyZWRJdGVtSXNDYW5kaWRhdFRvQmVUbykge1xuICAgICAgICAgICAgcmV0dXJuIFR1aVJhbmdlU3RhdGUuRW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlLmlzU2luZ2xlTW9udGggJiYgdmFsdWUuZnJvbS5tb250aFNhbWUoaXRlbSlcbiAgICAgICAgICAgID8gVHVpUmFuZ2VTdGF0ZS5TaW5nbGVcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXRUdWlNb250aChtb250aE51bWJlcjogbnVtYmVyLCB5ZWFyTnVtYmVyOiBudW1iZXIpOiBUdWlNb250aCB7XG4gICAgICAgIHJldHVybiBuZXcgVHVpTW9udGgoeWVhck51bWJlciwgbW9udGhOdW1iZXIpO1xuICAgIH1cblxuICAgIGlzSXRlbVRvZGF5KGl0ZW06IFR1aU1vbnRoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBUT0RBWS5tb250aFNhbWUoaXRlbSk7XG4gICAgfVxuXG4gICAgaXNJdGVtSW5zaWRlUmFuZ2UobW9udGg6IFR1aU1vbnRoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZSwgaG92ZXJlZEl0ZW19ID0gdGhpcztcblxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgaW5zdGFuY2VvZiBUdWlNb250aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2YWx1ZS5pc1NpbmdsZU1vbnRoKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUuZnJvbS5tb250aFNhbWVPckJlZm9yZShtb250aCkgJiYgdmFsdWUudG8ubW9udGhBZnRlcihtb250aCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaG92ZXJlZEl0ZW0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJhbmdlID0gVHVpTW9udGhSYW5nZS5zb3J0KHZhbHVlLmZyb20sIGhvdmVyZWRJdGVtKTtcblxuICAgICAgICByZXR1cm4gcmFuZ2UuZnJvbS5tb250aFNhbWVPckJlZm9yZShtb250aCkgJiYgcmFuZ2UudG8ubW9udGhBZnRlcihtb250aCk7XG4gICAgfVxuXG4gICAgb25QaWNrZXJZZWFyQ2xpY2soeWVhcjogVHVpWWVhcikge1xuICAgICAgICB0aGlzLmlzWWVhclBpY2tlclNob3duID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHRoaXMueWVhci55ZWFyU2FtZSh5ZWFyKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy55ZWFyID0geWVhcjtcbiAgICAgICAgdGhpcy55ZWFyQ2hhbmdlLmVtaXQoeWVhcik7XG4gICAgfVxuXG4gICAgb25JdGVtQ2xpY2sobW9udGg6IFR1aU1vbnRoKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkSXRlbUhhbmRsZXJXaXRoTWluTWF4KG1vbnRoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tb250aENsaWNrLmVtaXQobW9udGgpO1xuICAgIH1cblxuICAgIG9uWWVhckNsaWNrKCkge1xuICAgICAgICB0aGlzLmlzWWVhclBpY2tlclNob3duID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbk5leHRZZWFyKCkge1xuICAgICAgICB0aGlzLnllYXIgPSB0aGlzLnllYXIuYXBwZW5kKHt5ZWFyOiAxfSk7XG4gICAgfVxuXG4gICAgb25QcmV2aW91c1llYXIoKSB7XG4gICAgICAgIHRoaXMueWVhciA9IHRoaXMueWVhci5hcHBlbmQoe3llYXI6IC0xfSk7XG4gICAgfVxuXG4gICAgb25JdGVtSG92ZXJlZChob3ZlcmVkOiBib29sZWFuLCBpdGVtOiBUdWlNb250aCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWRJdGVtKGhvdmVyZWQgPyBpdGVtIDogbnVsbCk7XG4gICAgfVxuXG4gICAgb25JdGVtUHJlc3NlZChwcmVzc2VkOiBib29sZWFuLCBpdGVtOiBUdWlNb250aCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXNzZWRJdGVtKHByZXNzZWQgPyBpdGVtIDogbnVsbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgZGlzYWJsZWRJdGVtSGFuZGxlcldpdGhNaW5NYXgoKTogVHVpQm9vbGVhbkhhbmRsZXI8VHVpTW9udGg+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlRGlzYWJsZWRJdGVtSGFuZGxlcldpdGhNaW5NYXgoXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkSXRlbUhhbmRsZXIsXG4gICAgICAgICAgICB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgdGhpcy5taW4sXG4gICAgICAgICAgICB0aGlzLm1heCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUhvdmVyZWRJdGVtKG1vbnRoOiBUdWlNb250aCB8IG51bGwpIHtcbiAgICAgICAgaWYgKG51bGxhYmxlU2FtZSh0aGlzLmhvdmVyZWRJdGVtLCBtb250aCwgKGEsIGIpID0+IGEubW9udGhTYW1lKGIpKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ob3ZlcmVkSXRlbSA9IG1vbnRoO1xuICAgICAgICB0aGlzLmhvdmVyZWRJdGVtQ2hhbmdlLmVtaXQobW9udGgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUHJlc3NlZEl0ZW0oaXRlbTogVHVpTW9udGggfCBudWxsKSB7XG4gICAgICAgIHRoaXMucHJlc3NlZEl0ZW0gPSBpdGVtO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVEaXNhYmxlZEl0ZW1IYW5kbGVyV2l0aE1pbk1heChcbiAgICAgICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXJXaXRoQ29udGV4dDxUdWlNb250aCwgVHVpTW9udGhDb250ZXh0PixcbiAgICAgICAgdmFsdWU6IFR1aU1vbnRoIHwgVHVpTW9udGhSYW5nZSB8IG51bGwsXG4gICAgICAgIG1pbjogVHVpTW9udGgsXG4gICAgICAgIG1heDogVHVpTW9udGgsXG4gICAgKTogVHVpQm9vbGVhbkhhbmRsZXI8VHVpTW9udGg+IHtcbiAgICAgICAgcmV0dXJuIGl0ZW0gPT5cbiAgICAgICAgICAgIGl0ZW0ubW9udGhCZWZvcmUobWluKSB8fFxuICAgICAgICAgICAgaXRlbS5tb250aEFmdGVyKG1heCkgfHxcbiAgICAgICAgICAgIGRpc2FibGVkSXRlbUhhbmRsZXIoaXRlbSwge3ZhbHVlfSk7XG4gICAgfVxufVxuIl19
@@ -2,7 +2,7 @@ import { __decorate } from "tslib";
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { NgModule } from '@angular/core';
4
4
  import { TuiElementModule } from '@taiga-ui/cdk';
5
- import { TuiDataListModule, TuiLoaderModule } from '@taiga-ui/core';
5
+ import { TuiDataListDirective, TuiDataListModule, TuiLoaderModule } from '@taiga-ui/core';
6
6
  import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
7
7
  import { TuiDataListGroupWrapperComponent } from './data-list-group-wrapper.component';
8
8
  import { TuiDataListWrapperComponent } from './data-list-wrapper.component';
@@ -19,10 +19,14 @@ var TuiDataListWrapperModule = /** @class */ (function () {
19
19
  TuiLoaderModule,
20
20
  ],
21
21
  declarations: [TuiDataListWrapperComponent, TuiDataListGroupWrapperComponent],
22
- exports: [TuiDataListWrapperComponent, TuiDataListGroupWrapperComponent],
22
+ exports: [
23
+ TuiDataListWrapperComponent,
24
+ TuiDataListGroupWrapperComponent,
25
+ TuiDataListDirective,
26
+ ],
23
27
  })
24
28
  ], TuiDataListWrapperModule);
25
29
  return TuiDataListWrapperModule;
26
30
  }());
27
31
  export { TuiDataListWrapperModule };
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LXdyYXBwZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2RhdGEtbGlzdC13cmFwcGVyLyIsInNvdXJjZXMiOlsiZGF0YS1saXN0LXdyYXBwZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGVBQWUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBYTFFO0lBQUE7SUFBdUMsQ0FBQztJQUEzQix3QkFBd0I7UUFYcEMsUUFBUSxDQUFDO1lBQ04sT0FBTyxFQUFFO2dCQUNMLFlBQVk7Z0JBQ1osa0JBQWtCO2dCQUNsQixnQkFBZ0I7Z0JBQ2hCLGlCQUFpQjtnQkFDakIsZUFBZTthQUNsQjtZQUNELFlBQVksRUFBRSxDQUFDLDJCQUEyQixFQUFFLGdDQUFnQyxDQUFDO1lBQzdFLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixFQUFFLGdDQUFnQyxDQUFDO1NBQzNFLENBQUM7T0FDVyx3QkFBd0IsQ0FBRztJQUFELCtCQUFDO0NBQUEsQUFBeEMsSUFBd0M7U0FBM0Isd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpRWxlbWVudE1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aURhdGFMaXN0TW9kdWxlLCBUdWlMb2FkZXJNb2R1bGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7UG9seW1vcnBoZXVzTW9kdWxlfSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtUdWlEYXRhTGlzdEdyb3VwV3JhcHBlckNvbXBvbmVudH0gZnJvbSAnLi9kYXRhLWxpc3QtZ3JvdXAtd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHtUdWlEYXRhTGlzdFdyYXBwZXJDb21wb25lbnR9IGZyb20gJy4vZGF0YS1saXN0LXdyYXBwZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUG9seW1vcnBoZXVzTW9kdWxlLFxuICAgICAgICBUdWlFbGVtZW50TW9kdWxlLFxuICAgICAgICBUdWlEYXRhTGlzdE1vZHVsZSxcbiAgICAgICAgVHVpTG9hZGVyTW9kdWxlLFxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbVHVpRGF0YUxpc3RXcmFwcGVyQ29tcG9uZW50LCBUdWlEYXRhTGlzdEdyb3VwV3JhcHBlckNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW1R1aURhdGFMaXN0V3JhcHBlckNvbXBvbmVudCwgVHVpRGF0YUxpc3RHcm91cFdyYXBwZXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEYXRhTGlzdFdyYXBwZXJNb2R1bGUge31cbiJdfQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LXdyYXBwZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2RhdGEtbGlzdC13cmFwcGVyLyIsInNvdXJjZXMiOlsiZGF0YS1saXN0LXdyYXBwZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFDLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBaUIxRTtJQUFBO0lBQXVDLENBQUM7SUFBM0Isd0JBQXdCO1FBZnBDLFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRTtnQkFDTCxZQUFZO2dCQUNaLGtCQUFrQjtnQkFDbEIsZ0JBQWdCO2dCQUNoQixpQkFBaUI7Z0JBQ2pCLGVBQWU7YUFDbEI7WUFDRCxZQUFZLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxnQ0FBZ0MsQ0FBQztZQUM3RSxPQUFPLEVBQUU7Z0JBQ0wsMkJBQTJCO2dCQUMzQixnQ0FBZ0M7Z0JBQ2hDLG9CQUFvQjthQUN2QjtTQUNKLENBQUM7T0FDVyx3QkFBd0IsQ0FBRztJQUFELCtCQUFDO0NBQUEsQUFBeEMsSUFBd0M7U0FBM0Isd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpRWxlbWVudE1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aURhdGFMaXN0RGlyZWN0aXZlLCBUdWlEYXRhTGlzdE1vZHVsZSwgVHVpTG9hZGVyTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1BvbHltb3JwaGV1c01vZHVsZX0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7VHVpRGF0YUxpc3RHcm91cFdyYXBwZXJDb21wb25lbnR9IGZyb20gJy4vZGF0YS1saXN0LWdyb3VwLXdyYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7VHVpRGF0YUxpc3RXcmFwcGVyQ29tcG9uZW50fSBmcm9tICcuL2RhdGEtbGlzdC13cmFwcGVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFBvbHltb3JwaGV1c01vZHVsZSxcbiAgICAgICAgVHVpRWxlbWVudE1vZHVsZSxcbiAgICAgICAgVHVpRGF0YUxpc3RNb2R1bGUsXG4gICAgICAgIFR1aUxvYWRlck1vZHVsZSxcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1R1aURhdGFMaXN0V3JhcHBlckNvbXBvbmVudCwgVHVpRGF0YUxpc3RHcm91cFdyYXBwZXJDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgVHVpRGF0YUxpc3RXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBUdWlEYXRhTGlzdEdyb3VwV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgVHVpRGF0YUxpc3REaXJlY3RpdmUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRGF0YUxpc3RXcmFwcGVyTW9kdWxlIHt9XG4iXX0=
@@ -267,4 +267,4 @@ var TuiInputDateComponent = /** @class */ (function (_super) {
267
267
  return TuiInputDateComponent;
268
268
  }(AbstractTuiNullableControl));
269
269
  export { TuiInputDateComponent };
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS8iLCJzb3VyY2VzIjpbImlucHV0LWRhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osZUFBZSxFQUNmLGFBQWEsRUFDYiwyQkFBMkIsRUFDM0IsYUFBYSxFQUNiLFlBQVksRUFHWixNQUFNLEVBQ04sY0FBYyxFQUVkLFFBQVEsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsVUFBVSxFQUNWLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQiw4QkFBOEIsRUFDOUIseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQixxQkFBcUIsR0FDeEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUMsVUFBVSxFQUFFLGFBQWEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyx5Q0FBeUMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2xGLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsY0FBYyxFQUNkLG1CQUFtQixHQUN0QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hFLE9BQU8sRUFB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Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFR5cGUsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIEFMV0FZU19GQUxTRV9IQU5ETEVSLFxuICAgIERBVEVfRklMTEVSX0xFTkdUSCxcbiAgICBudWxsYWJsZVNhbWUsXG4gICAgVFVJX0RBVEVfRk9STUFULFxuICAgIFRVSV9GSVJTVF9EQVksXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFRVSV9JU19NT0JJTEUsXG4gICAgVFVJX0xBU1RfREFZLFxuICAgIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIFR1aURhdGVNb2RlLFxuICAgIFR1aURheSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTW9udGgsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBzaXplQmlnZ2VyLFxuICAgIFRVSV9ERUZBVUxUX01BUktFUl9IQU5ETEVSLFxuICAgIFRVSV9URVhURklFTERfU0laRSxcbiAgICBUdWlEaWFsb2dTZXJ2aWNlLFxuICAgIFR1aU1hcmtlckhhbmRsZXIsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgVHVpVGV4dE1hc2tPcHRpb25zLFxuICAgIFR1aVdpdGhPcHRpb25hbE1pbk1heCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlOYW1lZERheX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jbGFzc2VzJztcbmltcG9ydCB7RU1QVFlfTUFTSywgVFVJX0RBVEVfTUFTS30gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb25zdGFudHMnO1xuaW1wb3J0IHtMRUZUX0FMSUdORURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9wcm92aWRlcnMnO1xuaW1wb3J0IHtcbiAgICBUVUlfQ0FMRU5EQVJfREFUQV9TVFJFQU0sXG4gICAgVFVJX0RBVEVfVEVYVFMsXG4gICAgVFVJX01PQklMRV9DQUxFTkRBUixcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHt0dWlDcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVBpcGV9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvbWFzayc7XG5pbXBvcnQge1R1aVJlcGxheUNvbnRyb2xWYWx1ZUNoYW5nZXNGYWN0b3J5fSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb21wb25lbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtwbHVjaywgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIFRPRE86IHJlbW92ZSBpbiBpdnkgY29tcGlsYXRpb25cbmV4cG9ydCBjb25zdCBEQVRFX1NUUkVBTV9GQUNUT1JZID0gVHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3Rvcnk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LWRhdGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1kYXRlLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LWRhdGUuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dERhdGVDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfQ0FMRU5EQVJfREFUQV9TVFJFQU0sXG4gICAgICAgICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2VsZigpLCBOZ0NvbnRyb2xdXSxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IERBVEVfU1RSRUFNX0ZBQ1RPUlksXG4gICAgICAgIH0sXG4gICAgICAgIExFRlRfQUxJR05FRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0RGF0ZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VHVpRGF5PlxuICAgIGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PFR1aURheT4sIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW4gPSBUVUlfRklSU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IFRVSV9MQVNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWFya2VySGFuZGxlcjogVHVpTWFya2VySGFuZGxlciA9IFRVSV9ERUZBVUxUX01BUktFUl9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGl0ZW1zOiBSZWFkb25seUFycmF5PFR1aU5hbWVkRGF5PiA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRlZmF1bHRBY3RpdmVZZWFyTW9udGggPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKTtcblxuICAgIG9wZW4gPSBmYWxzZTtcbiAgICByZWFkb25seSBmaWxsZXIkID0gdGhpcy5kYXRlVGV4dHMkLnBpcGUocGx1Y2sodGhpcy5kYXRlRm9ybWF0KSk7XG5cbiAgICBwcml2YXRlIG1vbnRoOiBUdWlNb250aCB8IG51bGwgPSBudWxsO1xuXG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRNYXNrT3B0aW9uczogVHVpVGV4dE1hc2tPcHRpb25zID0ge1xuICAgICAgICBtYXNrOiBUVUlfREFURV9NQVNLLFxuICAgICAgICBwaXBlOiB0dWlDcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVBpcGUodGhpcyksXG4gICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChJbmplY3RvcikgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX01PQklMRSkgcHJpdmF0ZSByZWFkb25seSBpc01vYmlsZTogYm9vbGVhbixcbiAgICAgICAgQEluamVjdChUdWlEaWFsb2dTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IFR1aURpYWxvZ1NlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVFVJX01PQklMRV9DQUxFTkRBUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2JpbGVDYWxlbmRhcjogVHlwZTxhbnk+IHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1NJWkUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkU2l6ZTogVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9GT1JNQVQpIHJlYWRvbmx5IGRhdGVGb3JtYXQ6IFR1aURhdGVNb2RlLFxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX1RFWFRTKVxuICAgICAgICByZWFkb25seSBkYXRlVGV4dHMkOiBPYnNlcnZhYmxlPFJlY29yZDxUdWlEYXRlTW9kZSwgc3RyaW5nPj4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZCA/IHRoaXMudGV4dGZpZWxkLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnRleHRmaWVsZCAmJiB0aGlzLnRleHRmaWVsZC5mb2N1c2VkO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZE1vYmlsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgJiYgISF0aGlzLm1vYmlsZUNhbGVuZGFyO1xuICAgIH1cblxuICAgIGdldCBjYWxlbmRhckljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHNpemVCaWdnZXIodGhpcy50ZXh0ZmllbGRTaXplLnNpemUpXG4gICAgICAgICAgICA/ICd0dWlJY29uQ2FsZW5kYXJMYXJnZSdcbiAgICAgICAgICAgIDogJ3R1aUljb25DYWxlbmRhcic7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBuYXRpdmVWYWx1ZSwgYWN0aXZlSXRlbX0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChhY3RpdmVJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nKGFjdGl2ZUl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlID8gU3RyaW5nKHZhbHVlKSA6IG5hdGl2ZVZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZEFjdGl2ZVllYXJNb250aCgpOiBUdWlNb250aCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zWzBdICYmIHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5kYXlTYW1lKHRoaXMuaXRlbXNbMF0uZGF5KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXNbMF0uZGlzcGxheURheTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm1vbnRoIHx8IHRoaXMudmFsdWUgfHwgdGhpcy5kZWZhdWx0QWN0aXZlWWVhck1vbnRoO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50ID8gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgc2V0IG5hdGl2ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcHV0ZWREaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seSAmJiAhdGhpcy5jb21wdXRlZE1vYmlsZTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNYXNrKCk6IFR1aVRleHRNYXNrT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZUl0ZW0gPyBFTVBUWV9NQVNLIDogdGhpcy50ZXh0TWFza09wdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0IGFjdGl2ZUl0ZW0oKTogVHVpTmFtZWREYXkgfCBudWxsIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlfSA9IHRoaXM7XG5cbiAgICAgICAgcmV0dXJuICh2YWx1ZSAmJiB0aGlzLml0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmRheS5kYXlTYW1lKHZhbHVlKSkpIHx8IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0Q29tcHV0ZWRGaWxsZXIoZmlsbGVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtID8gJycgOiBmaWxsZXI7XG4gICAgfVxuXG4gICAgb25Nb2JpbGVDbGljaygpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1vYmlsZUNhbGVuZGFyKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2VcbiAgICAgICAgICAgIC5vcGVuPFR1aURheT4obmV3IFBvbHltb3JwaGV1c0NvbXBvbmVudCh0aGlzLm1vYmlsZUNhbGVuZGFyLCB0aGlzLmluamVjdG9yKSwge1xuICAgICAgICAgICAgICAgIHNpemU6ICdmdWxsc2NyZWVuJyxcbiAgICAgICAgICAgICAgICBjbG9zZWFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgc2luZ2xlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBtaW46IHRoaXMubWluLFxuICAgICAgICAgICAgICAgICAgICBtYXg6IHRoaXMubWF4LFxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiB0aGlzLmRpc2FibGVkSXRlbUhhbmRsZXIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBvbkNsaWNrKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICAgICAgICB2YWx1ZS5sZW5ndGggIT09IERBVEVfRklMTEVSX0xFTkdUSCA/IG51bGwgOiBUdWlEYXkubm9ybWFsaXplUGFyc2UodmFsdWUpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uRGF5Q2xpY2sodmFsdWU6IFR1aURheSkge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uTW9udGhDaGFuZ2UobW9udGg6IFR1aU1vbnRoKSB7XG4gICAgICAgIHRoaXMubW9udGggPSBtb250aDtcbiAgICB9XG5cbiAgICBvbk9wZW5DaGFuZ2Uob3BlbjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLm9wZW4gPSBvcGVuO1xuICAgIH1cblxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKCkge1xuICAgICAgICBzdXBlci5zZXREaXNhYmxlZFN0YXRlKCk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IFR1aURheSB8IG51bGwpIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB2YWx1ZSA/IHRoaXMuY29tcHV0ZWRWYWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB2YWx1ZUlkZW50aWNhbENvbXBhcmF0b3IoXG4gICAgICAgIG9sZFZhbHVlOiBUdWlEYXkgfCBudWxsLFxuICAgICAgICBuZXdWYWx1ZTogVHVpRGF5IHwgbnVsbCxcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIG51bGxhYmxlU2FtZShvbGRWYWx1ZSwgbmV3VmFsdWUsIChhLCBiKSA9PiBhLmRheVNhbWUoYikpO1xuICAgIH1cbn1cbiJdfQ==
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS8iLCJzb3VyY2VzIjpbImlucHV0LWRhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osZUFBZSxFQUNmLGFBQWEsRUFDYiwyQkFBMkIsRUFDM0IsYUFBYSxFQUNiLFlBQVksRUFHWixNQUFNLEVBQ04sY0FBYyxFQUVkLFFBQVEsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsVUFBVSxFQUNWLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQiw4QkFBOEIsRUFDOUIseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQixxQkFBcUIsR0FDeEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUMsVUFBVSxFQUFFLGFBQWEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyx5Q0FBeUMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2xGLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsY0FBYyxFQUNkLG1CQUFtQixHQUN0QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hFLE9BQU8sRUFB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Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFR5cGUsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIEFMV0FZU19GQUxTRV9IQU5ETEVSLFxuICAgIERBVEVfRklMTEVSX0xFTkdUSCxcbiAgICBudWxsYWJsZVNhbWUsXG4gICAgVFVJX0RBVEVfRk9STUFULFxuICAgIFRVSV9GSVJTVF9EQVksXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFRVSV9JU19NT0JJTEUsXG4gICAgVFVJX0xBU1RfREFZLFxuICAgIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIFR1aURhdGVNb2RlLFxuICAgIFR1aURheSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTW9udGgsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBzaXplQmlnZ2VyLFxuICAgIFRVSV9ERUZBVUxUX01BUktFUl9IQU5ETEVSLFxuICAgIFRVSV9URVhURklFTERfU0laRSxcbiAgICBUdWlEaWFsb2dTZXJ2aWNlLFxuICAgIFR1aU1hcmtlckhhbmRsZXIsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgVHVpVGV4dE1hc2tPcHRpb25zLFxuICAgIFR1aVdpdGhPcHRpb25hbE1pbk1heCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlOYW1lZERheX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jbGFzc2VzJztcbmltcG9ydCB7RU1QVFlfTUFTSywgVFVJX0RBVEVfTUFTS30gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb25zdGFudHMnO1xuaW1wb3J0IHtMRUZUX0FMSUdORURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9wcm92aWRlcnMnO1xuaW1wb3J0IHtcbiAgICBUVUlfQ0FMRU5EQVJfREFUQV9TVFJFQU0sXG4gICAgVFVJX0RBVEVfVEVYVFMsXG4gICAgVFVJX01PQklMRV9DQUxFTkRBUixcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHt0dWlDcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVBpcGV9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvbWFzayc7XG5pbXBvcnQge1R1aVJlcGxheUNvbnRyb2xWYWx1ZUNoYW5nZXNGYWN0b3J5fSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb21wb25lbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtwbHVjaywgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIFRPRE86IHJlbW92ZSBpbiBpdnkgY29tcGlsYXRpb25cbmV4cG9ydCBjb25zdCBEQVRFX1NUUkVBTV9GQUNUT1JZID0gVHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3Rvcnk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LWRhdGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1kYXRlLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LWRhdGUuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dERhdGVDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfQ0FMRU5EQVJfREFUQV9TVFJFQU0sXG4gICAgICAgICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2VsZigpLCBOZ0NvbnRyb2xdXSxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IERBVEVfU1RSRUFNX0ZBQ1RPUlksXG4gICAgICAgIH0sXG4gICAgICAgIExFRlRfQUxJR05FRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0RGF0ZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VHVpRGF5PlxuICAgIGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PFR1aURheT4sIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciB7XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbiA9IFRVSV9GSVJTVF9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4ID0gVFVJX0xBU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPFR1aURheT4gPSBBTFdBWVNfRkFMU0VfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXJrZXJIYW5kbGVyOiBUdWlNYXJrZXJIYW5kbGVyID0gVFVJX0RFRkFVTFRfTUFSS0VSX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8VHVpTmFtZWREYXk+ID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGVmYXVsdEFjdGl2ZVllYXJNb250aCA9IFR1aU1vbnRoLmN1cnJlbnRMb2NhbCgpO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuICAgIHJlYWRvbmx5IGZpbGxlciQgPSB0aGlzLmRhdGVUZXh0cyQucGlwZShwbHVjayh0aGlzLmRhdGVGb3JtYXQpKTtcblxuICAgIHByaXZhdGUgbW9udGg6IFR1aU1vbnRoIHwgbnVsbCA9IG51bGw7XG5cbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dE1hc2tPcHRpb25zOiBUdWlUZXh0TWFza09wdGlvbnMgPSB7XG4gICAgICAgIG1hc2s6IFRVSV9EQVRFX01BU0ssXG4gICAgICAgIHBpcGU6IHR1aUNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUGlwZSh0aGlzKSxcbiAgICAgICAgZ3VpZGU6IGZhbHNlLFxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KEluamVjdG9yKSBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQEluamVjdChUVUlfSVNfTU9CSUxFKSBwcml2YXRlIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KFR1aURpYWxvZ1NlcnZpY2UpIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZTogVHVpRGlhbG9nU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUVUlfTU9CSUxFX0NBTEVOREFSKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vYmlsZUNhbGVuZGFyOiBUeXBlPGFueT4gfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfU0laRSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRTaXplOiBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX0ZPUk1BVCkgcmVhZG9ubHkgZGF0ZUZvcm1hdDogVHVpRGF0ZU1vZGUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IGRhdGVUZXh0cyQ6IE9ic2VydmFibGU8UmVjb3JkPFR1aURhdGVNb2RlLCBzdHJpbmc+PixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkID8gdGhpcy50ZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudGV4dGZpZWxkICYmIHRoaXMudGV4dGZpZWxkLmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTW9iaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01vYmlsZSAmJiAhIXRoaXMubW9iaWxlQ2FsZW5kYXI7XG4gICAgfVxuXG4gICAgZ2V0IGNhbGVuZGFySWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc2l6ZUJpZ2dlcih0aGlzLnRleHRmaWVsZFNpemUuc2l6ZSlcbiAgICAgICAgICAgID8gJ3R1aUljb25DYWxlbmRhckxhcmdlJ1xuICAgICAgICAgICAgOiAndHVpSWNvbkNhbGVuZGFyJztcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB7dmFsdWUsIG5hdGl2ZVZhbHVlLCBhY3RpdmVJdGVtfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKGFjdGl2ZUl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcoYWN0aXZlSXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWUgPyBTdHJpbmcodmFsdWUpIDogbmF0aXZlVmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkQWN0aXZlWWVhck1vbnRoKCk6IFR1aU1vbnRoIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXNbMF0gJiYgdGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLmRheVNhbWUodGhpcy5pdGVtc1swXS5kYXkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pdGVtc1swXS5kaXNwbGF5RGF5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubW9udGggfHwgdGhpcy52YWx1ZSB8fCB0aGlzLmRlZmF1bHRBY3RpdmVZZWFyTW9udGg7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBzZXQgbmF0aXZlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGNhbk9wZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5jb21wdXRlZERpc2FibGVkICYmICF0aGlzLnJlYWRPbmx5ICYmICF0aGlzLmNvbXB1dGVkTW9iaWxlO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZE1hc2soKTogVHVpVGV4dE1hc2tPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlSXRlbSA/IEVNUFRZX01BU0sgOiB0aGlzLnRleHRNYXNrT3B0aW9ucztcbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlSXRlbSgpOiBUdWlOYW1lZERheSB8IG51bGwge1xuICAgICAgICBjb25zdCB7dmFsdWV9ID0gdGhpcztcblxuICAgICAgICByZXR1cm4gKHZhbHVlICYmIHRoaXMuaXRlbXMuZmluZChpdGVtID0+IGl0ZW0uZGF5LmRheVNhbWUodmFsdWUpKSkgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBnZXRDb21wdXRlZEZpbGxlcihmaWxsZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZUl0ZW0gPyAnJyA6IGZpbGxlcjtcbiAgICB9XG5cbiAgICBvbk1vYmlsZUNsaWNrKCkge1xuICAgICAgICBpZiAoIXRoaXMubW9iaWxlQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZVxuICAgICAgICAgICAgLm9wZW48VHVpRGF5PihuZXcgUG9seW1vcnBoZXVzQ29tcG9uZW50KHRoaXMubW9iaWxlQ2FsZW5kYXIsIHRoaXMuaW5qZWN0b3IpLCB7XG4gICAgICAgICAgICAgICAgc2l6ZTogJ2Z1bGxzY3JlZW4nLFxuICAgICAgICAgICAgICAgIGNsb3NlYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICBzaW5nbGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG1pbjogdGhpcy5taW4sXG4gICAgICAgICAgICAgICAgICAgIG1heDogdGhpcy5tYXgsXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IHRoaXMuZGlzYWJsZWRJdGVtSGFuZGxlcixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgICAgICAgIHZhbHVlLmxlbmd0aCAhPT0gREFURV9GSUxMRVJfTEVOR1RIID8gbnVsbCA6IFR1aURheS5ub3JtYWxpemVQYXJzZSh2YWx1ZSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25EYXlDbGljayh2YWx1ZTogVHVpRGF5KSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWQoaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgb25Nb250aENoYW5nZShtb250aDogVHVpTW9udGgpIHtcbiAgICAgICAgdGhpcy5tb250aCA9IG1vbnRoO1xuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoKSB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogVHVpRGF5IHwgbnVsbCkge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHZhbHVlID8gdGhpcy5jb21wdXRlZFZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHZhbHVlSWRlbnRpY2FsQ29tcGFyYXRvcihcbiAgICAgICAgb2xkVmFsdWU6IFR1aURheSB8IG51bGwsXG4gICAgICAgIG5ld1ZhbHVlOiBUdWlEYXkgfCBudWxsLFxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gbnVsbGFibGVTYW1lKG9sZFZhbHVlLCBuZXdWYWx1ZSwgKGEsIGIpID0+IGEuZGF5U2FtZShiKSk7XG4gICAgfVxufVxuIl19
@@ -194,6 +194,9 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
194
194
  TuiInputDateRangeComponent.prototype.onRangeChange = function (range) {
195
195
  this.toggle();
196
196
  this.focusInput();
197
+ if (!range) {
198
+ this.nativeValue = '';
199
+ }
197
200
  if (!nullableSame(this.value, range, function (a, b) { return a.daySame(b); })) {
198
201
  this.updateValue(range);
199
202
  }
@@ -347,4 +350,4 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
347
350
  return TuiInputDateRangeComponent;
348
351
  }(AbstractTuiNullableControl));
349
352
  export { TuiInputDateRangeComponent };
350
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1yYW5nZS8iLCJzb3VyY2VzIjpbImlucHV0LWRhdGUtcmFuZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILDBCQUEwQixFQUMxQixvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4QixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsYUFBYSxFQUNiLDJCQUEyQixFQUMzQixhQUFhLEVBQ2IsWUFBWSxFQUtaLFdBQVcsRUFDWCxjQUFjLEVBR2QsUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxVQUFVLEVBQ1YsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQiw4QkFBOEIsRUFDOUIsZ0NBQWdDLEVBQ2hDLHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIscUJBQXFCLEdBQ3hCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNILFVBQVUsRUFDViwyQkFBMkIsRUFDM0IsbUJBQW1CLEdBQ3RCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFDLHlDQUF5QyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUNILHdCQUF3QixFQUN4QixjQUFjLEVBQ2QsbUJB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LGsrREFBK0M7WUFFL0MsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSwyQkFBMkI7b0JBQ3BDLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLDRCQUEwQixFQUExQixDQUEwQixDQUFDO2lCQUM1RDtnQkFDRDtvQkFDSSxPQUFPLEVBQUUsd0JBQXdCO29CQUNqQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDL0MsVUFBVSxFQUFFLG9CQUFvQjtpQkFDbkM7Z0JBQ0QseUNBQXlDO2FBQzVDOztTQUNKLENBQUM7UUFvRE8sV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsSUFBSSxFQUFFLENBQUE7UUFDTixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUVqQixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ3pCLFdBQUEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ2hCLFdBQUEsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ3JCLFdBQUEsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFDeEIsV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFFM0IsV0FBQSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUUxQixXQUFBLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1FBRWxDLFdBQUEsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQ3ZCLFdBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO09BbkVsQiwwQkFBMEIsQ0FzVHRDO0lBQUQsaUNBQUM7Q0FBQSxBQXRURCxDQUNZLDBCQUEwQixHQXFUckM7U0F0VFksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgREFURV9GSUxMRVJfTEVOR1RILFxuICAgIERBVEVfUkFOR0VfRklMTEVSX0xFTkdUSCxcbiAgICBudWxsYWJsZVNhbWUsXG4gICAgUkFOR0VfU0VQQVJBVE9SX0NIQVIsXG4gICAgc2V0TmF0aXZlRm9jdXNlZCxcbiAgICBUVUlfREFURV9GT1JNQVQsXG4gICAgVFVJX0ZJUlNUX0RBWSxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVFVJX0lTX01PQklMRSxcbiAgICBUVUlfTEFTVF9EQVksXG4gICAgVHVpQm9vbGVhbkhhbmRsZXIsXG4gICAgVHVpRGF0ZU1vZGUsXG4gICAgVHVpRGF5LFxuICAgIFR1aURheUxpa2UsXG4gICAgVHVpRGF5UmFuZ2UsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU1hcHBlcixcbiAgICBUdWlNb250aCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIHNpemVCaWdnZXIsXG4gICAgVFVJX0RFRkFVTFRfTUFSS0VSX0hBTkRMRVIsXG4gICAgVFVJX1RFWFRGSUVMRF9FWEFNUExFX1RFWFQsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIFR1aURpYWxvZ1NlcnZpY2UsXG4gICAgVHVpTWFya2VySGFuZGxlcixcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpVGV4dGZpZWxkRXhhbXBsZVRleHREaXJlY3RpdmUsXG4gICAgVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICBUdWlUZXh0TWFza09wdGlvbnMsXG4gICAgVHVpV2l0aE9wdGlvbmFsTWluTWF4LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aURheVJhbmdlUGVyaW9kfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NsYXNzZXMnO1xuaW1wb3J0IHtcbiAgICBFTVBUWV9NQVNLLFxuICAgIE1BWF9EQVlfUkFOR0VfTEVOR1RIX01BUFBFUixcbiAgICBUVUlfREFURV9SQU5HRV9NQVNLLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbnN0YW50cyc7XG5pbXBvcnQge0xFRlRfQUxJR05FRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Byb3ZpZGVycyc7XG5pbXBvcnQge1xuICAgIFRVSV9DQUxFTkRBUl9EQVRBX1NUUkVBTSxcbiAgICBUVUlfREFURV9URVhUUyxcbiAgICBUVUlfTU9CSUxFX0NBTEVOREFSLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge3R1aUNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUmFuZ2VQaXBlfSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzL21hc2snO1xuaW1wb3J0IHtUdWlSZXBsYXlDb250cm9sVmFsdWVDaGFuZ2VzRmFjdG9yeX0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29tcG9uZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7cGx1Y2ssIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyBUT0RPOiByZW1vdmUgaW4gaXZ5IGNvbXBpbGF0aW9uXG5leHBvcnQgY29uc3QgUkFOR0VfU1RSRUFNX0ZBQ1RPUlkgPSBUdWlSZXBsYXlDb250cm9sVmFsdWVDaGFuZ2VzRmFjdG9yeTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtZGF0ZS1yYW5nZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWRhdGUtcmFuZ2UudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZGF0ZS1yYW5nZS5zdHlsZS5sZXNzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0RGF0ZVJhbmdlQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0NBTEVOREFSX0RBVEFfU1RSRUFNLFxuICAgICAgICAgICAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgbmV3IFNlbGYoKSwgTmdDb250cm9sXV0sXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBSQU5HRV9TVFJFQU1fRkFDVE9SWSxcbiAgICAgICAgfSxcbiAgICAgICAgTEVGVF9BTElHTkVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlUmFuZ2VDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sPFR1aURheVJhbmdlPlxuICAgIGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PFR1aURheT4sIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWFya2VySGFuZGxlcjogVHVpTWFya2VySGFuZGxlciA9IFRVSV9ERUZBVUxUX01BUktFUl9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRlZmF1bHRWaWV3ZWRNb250aCA9IFR1aU1vbnRoLmN1cnJlbnRMb2NhbCgpO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGl0ZW1zOiBSZWFkb25seUFycmF5PFR1aURheVJhbmdlUGVyaW9kPiA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbiA9IFRVSV9GSVJTVF9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4ID0gVFVJX0xBU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbkxlbmd0aDogVHVpRGF5TGlrZSB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heExlbmd0aDogVHVpRGF5TGlrZSB8IG51bGwgPSBudWxsO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgcmVhZG9ubHkgbWF4TGVuZ3RoTWFwcGVyOiBUdWlNYXBwZXI8VHVpRGF5LCBUdWlEYXk+ID0gTUFYX0RBWV9SQU5HRV9MRU5HVEhfTUFQUEVSO1xuICAgIHJlYWRvbmx5IGRhdGVGaWxsZXIkID0gdGhpcy5kYXRlVGV4dHMkLnBpcGUocGx1Y2sodGhpcy5kYXRlRm9ybWF0KSk7XG5cbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dE1hc2tPcHRpb25zOiBUdWlUZXh0TWFza09wdGlvbnMgPSB7XG4gICAgICAgIG1hc2s6IFRVSV9EQVRFX1JBTkdFX01BU0ssXG4gICAgICAgIHBpcGU6IHR1aUNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUmFuZ2VQaXBlKHRoaXMpLFxuICAgICAgICBndWlkZTogZmFsc2UsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoSW5qZWN0b3IpIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoVHVpRGlhbG9nU2VydmljZSkgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBUdWlEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRVSV9NT0JJTEVfQ0FMRU5EQVIpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbW9iaWxlQ2FsZW5kYXI6IFR5cGU8YW55PiB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemU6IFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9FWEFNUExFX1RFWFQpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkRXhhbXBsZVRleHQ6IFR1aVRleHRmaWVsZEV4YW1wbGVUZXh0RGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX0ZPUk1BVCkgcmVhZG9ubHkgZGF0ZUZvcm1hdDogVHVpRGF0ZU1vZGUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IGRhdGVUZXh0cyQ6IE9ic2VydmFibGU8UmVjb3JkPFR1aURhdGVNb2RlLCBzdHJpbmc+PixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkID8gdGhpcy50ZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudGV4dGZpZWxkICYmIHRoaXMudGV4dGZpZWxkLmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTW9iaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01vYmlsZSAmJiAhIXRoaXMubW9iaWxlQ2FsZW5kYXI7XG4gICAgfVxuXG4gICAgZ2V0IGNhbGVuZGFySWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc2l6ZUJpZ2dlcih0aGlzLnRleHRmaWVsZFNpemUuc2l6ZSlcbiAgICAgICAgICAgID8gJ3R1aUljb25DYWxlbmRhckxhcmdlJ1xuICAgICAgICAgICAgOiAndHVpSWNvbkNhbGVuZGFyJztcbiAgICB9XG5cbiAgICBnZXQgY2FuT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbXB1dGVkRGlzYWJsZWQgJiYgIXRoaXMucmVhZE9ubHkgJiYgIXRoaXMuY29tcHV0ZWRNb2JpbGU7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkRXhhbXBsZVRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMubGVuZ3RoID8gdGhpcy50ZXh0ZmllbGRFeGFtcGxlVGV4dC5leGFtcGxlVGV4dCA6ICcnO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZE1hc2soKTogVHVpVGV4dE1hc2tPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlUGVyaW9kID8gRU1QVFlfTUFTSyA6IHRoaXMudGV4dE1hc2tPcHRpb25zO1xuICAgIH1cblxuICAgIGdldCBhY3RpdmVQZXJpb2QoKTogVHVpRGF5UmFuZ2VQZXJpb2QgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaXRlbXMuZmluZChpdGVtID0+XG4gICAgICAgICAgICAgICAgbnVsbGFibGVTYW1lKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBpdGVtLnJhbmdlLFxuICAgICAgICAgICAgICAgICAgICAoYSwgYikgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGEuZnJvbS5kYXlTYW1lKGIuZnJvbS5kYXlMaW1pdCh0aGlzLm1pbiwgdGhpcy5tYXgpKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgYS50by5kYXlTYW1lKGIudG8uZGF5TGltaXQodGhpcy5taW4sIHRoaXMubWF4KSksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICkgfHwgbnVsbFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZSwgbmF0aXZlVmFsdWUsIGFjdGl2ZVBlcmlvZH0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChhY3RpdmVQZXJpb2QpIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcoYWN0aXZlUGVyaW9kKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZSA/IHZhbHVlLmZvcm1hdHRlZERheVJhbmdlIDogbmF0aXZlVmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGlubmVyUHNldWRvRm9jdXNlZCgpOiBib29sZWFuIHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLnBzZXVkb0ZvY3VzZWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vcGVuIHx8IHRoaXMuY29tcHV0ZWRGb2N1c2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50ID8gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgc2V0IG5hdGl2ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldENvbXB1dGVkUmFuZ2VGaWxsZXIoZGF0ZUZpbGxlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlUGVyaW9kID8gJycgOiB0aGlzLmdldERhdGVSYW5nZUZpbGxlcihkYXRlRmlsbGVyKTtcbiAgICB9XG5cbiAgICBvbk1vYmlsZUNsaWNrKCkge1xuICAgICAgICBpZiAoIXRoaXMubW9iaWxlQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZVxuICAgICAgICAgICAgLm9wZW48VHVpRGF5UmFuZ2U+KFxuICAgICAgICAgICAgICAgIG5ldyBQb2x5bW9ycGhldXNDb21wb25lbnQodGhpcy5tb2JpbGVDYWxlbmRhciwgdGhpcy5pbmplY3RvciksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBzaXplOiAnZnVsbHNjcmVlbicsXG4gICAgICAgICAgICAgICAgICAgIGNsb3NlYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpbmdsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW46IHRoaXMubWF4TGVuZ3RoTWFwcGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWluLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXhMZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXg6IHRoaXMubWF4TGVuZ3RoTWFwcGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWF4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXhMZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogdGhpcy5kaXNhYmxlZEl0ZW1IYW5kbGVyLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBvbkNsaWNrKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk9wZW5DaGFuZ2Uob3BlbjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLm9wZW4gPSBvcGVuO1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCAhPT0gREFURV9SQU5HRV9GSUxMRVJfTEVOR1RIKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IFR1aURheVJhbmdlLm5vcm1hbGl6ZVBhcnNlKHZhbHVlKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFxuICAgICAgICAgICAgIXRoaXMubWluTGVuZ3RoICYmICF0aGlzLm1heExlbmd0aFxuICAgICAgICAgICAgICAgID8gcGFyc2VkVmFsdWVcbiAgICAgICAgICAgICAgICA6IHRoaXMuY2xhbXBWYWx1ZShwYXJzZWRWYWx1ZSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25SYW5nZUNoYW5nZShyYW5nZTogVHVpRGF5UmFuZ2UpIHtcbiAgICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG5cbiAgICAgICAgaWYgKCFudWxsYWJsZVNhbWU8VHVpRGF5UmFuZ2U+KHRoaXMudmFsdWUsIHJhbmdlLCAoYSwgYikgPT4gYS5kYXlTYW1lKGIpKSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShyYW5nZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkl0ZW1TZWxlY3QoaXRlbTogc3RyaW5nIHwgVHVpRGF5UmFuZ2VQZXJpb2QpIHtcbiAgICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShpdGVtLnJhbmdlLmRheUxpbWl0KHRoaXMubWluLCB0aGlzLm1heCkpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hY3RpdmVQZXJpb2QgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWQoaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgb25QcmVzc2VkKHByZXNzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVQcmVzc2VkKHByZXNzZWQpO1xuICAgIH1cblxuICAgIG9uQWN0aXZlWm9uZShmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhZm9jdXNlZCAmJlxuICAgICAgICAgICAgIXRoaXMuaXRlbVNlbGVjdGVkICYmXG4gICAgICAgICAgICAodGhpcy5uYXRpdmVWYWx1ZS5sZW5ndGggPT09IERBVEVfRklMTEVSX0xFTkdUSCB8fFxuICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUubGVuZ3RoID09PVxuICAgICAgICAgICAgICAgICAgICBEQVRFX0ZJTExFUl9MRU5HVEggKyBSQU5HRV9TRVBBUkFUT1JfQ0hBUi5sZW5ndGgpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShUdWlEYXlSYW5nZS5ub3JtYWxpemVQYXJzZSh0aGlzLm5hdGl2ZVZhbHVlKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBUdWlEYXlSYW5nZSB8IG51bGwpIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB2YWx1ZSA/IHRoaXMuY29tcHV0ZWRWYWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGl0ZW1TZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gU3RyaW5nKGl0ZW0pID09PSB0aGlzLm5hdGl2ZVZhbHVlKSAhPT0gLTE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b2dnbGUoKSB7XG4gICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KHByZXZlbnRTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCwgdHJ1ZSwgcHJldmVudFNjcm9sbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNsYW1wVmFsdWUodmFsdWU6IFR1aURheVJhbmdlKTogVHVpRGF5UmFuZ2Uge1xuICAgICAgICBjb25zdCBjbGFtcGVkQm90dG9tID1cbiAgICAgICAgICAgIHRoaXMubWluTGVuZ3RoICYmIHZhbHVlLmZyb20uYXBwZW5kKHRoaXMubWluTGVuZ3RoKS5kYXlBZnRlcih2YWx1ZS50bylcbiAgICAgICAgICAgICAgICA/IG5ldyBUdWlEYXlSYW5nZShcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5mcm9tLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLmZyb20uYXBwZW5kKHRoaXMubWluTGVuZ3RoKS5hcHBlbmQoe2RheTogLTF9KSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IGF2YWlsYWJsZU1heCA9IHRoaXMubWF4TGVuZ3RoXG4gICAgICAgICAgICA/IGNsYW1wZWRCb3R0b20uZnJvbS5hcHBlbmQodGhpcy5tYXhMZW5ndGgpLmFwcGVuZCh7ZGF5OiAtMX0pXG4gICAgICAgICAgICA6IHRoaXMubWF4O1xuXG4gICAgICAgIHJldHVybiBjbGFtcGVkQm90dG9tLnRvLmRheUFmdGVyKGF2YWlsYWJsZU1heClcbiAgICAgICAgICAgID8gbmV3IFR1aURheVJhbmdlKGNsYW1wZWRCb3R0b20uZnJvbSwgYXZhaWxhYmxlTWF4KVxuICAgICAgICAgICAgOiBjbGFtcGVkQm90dG9tO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0ZVJhbmdlRmlsbGVyKGRhdGVGaWxsZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtkYXRlRmlsbGVyfSR7UkFOR0VfU0VQQVJBVE9SX0NIQVJ9JHtkYXRlRmlsbGVyfWA7XG4gICAgfVxufVxuIl19
353
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1yYW5nZS8iLCJzb3VyY2VzIjpbImlucHV0LWRhdGUtcmFuZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILDBCQUEwQixFQUMxQixvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4QixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsYUFBYSxFQUNiLDJCQUEyQixFQUMzQixhQUFhLEVBQ2IsWUFBWSxFQUtaLFdBQVcsRUFDWCxjQUFjLEVBR2QsUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxVQUFVLEVBQ1YsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQiw4QkFBOEIsRUFDOUIsZ0NBQWdDLEVBQ2hDLHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIscUJBQXFCLEdBQ3hCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNILFVBQVUsRUFDViwyQkFBMkIsRUFDM0IsbUJBQW1CLEdBQ3RCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFDLHlDQUF5QyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUNILHdCQUF3QixFQUN4QixjQUFjLEVBQ2QsbUJB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aW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgREFURV9GSUxMRVJfTEVOR1RILFxuICAgIERBVEVfUkFOR0VfRklMTEVSX0xFTkdUSCxcbiAgICBudWxsYWJsZVNhbWUsXG4gICAgUkFOR0VfU0VQQVJBVE9SX0NIQVIsXG4gICAgc2V0TmF0aXZlRm9jdXNlZCxcbiAgICBUVUlfREFURV9GT1JNQVQsXG4gICAgVFVJX0ZJUlNUX0RBWSxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVFVJX0lTX01PQklMRSxcbiAgICBUVUlfTEFTVF9EQVksXG4gICAgVHVpQm9vbGVhbkhhbmRsZXIsXG4gICAgVHVpRGF0ZU1vZGUsXG4gICAgVHVpRGF5LFxuICAgIFR1aURheUxpa2UsXG4gICAgVHVpRGF5UmFuZ2UsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU1hcHBlcixcbiAgICBUdWlNb250aCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIHNpemVCaWdnZXIsXG4gICAgVFVJX0RFRkFVTFRfTUFSS0VSX0hBTkRMRVIsXG4gICAgVFVJX1RFWFRGSUVMRF9FWEFNUExFX1RFWFQsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIFR1aURpYWxvZ1NlcnZpY2UsXG4gICAgVHVpTWFya2VySGFuZGxlcixcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpVGV4dGZpZWxkRXhhbXBsZVRleHREaXJlY3RpdmUsXG4gICAgVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICBUdWlUZXh0TWFza09wdGlvbnMsXG4gICAgVHVpV2l0aE9wdGlvbmFsTWluTWF4LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aURheVJhbmdlUGVyaW9kfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NsYXNzZXMnO1xuaW1wb3J0IHtcbiAgICBFTVBUWV9NQVNLLFxuICAgIE1BWF9EQVlfUkFOR0VfTEVOR1RIX01BUFBFUixcbiAgICBUVUlfREFURV9SQU5HRV9NQVNLLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbnN0YW50cyc7XG5pbXBvcnQge0xFRlRfQUxJR05FRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Byb3ZpZGVycyc7XG5pbXBvcnQge1xuICAgIFRVSV9DQUxFTkRBUl9EQVRBX1NUUkVBTSxcbiAgICBUVUlfREFURV9URVhUUyxcbiAgICBUVUlfTU9CSUxFX0NBTEVOREFSLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge3R1aUNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUmFuZ2VQaXBlfSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzL21hc2snO1xuaW1wb3J0IHtUdWlSZXBsYXlDb250cm9sVmFsdWVDaGFuZ2VzRmFjdG9yeX0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29tcG9uZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7cGx1Y2ssIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyBUT0RPOiByZW1vdmUgaW4gaXZ5IGNvbXBpbGF0aW9uXG5leHBvcnQgY29uc3QgUkFOR0VfU1RSRUFNX0ZBQ1RPUlkgPSBUdWlSZXBsYXlDb250cm9sVmFsdWVDaGFuZ2VzRmFjdG9yeTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtZGF0ZS1yYW5nZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWRhdGUtcmFuZ2UudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZGF0ZS1yYW5nZS5zdHlsZS5sZXNzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0RGF0ZVJhbmdlQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0NBTEVOREFSX0RBVEFfU1RSRUFNLFxuICAgICAgICAgICAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgbmV3IFNlbGYoKSwgTmdDb250cm9sXV0sXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBSQU5HRV9TVFJFQU1fRkFDVE9SWSxcbiAgICAgICAgfSxcbiAgICAgICAgTEVGVF9BTElHTkVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlUmFuZ2VDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sPFR1aURheVJhbmdlPlxuICAgIGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PFR1aURheT4sIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciB7XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPFR1aURheT4gPSBBTFdBWVNfRkFMU0VfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXJrZXJIYW5kbGVyOiBUdWlNYXJrZXJIYW5kbGVyID0gVFVJX0RFRkFVTFRfTUFSS0VSX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGVmYXVsdFZpZXdlZE1vbnRoID0gVHVpTW9udGguY3VycmVudExvY2FsKCk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8VHVpRGF5UmFuZ2VQZXJpb2Q+ID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluID0gVFVJX0ZJUlNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXggPSBUVUlfTEFTVF9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluTGVuZ3RoOiBUdWlEYXlMaWtlIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4TGVuZ3RoOiBUdWlEYXlMaWtlIHwgbnVsbCA9IG51bGw7XG5cbiAgICBvcGVuID0gZmFsc2U7XG5cbiAgICByZWFkb25seSBtYXhMZW5ndGhNYXBwZXI6IFR1aU1hcHBlcjxUdWlEYXksIFR1aURheT4gPSBNQVhfREFZX1JBTkdFX0xFTkdUSF9NQVBQRVI7XG4gICAgcmVhZG9ubHkgZGF0ZUZpbGxlciQgPSB0aGlzLmRhdGVUZXh0cyQucGlwZShwbHVjayh0aGlzLmRhdGVGb3JtYXQpKTtcblxuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0TWFza09wdGlvbnM6IFR1aVRleHRNYXNrT3B0aW9ucyA9IHtcbiAgICAgICAgbWFzazogVFVJX0RBVEVfUkFOR0VfTUFTSyxcbiAgICAgICAgcGlwZTogdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZERhdGVSYW5nZVBpcGUodGhpcyksXG4gICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChJbmplY3RvcikgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX01PQklMRSkgcHJpdmF0ZSByZWFkb25seSBpc01vYmlsZTogYm9vbGVhbixcbiAgICAgICAgQEluamVjdChUdWlEaWFsb2dTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IFR1aURpYWxvZ1NlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVFVJX01PQklMRV9DQUxFTkRBUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2JpbGVDYWxlbmRhcjogVHlwZTxhbnk+IHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1NJWkUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkU2l6ZTogVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0VYQU1QTEVfVEVYVClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRFeGFtcGxlVGV4dDogVHVpVGV4dGZpZWxkRXhhbXBsZVRleHREaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfRk9STUFUKSByZWFkb25seSBkYXRlRm9ybWF0OiBUdWlEYXRlTW9kZSxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgZGF0ZVRleHRzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8VHVpRGF0ZU1vZGUsIHN0cmluZz4+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQgPyB0aGlzLnRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50IDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXh0ZmllbGQgJiYgdGhpcy50ZXh0ZmllbGQuZm9jdXNlZDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlICYmICEhdGhpcy5tb2JpbGVDYWxlbmRhcjtcbiAgICB9XG5cbiAgICBnZXQgY2FsZW5kYXJJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBzaXplQmlnZ2VyKHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplKVxuICAgICAgICAgICAgPyAndHVpSWNvbkNhbGVuZGFyTGFyZ2UnXG4gICAgICAgICAgICA6ICd0dWlJY29uQ2FsZW5kYXInO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcHV0ZWREaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seSAmJiAhdGhpcy5jb21wdXRlZE1vYmlsZTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRFeGFtcGxlVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5sZW5ndGggPyB0aGlzLnRleHRmaWVsZEV4YW1wbGVUZXh0LmV4YW1wbGVUZXh0IDogJyc7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTWFzaygpOiBUdWlUZXh0TWFza09wdGlvbnMge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVQZXJpb2QgPyBFTVBUWV9NQVNLIDogdGhpcy50ZXh0TWFza09wdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0IGFjdGl2ZVBlcmlvZCgpOiBUdWlEYXlSYW5nZVBlcmlvZCB8IG51bGwge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5pdGVtcy5maW5kKGl0ZW0gPT5cbiAgICAgICAgICAgICAgICBudWxsYWJsZVNhbWUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ucmFuZ2UsXG4gICAgICAgICAgICAgICAgICAgIChhLCBiKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgYS5mcm9tLmRheVNhbWUoYi5mcm9tLmRheUxpbWl0KHRoaXMubWluLCB0aGlzLm1heCkpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBhLnRvLmRheVNhbWUoYi50by5kYXlMaW1pdCh0aGlzLm1pbiwgdGhpcy5tYXgpKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSB8fCBudWxsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBuYXRpdmVWYWx1ZSwgYWN0aXZlUGVyaW9kfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKGFjdGl2ZVBlcmlvZCkge1xuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhhY3RpdmVQZXJpb2QpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlID8gdmFsdWUuZm9ybWF0dGVkRGF5UmFuZ2UgOiBuYXRpdmVWYWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaW5uZXJQc2V1ZG9Gb2N1c2VkKCk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMucHNldWRvRm9jdXNlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wZW4gfHwgdGhpcy5jb21wdXRlZEZvY3VzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBzZXQgbmF0aXZlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0Q29tcHV0ZWRSYW5nZUZpbGxlcihkYXRlRmlsbGVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVQZXJpb2QgPyAnJyA6IHRoaXMuZ2V0RGF0ZVJhbmdlRmlsbGVyKGRhdGVGaWxsZXIpO1xuICAgIH1cblxuICAgIG9uTW9iaWxlQ2xpY2soKSB7XG4gICAgICAgIGlmICghdGhpcy5tb2JpbGVDYWxlbmRhcikge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlXG4gICAgICAgICAgICAub3BlbjxUdWlEYXlSYW5nZT4oXG4gICAgICAgICAgICAgICAgbmV3IFBvbHltb3JwaGV1c0NvbXBvbmVudCh0aGlzLm1vYmlsZUNhbGVuZGFyLCB0aGlzLmluamVjdG9yKSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHNpemU6ICdmdWxsc2NyZWVuJyxcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2luZ2xlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbjogdGhpcy5tYXhMZW5ndGhNYXBwZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5taW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1heExlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heDogdGhpcy5tYXhMZW5ndGhNYXBwZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1heExlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiB0aGlzLmRpc2FibGVkSXRlbUhhbmRsZXIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUubGVuZ3RoICE9PSBEQVRFX1JBTkdFX0ZJTExFUl9MRU5HVEgpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gVHVpRGF5UmFuZ2Uubm9ybWFsaXplUGFyc2UodmFsdWUpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICAgICAgICAhdGhpcy5taW5MZW5ndGggJiYgIXRoaXMubWF4TGVuZ3RoXG4gICAgICAgICAgICAgICAgPyBwYXJzZWRWYWx1ZVxuICAgICAgICAgICAgICAgIDogdGhpcy5jbGFtcFZhbHVlKHBhcnNlZFZhbHVlKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvblJhbmdlQ2hhbmdlKHJhbmdlOiBUdWlEYXlSYW5nZSB8IG51bGwpIHtcbiAgICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG5cbiAgICAgICAgaWYgKCFyYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFudWxsYWJsZVNhbWU8VHVpRGF5UmFuZ2U+KHRoaXMudmFsdWUsIHJhbmdlLCAoYSwgYikgPT4gYS5kYXlTYW1lKGIpKSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShyYW5nZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkl0ZW1TZWxlY3QoaXRlbTogc3RyaW5nIHwgVHVpRGF5UmFuZ2VQZXJpb2QpIHtcbiAgICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShpdGVtLnJhbmdlLmRheUxpbWl0KHRoaXMubWluLCB0aGlzLm1heCkpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hY3RpdmVQZXJpb2QgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWQoaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgb25QcmVzc2VkKHByZXNzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVQcmVzc2VkKHByZXNzZWQpO1xuICAgIH1cblxuICAgIG9uQWN0aXZlWm9uZShmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhZm9jdXNlZCAmJlxuICAgICAgICAgICAgIXRoaXMuaXRlbVNlbGVjdGVkICYmXG4gICAgICAgICAgICAodGhpcy5uYXRpdmVWYWx1ZS5sZW5ndGggPT09IERBVEVfRklMTEVSX0xFTkdUSCB8fFxuICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUubGVuZ3RoID09PVxuICAgICAgICAgICAgICAgICAgICBEQVRFX0ZJTExFUl9MRU5HVEggKyBSQU5HRV9TRVBBUkFUT1JfQ0hBUi5sZW5ndGgpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShUdWlEYXlSYW5nZS5ub3JtYWxpemVQYXJzZSh0aGlzLm5hdGl2ZVZhbHVlKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBUdWlEYXlSYW5nZSB8IG51bGwpIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB2YWx1ZSA/IHRoaXMuY29tcHV0ZWRWYWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGl0ZW1TZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gU3RyaW5nKGl0ZW0pID09PSB0aGlzLm5hdGl2ZVZhbHVlKSAhPT0gLTE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b2dnbGUoKSB7XG4gICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KHByZXZlbnRTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICBzZXROYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCwgdHJ1ZSwgcHJldmVudFNjcm9sbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNsYW1wVmFsdWUodmFsdWU6IFR1aURheVJhbmdlKTogVHVpRGF5UmFuZ2Uge1xuICAgICAgICBjb25zdCBjbGFtcGVkQm90dG9tID1cbiAgICAgICAgICAgIHRoaXMubWluTGVuZ3RoICYmIHZhbHVlLmZyb20uYXBwZW5kKHRoaXMubWluTGVuZ3RoKS5kYXlBZnRlcih2YWx1ZS50bylcbiAgICAgICAgICAgICAgICA/IG5ldyBUdWlEYXlSYW5nZShcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5mcm9tLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLmZyb20uYXBwZW5kKHRoaXMubWluTGVuZ3RoKS5hcHBlbmQoe2RheTogLTF9KSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IGF2YWlsYWJsZU1heCA9IHRoaXMubWF4TGVuZ3RoXG4gICAgICAgICAgICA/IGNsYW1wZWRCb3R0b20uZnJvbS5hcHBlbmQodGhpcy5tYXhMZW5ndGgpLmFwcGVuZCh7ZGF5OiAtMX0pXG4gICAgICAgICAgICA6IHRoaXMubWF4O1xuXG4gICAgICAgIHJldHVybiBjbGFtcGVkQm90dG9tLnRvLmRheUFmdGVyKGF2YWlsYWJsZU1heClcbiAgICAgICAgICAgID8gbmV3IFR1aURheVJhbmdlKGNsYW1wZWRCb3R0b20uZnJvbSwgYXZhaWxhYmxlTWF4KVxuICAgICAgICAgICAgOiBjbGFtcGVkQm90dG9tO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0ZVJhbmdlRmlsbGVyKGRhdGVGaWxsZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtkYXRlRmlsbGVyfSR7UkFOR0VfU0VQQVJBVE9SX0NIQVJ9JHtkYXRlRmlsbGVyfWA7XG4gICAgfVxufVxuIl19
@@ -300,4 +300,4 @@ var TuiInputDateTimeComponent = /** @class */ (function (_super) {
300
300
  return TuiInputDateTimeComponent;
301
301
  }(AbstractTuiControl));
302
302
  export { TuiInputDateTimeComponent };
303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1kYXRlLXRpbWUvIiwic291cmNlcyI6WyJpbnB1dC1kYXRlLXRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixLQUFLLEVBQ0wsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixlQUFlLEVBQ2YsYUFBYSxFQUNiLDJCQUEyQixFQUMzQixZQUFZLEVBR1osTUFBTSxFQUNOLGNBQWMsRUFFZCxRQUFRLEVBQ1IsT0FBTyxFQUNQLE9BQU8sR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsVUFBVSxFQUNWLGtCQUFrQixFQUNsQiw4QkFBOEIsRUFDOUIseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQixxQkFBcUIsR0FDeEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsbUJBQW1CLEVBQUUsYUFBYSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDM0UsT0FBTyxFQUFDLHlDQUF5QyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUNILHdCQUF3QixFQUN4QixjQUFjLEVBQ2QsY0FBYyxHQUNqQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDSCxrQ0FBa0MsRUFDbEMsaUJBQWlCLEdBQ3BCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFDLG1DQUFtQyxF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UUFFMUIsV0FBQSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDdkIsV0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7UUFFdEIsV0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7T0FoRGxCLHlCQUF5QixDQWlSckM7SUFBRCxnQ0FBQztDQUFBLEFBalJELENBQ1ksa0JBQWtCLEdBZ1I3QjtTQWpSWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlDb250cm9sLFxuICAgIEFMV0FZU19GQUxTRV9IQU5ETEVSLFxuICAgIGNsYW1wLFxuICAgIERBVEVfRklMTEVSX0xFTkdUSCxcbiAgICBudWxsYWJsZVNhbWUsXG4gICAgVFVJX0RBVEVfRk9STUFULFxuICAgIFRVSV9GSVJTVF9EQVksXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFRVSV9MQVNUX0RBWSxcbiAgICBUdWlCb29sZWFuSGFuZGxlcixcbiAgICBUdWlEYXRlTW9kZSxcbiAgICBUdWlEYXksXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU1vbnRoLFxuICAgIHR1aVB1cmUsXG4gICAgVHVpVGltZSxcbiAgICBUdWlUaW1lTW9kZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIHNpemVCaWdnZXIsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgIFR1aVRleHRNYXNrT3B0aW9ucyxcbiAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXgsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7REFURV9USU1FX1NFUEFSQVRPUiwgVFVJX0RBVEVfTUFTS30gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb25zdGFudHMnO1xuaW1wb3J0IHtMRUZUX0FMSUdORURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9wcm92aWRlcnMnO1xuaW1wb3J0IHtcbiAgICBUVUlfQ0FMRU5EQVJfREFUQV9TVFJFQU0sXG4gICAgVFVJX0RBVEVfVEVYVFMsXG4gICAgVFVJX1RJTUVfVEVYVFMsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7XG4gICAgdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZERhdGVUaW1lUGlwZSxcbiAgICB0dWlDcmVhdGVUaW1lTWFzayxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscy9tYXNrJztcbmltcG9ydCB7VHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3Rvcnl9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHBsdWNrfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIFRPRE86IHJlbW92ZSBpbiBpdnkgY29tcGlsYXRpb25cbmV4cG9ydCBjb25zdCBUSU1FX1NUUkVBTV9GQUNUT1JZID0gVHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3Rvcnk7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1kYXRlLXRpbWUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1kYXRlLXRpbWUudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZGF0ZS10aW1lLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXREYXRlVGltZUNvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9DQUxFTkRBUl9EQVRBX1NUUkVBTSxcbiAgICAgICAgICAgIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIG5ldyBTZWxmKCksIE5nQ29udHJvbF1dLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogVElNRV9TVFJFQU1fRkFDVE9SWSxcbiAgICAgICAgfSxcbiAgICAgICAgTEVGVF9BTElHTkVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlVGltZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPFtUdWlEYXkgfCBudWxsLCBUdWlUaW1lIHwgbnVsbF0+XG4gICAgaW1wbGVtZW50c1xuICAgICAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8VHVpRGF5IHwgW1R1aURheSwgVHVpVGltZV0+LFxuICAgICAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluID0gVFVJX0ZJUlNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXggPSBUVUlfTEFTVF9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5PiA9IEFMV0FZU19GQUxTRV9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRlZmF1bHRBY3RpdmVZZWFyTW9udGggPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB0aW1lTW9kZTogVHVpVGltZU1vZGUgPSAnSEg6TU0nO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuICAgIHJlYWRvbmx5IGZpbGxlciQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5kYXRlVGV4dHMkLnBpcGUocGx1Y2sodGhpcy5kYXRlRm9ybWF0KSksXG4gICAgICAgIHRoaXMudGltZVRleHRzJC5waXBlKHBsdWNrKHRoaXMudGltZU1vZGUpKSxcbiAgICBdKS5waXBlKG1hcChmaWxsZXJzID0+IHRoaXMuZ2V0RGF0ZVRpbWVTdHJpbmcoLi4uZmlsbGVycykpKTtcblxuICAgIHByaXZhdGUgbW9udGg6IFR1aU1vbnRoIHwgbnVsbCA9IG51bGw7XG5cbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemU6IFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfRk9STUFUKSByZWFkb25seSBkYXRlRm9ybWF0OiBUdWlEYXRlTW9kZSxcbiAgICAgICAgQEluamVjdChUVUlfVElNRV9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgdGltZVRleHRzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8VHVpVGltZU1vZGUsIHN0cmluZz4+LFxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX1RFWFRTKVxuICAgICAgICByZWFkb25seSBkYXRlVGV4dHMkOiBPYnNlcnZhYmxlPFJlY29yZDxUdWlEYXRlTW9kZSwgc3RyaW5nPj4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgZmlsbGVyTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBEQVRFX0ZJTExFUl9MRU5HVEggKyBEQVRFX1RJTUVfU0VQQVJBVE9SLmxlbmd0aCArIHRoaXMudGltZU1vZGUubGVuZ3RoO1xuICAgIH1cblxuICAgIGdldCB0ZXh0TWFza09wdGlvbnMoKTogVHVpVGV4dE1hc2tPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlTWFzayhcbiAgICAgICAgICAgIHRoaXMudmFsdWVbMF0sXG4gICAgICAgICAgICB0aGlzLmNhbGVuZGFyTWluRGF5LFxuICAgICAgICAgICAgdGhpcy5jYWxlbmRhck1heERheSxcbiAgICAgICAgICAgIHRoaXMudGltZU1vZGUsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQgPyB0aGlzLnRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50IDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXh0ZmllbGQgJiYgdGhpcy50ZXh0ZmllbGQuZm9jdXNlZDtcbiAgICB9XG5cbiAgICBnZXQgY2FsZW5kYXJJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBzaXplQmlnZ2VyKHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplKVxuICAgICAgICAgICAgPyAndHVpSWNvbkNhbGVuZGFyTGFyZ2UnXG4gICAgICAgICAgICA6ICd0dWlJY29uQ2FsZW5kYXInO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZSwgbmF0aXZlVmFsdWUsIHRpbWVNb2RlfSA9IHRoaXM7XG4gICAgICAgIGNvbnN0IFtkYXRlLCB0aW1lXSA9IHZhbHVlO1xuICAgICAgICBjb25zdCBoYXNUaW1lSW5wdXRDaGFycyA9IG5hdGl2ZVZhbHVlLmxlbmd0aCA+IERBVEVfRklMTEVSX0xFTkdUSDtcblxuICAgICAgICBpZiAoIWRhdGUgfHwgKCF0aW1lICYmIGhhc1RpbWVJbnB1dENoYXJzKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5hdGl2ZVZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZVRpbWVTdHJpbmcoZGF0ZSwgdGltZSwgdGltZU1vZGUpO1xuICAgIH1cblxuICAgIGdldCBjYWxlbmRhclZhbHVlKCk6IFR1aURheSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVswXTtcbiAgICB9XG5cbiAgICBnZXQgY2FsZW5kYXJNaW5EYXkoKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy5taW4pID8gdGhpcy5taW5bMF0gOiB0aGlzLm1pbjtcbiAgICB9XG5cbiAgICBnZXQgY2FsZW5kYXJNYXhEYXkoKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy5tYXgpID8gdGhpcy5tYXhbMF0gOiB0aGlzLm1heDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRBY3RpdmVZZWFyTW9udGgoKTogVHVpTW9udGgge1xuICAgICAgICByZXR1cm4gdGhpcy5tb250aCB8fCB0aGlzLnZhbHVlWzBdIHx8IHRoaXMuZGVmYXVsdEFjdGl2ZVllYXJNb250aDtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA/IHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIHNldCBuYXRpdmVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgY2FuT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbXB1dGVkRGlzYWJsZWQgJiYgIXRoaXMucmVhZE9ubHk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPCBEQVRFX0ZJTExFUl9MRU5HVEgpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoW251bGwsIG51bGxdKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgW2RhdGUsIHRpbWVdID0gdmFsdWUuc3BsaXQoREFURV9USU1FX1NFUEFSQVRPUik7XG5cbiAgICAgICAgY29uc3QgcGFyc2VkRGF0ZSA9IFR1aURheS5ub3JtYWxpemVQYXJzZShkYXRlKTtcbiAgICAgICAgY29uc3QgcGFyc2VkVGltZSA9XG4gICAgICAgICAgICB0aW1lICYmIHRpbWUubGVuZ3RoID09PSB0aGlzLnRpbWVNb2RlLmxlbmd0aFxuICAgICAgICAgICAgICAgID8gdGhpcy5jbGFtcFRpbWUoVHVpVGltZS5mcm9tU3RyaW5nKHRpbWUpLCBwYXJzZWREYXRlKVxuICAgICAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShbcGFyc2VkRGF0ZSwgcGFyc2VkVGltZV0pO1xuICAgIH1cblxuICAgIG9uRGF5Q2xpY2soZGF5OiBUdWlEYXkpIHtcbiAgICAgICAgY29uc3QgbW9kaWZpZWRUaW1lID0gdGhpcy52YWx1ZVsxXSAmJiB0aGlzLmNsYW1wVGltZSh0aGlzLnZhbHVlWzFdLCBkYXkpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoW2RheSwgbW9kaWZpZWRUaW1lXSk7XG4gICAgICAgIHRoaXMudXBkYXRlTmF0aXZlVmFsdWUoZGF5KTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uTW9udGhDaGFuZ2UobW9udGg6IFR1aU1vbnRoKSB7XG4gICAgICAgIHRoaXMubW9udGggPSBtb250aDtcbiAgICB9XG5cbiAgICBvbk9wZW5DaGFuZ2Uob3BlbjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLm9wZW4gPSBvcGVuO1xuICAgIH1cblxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBmb2N1c2VkIHx8XG4gICAgICAgICAgICB0aGlzLnZhbHVlWzBdID09PSBudWxsIHx8XG4gICAgICAgICAgICB0aGlzLnZhbHVlWzFdICE9PSBudWxsIHx8XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlLmxlbmd0aCA8PSB0aGlzLmZpbGxlckxlbmd0aCArIERBVEVfVElNRV9TRVBBUkFUT1IubGVuZ3RoIHx8XG4gICAgICAgICAgICB0aGlzLnRpbWVNb2RlID09PSAnSEg6TU0nXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgWywgdGltZV0gPSB0aGlzLm5hdGl2ZVZhbHVlLnNwbGl0KERBVEVfVElNRV9TRVBBUkFUT1IpO1xuXG4gICAgICAgIGlmICghdGltZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyc2VkVGltZSA9IFR1aVRpbWUuZnJvbVN0cmluZyh0aW1lKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFt0aGlzLnZhbHVlWzBdLCBwYXJzZWRUaW1lXSk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5uYXRpdmVWYWx1ZS5lbmRzV2l0aCgnLicpIHx8IHRoaXMubmF0aXZlVmFsdWUuZW5kc1dpdGgoJzonKSkge1xuICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB0aGlzLm5hdGl2ZVZhbHVlLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZSgpIHtcbiAgICAgICAgc3VwZXIuc2V0RGlzYWJsZWRTdGF0ZSgpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBbVHVpRGF5IHwgbnVsbCwgVHVpVGltZSB8IG51bGxdIHwgbnVsbCkge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcblxuICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdmFsdWUgJiYgKHZhbHVlWzBdIHx8IHZhbHVlWzFdKSA/IHRoaXMuY29tcHV0ZWRWYWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IFtUdWlEYXkgfCBudWxsLCBUdWlUaW1lIHwgbnVsbF0ge1xuICAgICAgICByZXR1cm4gW251bGwsIG51bGxdO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB2YWx1ZUlkZW50aWNhbENvbXBhcmF0b3IoXG4gICAgICAgIG9sZFZhbHVlOiBbVHVpRGF5IHwgbnVsbCwgVHVpVGltZSB8IG51bGxdLFxuICAgICAgICBuZXdWYWx1ZTogW1R1aURheSB8IG51bGwsIFR1aVRpbWUgfCBudWxsXSxcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIG51bGxhYmxlU2FtZShvbGRWYWx1ZVswXSwgbmV3VmFsdWVbMF0sIChhLCBiKSA9PiBhLmRheVNhbWUoYikpICYmXG4gICAgICAgICAgICBudWxsYWJsZVNhbWUoXG4gICAgICAgICAgICAgICAgb2xkVmFsdWVbMV0sXG4gICAgICAgICAgICAgICAgbmV3VmFsdWVbMV0sXG4gICAgICAgICAgICAgICAgKGEsIGIpID0+IGEudG9TdHJpbmcoKSA9PT0gYi50b1N0cmluZygpLFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlTmF0aXZlVmFsdWUoZGF5OiBUdWlEYXkpIHtcbiAgICAgICAgY29uc3QgdGltZSA9IHRoaXMubmF0aXZlVmFsdWUuc3BsaXQoREFURV9USU1FX1NFUEFSQVRPUilbMV0gfHwgJyc7XG5cbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHRoaXMuZ2V0RGF0ZVRpbWVTdHJpbmcoZGF5LCB0aW1lKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsYW1wVGltZSh0aW1lOiBUdWlUaW1lLCBkYXk6IFR1aURheSk6IFR1aVRpbWUge1xuICAgICAgICBjb25zdCBtcyA9IHRpbWUudG9BYnNvbHV0ZU1pbGxpc2Vjb25kcygpO1xuICAgICAgICBjb25zdCBtaW4gPVxuICAgICAgICAgICAgQXJyYXkuaXNBcnJheSh0aGlzLm1pbikgJiYgZGF5LmRheVNhbWUodGhpcy5jYWxlbmRhck1pbkRheSlcbiAgICAgICAgICAgICAgICA/IHRoaXMubWluWzFdLnRvQWJzb2x1dGVNaWxsaXNlY29uZHMoKVxuICAgICAgICAgICAgICAgIDogLUluZmluaXR5O1xuICAgICAgICBjb25zdCBtYXggPVxuICAgICAgICAgICAgQXJyYXkuaXNBcnJheSh0aGlzLm1heCkgJiYgZGF5LmRheVNhbWUodGhpcy5jYWxlbmRhck1heERheSlcbiAgICAgICAgICAgICAgICA/IHRoaXMubWF4WzFdLnRvQWJzb2x1dGVNaWxsaXNlY29uZHMoKVxuICAgICAgICAgICAgICAgIDogSW5maW5pdHk7XG5cbiAgICAgICAgcmV0dXJuIFR1aVRpbWUuZnJvbUFic29sdXRlTWlsbGlzZWNvbmRzKGNsYW1wKG1zLCBtaW4sIG1heCkpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVNYXNrKFxuICAgICAgICBkYXk6IFR1aURheSB8IG51bGwsXG4gICAgICAgIG1pbjogVHVpRGF5LFxuICAgICAgICBtYXg6IFR1aURheSxcbiAgICAgICAgdGltZU1vZGU6IFR1aVRpbWVNb2RlLFxuICAgICk6IFR1aVRleHRNYXNrT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtYXNrOiBbLi4uVFVJX0RBVEVfTUFTSywgJywnLCAnICcsIC4uLnR1aUNyZWF0ZVRpbWVNYXNrKHRpbWVNb2RlKV0sXG4gICAgICAgICAgICBwaXBlOiB0dWlDcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVRpbWVQaXBlKHt2YWx1ZTogZGF5LCBtaW4sIG1heH0sIHRpbWVNb2RlKSxcbiAgICAgICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0RGF0ZVRpbWVTdHJpbmcoXG4gICAgICAgIGRhdGU6IFR1aURheSB8IHN0cmluZyxcbiAgICAgICAgdGltZTogVHVpVGltZSB8IHN0cmluZyB8IG51bGwsXG4gICAgICAgIHRpbWVNb2RlOiBUdWlUaW1lTW9kZSA9ICdISDpNTScsXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZGF0ZVN0cmluZyA9IGRhdGUgaW5zdGFuY2VvZiBUdWlEYXkgPyBkYXRlLnRvU3RyaW5nKCkgOiBkYXRlO1xuICAgICAgICBjb25zdCB0aW1lU3RyaW5nID0gdGltZSBpbnN0YW5jZW9mIFR1aVRpbWUgPyB0aW1lLnRvU3RyaW5nKHRpbWVNb2RlKSA6IHRpbWUgfHwgJyc7XG5cbiAgICAgICAgcmV0dXJuIGAke2RhdGVTdHJpbmd9JHtEQVRFX1RJTUVfU0VQQVJBVE9SfSR7dGltZVN0cmluZ31gO1xuICAgIH1cbn1cbiJdfQ==
303
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1kYXRlLXRpbWUvIiwic291cmNlcyI6WyJpbnB1dC1kYXRlLXRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixLQUFLLEVBQ0wsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixlQUFlLEVBQ2YsYUFBYSxFQUNiLDJCQUEyQixFQUMzQixZQUFZLEVBR1osTUFBTSxFQUNOLGNBQWMsRUFFZCxRQUFRLEVBQ1IsT0FBTyxFQUNQLE9BQU8sR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsVUFBVSxFQUNWLGtCQUFrQixFQUNsQiw4QkFBOEIsRUFDOUIseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQixxQkFBcUIsR0FDeEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsbUJBQW1CLEVBQUUsYUFBYSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDM0UsT0FBTyxFQUFDLHlDQUF5QyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUNILHdCQUF3QixFQUN4QixjQUFjLEVBQ2QsY0FBYyxHQUNqQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDSCxrQ0FBa0MsRUFDbEMsaUJBQWlCLEdBQ3BCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFDLG1DQUFtQyxF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UUFFMUIsV0FBQSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDdkIsV0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7UUFFdEIsV0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7T0EvQ2xCLHlCQUF5QixDQWdSckM7SUFBRCxnQ0FBQztDQUFBLEFBaFJELENBQ1ksa0JBQWtCLEdBK1E3QjtTQWhSWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlDb250cm9sLFxuICAgIEFMV0FZU19GQUxTRV9IQU5ETEVSLFxuICAgIGNsYW1wLFxuICAgIERBVEVfRklMTEVSX0xFTkdUSCxcbiAgICBudWxsYWJsZVNhbWUsXG4gICAgVFVJX0RBVEVfRk9STUFULFxuICAgIFRVSV9GSVJTVF9EQVksXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFRVSV9MQVNUX0RBWSxcbiAgICBUdWlCb29sZWFuSGFuZGxlcixcbiAgICBUdWlEYXRlTW9kZSxcbiAgICBUdWlEYXksXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU1vbnRoLFxuICAgIHR1aVB1cmUsXG4gICAgVHVpVGltZSxcbiAgICBUdWlUaW1lTW9kZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIHNpemVCaWdnZXIsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgIFR1aVRleHRNYXNrT3B0aW9ucyxcbiAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXgsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7REFURV9USU1FX1NFUEFSQVRPUiwgVFVJX0RBVEVfTUFTS30gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb25zdGFudHMnO1xuaW1wb3J0IHtMRUZUX0FMSUdORURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9wcm92aWRlcnMnO1xuaW1wb3J0IHtcbiAgICBUVUlfQ0FMRU5EQVJfREFUQV9TVFJFQU0sXG4gICAgVFVJX0RBVEVfVEVYVFMsXG4gICAgVFVJX1RJTUVfVEVYVFMsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7XG4gICAgdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZERhdGVUaW1lUGlwZSxcbiAgICB0dWlDcmVhdGVUaW1lTWFzayxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscy9tYXNrJztcbmltcG9ydCB7VHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3Rvcnl9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHBsdWNrfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIFRPRE86IHJlbW92ZSBpbiBpdnkgY29tcGlsYXRpb25cbmV4cG9ydCBjb25zdCBUSU1FX1NUUkVBTV9GQUNUT1JZID0gVHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3Rvcnk7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1kYXRlLXRpbWUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1kYXRlLXRpbWUudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZGF0ZS10aW1lLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXREYXRlVGltZUNvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9DQUxFTkRBUl9EQVRBX1NUUkVBTSxcbiAgICAgICAgICAgIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIG5ldyBTZWxmKCksIE5nQ29udHJvbF1dLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogVElNRV9TVFJFQU1fRkFDVE9SWSxcbiAgICAgICAgfSxcbiAgICAgICAgTEVGVF9BTElHTkVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlVGltZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPFtUdWlEYXkgfCBudWxsLCBUdWlUaW1lIHwgbnVsbF0+XG4gICAgaW1wbGVtZW50c1xuICAgICAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8VHVpRGF5IHwgW1R1aURheSwgVHVpVGltZV0+LFxuICAgICAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3Ige1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW4gPSBUVUlfRklSU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IFRVSV9MQVNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGVmYXVsdEFjdGl2ZVllYXJNb250aCA9IFR1aU1vbnRoLmN1cnJlbnRMb2NhbCgpO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHRpbWVNb2RlOiBUdWlUaW1lTW9kZSA9ICdISDpNTSc7XG5cbiAgICBvcGVuID0gZmFsc2U7XG4gICAgcmVhZG9ubHkgZmlsbGVyJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmRhdGVUZXh0cyQucGlwZShwbHVjayh0aGlzLmRhdGVGb3JtYXQpKSxcbiAgICAgICAgdGhpcy50aW1lVGV4dHMkLnBpcGUocGx1Y2sodGhpcy50aW1lTW9kZSkpLFxuICAgIF0pLnBpcGUobWFwKGZpbGxlcnMgPT4gdGhpcy5nZXREYXRlVGltZVN0cmluZyguLi5maWxsZXJzKSkpO1xuXG4gICAgcHJpdmF0ZSBtb250aDogVHVpTW9udGggfCBudWxsID0gbnVsbDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1NJWkUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkU2l6ZTogVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9GT1JNQVQpIHJlYWRvbmx5IGRhdGVGb3JtYXQ6IFR1aURhdGVNb2RlLFxuICAgICAgICBASW5qZWN0KFRVSV9USU1FX1RFWFRTKVxuICAgICAgICByZWFkb25seSB0aW1lVGV4dHMkOiBPYnNlcnZhYmxlPFJlY29yZDxUdWlUaW1lTW9kZSwgc3RyaW5nPj4sXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IGRhdGVUZXh0cyQ6IE9ic2VydmFibGU8UmVjb3JkPFR1aURhdGVNb2RlLCBzdHJpbmc+PixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBmaWxsZXJMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIERBVEVfRklMTEVSX0xFTkdUSCArIERBVEVfVElNRV9TRVBBUkFUT1IubGVuZ3RoICsgdGhpcy50aW1lTW9kZS5sZW5ndGg7XG4gICAgfVxuXG4gICAgZ2V0IHRleHRNYXNrT3B0aW9ucygpOiBUdWlUZXh0TWFza09wdGlvbnMge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVNYXNrKFxuICAgICAgICAgICAgdGhpcy52YWx1ZVswXSxcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJNaW5EYXksXG4gICAgICAgICAgICB0aGlzLmNhbGVuZGFyTWF4RGF5LFxuICAgICAgICAgICAgdGhpcy50aW1lTW9kZSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZCA/IHRoaXMudGV4dGZpZWxkLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnRleHRmaWVsZCAmJiB0aGlzLnRleHRmaWVsZC5mb2N1c2VkO1xuICAgIH1cblxuICAgIGdldCBjYWxlbmRhckljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHNpemVCaWdnZXIodGhpcy50ZXh0ZmllbGRTaXplLnNpemUpXG4gICAgICAgICAgICA/ICd0dWlJY29uQ2FsZW5kYXJMYXJnZSdcbiAgICAgICAgICAgIDogJ3R1aUljb25DYWxlbmRhcic7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBuYXRpdmVWYWx1ZSwgdGltZU1vZGV9ID0gdGhpcztcbiAgICAgICAgY29uc3QgW2RhdGUsIHRpbWVdID0gdmFsdWU7XG4gICAgICAgIGNvbnN0IGhhc1RpbWVJbnB1dENoYXJzID0gbmF0aXZlVmFsdWUubGVuZ3RoID4gREFURV9GSUxMRVJfTEVOR1RIO1xuXG4gICAgICAgIGlmICghZGF0ZSB8fCAoIXRpbWUgJiYgaGFzVGltZUlucHV0Q2hhcnMpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmF0aXZlVmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlVGltZVN0cmluZyhkYXRlLCB0aW1lLCB0aW1lTW9kZSk7XG4gICAgfVxuXG4gICAgZ2V0IGNhbGVuZGFyVmFsdWUoKTogVHVpRGF5IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlWzBdO1xuICAgIH1cblxuICAgIGdldCBjYWxlbmRhck1pbkRheSgpOiBUdWlEYXkge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLm1pbikgPyB0aGlzLm1pblswXSA6IHRoaXMubWluO1xuICAgIH1cblxuICAgIGdldCBjYWxlbmRhck1heERheSgpOiBUdWlEYXkge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLm1heCkgPyB0aGlzLm1heFswXSA6IHRoaXMubWF4O1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZEFjdGl2ZVllYXJNb250aCgpOiBUdWlNb250aCB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vbnRoIHx8IHRoaXMudmFsdWVbMF0gfHwgdGhpcy5kZWZhdWx0QWN0aXZlWWVhck1vbnRoO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50ID8gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgc2V0IG5hdGl2ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcHV0ZWREaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgb25DbGljaygpIHtcbiAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA8IERBVEVfRklMTEVSX0xFTkdUSCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShbbnVsbCwgbnVsbF0pO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbZGF0ZSwgdGltZV0gPSB2YWx1ZS5zcGxpdChEQVRFX1RJTUVfU0VQQVJBVE9SKTtcblxuICAgICAgICBjb25zdCBwYXJzZWREYXRlID0gVHVpRGF5Lm5vcm1hbGl6ZVBhcnNlKGRhdGUpO1xuICAgICAgICBjb25zdCBwYXJzZWRUaW1lID1cbiAgICAgICAgICAgIHRpbWUgJiYgdGltZS5sZW5ndGggPT09IHRoaXMudGltZU1vZGUubGVuZ3RoXG4gICAgICAgICAgICAgICAgPyB0aGlzLmNsYW1wVGltZShUdWlUaW1lLmZyb21TdHJpbmcodGltZSksIHBhcnNlZERhdGUpXG4gICAgICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFtwYXJzZWREYXRlLCBwYXJzZWRUaW1lXSk7XG4gICAgfVxuXG4gICAgb25EYXlDbGljayhkYXk6IFR1aURheSkge1xuICAgICAgICBjb25zdCBtb2RpZmllZFRpbWUgPSB0aGlzLnZhbHVlWzFdICYmIHRoaXMuY2xhbXBUaW1lKHRoaXMudmFsdWVbMV0sIGRheSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShbZGF5LCBtb2RpZmllZFRpbWVdKTtcbiAgICAgICAgdGhpcy51cGRhdGVOYXRpdmVWYWx1ZShkYXkpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWQoaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgb25Nb250aENoYW5nZShtb250aDogVHVpTW9udGgpIHtcbiAgICAgICAgdGhpcy5tb250aCA9IG1vbnRoO1xuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGZvY3VzZWQgfHxcbiAgICAgICAgICAgIHRoaXMudmFsdWVbMF0gPT09IG51bGwgfHxcbiAgICAgICAgICAgIHRoaXMudmFsdWVbMV0gIT09IG51bGwgfHxcbiAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUubGVuZ3RoIDw9IHRoaXMuZmlsbGVyTGVuZ3RoICsgREFURV9USU1FX1NFUEFSQVRPUi5sZW5ndGggfHxcbiAgICAgICAgICAgIHRoaXMudGltZU1vZGUgPT09ICdISDpNTSdcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbLCB0aW1lXSA9IHRoaXMubmF0aXZlVmFsdWUuc3BsaXQoREFURV9USU1FX1NFUEFSQVRPUik7XG5cbiAgICAgICAgaWYgKCF0aW1lKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJzZWRUaW1lID0gVHVpVGltZS5mcm9tU3RyaW5nKHRpbWUpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoW3RoaXMudmFsdWVbMF0sIHBhcnNlZFRpbWVdKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm5hdGl2ZVZhbHVlLmVuZHNXaXRoKCcuJykgfHwgdGhpcy5uYXRpdmVWYWx1ZS5lbmRzV2l0aCgnOicpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHRoaXMubmF0aXZlVmFsdWUuc2xpY2UoMCwgLTEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKCkge1xuICAgICAgICBzdXBlci5zZXREaXNhYmxlZFN0YXRlKCk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IFtUdWlEYXkgfCBudWxsLCBUdWlUaW1lIHwgbnVsbF0gfCBudWxsKSB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuXG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB2YWx1ZSAmJiAodmFsdWVbMF0gfHwgdmFsdWVbMV0pID8gdGhpcy5jb21wdXRlZFZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogW1R1aURheSB8IG51bGwsIFR1aVRpbWUgfCBudWxsXSB7XG4gICAgICAgIHJldHVybiBbbnVsbCwgbnVsbF07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHZhbHVlSWRlbnRpY2FsQ29tcGFyYXRvcihcbiAgICAgICAgb2xkVmFsdWU6IFtUdWlEYXkgfCBudWxsLCBUdWlUaW1lIHwgbnVsbF0sXG4gICAgICAgIG5ld1ZhbHVlOiBbVHVpRGF5IHwgbnVsbCwgVHVpVGltZSB8IG51bGxdLFxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgbnVsbGFibGVTYW1lKG9sZFZhbHVlWzBdLCBuZXdWYWx1ZVswXSwgKGEsIGIpID0+IGEuZGF5U2FtZShiKSkgJiZcbiAgICAgICAgICAgIG51bGxhYmxlU2FtZShcbiAgICAgICAgICAgICAgICBvbGRWYWx1ZVsxXSxcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZVsxXSxcbiAgICAgICAgICAgICAgICAoYSwgYikgPT4gYS50b1N0cmluZygpID09PSBiLnRvU3RyaW5nKCksXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVOYXRpdmVWYWx1ZShkYXk6IFR1aURheSkge1xuICAgICAgICBjb25zdCB0aW1lID0gdGhpcy5uYXRpdmVWYWx1ZS5zcGxpdChEQVRFX1RJTUVfU0VQQVJBVE9SKVsxXSB8fCAnJztcblxuICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdGhpcy5nZXREYXRlVGltZVN0cmluZyhkYXksIHRpbWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xhbXBUaW1lKHRpbWU6IFR1aVRpbWUsIGRheTogVHVpRGF5KTogVHVpVGltZSB7XG4gICAgICAgIGNvbnN0IG1zID0gdGltZS50b0Fic29sdXRlTWlsbGlzZWNvbmRzKCk7XG4gICAgICAgIGNvbnN0IG1pbiA9XG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KHRoaXMubWluKSAmJiBkYXkuZGF5U2FtZSh0aGlzLmNhbGVuZGFyTWluRGF5KVxuICAgICAgICAgICAgICAgID8gdGhpcy5taW5bMV0udG9BYnNvbHV0ZU1pbGxpc2Vjb25kcygpXG4gICAgICAgICAgICAgICAgOiAtSW5maW5pdHk7XG4gICAgICAgIGNvbnN0IG1heCA9XG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KHRoaXMubWF4KSAmJiBkYXkuZGF5U2FtZSh0aGlzLmNhbGVuZGFyTWF4RGF5KVxuICAgICAgICAgICAgICAgID8gdGhpcy5tYXhbMV0udG9BYnNvbHV0ZU1pbGxpc2Vjb25kcygpXG4gICAgICAgICAgICAgICAgOiBJbmZpbml0eTtcblxuICAgICAgICByZXR1cm4gVHVpVGltZS5mcm9tQWJzb2x1dGVNaWxsaXNlY29uZHMoY2xhbXAobXMsIG1pbiwgbWF4KSk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNhbGN1bGF0ZU1hc2soXG4gICAgICAgIGRheTogVHVpRGF5IHwgbnVsbCxcbiAgICAgICAgbWluOiBUdWlEYXksXG4gICAgICAgIG1heDogVHVpRGF5LFxuICAgICAgICB0aW1lTW9kZTogVHVpVGltZU1vZGUsXG4gICAgKTogVHVpVGV4dE1hc2tPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1hc2s6IFsuLi5UVUlfREFURV9NQVNLLCAnLCcsICcgJywgLi4udHVpQ3JlYXRlVGltZU1hc2sodGltZU1vZGUpXSxcbiAgICAgICAgICAgIHBpcGU6IHR1aUNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlVGltZVBpcGUoe3ZhbHVlOiBkYXksIG1pbiwgbWF4fSwgdGltZU1vZGUpLFxuICAgICAgICAgICAgZ3VpZGU6IGZhbHNlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXREYXRlVGltZVN0cmluZyhcbiAgICAgICAgZGF0ZTogVHVpRGF5IHwgc3RyaW5nLFxuICAgICAgICB0aW1lOiBUdWlUaW1lIHwgc3RyaW5nIHwgbnVsbCxcbiAgICAgICAgdGltZU1vZGU6IFR1aVRpbWVNb2RlID0gJ0hIOk1NJyxcbiAgICApOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBkYXRlU3RyaW5nID0gZGF0ZSBpbnN0YW5jZW9mIFR1aURheSA/IGRhdGUudG9TdHJpbmcoKSA6IGRhdGU7XG4gICAgICAgIGNvbnN0IHRpbWVTdHJpbmcgPSB0aW1lIGluc3RhbmNlb2YgVHVpVGltZSA/IHRpbWUudG9TdHJpbmcodGltZU1vZGUpIDogdGltZSB8fCAnJztcblxuICAgICAgICByZXR1cm4gYCR7ZGF0ZVN0cmluZ30ke0RBVEVfVElNRV9TRVBBUkFUT1J9JHt0aW1lU3RyaW5nfWA7XG4gICAgfVxufVxuIl19