@taiga-ui/kit 2.15.0 → 2.16.0-fixed

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 (222) hide show
  1. package/abstract/input-slider.d.ts +2 -1
  2. package/abstract/taiga-ui-kit-abstract.metadata.json +1 -1
  3. package/bundles/taiga-ui-kit-abstract.umd.js +4 -2
  4. package/bundles/taiga-ui-kit-abstract.umd.js.map +1 -1
  5. package/bundles/taiga-ui-kit-abstract.umd.min.js +2 -2
  6. package/bundles/taiga-ui-kit-abstract.umd.min.js.map +1 -1
  7. package/bundles/taiga-ui-kit-components-checkbox.umd.js +1 -1
  8. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js +1 -1
  9. package/bundles/taiga-ui-kit-components-checkbox.umd.min.js.map +1 -1
  10. package/bundles/taiga-ui-kit-components-input-count.umd.js +86 -30
  11. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  12. package/bundles/taiga-ui-kit-components-input-count.umd.min.js +2 -2
  13. package/bundles/taiga-ui-kit-components-input-count.umd.min.js.map +1 -1
  14. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  15. package/bundles/taiga-ui-kit-components-input-date-range.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-input-date-time.umd.min.js.map +1 -1
  18. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  19. package/bundles/taiga-ui-kit-components-input-date.umd.min.js.map +1 -1
  20. package/bundles/taiga-ui-kit-components-input-number.umd.js +28 -14
  21. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  22. package/bundles/taiga-ui-kit-components-input-number.umd.min.js +2 -2
  23. package/bundles/taiga-ui-kit-components-input-number.umd.min.js.map +1 -1
  24. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  25. package/bundles/taiga-ui-kit-components-input-phone.umd.min.js.map +1 -1
  26. package/bundles/taiga-ui-kit-components-input-range.umd.js +19 -13
  27. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  28. package/bundles/taiga-ui-kit-components-input-range.umd.min.js +2 -2
  29. package/bundles/taiga-ui-kit-components-input-range.umd.min.js.map +1 -1
  30. package/bundles/taiga-ui-kit-components-input-slider.umd.js +14 -8
  31. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  32. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js +1 -1
  33. package/bundles/taiga-ui-kit-components-input-slider.umd.min.js.map +1 -1
  34. package/bundles/taiga-ui-kit-components-input-tag.umd.js +1 -1
  35. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js +1 -1
  36. package/bundles/taiga-ui-kit-components-input-tag.umd.min.js.map +1 -1
  37. package/bundles/taiga-ui-kit-components-multi-select.umd.js +3 -2
  38. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  39. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js +1 -1
  40. package/bundles/taiga-ui-kit-components-multi-select.umd.min.js.map +1 -1
  41. package/bundles/taiga-ui-kit-components-progress.umd.js +325 -0
  42. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -0
  43. package/bundles/taiga-ui-kit-components-progress.umd.min.js +16 -0
  44. package/bundles/taiga-ui-kit-components-progress.umd.min.js.map +1 -0
  45. package/bundles/taiga-ui-kit-components-radio.umd.js +1 -1
  46. package/bundles/taiga-ui-kit-components-radio.umd.min.js +1 -1
  47. package/bundles/taiga-ui-kit-components-radio.umd.min.js.map +1 -1
  48. package/bundles/taiga-ui-kit-components-tabs.umd.js +15 -7
  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-tag.umd.js +1 -1
  53. package/bundles/taiga-ui-kit-components-tag.umd.min.js +1 -1
  54. package/bundles/taiga-ui-kit-components-tag.umd.min.js.map +1 -1
  55. package/bundles/taiga-ui-kit-components-text-area.umd.js +1 -1
  56. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  57. package/bundles/taiga-ui-kit-components-text-area.umd.min.js +1 -1
  58. package/bundles/taiga-ui-kit-components-text-area.umd.min.js.map +1 -1
  59. package/bundles/taiga-ui-kit-components-toggle.umd.js +1 -1
  60. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  61. package/bundles/taiga-ui-kit-components-toggle.umd.min.js +1 -1
  62. package/bundles/taiga-ui-kit-components-toggle.umd.min.js.map +1 -1
  63. package/bundles/taiga-ui-kit-components.umd.js +12 -4
  64. package/bundles/taiga-ui-kit-components.umd.js.map +1 -1
  65. package/bundles/taiga-ui-kit-components.umd.min.js +1 -1
  66. package/bundles/taiga-ui-kit-directives-dropdown-context.umd.js.map +1 -1
  67. package/bundles/taiga-ui-kit-directives-dropdown-context.umd.min.js.map +1 -1
  68. package/components/checkbox/taiga-ui-kit-components-checkbox.metadata.json +1 -1
  69. package/components/index.d.ts +1 -0
  70. package/components/input-count/index.d.ts +1 -0
  71. package/components/input-count/input-count-options.d.ts +19 -0
  72. package/components/input-count/input-count.component.d.ts +10 -3
  73. package/components/input-count/taiga-ui-kit-components-input-count.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/taiga-ui-kit-components-input-date-range.metadata.json +1 -1
  76. package/components/input-date-time/taiga-ui-kit-components-input-date-time.metadata.json +1 -1
  77. package/components/input-number/input-number.component.d.ts +4 -2
  78. package/components/input-number/taiga-ui-kit-components-input-number.metadata.json +1 -1
  79. package/components/input-phone/taiga-ui-kit-components-input-phone.metadata.json +1 -1
  80. package/components/input-range/input-range.component.d.ts +4 -2
  81. package/components/input-range/taiga-ui-kit-components-input-range.metadata.json +1 -1
  82. package/components/input-slider/input-slider.component.d.ts +4 -2
  83. package/components/input-slider/taiga-ui-kit-components-input-slider.metadata.json +1 -1
  84. package/components/input-tag/taiga-ui-kit-components-input-tag.metadata.json +1 -1
  85. package/components/multi-select/taiga-ui-kit-components-multi-select.metadata.json +1 -1
  86. package/components/progress/index.d.ts +4 -0
  87. package/components/progress/package.json +13 -0
  88. package/components/progress/pipes/progress-color-segments.pipe.d.ts +8 -0
  89. package/components/progress/progress-bar/progress-bar.component.d.ts +5 -0
  90. package/components/progress/progress-label/progress-label.component.d.ts +2 -0
  91. package/components/progress/progress.module.d.ts +2 -0
  92. package/components/progress/taiga-ui-kit-components-progress.d.ts +4 -0
  93. package/components/progress/taiga-ui-kit-components-progress.metadata.json +1 -0
  94. package/components/radio/taiga-ui-kit-components-radio.metadata.json +1 -1
  95. package/components/tabs/tab/tab.component.d.ts +5 -2
  96. package/components/tabs/taiga-ui-kit-components-tabs.metadata.json +1 -1
  97. package/components/tag/taiga-ui-kit-components-tag.metadata.json +1 -1
  98. package/components/taiga-ui-kit-components.metadata.json +1 -1
  99. package/components/text-area/taiga-ui-kit-components-text-area.metadata.json +1 -1
  100. package/components/toggle/taiga-ui-kit-components-toggle.metadata.json +1 -1
  101. package/directives/dropdown-context/taiga-ui-kit-directives-dropdown-context.metadata.json +1 -1
  102. package/esm2015/abstract/input-slider.js +5 -3
  103. package/esm2015/abstract/slider/slider.js +1 -1
  104. package/esm2015/components/checkbox/checkbox.component.js +1 -1
  105. package/esm2015/components/index.js +2 -1
  106. package/esm2015/components/input-count/index.js +2 -1
  107. package/esm2015/components/input-count/input-count-options.js +21 -0
  108. package/esm2015/components/input-count/input-count.component.js +49 -25
  109. package/esm2015/components/input-count/input-count.module.js +3 -1
  110. package/esm2015/components/input-date/input-date.component.js +1 -1
  111. package/esm2015/components/input-date-range/input-date-range.component.js +1 -1
  112. package/esm2015/components/input-date-time/input-date-time.component.js +1 -1
  113. package/esm2015/components/input-number/input-number.component.js +26 -16
  114. package/esm2015/components/input-phone/input-phone.component.js +1 -1
  115. package/esm2015/components/input-range/input-range.component.js +21 -15
  116. package/esm2015/components/input-slider/input-slider.component.js +16 -10
  117. package/esm2015/components/input-tag/input-tag.component.js +1 -1
  118. package/esm2015/components/multi-select/multi-select.component.js +4 -3
  119. package/esm2015/components/progress/index.js +5 -0
  120. package/esm2015/components/progress/pipes/progress-color-segments.pipe.js +34 -0
  121. package/esm2015/components/progress/progress-bar/progress-bar.component.js +27 -0
  122. package/esm2015/components/progress/progress-label/progress-label.component.js +14 -0
  123. package/esm2015/components/progress/progress.module.js +25 -0
  124. package/esm2015/components/progress/taiga-ui-kit-components-progress.js +5 -0
  125. package/esm2015/components/radio/radio.component.js +1 -1
  126. package/esm2015/components/tabs/tab/tab.component.js +18 -10
  127. package/esm2015/components/tag/tag.component.js +1 -1
  128. package/esm2015/components/text-area/text-area.component.js +2 -2
  129. package/esm2015/components/toggle/toggle.component.js +2 -2
  130. package/esm2015/directives/dropdown-context/dropdown-context.directive.js +1 -1
  131. package/esm5/abstract/input-slider.js +5 -3
  132. package/esm5/abstract/slider/slider.js +1 -1
  133. package/esm5/components/checkbox/checkbox.component.js +1 -1
  134. package/esm5/components/index.js +2 -1
  135. package/esm5/components/input-count/index.js +2 -1
  136. package/esm5/components/input-count/input-count-options.js +21 -0
  137. package/esm5/components/input-count/input-count.component.js +61 -29
  138. package/esm5/components/input-count/input-count.module.js +3 -1
  139. package/esm5/components/input-date/input-date.component.js +1 -1
  140. package/esm5/components/input-date-range/input-date-range.component.js +1 -1
  141. package/esm5/components/input-date-time/input-date-time.component.js +1 -1
  142. package/esm5/components/input-number/input-number.component.js +30 -16
  143. package/esm5/components/input-phone/input-phone.component.js +1 -1
  144. package/esm5/components/input-range/input-range.component.js +21 -15
  145. package/esm5/components/input-slider/input-slider.component.js +16 -10
  146. package/esm5/components/input-tag/input-tag.component.js +1 -1
  147. package/esm5/components/multi-select/multi-select.component.js +4 -3
  148. package/esm5/components/progress/index.js +5 -0
  149. package/esm5/components/progress/pipes/progress-color-segments.pipe.js +37 -0
  150. package/esm5/components/progress/progress-bar/progress-bar.component.js +28 -0
  151. package/esm5/components/progress/progress-label/progress-label.component.js +17 -0
  152. package/esm5/components/progress/progress.module.js +28 -0
  153. package/esm5/components/progress/taiga-ui-kit-components-progress.js +5 -0
  154. package/esm5/components/radio/radio.component.js +1 -1
  155. package/esm5/components/tabs/tab/tab.component.js +18 -10
  156. package/esm5/components/tag/tag.component.js +1 -1
  157. package/esm5/components/text-area/text-area.component.js +2 -2
  158. package/esm5/components/toggle/toggle.component.js +2 -2
  159. package/esm5/directives/dropdown-context/dropdown-context.directive.js +1 -1
  160. package/fesm2015/taiga-ui-kit-abstract.js +4 -2
  161. package/fesm2015/taiga-ui-kit-abstract.js.map +1 -1
  162. package/fesm2015/taiga-ui-kit-components-checkbox.js +1 -1
  163. package/fesm2015/taiga-ui-kit-components-input-count.js +71 -26
  164. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  165. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  166. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  167. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  168. package/fesm2015/taiga-ui-kit-components-input-number.js +25 -15
  169. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  170. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  171. package/fesm2015/taiga-ui-kit-components-input-range.js +20 -14
  172. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  173. package/fesm2015/taiga-ui-kit-components-input-slider.js +15 -9
  174. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  175. package/fesm2015/taiga-ui-kit-components-input-tag.js +1 -1
  176. package/fesm2015/taiga-ui-kit-components-multi-select.js +3 -2
  177. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  178. package/fesm2015/taiga-ui-kit-components-progress.js +93 -0
  179. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -0
  180. package/fesm2015/taiga-ui-kit-components-radio.js +1 -1
  181. package/fesm2015/taiga-ui-kit-components-tabs.js +16 -8
  182. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  183. package/fesm2015/taiga-ui-kit-components-tag.js +1 -1
  184. package/fesm2015/taiga-ui-kit-components-text-area.js +1 -1
  185. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  186. package/fesm2015/taiga-ui-kit-components-toggle.js +1 -1
  187. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  188. package/fesm2015/taiga-ui-kit-components.js +1 -0
  189. package/fesm2015/taiga-ui-kit-components.js.map +1 -1
  190. package/fesm2015/taiga-ui-kit-directives-dropdown-context.js.map +1 -1
  191. package/fesm5/taiga-ui-kit-abstract.js +4 -2
  192. package/fesm5/taiga-ui-kit-abstract.js.map +1 -1
  193. package/fesm5/taiga-ui-kit-components-checkbox.js +1 -1
  194. package/fesm5/taiga-ui-kit-components-input-count.js +83 -30
  195. package/fesm5/taiga-ui-kit-components-input-count.js.map +1 -1
  196. package/fesm5/taiga-ui-kit-components-input-date-range.js.map +1 -1
  197. package/fesm5/taiga-ui-kit-components-input-date-time.js.map +1 -1
  198. package/fesm5/taiga-ui-kit-components-input-date.js.map +1 -1
  199. package/fesm5/taiga-ui-kit-components-input-number.js +29 -15
  200. package/fesm5/taiga-ui-kit-components-input-number.js.map +1 -1
  201. package/fesm5/taiga-ui-kit-components-input-phone.js.map +1 -1
  202. package/fesm5/taiga-ui-kit-components-input-range.js +20 -14
  203. package/fesm5/taiga-ui-kit-components-input-range.js.map +1 -1
  204. package/fesm5/taiga-ui-kit-components-input-slider.js +15 -9
  205. package/fesm5/taiga-ui-kit-components-input-slider.js.map +1 -1
  206. package/fesm5/taiga-ui-kit-components-input-tag.js +1 -1
  207. package/fesm5/taiga-ui-kit-components-multi-select.js +3 -2
  208. package/fesm5/taiga-ui-kit-components-multi-select.js.map +1 -1
  209. package/fesm5/taiga-ui-kit-components-progress.js +103 -0
  210. package/fesm5/taiga-ui-kit-components-progress.js.map +1 -0
  211. package/fesm5/taiga-ui-kit-components-radio.js +1 -1
  212. package/fesm5/taiga-ui-kit-components-tabs.js +16 -8
  213. package/fesm5/taiga-ui-kit-components-tabs.js.map +1 -1
  214. package/fesm5/taiga-ui-kit-components-tag.js +1 -1
  215. package/fesm5/taiga-ui-kit-components-text-area.js +1 -1
  216. package/fesm5/taiga-ui-kit-components-text-area.js.map +1 -1
  217. package/fesm5/taiga-ui-kit-components-toggle.js +1 -1
  218. package/fesm5/taiga-ui-kit-components-toggle.js.map +1 -1
  219. package/fesm5/taiga-ui-kit-components.js +1 -0
  220. package/fesm5/taiga-ui-kit-components.js.map +1 -1
  221. package/fesm5/taiga-ui-kit-directives-dropdown-context.js.map +1 -1
  222. package/package.json +4 -4
@@ -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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Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFR5cGUsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIEFMV0FZU19GQUxTRV9IQU5ETEVSLFxuICAgIERBVEVfRklMTEVSX0xFTkdUSCxcbiAgICBudWxsYWJsZVNhbWUsXG4gICAgVFVJX0RBVEVfRk9STUFULFxuICAgIFRVSV9GSVJTVF9EQVksXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFRVSV9JU19NT0JJTEUsXG4gICAgVFVJX0xBU1RfREFZLFxuICAgIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIFR1aURhdGVNb2RlLFxuICAgIFR1aURheSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTW9udGgsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBzaXplQmlnZ2VyLFxuICAgIFRVSV9ERUZBVUxUX01BUktFUl9IQU5ETEVSLFxuICAgIFRVSV9URVhURklFTERfU0laRSxcbiAgICBUdWlEaWFsb2dTZXJ2aWNlLFxuICAgIFR1aU1hcmtlckhhbmRsZXIsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgVHVpVGV4dE1hc2tPcHRpb25zLFxuICAgIFR1aVdpdGhPcHRpb25hbE1pbk1heCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlOYW1lZERheX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jbGFzc2VzJztcbmltcG9ydCB7RU1QVFlfTUFTSywgVFVJX0RBVEVfTUFTS30gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb25zdGFudHMnO1xuaW1wb3J0IHtMRUZUX0FMSUdORURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9wcm92aWRlcnMnO1xuaW1wb3J0IHtcbiAgICBUVUlfQ0FMRU5EQVJfREFUQV9TVFJFQU0sXG4gICAgVFVJX0RBVEVfVEVYVFMsXG4gICAgVFVJX01PQklMRV9DQUxFTkRBUixcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHt0dWlDcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVBpcGV9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvbWFzayc7XG5pbXBvcnQge1R1aVJlcGxheUNvbnRyb2xWYWx1ZUNoYW5nZXNGYWN0b3J5fSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb21wb25lbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtwbHVjaywgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIFRPRE86IHJlbW92ZSBpbiBpdnkgY29tcGlsYXRpb25cbmV4cG9ydCBjb25zdCBEQVRFX1NUUkVBTV9GQUNUT1JZID0gVHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3Rvcnk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LWRhdGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1kYXRlLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LWRhdGUuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dERhdGVDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfQ0FMRU5EQVJfREFUQV9TVFJFQU0sXG4gICAgICAgICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2VsZigpLCBOZ0NvbnRyb2xdXSxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IERBVEVfU1RSRUFNX0ZBQ1RPUlksXG4gICAgICAgIH0sXG4gICAgICAgIExFRlRfQUxJR05FRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0RGF0ZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VHVpRGF5PlxuICAgIGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PFR1aURheT4sIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciB7XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbiA9IFRVSV9GSVJTVF9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4ID0gVFVJX0xBU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPFR1aURheT4gPSBBTFdBWVNfRkFMU0VfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXJrZXJIYW5kbGVyOiBUdWlNYXJrZXJIYW5kbGVyID0gVFVJX0RFRkFVTFRfTUFSS0VSX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8VHVpTmFtZWREYXk+ID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGVmYXVsdEFjdGl2ZVllYXJNb250aCA9IFR1aU1vbnRoLmN1cnJlbnRMb2NhbCgpO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuICAgIHJlYWRvbmx5IGZpbGxlciQgPSB0aGlzLmRhdGVUZXh0cyQucGlwZShwbHVjayh0aGlzLmRhdGVGb3JtYXQpKTtcblxuICAgIHByaXZhdGUgbW9udGg6IFR1aU1vbnRoIHwgbnVsbCA9IG51bGw7XG5cbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dE1hc2tPcHRpb25zOiBUdWlUZXh0TWFza09wdGlvbnMgPSB7XG4gICAgICAgIG1hc2s6IFRVSV9EQVRFX01BU0ssXG4gICAgICAgIHBpcGU6IHR1aUNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUGlwZSh0aGlzKSxcbiAgICAgICAgZ3VpZGU6IGZhbHNlLFxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KEluamVjdG9yKSBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQEluamVjdChUVUlfSVNfTU9CSUxFKSBwcml2YXRlIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KFR1aURpYWxvZ1NlcnZpY2UpIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZTogVHVpRGlhbG9nU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUVUlfTU9CSUxFX0NBTEVOREFSKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1vYmlsZUNhbGVuZGFyOiBUeXBlPGFueT4gfCBudWxsLFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfU0laRSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRTaXplOiBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX0ZPUk1BVCkgcmVhZG9ubHkgZGF0ZUZvcm1hdDogVHVpRGF0ZU1vZGUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IGRhdGVUZXh0cyQ6IE9ic2VydmFibGU8UmVjb3JkPFR1aURhdGVNb2RlLCBzdHJpbmc+PixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkID8gdGhpcy50ZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudGV4dGZpZWxkICYmIHRoaXMudGV4dGZpZWxkLmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTW9iaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01vYmlsZSAmJiAhIXRoaXMubW9iaWxlQ2FsZW5kYXI7XG4gICAgfVxuXG4gICAgZ2V0IGNhbGVuZGFySWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc2l6ZUJpZ2dlcih0aGlzLnRleHRmaWVsZFNpemUuc2l6ZSlcbiAgICAgICAgICAgID8gJ3R1aUljb25DYWxlbmRhckxhcmdlJ1xuICAgICAgICAgICAgOiAndHVpSWNvbkNhbGVuZGFyJztcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB7dmFsdWUsIG5hdGl2ZVZhbHVlLCBhY3RpdmVJdGVtfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKGFjdGl2ZUl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcoYWN0aXZlSXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWUgPyBTdHJpbmcodmFsdWUpIDogbmF0aXZlVmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkQWN0aXZlWWVhck1vbnRoKCk6IFR1aU1vbnRoIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXNbMF0gJiYgdGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLmRheVNhbWUodGhpcy5pdGVtc1swXS5kYXkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pdGVtc1swXS5kaXNwbGF5RGF5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubW9udGggfHwgdGhpcy52YWx1ZSB8fCB0aGlzLmRlZmF1bHRBY3RpdmVZZWFyTW9udGg7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBzZXQgbmF0aXZlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGNhbk9wZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5jb21wdXRlZERpc2FibGVkICYmICF0aGlzLnJlYWRPbmx5ICYmICF0aGlzLmNvbXB1dGVkTW9iaWxlO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZE1hc2soKTogVHVpVGV4dE1hc2tPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlSXRlbSA/IEVNUFRZX01BU0sgOiB0aGlzLnRleHRNYXNrT3B0aW9ucztcbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlSXRlbSgpOiBUdWlOYW1lZERheSB8IG51bGwge1xuICAgICAgICBjb25zdCB7dmFsdWV9ID0gdGhpcztcblxuICAgICAgICByZXR1cm4gKHZhbHVlICYmIHRoaXMuaXRlbXMuZmluZChpdGVtID0+IGl0ZW0uZGF5LmRheVNhbWUodmFsdWUpKSkgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBnZXRDb21wdXRlZEZpbGxlcihmaWxsZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZUl0ZW0gPyAnJyA6IGZpbGxlcjtcbiAgICB9XG5cbiAgICBvbk1vYmlsZUNsaWNrKCkge1xuICAgICAgICBpZiAoIXRoaXMubW9iaWxlQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZVxuICAgICAgICAgICAgLm9wZW48VHVpRGF5PihuZXcgUG9seW1vcnBoZXVzQ29tcG9uZW50KHRoaXMubW9iaWxlQ2FsZW5kYXIsIHRoaXMuaW5qZWN0b3IpLCB7XG4gICAgICAgICAgICAgICAgc2l6ZTogJ2Z1bGxzY3JlZW4nLFxuICAgICAgICAgICAgICAgIGNsb3NlYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICBzaW5nbGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG1pbjogdGhpcy5taW4sXG4gICAgICAgICAgICAgICAgICAgIG1heDogdGhpcy5tYXgsXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IHRoaXMuZGlzYWJsZWRJdGVtSGFuZGxlcixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgICAgICAgIHZhbHVlLmxlbmd0aCAhPT0gREFURV9GSUxMRVJfTEVOR1RIID8gbnVsbCA6IFR1aURheS5ub3JtYWxpemVQYXJzZSh2YWx1ZSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25EYXlDbGljayh2YWx1ZTogVHVpRGF5KSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWQoaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgb25Nb250aENoYW5nZShtb250aDogVHVpTW9udGgpIHtcbiAgICAgICAgdGhpcy5tb250aCA9IG1vbnRoO1xuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoKSB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogVHVpRGF5IHwgbnVsbCkge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHZhbHVlID8gdGhpcy5jb21wdXRlZFZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHZhbHVlSWRlbnRpY2FsQ29tcGFyYXRvcihcbiAgICAgICAgb2xkVmFsdWU6IFR1aURheSB8IG51bGwsXG4gICAgICAgIG5ld1ZhbHVlOiBUdWlEYXkgfCBudWxsLFxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gbnVsbGFibGVTYW1lKG9sZFZhbHVlLCBuZXdWYWx1ZSwgKGEsIGIpID0+IGEuZGF5U2FtZShiKSk7XG4gICAgfVxufVxuIl19
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS8iLCJzb3VyY2VzIjpbImlucHV0LWRhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLElBQUksRUFDSixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osZUFBZSxFQUNmLGFBQWEsRUFDYiwyQkFBMkIsRUFDM0IsYUFBYSxFQUNiLFlBQVksRUFHWixNQUFNLEVBQ04sY0FBYyxFQUVkLFFBQVEsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsVUFBVSxFQUNWLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQiw4QkFBOEIsRUFDOUIseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQixxQkFBcUIsR0FDeEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUMsVUFBVSxFQUFFLGFBQWEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyx5Q0FBeUMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2xGLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsY0FBYyxFQUNkLG1CQUFtQixHQUN0QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hFLE9BQU8sRUFB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Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFR5cGUsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIEFMV0FZU19GQUxTRV9IQU5ETEVSLFxuICAgIERBVEVfRklMTEVSX0xFTkdUSCxcbiAgICBudWxsYWJsZVNhbWUsXG4gICAgVFVJX0RBVEVfRk9STUFULFxuICAgIFRVSV9GSVJTVF9EQVksXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFRVSV9JU19NT0JJTEUsXG4gICAgVFVJX0xBU1RfREFZLFxuICAgIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIFR1aURhdGVNb2RlLFxuICAgIFR1aURheSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTW9udGgsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBzaXplQmlnZ2VyLFxuICAgIFRVSV9ERUZBVUxUX01BUktFUl9IQU5ETEVSLFxuICAgIFRVSV9URVhURklFTERfU0laRSxcbiAgICBUdWlEaWFsb2dTZXJ2aWNlLFxuICAgIFR1aU1hcmtlckhhbmRsZXIsXG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgVHVpVGV4dE1hc2tPcHRpb25zLFxuICAgIFR1aVdpdGhPcHRpb25hbE1pbk1heCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlOYW1lZERheX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jbGFzc2VzJztcbmltcG9ydCB7RU1QVFlfTUFTSywgVFVJX0RBVEVfTUFTS30gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb25zdGFudHMnO1xuaW1wb3J0IHtMRUZUX0FMSUdORURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9wcm92aWRlcnMnO1xuaW1wb3J0IHtcbiAgICBUVUlfQ0FMRU5EQVJfREFUQV9TVFJFQU0sXG4gICAgVFVJX0RBVEVfVEVYVFMsXG4gICAgVFVJX01PQklMRV9DQUxFTkRBUixcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHt0dWlDcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVBpcGV9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvbWFzayc7XG5pbXBvcnQge1R1aVJlcGxheUNvbnRyb2xWYWx1ZUNoYW5nZXNGYWN0b3J5fSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb21wb25lbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtwbHVjaywgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIFRPRE86IHJlbW92ZSBpbiBpdnkgY29tcGlsYXRpb25cbmV4cG9ydCBjb25zdCBEQVRFX1NUUkVBTV9GQUNUT1JZID0gVHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3Rvcnk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LWRhdGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1kYXRlLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LWRhdGUuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUdWlJbnB1dERhdGVDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfQ0FMRU5EQVJfREFUQV9TVFJFQU0sXG4gICAgICAgICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2VsZigpLCBOZ0NvbnRyb2xdXSxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IERBVEVfU1RSRUFNX0ZBQ1RPUlksXG4gICAgICAgIH0sXG4gICAgICAgIExFRlRfQUxJR05FRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0RGF0ZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VHVpRGF5PlxuICAgIGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PFR1aURheT4sIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW4gPSBUVUlfRklSU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IFRVSV9MQVNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWFya2VySGFuZGxlcjogVHVpTWFya2VySGFuZGxlciA9IFRVSV9ERUZBVUxUX01BUktFUl9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGl0ZW1zOiBSZWFkb25seUFycmF5PFR1aU5hbWVkRGF5PiA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRlZmF1bHRBY3RpdmVZZWFyTW9udGggPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKTtcblxuICAgIG9wZW4gPSBmYWxzZTtcbiAgICByZWFkb25seSBmaWxsZXIkID0gdGhpcy5kYXRlVGV4dHMkLnBpcGUocGx1Y2sodGhpcy5kYXRlRm9ybWF0KSk7XG5cbiAgICBwcml2YXRlIG1vbnRoOiBUdWlNb250aCB8IG51bGwgPSBudWxsO1xuXG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRNYXNrT3B0aW9uczogVHVpVGV4dE1hc2tPcHRpb25zID0ge1xuICAgICAgICBtYXNrOiBUVUlfREFURV9NQVNLLFxuICAgICAgICBwaXBlOiB0dWlDcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVBpcGUodGhpcyksXG4gICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChJbmplY3RvcikgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX01PQklMRSkgcHJpdmF0ZSByZWFkb25seSBpc01vYmlsZTogYm9vbGVhbixcbiAgICAgICAgQEluamVjdChUdWlEaWFsb2dTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IFR1aURpYWxvZ1NlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVFVJX01PQklMRV9DQUxFTkRBUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2JpbGVDYWxlbmRhcjogVHlwZTxhbnk+IHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1NJWkUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkU2l6ZTogVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9GT1JNQVQpIHJlYWRvbmx5IGRhdGVGb3JtYXQ6IFR1aURhdGVNb2RlLFxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX1RFWFRTKVxuICAgICAgICByZWFkb25seSBkYXRlVGV4dHMkOiBPYnNlcnZhYmxlPFJlY29yZDxUdWlEYXRlTW9kZSwgc3RyaW5nPj4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZCA/IHRoaXMudGV4dGZpZWxkLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnRleHRmaWVsZCAmJiB0aGlzLnRleHRmaWVsZC5mb2N1c2VkO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZE1vYmlsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgJiYgISF0aGlzLm1vYmlsZUNhbGVuZGFyO1xuICAgIH1cblxuICAgIGdldCBjYWxlbmRhckljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHNpemVCaWdnZXIodGhpcy50ZXh0ZmllbGRTaXplLnNpemUpXG4gICAgICAgICAgICA/ICd0dWlJY29uQ2FsZW5kYXJMYXJnZSdcbiAgICAgICAgICAgIDogJ3R1aUljb25DYWxlbmRhcic7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBuYXRpdmVWYWx1ZSwgYWN0aXZlSXRlbX0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChhY3RpdmVJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nKGFjdGl2ZUl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlID8gU3RyaW5nKHZhbHVlKSA6IG5hdGl2ZVZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZEFjdGl2ZVllYXJNb250aCgpOiBUdWlNb250aCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zWzBdICYmIHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5kYXlTYW1lKHRoaXMuaXRlbXNbMF0uZGF5KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXNbMF0uZGlzcGxheURheTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm1vbnRoIHx8IHRoaXMudmFsdWUgfHwgdGhpcy5kZWZhdWx0QWN0aXZlWWVhck1vbnRoO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50ID8gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgc2V0IG5hdGl2ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcHV0ZWREaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seSAmJiAhdGhpcy5jb21wdXRlZE1vYmlsZTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNYXNrKCk6IFR1aVRleHRNYXNrT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZUl0ZW0gPyBFTVBUWV9NQVNLIDogdGhpcy50ZXh0TWFza09wdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0IGFjdGl2ZUl0ZW0oKTogVHVpTmFtZWREYXkgfCBudWxsIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlfSA9IHRoaXM7XG5cbiAgICAgICAgcmV0dXJuICh2YWx1ZSAmJiB0aGlzLml0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmRheS5kYXlTYW1lKHZhbHVlKSkpIHx8IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0Q29tcHV0ZWRGaWxsZXIoZmlsbGVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtID8gJycgOiBmaWxsZXI7XG4gICAgfVxuXG4gICAgb25Nb2JpbGVDbGljaygpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1vYmlsZUNhbGVuZGFyKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2VcbiAgICAgICAgICAgIC5vcGVuPFR1aURheT4obmV3IFBvbHltb3JwaGV1c0NvbXBvbmVudCh0aGlzLm1vYmlsZUNhbGVuZGFyLCB0aGlzLmluamVjdG9yKSwge1xuICAgICAgICAgICAgICAgIHNpemU6ICdmdWxsc2NyZWVuJyxcbiAgICAgICAgICAgICAgICBjbG9zZWFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgc2luZ2xlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBtaW46IHRoaXMubWluLFxuICAgICAgICAgICAgICAgICAgICBtYXg6IHRoaXMubWF4LFxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiB0aGlzLmRpc2FibGVkSXRlbUhhbmRsZXIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBvbkNsaWNrKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICAgICAgICB2YWx1ZS5sZW5ndGggIT09IERBVEVfRklMTEVSX0xFTkdUSCA/IG51bGwgOiBUdWlEYXkubm9ybWFsaXplUGFyc2UodmFsdWUpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uRGF5Q2xpY2sodmFsdWU6IFR1aURheSkge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uTW9udGhDaGFuZ2UobW9udGg6IFR1aU1vbnRoKSB7XG4gICAgICAgIHRoaXMubW9udGggPSBtb250aDtcbiAgICB9XG5cbiAgICBvbk9wZW5DaGFuZ2Uob3BlbjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLm9wZW4gPSBvcGVuO1xuICAgIH1cblxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKCkge1xuICAgICAgICBzdXBlci5zZXREaXNhYmxlZFN0YXRlKCk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IFR1aURheSB8IG51bGwpIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB2YWx1ZSA/IHRoaXMuY29tcHV0ZWRWYWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB2YWx1ZUlkZW50aWNhbENvbXBhcmF0b3IoXG4gICAgICAgIG9sZFZhbHVlOiBUdWlEYXkgfCBudWxsLFxuICAgICAgICBuZXdWYWx1ZTogVHVpRGF5IHwgbnVsbCxcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIG51bGxhYmxlU2FtZShvbGRWYWx1ZSwgbmV3VmFsdWUsIChhLCBiKSA9PiBhLmRheVNhbWUoYikpO1xuICAgIH1cbn1cbiJdfQ==
@@ -347,4 +347,4 @@ var TuiInputDateRangeComponent = /** @class */ (function (_super) {
347
347
  return TuiInputDateRangeComponent;
348
348
  }(AbstractTuiNullableControl));
349
349
  export { TuiInputDateRangeComponent };
350
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1yYW5nZS8iLCJzb3VyY2VzIjpbImlucHV0LWRhdGUtcmFuZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILDBCQUEwQixFQUMxQixvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4QixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsYUFBYSxFQUNiLDJCQUEyQixFQUMzQixhQUFhLEVBQ2IsWUFBWSxFQUtaLFdBQVcsRUFDWCxjQUFjLEVBR2QsUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxVQUFVLEVBQ1YsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQiw4QkFBOEIsRUFDOUIsZ0NBQWdDLEVBQ2hDLHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIscUJBQXFCLEdBQ3hCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNILFVBQVUsRUFDViwyQkFBMkIsRUFDM0IsbUJBQW1CLEdBQ3RCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFDLHlDQUF5QyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUNILHdCQUF3QixFQUN4QixjQUFjLEVBQ2QsbUJB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LGsrREFBK0M7WUFFL0MsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSwyQkFBMkI7b0JBQ3BDLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLDRCQUEwQixFQUExQixDQUEwQixDQUFDO2lCQUM1RDtnQkFDRDtvQkFDSSxPQUFPLEVBQUUsd0JBQXdCO29CQUNqQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDL0MsVUFBVSxFQUFFLG9CQUFvQjtpQkFDbkM7Z0JBQ0QseUNBQXlDO2FBQzVDOztTQUNKLENBQUM7UUFtRE8sV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsSUFBSSxFQUFFLENBQUE7UUFDTixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUVqQixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ3pCLFdBQUEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ2hCLFdBQUEsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ3JCLFdBQUEsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFDeEIsV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFFM0IsV0FBQSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUUxQixXQUFBLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1FBRWxDLFdBQUEsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQ3ZCLFdBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO09BbEVsQiwwQkFBMEIsQ0FxVHRDO0lBQUQsaUNBQUM7Q0FBQSxBQXJURCxDQUNZLDBCQUEwQixHQW9UckM7U0FyVFksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgREFURV9GSUxMRVJfTEVOR1RILFxuICAgIERBVEVfUkFOR0VfRklMTEVSX0xFTkdUSCxcbiAgICBudWxsYWJsZVNhbWUsXG4gICAgUkFOR0VfU0VQQVJBVE9SX0NIQVIsXG4gICAgc2V0TmF0aXZlRm9jdXNlZCxcbiAgICBUVUlfREFURV9GT1JNQVQsXG4gICAgVFVJX0ZJUlNUX0RBWSxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVFVJX0lTX01PQklMRSxcbiAgICBUVUlfTEFTVF9EQVksXG4gICAgVHVpQm9vbGVhbkhhbmRsZXIsXG4gICAgVHVpRGF0ZU1vZGUsXG4gICAgVHVpRGF5LFxuICAgIFR1aURheUxpa2UsXG4gICAgVHVpRGF5UmFuZ2UsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU1hcHBlcixcbiAgICBUdWlNb250aCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIHNpemVCaWdnZXIsXG4gICAgVFVJX0RFRkFVTFRfTUFSS0VSX0hBTkRMRVIsXG4gICAgVFVJX1RFWFRGSUVMRF9FWEFNUExFX1RFWFQsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIFR1aURpYWxvZ1NlcnZpY2UsXG4gICAgVHVpTWFya2VySGFuZGxlcixcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpVGV4dGZpZWxkRXhhbXBsZVRleHREaXJlY3RpdmUsXG4gICAgVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICBUdWlUZXh0TWFza09wdGlvbnMsXG4gICAgVHVpV2l0aE9wdGlvbmFsTWluTWF4LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aURheVJhbmdlUGVyaW9kfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NsYXNzZXMnO1xuaW1wb3J0IHtcbiAgICBFTVBUWV9NQVNLLFxuICAgIE1BWF9EQVlfUkFOR0VfTEVOR1RIX01BUFBFUixcbiAgICBUVUlfREFURV9SQU5HRV9NQVNLLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbnN0YW50cyc7XG5pbXBvcnQge0xFRlRfQUxJR05FRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Byb3ZpZGVycyc7XG5pbXBvcnQge1xuICAgIFRVSV9DQUxFTkRBUl9EQVRBX1NUUkVBTSxcbiAgICBUVUlfREFURV9URVhUUyxcbiAgICBUVUlfTU9CSUxFX0NBTEVOREFSLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge3R1aUNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUmFuZ2VQaXBlfSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzL21hc2snO1xuaW1wb3J0IHtUdWlSZXBsYXlDb250cm9sVmFsdWVDaGFuZ2VzRmFjdG9yeX0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29tcG9uZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7cGx1Y2ssIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyBUT0RPOiByZW1vdmUgaW4gaXZ5IGNvbXBpbGF0aW9uXG5leHBvcnQgY29uc3QgUkFOR0VfU1RSRUFNX0ZBQ1RPUlkgPSBUdWlSZXBsYXlDb250cm9sVmFsdWVDaGFuZ2VzRmFjdG9yeTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtZGF0ZS1yYW5nZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWRhdGUtcmFuZ2UudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZGF0ZS1yYW5nZS5zdHlsZS5sZXNzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0RGF0ZVJhbmdlQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0NBTEVOREFSX0RBVEFfU1RSRUFNLFxuICAgICAgICAgICAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgbmV3IFNlbGYoKSwgTmdDb250cm9sXV0sXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBSQU5HRV9TVFJFQU1fRkFDVE9SWSxcbiAgICAgICAgfSxcbiAgICAgICAgTEVGVF9BTElHTkVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlUmFuZ2VDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sPFR1aURheVJhbmdlPlxuICAgIGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PFR1aURheT4sIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciB7XG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IFR1aUJvb2xlYW5IYW5kbGVyPFR1aURheT4gPSBBTFdBWVNfRkFMU0VfSEFORExFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXJrZXJIYW5kbGVyOiBUdWlNYXJrZXJIYW5kbGVyID0gVFVJX0RFRkFVTFRfTUFSS0VSX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGVmYXVsdFZpZXdlZE1vbnRoID0gVHVpTW9udGguY3VycmVudExvY2FsKCk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8VHVpRGF5UmFuZ2VQZXJpb2Q+ID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluID0gVFVJX0ZJUlNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXggPSBUVUlfTEFTVF9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluTGVuZ3RoOiBUdWlEYXlMaWtlIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4TGVuZ3RoOiBUdWlEYXlMaWtlIHwgbnVsbCA9IG51bGw7XG5cbiAgICBvcGVuID0gZmFsc2U7XG5cbiAgICByZWFkb25seSBtYXhMZW5ndGhNYXBwZXI6IFR1aU1hcHBlcjxUdWlEYXksIFR1aURheT4gPSBNQVhfREFZX1JBTkdFX0xFTkdUSF9NQVBQRVI7XG4gICAgcmVhZG9ubHkgZGF0ZUZpbGxlciQgPSB0aGlzLmRhdGVUZXh0cyQucGlwZShwbHVjayh0aGlzLmRhdGVGb3JtYXQpKTtcblxuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0TWFza09wdGlvbnM6IFR1aVRleHRNYXNrT3B0aW9ucyA9IHtcbiAgICAgICAgbWFzazogVFVJX0RBVEVfUkFOR0VfTUFTSyxcbiAgICAgICAgcGlwZTogdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZERhdGVSYW5nZVBpcGUodGhpcyksXG4gICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChJbmplY3RvcikgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX01PQklMRSkgcHJpdmF0ZSByZWFkb25seSBpc01vYmlsZTogYm9vbGVhbixcbiAgICAgICAgQEluamVjdChUdWlEaWFsb2dTZXJ2aWNlKSBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IFR1aURpYWxvZ1NlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVFVJX01PQklMRV9DQUxFTkRBUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2JpbGVDYWxlbmRhcjogVHlwZTxhbnk+IHwgbnVsbCxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1NJWkUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkU2l6ZTogVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX0VYQU1QTEVfVEVYVClcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRFeGFtcGxlVGV4dDogVHVpVGV4dGZpZWxkRXhhbXBsZVRleHREaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfRk9STUFUKSByZWFkb25seSBkYXRlRm9ybWF0OiBUdWlEYXRlTW9kZSxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgZGF0ZVRleHRzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8VHVpRGF0ZU1vZGUsIHN0cmluZz4+LFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQgPyB0aGlzLnRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50IDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXh0ZmllbGQgJiYgdGhpcy50ZXh0ZmllbGQuZm9jdXNlZDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlICYmICEhdGhpcy5tb2JpbGVDYWxlbmRhcjtcbiAgICB9XG5cbiAgICBnZXQgY2FsZW5kYXJJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBzaXplQmlnZ2VyKHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplKVxuICAgICAgICAgICAgPyAndHVpSWNvbkNhbGVuZGFyTGFyZ2UnXG4gICAgICAgICAgICA6ICd0dWlJY29uQ2FsZW5kYXInO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcHV0ZWREaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seSAmJiAhdGhpcy5jb21wdXRlZE1vYmlsZTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRFeGFtcGxlVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5sZW5ndGggPyB0aGlzLnRleHRmaWVsZEV4YW1wbGVUZXh0LmV4YW1wbGVUZXh0IDogJyc7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTWFzaygpOiBUdWlUZXh0TWFza09wdGlvbnMge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVQZXJpb2QgPyBFTVBUWV9NQVNLIDogdGhpcy50ZXh0TWFza09wdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0IGFjdGl2ZVBlcmlvZCgpOiBUdWlEYXlSYW5nZVBlcmlvZCB8IG51bGwge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5pdGVtcy5maW5kKGl0ZW0gPT5cbiAgICAgICAgICAgICAgICBudWxsYWJsZVNhbWUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ucmFuZ2UsXG4gICAgICAgICAgICAgICAgICAgIChhLCBiKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgYS5mcm9tLmRheVNhbWUoYi5mcm9tLmRheUxpbWl0KHRoaXMubWluLCB0aGlzLm1heCkpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBhLnRvLmRheVNhbWUoYi50by5kYXlMaW1pdCh0aGlzLm1pbiwgdGhpcy5tYXgpKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSB8fCBudWxsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBuYXRpdmVWYWx1ZSwgYWN0aXZlUGVyaW9kfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKGFjdGl2ZVBlcmlvZCkge1xuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhhY3RpdmVQZXJpb2QpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlID8gdmFsdWUuZm9ybWF0dGVkRGF5UmFuZ2UgOiBuYXRpdmVWYWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgaW5uZXJQc2V1ZG9Gb2N1c2VkKCk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMucHNldWRvRm9jdXNlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wZW4gfHwgdGhpcy5jb21wdXRlZEZvY3VzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgPyB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgOiAnJztcbiAgICB9XG5cbiAgICBzZXQgbmF0aXZlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0Q29tcHV0ZWRSYW5nZUZpbGxlcihkYXRlRmlsbGVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVQZXJpb2QgPyAnJyA6IHRoaXMuZ2V0RGF0ZVJhbmdlRmlsbGVyKGRhdGVGaWxsZXIpO1xuICAgIH1cblxuICAgIG9uTW9iaWxlQ2xpY2soKSB7XG4gICAgICAgIGlmICghdGhpcy5tb2JpbGVDYWxlbmRhcikge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlXG4gICAgICAgICAgICAub3BlbjxUdWlEYXlSYW5nZT4oXG4gICAgICAgICAgICAgICAgbmV3IFBvbHltb3JwaGV1c0NvbXBvbmVudCh0aGlzLm1vYmlsZUNhbGVuZGFyLCB0aGlzLmluamVjdG9yKSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHNpemU6ICdmdWxsc2NyZWVuJyxcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2luZ2xlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbjogdGhpcy5tYXhMZW5ndGhNYXBwZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5taW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1heExlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heDogdGhpcy5tYXhMZW5ndGhNYXBwZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1heExlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiB0aGlzLmRpc2FibGVkSXRlbUhhbmRsZXIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUubGVuZ3RoICE9PSBEQVRFX1JBTkdFX0ZJTExFUl9MRU5HVEgpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhcnNlZFZhbHVlID0gVHVpRGF5UmFuZ2Uubm9ybWFsaXplUGFyc2UodmFsdWUpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICAgICAgICAhdGhpcy5taW5MZW5ndGggJiYgIXRoaXMubWF4TGVuZ3RoXG4gICAgICAgICAgICAgICAgPyBwYXJzZWRWYWx1ZVxuICAgICAgICAgICAgICAgIDogdGhpcy5jbGFtcFZhbHVlKHBhcnNlZFZhbHVlKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvblJhbmdlQ2hhbmdlKHJhbmdlOiBUdWlEYXlSYW5nZSkge1xuICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcblxuICAgICAgICBpZiAoIW51bGxhYmxlU2FtZTxUdWlEYXlSYW5nZT4odGhpcy52YWx1ZSwgcmFuZ2UsIChhLCBiKSA9PiBhLmRheVNhbWUoYikpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHJhbmdlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSXRlbVNlbGVjdChpdGVtOiBzdHJpbmcgfCBUdWlEYXlSYW5nZVBlcmlvZCkge1xuICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcblxuICAgICAgICBpZiAodHlwZW9mIGl0ZW0gIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGl0ZW0ucmFuZ2UuZGF5TGltaXQodGhpcy5taW4sIHRoaXMubWF4KSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZVBlcmlvZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKTtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvblByZXNzZWQocHJlc3NlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXNzZWQocHJlc3NlZCk7XG4gICAgfVxuXG4gICAgb25BY3RpdmVab25lKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFmb2N1c2VkICYmXG4gICAgICAgICAgICAhdGhpcy5pdGVtU2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICh0aGlzLm5hdGl2ZVZhbHVlLmxlbmd0aCA9PT0gREFURV9GSUxMRVJfTEVOR1RIIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZS5sZW5ndGggPT09XG4gICAgICAgICAgICAgICAgICAgIERBVEVfRklMTEVSX0xFTkdUSCArIFJBTkdFX1NFUEFSQVRPUl9DSEFSLmxlbmd0aClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFR1aURheVJhbmdlLm5vcm1hbGl6ZVBhcnNlKHRoaXMubmF0aXZlVmFsdWUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IFR1aURheVJhbmdlIHwgbnVsbCkge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHZhbHVlID8gdGhpcy5jb21wdXRlZFZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXRlbVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBTdHJpbmcoaXRlbSkgPT09IHRoaXMubmF0aXZlVmFsdWUpICE9PSAtMTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRvZ2dsZSgpIHtcbiAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzSW5wdXQocHJldmVudFNjcm9sbDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHNldE5hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LCB0cnVlLCBwcmV2ZW50U2Nyb2xsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2xhbXBWYWx1ZSh2YWx1ZTogVHVpRGF5UmFuZ2UpOiBUdWlEYXlSYW5nZSB7XG4gICAgICAgIGNvbnN0IGNsYW1wZWRCb3R0b20gPVxuICAgICAgICAgICAgdGhpcy5taW5MZW5ndGggJiYgdmFsdWUuZnJvbS5hcHBlbmQodGhpcy5taW5MZW5ndGgpLmRheUFmdGVyKHZhbHVlLnRvKVxuICAgICAgICAgICAgICAgID8gbmV3IFR1aURheVJhbmdlKFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLmZyb20sXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWUuZnJvbS5hcHBlbmQodGhpcy5taW5MZW5ndGgpLmFwcGVuZCh7ZGF5OiAtMX0pLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogdmFsdWU7XG5cbiAgICAgICAgY29uc3QgYXZhaWxhYmxlTWF4ID0gdGhpcy5tYXhMZW5ndGhcbiAgICAgICAgICAgID8gY2xhbXBlZEJvdHRvbS5mcm9tLmFwcGVuZCh0aGlzLm1heExlbmd0aCkuYXBwZW5kKHtkYXk6IC0xfSlcbiAgICAgICAgICAgIDogdGhpcy5tYXg7XG5cbiAgICAgICAgcmV0dXJuIGNsYW1wZWRCb3R0b20udG8uZGF5QWZ0ZXIoYXZhaWxhYmxlTWF4KVxuICAgICAgICAgICAgPyBuZXcgVHVpRGF5UmFuZ2UoY2xhbXBlZEJvdHRvbS5mcm9tLCBhdmFpbGFibGVNYXgpXG4gICAgICAgICAgICA6IGNsYW1wZWRCb3R0b207XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREYXRlUmFuZ2VGaWxsZXIoZGF0ZUZpbGxlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2RhdGVGaWxsZXJ9JHtSQU5HRV9TRVBBUkFUT1JfQ0hBUn0ke2RhdGVGaWxsZXJ9YDtcbiAgICB9XG59XG4iXX0=
350
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS1yYW5nZS8iLCJzb3VyY2VzIjpbImlucHV0LWRhdGUtcmFuZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUNILDBCQUEwQixFQUMxQixvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4QixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsYUFBYSxFQUNiLDJCQUEyQixFQUMzQixhQUFhLEVBQ2IsWUFBWSxFQUtaLFdBQVcsRUFDWCxjQUFjLEVBR2QsUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxVQUFVLEVBQ1YsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQiw4QkFBOEIsRUFDOUIsZ0NBQWdDLEVBQ2hDLHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIscUJBQXFCLEdBQ3hCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNILFVBQVUsRUFDViwyQkFBMkIsRUFDM0IsbUJBQW1CLEdBQ3RCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFDLHlDQUF5QyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUNILHdCQUF3QixFQUN4QixjQUFjLEVBQ2QsbUJB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LGsrREFBK0M7WUFFL0MsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSwyQkFBMkI7b0JBQ3BDLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLDRCQUEwQixFQUExQixDQUEwQixDQUFDO2lCQUM1RDtnQkFDRDtvQkFDSSxPQUFPLEVBQUUsd0JBQXdCO29CQUNqQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDL0MsVUFBVSxFQUFFLG9CQUFvQjtpQkFDbkM7Z0JBQ0QseUNBQXlDO2FBQzVDOztTQUNKLENBQUM7UUFvRE8sV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsSUFBSSxFQUFFLENBQUE7UUFDTixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUVqQixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ3pCLFdBQUEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ2hCLFdBQUEsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ3JCLFdBQUEsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFDeEIsV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFFM0IsV0FBQSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUUxQixXQUFBLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1FBRWxDLFdBQUEsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQ3ZCLFdBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO09BbkVsQiwwQkFBMEIsQ0FzVHRDO0lBQUQsaUNBQUM7Q0FBQSxBQXRURCxDQUNZLDBCQUEwQixHQXFUckM7U0F0VFksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgQUxXQVlTX0ZBTFNFX0hBTkRMRVIsXG4gICAgREFURV9GSUxMRVJfTEVOR1RILFxuICAgIERBVEVfUkFOR0VfRklMTEVSX0xFTkdUSCxcbiAgICBudWxsYWJsZVNhbWUsXG4gICAgUkFOR0VfU0VQQVJBVE9SX0NIQVIsXG4gICAgc2V0TmF0aXZlRm9jdXNlZCxcbiAgICBUVUlfREFURV9GT1JNQVQsXG4gICAgVFVJX0ZJUlNUX0RBWSxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgVFVJX0lTX01PQklMRSxcbiAgICBUVUlfTEFTVF9EQVksXG4gICAgVHVpQm9vbGVhbkhhbmRsZXIsXG4gICAgVHVpRGF0ZU1vZGUsXG4gICAgVHVpRGF5LFxuICAgIFR1aURheUxpa2UsXG4gICAgVHVpRGF5UmFuZ2UsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU1hcHBlcixcbiAgICBUdWlNb250aCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIHNpemVCaWdnZXIsXG4gICAgVFVJX0RFRkFVTFRfTUFSS0VSX0hBTkRMRVIsXG4gICAgVFVJX1RFWFRGSUVMRF9FWEFNUExFX1RFWFQsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIFR1aURpYWxvZ1NlcnZpY2UsXG4gICAgVHVpTWFya2VySGFuZGxlcixcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpVGV4dGZpZWxkRXhhbXBsZVRleHREaXJlY3RpdmUsXG4gICAgVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICBUdWlUZXh0TWFza09wdGlvbnMsXG4gICAgVHVpV2l0aE9wdGlvbmFsTWluTWF4LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1R1aURheVJhbmdlUGVyaW9kfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NsYXNzZXMnO1xuaW1wb3J0IHtcbiAgICBFTVBUWV9NQVNLLFxuICAgIE1BWF9EQVlfUkFOR0VfTEVOR1RIX01BUFBFUixcbiAgICBUVUlfREFURV9SQU5HRV9NQVNLLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbnN0YW50cyc7XG5pbXBvcnQge0xFRlRfQUxJR05FRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Byb3ZpZGVycyc7XG5pbXBvcnQge1xuICAgIFRVSV9DQUxFTkRBUl9EQVRBX1NUUkVBTSxcbiAgICBUVUlfREFURV9URVhUUyxcbiAgICBUVUlfTU9CSUxFX0NBTEVOREFSLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge3R1aUNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUmFuZ2VQaXBlfSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzL21hc2snO1xuaW1wb3J0IHtUdWlSZXBsYXlDb250cm9sVmFsdWVDaGFuZ2VzRmFjdG9yeX0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29tcG9uZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7cGx1Y2ssIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyBUT0RPOiByZW1vdmUgaW4gaXZ5IGNvbXBpbGF0aW9uXG5leHBvcnQgY29uc3QgUkFOR0VfU1RSRUFNX0ZBQ1RPUlkgPSBUdWlSZXBsYXlDb250cm9sVmFsdWVDaGFuZ2VzRmFjdG9yeTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtZGF0ZS1yYW5nZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWRhdGUtcmFuZ2UudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZGF0ZS1yYW5nZS5zdHlsZS5sZXNzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0RGF0ZVJhbmdlQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0NBTEVOREFSX0RBVEFfU1RSRUFNLFxuICAgICAgICAgICAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgbmV3IFNlbGYoKSwgTmdDb250cm9sXV0sXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBSQU5HRV9TVFJFQU1fRkFDVE9SWSxcbiAgICAgICAgfSxcbiAgICAgICAgTEVGVF9BTElHTkVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlUmFuZ2VDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sPFR1aURheVJhbmdlPlxuICAgIGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PFR1aURheT4sIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWFya2VySGFuZGxlcjogVHVpTWFya2VySGFuZGxlciA9IFRVSV9ERUZBVUxUX01BUktFUl9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRlZmF1bHRWaWV3ZWRNb250aCA9IFR1aU1vbnRoLmN1cnJlbnRMb2NhbCgpO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGl0ZW1zOiBSZWFkb25seUFycmF5PFR1aURheVJhbmdlUGVyaW9kPiA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbiA9IFRVSV9GSVJTVF9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4ID0gVFVJX0xBU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbkxlbmd0aDogVHVpRGF5TGlrZSB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heExlbmd0aDogVHVpRGF5TGlrZSB8IG51bGwgPSBudWxsO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgcmVhZG9ubHkgbWF4TGVuZ3RoTWFwcGVyOiBUdWlNYXBwZXI8VHVpRGF5LCBUdWlEYXk+ID0gTUFYX0RBWV9SQU5HRV9MRU5HVEhfTUFQUEVSO1xuICAgIHJlYWRvbmx5IGRhdGVGaWxsZXIkID0gdGhpcy5kYXRlVGV4dHMkLnBpcGUocGx1Y2sodGhpcy5kYXRlRm9ybWF0KSk7XG5cbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dE1hc2tPcHRpb25zOiBUdWlUZXh0TWFza09wdGlvbnMgPSB7XG4gICAgICAgIG1hc2s6IFRVSV9EQVRFX1JBTkdFX01BU0ssXG4gICAgICAgIHBpcGU6IHR1aUNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUmFuZ2VQaXBlKHRoaXMpLFxuICAgICAgICBndWlkZTogZmFsc2UsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoSW5qZWN0b3IpIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBASW5qZWN0KFRVSV9JU19NT0JJTEUpIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGU6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoVHVpRGlhbG9nU2VydmljZSkgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBUdWlEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRVSV9NT0JJTEVfQ0FMRU5EQVIpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbW9iaWxlQ2FsZW5kYXI6IFR5cGU8YW55PiB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemU6IFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9FWEFNUExFX1RFWFQpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkRXhhbXBsZVRleHQ6IFR1aVRleHRmaWVsZEV4YW1wbGVUZXh0RGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX0ZPUk1BVCkgcmVhZG9ubHkgZGF0ZUZvcm1hdDogVHVpRGF0ZU1vZGUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IGRhdGVUZXh0cyQ6IE9ic2VydmFibGU8UmVjb3JkPFR1aURhdGVNb2RlLCBzdHJpbmc+PixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkID8gdGhpcy50ZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudGV4dGZpZWxkICYmIHRoaXMudGV4dGZpZWxkLmZvY3VzZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkTW9iaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01vYmlsZSAmJiAhIXRoaXMubW9iaWxlQ2FsZW5kYXI7XG4gICAgfVxuXG4gICAgZ2V0IGNhbGVuZGFySWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc2l6ZUJpZ2dlcih0aGlzLnRleHRmaWVsZFNpemUuc2l6ZSlcbiAgICAgICAgICAgID8gJ3R1aUljb25DYWxlbmRhckxhcmdlJ1xuICAgICAgICAgICAgOiAndHVpSWNvbkNhbGVuZGFyJztcbiAgICB9XG5cbiAgICBnZXQgY2FuT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbXB1dGVkRGlzYWJsZWQgJiYgIXRoaXMucmVhZE9ubHkgJiYgIXRoaXMuY29tcHV0ZWRNb2JpbGU7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkRXhhbXBsZVRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMubGVuZ3RoID8gdGhpcy50ZXh0ZmllbGRFeGFtcGxlVGV4dC5leGFtcGxlVGV4dCA6ICcnO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZE1hc2soKTogVHVpVGV4dE1hc2tPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlUGVyaW9kID8gRU1QVFlfTUFTSyA6IHRoaXMudGV4dE1hc2tPcHRpb25zO1xuICAgIH1cblxuICAgIGdldCBhY3RpdmVQZXJpb2QoKTogVHVpRGF5UmFuZ2VQZXJpb2QgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaXRlbXMuZmluZChpdGVtID0+XG4gICAgICAgICAgICAgICAgbnVsbGFibGVTYW1lKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBpdGVtLnJhbmdlLFxuICAgICAgICAgICAgICAgICAgICAoYSwgYikgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGEuZnJvbS5kYXlTYW1lKGIuZnJvbS5kYXlMaW1pdCh0aGlzLm1pbiwgdGhpcy5tYXgpKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgYS50by5kYXlTYW1lKGIudG8uZGF5TGltaXQodGhpcy5taW4sIHRoaXMubWF4KSksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICkgfHwgbnVsbFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZSwgbmF0aXZlVmFsdWUsIGFjdGl2ZVBlcmlvZH0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChhY3RpdmVQZXJpb2QpIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcoYWN0aXZlUGVyaW9kKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZSA/IHZhbHVlLmZvcm1hdHRlZERheVJhbmdlIDogbmF0aXZlVmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGlubmVyUHNldWRvRm9jdXNlZCgpOiBib29sZWFuIHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLnBzZXVkb0ZvY3VzZWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vcGVuIHx8IHRoaXMuY29tcHV0ZWRGb2N1c2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50ID8gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgc2V0IG5hdGl2ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldENvbXB1dGVkUmFuZ2VGaWxsZXIoZGF0ZUZpbGxlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlUGVyaW9kID8gJycgOiB0aGlzLmdldERhdGVSYW5nZUZpbGxlcihkYXRlRmlsbGVyKTtcbiAgICB9XG5cbiAgICBvbk1vYmlsZUNsaWNrKCkge1xuICAgICAgICBpZiAoIXRoaXMubW9iaWxlQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZVxuICAgICAgICAgICAgLm9wZW48VHVpRGF5UmFuZ2U+KFxuICAgICAgICAgICAgICAgIG5ldyBQb2x5bW9ycGhldXNDb21wb25lbnQodGhpcy5tb2JpbGVDYWxlbmRhciwgdGhpcy5pbmplY3RvciksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBzaXplOiAnZnVsbHNjcmVlbicsXG4gICAgICAgICAgICAgICAgICAgIGNsb3NlYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpbmdsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW46IHRoaXMubWF4TGVuZ3RoTWFwcGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWluLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXhMZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXg6IHRoaXMubWF4TGVuZ3RoTWFwcGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWF4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXhMZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogdGhpcy5kaXNhYmxlZEl0ZW1IYW5kbGVyLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBvbkNsaWNrKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk9wZW5DaGFuZ2Uob3BlbjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLm9wZW4gPSBvcGVuO1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCAhPT0gREFURV9SQU5HRV9GSUxMRVJfTEVOR1RIKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IFR1aURheVJhbmdlLm5vcm1hbGl6ZVBhcnNlKHZhbHVlKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFxuICAgICAgICAgICAgIXRoaXMubWluTGVuZ3RoICYmICF0aGlzLm1heExlbmd0aFxuICAgICAgICAgICAgICAgID8gcGFyc2VkVmFsdWVcbiAgICAgICAgICAgICAgICA6IHRoaXMuY2xhbXBWYWx1ZShwYXJzZWRWYWx1ZSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25SYW5nZUNoYW5nZShyYW5nZTogVHVpRGF5UmFuZ2UpIHtcbiAgICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG5cbiAgICAgICAgaWYgKCFudWxsYWJsZVNhbWU8VHVpRGF5UmFuZ2U+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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UUFFMUIsV0FBQSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDdkIsV0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7UUFFdEIsV0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7T0EvQ2xCLHlCQUF5QixDQWdSckM7SUFBRCxnQ0FBQztDQUFBLEFBaFJELENBQ1ksa0JBQWtCLEdBK1E3QjtTQWhSWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlDb250cm9sLFxuICAgIEFMV0FZU19GQUxTRV9IQU5ETEVSLFxuICAgIGNsYW1wLFxuICAgIERBVEVfRklMTEVSX0xFTkdUSCxcbiAgICBudWxsYWJsZVNhbWUsXG4gICAgVFVJX0RBVEVfRk9STUFULFxuICAgIFRVSV9GSVJTVF9EQVksXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFRVSV9MQVNUX0RBWSxcbiAgICBUdWlCb29sZWFuSGFuZGxlcixcbiAgICBUdWlEYXRlTW9kZSxcbiAgICBUdWlEYXksXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU1vbnRoLFxuICAgIHR1aVB1cmUsXG4gICAgVHVpVGltZSxcbiAgICBUdWlUaW1lTW9kZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIHNpemVCaWdnZXIsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgIFR1aVRleHRNYXNrT3B0aW9ucyxcbiAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXgsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7REFURV9USU1FX1NFUEFSQVRPUiwgVFVJX0RBVEVfTUFTS30gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb25zdGFudHMnO1xuaW1wb3J0IHtMRUZUX0FMSUdORURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9wcm92aWRlcnMnO1xuaW1wb3J0IHtcbiAgICBUVUlfQ0FMRU5EQVJfREFUQV9TVFJFQU0sXG4gICAgVFVJX0RBVEVfVEVYVFMsXG4gICAgVFVJX1RJTUVfVEVYVFMsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7XG4gICAgdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZERhdGVUaW1lUGlwZSxcbiAgICB0dWlDcmVhdGVUaW1lTWFzayxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscy9tYXNrJztcbmltcG9ydCB7VHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3Rvcnl9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHBsdWNrfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIFRPRE86IHJlbW92ZSBpbiBpdnkgY29tcGlsYXRpb25cbmV4cG9ydCBjb25zdCBUSU1FX1NUUkVBTV9GQUNUT1JZID0gVHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3Rvcnk7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1kYXRlLXRpbWUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1kYXRlLXRpbWUudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZGF0ZS10aW1lLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXREYXRlVGltZUNvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9DQUxFTkRBUl9EQVRBX1NUUkVBTSxcbiAgICAgICAgICAgIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIG5ldyBTZWxmKCksIE5nQ29udHJvbF1dLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogVElNRV9TVFJFQU1fRkFDVE9SWSxcbiAgICAgICAgfSxcbiAgICAgICAgTEVGVF9BTElHTkVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlVGltZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPFtUdWlEYXkgfCBudWxsLCBUdWlUaW1lIHwgbnVsbF0+XG4gICAgaW1wbGVtZW50c1xuICAgICAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8VHVpRGF5IHwgW1R1aURheSwgVHVpVGltZV0+LFxuICAgICAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3Ige1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW4gPSBUVUlfRklSU1RfREFZO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IFRVSV9MQVNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxUdWlEYXk+ID0gQUxXQVlTX0ZBTFNFX0hBTkRMRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGVmYXVsdEFjdGl2ZVllYXJNb250aCA9IFR1aU1vbnRoLmN1cnJlbnRMb2NhbCgpO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHRpbWVNb2RlOiBUdWlUaW1lTW9kZSA9ICdISDpNTSc7XG5cbiAgICBvcGVuID0gZmFsc2U7XG4gICAgcmVhZG9ubHkgZmlsbGVyJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmRhdGVUZXh0cyQucGlwZShwbHVjayh0aGlzLmRhdGVGb3JtYXQpKSxcbiAgICAgICAgdGhpcy50aW1lVGV4dHMkLnBpcGUocGx1Y2sodGhpcy50aW1lTW9kZSkpLFxuICAgIF0pLnBpcGUobWFwKGZpbGxlcnMgPT4gdGhpcy5nZXREYXRlVGltZVN0cmluZyguLi5maWxsZXJzKSkpO1xuXG4gICAgcHJpdmF0ZSBtb250aDogVHVpTW9udGggfCBudWxsID0gbnVsbDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfVEVYVEZJRUxEX1NJWkUpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dGZpZWxkU2l6ZTogVHVpVGV4dGZpZWxkU2l6ZURpcmVjdGl2ZSxcbiAgICAgICAgQEluamVjdChUVUlfREFURV9GT1JNQVQpIHJlYWRvbmx5IGRhdGVGb3JtYXQ6IFR1aURhdGVNb2RlLFxuICAgICAgICBASW5qZWN0KFRVSV9USU1FX1RFWFRTKVxuICAgICAgICByZWFkb25seSB0aW1lVGV4dHMkOiBPYnNlcnZhYmxlPFJlY29yZDxUdWlUaW1lTW9kZSwgc3RyaW5nPj4sXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfVEVYVFMpXG4gICAgICAgIHJlYWRvbmx5IGRhdGVUZXh0cyQ6IE9ic2VydmFibGU8UmVjb3JkPFR1aURhdGVNb2RlLCBzdHJpbmc+PixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIH1cblxuICAgIGdldCBmaWxsZXJMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIERBVEVfRklMTEVSX0xFTkdUSCArIERBVEVfVElNRV9TRVBBUkFUT1IubGVuZ3RoICsgdGhpcy50aW1lTW9kZS5sZW5ndGg7XG4gICAgfVxuXG4gICAgZ2V0IHRleHRNYXNrT3B0aW9ucygpOiBUdWlUZXh0TWFza09wdGlvbnMge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVNYXNrKFxuICAgICAgICAgICAgdGhpcy52YWx1ZVswXSxcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJNaW5EYXksXG4gICAgICAgICAgICB0aGlzLmNhbGVuZGFyTWF4RGF5LFxuICAgICAgICAgICAgdGhpcy50aW1lTW9kZSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRmaWVsZCA/IHRoaXMudGV4dGZpZWxkLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnRleHRmaWVsZCAmJiB0aGlzLnRleHRmaWVsZC5mb2N1c2VkO1xuICAgIH1cblxuICAgIGdldCBjYWxlbmRhckljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHNpemVCaWdnZXIodGhpcy50ZXh0ZmllbGRTaXplLnNpemUpXG4gICAgICAgICAgICA/ICd0dWlJY29uQ2FsZW5kYXJMYXJnZSdcbiAgICAgICAgICAgIDogJ3R1aUljb25DYWxlbmRhcic7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBuYXRpdmVWYWx1ZSwgdGltZU1vZGV9ID0gdGhpcztcbiAgICAgICAgY29uc3QgW2RhdGUsIHRpbWVdID0gdmFsdWU7XG4gICAgICAgIGNvbnN0IGhhc1RpbWVJbnB1dENoYXJzID0gbmF0aXZlVmFsdWUubGVuZ3RoID4gREFURV9GSUxMRVJfTEVOR1RIO1xuXG4gICAgICAgIGlmICghZGF0ZSB8fCAoIXRpbWUgJiYgaGFzVGltZUlucHV0Q2hhcnMpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmF0aXZlVmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlVGltZVN0cmluZyhkYXRlLCB0aW1lLCB0aW1lTW9kZSk7XG4gICAgfVxuXG4gICAgZ2V0IGNhbGVuZGFyVmFsdWUoKTogVHVpRGF5IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlWzBdO1xuICAgIH1cblxuICAgIGdldCBjYWxlbmRhck1pbkRheSgpOiBUdWlEYXkge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLm1pbikgPyB0aGlzLm1pblswXSA6IHRoaXMubWluO1xuICAgIH1cblxuICAgIGdldCBjYWxlbmRhck1heERheSgpOiBUdWlEYXkge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLm1heCkgPyB0aGlzLm1heFswXSA6IHRoaXMubWF4O1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZEFjdGl2ZVllYXJNb250aCgpOiBUdWlNb250aCB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vbnRoIHx8IHRoaXMudmFsdWVbMF0gfHwgdGhpcy5kZWZhdWx0QWN0aXZlWWVhck1vbnRoO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50ID8gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgc2V0IG5hdGl2ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjYW5PcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcHV0ZWREaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgb25DbGljaygpIHtcbiAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA8IERBVEVfRklMTEVSX0xFTkdUSCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShbbnVsbCwgbnVsbF0pO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbZGF0ZSwgdGltZV0gPSB2YWx1ZS5zcGxpdChEQVRFX1RJTUVfU0VQQVJBVE9SKTtcblxuICAgICAgICBjb25zdCBwYXJzZWREYXRlID0gVHVpRGF5Lm5vcm1hbGl6ZVBhcnNlKGRhdGUpO1xuICAgICAgICBjb25zdCBwYXJzZWRUaW1lID1cbiAgICAgICAgICAgIHRpbWUgJiYgdGltZS5sZW5ndGggPT09IHRoaXMudGltZU1vZGUubGVuZ3RoXG4gICAgICAgICAgICAgICAgPyB0aGlzLmNsYW1wVGltZShUdWlUaW1lLmZyb21TdHJpbmcodGltZSksIHBhcnNlZERhdGUpXG4gICAgICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFtwYXJzZWREYXRlLCBwYXJzZWRUaW1lXSk7XG4gICAgfVxuXG4gICAgb25EYXlDbGljayhkYXk6IFR1aURheSkge1xuICAgICAgICBjb25zdCBtb2RpZmllZFRpbWUgPSB0aGlzLnZhbHVlWzFdICYmIHRoaXMuY2xhbXBUaW1lKHRoaXMudmFsdWVbMV0sIGRheSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShbZGF5LCBtb2RpZmllZFRpbWVdKTtcbiAgICAgICAgdGhpcy51cGRhdGVOYXRpdmVWYWx1ZShkYXkpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWQoaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgb25Nb250aENoYW5nZShtb250aDogVHVpTW9udGgpIHtcbiAgICAgICAgdGhpcy5tb250aCA9IG1vbnRoO1xuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGZvY3VzZWQgfHxcbiAgICAgICAgICAgIHRoaXMudmFsdWVbMF0gPT09IG51bGwgfHxcbiAgICAgICAgICAgIHRoaXMudmFsdWVbMV0gIT09IG51bGwgfHxcbiAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUubGVuZ3RoIDw9IHRoaXMuZmlsbGVyTGVuZ3RoICsgREFURV9USU1FX1NFUEFSQVRPUi5sZW5ndGggfHxcbiAgICAgICAgICAgIHRoaXMudGltZU1vZGUgPT09ICdISDpNTSdcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbLCB0aW1lXSA9IHRoaXMubmF0aXZlVmFsdWUuc3BsaXQoREFURV9USU1FX1NFUEFSQVRPUik7XG5cbiAgICAgICAgaWYgKCF0aW1lKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJzZWRUaW1lID0gVHVpVGltZS5mcm9tU3RyaW5nKHRpbWUpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoW3RoaXMudmFsdWVbMF0sIHBhcnNlZFRpbWVdKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm5hdGl2ZVZhbHVlLmVuZHNXaXRoKCcuJykgfHwgdGhpcy5uYXRpdmVWYWx1ZS5lbmRzV2l0aCgnOicpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHRoaXMubmF0aXZlVmFsdWUuc2xpY2UoMCwgLTEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKCkge1xuICAgICAgICBzdXBlci5zZXREaXNhYmxlZFN0YXRlKCk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IFtUdWlEYXkgfCBudWxsLCBUdWlUaW1lIHwgbnVsbF0gfCBudWxsKSB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuXG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB2YWx1ZSAmJiAodmFsdWVbMF0gfHwgdmFsdWVbMV0pID8gdGhpcy5jb21wdXRlZFZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogW1R1aURheSB8IG51bGwsIFR1aVRpbWUgfCBudWxsXSB7XG4gICAgICAgIHJldHVybiBbbnVsbCwgbnVsbF07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHZhbHVlSWRlbnRpY2FsQ29tcGFyYXRvcihcbiAgICAgICAgb2xkVmFsdWU6IFtUdWlEYXkgfCBudWxsLCBUdWlUaW1lIHwgbnVsbF0sXG4gICAgICAgIG5ld1ZhbHVlOiBbVHVpRGF5IHwgbnVsbCwgVHVpVGltZSB8IG51bGxdLFxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgbnVsbGFibGVTYW1lKG9sZFZhbHVlWzBdLCBuZXdWYWx1ZVswXSwgKGEsIGIpID0+IGEuZGF5U2FtZShiKSkgJiZcbiAgICAgICAgICAgIG51bGxhYmxlU2FtZShcbiAgICAgICAgICAgICAgICBvbGRWYWx1ZVsxXSxcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZVsxXSxcbiAgICAgICAgICAgICAgICAoYSwgYikgPT4gYS50b1N0cmluZygpID09PSBiLnRvU3RyaW5nKCksXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVOYXRpdmVWYWx1ZShkYXk6IFR1aURheSkge1xuICAgICAgICBjb25zdCB0aW1lID0gdGhpcy5uYXRpdmVWYWx1ZS5zcGxpdChEQVRFX1RJTUVfU0VQQVJBVE9SKVsxXSB8fCAnJztcblxuICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdGhpcy5nZXREYXRlVGltZVN0cmluZyhkYXksIHRpbWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xhbXBUaW1lKHRpbWU6IFR1aVRpbWUsIGRheTogVHVpRGF5KTogVHVpVGltZSB7XG4gICAgICAgIGNvbnN0IG1zID0gdGltZS50b0Fic29sdXRlTWlsbGlzZWNvbmRzKCk7XG4gICAgICAgIGNvbnN0IG1pbiA9XG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KHRoaXMubWluKSAmJiBkYXkuZGF5U2FtZSh0aGlzLmNhbGVuZGFyTWluRGF5KVxuICAgICAgICAgICAgICAgID8gdGhpcy5taW5bMV0udG9BYnNvbHV0ZU1pbGxpc2Vjb25kcygpXG4gICAgICAgICAgICAgICAgOiAtSW5maW5pdHk7XG4gICAgICAgIGNvbnN0IG1heCA9XG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KHRoaXMubWF4KSAmJiBkYXkuZGF5U2FtZSh0aGlzLmNhbGVuZGFyTWF4RGF5KVxuICAgICAgICAgICAgICAgID8gdGhpcy5tYXhbMV0udG9BYnNvbHV0ZU1pbGxpc2Vjb25kcygpXG4gICAgICAgICAgICAgICAgOiBJbmZpbml0eTtcblxuICAgICAgICByZXR1cm4gVHVpVGltZS5mcm9tQWJzb2x1dGVNaWxsaXNlY29uZHMoY2xhbXAobXMsIG1pbiwgbWF4KSk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNhbGN1bGF0ZU1hc2soXG4gICAgICAgIGRheTogVHVpRGF5IHwgbnVsbCxcbiAgICAgICAgbWluOiBUdWlEYXksXG4gICAgICAgIG1heDogVHVpRGF5LFxuICAgICAgICB0aW1lTW9kZTogVHVpVGltZU1vZGUsXG4gICAgKTogVHVpVGV4dE1hc2tPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1hc2s6IFsuLi5UVUlfREFURV9NQVNLLCAnLCcsICcgJywgLi4udHVpQ3JlYXRlVGltZU1hc2sodGltZU1vZGUpXSxcbiAgICAgICAgICAgIHBpcGU6IHR1aUNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlVGltZVBpcGUoe3ZhbHVlOiBkYXksIG1pbiwgbWF4fSwgdGltZU1vZGUpLFxuICAgICAgICAgICAgZ3VpZGU6IGZhbHNlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXREYXRlVGltZVN0cmluZyhcbiAgICAgICAgZGF0ZTogVHVpRGF5IHwgc3RyaW5nLFxuICAgICAgICB0aW1lOiBUdWlUaW1lIHwgc3RyaW5nIHwgbnVsbCxcbiAgICAgICAgdGltZU1vZGU6IFR1aVRpbWVNb2RlID0gJ0hIOk1NJyxcbiAgICApOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBkYXRlU3RyaW5nID0gZGF0ZSBpbnN0YW5jZW9mIFR1aURheSA/IGRhdGUudG9TdHJpbmcoKSA6IGRhdGU7XG4gICAgICAgIGNvbnN0IHRpbWVTdHJpbmcgPSB0aW1lIGluc3RhbmNlb2YgVHVpVGltZSA/IHRpbWUudG9TdHJpbmcodGltZU1vZGUpIDogdGltZSB8fCAnJztcblxuICAgICAgICByZXR1cm4gYCR7ZGF0ZVN0cmluZ30ke0RBVEVfVElNRV9TRVBBUkFUT1J9JHt0aW1lU3RyaW5nfWA7XG4gICAgfVxufVxuIl19
303
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1kYXRlLXRpbWUvIiwic291cmNlcyI6WyJpbnB1dC1kYXRlLXRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixLQUFLLEVBQ0wsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixlQUFlLEVBQ2YsYUFBYSxFQUNiLDJCQUEyQixFQUMzQixZQUFZLEVBR1osTUFBTSxFQUNOLGNBQWMsRUFFZCxRQUFRLEVBQ1IsT0FBTyxFQUNQLE9BQU8sR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsVUFBVSxFQUNWLGtCQUFrQixFQUNsQiw4QkFBOEIsRUFDOUIseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQixxQkFBcUIsR0FDeEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsbUJBQW1CLEVBQUUsYUFBYSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDM0UsT0FBTyxFQUFDLHlDQUF5QyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUNILHdCQUF3QixFQUN4QixjQUFjLEVBQ2QsY0FBYyxHQUNqQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDSCxrQ0FBa0MsRUFDbEMsaUJBQWlCLEdBQ3BCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFDLG1DQUFtQyxF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UUFFMUIsV0FBQSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDdkIsV0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7UUFFdEIsV0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7T0FoRGxCLHlCQUF5QixDQWlSckM7SUFBRCxnQ0FBQztDQUFBLEFBalJELENBQ1ksa0JBQWtCLEdBZ1I3QjtTQWpSWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlDb250cm9sLFxuICAgIEFMV0FZU19GQUxTRV9IQU5ETEVSLFxuICAgIGNsYW1wLFxuICAgIERBVEVfRklMTEVSX0xFTkdUSCxcbiAgICBudWxsYWJsZVNhbWUsXG4gICAgVFVJX0RBVEVfRk9STUFULFxuICAgIFRVSV9GSVJTVF9EQVksXG4gICAgVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgIFRVSV9MQVNUX0RBWSxcbiAgICBUdWlCb29sZWFuSGFuZGxlcixcbiAgICBUdWlEYXRlTW9kZSxcbiAgICBUdWlEYXksXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU1vbnRoLFxuICAgIHR1aVB1cmUsXG4gICAgVHVpVGltZSxcbiAgICBUdWlUaW1lTW9kZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIHNpemVCaWdnZXIsXG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlUZXh0ZmllbGRTaXplRGlyZWN0aXZlLFxuICAgIFR1aVRleHRNYXNrT3B0aW9ucyxcbiAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXgsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7REFURV9USU1FX1NFUEFSQVRPUiwgVFVJX0RBVEVfTUFTS30gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb25zdGFudHMnO1xuaW1wb3J0IHtMRUZUX0FMSUdORURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9wcm92aWRlcnMnO1xuaW1wb3J0IHtcbiAgICBUVUlfQ0FMRU5EQVJfREFUQV9TVFJFQU0sXG4gICAgVFVJX0RBVEVfVEVYVFMsXG4gICAgVFVJX1RJTUVfVEVYVFMsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7XG4gICAgdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZERhdGVUaW1lUGlwZSxcbiAgICB0dWlDcmVhdGVUaW1lTWFzayxcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC91dGlscy9tYXNrJztcbmltcG9ydCB7VHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3Rvcnl9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHBsdWNrfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIFRPRE86IHJlbW92ZSBpbiBpdnkgY29tcGlsYXRpb25cbmV4cG9ydCBjb25zdCBUSU1FX1NUUkVBTV9GQUNUT1JZID0gVHVpUmVwbGF5Q29udHJvbFZhbHVlQ2hhbmdlc0ZhY3Rvcnk7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1kYXRlLXRpbWUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1kYXRlLXRpbWUudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZGF0ZS10aW1lLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHVpSW5wdXREYXRlVGltZUNvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9DQUxFTkRBUl9EQVRBX1NUUkVBTSxcbiAgICAgICAgICAgIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIG5ldyBTZWxmKCksIE5nQ29udHJvbF1dLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogVElNRV9TVFJFQU1fRkFDVE9SWSxcbiAgICAgICAgfSxcbiAgICAgICAgTEVGVF9BTElHTkVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXREYXRlVGltZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPFtUdWlEYXkgfCBudWxsLCBUdWlUaW1lIHwgbnVsbF0+XG4gICAgaW1wbGVtZW50c1xuICAgICAgICBUdWlXaXRoT3B0aW9uYWxNaW5NYXg8VHVpRGF5IHwgW1R1aURheSwgVHVpVGltZV0+LFxuICAgICAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluID0gVFVJX0ZJUlNUX0RBWTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtYXggPSBUVUlfTEFTVF9EQVk7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgZGlzYWJsZWRJdGVtSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXI8VHVpRGF5PiA9IEFMV0FZU19GQUxTRV9IQU5ETEVSO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRlZmF1bHRBY3RpdmVZZWFyTW9udGggPSBUdWlNb250aC5jdXJyZW50TG9jYWwoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICB0aW1lTW9kZTogVHVpVGltZU1vZGUgPSAnSEg6TU0nO1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuICAgIHJlYWRvbmx5IGZpbGxlciQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5kYXRlVGV4dHMkLnBpcGUocGx1Y2sodGhpcy5kYXRlRm9ybWF0KSksXG4gICAgICAgIHRoaXMudGltZVRleHRzJC5waXBlKHBsdWNrKHRoaXMudGltZU1vZGUpKSxcbiAgICBdKS5waXBlKG1hcChmaWxsZXJzID0+IHRoaXMuZ2V0RGF0ZVRpbWVTdHJpbmcoLi4uZmlsbGVycykpKTtcblxuICAgIHByaXZhdGUgbW9udGg6IFR1aU1vbnRoIHwgbnVsbCA9IG51bGw7XG5cbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemU6IFR1aVRleHRmaWVsZFNpemVEaXJlY3RpdmUsXG4gICAgICAgIEBJbmplY3QoVFVJX0RBVEVfRk9STUFUKSByZWFkb25seSBkYXRlRm9ybWF0OiBUdWlEYXRlTW9kZSxcbiAgICAgICAgQEluamVjdChUVUlfVElNRV9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgdGltZVRleHRzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8VHVpVGltZU1vZGUsIHN0cmluZz4+LFxuICAgICAgICBASW5qZWN0KFRVSV9EQVRFX1RFWFRTKVxuICAgICAgICByZWFkb25seSBkYXRlVGV4dHMkOiBPYnNlcnZhYmxlPFJlY29yZDxUdWlEYXRlTW9kZSwgc3RyaW5nPj4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgZmlsbGVyTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBEQVRFX0ZJTExFUl9MRU5HVEggKyBEQVRFX1RJTUVfU0VQQVJBVE9SLmxlbmd0aCArIHRoaXMudGltZU1vZGUubGVuZ3RoO1xuICAgIH1cblxuICAgIGdldCB0ZXh0TWFza09wdGlvbnMoKTogVHVpVGV4dE1hc2tPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlTWFzayhcbiAgICAgICAgICAgIHRoaXMudmFsdWVbMF0sXG4gICAgICAgICAgICB0aGlzLmNhbGVuZGFyTWluRGF5LFxuICAgICAgICAgICAgdGhpcy5jYWxlbmRhck1heERheSxcbiAgICAgICAgICAgIHRoaXMudGltZU1vZGUsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGQgPyB0aGlzLnRleHRmaWVsZC5uYXRpdmVGb2N1c2FibGVFbGVtZW50IDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXh0ZmllbGQgJiYgdGhpcy50ZXh0ZmllbGQuZm9jdXNlZDtcbiAgICB9XG5cbiAgICBnZXQgY2FsZW5kYXJJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBzaXplQmlnZ2VyKHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplKVxuICAgICAgICAgICAgPyAndHVpSWNvbkNhbGVuZGFyTGFyZ2UnXG4gICAgICAgICAgICA6ICd0dWlJY29uQ2FsZW5kYXInO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZSwgbmF0aXZlVmFsdWUsIHRpbWVNb2RlfSA9IHRoaXM7XG4gICAgICAgIGNvbnN0IFtkYXRlLCB0aW1lXSA9IHZhbHVlO1xuICAgICAgICBjb25zdCBoYXNUaW1lSW5wdXRDaGFycyA9IG5hdGl2ZVZhbHVlLmxlbmd0aCA+IERBVEVfRklMTEVSX0xFTkdUSDtcblxuICAgICAgICBpZiAoIWRhdGUgfHwgKCF0aW1lICYmIGhhc1RpbWVJbnB1dENoYXJzKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5hdGl2ZVZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZVRpbWVTdHJpbmcoZGF0ZSwgdGltZSwgdGltZU1vZGUpO1xuICAgIH1cblxuICAgIGdldCBjYWxlbmRhclZhbHVlKCk6IFR1aURheSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVswXTtcbiAgICB9XG5cbiAgICBnZXQgY2FsZW5kYXJNaW5EYXkoKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy5taW4pID8gdGhpcy5taW5bMF0gOiB0aGlzLm1pbjtcbiAgICB9XG5cbiAgICBnZXQgY2FsZW5kYXJNYXhEYXkoKTogVHVpRGF5IHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy5tYXgpID8gdGhpcy5tYXhbMF0gOiB0aGlzLm1heDtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRBY3RpdmVZZWFyTW9udGgoKTogVHVpTW9udGgge1xuICAgICAgICByZXR1cm4gdGhpcy5tb250aCB8fCB0aGlzLnZhbHVlWzBdIHx8IHRoaXMuZGVmYXVsdEFjdGl2ZVllYXJNb250aDtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA/IHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIHNldCBuYXRpdmVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgY2FuT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbXB1dGVkRGlzYWJsZWQgJiYgIXRoaXMucmVhZE9ubHk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPCBEQVRFX0ZJTExFUl9MRU5HVEgpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoW251bGwsIG51bGxdKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgW2RhdGUsIHRpbWVdID0gdmFsdWUuc3BsaXQoREFURV9USU1FX1NFUEFSQVRPUik7XG5cbiAgICAgICAgY29uc3QgcGFyc2VkRGF0ZSA9IFR1aURheS5ub3JtYWxpemVQYXJzZShkYXRlKTtcbiAgICAgICAgY29uc3QgcGFyc2VkVGltZSA9XG4gICAgICAgICAgICB0aW1lICYmIHRpbWUubGVuZ3RoID09PSB0aGlzLnRpbWVNb2RlLmxlbmd0aFxuICAgICAgICAgICAgICAgID8gdGhpcy5jbGFtcFRpbWUoVHVpVGltZS5mcm9tU3RyaW5nKHRpbWUpLCBwYXJzZWREYXRlKVxuICAgICAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShbcGFyc2VkRGF0ZSwgcGFyc2VkVGltZV0pO1xuICAgIH1cblxuICAgIG9uRGF5Q2xpY2soZGF5OiBUdWlEYXkpIHtcbiAgICAgICAgY29uc3QgbW9kaWZpZWRUaW1lID0gdGhpcy52YWx1ZVsxXSAmJiB0aGlzLmNsYW1wVGltZSh0aGlzLnZhbHVlWzFdLCBkYXkpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoW2RheSwgbW9kaWZpZWRUaW1lXSk7XG4gICAgICAgIHRoaXMudXBkYXRlTmF0aXZlVmFsdWUoZGF5KTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIG9uTW9udGhDaGFuZ2UobW9udGg6IFR1aU1vbnRoKSB7XG4gICAgICAgIHRoaXMubW9udGggPSBtb250aDtcbiAgICB9XG5cbiAgICBvbk9wZW5DaGFuZ2Uob3BlbjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLm9wZW4gPSBvcGVuO1xuICAgIH1cblxuICAgIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBmb2N1c2VkIHx8XG4gICAgICAgICAgICB0aGlzLnZhbHVlWzBdID09PSBudWxsIHx8XG4gICAgICAgICAgICB0aGlzLnZhbHVlWzFdICE9PSBudWxsIHx8XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlLmxlbmd0aCA8PSB0aGlzLmZpbGxlckxlbmd0aCArIERBVEVfVElNRV9TRVBBUkFUT1IubGVuZ3RoIHx8XG4gICAgICAgICAgICB0aGlzLnRpbWVNb2RlID09PSAnSEg6TU0nXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgWywgdGltZV0gPSB0aGlzLm5hdGl2ZVZhbHVlLnNwbGl0KERBVEVfVElNRV9TRVBBUkFUT1IpO1xuXG4gICAgICAgIGlmICghdGltZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyc2VkVGltZSA9IFR1aVRpbWUuZnJvbVN0cmluZyh0aW1lKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKFt0aGlzLnZhbHVlWzBdLCBwYXJzZWRUaW1lXSk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5uYXRpdmVWYWx1ZS5lbmRzV2l0aCgnLicpIHx8IHRoaXMubmF0aXZlVmFsdWUuZW5kc1dpdGgoJzonKSkge1xuICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB0aGlzLm5hdGl2ZVZhbHVlLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZSgpIHtcbiAgICAgICAgc3VwZXIuc2V0RGlzYWJsZWRTdGF0ZSgpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBbVHVpRGF5IHwgbnVsbCwgVHVpVGltZSB8IG51bGxdIHwgbnVsbCkge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcblxuICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdmFsdWUgJiYgKHZhbHVlWzBdIHx8IHZhbHVlWzFdKSA/IHRoaXMuY29tcHV0ZWRWYWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IFtUdWlEYXkgfCBudWxsLCBUdWlUaW1lIHwgbnVsbF0ge1xuICAgICAgICByZXR1cm4gW251bGwsIG51bGxdO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB2YWx1ZUlkZW50aWNhbENvbXBhcmF0b3IoXG4gICAgICAgIG9sZFZhbHVlOiBbVHVpRGF5IHwgbnVsbCwgVHVpVGltZSB8IG51bGxdLFxuICAgICAgICBuZXdWYWx1ZTogW1R1aURheSB8IG51bGwsIFR1aVRpbWUgfCBudWxsXSxcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIG51bGxhYmxlU2FtZShvbGRWYWx1ZVswXSwgbmV3VmFsdWVbMF0sIChhLCBiKSA9PiBhLmRheVNhbWUoYikpICYmXG4gICAgICAgICAgICBudWxsYWJsZVNhbWUoXG4gICAgICAgICAgICAgICAgb2xkVmFsdWVbMV0sXG4gICAgICAgICAgICAgICAgbmV3VmFsdWVbMV0sXG4gICAgICAgICAgICAgICAgKGEsIGIpID0+IGEudG9TdHJpbmcoKSA9PT0gYi50b1N0cmluZygpLFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlTmF0aXZlVmFsdWUoZGF5OiBUdWlEYXkpIHtcbiAgICAgICAgY29uc3QgdGltZSA9IHRoaXMubmF0aXZlVmFsdWUuc3BsaXQoREFURV9USU1FX1NFUEFSQVRPUilbMV0gfHwgJyc7XG5cbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHRoaXMuZ2V0RGF0ZVRpbWVTdHJpbmcoZGF5LCB0aW1lKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsYW1wVGltZSh0aW1lOiBUdWlUaW1lLCBkYXk6IFR1aURheSk6IFR1aVRpbWUge1xuICAgICAgICBjb25zdCBtcyA9IHRpbWUudG9BYnNvbHV0ZU1pbGxpc2Vjb25kcygpO1xuICAgICAgICBjb25zdCBtaW4gPVxuICAgICAgICAgICAgQXJyYXkuaXNBcnJheSh0aGlzLm1pbikgJiYgZGF5LmRheVNhbWUodGhpcy5jYWxlbmRhck1pbkRheSlcbiAgICAgICAgICAgICAgICA/IHRoaXMubWluWzFdLnRvQWJzb2x1dGVNaWxsaXNlY29uZHMoKVxuICAgICAgICAgICAgICAgIDogLUluZmluaXR5O1xuICAgICAgICBjb25zdCBtYXggPVxuICAgICAgICAgICAgQXJyYXkuaXNBcnJheSh0aGlzLm1heCkgJiYgZGF5LmRheVNhbWUodGhpcy5jYWxlbmRhck1heERheSlcbiAgICAgICAgICAgICAgICA/IHRoaXMubWF4WzFdLnRvQWJzb2x1dGVNaWxsaXNlY29uZHMoKVxuICAgICAgICAgICAgICAgIDogSW5maW5pdHk7XG5cbiAgICAgICAgcmV0dXJuIFR1aVRpbWUuZnJvbUFic29sdXRlTWlsbGlzZWNvbmRzKGNsYW1wKG1zLCBtaW4sIG1heCkpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVNYXNrKFxuICAgICAgICBkYXk6IFR1aURheSB8IG51bGwsXG4gICAgICAgIG1pbjogVHVpRGF5LFxuICAgICAgICBtYXg6IFR1aURheSxcbiAgICAgICAgdGltZU1vZGU6IFR1aVRpbWVNb2RlLFxuICAgICk6IFR1aVRleHRNYXNrT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtYXNrOiBbLi4uVFVJX0RBVEVfTUFTSywgJywnLCAnICcsIC4uLnR1aUNyZWF0ZVRpbWVNYXNrKHRpbWVNb2RlKV0sXG4gICAgICAgICAgICBwaXBlOiB0dWlDcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVRpbWVQaXBlKHt2YWx1ZTogZGF5LCBtaW4sIG1heH0sIHRpbWVNb2RlKSxcbiAgICAgICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZ2V0RGF0ZVRpbWVTdHJpbmcoXG4gICAgICAgIGRhdGU6IFR1aURheSB8IHN0cmluZyxcbiAgICAgICAgdGltZTogVHVpVGltZSB8IHN0cmluZyB8IG51bGwsXG4gICAgICAgIHRpbWVNb2RlOiBUdWlUaW1lTW9kZSA9ICdISDpNTScsXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZGF0ZVN0cmluZyA9IGRhdGUgaW5zdGFuY2VvZiBUdWlEYXkgPyBkYXRlLnRvU3RyaW5nKCkgOiBkYXRlO1xuICAgICAgICBjb25zdCB0aW1lU3RyaW5nID0gdGltZSBpbnN0YW5jZW9mIFR1aVRpbWUgPyB0aW1lLnRvU3RyaW5nKHRpbWVNb2RlKSA6IHRpbWUgfHwgJyc7XG5cbiAgICAgICAgcmV0dXJuIGAke2RhdGVTdHJpbmd9JHtEQVRFX1RJTUVfU0VQQVJBVE9SfSR7dGltZVN0cmluZ31gO1xuICAgIH1cbn1cbiJdfQ==
@@ -2,13 +2,14 @@ import { __decorate, __extends, __param } from "tslib";
2
2
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, HostListener, Inject, Input, Optional, Self, ViewChild, } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
4
  import { AbstractTuiNullableControl, TUI_FOCUSABLE_ITEM_ACCESSOR, tuiDefaultProp, } from '@taiga-ui/cdk';
5
- import { formatNumber, maskedMoneyValueIsEmpty, maskedNumberStringToNumber, tuiCreateAutoCorrectedNumberPipe, tuiCreateNumberMask, TuiPrimitiveTextfieldComponent, } from '@taiga-ui/core';
5
+ import { formatNumber, maskedMoneyValueIsEmpty, maskedNumberStringToNumber, TUI_DECIMAL_SYMBOLS, TUI_NUMBER_FORMAT, tuiCreateAutoCorrectedNumberPipe, tuiCreateNumberMask, TuiPrimitiveTextfieldComponent, } from '@taiga-ui/core';
6
6
  var DEFAULT_MAX_LENGTH = 18;
7
7
  // @dynamic
8
8
  var TuiInputNumberComponent = /** @class */ (function (_super) {
9
9
  __extends(TuiInputNumberComponent, _super);
10
- function TuiInputNumberComponent(control, changeDetectorRef) {
10
+ function TuiInputNumberComponent(control, changeDetectorRef, numberFormat) {
11
11
  var _this = _super.call(this, control, changeDetectorRef) || this;
12
+ _this.numberFormat = numberFormat;
12
13
  _this.min = -Infinity;
13
14
  _this.max = Infinity;
14
15
  _this.decimal = 'not-zero';
@@ -20,8 +21,10 @@ var TuiInputNumberComponent = /** @class */ (function (_super) {
20
21
  allowDecimal: decimal !== 'never',
21
22
  decimalLimit: precision,
22
23
  requireDecimal: decimal === 'always',
24
+ decimalSymbol: _this.numberFormat.decimalSeparator,
25
+ thousandSymbol: _this.numberFormat.thousandSeparator,
23
26
  }),
24
- pipe: tuiCreateAutoCorrectedNumberPipe(decimal === 'always' ? precision : 0, ',', nativeFocusableElement || undefined),
27
+ pipe: tuiCreateAutoCorrectedNumberPipe(decimal === 'always' ? precision : 0, _this.numberFormat.decimalSeparator, _this.numberFormat.thousandSeparator, nativeFocusableElement || undefined),
25
28
  guide: false,
26
29
  }); };
27
30
  return _this;
@@ -60,7 +63,8 @@ var TuiInputNumberComponent = /** @class */ (function (_super) {
60
63
  Object.defineProperty(TuiInputNumberComponent.prototype, "calculatedMaxLength", {
61
64
  get: function () {
62
65
  return (DEFAULT_MAX_LENGTH +
63
- (this.decimal !== 'never' && this.nativeValue.includes(',')
66
+ (this.decimal !== 'never' &&
67
+ this.nativeValue.includes(this.numberFormat.decimalSeparator)
64
68
  ? this.precision + 1
65
69
  : 0));
66
70
  },
@@ -79,7 +83,7 @@ var TuiInputNumberComponent = /** @class */ (function (_super) {
79
83
  if (this.focused && this.decimal !== 'always') {
80
84
  limit = fraction.length;
81
85
  }
82
- return formatNumber(value, limit);
86
+ return formatNumber(value, limit, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator);
83
87
  },
84
88
  enumerable: true,
85
89
  configurable: true
@@ -110,19 +114,20 @@ var TuiInputNumberComponent = /** @class */ (function (_super) {
110
114
  return;
111
115
  }
112
116
  this.updateValue(capped);
113
- if (capped !== maskedNumberStringToNumber(value)) {
117
+ if (capped !==
118
+ maskedNumberStringToNumber(value, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator)) {
114
119
  this.nativeValue = this.formattedValue;
115
120
  }
116
121
  };
117
122
  TuiInputNumberComponent.prototype.onKeyDown = function (event) {
118
- if (event.key !== ',' && event.key !== '.') {
123
+ if (TUI_DECIMAL_SYMBOLS.indexOf(event.key) === -1) {
119
124
  return;
120
125
  }
121
126
  if (this.decimal === 'never') {
122
127
  event.preventDefault();
123
128
  return;
124
129
  }
125
- if (this.nativeValue.includes(',')) {
130
+ if (this.nativeValue.includes(this.numberFormat.decimalSeparator)) {
126
131
  event.preventDefault();
127
132
  this.setCaretAfterComma();
128
133
  }
@@ -132,7 +137,7 @@ var TuiInputNumberComponent = /** @class */ (function (_super) {
132
137
  if (focused) {
133
138
  return;
134
139
  }
135
- var nativeNumberValue = maskedNumberStringToNumber(this.nativeValue);
140
+ var nativeNumberValue = this.nativeNumberValue;
136
141
  if (isNaN(nativeNumberValue)) {
137
142
  this.clear();
138
143
  return;
@@ -148,7 +153,7 @@ var TuiInputNumberComponent = /** @class */ (function (_super) {
148
153
  this.updatePressed(pressed);
149
154
  };
150
155
  TuiInputNumberComponent.prototype.onZero = function (event) {
151
- var decimal = this.nativeValue.split(',')[1] || '';
156
+ var decimal = this.nativeValue.split(this.numberFormat.decimalSeparator)[1] || '';
152
157
  var nativeFocusableElement = this.nativeFocusableElement;
153
158
  if (decimal.length < this.precision ||
154
159
  !nativeFocusableElement ||
@@ -164,7 +169,7 @@ var TuiInputNumberComponent = /** @class */ (function (_super) {
164
169
  if (this.nativeValue === '') {
165
170
  return true;
166
171
  }
167
- var nativeNumberValue = maskedNumberStringToNumber(this.nativeValue);
172
+ var nativeNumberValue = this.nativeNumberValue;
168
173
  return nativeNumberValue >= this.min && nativeNumberValue <= this.max;
169
174
  },
170
175
  enumerable: true,
@@ -172,7 +177,7 @@ var TuiInputNumberComponent = /** @class */ (function (_super) {
172
177
  });
173
178
  Object.defineProperty(TuiInputNumberComponent.prototype, "isNativeValueNotFinished", {
174
179
  get: function () {
175
- var nativeNumberValue = maskedNumberStringToNumber(this.nativeValue);
180
+ var nativeNumberValue = this.nativeNumberValue;
176
181
  return nativeNumberValue < 0
177
182
  ? nativeNumberValue > this.max
178
183
  : nativeNumberValue < this.min;
@@ -194,12 +199,19 @@ var TuiInputNumberComponent = /** @class */ (function (_super) {
194
199
  enumerable: true,
195
200
  configurable: true
196
201
  });
202
+ Object.defineProperty(TuiInputNumberComponent.prototype, "nativeNumberValue", {
203
+ get: function () {
204
+ return maskedNumberStringToNumber(this.nativeValue, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator);
205
+ },
206
+ enumerable: true,
207
+ configurable: true
208
+ });
197
209
  TuiInputNumberComponent.prototype.clear = function () {
198
210
  this.nativeValue = '';
199
211
  this.updateValue(null);
200
212
  };
201
213
  TuiInputNumberComponent.prototype.absoluteCapInputValue = function (inputValue) {
202
- var value = maskedNumberStringToNumber(inputValue);
214
+ var value = maskedNumberStringToNumber(inputValue, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator);
203
215
  var capped = value < 0 ? Math.max(this.min, value) : Math.min(value, this.max);
204
216
  var ineligibleValue = isNaN(capped) || capped < this.min || capped > this.max;
205
217
  return ineligibleValue ? null : capped;
@@ -214,7 +226,8 @@ var TuiInputNumberComponent = /** @class */ (function (_super) {
214
226
  var TuiInputNumberComponent_1;
215
227
  TuiInputNumberComponent.ctorParameters = function () { return [
216
228
  { type: NgControl, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgControl,] }] },
217
- { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] }
229
+ { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },
230
+ { type: undefined, decorators: [{ type: Inject, args: [TUI_NUMBER_FORMAT,] }] }
218
231
  ]; };
219
232
  __decorate([
220
233
  Input(),
@@ -258,9 +271,10 @@ var TuiInputNumberComponent = /** @class */ (function (_super) {
258
271
  __param(0, Optional()),
259
272
  __param(0, Self()),
260
273
  __param(0, Inject(NgControl)),
261
- __param(1, Inject(ChangeDetectorRef))
274
+ __param(1, Inject(ChangeDetectorRef)),
275
+ __param(2, Inject(TUI_NUMBER_FORMAT))
262
276
  ], TuiInputNumberComponent);
263
277
  return TuiInputNumberComponent;
264
278
  }(AbstractTuiNullableControl));
265
279
  export { TuiInputNumberComponent };
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1udW1iZXIvIiwic291cmNlcyI6WyJpbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLDJCQUEyQixFQUMzQixjQUFjLEdBSWpCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLDBCQUEwQixFQUMxQixnQ0FBZ0MsRUFDaEMsbUJBQW1CLEVBRW5CLDhCQUE4QixHQUVqQyxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLElBQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0FBRTlCLFdBQVc7QUFhWDtJQUNZLDJDQUFrQztJQTZDMUMsaUNBSUksT0FBeUIsRUFDRSxpQkFBb0M7UUFMbkUsWUFPSSxrQkFBTSxPQUFPLEVBQUUsaUJBQWlCLENBQUMsU0FDcEM7UUFqREQsU0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBSWhCLFNBQUcsR0FBRyxRQUFRLENBQUM7UUFJZixhQUFPLEdBQWdCLFVBQVUsQ0FBQztRQUlsQyxlQUFTLEdBQUcsQ0FBQyxDQUFDO1FBSWQsYUFBTyxHQUFHLEVBQUUsQ0FBQztRQUViLFVBQUksR0FBMkMsVUFDM0MsYUFBc0IsRUFDdEIsT0FBb0IsRUFDcEIsU0FBaUIsRUFDakIsc0JBQStDLElBQzlDLE9BQUEsQ0FBQztZQUNGLElBQUksRUFBRSxtQkFBbUIs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TUFBTSxTQUFDLGlCQUFpQjs7SUE5QzdCO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO3dEQUNEO0lBSWhCO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO3dEQUNGO0lBSWY7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLEVBQUU7NERBQ2lCO0lBSWxDO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFOzhEQUNIO0lBSWQ7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLEVBQUU7NERBQ0o7SUF1QmI7UUFEQyxTQUFTLENBQUMsOEJBQThCLENBQUM7dUVBQzJCO0lBMklyRTtRQURDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQzt5REFnQnJDO0lBdE1RLHVCQUF1QjtRQVpuQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLDJ5QkFBMkM7WUFFM0MsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSwyQkFBMkI7b0JBQ3BDLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLHlCQUF1QixFQUF2QixDQUF1QixDQUFDO2lCQUN6RDthQUNKOztTQUNKLENBQUM7UUFnRE8sV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsSUFBSSxFQUFFLENBQUE7UUFDTixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUVqQixXQUFBLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO09BbkRyQix1QkFBdUIsQ0FnUW5DO0lBQUQsOEJBQUM7Q0FBQSxBQWhRRCxDQUNZLDBCQUEwQixHQStQckM7U0FoUVksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLFxuICAgIFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpSW5wdXRNb2RlVCxcbiAgICBUdWlNYXBwZXIsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtcbiAgICBmb3JtYXROdW1iZXIsXG4gICAgbWFza2VkTW9uZXlWYWx1ZUlzRW1wdHksXG4gICAgbWFza2VkTnVtYmVyU3RyaW5nVG9OdW1iZXIsXG4gICAgdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZE51bWJlclBpcGUsXG4gICAgdHVpQ3JlYXRlTnVtYmVyTWFzayxcbiAgICBUdWlEZWNpbWFsVCxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpVGV4dE1hc2tPcHRpb25zLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5cbmNvbnN0IERFRkFVTFRfTUFYX0xFTkdUSCA9IDE4O1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtbnVtYmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtbnVtYmVyLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LW51bWJlci5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0TnVtYmVyQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dE51bWJlckNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8bnVtYmVyPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yIHtcbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluID0gLUluZmluaXR5O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IEluZmluaXR5O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRlY2ltYWw6IFR1aURlY2ltYWxUID0gJ25vdC16ZXJvJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwcmVjaXNpb24gPSAyO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHBvc3RmaXggPSAnJztcblxuICAgIG1hc2s6IFR1aU1hcHBlcjxib29sZWFuLCBUdWlUZXh0TWFza09wdGlvbnM+ID0gKFxuICAgICAgICBhbGxvd05lZ2F0aXZlOiBib29sZWFuLFxuICAgICAgICBkZWNpbWFsOiBUdWlEZWNpbWFsVCxcbiAgICAgICAgcHJlY2lzaW9uOiBudW1iZXIsXG4gICAgICAgIG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsLFxuICAgICkgPT4gKHtcbiAgICAgICAgbWFzazogdHVpQ3JlYXRlTnVtYmVyTWFzayh7XG4gICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiBhbGxvd05lZ2F0aXZlLFxuICAgICAgICAgICAgYWxsb3dEZWNpbWFsOiBkZWNpbWFsICE9PSAnbmV2ZXInLFxuICAgICAgICAgICAgZGVjaW1hbExpbWl0OiBwcmVjaXNpb24sXG4gICAgICAgICAgICByZXF1aXJlRGVjaW1hbDogZGVjaW1hbCA9PT0gJ2Fsd2F5cycsXG4gICAgICAgIH0pLFxuICAgICAgICBwaXBlOiB0dWlDcmVhdGVBdXRvQ29ycmVjdGVkTnVtYmVyUGlwZShcbiAgICAgICAgICAgIGRlY2ltYWwgPT09ICdhbHdheXMnID8gcHJlY2lzaW9uIDogMCxcbiAgICAgICAgICAgICcsJyxcbiAgICAgICAgICAgIG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfHwgdW5kZWZpbmVkLFxuICAgICAgICApLFxuICAgICAgICBndWlkZTogZmFsc2UsXG4gICAgfSk7XG5cbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByaW1pdGl2ZVRleHRmaWVsZD86IFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAhdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQgfHwgdGhpcy5jb21wdXRlZERpc2FibGVkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQgJiYgdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQuZm9jdXNlZDtcbiAgICB9XG5cbiAgICBnZXQgaXNOZWdhdGl2ZUFsbG93ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbiA8IDA7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0TW9kZSgpOiBUdWlJbnB1dE1vZGVUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVjaW1hbCA9PT0gJ25ldmVyJyA/ICdudW1lcmljJyA6ICdkZWNpbWFsJztcbiAgICB9XG5cbiAgICBnZXQgY2FsY3VsYXRlZE1heExlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgREVGQVVMVF9NQVhfTEVOR1RIICtcbiAgICAgICAgICAgICh0aGlzLmRlY2ltYWwgIT09ICduZXZlcicgJiYgdGhpcy5uYXRpdmVWYWx1ZS5pbmNsdWRlcygnLCcpXG4gICAgICAgICAgICAgICAgPyB0aGlzLnByZWNpc2lvbiArIDFcbiAgICAgICAgICAgICAgICA6IDApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGZvcm1hdHRlZFZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZSB8fCAwO1xuICAgICAgICBjb25zdCBhYnNWYWx1ZSA9IE1hdGguYWJzKHZhbHVlKTtcbiAgICAgICAgY29uc3QgaGFzRnJhY3Rpb24gPSBhYnNWYWx1ZSAlIDEgPiAwO1xuICAgICAgICBsZXQgbGltaXQgPSB0aGlzLmRlY2ltYWwgPT09ICdhbHdheXMnIHx8IGhhc0ZyYWN0aW9uID8gdGhpcy5wcmVjaXNpb24gOiAwO1xuXG4gICAgICAgIGNvbnN0IGZyYWN0aW9uID0gaGFzRnJhY3Rpb25cbiAgICAgICAgICAgID8gdmFsdWUudG9TdHJpbmcoKS5zcGxpdCgnLicpWzFdLnN1YnN0cigwLCB0aGlzLnByZWNpc2lvbilcbiAgICAgICAgICAgIDogJyc7XG5cbiAgICAgICAgaWYgKHRoaXMuZm9jdXNlZCAmJiB0aGlzLmRlY2ltYWwgIT09ICdhbHdheXMnKSB7XG4gICAgICAgICAgICBsaW1pdCA9IGZyYWN0aW9uLmxlbmd0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmb3JtYXROdW1iZXIodmFsdWUsIGxpbWl0KTtcbiAgICB9XG5cbiAgICBnZXQgY29tcHV0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2VkIHx8ICF0aGlzLmlzTmF0aXZlVmFsdWVJbkxpbWl0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbWFza2VkTW9uZXlWYWx1ZUlzRW1wdHkodGhpcy5uYXRpdmVWYWx1ZSkgPyB0aGlzLm5hdGl2ZVZhbHVlIDogJyc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXR0ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBvblZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKG1hc2tlZE1vbmV5VmFsdWVJc0VtcHR5KHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNOYXRpdmVWYWx1ZU5vdEZpbmlzaGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjYXBwZWQgPSB0aGlzLmFic29sdXRlQ2FwSW5wdXRWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKGNhcHBlZCA9PT0gbnVsbCB8fCBpc05hTihjYXBwZWQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGNhcHBlZCk7XG5cbiAgICAgICAgaWYgKGNhcHBlZCAhPT0gbWFza2VkTnVtYmVyU3RyaW5nVG9OdW1iZXIodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdGhpcy5mb3JtYXR0ZWRWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQua2V5ICE9PSAnLCcgJiYgZXZlbnQua2V5ICE9PSAnLicpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRlY2ltYWwgPT09ICduZXZlcicpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZVZhbHVlLmluY2x1ZGVzKCcsJykpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLnNldENhcmV0QWZ0ZXJDb21tYSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuXG4gICAgICAgIGlmIChmb2N1c2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuYXRpdmVOdW1iZXJWYWx1ZSA9IG1hc2tlZE51bWJlclN0cmluZ1RvTnVtYmVyKHRoaXMubmF0aXZlVmFsdWUpO1xuXG4gICAgICAgIGlmIChpc05hTihuYXRpdmVOdW1iZXJWYWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXIoKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2xhbXBlZCA9IE1hdGgubWluKHRoaXMubWF4LCBNYXRoLm1heCh0aGlzLm1pbiwgbmF0aXZlTnVtYmVyVmFsdWUpKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGNsYW1wZWQpO1xuICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdGhpcy5mb3JtYXR0ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBvbkhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZUhvdmVyZWQoaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgb25QcmVzc2VkKHByZXNzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVQcmVzc2VkKHByZXNzZWQpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uMCcsIFsnJGV2ZW50J10pXG4gICAgb25aZXJvKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGRlY2ltYWwgPSB0aGlzLm5hdGl2ZVZhbHVlLnNwbGl0KCcsJylbMV0gfHwgJyc7XG4gICAgICAgIGNvbnN0IHtuYXRpdmVGb2N1c2FibGVFbGVtZW50fSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZGVjaW1hbC5sZW5ndGggPCB0aGlzLnByZWNpc2lvbiB8fFxuICAgICAgICAgICAgIW5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfHxcbiAgICAgICAgICAgICFuYXRpdmVGb2N1c2FibGVFbGVtZW50LnNlbGVjdGlvblN0YXJ0IHx8XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlW25hdGl2ZUZvY3VzYWJsZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnRdICE9PSAnMCdcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBuYXRpdmVGb2N1c2FibGVFbGVtZW50LnNlbGVjdGlvblN0YXJ0Kys7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNOYXRpdmVWYWx1ZUluTGltaXQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZVZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuYXRpdmVOdW1iZXJWYWx1ZSA9IG1hc2tlZE51bWJlclN0cmluZ1RvTnVtYmVyKHRoaXMubmF0aXZlVmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBuYXRpdmVOdW1iZXJWYWx1ZSA+PSB0aGlzLm1pbiAmJiBuYXRpdmVOdW1iZXJWYWx1ZSA8PSB0aGlzLm1heDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc05hdGl2ZVZhbHVlTm90RmluaXNoZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IG5hdGl2ZU51bWJlclZhbHVlID0gbWFza2VkTnVtYmVyU3RyaW5nVG9OdW1iZXIodGhpcy5uYXRpdmVWYWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIG5hdGl2ZU51bWJlclZhbHVlIDwgMFxuICAgICAgICAgICAgPyBuYXRpdmVOdW1iZXJWYWx1ZSA+IHRoaXMubWF4XG4gICAgICAgICAgICA6IG5hdGl2ZU51bWJlclZhbHVlIDwgdGhpcy5taW47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgbmF0aXZlVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA/IHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC52YWx1ZSA6ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0IG5hdGl2ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLnByaW1pdGl2ZVRleHRmaWVsZCB8fCAhdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByaW1pdGl2ZVRleHRmaWVsZC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyKCkge1xuICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gJyc7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhYnNvbHV0ZUNhcElucHV0VmFsdWUoaW5wdXRWYWx1ZTogc3RyaW5nKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gbWFza2VkTnVtYmVyU3RyaW5nVG9OdW1iZXIoaW5wdXRWYWx1ZSk7XG4gICAgICAgIGNvbnN0IGNhcHBlZCA9IHZhbHVlIDwgMCA/IE1hdGgubWF4KHRoaXMubWluLCB2YWx1ZSkgOiBNYXRoLm1pbih2YWx1ZSwgdGhpcy5tYXgpO1xuICAgICAgICBjb25zdCBpbmVsaWdpYmxlVmFsdWUgPSBpc05hTihjYXBwZWQpIHx8IGNhcHBlZCA8IHRoaXMubWluIHx8IGNhcHBlZCA+IHRoaXMubWF4O1xuXG4gICAgICAgIHJldHVybiBpbmVsaWdpYmxlVmFsdWUgPyBudWxsIDogY2FwcGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q2FyZXRBZnRlckNvbW1hKCkge1xuICAgICAgICBpZiAoIXRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYWZ0ZXJDb21tYVBvc2l0aW9uID0gdGhpcy5uYXRpdmVWYWx1ZS5sZW5ndGggLSB0aGlzLnByZWNpc2lvbjtcblxuICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgICBhZnRlckNvbW1hUG9zaXRpb24sXG4gICAgICAgICAgICBhZnRlckNvbW1hUG9zaXRpb24sXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1udW1iZXIvIiwic291cmNlcyI6WyJpbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLDJCQUEyQixFQUMzQixjQUFjLEdBSWpCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLDBCQUEwQixFQUUxQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGdDQUFnQyxFQUNoQyxtQkFBbUIsRUFFbkIsOEJBQThCLEdBRWpDLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsSUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUM7QUFFOUIsV0FBVztBQWFYO0lBQ1ksMkNBQWtDO0lBZ0QxQyxpQ0FJSSxPQUF5QixFQUV6QixpQkFBb0MsRUFFbkIsWUFBa0M7UUFSdkQsWUFVSSxrQkFBTSxPQUFPLEVBQUUsaUJBQWlCLENBQUMsU0FDcEM7UUFIb0Isa0JBQVksR0FBWixZQUFZLENBQXNCO1FBcER2RCxTQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFJaEIsU0FBRyxHQUFHLFFBQVEsQ0FBQztRQUlmLGFBQU8sR0FBZ0IsVUFBVSxDQUFDO1FBSWxDLGVBQVMsR0FBRyxDQUFDLENBQUM7UUFJZCxhQUFPLEdBQUcsRUFBRSxDQUFDO1FBRWIsVUFBSSxHQUEyQyxVQUMzQyxhQUFzQixFQUN0QixP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WSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3lEQWlCckM7SUExTlEsdUJBQXVCO1FBWm5DLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsMnlCQUEyQztZQUUzQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtZQUMvQyxTQUFTLEVBQUU7Z0JBQ1A7b0JBQ0ksT0FBTyxFQUFFLDJCQUEyQjtvQkFDcEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFNLE9BQUEseUJBQXVCLEVBQXZCLENBQXVCLENBQUM7aUJBQ3pEO2FBQ0o7O1NBQ0osQ0FBQztRQW1ETyxXQUFBLFFBQVEsRUFBRSxDQUFBO1FBQ1YsV0FBQSxJQUFJLEVBQUUsQ0FBQTtRQUNOLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBRWpCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFFekIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtPQXhEckIsdUJBQXVCLENBZ1NuQztJQUFELDhCQUFDO0NBQUEsQUFoU0QsQ0FDWSwwQkFBMEIsR0ErUnJDO1NBaFNZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbCxcbiAgICBUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aUlucHV0TW9kZVQsXG4gICAgVHVpTWFwcGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgZm9ybWF0TnVtYmVyLFxuICAgIG1hc2tlZE1vbmV5VmFsdWVJc0VtcHR5LFxuICAgIG1hc2tlZE51bWJlclN0cmluZ1RvTnVtYmVyLFxuICAgIE51bWJlckZvcm1hdFNldHRpbmdzLFxuICAgIFRVSV9ERUNJTUFMX1NZTUJPTFMsXG4gICAgVFVJX05VTUJFUl9GT1JNQVQsXG4gICAgdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZE51bWJlclBpcGUsXG4gICAgdHVpQ3JlYXRlTnVtYmVyTWFzayxcbiAgICBUdWlEZWNpbWFsVCxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpVGV4dE1hc2tPcHRpb25zLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5cbmNvbnN0IERFRkFVTFRfTUFYX0xFTkdUSCA9IDE4O1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtbnVtYmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtbnVtYmVyLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LW51bWJlci5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR1aUlucHV0TnVtYmVyQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dE51bWJlckNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8bnVtYmVyPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yIHtcbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWluID0gLUluZmluaXR5O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IEluZmluaXR5O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRlY2ltYWw6IFR1aURlY2ltYWxUID0gJ25vdC16ZXJvJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwcmVjaXNpb24gPSAyO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHBvc3RmaXggPSAnJztcblxuICAgIG1hc2s6IFR1aU1hcHBlcjxib29sZWFuLCBUdWlUZXh0TWFza09wdGlvbnM+ID0gKFxuICAgICAgICBhbGxvd05lZ2F0aXZlOiBib29sZWFuLFxuICAgICAgICBkZWNpbWFsOiBUdWlEZWNpbWFsVCxcbiAgICAgICAgcHJlY2lzaW9uOiBudW1iZXIsXG4gICAgICAgIG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsLFxuICAgICkgPT4gKHtcbiAgICAgICAgbWFzazogdHVpQ3JlYXRlTnVtYmVyTWFzayh7XG4gICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiBhbGxvd05lZ2F0aXZlLFxuICAgICAgICAgICAgYWxsb3dEZWNpbWFsOiBkZWNpbWFsICE9PSAnbmV2ZXInLFxuICAgICAgICAgICAgZGVjaW1hbExpbWl0OiBwcmVjaXNpb24sXG4gICAgICAgICAgICByZXF1aXJlRGVjaW1hbDogZGVjaW1hbCA9PT0gJ2Fsd2F5cycsXG4gICAgICAgICAgICBkZWNpbWFsU3ltYm9sOiB0aGlzLm51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgdGhvdXNhbmRTeW1ib2w6IHRoaXMubnVtYmVyRm9ybWF0LnRob3VzYW5kU2VwYXJhdG9yLFxuICAgICAgICB9KSxcbiAgICAgICAgcGlwZTogdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZE51bWJlclBpcGUoXG4gICAgICAgICAgICBkZWNpbWFsID09PSAnYWx3YXlzJyA/IHByZWNpc2lvbiA6IDAsXG4gICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQudGhvdXNhbmRTZXBhcmF0b3IsXG4gICAgICAgICAgICBuYXRpdmVGb2N1c2FibGVFbGVtZW50IHx8IHVuZGVmaW5lZCxcbiAgICAgICAgKSxcbiAgICAgICAgZ3VpZGU6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmltaXRpdmVUZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZilcbiAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9OVU1CRVJfRk9STUFUKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG51bWJlckZvcm1hdDogTnVtYmVyRm9ybWF0U2V0dGluZ3MsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAhdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQgfHwgdGhpcy5jb21wdXRlZERpc2FibGVkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQgJiYgdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQuZm9jdXNlZDtcbiAgICB9XG5cbiAgICBnZXQgaXNOZWdhdGl2ZUFsbG93ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbiA8IDA7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0TW9kZSgpOiBUdWlJbnB1dE1vZGVUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVjaW1hbCA9PT0gJ25ldmVyJyA/ICdudW1lcmljJyA6ICdkZWNpbWFsJztcbiAgICB9XG5cbiAgICBnZXQgY2FsY3VsYXRlZE1heExlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgREVGQVVMVF9NQVhfTEVOR1RIICtcbiAgICAgICAgICAgICh0aGlzLmRlY2ltYWwgIT09ICduZXZlcicgJiZcbiAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUuaW5jbHVkZXModGhpcy5udW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvcilcbiAgICAgICAgICAgICAgICA/IHRoaXMucHJlY2lzaW9uICsgMVxuICAgICAgICAgICAgICAgIDogMClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgZm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlIHx8IDA7XG4gICAgICAgIGNvbnN0IGFic1ZhbHVlID0gTWF0aC5hYnModmFsdWUpO1xuICAgICAgICBjb25zdCBoYXNGcmFjdGlvbiA9IGFic1ZhbHVlICUgMSA+IDA7XG4gICAgICAgIGxldCBsaW1pdCA9IHRoaXMuZGVjaW1hbCA9PT0gJ2Fsd2F5cycgfHwgaGFzRnJhY3Rpb24gPyB0aGlzLnByZWNpc2lvbiA6IDA7XG5cbiAgICAgICAgY29uc3QgZnJhY3Rpb24gPSBoYXNGcmFjdGlvblxuICAgICAgICAgICAgPyB2YWx1ZS50b1N0cmluZygpLnNwbGl0KCcuJylbMV0uc3Vic3RyKDAsIHRoaXMucHJlY2lzaW9uKVxuICAgICAgICAgICAgOiAnJztcblxuICAgICAgICBpZiAodGhpcy5mb2N1c2VkICYmIHRoaXMuZGVjaW1hbCAhPT0gJ2Fsd2F5cycpIHtcbiAgICAgICAgICAgIGxpbWl0ID0gZnJhY3Rpb24ubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdE51bWJlcihcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgbGltaXQsXG4gICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQudGhvdXNhbmRTZXBhcmF0b3IsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNlZCB8fCAhdGhpcy5pc05hdGl2ZVZhbHVlSW5MaW1pdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlVmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG1hc2tlZE1vbmV5VmFsdWVJc0VtcHR5KHRoaXMubmF0aXZlVmFsdWUpID8gdGhpcy5uYXRpdmVWYWx1ZSA6ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgb25WYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmIChtYXNrZWRNb25leVZhbHVlSXNFbXB0eSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzTmF0aXZlVmFsdWVOb3RGaW5pc2hlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2FwcGVkID0gdGhpcy5hYnNvbHV0ZUNhcElucHV0VmFsdWUodmFsdWUpO1xuXG4gICAgICAgIGlmIChjYXBwZWQgPT09IG51bGwgfHwgaXNOYU4oY2FwcGVkKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShjYXBwZWQpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNhcHBlZCAhPT1cbiAgICAgICAgICAgIG1hc2tlZE51bWJlclN0cmluZ1RvTnVtYmVyKFxuICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQudGhvdXNhbmRTZXBhcmF0b3IsXG4gICAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9IHRoaXMuZm9ybWF0dGVkVmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKFRVSV9ERUNJTUFMX1NZTUJPTFMuaW5kZXhPZihldmVudC5rZXkpID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGVjaW1hbCA9PT0gJ25ldmVyJykge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmF0aXZlVmFsdWUuaW5jbHVkZXModGhpcy5udW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvcikpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLnNldENhcmV0QWZ0ZXJDb21tYSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuXG4gICAgICAgIGlmIChmb2N1c2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuYXRpdmVOdW1iZXJWYWx1ZSA9IHRoaXMubmF0aXZlTnVtYmVyVmFsdWU7XG5cbiAgICAgICAgaWYgKGlzTmFOKG5hdGl2ZU51bWJlclZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5jbGVhcigpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjbGFtcGVkID0gTWF0aC5taW4odGhpcy5tYXgsIE1hdGgubWF4KHRoaXMubWluLCBuYXRpdmVOdW1iZXJWYWx1ZSkpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoY2xhbXBlZCk7XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB0aGlzLmZvcm1hdHRlZFZhbHVlO1xuICAgIH1cblxuICAgIG9uSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSG92ZXJlZChob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBvblByZXNzZWQocHJlc3NlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnVwZGF0ZVByZXNzZWQocHJlc3NlZCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi4wJywgWyckZXZlbnQnXSlcbiAgICBvblplcm8oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgZGVjaW1hbCA9XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlLnNwbGl0KHRoaXMubnVtYmVyRm9ybWF0LmRlY2ltYWxTZXBhcmF0b3IpWzFdIHx8ICcnO1xuICAgICAgICBjb25zdCB7bmF0aXZlRm9jdXNhYmxlRWxlbWVudH0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGRlY2ltYWwubGVuZ3RoIDwgdGhpcy5wcmVjaXNpb24gfHxcbiAgICAgICAgICAgICFuYXRpdmVGb2N1c2FibGVFbGVtZW50IHx8XG4gICAgICAgICAgICAhbmF0aXZlRm9jdXNhYmxlRWxlbWVudC5zZWxlY3Rpb25TdGFydCB8fFxuICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZVtuYXRpdmVGb2N1c2FibGVFbGVtZW50LnNlbGVjdGlvblN0YXJ0XSAhPT0gJzAnXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgbmF0aXZlRm9jdXNhYmxlRWxlbWVudC5zZWxlY3Rpb25TdGFydCsrO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlzTmF0aXZlVmFsdWVJbkxpbWl0KCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVWYWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmF0aXZlTnVtYmVyVmFsdWUgPSB0aGlzLm5hdGl2ZU51bWJlclZhbHVlO1xuXG4gICAgICAgIHJldHVybiBuYXRpdmVOdW1iZXJWYWx1ZSA+PSB0aGlzLm1pbiAmJiBuYXRpdmVOdW1iZXJWYWx1ZSA8PSB0aGlzLm1heDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBpc05hdGl2ZVZhbHVlTm90RmluaXNoZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IG5hdGl2ZU51bWJlclZhbHVlID0gdGhpcy5uYXRpdmVOdW1iZXJWYWx1ZTtcblxuICAgICAgICByZXR1cm4gbmF0aXZlTnVtYmVyVmFsdWUgPCAwXG4gICAgICAgICAgICA/IG5hdGl2ZU51bWJlclZhbHVlID4gdGhpcy5tYXhcbiAgICAgICAgICAgIDogbmF0aXZlTnVtYmVyVmFsdWUgPCB0aGlzLm1pbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBuYXRpdmVWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50ID8gdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlIDogJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgbmF0aXZlTnVtYmVyVmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIG1hc2tlZE51bWJlclN0cmluZ1RvTnVtYmVyKFxuICAgICAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSxcbiAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC50aG91c2FuZFNlcGFyYXRvcixcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldCBuYXRpdmVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQgfHwgIXRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcmltaXRpdmVUZXh0ZmllbGQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5uYXRpdmVWYWx1ZSA9ICcnO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWJzb2x1dGVDYXBJbnB1dFZhbHVlKGlucHV0VmFsdWU6IHN0cmluZyk6IG51bWJlciB8IG51bGwge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IG1hc2tlZE51bWJlclN0cmluZ1RvTnVtYmVyKFxuICAgICAgICAgICAgaW5wdXRWYWx1ZSxcbiAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC50aG91c2FuZFNlcGFyYXRvcixcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgY2FwcGVkID0gdmFsdWUgPCAwID8gTWF0aC5tYXgodGhpcy5taW4sIHZhbHVlKSA6IE1hdGgubWluKHZhbHVlLCB0aGlzLm1heCk7XG4gICAgICAgIGNvbnN0IGluZWxpZ2libGVWYWx1ZSA9IGlzTmFOKGNhcHBlZCkgfHwgY2FwcGVkIDwgdGhpcy5taW4gfHwgY2FwcGVkID4gdGhpcy5tYXg7XG5cbiAgICAgICAgcmV0dXJuIGluZWxpZ2libGVWYWx1ZSA/IG51bGwgOiBjYXBwZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDYXJldEFmdGVyQ29tbWEoKSB7XG4gICAgICAgIGlmICghdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhZnRlckNvbW1hUG9zaXRpb24gPSB0aGlzLm5hdGl2ZVZhbHVlLmxlbmd0aCAtIHRoaXMucHJlY2lzaW9uO1xuXG4gICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShcbiAgICAgICAgICAgIGFmdGVyQ29tbWFQb3NpdGlvbixcbiAgICAgICAgICAgIGFmdGVyQ29tbWFQb3NpdGlvbixcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=