@carto/kepler.gl 0.0.85 → 0.0.86-alpha.deck9.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 (430) hide show
  1. package/dist/actions/action-wrapper.js +36 -41
  2. package/dist/actions/actions.js +15 -21
  3. package/dist/actions/identity-actions.js +14 -20
  4. package/dist/actions/index.js +16 -16
  5. package/dist/actions/map-state-actions.js +12 -18
  6. package/dist/actions/map-style-actions.js +30 -46
  7. package/dist/actions/provider-actions.js +49 -73
  8. package/dist/actions/ui-state-actions.js +73 -113
  9. package/dist/actions/vis-state-actions.js +152 -148
  10. package/dist/cloud-providers/index.js +6 -7
  11. package/dist/cloud-providers/provider.js +189 -279
  12. package/dist/components/bottom-widget.js +105 -117
  13. package/dist/components/common/action-panel.js +122 -74
  14. package/dist/components/common/animation-control/animation-control.js +69 -54
  15. package/dist/components/common/animation-control/animation-controller.js +134 -160
  16. package/dist/components/common/animation-control/animation-speed-slider.js +47 -54
  17. package/dist/components/common/animation-control/floating-time-display.js +120 -100
  18. package/dist/components/common/animation-control/playback-controls.js +147 -144
  19. package/dist/components/common/animation-control/speed-control.js +31 -23
  20. package/dist/components/common/checkbox.js +56 -70
  21. package/dist/components/common/color-legend.js +83 -110
  22. package/dist/components/common/data-table/button.js +31 -23
  23. package/dist/components/common/data-table/canvas.js +11 -5
  24. package/dist/components/common/data-table/cell-size.js +51 -61
  25. package/dist/components/common/data-table/grid.js +40 -59
  26. package/dist/components/common/data-table/index.js +464 -348
  27. package/dist/components/common/data-table/option-dropdown.js +50 -33
  28. package/dist/components/common/dataset-label.js +17 -13
  29. package/dist/components/common/error-boundary.js +27 -45
  30. package/dist/components/common/field-selector.js +99 -139
  31. package/dist/components/common/field-token.js +24 -9
  32. package/dist/components/common/file-uploader/file-drop.js +96 -115
  33. package/dist/components/common/file-uploader/file-upload-progress.js +68 -45
  34. package/dist/components/common/file-uploader/file-upload.js +215 -187
  35. package/dist/components/common/file-uploader/upload-button.js +35 -22
  36. package/dist/components/common/histogram-plot.js +47 -58
  37. package/dist/components/common/icons/add.js +14 -27
  38. package/dist/components/common/icons/anchor_window.js +16 -18
  39. package/dist/components/common/icons/arrow-down-alt.js +14 -27
  40. package/dist/components/common/icons/arrow-down-solid.js +14 -27
  41. package/dist/components/common/icons/arrow-down.js +14 -27
  42. package/dist/components/common/icons/arrow-left.js +17 -30
  43. package/dist/components/common/icons/arrow-right.js +14 -27
  44. package/dist/components/common/icons/arrow-up-alt.js +15 -28
  45. package/dist/components/common/icons/arrow-up-solid.js +14 -27
  46. package/dist/components/common/icons/arrow-up.js +14 -27
  47. package/dist/components/common/icons/base.js +39 -57
  48. package/dist/components/common/icons/bug.js +16 -29
  49. package/dist/components/common/icons/cancel.js +14 -27
  50. package/dist/components/common/icons/checkmark.js +18 -31
  51. package/dist/components/common/icons/chevron-right.js +20 -33
  52. package/dist/components/common/icons/clipboard.js +15 -28
  53. package/dist/components/common/icons/clock.js +16 -29
  54. package/dist/components/common/icons/close.js +19 -32
  55. package/dist/components/common/icons/code-alt.js +16 -29
  56. package/dist/components/common/icons/copy.js +18 -31
  57. package/dist/components/common/icons/crosshairs.js +16 -29
  58. package/dist/components/common/icons/cube-3d.js +18 -31
  59. package/dist/components/common/icons/cursor-click.js +18 -31
  60. package/dist/components/common/icons/data-table.js +15 -28
  61. package/dist/components/common/icons/db.js +15 -28
  62. package/dist/components/common/icons/delete.js +16 -29
  63. package/dist/components/common/icons/docs.js +30 -43
  64. package/dist/components/common/icons/drag-n-drop.js +16 -29
  65. package/dist/components/common/icons/draw-polygon.js +33 -46
  66. package/dist/components/common/icons/email.js +18 -31
  67. package/dist/components/common/icons/expand.js +16 -29
  68. package/dist/components/common/icons/eye-seen.js +16 -29
  69. package/dist/components/common/icons/eye-unseen.js +16 -29
  70. package/dist/components/common/icons/file-type.js +35 -19
  71. package/dist/components/common/icons/file.js +14 -27
  72. package/dist/components/common/icons/files.js +14 -26
  73. package/dist/components/common/icons/filter-funnel.js +14 -27
  74. package/dist/components/common/icons/free-window.js +16 -18
  75. package/dist/components/common/icons/gear.js +16 -29
  76. package/dist/components/common/icons/hash.js +14 -27
  77. package/dist/components/common/icons/histogram.js +15 -27
  78. package/dist/components/common/icons/index.js +156 -156
  79. package/dist/components/common/icons/info.js +25 -38
  80. package/dist/components/common/icons/layers.js +14 -27
  81. package/dist/components/common/icons/left-arrow.js +16 -29
  82. package/dist/components/common/icons/legend.js +14 -27
  83. package/dist/components/common/icons/line-chart.js +14 -27
  84. package/dist/components/common/icons/login.js +17 -30
  85. package/dist/components/common/icons/logout.js +16 -29
  86. package/dist/components/common/icons/map-icon.js +18 -32
  87. package/dist/components/common/icons/map.js +18 -32
  88. package/dist/components/common/icons/messages.js +14 -27
  89. package/dist/components/common/icons/minus.js +14 -27
  90. package/dist/components/common/icons/order-by-dataset.js +15 -17
  91. package/dist/components/common/icons/order-by-list.js +7 -9
  92. package/dist/components/common/icons/pause.js +14 -27
  93. package/dist/components/common/icons/picture.js +14 -26
  94. package/dist/components/common/icons/pin.js +17 -30
  95. package/dist/components/common/icons/play.js +14 -27
  96. package/dist/components/common/icons/polygon.js +35 -48
  97. package/dist/components/common/icons/rectangle.js +36 -49
  98. package/dist/components/common/icons/reduce.js +17 -30
  99. package/dist/components/common/icons/reset.js +14 -27
  100. package/dist/components/common/icons/rocket.js +14 -27
  101. package/dist/components/common/icons/save.js +16 -29
  102. package/dist/components/common/icons/save2.js +20 -33
  103. package/dist/components/common/icons/search.js +16 -29
  104. package/dist/components/common/icons/settings.js +16 -29
  105. package/dist/components/common/icons/share.js +14 -27
  106. package/dist/components/common/icons/split.js +42 -55
  107. package/dist/components/common/icons/square-select.js +16 -29
  108. package/dist/components/common/icons/swap-horizontal.js +18 -31
  109. package/dist/components/common/icons/table.js +14 -27
  110. package/dist/components/common/icons/trash.js +16 -29
  111. package/dist/components/common/icons/upload.js +14 -27
  112. package/dist/components/common/icons/vert-dots.js +52 -65
  113. package/dist/components/common/icons/vert-three-dots.js +27 -40
  114. package/dist/components/common/icons/warning.js +26 -39
  115. package/dist/components/common/image-preview.js +71 -33
  116. package/dist/components/common/info-helper.js +36 -29
  117. package/dist/components/common/item-selector/accessor.js +7 -13
  118. package/dist/components/common/item-selector/chickleted-input.js +72 -56
  119. package/dist/components/common/item-selector/dropdown-list.js +182 -214
  120. package/dist/components/common/item-selector/item-selector-submenu.js +34 -55
  121. package/dist/components/common/item-selector/item-selector.js +183 -194
  122. package/dist/components/common/item-selector/typeahead.js +236 -248
  123. package/dist/components/common/line-chart.js +80 -58
  124. package/dist/components/common/loading-spinner.js +46 -31
  125. package/dist/components/common/logo.js +61 -48
  126. package/dist/components/common/map-layer-selector.js +31 -25
  127. package/dist/components/common/modal.js +167 -106
  128. package/dist/components/common/portaled.js +169 -189
  129. package/dist/components/common/progress-bar.js +27 -24
  130. package/dist/components/common/range-brush.js +176 -215
  131. package/dist/components/common/range-plot.js +52 -63
  132. package/dist/components/common/range-slider.js +206 -231
  133. package/dist/components/common/slider/mouse-event.js +59 -66
  134. package/dist/components/common/slider/slider-bar-handle.js +51 -61
  135. package/dist/components/common/slider/slider-handle.js +127 -102
  136. package/dist/components/common/slider/slider.js +143 -162
  137. package/dist/components/common/styled-components.js +518 -256
  138. package/dist/components/common/switch.js +11 -11
  139. package/dist/components/common/time-range-slider-time-title.js +49 -32
  140. package/dist/components/common/time-range-slider.js +56 -45
  141. package/dist/components/common/time-slider-marker.js +71 -52
  142. package/dist/components/common/tippy-tooltip.js +89 -59
  143. package/dist/components/common/toolbar-item.js +53 -45
  144. package/dist/components/common/toolbar.js +24 -18
  145. package/dist/components/common/vertical-toolbar.js +13 -6
  146. package/dist/components/container.js +87 -119
  147. package/dist/components/context.js +6 -8
  148. package/dist/components/editor/constants.js +4 -4
  149. package/dist/components/editor/editor.js +122 -157
  150. package/dist/components/editor/feature-action-panel.js +52 -59
  151. package/dist/components/editor/feature-styles.js +46 -29
  152. package/dist/components/editor/handle-style.js +38 -29
  153. package/dist/components/filters/components.js +8 -4
  154. package/dist/components/filters/filter-panels/filter-panel-with-field-select.js +33 -43
  155. package/dist/components/filters/filter-panels/multi-select-filter-panel.js +20 -21
  156. package/dist/components/filters/filter-panels/new-filter-panel.js +24 -31
  157. package/dist/components/filters/filter-panels/polygon-filter-panel.js +26 -31
  158. package/dist/components/filters/filter-panels/range-filter-panel.js +20 -21
  159. package/dist/components/filters/filter-panels/single-select-filter-panel.js +20 -21
  160. package/dist/components/filters/filter-panels/time-range-filter-panel.js +28 -31
  161. package/dist/components/filters/index.js +10 -10
  162. package/dist/components/filters/multi-select-filter.js +11 -9
  163. package/dist/components/filters/polygon-filter.js +26 -41
  164. package/dist/components/filters/range-filter.js +9 -7
  165. package/dist/components/filters/single-select-filter.js +11 -13
  166. package/dist/components/filters/time-range-filter.js +16 -14
  167. package/dist/components/filters/time-widget.js +125 -84
  168. package/dist/components/geocoder/geocoder.js +158 -177
  169. package/dist/components/geocoder-panel.js +66 -87
  170. package/dist/components/index.js +328 -329
  171. package/dist/components/injector.js +44 -63
  172. package/dist/components/kepler-gl.js +325 -361
  173. package/dist/components/map/coordinate-info.js +18 -16
  174. package/dist/components/map/layer-hover-info.js +108 -86
  175. package/dist/components/map/layer-selector-panel.js +50 -48
  176. package/dist/components/map/locale-panel.js +38 -44
  177. package/dist/components/map/map-control-panel.js +70 -47
  178. package/dist/components/map/map-control-toolbar.js +9 -6
  179. package/dist/components/map/map-control-tooltip.js +10 -8
  180. package/dist/components/map/map-control.js +35 -27
  181. package/dist/components/map/map-draw-panel.js +38 -48
  182. package/dist/components/map/map-legend-panel.js +47 -50
  183. package/dist/components/map/map-legend.js +133 -116
  184. package/dist/components/map/map-popover.js +155 -100
  185. package/dist/components/map/split-map-button.js +30 -34
  186. package/dist/components/map/toggle-3d-button.js +25 -27
  187. package/dist/components/map-container.js +313 -359
  188. package/dist/components/maps-layout.js +16 -26
  189. package/dist/components/modal-container.js +359 -355
  190. package/dist/components/modals/add-map-style-modal.js +233 -194
  191. package/dist/components/modals/cloud-tile.js +96 -67
  192. package/dist/components/modals/data-table-modal.js +155 -152
  193. package/dist/components/modals/delete-data-modal.js +20 -20
  194. package/dist/components/modals/error-display.js +9 -7
  195. package/dist/components/modals/export-data-modal.js +118 -140
  196. package/dist/components/modals/export-image-modal.js +82 -69
  197. package/dist/components/modals/export-map-modal/components.js +20 -18
  198. package/dist/components/modals/export-map-modal/export-html-map.js +82 -74
  199. package/dist/components/modals/export-map-modal/export-json-map.js +65 -45
  200. package/dist/components/modals/export-map-modal/export-map-modal.js +42 -47
  201. package/dist/components/modals/image-modal-container.js +20 -21
  202. package/dist/components/modals/load-data-modal.js +28 -30
  203. package/dist/components/modals/load-storage-map.js +277 -178
  204. package/dist/components/modals/loading-dialog.js +41 -19
  205. package/dist/components/modals/modal-dialog.js +4 -6
  206. package/dist/components/modals/modal-tabs.js +83 -48
  207. package/dist/components/modals/overwrite-map-modal.js +41 -30
  208. package/dist/components/modals/provider-modal-container.js +23 -42
  209. package/dist/components/modals/save-map-modal.js +107 -83
  210. package/dist/components/modals/share-map-modal.js +101 -95
  211. package/dist/components/modals/status-panel.js +63 -43
  212. package/dist/components/modals/storage-map-viewer.js +133 -70
  213. package/dist/components/notification-panel/notification-item.js +94 -97
  214. package/dist/components/notification-panel.js +35 -43
  215. package/dist/components/performance.js +49 -53
  216. package/dist/components/plot-container.js +151 -169
  217. package/dist/components/side-panel/cloud-storage-dropdown.js +13 -15
  218. package/dist/components/side-panel/common/dataset-info.js +16 -12
  219. package/dist/components/side-panel/common/dataset-tag.js +48 -27
  220. package/dist/components/side-panel/common/dataset-title.js +119 -116
  221. package/dist/components/side-panel/common/source-data-catalog.js +31 -32
  222. package/dist/components/side-panel/common/source-data-selector.js +52 -77
  223. package/dist/components/side-panel/custom-panel.js +6 -8
  224. package/dist/components/side-panel/filter-manager.js +48 -62
  225. package/dist/components/side-panel/filter-panel/filter-panel-header.js +35 -25
  226. package/dist/components/side-panel/filter-panel/filter-panel.js +46 -64
  227. package/dist/components/side-panel/interaction-manager.js +20 -18
  228. package/dist/components/side-panel/interaction-panel/brush-config.js +17 -17
  229. package/dist/components/side-panel/interaction-panel/interaction-panel.js +76 -95
  230. package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +118 -143
  231. package/dist/components/side-panel/interaction-panel/tooltip-config.js +95 -76
  232. package/dist/components/side-panel/layer-manager.js +105 -115
  233. package/dist/components/side-panel/layer-panel/add-layer-button.js +92 -54
  234. package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.js +5 -5
  235. package/dist/components/side-panel/layer-panel/color-palette.js +50 -37
  236. package/dist/components/side-panel/layer-panel/color-range-selector.js +196 -207
  237. package/dist/components/side-panel/layer-panel/color-selector.js +104 -110
  238. package/dist/components/side-panel/layer-panel/column-selector.js +34 -22
  239. package/dist/components/side-panel/layer-panel/custom-markers-config-group.js +4 -4
  240. package/dist/components/side-panel/layer-panel/custom-palette.js +248 -205
  241. package/dist/components/side-panel/layer-panel/custom-picker.js +51 -69
  242. package/dist/components/side-panel/layer-panel/dataset-layer-group.js +37 -42
  243. package/dist/components/side-panel/layer-panel/dataset-layer-section.js +31 -27
  244. package/dist/components/side-panel/layer-panel/dataset-section.js +45 -35
  245. package/dist/components/side-panel/layer-panel/dimension-scale-selector.js +14 -13
  246. package/dist/components/side-panel/layer-panel/hex-column-config.js +32 -55
  247. package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.js +5 -5
  248. package/dist/components/side-panel/layer-panel/layer-column-config.js +42 -46
  249. package/dist/components/side-panel/layer-panel/layer-config-group.js +178 -144
  250. package/dist/components/side-panel/layer-panel/layer-configurator.js +826 -830
  251. package/dist/components/side-panel/layer-panel/layer-list.js +101 -94
  252. package/dist/components/side-panel/layer-panel/layer-panel-header.js +124 -82
  253. package/dist/components/side-panel/layer-panel/layer-panel.js +111 -105
  254. package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.js +67 -58
  255. package/dist/components/side-panel/layer-panel/layer-type-list-item.js +47 -32
  256. package/dist/components/side-panel/layer-panel/layer-type-selector.js +30 -41
  257. package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.js +42 -43
  258. package/dist/components/side-panel/layer-panel/panel-view-list-toggle.js +55 -57
  259. package/dist/components/side-panel/layer-panel/single-color-palette.js +48 -33
  260. package/dist/components/side-panel/layer-panel/text-label-panel.js +81 -116
  261. package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.js +88 -102
  262. package/dist/components/side-panel/layer-panel/vis-config-slider.js +99 -85
  263. package/dist/components/side-panel/layer-panel/vis-config-switch.js +38 -29
  264. package/dist/components/side-panel/map-manager.js +70 -89
  265. package/dist/components/side-panel/map-style-panel/map-layer-selector.js +72 -60
  266. package/dist/components/side-panel/map-style-panel/map-style-selector.js +64 -42
  267. package/dist/components/side-panel/panel-dropdown.js +21 -37
  268. package/dist/components/side-panel/panel-header-action.js +60 -65
  269. package/dist/components/side-panel/panel-header.js +165 -184
  270. package/dist/components/side-panel/panel-tab.js +35 -29
  271. package/dist/components/side-panel/panel-title.js +15 -18
  272. package/dist/components/side-panel/panel-toggle.js +30 -31
  273. package/dist/components/side-panel/side-bar.js +100 -91
  274. package/dist/components/side-panel.js +108 -123
  275. package/dist/connect/keplergl-connect.js +17 -26
  276. package/dist/connect/with-local-selector.js +31 -63
  277. package/dist/constants/action-types.js +113 -115
  278. package/dist/constants/color-palette.js +14 -16
  279. package/dist/constants/color-ranges.js +23 -28
  280. package/dist/constants/custom-color-ranges.js +12 -12
  281. package/dist/constants/default-settings.js +323 -254
  282. package/dist/constants/index.js +63 -63
  283. package/dist/constants/keyevent.js +4 -4
  284. package/dist/constants/tooltip.js +5 -5
  285. package/dist/constants/user-feedbacks.js +9 -5
  286. package/dist/constants/user-guides.js +10 -10
  287. package/dist/deckgl-layers/3d-building-layer/3d-building-layer.js +37 -63
  288. package/dist/deckgl-layers/3d-building-layer/3d-building-utils.js +52 -56
  289. package/dist/deckgl-layers/cluster-layer/cluster-layer.js +165 -168
  290. package/dist/deckgl-layers/column-layer/enhanced-column-layer.js +24 -43
  291. package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.d.ts +2 -2
  292. package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +27 -40
  293. package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +27 -40
  294. package/dist/deckgl-layers/layer-utils/cluster-utils.js +60 -68
  295. package/dist/deckgl-layers/layer-utils/cpu-aggregator.d.ts +4 -4
  296. package/dist/deckgl-layers/layer-utils/cpu-aggregator.js +281 -282
  297. package/dist/deckgl-layers/layer-utils/shader-utils.js +2 -2
  298. package/dist/deckgl-layers/line-layer/line-layer.js +62 -70
  299. package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +37 -51
  300. package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.js +65 -85
  301. package/dist/index.js +15 -16
  302. package/dist/layers/aggregation-layer.js +299 -331
  303. package/dist/layers/arc-layer/arc-layer-icon.js +27 -41
  304. package/dist/layers/arc-layer/arc-layer.js +174 -201
  305. package/dist/layers/base-layer.d.ts +1 -1
  306. package/dist/layers/base-layer.js +1371 -1544
  307. package/dist/layers/cluster-layer/cluster-layer-icon.js +30 -44
  308. package/dist/layers/cluster-layer/cluster-layer.js +89 -103
  309. package/dist/layers/default-layer-icon.js +39 -53
  310. package/dist/layers/geojson-layer/geojson-layer-icon.js +42 -55
  311. package/dist/layers/geojson-layer/geojson-layer.js +292 -353
  312. package/dist/layers/geojson-layer/geojson-utils.js +31 -36
  313. package/dist/layers/grid-layer/grid-layer-icon.js +87 -100
  314. package/dist/layers/grid-layer/grid-layer.js +51 -61
  315. package/dist/layers/grid-layer/grid-utils.js +13 -9
  316. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.js +21 -35
  317. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.js +225 -260
  318. package/dist/layers/h3-hexagon-layer/h3-utils.js +16 -16
  319. package/dist/layers/heatmap-layer/heatmap-layer-icon.js +39 -52
  320. package/dist/layers/heatmap-layer/heatmap-layer.js +140 -171
  321. package/dist/layers/hexagon-layer/hexagon-layer-icon.js +51 -64
  322. package/dist/layers/hexagon-layer/hexagon-layer.js +49 -63
  323. package/dist/layers/hexagon-layer/hexagon-utils.js +15 -14
  324. package/dist/layers/icon-layer/icon-info-modal.js +82 -75
  325. package/dist/layers/icon-layer/icon-layer-icon.js +24 -37
  326. package/dist/layers/icon-layer/icon-layer.js +274 -303
  327. package/dist/layers/index.js +43 -29
  328. package/dist/layers/layer-factory.js +25 -41
  329. package/dist/layers/layer-text-label.js +21 -23
  330. package/dist/layers/layer-update.js +16 -18
  331. package/dist/layers/line-layer/line-layer-icon.js +30 -43
  332. package/dist/layers/line-layer/line-layer.js +123 -142
  333. package/dist/layers/mapbox-utils.js +61 -62
  334. package/dist/layers/mapboxgl-layer.js +124 -169
  335. package/dist/layers/point-layer/point-layer-icon.js +45 -59
  336. package/dist/layers/point-layer/point-layer.d.ts +2 -2
  337. package/dist/layers/point-layer/point-layer.js +355 -386
  338. package/dist/layers/s2-geometry-layer/s2-geometry-layer.js +208 -238
  339. package/dist/layers/s2-geometry-layer/s2-layer-icon.js +21 -35
  340. package/dist/layers/s2-geometry-layer/s2-utils.js +9 -8
  341. package/dist/layers/scenegraph-layer/scenegraph-info-modal.js +24 -25
  342. package/dist/layers/scenegraph-layer/scenegraph-layer-icon.js +102 -115
  343. package/dist/layers/scenegraph-layer/scenegraph-layer.js +148 -172
  344. package/dist/layers/trip-layer/trip-info-modal.js +50 -30
  345. package/dist/layers/trip-layer/trip-layer-icon.js +40 -53
  346. package/dist/layers/trip-layer/trip-layer.js +239 -307
  347. package/dist/layers/trip-layer/trip-utils.js +34 -50
  348. package/dist/layers/types.js +2 -2
  349. package/dist/localization/formatted-message.js +8 -10
  350. package/dist/localization/index.js +7 -7
  351. package/dist/localization/locales.js +6 -9
  352. package/dist/localization/messages.js +13 -10
  353. package/dist/localization/translations/ca.js +11 -13
  354. package/dist/localization/translations/cn.js +11 -13
  355. package/dist/localization/translations/en.js +11 -13
  356. package/dist/localization/translations/es.js +11 -13
  357. package/dist/localization/translations/fi.js +11 -13
  358. package/dist/localization/translations/ja.js +11 -13
  359. package/dist/localization/translations/pt.js +11 -13
  360. package/dist/localization/translations/ru.js +11 -13
  361. package/dist/middleware/index.js +3 -5
  362. package/dist/processors/data-processor.js +164 -201
  363. package/dist/processors/file-handler.js +111 -233
  364. package/dist/processors/index.js +4 -4
  365. package/dist/reducers/combined-updaters.js +41 -41
  366. package/dist/reducers/composer-helpers.js +20 -45
  367. package/dist/reducers/composers.js +9 -8
  368. package/dist/reducers/core.js +31 -35
  369. package/dist/reducers/index.js +21 -22
  370. package/dist/reducers/map-state-updaters.js +65 -47
  371. package/dist/reducers/map-state.js +23 -15
  372. package/dist/reducers/map-style-updaters.js +233 -159
  373. package/dist/reducers/map-style.js +30 -16
  374. package/dist/reducers/provider-state-updaters.js +217 -229
  375. package/dist/reducers/provider-state.js +29 -17
  376. package/dist/reducers/root.js +86 -58
  377. package/dist/reducers/ui-state-updaters.js +337 -218
  378. package/dist/reducers/ui-state.js +45 -16
  379. package/dist/reducers/vis-state-merger.js +205 -209
  380. package/dist/reducers/vis-state-selectors.js +5 -19
  381. package/dist/reducers/vis-state-updaters.js +1003 -876
  382. package/dist/reducers/vis-state.js +75 -16
  383. package/dist/schemas/dataset-schema.js +84 -108
  384. package/dist/schemas/index.js +28 -29
  385. package/dist/schemas/map-state-schema.js +21 -18
  386. package/dist/schemas/map-style-schema.js +47 -55
  387. package/dist/schemas/schema-manager.js +147 -161
  388. package/dist/schemas/schema-utils.js +8 -9
  389. package/dist/schemas/schema.js +72 -87
  390. package/dist/schemas/versions.js +3 -3
  391. package/dist/schemas/vis-state-schema.js +441 -583
  392. package/dist/styles/base.js +1217 -1021
  393. package/dist/styles/index.js +3 -3
  394. package/dist/styles/media-breakpoints.js +23 -18
  395. package/dist/tasks/tasks.js +36 -39
  396. package/dist/templates/export-map-html.js +233 -4
  397. package/dist/utils/aggregate-utils.js +13 -16
  398. package/dist/utils/color-utils.js +29 -37
  399. package/dist/utils/custom-scales.js +3 -3
  400. package/dist/utils/data-scale-utils.js +6 -13
  401. package/dist/utils/data-utils.js +60 -83
  402. package/dist/utils/dataset-utils.js +48 -77
  403. package/dist/utils/dom-to-image.js +108 -163
  404. package/dist/utils/dom-utils.js +88 -105
  405. package/dist/utils/export-utils.js +116 -103
  406. package/dist/utils/filter-utils.js +379 -374
  407. package/dist/utils/gl-utils.js +16 -15
  408. package/dist/utils/gpu-filter-utils.js +54 -73
  409. package/dist/utils/index.js +47 -48
  410. package/dist/utils/interaction-utils.js +53 -46
  411. package/dist/utils/layer-utils.js +89 -78
  412. package/dist/utils/locale-utils.js +24 -16
  413. package/dist/utils/map-style-utils/mapbox-gl-style-editor.js +67 -76
  414. package/dist/utils/map-style-utils/mapbox-utils.js +4 -3
  415. package/dist/utils/mapbox-utils.js +3 -4
  416. package/dist/utils/notifications-utils.js +33 -38
  417. package/dist/utils/observe-dimensions.js +42 -54
  418. package/dist/utils/projection-utils.js +14 -11
  419. package/dist/utils/split-map-utils.js +30 -33
  420. package/dist/utils/table-utils/data-container-utils.js +15 -14
  421. package/dist/utils/table-utils/data-row.js +58 -65
  422. package/dist/utils/table-utils/index.js +2 -2
  423. package/dist/utils/table-utils/indexed-data-container.js +105 -173
  424. package/dist/utils/table-utils/kepler-table.js +362 -386
  425. package/dist/utils/table-utils/row-data-container.js +99 -164
  426. package/dist/utils/utils.js +29 -30
  427. package/package.json +21 -21
  428. package/src/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.ts +2 -2
  429. package/src/deckgl-layers/layer-utils/cpu-aggregator.ts +21 -11
  430. package/src/layers/base-layer.ts +17 -10
@@ -1,49 +1,47 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  Object.defineProperty(exports, "IconInfoModalFactory", {
9
8
  enumerable: true,
10
- get: function get() {
11
- return _iconInfoModal["default"];
9
+ get: function () {
10
+ return _iconInfoModal.default;
12
11
  }
13
12
  });
14
13
  exports.KeplerGlLayers = void 0;
15
14
  Object.defineProperty(exports, "LAYER_ID_LENGTH", {
16
15
  enumerable: true,
17
- get: function get() {
16
+ get: function () {
18
17
  return _baseLayer.LAYER_ID_LENGTH;
19
18
  }
20
19
  });
21
20
  Object.defineProperty(exports, "LAYER_VIS_CONFIGS", {
22
21
  enumerable: true,
23
- get: function get() {
22
+ get: function () {
24
23
  return _layerFactory.LAYER_VIS_CONFIGS;
25
24
  }
26
25
  });
27
26
  Object.defineProperty(exports, "Layer", {
28
27
  enumerable: true,
29
- get: function get() {
30
- return _baseLayer["default"];
28
+ get: function () {
29
+ return _baseLayer.default;
31
30
  }
32
31
  });
33
32
  exports.LayerClasses = void 0;
34
33
  Object.defineProperty(exports, "OVERLAY_TYPE", {
35
34
  enumerable: true,
36
- get: function get() {
35
+ get: function () {
37
36
  return _baseLayer.OVERLAY_TYPE;
38
37
  }
39
38
  });
40
39
  Object.defineProperty(exports, "colorMaker", {
41
40
  enumerable: true,
42
- get: function get() {
41
+ get: function () {
43
42
  return _baseLayer.colorMaker;
44
43
  }
45
44
  });
46
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
47
45
  var _pointLayer = _interopRequireDefault(require("./point-layer/point-layer"));
48
46
  var _arcLayer = _interopRequireDefault(require("./arc-layer/arc-layer"));
49
47
  var _lineLayer = _interopRequireDefault(require("./line-layer/line-layer"));
@@ -61,7 +59,9 @@ var _types = require("./types");
61
59
  var _iconInfoModal = _interopRequireDefault(require("./icon-layer/icon-info-modal"));
62
60
  var _baseLayer = _interopRequireWildcard(require("./base-layer"));
63
61
  var _layerFactory = require("./layer-factory");
64
- var _LayerClasses; // Copyright (c) 2022 Uber Technologies, Inc.
62
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
63
+ 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; }
64
+ // Copyright (c) 2022 Uber Technologies, Inc.
65
65
  //
66
66
  // Permission is hereby granted, free of charge, to any person obtaining a copy
67
67
  // of this software and associated documentation files (the "Software"), to deal
@@ -80,26 +80,40 @@ var _LayerClasses; // Copyright (c) 2022 Uber Technologies, Inc.
80
80
  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
81
81
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
82
82
  // THE SOFTWARE.
83
+
83
84
  // base layer
84
- 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); }
85
- 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; }
85
+
86
86
  // individual layers
87
- var KeplerGlLayers = exports.KeplerGlLayers = {
88
- PointLayer: _pointLayer["default"],
89
- ArcLayer: _arcLayer["default"],
90
- LineLayer: _lineLayer["default"],
91
- GridLayer: _gridLayer["default"],
92
- HexagonLayer: _hexagonLayer["default"],
93
- GeojsonLayer: _geojsonLayer["default"],
94
- ClusterLayer: _clusterLayer["default"],
95
- IconLayer: _iconLayer["default"],
96
- HeatmapLayer: _heatmapLayer["default"],
97
- H3Layer: _h3HexagonLayer["default"],
98
- ScenegraphLayer: _scenegraphLayer["default"],
99
- TripLayer: _tripLayer["default"],
100
- S2GeometryLayer: _s2GeometryLayer["default"]
87
+ const KeplerGlLayers = exports.KeplerGlLayers = {
88
+ PointLayer: _pointLayer.default,
89
+ ArcLayer: _arcLayer.default,
90
+ LineLayer: _lineLayer.default,
91
+ GridLayer: _gridLayer.default,
92
+ HexagonLayer: _hexagonLayer.default,
93
+ GeojsonLayer: _geojsonLayer.default,
94
+ ClusterLayer: _clusterLayer.default,
95
+ IconLayer: _iconLayer.default,
96
+ HeatmapLayer: _heatmapLayer.default,
97
+ H3Layer: _h3HexagonLayer.default,
98
+ ScenegraphLayer: _scenegraphLayer.default,
99
+ TripLayer: _tripLayer.default,
100
+ S2GeometryLayer: _s2GeometryLayer.default
101
+ };
102
+ const LayerClasses = exports.LayerClasses = {
103
+ [_types.LAYER_TYPES.point]: _pointLayer.default,
104
+ [_types.LAYER_TYPES.arc]: _arcLayer.default,
105
+ [_types.LAYER_TYPES.line]: _lineLayer.default,
106
+ [_types.LAYER_TYPES.grid]: _gridLayer.default,
107
+ [_types.LAYER_TYPES.hexagon]: _hexagonLayer.default,
108
+ [_types.LAYER_TYPES.geojson]: _geojsonLayer.default,
109
+ [_types.LAYER_TYPES.cluster]: _clusterLayer.default,
110
+ [_types.LAYER_TYPES.icon]: _iconLayer.default,
111
+ [_types.LAYER_TYPES.heatmap]: _heatmapLayer.default,
112
+ [_types.LAYER_TYPES.hexagonId]: _h3HexagonLayer.default,
113
+ [_types.LAYER_TYPES['3D']]: _scenegraphLayer.default,
114
+ [_types.LAYER_TYPES.trip]: _tripLayer.default,
115
+ [_types.LAYER_TYPES.s2]: _s2GeometryLayer.default
101
116
  };
102
- var LayerClasses = exports.LayerClasses = (_LayerClasses = {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_LayerClasses, _types.LAYER_TYPES.point, _pointLayer["default"]), _types.LAYER_TYPES.arc, _arcLayer["default"]), _types.LAYER_TYPES.line, _lineLayer["default"]), _types.LAYER_TYPES.grid, _gridLayer["default"]), _types.LAYER_TYPES.hexagon, _hexagonLayer["default"]), _types.LAYER_TYPES.geojson, _geojsonLayer["default"]), _types.LAYER_TYPES.cluster, _clusterLayer["default"]), _types.LAYER_TYPES.icon, _iconLayer["default"]), _types.LAYER_TYPES.heatmap, _heatmapLayer["default"]), _types.LAYER_TYPES.hexagonId, _h3HexagonLayer["default"]), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_LayerClasses, _types.LAYER_TYPES['3D'], _scenegraphLayer["default"]), _types.LAYER_TYPES.trip, _tripLayer["default"]), _types.LAYER_TYPES.s2, _s2GeometryLayer["default"]));
103
117
 
104
118
  // CARTO ADDITIONS
105
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcG9pbnRMYXllciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2FyY0xheWVyIiwiX2xpbmVMYXllciIsIl9ncmlkTGF5ZXIiLCJfaGV4YWdvbkxheWVyIiwiX2dlb2pzb25MYXllciIsIl9jbHVzdGVyTGF5ZXIiLCJfaWNvbkxheWVyIiwiX2hlYXRtYXBMYXllciIsIl9oM0hleGFnb25MYXllciIsIl9zY2VuZWdyYXBoTGF5ZXIiLCJfdHJpcExheWVyIiwiX3MyR2VvbWV0cnlMYXllciIsIl90eXBlcyIsIl9pY29uSW5mb01vZGFsIiwiX2Jhc2VMYXllciIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2xheWVyRmFjdG9yeSIsIl9MYXllckNsYXNzZXMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJLZXBsZXJHbExheWVycyIsImV4cG9ydHMiLCJQb2ludExheWVyIiwiQXJjTGF5ZXIiLCJMaW5lTGF5ZXIiLCJHcmlkTGF5ZXIiLCJIZXhhZ29uTGF5ZXIiLCJHZW9qc29uTGF5ZXIiLCJDbHVzdGVyTGF5ZXIiLCJJY29uTGF5ZXIiLCJIZWF0bWFwTGF5ZXIiLCJIM0xheWVyIiwiU2NlbmVncmFwaExheWVyIiwiVHJpcExheWVyIiwiUzJHZW9tZXRyeUxheWVyIiwiTGF5ZXJDbGFzc2VzIiwiX2RlZmluZVByb3BlcnR5MiIsIkxBWUVSX1RZUEVTIiwicG9pbnQiLCJhcmMiLCJsaW5lIiwiZ3JpZCIsImhleGFnb24iLCJnZW9qc29uIiwiY2x1c3RlciIsImljb24iLCJoZWF0bWFwIiwiaGV4YWdvbklkIiwidHJpcCIsInMyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xheWVycy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge2RlZmF1bHQgYXMgUG9pbnRMYXllcn0gZnJvbSAnLi9wb2ludC1sYXllci9wb2ludC1sYXllcic7XG5pbXBvcnQge2RlZmF1bHQgYXMgQXJjTGF5ZXJ9IGZyb20gJy4vYXJjLWxheWVyL2FyYy1sYXllcic7XG5pbXBvcnQge2RlZmF1bHQgYXMgTGluZUxheWVyfSBmcm9tICcuL2xpbmUtbGF5ZXIvbGluZS1sYXllcic7XG5pbXBvcnQge2RlZmF1bHQgYXMgR3JpZExheWVyfSBmcm9tICcuL2dyaWQtbGF5ZXIvZ3JpZC1sYXllcic7XG5pbXBvcnQge2RlZmF1bHQgYXMgSGV4YWdvbkxheWVyfSBmcm9tICcuL2hleGFnb24tbGF5ZXIvaGV4YWdvbi1sYXllcic7XG5pbXBvcnQge2RlZmF1bHQgYXMgR2VvanNvbkxheWVyfSBmcm9tICcuL2dlb2pzb24tbGF5ZXIvZ2VvanNvbi1sYXllcic7XG5pbXBvcnQge2RlZmF1bHQgYXMgQ2x1c3RlckxheWVyfSBmcm9tICcuL2NsdXN0ZXItbGF5ZXIvY2x1c3Rlci1sYXllcic7XG5pbXBvcnQge2RlZmF1bHQgYXMgSWNvbkxheWVyfSBmcm9tICcuL2ljb24tbGF5ZXIvaWNvbi1sYXllcic7XG5pbXBvcnQge2RlZmF1bHQgYXMgSGVhdG1hcExheWVyfSBmcm9tICcuL2hlYXRtYXAtbGF5ZXIvaGVhdG1hcC1sYXllcic7XG5pbXBvcnQge2RlZmF1bHQgYXMgSDNMYXllcn0gZnJvbSAnLi9oMy1oZXhhZ29uLWxheWVyL2gzLWhleGFnb24tbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIFNjZW5lZ3JhcGhMYXllcn0gZnJvbSAnLi9zY2VuZWdyYXBoLWxheWVyL3NjZW5lZ3JhcGgtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIFRyaXBMYXllcn0gZnJvbSAnLi90cmlwLWxheWVyL3RyaXAtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIFMyR2VvbWV0cnlMYXllcn0gZnJvbSAnLi9zMi1nZW9tZXRyeS1sYXllci9zMi1nZW9tZXRyeS1sYXllcic7XG5pbXBvcnQge0xBWUVSX1RZUEVTfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCBJY29uSW5mb01vZGFsRmFjdG9yeSBmcm9tICcuL2ljb24tbGF5ZXIvaWNvbi1pbmZvLW1vZGFsJztcblxuLy8gYmFzZSBsYXllclxuZXhwb3J0IHtkZWZhdWx0IGFzIExheWVyLCBPVkVSTEFZX1RZUEUsIExBWUVSX0lEX0xFTkdUSCwgY29sb3JNYWtlcn0gZnJvbSAnLi9iYXNlLWxheWVyJztcbmV4cG9ydCB0eXBlIHtMYXllckJhc2VDb25maWcsIExheWVyQ29sdW1ucywgTGF5ZXJDb2x1bW4sIFVwZGF0ZVRyaWdnZXIsIFVwZGF0ZVRyaWdnZXJzfSBmcm9tICcuL2Jhc2UtbGF5ZXInO1xuXG4vLyBpbmRpdmlkdWFsIGxheWVyc1xuZXhwb3J0IGNvbnN0IEtlcGxlckdsTGF5ZXJzID0ge1xuICBQb2ludExheWVyLFxuICBBcmNMYXllcixcbiAgTGluZUxheWVyLFxuICBHcmlkTGF5ZXIsXG4gIEhleGFnb25MYXllcixcbiAgR2VvanNvbkxheWVyLFxuICBDbHVzdGVyTGF5ZXIsXG4gIEljb25MYXllcixcbiAgSGVhdG1hcExheWVyLFxuICBIM0xheWVyLFxuICBTY2VuZWdyYXBoTGF5ZXIsXG4gIFRyaXBMYXllcixcbiAgUzJHZW9tZXRyeUxheWVyXG59O1xuXG5leHBvcnQgdHlwZSBMYXllckNsYXNzZXNUeXBlID0gdHlwZW9mIExheWVyQ2xhc3NlcztcbmV4cG9ydCBjb25zdCBMYXllckNsYXNzZXMgPSB7XG4gIFtMQVlFUl9UWVBFUy5wb2ludF06IFBvaW50TGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy5hcmNdOiBBcmNMYXllcixcbiAgW0xBWUVSX1RZUEVTLmxpbmVdOiBMaW5lTGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy5ncmlkXTogR3JpZExheWVyLFxuICBbTEFZRVJfVFlQRVMuaGV4YWdvbl06IEhleGFnb25MYXllcixcbiAgW0xBWUVSX1RZUEVTLmdlb2pzb25dOiBHZW9qc29uTGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy5jbHVzdGVyXTogQ2x1c3RlckxheWVyLFxuICBbTEFZRVJfVFlQRVMuaWNvbl06IEljb25MYXllcixcbiAgW0xBWUVSX1RZUEVTLmhlYXRtYXBdOiBIZWF0bWFwTGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy5oZXhhZ29uSWRdOiBIM0xheWVyLFxuICBbTEFZRVJfVFlQRVNbJzNEJ11dOiBTY2VuZWdyYXBoTGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy50cmlwXTogVHJpcExheWVyLFxuICBbTEFZRVJfVFlQRVMuczJdOiBTMkdlb21ldHJ5TGF5ZXJcbn07XG5cbmV4cG9ydCB0eXBlIE9WRVJMQVlfVFlQRSA9IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xuXG5leHBvcnQge0xBWUVSX1ZJU19DT05GSUdTfSBmcm9tICcuL2xheWVyLWZhY3RvcnknO1xuZXhwb3J0IHR5cGUge0xheWVyVmlzQ29uZmlnfSBmcm9tICcuL2xheWVyLWZhY3RvcnknO1xuXG4vLyBDQVJUTyBBRERJVElPTlNcbmV4cG9ydCB7SWNvbkluZm9Nb2RhbEZhY3Rvcnl9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBLElBQUFBLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FB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
119
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcG9pbnRMYXllciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2FyY0xheWVyIiwiX2xpbmVMYXllciIsIl9ncmlkTGF5ZXIiLCJfaGV4YWdvbkxheWVyIiwiX2dlb2pzb25MYXllciIsIl9jbHVzdGVyTGF5ZXIiLCJfaWNvbkxheWVyIiwiX2hlYXRtYXBMYXllciIsIl9oM0hleGFnb25MYXllciIsIl9zY2VuZWdyYXBoTGF5ZXIiLCJfdHJpcExheWVyIiwiX3MyR2VvbWV0cnlMYXllciIsIl90eXBlcyIsIl9pY29uSW5mb01vZGFsIiwiX2Jhc2VMYXllciIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2xheWVyRmFjdG9yeSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIktlcGxlckdsTGF5ZXJzIiwiZXhwb3J0cyIsIlBvaW50TGF5ZXIiLCJBcmNMYXllciIsIkxpbmVMYXllciIsIkdyaWRMYXllciIsIkhleGFnb25MYXllciIsIkdlb2pzb25MYXllciIsIkNsdXN0ZXJMYXllciIsIkljb25MYXllciIsIkhlYXRtYXBMYXllciIsIkgzTGF5ZXIiLCJTY2VuZWdyYXBoTGF5ZXIiLCJUcmlwTGF5ZXIiLCJTMkdlb21ldHJ5TGF5ZXIiLCJMYXllckNsYXNzZXMiLCJMQVlFUl9UWVBFUyIsInBvaW50IiwiYXJjIiwibGluZSIsImdyaWQiLCJoZXhhZ29uIiwiZ2VvanNvbiIsImNsdXN0ZXIiLCJpY29uIiwiaGVhdG1hcCIsImhleGFnb25JZCIsInRyaXAiLCJzMiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllcnMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtkZWZhdWx0IGFzIFBvaW50TGF5ZXJ9IGZyb20gJy4vcG9pbnQtbGF5ZXIvcG9pbnQtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEFyY0xheWVyfSBmcm9tICcuL2FyYy1sYXllci9hcmMtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIExpbmVMYXllcn0gZnJvbSAnLi9saW5lLWxheWVyL2xpbmUtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEdyaWRMYXllcn0gZnJvbSAnLi9ncmlkLWxheWVyL2dyaWQtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEhleGFnb25MYXllcn0gZnJvbSAnLi9oZXhhZ29uLWxheWVyL2hleGFnb24tbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEdlb2pzb25MYXllcn0gZnJvbSAnLi9nZW9qc29uLWxheWVyL2dlb2pzb24tbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIENsdXN0ZXJMYXllcn0gZnJvbSAnLi9jbHVzdGVyLWxheWVyL2NsdXN0ZXItbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEljb25MYXllcn0gZnJvbSAnLi9pY29uLWxheWVyL2ljb24tbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEhlYXRtYXBMYXllcn0gZnJvbSAnLi9oZWF0bWFwLWxheWVyL2hlYXRtYXAtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEgzTGF5ZXJ9IGZyb20gJy4vaDMtaGV4YWdvbi1sYXllci9oMy1oZXhhZ29uLWxheWVyJztcbmltcG9ydCB7ZGVmYXVsdCBhcyBTY2VuZWdyYXBoTGF5ZXJ9IGZyb20gJy4vc2NlbmVncmFwaC1sYXllci9zY2VuZWdyYXBoLWxheWVyJztcbmltcG9ydCB7ZGVmYXVsdCBhcyBUcmlwTGF5ZXJ9IGZyb20gJy4vdHJpcC1sYXllci90cmlwLWxheWVyJztcbmltcG9ydCB7ZGVmYXVsdCBhcyBTMkdlb21ldHJ5TGF5ZXJ9IGZyb20gJy4vczItZ2VvbWV0cnktbGF5ZXIvczItZ2VvbWV0cnktbGF5ZXInO1xuaW1wb3J0IHtMQVlFUl9UWVBFU30gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgSWNvbkluZm9Nb2RhbEZhY3RvcnkgZnJvbSAnLi9pY29uLWxheWVyL2ljb24taW5mby1tb2RhbCc7XG5cbi8vIGJhc2UgbGF5ZXJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBMYXllciwgT1ZFUkxBWV9UWVBFLCBMQVlFUl9JRF9MRU5HVEgsIGNvbG9yTWFrZXJ9IGZyb20gJy4vYmFzZS1sYXllcic7XG5leHBvcnQgdHlwZSB7TGF5ZXJCYXNlQ29uZmlnLCBMYXllckNvbHVtbnMsIExheWVyQ29sdW1uLCBVcGRhdGVUcmlnZ2VyLCBVcGRhdGVUcmlnZ2Vyc30gZnJvbSAnLi9iYXNlLWxheWVyJztcblxuLy8gaW5kaXZpZHVhbCBsYXllcnNcbmV4cG9ydCBjb25zdCBLZXBsZXJHbExheWVycyA9IHtcbiAgUG9pbnRMYXllcixcbiAgQXJjTGF5ZXIsXG4gIExpbmVMYXllcixcbiAgR3JpZExheWVyLFxuICBIZXhhZ29uTGF5ZXIsXG4gIEdlb2pzb25MYXllcixcbiAgQ2x1c3RlckxheWVyLFxuICBJY29uTGF5ZXIsXG4gIEhlYXRtYXBMYXllcixcbiAgSDNMYXllcixcbiAgU2NlbmVncmFwaExheWVyLFxuICBUcmlwTGF5ZXIsXG4gIFMyR2VvbWV0cnlMYXllclxufTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJDbGFzc2VzVHlwZSA9IHR5cGVvZiBMYXllckNsYXNzZXM7XG5leHBvcnQgY29uc3QgTGF5ZXJDbGFzc2VzID0ge1xuICBbTEFZRVJfVFlQRVMucG9pbnRdOiBQb2ludExheWVyLFxuICBbTEFZRVJfVFlQRVMuYXJjXTogQXJjTGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy5saW5lXTogTGluZUxheWVyLFxuICBbTEFZRVJfVFlQRVMuZ3JpZF06IEdyaWRMYXllcixcbiAgW0xBWUVSX1RZUEVTLmhleGFnb25dOiBIZXhhZ29uTGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy5nZW9qc29uXTogR2VvanNvbkxheWVyLFxuICBbTEFZRVJfVFlQRVMuY2x1c3Rlcl06IENsdXN0ZXJMYXllcixcbiAgW0xBWUVSX1RZUEVTLmljb25dOiBJY29uTGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy5oZWF0bWFwXTogSGVhdG1hcExheWVyLFxuICBbTEFZRVJfVFlQRVMuaGV4YWdvbklkXTogSDNMYXllcixcbiAgW0xBWUVSX1RZUEVTWyczRCddXTogU2NlbmVncmFwaExheWVyLFxuICBbTEFZRVJfVFlQRVMudHJpcF06IFRyaXBMYXllcixcbiAgW0xBWUVSX1RZUEVTLnMyXTogUzJHZW9tZXRyeUxheWVyXG59O1xuXG5leHBvcnQgdHlwZSBPVkVSTEFZX1RZUEUgPSB7W2tleTogc3RyaW5nXTogc3RyaW5nfTtcblxuZXhwb3J0IHtMQVlFUl9WSVNfQ09ORklHU30gZnJvbSAnLi9sYXllci1mYWN0b3J5JztcbmV4cG9ydCB0eXBlIHtMYXllclZpc0NvbmZpZ30gZnJvbSAnLi9sYXllci1mYWN0b3J5JztcblxuLy8gQ0FSVE8gQURESVRJT05TXG5leHBvcnQge0ljb25JbmZvTW9kYWxGYWN0b3J5fTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkEsSUFBQUEsV0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxH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
@@ -6,17 +6,15 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  Object.defineProperty(exports, "DEFAULT_COLOR_RANGE", {
8
8
  enumerable: true,
9
- get: function get() {
9
+ get: function () {
10
10
  return _colorRanges.DEFAULT_COLOR_RANGE;
11
11
  }
12
12
  });
13
13
  exports.UNKNOWN_COLOR_KEY = exports.PROPERTY_GROUPS = exports.LAYER_VIS_CONFIGS = exports.LAYER_TEXT_CONFIGS = exports.DEFAULT_TEXT_LABEL = exports.DEFAULT_SECONDARY_TEXT_LABEL = exports.DEFAULT_LAYER_OPACITY = exports.DEFAULT_LAYER_LABEL = exports.DEFAULT_HIGHLIGHT_COLOR = exports.DEFAULT_CUSTOM_PALETTE = exports.DEFAULT_COLOR_UI = void 0;
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
14
  var _keymirror = _interopRequireDefault(require("keymirror"));
16
15
  var _defaultSettings = require("../constants/default-settings");
17
16
  var _colorRanges = require("../constants/color-ranges");
18
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
19
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // Copyright (c) 2022 Uber Technologies, Inc.
17
+ // Copyright (c) 2022 Uber Technologies, Inc.
20
18
  //
21
19
  // Permission is hereby granted, free of charge, to any person obtaining a copy
22
20
  // of this software and associated documentation files (the "Software"), to deal
@@ -35,9 +33,10 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
35
33
  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
36
34
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
37
35
  // THE SOFTWARE.
36
+
38
37
  // TODO: Move this to individual layers
39
38
 
40
- var PROPERTY_GROUPS = exports.PROPERTY_GROUPS = (0, _keymirror["default"])({
39
+ const PROPERTY_GROUPS = exports.PROPERTY_GROUPS = (0, _keymirror.default)({
41
40
  color: null,
42
41
  stroke: null,
43
42
  customMarkers: null,
@@ -49,10 +48,10 @@ var PROPERTY_GROUPS = exports.PROPERTY_GROUPS = (0, _keymirror["default"])({
49
48
  precision: null,
50
49
  display: null
51
50
  });
52
- var DEFAULT_LAYER_OPACITY = exports.DEFAULT_LAYER_OPACITY = 0.8;
53
- var DEFAULT_HIGHLIGHT_COLOR = exports.DEFAULT_HIGHLIGHT_COLOR = [252, 242, 26, 255];
54
- var DEFAULT_LAYER_LABEL = exports.DEFAULT_LAYER_LABEL = 'new layer';
55
- var DEFAULT_TEXT_LABEL = exports.DEFAULT_TEXT_LABEL = {
51
+ const DEFAULT_LAYER_OPACITY = exports.DEFAULT_LAYER_OPACITY = 0.8;
52
+ const DEFAULT_HIGHLIGHT_COLOR = exports.DEFAULT_HIGHLIGHT_COLOR = [252, 242, 26, 255];
53
+ const DEFAULT_LAYER_LABEL = exports.DEFAULT_LAYER_LABEL = 'new layer';
54
+ const DEFAULT_TEXT_LABEL = exports.DEFAULT_TEXT_LABEL = {
56
55
  field: null,
57
56
  color: [44, 48, 50],
58
57
  outlineColor: [255, 255, 255],
@@ -61,18 +60,19 @@ var DEFAULT_TEXT_LABEL = exports.DEFAULT_TEXT_LABEL = {
61
60
  anchor: 'start',
62
61
  alignment: 'center'
63
62
  };
64
- var DEFAULT_SECONDARY_TEXT_LABEL = exports.DEFAULT_SECONDARY_TEXT_LABEL = _objectSpread(_objectSpread({}, DEFAULT_TEXT_LABEL), {}, {
63
+ const DEFAULT_SECONDARY_TEXT_LABEL = exports.DEFAULT_SECONDARY_TEXT_LABEL = {
64
+ ...DEFAULT_TEXT_LABEL,
65
65
  color: [128, 130, 132],
66
66
  size: 10
67
- });
68
- var DEFAULT_CUSTOM_PALETTE = exports.DEFAULT_CUSTOM_PALETTE = {
67
+ };
68
+ const DEFAULT_CUSTOM_PALETTE = exports.DEFAULT_CUSTOM_PALETTE = {
69
69
  name: 'color.customPalette',
70
70
  type: 'custom',
71
71
  category: 'Custom',
72
72
  colors: []
73
73
  };
74
- var UNKNOWN_COLOR_KEY = exports.UNKNOWN_COLOR_KEY = '__unknownColor__';
75
- var DEFAULT_COLOR_UI = exports.DEFAULT_COLOR_UI = {
74
+ const UNKNOWN_COLOR_KEY = exports.UNKNOWN_COLOR_KEY = '__unknownColor__';
75
+ const DEFAULT_COLOR_UI = exports.DEFAULT_COLOR_UI = {
76
76
  // customPalette in edit
77
77
  customPalette: DEFAULT_CUSTOM_PALETTE,
78
78
  // show color sketcher modal
@@ -88,7 +88,7 @@ var DEFAULT_COLOR_UI = exports.DEFAULT_COLOR_UI = {
88
88
  custom: false
89
89
  }
90
90
  };
91
- var LAYER_VIS_CONFIGS = exports.LAYER_VIS_CONFIGS = {
91
+ const LAYER_VIS_CONFIGS = exports.LAYER_VIS_CONFIGS = {
92
92
  thickness: {
93
93
  type: 'number',
94
94
  defaultValue: 2,
@@ -233,9 +233,7 @@ var LAYER_VIS_CONFIGS = exports.LAYER_VIS_CONFIGS = {
233
233
  options: Object.keys(_defaultSettings.AGGREGATION_TYPES),
234
234
  group: PROPERTY_GROUPS.color,
235
235
  property: 'colorAggregation',
236
- condition: function condition(config) {
237
- return Boolean(config.colorField);
238
- }
236
+ condition: config => Boolean(config.colorField)
239
237
  },
240
238
  sizeAggregation: {
241
239
  type: 'select',
@@ -245,9 +243,7 @@ var LAYER_VIS_CONFIGS = exports.LAYER_VIS_CONFIGS = {
245
243
  options: Object.keys(_defaultSettings.AGGREGATION_TYPES),
246
244
  group: PROPERTY_GROUPS.height,
247
245
  property: 'sizeAggregation',
248
- condition: function condition(config) {
249
- return Boolean(config.sizeField);
250
- }
246
+ condition: config => Boolean(config.sizeField)
251
247
  },
252
248
  // @ts-expect-error
253
249
  heightAggregation: {
@@ -257,42 +253,32 @@ var LAYER_VIS_CONFIGS = exports.LAYER_VIS_CONFIGS = {
257
253
  options: Object.keys(_defaultSettings.AGGREGATION_TYPES),
258
254
  group: PROPERTY_GROUPS.height,
259
255
  property: 'heightAggregation',
260
- condition: function condition(config) {
261
- return config.heightField;
262
- }
256
+ condition: config => config.heightField
263
257
  },
264
258
  percentile: {
265
259
  type: 'number',
266
260
  defaultValue: [0, 100],
267
- label: function label(config) {
268
- return "Filter by ".concat(config.colorField ? "".concat(config.visConfig.colorAggregation, " ").concat(config.colorField.name) : 'count', " percentile");
269
- },
261
+ label: config => `Filter by ${config.colorField ? `${config.visConfig.colorAggregation} ${config.colorField.name}` : 'count'} percentile`,
270
262
  isRanged: true,
271
263
  range: [0, 100],
272
264
  step: 0.01,
273
265
  group: PROPERTY_GROUPS.color,
274
266
  property: 'percentile',
275
267
  // percentile filter only makes sense with linear aggregation
276
- condition: function condition(config) {
277
- return config.colorScale !== 'ordinal';
278
- },
268
+ condition: config => config.colorScale !== 'ordinal',
279
269
  allowCustomValue: false
280
270
  },
281
271
  elevationPercentile: {
282
272
  type: 'number',
283
273
  defaultValue: [0, 100],
284
- label: function label(config) {
285
- return "Filter by ".concat(config.sizeField ? "".concat(config.visConfig.sizeAggregation, " ").concat(config.sizeField.name) : 'count', " percentile");
286
- },
274
+ label: config => `Filter by ${config.sizeField ? `${config.visConfig.sizeAggregation} ${config.sizeField.name}` : 'count'} percentile`,
287
275
  isRanged: true,
288
276
  range: [0, 100],
289
277
  step: 0.01,
290
278
  group: PROPERTY_GROUPS.height,
291
279
  property: 'elevationPercentile',
292
280
  // percentile filter only makes sense with linear aggregation
293
- condition: function condition(config) {
294
- return Boolean(config.visConfig.enable3d && (config.colorField || config.sizeField));
295
- },
281
+ condition: config => Boolean(config.visConfig.enable3d && (config.colorField || config.sizeField)),
296
282
  allowCustomValue: false
297
283
  },
298
284
  resolution: {
@@ -446,9 +432,7 @@ var LAYER_VIS_CONFIGS = exports.LAYER_VIS_CONFIGS = {
446
432
  step: 0.01,
447
433
  group: PROPERTY_GROUPS.cell,
448
434
  property: 'weight',
449
- condition: function condition(config) {
450
- return Boolean(config.weightField);
451
- },
435
+ condition: config => Boolean(config.weightField),
452
436
  allowCustomValue: true
453
437
  },
454
438
  heatmapRadius: {
@@ -491,7 +475,7 @@ var LAYER_VIS_CONFIGS = exports.LAYER_VIS_CONFIGS = {
491
475
  property: 'customMarkersRange'
492
476
  }
493
477
  };
494
- var LAYER_TEXT_CONFIGS = exports.LAYER_TEXT_CONFIGS = {
478
+ const LAYER_TEXT_CONFIGS = exports.LAYER_TEXT_CONFIGS = {
495
479
  fontSize: {
496
480
  type: 'number',
497
481
  range: [6, 32],
@@ -514,4 +498,4 @@ var LAYER_TEXT_CONFIGS = exports.LAYER_TEXT_CONFIGS = {
514
498
  searchable: false
515
499
  }
516
500
  };
517
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfa2V5bWlycm9yIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGVmYXVsdFNldHRpbmdzIiwiX2NvbG9yUmFuZ2VzIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJQUk9QRVJUWV9HUk9VUFMiLCJleHBvcnRzIiwia2V5TWlycm9yIiwiY29sb3IiLCJzdHJva2UiLCJjdXN0b21NYXJrZXJzIiwicmFkaXVzIiwiaGVpZ2h0IiwiYW5nbGUiLCJjZWxsIiwicHJlY2lzaW9uIiwiZGlzcGxheSIsIkRFRkFVTFRfTEFZRVJfT1BBQ0lUWSIsIkRFRkFVTFRfSElHSExJR0hUX0NPTE9SIiwiREVGQVVMVF9MQVlFUl9MQUJFTCIsIkRFRkFVTFRfVEVYVF9MQUJFTCIsImZpZWxkIiwib3V0bGluZUNvbG9yIiwic2l6ZSIsIm9mZnNldCIsImFuY2hvciIsImFsaWdubWVudCIsIkRFRkFVTFRfU0VDT05EQVJZX1RFWFRfTEFCRUwiLCJERUZBVUxUX0NVU1RPTV9QQUxFVFRFIiwibmFtZSIsInR5cGUiLCJjYXRlZ29yeSIsImNvbG9ycyIsIlVOS05PV05fQ09MT1JfS0VZIiwiREVGQVVMVF9DT0xPUl9VSSIsImN1c3RvbVBhbGV0dGUiLCJzaG93U2tldGNoZXIiLCJzaG93RHJvcGRvd24iLCJjb2xvclJhbmdlQ29uZmlnIiwic3RlcHMiLCJyZXZlcnNlZCIsImN1c3RvbSIsIkxBWUVSX1ZJU19DT05GSUdTIiwidGhpY2tuZXNzIiwiZGVmYXVsdFZhbHVlIiwibGFiZWwiLCJpc1JhbmdlZCIsInJhbmdlIiwic3RlcCIsImdyb3VwIiwicHJvcGVydHkiLCJhbGxvd0N1c3RvbVZhbHVlIiwic3Ryb2tlV2lkdGhSYW5nZSIsInRyYWlsTGVuZ3RoIiwicmFkaXVzUmFuZ2UiLCJjbHVzdGVyUmFkaXVzIiwiY2x1c3RlclJhZGl1c1JhbmdlIiwib3BhY2l0eSIsImNvdmVyYWdlIiwib3V0bGluZSIsImNvbG9yUmFuZ2UiLCJERUZBVUxUX0NPTE9SX1JBTkdFIiwic3Ryb2tlQ29sb3JSYW5nZSIsInRhcmdldENvbG9yIiwic3Ryb2tlQ29sb3IiLCJjb2xvckFnZ3JlZ2F0aW9uIiwiQUdHUkVHQVRJT05fVFlQRVMiLCJhdmVyYWdlIiwib3B0aW9ucyIsImNvbmRpdGlvbiIsImNvbmZpZyIsIkJvb2xlYW4iLCJjb2xvckZpZWxkIiwic2l6ZUFnZ3JlZ2F0aW9uIiwic2l6ZUZpZWxkIiwiaGVpZ2h0QWdncmVnYXRpb24iLCJoZWlnaHRGaWVsZCIsInBlcmNlbnRpbGUiLCJjb25jYXQiLCJ2aXNDb25maWciLCJjb2xvclNjYWxlIiwiZWxldmF0aW9uUGVyY2VudGlsZSIsImVuYWJsZTNkIiwicmVzb2x1dGlvbiIsInNpemVTY2FsZSIsIndvcmxkVW5pdFNpemUiLCJlbGV2YXRpb25TY2FsZSIsImVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3IiLCJkZXNjcmlwdGlvbiIsImVsZXZhdGlvblJhbmdlIiwiaGVpZ2h0UmFuZ2UiLCJjb3ZlcmFnZVJhbmdlIiwic3Ryb2tlZCIsImZpbGxlZCIsImV4dHJ1ZGVkIiwid2lyZWZyYW1lIiwid2VpZ2h0Iiwid2VpZ2h0RmllbGQiLCJoZWF0bWFwUmFkaXVzIiwiY3VzdG9tTWFya2Vyc1VybCIsImN1c3RvbU1hcmtlcnNJZCIsInVuZGVmaW5lZCIsImN1c3RvbU1hcmtlcnNSYW5nZSIsIkxBWUVSX1RFWFRfQ09ORklHUyIsImZvbnRTaXplIiwidmFsdWUwIiwic2hvd0lucHV0IiwidGV4dEFuY2hvciIsIm11bHRpU2VsZWN0Iiwic2VhcmNoYWJsZSIsInRleHRBbGlnbm1lbnQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGF5ZXJzL2xheWVyLWZhY3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IGtleU1pcnJvciBmcm9tICdrZXltaXJyb3InO1xuXG5pbXBvcnQge0FHR1JFR0FUSU9OX1RZUEVTfSBmcm9tICcuLi9jb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5pbXBvcnQge0NvbG9yUmFuZ2UsIERFRkFVTFRfQ09MT1JfUkFOR0V9IGZyb20gJy4uL2NvbnN0YW50cy9jb2xvci1yYW5nZXMnO1xuXG5pbXBvcnQge1JHQkNvbG9yLCBSR0JBQ29sb3J9IGZyb20gJy4uL3JlZHVjZXJzJztcbmltcG9ydCB7RmllbGR9IGZyb20gJy4uL3V0aWxzL3RhYmxlLXV0aWxzL2tlcGxlci10YWJsZSc7XG5pbXBvcnQge1xuICBMYXllckJhc2VDb25maWcsXG4gIExheWVyQ29sb3JDb25maWcsXG4gIExheWVySGVpZ2h0Q29uZmlnLFxuICBMYXllclNpemVDb25maWcsXG4gIExheWVyV2VpZ2h0Q29uZmlnXG59IGZyb20gJy4vYmFzZS1sYXllcic7XG5cbmV4cG9ydCB0eXBlIExheWVyVGV4dExhYmVsID0ge1xuICBmaWVsZDogRmllbGQgfCBudWxsO1xuICBjb2xvcjogUkdCQ29sb3I7XG4gIHNpemU6IG51bWJlcjtcbiAgb2Zmc2V0OiBbbnVtYmVyLCBudW1iZXJdO1xuICBhbmNob3I6IHN0cmluZztcbiAgYWxpZ25tZW50OiBzdHJpbmc7XG4gIG91dGxpbmVDb2xvcjogUkdCQ29sb3I7XG59O1xuXG5leHBvcnQgdHlwZSBBZ2dyZWdhdGlvblR5cGVzID0ga2V5b2YgdHlwZW9mIEFHR1JFR0FUSU9OX1RZUEVTO1xuXG5leHBvcnQgdHlwZSBDb2xvclVJID0ge1xuICAvLyBjdXN0b21QYWxldHRlIGluIGVkaXRcbiAgY3VzdG9tUGFsZXR0ZTogQ29sb3JSYW5nZTtcbiAgLy8gc2hvdyBjb2xvciBza2V0Y2hlciBtb2RhbFxuICBzaG93U2tldGNoZXI6IGJvb2xlYW4gfCBudW1iZXI7XG4gIC8vIHNob3cgY29sb3IgcmFuZ2Ugc2VsZWN0aW9uIHBhbmVsXG4gIHNob3dEcm9wZG93bjogYm9vbGVhbiB8IG51bWJlcjtcbiAgLy8gY29sb3IgcmFuZ2Ugc2VsZWN0b3IgY29uZmlnXG4gIGNvbG9yUmFuZ2VDb25maWc6IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgc3RlcHM6IG51bWJlcjtcbiAgICByZXZlcnNlZDogYm9vbGVhbjtcbiAgICBjdXN0b206IGJvb2xlYW47XG4gICAgaGV4Q29sdW1uOiBzdHJpbmc7XG4gICAgaXNIZXhDb2x1bW46IGJvb2xlYW47XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBWaXNDb25maWcgPSB7XG4gIGxhYmVsOlxuICAgIHwgc3RyaW5nXG4gICAgfCAoKFxuICAgICAgICBjb25maWc6IExheWVyQmFzZUNvbmZpZyAmXG4gICAgICAgICAgUGFydGlhbDxMYXllckNvbG9yQ29uZmlnPiAmXG4gICAgICAgICAgUGFydGlhbDxMYXllckhlaWdodENvbmZpZz4gJlxuICAgICAgICAgIFBhcnRpYWw8TGF5ZXJTaXplQ29uZmlnPiAmXG4gICAgICAgICAgUGFydGlhbDxMYXllcldlaWdodENvbmZpZz5cbiAgICAgICkgPT4gc3RyaW5nKTtcbiAgZ3JvdXA6IGtleW9mIHR5cGVvZiBQUk9QRVJUWV9HUk9VUFM7XG4gIHByb3BlcnR5OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjb25kaXRpb24/OiAoXG4gICAgY29uZmlnOiBMYXllckJhc2VDb25maWcgJlxuICAgICAgUGFydGlhbDxMYXllckNvbG9yQ29uZmlnPiAmXG4gICAgICBQYXJ0aWFsPExheWVySGVpZ2h0Q29uZmlnPiAmXG4gICAgICBQYXJ0aWFsPExheWVyU2l6ZUNvbmZpZz4gJlxuICAgICAgUGFydGlhbDxMYXllcldlaWdodENvbmZpZz5cbiAgKSA9PiBib29sZWFuO1xuXG4gIGFsbG93Q3VzdG9tVmFsdWU/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgVmlzQ29uZmlnTnVtYmVyID0gVmlzQ29uZmlnICYge1xuICB0eXBlOiAnbnVtYmVyJztcbiAgaXNSYW5nZWQ6IGZhbHNlO1xuICBkZWZhdWx0VmFsdWU6IG51bWJlcjtcbiAgcmFuZ2U6IFtudW1iZXIsIG51bWJlcl07XG4gIHN0ZXA6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFZpc0NvbmZpZ0Jvb2xlYW4gPSBWaXNDb25maWcgJiB7XG4gIHR5cGU6ICdib29sZWFuJztcbiAgZGVmYXVsdFZhbHVlOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgVmlzQ29uZmlnU2VsZWN0aW9uID0gVmlzQ29uZmlnICYge1xuICB0eXBlOiAnc2VsZWN0JztcbiAgZGVmYXVsdFZhbHVlOiBzdHJpbmc7XG4gIG9wdGlvbnM6IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgVmlzQ29uZmlnUmFuZ2UgPSBWaXNDb25maWcgJiB7XG4gIHR5cGU6ICdudW1iZXInO1xuICBpc1JhbmdlZDogYm9vbGVhbjtcbiAgcmFuZ2U6IFtudW1iZXIsIG51bWJlcl07XG4gIGRlZmF1bHRWYWx1ZTogW251bWJlciwgbnVtYmVyXTtcbiAgc3RlcDogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgVmlzQ29uZmlnQ29sb3JTZWxlY3QgPSBWaXNDb25maWcgJiB7XG4gIHR5cGU6ICdjb2xvci1zZWxlY3QnO1xuICBkZWZhdWx0VmFsdWU6IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBWaXNDb25maWdDb2xvclJhbmdlID0gVmlzQ29uZmlnICYge1xuICB0eXBlOiAnY29sb3ItcmFuZ2Utc2VsZWN0JztcbiAgZGVmYXVsdFZhbHVlOiBDb2xvclJhbmdlO1xufTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJWaXNDb25maWdTZXR0aW5ncyA9IHtcbiAgdGhpY2tuZXNzOiBWaXNDb25maWdOdW1iZXI7XG4gIHN0cm9rZVdpZHRoUmFuZ2U6IFZpc0NvbmZpZ1JhbmdlO1xuICB0cmFpbExlbmd0aDogVmlzQ29uZmlnTnVtYmVyO1xuICByYWRpdXM6IFZpc0NvbmZpZ051bWJlcjtcbiAgZml4ZWRSYWRpdXM6IFZpc0NvbmZpZ0Jvb2xlYW47XG4gIHJhZGl1c1JhbmdlOiBWaXNDb25maWdSYW5nZTtcbiAgY2x1c3RlclJhZGl1czogVmlzQ29uZmlnTnVtYmVyO1xuICBjbHVzdGVyUmFkaXVzUmFuZ2U6IFZpc0NvbmZpZ1JhbmdlO1xuICBvcGFjaXR5OiBWaXNDb25maWdOdW1iZXI7XG4gIGNvdmVyYWdlOiBWaXNDb25maWdOdW1iZXI7XG4gIG91dGxpbmU6IFZpc0NvbmZpZ0Jvb2xlYW47XG4gIGNvbG9yUmFuZ2U6IFZpc0NvbmZpZ0NvbG9yUmFuZ2U7XG4gIHN0cm9rZUNvbG9yUmFuZ2U6IFZpc0NvbmZpZ0NvbG9yUmFuZ2U7XG4gIHRhcmdldENvbG9yOiBWaXNDb25maWdDb2xvclNlbGVjdDtcbiAgc3Ryb2tlQ29sb3I6IFZpc0NvbmZpZ0NvbG9yU2VsZWN0O1xuICBjb2xvckFnZ3JlZ2F0aW9uOiBWaXNDb25maWdTZWxlY3Rpb247XG4gIHNpemVBZ2dyZWdhdGlvbjogVmlzQ29uZmlnU2VsZWN0aW9uO1xuICBwZXJjZW50aWxlOiBWaXNDb25maWdSYW5nZTtcbiAgZWxldmF0aW9uUGVyY2VudGlsZTogVmlzQ29uZmlnUmFuZ2U7XG4gIHJlc29sdXRpb246IFZpc0NvbmZpZ051bWJlcjtcbiAgc2l6ZVNjYWxlOiBWaXNDb25maWdOdW1iZXI7XG4gIGFuZ2xlOiBWaXNDb25maWdOdW1iZXI7XG4gIHdvcmxkVW5pdFNpemU6IFZpc0NvbmZpZ051bWJlcjtcbiAgZWxldmF0aW9uU2NhbGU6IFZpc0NvbmZpZ051bWJlcjtcbiAgZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvcjogVmlzQ29uZmlnQm9vbGVhbjtcbiAgZWxldmF0aW9uUmFuZ2U6IFZpc0NvbmZpZ1JhbmdlO1xuICBoZWlnaHRSYW5nZTogVmlzQ29uZmlnUmFuZ2U7XG4gIGNvdmVyYWdlUmFuZ2U6IFZpc0NvbmZpZ1JhbmdlO1xuICAnaGktcHJlY2lzaW9uJzogVmlzQ29uZmlnQm9vbGVhbjtcbiAgZW5hYmxlM2Q6IFZpc0NvbmZpZ0Jvb2xlYW47XG4gIHN0cm9rZWQ6IFZpc0NvbmZpZ0Jvb2xlYW47XG4gIGZpbGxlZDogVmlzQ29uZmlnQm9vbGVhbjtcbiAgZXh0cnVkZWQ6IFZpc0NvbmZpZ0Jvb2xlYW47XG4gIHdpcmVmcmFtZTogVmlzQ29uZmlnQm9vbGVhbjtcbiAgd2VpZ2h0OiBWaXNDb25maWdOdW1iZXI7XG4gIGhlYXRtYXBSYWRpdXM6IFZpc0NvbmZpZ051bWJlcjtcbn07XG5cbi8vIFRPRE86IE1vdmUgdGhpcyB0byBpbmRpdmlkdWFsIGxheWVyc1xuZXhwb3J0IHR5cGUgTGF5ZXJWaXNDb25maWcgPSB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbiAgLy8gcG9zc2libGUgdmlzQ29uZmlnc1xuXG4gIC8vIHRoaWNrbmVzczogbnVtYmVyO1xuICAvLyBzaXplUmFuZ2U6IG51bWJlcjtcbiAgLy8gdHJhaWxMZW5ndGg6IG51bWJlcjtcbiAgLy8gcmFkaXVzOiBudW1iZXI7XG4gIC8vIGZpeGVkUmFkaXVzOiBib29sZWFuO1xuICAvLyByYWRpdXNSYW5nZTogW251bWJlciwgbnVtYmVyXTtcbiAgLy8gY2x1c3RlclJhZGl1czogbnVtYmVyO1xuICAvLyBvcGFjaXR5OiBudW1iZXI7XG4gIC8vIGNvdmVyYWdlOiBudW1iZXI7XG4gIC8vIG91dGxpbmU6IGJvb2xlYW47XG4gIC8vIGNvbG9yUmFuZ2U6IENvbG9yUmFuZ2U7XG4gIC8vIHN0cm9rZUNvbG9yUmFuZ2U6IENvbG9yUmFuZ2U7XG4gIC8vIHRhcmdldENvbG9yOiBhbnk7XG4gIC8vIHN0cm9rZUNvbG9yOiBhbnk7XG4gIC8vIGNvbG9yQWdncmVnYXRpb246IGtleW9mIHR5cGVvZiBBR0dSRUdBVElPTl9UWVBFUztcbiAgLy8gc2l6ZUFnZ3JlZ2F0aW9uOiBrZXlvZiB0eXBlb2YgQUdHUkVHQVRJT05fVFlQRVM7XG4gIC8vIHBlcmNlbnRpbGU6IFtudW1iZXIsIG51bWJlcl07XG4gIC8vIGVsZXZhdGlvblBlcmNlbnRpbGU6IFtudW1iZXIsIG51bWJlcl07XG4gIC8vIHJlc29sdXRpb246IG51bWJlcjtcbiAgLy8gc2l6ZVNjYWxlOiBudW1iZXI7XG4gIC8vIGFuZ2xlOiBudW1iZXI7XG4gIC8vIHdvcmxkVW5pdFNpemU6IG51bWJlcjtcbiAgLy8gZWxldmF0aW9uU2NhbGU6IG51bWJlcjtcbiAgLy8gZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvcjogYm9vbGVhbjtcbiAgLy8gaGVpZ2h0UmFuZ2U6IFtudW1iZXIsIG51bWJlcl07XG4gIC8vIGNvdmVyYWdlUmFuZ2U6IFtudW1iZXIsIG51bWJlcl07XG4gIC8vICdoaS1wcmVjaXNpb24nOiBib29sZWFuO1xuICAvLyBlbmFibGUzZDogYm9vbGVhbjtcbiAgLy8gc3Ryb2tlZDogYm9vbGVhbjtcbiAgLy8gZmlsbGVkOiBib29sZWFuO1xuICAvLyBleHRydWRlZDogYm9vbGVhbjtcbiAgLy8gd2lyZWZyYW1lOiBib29sZWFuO1xuICAvLyB3ZWlnaHQ6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFRleHRDb25maWdTZWxlY3QgPSB7XG4gIHR5cGU6ICdzZWxlY3QnO1xuICBvcHRpb25zOiBzdHJpbmdbXTtcbiAgbXVsdGlTZWxlY3Q6IGJvb2xlYW47XG4gIHNlYXJjaGFibGU6IGJvb2xlYW47XG59O1xuZXhwb3J0IHR5cGUgVGV4dENvbmZpZ051bWJlciA9IHtcbiAgdHlwZTogJ251bWJlcic7XG4gIHJhbmdlOiBudW1iZXJbXTtcbiAgdmFsdWUwOiBudW1iZXI7XG4gIHN0ZXA6IG51bWJlcjtcbiAgaXNSYW5nZWQ6IGJvb2xlYW47XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHNob3dJbnB1dDogYm9vbGVhbjtcbn07XG5leHBvcnQgdHlwZSBMYXllclRleHRDb25maWcgPSB7XG4gIGZvbnRTaXplOiBUZXh0Q29uZmlnTnVtYmVyO1xuICB0ZXh0QW5jaG9yOiBUZXh0Q29uZmlnU2VsZWN0O1xuICB0ZXh0QWxpZ25tZW50OiBUZXh0Q29uZmlnU2VsZWN0O1xufTtcblxuZXhwb3J0IGNvbnN0IFBST1BFUlRZX0dST1VQUyA9IGtleU1pcnJvcih7XG4gIGNvbG9yOiBudWxsLFxuICBzdHJva2U6IG51bGwsXG4gIGN1c3RvbU1hcmtlcnM6IG51bGwsXG4gIHJhZGl1czogbnVsbCxcbiAgaGVpZ2h0OiBudWxsLFxuICBhbmdsZTogbnVsbCxcbiAgLy8gZm9yIGhlYXRtYXAgYWdncmVnYXRpb25cbiAgY2VsbDogbnVsbCxcbiAgcHJlY2lzaW9uOiBudWxsLFxuICBkaXNwbGF5OiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTEFZRVJfT1BBQ0lUWSA9IDAuODtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0hJR0hMSUdIVF9DT0xPUjogUkdCQUNvbG9yID0gWzI1MiwgMjQyLCAyNiwgMjU1XTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBWUVSX0xBQkVMID0gJ25ldyBsYXllcic7XG5leHBvcnQge0RFRkFVTFRfQ09MT1JfUkFOR0V9O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9URVhUX0xBQkVMOiBMYXllclRleHRMYWJlbCA9IHtcbiAgZmllbGQ6IG51bGwsXG4gIGNvbG9yOiBbNDQsIDQ4LCA1MF0sXG4gIG91dGxpbmVDb2xvcjogWzI1NSwgMjU1LCAyNTVdLFxuICBzaXplOiAxMixcbiAgb2Zmc2V0OiBbMCwgMF0sXG4gIGFuY2hvcjogJ3N0YXJ0JyxcbiAgYWxpZ25tZW50OiAnY2VudGVyJ1xufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VDT05EQVJZX1RFWFRfTEFCRUw6IExheWVyVGV4dExhYmVsID0ge1xuICAuLi5ERUZBVUxUX1RFWFRfTEFCRUwsXG4gIGNvbG9yOiBbMTI4LCAxMzAsIDEzMl0sXG4gIHNpemU6IDEwXG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9DVVNUT01fUEFMRVRURTogQ29sb3JSYW5nZSA9IHtcbiAgbmFtZTogJ2NvbG9yLmN1c3RvbVBhbGV0dGUnLFxuICB0eXBlOiAnY3VzdG9tJyxcbiAgY2F0ZWdvcnk6ICdDdXN0b20nLFxuICBjb2xvcnM6IFtdXG59O1xuXG5leHBvcnQgY29uc3QgVU5LTk9XTl9DT0xPUl9LRVkgPSAnX191bmtub3duQ29sb3JfXyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTE9SX1VJOiBDb2xvclVJID0ge1xuICAvLyBjdXN0b21QYWxldHRlIGluIGVkaXRcbiAgY3VzdG9tUGFsZXR0ZTogREVGQVVMVF9DVVNUT01fUEFMRVRURSxcbiAgLy8gc2hvdyBjb2xvciBza2V0Y2hlciBtb2RhbFxuICBzaG93U2tldGNoZXI6IGZhbHNlLFxuICAvLyBzaG93IGNvbG9yIHJhbmdlIHNlbGVjdGlvbiBwYW5lbFxuICBzaG93RHJvcGRvd246IGZhbHNlLFxuICAvLyBjb2xvciByYW5nZSBzZWxlY3RvciBjb25maWdcbiAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICBjb2xvclJhbmdlQ29uZmlnOiB7XG4gICAgdHlwZTogJ2FsbCcsXG4gICAgc3RlcHM6IDYsXG4gICAgcmV2ZXJzZWQ6IGZhbHNlLFxuICAgIGN1c3RvbTogZmFsc2VcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IExBWUVSX1ZJU19DT05GSUdTOiBMYXllclZpc0NvbmZpZ1NldHRpbmdzID0ge1xuICB0aGlja25lc3M6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDIsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc3Ryb2tlV2lkdGgnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDEwMF0sXG4gICAgc3RlcDogMC4xLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuc3Ryb2tlLFxuICAgIHByb3BlcnR5OiAndGhpY2tuZXNzJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIHN0cm9rZVdpZHRoUmFuZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCAxMF0sXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc3Ryb2tlV2lkdGhSYW5nZScsXG4gICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgcmFuZ2U6IFswLCAyMDBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnN0cm9rZSxcbiAgICBwcm9wZXJ0eTogJ3NpemVSYW5nZScsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICB0cmFpbExlbmd0aDoge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMTgwLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnN0cm9rZVdpZHRoJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFsxLCAxMDAwXSxcbiAgICBzdGVwOiAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuc3Ryb2tlLFxuICAgIHByb3BlcnR5OiAndHJhaWxMZW5ndGgnLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWVcbiAgfSxcbiAgLy8gcmFkaXVzIGlzIGFjdHVhbGx5IHJhZGl1c1NjYWxlIGluIGRlY2suZ2xcbiAgcmFkaXVzOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAyLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnJhZGl1cycsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMTAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5yYWRpdXMsXG4gICAgcHJvcGVydHk6ICdyYWRpdXMnLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWVcbiAgfSxcbiAgcmFkaXVzUmFuZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCA1MF0sXG4gICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgcmFuZ2U6IFswLCA1MDBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5yYWRpdXNSYW5nZScsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5yYWRpdXMsXG4gICAgcHJvcGVydHk6ICdyYWRpdXNSYW5nZScsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBjbHVzdGVyUmFkaXVzOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuY2x1c3RlclJhZGl1cycsXG4gICAgZGVmYXVsdFZhbHVlOiA0MCxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFsxLCA1MDBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnJhZGl1cyxcbiAgICBwcm9wZXJ0eTogJ2NsdXN0ZXJSYWRpdXMnLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWVcbiAgfSxcbiAgY2x1c3RlclJhZGl1c1JhbmdlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MucmFkaXVzUmFuZ2VQaXhlbHMnLFxuICAgIGRlZmF1bHRWYWx1ZTogWzEsIDQwXSxcbiAgICBpc1JhbmdlZDogdHJ1ZSxcbiAgICByYW5nZTogWzEsIDE1MF0sXG4gICAgc3RlcDogMC4xLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMucmFkaXVzLFxuICAgIHByb3BlcnR5OiAncmFkaXVzUmFuZ2UnLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWVcbiAgfSxcbiAgb3BhY2l0eToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9MQVlFUl9PUEFDSVRZLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLm9wYWNpdHknLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDFdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ29wYWNpdHknLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IGZhbHNlXG4gIH0sXG4gIGNvdmVyYWdlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAxLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmNvdmVyYWdlJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCAxXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY2VsbCxcbiAgICBwcm9wZXJ0eTogJ2NvdmVyYWdlJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiBmYWxzZVxuICB9LFxuICAvLyB1c2VkIGluIHBvaW50IGxheWVyXG4gIG91dGxpbmU6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBsYWJlbDogJ2xheWVyLm91dGxpbmUnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuZGlzcGxheSxcbiAgICBwcm9wZXJ0eTogJ291dGxpbmUnXG4gIH0sXG4gIGNvbG9yUmFuZ2U6IHtcbiAgICB0eXBlOiAnY29sb3ItcmFuZ2Utc2VsZWN0JyxcbiAgICBkZWZhdWx0VmFsdWU6IERFRkFVTFRfQ09MT1JfUkFOR0UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuY29sb3JSYW5nZScsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ2NvbG9yUmFuZ2UnXG4gIH0sXG4gIHN0cm9rZUNvbG9yUmFuZ2U6IHtcbiAgICB0eXBlOiAnY29sb3ItcmFuZ2Utc2VsZWN0JyxcbiAgICBkZWZhdWx0VmFsdWU6IERFRkFVTFRfQ09MT1JfUkFOR0UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc3Ryb2tlQ29sb3JSYW5nZScsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ3N0cm9rZUNvbG9yUmFuZ2UnXG4gIH0sXG4gIHRhcmdldENvbG9yOiB7XG4gICAgdHlwZTogJ2NvbG9yLXNlbGVjdCcsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MudGFyZ2V0Q29sb3InLFxuICAgIGRlZmF1bHRWYWx1ZTogbnVsbCxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNvbG9yLFxuICAgIHByb3BlcnR5OiAndGFyZ2V0Q29sb3InXG4gIH0sXG4gIHN0cm9rZUNvbG9yOiB7XG4gICAgdHlwZTogJ2NvbG9yLXNlbGVjdCcsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc3Ryb2tlQ29sb3InLFxuICAgIGRlZmF1bHRWYWx1ZTogbnVsbCxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNvbG9yLFxuICAgIHByb3BlcnR5OiAnc3Ryb2tlQ29sb3InXG4gIH0sXG4gIGNvbG9yQWdncmVnYXRpb246IHtcbiAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICBkZWZhdWx0VmFsdWU6IEFHR1JFR0FUSU9OX1RZUEVTLmF2ZXJhZ2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuY29sb3JBZ2dyZWdhdGlvbicsXG4gICAgLy8gYWdncmVnYXRpb24gb3B0aW9ucyBhcmUgYmFzZWQgb24gY29sb3IgZmllbGQgdHlwZXNcbiAgICBvcHRpb25zOiBPYmplY3Qua2V5cyhBR0dSRUdBVElPTl9UWVBFUykgYXMgQWdncmVnYXRpb25UeXBlc1tdLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY29sb3IsXG4gICAgcHJvcGVydHk6ICdjb2xvckFnZ3JlZ2F0aW9uJyxcbiAgICBjb25kaXRpb246IGNvbmZpZyA9PiBCb29sZWFuKGNvbmZpZy5jb2xvckZpZWxkKVxuICB9LFxuICBzaXplQWdncmVnYXRpb246IHtcbiAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICBkZWZhdWx0VmFsdWU6IEFHR1JFR0FUSU9OX1RZUEVTLmF2ZXJhZ2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuaGVpZ2h0QWdncmVnYXRpb24nLFxuICAgIC8vIGFnZ3JlZ2F0aW9uIG9wdGlvbnMgYXJlIGJhc2VkIG9uIGNvbG9yIGZpZWxkIHR5cGVzXG4gICAgb3B0aW9uczogT2JqZWN0LmtleXMoQUdHUkVHQVRJT05fVFlQRVMpIGFzIEFnZ3JlZ2F0aW9uVHlwZXNbXSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ3NpemVBZ2dyZWdhdGlvbicsXG4gICAgY29uZGl0aW9uOiBjb25maWcgPT4gQm9vbGVhbihjb25maWcuc2l6ZUZpZWxkKVxuICB9LFxuICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gIGhlaWdodEFnZ3JlZ2F0aW9uOiB7XG4gICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgZGVmYXVsdFZhbHVlOiBBR0dSRUdBVElPTl9UWVBFUy5hdmVyYWdlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmhlaWdodEFnZ3JlZ2F0aW9uJyxcbiAgICBvcHRpb25zOiBPYmplY3Qua2V5cyhBR0dSRUdBVElPTl9UWVBFUyksXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5oZWlnaHQsXG4gICAgcHJvcGVydHk6ICdoZWlnaHRBZ2dyZWdhdGlvbicsXG4gICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLmhlaWdodEZpZWxkXG4gIH0sXG4gIHBlcmNlbnRpbGU6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCAxMDBdLFxuICAgIGxhYmVsOiBjb25maWcgPT5cbiAgICAgIGBGaWx0ZXIgYnkgJHtcbiAgICAgICAgY29uZmlnLmNvbG9yRmllbGRcbiAgICAgICAgICA/IGAke2NvbmZpZy52aXNDb25maWcuY29sb3JBZ2dyZWdhdGlvbn0gJHtjb25maWcuY29sb3JGaWVsZC5uYW1lfWBcbiAgICAgICAgICA6ICdjb3VudCdcbiAgICAgIH0gcGVyY2VudGlsZWAsXG4gICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgcmFuZ2U6IFswLCAxMDBdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ3BlcmNlbnRpbGUnLFxuXG4gICAgLy8gcGVyY2VudGlsZSBmaWx0ZXIgb25seSBtYWtlcyBzZW5zZSB3aXRoIGxpbmVhciBhZ2dyZWdhdGlvblxuICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy5jb2xvclNjYWxlICE9PSAnb3JkaW5hbCcsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogZmFsc2VcbiAgfSxcbiAgZWxldmF0aW9uUGVyY2VudGlsZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDEwMF0sXG4gICAgbGFiZWw6IGNvbmZpZyA9PlxuICAgICAgYEZpbHRlciBieSAke1xuICAgICAgICBjb25maWcuc2l6ZUZpZWxkID8gYCR7Y29uZmlnLnZpc0NvbmZpZy5zaXplQWdncmVnYXRpb259ICR7Y29uZmlnLnNpemVGaWVsZC5uYW1lfWAgOiAnY291bnQnXG4gICAgICB9IHBlcmNlbnRpbGVgLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMTAwXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnZWxldmF0aW9uUGVyY2VudGlsZScsXG4gICAgLy8gcGVyY2VudGlsZSBmaWx0ZXIgb25seSBtYWtlcyBzZW5zZSB3aXRoIGxpbmVhciBhZ2dyZWdhdGlvblxuICAgIGNvbmRpdGlvbjogY29uZmlnID0+XG4gICAgICBCb29sZWFuKGNvbmZpZy52aXNDb25maWcuZW5hYmxlM2QgJiYgKGNvbmZpZy5jb2xvckZpZWxkIHx8IGNvbmZpZy5zaXplRmllbGQpKSxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiBmYWxzZVxuICB9LFxuICByZXNvbHV0aW9uOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiA4LFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnJlc29sdXRpb24nLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDEzXSxcbiAgICBzdGVwOiAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY2VsbCxcbiAgICBwcm9wZXJ0eTogJ3Jlc29sdXRpb24nLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWVcbiAgfSxcbiAgc2l6ZVNjYWxlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAxMCxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zaXplU2NhbGUnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzEsIDEwMDBdLFxuICAgIHN0ZXA6IDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5zdHJva2UsXG4gICAgcHJvcGVydHk6ICdzaXplU2NhbGUnLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWVcbiAgfSxcbiAgYW5nbGU6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5hbmdsZScsXG4gICAgZGVmYXVsdFZhbHVlOiAwLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDM2MF0sXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5hbmdsZSxcbiAgICBzdGVwOiAxLFxuICAgIHByb3BlcnR5OiAnYW5nbGUnLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWVcbiAgfSxcbiAgd29ybGRVbml0U2l6ZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy53b3JsZFVuaXRTaXplJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCA1MDBdLFxuICAgIHN0ZXA6IDAuMDAwMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNlbGwsXG4gICAgcHJvcGVydHk6ICd3b3JsZFVuaXRTaXplJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIGVsZXZhdGlvblNjYWxlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiA1LFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmVsZXZhdGlvblNjYWxlJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCA1MDAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5oZWlnaHQsXG4gICAgcHJvcGVydHk6ICdlbGV2YXRpb25TY2FsZScsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBlbmFibGVFbGV2YXRpb25ab29tRmFjdG9yOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5lbmFibGVFbGV2YXRpb25ab29tRmFjdG9yJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ2VuYWJsZUVsZXZhdGlvblpvb21GYWN0b3InLFxuICAgIGRlc2NyaXB0aW9uOiAnbGF5ZXJWaXNDb25maWdzLmVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3JEZXNjcmlwdGlvbidcbiAgfSxcbiAgZWxldmF0aW9uUmFuZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCA1MDBdLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmhlaWdodFNjYWxlJyxcbiAgICBpc1JhbmdlZDogdHJ1ZSxcbiAgICByYW5nZTogWzAsIDEwMDBdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5oZWlnaHQsXG4gICAgcHJvcGVydHk6ICdzaXplUmFuZ2UnLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWVcbiAgfSxcbiAgaGVpZ2h0UmFuZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCA1MDBdLFxuICAgIGxhYmVsOiAnSGVpZ2h0IFNjYWxlJyxcbiAgICBpc1JhbmdlZDogdHJ1ZSxcbiAgICByYW5nZTogWzAsIDEwMDBdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5oZWlnaHQsXG4gICAgcHJvcGVydHk6ICdoZWlnaHRSYW5nZScsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBjb3ZlcmFnZVJhbmdlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiBbMCwgMV0sXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuY292ZXJhZ2VSYW5nZScsXG4gICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgcmFuZ2U6IFswLCAxXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMucmFkaXVzLFxuICAgIHByb3BlcnR5OiAnY292ZXJhZ2VSYW5nZScsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogZmFsc2VcbiAgfSxcbiAgLy8gaGkgcHJlY2lzaW9uIGlzIGRlcHJlY2F0ZWQgYnkgZGVjay5nbFxuICAnaGktcHJlY2lzaW9uJzoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmhpZ2hQcmVjaXNpb25SZW5kZXJpbmcnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMucHJlY2lzaW9uLFxuICAgIHByb3BlcnR5OiAnaGktcHJlY2lzaW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ2xheWVyVmlzQ29uZmlncy5oaWdoUHJlY2lzaW9uUmVuZGVyaW5nRGVzY3JpcHRpb24nXG4gIH0sXG4gIGVuYWJsZTNkOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuaGVpZ2h0JyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ2VuYWJsZTNkJyxcbiAgICBkZXNjcmlwdGlvbjogJ2xheWVyVmlzQ29uZmlncy5oZWlnaHREZXNjcmlwdGlvbidcbiAgfSxcbiAgc3Ryb2tlZDoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zdHJva2UnLFxuICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmRpc3BsYXksXG4gICAgcHJvcGVydHk6ICdzdHJva2VkJ1xuICB9LFxuICBmaWxsZWQ6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuZmlsbCcsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmRpc3BsYXksXG4gICAgcHJvcGVydHk6ICdmaWxsZWQnXG4gIH0sXG4gIGV4dHJ1ZGVkOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuZW5hYmxlUG9seWdvbkhlaWdodCcsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5kaXNwbGF5LFxuICAgIHByb3BlcnR5OiAnZXh0cnVkZWQnXG4gIH0sXG4gIHdpcmVmcmFtZToge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnNob3dXaXJlZnJhbWUnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuZGlzcGxheSxcbiAgICBwcm9wZXJ0eTogJ3dpcmVmcmFtZSdcbiAgfSxcbiAgLy8gdXNlZCBmb3IgaGVhdG1hcFxuICB3ZWlnaHQ6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDEsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Mud2VpZ2h0SW50ZW5zaXR5JyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLjAxLCA1MDBdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jZWxsLFxuICAgIHByb3BlcnR5OiAnd2VpZ2h0JyxcbiAgICBjb25kaXRpb246IGNvbmZpZyA9PiBCb29sZWFuKGNvbmZpZy53ZWlnaHRGaWVsZCksXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBoZWF0bWFwUmFkaXVzOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAyMCxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5yYWRpdXMnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDEwMF0sXG4gICAgc3RlcDogMC4xLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY2VsbCxcbiAgICBwcm9wZXJ0eTogJ3JhZGl1cycsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBjdXN0b21NYXJrZXJzOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuY3VzdG9tTWFya2VycycsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jdXN0b21NYXJrZXJzLFxuICAgIHByb3BlcnR5OiAnY3VzdG9tTWFya2VycydcbiAgfSxcbiAgY3VzdG9tTWFya2Vyc1VybDoge1xuICAgIHR5cGU6ICd0ZXh0JyxcbiAgICBkZWZhdWx0VmFsdWU6ICcnLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmFkZFVybCcsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jdXN0b21NYXJrZXJzLFxuICAgIHByb3BlcnR5OiAnY3VzdG9tTWFya2Vyc1VybCdcbiAgfSxcbiAgY3VzdG9tTWFya2Vyc0lkOiB7XG4gICAgdHlwZTogJ3RleHQnLFxuICAgIGRlZmF1bHRWYWx1ZTogdW5kZWZpbmVkLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmFkZFVybCcsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jdXN0b21NYXJrZXJzLFxuICAgIHByb3BlcnR5OiAnY3VzdG9tTWFya2Vyc0lkJ1xuICB9LFxuICBjdXN0b21NYXJrZXJzUmFuZ2U6IHtcbiAgICB0eXBlOiAnbWFya2Vycy1yYW5nZS1zZWxlY3QnLFxuICAgIGRlZmF1bHRWYWx1ZTogdW5kZWZpbmVkLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmNvbG9yUmFuZ2UnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY3VzdG9tTWFya2VycyxcbiAgICBwcm9wZXJ0eTogJ2N1c3RvbU1hcmtlcnNSYW5nZSdcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IExBWUVSX1RFWFRfQ09ORklHUzogTGF5ZXJUZXh0Q29uZmlnID0ge1xuICBmb250U2l6ZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIHJhbmdlOiBbNiwgMzJdLFxuICAgIHZhbHVlMDogNixcbiAgICBzdGVwOiAxLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICBsYWJlbDogJ0ZvbnQgc2l6ZScsXG4gICAgc2hvd0lucHV0OiB0cnVlXG4gIH0sXG4gIHRleHRBbmNob3I6IHtcbiAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICBvcHRpb25zOiBbJ3N0YXJ0JywgJ21pZGRsZScsICdlbmQnXSxcbiAgICBtdWx0aVNlbGVjdDogZmFsc2UsXG4gICAgc2VhcmNoYWJsZTogZmFsc2VcbiAgfSxcbiAgdGV4dEFsaWdubWVudDoge1xuICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIG9wdGlvbnM6IFsndG9wJywgJ2NlbnRlcicsICdib3R0b20nXSxcbiAgICBtdWx0aVNlbGVjdDogZmFsc2UsXG4gICAgc2VhcmNoYWJsZTogZmFsc2VcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFvQkEsSUFBQUEsVUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsZ0JBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFlBQUEsR0FBQUYsT0FBQTtBQUEwRSxTQUFBRyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FBQSxDQUFBWixDQUFBLFFBQUFBLENBQUEsT0FBQUYsT0FBQSxD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
501
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfa2V5bWlycm9yIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGVmYXVsdFNldHRpbmdzIiwiX2NvbG9yUmFuZ2VzIiwiUFJPUEVSVFlfR1JPVVBTIiwiZXhwb3J0cyIsImtleU1pcnJvciIsImNvbG9yIiwic3Ryb2tlIiwiY3VzdG9tTWFya2VycyIsInJhZGl1cyIsImhlaWdodCIsImFuZ2xlIiwiY2VsbCIsInByZWNpc2lvbiIsImRpc3BsYXkiLCJERUZBVUxUX0xBWUVSX09QQUNJVFkiLCJERUZBVUxUX0hJR0hMSUdIVF9DT0xPUiIsIkRFRkFVTFRfTEFZRVJfTEFCRUwiLCJERUZBVUxUX1RFWFRfTEFCRUwiLCJmaWVsZCIsIm91dGxpbmVDb2xvciIsInNpemUiLCJvZmZzZXQiLCJhbmNob3IiLCJhbGlnbm1lbnQiLCJERUZBVUxUX1NFQ09OREFSWV9URVhUX0xBQkVMIiwiREVGQVVMVF9DVVNUT01fUEFMRVRURSIsIm5hbWUiLCJ0eXBlIiwiY2F0ZWdvcnkiLCJjb2xvcnMiLCJVTktOT1dOX0NPTE9SX0tFWSIsIkRFRkFVTFRfQ09MT1JfVUkiLCJjdXN0b21QYWxldHRlIiwic2hvd1NrZXRjaGVyIiwic2hvd0Ryb3Bkb3duIiwiY29sb3JSYW5nZUNvbmZpZyIsInN0ZXBzIiwicmV2ZXJzZWQiLCJjdXN0b20iLCJMQVlFUl9WSVNfQ09ORklHUyIsInRoaWNrbmVzcyIsImRlZmF1bHRWYWx1ZSIsImxhYmVsIiwiaXNSYW5nZWQiLCJyYW5nZSIsInN0ZXAiLCJncm91cCIsInByb3BlcnR5IiwiYWxsb3dDdXN0b21WYWx1ZSIsInN0cm9rZVdpZHRoUmFuZ2UiLCJ0cmFpbExlbmd0aCIsInJhZGl1c1JhbmdlIiwiY2x1c3RlclJhZGl1cyIsImNsdXN0ZXJSYWRpdXNSYW5nZSIsIm9wYWNpdHkiLCJjb3ZlcmFnZSIsIm91dGxpbmUiLCJjb2xvclJhbmdlIiwiREVGQVVMVF9DT0xPUl9SQU5HRSIsInN0cm9rZUNvbG9yUmFuZ2UiLCJ0YXJnZXRDb2xvciIsInN0cm9rZUNvbG9yIiwiY29sb3JBZ2dyZWdhdGlvbiIsIkFHR1JFR0FUSU9OX1RZUEVTIiwiYXZlcmFnZSIsIm9wdGlvbnMiLCJPYmplY3QiLCJrZXlzIiwiY29uZGl0aW9uIiwiY29uZmlnIiwiQm9vbGVhbiIsImNvbG9yRmllbGQiLCJzaXplQWdncmVnYXRpb24iLCJzaXplRmllbGQiLCJoZWlnaHRBZ2dyZWdhdGlvbiIsImhlaWdodEZpZWxkIiwicGVyY2VudGlsZSIsInZpc0NvbmZpZyIsImNvbG9yU2NhbGUiLCJlbGV2YXRpb25QZXJjZW50aWxlIiwiZW5hYmxlM2QiLCJyZXNvbHV0aW9uIiwic2l6ZVNjYWxlIiwid29ybGRVbml0U2l6ZSIsImVsZXZhdGlvblNjYWxlIiwiZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvciIsImRlc2NyaXB0aW9uIiwiZWxldmF0aW9uUmFuZ2UiLCJoZWlnaHRSYW5nZSIsImNvdmVyYWdlUmFuZ2UiLCJzdHJva2VkIiwiZmlsbGVkIiwiZXh0cnVkZWQiLCJ3aXJlZnJhbWUiLCJ3ZWlnaHQiLCJ3ZWlnaHRGaWVsZCIsImhlYXRtYXBSYWRpdXMiLCJjdXN0b21NYXJrZXJzVXJsIiwiY3VzdG9tTWFya2Vyc0lkIiwidW5kZWZpbmVkIiwiY3VzdG9tTWFya2Vyc1JhbmdlIiwiTEFZRVJfVEVYVF9DT05GSUdTIiwiZm9udFNpemUiLCJ2YWx1ZTAiLCJzaG93SW5wdXQiLCJ0ZXh0QW5jaG9yIiwibXVsdGlTZWxlY3QiLCJzZWFyY2hhYmxlIiwidGV4dEFsaWdubWVudCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllcnMvbGF5ZXItZmFjdG9yeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQga2V5TWlycm9yIGZyb20gJ2tleW1pcnJvcic7XG5cbmltcG9ydCB7QUdHUkVHQVRJT05fVFlQRVN9IGZyb20gJy4uL2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcbmltcG9ydCB7Q29sb3JSYW5nZSwgREVGQVVMVF9DT0xPUl9SQU5HRX0gZnJvbSAnLi4vY29uc3RhbnRzL2NvbG9yLXJhbmdlcyc7XG5cbmltcG9ydCB7UkdCQ29sb3IsIFJHQkFDb2xvcn0gZnJvbSAnLi4vcmVkdWNlcnMnO1xuaW1wb3J0IHtGaWVsZH0gZnJvbSAnLi4vdXRpbHMvdGFibGUtdXRpbHMva2VwbGVyLXRhYmxlJztcbmltcG9ydCB7XG4gIExheWVyQmFzZUNvbmZpZyxcbiAgTGF5ZXJDb2xvckNvbmZpZyxcbiAgTGF5ZXJIZWlnaHRDb25maWcsXG4gIExheWVyU2l6ZUNvbmZpZyxcbiAgTGF5ZXJXZWlnaHRDb25maWdcbn0gZnJvbSAnLi9iYXNlLWxheWVyJztcblxuZXhwb3J0IHR5cGUgTGF5ZXJUZXh0TGFiZWwgPSB7XG4gIGZpZWxkOiBGaWVsZCB8IG51bGw7XG4gIGNvbG9yOiBSR0JDb2xvcjtcbiAgc2l6ZTogbnVtYmVyO1xuICBvZmZzZXQ6IFtudW1iZXIsIG51bWJlcl07XG4gIGFuY2hvcjogc3RyaW5nO1xuICBhbGlnbm1lbnQ6IHN0cmluZztcbiAgb3V0bGluZUNvbG9yOiBSR0JDb2xvcjtcbn07XG5cbmV4cG9ydCB0eXBlIEFnZ3JlZ2F0aW9uVHlwZXMgPSBrZXlvZiB0eXBlb2YgQUdHUkVHQVRJT05fVFlQRVM7XG5cbmV4cG9ydCB0eXBlIENvbG9yVUkgPSB7XG4gIC8vIGN1c3RvbVBhbGV0dGUgaW4gZWRpdFxuICBjdXN0b21QYWxldHRlOiBDb2xvclJhbmdlO1xuICAvLyBzaG93IGNvbG9yIHNrZXRjaGVyIG1vZGFsXG4gIHNob3dTa2V0Y2hlcjogYm9vbGVhbiB8IG51bWJlcjtcbiAgLy8gc2hvdyBjb2xvciByYW5nZSBzZWxlY3Rpb24gcGFuZWxcbiAgc2hvd0Ryb3Bkb3duOiBib29sZWFuIHwgbnVtYmVyO1xuICAvLyBjb2xvciByYW5nZSBzZWxlY3RvciBjb25maWdcbiAgY29sb3JSYW5nZUNvbmZpZzoge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBzdGVwczogbnVtYmVyO1xuICAgIHJldmVyc2VkOiBib29sZWFuO1xuICAgIGN1c3RvbTogYm9vbGVhbjtcbiAgICBoZXhDb2x1bW46IHN0cmluZztcbiAgICBpc0hleENvbHVtbjogYm9vbGVhbjtcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIFZpc0NvbmZpZyA9IHtcbiAgbGFiZWw6XG4gICAgfCBzdHJpbmdcbiAgICB8ICgoXG4gICAgICAgIGNvbmZpZzogTGF5ZXJCYXNlQ29uZmlnICZcbiAgICAgICAgICBQYXJ0aWFsPExheWVyQ29sb3JDb25maWc+ICZcbiAgICAgICAgICBQYXJ0aWFsPExheWVySGVpZ2h0Q29uZmlnPiAmXG4gICAgICAgICAgUGFydGlhbDxMYXllclNpemVDb25maWc+ICZcbiAgICAgICAgICBQYXJ0aWFsPExheWVyV2VpZ2h0Q29uZmlnPlxuICAgICAgKSA9PiBzdHJpbmcpO1xuICBncm91cDoga2V5b2YgdHlwZW9mIFBST1BFUlRZX0dST1VQUztcbiAgcHJvcGVydHk6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNvbmRpdGlvbj86IChcbiAgICBjb25maWc6IExheWVyQmFzZUNvbmZpZyAmXG4gICAgICBQYXJ0aWFsPExheWVyQ29sb3JDb25maWc+ICZcbiAgICAgIFBhcnRpYWw8TGF5ZXJIZWlnaHRDb25maWc+ICZcbiAgICAgIFBhcnRpYWw8TGF5ZXJTaXplQ29uZmlnPiAmXG4gICAgICBQYXJ0aWFsPExheWVyV2VpZ2h0Q29uZmlnPlxuICApID0+IGJvb2xlYW47XG5cbiAgYWxsb3dDdXN0b21WYWx1ZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBWaXNDb25maWdOdW1iZXIgPSBWaXNDb25maWcgJiB7XG4gIHR5cGU6ICdudW1iZXInO1xuICBpc1JhbmdlZDogZmFsc2U7XG4gIGRlZmF1bHRWYWx1ZTogbnVtYmVyO1xuICByYW5nZTogW251bWJlciwgbnVtYmVyXTtcbiAgc3RlcDogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgVmlzQ29uZmlnQm9vbGVhbiA9IFZpc0NvbmZpZyAmIHtcbiAgdHlwZTogJ2Jvb2xlYW4nO1xuICBkZWZhdWx0VmFsdWU6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBWaXNDb25maWdTZWxlY3Rpb24gPSBWaXNDb25maWcgJiB7XG4gIHR5cGU6ICdzZWxlY3QnO1xuICBkZWZhdWx0VmFsdWU6IHN0cmluZztcbiAgb3B0aW9uczogc3RyaW5nW107XG59O1xuXG5leHBvcnQgdHlwZSBWaXNDb25maWdSYW5nZSA9IFZpc0NvbmZpZyAmIHtcbiAgdHlwZTogJ251bWJlcic7XG4gIGlzUmFuZ2VkOiBib29sZWFuO1xuICByYW5nZTogW251bWJlciwgbnVtYmVyXTtcbiAgZGVmYXVsdFZhbHVlOiBbbnVtYmVyLCBudW1iZXJdO1xuICBzdGVwOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBWaXNDb25maWdDb2xvclNlbGVjdCA9IFZpc0NvbmZpZyAmIHtcbiAgdHlwZTogJ2NvbG9yLXNlbGVjdCc7XG4gIGRlZmF1bHRWYWx1ZTogbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIFZpc0NvbmZpZ0NvbG9yUmFuZ2UgPSBWaXNDb25maWcgJiB7XG4gIHR5cGU6ICdjb2xvci1yYW5nZS1zZWxlY3QnO1xuICBkZWZhdWx0VmFsdWU6IENvbG9yUmFuZ2U7XG59O1xuXG5leHBvcnQgdHlwZSBMYXllclZpc0NvbmZpZ1NldHRpbmdzID0ge1xuICB0aGlja25lc3M6IFZpc0NvbmZpZ051bWJlcjtcbiAgc3Ryb2tlV2lkdGhSYW5nZTogVmlzQ29uZmlnUmFuZ2U7XG4gIHRyYWlsTGVuZ3RoOiBWaXNDb25maWdOdW1iZXI7XG4gIHJhZGl1czogVmlzQ29uZmlnTnVtYmVyO1xuICBmaXhlZFJhZGl1czogVmlzQ29uZmlnQm9vbGVhbjtcbiAgcmFkaXVzUmFuZ2U6IFZpc0NvbmZpZ1JhbmdlO1xuICBjbHVzdGVyUmFkaXVzOiBWaXNDb25maWdOdW1iZXI7XG4gIGNsdXN0ZXJSYWRpdXNSYW5nZTogVmlzQ29uZmlnUmFuZ2U7XG4gIG9wYWNpdHk6IFZpc0NvbmZpZ051bWJlcjtcbiAgY292ZXJhZ2U6IFZpc0NvbmZpZ051bWJlcjtcbiAgb3V0bGluZTogVmlzQ29uZmlnQm9vbGVhbjtcbiAgY29sb3JSYW5nZTogVmlzQ29uZmlnQ29sb3JSYW5nZTtcbiAgc3Ryb2tlQ29sb3JSYW5nZTogVmlzQ29uZmlnQ29sb3JSYW5nZTtcbiAgdGFyZ2V0Q29sb3I6IFZpc0NvbmZpZ0NvbG9yU2VsZWN0O1xuICBzdHJva2VDb2xvcjogVmlzQ29uZmlnQ29sb3JTZWxlY3Q7XG4gIGNvbG9yQWdncmVnYXRpb246IFZpc0NvbmZpZ1NlbGVjdGlvbjtcbiAgc2l6ZUFnZ3JlZ2F0aW9uOiBWaXNDb25maWdTZWxlY3Rpb247XG4gIHBlcmNlbnRpbGU6IFZpc0NvbmZpZ1JhbmdlO1xuICBlbGV2YXRpb25QZXJjZW50aWxlOiBWaXNDb25maWdSYW5nZTtcbiAgcmVzb2x1dGlvbjogVmlzQ29uZmlnTnVtYmVyO1xuICBzaXplU2NhbGU6IFZpc0NvbmZpZ051bWJlcjtcbiAgYW5nbGU6IFZpc0NvbmZpZ051bWJlcjtcbiAgd29ybGRVbml0U2l6ZTogVmlzQ29uZmlnTnVtYmVyO1xuICBlbGV2YXRpb25TY2FsZTogVmlzQ29uZmlnTnVtYmVyO1xuICBlbmFibGVFbGV2YXRpb25ab29tRmFjdG9yOiBWaXNDb25maWdCb29sZWFuO1xuICBlbGV2YXRpb25SYW5nZTogVmlzQ29uZmlnUmFuZ2U7XG4gIGhlaWdodFJhbmdlOiBWaXNDb25maWdSYW5nZTtcbiAgY292ZXJhZ2VSYW5nZTogVmlzQ29uZmlnUmFuZ2U7XG4gICdoaS1wcmVjaXNpb24nOiBWaXNDb25maWdCb29sZWFuO1xuICBlbmFibGUzZDogVmlzQ29uZmlnQm9vbGVhbjtcbiAgc3Ryb2tlZDogVmlzQ29uZmlnQm9vbGVhbjtcbiAgZmlsbGVkOiBWaXNDb25maWdCb29sZWFuO1xuICBleHRydWRlZDogVmlzQ29uZmlnQm9vbGVhbjtcbiAgd2lyZWZyYW1lOiBWaXNDb25maWdCb29sZWFuO1xuICB3ZWlnaHQ6IFZpc0NvbmZpZ051bWJlcjtcbiAgaGVhdG1hcFJhZGl1czogVmlzQ29uZmlnTnVtYmVyO1xufTtcblxuLy8gVE9ETzogTW92ZSB0aGlzIHRvIGluZGl2aWR1YWwgbGF5ZXJzXG5leHBvcnQgdHlwZSBMYXllclZpc0NvbmZpZyA9IHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xuICAvLyBwb3NzaWJsZSB2aXNDb25maWdzXG5cbiAgLy8gdGhpY2tuZXNzOiBudW1iZXI7XG4gIC8vIHNpemVSYW5nZTogbnVtYmVyO1xuICAvLyB0cmFpbExlbmd0aDogbnVtYmVyO1xuICAvLyByYWRpdXM6IG51bWJlcjtcbiAgLy8gZml4ZWRSYWRpdXM6IGJvb2xlYW47XG4gIC8vIHJhZGl1c1JhbmdlOiBbbnVtYmVyLCBudW1iZXJdO1xuICAvLyBjbHVzdGVyUmFkaXVzOiBudW1iZXI7XG4gIC8vIG9wYWNpdHk6IG51bWJlcjtcbiAgLy8gY292ZXJhZ2U6IG51bWJlcjtcbiAgLy8gb3V0bGluZTogYm9vbGVhbjtcbiAgLy8gY29sb3JSYW5nZTogQ29sb3JSYW5nZTtcbiAgLy8gc3Ryb2tlQ29sb3JSYW5nZTogQ29sb3JSYW5nZTtcbiAgLy8gdGFyZ2V0Q29sb3I6IGFueTtcbiAgLy8gc3Ryb2tlQ29sb3I6IGFueTtcbiAgLy8gY29sb3JBZ2dyZWdhdGlvbjoga2V5b2YgdHlwZW9mIEFHR1JFR0FUSU9OX1RZUEVTO1xuICAvLyBzaXplQWdncmVnYXRpb246IGtleW9mIHR5cGVvZiBBR0dSRUdBVElPTl9UWVBFUztcbiAgLy8gcGVyY2VudGlsZTogW251bWJlciwgbnVtYmVyXTtcbiAgLy8gZWxldmF0aW9uUGVyY2VudGlsZTogW251bWJlciwgbnVtYmVyXTtcbiAgLy8gcmVzb2x1dGlvbjogbnVtYmVyO1xuICAvLyBzaXplU2NhbGU6IG51bWJlcjtcbiAgLy8gYW5nbGU6IG51bWJlcjtcbiAgLy8gd29ybGRVbml0U2l6ZTogbnVtYmVyO1xuICAvLyBlbGV2YXRpb25TY2FsZTogbnVtYmVyO1xuICAvLyBlbmFibGVFbGV2YXRpb25ab29tRmFjdG9yOiBib29sZWFuO1xuICAvLyBoZWlnaHRSYW5nZTogW251bWJlciwgbnVtYmVyXTtcbiAgLy8gY292ZXJhZ2VSYW5nZTogW251bWJlciwgbnVtYmVyXTtcbiAgLy8gJ2hpLXByZWNpc2lvbic6IGJvb2xlYW47XG4gIC8vIGVuYWJsZTNkOiBib29sZWFuO1xuICAvLyBzdHJva2VkOiBib29sZWFuO1xuICAvLyBmaWxsZWQ6IGJvb2xlYW47XG4gIC8vIGV4dHJ1ZGVkOiBib29sZWFuO1xuICAvLyB3aXJlZnJhbWU6IGJvb2xlYW47XG4gIC8vIHdlaWdodDogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgVGV4dENvbmZpZ1NlbGVjdCA9IHtcbiAgdHlwZTogJ3NlbGVjdCc7XG4gIG9wdGlvbnM6IHN0cmluZ1tdO1xuICBtdWx0aVNlbGVjdDogYm9vbGVhbjtcbiAgc2VhcmNoYWJsZTogYm9vbGVhbjtcbn07XG5leHBvcnQgdHlwZSBUZXh0Q29uZmlnTnVtYmVyID0ge1xuICB0eXBlOiAnbnVtYmVyJztcbiAgcmFuZ2U6IG51bWJlcltdO1xuICB2YWx1ZTA6IG51bWJlcjtcbiAgc3RlcDogbnVtYmVyO1xuICBpc1JhbmdlZDogYm9vbGVhbjtcbiAgbGFiZWw6IHN0cmluZztcbiAgc2hvd0lucHV0OiBib29sZWFuO1xufTtcbmV4cG9ydCB0eXBlIExheWVyVGV4dENvbmZpZyA9IHtcbiAgZm9udFNpemU6IFRleHRDb25maWdOdW1iZXI7XG4gIHRleHRBbmNob3I6IFRleHRDb25maWdTZWxlY3Q7XG4gIHRleHRBbGlnbm1lbnQ6IFRleHRDb25maWdTZWxlY3Q7XG59O1xuXG5leHBvcnQgY29uc3QgUFJPUEVSVFlfR1JPVVBTID0ga2V5TWlycm9yKHtcbiAgY29sb3I6IG51bGwsXG4gIHN0cm9rZTogbnVsbCxcbiAgY3VzdG9tTWFya2VyczogbnVsbCxcbiAgcmFkaXVzOiBudWxsLFxuICBoZWlnaHQ6IG51bGwsXG4gIGFuZ2xlOiBudWxsLFxuICAvLyBmb3IgaGVhdG1hcCBhZ2dyZWdhdGlvblxuICBjZWxsOiBudWxsLFxuICBwcmVjaXNpb246IG51bGwsXG4gIGRpc3BsYXk6IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9MQVlFUl9PUEFDSVRZID0gMC44O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSElHSExJR0hUX0NPTE9SOiBSR0JBQ29sb3IgPSBbMjUyLCAyNDIsIDI2LCAyNTVdO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTEFZRVJfTEFCRUwgPSAnbmV3IGxheWVyJztcbmV4cG9ydCB7REVGQVVMVF9DT0xPUl9SQU5HRX07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RFWFRfTEFCRUw6IExheWVyVGV4dExhYmVsID0ge1xuICBmaWVsZDogbnVsbCxcbiAgY29sb3I6IFs0NCwgNDgsIDUwXSxcbiAgb3V0bGluZUNvbG9yOiBbMjU1LCAyNTUsIDI1NV0sXG4gIHNpemU6IDEyLFxuICBvZmZzZXQ6IFswLCAwXSxcbiAgYW5jaG9yOiAnc3RhcnQnLFxuICBhbGlnbm1lbnQ6ICdjZW50ZXInXG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUNPTkRBUllfVEVYVF9MQUJFTDogTGF5ZXJUZXh0TGFiZWwgPSB7XG4gIC4uLkRFRkFVTFRfVEVYVF9MQUJFTCxcbiAgY29sb3I6IFsxMjgsIDEzMCwgMTMyXSxcbiAgc2l6ZTogMTBcbn07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0NVU1RPTV9QQUxFVFRFOiBDb2xvclJhbmdlID0ge1xuICBuYW1lOiAnY29sb3IuY3VzdG9tUGFsZXR0ZScsXG4gIHR5cGU6ICdjdXN0b20nLFxuICBjYXRlZ29yeTogJ0N1c3RvbScsXG4gIGNvbG9yczogW11cbn07XG5cbmV4cG9ydCBjb25zdCBVTktOT1dOX0NPTE9SX0tFWSA9ICdfX3Vua25vd25Db2xvcl9fJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09MT1JfVUk6IENvbG9yVUkgPSB7XG4gIC8vIGN1c3RvbVBhbGV0dGUgaW4gZWRpdFxuICBjdXN0b21QYWxldHRlOiBERUZBVUxUX0NVU1RPTV9QQUxFVFRFLFxuICAvLyBzaG93IGNvbG9yIHNrZXRjaGVyIG1vZGFsXG4gIHNob3dTa2V0Y2hlcjogZmFsc2UsXG4gIC8vIHNob3cgY29sb3IgcmFuZ2Ugc2VsZWN0aW9uIHBhbmVsXG4gIHNob3dEcm9wZG93bjogZmFsc2UsXG4gIC8vIGNvbG9yIHJhbmdlIHNlbGVjdG9yIGNvbmZpZ1xuICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gIGNvbG9yUmFuZ2VDb25maWc6IHtcbiAgICB0eXBlOiAnYWxsJyxcbiAgICBzdGVwczogNixcbiAgICByZXZlcnNlZDogZmFsc2UsXG4gICAgY3VzdG9tOiBmYWxzZVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgTEFZRVJfVklTX0NPTkZJR1M6IExheWVyVmlzQ29uZmlnU2V0dGluZ3MgPSB7XG4gIHRoaWNrbmVzczoge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMixcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zdHJva2VXaWR0aCcsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMTAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5zdHJva2UsXG4gICAgcHJvcGVydHk6ICd0aGlja25lc3MnLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWVcbiAgfSxcbiAgc3Ryb2tlV2lkdGhSYW5nZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDEwXSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zdHJva2VXaWR0aFJhbmdlJyxcbiAgICBpc1JhbmdlZDogdHJ1ZSxcbiAgICByYW5nZTogWzAsIDIwMF0sXG4gICAgc3RlcDogMC4xLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuc3Ryb2tlLFxuICAgIHByb3BlcnR5OiAnc2l6ZVJhbmdlJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIHRyYWlsTGVuZ3RoOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAxODAsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc3Ryb2tlV2lkdGgnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzEsIDEwMDBdLFxuICAgIHN0ZXA6IDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5zdHJva2UsXG4gICAgcHJvcGVydHk6ICd0cmFpbExlbmd0aCcsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICAvLyByYWRpdXMgaXMgYWN0dWFsbHkgcmFkaXVzU2NhbGUgaW4gZGVjay5nbFxuICByYWRpdXM6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDIsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MucmFkaXVzJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCAxMDBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnJhZGl1cyxcbiAgICBwcm9wZXJ0eTogJ3JhZGl1cycsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICByYWRpdXNSYW5nZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDUwXSxcbiAgICBpc1JhbmdlZDogdHJ1ZSxcbiAgICByYW5nZTogWzAsIDUwMF0sXG4gICAgc3RlcDogMC4xLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnJhZGl1c1JhbmdlJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnJhZGl1cyxcbiAgICBwcm9wZXJ0eTogJ3JhZGl1c1JhbmdlJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIGNsdXN0ZXJSYWRpdXM6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jbHVzdGVyUmFkaXVzJyxcbiAgICBkZWZhdWx0VmFsdWU6IDQwLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzEsIDUwMF0sXG4gICAgc3RlcDogMC4xLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMucmFkaXVzLFxuICAgIHByb3BlcnR5OiAnY2x1c3RlclJhZGl1cycsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBjbHVzdGVyUmFkaXVzUmFuZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5yYWRpdXNSYW5nZVBpeGVscycsXG4gICAgZGVmYXVsdFZhbHVlOiBbMSwgNDBdLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMSwgMTUwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5yYWRpdXMsXG4gICAgcHJvcGVydHk6ICdyYWRpdXNSYW5nZScsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBvcGFjaXR5OiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiBERUZBVUxUX0xBWUVSX09QQUNJVFksXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Mub3BhY2l0eScsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMV0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNvbG9yLFxuICAgIHByb3BlcnR5OiAnb3BhY2l0eScsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogZmFsc2VcbiAgfSxcbiAgY292ZXJhZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDEsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuY292ZXJhZ2UnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDFdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jZWxsLFxuICAgIHByb3BlcnR5OiAnY292ZXJhZ2UnLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IGZhbHNlXG4gIH0sXG4gIC8vIHVzZWQgaW4gcG9pbnQgbGF5ZXJcbiAgb3V0bGluZToge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGxhYmVsOiAnbGF5ZXIub3V0bGluZScsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5kaXNwbGF5LFxuICAgIHByb3BlcnR5OiAnb3V0bGluZSdcbiAgfSxcbiAgY29sb3JSYW5nZToge1xuICAgIHR5cGU6ICdjb2xvci1yYW5nZS1zZWxlY3QnLFxuICAgIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9DT0xPUl9SQU5HRSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jb2xvclJhbmdlJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNvbG9yLFxuICAgIHByb3BlcnR5OiAnY29sb3JSYW5nZSdcbiAgfSxcbiAgc3Ryb2tlQ29sb3JSYW5nZToge1xuICAgIHR5cGU6ICdjb2xvci1yYW5nZS1zZWxlY3QnLFxuICAgIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9DT0xPUl9SQU5HRSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zdHJva2VDb2xvclJhbmdlJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNvbG9yLFxuICAgIHByb3BlcnR5OiAnc3Ryb2tlQ29sb3JSYW5nZSdcbiAgfSxcbiAgdGFyZ2V0Q29sb3I6IHtcbiAgICB0eXBlOiAnY29sb3Itc2VsZWN0JyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy50YXJnZXRDb2xvcicsXG4gICAgZGVmYXVsdFZhbHVlOiBudWxsLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY29sb3IsXG4gICAgcHJvcGVydHk6ICd0YXJnZXRDb2xvcidcbiAgfSxcbiAgc3Ryb2tlQ29sb3I6IHtcbiAgICB0eXBlOiAnY29sb3Itc2VsZWN0JyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zdHJva2VDb2xvcicsXG4gICAgZGVmYXVsdFZhbHVlOiBudWxsLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY29sb3IsXG4gICAgcHJvcGVydHk6ICdzdHJva2VDb2xvcidcbiAgfSxcbiAgY29sb3JBZ2dyZWdhdGlvbjoge1xuICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIGRlZmF1bHRWYWx1ZTogQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jb2xvckFnZ3JlZ2F0aW9uJyxcbiAgICAvLyBhZ2dyZWdhdGlvbiBvcHRpb25zIGFyZSBiYXNlZCBvbiBjb2xvciBmaWVsZCB0eXBlc1xuICAgIG9wdGlvbnM6IE9iamVjdC5rZXlzKEFHR1JFR0FUSU9OX1RZUEVTKSBhcyBBZ2dyZWdhdGlvblR5cGVzW10sXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ2NvbG9yQWdncmVnYXRpb24nLFxuICAgIGNvbmRpdGlvbjogY29uZmlnID0+IEJvb2xlYW4oY29uZmlnLmNvbG9yRmllbGQpXG4gIH0sXG4gIHNpemVBZ2dyZWdhdGlvbjoge1xuICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIGRlZmF1bHRWYWx1ZTogQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5oZWlnaHRBZ2dyZWdhdGlvbicsXG4gICAgLy8gYWdncmVnYXRpb24gb3B0aW9ucyBhcmUgYmFzZWQgb24gY29sb3IgZmllbGQgdHlwZXNcbiAgICBvcHRpb25zOiBPYmplY3Qua2V5cyhBR0dSRUdBVElPTl9UWVBFUykgYXMgQWdncmVnYXRpb25UeXBlc1tdLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnc2l6ZUFnZ3JlZ2F0aW9uJyxcbiAgICBjb25kaXRpb246IGNvbmZpZyA9PiBCb29sZWFuKGNvbmZpZy5zaXplRmllbGQpXG4gIH0sXG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgaGVpZ2h0QWdncmVnYXRpb246IHtcbiAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICBkZWZhdWx0VmFsdWU6IEFHR1JFR0FUSU9OX1RZUEVTLmF2ZXJhZ2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuaGVpZ2h0QWdncmVnYXRpb24nLFxuICAgIG9wdGlvbnM6IE9iamVjdC5rZXlzKEFHR1JFR0FUSU9OX1RZUEVTKSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ2hlaWdodEFnZ3JlZ2F0aW9uJyxcbiAgICBjb25kaXRpb246IGNvbmZpZyA9PiBjb25maWcuaGVpZ2h0RmllbGRcbiAgfSxcbiAgcGVyY2VudGlsZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDEwMF0sXG4gICAgbGFiZWw6IGNvbmZpZyA9PlxuICAgICAgYEZpbHRlciBieSAke1xuICAgICAgICBjb25maWcuY29sb3JGaWVsZFxuICAgICAgICAgID8gYCR7Y29uZmlnLnZpc0NvbmZpZy5jb2xvckFnZ3JlZ2F0aW9ufSAke2NvbmZpZy5jb2xvckZpZWxkLm5hbWV9YFxuICAgICAgICAgIDogJ2NvdW50J1xuICAgICAgfSBwZXJjZW50aWxlYCxcbiAgICBpc1JhbmdlZDogdHJ1ZSxcbiAgICByYW5nZTogWzAsIDEwMF0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNvbG9yLFxuICAgIHByb3BlcnR5OiAncGVyY2VudGlsZScsXG5cbiAgICAvLyBwZXJjZW50aWxlIGZpbHRlciBvbmx5IG1ha2VzIHNlbnNlIHdpdGggbGluZWFyIGFnZ3JlZ2F0aW9uXG4gICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLmNvbG9yU2NhbGUgIT09ICdvcmRpbmFsJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiBmYWxzZVxuICB9LFxuICBlbGV2YXRpb25QZXJjZW50aWxlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiBbMCwgMTAwXSxcbiAgICBsYWJlbDogY29uZmlnID0+XG4gICAgICBgRmlsdGVyIGJ5ICR7XG4gICAgICAgIGNvbmZpZy5zaXplRmllbGQgPyBgJHtjb25maWcudmlzQ29uZmlnLnNpemVBZ2dyZWdhdGlvbn0gJHtjb25maWcuc2l6ZUZpZWxkLm5hbWV9YCA6ICdjb3VudCdcbiAgICAgIH0gcGVyY2VudGlsZWAsXG4gICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgcmFuZ2U6IFswLCAxMDBdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5oZWlnaHQsXG4gICAgcHJvcGVydHk6ICdlbGV2YXRpb25QZXJjZW50aWxlJyxcbiAgICAvLyBwZXJjZW50aWxlIGZpbHRlciBvbmx5IG1ha2VzIHNlbnNlIHdpdGggbGluZWFyIGFnZ3JlZ2F0aW9uXG4gICAgY29uZGl0aW9uOiBjb25maWcgPT5cbiAgICAgIEJvb2xlYW4oY29uZmlnLnZpc0NvbmZpZy5lbmFibGUzZCAmJiAoY29uZmlnLmNvbG9yRmllbGQgfHwgY29uZmlnLnNpemVGaWVsZCkpLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IGZhbHNlXG4gIH0sXG4gIHJlc29sdXRpb246IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDgsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MucmVzb2x1dGlvbicsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMTNdLFxuICAgIHN0ZXA6IDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jZWxsLFxuICAgIHByb3BlcnR5OiAncmVzb2x1dGlvbicsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBzaXplU2NhbGU6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDEwLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnNpemVTY2FsZScsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMSwgMTAwMF0sXG4gICAgc3RlcDogMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnN0cm9rZSxcbiAgICBwcm9wZXJ0eTogJ3NpemVTY2FsZScsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBhbmdsZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmFuZ2xlJyxcbiAgICBkZWZhdWx0VmFsdWU6IDAsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMzYwXSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmFuZ2xlLFxuICAgIHN0ZXA6IDEsXG4gICAgcHJvcGVydHk6ICdhbmdsZScsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICB3b3JsZFVuaXRTaXplOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAxLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLndvcmxkVW5pdFNpemUnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDUwMF0sXG4gICAgc3RlcDogMC4wMDAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY2VsbCxcbiAgICBwcm9wZXJ0eTogJ3dvcmxkVW5pdFNpemUnLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWVcbiAgfSxcbiAgZWxldmF0aW9uU2NhbGU6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDUsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuZWxldmF0aW9uU2NhbGUnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDUwMDBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ2VsZXZhdGlvblNjYWxlJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIGVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3I6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3InLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvcicsXG4gICAgZGVzY3JpcHRpb246ICdsYXllclZpc0NvbmZpZ3MuZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvckRlc2NyaXB0aW9uJ1xuICB9LFxuICBlbGV2YXRpb25SYW5nZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDUwMF0sXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuaGVpZ2h0U2NhbGUnLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMTAwMF0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ3NpemVSYW5nZScsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBoZWlnaHRSYW5nZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDUwMF0sXG4gICAgbGFiZWw6ICdIZWlnaHQgU2NhbGUnLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMTAwMF0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ2hlaWdodFJhbmdlJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIGNvdmVyYWdlUmFuZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCAxXSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jb3ZlcmFnZVJhbmdlJyxcbiAgICBpc1JhbmdlZDogdHJ1ZSxcbiAgICByYW5nZTogWzAsIDFdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5yYWRpdXMsXG4gICAgcHJvcGVydHk6ICdjb3ZlcmFnZVJhbmdlJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiBmYWxzZVxuICB9LFxuICAvLyBoaSBwcmVjaXNpb24gaXMgZGVwcmVjYXRlZCBieSBkZWNrLmdsXG4gICdoaS1wcmVjaXNpb24nOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuaGlnaFByZWNpc2lvblJlbmRlcmluZycsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5wcmVjaXNpb24sXG4gICAgcHJvcGVydHk6ICdoaS1wcmVjaXNpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnbGF5ZXJWaXNDb25maWdzLmhpZ2hQcmVjaXNpb25SZW5kZXJpbmdEZXNjcmlwdGlvbidcbiAgfSxcbiAgZW5hYmxlM2Q6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5oZWlnaHQnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnZW5hYmxlM2QnLFxuICAgIGRlc2NyaXB0aW9uOiAnbGF5ZXJWaXNDb25maWdzLmhlaWdodERlc2NyaXB0aW9uJ1xuICB9LFxuICBzdHJva2VkOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnN0cm9rZScsXG4gICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuZGlzcGxheSxcbiAgICBwcm9wZXJ0eTogJ3N0cm9rZWQnXG4gIH0sXG4gIGZpbGxlZDoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5maWxsJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuZGlzcGxheSxcbiAgICBwcm9wZXJ0eTogJ2ZpbGxlZCdcbiAgfSxcbiAgZXh0cnVkZWQ6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5lbmFibGVQb2x5Z29uSGVpZ2h0JyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmRpc3BsYXksXG4gICAgcHJvcGVydHk6ICdleHRydWRlZCdcbiAgfSxcbiAgd2lyZWZyYW1lOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc2hvd1dpcmVmcmFtZScsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5kaXNwbGF5LFxuICAgIHByb3BlcnR5OiAnd2lyZWZyYW1lJ1xuICB9LFxuICAvLyB1c2VkIGZvciBoZWF0bWFwXG4gIHdlaWdodDoge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy53ZWlnaHRJbnRlbnNpdHknLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAuMDEsIDUwMF0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNlbGwsXG4gICAgcHJvcGVydHk6ICd3ZWlnaHQnLFxuICAgIGNvbmRpdGlvbjogY29uZmlnID0+IEJvb2xlYW4oY29uZmlnLndlaWdodEZpZWxkKSxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIGhlYXRtYXBSYWRpdXM6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDIwLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnJhZGl1cycsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMTAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jZWxsLFxuICAgIHByb3BlcnR5OiAncmFkaXVzJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIGN1c3RvbU1hcmtlcnM6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jdXN0b21NYXJrZXJzJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmN1c3RvbU1hcmtlcnMsXG4gICAgcHJvcGVydHk6ICdjdXN0b21NYXJrZXJzJ1xuICB9LFxuICBjdXN0b21NYXJrZXJzVXJsOiB7XG4gICAgdHlwZTogJ3RleHQnLFxuICAgIGRlZmF1bHRWYWx1ZTogJycsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuYWRkVXJsJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmN1c3RvbU1hcmtlcnMsXG4gICAgcHJvcGVydHk6ICdjdXN0b21NYXJrZXJzVXJsJ1xuICB9LFxuICBjdXN0b21NYXJrZXJzSWQ6IHtcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgZGVmYXVsdFZhbHVlOiB1bmRlZmluZWQsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuYWRkVXJsJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmN1c3RvbU1hcmtlcnMsXG4gICAgcHJvcGVydHk6ICdjdXN0b21NYXJrZXJzSWQnXG4gIH0sXG4gIGN1c3RvbU1hcmtlcnNSYW5nZToge1xuICAgIHR5cGU6ICdtYXJrZXJzLXJhbmdlLXNlbGVjdCcsXG4gICAgZGVmYXVsdFZhbHVlOiB1bmRlZmluZWQsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuY29sb3JSYW5nZScsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jdXN0b21NYXJrZXJzLFxuICAgIHByb3BlcnR5OiAnY3VzdG9tTWFya2Vyc1JhbmdlJ1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgTEFZRVJfVEVYVF9DT05GSUdTOiBMYXllclRleHRDb25maWcgPSB7XG4gIGZvbnRTaXplOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgcmFuZ2U6IFs2LCAzMl0sXG4gICAgdmFsdWUwOiA2LFxuICAgIHN0ZXA6IDEsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIGxhYmVsOiAnRm9udCBzaXplJyxcbiAgICBzaG93SW5wdXQ6IHRydWVcbiAgfSxcbiAgdGV4dEFuY2hvcjoge1xuICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIG9wdGlvbnM6IFsnc3RhcnQnLCAnbWlkZGxlJywgJ2VuZCddLFxuICAgIG11bHRpU2VsZWN0OiBmYWxzZSxcbiAgICBzZWFyY2hhYmxlOiBmYWxzZVxuICB9LFxuICB0ZXh0QWxpZ25tZW50OiB7XG4gICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgb3B0aW9uczogWyd0b3AnLCAnY2VudGVyJywgJ2JvdHRvbSddLFxuICAgIG11bHRpU2Vs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