@kepler.gl/components 3.3.0-alpha.0 → 3.3.0-alpha.1

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 (215) hide show
  1. package/dist/annotations/annotation-node.d.ts +11 -0
  2. package/dist/annotations/annotation-node.js +145 -0
  3. package/dist/annotations/annotation-overlay.d.ts +16 -0
  4. package/dist/annotations/annotation-overlay.js +166 -0
  5. package/dist/annotations/annotation-panel.d.ts +24 -0
  6. package/dist/annotations/annotation-panel.js +362 -0
  7. package/dist/annotations/annotation-text.d.ts +16 -0
  8. package/dist/annotations/annotation-text.js +150 -0
  9. package/dist/annotations/annotation-utils.d.ts +39 -0
  10. package/dist/annotations/annotation-utils.js +156 -0
  11. package/dist/annotations/index.d.ts +7 -0
  12. package/dist/annotations/index.js +53 -0
  13. package/dist/annotations/lexical-editor/clickable-link-plugin.d.ts +3 -0
  14. package/dist/annotations/lexical-editor/clickable-link-plugin.js +71 -0
  15. package/dist/annotations/lexical-editor/floating-link-editor.d.ts +1 -0
  16. package/dist/annotations/lexical-editor/floating-link-editor.js +194 -0
  17. package/dist/annotations/lexical-editor/index.d.ts +7 -0
  18. package/dist/annotations/lexical-editor/index.js +78 -0
  19. package/dist/annotations/lexical-editor/lexical-constants.d.ts +12 -0
  20. package/dist/annotations/lexical-editor/lexical-constants.js +22 -0
  21. package/dist/annotations/lexical-editor/lexical-nodes.d.ts +3 -0
  22. package/dist/annotations/lexical-editor/lexical-nodes.js +13 -0
  23. package/dist/annotations/lexical-editor/lexical-rich-text-editor.d.ts +15 -0
  24. package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +122 -0
  25. package/dist/annotations/lexical-editor/lexical-theme.d.ts +15 -0
  26. package/dist/annotations/lexical-editor/lexical-theme.js +25 -0
  27. package/dist/annotations/lexical-editor/lexical-toolbar.d.ts +7 -0
  28. package/dist/annotations/lexical-editor/lexical-toolbar.js +293 -0
  29. package/dist/annotations/lexical-editor/lexical-utils.d.ts +4 -0
  30. package/dist/annotations/lexical-editor/lexical-utils.js +45 -0
  31. package/dist/annotations/lexical-editor/use-lexical-toolbar.d.ts +36 -0
  32. package/dist/annotations/lexical-editor/use-lexical-toolbar.js +253 -0
  33. package/dist/bottom-widget.d.ts +1 -1
  34. package/dist/bottom-widget.js +12 -6
  35. package/dist/common/animation-control/animation-control.d.ts +1 -0
  36. package/dist/common/animation-control/animation-control.js +3 -1
  37. package/dist/common/animation-control/animation-controller.js +8 -6
  38. package/dist/common/animation-control/export-video-control.d.ts +9 -0
  39. package/dist/common/animation-control/export-video-control.js +43 -0
  40. package/dist/common/animation-control/playback-controls.d.ts +4 -2
  41. package/dist/common/animation-control/playback-controls.js +7 -4
  42. package/dist/common/checkbox.d.ts +5 -21
  43. package/dist/common/checkbox.js +58 -70
  44. package/dist/common/color-legend.js +3 -3
  45. package/dist/common/data-table/index.d.ts +1 -1
  46. package/dist/common/data-table/index.js +3 -3
  47. package/dist/common/file-uploader/file-upload.js +4 -4
  48. package/dist/common/histogram-plot.js +102 -53
  49. package/dist/common/icons/3d-models/airplane.d.ts +14 -0
  50. package/dist/common/icons/3d-models/airplane.js +104 -0
  51. package/dist/common/icons/3d-models/bicycle.d.ts +14 -0
  52. package/dist/common/icons/3d-models/bicycle.js +426 -0
  53. package/dist/common/icons/3d-models/boeing.d.ts +14 -0
  54. package/dist/common/icons/3d-models/boeing.js +119 -0
  55. package/dist/common/icons/3d-models/car.d.ts +14 -0
  56. package/dist/common/icons/3d-models/car.js +110 -0
  57. package/dist/common/icons/3d-models/cargoship.d.ts +14 -0
  58. package/dist/common/icons/3d-models/cargoship.js +246 -0
  59. package/dist/common/icons/3d-models/evtol.d.ts +14 -0
  60. package/dist/common/icons/3d-models/evtol.js +134 -0
  61. package/dist/common/icons/3d-models/glider.d.ts +14 -0
  62. package/dist/common/icons/3d-models/glider.js +62 -0
  63. package/dist/common/icons/3d-models/helicopter.d.ts +14 -0
  64. package/dist/common/icons/3d-models/helicopter.js +110 -0
  65. package/dist/common/icons/3d-models/scooter.d.ts +14 -0
  66. package/dist/common/icons/3d-models/scooter.js +159 -0
  67. package/dist/common/icons/3d-models/semitruck.d.ts +14 -0
  68. package/dist/common/icons/3d-models/semitruck.js +177 -0
  69. package/dist/common/icons/3d-models/truck.d.ts +14 -0
  70. package/dist/common/icons/3d-models/truck.js +122 -0
  71. package/dist/common/icons/anchor_window.d.ts +1 -8
  72. package/dist/common/icons/anchor_window.js +17 -10
  73. package/dist/common/icons/annotation-text.d.ts +9 -0
  74. package/dist/common/icons/annotation-text.js +56 -0
  75. package/dist/common/icons/index.d.ts +1 -0
  76. package/dist/common/icons/index.js +8 -1
  77. package/dist/common/item-selector/chickleted-input.d.ts +1 -1
  78. package/dist/common/item-selector/chickleted-input.js +5 -5
  79. package/dist/common/line-chart.d.ts +4 -1
  80. package/dist/common/line-chart.js +59 -12
  81. package/dist/common/range-plot.js +4 -2
  82. package/dist/common/range-slider.d.ts +2 -0
  83. package/dist/common/range-slider.js +108 -43
  84. package/dist/common/slider/slider.d.ts +4 -0
  85. package/dist/common/slider/slider.js +78 -35
  86. package/dist/common/styled-components.d.ts +1 -1
  87. package/dist/common/styled-components.js +2 -2
  88. package/dist/common/time-range-slider-time-title.d.ts +1 -1
  89. package/dist/common/time-range-slider-time-title.js +5 -5
  90. package/dist/common/time-range-slider.d.ts +2 -1
  91. package/dist/common/time-range-slider.js +19 -7
  92. package/dist/common/timeline-helpers.d.ts +3 -0
  93. package/dist/common/timeline-helpers.js +57 -0
  94. package/dist/common/timeline-slider.js +21 -12
  95. package/dist/common/toolbar-item.js +5 -5
  96. package/dist/common/toolbar.d.ts +1 -1
  97. package/dist/common/toolbar.js +4 -4
  98. package/dist/common/vertical-toolbar.d.ts +1 -1
  99. package/dist/effects/effect-configurator.d.ts +3 -2
  100. package/dist/effects/effect-configurator.js +213 -52
  101. package/dist/effects/effect-manager.js +3 -3
  102. package/dist/effects/effect-panel-header.js +34 -17
  103. package/dist/effects/effect-panel.d.ts +4 -4
  104. package/dist/effects/effect-panel.js +61 -86
  105. package/dist/effects/effect-time-configurator.js +10 -10
  106. package/dist/effects/effect-type-dropdown-list.d.ts +1 -0
  107. package/dist/effects/effect-type-dropdown-list.js +1 -1
  108. package/dist/effects/effect-type-list-item.d.ts +1 -0
  109. package/dist/effects/effect-type-list-item.js +23 -7
  110. package/dist/effects/effect-type-selector.d.ts +1 -0
  111. package/dist/effects/effect-type-selector.js +2 -2
  112. package/dist/effects/surface-fog-section.d.ts +14 -0
  113. package/dist/effects/surface-fog-section.js +263 -0
  114. package/dist/filters/index.d.ts +1 -0
  115. package/dist/filters/index.js +8 -1
  116. package/dist/filters/polygon-filter.js +2 -2
  117. package/dist/filters/time-range-filter.js +3 -1
  118. package/dist/filters/time-widget-settings.d.ts +14 -0
  119. package/dist/filters/time-widget-settings.js +312 -0
  120. package/dist/filters/time-widget-top.d.ts +2 -3
  121. package/dist/filters/time-widget-top.js +32 -39
  122. package/dist/filters/time-widget.d.ts +3 -2
  123. package/dist/filters/time-widget.js +285 -9
  124. package/dist/filters/types.d.ts +3 -3
  125. package/dist/filters/types.js +1 -1
  126. package/dist/geocoder/geocoder.d.ts +4 -1
  127. package/dist/geocoder/geocoder.js +61 -14
  128. package/dist/geocoder-panel.d.ts +1 -0
  129. package/dist/geocoder-panel.js +6 -2
  130. package/dist/index.d.ts +14 -0
  131. package/dist/index.js +124 -1
  132. package/dist/kepler-gl.d.ts +17 -5
  133. package/dist/kepler-gl.js +89 -11
  134. package/dist/loading-indicator.d.ts +2 -0
  135. package/dist/loading-indicator.js +6 -3
  136. package/dist/map/annotations/annotation-control.d.ts +16 -0
  137. package/dist/map/annotations/annotation-control.js +56 -0
  138. package/dist/map/layer-hover-info.js +68 -35
  139. package/dist/map/layer-selector-panel.d.ts +1 -1
  140. package/dist/map/locale-panel.d.ts +1 -1
  141. package/dist/map/locale-panel.js +2 -2
  142. package/dist/map/map-control-toolbar.d.ts +4 -4
  143. package/dist/map/map-control.d.ts +5 -2
  144. package/dist/map/map-control.js +16 -7
  145. package/dist/map/map-draw-panel.d.ts +1 -1
  146. package/dist/map/map-draw-panel.js +7 -4
  147. package/dist/map/map-legend-panel.d.ts +1 -1
  148. package/dist/map/map-legend-panel.js +7 -7
  149. package/dist/map/map-legend.d.ts +1 -1
  150. package/dist/map/map-legend.js +6 -6
  151. package/dist/map/map-navigation-control.d.ts +13 -0
  152. package/dist/map/map-navigation-control.js +143 -0
  153. package/dist/map/map-popover.js +2 -2
  154. package/dist/map-container.d.ts +13 -3
  155. package/dist/map-container.js +250 -57
  156. package/dist/map-view-state-context.d.ts +1 -0
  157. package/dist/map-view-state-context.js +1 -1
  158. package/dist/modal-container.d.ts +3 -2
  159. package/dist/modal-container.js +28 -6
  160. package/dist/modals/add-map-style-modal.js +173 -200
  161. package/dist/modals/data-table-modal.d.ts +1 -1
  162. package/dist/modals/data-table-modal.js +146 -194
  163. package/dist/modals/export-data-modal.js +117 -139
  164. package/dist/modals/export-video-modal.d.ts +25 -0
  165. package/dist/modals/export-video-modal.js +338 -0
  166. package/dist/modals/export-video-modal.spec.d.ts +1 -0
  167. package/dist/modals/export-video-modal.spec.js +686 -0
  168. package/dist/modals/fog-height-animation.d.ts +8 -0
  169. package/dist/modals/fog-height-animation.js +97 -0
  170. package/dist/modals/hubble-utils.d.ts +25 -0
  171. package/dist/modals/hubble-utils.js +197 -0
  172. package/dist/modals/hubble-utils.spec.d.ts +1 -0
  173. package/dist/modals/hubble-utils.spec.js +397 -0
  174. package/dist/modals/tilesets-modals/load-data-footer.js +2 -2
  175. package/dist/modals/tilesets-modals/load-tileset.js +21 -10
  176. package/dist/modals/tilesets-modals/tileset-bitmap-form.d.ts +14 -0
  177. package/dist/modals/tilesets-modals/tileset-bitmap-form.js +284 -0
  178. package/dist/modals/tilesets-modals/tileset-raster-form.js +94 -11
  179. package/dist/modals/tilesets-modals/tileset-tile3d-form.js +3 -2
  180. package/dist/modals/tilesets-modals/tileset-vector-form.js +58 -4
  181. package/dist/modals/tilesets-modals/tileset-wms-form.js +4 -3
  182. package/dist/notification-panel/notification-item.d.ts +1 -53
  183. package/dist/notification-panel/notification-item.js +47 -75
  184. package/dist/notification-panel.d.ts +1 -1
  185. package/dist/notification-panel.js +20 -42
  186. package/dist/plot-container.js +7 -6
  187. package/dist/side-panel/add-by-dataset-button.js +3 -3
  188. package/dist/side-panel/common/dataset-info.js +2 -2
  189. package/dist/side-panel/interaction-panel/geocoder-config.d.ts +11 -0
  190. package/dist/side-panel/interaction-panel/geocoder-config.js +45 -0
  191. package/dist/side-panel/interaction-panel/interaction-panel.d.ts +3 -2
  192. package/dist/side-panel/interaction-panel/interaction-panel.js +10 -3
  193. package/dist/side-panel/layer-manager.js +11 -3
  194. package/dist/side-panel/layer-panel/color-scale-selector.d.ts +1 -1
  195. package/dist/side-panel/layer-panel/color-scale-selector.js +1 -1
  196. package/dist/side-panel/layer-panel/custom-palette.js +5 -5
  197. package/dist/side-panel/layer-panel/dataset-layer-section.js +19 -3
  198. package/dist/side-panel/layer-panel/layer-configurator.d.ts +4 -2
  199. package/dist/side-panel/layer-panel/layer-configurator.js +402 -76
  200. package/dist/side-panel/layer-panel/layer-panel-header.js +2 -2
  201. package/dist/side-panel/layer-panel/raster-tile-layer-configurator.d.ts +1 -1
  202. package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +127 -27
  203. package/dist/side-panel/layer-panel/scenegraph-model-selector.d.ts +24 -0
  204. package/dist/side-panel/layer-panel/scenegraph-model-selector.js +123 -0
  205. package/dist/side-panel/layer-panel/text-label-panel.d.ts +1 -1
  206. package/dist/side-panel/layer-panel/text-label-panel.js +11 -2
  207. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +1 -1
  208. package/dist/side-panel/layer-panel/vis-config-slider.d.ts +2 -0
  209. package/dist/side-panel/layer-panel/vis-config-slider.js +7 -3
  210. package/dist/side-panel/panel-header.d.ts +1 -0
  211. package/dist/side-panel/panel-header.js +9 -2
  212. package/dist/side-panel/panel-tab.d.ts +1 -1
  213. package/dist/side-panel/panel-tab.js +4 -4
  214. package/dist/side-panel.js +5 -1
  215. package/package.json +39 -28
@@ -12,7 +12,7 @@ var _d3Scale = require("d3-scale");
12
12
  var _d3Color = require("d3-color");
13
13
  var _d3Array = require("d3-array");
14
14
  var _styledComponents = _interopRequireDefault(require("styled-components"));
15
- var _templateObject, _templateObject2, _templateObject3; // SPDX-License-Identifier: MIT
15
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4; // SPDX-License-Identifier: MIT
16
16
  // Copyright contributors to the kepler.gl project
17
17
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
18
18
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
@@ -26,7 +26,7 @@ var HISTOGRAM_MASK_BGCOLOR = '#FFFFFF';
26
26
  var HISTOGRAM_MASK_FGCOLOR = '#000000';
27
27
  var histogramStyle = {
28
28
  highlightW: 0.7,
29
- unHighlightedW: 0.4
29
+ unHighlightedW: 0.7
30
30
  };
31
31
  var HistogramWrapper = _styledComponents["default"].svg(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n overflow: visible;\n"])));
32
32
  var HistogramMaskRect = _styledComponents["default"].rect(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n fill: ", ";\n"])), function (props) {
@@ -35,6 +35,9 @@ var HistogramMaskRect = _styledComponents["default"].rect(_templateObject2 || (_
35
35
  var HistogramBreakLine = _styledComponents["default"].g(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n stroke: ", ";\n stroke-width: 1px;\n transform: translate(0, 0);\n"])), function (props) {
36
36
  return props.theme.histogramBreakLineColor;
37
37
  });
38
+ var YAxisTick = _styledComponents["default"].text(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: 9px;\n fill: ", ";\n"])), function (props) {
39
+ return props.theme.textColor;
40
+ });
38
41
  var BarUnmemoized = _styledComponents["default"].rect(function (_ref) {
39
42
  var theme = _ref.theme,
40
43
  $inRange = _ref.$inRange,
@@ -44,14 +47,11 @@ var BarUnmemoized = _styledComponents["default"].rect(function (_ref) {
44
47
  });
45
48
  var Bar = /*#__PURE__*/_react["default"].memo(BarUnmemoized);
46
49
  Bar.displayName = 'Bar';
47
- var isBarInRange = function isBarInRange(bar, index, list, filterDomain, filterValue) {
48
- // first
49
- // if x0 <= domain[0] and current value[0] wasn't changed from the original domain
50
- var x0Condition = index === 0 ? bar.x0 <= filterDomain[0] && filterDomain[0] === filterValue[0] : false;
51
- // Last
52
- // if x1 >= domain[1] and current value[1] wasn't changed from the original domain
53
- var x1Condition = index === list.length - 1 ? bar.x1 >= filterDomain[1] && filterDomain[1] === filterValue[1] : false;
54
- return (x0Condition || bar.x0 >= filterValue[0]) && (x1Condition || bar.x1 <= filterValue[1]);
50
+ var isBarInRange = function isBarInRange(bar, _index, _list, _filterDomain, filterValue) {
51
+ return bar.x1 > filterValue[0] && bar.x0 < filterValue[1];
52
+ };
53
+ var undefinedToZero = function undefinedToZero(v) {
54
+ return v ? v : 0;
55
55
  };
56
56
  function HistogramPlotFactory() {
57
57
  var HistogramPlot = function HistogramPlot(_ref2) {
@@ -61,6 +61,7 @@ function HistogramPlotFactory() {
61
61
  colorsByGroup = _ref2.colorsByGroup,
62
62
  _ref2$isMasked = _ref2.isMasked,
63
63
  isMasked = _ref2$isMasked === void 0 ? HISTOGRAM_MASK_MODE.NoMask : _ref2$isMasked,
64
+ isEnlarged = _ref2.isEnlarged,
64
65
  _ref2$countProp = _ref2.countProp,
65
66
  countProp = _ref2$countProp === void 0 ? 'count' : _ref2$countProp,
66
67
  margin = _ref2.margin,
@@ -69,9 +70,6 @@ function HistogramPlotFactory() {
69
70
  value = _ref2.value,
70
71
  brushComponent = _ref2.brushComponent,
71
72
  breakLines = _ref2.breakLines;
72
- var undefinedToZero = function undefinedToZero(x) {
73
- return x ? x : 0;
74
- };
75
73
  var groupKeys = (0, _react.useMemo)(function () {
76
74
  return Object.keys(histogramsByGroup)
77
75
  // only keep non-empty groups
@@ -88,26 +86,23 @@ function HistogramPlotFactory() {
88
86
  return histogramsByGroup[key][histogramsByGroup[key].length - 1].x1;
89
87
  })) !== null && _max !== void 0 ? _max : 0];
90
88
  }, [range, histogramsByGroup, groupKeys]);
91
- var barWidth = (0, _react.useMemo)(function () {
89
+ var numBins = (0, _react.useMemo)(function () {
92
90
  if (groupKeys.length === 0) return 0;
93
- // find histogramsByGroup with max number of bins
94
91
  var maxGroup = groupKeys.reduce(function (accu, key, _idx) {
95
92
  if (histogramsByGroup[key].length > accu.length) {
96
93
  return histogramsByGroup[key];
97
94
  }
98
95
  return accu;
99
96
  }, histogramsByGroup[groupKeys[0]]);
100
-
101
- // find the bin for measuring step
102
- var stdBinIdx = maxGroup.length > 1 ? 1 : 0;
103
- var xStep = maxGroup[stdBinIdx].x1 - maxGroup[stdBinIdx].x0;
104
- var maxBins = (domain[1] - domain[0]) / xStep;
105
- if (!maxBins) return 0;
106
- return width / maxBins / (isMasked ? 1 : groupKeys.length);
107
- }, [histogramsByGroup, domain, groupKeys, width, isMasked]);
97
+ return maxGroup.length;
98
+ }, [histogramsByGroup, groupKeys]);
108
99
  var x = (0, _react.useMemo)(function () {
109
- return (0, _d3Scale.scaleLinear)().domain(domain).range([barWidth, width]);
110
- }, [domain, width, barWidth]);
100
+ return (0, _d3Scale.scaleLinear)().domain(domain).range([0, width]);
101
+ }, [domain, width]);
102
+ var fallbackBarWidth = (0, _react.useMemo)(function () {
103
+ if (numBins === 0) return 0;
104
+ return width / numBins;
105
+ }, [numBins, width]);
111
106
  var y = (0, _react.useMemo)(function () {
112
107
  return (0, _d3Scale.scaleLinear)().domain([0, Math.max(Number((0, _d3Array.max)(groupKeys, function (key) {
113
108
  return (0, _d3Array.max)(histogramsByGroup[key], function (d) {
@@ -115,6 +110,19 @@ function HistogramPlotFactory() {
115
110
  });
116
111
  })), 1)]).range([0, height]);
117
112
  }, [histogramsByGroup, groupKeys, height, countProp]);
113
+ var yAxisTicks = (0, _react.useMemo)(function () {
114
+ if (!isEnlarged) return null;
115
+ var yMax = Math.max(Number((0, _d3Array.max)(groupKeys, function (key) {
116
+ return (0, _d3Array.max)(histogramsByGroup[key], function (d) {
117
+ return d[countProp];
118
+ });
119
+ })), 1);
120
+ var tickCount = 3;
121
+ var ticks = (0, _d3Scale.scaleLinear)().domain([0, yMax]).ticks(tickCount);
122
+ return ticks;
123
+ }, [isEnlarged, groupKeys, histogramsByGroup, countProp]);
124
+ var clipIdRef = (0, _react.useRef)("histogram-clip-".concat(Math.random().toString(36).slice(2)));
125
+ var clipId = clipIdRef.current;
118
126
  if (groupKeys.length === 0) {
119
127
  return null;
120
128
  }
@@ -125,7 +133,14 @@ function HistogramPlotFactory() {
125
133
  style: {
126
134
  margin: "".concat(margin.top, "px ").concat(margin.right, "px ").concat(margin.bottom, "px ").concat(margin.left, "px")
127
135
  }
128
- }, /*#__PURE__*/_react["default"].createElement("defs", null, /*#__PURE__*/_react["default"].createElement("mask", {
136
+ }, /*#__PURE__*/_react["default"].createElement("defs", null, /*#__PURE__*/_react["default"].createElement("clipPath", {
137
+ id: "".concat(clipId, "-mask")
138
+ }, /*#__PURE__*/_react["default"].createElement("rect", {
139
+ x: "0",
140
+ y: "0",
141
+ width: width,
142
+ height: height + margin.bottom
143
+ })), /*#__PURE__*/_react["default"].createElement("mask", {
129
144
  id: "histogram-mask"
130
145
  }, /*#__PURE__*/_react["default"].createElement("rect", {
131
146
  x: "0",
@@ -139,14 +154,18 @@ function HistogramPlotFactory() {
139
154
  }, histogramsByGroup.filteredBins.map(function (bar, idx, list) {
140
155
  var inRange = isBarInRange(bar, idx, list, domain, value);
141
156
  var wRatio = inRange ? histogramStyle.highlightW : histogramStyle.unHighlightedW;
157
+ var bx0 = x(undefinedToZero(bar.x0));
158
+ var bx1 = x(undefinedToZero(bar.x1));
159
+ var binW = Math.max(bx1 - bx0, 1);
160
+ var drawnW = binW * wRatio;
142
161
  return /*#__PURE__*/_react["default"].createElement(Bar, {
143
162
  $isOverlay: false,
144
163
  $inRange: inRange,
145
164
  $color: HISTOGRAM_MASK_FGCOLOR,
146
165
  key: "mask-".concat(idx),
147
166
  height: y(bar[countProp]),
148
- width: barWidth * wRatio,
149
- x: x(bar.x0) + barWidth * (1 - wRatio) / 2,
167
+ width: drawnW,
168
+ x: bx0 + (binW - drawnW) / 2,
150
169
  y: height - y(bar[countProp])
151
170
  });
152
171
  })))), /*#__PURE__*/_react["default"].createElement("g", {
@@ -160,19 +179,24 @@ function HistogramPlotFactory() {
160
179
  })), isMasked === HISTOGRAM_MASK_MODE.MaskWithOverlay && /*#__PURE__*/_react["default"].createElement("g", {
161
180
  key: "bins",
162
181
  transform: "translate(0,0)",
163
- className: "overlay-histogram-bars"
182
+ className: "overlay-histogram-bars",
183
+ clipPath: "url(#".concat(clipId, "-mask)")
164
184
  }, histogramsByGroup.bins.map(function (bar, idx, list) {
165
185
  var filterBar = histogramsByGroup.filteredBins[idx];
166
186
  var maskHeight = filterBar ? y(bar[countProp]) - y(filterBar[countProp]) : y(bar[countProp]);
167
187
  var inRange = isBarInRange(bar, idx, list, domain, value);
168
188
  var wRatio = inRange ? histogramStyle.highlightW : histogramStyle.unHighlightedW;
189
+ var bx0 = x(undefinedToZero(bar.x0));
190
+ var bx1 = x(undefinedToZero(bar.x1));
191
+ var binW = Math.max(bx1 - bx0, 1);
192
+ var drawnW = binW * wRatio;
169
193
  return /*#__PURE__*/_react["default"].createElement(Bar, {
170
194
  $inRange: inRange,
171
195
  $isOverlay: true,
172
196
  key: "bar-".concat(idx),
173
197
  height: maskHeight,
174
- width: barWidth * wRatio,
175
- x: x(bar.x0) + barWidth * (1 - wRatio) / 2,
198
+ width: drawnW,
199
+ x: bx0 + (binW - drawnW) / 2,
176
200
  y: height - y(bar[countProp])
177
201
  });
178
202
  })), /*#__PURE__*/_react["default"].createElement(HistogramBreakLine, null, (breakLines !== null && breakLines !== void 0 ? breakLines : []).map(function (pos, idx) {
@@ -182,7 +206,7 @@ function HistogramPlotFactory() {
182
206
  d: "M".concat(pos, ", 0 l0 100")
183
207
  });
184
208
  })), /*#__PURE__*/_react["default"].createElement("g", {
185
- transform: "translate(".concat(isRanged ? 0 : barWidth / 2, ", 0)")
209
+ transform: "translate(".concat(isRanged ? 0 : fallbackBarWidth / 2, ", 0)")
186
210
  }, brushComponent));
187
211
  };
188
212
  return isMasked ? maskedHistogram() : /*#__PURE__*/_react["default"].createElement(HistogramWrapper, {
@@ -191,33 +215,58 @@ function HistogramPlotFactory() {
191
215
  style: {
192
216
  margin: "".concat(margin.top, "px ").concat(margin.right, "px ").concat(margin.bottom, "px ").concat(margin.left, "px")
193
217
  }
194
- }, /*#__PURE__*/_react["default"].createElement("g", null, groupKeys.map(function (key, i) {
218
+ }, /*#__PURE__*/_react["default"].createElement("defs", null, /*#__PURE__*/_react["default"].createElement("clipPath", {
219
+ id: clipId
220
+ }, /*#__PURE__*/_react["default"].createElement("rect", {
221
+ x: "0",
222
+ y: "0",
223
+ width: width,
224
+ height: height
225
+ }))), /*#__PURE__*/_react["default"].createElement("g", {
226
+ transform: "translate(".concat(isRanged ? 0 : fallbackBarWidth / 2, ", 0)")
227
+ }, brushComponent), /*#__PURE__*/_react["default"].createElement("g", {
228
+ clipPath: "url(#".concat(clipId, ")"),
229
+ style: {
230
+ pointerEvents: 'none'
231
+ }
232
+ }, groupKeys.map(function (key, i) {
195
233
  return /*#__PURE__*/_react["default"].createElement("g", {
196
234
  key: key,
197
235
  className: "histogram-bars"
198
236
  }, histogramsByGroup[key].map(function (bar, idx, list) {
199
237
  var inRange = isBarInRange(bar, idx, list, domain, value);
200
238
  var wRatio = inRange ? histogramStyle.highlightW : histogramStyle.unHighlightedW;
201
- var startX = x(undefinedToZero(bar.x0)) + barWidth * i + barWidth * (1 - wRatio) / 2;
202
- if (startX > 0 && startX + barWidth * histogramStyle.unHighlightedW <= width) {
203
- return /*#__PURE__*/_react["default"].createElement(Bar, {
204
- $isOverlay: false,
205
- $inRange: inRange,
206
- $color: colorsByGroup === null || colorsByGroup === void 0 ? void 0 : colorsByGroup[key],
207
- key: "bar-".concat(idx),
208
- height: y(bar[countProp]),
209
- width: barWidth * wRatio,
210
- x: startX,
211
- rx: 1,
212
- ry: 1,
213
- y: height - y(bar[countProp])
214
- });
215
- }
216
- return null;
239
+ var bx0 = x(undefinedToZero(bar.x0));
240
+ var bx1 = x(undefinedToZero(bar.x1));
241
+ var binW = Math.max(bx1 - bx0, 1);
242
+ var perGroupW = isMasked ? binW : binW / groupKeys.length;
243
+ var drawnWidth = perGroupW * wRatio;
244
+ var groupOffset = groupKeys.length > 1 ? perGroupW * i + (perGroupW - drawnWidth) / 2 : (binW - drawnWidth) / 2;
245
+ var startX = bx0 + groupOffset;
246
+ return /*#__PURE__*/_react["default"].createElement(Bar, {
247
+ $isOverlay: false,
248
+ $inRange: inRange,
249
+ $color: colorsByGroup === null || colorsByGroup === void 0 ? void 0 : colorsByGroup[key],
250
+ key: "bar-".concat(idx),
251
+ height: y(bar[countProp]),
252
+ width: drawnWidth,
253
+ x: startX,
254
+ rx: 1,
255
+ ry: 1,
256
+ y: height - y(bar[countProp])
257
+ });
217
258
  }));
218
- })), /*#__PURE__*/_react["default"].createElement("g", {
219
- transform: "translate(".concat(isRanged ? 0 : barWidth / 2, ", 0)")
220
- }, brushComponent));
259
+ })), yAxisTicks ? /*#__PURE__*/_react["default"].createElement("g", {
260
+ className: "histogram-y-axis"
261
+ }, yAxisTicks.map(function (tick) {
262
+ return /*#__PURE__*/_react["default"].createElement(YAxisTick, {
263
+ key: tick,
264
+ x: -4,
265
+ y: height - y(tick),
266
+ textAnchor: "end",
267
+ dominantBaseline: "middle"
268
+ }, tick);
269
+ })) : null);
221
270
  };
222
271
  var HistogramPlotWithGroups = function HistogramPlotWithGroups(props) {
223
272
  var groups = (0, _react.useMemo)(function () {
@@ -231,4 +280,4 @@ function HistogramPlotFactory() {
231
280
  return HistogramPlotWithGroups;
232
281
  }
233
282
  var _default = exports["default"] = HistogramPlotFactory;
234
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfZDNTY2FsZSIsIl9kM0NvbG9yIiwiX2QzQXJyYXkiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkhJU1RPR1JBTV9NQVNLX01PREUiLCJleHBvcnRzIiwiTm9NYXNrIiwiTWFzayIsIk1hc2tXaXRoT3ZlcmxheSIsIkhJU1RPR1JBTV9NQVNLX0JHQ09MT1IiLCJISVNUT0dSQU1fTUFTS19GR0NPTE9SIiwiaGlzdG9ncmFtU3R5bGUiLCJoaWdobGlnaHRXIiwidW5IaWdobGlnaHRlZFciLCJIaXN0b2dyYW1XcmFwcGVyIiwic3R5bGVkIiwic3ZnIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJIaXN0b2dyYW1NYXNrUmVjdCIsInJlY3QiLCJwcm9wcyIsInRoZW1lIiwicGFuZWxCYWNrZ3JvdW5kIiwiSGlzdG9ncmFtQnJlYWtMaW5lIiwiZyIsImhpc3RvZ3JhbUJyZWFrTGluZUNvbG9yIiwiQmFyVW5tZW1vaXplZCIsIl9yZWYiLCIkaW5SYW5nZSIsIiRpc092ZXJsYXkiLCIkY29sb3IiLCJjb25jYXQiLCJoaXN0b2dyYW1PdmVybGF5Q29sb3IiLCJoaXN0b2dyYW1GaWxsSW5SYW5nZSIsImhjbCIsImRhcmtlciIsImhpc3RvZ3JhbUZpbGxPdXRSYW5nZSIsIkJhciIsIlJlYWN0IiwibWVtbyIsImRpc3BsYXlOYW1lIiwiaXNCYXJJblJhbmdlIiwiYmFyIiwiaW5kZXgiLCJsaXN0IiwiZmlsdGVyRG9tYWluIiwiZmlsdGVyVmFsdWUiLCJ4MENvbmRpdGlvbiIsIngwIiwieDFDb25kaXRpb24iLCJsZW5ndGgiLCJ4MSIsIkhpc3RvZ3JhbVBsb3RGYWN0b3J5IiwiSGlzdG9ncmFtUGxvdCIsIl9yZWYyIiwid2lkdGgiLCJoZWlnaHQiLCJoaXN0b2dyYW1zQnlHcm91cCIsImNvbG9yc0J5R3JvdXAiLCJfcmVmMiRpc01hc2tlZCIsImlzTWFza2VkIiwiX3JlZjIkY291bnRQcm9wIiwiY291bnRQcm9wIiwibWFyZ2luIiwiaXNSYW5nZWQiLCJyYW5nZSIsInZhbHVlIiwiYnJ1c2hDb21wb25lbnQiLCJicmVha0xpbmVzIiwidW5kZWZpbmVkVG9aZXJvIiwieCIsImdyb3VwS2V5cyIsInVzZU1lbW8iLCJrZXlzIiwiZmlsdGVyIiwia2V5IiwiX2hpc3RvZ3JhbXNCeUdyb3VwJGtlIiwiZG9tYWluIiwiX21pbiIsIl9tYXgiLCJtaW4iLCJtYXgiLCJiYXJXaWR0aCIsIm1heEdyb3VwIiwicmVkdWNlIiwiYWNjdSIsIl9pZHgiLCJzdGRCaW5JZHgiLCJ4U3RlcCIsIm1heEJpbnMiLCJzY2FsZUxpbmVhciIsInkiLCJNYXRoIiwiTnVtYmVyIiwiZCIsIm1hc2tlZEhpc3RvZ3JhbSIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsInRvcCIsInJpZ2h0IiwiYm90dG9tIiwibGVmdCIsImlkIiwiZmlsbCIsImNsYXNzTmFtZSIsImZpbHRlcmVkQmlucyIsIm1hcCIsImlkeCIsImluUmFuZ2UiLCJ3UmF0aW8iLCJ0cmFuc2Zvcm0iLCJtYXNrIiwiYmlucyIsImZpbHRlckJhciIsIm1hc2tIZWlnaHQiLCJwb3MiLCJzdHJva2VEYXNoYXJyYXkiLCJzdGFydFgiLCJyeCIsInJ5IiwiSGlzdG9ncmFtUGxvdFdpdGhHcm91cHMiLCJncm91cHMiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vaGlzdG9ncmFtLXBsb3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge1JlYWN0RWxlbWVudCwgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtzY2FsZUxpbmVhcn0gZnJvbSAnZDMtc2NhbGUnO1xuaW1wb3J0IHtoY2x9IGZyb20gJ2QzLWNvbG9yJztcbmltcG9ydCB7bWluLCBtYXh9IGZyb20gJ2QzLWFycmF5JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQge0JpbnN9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG4vLyBjbGlwcGluZyBtYXNrIGNvbnN0YW50c1xuZXhwb3J0IGNvbnN0IEhJU1RPR1JBTV9NQVNLX01PREUgPSB7XG4gIE5vTWFzazogMCxcbiAgTWFzazogMSxcbiAgTWFza1dpdGhPdmVybGF5OiAyXG59O1xuY29uc3QgSElTVE9HUkFNX01BU0tfQkdDT0xPUiA9ICcjRkZGRkZGJztcbmNvbnN0IEhJU1RPR1JBTV9NQVNLX0ZHQ09MT1IgPSAnIzAwMDAwMCc7XG5cbmNvbnN0IGhpc3RvZ3JhbVN0eWxlID0ge1xuICBoaWdobGlnaHRXOiAwLjcsXG4gIHVuSGlnaGxpZ2h0ZWRXOiAwLjRcbn07XG5cbmNvbnN0IEhpc3RvZ3JhbVdyYXBwZXIgPSBzdHlsZWQuc3ZnYFxuICBvdmVyZmxvdzogdmlzaWJsZTtcbmA7XG5cbmNvbnN0IEhpc3RvZ3JhbU1hc2tSZWN0ID0gc3R5bGVkLnJlY3RgXG4gIGZpbGw6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kfTtcbmA7XG5cbmNvbnN0IEhpc3RvZ3JhbUJyZWFrTGluZSA9IHN0eWxlZC5nYFxuICBzdHJva2U6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaGlzdG9ncmFtQnJlYWtMaW5lQ29sb3J9O1xuICBzdHJva2Utd2lkdGg6IDFweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG5gO1xuXG50eXBlIEJhclR5cGUgPSB7XG4gICRpblJhbmdlOiBib29sZWFuO1xuICAkaXNPdmVybGF5OiBib29sZWFuO1xuICAkY29sb3I/OiBzdHJpbmc7XG59O1xuY29uc3QgQmFyVW5tZW1vaXplZCA9IHN0eWxlZC5yZWN0PEJhclR5cGU+KFxuICAoe3RoZW1lLCAkaW5SYW5nZSwgJGlzT3ZlcmxheSwgJGNvbG9yfSkgPT4gYFxuICAke1xuICAgICRpc092ZXJsYXlcbiAgICAgID8gYGZpbGw6ICR7JGNvbG9yID8/IHRoZW1lLmhpc3RvZ3JhbU92ZXJsYXlDb2xvcn07YFxuICAgICAgOiAkaW5SYW5nZVxuICAgICAgPyBgZmlsbDogJHskY29sb3IgPz8gdGhlbWUuaGlzdG9ncmFtRmlsbEluUmFuZ2V9O2BcbiAgICAgIDogYGZpbGw6ICR7JGNvbG9yID8gaGNsKCRjb2xvcikuZGFya2VyKCkgOiB0aGVtZS5oaXN0b2dyYW1GaWxsT3V0UmFuZ2V9O2BcbiAgfVxuYFxuKTtcbmNvbnN0IEJhciA9IFJlYWN0Lm1lbW8oQmFyVW5tZW1vaXplZCk7XG5CYXIuZGlzcGxheU5hbWUgPSAnQmFyJztcblxuY29uc3QgaXNCYXJJblJhbmdlID0gKFxuICBiYXI6IHt4MDogbnVtYmVyOyB4MTogbnVtYmVyfSxcbiAgaW5kZXg6IG51bWJlcixcbiAgbGlzdDogYW55W10sXG4gIGZpbHRlckRvbWFpbjogYW55W10sXG4gIGZpbHRlclZhbHVlOiBhbnlbXVxuKSA9PiB7XG4gIC8vIGZpcnN0XG4gIC8vIGlmIHgwIDw9IGRvbWFpblswXSBhbmQgY3VycmVudCB2YWx1ZVswXSB3YXNuJ3QgY2hhbmdlZCBmcm9tIHRoZSBvcmlnaW5hbCBkb21haW5cbiAgY29uc3QgeDBDb25kaXRpb24gPVxuICAgIGluZGV4ID09PSAwID8gYmFyLngwIDw9IGZpbHRlckRvbWFpblswXSAmJiBmaWx0ZXJEb21haW5bMF0gPT09IGZpbHRlclZhbHVlWzBdIDogZmFsc2U7XG4gIC8vIExhc3RcbiAgLy8gaWYgeDEgPj0gZG9tYWluWzFdIGFuZCBjdXJyZW50IHZhbHVlWzFdIHdhc24ndCBjaGFuZ2VkIGZyb20gdGhlIG9yaWdpbmFsIGRvbWFpblxuICBjb25zdCB4MUNvbmRpdGlvbiA9XG4gICAgaW5kZXggPT09IGxpc3QubGVuZ3RoIC0gMVxuICAgICAgPyBiYXIueDEgPj0gZmlsdGVyRG9tYWluWzFdICYmIGZpbHRlckRvbWFpblsxXSA9PT0gZmlsdGVyVmFsdWVbMV1cbiAgICAgIDogZmFsc2U7XG4gIHJldHVybiAoeDBDb25kaXRpb24gfHwgYmFyLngwID49IGZpbHRlclZhbHVlWzBdKSAmJiAoeDFDb25kaXRpb24gfHwgYmFyLngxIDw9IGZpbHRlclZhbHVlWzFdKTtcbn07XG5cbmV4cG9ydCB0eXBlIEhpc3RvZ3JhbU1hc2tNb2RlVHlwZSA9IHtcbiAgTm9NYXNrOiBudW1iZXI7XG4gIE1hc2s6IG51bWJlcjtcbiAgTWFza1dpdGhPdmVybGF5OiBudW1iZXI7XG59O1xuXG5pbnRlcmZhY2UgSGlzdG9ncmFtUGxvdFByb3BzIHtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIG1hcmdpbjoge3RvcDogbnVtYmVyOyBib3R0b206IG51bWJlcjsgbGVmdDogbnVtYmVyOyByaWdodDogbnVtYmVyfTtcbiAgaXNSYW5nZWQ/OiBib29sZWFuO1xuICB2YWx1ZTogbnVtYmVyW107XG4gIGlzTWFza2VkPzogbnVtYmVyO1xuICBicnVzaENvbXBvbmVudD86IFJlYWN0RWxlbWVudDtcbiAgaGlzdG9ncmFtc0J5R3JvdXA6IEJpbnM7XG4gIGNvbG9yc0J5R3JvdXA/OiBudWxsIHwge1tkYXRhSWQ6IHN0cmluZ106IHN0cmluZ307XG4gIGNvdW50UHJvcD86IHN0cmluZztcbiAgcmFuZ2U/OiBudW1iZXJbXTtcbiAgYnJlYWtMaW5lcz86IG51bWJlcltdO1xufVxuXG5mdW5jdGlvbiBIaXN0b2dyYW1QbG90RmFjdG9yeSgpIHtcbiAgY29uc3QgSGlzdG9ncmFtUGxvdCA9ICh7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgIGhpc3RvZ3JhbXNCeUdyb3VwLFxuICAgIGNvbG9yc0J5R3JvdXAsXG4gICAgaXNNYXNrZWQgPSBISVNUT0dSQU1fTUFTS19NT0RFLk5vTWFzayxcbiAgICBjb3VudFByb3AgPSAnY291bnQnLFxuICAgIG1hcmdpbixcbiAgICBpc1JhbmdlZCxcbiAgICByYW5nZSxcbiAgICB2YWx1ZSxcbiAgICBicnVzaENvbXBvbmVudCxcbiAgICBicmVha0xpbmVzXG4gIH06IEhpc3RvZ3JhbVBsb3RQcm9wcykgPT4ge1xuICAgIGNvbnN0IHVuZGVmaW5lZFRvWmVybyA9ICh4OiBudW1iZXIgfCB1bmRlZmluZWQpID0+ICh4ID8geCA6IDApO1xuICAgIGNvbnN0IGdyb3VwS2V5cyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhoaXN0b2dyYW1zQnlHcm91cClcbiAgICAgICAgICAvLyBvbmx5IGtlZXAgbm9uLWVtcHR5IGdyb3Vwc1xuICAgICAgICAgIC5maWx0ZXIoa2V5ID0+IGhpc3RvZ3JhbXNCeUdyb3VwW2tleV0/Lmxlbmd0aCA+IDApLFxuICAgICAgW2hpc3RvZ3JhbXNCeUdyb3VwXVxuICAgICk7XG5cbiAgICBjb25zdCBkb21haW4gPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAgcmFuZ2UgPz8gW1xuICAgICAgICAgIG1pbihncm91cEtleXMsIGtleSA9PiBoaXN0b2dyYW1zQnlHcm91cFtrZXldWzBdLngwKSA/PyAwLFxuICAgICAgICAgIG1heChncm91cEtleXMsIGtleSA9PiBoaXN0b2dyYW1zQnlHcm91cFtrZXldW2hpc3RvZ3JhbXNCeUdyb3VwW2tleV0ubGVuZ3RoIC0gMV0ueDEpID8/IDBcbiAgICAgICAgXSxcbiAgICAgIFtyYW5nZSwgaGlzdG9ncmFtc0J5R3JvdXAsIGdyb3VwS2V5c11cbiAgICApO1xuXG4gICAgY29uc3QgYmFyV2lkdGggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChncm91cEtleXMubGVuZ3RoID09PSAwKSByZXR1cm4gMDtcbiAgICAgIC8vIGZpbmQgaGlzdG9ncmFtc0J5R3JvdXAgd2l0aCBtYXggbnVtYmVyIG9mIGJpbnNcbiAgICAgIGNvbnN0IG1heEdyb3VwID0gZ3JvdXBLZXlzLnJlZHVjZSgoYWNjdSwga2V5LCBfaWR4KSA9PiB7XG4gICAgICAgIGlmIChoaXN0b2dyYW1zQnlHcm91cFtrZXldLmxlbmd0aCA+IGFjY3UubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIGhpc3RvZ3JhbXNCeUdyb3VwW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjY3U7XG4gICAgICB9LCBoaXN0b2dyYW1zQnlHcm91cFtncm91cEtleXNbMF1dKTtcblxuICAgICAgLy8gZmluZCB0aGUgYmluIGZvciBtZWFzdXJpbmcgc3RlcFxuICAgICAgY29uc3Qgc3RkQmluSWR4ID0gbWF4R3JvdXAubGVuZ3RoID4gMSA/IDEgOiAwO1xuICAgICAgY29uc3QgeFN0ZXAgPSBtYXhHcm91cFtzdGRCaW5JZHhdLngxIC0gbWF4R3JvdXBbc3RkQmluSWR4XS54MDtcbiAgICAgIGNvbnN0IG1heEJpbnMgPSAoZG9tYWluWzFdIC0gZG9tYWluWzBdKSAvIHhTdGVwO1xuICAgICAgaWYgKCFtYXhCaW5zKSByZXR1cm4gMDtcbiAgICAgIHJldHVybiB3aWR0aCAvIG1heEJpbnMgLyAoaXNNYXNrZWQgPyAxIDogZ3JvdXBLZXlzLmxlbmd0aCk7XG4gICAgfSwgW2hpc3RvZ3JhbXNCeUdyb3VwLCBkb21haW4sIGdyb3VwS2V5cywgd2lkdGgsIGlzTWFza2VkXSk7XG5cbiAgICBjb25zdCB4ID0gdXNlTWVtbyhcbiAgICAgICgpID0+IHNjYWxlTGluZWFyKCkuZG9tYWluKGRvbWFpbikucmFuZ2UoW2JhcldpZHRoLCB3aWR0aF0pLFxuICAgICAgW2RvbWFpbiwgd2lkdGgsIGJhcldpZHRoXVxuICAgICk7XG5cbiAgICBjb25zdCB5ID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIHNjYWxlTGluZWFyKClcbiAgICAgICAgICAuZG9tYWluKFtcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICBNYXRoLm1heChcbiAgICAgICAgICAgICAgTnVtYmVyKG1heChncm91cEtleXMsIGtleSA9PiBtYXgoaGlzdG9ncmFtc0J5R3JvdXBba2V5XSwgZCA9PiBkW2NvdW50UHJvcF0pKSksXG4gICAgICAgICAgICAgIDFcbiAgICAgICAgICAgIClcbiAgICAgICAgICBdKVxuICAgICAgICAgIC5yYW5nZShbMCwgaGVpZ2h0XSksXG4gICAgICBbaGlzdG9ncmFtc0J5R3JvdXAsIGdyb3VwS2V5cywgaGVpZ2h0LCBjb3VudFByb3BdXG4gICAgKTtcblxuICAgIGlmIChncm91cEtleXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBtYXNrZWRIaXN0b2dyYW0gPSAoKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8SGlzdG9ncmFtV3JhcHBlclxuICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgICBzdHlsZT17e21hcmdpbjogYCR7bWFyZ2luLnRvcH1weCAke21hcmdpbi5yaWdodH1weCAke21hcmdpbi5ib3R0b219cHggJHttYXJnaW4ubGVmdH1weGB9fVxuICAgICAgICA+XG4gICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICA8bWFzayBpZD1cImhpc3RvZ3JhbS1tYXNrXCI+XG4gICAgICAgICAgICAgIDxyZWN0XG4gICAgICAgICAgICAgICAgeD1cIjBcIlxuICAgICAgICAgICAgICAgIHk9XCIwXCJcbiAgICAgICAgICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXtoZWlnaHQgKyBtYXJnaW4uYm90dG9tfVxuICAgICAgICAgICAgICAgIGZpbGw9e0hJU1RPR1JBTV9NQVNLX0JHQ09MT1J9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxnIGtleT1cImZpbHRlcmVkLWJpbnNcIiBjbGFzc05hbWU9XCJoaXN0b2dyYW0tYmFyc1wiPlxuICAgICAgICAgICAgICAgIHtoaXN0b2dyYW1zQnlHcm91cC5maWx0ZXJlZEJpbnMubWFwKChiYXIsIGlkeCwgbGlzdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgaW5SYW5nZSA9IGlzQmFySW5SYW5nZShiYXIsIGlkeCwgbGlzdCwgZG9tYWluLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICBjb25zdCB3UmF0aW8gPSBpblJhbmdlXG4gICAgICAgICAgICAgICAgICAgID8gaGlzdG9ncmFtU3R5bGUuaGlnaGxpZ2h0V1xuICAgICAgICAgICAgICAgICAgICA6IGhpc3RvZ3JhbVN0eWxlLnVuSGlnaGxpZ2h0ZWRXO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPEJhclxuICAgICAgICAgICAgICAgICAgICAgICRpc092ZXJsYXk9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICRpblJhbmdlPXtpblJhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICRjb2xvcj17SElTVE9HUkFNX01BU0tfRkdDT0xPUn1cbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e2BtYXNrLSR7aWR4fWB9XG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXt5KGJhcltjb3VudFByb3BdKX1cbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17YmFyV2lkdGggKiB3UmF0aW99XG4gICAgICAgICAgICAgICAgICAgICAgeD17eChiYXIueDApICsgKGJhcldpZHRoICogKDEgLSB3UmF0aW8pKSAvIDJ9XG4gICAgICAgICAgICAgICAgICAgICAgeT17aGVpZ2h0IC0geShiYXJbY291bnRQcm9wXSl9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICA8L21hc2s+XG4gICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgIDxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLDApXCI+XG4gICAgICAgICAgICA8SGlzdG9ncmFtTWFza1JlY3RcbiAgICAgICAgICAgICAgeD1cIjBcIlxuICAgICAgICAgICAgICB5PVwiMFwiXG4gICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgIGhlaWdodD17aGVpZ2h0ICsgbWFyZ2luLmJvdHRvbX1cbiAgICAgICAgICAgICAgbWFzaz1cInVybCgjaGlzdG9ncmFtLW1hc2spXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9nPlxuICAgICAgICAgIHtpc01hc2tlZCA9PT0gSElTVE9HUkFNX01BU0tfTU9ERS5NYXNrV2l0aE92ZXJsYXkgJiYgKFxuICAgICAgICAgICAgPGcga2V5PVwiYmluc1wiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLDApXCIgY2xhc3NOYW1lPVwib3ZlcmxheS1oaXN0b2dyYW0tYmFyc1wiPlxuICAgICAgICAgICAgICB7aGlzdG9ncmFtc0J5R3JvdXAuYmlucy5tYXAoKGJhciwgaWR4LCBsaXN0KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyQmFyID0gaGlzdG9ncmFtc0J5R3JvdXAuZmlsdGVyZWRCaW5zW2lkeF07XG4gICAgICAgICAgICAgICAgY29uc3QgbWFza0hlaWdodCA9IGZpbHRlckJhclxuICAgICAgICAgICAgICAgICAgPyB5KGJhcltjb3VudFByb3BdKSAtIHkoZmlsdGVyQmFyW2NvdW50UHJvcF0pXG4gICAgICAgICAgICAgICAgICA6IHkoYmFyW2NvdW50UHJvcF0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluUmFuZ2UgPSBpc0JhckluUmFuZ2UoYmFyLCBpZHgsIGxpc3QsIGRvbWFpbiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHdSYXRpbyA9IGluUmFuZ2UgPyBoaXN0b2dyYW1TdHlsZS5oaWdobGlnaHRXIDogaGlzdG9ncmFtU3R5bGUudW5IaWdobGlnaHRlZFc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxCYXJcbiAgICAgICAgICAgICAgICAgICAgJGluUmFuZ2U9e2luUmFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICRpc092ZXJsYXk9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGtleT17YGJhci0ke2lkeH1gfVxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9e21hc2tIZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPXtiYXJXaWR0aCAqIHdSYXRpb31cbiAgICAgICAgICAgICAgICAgICAgeD17eChiYXIueDApICsgKGJhcldpZHRoICogKDEgLSB3UmF0aW8pKSAvIDJ9XG4gICAgICAgICAgICAgICAgICAgIHk9e2hlaWdodCAtIHkoYmFyW2NvdW50UHJvcF0pfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxIaXN0b2dyYW1CcmVha0xpbmU+XG4gICAgICAgICAgICB7KGJyZWFrTGluZXMgPz8gW10pLm1hcCgocG9zLCBpZHgpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8cGF0aCBrZXk9e2BtYXNrLWxpbmUtJHtpZHh9YH0gc3Ryb2tlRGFzaGFycmF5PVwiNCw0XCIgZD17YE0ke3Bvc30sIDAgbDAgMTAwYH0gLz5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvSGlzdG9ncmFtQnJlYWtMaW5lPlxuICAgICAgICAgIDxnIHRyYW5zZm9ybT17YHRyYW5zbGF0ZSgke2lzUmFuZ2VkID8gMCA6IGJhcldpZHRoIC8gMn0sIDApYH0+e2JydXNoQ29tcG9uZW50fTwvZz5cbiAgICAgICAgPC9IaXN0b2dyYW1XcmFwcGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGlzTWFza2VkID8gKFxuICAgICAgbWFza2VkSGlzdG9ncmFtKClcbiAgICApIDogKFxuICAgICAgPEhpc3RvZ3JhbVdyYXBwZXJcbiAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgc3R5bGU9e3ttYXJnaW46IGAke21hcmdpbi50b3B9cHggJHttYXJnaW4ucmlnaHR9cHggJHttYXJnaW4uYm90dG9tfXB4ICR7bWFyZ2luLmxlZnR9cHhgfX1cbiAgICAgID5cbiAgICAgICAgPGc+XG4gICAgICAgICAge2dyb3VwS2V5cy5tYXAoKGtleSwgaSkgPT4gKFxuICAgICAgICAgICAgPGcga2V5PXtrZXl9IGNsYXNzTmFtZT1cImhpc3RvZ3JhbS1iYXJzXCI+XG4gICAgICAgICAgICAgIHtoaXN0b2dyYW1zQnlHcm91cFtrZXldLm1hcCgoYmFyLCBpZHgsIGxpc3QpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpblJhbmdlID0gaXNCYXJJblJhbmdlKGJhciwgaWR4LCBsaXN0LCBkb21haW4sIHZhbHVlKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHdSYXRpbyA9IGluUmFuZ2UgPyBoaXN0b2dyYW1TdHlsZS5oaWdobGlnaHRXIDogaGlzdG9ncmFtU3R5bGUudW5IaWdobGlnaHRlZFc7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRYID1cbiAgICAgICAgICAgICAgICAgIHgodW5kZWZpbmVkVG9aZXJvKGJhci54MCkpICsgYmFyV2lkdGggKiBpICsgKGJhcldpZHRoICogKDEgLSB3UmF0aW8pKSAvIDI7XG4gICAgICAgICAgICAgICAgaWYgKHN0YXJ0WCA+IDAgJiYgc3RhcnRYICsgYmFyV2lkdGggKiBoaXN0b2dyYW1TdHlsZS51bkhpZ2hsaWdodGVkVyA8PSB3aWR0aCkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPEJhclxuICAgICAgICAgICAgICAgICAgICAgICRpc092ZXJsYXk9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICRpblJhbmdlPXtpblJhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICRjb2xvcj17Y29sb3JzQnlHcm91cD8uW2tleV19XG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtgYmFyLSR7aWR4fWB9XG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXt5KGJhcltjb3VudFByb3BdKX1cbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17YmFyV2lkdGggKiB3UmF0aW99XG4gICAgICAgICAgICAgICAgICAgICAgeD17c3RhcnRYfVxuICAgICAgICAgICAgICAgICAgICAgIHJ4PXsxfVxuICAgICAgICAgICAgICAgICAgICAgIHJ5PXsxfVxuICAgICAgICAgICAgICAgICAgICAgIHk9e2hlaWdodCAtIHkoYmFyW2NvdW50UHJvcF0pfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2c+XG4gICAgICAgIDxnIHRyYW5zZm9ybT17YHRyYW5zbGF0ZSgke2lzUmFuZ2VkID8gMCA6IGJhcldpZHRoIC8gMn0sIDApYH0+e2JydXNoQ29tcG9uZW50fTwvZz5cbiAgICAgIDwvSGlzdG9ncmFtV3JhcHBlcj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IEhpc3RvZ3JhbVBsb3RXaXRoR3JvdXBzID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IGdyb3VwcyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAocHJvcHMuaGlzdG9ncmFtc0J5R3JvdXAgPyBPYmplY3Qua2V5cyhwcm9wcy5oaXN0b2dyYW1zQnlHcm91cCkgOiBudWxsKSxcbiAgICAgIFtwcm9wcy5oaXN0b2dyYW1zQnlHcm91cF1cbiAgICApO1xuXG4gICAgaWYgKCFncm91cHM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIDxIaXN0b2dyYW1QbG90IHsuLi5wcm9wc30gLz47XG4gIH07XG5cbiAgcmV0dXJuIEhpc3RvZ3JhbVBsb3RXaXRoR3JvdXBzO1xufVxuZXhwb3J0IGRlZmF1bHQgSGlzdG9ncmFtUGxvdEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFMLE9BQUE7QUFBdUMsSUFBQU0sZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQVB2QztBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFYLHdCQUFBVyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxD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
283
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfZDNTY2FsZSIsIl9kM0NvbG9yIiwiX2QzQXJyYXkiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl90ZW1wbGF0ZU9iamVjdDQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJISVNUT0dSQU1fTUFTS19NT0RFIiwiZXhwb3J0cyIsIk5vTWFzayIsIk1hc2siLCJNYXNrV2l0aE92ZXJsYXkiLCJISVNUT0dSQU1fTUFTS19CR0NPTE9SIiwiSElTVE9HUkFNX01BU0tfRkdDT0xPUiIsImhpc3RvZ3JhbVN0eWxlIiwiaGlnaGxpZ2h0VyIsInVuSGlnaGxpZ2h0ZWRXIiwiSGlzdG9ncmFtV3JhcHBlciIsInN0eWxlZCIsInN2ZyIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiSGlzdG9ncmFtTWFza1JlY3QiLCJyZWN0IiwicHJvcHMiLCJ0aGVtZSIsInBhbmVsQmFja2dyb3VuZCIsIkhpc3RvZ3JhbUJyZWFrTGluZSIsImciLCJoaXN0b2dyYW1CcmVha0xpbmVDb2xvciIsIllBeGlzVGljayIsInRleHQiLCJ0ZXh0Q29sb3IiLCJCYXJVbm1lbW9pemVkIiwiX3JlZiIsIiRpblJhbmdlIiwiJGlzT3ZlcmxheSIsIiRjb2xvciIsImNvbmNhdCIsImhpc3RvZ3JhbU92ZXJsYXlDb2xvciIsImhpc3RvZ3JhbUZpbGxJblJhbmdlIiwiaGNsIiwiZGFya2VyIiwiaGlzdG9ncmFtRmlsbE91dFJhbmdlIiwiQmFyIiwiUmVhY3QiLCJtZW1vIiwiZGlzcGxheU5hbWUiLCJpc0JhckluUmFuZ2UiLCJiYXIiLCJfaW5kZXgiLCJfbGlzdCIsIl9maWx0ZXJEb21haW4iLCJmaWx0ZXJWYWx1ZSIsIngxIiwieDAiLCJ1bmRlZmluZWRUb1plcm8iLCJ2IiwiSGlzdG9ncmFtUGxvdEZhY3RvcnkiLCJIaXN0b2dyYW1QbG90IiwiX3JlZjIiLCJ3aWR0aCIsImhlaWdodCIsImhpc3RvZ3JhbXNCeUdyb3VwIiwiY29sb3JzQnlHcm91cCIsIl9yZWYyJGlzTWFza2VkIiwiaXNNYXNrZWQiLCJpc0VubGFyZ2VkIiwiX3JlZjIkY291bnRQcm9wIiwiY291bnRQcm9wIiwibWFyZ2luIiwiaXNSYW5nZWQiLCJyYW5nZSIsInZhbHVlIiwiYnJ1c2hDb21wb25lbnQiLCJicmVha0xpbmVzIiwiZ3JvdXBLZXlzIiwidXNlTWVtbyIsImtleXMiLCJmaWx0ZXIiLCJrZXkiLCJfaGlzdG9ncmFtc0J5R3JvdXAka2UiLCJsZW5ndGgiLCJkb21haW4iLCJfbWluIiwiX21heCIsIm1pbiIsIm1heCIsIm51bUJpbnMiLCJtYXhHcm91cCIsInJlZHVjZSIsImFjY3UiLCJfaWR4IiwieCIsInNjYWxlTGluZWFyIiwiZmFsbGJhY2tCYXJXaWR0aCIsInkiLCJNYXRoIiwiTnVtYmVyIiwiZCIsInlBeGlzVGlja3MiLCJ5TWF4IiwidGlja0NvdW50IiwidGlja3MiLCJjbGlwSWRSZWYiLCJ1c2VSZWYiLCJyYW5kb20iLCJ0b1N0cmluZyIsInNsaWNlIiwiY2xpcElkIiwiY3VycmVudCIsIm1hc2tlZEhpc3RvZ3JhbSIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsInRvcCIsInJpZ2h0IiwiYm90dG9tIiwibGVmdCIsImlkIiwiZmlsbCIsImNsYXNzTmFtZSIsImZpbHRlcmVkQmlucyIsIm1hcCIsImlkeCIsImxpc3QiLCJpblJhbmdlIiwid1JhdGlvIiwiYngwIiwiYngxIiwiYmluVyIsImRyYXduVyIsInRyYW5zZm9ybSIsIm1hc2siLCJjbGlwUGF0aCIsImJpbnMiLCJmaWx0ZXJCYXIiLCJtYXNrSGVpZ2h0IiwicG9zIiwic3Ryb2tlRGFzaGFycmF5IiwicG9pbnRlckV2ZW50cyIsInBlckdyb3VwVyIsImRyYXduV2lkdGgiLCJncm91cE9mZnNldCIsInN0YXJ0WCIsInJ4IiwicnkiLCJ0aWNrIiwidGV4dEFuY2hvciIsImRvbWluYW50QmFzZWxpbmUiLCJIaXN0b2dyYW1QbG90V2l0aEdyb3VwcyIsImdyb3VwcyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi9oaXN0b2dyYW0tcGxvdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7UmVhY3RFbGVtZW50LCB1c2VNZW1vLCB1c2VSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7c2NhbGVMaW5lYXJ9IGZyb20gJ2QzLXNjYWxlJztcbmltcG9ydCB7aGNsfSBmcm9tICdkMy1jb2xvcic7XG5pbXBvcnQge21pbiwgbWF4fSBmcm9tICdkMy1hcnJheSc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IHtCaW5zfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuLy8gY2xpcHBpbmcgbWFzayBjb25zdGFudHNcbmV4cG9ydCBjb25zdCBISVNUT0dSQU1fTUFTS19NT0RFID0ge1xuICBOb01hc2s6IDAsXG4gIE1hc2s6IDEsXG4gIE1hc2tXaXRoT3ZlcmxheTogMlxufTtcbmNvbnN0IEhJU1RPR1JBTV9NQVNLX0JHQ09MT1IgPSAnI0ZGRkZGRic7XG5jb25zdCBISVNUT0dSQU1fTUFTS19GR0NPTE9SID0gJyMwMDAwMDAnO1xuXG5jb25zdCBoaXN0b2dyYW1TdHlsZSA9IHtcbiAgaGlnaGxpZ2h0VzogMC43LFxuICB1bkhpZ2hsaWdodGVkVzogMC43XG59O1xuXG5jb25zdCBIaXN0b2dyYW1XcmFwcGVyID0gc3R5bGVkLnN2Z2BcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG5gO1xuXG5jb25zdCBIaXN0b2dyYW1NYXNrUmVjdCA9IHN0eWxlZC5yZWN0YFxuICBmaWxsOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZH07XG5gO1xuXG5jb25zdCBIaXN0b2dyYW1CcmVha0xpbmUgPSBzdHlsZWQuZ2BcbiAgc3Ryb2tlOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmhpc3RvZ3JhbUJyZWFrTGluZUNvbG9yfTtcbiAgc3Ryb2tlLXdpZHRoOiAxcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuYDtcblxuY29uc3QgWUF4aXNUaWNrID0gc3R5bGVkLnRleHRgXG4gIGZvbnQtc2l6ZTogOXB4O1xuICBmaWxsOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG5gO1xuXG50eXBlIEJhclR5cGUgPSB7XG4gICRpblJhbmdlOiBib29sZWFuO1xuICAkaXNPdmVybGF5OiBib29sZWFuO1xuICAkY29sb3I/OiBzdHJpbmc7XG59O1xuY29uc3QgQmFyVW5tZW1vaXplZCA9IHN0eWxlZC5yZWN0PEJhclR5cGU+KFxuICAoe3RoZW1lLCAkaW5SYW5nZSwgJGlzT3ZlcmxheSwgJGNvbG9yfSkgPT4gYFxuICAke1xuICAgICRpc092ZXJsYXlcbiAgICAgID8gYGZpbGw6ICR7JGNvbG9yID8/IHRoZW1lLmhpc3RvZ3JhbU92ZXJsYXlDb2xvcn07YFxuICAgICAgOiAkaW5SYW5nZVxuICAgICAgPyBgZmlsbDogJHskY29sb3IgPz8gdGhlbWUuaGlzdG9ncmFtRmlsbEluUmFuZ2V9O2BcbiAgICAgIDogYGZpbGw6ICR7JGNvbG9yID8gaGNsKCRjb2xvcikuZGFya2VyKCkgOiB0aGVtZS5oaXN0b2dyYW1GaWxsT3V0UmFuZ2V9O2BcbiAgfVxuYFxuKTtcbmNvbnN0IEJhciA9IFJlYWN0Lm1lbW8oQmFyVW5tZW1vaXplZCk7XG5CYXIuZGlzcGxheU5hbWUgPSAnQmFyJztcblxuY29uc3QgaXNCYXJJblJhbmdlID0gKFxuICBiYXI6IHt4MDogbnVtYmVyOyB4MTogbnVtYmVyfSxcbiAgX2luZGV4OiBudW1iZXIsXG4gIF9saXN0OiBhbnlbXSxcbiAgX2ZpbHRlckRvbWFpbjogYW55W10sXG4gIGZpbHRlclZhbHVlOiBhbnlbXVxuKSA9PiBiYXIueDEgPiBmaWx0ZXJWYWx1ZVswXSAmJiBiYXIueDAgPCBmaWx0ZXJWYWx1ZVsxXTtcblxuZXhwb3J0IHR5cGUgSGlzdG9ncmFtTWFza01vZGVUeXBlID0ge1xuICBOb01hc2s6IG51bWJlcjtcbiAgTWFzazogbnVtYmVyO1xuICBNYXNrV2l0aE92ZXJsYXk6IG51bWJlcjtcbn07XG5cbmNvbnN0IHVuZGVmaW5lZFRvWmVybyA9ICh2OiBudW1iZXIgfCB1bmRlZmluZWQpID0+ICh2ID8gdiA6IDApO1xuXG5pbnRlcmZhY2UgSGlzdG9ncmFtUGxvdFByb3BzIHtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIG1hcmdpbjoge3RvcDogbnVtYmVyOyBib3R0b206IG51bWJlcjsgbGVmdDogbnVtYmVyOyByaWdodDogbnVtYmVyfTtcbiAgaXNSYW5nZWQ/OiBib29sZWFuO1xuICBpc0VubGFyZ2VkPzogYm9vbGVhbjtcbiAgdmFsdWU6IG51bWJlcltdO1xuICBpc01hc2tlZD86IG51bWJlcjtcbiAgYnJ1c2hDb21wb25lbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIGhpc3RvZ3JhbXNCeUdyb3VwOiBCaW5zO1xuICBjb2xvcnNCeUdyb3VwPzogbnVsbCB8IHtbZGF0YUlkOiBzdHJpbmddOiBzdHJpbmd9O1xuICBjb3VudFByb3A/OiBzdHJpbmc7XG4gIHJhbmdlPzogbnVtYmVyW107XG4gIGJyZWFrTGluZXM/OiBudW1iZXJbXTtcbn1cblxuZnVuY3Rpb24gSGlzdG9ncmFtUGxvdEZhY3RvcnkoKSB7XG4gIGNvbnN0IEhpc3RvZ3JhbVBsb3QgPSAoe1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICBoaXN0b2dyYW1zQnlHcm91cCxcbiAgICBjb2xvcnNCeUdyb3VwLFxuICAgIGlzTWFza2VkID0gSElTVE9HUkFNX01BU0tfTU9ERS5Ob01hc2ssXG4gICAgaXNFbmxhcmdlZCxcbiAgICBjb3VudFByb3AgPSAnY291bnQnLFxuICAgIG1hcmdpbixcbiAgICBpc1JhbmdlZCxcbiAgICByYW5nZSxcbiAgICB2YWx1ZSxcbiAgICBicnVzaENvbXBvbmVudCxcbiAgICBicmVha0xpbmVzXG4gIH06IEhpc3RvZ3JhbVBsb3RQcm9wcykgPT4ge1xuICAgIGNvbnN0IGdyb3VwS2V5cyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhoaXN0b2dyYW1zQnlHcm91cClcbiAgICAgICAgICAvLyBvbmx5IGtlZXAgbm9uLWVtcHR5IGdyb3Vwc1xuICAgICAgICAgIC5maWx0ZXIoa2V5ID0+IGhpc3RvZ3JhbXNCeUdyb3VwW2tleV0/Lmxlbmd0aCA+IDApLFxuICAgICAgW2hpc3RvZ3JhbXNCeUdyb3VwXVxuICAgICk7XG5cbiAgICBjb25zdCBkb21haW4gPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAgcmFuZ2UgPz8gW1xuICAgICAgICAgIG1pbihncm91cEtleXMsIGtleSA9PiBoaXN0b2dyYW1zQnlHcm91cFtrZXldWzBdLngwKSA/PyAwLFxuICAgICAgICAgIG1heChncm91cEtleXMsIGtleSA9PiBoaXN0b2dyYW1zQnlHcm91cFtrZXldW2hpc3RvZ3JhbXNCeUdyb3VwW2tleV0ubGVuZ3RoIC0gMV0ueDEpID8/IDBcbiAgICAgICAgXSxcbiAgICAgIFtyYW5nZSwgaGlzdG9ncmFtc0J5R3JvdXAsIGdyb3VwS2V5c11cbiAgICApO1xuXG4gICAgY29uc3QgbnVtQmlucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGdyb3VwS2V5cy5sZW5ndGggPT09IDApIHJldHVybiAwO1xuICAgICAgY29uc3QgbWF4R3JvdXAgPSBncm91cEtleXMucmVkdWNlKChhY2N1LCBrZXksIF9pZHgpID0+IHtcbiAgICAgICAgaWYgKGhpc3RvZ3JhbXNCeUdyb3VwW2tleV0ubGVuZ3RoID4gYWNjdS5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gaGlzdG9ncmFtc0J5R3JvdXBba2V5XTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjdTtcbiAgICAgIH0sIGhpc3RvZ3JhbXNCeUdyb3VwW2dyb3VwS2V5c1swXV0pO1xuICAgICAgcmV0dXJuIG1heEdyb3VwLmxlbmd0aDtcbiAgICB9LCBbaGlzdG9ncmFtc0J5R3JvdXAsIGdyb3VwS2V5c10pO1xuXG4gICAgY29uc3QgeCA9IHVzZU1lbW8oKCkgPT4gc2NhbGVMaW5lYXIoKS5kb21haW4oZG9tYWluKS5yYW5nZShbMCwgd2lkdGhdKSwgW2RvbWFpbiwgd2lkdGhdKTtcblxuICAgIGNvbnN0IGZhbGxiYWNrQmFyV2lkdGggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChudW1CaW5zID09PSAwKSByZXR1cm4gMDtcbiAgICAgIHJldHVybiB3aWR0aCAvIG51bUJpbnM7XG4gICAgfSwgW251bUJpbnMsIHdpZHRoXSk7XG5cbiAgICBjb25zdCB5ID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIHNjYWxlTGluZWFyKClcbiAgICAgICAgICAuZG9tYWluKFtcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICBNYXRoLm1heChcbiAgICAgICAgICAgICAgTnVtYmVyKG1heChncm91cEtleXMsIGtleSA9PiBtYXgoaGlzdG9ncmFtc0J5R3JvdXBba2V5XSwgZCA9PiBkW2NvdW50UHJvcF0pKSksXG4gICAgICAgICAgICAgIDFcbiAgICAgICAgICAgIClcbiAgICAgICAgICBdKVxuICAgICAgICAgIC5yYW5nZShbMCwgaGVpZ2h0XSksXG4gICAgICBbaGlzdG9ncmFtc0J5R3JvdXAsIGdyb3VwS2V5cywgaGVpZ2h0LCBjb3VudFByb3BdXG4gICAgKTtcblxuICAgIGNvbnN0IHlBeGlzVGlja3MgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghaXNFbmxhcmdlZCkgcmV0dXJuIG51bGw7XG4gICAgICBjb25zdCB5TWF4ID0gTWF0aC5tYXgoXG4gICAgICAgIE51bWJlcihtYXgoZ3JvdXBLZXlzLCBrZXkgPT4gbWF4KGhpc3RvZ3JhbXNCeUdyb3VwW2tleV0sIGQgPT4gZFtjb3VudFByb3BdKSkpLFxuICAgICAgICAxXG4gICAgICApO1xuICAgICAgY29uc3QgdGlja0NvdW50ID0gMztcbiAgICAgIGNvbnN0IHRpY2tzID0gc2NhbGVMaW5lYXIoKS5kb21haW4oWzAsIHlNYXhdKS50aWNrcyh0aWNrQ291bnQpO1xuICAgICAgcmV0dXJuIHRpY2tzO1xuICAgIH0sIFtpc0VubGFyZ2VkLCBncm91cEtleXMsIGhpc3RvZ3JhbXNCeUdyb3VwLCBjb3VudFByb3BdKTtcblxuICAgIGNvbnN0IGNsaXBJZFJlZiA9IHVzZVJlZihgaGlzdG9ncmFtLWNsaXAtJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKX1gKTtcbiAgICBjb25zdCBjbGlwSWQgPSBjbGlwSWRSZWYuY3VycmVudDtcblxuICAgIGlmIChncm91cEtleXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBtYXNrZWRIaXN0b2dyYW0gPSAoKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8SGlzdG9ncmFtV3JhcHBlclxuICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgICBzdHlsZT17e21hcmdpbjogYCR7bWFyZ2luLnRvcH1weCAke21hcmdpbi5yaWdodH1weCAke21hcmdpbi5ib3R0b219cHggJHttYXJnaW4ubGVmdH1weGB9fVxuICAgICAgICA+XG4gICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICA8Y2xpcFBhdGggaWQ9e2Ake2NsaXBJZH0tbWFza2B9PlxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9e3dpZHRofSBoZWlnaHQ9e2hlaWdodCArIG1hcmdpbi5ib3R0b219IC8+XG4gICAgICAgICAgICA8L2NsaXBQYXRoPlxuICAgICAgICAgICAgPG1hc2sgaWQ9XCJoaXN0b2dyYW0tbWFza1wiPlxuICAgICAgICAgICAgICA8cmVjdFxuICAgICAgICAgICAgICAgIHg9XCIwXCJcbiAgICAgICAgICAgICAgICB5PVwiMFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICAgICAgICAgIGhlaWdodD17aGVpZ2h0ICsgbWFyZ2luLmJvdHRvbX1cbiAgICAgICAgICAgICAgICBmaWxsPXtISVNUT0dSQU1fTUFTS19CR0NPTE9SfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8ZyBrZXk9XCJmaWx0ZXJlZC1iaW5zXCIgY2xhc3NOYW1lPVwiaGlzdG9ncmFtLWJhcnNcIj5cbiAgICAgICAgICAgICAgICB7aGlzdG9ncmFtc0J5R3JvdXAuZmlsdGVyZWRCaW5zLm1hcCgoYmFyLCBpZHgsIGxpc3QpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGluUmFuZ2UgPSBpc0JhckluUmFuZ2UoYmFyLCBpZHgsIGxpc3QsIGRvbWFpbiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgY29uc3Qgd1JhdGlvID0gaW5SYW5nZVxuICAgICAgICAgICAgICAgICAgICA/IGhpc3RvZ3JhbVN0eWxlLmhpZ2hsaWdodFdcbiAgICAgICAgICAgICAgICAgICAgOiBoaXN0b2dyYW1TdHlsZS51bkhpZ2hsaWdodGVkVztcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGJ4MCA9IHgodW5kZWZpbmVkVG9aZXJvKGJhci54MCkpO1xuICAgICAgICAgICAgICAgICAgY29uc3QgYngxID0geCh1bmRlZmluZWRUb1plcm8oYmFyLngxKSk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBiaW5XID0gTWF0aC5tYXgoYngxIC0gYngwLCAxKTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGRyYXduVyA9IGJpblcgKiB3UmF0aW87XG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8QmFyXG4gICAgICAgICAgICAgICAgICAgICAgJGlzT3ZlcmxheT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgJGluUmFuZ2U9e2luUmFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgJGNvbG9yPXtISVNUT0dSQU1fTUFTS19GR0NPTE9SfVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17YG1hc2stJHtpZHh9YH1cbiAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9e3koYmFyW2NvdW50UHJvcF0pfVxuICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXtkcmF3bld9XG4gICAgICAgICAgICAgICAgICAgICAgeD17YngwICsgKGJpblcgLSBkcmF3blcpIC8gMn1cbiAgICAgICAgICAgICAgICAgICAgICB5PXtoZWlnaHQgLSB5KGJhcltjb3VudFByb3BdKX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgIDwvbWFzaz5cbiAgICAgICAgICA8L2RlZnM+XG4gICAgICAgICAgPGcgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAsMClcIj5cbiAgICAgICAgICAgIDxIaXN0b2dyYW1NYXNrUmVjdFxuICAgICAgICAgICAgICB4PVwiMFwiXG4gICAgICAgICAgICAgIHk9XCIwXCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgaGVpZ2h0PXtoZWlnaHQgKyBtYXJnaW4uYm90dG9tfVxuICAgICAgICAgICAgICBtYXNrPVwidXJsKCNoaXN0b2dyYW0tbWFzaylcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2c+XG4gICAgICAgICAge2lzTWFza2VkID09PSBISVNUT0dSQU1fTUFTS19NT0RFLk1hc2tXaXRoT3ZlcmxheSAmJiAoXG4gICAgICAgICAgICA8Z1xuICAgICAgICAgICAgICBrZXk9XCJiaW5zXCJcbiAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAsMClcIlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJvdmVybGF5LWhpc3RvZ3JhbS1iYXJzXCJcbiAgICAgICAgICAgICAgY2xpcFBhdGg9e2B1cmwoIyR7Y2xpcElkfS1tYXNrKWB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtoaXN0b2dyYW1zQnlHcm91cC5iaW5zLm1hcCgoYmFyLCBpZHgsIGxpc3QpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJCYXIgPSBoaXN0b2dyYW1zQnlHcm91cC5maWx0ZXJlZEJpbnNbaWR4XTtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXNrSGVpZ2h0ID0gZmlsdGVyQmFyXG4gICAgICAgICAgICAgICAgICA/IHkoYmFyW2NvdW50UHJvcF0pIC0geShmaWx0ZXJCYXJbY291bnRQcm9wXSlcbiAgICAgICAgICAgICAgICAgIDogeShiYXJbY291bnRQcm9wXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5SYW5nZSA9IGlzQmFySW5SYW5nZShiYXIsIGlkeCwgbGlzdCwgZG9tYWluLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgd1JhdGlvID0gaW5SYW5nZSA/IGhpc3RvZ3JhbVN0eWxlLmhpZ2hsaWdodFcgOiBoaXN0b2dyYW1TdHlsZS51bkhpZ2hsaWdodGVkVztcbiAgICAgICAgICAgICAgICBjb25zdCBieDAgPSB4KHVuZGVmaW5lZFRvWmVybyhiYXIueDApKTtcbiAgICAgICAgICAgICAgICBjb25zdCBieDEgPSB4KHVuZGVmaW5lZFRvWmVybyhiYXIueDEpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBiaW5XID0gTWF0aC5tYXgoYngxIC0gYngwLCAxKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkcmF3blcgPSBiaW5XICogd1JhdGlvO1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8QmFyXG4gICAgICAgICAgICAgICAgICAgICRpblJhbmdlPXtpblJhbmdlfVxuICAgICAgICAgICAgICAgICAgICAkaXNPdmVybGF5PXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICBrZXk9e2BiYXItJHtpZHh9YH1cbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXttYXNrSGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD17ZHJhd25XfVxuICAgICAgICAgICAgICAgICAgICB4PXtieDAgKyAoYmluVyAtIGRyYXduVykgLyAyfVxuICAgICAgICAgICAgICAgICAgICB5PXtoZWlnaHQgLSB5KGJhcltjb3VudFByb3BdKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICA8L2c+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8SGlzdG9ncmFtQnJlYWtMaW5lPlxuICAgICAgICAgICAgeyhicmVha0xpbmVzID8/IFtdKS5tYXAoKHBvcywgaWR4KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPHBhdGgga2V5PXtgbWFzay1saW5lLSR7aWR4fWB9IHN0cm9rZURhc2hhcnJheT1cIjQsNFwiIGQ9e2BNJHtwb3N9LCAwIGwwIDEwMGB9IC8+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L0hpc3RvZ3JhbUJyZWFrTGluZT5cbiAgICAgICAgICA8ZyB0cmFuc2Zvcm09e2B0cmFuc2xhdGUoJHtpc1JhbmdlZCA/IDAgOiBmYWxsYmFja0JhcldpZHRoIC8gMn0sIDApYH0+e2JydXNoQ29tcG9uZW50fTwvZz5cbiAgICAgICAgPC9IaXN0b2dyYW1XcmFwcGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGlzTWFza2VkID8gKFxuICAgICAgbWFza2VkSGlzdG9ncmFtKClcbiAgICApIDogKFxuICAgICAgPEhpc3RvZ3JhbVdyYXBwZXJcbiAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgc3R5bGU9e3ttYXJnaW46IGAke21hcmdpbi50b3B9cHggJHttYXJnaW4ucmlnaHR9cHggJHttYXJnaW4uYm90dG9tfXB4ICR7bWFyZ2luLmxlZnR9cHhgfX1cbiAgICAgID5cbiAgICAgICAgPGRlZnM+XG4gICAgICAgICAgPGNsaXBQYXRoIGlkPXtjbGlwSWR9PlxuICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPXt3aWR0aH0gaGVpZ2h0PXtoZWlnaHR9IC8+XG4gICAgICAgICAgPC9jbGlwUGF0aD5cbiAgICAgICAgPC9kZWZzPlxuICAgICAgICA8ZyB0cmFuc2Zvcm09e2B0cmFuc2xhdGUoJHtpc1JhbmdlZCA/IDAgOiBmYWxsYmFja0JhcldpZHRoIC8gMn0sIDApYH0+e2JydXNoQ29tcG9uZW50fTwvZz5cbiAgICAgICAgPGcgY2xpcFBhdGg9e2B1cmwoIyR7Y2xpcElkfSlgfSBzdHlsZT17e3BvaW50ZXJFdmVudHM6ICdub25lJ319PlxuICAgICAgICAgIHtncm91cEtleXMubWFwKChrZXksIGkpID0+IChcbiAgICAgICAgICAgIDxnIGtleT17a2V5fSBjbGFzc05hbWU9XCJoaXN0b2dyYW0tYmFyc1wiPlxuICAgICAgICAgICAgICB7aGlzdG9ncmFtc0J5R3JvdXBba2V5XS5tYXAoKGJhciwgaWR4LCBsaXN0KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5SYW5nZSA9IGlzQmFySW5SYW5nZShiYXIsIGlkeCwgbGlzdCwgZG9tYWluLCB2YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB3UmF0aW8gPSBpblJhbmdlID8gaGlzdG9ncmFtU3R5bGUuaGlnaGxpZ2h0VyA6IGhpc3RvZ3JhbVN0eWxlLnVuSGlnaGxpZ2h0ZWRXO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ4MCA9IHgodW5kZWZpbmVkVG9aZXJvKGJhci54MCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ4MSA9IHgodW5kZWZpbmVkVG9aZXJvKGJhci54MSkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJpblcgPSBNYXRoLm1heChieDEgLSBieDAsIDEpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBlckdyb3VwVyA9IGlzTWFza2VkID8gYmluVyA6IGJpblcgLyBncm91cEtleXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRyYXduV2lkdGggPSBwZXJHcm91cFcgKiB3UmF0aW87XG4gICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBPZmZzZXQgPVxuICAgICAgICAgICAgICAgICAgZ3JvdXBLZXlzLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICAgICAgPyBwZXJHcm91cFcgKiBpICsgKHBlckdyb3VwVyAtIGRyYXduV2lkdGgpIC8gMlxuICAgICAgICAgICAgICAgICAgICA6IChiaW5XIC0gZHJhd25XaWR0aCkgLyAyO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0WCA9IGJ4MCArIGdyb3VwT2Zmc2V0O1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8QmFyXG4gICAgICAgICAgICAgICAgICAgICRpc092ZXJsYXk9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAkaW5SYW5nZT17aW5SYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yPXtjb2xvcnNCeUdyb3VwPy5ba2V5XX1cbiAgICAgICAgICAgICAgICAgICAga2V5PXtgYmFyLSR7aWR4fWB9XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD17eShiYXJbY291bnRQcm9wXSl9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPXtkcmF3bldpZHRofVxuICAgICAgICAgICAgICAgICAgICB4PXtzdGFydFh9XG4gICAgICAgICAgICAgICAgICAgIHJ4PXsxfVxuICAgICAgICAgICAgICAgICAgICByeT17MX1cbiAgICAgICAgICAgICAgICAgICAgeT17aGVpZ2h0IC0geShiYXJbY291bnRQcm9wXSl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2c+XG4gICAgICAgIHt5QXhpc1RpY2tzID8gKFxuICAgICAgICAgIDxnIGNsYXNzTmFtZT1cImhpc3RvZ3JhbS15LWF4aXNcIj5cbiAgICAgICAgICAgIHt5QXhpc1RpY2tzLm1hcCh0aWNrID0+IChcbiAgICAgICAgICAgICAgPFlBeGlzVGlja1xuICAgICAgICAgICAgICAgIGtleT17dGlja31cbiAgICAgICAgICAgICAgICB4PXstNH1cbiAgICAgICAgICAgICAgICB5PXtoZWlnaHQgLSB5KHRpY2spfVxuICAgICAgICAgICAgICAgIHRleHRBbmNob3I9XCJlbmRcIlxuICAgICAgICAgICAgICAgIGRvbWluYW50QmFzZWxpbmU9XCJtaWRkbGVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3RpY2t9XG4gICAgICAgICAgICAgIDwvWUF4aXNUaWNrPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9nPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvSGlzdG9ncmFtV3JhcHBlcj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IEhpc3RvZ3JhbVBsb3RXaXRoR3JvdXBzID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IGdyb3VwcyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAocHJvcHMuaGlzdG9ncmFtc0J5R3JvdXAgPyBPYmplY3Qua2V5cyhwcm9wcy5oaXN0b2dyYW1zQnlHcm91cCkgOiBudWxsKSxcbiAgICAgIFtwcm9wcy5oaXN0b2dyYW1zQnlHcm91cF1cbiAgICApO1xuXG4gICAgaWYgKCFncm91cHM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIDxIaXN0b2dyYW1QbG90IHsuLi5wcm9wc30gLz47XG4gIH07XG5cbiAgcmV0dXJuIEhpc3RvZ3JhbVBsb3RXaXRoR3JvdXBzO1xufVxuZXhwb3J0IGRlZmF1bHQgSGlzdG9ncmFtUGxvdEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFMLE9BQUE7QUFBdUMsSUFBQU0sZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQVB2QztBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFaLHdCQUFBWSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFB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
@@ -0,0 +1,14 @@
1
+ import React, { Component } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ export default class AirplaneModelIcon extends Component {
4
+ static propTypes: {
5
+ /** Set the height of the icon, ex. '16px' */
6
+ height: PropTypes.Requireable<string>;
7
+ };
8
+ static defaultProps: {
9
+ height: string;
10
+ predefinedClassName: string;
11
+ viewBox: string;
12
+ };
13
+ render(): React.JSX.Element;
14
+ }
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
12
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _react = _interopRequireWildcard(require("react"));
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+ var _base = _interopRequireDefault(require("../base"));
18
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
19
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
20
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
21
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } // SPDX-License-Identifier: MIT
22
+ // Copyright contributors to the kepler.gl project
23
+ var AirplaneModelIcon = exports["default"] = /*#__PURE__*/function (_Component) {
24
+ function AirplaneModelIcon() {
25
+ (0, _classCallCheck2["default"])(this, AirplaneModelIcon);
26
+ return _callSuper(this, AirplaneModelIcon, arguments);
27
+ }
28
+ (0, _inherits2["default"])(AirplaneModelIcon, _Component);
29
+ return (0, _createClass2["default"])(AirplaneModelIcon, [{
30
+ key: "render",
31
+ value: function render() {
32
+ return /*#__PURE__*/_react["default"].createElement(_base["default"], this.props, /*#__PURE__*/_react["default"].createElement("g", {
33
+ transform: "scale(0.9)translate(2,2)"
34
+ }, /*#__PURE__*/_react["default"].createElement("path", {
35
+ d: "M7.35538 28.2976L23.5949 28.9279L23.5653 29.7516L7.32617 29.1213L7.35538 28.2976Z",
36
+ fill: "#D5D5E6"
37
+ }), /*#__PURE__*/_react["default"].createElement("path", {
38
+ d: "M33.066 13.4359L33.8122 13.7023L29.9914 25.4093L29.2451 25.1433L33.066 13.4359Z",
39
+ fill: "#D5D5E6"
40
+ }), /*#__PURE__*/_react["default"].createElement("path", {
41
+ d: "M12.1576 14.2087L16.15 8.77066L14.8808 8.00488L6.56836 10.8469L12.1576 14.2087Z",
42
+ fill: "#D5D5E6"
43
+ }), /*#__PURE__*/_react["default"].createElement("path", {
44
+ d: "M35.3664 31.2933L33.1989 28.0196L31.369 25.2558C29.7422 22.7985 27.6133 20.75 25.1365 19.2581L11.6679 11.8575L7.42337 9.52547C6.78085 9.13767 5.97754 9.62198 5.97754 10.3976C5.97754 10.6654 6.02689 10.9303 6.12289 11.1785L6.185 11.3385C6.92453 12.2485 7.61606 13.1234 8.26428 13.9626C12.7998 19.8361 15.2027 23.9559 17.0517 26.196L22.7524 31.0108C25.2571 33.2667 29.4734 34.934 29.4935 34.9393C32.6181 35.8132 34.5732 35.8132 35.3785 34.1658C35.3782 34.1662 36.246 32.3388 35.3664 31.2933V31.2933Z",
45
+ fill: "#ECECF3"
46
+ }), /*#__PURE__*/_react["default"].createElement("path", {
47
+ d: "M14.0019 13.1403L7.42337 9.52586C6.78085 9.13771 5.97754 9.62237 5.97754 10.398C5.97754 10.658 6.02588 10.9149 6.11685 11.1567L12.1019 12.8922C12.1023 12.8922 12.8623 12.9283 14.0019 13.1403Z",
48
+ fill: "white"
49
+ }), /*#__PURE__*/_react["default"].createElement("path", {
50
+ d: "M22.7524 31.0112C25.2571 33.2671 29.4734 34.9342 29.4935 34.9398C32.6178 35.8136 34.5732 35.8136 35.3782 34.1663C35.3782 34.1663 36.2456 32.3389 35.3661 31.2934L33.1985 28.0197C32.7255 28.0804 31.611 28.3282 30.3831 29.3393C28.7567 30.6792 28.3622 32.7407 28.3622 32.7407C28.3622 32.7407 22.2993 29.6674 18.5529 25.2777C14.8069 20.888 12.1019 12.8922 12.1019 12.8922L11.6675 11.858L7.42303 9.52591C6.78085 9.13776 5.97754 9.62207 5.97754 10.3977C5.97754 10.6655 6.02689 10.9304 6.12289 11.1785L6.18466 11.3386C12.1019 18.6205 14.9382 23.6363 17.0514 26.1961L22.7524 31.0112Z",
51
+ fill: "white"
52
+ }), /*#__PURE__*/_react["default"].createElement("path", {
53
+ d: "M6.5661 9.4722L4.72852 1.61719L8.3352 3.92259L12.102 12.8922L6.5661 9.4722Z",
54
+ fill: "#ECECF3"
55
+ }), /*#__PURE__*/_react["default"].createElement("path", {
56
+ d: "M12.1577 14.2087L2.81265 17.5901L0.852539 16.3986L6.56435 10.8325L12.1577 14.2087Z",
57
+ fill: "#ECECF3"
58
+ }), /*#__PURE__*/_react["default"].createElement("path", {
59
+ d: "M23.6689 24.3852L25.2702 28.9367L30.8363 25.577L29.2911 20.9918L23.6689 24.3852Z",
60
+ fill: "#313A52"
61
+ }), /*#__PURE__*/_react["default"].createElement("path", {
62
+ d: "M23.2576 24.3561L24.6652 28.9368L19.5801 25.5016V22.1364L23.2576 24.3561Z",
63
+ fill: "#1C2233"
64
+ }), /*#__PURE__*/_react["default"].createElement("path", {
65
+ d: "M30.3304 25.4278L28.9232 20.8476L28.2035 20.4131L25.3662 22.0745L30.3304 25.4278Z",
66
+ fill: "#54638C"
67
+ }), /*#__PURE__*/_react["default"].createElement("path", {
68
+ d: "M43.9919 8.64143C43.9791 8.29048 43.8025 7.94971 43.483 7.75668L41.5897 6.61293C40.9478 6.22513 40.1683 6.1781 39.4879 6.48624L31.0637 10.2997C26.8887 12.1899 22.8207 14.3293 18.8807 16.7074C14.9407 19.0858 11.1346 21.699 7.48125 24.534L0.412902 30.0193C0.101379 30.2611 0 30.9883 0 30.9883L0.0104065 31.785C-0.0198059 32.1752 0.145691 32.5778 0.510589 32.7982L2.39248 33.9349C2.87991 34.2294 3.45294 34.3304 4.00616 34.2192L7.53261 33.5095C8.54607 33.3056 9.51991 32.9259 10.4139 32.3865L39.2603 14.9751C40.1542 14.4353 40.9555 13.7436 41.6313 12.9276L43.7441 10.3769C43.9409 10.1393 44.0248 9.85187 43.9939 9.56795L43.9919 8.64143Z",
69
+ fill: "#D5D5E6"
70
+ }), /*#__PURE__*/_react["default"].createElement("path", {
71
+ d: "M10.4139 31.3905L39.2604 13.9787C40.1543 13.4393 40.9556 12.7472 41.6314 11.9316L43.7442 9.38089C44.1645 8.87377 44.0386 8.09219 43.483 7.75668L41.5897 6.61293C40.9479 6.22513 40.1684 6.1781 39.488 6.48624L31.0637 10.2997C26.8887 12.1899 22.8208 14.3293 18.8808 16.7074C14.9407 19.0858 11.1347 21.699 7.48132 24.534L0.412969 30.0193C-0.177515 30.4773 -0.125818 31.4179 0.510656 31.8022L2.39255 32.9389C2.87998 33.2334 3.453 33.3341 4.00623 33.2228L7.53268 32.5136C8.54614 32.3096 9.51998 31.9299 10.4139 31.3905Z",
72
+ fill: "#ECECF3"
73
+ }), /*#__PURE__*/_react["default"].createElement("path", {
74
+ d: "M35.5231 32.5673C35.5231 33.4598 35.0041 34.4968 34.3636 34.8836C33.7234 35.27 33.2041 34.8597 33.2041 33.9673C33.2041 33.0744 33.7234 32.0374 34.3636 31.651C35.0041 31.2642 35.5231 31.6745 35.5231 32.5673V32.5673Z",
75
+ fill: "#262D40"
76
+ }), /*#__PURE__*/_react["default"].createElement("path", {
77
+ d: "M35.3709 33.4331C35.4555 33.2218 35.5046 33.0165 35.5207 32.8301C35.5703 32.2472 35.7882 31.6036 36.0826 31.0041C36.521 30.112 37.0095 29.0142 37.4902 27.8168C38.7299 24.7298 39.4476 22.1654 39.0931 22.0885C38.7386 22.012 37.4462 24.4522 36.2065 27.5388C35.7254 28.7363 35.3243 29.853 35.0332 30.7771C34.8379 31.3979 34.5451 32.0254 34.1561 32.535C34.0315 32.6982 33.9211 32.8898 33.8362 33.1011C33.7516 33.3127 33.7026 33.5176 33.6864 33.7044C33.6368 34.2873 33.4192 34.9306 33.1245 35.53C32.6861 36.4221 32.198 37.5203 31.7169 38.7177C30.4772 41.8043 29.7595 44.3691 30.114 44.4456C30.4685 44.5225 31.7609 42.0823 33.0006 38.9953C33.4817 37.7979 33.8828 36.6811 34.1739 35.7571C34.3696 35.1362 34.6623 34.5091 35.051 33.9995C35.1756 33.8363 35.286 33.6443 35.3709 33.4331V33.4331Z",
78
+ fill: "#ECECF3"
79
+ }), /*#__PURE__*/_react["default"].createElement("path", {
80
+ d: "M35.7261 33.3479L35.7267 33.3461L35.1154 32.6112C35.0812 32.533 35.0328 32.4723 34.9704 32.4372L34.9687 32.4347L34.9684 32.4354C34.9375 32.4182 34.9039 32.4063 34.8667 32.4017C34.5867 32.368 34.242 32.7285 34.0966 33.2064C33.9512 33.6844 34.0603 34.0993 34.3403 34.1326L35.3981 34.1316C35.5314 34.1477 35.6955 33.9761 35.7647 33.7487C35.818 33.5735 35.7982 33.4184 35.7261 33.3479V33.3479Z",
81
+ fill: "#1C2233"
82
+ }), /*#__PURE__*/_react["default"].createElement("path", {
83
+ d: "M31.3693 25.256L29.6696 20.7719L29.292 20.9919L30.8372 25.5771L31.3693 25.256Z",
84
+ fill: "#ECECF3"
85
+ }), /*#__PURE__*/_react["default"].createElement("path", {
86
+ d: "M4.39355 26.9303L6.66989 28.3046L17.9874 21.4733L14.604 19.4312C12.1739 21.0448 9.79384 22.7396 7.48126 24.534L4.39355 26.9303Z",
87
+ fill: "#D5D5E6"
88
+ }), /*#__PURE__*/_react["default"].createElement("path", {
89
+ d: "M21.0762 15.4264L24.2062 17.3153L35.5234 10.4843L33.4377 9.22546L31.064 10.2997C27.6581 11.8418 24.328 13.5583 21.0762 15.4264Z",
90
+ fill: "#D5D5E6"
91
+ })));
92
+ }
93
+ }]);
94
+ }(_react.Component);
95
+ (0, _defineProperty2["default"])(AirplaneModelIcon, "propTypes", {
96
+ /** Set the height of the icon, ex. '16px' */
97
+ height: _propTypes["default"].string
98
+ });
99
+ (0, _defineProperty2["default"])(AirplaneModelIcon, "defaultProps", {
100
+ height: '46px',
101
+ predefinedClassName: 'data-ex-icons-airplane-model',
102
+ viewBox: '0 0 44 46'
103
+ });
104
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9iYXNlIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NhbGxTdXBlciIsIm8iLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJBaXJwbGFuZU1vZGVsSWNvbiIsImV4cG9ydHMiLCJfQ29tcG9uZW50IiwiX2NsYXNzQ2FsbENoZWNrMiIsImFyZ3VtZW50cyIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwidmFsdWUiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwicHJvcHMiLCJ0cmFuc2Zvcm0iLCJkIiwiZmlsbCIsIkNvbXBvbmVudCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJoZWlnaHQiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJwcmVkZWZpbmVkQ2xhc3NOYW1lIiwidmlld0JveCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tb24vaWNvbnMvM2QtbW9kZWxzL2FpcnBsYW5lLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgQmFzZSBmcm9tICcuLi9iYXNlJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWlycGxhbmVNb2RlbEljb24gZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIC8qKiBTZXQgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiwgZXguICcxNnB4JyAqL1xuICAgIGhlaWdodDogUHJvcFR5cGVzLnN0cmluZ1xuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgaGVpZ2h0OiAnNDZweCcsXG4gICAgcHJlZGVmaW5lZENsYXNzTmFtZTogJ2RhdGEtZXgtaWNvbnMtYWlycGxhbmUtbW9kZWwnLFxuICAgIHZpZXdCb3g6ICcwIDAgNDQgNDYnXG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8QmFzZSB7Li4udGhpcy5wcm9wc30+XG4gICAgICAgIDxnIHRyYW5zZm9ybT1cInNjYWxlKDAuOSl0cmFuc2xhdGUoMiwyKVwiPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTcuMzU1MzggMjguMjk3NkwyMy41OTQ5IDI4LjkyNzlMMjMuNTY1MyAyOS43NTE2TDcuMzI2MTcgMjkuMTIxM0w3LjM1NTM4IDI4LjI5NzZaXCJcbiAgICAgICAgICAgIGZpbGw9XCIjRDVENUU2XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTMzLjA2NiAxMy40MzU5TDMzLjgxMjIgMTMuNzAyM0wyOS45OTE0IDI1LjQwOTNMMjkuMjQ1MSAyNS4xNDMzTDMzLjA2NiAxMy40MzU5WlwiXG4gICAgICAgICAgICBmaWxsPVwiI0Q1RDVFNlwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZD1cIk0xMi4xNTc2IDE0LjIwODdMMTYuMTUgOC43NzA2NkwxNC44ODA4IDguMDA0ODhMNi41NjgzNiAxMC44NDY5TDEyLjE1NzYgMTQuMjA4N1pcIlxuICAgICAgICAgICAgZmlsbD1cIiNENUQ1RTZcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNMzUuMzY2NCAzMS4yOTMzTDMzLjE5ODkgMjguMDE5NkwzMS4zNjkgMjUuMjU1OEMyOS43NDIyIDIyLjc5ODUgMjcuNjEzMyAyMC43NSAyNS4xMzY1IDE5LjI1ODFMMTEuNjY3OSAxMS44NTc1TDcuNDIzMzcgOS41MjU0N0M2Ljc4MDg1IDkuMTM3NjcgNS45Nzc1NCA5LjYyMTk4IDUuOTc3NTQgMTAuMzk3NkM1Ljk3NzU0IDEwLjY2NTQgNi4wMjY4OSAxMC45MzAzIDYuMTIyODkgMTEuMTc4NUw2LjE4NSAxMS4zMzg1QzYuOTI0NTMgMTIuMjQ4NSA3LjYxNjA2IDEzLjEyMzQgOC4yNjQyOCAxMy45NjI2QzEyLjc5OTggMTkuODM2MSAxNS4yMDI3IDIzLjk1NTkgMTcuMDUxNyAyNi4xOTZMMjIuNzUyNCAzMS4wMTA4QzI1LjI1NzEgMzMuMjY2NyAyOS40NzM0IDM0LjkzNCAyOS40OTM1IDM0LjkzOTNDMzIuNjE4MSAzNS44MTMyIDM0LjU3MzIgMzUuODEzMiAzNS4zNzg1IDM0LjE2NThDMzUuMzc4MiAzNC4xNjYyIDM2LjI0NiAzMi4zMzg4IDM1LjM2NjQgMzEuMjkzM1YzMS4yOTMzWlwiXG4gICAgICAgICAgICBmaWxsPVwiI0VDRUNGM1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZD1cIk0xNC4wMDE5IDEzLjE0MDNMNy40MjMzNyA5LjUyNTg2QzYuNzgwODUgOS4xMzc3MSA1Ljk3NzU0IDkuNjIyMzcgNS45Nzc1NCAxMC4zOThDNS45Nzc1NCAxMC42NTggNi4wMjU4OCAxMC45MTQ5IDYuMTE2ODUgMTEuMTU2N0wxMi4xMDE5IDEyLjg5MjJDMTIuMTAyMyAxMi44OTIyIDEyLjg2MjMgMTIuOTI4MyAxNC4wMDE5IDEzLjE0MDNaXCJcbiAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZD1cIk0yMi43NTI0IDMxLjAxMTJDMjUuMjU3MSAzMy4yNjcxIDI5LjQ3MzQgMzQuOTM0MiAyOS40OTM1IDM0LjkzOThDMzIuNjE3OCAzNS44MTM2IDM0LjU3MzIgMzUuODEzNiAzNS4zNzgyIDM0LjE2NjNDMzUuMzc4MiAzNC4xNjYzIDM2LjI0NTYgMzIuMzM4OSAzNS4zNjYxIDMxLjI5MzRMMzMuMTk4NSAyOC4wMTk3QzMyLjcyNTUgMjguMDgwNCAzMS42MTEgMjguMzI4MiAzMC4zODMxIDI5LjMzOTNDMjguNzU2NyAzMC42NzkyIDI4LjM2MjIgMzIuNzQwNyAyOC4zNjIyIDMyLjc0MDdDMjguMzYyMiAzMi43NDA3IDIyLjI5OTMgMjkuNjY3NCAxOC41NTI5IDI1LjI3NzdDMTQuODA2OSAyMC44ODggMTIuMTAxOSAxMi44OTIyIDEyLjEwMTkgMTIuODkyMkwxMS42Njc1IDExLjg1OEw3LjQyMzAzIDkuNTI1OTFDNi43ODA4NSA5LjEzNzc2IDUuOTc3NTQgOS42MjIwNyA1Ljk3NzU0IDEwLjM5NzdDNS45Nzc1NCAxMC42NjU1IDYuMDI2ODkgMTAuOTMwNCA2LjEyMjg5IDExLjE3ODVMNi4xODQ2NiAxMS4zMzg2QzEyLjEwMTkgMTguNjIwNSAxNC45MzgyIDIzLjYzNjMgMTcuMDUxNCAyNi4xOTYxTDIyLjc1MjQgMzEuMDExMlpcIlxuICAgICAgICAgICAgZmlsbD1cIndoaXRlXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTYuNTY2MSA5LjQ3MjJMNC43Mjg1MiAxLjYxNzE5TDguMzM1MiAzLjkyMjU5TDEyLjEwMiAxMi44OTIyTDYuNTY2MSA5LjQ3MjJaXCJcbiAgICAgICAgICAgIGZpbGw9XCIjRUNFQ0YzXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTEyLjE1NzcgMTQuMjA4N0wyLjgxMjY1IDE3LjU5MDFMMC44NTI1MzkgMTYuMzk4Nkw2LjU2NDM1IDEwLjgzMjVMMTIuMTU3NyAxNC4yMDg3WlwiXG4gICAgICAgICAgICBmaWxsPVwiI0VDRUNGM1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZD1cIk0yMy42Njg5IDI0LjM4NTJMMjUuMjcwMiAyOC45MzY3TDMwLjgzNjMgMjUuNTc3TDI5LjI5MTEgMjAuOTkxOEwyMy42Njg5IDI0LjM4NTJaXCJcbiAgICAgICAgICAgIGZpbGw9XCIjMzEzQTUyXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTIzLjI1NzYgMjQuMzU2MUwyNC42NjUyIDI4LjkzNjhMMTkuNTgwMSAyNS41MDE2VjIyLjEzNjRMMjMuMjU3NiAyNC4zNTYxWlwiXG4gICAgICAgICAgICBmaWxsPVwiIzFDMjIzM1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZD1cIk0zMC4zMzA0IDI1LjQyNzhMMjguOTIzMiAyMC44NDc2TDI4LjIwMzUgMjAuNDEzMUwyNS4zNjYyIDIyLjA3NDVMMzAuMzMwNCAyNS40Mjc4WlwiXG4gICAgICAgICAgICBmaWxsPVwiIzU0NjM4Q1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZD1cIk00My45OTE5IDguNjQxNDNDNDMuOTc5MSA4LjI5MDQ4IDQzLjgwMjUgNy45NDk3MSA0My40ODMgNy43NTY2OEw0MS41ODk3IDYuNjEyOTNDNDAuOTQ3OCA2LjIyNTEzIDQwLjE2ODMgNi4xNzgxIDM5LjQ4NzkgNi40ODYyNEwzMS4wNjM3IDEwLjI5OTdDMjYuODg4NyAxMi4xODk5IDIyLjgyMDcgMTQuMzI5MyAxOC44ODA3IDE2LjcwNzRDMTQuOTQwNyAxOS4wODU4IDExLjEzNDYgMjEuNjk5IDcuNDgxMjUgMjQuNTM0TDAuNDEyOTAyIDMwLjAxOTNDMC4xMDEzNzkgMzAuMjYxMSAwIDMwLjk4ODMgMCAzMC45ODgzTDAuMDEwNDA2NSAzMS43ODVDLTAuMDE5ODA1OSAzMi4xNzUyIDAuMTQ1NjkxIDMyLjU3NzggMC41MTA1ODkgMzIuNzk4MkwyLjM5MjQ4IDMzLjkzNDlDMi44Nzk5MSAzNC4yMjk0IDMuNDUyOTQgMzQuMzMwNCA0LjAwNjE2IDM0LjIxOTJMNy41MzI2MSAzMy41MDk1QzguNTQ2MDcgMzMuMzA1NiA5LjUxOTkxIDMyLjkyNTkgMTAuNDEzOSAzMi4zODY1TDM5LjI2MDMgMTQuOTc1MUM0MC4xNTQyIDE0LjQzNTMgNDAuOTU1NSAxMy43NDM2IDQxLjYzMTMgMTIuOTI3Nkw0My43NDQxIDEwLjM3NjlDNDMuOTQwOSAxMC4xMzkzIDQ0LjAyNDggOS44NTE4NyA0My45OTM5IDkuNTY3OTVMNDMuOTkxOSA4LjY0MTQzWlwiXG4gICAgICAgICAgICBmaWxsPVwiI0Q1RDVFNlwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZD1cIk0xMC40MTM5IDMxLjM5MDVMMzkuMjYwNCAxMy45Nzg3QzQwLjE1NDMgMTMuNDM5MyA0MC45NTU2IDEyLjc0NzIgNDEuNjMxNCAxMS45MzE2TDQzLjc0NDIgOS4zODA4OUM0NC4xNjQ1IDguODczNzcgNDQuMDM4NiA4LjA5MjE5IDQzLjQ4MyA3Ljc1NjY4TDQxLjU4OTcgNi42MTI5M0M0MC45NDc5IDYuMjI1MTMgNDAuMTY4NCA2LjE3ODEgMzkuNDg4IDYuNDg2MjRMMzEuMDYzNyAxMC4yOTk3QzI2Ljg4ODcgMTIuMTg5OSAyMi44MjA4IDE0LjMyOTMgMTguODgwOCAxNi43MDc0QzE0Ljk0MDcgMTkuMDg1OCAxMS4xMzQ3IDIxLjY5OSA3LjQ4MTMyIDI0LjUzNEwwLjQxMjk2OSAzMC4wMTkzQy0wLjE3NzUxNSAzMC40NzczIC0wLjEyNTgxOCAzMS40MTc5IDAuNTEwNjU2IDMxLjgwMjJMMi4zOTI1NSAzMi45Mzg5QzIuODc5OTggMzMuMjMzNCAzLjQ1MyAzMy4zMzQxIDQuMDA2MjMgMzMuMjIyOEw3LjUzMjY4IDMyLjUxMzZDOC41NDYxNCAzMi4zMDk2IDkuNTE5OTggMzEuOTI5OSAxMC40MTM5IDMxLjM5MDVaXCJcbiAgICAgICAgICAgIGZpbGw9XCIjRUNFQ0YzXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTM1LjUyMzEgMzIuNTY3M0MzNS41MjMxIDMzLjQ1OTggMzUuMDA0MSAzNC40OTY4IDM0LjM2MzYgMzQuODgzNkMzMy43MjM0IDM1LjI3IDMzLjIwNDEgMzQuODU5NyAzMy4yMDQxIDMzLjk2NzNDMzMuMjA0MSAzMy4wNzQ0IDMzLjcyMzQgMzIuMDM3NCAzNC4zNjM2IDMxLjY1MUMzNS4wMDQxIDMxLjI2NDIgMzUuNTIzMSAzMS42NzQ1IDM1LjUyMzEgMzIuNTY3M1YzMi41NjczWlwiXG4gICAgICAgICAgICBmaWxsPVwiIzI2MkQ0MFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZD1cIk0zNS4zNzA5IDMzLjQzMzFDMzUuNDU1NSAzMy4yMjE4IDM1LjUwNDYgMzMuMDE2NSAzNS41MjA3IDMyLjgzMDFDMzUuNTcwMyAzMi4yNDcyIDM1Ljc4ODIgMzEuNjAzNiAzNi4wODI2IDMxLjAwNDFDMzYuNTIxIDMwLjExMiAzNy4wMDk1IDI5LjAxNDIgMzcuNDkwMiAyNy44MTY4QzM4LjcyOTkgMjQuNzI5OCAzOS40NDc2IDIyLjE2NTQgMzkuMDkzMSAyMi4wODg1QzM4LjczODYgMjIuMDEyIDM3LjQ0NjIgMjQuNDUyMiAzNi4yMDY1IDI3LjUzODhDMzUuNzI1NCAyOC43MzYzIDM1LjMyNDMgMjkuODUzIDM1LjAzMzIgMzAuNzc3MUMzNC44Mzc5IDMxLjM5NzkgMzQuNTQ1MSAzMi4wMjU0IDM0LjE1NjEgMzIuNTM1QzM0LjAzMTUgMzIuNjk4MiAzMy45MjExIDMyLjg4OTggMzMuODM2MiAzMy4xMDExQzMzLjc1MTYgMzMuMzEyNyAzMy43MDI2IDMzLjUxNzYgMzMuNjg2NCAzMy43MDQ0QzMzLjYzNjggMzQuMjg3MyAzMy40MTkyIDM0LjkzMDYgMzMuMTI0NSAzNS41M0MzMi42ODYxIDM2LjQyMjEgMzIuMTk4IDM3LjUyMDMgMzEuNzE2OSAzOC43MTc3QzMwLjQ3NzIgNDEuODA0MyAyOS43NTk1IDQ0LjM2OTEgMzAuMTE0IDQ0LjQ0NTZDMzAuNDY4NSA0NC41MjI1IDMxLjc2MDkgNDIuMDgyMyAzMy4wMDA2IDM4Ljk5NTNDMzMuNDgxNyAzNy43OTc5IDMzLjg4MjggMzYuNjgxMSAzNC4xNzM5IDM1Ljc1NzFDMzQuMzY5NiAzNS4xMzYyIDM0LjY2MjMgMzQuNTA5MSAzNS4wNTEgMzMuOTk5NUMzNS4xNzU2IDMzLjgzNjMgMzUuMjg2IDMzLjY0NDMgMzUuMzcwOSAzMy40MzMxVjMzLjQzMzFaXCJcbiAgICAgICAgICAgIGZpbGw9XCIjRUNFQ0YzXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTM1LjcyNjEgMzMuMzQ3OUwzNS43MjY3IDMzLjM0NjFMMzUuMTE1NCAzMi42MTEyQzM1LjA4MTIgMzIuNTMzIDM1LjAzMjggMzIuNDcyMyAzNC45NzA0IDMyLjQzNzJMMzQuOTY4NyAzMi40MzQ3TDM0Ljk2ODQgMzIuNDM1NEMzNC45Mzc1IDMyLjQxODIgMzQuOTAzOSAzMi40MDYzIDM0Ljg2NjcgMzIuNDAxN0MzNC41ODY3IDMyLjM2OCAzNC4yNDIgMzIuNzI4NSAzNC4wOTY2IDMzLjIwNjRDMzMuOTUxMiAzMy42ODQ0IDM0LjA2MDMgMzQuMDk5MyAzNC4zNDAzIDM0LjEzMjZMMzUuMzk4MSAzNC4xMzE2QzM1LjUzMTQgMzQuMTQ3NyAzNS42OTU1IDMzLjk3NjEgMzUuNzY0NyAzMy43NDg3QzM1LjgxOCAzMy41NzM1IDM1Ljc5ODIgMzMuNDE4NCAzNS43MjYxIDMzLjM0NzlWMzMuMzQ3OVpcIlxuICAgICAgICAgICAgZmlsbD1cIiMxQzIyMzNcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNMzEuMzY5MyAyNS4yNTZMMjkuNjY5NiAyMC43NzE5TDI5LjI5MiAyMC45OTE5TDMwLjgzNzIgMjUuNTc3MUwzMS4zNjkzIDI1LjI1NlpcIlxuICAgICAgICAgICAgZmlsbD1cIiNFQ0VDRjNcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNNC4zOTM1NSAyNi45MzAzTDYuNjY5ODkgMjguMzA0NkwxNy45ODc0IDIxLjQ3MzNMMTQuNjA0IDE5LjQzMTJDMTIuMTczOSAyMS4wNDQ4IDkuNzkzODQgMjIuNzM5NiA3LjQ4MTI2IDI0LjUzNEw0LjM5MzU1IDI2LjkzMDNaXCJcbiAgICAgICAgICAgIGZpbGw9XCIjRDVENUU2XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTIxLjA3NjIgMTUuNDI2NEwyNC4yMDYyIDE3LjMxNTNMMzUuNTIzNCAxMC40ODQzTDMzLjQzNzcgOS4yMjU0NkwzMS4wNjQgMTAuMjk5N0MyNy42NTgxIDExLjg0MTggMjQuMzI4IDEzLjU1ODMgMjEuMDc2MiAxNS40MjY0WlwiXG4gICAgICAgICAgICBmaWxsPVwiI0Q1RDVFNlwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9nPlxuICAgICAgPC9CYXNlPlxuICAgICk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFBMkIsU0FBQUkseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFOLHdCQUFB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
@@ -0,0 +1,14 @@
1
+ import React, { Component } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ export default class BicycleModelIcon extends Component {
4
+ static propTypes: {
5
+ /** Set the height of the icon, ex. '16px' */
6
+ height: PropTypes.Requireable<string>;
7
+ };
8
+ static defaultProps: {
9
+ height: string;
10
+ predefinedClassName: string;
11
+ viewBox: string;
12
+ };
13
+ render(): React.JSX.Element;
14
+ }