@kirbydesign/designsystem 5.1.1 → 5.2.3-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/bundles/kirbydesign-designsystem-testing-base.umd.js +4 -1
  2. package/bundles/kirbydesign-designsystem-testing-base.umd.js.map +1 -1
  3. package/bundles/kirbydesign-designsystem-testing-base.umd.min.js +1 -1
  4. package/bundles/kirbydesign-designsystem-testing-base.umd.min.js.map +1 -1
  5. package/bundles/kirbydesign-designsystem-testing-jasmine.umd.js.map +1 -1
  6. package/bundles/kirbydesign-designsystem-testing-jasmine.umd.min.js.map +1 -1
  7. package/bundles/kirbydesign-designsystem-testing-jest.umd.js.map +1 -1
  8. package/bundles/kirbydesign-designsystem-testing-jest.umd.min.js.map +1 -1
  9. package/bundles/kirbydesign-designsystem.umd.js +82 -46
  10. package/bundles/kirbydesign-designsystem.umd.js.map +1 -1
  11. package/bundles/kirbydesign-designsystem.umd.min.js +1 -1
  12. package/bundles/kirbydesign-designsystem.umd.min.js.map +1 -1
  13. package/esm2015/lib/components/avatar/avatar.component.js +1 -1
  14. package/esm2015/lib/components/button/button.component.js +1 -1
  15. package/esm2015/lib/components/calendar/calendar.component.js +9 -3
  16. package/esm2015/lib/components/calendar/calendar.component.metadata.json +1 -1
  17. package/esm2015/lib/components/card/card-header/card-header.component.js +1 -1
  18. package/esm2015/lib/components/card/card-header/card-header.component.metadata.json +1 -1
  19. package/esm2015/lib/components/card/card.component.js +7 -2
  20. package/esm2015/lib/components/card/card.component.metadata.json +1 -1
  21. package/esm2015/lib/components/chart/chart-js/chart-js.service.js +22 -6
  22. package/esm2015/lib/components/chart/chart-js/chartjs-plugin-marker/chartjs-plugin-marker.js +1 -1
  23. package/esm2015/lib/components/chart/chart-js/configured-chart-js.js +4 -3
  24. package/esm2015/lib/components/chart/chart-js/configured-chart-js.metadata.json +1 -1
  25. package/esm2015/lib/components/chart-deprecated/chart-deprecated.component.js +3 -3
  26. package/esm2015/lib/components/chart-deprecated/options/areaspline.js +1 -1
  27. package/esm2015/lib/components/chart-deprecated/options/timeseries.js +1 -1
  28. package/esm2015/lib/components/dropdown/dropdown.component.js +1 -1
  29. package/esm2015/lib/components/dropdown/dropdown.component.metadata.json +1 -1
  30. package/esm2015/lib/components/fab-sheet/fab-sheet.component.js +4 -3
  31. package/esm2015/lib/components/fab-sheet/fab-sheet.component.metadata.json +1 -1
  32. package/esm2015/lib/components/flag/flag.component.js +4 -6
  33. package/esm2015/lib/components/flag/flag.component.metadata.json +1 -1
  34. package/esm2015/lib/components/form-field/form-field.component.js +1 -1
  35. package/esm2015/lib/components/form-field/form-field.component.metadata.json +1 -1
  36. package/esm2015/lib/components/form-field/input/input.component.js +2 -2
  37. package/esm2015/lib/components/form-field/input/input.component.metadata.json +1 -1
  38. package/esm2015/lib/components/form-field/input-counter/input-counter.component.js +2 -3
  39. package/esm2015/lib/components/form-field/input-counter/input-counter.component.metadata.json +1 -1
  40. package/esm2015/lib/components/form-field/textarea/textarea.component.js +1 -1
  41. package/esm2015/lib/components/form-field/textarea/textarea.component.metadata.json +1 -1
  42. package/esm2015/lib/components/icon/icon.component.js +2 -2
  43. package/esm2015/lib/components/icon/icon.component.metadata.json +1 -1
  44. package/esm2015/lib/components/item/item.component.js +2 -2
  45. package/esm2015/lib/components/item/item.component.metadata.json +1 -1
  46. package/esm2015/lib/components/list/list-item/list-item.component.js +1 -1
  47. package/esm2015/lib/components/list/list-item/list-item.component.metadata.json +1 -1
  48. package/esm2015/lib/components/list/list-section-header/list-section-header.component.js +2 -3
  49. package/esm2015/lib/components/list/list-section-header/list-section-header.component.metadata.json +1 -1
  50. package/esm2015/lib/components/list/list.component.js +1 -1
  51. package/esm2015/lib/components/list/list.component.metadata.json +1 -1
  52. package/esm2015/lib/components/modal/action-sheet/action-sheet.component.js +1 -1
  53. package/esm2015/lib/components/modal/action-sheet/action-sheet.component.metadata.json +1 -1
  54. package/esm2015/lib/components/modal/footer/modal-footer.component.js +1 -1
  55. package/esm2015/lib/components/modal/footer/modal-footer.component.metadata.json +1 -1
  56. package/esm2015/lib/components/modal/modal-wrapper/modal-wrapper.component.js +2 -2
  57. package/esm2015/lib/components/modal/modal-wrapper/modal-wrapper.component.metadata.json +1 -1
  58. package/esm2015/lib/components/modal/services/modal-navigation.service.js +2 -4
  59. package/esm2015/lib/components/page/page.component.js +5 -13
  60. package/esm2015/lib/components/page/page.component.metadata.json +1 -1
  61. package/esm2015/lib/components/popover/popover.component.js +2 -4
  62. package/esm2015/lib/components/popover/popover.component.metadata.json +1 -1
  63. package/esm2015/lib/components/radio/radio.component.js +2 -2
  64. package/esm2015/lib/components/radio/radio.component.metadata.json +1 -1
  65. package/esm2015/lib/components/range/range.component.js +1 -1
  66. package/esm2015/lib/components/range/range.component.metadata.json +1 -1
  67. package/esm2015/lib/components/reorder-list/reorder-list.component.js +3 -3
  68. package/esm2015/lib/components/reorder-list/reorder-list.component.metadata.json +1 -1
  69. package/esm2015/lib/components/segmented-control/segmented-control.component.js +1 -1
  70. package/esm2015/lib/components/slide-button/slide-button.component.js +1 -1
  71. package/esm2015/lib/components/slide-button/slide-button.component.metadata.json +1 -1
  72. package/esm2015/lib/components/stock-chart-deprecated/options/stock-chart-deprecated-options.js +1 -1
  73. package/esm2015/lib/components/tabs/tabs.component.js +1 -1
  74. package/esm2015/lib/components/tabs/tabs.component.metadata.json +1 -1
  75. package/esm2015/lib/directives/fit-heading/fit-heading.directive.js +10 -2
  76. package/esm2015/testing-base/lib/components/mock.accordion-item.component.js +1 -1
  77. package/esm2015/testing-base/lib/components/mock.action-sheet.component.js +1 -1
  78. package/esm2015/testing-base/lib/components/mock.app.component.js +1 -1
  79. package/esm2015/testing-base/lib/components/mock.avatar.component.js +2 -2
  80. package/esm2015/testing-base/lib/components/mock.button.component.js +2 -2
  81. package/esm2015/testing-base/lib/components/mock.calendar.component.js +2 -1
  82. package/esm2015/testing-base/lib/components/mock.calendar.component.metadata.json +1 -1
  83. package/esm2015/testing-base/lib/components/mock.card-footer.component.js +1 -1
  84. package/esm2015/testing-base/lib/components/mock.card-header.component.js +1 -1
  85. package/esm2015/testing-base/lib/components/mock.card.component.js +2 -1
  86. package/esm2015/testing-base/lib/components/mock.card.component.metadata.json +1 -1
  87. package/esm2015/testing-base/lib/components/mock.chart-deprecated.component.js +1 -1
  88. package/esm2015/testing-base/lib/components/mock.chart.component.js +1 -1
  89. package/esm2015/testing-base/lib/components/mock.checkbox.component.js +1 -1
  90. package/esm2015/testing-base/lib/components/mock.chip.component.js +1 -1
  91. package/esm2015/testing-base/lib/components/mock.divider.component.js +1 -1
  92. package/esm2015/testing-base/lib/components/mock.dropdown.component.js +2 -2
  93. package/esm2015/testing-base/lib/components/mock.empty-state.component.js +1 -1
  94. package/esm2015/testing-base/lib/components/mock.fab-sheet.component.js +1 -1
  95. package/esm2015/testing-base/lib/components/mock.flag.component.js +1 -1
  96. package/esm2015/testing-base/lib/components/mock.form-field-message.component.js +1 -1
  97. package/esm2015/testing-base/lib/components/mock.form-field.component.js +1 -1
  98. package/esm2015/testing-base/lib/components/mock.grid.component.js +1 -1
  99. package/esm2015/testing-base/lib/components/mock.icon.component.js +2 -2
  100. package/esm2015/testing-base/lib/components/mock.input-counter.component.js +1 -1
  101. package/esm2015/testing-base/lib/components/mock.input.component.js +2 -2
  102. package/esm2015/testing-base/lib/components/mock.item-group.component.js +1 -1
  103. package/esm2015/testing-base/lib/components/mock.item-sliding.component.js +1 -1
  104. package/esm2015/testing-base/lib/components/mock.item.component.js +2 -2
  105. package/esm2015/testing-base/lib/components/mock.label.component.js +1 -1
  106. package/esm2015/testing-base/lib/components/mock.list-experimental.component.js +1 -1
  107. package/esm2015/testing-base/lib/components/mock.list-header.component.js +1 -1
  108. package/esm2015/testing-base/lib/components/mock.list-item.component.js +1 -1
  109. package/esm2015/testing-base/lib/components/mock.list-section-header.component.js +1 -1
  110. package/esm2015/testing-base/lib/components/mock.list.component.js +1 -1
  111. package/esm2015/testing-base/lib/components/mock.loading-overlay.component.js +1 -1
  112. package/esm2015/testing-base/lib/components/mock.modal-footer.component.js +3 -2
  113. package/esm2015/testing-base/lib/components/mock.modal-footer.component.metadata.json +1 -1
  114. package/esm2015/testing-base/lib/components/mock.page-footer.component.js +1 -1
  115. package/esm2015/testing-base/lib/components/mock.page.component.js +1 -1
  116. package/esm2015/testing-base/lib/components/mock.popover.component.js +2 -2
  117. package/esm2015/testing-base/lib/components/mock.progress-circle.component.js +1 -1
  118. package/esm2015/testing-base/lib/components/mock.radio-group.component.js +1 -1
  119. package/esm2015/testing-base/lib/components/mock.radio.component.js +1 -1
  120. package/esm2015/testing-base/lib/components/mock.range.component.js +1 -1
  121. package/esm2015/testing-base/lib/components/mock.reorder-list.component.js +1 -1
  122. package/esm2015/testing-base/lib/components/mock.router-outlet.component.js +1 -1
  123. package/esm2015/testing-base/lib/components/mock.section-header.component.js +1 -1
  124. package/esm2015/testing-base/lib/components/mock.segmented-control.component.js +2 -2
  125. package/esm2015/testing-base/lib/components/mock.slide-button.component.js +1 -1
  126. package/esm2015/testing-base/lib/components/mock.spinner.component.js +1 -1
  127. package/esm2015/testing-base/lib/components/mock.tab-button.component.js +1 -1
  128. package/esm2015/testing-base/lib/components/mock.tabs.component.js +1 -1
  129. package/esm2015/testing-base/lib/components/mock.textarea.component.js +1 -1
  130. package/esm2015/testing-base/lib/components/mock.toggle-button.component.js +1 -1
  131. package/esm2015/testing-base/lib/components/mock.toggle.component.js +1 -1
  132. package/esm2015/testing-base/lib/mock-components.js +1 -1
  133. package/esm2015/testing-jasmine/lib/mock-providers.js +1 -1
  134. package/esm2015/testing-jest/lib/mock-providers.js +1 -1
  135. package/fesm2015/kirbydesign-designsystem-testing-base.js +4 -1
  136. package/fesm2015/kirbydesign-designsystem-testing-base.js.map +1 -1
  137. package/fesm2015/kirbydesign-designsystem-testing-jasmine.js.map +1 -1
  138. package/fesm2015/kirbydesign-designsystem-testing-jest.js.map +1 -1
  139. package/fesm2015/kirbydesign-designsystem.js +76 -55
  140. package/fesm2015/kirbydesign-designsystem.js.map +1 -1
  141. package/kirbydesign-designsystem.metadata.json +1 -1
  142. package/lib/components/avatar/avatar.component.d.ts +2 -2
  143. package/lib/components/button/button.component.d.ts +2 -2
  144. package/lib/components/calendar/calendar.component.d.ts +1 -0
  145. package/lib/components/card/card.component.d.ts +2 -0
  146. package/lib/components/chart/chart-js/configured-chart-js.d.ts +1 -0
  147. package/lib/components/dropdown/dropdown.component.d.ts +2 -2
  148. package/lib/components/form-field/input/input.component.d.ts +1 -1
  149. package/lib/components/form-field/input-counter/input-counter.component.d.ts +2 -2
  150. package/lib/components/icon/icon.component.d.ts +1 -1
  151. package/lib/components/item/item.component.d.ts +1 -1
  152. package/lib/components/popover/popover.component.d.ts +1 -1
  153. package/lib/components/segmented-control/segmented-control.component.d.ts +1 -1
  154. package/package.json +2 -2
  155. package/polyfills/intersection-observer-polyfill-loader.js +12 -12
  156. package/polyfills/resize-observer-polyfill-loader.js +1 -1
  157. package/readme.md +2 -7
  158. package/scss/_trigger-publish.scss +1 -0
  159. package/scss/_trigger.scss +1 -0
  160. package/scss/awesome-stylesheet.scss +1 -0
  161. package/scss/base/_awesome-partial.scss +1 -0
  162. package/scss/base/_index.scss +1 -0
  163. package/scss/base/_interaction-states.scss +1 -0
  164. package/scss/base/_link.scss +1 -0
  165. package/scss/base/index.scss +1 -0
  166. package/scss/interaction-state/_focus.scss +1 -0
  167. package/scss/interaction-state/_hover.scss +1 -0
  168. package/scss/interaction-state/_index.scss +1 -0
  169. package/scss/interaction-state/_layer.scss +1 -0
  170. package/scss/interaction-state/_state-layer.scss +1 -0
  171. package/scss/interaction-state/_utilities.scss +1 -0
  172. package/scss/interaction-state/ionic/_active.scss +1 -0
  173. package/scss/interaction-state/ionic/_hover.scss +1 -0
  174. package/scss/interaction-state/ionic/_index.scss +1 -0
  175. package/scss/interaction-states/_hover.scss +1 -0
  176. package/scss/interaction-states/_index.scss +1 -0
  177. package/scss/opt-out/_index.scss +1 -0
  178. package/scss/opt-out/_link.scss +1 -0
  179. package/testing-base/kirbydesign-designsystem-testing-base.metadata.json +1 -1
  180. package/testing-base/lib/components/mock.avatar.component.d.ts +1 -1
  181. package/testing-base/lib/components/mock.button.component.d.ts +1 -1
  182. package/testing-base/lib/components/mock.calendar.component.d.ts +1 -0
  183. package/testing-base/lib/components/mock.card.component.d.ts +1 -0
  184. package/testing-base/lib/components/mock.dropdown.component.d.ts +1 -1
  185. package/testing-base/lib/components/mock.icon.component.d.ts +1 -1
  186. package/testing-base/lib/components/mock.input.component.d.ts +1 -1
  187. package/testing-base/lib/components/mock.item.component.d.ts +1 -1
  188. package/testing-base/lib/components/mock.modal-footer.component.d.ts +1 -0
  189. package/testing-base/lib/components/mock.popover.component.d.ts +1 -1
  190. package/testing-base/lib/components/mock.segmented-control.component.d.ts +1 -1
  191. package/README.md +0 -7
@@ -193,12 +193,28 @@ export class ChartJSService {
193
193
  createConfigurationObject(type, datasets, options, labels) {
194
194
  const typeConfig = this.chartConfigService.getTypeConfig(type);
195
195
  const labelsToApply = (() => {
196
- if ((labels === null || labels === void 0 ? void 0 : labels.length) > 0)
197
- return labels;
198
- else if (type === 'stock')
196
+ var _a, _b;
197
+ if (type === 'stock') {
198
+ /*
199
+ The time scale will auto generate labels based on data.
200
+ It should be possible to pass an empty array to get the default
201
+ behaviour of chart.js when using stock chart.
202
+
203
+ TODO: Simplify to always pass labels, if given, to chart.js.
204
+ Would be a breaking change. See issue:
205
+ https://github.com/kirbydesign/designsystem/issues/2085
206
+ */
207
+ const shouldUseTimescaleLabels = (labels === null || labels === void 0 ? void 0 : labels.length) === 0 && ((_b = (_a = options === null || options === void 0 ? void 0 : options.scales) === null || _a === void 0 ? void 0 : _a.x) === null || _b === void 0 ? void 0 : _b.type) === 'time';
208
+ if (shouldUseTimescaleLabels)
209
+ return labels;
199
210
  return this.getDefaultStockLabels(datasets, this.locale);
200
- else
201
- return this.createBlankLabels(datasets); // ChartJS requires labels
211
+ }
212
+ else if ((labels === null || labels === void 0 ? void 0 : labels.length) > 0) {
213
+ return labels;
214
+ }
215
+ else {
216
+ return this.createBlankLabels(datasets);
217
+ }
202
218
  })();
203
219
  return mergeDeepAll(typeConfig, {
204
220
  data: {
@@ -295,4 +311,4 @@ ChartJSService.decorators = [
295
311
  ChartJSService.ctorParameters = () => [
296
312
  { type: ChartConfigService }
297
313
  ];
298
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtanMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC9jaGFydC1qcy9jaGFydC1qcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQU1MLGFBQWEsR0FDZCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5QyxNQUFNLG9CQUFvQixHQUFHLE9BQU8sQ0FBQztBQUdyQyxNQUFNLE9BQU8sY0FBYztJQU96QixZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUFHLENBQUM7SUFFdkQsV0FBVyxDQUFDLElBU2xCO1FBQ0MsTUFBTSxFQUNKLGFBQWEsRUFDYixJQUFJLEVBQ0osSUFBSSxFQUNKLE1BQU0sRUFDTixhQUFhLEVBQ2IsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixtQkFBbUIsR0FDcEIsR0FBRyxJQUFJLENBQUM7UUFFVCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLElBQUksSUFBSSxDQUFDO1FBQ2pELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsSUFBSSxJQUFJLENBQUM7UUFDdkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFBLGdCQUFnQixhQUFoQixnQkFBZ0IsdUJBQWhCLGdCQUFnQixD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QUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUM5RCxLQUFLLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN2QixPQUFPLEdBQUcsS0FBSyxDQUFDO2FBQ2pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7OztZQTdYRixVQUFVOzs7O1lBTkYsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZlRWxlbWVudCwgQ2hhcnRDb25maWd1cmF0aW9uLCBDaGFydE9wdGlvbnMsIFNjYXR0ZXJEYXRhUG9pbnQgfSBmcm9tICdjaGFydC5qcyc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uT3B0aW9ucyB9IGZyb20gJ2NoYXJ0anMtcGx1Z2luLWFubm90YXRpb24nO1xuaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSAnZGF0ZS1mbnMnO1xuXG5pbXBvcnQgeyBtZXJnZURlZXBBbGwgfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAnO1xuaW1wb3J0IHtcbiAgQ2hhcnREYXRhTGFiZWxPcHRpb25zLFxuICBDaGFydERhdGFzZXQsXG4gIENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cyxcbiAgQ2hhcnRMb2NhbGUsXG4gIENoYXJ0VHlwZSxcbiAgaXNOdW1iZXJBcnJheSxcbn0gZnJvbSAnLi4vY2hhcnQudHlwZXMnO1xuaW1wb3J0IHsgQ2hhcnRDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vY29uZmlncy9jaGFydC1jb25maWcuc2VydmljZSc7XG5cbmltcG9ydCB7IENoYXJ0IH0gZnJvbSAnLi9jb25maWd1cmVkLWNoYXJ0LWpzJztcblxuY29uc3QgQ0hBUlRfTE9DQUxFX0RFRkFVTFQgPSAnZW4tVVMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2hhcnRKU1NlcnZpY2Uge1xuICBwcml2YXRlIGNoYXJ0OiBDaGFydDtcbiAgcHJpdmF0ZSBkYXRhTGFiZWxPcHRpb25zOiBDaGFydERhdGFMYWJlbE9wdGlvbnM7XG4gIHByaXZhdGUgaGlnaGxpZ2h0ZWRFbGVtZW50czogQ2hhcnRIaWdobGlnaHRlZEVsZW1lbnRzO1xuICBwcml2YXRlIGNoYXJ0VHlwZTogQ2hhcnRUeXBlO1xuICBwcml2YXRlIGxvY2FsZTogQ2hhcnRMb2NhbGU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFydENvbmZpZ1NlcnZpY2U6IENoYXJ0Q29uZmlnU2VydmljZSkge31cblxuICBwdWJsaWMgcmVuZGVyQ2hhcnQoYXJnczoge1xuICAgIHRhcmdldEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+O1xuICAgIHR5cGU6IENoYXJ0VHlwZTtcbiAgICBkYXRhOiBDaGFydERhdGFzZXRbXSB8IG51bWJlcltdO1xuICAgIGxhYmVscz86IHN0cmluZ1tdIHwgc3RyaW5nW11bXTtcbiAgICBjdXN0b21PcHRpb25zPzogQ2hhcnRPcHRpb25zO1xuICAgIGFubm90YXRpb25zPzogQW5ub3RhdGlvbk9wdGlvbnNbXTtcbiAgICBkYXRhTGFiZWxPcHRpb25zPzogQ2hhcnREYXRhTGFiZWxPcHRpb25zO1xuICAgIGhpZ2hsaWdodGVkRWxlbWVudHM/OiBDaGFydEhpZ2hsaWdodGVkRWxlbWVudHM7XG4gIH0pOiB2b2lkIHtcbiAgICBjb25zdCB7XG4gICAgICB0YXJnZXRFbGVtZW50LFxuICAgICAgdHlwZSxcbiAgICAgIGRhdGEsXG4gICAgICBsYWJlbHMsXG4gICAgICBjdXN0b21PcHRpb25zLFxuICAgICAgYW5ub3RhdGlvbnMsXG4gICAgICBkYXRhTGFiZWxPcHRpb25zLFxuICAgICAgaGlnaGxpZ2h0ZWRFbGVtZW50cyxcbiAgICB9ID0gYXJncztcblxuICAgIHRoaXMuZGF0YUxhYmVsT3B0aW9ucyA9IGRhdGFMYWJlbE9wdGlvbnMgfHwgbnVsbDtcbiAgICB0aGlzLmhpZ2hsaWdodGVkRWxlbWVudHMgPSBoaWdobGlnaHRlZEVsZW1lbnRzIHx8IG51bGw7XG4gICAgdGhpcy5jaGFydFR5cGUgPSB0eXBlO1xuICAgIHRoaXMubG9jYWxlID0gZGF0YUxhYmVsT3B0aW9ucz8ubG9jYWxlIHx8IENIQVJUX0xPQ0FMRV9ERUZBVUxUO1xuXG4gICAgY29uc3QgZGF0YXNldHMgPSB0aGlzLmNyZWF0ZURhdGFzZXRzKGRhdGEpO1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY3JlYXRlT3B0aW9uc09iamVjdCh7XG4gICAgICBjdXN0b21PcHRpb25zLFxuICAgICAgYW5ub3RhdGlvbnMsXG4gICAgICBkYXRhTGFiZWxPcHRpb25zLFxuICAgIH0pO1xuICAgIGxldCBjb25maWcgPSB0aGlzLmNyZWF0ZUNvbmZpZ3VyYXRpb25PYmplY3QodHlwZSwgZGF0YXNldHMsIG9wdGlvbnMsIGxhYmVscyk7XG5cbiAgICB0aGlzLmluaXRpYWxpemVOZXdDaGFydCh0YXJnZXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgcmVkcmF3Q2hhcnQoKSB7XG4gICAgdGhpcy5jaGFydC51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVEYXRhKGRhdGE6IENoYXJ0RGF0YXNldFtdIHwgbnVtYmVyW10pOiB2b2lkIHtcbiAgICBjb25zdCBkYXRhc2V0cyA9IHRoaXMuY3JlYXRlRGF0YXNldHMoZGF0YSk7XG5cbiAgICB0aGlzLmNoYXJ0LmRhdGEuZGF0YXNldHMgPSBkYXRhc2V0cztcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVMYWJlbHMobGFiZWxzOiBzdHJpbmdbXSB8IHN0cmluZ1tdW10pIHtcbiAgICB0aGlzLmNoYXJ0LmRhdGEubGFiZWxzID0gbGFiZWxzO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVR5cGUodHlwZTogQ2hhcnRUeXBlLCBjdXN0b21PcHRpb25zPzogQ2hhcnRPcHRpb25zKSB7XG4gICAgaWYgKHR5cGUgPT09ICdiYXInIHx8IHR5cGUgPT09ICdjb2x1bW4nKSB7XG4gICAgICAvKiBpbmRleEF4aXMgZG9lcyBub3QgdXBkYXRlIHByZWRpY3RhYmx5OyB1cGRhdGUgYnkgcmVwbGFjaW5nIFxuICAgICAgICAgdGhlIGNoYXJ0IGVudGlyZWx5IGluc3RlYWQgKi9cbiAgICAgIHRoaXMuZGVzdHJ1Y3RpdmVseVVwZGF0ZVR5cGUodHlwZSwgY3VzdG9tT3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubm9uRGVzdHJ1Y3RpdmVseVVwZGF0ZVR5cGUodHlwZSwgY3VzdG9tT3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldERhdGFMYWJlbE9wdGlvbnMoZGF0YUxhYmVsT3B0aW9uczogQ2hhcnREYXRhTGFiZWxPcHRpb25zKSB7XG4gICAgdGhpcy5kYXRhTGFiZWxPcHRpb25zID0gZGF0YUxhYmVsT3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVPcHRpb25zKGN1c3RvbU9wdGlvbnM6IENoYXJ0T3B0aW9ucywgdHlwZTogQ2hhcnRUeXBlKSB7XG4gICAgY29uc3QgYW5ub3RhdGlvbnMgPSB0aGlzLmdldEV4aXN0aW5nQ2hhcnRBbm5vdGF0aW9ucygpO1xuICAgIHRoaXMuY2hhcnRUeXBlID0gdHlwZTtcbiAgICB0aGlzLmNoYXJ0Lm9wdGlvbnMgPSB0aGlzLmNyZWF0ZU9wdGlvbnNPYmplY3QoeyBjdXN0b21PcHRpb25zLCBhbm5vdGF0aW9ucyB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVBbm5vdGF0aW9ucyhhbm5vdGF0aW9uczogQW5ub3RhdGlvbk9wdGlvbnNbXSkge1xuICAgIGNvbnN0IGFubm90YXRpb25zV2l0aERlZmF1bHRzID0gdGhpcy5hcHBseURlZmF1bHRzVG9Bbm5vdGF0aW9ucyhhbm5vdGF0aW9ucyk7XG4gICAgdGhpcy5jaGFydC5vcHRpb25zLnBsdWdpbnMuYW5ub3RhdGlvbi5hbm5vdGF0aW9ucyA9IGFubm90YXRpb25zV2l0aERlZmF1bHRzO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUhpZ2hsaWdodGVkRWxlbWVudHMoaGlnaGxpZ2h0ZWRFbGVtZW50cz86IENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cykge1xuICAgIHRoaXMuaGlnaGxpZ2h0ZWRFbGVtZW50cyA9IGhpZ2hsaWdodGVkRWxlbWVudHM7XG4gICAgY29uc3Qgb2xkRGF0YXNldHMgPSB0aGlzLmNoYXJ0LmRhdGEuZGF0YXNldHMgYXMgQ2hhcnREYXRhc2V0W107XG5cbiAgICAvLyBDbGVhciBvbGQgZGF0YXNldHMgb2YgaGlnaGxpZ2h0ZWQgZWxlbWVudHNcbiAgICBvbGREYXRhc2V0cy5tYXAoKGRhdGFzZXQpID0+IHtcbiAgICAgIGlmIChkYXRhc2V0Py5raXJieU9wdGlvbnM/LmhpZ2hsaWdodGVkRWxlbWVudHMpIHtcbiAgICAgICAgZGVsZXRlIGRhdGFzZXQua2lyYnlPcHRpb25zLmhpZ2hsaWdodGVkRWxlbWVudHM7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmNoYXJ0LmRhdGEuZGF0YXNldHMgPSB0aGlzLmNyZWF0ZURhdGFzZXRzKG9sZERhdGFzZXRzKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXhpc3RpbmdDaGFydEFubm90YXRpb25zKCk6IEFubm90YXRpb25PcHRpb25zW10ge1xuICAgIGNvbnN0IGFubm90YXRpb25zID0gdGhpcy5jaGFydC5vcHRpb25zLnBsdWdpbnM/LmFubm90YXRpb24/LmFubm90YXRpb25zO1xuICAgIC8qIEluIGJyb3dzZXIgY2hhcnQuanMgbWlnaHQgcmV0dXJuIGFubm90YXRpb25zIGFzIGEgUHJveHkgb2JqZWN0OyBmb3JjZSBpdCB0byBiZSBhbiBhcnJheS5cbiAgICAgICBFYWNoIGFubm90YXRpb25PcHRpb24gaW4gdGhlIHJlc3VsdGluZyBhcnJheSAgd2lsbCBhbHNvIGJlIGEgUHJveHkgb2JqZWN0LiBcbiAgICAgICBCdXQgaW50ZXJuYWxseSBjaGFydC5qcyB3aWxsIGp1c3Qgd29yayB3aXRoIHRoZW0gYXMgbm9ybWFsIHZhbHVlcyAqL1xuICAgIGlmIChhbm5vdGF0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMoYW5ub3RhdGlvbnMpLm1hcCgoa2V5KSA9PiBhbm5vdGF0aW9uc1trZXldKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJ1Y3RpdmVseVVwZGF0ZVR5cGUodHlwZTogQ2hhcnRUeXBlLCBjdXN0b21PcHRpb25zPzogQ2hhcnRPcHRpb25zKSB7XG4gICAgY29uc3QgZGF0YXNldHMgPSB0aGlzLmNoYXJ0LmRhdGEuZGF0YXNldHMgYXMgQ2hhcnREYXRhc2V0W107XG4gICAgY29uc3QgbGFiZWxzID0gdGhpcy5jaGFydC5kYXRhLmxhYmVscztcbiAgICBjb25zdCBhbm5vdGF0aW9ucyA9IHRoaXMuZ2V0RXhpc3RpbmdDaGFydEFubm90YXRpb25zKCk7XG5cbiAgICB0aGlzLmNoYXJ0VHlwZSA9IHR5cGU7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY3JlYXRlT3B0aW9uc09iamVjdCh7IGN1c3RvbU9wdGlvbnMsIGFubm90YXRpb25zIH0pO1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY3JlYXRlQ29uZmlndXJhdGlvbk9iamVjdCh0eXBlLCBkYXRhc2V0cywgb3B0aW9ucywgbGFiZWxzKTtcbiAgICBjb25zdCBjYW52YXNFbGVtZW50ID0gdGhpcy5jaGFydC5jYW52YXM7XG5cbiAgICB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcbiAgICB0aGlzLmluaXRpYWxpemVOZXdDaGFydChjYW52YXNFbGVtZW50LCBjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBub25EZXN0cnVjdGl2ZWx5VXBkYXRlVHlwZShjaGFydFR5cGU6IENoYXJ0VHlwZSwgY3VzdG9tT3B0aW9ucz86IENoYXJ0T3B0aW9ucykge1xuICAgIGNvbnN0IGFubm90YXRpb25zID0gdGhpcy5nZXRFeGlzdGluZ0NoYXJ0QW5ub3RhdGlvbnMoKTtcbiAgICB0aGlzLmNoYXJ0VHlwZSA9IGNoYXJ0VHlwZTtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jcmVhdGVPcHRpb25zT2JqZWN0KHtcbiAgICAgIGN1c3RvbU9wdGlvbnMsXG4gICAgICBhbm5vdGF0aW9ucyxcbiAgICB9KTtcblxuICAgIHRoaXMuY2hhcnQub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5jaGFydC5jb25maWcudHlwZSA9IHRoaXMuY2hhcnRDb25maWdTZXJ2aWNlLmNoYXJ0VHlwZVRvQ2hhcnRKU1R5cGUoY2hhcnRUeXBlKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZU5ld0NoYXJ0KGNhbnZhc0VsZW1lbnQ6IEhUTUxDYW52YXNFbGVtZW50LCBjb25maWc6IENoYXJ0Q29uZmlndXJhdGlvbikge1xuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQoY2FudmFzRWxlbWVudCwgY29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQmxhbmtMYWJlbHMoZGF0YXNldHM6IENoYXJ0RGF0YXNldFtdKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGxhcmdlc3REYXRhc2V0ID0gZGF0YXNldHMucmVkdWNlKChwcmV2aW91c0RhdGFzZXQsIGN1cnJlbnREYXRhc2V0KSA9PlxuICAgICAgcHJldmlvdXNEYXRhc2V0LmRhdGEubGVuZ3RoID4gY3VycmVudERhdGFzZXQuZGF0YS5sZW5ndGggPyBwcmV2aW91c0RhdGFzZXQgOiBjdXJyZW50RGF0YXNldFxuICAgICk7XG4gICAgcmV0dXJuIEFycmF5KGxhcmdlc3REYXRhc2V0LmRhdGEubGVuZ3RoKS5maWxsKCcnKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlEZWZhdWx0c1RvQW5ub3RhdGlvbnMoYW5ub3RhdGlvbnM6IEFubm90YXRpb25PcHRpb25zW10pIHtcbiAgICByZXR1cm4gYW5ub3RhdGlvbnMubWFwKChhbm5vdGF0aW9uKSA9PiB7XG4gICAgICBjb25zdCBhbm5vdGF0aW9uVHlwZURlZmF1bHRzID0gdGhpcy5jaGFydENvbmZpZ1NlcnZpY2UuZ2V0QW5ub3RhdGlvbkRlZmF1bHRzKGFubm90YXRpb24udHlwZSk7XG4gICAgICByZXR1cm4gbWVyZ2VEZWVwQWxsKGFubm90YXRpb25UeXBlRGVmYXVsdHMsIGFubm90YXRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBbm5vdGF0aW9uUGx1Z2luT3B0aW9uc09iamVjdChhbm5vdGF0aW9uczogQW5ub3RhdGlvbk9wdGlvbnNbXSkge1xuICAgIGNvbnN0IGFubm90YXRpb25zV2l0aERlZmF1bHRzID0gdGhpcy5hcHBseURlZmF1bHRzVG9Bbm5vdGF0aW9ucyhhbm5vdGF0aW9ucyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgYW5ub3RhdGlvbjoge1xuICAgICAgICAgIGFubm90YXRpb25zOiBhbm5vdGF0aW9uc1dpdGhEZWZhdWx0cyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlJbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnMob3B0aW9uczogQ2hhcnRPcHRpb25zKTogQ2hhcnRPcHRpb25zIHtcbiAgICBjb25zdCBpbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnMgPSB0aGlzLmNoYXJ0Q29uZmlnU2VydmljZS5nZXRJbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnMoKTtcbiAgICBPYmplY3QuZW50cmllcyhpbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnMpLmZvckVhY2goKFtrZXksIF9dKSA9PiB7XG4gICAgICBjb25zdCBjYWxsYmFjayA9IG9wdGlvbnNba2V5XTtcbiAgICAgIG9wdGlvbnNba2V5XSA9IChlOiBFdmVudCwgYTogQWN0aXZlRWxlbWVudFtdLCBjOiBDaGFydCkgPT4ge1xuICAgICAgICBpbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnNba2V5XShlLCBhLCBjLCBjYWxsYmFjayk7XG4gICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTdG9ja09wdGlvbnNPYmplY3QoZGF0YUxhYmVsT3B0aW9uczogQ2hhcnREYXRhTGFiZWxPcHRpb25zKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIHRvb2x0aXA6IHtcbiAgICAgICAgICBjYWxsYmFja3M6IHtcbiAgICAgICAgICAgIHRpdGxlOiAodG9vbHRpcEl0ZW1zKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGRhdGUgPSB0b0RhdGUoKHRvb2x0aXBJdGVtc1swXT8ucmF3IGFzIGFueSk/LngpO1xuICAgICAgICAgICAgICBpZiAoZGF0ZS52YWx1ZU9mKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZS50b0xvY2FsZVRpbWVTdHJpbmcodGhpcy5sb2NhbGUsIHtcbiAgICAgICAgICAgICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgICAgICAgICAgICAgbW9udGg6ICdzaG9ydCcsXG4gICAgICAgICAgICAgICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICAgICAgICAgICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhYmVsOiAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAvLyBJdCdzIG5vdCBwb3NzaWJsZSB0byBhZGQgc3BhY2luZyBiZXR3ZWVuIGNvbG9yIGxlZ2VuZCBhbmQgdGV4dCBzbyB3ZVxuICAgICAgICAgICAgICAvLyBwcmVmaXggd2l0aCBhIHNwYWNlLlxuICAgICAgICAgICAgICByZXR1cm4gJyAnICsgY29udGV4dC5mb3JtYXR0ZWRWYWx1ZSArIChkYXRhTGFiZWxPcHRpb25zLnZhbHVlU3VmZml4IHx8ICcnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzY2FsZXM6IHtcbiAgICAgICAgeToge1xuICAgICAgICAgIHRpY2tzOiB7XG4gICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB2YWx1ZSArIChkYXRhTGFiZWxPcHRpb25zLnZhbHVlU3VmZml4IHx8ICcnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT3B0aW9uc09iamVjdChhcmdzOiB7XG4gICAgY3VzdG9tT3B0aW9ucz86IENoYXJ0T3B0aW9ucztcbiAgICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25PcHRpb25zW107XG4gICAgZGF0YUxhYmVsT3B0aW9ucz86IENoYXJ0RGF0YUxhYmVsT3B0aW9ucztcbiAgfSk6IENoYXJ0T3B0aW9ucyB7XG4gICAgY29uc3QgeyBjdXN0b21PcHRpb25zLCBhbm5vdGF0aW9ucywgZGF0YUxhYmVsT3B0aW9uczogY2hhcnREYXRhTGFiZWxPcHRpb25zIH0gPSBhcmdzO1xuXG4gICAgY29uc3QgdHlwZUNvbmZpZyA9IHRoaXMuY2hhcnRDb25maWdTZXJ2aWNlLmdldFR5cGVDb25maWcodGhpcy5jaGFydFR5cGUpO1xuICAgIGNvbnN0IHR5cGVDb25maWdPcHRpb25zID0gdHlwZUNvbmZpZz8ub3B0aW9ucztcbiAgICBjb25zdCBhbm5vdGF0aW9uUGx1Z2luT3B0aW9ucyA9IGFubm90YXRpb25zXG4gICAgICA/IHRoaXMuY3JlYXRlQW5ub3RhdGlvblBsdWdpbk9wdGlvbnNPYmplY3QoYW5ub3RhdGlvbnMpXG4gICAgICA6IHt9O1xuICAgIGNvbnN0IHN0b2NrT3B0aW9uczogQ2hhcnRPcHRpb25zID1cbiAgICAgIHRoaXMuY2hhcnRUeXBlID09PSAnc3RvY2snID8gdGhpcy5jcmVhdGVTdG9ja09wdGlvbnNPYmplY3QoY2hhcnREYXRhTGFiZWxPcHRpb25zKSA6IHt9O1xuXG4gICAgbGV0IG9wdGlvbnM6IENoYXJ0T3B0aW9ucyA9IG1lcmdlRGVlcEFsbChcbiAgICAgIHN0b2NrT3B0aW9ucyxcbiAgICAgIHR5cGVDb25maWdPcHRpb25zLFxuICAgICAgY3VzdG9tT3B0aW9ucyxcbiAgICAgIGFubm90YXRpb25QbHVnaW5PcHRpb25zXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLmFwcGx5SW50ZXJhY3Rpb25GdW5jdGlvbnNFeHRlbnNpb25zKG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWZhdWx0U3RvY2tMYWJlbHMoZGF0YXNldHM6IENoYXJ0RGF0YXNldFtdLCBsb2NhbGU6IENoYXJ0TG9jYWxlKSB7XG4gICAgY29uc3QgbGFyZ2VzdERhdGFzZXQgPSBkYXRhc2V0cy5yZWR1Y2UoKHByZXZpb3VzRGF0YXNldCwgY3VycmVudERhdGFzZXQpID0+XG4gICAgICBwcmV2aW91c0RhdGFzZXQuZGF0YS5sZW5ndGggPiBjdXJyZW50RGF0YXNldC5kYXRhLmxlbmd0aCA/IHByZXZpb3VzRGF0YXNldCA6IGN1cnJlbnREYXRhc2V0XG4gICAgKTtcbiAgICByZXR1cm4gbGFyZ2VzdERhdGFzZXQuZGF0YS5tYXAoKHBvaW50OiBTY2F0dGVyRGF0YVBvaW50KSA9PlxuICAgICAgdG9EYXRlKHBvaW50LngpLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUsIHtcbiAgICAgICAgbW9udGg6ICdzaG9ydCcsXG4gICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb25maWd1cmF0aW9uT2JqZWN0KFxuICAgIHR5cGU6IENoYXJ0VHlwZSxcbiAgICBkYXRhc2V0czogQ2hhcnREYXRhc2V0W10sXG4gICAgb3B0aW9uczogQ2hhcnRPcHRpb25zLFxuICAgIGxhYmVscz86IHVua25vd25bXVxuICApOiBDaGFydENvbmZpZ3VyYXRpb24ge1xuICAgIGNvbnN0IHR5cGVDb25maWcgPSB0aGlzLmNoYXJ0Q29uZmlnU2VydmljZS5nZXRUeXBlQ29uZmlnKHR5cGUpO1xuXG4gICAgY29uc3QgbGFiZWxzVG9BcHBseSA9ICgoKSA9PiB7XG4gICAgICBpZiAobGFiZWxzPy5sZW5ndGggPiAwKSByZXR1cm4gbGFiZWxzO1xuICAgICAgZWxzZSBpZiAodHlwZSA9PT0gJ3N0b2NrJykgcmV0dXJuIHRoaXMuZ2V0RGVmYXVsdFN0b2NrTGFiZWxzKGRhdGFzZXRzLCB0aGlzLmxvY2FsZSk7XG4gICAgICBlbHNlIHJldHVybiB0aGlzLmNyZWF0ZUJsYW5rTGFiZWxzKGRhdGFzZXRzKTsgLy8gQ2hhcnRKUyByZXF1aXJlcyBsYWJlbHNcbiAgICB9KSgpO1xuXG4gICAgcmV0dXJuIG1lcmdlRGVlcEFsbCh0eXBlQ29uZmlnLCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIGxhYmVsczogbGFiZWxzVG9BcHBseSxcbiAgICAgICAgZGF0YXNldHMsXG4gICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICB9KSBhcyBDaGFydENvbmZpZ3VyYXRpb247XG4gIH1cblxuICBwcml2YXRlIGFkZEhpZ2hsaWdodGVkRWxlbWVudHNUb0RhdGFzZXRzKFxuICAgIGhpZ2hsaWdodGVkRWxlbWVudHM6IENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cyxcbiAgICBkYXRhc2V0czogQ2hhcnREYXRhc2V0W11cbiAgKSB7XG4gICAgaGlnaGxpZ2h0ZWRFbGVtZW50cy5mb3JFYWNoKChbZGF0YXNldEluZGV4LCBkYXRhSW5kZXhdKSA9PiB7XG4gICAgICBjb25zdCBkYXRhc2V0ID0gZGF0YXNldHNbZGF0YXNldEluZGV4XTtcbiAgICAgIGlmICghZGF0YXNldCkgcmV0dXJuO1xuXG4gICAgICBpZiAoZGF0YXNldD8ua2lyYnlPcHRpb25zPy5oaWdobGlnaHRlZEVsZW1lbnRzKSB7XG4gICAgICAgIGRhdGFzZXQua2lyYnlPcHRpb25zLmhpZ2hsaWdodGVkRWxlbWVudHMucHVzaChkYXRhSW5kZXgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGF0YXNldC5raXJieU9wdGlvbnMgPSB7XG4gICAgICAgICAgLi4uZGF0YXNldC5raXJieU9wdGlvbnMsXG4gICAgICAgICAgaGlnaGxpZ2h0ZWRFbGVtZW50czogW2RhdGFJbmRleF0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVEYXRhc2V0cyhkYXRhOiBDaGFydERhdGFzZXRbXSB8IG51bWJlcltdKTogQ2hhcnREYXRhc2V0W10ge1xuICAgIC8vIFdlIG5lZWQgdG8gbW9kaWZ5IHRoZSBkYXRhc2V0cyBpbiBvcmRlciB0byBhZGQgZGF0YWxhYmVscy5cbiAgICBpZiAoXG4gICAgICB0aGlzLmRhdGFMYWJlbE9wdGlvbnM/LnNob3dDdXJyZW50IHx8XG4gICAgICB0aGlzLmRhdGFMYWJlbE9wdGlvbnM/LnNob3dNYXggfHxcbiAgICAgIHRoaXMuZGF0YUxhYmVsT3B0aW9ucz8uc2hvd01pblxuICAgICkge1xuICAgICAgZGF0YSA9IHRoaXMuYWRkRGF0YUxhYmVsc0RhdGEoZGF0YSk7XG4gICAgfVxuICAgIGxldCBkYXRhc2V0cyA9IGlzTnVtYmVyQXJyYXkoZGF0YSkgPyBbeyBkYXRhIH1dIDogZGF0YTtcbiAgICBpZiAodGhpcy5oaWdobGlnaHRlZEVsZW1lbnRzKVxuICAgICAgdGhpcy5hZGRIaWdobGlnaHRlZEVsZW1lbnRzVG9EYXRhc2V0cyh0aGlzLmhpZ2hsaWdodGVkRWxlbWVudHMsIGRhdGFzZXRzKTtcblxuICAgIC8qIFxuICAgICAgIEhhY2t5IHNvbHV0aW9uLiBTaG91bGQgYmUgZml4ZWQgaW4gdGhpcyBpc3N1ZTpcbiAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9raXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vaXNzdWVzLzE5NjcgXG4gICAgKi9cbiAgICBpZiAodGhpcy5jaGFydFR5cGUgPT09ICdzdG9jaycpIHtcbiAgICAgIGRhdGFzZXRzLmZvckVhY2goKGRhdGFzZXQpID0+IHtcbiAgICAgICAgZGF0YXNldC5raXJieU9wdGlvbnMgPSB7XG4gICAgICAgICAgLi4uZGF0YXNldC5raXJieU9wdGlvbnMsXG4gICAgICAgICAgaXNTdG9ja0NoYXJ0OiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGFzZXRzO1xuICB9XG4gIC8qKlxuICAgKiBEZWNvcmF0ZSBDaGFydERhdGFzZXQgd2l0aCBwcm9wZXJ0aWVzIHRvIGFsbG93IGZvciBkYXRhbGFiZWxzLlxuICAgKlxuICAgKiBAcGFyYW0gZGF0YVxuICAgKiBAcmV0dXJucyBDaGFydERhdGFzZXRbXVxuICAgKi9cbiAgcHVibGljIGFkZERhdGFMYWJlbHNEYXRhKGRhdGE6IENoYXJ0RGF0YXNldFtdIHwgbnVtYmVyW10pOiBDaGFydERhdGFzZXRbXSB7XG4gICAgaWYgKGlzTnVtYmVyQXJyYXkoZGF0YSkpIHtcbiAgICAgIHRocm93IEVycm9yKFwiQ3VycmVudGx5IGl0J3MgaW1wb3NzaWJsZSB0byBhZGQgZGF0YUxhYmVscyB0byBub24gU2NhdHRlckRhdGFQb2ludCBkYXRhc2V0c1wiKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWNvcmF0ZURhdGFQb2ludCA9IChcbiAgICAgIHNldDogQ2hhcnREYXRhc2V0LFxuICAgICAgYXhpczogJ3gnIHwgJ3knLFxuICAgICAgZGlyZWN0aW9uOiAnaGlnaCcgfCAnbG93JyxcbiAgICAgIHBvc2l0aW9uOiAnYm90dG9tJyB8ICd0b3AnIHwgJ2xlZnQnIHwgJ3JpZ2h0J1xuICAgICk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSwgcG9pbnRlciB9ID0gdGhpcy5sb2NhdGVWYWx1ZUluZGV4SW5EYXRhc2V0KHNldCwgYXhpcywgZGlyZWN0aW9uKTtcbiAgICAgIHNldC5kYXRhW3BvaW50ZXJdID0ge1xuICAgICAgICAuLi4oc2V0LmRhdGFbcG9pbnRlcl0gYXMgU2NhdHRlckRhdGFQb2ludCksXG4gICAgICAgIGRhdGFsYWJlbDoge1xuICAgICAgICAgIHZhbHVlOiB2YWx1ZSArICh0aGlzLmRhdGFMYWJlbE9wdGlvbnMudmFsdWVTdWZmaXggfHwgJycpLFxuICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICB9LFxuICAgICAgfSBhcyBTY2F0dGVyRGF0YVBvaW50O1xuICAgIH07XG5cbiAgICBkYXRhLm1hcCgoc2V0KSA9PiB7XG4gICAgICBpZiAodGhpcy5kYXRhTGFiZWxPcHRpb25zLnNob3dNaW4pIHtcbiAgICAgICAgZGVjb3JhdGVEYXRhUG9pbnQoc2V0LCAneScsICdsb3cnLCAnYm90dG9tJyk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5kYXRhTGFiZWxPcHRpb25zLnNob3dNYXgpIHtcbiAgICAgICAgZGVjb3JhdGVEYXRhUG9pbnQoc2V0LCAneScsICdoaWdoJywgJ3RvcCcpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZGF0YUxhYmVsT3B0aW9ucy5zaG93Q3VycmVudCkge1xuICAgICAgICBkZWNvcmF0ZURhdGFQb2ludChzZXQsICd4JywgJ2hpZ2gnLCAncmlnaHQnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgbG9jYXRlVmFsdWVJbmRleEluRGF0YXNldChcbiAgICBkYXRhc2V0OiBDaGFydERhdGFzZXQsXG4gICAgYXhpczogc3RyaW5nLFxuICAgIGRpcmVjdGlvbjogJ2xvdycgfCAnaGlnaCdcbiAgKTogeyB2YWx1ZTogbnVtYmVyOyBwb2ludGVyOiBudW1iZXIgfSB7XG4gICAgbGV0IHBvaW50ZXI6IG51bWJlcjtcbiAgICBsZXQgdmFsdWU6IG51bWJlcjtcbiAgICBkYXRhc2V0LmRhdGEuZm9yRWFjaCgoZGF0YXBvaW50LCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGRpcmVjdGlvbiA9PSAnbG93JyAmJiAoIXZhbHVlIHx8IGRhdGFwb2ludFtheGlzXSA8IHZhbHVlKSkge1xuICAgICAgICB2YWx1ZSA9IGRhdGFwb2ludFsneSddO1xuICAgICAgICBwb2ludGVyID0gaW5kZXg7XG4gICAgICB9XG4gICAgICBpZiAoZGlyZWN0aW9uID09ICdoaWdoJyAmJiAoIXZhbHVlIHx8IGRhdGFwb2ludFtheGlzXSA+IHZhbHVlKSkge1xuICAgICAgICB2YWx1ZSA9IGRhdGFwb2ludFsneSddO1xuICAgICAgICBwb2ludGVyID0gaW5kZXg7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHsgdmFsdWUsIHBvaW50ZXIgfTtcbiAgfVxufVxuIl19
314
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtanMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC9jaGFydC1qcy9jaGFydC1qcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQU1MLGFBQWEsR0FDZCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5QyxNQUFNLG9CQUFvQixHQUFHLE9BQU8sQ0FBQztBQUdyQyxNQUFNLE9BQU8sY0FBYztJQU96QixZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUFHLENBQUM7SUFFdkQsV0FBVyxDQUFDLElBU2xCO1FBQ0MsTUFBTSxFQUNKLGFBQWEsRUFDYixJQUFJLEVBQ0osSUFBSSxFQUNKLE1BQU0sRUFDTixhQUFhLEVBQ2IsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixtQkFBbUIsR0FDcEIsR0FBRyxJQUFJLENBQUM7UUFFVCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLElBQUksSUFBSSxDQUFDO1FBQ2pELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsSUFBSSxJQUFJLENBQUM7UUFDdkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFBLGdCQUFnQixhQUFoQixnQkFBZ0IsdUJBQWhCLGdCQUFnQixD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RSxLQUFLLEVBQUUsRUFBRTtZQUN4QyxJQUFJLFNBQVMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQzdELEtBQUssR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZCLE9BQU8sR0FBRyxLQUFLLENBQUM7YUFDakI7WUFDRCxJQUFJLFNBQVMsSUFBSSxNQUFNLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQzlELEtBQUssR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZCLE9BQU8sR0FBRyxLQUFLLENBQUM7YUFDakI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7O1lBOVlGLFVBQVU7Ozs7WUFORixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmVFbGVtZW50LCBDaGFydENvbmZpZ3VyYXRpb24sIENoYXJ0T3B0aW9ucywgU2NhdHRlckRhdGFQb2ludCB9IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCB7IEFubm90YXRpb25PcHRpb25zIH0gZnJvbSAnY2hhcnRqcy1wbHVnaW4tYW5ub3RhdGlvbic7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tICdkYXRlLWZucyc7XG5cbmltcG9ydCB7IG1lcmdlRGVlcEFsbCB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcCc7XG5pbXBvcnQge1xuICBDaGFydERhdGFMYWJlbE9wdGlvbnMsXG4gIENoYXJ0RGF0YXNldCxcbiAgQ2hhcnRIaWdobGlnaHRlZEVsZW1lbnRzLFxuICBDaGFydExvY2FsZSxcbiAgQ2hhcnRUeXBlLFxuICBpc051bWJlckFycmF5LFxufSBmcm9tICcuLi9jaGFydC50eXBlcyc7XG5pbXBvcnQgeyBDaGFydENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9jb25maWdzL2NoYXJ0LWNvbmZpZy5zZXJ2aWNlJztcblxuaW1wb3J0IHsgQ2hhcnQgfSBmcm9tICcuL2NvbmZpZ3VyZWQtY2hhcnQtanMnO1xuXG5jb25zdCBDSEFSVF9MT0NBTEVfREVGQVVMVCA9ICdlbi1VUyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDaGFydEpTU2VydmljZSB7XG4gIHByaXZhdGUgY2hhcnQ6IENoYXJ0O1xuICBwcml2YXRlIGRhdGFMYWJlbE9wdGlvbnM6IENoYXJ0RGF0YUxhYmVsT3B0aW9ucztcbiAgcHJpdmF0ZSBoaWdobGlnaHRlZEVsZW1lbnRzOiBDaGFydEhpZ2hsaWdodGVkRWxlbWVudHM7XG4gIHByaXZhdGUgY2hhcnRUeXBlOiBDaGFydFR5cGU7XG4gIHByaXZhdGUgbG9jYWxlOiBDaGFydExvY2FsZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYXJ0Q29uZmlnU2VydmljZTogQ2hhcnRDb25maWdTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyByZW5kZXJDaGFydChhcmdzOiB7XG4gICAgdGFyZ2V0RWxlbWVudDogRWxlbWVudFJlZjxIVE1MQ2FudmFzRWxlbWVudD47XG4gICAgdHlwZTogQ2hhcnRUeXBlO1xuICAgIGRhdGE6IENoYXJ0RGF0YXNldFtdIHwgbnVtYmVyW107XG4gICAgbGFiZWxzPzogc3RyaW5nW10gfCBzdHJpbmdbXVtdO1xuICAgIGN1c3RvbU9wdGlvbnM/OiBDaGFydE9wdGlvbnM7XG4gICAgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uT3B0aW9uc1tdO1xuICAgIGRhdGFMYWJlbE9wdGlvbnM/OiBDaGFydERhdGFMYWJlbE9wdGlvbnM7XG4gICAgaGlnaGxpZ2h0ZWRFbGVtZW50cz86IENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cztcbiAgfSk6IHZvaWQge1xuICAgIGNvbnN0IHtcbiAgICAgIHRhcmdldEVsZW1lbnQsXG4gICAgICB0eXBlLFxuICAgICAgZGF0YSxcbiAgICAgIGxhYmVscyxcbiAgICAgIGN1c3RvbU9wdGlvbnMsXG4gICAgICBhbm5vdGF0aW9ucyxcbiAgICAgIGRhdGFMYWJlbE9wdGlvbnMsXG4gICAgICBoaWdobGlnaHRlZEVsZW1lbnRzLFxuICAgIH0gPSBhcmdzO1xuXG4gICAgdGhpcy5kYXRhTGFiZWxPcHRpb25zID0gZGF0YUxhYmVsT3B0aW9ucyB8fCBudWxsO1xuICAgIHRoaXMuaGlnaGxpZ2h0ZWRFbGVtZW50cyA9IGhpZ2hsaWdodGVkRWxlbWVudHMgfHwgbnVsbDtcbiAgICB0aGlzLmNoYXJ0VHlwZSA9IHR5cGU7XG4gICAgdGhpcy5sb2NhbGUgPSBkYXRhTGFiZWxPcHRpb25zPy5sb2NhbGUgfHwgQ0hBUlRfTE9DQUxFX0RFRkFVTFQ7XG5cbiAgICBjb25zdCBkYXRhc2V0cyA9IHRoaXMuY3JlYXRlRGF0YXNldHMoZGF0YSk7XG5cbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jcmVhdGVPcHRpb25zT2JqZWN0KHtcbiAgICAgIGN1c3RvbU9wdGlvbnMsXG4gICAgICBhbm5vdGF0aW9ucyxcbiAgICAgIGRhdGFMYWJlbE9wdGlvbnMsXG4gICAgfSk7XG4gICAgbGV0IGNvbmZpZyA9IHRoaXMuY3JlYXRlQ29uZmlndXJhdGlvbk9iamVjdCh0eXBlLCBkYXRhc2V0cywgb3B0aW9ucywgbGFiZWxzKTtcblxuICAgIHRoaXMuaW5pdGlhbGl6ZU5ld0NoYXJ0KHRhcmdldEVsZW1lbnQubmF0aXZlRWxlbWVudCwgY29uZmlnKTtcbiAgfVxuXG4gIHB1YmxpYyByZWRyYXdDaGFydCgpIHtcbiAgICB0aGlzLmNoYXJ0LnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZURhdGEoZGF0YTogQ2hhcnREYXRhc2V0W10gfCBudW1iZXJbXSk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGFzZXRzID0gdGhpcy5jcmVhdGVEYXRhc2V0cyhkYXRhKTtcblxuICAgIHRoaXMuY2hhcnQuZGF0YS5kYXRhc2V0cyA9IGRhdGFzZXRzO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUxhYmVscyhsYWJlbHM6IHN0cmluZ1tdIHwgc3RyaW5nW11bXSkge1xuICAgIHRoaXMuY2hhcnQuZGF0YS5sYWJlbHMgPSBsYWJlbHM7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVHlwZSh0eXBlOiBDaGFydFR5cGUsIGN1c3RvbU9wdGlvbnM/OiBDaGFydE9wdGlvbnMpIHtcbiAgICBpZiAodHlwZSA9PT0gJ2JhcicgfHwgdHlwZSA9PT0gJ2NvbHVtbicpIHtcbiAgICAgIC8qIGluZGV4QXhpcyBkb2VzIG5vdCB1cGRhdGUgcHJlZGljdGFibHk7IHVwZGF0ZSBieSByZXBsYWNpbmcgXG4gICAgICAgICB0aGUgY2hhcnQgZW50aXJlbHkgaW5zdGVhZCAqL1xuICAgICAgdGhpcy5kZXN0cnVjdGl2ZWx5VXBkYXRlVHlwZSh0eXBlLCBjdXN0b21PcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ub25EZXN0cnVjdGl2ZWx5VXBkYXRlVHlwZSh0eXBlLCBjdXN0b21PcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0RGF0YUxhYmVsT3B0aW9ucyhkYXRhTGFiZWxPcHRpb25zOiBDaGFydERhdGFMYWJlbE9wdGlvbnMpIHtcbiAgICB0aGlzLmRhdGFMYWJlbE9wdGlvbnMgPSBkYXRhTGFiZWxPcHRpb25zO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZU9wdGlvbnMoY3VzdG9tT3B0aW9uczogQ2hhcnRPcHRpb25zLCB0eXBlOiBDaGFydFR5cGUpIHtcbiAgICBjb25zdCBhbm5vdGF0aW9ucyA9IHRoaXMuZ2V0RXhpc3RpbmdDaGFydEFubm90YXRpb25zKCk7XG4gICAgdGhpcy5jaGFydFR5cGUgPSB0eXBlO1xuICAgIHRoaXMuY2hhcnQub3B0aW9ucyA9IHRoaXMuY3JlYXRlT3B0aW9uc09iamVjdCh7IGN1c3RvbU9wdGlvbnMsIGFubm90YXRpb25zIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFubm90YXRpb25zKGFubm90YXRpb25zOiBBbm5vdGF0aW9uT3B0aW9uc1tdKSB7XG4gICAgY29uc3QgYW5ub3RhdGlvbnNXaXRoRGVmYXVsdHMgPSB0aGlzLmFwcGx5RGVmYXVsdHNUb0Fubm90YXRpb25zKGFubm90YXRpb25zKTtcbiAgICB0aGlzLmNoYXJ0Lm9wdGlvbnMucGx1Z2lucy5hbm5vdGF0aW9uLmFubm90YXRpb25zID0gYW5ub3RhdGlvbnNXaXRoRGVmYXVsdHM7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlSGlnaGxpZ2h0ZWRFbGVtZW50cyhoaWdobGlnaHRlZEVsZW1lbnRzPzogQ2hhcnRIaWdobGlnaHRlZEVsZW1lbnRzKSB7XG4gICAgdGhpcy5oaWdobGlnaHRlZEVsZW1lbnRzID0gaGlnaGxpZ2h0ZWRFbGVtZW50cztcbiAgICBjb25zdCBvbGREYXRhc2V0cyA9IHRoaXMuY2hhcnQuZGF0YS5kYXRhc2V0cyBhcyBDaGFydERhdGFzZXRbXTtcblxuICAgIC8vIENsZWFyIG9sZCBkYXRhc2V0cyBvZiBoaWdobGlnaHRlZCBlbGVtZW50c1xuICAgIG9sZERhdGFzZXRzLm1hcCgoZGF0YXNldCkgPT4ge1xuICAgICAgaWYgKGRhdGFzZXQ/LmtpcmJ5T3B0aW9ucz8uaGlnaGxpZ2h0ZWRFbGVtZW50cykge1xuICAgICAgICBkZWxldGUgZGF0YXNldC5raXJieU9wdGlvbnMuaGlnaGxpZ2h0ZWRFbGVtZW50cztcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuY2hhcnQuZGF0YS5kYXRhc2V0cyA9IHRoaXMuY3JlYXRlRGF0YXNldHMob2xkRGF0YXNldHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFeGlzdGluZ0NoYXJ0QW5ub3RhdGlvbnMoKTogQW5ub3RhdGlvbk9wdGlvbnNbXSB7XG4gICAgY29uc3QgYW5ub3RhdGlvbnMgPSB0aGlzLmNoYXJ0Lm9wdGlvbnMucGx1Z2lucz8uYW5ub3RhdGlvbj8uYW5ub3RhdGlvbnM7XG4gICAgLyogSW4gYnJvd3NlciBjaGFydC5qcyBtaWdodCByZXR1cm4gYW5ub3RhdGlvbnMgYXMgYSBQcm94eSBvYmplY3Q7IGZvcmNlIGl0IHRvIGJlIGFuIGFycmF5LlxuICAgICAgIEVhY2ggYW5ub3RhdGlvbk9wdGlvbiBpbiB0aGUgcmVzdWx0aW5nIGFycmF5ICB3aWxsIGFsc28gYmUgYSBQcm94eSBvYmplY3QuIFxuICAgICAgIEJ1dCBpbnRlcm5hbGx5IGNoYXJ0LmpzIHdpbGwganVzdCB3b3JrIHdpdGggdGhlbSBhcyBub3JtYWwgdmFsdWVzICovXG4gICAgaWYgKGFubm90YXRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhhbm5vdGF0aW9ucykubWFwKChrZXkpID0+IGFubm90YXRpb25zW2tleV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cnVjdGl2ZWx5VXBkYXRlVHlwZSh0eXBlOiBDaGFydFR5cGUsIGN1c3RvbU9wdGlvbnM/OiBDaGFydE9wdGlvbnMpIHtcbiAgICBjb25zdCBkYXRhc2V0cyA9IHRoaXMuY2hhcnQuZGF0YS5kYXRhc2V0cyBhcyBDaGFydERhdGFzZXRbXTtcbiAgICBjb25zdCBsYWJlbHMgPSB0aGlzLmNoYXJ0LmRhdGEubGFiZWxzO1xuICAgIGNvbnN0IGFubm90YXRpb25zID0gdGhpcy5nZXRFeGlzdGluZ0NoYXJ0QW5ub3RhdGlvbnMoKTtcblxuICAgIHRoaXMuY2hhcnRUeXBlID0gdHlwZTtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5jcmVhdGVPcHRpb25zT2JqZWN0KHsgY3VzdG9tT3B0aW9ucywgYW5ub3RhdGlvbnMgfSk7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jcmVhdGVDb25maWd1cmF0aW9uT2JqZWN0KHR5cGUsIGRhdGFzZXRzLCBvcHRpb25zLCBsYWJlbHMpO1xuICAgIGNvbnN0IGNhbnZhc0VsZW1lbnQgPSB0aGlzLmNoYXJ0LmNhbnZhcztcblxuICAgIHRoaXMuY2hhcnQuZGVzdHJveSgpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZU5ld0NoYXJ0KGNhbnZhc0VsZW1lbnQsIGNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIG5vbkRlc3RydWN0aXZlbHlVcGRhdGVUeXBlKGNoYXJ0VHlwZTogQ2hhcnRUeXBlLCBjdXN0b21PcHRpb25zPzogQ2hhcnRPcHRpb25zKSB7XG4gICAgY29uc3QgYW5ub3RhdGlvbnMgPSB0aGlzLmdldEV4aXN0aW5nQ2hhcnRBbm5vdGF0aW9ucygpO1xuICAgIHRoaXMuY2hhcnRUeXBlID0gY2hhcnRUeXBlO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNyZWF0ZU9wdGlvbnNPYmplY3Qoe1xuICAgICAgY3VzdG9tT3B0aW9ucyxcbiAgICAgIGFubm90YXRpb25zLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jaGFydC5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLmNoYXJ0LmNvbmZpZy50eXBlID0gdGhpcy5jaGFydENvbmZpZ1NlcnZpY2UuY2hhcnRUeXBlVG9DaGFydEpTVHlwZShjaGFydFR5cGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplTmV3Q2hhcnQoY2FudmFzRWxlbWVudDogSFRNTENhbnZhc0VsZW1lbnQsIGNvbmZpZzogQ2hhcnRDb25maWd1cmF0aW9uKSB7XG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydChjYW52YXNFbGVtZW50LCBjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVCbGFua0xhYmVscyhkYXRhc2V0czogQ2hhcnREYXRhc2V0W10pOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgbGFyZ2VzdERhdGFzZXQgPSBkYXRhc2V0cy5yZWR1Y2UoKHByZXZpb3VzRGF0YXNldCwgY3VycmVudERhdGFzZXQpID0+XG4gICAgICBwcmV2aW91c0RhdGFzZXQuZGF0YS5sZW5ndGggPiBjdXJyZW50RGF0YXNldC5kYXRhLmxlbmd0aCA/IHByZXZpb3VzRGF0YXNldCA6IGN1cnJlbnREYXRhc2V0XG4gICAgKTtcbiAgICByZXR1cm4gQXJyYXkobGFyZ2VzdERhdGFzZXQuZGF0YS5sZW5ndGgpLmZpbGwoJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseURlZmF1bHRzVG9Bbm5vdGF0aW9ucyhhbm5vdGF0aW9uczogQW5ub3RhdGlvbk9wdGlvbnNbXSkge1xuICAgIHJldHVybiBhbm5vdGF0aW9ucy5tYXAoKGFubm90YXRpb24pID0+IHtcbiAgICAgIGNvbnN0IGFubm90YXRpb25UeXBlRGVmYXVsdHMgPSB0aGlzLmNoYXJ0Q29uZmlnU2VydmljZS5nZXRBbm5vdGF0aW9uRGVmYXVsdHMoYW5ub3RhdGlvbi50eXBlKTtcbiAgICAgIHJldHVybiBtZXJnZURlZXBBbGwoYW5ub3RhdGlvblR5cGVEZWZhdWx0cywgYW5ub3RhdGlvbik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUFubm90YXRpb25QbHVnaW5PcHRpb25zT2JqZWN0KGFubm90YXRpb25zOiBBbm5vdGF0aW9uT3B0aW9uc1tdKSB7XG4gICAgY29uc3QgYW5ub3RhdGlvbnNXaXRoRGVmYXVsdHMgPSB0aGlzLmFwcGx5RGVmYXVsdHNUb0Fubm90YXRpb25zKGFubm90YXRpb25zKTtcbiAgICByZXR1cm4ge1xuICAgICAgcGx1Z2luczoge1xuICAgICAgICBhbm5vdGF0aW9uOiB7XG4gICAgICAgICAgYW5ub3RhdGlvbnM6IGFubm90YXRpb25zV2l0aERlZmF1bHRzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUludGVyYWN0aW9uRnVuY3Rpb25zRXh0ZW5zaW9ucyhvcHRpb25zOiBDaGFydE9wdGlvbnMpOiBDaGFydE9wdGlvbnMge1xuICAgIGNvbnN0IGludGVyYWN0aW9uRnVuY3Rpb25zRXh0ZW5zaW9ucyA9XG4gICAgICB0aGlzLmNoYXJ0Q29uZmlnU2VydmljZS5nZXRJbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnMoKTtcbiAgICBPYmplY3QuZW50cmllcyhpbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnMpLmZvckVhY2goKFtrZXksIF9dKSA9PiB7XG4gICAgICBjb25zdCBjYWxsYmFjayA9IG9wdGlvbnNba2V5XTtcbiAgICAgIG9wdGlvbnNba2V5XSA9IChlOiBFdmVudCwgYTogQWN0aXZlRWxlbWVudFtdLCBjOiBDaGFydCkgPT4ge1xuICAgICAgICBpbnRlcmFjdGlvbkZ1bmN0aW9uc0V4dGVuc2lvbnNba2V5XShlLCBhLCBjLCBjYWxsYmFjayk7XG4gICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTdG9ja09wdGlvbnNPYmplY3QoZGF0YUxhYmVsT3B0aW9uczogQ2hhcnREYXRhTGFiZWxPcHRpb25zKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIHRvb2x0aXA6IHtcbiAgICAgICAgICBjYWxsYmFja3M6IHtcbiAgICAgICAgICAgIHRpdGxlOiAodG9vbHRpcEl0ZW1zKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGRhdGUgPSB0b0RhdGUoKHRvb2x0aXBJdGVtc1swXT8ucmF3IGFzIGFueSk/LngpO1xuICAgICAgICAgICAgICBpZiAoZGF0ZS52YWx1ZU9mKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZS50b0xvY2FsZVRpbWVTdHJpbmcodGhpcy5sb2NhbGUsIHtcbiAgICAgICAgICAgICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgICAgICAgICAgICAgbW9udGg6ICdzaG9ydCcsXG4gICAgICAgICAgICAgICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICAgICAgICAgICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhYmVsOiAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAvLyBJdCdzIG5vdCBwb3NzaWJsZSB0byBhZGQgc3BhY2luZyBiZXR3ZWVuIGNvbG9yIGxlZ2VuZCBhbmQgdGV4dCBzbyB3ZVxuICAgICAgICAgICAgICAvLyBwcmVmaXggd2l0aCBhIHNwYWNlLlxuICAgICAgICAgICAgICByZXR1cm4gJyAnICsgY29udGV4dC5mb3JtYXR0ZWRWYWx1ZSArIChkYXRhTGFiZWxPcHRpb25zLnZhbHVlU3VmZml4IHx8ICcnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzY2FsZXM6IHtcbiAgICAgICAgeToge1xuICAgICAgICAgIHRpY2tzOiB7XG4gICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB2YWx1ZSArIChkYXRhTGFiZWxPcHRpb25zLnZhbHVlU3VmZml4IHx8ICcnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT3B0aW9uc09iamVjdChhcmdzOiB7XG4gICAgY3VzdG9tT3B0aW9ucz86IENoYXJ0T3B0aW9ucztcbiAgICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25PcHRpb25zW107XG4gICAgZGF0YUxhYmVsT3B0aW9ucz86IENoYXJ0RGF0YUxhYmVsT3B0aW9ucztcbiAgfSk6IENoYXJ0T3B0aW9ucyB7XG4gICAgY29uc3QgeyBjdXN0b21PcHRpb25zLCBhbm5vdGF0aW9ucywgZGF0YUxhYmVsT3B0aW9uczogY2hhcnREYXRhTGFiZWxPcHRpb25zIH0gPSBhcmdzO1xuXG4gICAgY29uc3QgdHlwZUNvbmZpZyA9IHRoaXMuY2hhcnRDb25maWdTZXJ2aWNlLmdldFR5cGVDb25maWcodGhpcy5jaGFydFR5cGUpO1xuICAgIGNvbnN0IHR5cGVDb25maWdPcHRpb25zID0gdHlwZUNvbmZpZz8ub3B0aW9ucztcbiAgICBjb25zdCBhbm5vdGF0aW9uUGx1Z2luT3B0aW9ucyA9IGFubm90YXRpb25zXG4gICAgICA/IHRoaXMuY3JlYXRlQW5ub3RhdGlvblBsdWdpbk9wdGlvbnNPYmplY3QoYW5ub3RhdGlvbnMpXG4gICAgICA6IHt9O1xuICAgIGNvbnN0IHN0b2NrT3B0aW9uczogQ2hhcnRPcHRpb25zID1cbiAgICAgIHRoaXMuY2hhcnRUeXBlID09PSAnc3RvY2snID8gdGhpcy5jcmVhdGVTdG9ja09wdGlvbnNPYmplY3QoY2hhcnREYXRhTGFiZWxPcHRpb25zKSA6IHt9O1xuXG4gICAgbGV0IG9wdGlvbnM6IENoYXJ0T3B0aW9ucyA9IG1lcmdlRGVlcEFsbChcbiAgICAgIHN0b2NrT3B0aW9ucyxcbiAgICAgIHR5cGVDb25maWdPcHRpb25zLFxuICAgICAgY3VzdG9tT3B0aW9ucyxcbiAgICAgIGFubm90YXRpb25QbHVnaW5PcHRpb25zXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLmFwcGx5SW50ZXJhY3Rpb25GdW5jdGlvbnNFeHRlbnNpb25zKG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWZhdWx0U3RvY2tMYWJlbHMoZGF0YXNldHM6IENoYXJ0RGF0YXNldFtdLCBsb2NhbGU6IENoYXJ0TG9jYWxlKSB7XG4gICAgY29uc3QgbGFyZ2VzdERhdGFzZXQgPSBkYXRhc2V0cy5yZWR1Y2UoKHByZXZpb3VzRGF0YXNldCwgY3VycmVudERhdGFzZXQpID0+XG4gICAgICBwcmV2aW91c0RhdGFzZXQuZGF0YS5sZW5ndGggPiBjdXJyZW50RGF0YXNldC5kYXRhLmxlbmd0aCA/IHByZXZpb3VzRGF0YXNldCA6IGN1cnJlbnREYXRhc2V0XG4gICAgKTtcbiAgICByZXR1cm4gbGFyZ2VzdERhdGFzZXQuZGF0YS5tYXAoKHBvaW50OiBTY2F0dGVyRGF0YVBvaW50KSA9PlxuICAgICAgdG9EYXRlKHBvaW50LngpLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUsIHtcbiAgICAgICAgbW9udGg6ICdzaG9ydCcsXG4gICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb25maWd1cmF0aW9uT2JqZWN0KFxuICAgIHR5cGU6IENoYXJ0VHlwZSxcbiAgICBkYXRhc2V0czogQ2hhcnREYXRhc2V0W10sXG4gICAgb3B0aW9uczogQ2hhcnRPcHRpb25zLFxuICAgIGxhYmVscz86IHVua25vd25bXVxuICApOiBDaGFydENvbmZpZ3VyYXRpb24ge1xuICAgIGNvbnN0IHR5cGVDb25maWcgPSB0aGlzLmNoYXJ0Q29uZmlnU2VydmljZS5nZXRUeXBlQ29uZmlnKHR5cGUpO1xuXG4gICAgY29uc3QgbGFiZWxzVG9BcHBseSA9ICgoKSA9PiB7XG4gICAgICBpZiAodHlwZSA9PT0gJ3N0b2NrJykge1xuICAgICAgICAvKiBcbiAgICAgICAgICAgVGhlIHRpbWUgc2NhbGUgd2lsbCBhdXRvIGdlbmVyYXRlIGxhYmVscyBiYXNlZCBvbiBkYXRhLiBcbiAgICAgICAgICAgSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHBhc3MgYW4gZW1wdHkgYXJyYXkgdG8gZ2V0IHRoZSBkZWZhdWx0IFxuICAgICAgICAgICBiZWhhdmlvdXIgb2YgY2hhcnQuanMgd2hlbiB1c2luZyBzdG9jayBjaGFydC4gXG5cbiAgICAgICAgICAgVE9ETzogU2ltcGxpZnkgdG8gYWx3YXlzIHBhc3MgbGFiZWxzLCBpZiBnaXZlbiwgdG8gY2hhcnQuanMuXG4gICAgICAgICAgIFdvdWxkIGJlIGEgYnJlYWtpbmcgY2hhbmdlLiBTZWUgaXNzdWU6IFxuICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20va2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2lzc3Vlcy8yMDg1XG4gICAgICAgICovXG4gICAgICAgIGNvbnN0IHNob3VsZFVzZVRpbWVzY2FsZUxhYmVscyA9XG4gICAgICAgICAgbGFiZWxzPy5sZW5ndGggPT09IDAgJiYgb3B0aW9ucz8uc2NhbGVzPy54Py50eXBlID09PSAndGltZSc7XG4gICAgICAgIGlmIChzaG91bGRVc2VUaW1lc2NhbGVMYWJlbHMpIHJldHVybiBsYWJlbHM7XG4gICAgICAgIHJldHVybiB0aGlzLmdldERlZmF1bHRTdG9ja0xhYmVscyhkYXRhc2V0cywgdGhpcy5sb2NhbGUpO1xuICAgICAgfSBlbHNlIGlmIChsYWJlbHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIGxhYmVscztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUJsYW5rTGFiZWxzKGRhdGFzZXRzKTtcbiAgICAgIH1cbiAgICB9KSgpO1xuXG4gICAgcmV0dXJuIG1lcmdlRGVlcEFsbCh0eXBlQ29uZmlnLCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIGxhYmVsczogbGFiZWxzVG9BcHBseSxcbiAgICAgICAgZGF0YXNldHMsXG4gICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICB9KSBhcyBDaGFydENvbmZpZ3VyYXRpb247XG4gIH1cblxuICBwcml2YXRlIGFkZEhpZ2hsaWdodGVkRWxlbWVudHNUb0RhdGFzZXRzKFxuICAgIGhpZ2hsaWdodGVkRWxlbWVudHM6IENoYXJ0SGlnaGxpZ2h0ZWRFbGVtZW50cyxcbiAgICBkYXRhc2V0czogQ2hhcnREYXRhc2V0W11cbiAgKSB7XG4gICAgaGlnaGxpZ2h0ZWRFbGVtZW50cy5mb3JFYWNoKChbZGF0YXNldEluZGV4LCBkYXRhSW5kZXhdKSA9PiB7XG4gICAgICBjb25zdCBkYXRhc2V0ID0gZGF0YXNldHNbZGF0YXNldEluZGV4XTtcbiAgICAgIGlmICghZGF0YXNldCkgcmV0dXJuO1xuXG4gICAgICBpZiAoZGF0YXNldD8ua2lyYnlPcHRpb25zPy5oaWdobGlnaHRlZEVsZW1lbnRzKSB7XG4gICAgICAgIGRhdGFzZXQua2lyYnlPcHRpb25zLmhpZ2hsaWdodGVkRWxlbWVudHMucHVzaChkYXRhSW5kZXgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGF0YXNldC5raXJieU9wdGlvbnMgPSB7XG4gICAgICAgICAgLi4uZGF0YXNldC5raXJieU9wdGlvbnMsXG4gICAgICAgICAgaGlnaGxpZ2h0ZWRFbGVtZW50czogW2RhdGFJbmRleF0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVEYXRhc2V0cyhkYXRhOiBDaGFydERhdGFzZXRbXSB8IG51bWJlcltdKTogQ2hhcnREYXRhc2V0W10ge1xuICAgIC8vIFdlIG5lZWQgdG8gbW9kaWZ5IHRoZSBkYXRhc2V0cyBpbiBvcmRlciB0byBhZGQgZGF0YWxhYmVscy5cbiAgICBpZiAoXG4gICAgICB0aGlzLmRhdGFMYWJlbE9wdGlvbnM/LnNob3dDdXJyZW50IHx8XG4gICAgICB0aGlzLmRhdGFMYWJlbE9wdGlvbnM/LnNob3dNYXggfHxcbiAgICAgIHRoaXMuZGF0YUxhYmVsT3B0aW9ucz8uc2hvd01pblxuICAgICkge1xuICAgICAgZGF0YSA9IHRoaXMuYWRkRGF0YUxhYmVsc0RhdGEoZGF0YSk7XG4gICAgfVxuICAgIGxldCBkYXRhc2V0cyA9IGlzTnVtYmVyQXJyYXkoZGF0YSkgPyBbeyBkYXRhIH1dIDogZGF0YTtcbiAgICBpZiAodGhpcy5oaWdobGlnaHRlZEVsZW1lbnRzKVxuICAgICAgdGhpcy5hZGRIaWdobGlnaHRlZEVsZW1lbnRzVG9EYXRhc2V0cyh0aGlzLmhpZ2hsaWdodGVkRWxlbWVudHMsIGRhdGFzZXRzKTtcblxuICAgIC8qIFxuICAgICAgIEhhY2t5IHNvbHV0aW9uLiBTaG91bGQgYmUgZml4ZWQgaW4gdGhpcyBpc3N1ZTpcbiAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9raXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vaXNzdWVzLzE5NjcgXG4gICAgKi9cbiAgICBpZiAodGhpcy5jaGFydFR5cGUgPT09ICdzdG9jaycpIHtcbiAgICAgIGRhdGFzZXRzLmZvckVhY2goKGRhdGFzZXQpID0+IHtcbiAgICAgICAgZGF0YXNldC5raXJieU9wdGlvbnMgPSB7XG4gICAgICAgICAgLi4uZGF0YXNldC5raXJieU9wdGlvbnMsXG4gICAgICAgICAgaXNTdG9ja0NoYXJ0OiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGFzZXRzO1xuICB9XG4gIC8qKlxuICAgKiBEZWNvcmF0ZSBDaGFydERhdGFzZXQgd2l0aCBwcm9wZXJ0aWVzIHRvIGFsbG93IGZvciBkYXRhbGFiZWxzLlxuICAgKlxuICAgKiBAcGFyYW0gZGF0YVxuICAgKiBAcmV0dXJucyBDaGFydERhdGFzZXRbXVxuICAgKi9cbiAgcHVibGljIGFkZERhdGFMYWJlbHNEYXRhKGRhdGE6IENoYXJ0RGF0YXNldFtdIHwgbnVtYmVyW10pOiBDaGFydERhdGFzZXRbXSB7XG4gICAgaWYgKGlzTnVtYmVyQXJyYXkoZGF0YSkpIHtcbiAgICAgIHRocm93IEVycm9yKFwiQ3VycmVudGx5IGl0J3MgaW1wb3NzaWJsZSB0byBhZGQgZGF0YUxhYmVscyB0byBub24gU2NhdHRlckRhdGFQb2ludCBkYXRhc2V0c1wiKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWNvcmF0ZURhdGFQb2ludCA9IChcbiAgICAgIHNldDogQ2hhcnREYXRhc2V0LFxuICAgICAgYXhpczogJ3gnIHwgJ3knLFxuICAgICAgZGlyZWN0aW9uOiAnaGlnaCcgfCAnbG93JyxcbiAgICAgIHBvc2l0aW9uOiAnYm90dG9tJyB8ICd0b3AnIHwgJ2xlZnQnIHwgJ3JpZ2h0J1xuICAgICk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSwgcG9pbnRlciB9ID0gdGhpcy5sb2NhdGVWYWx1ZUluZGV4SW5EYXRhc2V0KHNldCwgYXhpcywgZGlyZWN0aW9uKTtcbiAgICAgIHNldC5kYXRhW3BvaW50ZXJdID0ge1xuICAgICAgICAuLi4oc2V0LmRhdGFbcG9pbnRlcl0gYXMgU2NhdHRlckRhdGFQb2ludCksXG4gICAgICAgIGRhdGFsYWJlbDoge1xuICAgICAgICAgIHZhbHVlOiB2YWx1ZSArICh0aGlzLmRhdGFMYWJlbE9wdGlvbnMudmFsdWVTdWZmaXggfHwgJycpLFxuICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICB9LFxuICAgICAgfSBhcyBTY2F0dGVyRGF0YVBvaW50O1xuICAgIH07XG5cbiAgICBkYXRhLm1hcCgoc2V0KSA9PiB7XG4gICAgICBpZiAodGhpcy5kYXRhTGFiZWxPcHRpb25zLnNob3dNaW4pIHtcbiAgICAgICAgZGVjb3JhdGVEYXRhUG9pbnQoc2V0LCAneScsICdsb3cnLCAnYm90dG9tJyk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5kYXRhTGFiZWxPcHRpb25zLnNob3dNYXgpIHtcbiAgICAgICAgZGVjb3JhdGVEYXRhUG9pbnQoc2V0LCAneScsICdoaWdoJywgJ3RvcCcpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZGF0YUxhYmVsT3B0aW9ucy5zaG93Q3VycmVudCkge1xuICAgICAgICBkZWNvcmF0ZURhdGFQb2ludChzZXQsICd4JywgJ2hpZ2gnLCAncmlnaHQnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgbG9jYXRlVmFsdWVJbmRleEluRGF0YXNldChcbiAgICBkYXRhc2V0OiBDaGFydERhdGFzZXQsXG4gICAgYXhpczogc3RyaW5nLFxuICAgIGRpcmVjdGlvbjogJ2xvdycgfCAnaGlnaCdcbiAgKTogeyB2YWx1ZTogbnVtYmVyOyBwb2ludGVyOiBudW1iZXIgfSB7XG4gICAgbGV0IHBvaW50ZXI6IG51bWJlcjtcbiAgICBsZXQgdmFsdWU6IG51bWJlcjtcbiAgICBkYXRhc2V0LmRhdGEuZm9yRWFjaCgoZGF0YXBvaW50LCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGRpcmVjdGlvbiA9PSAnbG93JyAmJiAoIXZhbHVlIHx8IGRhdGFwb2ludFtheGlzXSA8IHZhbHVlKSkge1xuICAgICAgICB2YWx1ZSA9IGRhdGFwb2ludFsneSddO1xuICAgICAgICBwb2ludGVyID0gaW5kZXg7XG4gICAgICB9XG4gICAgICBpZiAoZGlyZWN0aW9uID09ICdoaWdoJyAmJiAoIXZhbHVlIHx8IGRhdGFwb2ludFtheGlzXSA+IHZhbHVlKSkge1xuICAgICAgICB2YWx1ZSA9IGRhdGFwb2ludFsneSddO1xuICAgICAgICBwb2ludGVyID0gaW5kZXg7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHsgdmFsdWUsIHBvaW50ZXIgfTtcbiAgfVxufVxuIl19
@@ -198,4 +198,4 @@ export default {
198
198
  },
199
199
  };
200
200
  export { ɵ0 };
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRqcy1wbHVnaW4tbWFya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NoYXJ0L2NoYXJ0LWpzL2NoYXJ0anMtcGx1Z2luLW1hcmtlci9jaGFydGpzLXBsdWdpbi1tYXJrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7RUFJRTtBQUdGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlsRCxJQUFJLGNBQWMsR0FBRztJQUNuQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsT0FBTztRQUNkLEtBQUssRUFBRSxDQUFDO1FBQ1IsV0FBVyxFQUFFLEVBQUU7S0FDaEI7SUFDRCxJQUFJLEVBQUU7UUFDSixPQUFPLEVBQUUsS0FBSztLQUNmO0NBQ0YsQ0FBQztBQUVGLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtJQUM5Qzs7TUFFRTtJQUNGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBcUIsRUFBRSxFQUFFLFdBQUMsT0FBQSxDQUFDLFFBQUMsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFlBQVksMENBQUUsWUFBWSxDQUFBLENBQUEsRUFBQSxDQUFDLENBQUM7QUFDcEcsQ0FBQyxDQUFDOztBQUVGLGVBQWU7SUFDYixFQUFFLEVBQUUsUUFBUTtJQUVaLFNBQVMsRUFBRSxVQUFTLEtBQUs7UUFDdkIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xDLE9BQU87U0FDUjtRQUVELElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRXBELElBQ0UsVUFBVSxLQUFLLFFBQVE7WUFDdkIsVUFBVSxL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biBpcyBoZWF2aWx5IGluc3BpcmVkIGJ5IGh0dHBzOi8vY2hhcnRqcy1wbHVnaW4tY3Jvc3NoYWlyLm5ldGxpZnkuYXBwXG4gIFRoZSBwcm9qZWN0IGFwcGVhcnMgc3RhbGUgYW5kIG9ubHkgdGhlIHZlcnRpY2FsIGxpbmUgZmVhdHVyZSBpcyBuZWVkZWRcbiAgIHBhcnQgb2YgdGhlIHBsdWdpbiB0aGF0IHdhcyBhY3R1YWxseSBuZWVkZWQgaXMgaW1wbGVtZW50ZWQgaGVyZS4gXG4qL1xuXG5pbXBvcnQgeyBDaGFydCB9IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCB7IHZhbHVlT3JEZWZhdWx0IH0gZnJvbSAnY2hhcnQuanMvaGVscGVycyc7XG5cbmltcG9ydCB7IENoYXJ0RGF0YXNldCB9IGZyb20gJy4uLy4uL2NoYXJ0LnR5cGVzJztcblxudmFyIGRlZmF1bHRPcHRpb25zID0ge1xuICBsaW5lOiB7XG4gICAgY29sb3I6ICdibGFjaycsXG4gICAgd2lkdGg6IDEsXG4gICAgZGFzaFBhdHRlcm46IFtdLFxuICB9LFxuICBzbmFwOiB7XG4gICAgZW5hYmxlZDogZmFsc2UsXG4gIH0sXG59O1xuXG5jb25zdCBoYXNNYXJrZXJDb25maWd1cmF0aW9uID0gKGNoYXJ0OiBDaGFydCkgPT4ge1xuICAvKiBcbiAgICBIYWNreSBzb2x1dGlvbi4gU2hvdWxkIGJlIGZpeGVkIGluIHRoaXMgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9raXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vaXNzdWVzLzE5NjdcbiAgKi9cbiAgcmV0dXJuIGNoYXJ0LmRhdGEuZGF0YXNldHMuc29tZSgoZGF0YXNldDogQ2hhcnREYXRhc2V0KSA9PiAhIWRhdGFzZXQ/LmtpcmJ5T3B0aW9ucz8uaXNTdG9ja0NoYXJ0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgaWQ6ICdtYXJrZXInLFxuXG4gIGFmdGVySW5pdDogZnVuY3Rpb24oY2hhcnQpIHtcbiAgICBpZiAoIWhhc01hcmtlckNvbmZpZ3VyYXRpb24oY2hhcnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHhTY2FsZVR5cGUgPSBjaGFydC5jb25maWcub3B0aW9ucy5zY2FsZXMueC50eXBlO1xuXG4gICAgaWYgKFxuICAgICAgeFNjYWxlVHlwZSAhPT0gJ2xpbmVhcicgJiZcbiAgICAgIHhTY2FsZVR5cGUgIT09ICd0aW1lJyAmJlxuICAgICAgeFNjYWxlVHlwZSAhPT0gJ2NhdGVnb3J5JyAmJlxuICAgICAgeFNjYWxlVHlwZSAhPT0gJ2xvZ2FyaXRobWljJ1xuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjaGFydC5vcHRpb25zLnBsdWdpbnMubWFya2VyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNoYXJ0Lm9wdGlvbnMucGx1Z2lucy5tYXJrZXIgPSBkZWZhdWx0T3B0aW9ucztcbiAgICB9XG5cbiAgICBjaGFydC5tYXJrZXIgPSB7XG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIHN1cHByZXNzVXBkYXRlOiBmYWxzZSxcbiAgICAgIHg6IG51bGwsXG4gICAgICBvcmlnaW5hbERhdGE6IFtdLFxuICAgICAgb3JpZ2luYWxYUmFuZ2U6IHt9LFxuICAgICAgZHJhZ1N0YXJ0ZWQ6IGZhbHNlLFxuICAgICAgZHJhZ1N0YXJ0WDogbnVsbCxcbiAgICAgIGRyYWdFbmRYOiBudWxsLFxuICAgICAgc3VwcHJlc3NUb29sdGlwczogZmFsc2UsXG4gICAgICBpZ25vcmVOZXh0RXZlbnRzOiAwLFxuICAgIH07XG4gIH0sXG5cbiAgZ2V0T3B0aW9uOiBmdW5jdGlvbihjaGFydCwgY2F0ZWdvcnksIG5hbWUpIHtcbiAgICByZXR1cm4gdmFsdWVPckRlZmF1bHQoXG4gICAgICBjaGFydC5vcHRpb25zLnBsdWdpbnMubWFya2VyW2NhdGVnb3J5XVxuICAgICAgICA/IGNoYXJ0Lm9wdGlvbnMucGx1Z2lucy5tYXJrZXJbY2F0ZWdvcnldW25hbWVdXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZGVmYXVsdE9wdGlvbnNbY2F0ZWdvcnldW25hbWVdXG4gICAgKTtcbiAgfSxcblxuICBnZXRYU2NhbGU6IGZ1bmN0aW9uKGNoYXJ0KSB7XG4gICAgcmV0dXJuIGNoYXJ0LmRhdGEuZGF0YXNldHMubGVuZ3RoID8gY2hhcnQuc2NhbGVzW2NoYXJ0LmdldERhdGFzZXRNZXRhKDApLnhBeGlzSURdIDogbnVsbDtcbiAgfSxcbiAgZ2V0WVNjYWxlOiBmdW5jdGlvbihjaGFydCkge1xuICAgIHJldHVybiBjaGFydC5zY2FsZXNbY2hhcnQuZ2V0RGF0YXNldE1ldGEoMCkueUF4aXNJRF07XG4gIH0sXG5cbiAgYWZ0ZXJFdmVudDogZnVuY3Rpb24oY2hhcnQsIGV2ZW50KSB7XG4gICAgaWYgKCFoYXNNYXJrZXJDb25maWd1cmF0aW9uKGNoYXJ0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY2hhcnQuY29uZmlnLm9wdGlvbnMuc2NhbGVzLngubGVuZ3RoID09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgZSA9IGV2ZW50LmV2ZW50O1xuXG4gICAgdmFyIHhTY2FsZVR5cGUgPSBjaGFydC5jb25maWcub3B0aW9ucy5zY2FsZXMueC50eXBlO1xuXG4gICAgaWYgKFxuICAgICAgeFNjYWxlVHlwZSAhPT0gJ2xpbmVhcicgJiZcbiAgICAgIHhTY2FsZVR5cGUgIT09ICd0aW1lJyAmJlxuICAgICAgeFNjYWxlVHlwZSAhPT0gJ2NhdGVnb3J5JyAmJlxuICAgICAgeFNjYWxlVHlwZSAhPT0gJ2xvZ2FyaXRobWljJ1xuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciB4U2NhbGUgPSB0aGlzLmdldFhTY2FsZShjaGFydCk7XG5cbiAgICBpZiAoIXhTY2FsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjaGFydC5tYXJrZXIuaWdub3JlTmV4dEV2ZW50cyA+IDApIHtcbiAgICAgIGNoYXJ0Lm1hcmtlci5pZ25vcmVOZXh0RXZlbnRzIC09IDE7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gZml4IGZvciBTYWZhcmlcbiAgICB2YXIgYnV0dG9ucyA9IGUubmF0aXZlLmJ1dHRvbnMgPT09IHVuZGVmaW5lZCA/IGUubmF0aXZlLndoaWNoIDogZS5uYXRpdmUuYnV0dG9ucztcbiAgICBpZiAoZS5uYXRpdmUudHlwZSA9PT0gJ21vdXNldXAnKSB7XG4gICAgICBidXR0b25zID0gMDtcbiAgICB9XG5cbiAgICBjaGFydC5tYXJrZXIuZW5hYmxlZCA9XG4gICAgICBlLnR5cGUgIT09ICdtb3VzZW91dCcgJiZcbiAgICAgIGUueCA+IHhTY2FsZS5nZXRQaXhlbEZvclZhbHVlKHhTY2FsZS5taW4pICYmXG4gICAgICBlLnggPCB4U2NhbGUuZ2V0UGl4ZWxGb3JWYWx1ZSh4U2NhbGUubWF4KTtcblxuICAgIGlmICghY2hhcnQubWFya2VyLmVuYWJsZWQgJiYgIWNoYXJ0Lm1hcmtlci5zdXBwcmVzc1VwZGF0ZSkge1xuICAgICAgaWYgKGUueCA+IHhTY2FsZS5nZXRQaXhlbEZvclZhbHVlKHhTY2FsZS5tYXgpKSB7XG4gICAgICAgIC8vIHN1cHByZXNzIGZ1dHVyZSB1cGRhdGVzIHRvIHByZXZlbnQgZW5kbGVzcyByZWRyYXdpbmcgb2YgY2hhcnRcbiAgICAgICAgY2hhcnQubWFya2VyLnN1cHByZXNzVXBkYXRlID0gdHJ1ZTtcbiAgICAgICAgY2hhcnQudXBkYXRlKCdub25lJyk7XG4gICAgICB9XG4gICAgICBjaGFydC5tYXJrZXIuZHJhZ1N0YXJ0ZWQgPSBmYWxzZTsgLy8gY2FuY2VsIHpvb20gaW4gcHJvZ3Jlc3NcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY2hhcnQubWFya2VyLnN1cHByZXNzVXBkYXRlID0gZmFsc2U7XG5cbiAgICBjaGFydC5tYXJrZXIueCA9IGUueDtcblxuICAgIGNoYXJ0LmRyYXcoKTtcbiAgfSxcbiAgZG9EcmF3OiBmdW5jdGlvbihjaGFydCkge1xuICAgIGlmICghaGFzTWFya2VyQ29uZmlndXJhdGlvbihjaGFydCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWNoYXJ0Lm1hcmtlci5lbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kcmF3VHJhY2VMaW5lKGNoYXJ0KTtcbiAgICB0aGlzLmludGVycG9sYXRlVmFsdWVzKGNoYXJ0KTtcbiAgICB0aGlzLmRyYXdUcmFjZVBvaW50cyhjaGFydCk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSxcbiAgYmVmb3JlRHJhdzogZnVuY3Rpb24oY2hhcnQpIHtcbiAgICByZXR1cm4gdGhpcy5kb0RyYXcoY2hhcnQpO1xuICB9LFxuICAvLyBMb2dpYyBtb3ZlZCB0byBiZWZvcmVEcmF3IGluIG9yZGVyXG4gIC8vIGZvciB0aGUgdmVydGljYWwgbGluZSB0byBiZSBkcmF3blxuICAvLyB1bmRlciB0b29sdGlwIGFuZCBkYXRhbGFiZWxzLlxuICAvLyBhZnRlckRyYXc6IGZ1bmN0aW9uKGNoYXJ0KSB7XG4gIC8vICAgcmV0dXJuIHRoaXMuZG9EcmF3KGNoYXJ0KTtcbiAgLy8gfSxcblxuICBkcmF3VHJhY2VMaW5lOiBmdW5jdGlvbihjaGFydCkge1xuICAgIGlmICghaGFzTWFya2VyQ29uZmlndXJhdGlvbihjaGFydCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIHlTY2FsZSA9IHRoaXMuZ2V0WVNjYWxlKGNoYXJ0KTtcblxuICAgIHZhciBsaW5lV2lkdGggPSB0aGlzLmdldE9wdGlvbihjaGFydCwgJ2xpbmUnLCAnd2lkdGgnKTtcbiAgICB2YXIgY29sb3IgPSB0aGlzLmdldE9wdGlvbihjaGFydCwgJ2xpbmUnLCAnY29sb3InKTtcbiAgICB2YXIgZGFzaFBhdHRlcm4gPSB0aGlzLmdldE9wdGlvbihjaGFydCwgJ2xpbmUnLCAnZGFzaFBhdHRlcm4nKTtcbiAgICB2YXIgc25hcEVuYWJsZWQgPSB0aGlzLmdldE9wdGlvbihjaGFydCwgJ3NuYXAnLCAnZW5hYmxlZCcpO1xuXG4gICAgdmFyIGxpbmVYID0gY2hhcnQubWFya2VyLng7XG5cbiAgICBpZiAoc25hcEVuYWJsZWQgJiYgY2hhcnQuX2FjdGl2ZS5sZW5ndGgpIHtcbiAgICAgIGxpbmVYID0gY2hhcnQuX2FjdGl2ZVswXS5lbGVtZW50Lng7XG4gICAgfVxuXG4gICAgY2hhcnQuY3R4LmJlZ2luUGF0aCgpO1xuICAgIGNoYXJ0LmN0eC5zZXRMaW5lRGFzaChkYXNoUGF0dGVybik7XG4gICAgY2hhcnQuY3R4Lm1vdmVUbyhsaW5lWCwgeVNjYWxlLmdldFBpeGVsRm9yVmFsdWUoeVNjYWxlLm1heCkpO1xuICAgIGNoYXJ0LmN0eC5saW5lV2lkdGggPSBsaW5lV2lkdGg7XG4gICAgY2hhcnQuY3R4LnN0cm9rZVN0eWxlID0gY29sb3I7XG4gICAgY2hhcnQuY3R4LmxpbmVUbyhsaW5lWCwgeVNjYWxlLmdldFBpeGVsRm9yVmFsdWUoeVNjYWxlLm1pbikpO1xuICAgIGNoYXJ0LmN0eC5zdHJva2UoKTtcbiAgICBjaGFydC5jdHguc2V0TGluZURhc2goW10pO1xuICB9LFxuXG4gIGRyYXdUcmFjZVBvaW50czogZnVuY3Rpb24oY2hhcnQpIHtcbiAgICBpZiAoIWhhc01hcmtlckNvbmZpZ3VyYXRpb24oY2hhcnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAodmFyIGNoYXJ0SW5kZXggPSAwOyBjaGFydEluZGV4IDwgY2hhcnQuZGF0YS5kYXRhc2V0cy5sZW5ndGg7IGNoYXJ0SW5kZXgrKykge1xuICAgICAgdmFyIGRhdGFzZXQgPSBjaGFydC5kYXRhLmRhdGFzZXRzW2NoYXJ0SW5kZXhdO1xuICAgICAgdmFyIG1ldGEgPSBjaGFydC5nZXREYXRhc2V0TWV0YShjaGFydEluZGV4KTtcblxuICAgICAgdmFyIHlTY2FsZSA9IGNoYXJ0LnNjYWxlc1ttZXRhLnlBeGlzSURdO1xuXG4gICAgICBpZiAobWV0YS5oaWRkZW4gfHwgIWRhdGFzZXQuaW50ZXJwb2xhdGUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNoYXJ0LmN0eC5iZWdpblBhdGgoKTtcbiAgICAgIGNoYXJ0LmN0eC5hcmMoXG4gICAgICAgIGNoYXJ0Lm1hcmtlci54LFxuICAgICAgICB5U2NhbGUuZ2V0UGl4ZWxGb3JWYWx1ZShkYXRhc2V0LmludGVycG9sYXRlZFZhbHVlKSxcbiAgICAgICAgMyxcbiAgICAgICAgMCxcbiAgICAgICAgMiAqIE1hdGguUEksXG4gICAgICAgIGZhbHNlXG4gICAgICApO1xuICAgICAgY2hhcnQuY3R4LmZpbGxTdHlsZSA9ICd3aGl0ZSc7XG4gICAgICBjaGFydC5jdHgubGluZVdpZHRoID0gMjtcbiAgICAgIGNoYXJ0LmN0eC5zdHJva2VTdHlsZSA9IGRhdGFzZXQuYm9yZGVyQ29sb3I7XG4gICAgICBjaGFydC5jdHguZmlsbCgpO1xuICAgICAgY2hhcnQuY3R4LnN0cm9rZSgpO1xuICAgIH1cbiAgfSxcblxuICBpbnRlcnBvbGF0ZVZhbHVlczogZnVuY3Rpb24oY2hhcnQpIHtcbiAgICBmb3IgKHZhciBjaGFydEluZGV4ID0gMDsgY2hhcnRJbmRleCA8IGNoYXJ0LmRhdGEuZGF0YXNldHMubGVuZ3RoOyBjaGFydEluZGV4KyspIHtcbiAgICAgIHZhciBkYXRhc2V0ID0gY2hhcnQuZGF0YS5kYXRhc2V0c1tjaGFydEluZGV4XTtcblxuICAgICAgdmFyIG1ldGEgPSBjaGFydC5nZXREYXRhc2V0TWV0YShjaGFydEluZGV4KTtcblxuICAgICAgdmFyIHhTY2FsZSA9IGNoYXJ0LnNjYWxlc1ttZXRhLnhBeGlzSURdO1xuICAgICAgdmFyIHhWYWx1ZSA9IHhTY2FsZS5nZXRWYWx1ZUZvclBpeGVsKGNoYXJ0Lm1hcmtlci54KTtcblxuICAgICAgaWYgKG1ldGEuaGlkZGVuIHx8ICFkYXRhc2V0LmludGVycG9sYXRlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB2YXIgZGF0YSA9IGRhdGFzZXQuZGF0YTtcbiAgICAgIHZhciBpbmRleCA9IGRhdGEuZmluZEluZGV4KGZ1bmN0aW9uKG8pIHtcbiAgICAgICAgcmV0dXJuIG8ueCA+PSB4VmFsdWU7XG4gICAgICB9KTtcbiAgICAgIHZhciBwcmV2ID0gZGF0YVtpbmRleCAtIDFdO1xuICAgICAgdmFyIG5leHQgPSBkYXRhW2luZGV4XTtcblxuICAgICAgaWYgKGNoYXJ0LmRhdGEuZGF0YXNldHNbY2hhcnRJbmRleF0uc3RlcHBlZExpbmUgJiYgcHJldikge1xuICAgICAgICBkYXRhc2V0LmludGVycG9sYXRlZFZhbHVlID0gcHJldi55O1xuICAgICAgfSBlbHNlIGlmIChwcmV2ICYmIG5leHQpIHtcbiAgICAgICAgdmFyIHNsb3BlID0gKG5leHQueSAtIHByZXYueSkgLyAobmV4dC54IC0gcHJldi54KTtcbiAgICAgICAgZGF0YXNldC5pbnRlcnBvbGF0ZWRWYWx1ZSA9IHByZXYueSArICh4VmFsdWUgLSBwcmV2LngpICogc2xvcGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhc2V0LmludGVycG9sYXRlZFZhbHVlID0gTmFOO1xuICAgICAgfVxuICAgIH1cbiAgfSxcbn07XG4iXX0=
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRqcy1wbHVnaW4tbWFya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ25zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2NoYXJ0L2NoYXJ0LWpzL2NoYXJ0anMtcGx1Z2luLW1hcmtlci9jaGFydGpzLXBsdWdpbi1tYXJrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7RUFJRTtBQUdGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlsRCxJQUFJLGNBQWMsR0FBRztJQUNuQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsT0FBTztRQUNkLEtBQUssRUFBRSxDQUFDO1FBQ1IsV0FBVyxFQUFFLEVBQUU7S0FDaEI7SUFDRCxJQUFJLEVBQUU7UUFDSixPQUFPLEVBQUUsS0FBSztLQUNmO0NBQ0YsQ0FBQztBQUVGLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtJQUM5Qzs7TUFFRTtJQUNGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBcUIsRUFBRSxFQUFFLFdBQUMsT0FBQSxDQUFDLFFBQUMsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFlBQVksMENBQUUsWUFBWSxDQUFBLENBQUEsRUFBQSxDQUFDLENBQUM7QUFDcEcsQ0FBQyxDQUFDOztBQUVGLGVBQWU7SUFDYixFQUFFLEVBQUUsUUFBUTtJQUVaLFNBQVMsRUFBRSxVQUFVLEtBQUs7UUFDeEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xDLE9BQU87U0FDUjtRQUVELElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRXBELElBQ0UsVUFBVSxLQUFLLFFBQVE7WUFDdkIsVUFBVSxL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biBpcyBoZWF2aWx5IGluc3BpcmVkIGJ5IGh0dHBzOi8vY2hhcnRqcy1wbHVnaW4tY3Jvc3NoYWlyLm5ldGxpZnkuYXBwXG4gIFRoZSBwcm9qZWN0IGFwcGVhcnMgc3RhbGUgYW5kIG9ubHkgdGhlIHZlcnRpY2FsIGxpbmUgZmVhdHVyZSBpcyBuZWVkZWRcbiAgIHBhcnQgb2YgdGhlIHBsdWdpbiB0aGF0IHdhcyBhY3R1YWxseSBuZWVkZWQgaXMgaW1wbGVtZW50ZWQgaGVyZS4gXG4qL1xuXG5pbXBvcnQgeyBDaGFydCB9IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCB7IHZhbHVlT3JEZWZhdWx0IH0gZnJvbSAnY2hhcnQuanMvaGVscGVycyc7XG5cbmltcG9ydCB7IENoYXJ0RGF0YXNldCB9IGZyb20gJy4uLy4uL2NoYXJ0LnR5cGVzJztcblxudmFyIGRlZmF1bHRPcHRpb25zID0ge1xuICBsaW5lOiB7XG4gICAgY29sb3I6ICdibGFjaycsXG4gICAgd2lkdGg6IDEsXG4gICAgZGFzaFBhdHRlcm46IFtdLFxuICB9LFxuICBzbmFwOiB7XG4gICAgZW5hYmxlZDogZmFsc2UsXG4gIH0sXG59O1xuXG5jb25zdCBoYXNNYXJrZXJDb25maWd1cmF0aW9uID0gKGNoYXJ0OiBDaGFydCkgPT4ge1xuICAvKiBcbiAgICBIYWNreSBzb2x1dGlvbi4gU2hvdWxkIGJlIGZpeGVkIGluIHRoaXMgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9raXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vaXNzdWVzLzE5NjdcbiAgKi9cbiAgcmV0dXJuIGNoYXJ0LmRhdGEuZGF0YXNldHMuc29tZSgoZGF0YXNldDogQ2hhcnREYXRhc2V0KSA9PiAhIWRhdGFzZXQ/LmtpcmJ5T3B0aW9ucz8uaXNTdG9ja0NoYXJ0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgaWQ6ICdtYXJrZXInLFxuXG4gIGFmdGVySW5pdDogZnVuY3Rpb24gKGNoYXJ0KSB7XG4gICAgaWYgKCFoYXNNYXJrZXJDb25maWd1cmF0aW9uKGNoYXJ0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciB4U2NhbGVUeXBlID0gY2hhcnQuY29uZmlnLm9wdGlvbnMuc2NhbGVzLngudHlwZTtcblxuICAgIGlmIChcbiAgICAgIHhTY2FsZVR5cGUgIT09ICdsaW5lYXInICYmXG4gICAgICB4U2NhbGVUeXBlICE9PSAndGltZScgJiZcbiAgICAgIHhTY2FsZVR5cGUgIT09ICdjYXRlZ29yeScgJiZcbiAgICAgIHhTY2FsZVR5cGUgIT09ICdsb2dhcml0aG1pYydcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY2hhcnQub3B0aW9ucy5wbHVnaW5zLm1hcmtlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjaGFydC5vcHRpb25zLnBsdWdpbnMubWFya2VyID0gZGVmYXVsdE9wdGlvbnM7XG4gICAgfVxuXG4gICAgY2hhcnQubWFya2VyID0ge1xuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBzdXBwcmVzc1VwZGF0ZTogZmFsc2UsXG4gICAgICB4OiBudWxsLFxuICAgICAgb3JpZ2luYWxEYXRhOiBbXSxcbiAgICAgIG9yaWdpbmFsWFJhbmdlOiB7fSxcbiAgICAgIGRyYWdTdGFydGVkOiBmYWxzZSxcbiAgICAgIGRyYWdTdGFydFg6IG51bGwsXG4gICAgICBkcmFnRW5kWDogbnVsbCxcbiAgICAgIHN1cHByZXNzVG9vbHRpcHM6IGZhbHNlLFxuICAgICAgaWdub3JlTmV4dEV2ZW50czogMCxcbiAgICB9O1xuICB9LFxuXG4gIGdldE9wdGlvbjogZnVuY3Rpb24gKGNoYXJ0LCBjYXRlZ29yeSwgbmFtZSkge1xuICAgIHJldHVybiB2YWx1ZU9yRGVmYXVsdChcbiAgICAgIGNoYXJ0Lm9wdGlvbnMucGx1Z2lucy5tYXJrZXJbY2F0ZWdvcnldXG4gICAgICAgID8gY2hhcnQub3B0aW9ucy5wbHVnaW5zLm1hcmtlcltjYXRlZ29yeV1bbmFtZV1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBkZWZhdWx0T3B0aW9uc1tjYXRlZ29yeV1bbmFtZV1cbiAgICApO1xuICB9LFxuXG4gIGdldFhTY2FsZTogZnVuY3Rpb24gKGNoYXJ0KSB7XG4gICAgcmV0dXJuIGNoYXJ0LmRhdGEuZGF0YXNldHMubGVuZ3RoID8gY2hhcnQuc2NhbGVzW2NoYXJ0LmdldERhdGFzZXRNZXRhKDApLnhBeGlzSURdIDogbnVsbDtcbiAgfSxcbiAgZ2V0WVNjYWxlOiBmdW5jdGlvbiAoY2hhcnQpIHtcbiAgICByZXR1cm4gY2hhcnQuc2NhbGVzW2NoYXJ0LmdldERhdGFzZXRNZXRhKDApLnlBeGlzSURdO1xuICB9LFxuXG4gIGFmdGVyRXZlbnQ6IGZ1bmN0aW9uIChjaGFydCwgZXZlbnQpIHtcbiAgICBpZiAoIWhhc01hcmtlckNvbmZpZ3VyYXRpb24oY2hhcnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjaGFydC5jb25maWcub3B0aW9ucy5zY2FsZXMueC5sZW5ndGggPT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBlID0gZXZlbnQuZXZlbnQ7XG5cbiAgICB2YXIgeFNjYWxlVHlwZSA9IGNoYXJ0LmNvbmZpZy5vcHRpb25zLnNjYWxlcy54LnR5cGU7XG5cbiAgICBpZiAoXG4gICAgICB4U2NhbGVUeXBlICE9PSAnbGluZWFyJyAmJlxuICAgICAgeFNjYWxlVHlwZSAhPT0gJ3RpbWUnICYmXG4gICAgICB4U2NhbGVUeXBlICE9PSAnY2F0ZWdvcnknICYmXG4gICAgICB4U2NhbGVUeXBlICE9PSAnbG9nYXJpdGhtaWMnXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHhTY2FsZSA9IHRoaXMuZ2V0WFNjYWxlKGNoYXJ0KTtcblxuICAgIGlmICgheFNjYWxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNoYXJ0Lm1hcmtlci5pZ25vcmVOZXh0RXZlbnRzID4gMCkge1xuICAgICAgY2hhcnQubWFya2VyLmlnbm9yZU5leHRFdmVudHMgLT0gMTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBmaXggZm9yIFNhZmFyaVxuICAgIHZhciBidXR0b25zID0gZS5uYXRpdmUuYnV0dG9ucyA9PT0gdW5kZWZpbmVkID8gZS5uYXRpdmUud2hpY2ggOiBlLm5hdGl2ZS5idXR0b25zO1xuICAgIGlmIChlLm5hdGl2ZS50eXBlID09PSAnbW91c2V1cCcpIHtcbiAgICAgIGJ1dHRvbnMgPSAwO1xuICAgIH1cblxuICAgIGNoYXJ0Lm1hcmtlci5lbmFibGVkID1cbiAgICAgIGUudHlwZSAhPT0gJ21vdXNlb3V0JyAmJlxuICAgICAgZS54ID4geFNjYWxlLmdldFBpeGVsRm9yVmFsdWUoeFNjYWxlLm1pbikgJiZcbiAgICAgIGUueCA8IHhTY2FsZS5nZXRQaXhlbEZvclZhbHVlKHhTY2FsZS5tYXgpO1xuXG4gICAgaWYgKCFjaGFydC5tYXJrZXIuZW5hYmxlZCAmJiAhY2hhcnQubWFya2VyLnN1cHByZXNzVXBkYXRlKSB7XG4gICAgICBpZiAoZS54ID4geFNjYWxlLmdldFBpeGVsRm9yVmFsdWUoeFNjYWxlLm1heCkpIHtcbiAgICAgICAgLy8gc3VwcHJlc3MgZnV0dXJlIHVwZGF0ZXMgdG8gcHJldmVudCBlbmRsZXNzIHJlZHJhd2luZyBvZiBjaGFydFxuICAgICAgICBjaGFydC5tYXJrZXIuc3VwcHJlc3NVcGRhdGUgPSB0cnVlO1xuICAgICAgICBjaGFydC51cGRhdGUoJ25vbmUnKTtcbiAgICAgIH1cbiAgICAgIGNoYXJ0Lm1hcmtlci5kcmFnU3RhcnRlZCA9IGZhbHNlOyAvLyBjYW5jZWwgem9vbSBpbiBwcm9ncmVzc1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjaGFydC5tYXJrZXIuc3VwcHJlc3NVcGRhdGUgPSBmYWxzZTtcblxuICAgIGNoYXJ0Lm1hcmtlci54ID0gZS54O1xuXG4gICAgY2hhcnQuZHJhdygpO1xuICB9LFxuICBkb0RyYXc6IGZ1bmN0aW9uIChjaGFydCkge1xuICAgIGlmICghaGFzTWFya2VyQ29uZmlndXJhdGlvbihjaGFydCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWNoYXJ0Lm1hcmtlci5lbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kcmF3VHJhY2VMaW5lKGNoYXJ0KTtcbiAgICB0aGlzLmludGVycG9sYXRlVmFsdWVzKGNoYXJ0KTtcbiAgICB0aGlzLmRyYXdUcmFjZVBvaW50cyhjaGFydCk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSxcbiAgYmVmb3JlRHJhdzogZnVuY3Rpb24gKGNoYXJ0KSB7XG4gICAgcmV0dXJuIHRoaXMuZG9EcmF3KGNoYXJ0KTtcbiAgfSxcbiAgLy8gTG9naWMgbW92ZWQgdG8gYmVmb3JlRHJhdyBpbiBvcmRlclxuICAvLyBmb3IgdGhlIHZlcnRpY2FsIGxpbmUgdG8gYmUgZHJhd25cbiAgLy8gdW5kZXIgdG9vbHRpcCBhbmQgZGF0YWxhYmVscy5cbiAgLy8gYWZ0ZXJEcmF3OiBmdW5jdGlvbihjaGFydCkge1xuICAvLyAgIHJldHVybiB0aGlzLmRvRHJhdyhjaGFydCk7XG4gIC8vIH0sXG5cbiAgZHJhd1RyYWNlTGluZTogZnVuY3Rpb24gKGNoYXJ0KSB7XG4gICAgaWYgKCFoYXNNYXJrZXJDb25maWd1cmF0aW9uKGNoYXJ0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgeVNjYWxlID0gdGhpcy5nZXRZU2NhbGUoY2hhcnQpO1xuXG4gICAgdmFyIGxpbmVXaWR0aCA9IHRoaXMuZ2V0T3B0aW9uKGNoYXJ0LCAnbGluZScsICd3aWR0aCcpO1xuICAgIHZhciBjb2xvciA9IHRoaXMuZ2V0T3B0aW9uKGNoYXJ0LCAnbGluZScsICdjb2xvcicpO1xuICAgIHZhciBkYXNoUGF0dGVybiA9IHRoaXMuZ2V0T3B0aW9uKGNoYXJ0LCAnbGluZScsICdkYXNoUGF0dGVybicpO1xuICAgIHZhciBzbmFwRW5hYmxlZCA9IHRoaXMuZ2V0T3B0aW9uKGNoYXJ0LCAnc25hcCcsICdlbmFibGVkJyk7XG5cbiAgICB2YXIgbGluZVggPSBjaGFydC5tYXJrZXIueDtcblxuICAgIGlmIChzbmFwRW5hYmxlZCAmJiBjaGFydC5fYWN0aXZlLmxlbmd0aCkge1xuICAgICAgbGluZVggPSBjaGFydC5fYWN0aXZlWzBdLmVsZW1lbnQueDtcbiAgICB9XG5cbiAgICBjaGFydC5jdHguYmVnaW5QYXRoKCk7XG4gICAgY2hhcnQuY3R4LnNldExpbmVEYXNoKGRhc2hQYXR0ZXJuKTtcbiAgICBjaGFydC5jdHgubW92ZVRvKGxpbmVYLCB5U2NhbGUuZ2V0UGl4ZWxGb3JWYWx1ZSh5U2NhbGUubWF4KSk7XG4gICAgY2hhcnQuY3R4LmxpbmVXaWR0aCA9IGxpbmVXaWR0aDtcbiAgICBjaGFydC5jdHguc3Ryb2tlU3R5bGUgPSBjb2xvcjtcbiAgICBjaGFydC5jdHgubGluZVRvKGxpbmVYLCB5U2NhbGUuZ2V0UGl4ZWxGb3JWYWx1ZSh5U2NhbGUubWluKSk7XG4gICAgY2hhcnQuY3R4LnN0cm9rZSgpO1xuICAgIGNoYXJ0LmN0eC5zZXRMaW5lRGFzaChbXSk7XG4gIH0sXG5cbiAgZHJhd1RyYWNlUG9pbnRzOiBmdW5jdGlvbiAoY2hhcnQpIHtcbiAgICBpZiAoIWhhc01hcmtlckNvbmZpZ3VyYXRpb24oY2hhcnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAodmFyIGNoYXJ0SW5kZXggPSAwOyBjaGFydEluZGV4IDwgY2hhcnQuZGF0YS5kYXRhc2V0cy5sZW5ndGg7IGNoYXJ0SW5kZXgrKykge1xuICAgICAgdmFyIGRhdGFzZXQgPSBjaGFydC5kYXRhLmRhdGFzZXRzW2NoYXJ0SW5kZXhdO1xuICAgICAgdmFyIG1ldGEgPSBjaGFydC5nZXREYXRhc2V0TWV0YShjaGFydEluZGV4KTtcblxuICAgICAgdmFyIHlTY2FsZSA9IGNoYXJ0LnNjYWxlc1ttZXRhLnlBeGlzSURdO1xuXG4gICAgICBpZiAobWV0YS5oaWRkZW4gfHwgIWRhdGFzZXQuaW50ZXJwb2xhdGUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNoYXJ0LmN0eC5iZWdpblBhdGgoKTtcbiAgICAgIGNoYXJ0LmN0eC5hcmMoXG4gICAgICAgIGNoYXJ0Lm1hcmtlci54LFxuICAgICAgICB5U2NhbGUuZ2V0UGl4ZWxGb3JWYWx1ZShkYXRhc2V0LmludGVycG9sYXRlZFZhbHVlKSxcbiAgICAgICAgMyxcbiAgICAgICAgMCxcbiAgICAgICAgMiAqIE1hdGguUEksXG4gICAgICAgIGZhbHNlXG4gICAgICApO1xuICAgICAgY2hhcnQuY3R4LmZpbGxTdHlsZSA9ICd3aGl0ZSc7XG4gICAgICBjaGFydC5jdHgubGluZVdpZHRoID0gMjtcbiAgICAgIGNoYXJ0LmN0eC5zdHJva2VTdHlsZSA9IGRhdGFzZXQuYm9yZGVyQ29sb3I7XG4gICAgICBjaGFydC5jdHguZmlsbCgpO1xuICAgICAgY2hhcnQuY3R4LnN0cm9rZSgpO1xuICAgIH1cbiAgfSxcblxuICBpbnRlcnBvbGF0ZVZhbHVlczogZnVuY3Rpb24gKGNoYXJ0KSB7XG4gICAgZm9yICh2YXIgY2hhcnRJbmRleCA9IDA7IGNoYXJ0SW5kZXggPCBjaGFydC5kYXRhLmRhdGFzZXRzLmxlbmd0aDsgY2hhcnRJbmRleCsrKSB7XG4gICAgICB2YXIgZGF0YXNldCA9IGNoYXJ0LmRhdGEuZGF0YXNldHNbY2hhcnRJbmRleF07XG5cbiAgICAgIHZhciBtZXRhID0gY2hhcnQuZ2V0RGF0YXNldE1ldGEoY2hhcnRJbmRleCk7XG5cbiAgICAgIHZhciB4U2NhbGUgPSBjaGFydC5zY2FsZXNbbWV0YS54QXhpc0lEXTtcbiAgICAgIHZhciB4VmFsdWUgPSB4U2NhbGUuZ2V0VmFsdWVGb3JQaXhlbChjaGFydC5tYXJrZXIueCk7XG5cbiAgICAgIGlmIChtZXRhLmhpZGRlbiB8fCAhZGF0YXNldC5pbnRlcnBvbGF0ZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIGRhdGEgPSBkYXRhc2V0LmRhdGE7XG4gICAgICB2YXIgaW5kZXggPSBkYXRhLmZpbmRJbmRleChmdW5jdGlvbiAobykge1xuICAgICAgICByZXR1cm4gby54ID49IHhWYWx1ZTtcbiAgICAgIH0pO1xuICAgICAgdmFyIHByZXYgPSBkYXRhW2luZGV4IC0gMV07XG4gICAgICB2YXIgbmV4dCA9IGRhdGFbaW5kZXhdO1xuXG4gICAgICBpZiAoY2hhcnQuZGF0YS5kYXRhc2V0c1tjaGFydEluZGV4XS5zdGVwcGVkTGluZSAmJiBwcmV2KSB7XG4gICAgICAgIGRhdGFzZXQuaW50ZXJwb2xhdGVkVmFsdWUgPSBwcmV2Lnk7XG4gICAgICB9IGVsc2UgaWYgKHByZXYgJiYgbmV4dCkge1xuICAgICAgICB2YXIgc2xvcGUgPSAobmV4dC55IC0gcHJldi55KSAvIChuZXh0LnggLSBwcmV2LngpO1xuICAgICAgICBkYXRhc2V0LmludGVycG9sYXRlZFZhbHVlID0gcHJldi55ICsgKHhWYWx1ZSAtIHByZXYueCkgKiBzbG9wZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRhdGFzZXQuaW50ZXJwb2xhdGVkVmFsdWUgPSBOYU47XG4gICAgICB9XG4gICAgfVxuICB9LFxufTtcbiJdfQ==
@@ -1,10 +1,11 @@
1
- import { BarController, BarElement, CategoryScale, Chart, Filler, Legend, LinearScale, LineController, LineElement, PointElement, Tooltip, } from 'chart.js';
1
+ import { BarController, BarElement, CategoryScale, Chart, Filler, Legend, LinearScale, LineController, LineElement, PointElement, TimeScale, Tooltip, } from 'chart.js';
2
+ import 'chartjs-adapter-date-fns';
2
3
  import annotationPlugin from 'chartjs-plugin-annotation';
3
4
  import ChartDataLabels from 'chartjs-plugin-datalabels';
4
5
  import { mergeDeepAll } from '../../../helpers/merge-deep';
5
6
  import MarkerPlugin from '../chart-js/chartjs-plugin-marker/chartjs-plugin-marker';
6
7
  import { CHART_GLOBAL_DEFAULTS } from '../configs/global-defaults.config';
7
- const CHART_SCALES = [CategoryScale, LinearScale];
8
+ const CHART_SCALES = [CategoryScale, LinearScale, TimeScale];
8
9
  const CHART_ELEMENTS = [BarElement, LineElement, PointElement];
9
10
  const CHART_CONTROLLERS = [BarController, LineController];
10
11
  const CHART_PLUGINS = [annotationPlugin, Filler, ChartDataLabels, Tooltip, MarkerPlugin];
@@ -18,4 +19,4 @@ Object.entries(CHART_GLOBAL_DEFAULTS).forEach(([key]) => {
18
19
  Chart.defaults[key] = mergedDefaults[key];
19
20
  });
20
21
  export { Chart };
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlZC1jaGFydC1qcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC9jaGFydC1qcy9jb25maWd1cmVkLWNoYXJ0LWpzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEVBQ2IsVUFBVSxFQUNWLGFBQWEsRUFDYixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixXQUFXLEVBQ1gsY0FBYyxFQUNkLFdBQVcsRUFDWCxZQUFZLEVBQ1osT0FBTyxHQUNSLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sZ0JBQWdCLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxlQUFlLE1BQU0sMkJBQTJCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sWUFBWSxNQUFNLHlEQUF5RCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTFFLE1BQU0sWUFBWSxHQUFHLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ2xELE1BQU0sY0FBYyxHQUFHLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUMvRCxNQUFNLGlCQUFpQixHQUFHLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQzFELE1BQU0sYUFBYSxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFFekY7a0RBQ2tEO0FBQ2xELEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsaUJBQWlCLEVBQUUsR0FBRyxhQUFhLENBQUMsQ0FBQztBQUVuRztvQ0FDb0M7QUFDcEMsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsQ0FBQztBQUMzRSxNQUFNLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFO0lBQ3RELEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQyxDQUFDO0FBRUgsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFyQ29udHJvbGxlcixcbiAgQmFyRWxlbWVudCxcbiAgQ2F0ZWdvcnlTY2FsZSxcbiAgQ2hhcnQsXG4gIEZpbGxlcixcbiAgTGVnZW5kLFxuICBMaW5lYXJTY2FsZSxcbiAgTGluZUNvbnRyb2xsZXIsXG4gIExpbmVFbGVtZW50LFxuICBQb2ludEVsZW1lbnQsXG4gIFRvb2x0aXAsXG59IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCBhbm5vdGF0aW9uUGx1Z2luIGZyb20gJ2NoYXJ0anMtcGx1Z2luLWFubm90YXRpb24nO1xuaW1wb3J0IENoYXJ0RGF0YUxhYmVscyBmcm9tICdjaGFydGpzLXBsdWdpbi1kYXRhbGFiZWxzJztcblxuaW1wb3J0IHsgbWVyZ2VEZWVwQWxsIH0gZnJvbSAnLi4vLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwJztcbmltcG9ydCBNYXJrZXJQbHVnaW4gZnJvbSAnLi4vY2hhcnQtanMvY2hhcnRqcy1wbHVnaW4tbWFya2VyL2NoYXJ0anMtcGx1Z2luLW1hcmtlcic7XG5pbXBvcnQgeyBDSEFSVF9HTE9CQUxfREVGQVVMVFMgfSBmcm9tICcuLi9jb25maWdzL2dsb2JhbC1kZWZhdWx0cy5jb25maWcnO1xuXG5jb25zdCBDSEFSVF9TQ0FMRVMgPSBbQ2F0ZWdvcnlTY2FsZSwgTGluZWFyU2NhbGVdO1xuY29uc3QgQ0hBUlRfRUxFTUVOVFMgPSBbQmFyRWxlbWVudCwgTGluZUVsZW1lbnQsIFBvaW50RWxlbWVudF07XG5jb25zdCBDSEFSVF9DT05UUk9MTEVSUyA9IFtCYXJDb250cm9sbGVyLCBMaW5lQ29udHJvbGxlcl07XG5jb25zdCBDSEFSVF9QTFVHSU5TID0gW2Fubm90YXRpb25QbHVnaW4sIEZpbGxlciwgQ2hhcnREYXRhTGFiZWxzLCBUb29sdGlwLCBNYXJrZXJQbHVnaW5dO1xuXG4vKiBPcmRlciBtYXR0ZXJzOyBkZWZhdWx0cyBtdXN0IGJlIG1lcmdlZCBhZnRlciByZWdpc3RlciBhcyBcbiAgIHJlZ2lzdGVyIG1vZGlmaWVzIHRoZSBDaGFydC5kZWZhdWx0cyBvYmplY3RzICovXG5DaGFydC5yZWdpc3RlcihMZWdlbmQsIC4uLkNIQVJUX1NDQUxFUywgLi4uQ0hBUlRfRUxFTUVOVFMsIC4uLkNIQVJUX0NPTlRST0xMRVJTLCAuLi5DSEFSVF9QTFVHSU5TKTtcblxuLyogQ2hhcnQuZGVmYXVsdHMgaXMgcmVhZCBvbmx5OyBzZXQgZWFjaCBrZXkgbW9kaWZpZWQgaW4gXG4gICBDSEFSVF9HTE9CQUxfREVGQVVMVFMgbWFudWFsbHkgKi9cbmNvbnN0IG1lcmdlZERlZmF1bHRzID0gbWVyZ2VEZWVwQWxsKENoYXJ0LmRlZmF1bHRzLCBDSEFSVF9HTE9CQUxfREVGQVVMVFMpO1xuT2JqZWN0LmVudHJpZXMoQ0hBUlRfR0xPQkFMX0RFRkFVTFRTKS5mb3JFYWNoKChba2V5XSkgPT4ge1xuICBDaGFydC5kZWZhdWx0c1trZXldID0gbWVyZ2VkRGVmYXVsdHNba2V5XTtcbn0pO1xuXG5leHBvcnQgeyBDaGFydCB9O1xuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlZC1jaGFydC1qcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC9jaGFydC1qcy9jb25maWd1cmVkLWNoYXJ0LWpzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEVBQ2IsVUFBVSxFQUNWLGFBQWEsRUFDYixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixXQUFXLEVBQ1gsY0FBYyxFQUNkLFdBQVcsRUFDWCxZQUFZLEVBQ1osU0FBUyxFQUNULE9BQU8sR0FDUixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sZ0JBQWdCLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxlQUFlLE1BQU0sMkJBQTJCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sWUFBWSxNQUFNLHlEQUF5RCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTFFLE1BQU0sWUFBWSxHQUFHLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUM3RCxNQUFNLGNBQWMsR0FBRyxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFDL0QsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQztBQUMxRCxNQUFNLGFBQWEsR0FBRyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBRXpGO2tEQUNrRDtBQUNsRCxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLGNBQWMsRUFBRSxHQUFHLGlCQUFpQixFQUFFLEdBQUcsYUFBYSxDQUFDLENBQUM7QUFFbkc7b0NBQ29DO0FBQ3BDLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLHFCQUFxQixDQUFDLENBQUM7QUFDM0UsTUFBTSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRTtJQUN0RCxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM1QyxDQUFDLENBQUMsQ0FBQztBQUVILE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhckNvbnRyb2xsZXIsXG4gIEJhckVsZW1lbnQsXG4gIENhdGVnb3J5U2NhbGUsXG4gIENoYXJ0LFxuICBGaWxsZXIsXG4gIExlZ2VuZCxcbiAgTGluZWFyU2NhbGUsXG4gIExpbmVDb250cm9sbGVyLFxuICBMaW5lRWxlbWVudCxcbiAgUG9pbnRFbGVtZW50LFxuICBUaW1lU2NhbGUsXG4gIFRvb2x0aXAsXG59IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCAnY2hhcnRqcy1hZGFwdGVyLWRhdGUtZm5zJztcbmltcG9ydCBhbm5vdGF0aW9uUGx1Z2luIGZyb20gJ2NoYXJ0anMtcGx1Z2luLWFubm90YXRpb24nO1xuaW1wb3J0IENoYXJ0RGF0YUxhYmVscyBmcm9tICdjaGFydGpzLXBsdWdpbi1kYXRhbGFiZWxzJztcblxuaW1wb3J0IHsgbWVyZ2VEZWVwQWxsIH0gZnJvbSAnLi4vLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwJztcbmltcG9ydCBNYXJrZXJQbHVnaW4gZnJvbSAnLi4vY2hhcnQtanMvY2hhcnRqcy1wbHVnaW4tbWFya2VyL2NoYXJ0anMtcGx1Z2luLW1hcmtlcic7XG5pbXBvcnQgeyBDSEFSVF9HTE9CQUxfREVGQVVMVFMgfSBmcm9tICcuLi9jb25maWdzL2dsb2JhbC1kZWZhdWx0cy5jb25maWcnO1xuXG5jb25zdCBDSEFSVF9TQ0FMRVMgPSBbQ2F0ZWdvcnlTY2FsZSwgTGluZWFyU2NhbGUsIFRpbWVTY2FsZV07XG5jb25zdCBDSEFSVF9FTEVNRU5UUyA9IFtCYXJFbGVtZW50LCBMaW5lRWxlbWVudCwgUG9pbnRFbGVtZW50XTtcbmNvbnN0IENIQVJUX0NPTlRST0xMRVJTID0gW0JhckNvbnRyb2xsZXIsIExpbmVDb250cm9sbGVyXTtcbmNvbnN0IENIQVJUX1BMVUdJTlMgPSBbYW5ub3RhdGlvblBsdWdpbiwgRmlsbGVyLCBDaGFydERhdGFMYWJlbHMsIFRvb2x0aXAsIE1hcmtlclBsdWdpbl07XG5cbi8qIE9yZGVyIG1hdHRlcnM7IGRlZmF1bHRzIG11c3QgYmUgbWVyZ2VkIGFmdGVyIHJlZ2lzdGVyIGFzIFxuICAgcmVnaXN0ZXIgbW9kaWZpZXMgdGhlIENoYXJ0LmRlZmF1bHRzIG9iamVjdHMgKi9cbkNoYXJ0LnJlZ2lzdGVyKExlZ2VuZCwgLi4uQ0hBUlRfU0NBTEVTLCAuLi5DSEFSVF9FTEVNRU5UUywgLi4uQ0hBUlRfQ09OVFJPTExFUlMsIC4uLkNIQVJUX1BMVUdJTlMpO1xuXG4vKiBDaGFydC5kZWZhdWx0cyBpcyByZWFkIG9ubHk7IHNldCBlYWNoIGtleSBtb2RpZmllZCBpbiBcbiAgIENIQVJUX0dMT0JBTF9ERUZBVUxUUyBtYW51YWxseSAqL1xuY29uc3QgbWVyZ2VkRGVmYXVsdHMgPSBtZXJnZURlZXBBbGwoQ2hhcnQuZGVmYXVsdHMsIENIQVJUX0dMT0JBTF9ERUZBVUxUUyk7XG5PYmplY3QuZW50cmllcyhDSEFSVF9HTE9CQUxfREVGQVVMVFMpLmZvckVhY2goKFtrZXldKSA9PiB7XG4gIENoYXJ0LmRlZmF1bHRzW2tleV0gPSBtZXJnZWREZWZhdWx0c1trZXldO1xufSk7XG5cbmV4cG9ydCB7IENoYXJ0IH07XG4iXX0=
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"Chart":{"__symbolic":"reference","module":"chart.js","name":"Chart","line":36,"character":9}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"Chart":{"__symbolic":"reference","module":"chart.js","name":"Chart","line":38,"character":9}}}]
@@ -112,8 +112,8 @@ export class ChartDeprecatedComponent {
112
112
  }
113
113
  }
114
114
  setPieInput() {
115
- this.mergedOptions.plotOptions.pie
116
- .dataLabels.enabled = this.showDataLabels;
115
+ this.mergedOptions.plotOptions.pie.dataLabels.enabled =
116
+ this.showDataLabels;
117
117
  this.setSeries('pie');
118
118
  }
119
119
  setBarInput() {
@@ -226,4 +226,4 @@ ChartDeprecatedComponent.propDecorators = {
226
226
  options: [{ type: Input }]
227
227
  };
228
228
  export { ɵ0, ɵ1, ɵ2, ɵ3 };
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtZGVwcmVjYXRlZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvY2hhcnQtZGVwcmVjYXRlZC9jaGFydC1kZXByZWNhdGVkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQVMvRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztXQVFyQyxZQUFZLE9BQ1AsaUJBQWlCLE9BQ2pCLGlCQUFpQixPQUNkLG9CQUFvQjtBQUdwRSxNQUFNLE9BQU8sd0JBQXdCO0lBYW5DLFlBQ1UsV0FBa0MsRUFDbEMsV0FBdUIsRUFDRCxZQUFxQixFQUNoQixpQkFBMEIsRUFDMUIsaUJBQTBCLEVBQ3ZCLG9CQUE2QjtRQUwzRCxnQkFBVyxHQUFYLFdBQVcsQ0FBdUI7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QUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLElBQW1CLEVBQUU7b0JBQzVELEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsSUFBbUIsRUFBRTtvQkFDNUQsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxJQUFzQixFQUFFO2lCQUNuRTs7YUFDRjs7OztZQXBCUSxxQkFBcUI7WUFYVixVQUFVOzRDQWdEekIsTUFBTSxTQUFDLGFBQWE7NENBQ3BCLE1BQU0sU0FBQyxrQkFBa0I7NENBQ3pCLE1BQU0sU0FBQyxrQkFBa0I7NENBQ3pCLE1BQU0sU0FBQyxxQkFBcUI7OzttQkFsQjlCLEtBQUs7eUJBQ0wsS0FBSztxQkFDTCxLQUFLO3FCQUNMLEtBQUs7bUJBQ0wsS0FBSzswQkFDTCxLQUFLOzZCQUNMLEtBQUs7c0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBPcHRpb25zLFxuICBQbG90U2VyaWVzRGF0YUxhYmVsc09wdGlvbnMsXG4gIFhBeGlzQnJlYWtzT3B0aW9ucyxcbiAgWEF4aXNPcHRpb25zLFxuICBZQXhpc09wdGlvbnMsXG59IGZyb20gJ2hpZ2hjaGFydHMnO1xuXG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAnO1xuXG5pbXBvcnQgeyBDaGFydERlcHJlY2F0ZWRIZWxwZXIgfSBmcm9tICcuL2NoYXJ0LWRlcHJlY2F0ZWQtaGVscGVyJztcbmltcG9ydCB7IENoYXJ0RGVwcmVjYXRlZFR5cGUgfSBmcm9tICcuL2NoYXJ0LWRlcHJlY2F0ZWQtdHlwZSc7XG5pbXBvcnQgeyBBY3Rpdml0eUdhdWdlT3B0aW9ucywgQUNUSVZJVFlHQVVHRV9PUFRJT05TIH0gZnJvbSAnLi9vcHRpb25zL2FjdGl2aXR5Z2F1Z2UnO1xuaW1wb3J0IHsgQXJlYVNwbGluZU9wdGlvbnMsIEFSRUFTUExJTkVfT1BUSU9OUyB9IGZyb20gJy4vb3B0aW9ucy9hcmVhc3BsaW5lJztcbmltcG9ydCB7IGJhck9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMvYmFyJztcbmltcG9ydCB7IGNvbHVtbk9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMvY29sdW1uJztcbmltcG9ydCB7IERvbnV0T3B0aW9ucywgRE9OVVRfT1BUSU9OUyB9IGZyb20gJy4vb3B0aW9ucy9kb251dCc7XG5pbXBvcnQgeyBUaW1lU2VyaWVzT3B0aW9ucywgVElNRVNFUklFU19PUFRJT05TIH0gZnJvbSAnLi9vcHRpb25zL3RpbWVzZXJpZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdraXJieS1jaGFydC1kZXByZWNhdGVkJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFydC1kZXByZWNhdGVkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIENoYXJ0RGVwcmVjYXRlZEhlbHBlcixcbiAgICB7IHByb3ZpZGU6IERPTlVUX09QVElPTlMsIHVzZVZhbHVlOiBEb251dE9wdGlvbnMgfSxcbiAgICB7IHByb3ZpZGU6IEFSRUFTUExJTkVfT1BUSU9OUywgdXNlVmFsdWU6IEFyZWFTcGxpbmVPcHRpb25zIH0sXG4gICAgeyBwcm92aWRlOiBUSU1FU0VSSUVTX09QVElPTlMsIHVzZVZhbHVlOiBUaW1lU2VyaWVzT3B0aW9ucyB9LFxuICAgIHsgcHJvdmlkZTogQUNUSVZJVFlHQVVHRV9PUFRJT05TLCB1c2VWYWx1ZTogQWN0aXZpdHlHYXVnZU9wdGlvbnMgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnREZXByZWNhdGVkQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZGF0YSA9IFtdO1xuICBASW5wdXQoKSBjYXRlZ29yaWVzOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBicmVha3M6IEFycmF5PFhBeGlzQnJlYWtzT3B0aW9ucz4gPSBbXTtcbiAgQElucHV0KCkgaGVpZ2h0ID0gMzAwO1xuICBASW5wdXQoKSB0eXBlOiBDaGFydERlcHJlY2F0ZWRUeXBlID0gQ2hhcnREZXByZWNhdGVkVHlwZS5QSUU7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uID0gJyc7XG4gIEBJbnB1dCgpIHNob3dEYXRhTGFiZWxzID0gdHJ1ZTtcbiAgQElucHV0KCkgb3B0aW9uczogT3B0aW9ucztcbiAgbWVyZ2VkT3B0aW9uczogT3B0aW9ucyA9IHtcbiAgICBhY2Nlc3NpYmlsaXR5OiB7fSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYXJ0SGVscGVyOiBDaGFydERlcHJlY2F0ZWRIZWxwZXIsXG4gICAgcHJpdmF0ZSBob3N0RWxlbWVudDogRWxlbWVudFJlZixcbiAgICBASW5qZWN0KERPTlVUX09QVElPTlMpIHB1YmxpYyBkb251dE9wdGlvbnM6IE9wdGlvbnMsXG4gICAgQEluamVjdChBUkVBU1BMSU5FX09QVElPTlMpIHB1YmxpYyBhcmVhc3BsaW5lT3B0aW9uczogT3B0aW9ucyxcbiAgICBASW5qZWN0KFRJTUVTRVJJRVNfT1BUSU9OUykgcHVibGljIHRpbWVTZXJpZXNPcHRpb25zOiBPcHRpb25zLFxuICAgIEBJbmplY3QoQUNUSVZJVFlHQVVHRV9PUFRJT05TKSBwdWJsaWMgYWN0aXZpdHlnYXVnZU9wdGlvbnM6IE9wdGlvbnNcbiAgKSB7XG4gICAgdGhpcy5jaGFydEhlbHBlci5pbml0KHRoaXMuaG9zdEVsZW1lbnQpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLnR5cGUpIHtcbiAgICAgIHRoaXMuc2V0dXBDaGFydFR5cGUoKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVQcm9wZXJ0aWVzKCk7XG4gICAgdGhpcy5jaGFydEhlbHBlci5yZW5kZXJDaGFydCh0aGlzLm1lcmdlZE9wdGlvbnMpO1xuICB9XG5cbiAgc2V0dXBDaGFydFR5cGUoKSB7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5ET05VVDoge1xuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMgPSB0aGlzLmRvbnV0T3B0aW9ucztcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLmNoYXJ0LnR5cGUgPSBDaGFydERlcHJlY2F0ZWRUeXBlLlBJRTtcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLnBsb3RPcHRpb25zLnBpZS5pbm5lclNpemUgPSAnNTAlJztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIENoYXJ0RGVwcmVjYXRlZFR5cGUuUElFOiB7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucyA9IHRoaXMuZG9udXRPcHRpb25zO1xuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMuY2hhcnQudHlwZSA9IHRoaXMudHlwZTtcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLnBsb3RPcHRpb25zLnBpZS5pbm5lclNpemUgPSAnMCUnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5BUkVBU1BMSU5FOiB7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucyA9IHRoaXMuYXJlYXNwbGluZU9wdGlvbnM7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5jaGFydC50eXBlID0gdGhpcy50eXBlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5USU1FU0VSSUVTOiB7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucyA9IHRoaXMudGltZVNlcmllc09wdGlvbnM7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5jaGFydC50eXBlID0gdGhpcy50eXBlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5BQ1RJVklUWUdBVUdFOiB7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucyA9IHRoaXMuYWN0aXZpdHlnYXVnZU9wdGlvbnM7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5jaGFydC50eXBlID0gdGhpcy50eXBlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5DT0xVTU46IHtcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zID0gY29sdW1uT3B0aW9ucztcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLmNoYXJ0LnR5cGUgPSB0aGlzLnR5cGU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBDaGFydERlcHJlY2F0ZWRUeXBlLkJBUjoge1xuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMgPSBiYXJPcHRpb25zO1xuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMuY2hhcnQudHlwZSA9IHRoaXMudHlwZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlUHJvcGVydGllcygpIHtcbiAgICB0aGlzLm1lcmdlZE9wdGlvbnMuY2hhcnQuaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLmFjY2Vzc2liaWxpdHkuZGVzY3JpcHRpb24gPSB0aGlzLmRlc2NyaXB0aW9uO1xuICAgIHN3aXRjaCAodGhpcy5tZXJnZWRPcHRpb25zLmNoYXJ0LnR5cGUpIHtcbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5QSUU6XG4gICAgICBjYXNlIENoYXJ0RGVwcmVjYXRlZFR5cGUuRE9OVVQ6IHtcbiAgICAgICAgdGhpcy5zZXRQaWVJbnB1dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5BUkVBU1BMSU5FOiB7XG4gICAgICAgIHRoaXMuc2V0U2VyaWVzKCdhcmVhc3BsaW5lJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBDaGFydERlcHJlY2F0ZWRUeXBlLlRJTUVTRVJJRVM6IHtcbiAgICAgICAgdGhpcy5zZXRUaW1lc2VyaWVzSW5wdXQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIENoYXJ0RGVwcmVjYXRlZFR5cGUuQUNUSVZJVFlHQVVHRToge1xuICAgICAgICB0aGlzLnNldEFjdGl2aXR5Z2F1Z2VJbnB1dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5DT0xVTU46IHtcbiAgICAgICAgdGhpcy5zZXRDb2x1bW5JbnB1dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5CQVI6IHtcbiAgICAgICAgdGhpcy5zZXRCYXJJbnB1dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCEhdGhpcy5vcHRpb25zKSB7XG4gICAgICB0aGlzLm1lcmdlZE9wdGlvbnMgPSBtZXJnZURlZXAodGhpcy5tZXJnZWRPcHRpb25zLCB0aGlzLm9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0UGllSW5wdXQoKSB7XG4gICAgKHRoaXMubWVyZ2VkT3B0aW9ucy5wbG90T3B0aW9ucy5waWVcbiAgICAgIC5kYXRhTGFiZWxzIGFzIFBsb3RTZXJpZXNEYXRhTGFiZWxzT3B0aW9ucykuZW5hYmxlZCA9IHRoaXMuc2hvd0RhdGFMYWJlbHM7XG4gICAgdGhpcy5zZXRTZXJpZXMoJ3BpZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRCYXJJbnB1dCgpIHtcbiAgICBjb25zdCBkYXRhTWF4VmFsdWUgPSBNYXRoLm1heCguLi50aGlzLmRhdGEpO1xuICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5zZXJpZXMgPSBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdiYXInLFxuICAgICAgICBuYW1lOiAnSW52aXNpYmxlQ2xpY2tSZWNlaXZlcicsXG4gICAgICAgIGRhdGE6IHRoaXMuZGF0YS5tYXAoKGRhdGFFbnRyeSkgPT4gZGF0YU1heFZhbHVlIC0gZGF0YUVudHJ5KSxcbiAgICAgICAgZWRnZUNvbG9yOiAncmdiKDI1NSwgMjU1LCAyNTUsIDApJyxcbiAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdiYXInLFxuICAgICAgICBkYXRhOiB0aGlzLmRhdGEsXG4gICAgICB9LFxuICAgIF07XG4gICAgKHRoaXMubWVyZ2VkT3B0aW9ucy54QXhpcyBhcyBYQXhpc09wdGlvbnMpLmNhdGVnb3JpZXMgPSB0aGlzLmNhdGVnb3JpZXM7XG4gIH1cblxuICBwcml2YXRlIHNldENvbHVtbklucHV0KCkge1xuICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5zZXJpZXMgPSBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdjb2x1bW4nLFxuICAgICAgICBkYXRhOiB0aGlzLmRhdGEsXG4gICAgICB9LFxuICAgIF07XG4gICAgY29uc3QgZGF0YU1heFZhbHVlID0gTWF0aC5tYXgoLi4udGhpcy5kYXRhKTtcbiAgICAoKHRoaXMubWVyZ2VkT3B0aW9ucy55QXhpcyBhcyBZQXhpc09wdGlvbnMpLnRpY2tQb3NpdGlvbmVyID0gKCkgPT4ge1xuICAgICAgdmFyIHBvc2l0aW9ucyA9IFswLCBkYXRhTWF4VmFsdWVdO1xuICAgICAgcmV0dXJuIHBvc2l0aW9ucztcbiAgICB9KSxcbiAgICAgICh0aGlzLm1lcmdlZE9wdGlvbnMuc2VyaWVzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2NvbHVtbicsXG4gICAgICAgICAgbmFtZTogJ0ludmlzaWJsZUNsaWNrUmVjZWl2ZXInLFxuICAgICAgICAgIGRhdGE6IHRoaXMuZGF0YS5tYXAoKF8sIGlkeCkgPT4gZGF0YU1heFZhbHVlIC0gdGhpcy5kYXRhW2lkeF0pLFxuICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnY29sdW1uJyxcbiAgICAgICAgICBkYXRhOiB0aGlzLmRhdGEsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICAodGhpcy5tZXJnZWRPcHRpb25zLnhBeGlzIGFzIFhBeGlzT3B0aW9ucykuY2F0ZWdvcmllcyA9IHRoaXMuY2F0ZWdvcmllcztcbiAgfVxuXG4gIHByaXZhdGUgc2V0QWN0aXZpdHlnYXVnZUlucHV0KCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGFbMF07XG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLnRpdGxlLnRleHQgPSBkYXRhLnRpdGxlO1xuICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5zdWJ0aXRsZS50ZXh0ID0gZGF0YS5zdWJ0aXRsZTtcbiAgICBpZiAoZGF0YS5wYW5lQmFja2dyb3VuZENvbG9yKSB7XG4gICAgICB0aGlzLm1lcmdlZE9wdGlvbnMucGFuZS5iYWNrZ3JvdW5kID0gW1xuICAgICAgICB7XG4gICAgICAgICAgLi4udGhpcy5tZXJnZWRPcHRpb25zLnBhbmUuYmFja2dyb3VuZFswXSxcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGRhdGEucGFuZUJhY2tncm91bmRDb2xvcixcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgfVxuICAgIGlmIChkYXRhLmNvbG9yKSB7XG4gICAgICB0aGlzLm1lcmdlZE9wdGlvbnMudGl0bGUuc3R5bGUuY29sb3IgPSBkYXRhLmNvbG9yO1xuICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLnN1YnRpdGxlLnN0eWxlLmNvbG9yID0gZGF0YS5jb2xvcjtcbiAgICB9XG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLnNlcmllcyA9IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ3NvbGlkZ2F1Z2UnLFxuICAgICAgICBkYXRhOiBkYXRhLnNlcmllcyxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VGltZXNlcmllc0lucHV0KCkge1xuICAgIHRoaXMuc2V0U2VyaWVzKCdhcmVhJyk7XG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLnhBeGlzID0ge1xuICAgICAgLi4udGhpcy5tZXJnZWRPcHRpb25zLnhBeGlzLFxuICAgICAgYnJlYWtzOiB0aGlzLmJyZWFrcyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTZXJpZXModHlwZSkge1xuICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5zZXJpZXMgPSBbXG4gICAgICB7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxufVxuIl19
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtZGVwcmVjYXRlZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvY2hhcnQtZGVwcmVjYXRlZC9jaGFydC1kZXByZWNhdGVkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQVMvRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztXQVFyQyxZQUFZLE9BQ1AsaUJBQWlCLE9BQ2pCLGlCQUFpQixPQUNkLG9CQUFvQjtBQUdwRSxNQUFNLE9BQU8sd0JBQXdCO0lBYW5DLFlBQ1UsV0FBa0MsRUFDbEMsV0FBdUIsRUFDRCxZQUFxQixFQUNoQixpQkFBMEIsRUFDMUIsaUJBQTBCLEVBQ3ZCLG9CQUE2QjtRQUwzRCxnQkFBVyxHQUFYLFdBQVcsQ0FBdUI7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QUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLElBQW1CLEVBQUU7b0JBQzVELEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsSUFBbUIsRUFBRTtvQkFDNUQsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxJQUFzQixFQUFFO2lCQUNuRTs7YUFDRjs7OztZQXBCUSxxQkFBcUI7WUFYVixVQUFVOzRDQWdEekIsTUFBTSxTQUFDLGFBQWE7NENBQ3BCLE1BQU0sU0FBQyxrQkFBa0I7NENBQ3pCLE1BQU0sU0FBQyxrQkFBa0I7NENBQ3pCLE1BQU0sU0FBQyxxQkFBcUI7OzttQkFsQjlCLEtBQUs7eUJBQ0wsS0FBSztxQkFDTCxLQUFLO3FCQUNMLEtBQUs7bUJBQ0wsS0FBSzswQkFDTCxLQUFLOzZCQUNMLEtBQUs7c0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBPcHRpb25zLFxuICBQbG90U2VyaWVzRGF0YUxhYmVsc09wdGlvbnMsXG4gIFhBeGlzQnJlYWtzT3B0aW9ucyxcbiAgWEF4aXNPcHRpb25zLFxuICBZQXhpc09wdGlvbnMsXG59IGZyb20gJ2hpZ2hjaGFydHMnO1xuXG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAnO1xuXG5pbXBvcnQgeyBDaGFydERlcHJlY2F0ZWRIZWxwZXIgfSBmcm9tICcuL2NoYXJ0LWRlcHJlY2F0ZWQtaGVscGVyJztcbmltcG9ydCB7IENoYXJ0RGVwcmVjYXRlZFR5cGUgfSBmcm9tICcuL2NoYXJ0LWRlcHJlY2F0ZWQtdHlwZSc7XG5pbXBvcnQgeyBBY3Rpdml0eUdhdWdlT3B0aW9ucywgQUNUSVZJVFlHQVVHRV9PUFRJT05TIH0gZnJvbSAnLi9vcHRpb25zL2FjdGl2aXR5Z2F1Z2UnO1xuaW1wb3J0IHsgQXJlYVNwbGluZU9wdGlvbnMsIEFSRUFTUExJTkVfT1BUSU9OUyB9IGZyb20gJy4vb3B0aW9ucy9hcmVhc3BsaW5lJztcbmltcG9ydCB7IGJhck9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMvYmFyJztcbmltcG9ydCB7IGNvbHVtbk9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMvY29sdW1uJztcbmltcG9ydCB7IERvbnV0T3B0aW9ucywgRE9OVVRfT1BUSU9OUyB9IGZyb20gJy4vb3B0aW9ucy9kb251dCc7XG5pbXBvcnQgeyBUaW1lU2VyaWVzT3B0aW9ucywgVElNRVNFUklFU19PUFRJT05TIH0gZnJvbSAnLi9vcHRpb25zL3RpbWVzZXJpZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdraXJieS1jaGFydC1kZXByZWNhdGVkJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFydC1kZXByZWNhdGVkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIENoYXJ0RGVwcmVjYXRlZEhlbHBlcixcbiAgICB7IHByb3ZpZGU6IERPTlVUX09QVElPTlMsIHVzZVZhbHVlOiBEb251dE9wdGlvbnMgfSxcbiAgICB7IHByb3ZpZGU6IEFSRUFTUExJTkVfT1BUSU9OUywgdXNlVmFsdWU6IEFyZWFTcGxpbmVPcHRpb25zIH0sXG4gICAgeyBwcm92aWRlOiBUSU1FU0VSSUVTX09QVElPTlMsIHVzZVZhbHVlOiBUaW1lU2VyaWVzT3B0aW9ucyB9LFxuICAgIHsgcHJvdmlkZTogQUNUSVZJVFlHQVVHRV9PUFRJT05TLCB1c2VWYWx1ZTogQWN0aXZpdHlHYXVnZU9wdGlvbnMgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnREZXByZWNhdGVkQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZGF0YSA9IFtdO1xuICBASW5wdXQoKSBjYXRlZ29yaWVzOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBicmVha3M6IEFycmF5PFhBeGlzQnJlYWtzT3B0aW9ucz4gPSBbXTtcbiAgQElucHV0KCkgaGVpZ2h0ID0gMzAwO1xuICBASW5wdXQoKSB0eXBlOiBDaGFydERlcHJlY2F0ZWRUeXBlID0gQ2hhcnREZXByZWNhdGVkVHlwZS5QSUU7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uID0gJyc7XG4gIEBJbnB1dCgpIHNob3dEYXRhTGFiZWxzID0gdHJ1ZTtcbiAgQElucHV0KCkgb3B0aW9uczogT3B0aW9ucztcbiAgbWVyZ2VkT3B0aW9uczogT3B0aW9ucyA9IHtcbiAgICBhY2Nlc3NpYmlsaXR5OiB7fSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYXJ0SGVscGVyOiBDaGFydERlcHJlY2F0ZWRIZWxwZXIsXG4gICAgcHJpdmF0ZSBob3N0RWxlbWVudDogRWxlbWVudFJlZixcbiAgICBASW5qZWN0KERPTlVUX09QVElPTlMpIHB1YmxpYyBkb251dE9wdGlvbnM6IE9wdGlvbnMsXG4gICAgQEluamVjdChBUkVBU1BMSU5FX09QVElPTlMpIHB1YmxpYyBhcmVhc3BsaW5lT3B0aW9uczogT3B0aW9ucyxcbiAgICBASW5qZWN0KFRJTUVTRVJJRVNfT1BUSU9OUykgcHVibGljIHRpbWVTZXJpZXNPcHRpb25zOiBPcHRpb25zLFxuICAgIEBJbmplY3QoQUNUSVZJVFlHQVVHRV9PUFRJT05TKSBwdWJsaWMgYWN0aXZpdHlnYXVnZU9wdGlvbnM6IE9wdGlvbnNcbiAgKSB7XG4gICAgdGhpcy5jaGFydEhlbHBlci5pbml0KHRoaXMuaG9zdEVsZW1lbnQpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLnR5cGUpIHtcbiAgICAgIHRoaXMuc2V0dXBDaGFydFR5cGUoKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVQcm9wZXJ0aWVzKCk7XG4gICAgdGhpcy5jaGFydEhlbHBlci5yZW5kZXJDaGFydCh0aGlzLm1lcmdlZE9wdGlvbnMpO1xuICB9XG5cbiAgc2V0dXBDaGFydFR5cGUoKSB7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5ET05VVDoge1xuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMgPSB0aGlzLmRvbnV0T3B0aW9ucztcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLmNoYXJ0LnR5cGUgPSBDaGFydERlcHJlY2F0ZWRUeXBlLlBJRTtcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLnBsb3RPcHRpb25zLnBpZS5pbm5lclNpemUgPSAnNTAlJztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIENoYXJ0RGVwcmVjYXRlZFR5cGUuUElFOiB7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucyA9IHRoaXMuZG9udXRPcHRpb25zO1xuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMuY2hhcnQudHlwZSA9IHRoaXMudHlwZTtcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLnBsb3RPcHRpb25zLnBpZS5pbm5lclNpemUgPSAnMCUnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5BUkVBU1BMSU5FOiB7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucyA9IHRoaXMuYXJlYXNwbGluZU9wdGlvbnM7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5jaGFydC50eXBlID0gdGhpcy50eXBlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5USU1FU0VSSUVTOiB7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucyA9IHRoaXMudGltZVNlcmllc09wdGlvbnM7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5jaGFydC50eXBlID0gdGhpcy50eXBlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5BQ1RJVklUWUdBVUdFOiB7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucyA9IHRoaXMuYWN0aXZpdHlnYXVnZU9wdGlvbnM7XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5jaGFydC50eXBlID0gdGhpcy50eXBlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5DT0xVTU46IHtcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zID0gY29sdW1uT3B0aW9ucztcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLmNoYXJ0LnR5cGUgPSB0aGlzLnR5cGU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBDaGFydERlcHJlY2F0ZWRUeXBlLkJBUjoge1xuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMgPSBiYXJPcHRpb25zO1xuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMuY2hhcnQudHlwZSA9IHRoaXMudHlwZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlUHJvcGVydGllcygpIHtcbiAgICB0aGlzLm1lcmdlZE9wdGlvbnMuY2hhcnQuaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLmFjY2Vzc2liaWxpdHkuZGVzY3JpcHRpb24gPSB0aGlzLmRlc2NyaXB0aW9uO1xuICAgIHN3aXRjaCAodGhpcy5tZXJnZWRPcHRpb25zLmNoYXJ0LnR5cGUpIHtcbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5QSUU6XG4gICAgICBjYXNlIENoYXJ0RGVwcmVjYXRlZFR5cGUuRE9OVVQ6IHtcbiAgICAgICAgdGhpcy5zZXRQaWVJbnB1dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5BUkVBU1BMSU5FOiB7XG4gICAgICAgIHRoaXMuc2V0U2VyaWVzKCdhcmVhc3BsaW5lJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBDaGFydERlcHJlY2F0ZWRUeXBlLlRJTUVTRVJJRVM6IHtcbiAgICAgICAgdGhpcy5zZXRUaW1lc2VyaWVzSW5wdXQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIENoYXJ0RGVwcmVjYXRlZFR5cGUuQUNUSVZJVFlHQVVHRToge1xuICAgICAgICB0aGlzLnNldEFjdGl2aXR5Z2F1Z2VJbnB1dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5DT0xVTU46IHtcbiAgICAgICAgdGhpcy5zZXRDb2x1bW5JbnB1dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgQ2hhcnREZXByZWNhdGVkVHlwZS5CQVI6IHtcbiAgICAgICAgdGhpcy5zZXRCYXJJbnB1dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCEhdGhpcy5vcHRpb25zKSB7XG4gICAgICB0aGlzLm1lcmdlZE9wdGlvbnMgPSBtZXJnZURlZXAodGhpcy5tZXJnZWRPcHRpb25zLCB0aGlzLm9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0UGllSW5wdXQoKSB7XG4gICAgKHRoaXMubWVyZ2VkT3B0aW9ucy5wbG90T3B0aW9ucy5waWUuZGF0YUxhYmVscyBhcyBQbG90U2VyaWVzRGF0YUxhYmVsc09wdGlvbnMpLmVuYWJsZWQgPVxuICAgICAgdGhpcy5zaG93RGF0YUxhYmVscztcbiAgICB0aGlzLnNldFNlcmllcygncGllJyk7XG4gIH1cblxuICBwcml2YXRlIHNldEJhcklucHV0KCkge1xuICAgIGNvbnN0IGRhdGFNYXhWYWx1ZSA9IE1hdGgubWF4KC4uLnRoaXMuZGF0YSk7XG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLnNlcmllcyA9IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2JhcicsXG4gICAgICAgIG5hbWU6ICdJbnZpc2libGVDbGlja1JlY2VpdmVyJyxcbiAgICAgICAgZGF0YTogdGhpcy5kYXRhLm1hcCgoZGF0YUVudHJ5KSA9PiBkYXRhTWF4VmFsdWUgLSBkYXRhRW50cnkpLFxuICAgICAgICBlZGdlQ29sb3I6ICdyZ2IoMjU1LCAyNTUsIDI1NSwgMCknLFxuICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2JhcicsXG4gICAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICAgIH0sXG4gICAgXTtcbiAgICAodGhpcy5tZXJnZWRPcHRpb25zLnhBeGlzIGFzIFhBeGlzT3B0aW9ucykuY2F0ZWdvcmllcyA9IHRoaXMuY2F0ZWdvcmllcztcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29sdW1uSW5wdXQoKSB7XG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLnNlcmllcyA9IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2NvbHVtbicsXG4gICAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICAgIH0sXG4gICAgXTtcbiAgICBjb25zdCBkYXRhTWF4VmFsdWUgPSBNYXRoLm1heCguLi50aGlzLmRhdGEpO1xuICAgICgodGhpcy5tZXJnZWRPcHRpb25zLnlBeGlzIGFzIFlBeGlzT3B0aW9ucykudGlja1Bvc2l0aW9uZXIgPSAoKSA9PiB7XG4gICAgICB2YXIgcG9zaXRpb25zID0gWzAsIGRhdGFNYXhWYWx1ZV07XG4gICAgICByZXR1cm4gcG9zaXRpb25zO1xuICAgIH0pLFxuICAgICAgKHRoaXMubWVyZ2VkT3B0aW9ucy5zZXJpZXMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnY29sdW1uJyxcbiAgICAgICAgICBuYW1lOiAnSW52aXNpYmxlQ2xpY2tSZWNlaXZlcicsXG4gICAgICAgICAgZGF0YTogdGhpcy5kYXRhLm1hcCgoXywgaWR4KSA9PiBkYXRhTWF4VmFsdWUgLSB0aGlzLmRhdGFbaWR4XSksXG4gICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdjb2x1bW4nLFxuICAgICAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICAgICAgfSxcbiAgICAgIF0pO1xuICAgICh0aGlzLm1lcmdlZE9wdGlvbnMueEF4aXMgYXMgWEF4aXNPcHRpb25zKS5jYXRlZ29yaWVzID0gdGhpcy5jYXRlZ29yaWVzO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3Rpdml0eWdhdWdlSW5wdXQoKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YVswXTtcbiAgICB0aGlzLm1lcmdlZE9wdGlvbnMudGl0bGUudGV4dCA9IGRhdGEudGl0bGU7XG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLnN1YnRpdGxlLnRleHQgPSBkYXRhLnN1YnRpdGxlO1xuICAgIGlmIChkYXRhLnBhbmVCYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5wYW5lLmJhY2tncm91bmQgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAuLi50aGlzLm1lcmdlZE9wdGlvbnMucGFuZS5iYWNrZ3JvdW5kWzBdLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZGF0YS5wYW5lQmFja2dyb3VuZENvbG9yLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICB9XG4gICAgaWYgKGRhdGEuY29sb3IpIHtcbiAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy50aXRsZS5zdHlsZS5jb2xvciA9IGRhdGEuY29sb3I7XG4gICAgICB0aGlzLm1lcmdlZE9wdGlvbnMuc3VidGl0bGUuc3R5bGUuY29sb3IgPSBkYXRhLmNvbG9yO1xuICAgIH1cbiAgICB0aGlzLm1lcmdlZE9wdGlvbnMuc2VyaWVzID0gW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnc29saWRnYXVnZScsXG4gICAgICAgIGRhdGE6IGRhdGEuc2VyaWVzLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRUaW1lc2VyaWVzSW5wdXQoKSB7XG4gICAgdGhpcy5zZXRTZXJpZXMoJ2FyZWEnKTtcbiAgICB0aGlzLm1lcmdlZE9wdGlvbnMueEF4aXMgPSB7XG4gICAgICAuLi50aGlzLm1lcmdlZE9wdGlvbnMueEF4aXMsXG4gICAgICBicmVha3M6IHRoaXMuYnJlYWtzLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHNldFNlcmllcyh0eXBlKSB7XG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLnNlcmllcyA9IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgZGF0YTogdGhpcy5kYXRhLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG59XG4iXX0=
@@ -93,4 +93,4 @@ export const AreaSplineOptions = {
93
93
  ],
94
94
  };
95
95
  export { ɵ0, ɵ1 };
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJlYXNwbGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC1kZXByZWNhdGVkL29wdGlvbnMvYXJlYXNwbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFVLG1CQUFtQixDQUFDLENBQUM7V0ErQnBFO0lBQ1QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLENBQUMsT0FDVztJQUNWLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDdEUsQ0FBQztBQW5DTCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBWTtJQUN4QyxLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsWUFBWTtRQUNsQixXQUFXLEVBQUUsQ0FBQztRQUNkLGVBQWUsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sRUFBRSxDQUFDO1FBQ1QsU0FBUyxFQUFFLEVBQUU7S0FDZDtJQUNELGFBQWEsRUFBRTtRQUNiLFdBQVcsRUFBRSxFQUFFO0tBQ2hCO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUNELE9BQU8sRUFBRTtRQUNQLE9BQU8sRUFBRSxLQUFLO0tBQ2Y7SUFDRCxTQUFTLEVBQUU7UUFDVCxPQUFPLEVBQUUsS0FBSztLQUNmO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsT0FBTyxFQUFFLElBQUk7UUFDYixTQUFTLEVBQUUsS0FBSztRQUNoQixLQUFLLEVBQUUsUUFBUTtRQUNmLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLE1BQU0sRUFBRSxLQUFLO1FBQ2IsZUFBZSxFQUFFLFNBQVM7UUFDMUIsS0FBSyxFQUFFO1lBQ0wsUUFBUSxFQUFFLFNBQVM7U0FDcEI7UUFDRCxTQUFTLElBRVI7UUFDRCxVQUFVLElBRVQ7S0FDRjtJQUNELEtBQUssRUFBRTtRQUNMLE9BQU8sRUFBRSxLQUFLO1FBQ2QsVUFBVSxFQUFFLENBQUM7UUFDYixVQUFVLEVBQUUsQ0FBQztRQUNiLFNBQVMsRUFBRTtZQUNULE1BQU0sRUFBRSxDQUFDO1lBQ1QsS0FBSyxFQUFFLENBQUM7WUFDUixLQUFLLEVBQUUsU0FBUztTQUNqQjtLQUNGO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsT0FBTyxFQUFFLEtBQUs7UUFDZCxTQUFTLEVBQUUsS0FBSztRQUNoQixXQUFXLEVBQUUsS0FBSztLQUNuQjtJQUNELFdBQVcsRUFBRTtRQUNYLFVBQVUsRUFBRTtZQUNWLE1BQU0sRUFBRSxJQUFJO1lBQ1osWUFBWSxFQUFFLEtBQUs7WUFDbkIsU0FBUyxFQUFFO2dCQUNULGNBQWMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2hELEtBQUssRUFBRTtvQkFDTCxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7b0JBQ2QsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDO2lCQUNmO2FBQ0Y7WUFDRCxTQUFTLEVBQUUsU0FBUztZQUNwQixTQUFTLEVBQUUsQ0FBQztTQUNiO1FBQ0QsTUFBTSxFQUFFO1lBQ04sTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRTtvQkFDTCxJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLENBQUM7cUJBQ1I7aUJBQ0Y7YUFDRjtZQUNELE1BQU0sRUFBRTtnQkFDTixPQUFPLEVBQUUsS0FBSztnQkFDZCxNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUFFO3dCQUNMLE9BQU8sRUFBRSxJQUFJO3dCQUNiLFNBQVMsRUFBRSxTQUFTO3FCQUNyQjtpQkFDRjthQUNGO1NBQ0Y7S0FDRjtJQUNELE1BQU0sRUFBRTtRQUNOO1lBQ0UsSUFBSSxFQUFFLFlBQVk7U0FDbkI7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ2hpZ2hjaGFydHMnO1xuXG5leHBvcnQgY29uc3QgQVJFQVNQTElORV9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPE9wdGlvbnM+KCdBcmVhc3BsaW5lT3B0aW9ucycpO1xuZXhwb3J0IGNvbnN0IEFyZWFTcGxpbmVPcHRpb25zOiBPcHRpb25zID0ge1xuICBjaGFydDoge1xuICAgIHR5cGU6ICdhcmVhc3BsaW5lJyxcbiAgICBib3JkZXJXaWR0aDogMCxcbiAgICBwbG90Qm9yZGVyV2lkdGg6IDAsXG4gICAgbWFyZ2luOiAwLFxuICAgIG1hcmdpblRvcDogNDgsXG4gIH0sXG4gIGFjY2Vzc2liaWxpdHk6IHtcbiAgICBkZXNjcmlwdGlvbjogJycsXG4gIH0sXG4gIHRpdGxlOiB7XG4gICAgdGV4dDogJycsXG4gIH0sXG4gIGNyZWRpdHM6IHtcbiAgICBlbmFibGVkOiBmYWxzZSxcbiAgfSxcbiAgZXhwb3J0aW5nOiB7XG4gICAgZW5hYmxlZDogZmFsc2UsXG4gIH0sXG4gIHRvb2x0aXA6IHtcbiAgICBlbmFibGVkOiB0cnVlLFxuICAgIGFuaW1hdGlvbjogZmFsc2UsXG4gICAgc2hhcGU6ICdzcXVhcmUnLFxuICAgIGJvcmRlckNvbG9yOiAnI0ZGRkZGRicsXG4gICAgc2hhZG93OiBmYWxzZSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRkZGRkZGJyxcbiAgICBzdHlsZToge1xuICAgICAgZm9udFNpemU6ICcxLjI1cmVtJyxcbiAgICB9LFxuICAgIGZvcm1hdHRlcjogZnVuY3Rpb24oKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBTdHJpbmcodGhpcy55KTtcbiAgICB9LFxuICAgIHBvc2l0aW9uZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHsgeDogdGhpcy5jaGFydC5wbG90U2l6ZVggLyAyIC0gdGhpcy5sYWJlbC53aWR0aCAvIDIsIHk6IDAgfTtcbiAgICB9LFxuICB9LFxuICB4QXhpczoge1xuICAgIHZpc2libGU6IGZhbHNlLFxuICAgIG1pblBhZGRpbmc6IDAsXG4gICAgbWF4UGFkZGluZzogMCxcbiAgICBjcm9zc2hhaXI6IHtcbiAgICAgIHpJbmRleDogMyxcbiAgICAgIHdpZHRoOiAxLFxuICAgICAgY29sb3I6ICcjMTc3RTE3JyxcbiAgICB9LFxuICB9LFxuICB5QXhpczoge1xuICAgIHZpc2libGU6IGZhbHNlLFxuICAgIGVuZE9uVGljazogZmFsc2UsXG4gICAgc3RhcnRPblRpY2s6IGZhbHNlLFxuICB9LFxuICBwbG90T3B0aW9uczoge1xuICAgIGFyZWFzcGxpbmU6IHtcbiAgICAgIHNoYWRvdzogdHJ1ZSxcbiAgICAgIHNob3dJbkxlZ2VuZDogZmFsc2UsXG4gICAgICBmaWxsQ29sb3I6IHtcbiAgICAgICAgbGluZWFyR3JhZGllbnQ6IHsgeDE6IDAsIHgyOiAwLCB5MTogMCwgeTI6IDAuOCB9LFxuICAgICAgICBzdG9wczogW1xuICAgICAgICAgIFswLCAnI0M5RTVDOSddLFxuICAgICAgICAgIFsxLCAnI0ZGRkZGRiddLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIGxpbmVDb2xvcjogJyMxNzdFMTcnLFxuICAgICAgbGluZVdpZHRoOiAyLFxuICAgIH0sXG4gICAgc2VyaWVzOiB7XG4gICAgICBzdGF0ZXM6IHtcbiAgICAgICAgaG92ZXI6IHtcbiAgICAgICAgICBoYWxvOiB7XG4gICAgICAgICAgICBzaXplOiAwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbWFya2VyOiB7XG4gICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICBzdGF0ZXM6IHtcbiAgICAgICAgICBob3Zlcjoge1xuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIGZpbGxDb2xvcjogJyMxNzdFMTcnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIHNlcmllczogW1xuICAgIHtcbiAgICAgIHR5cGU6ICdhcmVhc3BsaW5lJyxcbiAgICB9LFxuICBdLFxufTtcbiJdfQ==
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJlYXNwbGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC1kZXByZWNhdGVkL29wdGlvbnMvYXJlYXNwbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFVLG1CQUFtQixDQUFDLENBQUM7V0ErQnBFO0lBQ1QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLENBQUMsT0FDVztJQUNWLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDdEUsQ0FBQztBQW5DTCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBWTtJQUN4QyxLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsWUFBWTtRQUNsQixXQUFXLEVBQUUsQ0FBQztRQUNkLGVBQWUsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sRUFBRSxDQUFDO1FBQ1QsU0FBUyxFQUFFLEVBQUU7S0FDZDtJQUNELGFBQWEsRUFBRTtRQUNiLFdBQVcsRUFBRSxFQUFFO0tBQ2hCO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLEVBQUU7S0FDVDtJQUNELE9BQU8sRUFBRTtRQUNQLE9BQU8sRUFBRSxLQUFLO0tBQ2Y7SUFDRCxTQUFTLEVBQUU7UUFDVCxPQUFPLEVBQUUsS0FBSztLQUNmO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsT0FBTyxFQUFFLElBQUk7UUFDYixTQUFTLEVBQUUsS0FBSztRQUNoQixLQUFLLEVBQUUsUUFBUTtRQUNmLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLE1BQU0sRUFBRSxLQUFLO1FBQ2IsZUFBZSxFQUFFLFNBQVM7UUFDMUIsS0FBSyxFQUFFO1lBQ0wsUUFBUSxFQUFFLFNBQVM7U0FDcEI7UUFDRCxTQUFTLElBRVI7UUFDRCxVQUFVLElBRVQ7S0FDRjtJQUNELEtBQUssRUFBRTtRQUNMLE9BQU8sRUFBRSxLQUFLO1FBQ2QsVUFBVSxFQUFFLENBQUM7UUFDYixVQUFVLEVBQUUsQ0FBQztRQUNiLFNBQVMsRUFBRTtZQUNULE1BQU0sRUFBRSxDQUFDO1lBQ1QsS0FBSyxFQUFFLENBQUM7WUFDUixLQUFLLEVBQUUsU0FBUztTQUNqQjtLQUNGO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsT0FBTyxFQUFFLEtBQUs7UUFDZCxTQUFTLEVBQUUsS0FBSztRQUNoQixXQUFXLEVBQUUsS0FBSztLQUNuQjtJQUNELFdBQVcsRUFBRTtRQUNYLFVBQVUsRUFBRTtZQUNWLE1BQU0sRUFBRSxJQUFJO1lBQ1osWUFBWSxFQUFFLEtBQUs7WUFDbkIsU0FBUyxFQUFFO2dCQUNULGNBQWMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2hELEtBQUssRUFBRTtvQkFDTCxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7b0JBQ2QsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDO2lCQUNmO2FBQ0Y7WUFDRCxTQUFTLEVBQUUsU0FBUztZQUNwQixTQUFTLEVBQUUsQ0FBQztTQUNiO1FBQ0QsTUFBTSxFQUFFO1lBQ04sTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRTtvQkFDTCxJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLENBQUM7cUJBQ1I7aUJBQ0Y7YUFDRjtZQUNELE1BQU0sRUFBRTtnQkFDTixPQUFPLEVBQUUsS0FBSztnQkFDZCxNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUFFO3dCQUNMLE9BQU8sRUFBRSxJQUFJO3dCQUNiLFNBQVMsRUFBRSxTQUFTO3FCQUNyQjtpQkFDRjthQUNGO1NBQ0Y7S0FDRjtJQUNELE1BQU0sRUFBRTtRQUNOO1lBQ0UsSUFBSSxFQUFFLFlBQVk7U0FDbkI7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ2hpZ2hjaGFydHMnO1xuXG5leHBvcnQgY29uc3QgQVJFQVNQTElORV9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPE9wdGlvbnM+KCdBcmVhc3BsaW5lT3B0aW9ucycpO1xuZXhwb3J0IGNvbnN0IEFyZWFTcGxpbmVPcHRpb25zOiBPcHRpb25zID0ge1xuICBjaGFydDoge1xuICAgIHR5cGU6ICdhcmVhc3BsaW5lJyxcbiAgICBib3JkZXJXaWR0aDogMCxcbiAgICBwbG90Qm9yZGVyV2lkdGg6IDAsXG4gICAgbWFyZ2luOiAwLFxuICAgIG1hcmdpblRvcDogNDgsXG4gIH0sXG4gIGFjY2Vzc2liaWxpdHk6IHtcbiAgICBkZXNjcmlwdGlvbjogJycsXG4gIH0sXG4gIHRpdGxlOiB7XG4gICAgdGV4dDogJycsXG4gIH0sXG4gIGNyZWRpdHM6IHtcbiAgICBlbmFibGVkOiBmYWxzZSxcbiAgfSxcbiAgZXhwb3J0aW5nOiB7XG4gICAgZW5hYmxlZDogZmFsc2UsXG4gIH0sXG4gIHRvb2x0aXA6IHtcbiAgICBlbmFibGVkOiB0cnVlLFxuICAgIGFuaW1hdGlvbjogZmFsc2UsXG4gICAgc2hhcGU6ICdzcXVhcmUnLFxuICAgIGJvcmRlckNvbG9yOiAnI0ZGRkZGRicsXG4gICAgc2hhZG93OiBmYWxzZSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRkZGRkZGJyxcbiAgICBzdHlsZToge1xuICAgICAgZm9udFNpemU6ICcxLjI1cmVtJyxcbiAgICB9LFxuICAgIGZvcm1hdHRlcjogZnVuY3Rpb24gKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gU3RyaW5nKHRoaXMueSk7XG4gICAgfSxcbiAgICBwb3NpdGlvbmVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4geyB4OiB0aGlzLmNoYXJ0LnBsb3RTaXplWCAvIDIgLSB0aGlzLmxhYmVsLndpZHRoIC8gMiwgeTogMCB9O1xuICAgIH0sXG4gIH0sXG4gIHhBeGlzOiB7XG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAgbWluUGFkZGluZzogMCxcbiAgICBtYXhQYWRkaW5nOiAwLFxuICAgIGNyb3NzaGFpcjoge1xuICAgICAgekluZGV4OiAzLFxuICAgICAgd2lkdGg6IDEsXG4gICAgICBjb2xvcjogJyMxNzdFMTcnLFxuICAgIH0sXG4gIH0sXG4gIHlBeGlzOiB7XG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAgZW5kT25UaWNrOiBmYWxzZSxcbiAgICBzdGFydE9uVGljazogZmFsc2UsXG4gIH0sXG4gIHBsb3RPcHRpb25zOiB7XG4gICAgYXJlYXNwbGluZToge1xuICAgICAgc2hhZG93OiB0cnVlLFxuICAgICAgc2hvd0luTGVnZW5kOiBmYWxzZSxcbiAgICAgIGZpbGxDb2xvcjoge1xuICAgICAgICBsaW5lYXJHcmFkaWVudDogeyB4MTogMCwgeDI6IDAsIHkxOiAwLCB5MjogMC44IH0sXG4gICAgICAgIHN0b3BzOiBbXG4gICAgICAgICAgWzAsICcjQzlFNUM5J10sXG4gICAgICAgICAgWzEsICcjRkZGRkZGJ10sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgbGluZUNvbG9yOiAnIzE3N0UxNycsXG4gICAgICBsaW5lV2lkdGg6IDIsXG4gICAgfSxcbiAgICBzZXJpZXM6IHtcbiAgICAgIHN0YXRlczoge1xuICAgICAgICBob3Zlcjoge1xuICAgICAgICAgIGhhbG86IHtcbiAgICAgICAgICAgIHNpemU6IDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBtYXJrZXI6IHtcbiAgICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICAgIHN0YXRlczoge1xuICAgICAgICAgIGhvdmVyOiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgZmlsbENvbG9yOiAnIzE3N0UxNycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgc2VyaWVzOiBbXG4gICAge1xuICAgICAgdHlwZTogJ2FyZWFzcGxpbmUnLFxuICAgIH0sXG4gIF0sXG59O1xuIl19
@@ -95,4 +95,4 @@ export const TimeSeriesOptions = {
95
95
  ],
96
96
  };
97
97
  export { ɵ0, ɵ1 };
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXNlcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC1kZXByZWNhdGVkL29wdGlvbnMvdGltZXNlcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQVcsTUFBTSxZQUFZLENBQUM7QUFFakQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQVUsbUJBQW1CLENBQUMsQ0FBQztXQTRCcEU7SUFDVCxhQUFhO0lBQ2IsT0FBTyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDckYsQ0FBQyxPQUVXLFVBQVMsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLO0lBQ25ELE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDOUIsQ0FBQztBQWxDTCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBWTtJQUN4QyxLQUFLLEVBQUU7UUFDTCxlQUFlLEVBQUU7WUFDZixjQUFjLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQzlDLEtBQUssRUFBRTtnQkFDTCxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7Z0JBQ2QsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDO2FBQ2Y7U0FDRjtRQUNELFFBQVEsRUFBRSxHQUFHO1FBQ2IsSUFBSSxFQUFFLFlBQVk7UUFDbEIsV0FBVyxFQUFFLENBQUM7UUFDZCxlQUFlLEVBQUUsQ0FBQztRQUNsQixNQUFNLEVBQUUsQ0FBQztRQUNULFNBQVMsRUFBRSxFQUFFO0tBQ2Q7SUFDRCxhQUFhLEVBQUU7UUFDYixXQUFXLEVBQUUsRUFBRTtLQUNoQjtJQUNELEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFDRCxRQUFRLEVBQUU7UUFDUixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLEtBQUs7UUFDYixTQUFTLElBR1I7UUFDRCx1QkFBdUI7UUFDdkIsVUFBVSxJQUVUO1FBQ0QsV0FBVyxFQUFFLENBQUM7S0FDZjtJQUNELEtBQUssRUFBRTtRQUNMLE9BQU8sRUFBRSxLQUFLO1FBQ2QsU0FBUyxFQUFFLFNBQVM7UUFDcEIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsTUFBTSxFQUFFO1lBQ04sS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxPQUFPO2FBQ2Y7U0FDRjtRQUNELFFBQVEsRUFBRSxJQUFJO1FBQ2QsU0FBUyxFQUFFO1lBQ1QsTUFBTSxFQUFFLENBQUM7WUFDVCxLQUFLLEVBQUUsQ0FBQztZQUNSLEtBQUssRUFBRSxTQUFTO1NBQ2pCO1FBQ0QsSUFBSSxFQUFFLFVBQVU7UUFDaEIsWUFBWSxFQUFFLENBQUM7S0FDaEI7SUFDRCxLQUFLLEVBQUU7UUFDTCxPQUFPLEVBQUUsS0FBSztLQUNmO0lBQ0QsTUFBTSxFQUFFO1FBQ04sT0FBTyxFQUFFLEtBQUs7S0FDZjtJQUNELFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLE1BQU0sRUFBRTtnQkFDTixTQUFTLEVBQUUsRUFBRTtnQkFDYixTQUFTLEVBQUUsdUJBQXVCO2dCQUNsQyxNQUFNLEVBQUUsQ0FBQztnQkFDVCxTQUFTLEVBQUUsU0FBUzthQUNyQjtZQUNELFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFNBQVMsRUFBRSxDQUFDO1lBQ1osTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRTtvQkFDTCxTQUFTLEVBQUUsQ0FBQztpQkFDYjthQUNGO1lBQ0QsU0FBUyxFQUFFLElBQUk7U0FDaEI7UUFDRCxNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUU7Z0JBQ04sZ0JBQWdCLEVBQUUsRUFBRTthQUNyQjtTQUNGO0tBQ0Y7SUFDRCxNQUFNLEVBQUU7UUFDTjtZQUNFLElBQUksRUFBRSxNQUFNO1lBQ1osSUFBSSxFQUFFLFlBQVk7U0FDbkI7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGF0ZUZvcm1hdCwgT3B0aW9ucyB9IGZyb20gJ2hpZ2hjaGFydHMnO1xuXG5leHBvcnQgY29uc3QgVElNRVNFUklFU19PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPE9wdGlvbnM+KCdUaW1lU2VyaWVzT3B0aW9ucycpO1xuZXhwb3J0IGNvbnN0IFRpbWVTZXJpZXNPcHRpb25zOiBPcHRpb25zID0ge1xuICBjaGFydDoge1xuICAgIGJhY2tncm91bmRDb2xvcjoge1xuICAgICAgbGluZWFyR3JhZGllbnQ6IHsgeDE6IDAsIHgyOiAwLCB5MTogMCwgeTI6IDMgfSxcbiAgICAgIHN0b3BzOiBbXG4gICAgICAgIFswLCAnI0Y2RjZGNiddLFxuICAgICAgICBbMSwgJyM4MDgwODAnXSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB6b29tVHlwZTogJ3gnLFxuICAgIHR5cGU6ICd0aW1lc2VyaWVzJyxcbiAgICBib3JkZXJXaWR0aDogMCxcbiAgICBwbG90Qm9yZGVyV2lkdGg6IDAsXG4gICAgbWFyZ2luOiAwLFxuICAgIG1hcmdpblRvcDogNDgsXG4gIH0sXG4gIGFjY2Vzc2liaWxpdHk6IHtcbiAgICBkZXNjcmlwdGlvbjogJycsXG4gIH0sXG4gIHRpdGxlOiB7XG4gICAgdGV4dDogJycsXG4gIH0sXG4gIHN1YnRpdGxlOiB7XG4gICAgdGV4dDogJycsXG4gIH0sXG4gIHRvb2x0aXA6IHtcbiAgICBzaGFkb3c6IGZhbHNlLFxuICAgIGZvcm1hdHRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gZGF0ZUZvcm1hdCgnJWUuICViJywgbmV3IERhdGUodGhpcy54KSkgKyAnLicgKyAnPGJyLz48Yj4nICsgdGhpcy55ICsgJzwvYj4nO1xuICAgIH0sXG4gICAgLy94RGF0ZUZvcm1hdDogJyVkLyVtJyxcbiAgICBwb3NpdGlvbmVyOiBmdW5jdGlvbihfbGFiZWxXaWR0aCwgX2xhYmVsSGVpZ2h0LCBwb2ludCkge1xuICAgICAgcmV0dXJuIHsgeDogcG9pbnQueCwgeTogMCB9O1xuICAgIH0sXG4gICAgYm9yZGVyV2lkdGg6IDAsXG4gIH0sXG4gIHhBeGlzOiB7XG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAgbGluZUNvbG9yOiAnI0ZGRkZGRicsXG4gICAgdGlja0NvbG9yOiAnI0ZGRkZGRicsXG4gICAgbGFiZWxzOiB7XG4gICAgICBzdHlsZToge1xuICAgICAgICBjb2xvcjogJ3doaXRlJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBvcHBvc2l0ZTogdHJ1ZSxcbiAgICBjcm9zc2hhaXI6IHtcbiAgICAgIHpJbmRleDogMyxcbiAgICAgIHdpZHRoOiAxLFxuICAgICAgY29sb3I6ICcjMDBFODlBJyxcbiAgICB9LFxuICAgIHR5cGU6ICdkYXRldGltZScsXG4gICAgdGlja0ludGVydmFsOiAxLFxuICB9LFxuICB5QXhpczoge1xuICAgIHZpc2libGU6IGZhbHNlLFxuICB9LFxuICBsZWdlbmQ6IHtcbiAgICBlbmFibGVkOiBmYWxzZSxcbiAgfSxcbiAgcGxvdE9wdGlvbnM6IHtcbiAgICBhcmVhOiB7XG4gICAgICBmaWxsQ29sb3I6ICcjMDEzNTJDJyxcbiAgICAgIG1hcmtlcjoge1xuICAgICAgICBsaW5lV2lkdGg6IDE0LFxuICAgICAgICBsaW5lQ29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LDAuMiknLFxuICAgICAgICByYWRpdXM6IDYsXG4gICAgICAgIGZpbGxDb2xvcjogJyMwMEU4OUEnLFxuICAgICAgfSxcbiAgICAgIGxpbmVDb2xvcjogJyMwMTM1MkMnLFxuICAgICAgbGluZVdpZHRoOiAxLFxuICAgICAgc3RhdGVzOiB7XG4gICAgICAgIGhvdmVyOiB7XG4gICAgICAgICAgbGluZVdpZHRoOiAxLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHRocmVzaG9sZDogbnVsbCxcbiAgICB9LFxuICAgIHNlcmllczoge1xuICAgICAgbWFya2VyOiB7XG4gICAgICAgIGVuYWJsZWRUaHJlc2hvbGQ6IDUwLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICBzZXJpZXM6IFtcbiAgICB7XG4gICAgICB0eXBlOiAnYXJlYScsXG4gICAgICBuYW1lOiAnVVNEIHRvIEVVUicsXG4gICAgfSxcbiAgXSxcbn07XG4iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXNlcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC1kZXByZWNhdGVkL29wdGlvbnMvdGltZXNlcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQVcsTUFBTSxZQUFZLENBQUM7QUFFakQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQVUsbUJBQW1CLENBQUMsQ0FBQztXQTRCcEU7SUFDVCxhQUFhO0lBQ2IsT0FBTyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDckYsQ0FBQyxPQUVXLFVBQVUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLO0lBQ3BELE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDOUIsQ0FBQztBQWxDTCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBWTtJQUN4QyxLQUFLLEVBQUU7UUFDTCxlQUFlLEVBQUU7WUFDZixjQUFjLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQzlDLEtBQUssRUFBRTtnQkFDTCxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7Z0JBQ2QsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDO2FBQ2Y7U0FDRjtRQUNELFFBQVEsRUFBRSxHQUFHO1FBQ2IsSUFBSSxFQUFFLFlBQVk7UUFDbEIsV0FBVyxFQUFFLENBQUM7UUFDZCxlQUFlLEVBQUUsQ0FBQztRQUNsQixNQUFNLEVBQUUsQ0FBQztRQUNULFNBQVMsRUFBRSxFQUFFO0tBQ2Q7SUFDRCxhQUFhLEVBQUU7UUFDYixXQUFXLEVBQUUsRUFBRTtLQUNoQjtJQUNELEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxFQUFFO0tBQ1Q7SUFDRCxRQUFRLEVBQUU7UUFDUixJQUFJLEVBQUUsRUFBRTtLQUNUO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLEtBQUs7UUFDYixTQUFTLElBR1I7UUFDRCx1QkFBdUI7UUFDdkIsVUFBVSxJQUVUO1FBQ0QsV0FBVyxFQUFFLENBQUM7S0FDZjtJQUNELEtBQUssRUFBRTtRQUNMLE9BQU8sRUFBRSxLQUFLO1FBQ2QsU0FBUyxFQUFFLFNBQVM7UUFDcEIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsTUFBTSxFQUFFO1lBQ04sS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxPQUFPO2FBQ2Y7U0FDRjtRQUNELFFBQVEsRUFBRSxJQUFJO1FBQ2QsU0FBUyxFQUFFO1lBQ1QsTUFBTSxFQUFFLENBQUM7WUFDVCxLQUFLLEVBQUUsQ0FBQztZQUNSLEtBQUssRUFBRSxTQUFTO1NBQ2pCO1FBQ0QsSUFBSSxFQUFFLFVBQVU7UUFDaEIsWUFBWSxFQUFFLENBQUM7S0FDaEI7SUFDRCxLQUFLLEVBQUU7UUFDTCxPQUFPLEVBQUUsS0FBSztLQUNmO0lBQ0QsTUFBTSxFQUFFO1FBQ04sT0FBTyxFQUFFLEtBQUs7S0FDZjtJQUNELFdBQVcsRUFBRTtRQUNYLElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLE1BQU0sRUFBRTtnQkFDTixTQUFTLEVBQUUsRUFBRTtnQkFDYixTQUFTLEVBQUUsdUJBQXVCO2dCQUNsQyxNQUFNLEVBQUUsQ0FBQztnQkFDVCxTQUFTLEVBQUUsU0FBUzthQUNyQjtZQUNELFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFNBQVMsRUFBRSxDQUFDO1lBQ1osTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRTtvQkFDTCxTQUFTLEVBQUUsQ0FBQztpQkFDYjthQUNGO1lBQ0QsU0FBUyxFQUFFLElBQUk7U0FDaEI7UUFDRCxNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUU7Z0JBQ04sZ0JBQWdCLEVBQUUsRUFBRTthQUNyQjtTQUNGO0tBQ0Y7SUFDRCxNQUFNLEVBQUU7UUFDTjtZQUNFLElBQUksRUFBRSxNQUFNO1lBQ1osSUFBSSxFQUFFLFlBQVk7U0FDbkI7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGF0ZUZvcm1hdCwgT3B0aW9ucyB9IGZyb20gJ2hpZ2hjaGFydHMnO1xuXG5leHBvcnQgY29uc3QgVElNRVNFUklFU19PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPE9wdGlvbnM+KCdUaW1lU2VyaWVzT3B0aW9ucycpO1xuZXhwb3J0IGNvbnN0IFRpbWVTZXJpZXNPcHRpb25zOiBPcHRpb25zID0ge1xuICBjaGFydDoge1xuICAgIGJhY2tncm91bmRDb2xvcjoge1xuICAgICAgbGluZWFyR3JhZGllbnQ6IHsgeDE6IDAsIHgyOiAwLCB5MTogMCwgeTI6IDMgfSxcbiAgICAgIHN0b3BzOiBbXG4gICAgICAgIFswLCAnI0Y2RjZGNiddLFxuICAgICAgICBbMSwgJyM4MDgwODAnXSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB6b29tVHlwZTogJ3gnLFxuICAgIHR5cGU6ICd0aW1lc2VyaWVzJyxcbiAgICBib3JkZXJXaWR0aDogMCxcbiAgICBwbG90Qm9yZGVyV2lkdGg6IDAsXG4gICAgbWFyZ2luOiAwLFxuICAgIG1hcmdpblRvcDogNDgsXG4gIH0sXG4gIGFjY2Vzc2liaWxpdHk6IHtcbiAgICBkZXNjcmlwdGlvbjogJycsXG4gIH0sXG4gIHRpdGxlOiB7XG4gICAgdGV4dDogJycsXG4gIH0sXG4gIHN1YnRpdGxlOiB7XG4gICAgdGV4dDogJycsXG4gIH0sXG4gIHRvb2x0aXA6IHtcbiAgICBzaGFkb3c6IGZhbHNlLFxuICAgIGZvcm1hdHRlcjogZnVuY3Rpb24gKCkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcmV0dXJuIGRhdGVGb3JtYXQoJyVlLiAlYicsIG5ldyBEYXRlKHRoaXMueCkpICsgJy4nICsgJzxici8+PGI+JyArIHRoaXMueSArICc8L2I+JztcbiAgICB9LFxuICAgIC8veERhdGVGb3JtYXQ6ICclZC8lbScsXG4gICAgcG9zaXRpb25lcjogZnVuY3Rpb24gKF9sYWJlbFdpZHRoLCBfbGFiZWxIZWlnaHQsIHBvaW50KSB7XG4gICAgICByZXR1cm4geyB4OiBwb2ludC54LCB5OiAwIH07XG4gICAgfSxcbiAgICBib3JkZXJXaWR0aDogMCxcbiAgfSxcbiAgeEF4aXM6IHtcbiAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICBsaW5lQ29sb3I6ICcjRkZGRkZGJyxcbiAgICB0aWNrQ29sb3I6ICcjRkZGRkZGJyxcbiAgICBsYWJlbHM6IHtcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIGNvbG9yOiAnd2hpdGUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIG9wcG9zaXRlOiB0cnVlLFxuICAgIGNyb3NzaGFpcjoge1xuICAgICAgekluZGV4OiAzLFxuICAgICAgd2lkdGg6IDEsXG4gICAgICBjb2xvcjogJyMwMEU4OUEnLFxuICAgIH0sXG4gICAgdHlwZTogJ2RhdGV0aW1lJyxcbiAgICB0aWNrSW50ZXJ2YWw6IDEsXG4gIH0sXG4gIHlBeGlzOiB7XG4gICAgdmlzaWJsZTogZmFsc2UsXG4gIH0sXG4gIGxlZ2VuZDoge1xuICAgIGVuYWJsZWQ6IGZhbHNlLFxuICB9LFxuICBwbG90T3B0aW9uczoge1xuICAgIGFyZWE6IHtcbiAgICAgIGZpbGxDb2xvcjogJyMwMTM1MkMnLFxuICAgICAgbWFya2VyOiB7XG4gICAgICAgIGxpbmVXaWR0aDogMTQsXG4gICAgICAgIGxpbmVDb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMC4yKScsXG4gICAgICAgIHJhZGl1czogNixcbiAgICAgICAgZmlsbENvbG9yOiAnIzAwRTg5QScsXG4gICAgICB9LFxuICAgICAgbGluZUNvbG9yOiAnIzAxMzUyQycsXG4gICAgICBsaW5lV2lkdGg6IDEsXG4gICAgICBzdGF0ZXM6IHtcbiAgICAgICAgaG92ZXI6IHtcbiAgICAgICAgICBsaW5lV2lkdGg6IDEsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdGhyZXNob2xkOiBudWxsLFxuICAgIH0sXG4gICAgc2VyaWVzOiB7XG4gICAgICBtYXJrZXI6IHtcbiAgICAgICAgZW5hYmxlZFRocmVzaG9sZDogNTAsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIHNlcmllczogW1xuICAgIHtcbiAgICAgIHR5cGU6ICdhcmVhJyxcbiAgICAgIG5hbWU6ICdVU0QgdG8gRVVSJyxcbiAgICB9LFxuICBdLFxufTtcbiJdfQ==