@kepler.gl/components 3.3.0-alpha.1 → 3.3.0-alpha.3
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.
- package/dist/common/action-panel.js +1 -1
- package/dist/common/color-legend.d.ts +1 -1
- package/dist/common/data-table/canvas.d.ts +1 -1
- package/dist/common/data-table/index.d.ts +1 -1
- package/dist/common/dnd-layer-items.d.ts +4 -0
- package/dist/common/dnd-layer-items.js +6 -2
- package/dist/common/error-boundary.d.ts +1 -1
- package/dist/common/file-uploader/file-upload.d.ts +1 -1
- package/dist/common/flex-container.d.ts +15 -7
- package/dist/common/icon-button.d.ts +53 -6
- package/dist/common/icons/arrow-down-full.d.ts +2 -1
- package/dist/common/icons/arrow-down-full.js +1 -1
- package/dist/common/icons/folder.d.ts +10 -0
- package/dist/common/icons/folder.js +51 -0
- package/dist/common/icons/index.d.ts +1 -0
- package/dist/common/icons/index.js +8 -1
- package/dist/common/icons/timeline-marker.d.ts +2 -1
- package/dist/common/icons/timeline-marker.js +1 -1
- package/dist/common/item-selector/dropdown-list.d.ts +1 -1
- package/dist/common/item-selector/dropdown-list.js +1 -1
- package/dist/common/item-selector/dropdown-select.d.ts +13 -7
- package/dist/common/item-selector/item-selector.d.ts +1 -1
- package/dist/common/item-selector/item-selector.js +1 -1
- package/dist/common/item-selector/typeahead.d.ts +4 -4
- package/dist/common/item-selector/typeahead.js +1 -3
- package/dist/common/layout-splitter.d.ts +45 -0
- package/dist/common/layout-splitter.js +231 -0
- package/dist/common/line-chart.d.ts +7 -3
- package/dist/common/line-chart.js +179 -59
- package/dist/common/modal.d.ts +11 -5
- package/dist/common/modal.js +1 -1
- package/dist/common/portaled.d.ts +17 -17
- package/dist/common/range-slider.js +1 -3
- package/dist/common/slider/mouse-event.d.ts +1 -1
- package/dist/common/slider/mouse-event.js +1 -2
- package/dist/common/slider/slider-bar-handle.d.ts +1 -1
- package/dist/common/slider/slider-bar-handle.js +1 -1
- package/dist/common/slider/slider-handle.d.ts +3 -3
- package/dist/common/slider/slider-handle.js +1 -1
- package/dist/common/slider/slider.d.ts +4 -4
- package/dist/common/slider/slider.js +1 -1
- package/dist/common/styled-components.d.ts +627 -177
- package/dist/common/vertical-toolbar.d.ts +12 -2
- package/dist/container.d.ts +3 -2
- package/dist/container.js +2 -2
- package/dist/context.d.ts +1 -1
- package/dist/context.js +1 -1
- package/dist/dnd-context.d.ts +4 -3
- package/dist/dnd-context.js +64 -9
- package/dist/effects/compact-color-picker.d.ts +1 -1
- package/dist/effects/effect-configurator.d.ts +2 -4
- package/dist/effects/effect-time-configurator.js +1 -1
- package/dist/effects/effect-type-list-item.d.ts +1 -1
- package/dist/filters/components.d.ts +7 -5
- package/dist/filters/filter-panels/filter-synced-dataset-panel.d.ts +6 -2
- package/dist/geocoder-panel.d.ts +2 -2
- package/dist/geocoder-panel.js +6 -7
- package/dist/hooks/use-dnd-layers.d.ts +4 -3
- package/dist/hooks/use-dnd-layers.js +103 -42
- package/dist/index.d.ts +3 -2
- package/dist/index.js +38 -9
- package/dist/injector.d.ts +1 -1
- package/dist/kepler-gl.d.ts +167 -27
- package/dist/kepler-gl.js +3 -2
- package/dist/loading-indicator.d.ts +1 -1
- package/dist/map/layer-hover-info.d.ts +7 -3
- package/dist/map/layer-hover-info.js +58 -22
- package/dist/map/map-control-panel.js +3 -2
- package/dist/map/map-control-toolbar.d.ts +29 -4
- package/dist/map/map-control.d.ts +11 -4
- package/dist/map/map-control.js +7 -6
- package/dist/map/map-legend-panel.d.ts +11 -2
- package/dist/map/map-legend-panel.js +19 -2
- package/dist/map/map-legend.d.ts +19 -2
- package/dist/map/map-legend.js +141 -27
- package/dist/map/split-map-button.d.ts +6 -1
- package/dist/map/split-map-button.js +113 -19
- package/dist/map-container.js +20 -3
- package/dist/maps-layout.d.ts +3 -0
- package/dist/maps-layout.js +86 -26
- package/dist/modal-container.d.ts +1 -1
- package/dist/modals/cloud-tile.d.ts +1 -2
- package/dist/modals/export-map-modal/components.d.ts +9 -5
- package/dist/modals/export-video-modal.d.ts +3 -0
- package/dist/modals/export-video-modal.js +79 -46
- package/dist/modals/export-video-modal.spec.js +2 -2
- package/dist/modals/hubble-utils.d.ts +16 -0
- package/dist/modals/hubble-utils.js +98 -1
- package/dist/modals/modal-dialog.d.ts +1 -1
- package/dist/modals/share-map-modal.d.ts +2 -4
- package/dist/modals/swipe-composite-utils.d.ts +10 -0
- package/dist/modals/swipe-composite-utils.js +108 -0
- package/dist/modals/swipe-export-settings.d.ts +24 -0
- package/dist/modals/swipe-export-settings.js +370 -0
- package/dist/modals/swipe-export-video-container.d.ts +122 -0
- package/dist/modals/swipe-export-video-container.js +630 -0
- package/dist/modals/swipe-export-video-preview.d.ts +68 -0
- package/dist/modals/swipe-export-video-preview.js +339 -0
- package/dist/modals/tilesets-modals/tileset-raster-form.js +1 -5
- package/dist/side-panel/filter-panel/filter-panel-header.d.ts +7 -3
- package/dist/side-panel/layer-manager.d.ts +5 -4
- package/dist/side-panel/layer-manager.js +16 -4
- package/dist/side-panel/layer-panel/color-selector.d.ts +6 -4
- package/dist/side-panel/layer-panel/custom-palette.d.ts +3 -5
- package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +2 -1
- package/dist/side-panel/layer-panel/dataset-layer-group.js +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +2 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.js +1 -1
- package/dist/side-panel/layer-panel/layer-config-group.d.ts +5 -11
- package/dist/side-panel/layer-panel/layer-configurator.js +130 -82
- package/dist/side-panel/layer-panel/layer-group-header.d.ts +15 -0
- package/dist/side-panel/layer-panel/layer-group-header.js +179 -0
- package/dist/side-panel/layer-panel/layer-list.d.ts +9 -4
- package/dist/side-panel/layer-panel/layer-list.js +197 -40
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +2 -10
- package/dist/side-panel/panel-tab.d.ts +1 -3
- package/dist/side-panel/panel-view-list-toggle.d.ts +4 -4
- package/dist/side-panel/side-bar.d.ts +1 -6
- package/dist/side-panel.d.ts +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.js +1 -1
- package/package.json +32 -36
- package/dist/map/layer-selector-panel.d.ts +0 -21
- package/dist/map/layer-selector-panel.js +0 -85
- package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +0 -11
- package/dist/side-panel/layer-panel/radius-by-zoom-input.js +0 -220
|
@@ -93,10 +93,6 @@ var RASTER_TILE_EXAMPLES = [{
|
|
|
93
93
|
label: 'COG',
|
|
94
94
|
name: 'Africa Farms',
|
|
95
95
|
url: 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/Q/WD/2020/7/S2A_36QWD_20200701_0_L2A/TCI.tif'
|
|
96
|
-
}, {
|
|
97
|
-
label: 'PMTiles',
|
|
98
|
-
name: 'Mt Whitney',
|
|
99
|
-
url: 'https://pmtiles.io/usgs-mt-whitney-8-15-webp-512.pmtiles'
|
|
100
96
|
}, {
|
|
101
97
|
label: 'PMTiles',
|
|
102
98
|
name: 'Swiss Historical',
|
|
@@ -289,4 +285,4 @@ var RasterTileForm = function RasterTileForm(_ref3) {
|
|
|
289
285
|
}, RASTER_TILE_EXAMPLES[exampleTab].url))));
|
|
290
286
|
};
|
|
291
287
|
var _default = exports["default"] = RasterTileForm;
|
|
292
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29tbW9uVXRpbHMiLCJfY29uc3RhbnRzIiwiX3RhYmxlIiwiX3V0aWxzIiwiX3VzZUZldGNoUmFzdGVyVGlsZU1ldGFkYXRhIiwiX2NvbW1vbiIsIl9pY29ucyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfdGVtcGxhdGVPYmplY3Q2IiwiX3RlbXBsYXRlT2JqZWN0NyIsIl90ZW1wbGF0ZU9iamVjdDgiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJUaWxlc2V0SW5wdXRDb250YWluZXIiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsIlRpbGVzZXRJbnB1dERlc2NyaXB0aW9uIiwicHJvcHMiLCJ0aGVtZSIsIkFaVVJFMjAwIiwiRXhhbXBsZVVybHNDb250YWluZXIiLCJFeGFtcGxlVGFicyIsIkV4YW1wbGVUYWIiLCJhY3RpdmUiLCJBWlVSRTQwMCIsIldISVRFIiwiQVpVUkU1MDAiLCJFeGFtcGxlVXJsIiwiQVpVUkUxMDAiLCJMYWJlbFJvdyIsImdldERhdGFzZXRBdHRyaWJ1dGVzRnJvbVJhc3RlclRpbGUiLCJfcmVmIiwibmFtZSIsIm1ldGFkYXRhVXJsIiwicmFzdGVyVGlsZVNlcnZlclVybHMiLCJhcHBDb25maWciLCJnZXRBcHBsaWNhdGlvbkNvbmZpZyIsInR5cGUiLCJEYXRhc2V0VHlwZSIsIlJBU1RFUl9USUxFIiwibWV0YWRhdGEiLCJyYXN0ZXJTZXJ2ZXJVc2VMYXRlc3RUaXRpbGVyIiwicmFzdGVyU2VydmVyU3VwcG9ydHNFbGV2YXRpb24iLCJyYXN0ZXJTZXJ2ZXJNYXhSZXRyaWVzIiwicmFzdGVyU2VydmVyUmV0cnlEZWxheSIsInJhc3RlclNlcnZlclNlcnZlckVycm9yc1RvUmV0cnkiLCJyYXN0ZXJTZXJ2ZXJNYXhQZXJTZXJ2ZXJSZXF1ZXN0cyIsIkluZm9JY29uTGluayIsImxhYmVsQ29sb3IiLCJSQVNURVJfVElMRV9ET0NVTUVOVEFUSU9OX1VSTCIsIlRJVElMRVJfQkFTRV9VUkwiLCJpc0NPR1VybCIsInVybCIsInBhdGhuYW1lIiwiVVJMIiwidG9Mb3dlckNhc2UiLCJyZXBsYWNlIiwiZW5kc1dpdGgiLCJfdW51c2VkIiwiY2xlYW5lZCIsInRyaW0iLCJzcGxpdCIsImdldENPR01ldGFkYXRhVXJsIiwiY29nVXJsIiwiY29uY2F0IiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiUkFTVEVSX1RJTEVfRVhBTVBMRVMiLCJsYWJlbCIsInBhcnNlTWV0YWRhdGFBbGxvd0NvbGxlY3Rpb25zIiwiX3JlZjIiLCJyYXN0ZXJUaWxlVHlwZSIsIlJhc3RlclRpbGVUeXBlIiwiUE1USUxFUyIsInBhcnNlVmVjdG9yTWV0YWRhdGEiLCJ0aWxlVXJsIiwicGFyc2VSYXN0ZXJNZXRhZGF0YSIsImFsbG93Q29sbGVjdGlvbnMiLCJSYXN0ZXJUaWxlRm9ybSIsIl9yZWYzIiwic2V0UmVzcG9uc2UiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJ0aWxlTmFtZSIsInNldFRpbGVOYW1lIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJ0aWxlTmFtZVdhc01vZGlmaWVkIiwic2V0VGlsZU5hbWVXYXNNb2RpZmllZCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2V0TWV0YWRhdGFVcmwiLCJfdXNlU3RhdGU3IiwicmFzdGVyU2VydmVyVXJscyIsImpvaW4iLCJfdXNlU3RhdGU4Iiwic2V0UmFzdGVyVGlsZVNlcnZlclVybHMiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJleGFtcGxlVGFiIiwic2V0RXhhbXBsZVRhYiIsImNsZWFyZWRNZXRhZGF0YVVybCIsInNsaWNlIiwiaXNDT0ciLCJlZmZlY3RpdmVNZXRhZGF0YVVybCIsImVmZmVjdGl2ZVJhc3RlclRpbGVTZXJ2ZXJVcmxzIiwiZGVmYXVsdFNlcnZlclVybHMiLCJvbkV4YW1wbGVDbGljayIsInVzZUNhbGxiYWNrIiwib25UaWxlTmFtZUNoYW5nZSIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJ0YXJnZXQiLCJ2YWx1ZSIsIm9uTWV0YWRhdGFVcmxDaGFuZ2UiLCJCb29sZWFuIiwicG9wIiwib25SYXN0ZXJUaWxlU2VydmVyVXJsc0NoYW5nZSIsIl91c2VGZXRjaEpzb24iLCJ1c2VGZXRjaEpzb24iLCJpc1BNVGlsZXNVcmwiLCJTVEFDIiwicHJvY2VzcyIsImRhdGEiLCJsb2FkaW5nIiwibWV0YUVycm9yIiwiZXJyb3IiLCJ1c2VFZmZlY3QiLCJwbXRpbGVzVHlwZSIsIlBNVGlsZXNUeXBlIiwiTVZUIiwiZGF0YXNldCIsIkVycm9yIiwicmFzdGVyVGlsZVNlcnZlcnMiLCJtYXAiLCJzZXJ2ZXIiLCJldmVyeSIsInZhbGlkYXRlVXJsIiwic2hvd1NlcnZlcklucHV0IiwicmFzdGVyU2VydmVyU2hvd1NlcnZlcklucHV0IiwiY3JlYXRlRWxlbWVudCIsImh0bWxGb3IiLCJJbnB1dExpZ2h0IiwiaWQiLCJwbGFjZWhvbGRlciIsIm9uQ2hhbmdlIiwiaHJlZiIsInJlbCIsIkhlbHAiLCJoZWlnaHQiLCJ1bmRlZmluZWQiLCJzaG93SW5saW5lVGlsZXNldEV4YW1wbGVzIiwiZXgiLCJrZXkiLCJvbkNsaWNrIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGFscy90aWxlc2V0cy1tb2RhbHMvdGlsZXNldC1yYXN0ZXItZm9ybS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQge1BNVGlsZXNNZXRhZGF0YX0gZnJvbSAnQGxvYWRlcnMuZ2wvcG10aWxlcyc7XG5cbmltcG9ydCB7aXNQTVRpbGVzVXJsLCB2YWxpZGF0ZVVybH0gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuaW1wb3J0IHtEYXRhc2V0VHlwZSwgUmFzdGVyVGlsZVR5cGUsIFBNVGlsZXNUeXBlfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0pzb25PYmplY3RPckFycmF5fSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7cGFyc2VSYXN0ZXJNZXRhZGF0YSwgcGFyc2VWZWN0b3JNZXRhZGF0YX0gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge2dldEFwcGxpY2F0aW9uQ29uZmlnfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxuaW1wb3J0IHtkZWZhdWx0IGFzIHVzZUZldGNoSnNvbn0gZnJvbSAnLi4vLi4vaG9va3MvdXNlLWZldGNoLXJhc3Rlci10aWxlLW1ldGFkYXRhJztcbmltcG9ydCB7RGF0YXNldENyZWF0aW9uQXR0cmlidXRlcywgTWV0YVJlc3BvbnNlfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQge0lucHV0TGlnaHR9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5pbXBvcnQge0hlbHB9IGZyb20gJy4uLy4uL2NvbW1vbi9pY29ucyc7XG5cbmNvbnN0IFRpbGVzZXRJbnB1dENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDMsIDFmcik7XG4gIHJvdy1nYXA6IDBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuYDtcblxuY29uc3QgVGlsZXNldElucHV0RGVzY3JpcHRpb24gPSBzdHlsZWQuZGl2YFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLkFaVVJFMjAwfTtcbiAgZm9udC1zaXplOiAxMXB4O1xuYDtcblxuY29uc3QgRXhhbXBsZVVybHNDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5BWlVSRTIwMH07XG4gIGZvbnQtc2l6ZTogMTFweDtcbmA7XG5cbmNvbnN0IEV4YW1wbGVUYWJzID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA2cHg7XG4gIG1hcmdpbi10b3A6IDZweDtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5gO1xuXG5jb25zdCBFeGFtcGxlVGFiID0gc3R5bGVkLmRpdjx7YWN0aXZlOiBib29sZWFufT5gXG4gIHBhZGRpbmc6IDNweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDExcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJhY2tncm91bmQ6ICR7cHJvcHMgPT4gKHByb3BzLmFjdGl2ZSA/IHByb3BzLnRoZW1lLkFaVVJFNDAwIDogJ3RyYW5zcGFyZW50Jyl9O1xuICBjb2xvcjogJHtwcm9wcyA9PiAocHJvcHMuYWN0aXZlID8gcHJvcHMudGhlbWUuV0hJVEUgOiBwcm9wcy50aGVtZS5BWlVSRTIwMCl9O1xuICBib3JkZXI6IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLkFaVVJFNDAwfTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IChwcm9wcy5hY3RpdmUgPyBwcm9wcy50aGVtZS5BWlVSRTQwMCA6IHByb3BzLnRoZW1lLkFaVVJFNTAwKX07XG4gIH1cbmA7XG5cbmNvbnN0IEV4YW1wbGVVcmwgPSBzdHlsZWQuZGl2YFxuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuQVpVUkUyMDB9O1xuICBmb250LXNpemU6IDExcHg7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuQVpVUkUxMDB9O1xuICB9XG5gO1xuXG5jb25zdCBMYWJlbFJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5leHBvcnQgdHlwZSBSYXN0ZXJUaWxlc2V0TWV0YSA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBtZXRhZGF0YVVybDogc3RyaW5nO1xuICByYXN0ZXJUaWxlU2VydmVyVXJscz86IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGFzZXRBdHRyaWJ1dGVzRnJvbVJhc3RlclRpbGUoe1xuICBuYW1lLFxuICBtZXRhZGF0YVVybCxcbiAgcmFzdGVyVGlsZVNlcnZlclVybHNcbn06IFJhc3RlclRpbGVzZXRNZXRhKTogRGF0YXNldENyZWF0aW9uQXR0cmlidXRlcyB7XG4gIGNvbnN0IGFwcENvbmZpZyA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCk7XG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICB0eXBlOiBEYXRhc2V0VHlwZS5SQVNURVJfVElMRSxcbiAgICBtZXRhZGF0YToge1xuICAgICAgbWV0YWRhdGFVcmwsXG4gICAgICAuLi4ocmFzdGVyVGlsZVNlcnZlclVybHMgPyB7cmFzdGVyVGlsZVNlcnZlclVybHN9IDoge30pLFxuICAgICAgLy8gUGVyc2lzdCByYXN0ZXIgc2VydmVyLXJlbGF0ZWQgYXBwbGljYXRpb24gY29uZmlnIHdpdGggdGhlIGxheWVyXG4gICAgICByYXN0ZXJTZXJ2ZXJVc2VMYXRlc3RUaXRpbGVyOiBhcHBDb25maWcucmFzdGVyU2VydmVyVXNlTGF0ZXN0VGl0aWxlcixcbiAgICAgIHJhc3RlclNlcnZlclN1cHBvcnRzRWxldmF0aW9uOiBhcHBDb25maWcucmFzdGVyU2VydmVyU3VwcG9ydHNFbGV2YXRpb24sXG4gICAgICByYXN0ZXJTZXJ2ZXJNYXhSZXRyaWVzOiBhcHBDb25maWcucmFzdGVyU2VydmVyTWF4UmV0cmllcyxcbiAgICAgIHJhc3RlclNlcnZlclJldHJ5RGVsYXk6IGFwcENvbmZpZy5yYXN0ZXJTZXJ2ZXJSZXRyeURlbGF5LFxuICAgICAgcmFzdGVyU2VydmVyU2VydmVyRXJyb3JzVG9SZXRyeTogYXBwQ29uZmlnLnJhc3RlclNlcnZlclNlcnZlckVycm9yc1RvUmV0cnksXG4gICAgICByYXN0ZXJTZXJ2ZXJNYXhQZXJTZXJ2ZXJSZXF1ZXN0czogYXBwQ29uZmlnLnJhc3RlclNlcnZlck1heFBlclNlcnZlclJlcXVlc3RzXG4gICAgfVxuICB9O1xufVxuXG50eXBlIFJhc3RlclRpbGVGb3JtUHJvcHMgPSB7XG4gIHNldFJlc3BvbnNlOiAocmVzcG9uc2U6IE1ldGFSZXNwb25zZSkgPT4gdm9pZDtcbn07XG5cbmNvbnN0IEluZm9JY29uTGluayA9IHN0eWxlZC5hYFxuICBtYXJnaW4tbGVmdDogNHB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYWJlbENvbG9yfTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG9wYWNpdHk6IDAuNztcblxuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuYDtcblxuY29uc3QgUkFTVEVSX1RJTEVfRE9DVU1FTlRBVElPTl9VUkwgPVxuICAnaHR0cHM6Ly9kb2NzLmtlcGxlci5nbC9kb2NzL3VzZXItZ3VpZGVzL2MtdHlwZXMtb2YtbGF5ZXJzL24tcmFzdGVyLXRpbGUtbGF5ZXInO1xuXG5jb25zdCBUSVRJTEVSX0JBU0VfVVJMID0gJ2h0dHBzOi8vdGl0aWxlci54eXonO1xuXG5mdW5jdGlvbiBpc0NPR1VybCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIXVybCkgcmV0dXJuIGZhbHNlO1xuICB0cnkge1xuICAgIGNvbnN0IHBhdGhuYW1lID0gbmV3IFVSTCh1cmwpLnBhdGhuYW1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFwvKyQvLCAnJyk7XG4gICAgcmV0dXJuIHBhdGhuYW1lLmVuZHNXaXRoKCcudGlmJykgfHwgcGF0aG5hbWUuZW5kc1dpdGgoJy50aWZmJyk7XG4gIH0gY2F0Y2gge1xuICAgIGNvbnN0IGNsZWFuZWQgPSB1cmwudHJpbSgpLnRvTG93ZXJDYXNlKCkuc3BsaXQoL1s/I10vKVswXS5yZXBsYWNlKC9cXC8rJC8sICcnKTtcbiAgICByZXR1cm4gY2xlYW5lZC5lbmRzV2l0aCgnLnRpZicpIHx8IGNsZWFuZWQuZW5kc1dpdGgoJy50aWZmJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0Q09HTWV0YWRhdGFVcmwoY29nVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7VElUSUxFUl9CQVNFX1VSTH0vY29nL3N0YWM/dXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGNvZ1VybCl9YDtcbn1cblxuY29uc3QgUkFTVEVSX1RJTEVfRVhBTVBMRVMgPSBbXG4gIHtcbiAgICBsYWJlbDogJ0NPRycsXG4gICAgbmFtZTogJ0FmcmljYSBGYXJtcycsXG4gICAgdXJsOiAnaHR0cHM6Ly9zZW50aW5lbC1jb2dzLnMzLnVzLXdlc3QtMi5hbWF6b25hd3MuY29tL3NlbnRpbmVsLXMyLWwyYS1jb2dzLzM2L1EvV0QvMjAyMC83L1MyQV8zNlFXRF8yMDIwMDcwMV8wX0wyQS9UQ0kudGlmJ1xuICB9LFxuICB7XG4gICAgbGFiZWw6ICdQTVRpbGVzJyxcbiAgICBuYW1lOiAnTXQgV2hpdG5leScsXG4gICAgdXJsOiAnaHR0cHM6Ly9wbXRpbGVzLmlvL3VzZ3MtbXQtd2hpdG5leS04LTE1LXdlYnAtNTEyLnBtdGlsZXMnXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogJ1BNVGlsZXMnLFxuICAgIG5hbWU6ICdTd2lzcyBIaXN0b3JpY2FsJyxcbiAgICB1cmw6ICdodHRwczovL3B1YmxpYy1idWNrZXQtZm9yLXRlc3RzLnMzLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL2hpc3RvcmljLXN3aXMtMTh4eC5wbXRpbGVzJ1xuICB9LFxuICB7XG4gICAgbGFiZWw6ICdTVEFDIENvbGxlY3Rpb24nLFxuICAgIG5hbWU6ICdTZW50aW5lbC0yIEwxQycsXG4gICAgdXJsOiAnaHR0cHM6Ly9lYXJ0aC1zZWFyY2guYXdzLmVsZW1lbnQ4NC5jb20vdjEvY29sbGVjdGlvbnMvc2VudGluZWwtMi1sMWMnXG4gIH1cbl07XG5cbmNvbnN0IHBhcnNlTWV0YWRhdGFBbGxvd0NvbGxlY3Rpb25zID0gKFxuICBtZXRhZGF0YTogSnNvbk9iamVjdE9yQXJyYXkgfCBQTVRpbGVzTWV0YWRhdGEsXG4gIHttZXRhZGF0YVVybCwgcmFzdGVyVGlsZVR5cGV9OiB7bWV0YWRhdGFVcmw6IHN0cmluZzsgcmFzdGVyVGlsZVR5cGU6IFJhc3RlclRpbGVUeXBlfVxuKSA9PiB7XG4gIHJldHVybiByYXN0ZXJUaWxlVHlwZSA9PT0gUmFzdGVyVGlsZVR5cGUuUE1USUxFU1xuICAgID8gcGFyc2VWZWN0b3JNZXRhZGF0YShtZXRhZGF0YSBhcyBQTVRpbGVzTWV0YWRhdGEsIHtcbiAgICAgICAgdGlsZVVybDogbWV0YWRhdGFVcmxcbiAgICAgIH0pXG4gICAgOiBwYXJzZVJhc3Rlck1ldGFkYXRhKG1ldGFkYXRhIGFzIEpzb25PYmplY3RPckFycmF5LCB7YWxsb3dDb2xsZWN0aW9uczogdHJ1ZX0pO1xufTtcblxuY29uc3QgUmFzdGVyVGlsZUZvcm06IFJlYWN0LkZDPFJhc3RlclRpbGVGb3JtUHJvcHM+ID0gKHtzZXRSZXNwb25zZX0pID0+IHtcbiAgY29uc3QgW3RpbGVOYW1lLCBzZXRUaWxlTmFtZV0gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcbiAgY29uc3QgW3RpbGVOYW1lV2FzTW9kaWZpZWQsIHNldFRpbGVOYW1lV2FzTW9kaWZpZWRdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCBbbWV0YWRhdGFVcmwsIHNldE1ldGFkYXRhVXJsXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuICBjb25zdCBbcmFzdGVyVGlsZVNlcnZlclVybHMsIHNldFJhc3RlclRpbGVTZXJ2ZXJVcmxzXSA9IHVzZVN0YXRlPHN0cmluZz4oXG4gICAgKGdldEFwcGxpY2F0aW9uQ29uZmlnKCkucmFzdGVyU2VydmVyVXJscyB8fCBbXSkuam9pbignLCcpXG4gICk7XG4gIGNvbnN0IFtleGFtcGxlVGFiLCBzZXRFeGFtcGxlVGFiXSA9IHVzZVN0YXRlKDApO1xuXG4gIC8vIFJlbW92ZSB0cmFpbGluZyBzbGFzaCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIHJhc3RlciB0aWxlIHNlcnZlcnNcbiAgY29uc3QgY2xlYXJlZE1ldGFkYXRhVXJsID0gbWV0YWRhdGFVcmwuZW5kc1dpdGgoJy8nKSA/IG1ldGFkYXRhVXJsLnNsaWNlKDAsIC0xKSA6IG1ldGFkYXRhVXJsO1xuXG4gIGNvbnN0IGlzQ09HID0gaXNDT0dVcmwoY2xlYXJlZE1ldGFkYXRhVXJsKTtcbiAgY29uc3QgZWZmZWN0aXZlTWV0YWRhdGFVcmwgPSBpc0NPRyA/IGdldENPR01ldGFkYXRhVXJsKGNsZWFyZWRNZXRhZGF0YVVybCkgOiBjbGVhcmVkTWV0YWRhdGFVcmw7XG4gIGNvbnN0IGVmZmVjdGl2ZVJhc3RlclRpbGVTZXJ2ZXJVcmxzID0gaXNDT0cgPyBUSVRJTEVSX0JBU0VfVVJMIDogcmFzdGVyVGlsZVNlcnZlclVybHM7XG5cbiAgY29uc3QgZGVmYXVsdFNlcnZlclVybHMgPSAoZ2V0QXBwbGljYXRpb25Db25maWcoKS5yYXN0ZXJTZXJ2ZXJVcmxzIHx8IFtdKS5qb2luKCcsJyk7XG5cbiAgY29uc3Qgb25FeGFtcGxlQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAodXJsOiBzdHJpbmcsIG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgc2V0TWV0YWRhdGFVcmwodXJsKTtcbiAgICAgIHNldFRpbGVOYW1lKG5hbWUpO1xuICAgICAgc2V0VGlsZU5hbWVXYXNNb2RpZmllZChmYWxzZSk7XG5cbiAgICAgIGlmIChpc0NPR1VybCh1cmwpKSB7XG4gICAgICAgIHNldFJhc3RlclRpbGVTZXJ2ZXJVcmxzKFRJVElMRVJfQkFTRV9VUkwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0UmFzdGVyVGlsZVNlcnZlclVybHMoZGVmYXVsdFNlcnZlclVybHMpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2RlZmF1bHRTZXJ2ZXJVcmxzXVxuICApO1xuXG4gIGNvbnN0IG9uVGlsZU5hbWVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgc2V0VGlsZU5hbWVXYXNNb2RpZmllZCh0cnVlKTtcbiAgICAgIHNldFRpbGVOYW1lKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfSxcbiAgICBbc2V0VGlsZU5hbWVdXG4gICk7XG5cbiAgY29uc3Qgb25NZXRhZGF0YVVybENoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCB7dmFsdWV9ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgc2V0TWV0YWRhdGFVcmwodmFsdWUpO1xuXG4gICAgICBpZiAoaXNDT0dVcmwodmFsdWUpICYmICFyYXN0ZXJUaWxlU2VydmVyVXJscy50cmltKCkpIHtcbiAgICAgICAgc2V0UmFzdGVyVGlsZVNlcnZlclVybHMoVElUSUxFUl9CQVNFX1VSTCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGlsZU5hbWVXYXNNb2RpZmllZCkge1xuICAgICAgICBzZXRUaWxlTmFtZSh2YWx1ZS5zcGxpdCgnLycpLmZpbHRlcihCb29sZWFuKS5wb3AoKSB8fCAnJyk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbdGlsZU5hbWVXYXNNb2RpZmllZCwgcmFzdGVyVGlsZVNlcnZlclVybHNdXG4gICk7XG5cbiAgY29uc3Qgb25SYXN0ZXJUaWxlU2VydmVyVXJsc0NoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBzZXRSYXN0ZXJUaWxlU2VydmVyVXJscyhldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH0sXG4gICAgW3NldFJhc3RlclRpbGVTZXJ2ZXJVcmxzXVxuICApO1xuXG4gIGNvbnN0IHtcbiAgICBkYXRhOiBtZXRhZGF0YSxcbiAgICBsb2FkaW5nLFxuICAgIGVycm9yOiBtZXRhRXJyb3JcbiAgfSA9IHVzZUZldGNoSnNvbih7XG4gICAgdXJsOiBlZmZlY3RpdmVNZXRhZGF0YVVybCxcbiAgICByYXN0ZXJUaWxlVHlwZTogaXNQTVRpbGVzVXJsKGNsZWFyZWRNZXRhZGF0YVVybCkgPyBSYXN0ZXJUaWxlVHlwZS5QTVRJTEVTIDogUmFzdGVyVGlsZVR5cGUuU1RBQyxcbiAgICBwcm9jZXNzOiBwYXJzZU1ldGFkYXRhQWxsb3dDb2xsZWN0aW9uc1xuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0aWxlTmFtZSAmJiBjbGVhcmVkTWV0YWRhdGFVcmwpIHtcbiAgICAgIGNvbnN0IHBtdGlsZXNUeXBlID0gbWV0YWRhdGE/LnBtdGlsZXNUeXBlO1xuXG4gICAgICBpZiAocG10aWxlc1R5cGUgPT09IFBNVGlsZXNUeXBlLk1WVCkge1xuICAgICAgICByZXR1cm4gc2V0UmVzcG9uc2Uoe1xuICAgICAgICAgIG1ldGFkYXRhLFxuICAgICAgICAgIGRhdGFzZXQ6IG51bGwsXG4gICAgICAgICAgbG9hZGluZyxcbiAgICAgICAgICBlcnJvcjogbmV3IEVycm9yKCdGb3IgLnBtdGlsZXMgaW4gbXZ0IGZvcm1hdCwgcGxlYXNlIHVzZSB0aGUgVmVjdG9yIFRpbGUgZm9ybS4nKVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgbGV0IGVycm9yID0gbWV0YUVycm9yO1xuXG4gICAgICAvLyBjaGVjayBmb3IgcmFzdGVyIHRpbGUgc2VydmVycyBmb3IgU1RBQyBpdGVtcyBhbmQgY29sbGVjdGlvbnNcbiAgICAgIGxldCByYXN0ZXJUaWxlU2VydmVycztcbiAgICAgIGlmIChcbiAgICAgICAgIWVycm9yXG4gICAgICAgIC8vIFdlIHN0aWxsIG5lZWQgcmFzdGVyIHRpbGUgc2VydmVycyBmb3IgUE1UaWxlcyB3aGVuIHdlIHBsYW4gdG8gdXNlIGVsZXZhdGlvblxuICAgICAgKSB7XG4gICAgICAgIHJhc3RlclRpbGVTZXJ2ZXJzID0gZWZmZWN0aXZlUmFzdGVyVGlsZVNlcnZlclVybHNcbiAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgIC5tYXAoc2VydmVyID0+IHNlcnZlci50cmltKCkpXG4gICAgICAgICAgLmZpbHRlcihzZXJ2ZXIgPT4gc2VydmVyKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHJhc3RlclRpbGVTZXJ2ZXJzLmxlbmd0aCA8IDEgfHxcbiAgICAgICAgICAhcmFzdGVyVGlsZVNlcnZlcnMuZXZlcnkoc2VydmVyID0+IHZhbGlkYXRlVXJsKHNlcnZlcikpXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChwbXRpbGVzVHlwZSkge1xuICAgICAgICAgICAgLy8gRm9yIHJhc3RlciB0aWxlcyBlbGV2YXRpb24gc3VwcG9ydCBpcyBvcHRpb25hbFxuICAgICAgICAgICAgLy8gVE9ETyBkaXNwbGF5IGEgd2FybmluZywgYnV0IG5vdCBhIGJsb2NraW5nIGVycm9yXG4gICAgICAgICAgICByYXN0ZXJUaWxlU2VydmVycyA9IFtdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJvciA9IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgJ1Byb3ZpZGUgdmFsaWQgcmFzdGVyIHRpbGUgc2VydmVyIHVybHMgdG8gc3VwcG9ydCBTVEFDIGFuZCBlbGV2YXRpb25zLidcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGFzZXQgPSBnZXREYXRhc2V0QXR0cmlidXRlc0Zyb21SYXN0ZXJUaWxlKHtcbiAgICAgICAgbmFtZTogdGlsZU5hbWUsXG4gICAgICAgIG1ldGFkYXRhVXJsOiBlZmZlY3RpdmVNZXRhZGF0YVVybCxcbiAgICAgICAgcmFzdGVyVGlsZVNlcnZlclVybHM6IHJhc3RlclRpbGVTZXJ2ZXJzXG4gICAgICB9KTtcblxuICAgICAgc2V0UmVzcG9uc2Uoe1xuICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgZGF0YXNldCxcbiAgICAgICAgbG9hZGluZyxcbiAgICAgICAgZXJyb3JcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRSZXNwb25zZSh7XG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgICBkYXRhc2V0OiBudWxsLFxuICAgICAgICBsb2FkaW5nLFxuICAgICAgICBlcnJvcjogbWV0YUVycm9yXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtcbiAgICBtZXRhZGF0YSxcbiAgICBsb2FkaW5nLFxuICAgIG1ldGFFcnJvcixcbiAgICB0aWxlTmFtZSxcbiAgICBjbGVhcmVkTWV0YWRhdGFVcmwsXG4gICAgZWZmZWN0aXZlTWV0YWRhdGFVcmwsXG4gICAgZWZmZWN0aXZlUmFzdGVyVGlsZVNlcnZlclVybHMsXG4gICAgc2V0UmVzcG9uc2VcbiAgXSk7XG5cbiAgY29uc3Qgc2hvd1NlcnZlcklucHV0ID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS5yYXN0ZXJTZXJ2ZXJTaG93U2VydmVySW5wdXQ7XG5cbiAgcmV0dXJuIChcbiAgICA8VGlsZXNldElucHV0Q29udGFpbmVyPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJ0aWxlc2V0LW5hbWVcIj5OYW1lPC9sYWJlbD5cbiAgICAgICAgPElucHV0TGlnaHRcbiAgICAgICAgICBpZD1cInRpbGVzZXQtbmFtZVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJOYW1lIHlvdXIgdGlsZXNldFwiXG4gICAgICAgICAgdmFsdWU9e3RpbGVOYW1lfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvblRpbGVOYW1lQ2hhbmdlfVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8TGFiZWxSb3c+XG4gICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJ0aWxlLW1ldGFkYXRhXCI+VGlsZXNldCBtZXRhZGF0YSBVUkw8L2xhYmVsPlxuICAgICAgICAgIDxJbmZvSWNvbkxpbmtcbiAgICAgICAgICAgIGhyZWY9e1JBU1RFUl9USUxFX0RPQ1VNRU5UQVRJT05fVVJMfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIk9wZW4gUmFzdGVyIFRpbGUgTGF5ZXIgZG9jdW1lbnRhdGlvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEhlbHAgaGVpZ2h0PVwiMTZweFwiIC8+XG4gICAgICAgICAgPC9JbmZvSWNvbkxpbms+XG4gICAgICAgIDwvTGFiZWxSb3c+XG4gICAgICAgIDxJbnB1dExpZ2h0XG4gICAgICAgICAgaWQ9XCJ0aWxlLW1ldGFkYXRhXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlRpbGVzZXQgbWV0YWRhdGEgVVJMXCJcbiAgICAgICAgICB2YWx1ZT17bWV0YWRhdGFVcmwgPz8gdW5kZWZpbmVkfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbk1ldGFkYXRhVXJsQ2hhbmdlfVxuICAgICAgICAvPlxuICAgICAgICA8VGlsZXNldElucHV0RGVzY3JpcHRpb24+XG4gICAgICAgICAgU3VwcG9ydHMgcmFzdGVyIC5wbXRpbGVzLCBDT0cgKC50aWYpIFVSTHMsIFNUQUMgSXRlbXMgYW5kIENvbGxlY3Rpb25zLlxuICAgICAgICA8L1RpbGVzZXRJbnB1dERlc2NyaXB0aW9uPlxuICAgICAgPC9kaXY+XG4gICAgICB7c2hvd1NlcnZlcklucHV0ICYmIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8TGFiZWxSb3c+XG4gICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cInRpbGVzZXQtcmFzdGVyLXNlcnZlcnNcIj5SYXN0ZXIgdGlsZSBzZXJ2ZXJzPC9sYWJlbD5cbiAgICAgICAgICAgIDxJbmZvSWNvbkxpbmtcbiAgICAgICAgICAgICAgaHJlZj17UkFTVEVSX1RJTEVfRE9DVU1FTlRBVElPTl9VUkx9XG4gICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiT3BlbiBSYXN0ZXIgVGlsZSBMYXllciBkb2N1bWVudGF0aW9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEhlbHAgaGVpZ2h0PVwiMTZweFwiIC8+XG4gICAgICAgICAgICA8L0luZm9JY29uTGluaz5cbiAgICAgICAgICA8L0xhYmVsUm93PlxuICAgICAgICAgIDxJbnB1dExpZ2h0XG4gICAgICAgICAgICBpZD1cInRpbGVzZXQtcmFzdGVyLXNlcnZlcnNcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJSYXN0ZXIgdGlsZSBzZXJ2ZXJzIChzZXBhcmF0ZWQgYnkgY29tbWFzKVwiXG4gICAgICAgICAgICB2YWx1ZT17cmFzdGVyVGlsZVNlcnZlclVybHN9XG4gICAgICAgICAgICBvbkNoYW5nZT17b25SYXN0ZXJUaWxlU2VydmVyVXJsc0NoYW5nZX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxUaWxlc2V0SW5wdXREZXNjcmlwdGlvbj5cbiAgICAgICAgICAgIFJhc3RlciB0aWxlIHNlcnZlciBVUkxzIGZvciBDbG91ZCBPcHRpbWl6ZWQgR2VvVElGRiB0aWxlc2V0cyBhbmQgZWxldmF0aW9uLlxuICAgICAgICAgIDwvVGlsZXNldElucHV0RGVzY3JpcHRpb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICAgIHtnZXRBcHBsaWNhdGlvbkNvbmZpZygpLnNob3dJbmxpbmVUaWxlc2V0RXhhbXBsZXMgJiYgKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxUaWxlc2V0SW5wdXREZXNjcmlwdGlvbj5cbiAgICAgICAgICAgIEZvciBleGFtcGxlLCB0cnkgYSBwdWJsaWMgcmFzdGVyIHRpbGVzZXQ6XG4gICAgICAgICAgPC9UaWxlc2V0SW5wdXREZXNjcmlwdGlvbj5cbiAgICAgICAgICA8RXhhbXBsZVVybHNDb250YWluZXI+XG4gICAgICAgICAgICA8RXhhbXBsZVRhYnM+XG4gICAgICAgICAgICAgIHtSQVNURVJfVElMRV9FWEFNUExFUy5tYXAoKGV4LCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgPEV4YW1wbGVUYWJcbiAgICAgICAgICAgICAgICAgIGtleT17YCR7ZXgubGFiZWx9LSR7ZXgubmFtZX1gfVxuICAgICAgICAgICAgICAgICAgYWN0aXZlPXtleGFtcGxlVGFiID09PSBpfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRFeGFtcGxlVGFiKGkpO1xuICAgICAgICAgICAgICAgICAgICBvbkV4YW1wbGVDbGljayhleC51cmwsIGV4Lm5hbWUpO1xuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7ZXgubmFtZX1cbiAgICAgICAgICAgICAgICA8L0V4YW1wbGVUYWI+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9FeGFtcGxlVGFicz5cbiAgICAgICAgICAgIDxFeGFtcGxlVXJsXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgICAgb25FeGFtcGxlQ2xpY2soXG4gICAgICAgICAgICAgICAgICBSQVNURVJfVElMRV9FWEFNUExFU1tleGFtcGxlVGFiXS51cmwsXG4gICAgICAgICAgICAgICAgICBSQVNURVJfVElMRV9FWEFNUExFU1tleGFtcGxlVGFiXS5uYW1lXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtSQVNURVJfVElMRV9FWEFNUExFU1tleGFtcGxlVGFiXS51cmx9XG4gICAgICAgICAgICA8L0V4YW1wbGVVcmw+XG4gICAgICAgICAgPC9FeGFtcGxlVXJsc0NvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvVGlsZXNldElucHV0Q29udGFpbmVyPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgUmFzdGVyVGlsZUZvcm07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMs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
|
|
288
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29tbW9uVXRpbHMiLCJfY29uc3RhbnRzIiwiX3RhYmxlIiwiX3V0aWxzIiwiX3VzZUZldGNoUmFzdGVyVGlsZU1ldGFkYXRhIiwiX2NvbW1vbiIsIl9pY29ucyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfdGVtcGxhdGVPYmplY3Q2IiwiX3RlbXBsYXRlT2JqZWN0NyIsIl90ZW1wbGF0ZU9iamVjdDgiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJUaWxlc2V0SW5wdXRDb250YWluZXIiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsIlRpbGVzZXRJbnB1dERlc2NyaXB0aW9uIiwicHJvcHMiLCJ0aGVtZSIsIkFaVVJFMjAwIiwiRXhhbXBsZVVybHNDb250YWluZXIiLCJFeGFtcGxlVGFicyIsIkV4YW1wbGVUYWIiLCJhY3RpdmUiLCJBWlVSRTQwMCIsIldISVRFIiwiQVpVUkU1MDAiLCJFeGFtcGxlVXJsIiwiQVpVUkUxMDAiLCJMYWJlbFJvdyIsImdldERhdGFzZXRBdHRyaWJ1dGVzRnJvbVJhc3RlclRpbGUiLCJfcmVmIiwibmFtZSIsIm1ldGFkYXRhVXJsIiwicmFzdGVyVGlsZVNlcnZlclVybHMiLCJhcHBDb25maWciLCJnZXRBcHBsaWNhdGlvbkNvbmZpZyIsInR5cGUiLCJEYXRhc2V0VHlwZSIsIlJBU1RFUl9USUxFIiwibWV0YWRhdGEiLCJyYXN0ZXJTZXJ2ZXJVc2VMYXRlc3RUaXRpbGVyIiwicmFzdGVyU2VydmVyU3VwcG9ydHNFbGV2YXRpb24iLCJyYXN0ZXJTZXJ2ZXJNYXhSZXRyaWVzIiwicmFzdGVyU2VydmVyUmV0cnlEZWxheSIsInJhc3RlclNlcnZlclNlcnZlckVycm9yc1RvUmV0cnkiLCJyYXN0ZXJTZXJ2ZXJNYXhQZXJTZXJ2ZXJSZXF1ZXN0cyIsIkluZm9JY29uTGluayIsImxhYmVsQ29sb3IiLCJSQVNURVJfVElMRV9ET0NVTUVOVEFUSU9OX1VSTCIsIlRJVElMRVJfQkFTRV9VUkwiLCJpc0NPR1VybCIsInVybCIsInBhdGhuYW1lIiwiVVJMIiwidG9Mb3dlckNhc2UiLCJyZXBsYWNlIiwiZW5kc1dpdGgiLCJfdW51c2VkIiwiY2xlYW5lZCIsInRyaW0iLCJzcGxpdCIsImdldENPR01ldGFkYXRhVXJsIiwiY29nVXJsIiwiY29uY2F0IiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiUkFTVEVSX1RJTEVfRVhBTVBMRVMiLCJsYWJlbCIsInBhcnNlTWV0YWRhdGFBbGxvd0NvbGxlY3Rpb25zIiwiX3JlZjIiLCJyYXN0ZXJUaWxlVHlwZSIsIlJhc3RlclRpbGVUeXBlIiwiUE1USUxFUyIsInBhcnNlVmVjdG9yTWV0YWRhdGEiLCJ0aWxlVXJsIiwicGFyc2VSYXN0ZXJNZXRhZGF0YSIsImFsbG93Q29sbGVjdGlvbnMiLCJSYXN0ZXJUaWxlRm9ybSIsIl9yZWYzIiwic2V0UmVzcG9uc2UiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJ0aWxlTmFtZSIsInNldFRpbGVOYW1lIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJ0aWxlTmFtZVdhc01vZGlmaWVkIiwic2V0VGlsZU5hbWVXYXNNb2RpZmllZCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2V0TWV0YWRhdGFVcmwiLCJfdXNlU3RhdGU3IiwicmFzdGVyU2VydmVyVXJscyIsImpvaW4iLCJfdXNlU3RhdGU4Iiwic2V0UmFzdGVyVGlsZVNlcnZlclVybHMiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJleGFtcGxlVGFiIiwic2V0RXhhbXBsZVRhYiIsImNsZWFyZWRNZXRhZGF0YVVybCIsInNsaWNlIiwiaXNDT0ciLCJlZmZlY3RpdmVNZXRhZGF0YVVybCIsImVmZmVjdGl2ZVJhc3RlclRpbGVTZXJ2ZXJVcmxzIiwiZGVmYXVsdFNlcnZlclVybHMiLCJvbkV4YW1wbGVDbGljayIsInVzZUNhbGxiYWNrIiwib25UaWxlTmFtZUNoYW5nZSIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJ0YXJnZXQiLCJ2YWx1ZSIsIm9uTWV0YWRhdGFVcmxDaGFuZ2UiLCJCb29sZWFuIiwicG9wIiwib25SYXN0ZXJUaWxlU2VydmVyVXJsc0NoYW5nZSIsIl91c2VGZXRjaEpzb24iLCJ1c2VGZXRjaEpzb24iLCJpc1BNVGlsZXNVcmwiLCJTVEFDIiwicHJvY2VzcyIsImRhdGEiLCJsb2FkaW5nIiwibWV0YUVycm9yIiwiZXJyb3IiLCJ1c2VFZmZlY3QiLCJwbXRpbGVzVHlwZSIsIlBNVGlsZXNUeXBlIiwiTVZUIiwiZGF0YXNldCIsIkVycm9yIiwicmFzdGVyVGlsZVNlcnZlcnMiLCJtYXAiLCJzZXJ2ZXIiLCJldmVyeSIsInZhbGlkYXRlVXJsIiwic2hvd1NlcnZlcklucHV0IiwicmFzdGVyU2VydmVyU2hvd1NlcnZlcklucHV0IiwiY3JlYXRlRWxlbWVudCIsImh0bWxGb3IiLCJJbnB1dExpZ2h0IiwiaWQiLCJwbGFjZWhvbGRlciIsIm9uQ2hhbmdlIiwiaHJlZiIsInJlbCIsIkhlbHAiLCJoZWlnaHQiLCJ1bmRlZmluZWQiLCJzaG93SW5saW5lVGlsZXNldEV4YW1wbGVzIiwiZXgiLCJrZXkiLCJvbkNsaWNrIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGFscy90aWxlc2V0cy1tb2RhbHMvdGlsZXNldC1yYXN0ZXItZm9ybS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQge1BNVGlsZXNNZXRhZGF0YX0gZnJvbSAnQGxvYWRlcnMuZ2wvcG10aWxlcyc7XG5cbmltcG9ydCB7aXNQTVRpbGVzVXJsLCB2YWxpZGF0ZVVybH0gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuaW1wb3J0IHtEYXRhc2V0VHlwZSwgUmFzdGVyVGlsZVR5cGUsIFBNVGlsZXNUeXBlfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0pzb25PYmplY3RPckFycmF5fSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7cGFyc2VSYXN0ZXJNZXRhZGF0YSwgcGFyc2VWZWN0b3JNZXRhZGF0YX0gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge2dldEFwcGxpY2F0aW9uQ29uZmlnfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxuaW1wb3J0IHtkZWZhdWx0IGFzIHVzZUZldGNoSnNvbn0gZnJvbSAnLi4vLi4vaG9va3MvdXNlLWZldGNoLXJhc3Rlci10aWxlLW1ldGFkYXRhJztcbmltcG9ydCB7RGF0YXNldENyZWF0aW9uQXR0cmlidXRlcywgTWV0YVJlc3BvbnNlfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQge0lucHV0TGlnaHR9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5pbXBvcnQge0hlbHB9IGZyb20gJy4uLy4uL2NvbW1vbi9pY29ucyc7XG5cbmNvbnN0IFRpbGVzZXRJbnB1dENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDMsIDFmcik7XG4gIHJvdy1nYXA6IDBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuYDtcblxuY29uc3QgVGlsZXNldElucHV0RGVzY3JpcHRpb24gPSBzdHlsZWQuZGl2YFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLkFaVVJFMjAwfTtcbiAgZm9udC1zaXplOiAxMXB4O1xuYDtcblxuY29uc3QgRXhhbXBsZVVybHNDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5BWlVSRTIwMH07XG4gIGZvbnQtc2l6ZTogMTFweDtcbmA7XG5cbmNvbnN0IEV4YW1wbGVUYWJzID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA2cHg7XG4gIG1hcmdpbi10b3A6IDZweDtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5gO1xuXG5jb25zdCBFeGFtcGxlVGFiID0gc3R5bGVkLmRpdjx7YWN0aXZlOiBib29sZWFufT5gXG4gIHBhZGRpbmc6IDNweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDExcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJhY2tncm91bmQ6ICR7cHJvcHMgPT4gKHByb3BzLmFjdGl2ZSA/IHByb3BzLnRoZW1lLkFaVVJFNDAwIDogJ3RyYW5zcGFyZW50Jyl9O1xuICBjb2xvcjogJHtwcm9wcyA9PiAocHJvcHMuYWN0aXZlID8gcHJvcHMudGhlbWUuV0hJVEUgOiBwcm9wcy50aGVtZS5BWlVSRTIwMCl9O1xuICBib3JkZXI6IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLkFaVVJFNDAwfTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IChwcm9wcy5hY3RpdmUgPyBwcm9wcy50aGVtZS5BWlVSRTQwMCA6IHByb3BzLnRoZW1lLkFaVVJFNTAwKX07XG4gIH1cbmA7XG5cbmNvbnN0IEV4YW1wbGVVcmwgPSBzdHlsZWQuZGl2YFxuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuQVpVUkUyMDB9O1xuICBmb250LXNpemU6IDExcHg7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuQVpVUkUxMDB9O1xuICB9XG5gO1xuXG5jb25zdCBMYWJlbFJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5leHBvcnQgdHlwZSBSYXN0ZXJUaWxlc2V0TWV0YSA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBtZXRhZGF0YVVybDogc3RyaW5nO1xuICByYXN0ZXJUaWxlU2VydmVyVXJscz86IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGFzZXRBdHRyaWJ1dGVzRnJvbVJhc3RlclRpbGUoe1xuICBuYW1lLFxuICBtZXRhZGF0YVVybCxcbiAgcmFzdGVyVGlsZVNlcnZlclVybHNcbn06IFJhc3RlclRpbGVzZXRNZXRhKTogRGF0YXNldENyZWF0aW9uQXR0cmlidXRlcyB7XG4gIGNvbnN0IGFwcENvbmZpZyA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCk7XG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICB0eXBlOiBEYXRhc2V0VHlwZS5SQVNURVJfVElMRSxcbiAgICBtZXRhZGF0YToge1xuICAgICAgbWV0YWRhdGFVcmwsXG4gICAgICAuLi4ocmFzdGVyVGlsZVNlcnZlclVybHMgPyB7cmFzdGVyVGlsZVNlcnZlclVybHN9IDoge30pLFxuICAgICAgLy8gUGVyc2lzdCByYXN0ZXIgc2VydmVyLXJlbGF0ZWQgYXBwbGljYXRpb24gY29uZmlnIHdpdGggdGhlIGxheWVyXG4gICAgICByYXN0ZXJTZXJ2ZXJVc2VMYXRlc3RUaXRpbGVyOiBhcHBDb25maWcucmFzdGVyU2VydmVyVXNlTGF0ZXN0VGl0aWxlcixcbiAgICAgIHJhc3RlclNlcnZlclN1cHBvcnRzRWxldmF0aW9uOiBhcHBDb25maWcucmFzdGVyU2VydmVyU3VwcG9ydHNFbGV2YXRpb24sXG4gICAgICByYXN0ZXJTZXJ2ZXJNYXhSZXRyaWVzOiBhcHBDb25maWcucmFzdGVyU2VydmVyTWF4UmV0cmllcyxcbiAgICAgIHJhc3RlclNlcnZlclJldHJ5RGVsYXk6IGFwcENvbmZpZy5yYXN0ZXJTZXJ2ZXJSZXRyeURlbGF5LFxuICAgICAgcmFzdGVyU2VydmVyU2VydmVyRXJyb3JzVG9SZXRyeTogYXBwQ29uZmlnLnJhc3RlclNlcnZlclNlcnZlckVycm9yc1RvUmV0cnksXG4gICAgICByYXN0ZXJTZXJ2ZXJNYXhQZXJTZXJ2ZXJSZXF1ZXN0czogYXBwQ29uZmlnLnJhc3RlclNlcnZlck1heFBlclNlcnZlclJlcXVlc3RzXG4gICAgfVxuICB9O1xufVxuXG50eXBlIFJhc3RlclRpbGVGb3JtUHJvcHMgPSB7XG4gIHNldFJlc3BvbnNlOiAocmVzcG9uc2U6IE1ldGFSZXNwb25zZSkgPT4gdm9pZDtcbn07XG5cbmNvbnN0IEluZm9JY29uTGluayA9IHN0eWxlZC5hYFxuICBtYXJnaW4tbGVmdDogNHB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYWJlbENvbG9yfTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG9wYWNpdHk6IDAuNztcblxuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuYDtcblxuY29uc3QgUkFTVEVSX1RJTEVfRE9DVU1FTlRBVElPTl9VUkwgPVxuICAnaHR0cHM6Ly9kb2NzLmtlcGxlci5nbC9kb2NzL3VzZXItZ3VpZGVzL2MtdHlwZXMtb2YtbGF5ZXJzL24tcmFzdGVyLXRpbGUtbGF5ZXInO1xuXG5jb25zdCBUSVRJTEVSX0JBU0VfVVJMID0gJ2h0dHBzOi8vdGl0aWxlci54eXonO1xuXG5mdW5jdGlvbiBpc0NPR1VybCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIXVybCkgcmV0dXJuIGZhbHNlO1xuICB0cnkge1xuICAgIGNvbnN0IHBhdGhuYW1lID0gbmV3IFVSTCh1cmwpLnBhdGhuYW1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFwvKyQvLCAnJyk7XG4gICAgcmV0dXJuIHBhdGhuYW1lLmVuZHNXaXRoKCcudGlmJykgfHwgcGF0aG5hbWUuZW5kc1dpdGgoJy50aWZmJyk7XG4gIH0gY2F0Y2gge1xuICAgIGNvbnN0IGNsZWFuZWQgPSB1cmwudHJpbSgpLnRvTG93ZXJDYXNlKCkuc3BsaXQoL1s/I10vKVswXS5yZXBsYWNlKC9cXC8rJC8sICcnKTtcbiAgICByZXR1cm4gY2xlYW5lZC5lbmRzV2l0aCgnLnRpZicpIHx8IGNsZWFuZWQuZW5kc1dpdGgoJy50aWZmJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0Q09HTWV0YWRhdGFVcmwoY29nVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7VElUSUxFUl9CQVNFX1VSTH0vY29nL3N0YWM/dXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGNvZ1VybCl9YDtcbn1cblxuY29uc3QgUkFTVEVSX1RJTEVfRVhBTVBMRVMgPSBbXG4gIHtcbiAgICBsYWJlbDogJ0NPRycsXG4gICAgbmFtZTogJ0FmcmljYSBGYXJtcycsXG4gICAgdXJsOiAnaHR0cHM6Ly9zZW50aW5lbC1jb2dzLnMzLnVzLXdlc3QtMi5hbWF6b25hd3MuY29tL3NlbnRpbmVsLXMyLWwyYS1jb2dzLzM2L1EvV0QvMjAyMC83L1MyQV8zNlFXRF8yMDIwMDcwMV8wX0wyQS9UQ0kudGlmJ1xuICB9LFxuICB7XG4gICAgbGFiZWw6ICdQTVRpbGVzJyxcbiAgICBuYW1lOiAnU3dpc3MgSGlzdG9yaWNhbCcsXG4gICAgdXJsOiAnaHR0cHM6Ly9wdWJsaWMtYnVja2V0LWZvci10ZXN0cy5zMy51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9oaXN0b3JpYy1zd2lzLTE4eHgucG10aWxlcydcbiAgfSxcbiAge1xuICAgIGxhYmVsOiAnU1RBQyBDb2xsZWN0aW9uJyxcbiAgICBuYW1lOiAnU2VudGluZWwtMiBMMUMnLFxuICAgIHVybDogJ2h0dHBzOi8vZWFydGgtc2VhcmNoLmF3cy5lbGVtZW50ODQuY29tL3YxL2NvbGxlY3Rpb25zL3NlbnRpbmVsLTItbDFjJ1xuICB9XG5dO1xuXG5jb25zdCBwYXJzZU1ldGFkYXRhQWxsb3dDb2xsZWN0aW9ucyA9IChcbiAgbWV0YWRhdGE6IEpzb25PYmplY3RPckFycmF5IHwgUE1UaWxlc01ldGFkYXRhLFxuICB7bWV0YWRhdGFVcmwsIHJhc3RlclRpbGVUeXBlfToge21ldGFkYXRhVXJsOiBzdHJpbmc7IHJhc3RlclRpbGVUeXBlOiBSYXN0ZXJUaWxlVHlwZX1cbikgPT4ge1xuICByZXR1cm4gcmFzdGVyVGlsZVR5cGUgPT09IFJhc3RlclRpbGVUeXBlLlBNVElMRVNcbiAgICA/IHBhcnNlVmVjdG9yTWV0YWRhdGEobWV0YWRhdGEgYXMgUE1UaWxlc01ldGFkYXRhLCB7XG4gICAgICAgIHRpbGVVcmw6IG1ldGFkYXRhVXJsXG4gICAgICB9KVxuICAgIDogcGFyc2VSYXN0ZXJNZXRhZGF0YShtZXRhZGF0YSBhcyBKc29uT2JqZWN0T3JBcnJheSwge2FsbG93Q29sbGVjdGlvbnM6IHRydWV9KTtcbn07XG5cbmNvbnN0IFJhc3RlclRpbGVGb3JtOiBSZWFjdC5GQzxSYXN0ZXJUaWxlRm9ybVByb3BzPiA9ICh7c2V0UmVzcG9uc2V9KSA9PiB7XG4gIGNvbnN0IFt0aWxlTmFtZSwgc2V0VGlsZU5hbWVdID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XG4gIGNvbnN0IFt0aWxlTmFtZVdhc01vZGlmaWVkLCBzZXRUaWxlTmFtZVdhc01vZGlmaWVkXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW21ldGFkYXRhVXJsLCBzZXRNZXRhZGF0YVVybF0gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcbiAgY29uc3QgW3Jhc3RlclRpbGVTZXJ2ZXJVcmxzLCBzZXRSYXN0ZXJUaWxlU2VydmVyVXJsc10gPSB1c2VTdGF0ZTxzdHJpbmc+KFxuICAgIChnZXRBcHBsaWNhdGlvbkNvbmZpZygpLnJhc3RlclNlcnZlclVybHMgfHwgW10pLmpvaW4oJywnKVxuICApO1xuICBjb25zdCBbZXhhbXBsZVRhYiwgc2V0RXhhbXBsZVRhYl0gPSB1c2VTdGF0ZSgwKTtcblxuICAvLyBSZW1vdmUgdHJhaWxpbmcgc2xhc2ggdG8gcHJldmVudCBpc3N1ZXMgd2l0aCByYXN0ZXIgdGlsZSBzZXJ2ZXJzXG4gIGNvbnN0IGNsZWFyZWRNZXRhZGF0YVVybCA9IG1ldGFkYXRhVXJsLmVuZHNXaXRoKCcvJykgPyBtZXRhZGF0YVVybC5zbGljZSgwLCAtMSkgOiBtZXRhZGF0YVVybDtcblxuICBjb25zdCBpc0NPRyA9IGlzQ09HVXJsKGNsZWFyZWRNZXRhZGF0YVVybCk7XG4gIGNvbnN0IGVmZmVjdGl2ZU1ldGFkYXRhVXJsID0gaXNDT0cgPyBnZXRDT0dNZXRhZGF0YVVybChjbGVhcmVkTWV0YWRhdGFVcmwpIDogY2xlYXJlZE1ldGFkYXRhVXJsO1xuICBjb25zdCBlZmZlY3RpdmVSYXN0ZXJUaWxlU2VydmVyVXJscyA9IGlzQ09HID8gVElUSUxFUl9CQVNFX1VSTCA6IHJhc3RlclRpbGVTZXJ2ZXJVcmxzO1xuXG4gIGNvbnN0IGRlZmF1bHRTZXJ2ZXJVcmxzID0gKGdldEFwcGxpY2F0aW9uQ29uZmlnKCkucmFzdGVyU2VydmVyVXJscyB8fCBbXSkuam9pbignLCcpO1xuXG4gIGNvbnN0IG9uRXhhbXBsZUNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgKHVybDogc3RyaW5nLCBuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIHNldE1ldGFkYXRhVXJsKHVybCk7XG4gICAgICBzZXRUaWxlTmFtZShuYW1lKTtcbiAgICAgIHNldFRpbGVOYW1lV2FzTW9kaWZpZWQoZmFsc2UpO1xuXG4gICAgICBpZiAoaXNDT0dVcmwodXJsKSkge1xuICAgICAgICBzZXRSYXN0ZXJUaWxlU2VydmVyVXJscyhUSVRJTEVSX0JBU0VfVVJMKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFJhc3RlclRpbGVTZXJ2ZXJVcmxzKGRlZmF1bHRTZXJ2ZXJVcmxzKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtkZWZhdWx0U2VydmVyVXJsc11cbiAgKTtcblxuICBjb25zdCBvblRpbGVOYW1lQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHNldFRpbGVOYW1lV2FzTW9kaWZpZWQodHJ1ZSk7XG4gICAgICBzZXRUaWxlTmFtZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH0sXG4gICAgW3NldFRpbGVOYW1lXVxuICApO1xuXG4gIGNvbnN0IG9uTWV0YWRhdGFVcmxDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgY29uc3Qge3ZhbHVlfSA9IGV2ZW50LnRhcmdldDtcbiAgICAgIHNldE1ldGFkYXRhVXJsKHZhbHVlKTtcblxuICAgICAgaWYgKGlzQ09HVXJsKHZhbHVlKSAmJiAhcmFzdGVyVGlsZVNlcnZlclVybHMudHJpbSgpKSB7XG4gICAgICAgIHNldFJhc3RlclRpbGVTZXJ2ZXJVcmxzKFRJVElMRVJfQkFTRV9VUkwpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRpbGVOYW1lV2FzTW9kaWZpZWQpIHtcbiAgICAgICAgc2V0VGlsZU5hbWUodmFsdWUuc3BsaXQoJy8nKS5maWx0ZXIoQm9vbGVhbikucG9wKCkgfHwgJycpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW3RpbGVOYW1lV2FzTW9kaWZpZWQsIHJhc3RlclRpbGVTZXJ2ZXJVcmxzXVxuICApO1xuXG4gIGNvbnN0IG9uUmFzdGVyVGlsZVNlcnZlclVybHNDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgc2V0UmFzdGVyVGlsZVNlcnZlclVybHMoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9LFxuICAgIFtzZXRSYXN0ZXJUaWxlU2VydmVyVXJsc11cbiAgKTtcblxuICBjb25zdCB7XG4gICAgZGF0YTogbWV0YWRhdGEsXG4gICAgbG9hZGluZyxcbiAgICBlcnJvcjogbWV0YUVycm9yXG4gIH0gPSB1c2VGZXRjaEpzb24oe1xuICAgIHVybDogZWZmZWN0aXZlTWV0YWRhdGFVcmwsXG4gICAgcmFzdGVyVGlsZVR5cGU6IGlzUE1UaWxlc1VybChjbGVhcmVkTWV0YWRhdGFVcmwpID8gUmFzdGVyVGlsZVR5cGUuUE1USUxFUyA6IFJhc3RlclRpbGVUeXBlLlNUQUMsXG4gICAgcHJvY2VzczogcGFyc2VNZXRhZGF0YUFsbG93Q29sbGVjdGlvbnNcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGlsZU5hbWUgJiYgY2xlYXJlZE1ldGFkYXRhVXJsKSB7XG4gICAgICBjb25zdCBwbXRpbGVzVHlwZSA9IG1ldGFkYXRhPy5wbXRpbGVzVHlwZTtcblxuICAgICAgaWYgKHBtdGlsZXNUeXBlID09PSBQTVRpbGVzVHlwZS5NVlQpIHtcbiAgICAgICAgcmV0dXJuIHNldFJlc3BvbnNlKHtcbiAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgICBkYXRhc2V0OiBudWxsLFxuICAgICAgICAgIGxvYWRpbmcsXG4gICAgICAgICAgZXJyb3I6IG5ldyBFcnJvcignRm9yIC5wbXRpbGVzIGluIG12dCBmb3JtYXQsIHBsZWFzZSB1c2UgdGhlIFZlY3RvciBUaWxlIGZvcm0uJylcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGxldCBlcnJvciA9IG1ldGFFcnJvcjtcblxuICAgICAgLy8gY2hlY2sgZm9yIHJhc3RlciB0aWxlIHNlcnZlcnMgZm9yIFNUQUMgaXRlbXMgYW5kIGNvbGxlY3Rpb25zXG4gICAgICBsZXQgcmFzdGVyVGlsZVNlcnZlcnM7XG4gICAgICBpZiAoXG4gICAgICAgICFlcnJvclxuICAgICAgICAvLyBXZSBzdGlsbCBuZWVkIHJhc3RlciB0aWxlIHNlcnZlcnMgZm9yIFBNVGlsZXMgd2hlbiB3ZSBwbGFuIHRvIHVzZSBlbGV2YXRpb25cbiAgICAgICkge1xuICAgICAgICByYXN0ZXJUaWxlU2VydmVycyA9IGVmZmVjdGl2ZVJhc3RlclRpbGVTZXJ2ZXJVcmxzXG4gICAgICAgICAgLnNwbGl0KCcsJylcbiAgICAgICAgICAubWFwKHNlcnZlciA9PiBzZXJ2ZXIudHJpbSgpKVxuICAgICAgICAgIC5maWx0ZXIoc2VydmVyID0+IHNlcnZlcik7XG4gICAgICAgIGlmIChcbiAgICAgICAgICByYXN0ZXJUaWxlU2VydmVycy5sZW5ndGggPCAxIHx8XG4gICAgICAgICAgIXJhc3RlclRpbGVTZXJ2ZXJzLmV2ZXJ5KHNlcnZlciA9PiB2YWxpZGF0ZVVybChzZXJ2ZXIpKVxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAocG10aWxlc1R5cGUpIHtcbiAgICAgICAgICAgIC8vIEZvciByYXN0ZXIgdGlsZXMgZWxldmF0aW9uIHN1cHBvcnQgaXMgb3B0aW9uYWxcbiAgICAgICAgICAgIC8vIFRPRE8gZGlzcGxheSBhIHdhcm5pbmcsIGJ1dCBub3QgYSBibG9ja2luZyBlcnJvclxuICAgICAgICAgICAgcmFzdGVyVGlsZVNlcnZlcnMgPSBbXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICdQcm92aWRlIHZhbGlkIHJhc3RlciB0aWxlIHNlcnZlciB1cmxzIHRvIHN1cHBvcnQgU1RBQyBhbmQgZWxldmF0aW9ucy4nXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRhc2V0ID0gZ2V0RGF0YXNldEF0dHJpYnV0ZXNGcm9tUmFzdGVyVGlsZSh7XG4gICAgICAgIG5hbWU6IHRpbGVOYW1lLFxuICAgICAgICBtZXRhZGF0YVVybDogZWZmZWN0aXZlTWV0YWRhdGFVcmwsXG4gICAgICAgIHJhc3RlclRpbGVTZXJ2ZXJVcmxzOiByYXN0ZXJUaWxlU2VydmVyc1xuICAgICAgfSk7XG5cbiAgICAgIHNldFJlc3BvbnNlKHtcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIGRhdGFzZXQsXG4gICAgICAgIGxvYWRpbmcsXG4gICAgICAgIGVycm9yXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0UmVzcG9uc2Uoe1xuICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgZGF0YXNldDogbnVsbCxcbiAgICAgICAgbG9hZGluZyxcbiAgICAgICAgZXJyb3I6IG1ldGFFcnJvclxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbXG4gICAgbWV0YWRhdGEsXG4gICAgbG9hZGluZyxcbiAgICBtZXRhRXJyb3IsXG4gICAgdGlsZU5hbWUsXG4gICAgY2xlYXJlZE1ldGFkYXRhVXJsLFxuICAgIGVmZmVjdGl2ZU1ldGFkYXRhVXJsLFxuICAgIGVmZmVjdGl2ZVJhc3RlclRpbGVTZXJ2ZXJVcmxzLFxuICAgIHNldFJlc3BvbnNlXG4gIF0pO1xuXG4gIGNvbnN0IHNob3dTZXJ2ZXJJbnB1dCA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkucmFzdGVyU2VydmVyU2hvd1NlcnZlcklucHV0O1xuXG4gIHJldHVybiAoXG4gICAgPFRpbGVzZXRJbnB1dENvbnRhaW5lcj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxsYWJlbCBodG1sRm9yPVwidGlsZXNldC1uYW1lXCI+TmFtZTwvbGFiZWw+XG4gICAgICAgIDxJbnB1dExpZ2h0XG4gICAgICAgICAgaWQ9XCJ0aWxlc2V0LW5hbWVcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTmFtZSB5b3VyIHRpbGVzZXRcIlxuICAgICAgICAgIHZhbHVlPXt0aWxlTmFtZX1cbiAgICAgICAgICBvbkNoYW5nZT17b25UaWxlTmFtZUNoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPExhYmVsUm93PlxuICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwidGlsZS1tZXRhZGF0YVwiPlRpbGVzZXQgbWV0YWRhdGEgVVJMPC9sYWJlbD5cbiAgICAgICAgICA8SW5mb0ljb25MaW5rXG4gICAgICAgICAgICBocmVmPXtSQVNURVJfVElMRV9ET0NVTUVOVEFUSU9OX1VSTH1cbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJPcGVuIFJhc3RlciBUaWxlIExheWVyIGRvY3VtZW50YXRpb25cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxIZWxwIGhlaWdodD1cIjE2cHhcIiAvPlxuICAgICAgICAgIDwvSW5mb0ljb25MaW5rPlxuICAgICAgICA8L0xhYmVsUm93PlxuICAgICAgICA8SW5wdXRMaWdodFxuICAgICAgICAgIGlkPVwidGlsZS1tZXRhZGF0YVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJUaWxlc2V0IG1ldGFkYXRhIFVSTFwiXG4gICAgICAgICAgdmFsdWU9e21ldGFkYXRhVXJsID8/IHVuZGVmaW5lZH1cbiAgICAgICAgICBvbkNoYW5nZT17b25NZXRhZGF0YVVybENoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgICAgPFRpbGVzZXRJbnB1dERlc2NyaXB0aW9uPlxuICAgICAgICAgIFN1cHBvcnRzIHJhc3RlciAucG10aWxlcywgQ09HICgudGlmKSBVUkxzLCBTVEFDIEl0ZW1zIGFuZCBDb2xsZWN0aW9ucy5cbiAgICAgICAgPC9UaWxlc2V0SW5wdXREZXNjcmlwdGlvbj5cbiAgICAgIDwvZGl2PlxuICAgICAge3Nob3dTZXJ2ZXJJbnB1dCAmJiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPExhYmVsUm93PlxuICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJ0aWxlc2V0LXJhc3Rlci1zZXJ2ZXJzXCI+UmFzdGVyIHRpbGUgc2VydmVyczwvbGFiZWw+XG4gICAgICAgICAgICA8SW5mb0ljb25MaW5rXG4gICAgICAgICAgICAgIGhyZWY9e1JBU1RFUl9USUxFX0RPQ1VNRU5UQVRJT05fVVJMfVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIk9wZW4gUmFzdGVyIFRpbGUgTGF5ZXIgZG9jdW1lbnRhdGlvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxIZWxwIGhlaWdodD1cIjE2cHhcIiAvPlxuICAgICAgICAgICAgPC9JbmZvSWNvbkxpbms+XG4gICAgICAgICAgPC9MYWJlbFJvdz5cbiAgICAgICAgICA8SW5wdXRMaWdodFxuICAgICAgICAgICAgaWQ9XCJ0aWxlc2V0LXJhc3Rlci1zZXJ2ZXJzXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiUmFzdGVyIHRpbGUgc2VydmVycyAoc2VwYXJhdGVkIGJ5IGNvbW1hcylcIlxuICAgICAgICAgICAgdmFsdWU9e3Jhc3RlclRpbGVTZXJ2ZXJVcmxzfVxuICAgICAgICAgICAgb25DaGFuZ2U9e29uUmFzdGVyVGlsZVNlcnZlclVybHNDaGFuZ2V9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8VGlsZXNldElucHV0RGVzY3JpcHRpb24+XG4gICAgICAgICAgICBSYXN0ZXIgdGlsZSBzZXJ2ZXIgVVJMcyBmb3IgQ2xvdWQgT3B0aW1pemVkIEdlb1RJRkYgdGlsZXNldHMgYW5kIGVsZXZhdGlvbi5cbiAgICAgICAgICA8L1RpbGVzZXRJbnB1dERlc2NyaXB0aW9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICB7Z2V0QXBwbGljYXRpb25Db25maWcoKS5zaG93SW5saW5lVGlsZXNldEV4YW1wbGVzICYmIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8VGlsZXNldElucHV0RGVzY3JpcHRpb24+XG4gICAgICAgICAgICBGb3IgZXhhbXBsZSwgdHJ5IGEgcHVibGljIHJhc3RlciB0aWxlc2V0OlxuICAgICAgICAgIDwvVGlsZXNldElucHV0RGVzY3JpcHRpb24+XG4gICAgICAgICAgPEV4YW1wbGVVcmxzQ29udGFpbmVyPlxuICAgICAgICAgICAgPEV4YW1wbGVUYWJzPlxuICAgICAgICAgICAgICB7UkFTVEVSX1RJTEVfRVhBTVBMRVMubWFwKChleCwgaSkgPT4gKFxuICAgICAgICAgICAgICAgIDxFeGFtcGxlVGFiXG4gICAgICAgICAgICAgICAgICBrZXk9e2Ake2V4LmxhYmVsfS0ke2V4Lm5hbWV9YH1cbiAgICAgICAgICAgICAgICAgIGFjdGl2ZT17ZXhhbXBsZVRhYiA9PT0gaX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc2V0RXhhbXBsZVRhYihpKTtcbiAgICAgICAgICAgICAgICAgICAgb25FeGFtcGxlQ2xpY2soZXgudXJsLCBleC5uYW1lKTtcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2V4Lm5hbWV9XG4gICAgICAgICAgICAgICAgPC9FeGFtcGxlVGFiPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvRXhhbXBsZVRhYnM+XG4gICAgICAgICAgICA8RXhhbXBsZVVybFxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PlxuICAgICAgICAgICAgICAgIG9uRXhhbXBsZUNsaWNrKFxuICAgICAgICAgICAgICAgICAgUkFTVEVSX1RJTEVfRVhBTVBMRVNbZXhhbXBsZVRhYl0udXJsLFxuICAgICAgICAgICAgICAgICAgUkFTVEVSX1RJTEVfRVhBTVBMRVNbZXhhbXBsZVRhYl0ubmFtZVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7UkFTVEVSX1RJTEVfRVhBTVBMRVNbZXhhbXBsZVRhYl0udXJsfVxuICAgICAgICAgICAgPC9FeGFtcGxlVXJsPlxuICAgICAgICAgIDwvRXhhbXBsZVVybHNDb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICA8L1RpbGVzZXRJbnB1dENvbnRhaW5lcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFJhc3RlclRpbGVGb3JtO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBSUEsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssTUFBQSxH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O0lBQzNCQyxXQUFXLEVBQUMsMkNBQTJDO0lBQ3ZEL0IsS0FBSyxFQUFFaEYsb0JBQXFCO0lBQzVCZ0gsUUFBUSxFQUFFNUI7RUFBNkIsQ0FDeEMsQ0FBQyxlQUNGakssTUFBQSxZQUFBd0wsYUFBQSxDQUFDN0gsdUJBQXVCLFFBQUMsNkVBRUEsQ0FDdEIsQ0FDTixFQUNBLElBQUFvQiwyQkFBb0IsRUFBQyxDQUFDLENBQUNvSCx5QkFBeUIsaUJBQy9Dbk0sTUFBQSxZQUFBd0wsYUFBQSwyQkFDRXhMLE1BQUEsWUFBQXdMLGFBQUEsQ0FBQzdILHVCQUF1QixRQUFDLDJDQUVBLENBQUMsZUFDMUIzRCxNQUFBLFlBQUF3TCxhQUFBLENBQUN6SCxvQkFBb0IscUJBQ25CL0QsTUFBQSxZQUFBd0wsYUFBQSxDQUFDeEgsV0FBVyxRQUNUNkMsb0JBQW9CLENBQUNxRSxHQUFHLENBQUMsVUFBQ2tCLEVBQUUsRUFBRTlKLENBQUM7SUFBQSxvQkFDOUJ0QyxNQUFBLFlBQUF3TCxhQUFBLENBQUN2SCxVQUFVO01BQ1RvSSxHQUFHLEtBQUExRixNQUFBLENBQUt5RixFQUFFLENBQUN0RixLQUFLLE9BQUFILE1BQUEsQ0FBSXlGLEVBQUUsQ0FBQ3pILElBQUksQ0FBRztNQUM5QlQsTUFBTSxFQUFFNkUsVUFBVSxLQUFLekcsQ0FBRTtNQUN6QmdLLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBLEVBQVE7UUFDYnRELGFBQWEsQ0FBQzFHLENBQUMsQ0FBQztRQUNoQmlILGNBQWMsQ0FBQzZDLEVBQUUsQ0FBQ3JHLEdBQUcsRUFBRXFHLEVBQUUsQ0FBQ3pILElBQUksQ0FBQztNQUNqQztJQUFFLEdBRUR5SCxFQUFFLENBQUN6SCxJQUNNLENBQUM7RUFBQSxDQUNkLENBQ1UsQ0FBQyxlQUNkM0UsTUFBQSxZQUFBd0wsYUFBQSxDQUFDbEgsVUFBVTtJQUNUZ0ksT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUNML0MsY0FBYyxDQUNaMUMsb0JBQW9CLENBQUNrQyxVQUFVLENBQUMsQ0FBQ2hELEdBQUcsRUFDcENjLG9CQUFvQixDQUFDa0MsVUFBVSxDQUFDLENBQUNwRSxJQUNuQyxDQUFDO0lBQUE7RUFDRixHQUVBa0Msb0JBQW9CLENBQUNrQyxVQUFVLENBQUMsQ0FBQ2hELEdBQ3hCLENBQ1EsQ0FDbkIsQ0FFYyxDQUFDO0FBRTVCLENBQUM7QUFBQyxJQUFBd0csUUFBQSxHQUFBQyxPQUFBLGNBRWFoRixjQUFjIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -6,9 +6,13 @@ import { KeplerTable } from '@kepler.gl/table';
|
|
|
6
6
|
interface StyledFilterHeaderProps extends StyledPanelHeaderProps {
|
|
7
7
|
$labelRCGColorValues: RGBColor[];
|
|
8
8
|
}
|
|
9
|
-
export declare const StyledFilterHeader: import("styled-components").
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
export declare const StyledFilterHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof StyledPanelHeaderProps> & StyledPanelHeaderProps, never> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof StyledPanelHeaderProps> & StyledPanelHeaderProps, never>>, "as" | "forwardedAs"> & {
|
|
10
|
+
as?: import("styled-components").WebTarget | undefined;
|
|
11
|
+
forwardedAs?: import("styled-components").WebTarget | undefined;
|
|
12
|
+
}, keyof StyledFilterHeaderProps> & StyledFilterHeaderProps, never> & Partial<Pick<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof StyledPanelHeaderProps> & StyledPanelHeaderProps, never> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof StyledPanelHeaderProps> & StyledPanelHeaderProps, never>>, "as" | "forwardedAs"> & {
|
|
13
|
+
as?: import("styled-components").WebTarget | undefined;
|
|
14
|
+
forwardedAs?: import("styled-components").WebTarget | undefined;
|
|
15
|
+
}, keyof StyledFilterHeaderProps> & StyledFilterHeaderProps, never>>> & string;
|
|
12
16
|
export type FilterPanelHeaderProps = {
|
|
13
17
|
className?: string;
|
|
14
18
|
datasets: KeplerTable[];
|
|
@@ -10,8 +10,9 @@ import InfoHelperFactory from '../common/info-helper';
|
|
|
10
10
|
import { Layer, LayerClassesType } from '@kepler.gl/layers';
|
|
11
11
|
import { UIStateActions, VisStateActions, MapStateActions, ActionHandler } from '@kepler.gl/actions';
|
|
12
12
|
import { SidePanelItem } from '../types';
|
|
13
|
-
import { PanelListView } from '@kepler.gl/types';
|
|
13
|
+
import { PanelListView, LayerOrder } from '@kepler.gl/types';
|
|
14
14
|
import { Datasets } from '@kepler.gl/table';
|
|
15
|
+
import PanelHeaderActionFactory from './panel-header-action';
|
|
15
16
|
type LayerBlendingSelectorProps = {
|
|
16
17
|
layerBlending: string;
|
|
17
18
|
updateLayerBlending: ActionHandler<typeof VisStateActions.updateLayerBlending>;
|
|
@@ -20,7 +21,7 @@ type LayerBlendingSelectorProps = {
|
|
|
20
21
|
type LayerManagerProps = {
|
|
21
22
|
datasets: Datasets;
|
|
22
23
|
layers: Layer[];
|
|
23
|
-
layerOrder:
|
|
24
|
+
layerOrder: LayerOrder;
|
|
24
25
|
layerClasses: LayerClassesType;
|
|
25
26
|
layerBlending: string;
|
|
26
27
|
overlayBlending: string;
|
|
@@ -36,10 +37,10 @@ type LayerManagerProps = {
|
|
|
36
37
|
showDeleteDataset?: boolean;
|
|
37
38
|
} & WrappedComponentProps;
|
|
38
39
|
export declare const LayerBlendingSelector: React.MemoExoticComponent<({ layerBlending, updateLayerBlending, intl, className }: LayerBlendingSelectorProps) => React.JSX.Element>;
|
|
39
|
-
declare function LayerManagerFactory(LayerList: ReturnType<typeof LayerListFactory>, DatasetLayerGroup: ReturnType<typeof DatasetLayerGroupFactory>, PanelViewListToggle: ReturnType<typeof PanelViewListToggleFactory>, PanelTitle: ReturnType<typeof PanelTitleFactory>, DatasetSection: ReturnType<typeof DatasetSectionFactory>, AddLayerButton: ReturnType<typeof AddLayerButtonFactory>, InfoHelper: ReturnType<typeof InfoHelperFactory>): React.FC<import("react-intl").WithIntlProps<LayerManagerProps>> & {
|
|
40
|
+
declare function LayerManagerFactory(LayerList: ReturnType<typeof LayerListFactory>, DatasetLayerGroup: ReturnType<typeof DatasetLayerGroupFactory>, PanelViewListToggle: ReturnType<typeof PanelViewListToggleFactory>, PanelTitle: ReturnType<typeof PanelTitleFactory>, DatasetSection: ReturnType<typeof DatasetSectionFactory>, AddLayerButton: ReturnType<typeof AddLayerButtonFactory>, InfoHelper: ReturnType<typeof InfoHelperFactory>, PanelHeaderAction: ReturnType<typeof PanelHeaderActionFactory>): React.FC<import("react-intl").WithIntlProps<LayerManagerProps>> & {
|
|
40
41
|
WrappedComponent: React.ComponentType<LayerManagerProps>;
|
|
41
42
|
};
|
|
42
43
|
declare namespace LayerManagerFactory {
|
|
43
|
-
var deps: (typeof InfoHelperFactory | typeof LayerListFactory | typeof DatasetLayerGroupFactory | typeof PanelViewListToggleFactory | (() => React.FC<import("./panel-title").PanelTitleProps>) | typeof DatasetSectionFactory | typeof AddLayerButtonFactory)[];
|
|
44
|
+
var deps: (typeof InfoHelperFactory | typeof PanelHeaderActionFactory | typeof LayerListFactory | typeof DatasetLayerGroupFactory | typeof PanelViewListToggleFactory | (() => React.FC<import("./panel-title").PanelTitleProps>) | typeof DatasetSectionFactory | typeof AddLayerButtonFactory)[];
|
|
44
45
|
}
|
|
45
46
|
export default LayerManagerFactory;
|
|
@@ -24,6 +24,8 @@ var _styledComponents2 = require("../common/styled-components");
|
|
|
24
24
|
var _infoHelper = _interopRequireDefault(require("../common/info-helper"));
|
|
25
25
|
var _constants = require("@kepler.gl/constants");
|
|
26
26
|
var _utils = require("@kepler.gl/utils");
|
|
27
|
+
var _panelHeaderAction = _interopRequireDefault(require("./panel-header-action"));
|
|
28
|
+
var _icons = require("../common/icons");
|
|
27
29
|
var _excluded = ["rasterTile"],
|
|
28
30
|
_excluded2 = ["wms"],
|
|
29
31
|
_excluded3 = ["flow"];
|
|
@@ -89,8 +91,8 @@ var OverlayBlendingSelector = /*#__PURE__*/_react["default"].memo(function (_ref
|
|
|
89
91
|
}));
|
|
90
92
|
});
|
|
91
93
|
OverlayBlendingSelector.displayName = 'OverlayBlendingSelector';
|
|
92
|
-
LayerManagerFactory.deps = [_layerList["default"], _datasetLayerGroup["default"], _panelViewListToggle["default"], _panelTitle["default"], _datasetSection["default"], _addLayerButton["default"], _infoHelper["default"]];
|
|
93
|
-
function LayerManagerFactory(LayerList, DatasetLayerGroup, PanelViewListToggle, PanelTitle, DatasetSection, AddLayerButton, InfoHelper) {
|
|
94
|
+
LayerManagerFactory.deps = [_layerList["default"], _datasetLayerGroup["default"], _panelViewListToggle["default"], _panelTitle["default"], _datasetSection["default"], _addLayerButton["default"], _infoHelper["default"], _panelHeaderAction["default"]];
|
|
95
|
+
function LayerManagerFactory(LayerList, DatasetLayerGroup, PanelViewListToggle, PanelTitle, DatasetSection, AddLayerButton, InfoHelper, PanelHeaderAction) {
|
|
94
96
|
var LayerManager = function LayerManager(_ref3) {
|
|
95
97
|
var layers = _ref3.layers,
|
|
96
98
|
datasets = _ref3.datasets,
|
|
@@ -115,6 +117,9 @@ function LayerManagerFactory(LayerList, DatasetLayerGroup, PanelViewListToggle,
|
|
|
115
117
|
var onAddLayer = (0, _react.useCallback)(function (dataset) {
|
|
116
118
|
addLayer(undefined, dataset);
|
|
117
119
|
}, [addLayer]);
|
|
120
|
+
var onAddGroup = (0, _react.useCallback)(function () {
|
|
121
|
+
visStateActions.addLayerGroup({});
|
|
122
|
+
}, [visStateActions]);
|
|
118
123
|
var onTogglePanelListView = (0, _react.useCallback)(function (listView) {
|
|
119
124
|
togglePanelListView({
|
|
120
125
|
panelId: 'layer',
|
|
@@ -127,6 +132,7 @@ function LayerManagerFactory(LayerList, DatasetLayerGroup, PanelViewListToggle,
|
|
|
127
132
|
var enableRasterTileLayer = (0, _utils.getApplicationConfig)().enableRasterTileLayer;
|
|
128
133
|
var enableWMSLayer = (0, _utils.getApplicationConfig)().enableWMSLayer;
|
|
129
134
|
var enableFlowLayer = (0, _utils.getApplicationConfig)().enableFlowLayer;
|
|
135
|
+
var enableLayerGroups = (0, _utils.getApplicationConfig)().enableLayerGroups;
|
|
130
136
|
var filteredLayerClasses = (0, _react.useMemo)(function () {
|
|
131
137
|
var filteredClasses = layerClasses;
|
|
132
138
|
if (!enableRasterTileLayer) {
|
|
@@ -167,7 +173,13 @@ function LayerManagerFactory(LayerList, DatasetLayerGroup, PanelViewListToggle,
|
|
|
167
173
|
title: intl.formatMessage({
|
|
168
174
|
id: panelMetadata.label
|
|
169
175
|
})
|
|
170
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
176
|
+
}, enableLayerGroups ? /*#__PURE__*/_react["default"].createElement(PanelHeaderAction, {
|
|
177
|
+
className: "layer-group__create",
|
|
178
|
+
id: "new-layer-group",
|
|
179
|
+
onClick: onAddGroup,
|
|
180
|
+
IconComponent: _icons.Folder,
|
|
181
|
+
tooltip: "Create layer group"
|
|
182
|
+
}) : null, /*#__PURE__*/_react["default"].createElement(AddLayerButton, {
|
|
171
183
|
datasets: datasets,
|
|
172
184
|
onAdd: onAddLayer
|
|
173
185
|
}))), /*#__PURE__*/_react["default"].createElement(_styledComponents2.SidePanelSection, null, isSortByDatasetMode ? /*#__PURE__*/_react["default"].createElement(DatasetLayerGroup, {
|
|
@@ -207,4 +219,4 @@ function LayerManagerFactory(LayerList, DatasetLayerGroup, PanelViewListToggle,
|
|
|
207
219
|
return (0, _reactIntl.injectIntl)(LayerManager);
|
|
208
220
|
}
|
|
209
221
|
var _default = exports["default"] = LayerManagerFactory;
|
|
210
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RJbnRsIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2xvY2FsaXphdGlvbiIsIl9sYXllckxpc3QiLCJfZGF0YXNldExheWVyR3JvdXAiLCJfcGFuZWxWaWV3TGlzdFRvZ2dsZSIsIl9wYW5lbFRpdGxlIiwiX2RhdGFzZXRTZWN0aW9uIiwiX2FkZExheWVyQnV0dG9uIiwiX2l0ZW1TZWxlY3RvciIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9pbmZvSGVscGVyIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9leGNsdWRlZCIsIl9leGNsdWRlZDIiLCJfZXhjbHVkZWQzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIkxheWVyQmxlbmRpbmdTZWxlY3RvciIsImV4cG9ydHMiLCJSZWFjdCIsIm1lbW8iLCJfcmVmIiwibGF5ZXJCbGVuZGluZyIsInVwZGF0ZUxheWVyQmxlbmRpbmciLCJpbnRsIiwiY2xhc3NOYW1lIiwibGFiZWxlZExheWVyQmxlbmRpbmdzIiwiTEFZRVJfQkxFTkRJTkdTIiwicmVkdWNlIiwiYWNjIiwiY3VycmVudCIsImZvcm1hdE1lc3NhZ2UiLCJpZCIsImxhYmVsIiwib25DaGFuZ2UiLCJ1c2VDYWxsYmFjayIsImJsZW5kaW5nIiwiY3JlYXRlRWxlbWVudCIsIlNpZGVQYW5lbFNlY3Rpb24iLCJQYW5lbExhYmVsIiwiRm9ybWF0dGVkTWVzc2FnZSIsInNlbGVjdGVkSXRlbXMiLCJvcHRpb25zIiwibXVsdGlTZWxlY3QiLCJzZWFyY2hhYmxlIiwiZGlzcGxheU5hbWUiLCJJbmZvSGVscGVyV3JhcHBlciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3JUaXRsZVJvdyIsIk92ZXJsYXlCbGVuZGluZ1NlbGVjdG9yIiwiX3JlZjIiLCJvdmVybGF5QmxlbmRpbmciLCJ1cGRhdGVPdmVybGF5QmxlbmRpbmciLCJpbmZvSGVscGVyIiwibGFiZWxlZE92ZXJsYXlCbGVuZGluZ3MiLCJPVkVSTEFZX0JMRU5ESU5HUyIsIkxheWVyTWFuYWdlckZhY3RvcnkiLCJkZXBzIiwiTGF5ZXJMaXN0RmFjdG9yeSIsIkRhdGFzZXRMYXllckdyb3VwRmFjdG9yeSIsIlBhbmVsVmlld0xpc3RUb2dnbGVGYWN0b3J5IiwiUGFuZWxUaXRsZUZhY3RvcnkiLCJEYXRhc2V0U2VjdGlvbkZhY3RvcnkiLCJBZGRMYXllckJ1dHRvbkZhY3RvcnkiLCJJbmZvSGVscGVyRmFjdG9yeSIsIkxheWVyTGlzdCIsIkRhdGFzZXRMYXllckdyb3VwIiwiUGFuZWxWaWV3TGlzdFRvZ2dsZSIsIlBhbmVsVGl0bGUiLCJEYXRhc2V0U2VjdGlvbiIsIkFkZExheWVyQnV0dG9uIiwiSW5mb0hlbHBlciIsIkxheWVyTWFuYWdlciIsIl9yZWYzIiwibGF5ZXJzIiwiZGF0YXNldHMiLCJsYXllck9yZGVyIiwicGFuZWxMaXN0VmlldyIsInBhbmVsTWV0YWRhdGEiLCJsYXllckNsYXNzZXMiLCJzaG93QWRkRGF0YU1vZGFsIiwiX3JlZjMkc2hvd0RlbGV0ZURhdGFzIiwic2hvd0RlbGV0ZURhdGFzZXQiLCJ1cGRhdGVUYWJsZUNvbG9yIiwic2hvd0RhdGFzZXRUYWJsZSIsInJlbW92ZURhdGFzZXQiLCJ1aVN0YXRlQWN0aW9ucyIsInZpc1N0YXRlQWN0aW9ucyIsIm1hcFN0YXRlQWN0aW9ucyIsImFkZExheWVyIiwidG9nZ2xlUGFuZWxMaXN0VmlldyIsIm9uQWRkTGF5ZXIiLCJkYXRhc2V0IiwidW5kZWZpbmVkIiwib25Ub2dnbGVQYW5lbExpc3RWaWV3IiwibGlzdFZpZXciLCJwYW5lbElkIiwiaXNTb3J0QnlEYXRhc2V0TW9kZSIsIlBBTkVMX1ZJRVdfVE9HR0xFUyIsImJ5RGF0YXNldCIsImVuYWJsZVJhc3RlclRpbGVMYXllciIsImdldEFwcGxpY2F0aW9uQ29uZmlnIiwiZW5hYmxlV01TTGF5ZXIiLCJlbmFibGVGbG93TGF5ZXIiLCJmaWx0ZXJlZExheWVyQ2xhc3NlcyIsInVzZU1lbW8iLCJmaWx0ZXJlZENsYXNzZXMiLCJfZmlsdGVyZWRDbGFzc2VzIiwiX3Jhc3RlclRpbGUiLCJyYXN0ZXJUaWxlIiwicmVzdCIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJfZmlsdGVyZWRDbGFzc2VzMiIsIl93bXMiLCJ3bXMiLCJfZmlsdGVyZWRDbGFzc2VzMyIsIl9mbG93IiwiZmxvdyIsIm1vZGUiLCJzaG93RGF0YXNldExpc3QiLCJTaWRlUGFuZWxEaXZpZGVyIiwidGl0bGUiLCJvbkFkZCIsImRlc2NyaXB0aW9uIiwiaW5qZWN0SW50bCIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItbWFuYWdlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHtpbmplY3RJbnRsLCBXcmFwcGVkQ29tcG9uZW50UHJvcHN9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcblxuaW1wb3J0IExheWVyTGlzdEZhY3RvcnkgZnJvbSAnLi9sYXllci1wYW5lbC9sYXllci1saXN0JztcbmltcG9ydCBEYXRhc2V0TGF5ZXJHcm91cEZhY3RvcnkgZnJvbSAnLi9sYXllci1wYW5lbC9kYXRhc2V0LWxheWVyLWdyb3VwJztcbmltcG9ydCBQYW5lbFZpZXdMaXN0VG9nZ2xlRmFjdG9yeSBmcm9tICcuL3BhbmVsLXZpZXctbGlzdC10b2dnbGUnO1xuaW1wb3J0IFBhbmVsVGl0bGVGYWN0b3J5IGZyb20gJy4vcGFuZWwtdGl0bGUnO1xuaW1wb3J0IERhdGFzZXRTZWN0aW9uRmFjdG9yeSBmcm9tICcuL2xheWVyLXBhbmVsL2RhdGFzZXQtc2VjdGlvbic7XG5pbXBvcnQgQWRkTGF5ZXJCdXR0b25GYWN0b3J5IGZyb20gJy4vbGF5ZXItcGFuZWwvYWRkLWxheWVyLWJ1dHRvbic7XG5cbmltcG9ydCBJdGVtU2VsZWN0b3IgZnJvbSAnLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvaXRlbS1zZWxlY3Rvcic7XG5pbXBvcnQge1BhbmVsTGFiZWwsIFNpZGVQYW5lbERpdmlkZXIsIFNpZGVQYW5lbFNlY3Rpb259IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgSW5mb0hlbHBlckZhY3RvcnkgZnJvbSAnLi4vY29tbW9uL2luZm8taGVscGVyJztcblxuaW1wb3J0IHtMQVlFUl9CTEVORElOR1MsIE9WRVJMQVlfQkxFTkRJTkdTLCBQQU5FTF9WSUVXX1RPR0dMRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7TGF5ZXIsIExheWVyQ2xhc3Nlc1R5cGV9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7VUlTdGF0ZUFjdGlvbnMsIFZpc1N0YXRlQWN0aW9ucywgTWFwU3RhdGVBY3Rpb25zLCBBY3Rpb25IYW5kbGVyfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtTaWRlUGFuZWxJdGVtfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge1BhbmVsTGlzdFZpZXd9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtEYXRhc2V0c30gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge2dldEFwcGxpY2F0aW9uQ29uZmlnfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxudHlwZSBMYXllckJsZW5kaW5nU2VsZWN0b3JQcm9wcyA9IHtcbiAgbGF5ZXJCbGVuZGluZzogc3RyaW5nO1xuICB1cGRhdGVMYXllckJsZW5kaW5nOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnMudXBkYXRlTGF5ZXJCbGVuZGluZz47XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn0gJiBXcmFwcGVkQ29tcG9uZW50UHJvcHM7XG5cbnR5cGUgT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3JQcm9wcyA9IHtcbiAgb3ZlcmxheUJsZW5kaW5nOiBzdHJpbmc7XG4gIHVwZGF0ZU92ZXJsYXlCbGVuZGluZzogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVmlzU3RhdGVBY3Rpb25zLnVwZGF0ZU92ZXJsYXlCbGVuZGluZz47XG4gIGluZm9IZWxwZXI6IFJlYWN0LlJlYWN0Tm9kZTtcbn0gJiBXcmFwcGVkQ29tcG9uZW50UHJvcHM7XG5cbnR5cGUgTGF5ZXJNYW5hZ2VyUHJvcHMgPSB7XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgbGF5ZXJzOiBMYXllcltdO1xuICBsYXllck9yZGVyOiBzdHJpbmdbXTtcbiAgbGF5ZXJDbGFzc2VzOiBMYXllckNsYXNzZXNUeXBlO1xuICBsYXllckJsZW5kaW5nOiBzdHJpbmc7XG4gIG92ZXJsYXlCbGVuZGluZzogc3RyaW5nO1xuICB1aVN0YXRlQWN0aW9uczogdHlwZW9mIFVJU3RhdGVBY3Rpb25zO1xuICB2aXNTdGF0ZUFjdGlvbnM6IHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnM7XG4gIG1hcFN0YXRlQWN0aW9uczogdHlwZW9mIE1hcFN0YXRlQWN0aW9ucztcbiAgc2hvd0FkZERhdGFNb2RhbDogKCkgPT4gdm9pZDtcbiAgcmVtb3ZlRGF0YXNldDogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVUlTdGF0ZUFjdGlvbnMub3BlbkRlbGV0ZU1vZGFsPjtcbiAgc2hvd0RhdGFzZXRUYWJsZTogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVmlzU3RhdGVBY3Rpb25zLnNob3dEYXRhc2V0VGFibGU+O1xuICB1cGRhdGVUYWJsZUNvbG9yOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnMudXBkYXRlVGFibGVDb2xvcj47XG4gIHBhbmVsTGlzdFZpZXc6IFBhbmVsTGlzdFZpZXc7XG4gIHBhbmVsTWV0YWRhdGE6IFNpZGVQYW5lbEl0ZW07XG4gIHNob3dEZWxldGVEYXRhc2V0PzogYm9vbGVhbjtcbn0gJiBXcmFwcGVkQ29tcG9uZW50UHJvcHM7XG5cbmV4cG9ydCBjb25zdCBMYXllckJsZW5kaW5nU2VsZWN0b3IgPSBSZWFjdC5tZW1vKFxuICAoe2xheWVyQmxlbmRpbmcsIHVwZGF0ZUxheWVyQmxlbmRpbmcsIGludGwsIGNsYXNzTmFtZX06IExheWVyQmxlbmRpbmdTZWxlY3RvclByb3BzKSA9PiB7XG4gICAgY29uc3QgbGFiZWxlZExheWVyQmxlbmRpbmdzID0gT2JqZWN0LmtleXMoTEFZRVJfQkxFTkRJTkdTKS5yZWR1Y2UoXG4gICAgICAoYWNjLCBjdXJyZW50KSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiBMQVlFUl9CTEVORElOR1NbY3VycmVudF0ubGFiZWx9KV06IGN1cnJlbnRcbiAgICAgIH0pLFxuICAgICAge31cbiAgICApO1xuXG4gICAgY29uc3Qgb25DaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAgIGJsZW5kaW5nID0+IHVwZGF0ZUxheWVyQmxlbmRpbmcobGFiZWxlZExheWVyQmxlbmRpbmdzW2JsZW5kaW5nXSksXG4gICAgICBbdXBkYXRlTGF5ZXJCbGVuZGluZywgbGFiZWxlZExheWVyQmxlbmRpbmdzXVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNpZGVQYW5lbFNlY3Rpb24gY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImxheWVyQmxlbmRpbmcudGl0bGVcIiAvPlxuICAgICAgICA8L1BhbmVsTGFiZWw+XG4gICAgICAgIDxJdGVtU2VsZWN0b3JcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiBMQVlFUl9CTEVORElOR1NbbGF5ZXJCbGVuZGluZ10ubGFiZWx9KX1cbiAgICAgICAgICBvcHRpb25zPXtPYmplY3Qua2V5cyhsYWJlbGVkTGF5ZXJCbGVuZGluZ3MpfVxuICAgICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgIC8+XG4gICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgKTtcbiAgfVxuKTtcbkxheWVyQmxlbmRpbmdTZWxlY3Rvci5kaXNwbGF5TmFtZSA9ICdMYXllckJsZW5kaW5nU2VsZWN0b3InO1xuXG5jb25zdCBJbmZvSGVscGVyV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGZsb2F0OiByaWdodDtcbmA7XG5cbmNvbnN0IE92ZXJsYXlCbGVuZGluZ1NlbGVjdG9yVGl0bGVSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuYDtcblxuY29uc3QgT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3IgPSBSZWFjdC5tZW1vKFxuICAoe292ZXJsYXlCbGVuZGluZywgdXBkYXRlT3ZlcmxheUJsZW5kaW5nLCBpbnRsLCBpbmZvSGVscGVyfTogT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3JQcm9wcykgPT4ge1xuICAgIGNvbnN0IGxhYmVsZWRPdmVybGF5QmxlbmRpbmdzID0gT2JqZWN0LmtleXMoT1ZFUkxBWV9CTEVORElOR1MpLnJlZHVjZShcbiAgICAgIChhY2MsIGN1cnJlbnQpID0+ICh7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgW2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6IE9WRVJMQVlfQkxFTkRJTkdTW2N1cnJlbnRdLmxhYmVsfSldOiBjdXJyZW50XG4gICAgICB9KSxcbiAgICAgIHt9XG4gICAgKTtcblxuICAgIGNvbnN0IG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgICBibGVuZGluZyA9PiB1cGRhdGVPdmVybGF5QmxlbmRpbmcobGFiZWxlZE92ZXJsYXlCbGVuZGluZ3NbYmxlbmRpbmddKSxcbiAgICAgIFt1cGRhdGVPdmVybGF5QmxlbmRpbmcsIGxhYmVsZWRPdmVybGF5QmxlbmRpbmdzXVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgIDxPdmVybGF5QmxlbmRpbmdTZWxlY3RvclRpdGxlUm93PlxuICAgICAgICAgIDxQYW5lbExhYmVsPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJvdmVybGF5QmxlbmRpbmcudGl0bGVcIiAvPlxuICAgICAgICAgIDwvUGFuZWxMYWJlbD5cbiAgICAgICAgICA8SW5mb0hlbHBlcldyYXBwZXI+e2luZm9IZWxwZXJ9PC9JbmZvSGVscGVyV3JhcHBlcj5cbiAgICAgICAgPC9PdmVybGF5QmxlbmRpbmdTZWxlY3RvclRpdGxlUm93PlxuICAgICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgICAgc2VsZWN0ZWRJdGVtcz17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogT1ZFUkxBWV9CTEVORElOR1Nbb3ZlcmxheUJsZW5kaW5nXS5sYWJlbH0pfVxuICAgICAgICAgIG9wdGlvbnM9e09iamVjdC5rZXlzKGxhYmVsZWRPdmVybGF5QmxlbmRpbmdzKX1cbiAgICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAvPlxuICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICk7XG4gIH1cbik7XG5PdmVybGF5QmxlbmRpbmdTZWxlY3Rvci5kaXNwbGF5TmFtZSA9ICdPdmVybGF5QmxlbmRpbmdTZWxlY3Rvcic7XG5cbkxheWVyTWFuYWdlckZhY3RvcnkuZGVwcyA9IFtcbiAgTGF5ZXJMaXN0RmFjdG9yeSxcbiAgRGF0YXNldExheWVyR3JvdXBGYWN0b3J5LFxuICBQYW5lbFZpZXdMaXN0VG9nZ2xlRmFjdG9yeSxcbiAgUGFuZWxUaXRsZUZhY3RvcnksXG4gIERhdGFzZXRTZWN0aW9uRmFjdG9yeSxcbiAgQWRkTGF5ZXJCdXR0b25GYWN0b3J5LFxuICBJbmZvSGVscGVyRmFjdG9yeVxuXTtcblxuZnVuY3Rpb24gTGF5ZXJNYW5hZ2VyRmFjdG9yeShcbiAgTGF5ZXJMaXN0OiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckxpc3RGYWN0b3J5PixcbiAgRGF0YXNldExheWVyR3JvdXA6IFJldHVyblR5cGU8dHlwZW9mIERhdGFzZXRMYXllckdyb3VwRmFjdG9yeT4sXG4gIFBhbmVsVmlld0xpc3RUb2dnbGU6IFJldHVyblR5cGU8dHlwZW9mIFBhbmVsVmlld0xpc3RUb2dnbGVGYWN0b3J5PixcbiAgUGFuZWxUaXRsZTogUmV0dXJuVHlwZTx0eXBlb2YgUGFuZWxUaXRsZUZhY3Rvcnk+LFxuICBEYXRhc2V0U2VjdGlvbjogUmV0dXJuVHlwZTx0eXBlb2YgRGF0YXNldFNlY3Rpb25GYWN0b3J5PixcbiAgQWRkTGF5ZXJCdXR0b246IFJldHVyblR5cGU8dHlwZW9mIEFkZExheWVyQnV0dG9uRmFjdG9yeT4sXG4gIEluZm9IZWxwZXI6IFJldHVyblR5cGU8dHlwZW9mIEluZm9IZWxwZXJGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IExheWVyTWFuYWdlcjogUmVhY3QuRkM8TGF5ZXJNYW5hZ2VyUHJvcHM+ID0gKHtcbiAgICBsYXllcnMsXG4gICAgZGF0YXNldHMsXG4gICAgaW50bCxcbiAgICBsYXllck9yZGVyLFxuICAgIHBhbmVsTGlzdFZpZXcsXG4gICAgcGFuZWxNZXRhZGF0YSxcbiAgICBsYXllckNsYXNzZXMsXG4gICAgbGF5ZXJCbGVuZGluZyxcbiAgICBvdmVybGF5QmxlbmRpbmcsXG4gICAgc2hvd0FkZERhdGFNb2RhbCxcbiAgICBzaG93RGVsZXRlRGF0YXNldCA9IHRydWUsXG4gICAgdXBkYXRlVGFibGVDb2xvcixcbiAgICBzaG93RGF0YXNldFRhYmxlLFxuICAgIHJlbW92ZURhdGFzZXQsXG4gICAgdWlTdGF0ZUFjdGlvbnMsXG4gICAgdmlzU3RhdGVBY3Rpb25zLFxuICAgIG1hcFN0YXRlQWN0aW9uc1xuICB9KSA9PiB7XG4gICAgY29uc3Qge2FkZExheWVyfSA9IHZpc1N0YXRlQWN0aW9ucztcbiAgICBjb25zdCB7dG9nZ2xlUGFuZWxMaXN0Vmlld30gPSB1aVN0YXRlQWN0aW9ucztcbiAgICBjb25zdCBvbkFkZExheWVyID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZGF0YXNldDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGFkZExheWVyKHVuZGVmaW5lZCwgZGF0YXNldCk7XG4gICAgICB9LFxuICAgICAgW2FkZExheWVyXVxuICAgICk7XG5cbiAgICBjb25zdCBvblRvZ2dsZVBhbmVsTGlzdFZpZXcgPSB1c2VDYWxsYmFjayhcbiAgICAgIChsaXN0Vmlldzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRvZ2dsZVBhbmVsTGlzdFZpZXcoe3BhbmVsSWQ6ICdsYXllcicsIGxpc3RWaWV3fSk7XG4gICAgICB9LFxuICAgICAgW3RvZ2dsZVBhbmVsTGlzdFZpZXddXG4gICAgKTtcblxuICAgIGNvbnN0IGlzU29ydEJ5RGF0YXNldE1vZGUgPSBwYW5lbExpc3RWaWV3ID09PSBQQU5FTF9WSUVXX1RPR0dMRVMuYnlEYXRhc2V0O1xuXG4gICAgLy8gdGVtcCBwYXRjaCB0byBoaWRlIGxheWVycyB0aGF0IGFyZSBpbiBkZXZlbG9wbWVudFxuICAgIGNvbnN0IGVuYWJsZVJhc3RlclRpbGVMYXllciA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlUmFzdGVyVGlsZUxheWVyO1xuICAgIGNvbnN0IGVuYWJsZVdNU0xheWVyID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS5lbmFibGVXTVNMYXllcjtcbiAgICBjb25zdCBlbmFibGVGbG93TGF5ZXIgPSBnZXRBcHBsaWNhdGlvbkNvbmZpZygpLmVuYWJsZUZsb3dMYXllcjtcblxuICAgIGNvbnN0IGZpbHRlcmVkTGF5ZXJDbGFzc2VzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBsZXQgZmlsdGVyZWRDbGFzc2VzID0gbGF5ZXJDbGFzc2VzO1xuICAgICAgaWYgKCFlbmFibGVSYXN0ZXJUaWxlTGF5ZXIpIHtcbiAgICAgICAgY29uc3Qge3Jhc3RlclRpbGU6IF9yYXN0ZXJUaWxlLCAuLi5yZXN0fSA9IGZpbHRlcmVkQ2xhc3NlcztcbiAgICAgICAgZmlsdGVyZWRDbGFzc2VzID0gcmVzdCBhcyBMYXllckNsYXNzZXNUeXBlO1xuICAgICAgfVxuICAgICAgaWYgKCFlbmFibGVXTVNMYXllcikge1xuICAgICAgICBjb25zdCB7d21zOiBfd21zLCAuLi5yZXN0fSA9IGZpbHRlcmVkQ2xhc3NlcztcbiAgICAgICAgZmlsdGVyZWRDbGFzc2VzID0gcmVzdCBhcyBMYXllckNsYXNzZXNUeXBlO1xuICAgICAgfVxuICAgICAgaWYgKCFlbmFibGVGbG93TGF5ZXIpIHtcbiAgICAgICAgY29uc3Qge2Zsb3c6IF9mbG93LCAuLi5yZXN0fSA9IGZpbHRlcmVkQ2xhc3NlcztcbiAgICAgICAgZmlsdGVyZWRDbGFzc2VzID0gcmVzdCBhcyBMYXllckNsYXNzZXNUeXBlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbHRlcmVkQ2xhc3NlcyBhcyBMYXllckNsYXNzZXNUeXBlO1xuICAgIH0sIFtlbmFibGVSYXN0ZXJUaWxlTGF5ZXIsIGVuYWJsZVdNU0xheWVyLCBlbmFibGVGbG93TGF5ZXIsIGxheWVyQ2xhc3Nlc10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGF5ZXItbWFuYWdlclwiPlxuICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICA8UGFuZWxWaWV3TGlzdFRvZ2dsZSB0b2dnbGVQYW5lbExpc3RWaWV3PXtvblRvZ2dsZVBhbmVsTGlzdFZpZXd9IG1vZGU9e3BhbmVsTGlzdFZpZXd9IC8+XG4gICAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgPERhdGFzZXRTZWN0aW9uXG4gICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgIHNob3dEYXRhc2V0VGFibGU9e3Nob3dEYXRhc2V0VGFibGV9XG4gICAgICAgICAgdXBkYXRlVGFibGVDb2xvcj17dXBkYXRlVGFibGVDb2xvcn1cbiAgICAgICAgICByZW1vdmVEYXRhc2V0PXtyZW1vdmVEYXRhc2V0fVxuICAgICAgICAgIHNob3dEZWxldGVEYXRhc2V0PXtzaG93RGVsZXRlRGF0YXNldH1cbiAgICAgICAgICBzaG93RGF0YXNldExpc3Q9eyFpc1NvcnRCeURhdGFzZXRNb2RlfVxuICAgICAgICAgIHNob3dBZGREYXRhTW9kYWw9e3Nob3dBZGREYXRhTW9kYWx9XG4gICAgICAgIC8+XG4gICAgICAgIDxTaWRlUGFuZWxEaXZpZGVyIC8+XG4gICAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgIDxQYW5lbFRpdGxlXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJsYXllci1tYW5hZ2VyLXRpdGxlXCJcbiAgICAgICAgICAgIHRpdGxlPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiBwYW5lbE1ldGFkYXRhLmxhYmVsfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEFkZExheWVyQnV0dG9uIGRhdGFzZXRzPXtkYXRhc2V0c30gb25BZGQ9e29uQWRkTGF5ZXJ9IC8+XG4gICAgICAgICAgPC9QYW5lbFRpdGxlPlxuICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgIHtpc1NvcnRCeURhdGFzZXRNb2RlID8gKFxuICAgICAgICAgICAgPERhdGFzZXRMYXllckdyb3VwXG4gICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgc2hvd0RhdGFzZXRUYWJsZT17c2hvd0RhdGFzZXRUYWJsZX1cbiAgICAgICAgICAgICAgbGF5ZXJzPXtsYXllcnN9XG4gICAgICAgICAgICAgIHVwZGF0ZVRhYmxlQ29sb3I9e3VwZGF0ZVRhYmxlQ29sb3J9XG4gICAgICAgICAgICAgIHJlbW92ZURhdGFzZXQ9e3JlbW92ZURhdGFzZXR9XG4gICAgICAgICAgICAgIGxheWVyT3JkZXI9e2xheWVyT3JkZXJ9XG4gICAgICAgICAgICAgIGxheWVyQ2xhc3Nlcz17ZmlsdGVyZWRMYXllckNsYXNzZXN9XG4gICAgICAgICAgICAgIHVpU3RhdGVBY3Rpb25zPXt1aVN0YXRlQWN0aW9uc31cbiAgICAgICAgICAgICAgdmlzU3RhdGVBY3Rpb25zPXt2aXNTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgIG1hcFN0YXRlQWN0aW9ucz17bWFwU3RhdGVBY3Rpb25zfVxuICAgICAgICAgICAgICBzaG93RGVsZXRlRGF0YXNldD17c2hvd0RlbGV0ZURhdGFzZXR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8TGF5ZXJMaXN0XG4gICAgICAgICAgICAgIGxheWVycz17bGF5ZXJzfVxuICAgICAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgICAgIGxheWVyT3JkZXI9e2xheWVyT3JkZXJ9XG4gICAgICAgICAgICAgIHVpU3RhdGVBY3Rpb25zPXt1aVN0YXRlQWN0aW9uc31cbiAgICAgICAgICAgICAgdmlzU3RhdGVBY3Rpb25zPXt2aXNTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgIG1hcFN0YXRlQWN0aW9ucz17bWFwU3RhdGVBY3Rpb25zfVxuICAgICAgICAgICAgICBsYXllckNsYXNzZXM9e2ZpbHRlcmVkTGF5ZXJDbGFzc2VzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgIDxMYXllckJsZW5kaW5nU2VsZWN0b3JcbiAgICAgICAgICBsYXllckJsZW5kaW5nPXtsYXllckJsZW5kaW5nfVxuICAgICAgICAgIHVwZGF0ZUxheWVyQmxlbmRpbmc9e3Zpc1N0YXRlQWN0aW9ucy51cGRhdGVMYXllckJsZW5kaW5nfVxuICAgICAgICAgIGludGw9e2ludGx9XG4gICAgICAgIC8+XG4gICAgICAgIDxPdmVybGF5QmxlbmRpbmdTZWxlY3RvclxuICAgICAgICAgIG92ZXJsYXlCbGVuZGluZz17b3ZlcmxheUJsZW5kaW5nfVxuICAgICAgICAgIHVwZGF0ZU92ZXJsYXlCbGVuZGluZz17dmlzU3RhdGVBY3Rpb25zLnVwZGF0ZU92ZXJsYXlCbGVuZGluZ31cbiAgICAgICAgICBpbnRsPXtpbnRsfVxuICAgICAgICAgIGluZm9IZWxwZXI9e1xuICAgICAgICAgICAgPEluZm9IZWxwZXJcbiAgICAgICAgICAgICAgaWQ9e2BvdmVybGF5QmxlbmRpbmctZGVzY3JpcHRpb25gfVxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17J292ZXJsYXlCbGVuZGluZy5kZXNjcmlwdGlvbid9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIGluamVjdEludGwoTGF5ZXJNYW5hZ2VyKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJNYW5hZ2VyRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksYUFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssVUFBQSxHQUFBRixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQU0sa0JBQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFPLG9CQUFBLEdBQUFKLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUSxXQUFBLEdBQUFMLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUyxlQUFBLEdBQUFOLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBVSxlQUFBLEdBQUFQLHNCQUFBLENBQUFILE9BQUE7QUFFQSxJQUFBVyxhQUFBLEdBQUFSLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBWSxrQkFBQSxHQUFBWixPQUFBO0FBQ0EsSUFBQWEsV0FBQSxHQUFBVixzQkFBQSxDQUFBSCxPQUFBO0FBRUEsSUFBQWMsVUFBQSxHQUFBZCxPQUFBO0FBTUEsSUFBQWUsTUFBQSxHQUFBZixPQUFBO0FBQXNELElBQUFnQixTQUFBO0VBQUFDLFVBQUE7RUFBQUMsVUFBQTtBQUFBLElBQUFDLGVBQUEsRUFBQUMsZ0JBQUE7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQXZCLHdCQUFBdUIs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
|
|
222
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RJbnRsIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2xvY2FsaXphdGlvbiIsIl9sYXllckxpc3QiLCJfZGF0YXNldExheWVyR3JvdXAiLCJfcGFuZWxWaWV3TGlzdFRvZ2dsZSIsIl9wYW5lbFRpdGxlIiwiX2RhdGFzZXRTZWN0aW9uIiwiX2FkZExheWVyQnV0dG9uIiwiX2l0ZW1TZWxlY3RvciIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9pbmZvSGVscGVyIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9wYW5lbEhlYWRlckFjdGlvbiIsIl9pY29ucyIsIl9leGNsdWRlZCIsIl9leGNsdWRlZDIiLCJfZXhjbHVkZWQzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIkxheWVyQmxlbmRpbmdTZWxlY3RvciIsImV4cG9ydHMiLCJSZWFjdCIsIm1lbW8iLCJfcmVmIiwibGF5ZXJCbGVuZGluZyIsInVwZGF0ZUxheWVyQmxlbmRpbmciLCJpbnRsIiwiY2xhc3NOYW1lIiwibGFiZWxlZExheWVyQmxlbmRpbmdzIiwiTEFZRVJfQkxFTkRJTkdTIiwicmVkdWNlIiwiYWNjIiwiY3VycmVudCIsImZvcm1hdE1lc3NhZ2UiLCJpZCIsImxhYmVsIiwib25DaGFuZ2UiLCJ1c2VDYWxsYmFjayIsImJsZW5kaW5nIiwiY3JlYXRlRWxlbWVudCIsIlNpZGVQYW5lbFNlY3Rpb24iLCJQYW5lbExhYmVsIiwiRm9ybWF0dGVkTWVzc2FnZSIsInNlbGVjdGVkSXRlbXMiLCJvcHRpb25zIiwibXVsdGlTZWxlY3QiLCJzZWFyY2hhYmxlIiwiZGlzcGxheU5hbWUiLCJJbmZvSGVscGVyV3JhcHBlciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3JUaXRsZVJvdyIsIk92ZXJsYXlCbGVuZGluZ1NlbGVjdG9yIiwiX3JlZjIiLCJvdmVybGF5QmxlbmRpbmciLCJ1cGRhdGVPdmVybGF5QmxlbmRpbmciLCJpbmZvSGVscGVyIiwibGFiZWxlZE92ZXJsYXlCbGVuZGluZ3MiLCJPVkVSTEFZX0JMRU5ESU5HUyIsIkxheWVyTWFuYWdlckZhY3RvcnkiLCJkZXBzIiwiTGF5ZXJMaXN0RmFjdG9yeSIsIkRhdGFzZXRMYXllckdyb3VwRmFjdG9yeSIsIlBhbmVsVmlld0xpc3RUb2dnbGVGYWN0b3J5IiwiUGFuZWxUaXRsZUZhY3RvcnkiLCJEYXRhc2V0U2VjdGlvbkZhY3RvcnkiLCJBZGRMYXllckJ1dHRvbkZhY3RvcnkiLCJJbmZvSGVscGVyRmFjdG9yeSIsIlBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeSIsIkxheWVyTGlzdCIsIkRhdGFzZXRMYXllckdyb3VwIiwiUGFuZWxWaWV3TGlzdFRvZ2dsZSIsIlBhbmVsVGl0bGUiLCJEYXRhc2V0U2VjdGlvbiIsIkFkZExheWVyQnV0dG9uIiwiSW5mb0hlbHBlciIsIlBhbmVsSGVhZGVyQWN0aW9uIiwiTGF5ZXJNYW5hZ2VyIiwiX3JlZjMiLCJsYXllcnMiLCJkYXRhc2V0cyIsImxheWVyT3JkZXIiLCJwYW5lbExpc3RWaWV3IiwicGFuZWxNZXRhZGF0YSIsImxheWVyQ2xhc3NlcyIsInNob3dBZGREYXRhTW9kYWwiLCJfcmVmMyRzaG93RGVsZXRlRGF0YXMiLCJzaG93RGVsZXRlRGF0YXNldCIsInVwZGF0ZVRhYmxlQ29sb3IiLCJzaG93RGF0YXNldFRhYmxlIiwicmVtb3ZlRGF0YXNldCIsInVpU3RhdGVBY3Rpb25zIiwidmlzU3RhdGVBY3Rpb25zIiwibWFwU3RhdGVBY3Rpb25zIiwiYWRkTGF5ZXIiLCJ0b2dnbGVQYW5lbExpc3RWaWV3Iiwib25BZGRMYXllciIsImRhdGFzZXQiLCJ1bmRlZmluZWQiLCJvbkFkZEdyb3VwIiwiYWRkTGF5ZXJHcm91cCIsIm9uVG9nZ2xlUGFuZWxMaXN0VmlldyIsImxpc3RWaWV3IiwicGFuZWxJZCIsImlzU29ydEJ5RGF0YXNldE1vZGUiLCJQQU5FTF9WSUVXX1RPR0dMRVMiLCJieURhdGFzZXQiLCJlbmFibGVSYXN0ZXJUaWxlTGF5ZXIiLCJnZXRBcHBsaWNhdGlvbkNvbmZpZyIsImVuYWJsZVdNU0xheWVyIiwiZW5hYmxlRmxvd0xheWVyIiwiZW5hYmxlTGF5ZXJHcm91cHMiLCJmaWx0ZXJlZExheWVyQ2xhc3NlcyIsInVzZU1lbW8iLCJmaWx0ZXJlZENsYXNzZXMiLCJfZmlsdGVyZWRDbGFzc2VzIiwiX3Jhc3RlclRpbGUiLCJyYXN0ZXJUaWxlIiwicmVzdCIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJfZmlsdGVyZWRDbGFzc2VzMiIsIl93bXMiLCJ3bXMiLCJfZmlsdGVyZWRDbGFzc2VzMyIsIl9mbG93IiwiZmxvdyIsIm1vZGUiLCJzaG93RGF0YXNldExpc3QiLCJTaWRlUGFuZWxEaXZpZGVyIiwidGl0bGUiLCJvbkNsaWNrIiwiSWNvbkNvbXBvbmVudCIsIkZvbGRlciIsInRvb2x0aXAiLCJvbkFkZCIsImRlc2NyaXB0aW9uIiwiaW5qZWN0SW50bCIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItbWFuYWdlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHtpbmplY3RJbnRsLCBXcmFwcGVkQ29tcG9uZW50UHJvcHN9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcblxuaW1wb3J0IExheWVyTGlzdEZhY3RvcnkgZnJvbSAnLi9sYXllci1wYW5lbC9sYXllci1saXN0JztcbmltcG9ydCBEYXRhc2V0TGF5ZXJHcm91cEZhY3RvcnkgZnJvbSAnLi9sYXllci1wYW5lbC9kYXRhc2V0LWxheWVyLWdyb3VwJztcbmltcG9ydCBQYW5lbFZpZXdMaXN0VG9nZ2xlRmFjdG9yeSBmcm9tICcuL3BhbmVsLXZpZXctbGlzdC10b2dnbGUnO1xuaW1wb3J0IFBhbmVsVGl0bGVGYWN0b3J5IGZyb20gJy4vcGFuZWwtdGl0bGUnO1xuaW1wb3J0IERhdGFzZXRTZWN0aW9uRmFjdG9yeSBmcm9tICcuL2xheWVyLXBhbmVsL2RhdGFzZXQtc2VjdGlvbic7XG5pbXBvcnQgQWRkTGF5ZXJCdXR0b25GYWN0b3J5IGZyb20gJy4vbGF5ZXItcGFuZWwvYWRkLWxheWVyLWJ1dHRvbic7XG5cbmltcG9ydCBJdGVtU2VsZWN0b3IgZnJvbSAnLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvaXRlbS1zZWxlY3Rvcic7XG5pbXBvcnQge1BhbmVsTGFiZWwsIFNpZGVQYW5lbERpdmlkZXIsIFNpZGVQYW5lbFNlY3Rpb259IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgSW5mb0hlbHBlckZhY3RvcnkgZnJvbSAnLi4vY29tbW9uL2luZm8taGVscGVyJztcblxuaW1wb3J0IHtMQVlFUl9CTEVORElOR1MsIE9WRVJMQVlfQkxFTkRJTkdTLCBQQU5FTF9WSUVXX1RPR0dMRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7TGF5ZXIsIExheWVyQ2xhc3Nlc1R5cGV9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7VUlTdGF0ZUFjdGlvbnMsIFZpc1N0YXRlQWN0aW9ucywgTWFwU3RhdGVBY3Rpb25zLCBBY3Rpb25IYW5kbGVyfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtTaWRlUGFuZWxJdGVtfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge1BhbmVsTGlzdFZpZXcsIExheWVyT3JkZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtEYXRhc2V0c30gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge2dldEFwcGxpY2F0aW9uQ29uZmlnfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCBQYW5lbEhlYWRlckFjdGlvbkZhY3RvcnkgZnJvbSAnLi9wYW5lbC1oZWFkZXItYWN0aW9uJztcbmltcG9ydCB7Rm9sZGVyfSBmcm9tICcuLi9jb21tb24vaWNvbnMnO1xuXG50eXBlIExheWVyQmxlbmRpbmdTZWxlY3RvclByb3BzID0ge1xuICBsYXllckJsZW5kaW5nOiBzdHJpbmc7XG4gIHVwZGF0ZUxheWVyQmxlbmRpbmc6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIFZpc1N0YXRlQWN0aW9ucy51cGRhdGVMYXllckJsZW5kaW5nPjtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xufSAmIFdyYXBwZWRDb21wb25lbnRQcm9wcztcblxudHlwZSBPdmVybGF5QmxlbmRpbmdTZWxlY3RvclByb3BzID0ge1xuICBvdmVybGF5QmxlbmRpbmc6IHN0cmluZztcbiAgdXBkYXRlT3ZlcmxheUJsZW5kaW5nOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnMudXBkYXRlT3ZlcmxheUJsZW5kaW5nPjtcbiAgaW5mb0hlbHBlcjogUmVhY3QuUmVhY3ROb2RlO1xufSAmIFdyYXBwZWRDb21wb25lbnRQcm9wcztcblxudHlwZSBMYXllck1hbmFnZXJQcm9wcyA9IHtcbiAgZGF0YXNldHM6IERhdGFzZXRzO1xuICBsYXllcnM6IExheWVyW107XG4gIGxheWVyT3JkZXI6IExheWVyT3JkZXI7XG4gIGxheWVyQ2xhc3NlczogTGF5ZXJDbGFzc2VzVHlwZTtcbiAgbGF5ZXJCbGVuZGluZzogc3RyaW5nO1xuICBvdmVybGF5QmxlbmRpbmc6IHN0cmluZztcbiAgdWlTdGF0ZUFjdGlvbnM6IHR5cGVvZiBVSVN0YXRlQWN0aW9ucztcbiAgdmlzU3RhdGVBY3Rpb25zOiB0eXBlb2YgVmlzU3RhdGVBY3Rpb25zO1xuICBtYXBTdGF0ZUFjdGlvbnM6IHR5cGVvZiBNYXBTdGF0ZUFjdGlvbnM7XG4gIHNob3dBZGREYXRhTW9kYWw6ICgpID0+IHZvaWQ7XG4gIHJlbW92ZURhdGFzZXQ6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIFVJU3RhdGVBY3Rpb25zLm9wZW5EZWxldGVNb2RhbD47XG4gIHNob3dEYXRhc2V0VGFibGU6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIFZpc1N0YXRlQWN0aW9ucy5zaG93RGF0YXNldFRhYmxlPjtcbiAgdXBkYXRlVGFibGVDb2xvcjogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVmlzU3RhdGVBY3Rpb25zLnVwZGF0ZVRhYmxlQ29sb3I+O1xuICBwYW5lbExpc3RWaWV3OiBQYW5lbExpc3RWaWV3O1xuICBwYW5lbE1ldGFkYXRhOiBTaWRlUGFuZWxJdGVtO1xuICBzaG93RGVsZXRlRGF0YXNldD86IGJvb2xlYW47XG59ICYgV3JhcHBlZENvbXBvbmVudFByb3BzO1xuXG5leHBvcnQgY29uc3QgTGF5ZXJCbGVuZGluZ1NlbGVjdG9yID0gUmVhY3QubWVtbyhcbiAgKHtsYXllckJsZW5kaW5nLCB1cGRhdGVMYXllckJsZW5kaW5nLCBpbnRsLCBjbGFzc05hbWV9OiBMYXllckJsZW5kaW5nU2VsZWN0b3JQcm9wcykgPT4ge1xuICAgIGNvbnN0IGxhYmVsZWRMYXllckJsZW5kaW5ncyA9IE9iamVjdC5rZXlzKExBWUVSX0JMRU5ESU5HUykucmVkdWNlKFxuICAgICAgKGFjYywgY3VycmVudCkgPT4gKHtcbiAgICAgICAgLi4uYWNjLFxuICAgICAgICBbaW50bC5mb3JtYXRNZXNzYWdlKHtpZDogTEFZRVJfQkxFTkRJTkdTW2N1cnJlbnRdLmxhYmVsfSldOiBjdXJyZW50XG4gICAgICB9KSxcbiAgICAgIHt9XG4gICAgKTtcblxuICAgIGNvbnN0IG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgICBibGVuZGluZyA9PiB1cGRhdGVMYXllckJsZW5kaW5nKGxhYmVsZWRMYXllckJsZW5kaW5nc1tibGVuZGluZ10pLFxuICAgICAgW3VwZGF0ZUxheWVyQmxlbmRpbmcsIGxhYmVsZWRMYXllckJsZW5kaW5nc11cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTaWRlUGFuZWxTZWN0aW9uIGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgICAgPFBhbmVsTGFiZWw+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJsYXllckJsZW5kaW5nLnRpdGxlXCIgLz5cbiAgICAgICAgPC9QYW5lbExhYmVsPlxuICAgICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgICAgc2VsZWN0ZWRJdGVtcz17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogTEFZRVJfQkxFTkRJTkdTW2xheWVyQmxlbmRpbmddLmxhYmVsfSl9XG4gICAgICAgICAgb3B0aW9ucz17T2JqZWN0LmtleXMobGFiZWxlZExheWVyQmxlbmRpbmdzKX1cbiAgICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAvPlxuICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICk7XG4gIH1cbik7XG5MYXllckJsZW5kaW5nU2VsZWN0b3IuZGlzcGxheU5hbWUgPSAnTGF5ZXJCbGVuZGluZ1NlbGVjdG9yJztcblxuY29uc3QgSW5mb0hlbHBlcldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBmbG9hdDogcmlnaHQ7XG5gO1xuXG5jb25zdCBPdmVybGF5QmxlbmRpbmdTZWxlY3RvclRpdGxlUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IE92ZXJsYXlCbGVuZGluZ1NlbGVjdG9yID0gUmVhY3QubWVtbyhcbiAgKHtvdmVybGF5QmxlbmRpbmcsIHVwZGF0ZU92ZXJsYXlCbGVuZGluZywgaW50bCwgaW5mb0hlbHBlcn06IE92ZXJsYXlCbGVuZGluZ1NlbGVjdG9yUHJvcHMpID0+IHtcbiAgICBjb25zdCBsYWJlbGVkT3ZlcmxheUJsZW5kaW5ncyA9IE9iamVjdC5rZXlzKE9WRVJMQVlfQkxFTkRJTkdTKS5yZWR1Y2UoXG4gICAgICAoYWNjLCBjdXJyZW50KSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiBPVkVSTEFZX0JMRU5ESU5HU1tjdXJyZW50XS5sYWJlbH0pXTogY3VycmVudFxuICAgICAgfSksXG4gICAgICB7fVxuICAgICk7XG5cbiAgICBjb25zdCBvbkNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgYmxlbmRpbmcgPT4gdXBkYXRlT3ZlcmxheUJsZW5kaW5nKGxhYmVsZWRPdmVybGF5QmxlbmRpbmdzW2JsZW5kaW5nXSksXG4gICAgICBbdXBkYXRlT3ZlcmxheUJsZW5kaW5nLCBsYWJlbGVkT3ZlcmxheUJsZW5kaW5nc11cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICA8T3ZlcmxheUJsZW5kaW5nU2VsZWN0b3JUaXRsZVJvdz5cbiAgICAgICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwib3ZlcmxheUJsZW5kaW5nLnRpdGxlXCIgLz5cbiAgICAgICAgICA8L1BhbmVsTGFiZWw+XG4gICAgICAgICAgPEluZm9IZWxwZXJXcmFwcGVyPntpbmZvSGVscGVyfTwvSW5mb0hlbHBlcldyYXBwZXI+XG4gICAgICAgIDwvT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3JUaXRsZVJvdz5cbiAgICAgICAgPEl0ZW1TZWxlY3RvclxuICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6IE9WRVJMQVlfQkxFTkRJTkdTW292ZXJsYXlCbGVuZGluZ10ubGFiZWx9KX1cbiAgICAgICAgICBvcHRpb25zPXtPYmplY3Qua2V5cyhsYWJlbGVkT3ZlcmxheUJsZW5kaW5ncyl9XG4gICAgICAgICAgbXVsdGlTZWxlY3Q9e2ZhbHNlfVxuICAgICAgICAgIHNlYXJjaGFibGU9e2ZhbHNlfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICApO1xuICB9XG4pO1xuT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3IuZGlzcGxheU5hbWUgPSAnT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3InO1xuXG5MYXllck1hbmFnZXJGYWN0b3J5LmRlcHMgPSBbXG4gIExheWVyTGlzdEZhY3RvcnksXG4gIERhdGFzZXRMYXllckdyb3VwRmFjdG9yeSxcbiAgUGFuZWxWaWV3TGlzdFRvZ2dsZUZhY3RvcnksXG4gIFBhbmVsVGl0bGVGYWN0b3J5LFxuICBEYXRhc2V0U2VjdGlvbkZhY3RvcnksXG4gIEFkZExheWVyQnV0dG9uRmFjdG9yeSxcbiAgSW5mb0hlbHBlckZhY3RvcnksXG4gIFBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeVxuXTtcblxuZnVuY3Rpb24gTGF5ZXJNYW5hZ2VyRmFjdG9yeShcbiAgTGF5ZXJMaXN0OiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckxpc3RGYWN0b3J5PixcbiAgRGF0YXNldExheWVyR3JvdXA6IFJldHVyblR5cGU8dHlwZW9mIERhdGFzZXRMYXllckdyb3VwRmFjdG9yeT4sXG4gIFBhbmVsVmlld0xpc3RUb2dnbGU6IFJldHVyblR5cGU8dHlwZW9mIFBhbmVsVmlld0xpc3RUb2dnbGVGYWN0b3J5PixcbiAgUGFuZWxUaXRsZTogUmV0dXJuVHlwZTx0eXBlb2YgUGFuZWxUaXRsZUZhY3Rvcnk+LFxuICBEYXRhc2V0U2VjdGlvbjogUmV0dXJuVHlwZTx0eXBlb2YgRGF0YXNldFNlY3Rpb25GYWN0b3J5PixcbiAgQWRkTGF5ZXJCdXR0b246IFJldHVyblR5cGU8dHlwZW9mIEFkZExheWVyQnV0dG9uRmFjdG9yeT4sXG4gIEluZm9IZWxwZXI6IFJldHVyblR5cGU8dHlwZW9mIEluZm9IZWxwZXJGYWN0b3J5PixcbiAgUGFuZWxIZWFkZXJBY3Rpb246IFJldHVyblR5cGU8dHlwZW9mIFBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeT5cbikge1xuICBjb25zdCBMYXllck1hbmFnZXI6IFJlYWN0LkZDPExheWVyTWFuYWdlclByb3BzPiA9ICh7XG4gICAgbGF5ZXJzLFxuICAgIGRhdGFzZXRzLFxuICAgIGludGwsXG4gICAgbGF5ZXJPcmRlcixcbiAgICBwYW5lbExpc3RWaWV3LFxuICAgIHBhbmVsTWV0YWRhdGEsXG4gICAgbGF5ZXJDbGFzc2VzLFxuICAgIGxheWVyQmxlbmRpbmcsXG4gICAgb3ZlcmxheUJsZW5kaW5nLFxuICAgIHNob3dBZGREYXRhTW9kYWwsXG4gICAgc2hvd0RlbGV0ZURhdGFzZXQgPSB0cnVlLFxuICAgIHVwZGF0ZVRhYmxlQ29sb3IsXG4gICAgc2hvd0RhdGFzZXRUYWJsZSxcbiAgICByZW1vdmVEYXRhc2V0LFxuICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICBtYXBTdGF0ZUFjdGlvbnNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHthZGRMYXllcn0gPSB2aXNTdGF0ZUFjdGlvbnM7XG4gICAgY29uc3Qge3RvZ2dsZVBhbmVsTGlzdFZpZXd9ID0gdWlTdGF0ZUFjdGlvbnM7XG4gICAgY29uc3Qgb25BZGRMYXllciA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGRhdGFzZXQ6IHN0cmluZykgPT4ge1xuICAgICAgICBhZGRMYXllcih1bmRlZmluZWQsIGRhdGFzZXQpO1xuICAgICAgfSxcbiAgICAgIFthZGRMYXllcl1cbiAgICApO1xuXG4gICAgY29uc3Qgb25BZGRHcm91cCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHZpc1N0YXRlQWN0aW9ucy5hZGRMYXllckdyb3VwKHt9KTtcbiAgICB9LCBbdmlzU3RhdGVBY3Rpb25zXSk7XG5cbiAgICBjb25zdCBvblRvZ2dsZVBhbmVsTGlzdFZpZXcgPSB1c2VDYWxsYmFjayhcbiAgICAgIChsaXN0Vmlldzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRvZ2dsZVBhbmVsTGlzdFZpZXcoe3BhbmVsSWQ6ICdsYXllcicsIGxpc3RWaWV3fSk7XG4gICAgICB9LFxuICAgICAgW3RvZ2dsZVBhbmVsTGlzdFZpZXddXG4gICAgKTtcblxuICAgIGNvbnN0IGlzU29ydEJ5RGF0YXNldE1vZGUgPSBwYW5lbExpc3RWaWV3ID09PSBQQU5FTF9WSUVXX1RPR0dMRVMuYnlEYXRhc2V0O1xuXG4gICAgLy8gdGVtcCBwYXRjaCB0byBoaWRlIGxheWVycyB0aGF0IGFyZSBpbiBkZXZlbG9wbWVudFxuICAgIGNvbnN0IGVuYWJsZVJhc3RlclRpbGVMYXllciA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlUmFzdGVyVGlsZUxheWVyO1xuICAgIGNvbnN0IGVuYWJsZVdNU0xheWVyID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS5lbmFibGVXTVNMYXllcjtcbiAgICBjb25zdCBlbmFibGVGbG93TGF5ZXIgPSBnZXRBcHBsaWNhdGlvbkNvbmZpZygpLmVuYWJsZUZsb3dMYXllcjtcbiAgICBjb25zdCBlbmFibGVMYXllckdyb3VwcyA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlTGF5ZXJHcm91cHM7XG5cbiAgICBjb25zdCBmaWx0ZXJlZExheWVyQ2xhc3NlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgbGV0IGZpbHRlcmVkQ2xhc3NlcyA9IGxheWVyQ2xhc3NlcztcbiAgICAgIGlmICghZW5hYmxlUmFzdGVyVGlsZUxheWVyKSB7XG4gICAgICAgIGNvbnN0IHtyYXN0ZXJUaWxlOiBfcmFzdGVyVGlsZSwgLi4ucmVzdH0gPSBmaWx0ZXJlZENsYXNzZXM7XG4gICAgICAgIGZpbHRlcmVkQ2xhc3NlcyA9IHJlc3QgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICAgIH1cbiAgICAgIGlmICghZW5hYmxlV01TTGF5ZXIpIHtcbiAgICAgICAgY29uc3Qge3dtczogX3dtcywgLi4ucmVzdH0gPSBmaWx0ZXJlZENsYXNzZXM7XG4gICAgICAgIGZpbHRlcmVkQ2xhc3NlcyA9IHJlc3QgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICAgIH1cbiAgICAgIGlmICghZW5hYmxlRmxvd0xheWVyKSB7XG4gICAgICAgIGNvbnN0IHtmbG93OiBfZmxvdywgLi4ucmVzdH0gPSBmaWx0ZXJlZENsYXNzZXM7XG4gICAgICAgIGZpbHRlcmVkQ2xhc3NlcyA9IHJlc3QgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmaWx0ZXJlZENsYXNzZXMgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICB9LCBbZW5hYmxlUmFzdGVyVGlsZUxheWVyLCBlbmFibGVXTVNMYXllciwgZW5hYmxlRmxvd0xheWVyLCBsYXllckNsYXNzZXNdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxheWVyLW1hbmFnZXJcIj5cbiAgICAgICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgPFBhbmVsVmlld0xpc3RUb2dnbGUgdG9nZ2xlUGFuZWxMaXN0Vmlldz17b25Ub2dnbGVQYW5lbExpc3RWaWV3fSBtb2RlPXtwYW5lbExpc3RWaWV3fSAvPlxuICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgIDxEYXRhc2V0U2VjdGlvblxuICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICBzaG93RGF0YXNldFRhYmxlPXtzaG93RGF0YXNldFRhYmxlfVxuICAgICAgICAgIHVwZGF0ZVRhYmxlQ29sb3I9e3VwZGF0ZVRhYmxlQ29sb3J9XG4gICAgICAgICAgcmVtb3ZlRGF0YXNldD17cmVtb3ZlRGF0YXNldH1cbiAgICAgICAgICBzaG93RGVsZXRlRGF0YXNldD17c2hvd0RlbGV0ZURhdGFzZXR9XG4gICAgICAgICAgc2hvd0RhdGFzZXRMaXN0PXshaXNTb3J0QnlEYXRhc2V0TW9kZX1cbiAgICAgICAgICBzaG93QWRkRGF0YU1vZGFsPXtzaG93QWRkRGF0YU1vZGFsfVxuICAgICAgICAvPlxuICAgICAgICA8U2lkZVBhbmVsRGl2aWRlciAvPlxuICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICA8UGFuZWxUaXRsZVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibGF5ZXItbWFuYWdlci10aXRsZVwiXG4gICAgICAgICAgICB0aXRsZT17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogcGFuZWxNZXRhZGF0YS5sYWJlbH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtlbmFibGVMYXllckdyb3VwcyA/IChcbiAgICAgICAgICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGF5ZXItZ3JvdXBfX2NyZWF0ZVwiXG4gICAgICAgICAgICAgICAgaWQ9XCJuZXctbGF5ZXItZ3JvdXBcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQWRkR3JvdXB9XG4gICAgICAgICAgICAgICAgSWNvbkNvbXBvbmVudD17Rm9sZGVyfVxuICAgICAgICAgICAgICAgIHRvb2x0aXA9XCJDcmVhdGUgbGF5ZXIgZ3JvdXBcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8QWRkTGF5ZXJCdXR0b24gZGF0YXNldHM9e2RhdGFzZXRzfSBvbkFkZD17b25BZGRMYXllcn0gLz5cbiAgICAgICAgICA8L1BhbmVsVGl0bGU+XG4gICAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAge2lzU29ydEJ5RGF0YXNldE1vZGUgPyAoXG4gICAgICAgICAgICA8RGF0YXNldExheWVyR3JvdXBcbiAgICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgICBzaG93RGF0YXNldFRhYmxlPXtzaG93RGF0YXNldFRhYmxlfVxuICAgICAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICAgICAgdXBkYXRlVGFibGVDb2xvcj17dXBkYXRlVGFibGVDb2xvcn1cbiAgICAgICAgICAgICAgcmVtb3ZlRGF0YXNldD17cmVtb3ZlRGF0YXNldH1cbiAgICAgICAgICAgICAgbGF5ZXJPcmRlcj17bGF5ZXJPcmRlcn1cbiAgICAgICAgICAgICAgbGF5ZXJDbGFzc2VzPXtmaWx0ZXJlZExheWVyQ2xhc3Nlc31cbiAgICAgICAgICAgICAgdWlTdGF0ZUFjdGlvbnM9e3VpU3RhdGVBY3Rpb25zfVxuICAgICAgICAgICAgICB2aXNTdGF0ZUFjdGlvbnM9e3Zpc1N0YXRlQWN0aW9uc31cbiAgICAgICAgICAgICAgbWFwU3RhdGVBY3Rpb25zPXttYXBTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgIHNob3dEZWxldGVEYXRhc2V0PXtzaG93RGVsZXRlRGF0YXNldH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxMYXllckxpc3RcbiAgICAgICAgICAgICAgbGF5ZXJzPXtsYXllcnN9XG4gICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgbGF5ZXJPcmRlcj17bGF5ZXJPcmRlcn1cbiAgICAgICAgICAgICAgdWlTdGF0ZUFjdGlvbnM9e3VpU3RhdGVBY3Rpb25zfVxuICAgICAgICAgICAgICB2aXNTdGF0ZUFjdGlvbnM9e3Zpc1N0YXRlQWN0aW9uc31cbiAgICAgICAgICAgICAgbWFwU3RhdGVBY3Rpb25zPXttYXBTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgIGxheWVyQ2xhc3Nlcz17ZmlsdGVyZWRMYXllckNsYXNzZXN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgPExheWVyQmxlbmRpbmdTZWxlY3RvclxuICAgICAgICAgIGxheWVyQmxlbmRpbmc9e2xheWVyQmxlbmRpbmd9XG4gICAgICAgICAgdXBkYXRlTGF5ZXJCbGVuZGluZz17dmlzU3RhdGVBY3Rpb25zLnVwZGF0ZUxheWVyQmxlbmRpbmd9XG4gICAgICAgICAgaW50bD17aW50bH1cbiAgICAgICAgLz5cbiAgICAgICAgPE92ZXJsYXlCbGVuZGluZ1NlbGVjdG9yXG4gICAgICAgICAgb3ZlcmxheUJsZW5kaW5nPXtvdmVybGF5QmxlbmRpbmd9XG4gICAgICAgICAgdXBkYXRlT3ZlcmxheUJsZW5kaW5nPXt2aXNTdGF0ZUFjdGlvbnMudXBkYXRlT3ZlcmxheUJsZW5kaW5nfVxuICAgICAgICAgIGludGw9e2ludGx9XG4gICAgICAgICAgaW5mb0hlbHBlcj17XG4gICAgICAgICAgICA8SW5mb0hlbHBlclxuICAgICAgICAgICAgICBpZD17YG92ZXJsYXlCbGVuZGluZy1kZXNjcmlwdGlvbmB9XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXsnb3ZlcmxheUJsZW5kaW5nLmRlc2NyaXB0aW9uJ31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gaW5qZWN0SW50bChMYXllck1hbmFnZXIpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBMYXllck1hbmFnZXJGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxhQUFBLEdBQUFKLE9BQUE7QUFFQSxJQUFBSyxVQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTSxrQkFBQSxHQUFBSCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQU8sb0JBQUEsR0FBQUosc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFRLFdBQUEsR0FBQUwsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFTLGVBQUEsR0FBQU4sc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFVLGVBQUEsR0FBQVAsc0JBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFXLGFBQUEsR0FBQVIsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFZLGtCQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxXQUFBLEdBQUFWLHNCQUFBLENBQUFILE9BQUE7QUFFQSxJQUFBYyxVQUFBLEdBQUFkLE9BQUE7QUFNQSxJQUFBZSxNQUFBLEdBQUFmLE9BQUE7QUFDQSxJQUFBZ0Isa0JBQUEsR0FBQWIsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFpQixNQUFBLEdBQUFqQixPQUFBO0FBQXVDLElBQUFrQixTQUFBO0VBQUFDLFVBQUE7RUFBQUMsVUFBQTtBQUFBLElBQUFDLGVBQUEsRUFBQUMsZ0JBQUE7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFB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
|
|
@@ -22,11 +22,13 @@ type ColorSelectorProps = {
|
|
|
22
22
|
useOpacity?: boolean;
|
|
23
23
|
setColorUI?: (newConfig: NestedPartial<ColorUI>) => void;
|
|
24
24
|
};
|
|
25
|
-
export declare const ColorBlock: import("styled-components").
|
|
25
|
+
export declare const ColorBlock: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "backgroundcolor"> & {
|
|
26
26
|
backgroundcolor: RGBColor;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
}, never> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "backgroundcolor"> & {
|
|
28
|
+
backgroundcolor: RGBColor;
|
|
29
|
+
}, never>>> & string;
|
|
30
|
+
export declare const ColorSelectorInput: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof ColorSelectorInputProps> & ColorSelectorInputProps, never> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof ColorSelectorInputProps> & ColorSelectorInputProps, never>>> & string;
|
|
31
|
+
export declare const InputBoxContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
30
32
|
declare function ColorSelectorFactory(ColorRangeSelector: ReturnType<typeof ColorRangeSelectorFactory>, RangeSlider: ReturnType<typeof RangeSliderFactory>): React.FC<ColorSelectorProps>;
|
|
31
33
|
declare namespace ColorSelectorFactory {
|
|
32
34
|
var deps: (typeof RangeSliderFactory | typeof ColorRangeSelectorFactory)[];
|
|
@@ -41,11 +41,9 @@ export type CustomPaletteInputProps = {
|
|
|
41
41
|
onAdd: (index: number) => void;
|
|
42
42
|
onToggleSketcher: (index: number) => void;
|
|
43
43
|
};
|
|
44
|
-
export declare const ColorPaletteItem: import("styled-components").
|
|
45
|
-
export declare const DividerLine: import("styled-components").
|
|
46
|
-
export declare const ColorSwatch: import("styled-components").
|
|
47
|
-
ref?: ((instance: HTMLDivElement | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
48
|
-
}>, never>, never>>;
|
|
44
|
+
export declare const ColorPaletteItem: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
45
|
+
export declare const DividerLine: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
|
|
46
|
+
export declare const ColorSwatch: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>> & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement>, "className"> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>> & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement>, "className">>> & string;
|
|
49
47
|
export type ColorPaletteInputProps = {
|
|
50
48
|
value: string | number;
|
|
51
49
|
onChange: (val: unknown) => void;
|
|
@@ -3,10 +3,11 @@ import DatasetLayerSectionFactory from './dataset-layer-section';
|
|
|
3
3
|
import { Layer, LayerClassesType } from '@kepler.gl/layers';
|
|
4
4
|
import { UIStateActions, VisStateActions, ActionHandler, MapStateActions } from '@kepler.gl/actions';
|
|
5
5
|
import { Datasets } from '@kepler.gl/table';
|
|
6
|
+
import { LayerOrder } from '@kepler.gl/types';
|
|
6
7
|
type DatasetLayerGroupProps = {
|
|
7
8
|
datasets: Datasets;
|
|
8
9
|
layers: Layer[];
|
|
9
|
-
layerOrder:
|
|
10
|
+
layerOrder: LayerOrder;
|
|
10
11
|
layerClasses: LayerClassesType;
|
|
11
12
|
showDeleteDataset: boolean;
|
|
12
13
|
removeDataset: ActionHandler<typeof UIStateActions.openDeleteModal>;
|
|
@@ -64,4 +64,4 @@ function DatasetLayerGroupFactory(DatasetLayerSection) {
|
|
|
64
64
|
return DatasetLayerGroup;
|
|
65
65
|
}
|
|
66
66
|
var _default = exports["default"] = DatasetLayerGroupFactory;
|
|
67
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfZGF0YXNldExheWVyU2VjdGlvbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJEYXRhc2V0TGF5ZXJHcm91cEZhY3RvcnkiLCJkZXBzIiwiRGF0YXNldExheWVyU2VjdGlvbkZhY3RvcnkiLCJEYXRhc2V0TGF5ZXJTZWN0aW9uIiwiRGF0YXNldExheWVyR3JvdXAiLCJwcm9wcyIsImRhdGFzZXRzIiwic2hvd0RhdGFzZXRUYWJsZSIsImxheWVycyIsInVwZGF0ZVRhYmxlQ29sb3IiLCJzaG93RGVsZXRlRGF0YXNldCIsInJlbW92ZURhdGFzZXQiLCJsYXllck9yZGVyIiwibGF5ZXJDbGFzc2VzIiwidWlTdGF0ZUFjdGlvbnMiLCJ2aXNTdGF0ZUFjdGlvbnMiLCJtYXBTdGF0ZUFjdGlvbnMiLCJkYXRhc2V0TGF5ZXJTZWN0aW9uRGF0YSIsInVzZU1lbW8iLCJ2YWx1ZXMiLCJtYXAiLCJkYXRhc2V0IiwiZGF0YXNldExheWVycyIsImxheWVyIiwiY29uZmlnIiwiZGF0YUlkIiwiaWQiLCJmaWx0ZXIiLCJCb29sZWFuIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiZGxzRGF0YSIsImtleSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL2RhdGFzZXQtbGF5ZXItZ3JvdXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZU1lbW99IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IERhdGFzZXRMYXllclNlY3Rpb25GYWN0b3J5IGZyb20gJy4vZGF0YXNldC1sYXllci1zZWN0aW9uJztcbmltcG9ydCB7TGF5ZXIsIExheWVyQ2xhc3Nlc1R5cGV9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7VUlTdGF0ZUFjdGlvbnMsIFZpc1N0YXRlQWN0aW9ucywgQWN0aW9uSGFuZGxlciwgTWFwU3RhdGVBY3Rpb25zfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtLZXBsZXJUYWJsZSwgRGF0YXNldHN9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuaW1wb3J0IHtMYXllck9yZGVyfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxudHlwZSBEYXRhc2V0TGF5ZXJHcm91cFByb3BzID0ge1xuICBkYXRhc2V0czogRGF0YXNldHM7XG4gIGxheWVyczogTGF5ZXJbXTtcbiAgbGF5ZXJPcmRlcjogTGF5ZXJPcmRlcjtcbiAgbGF5ZXJDbGFzc2VzOiBMYXllckNsYXNzZXNUeXBlO1xuICBzaG93RGVsZXRlRGF0YXNldDogYm9vbGVhbjtcbiAgcmVtb3ZlRGF0YXNldDogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVUlTdGF0ZUFjdGlvbnMub3BlbkRlbGV0ZU1vZGFsPjtcbiAgc2hvd0RhdGFzZXRUYWJsZTogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVmlzU3RhdGVBY3Rpb25zLnNob3dEYXRhc2V0VGFibGU+O1xuICB1cGRhdGVUYWJsZUNvbG9yOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnMudXBkYXRlVGFibGVDb2xvcj47XG4gIHVpU3RhdGVBY3Rpb25zOiB0eXBlb2YgVUlTdGF0ZUFjdGlvbnM7XG4gIHZpc1N0YXRlQWN0aW9uczogdHlwZW9mIFZpc1N0YXRlQWN0aW9ucztcbiAgbWFwU3RhdGVBY3Rpb25zOiB0eXBlb2YgTWFwU3RhdGVBY3Rpb25zO1xufTtcblxuRGF0YXNldExheWVyR3JvdXBGYWN0b3J5LmRlcHMgPSBbRGF0YXNldExheWVyU2VjdGlvbkZhY3RvcnldO1xuXG5mdW5jdGlvbiBEYXRhc2V0TGF5ZXJHcm91cEZhY3RvcnkoXG4gIERhdGFzZXRMYXllclNlY3Rpb246IFJldHVyblR5cGU8dHlwZW9mIERhdGFzZXRMYXllclNlY3Rpb25GYWN0b3J5PlxuKSB7XG4gIGNvbnN0IERhdGFzZXRMYXllckdyb3VwOiBSZWFjdC5GQzxEYXRhc2V0TGF5ZXJHcm91cFByb3BzPiA9IHByb3BzID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBkYXRhc2V0cyxcbiAgICAgIHNob3dEYXRhc2V0VGFibGUsXG4gICAgICBsYXllcnMsXG4gICAgICB1cGRhdGVUYWJsZUNvbG9yLFxuICAgICAgc2hvd0RlbGV0ZURhdGFzZXQsXG4gICAgICByZW1vdmVEYXRhc2V0LFxuICAgICAgbGF5ZXJPcmRlcixcbiAgICAgIGxheWVyQ2xhc3NlcyxcbiAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgdmlzU3RhdGVBY3Rpb25zLFxuICAgICAgbWFwU3RhdGVBY3Rpb25zXG4gICAgfSA9IHByb3BzO1xuXG4gICAgY29uc3QgZGF0YXNldExheWVyU2VjdGlvbkRhdGEgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKGRhdGFzZXRzKS5tYXAoKGRhdGFzZXQ6IEtlcGxlclRhYmxlKSA9PiB7XG4gICAgICAgIC8vIEdsb2JhbCBsYXllciBvcmRlciB3aWxsIGNvbnRhaW4gdGhlIGNvcnJlY3Qgb3JkZXIgb2YgbGF5ZXJzXG4gICAgICAgIC8vIFdlIGp1c3QgZW1wdHkgdGhlIHBvc2l0aW9ucyBpbiBsYXllcnMgYXJyYXkgKGZvciBlYWNoIGRhdGFzZXQpXG4gICAgICAgIC8vIHdoZXJlIHRoZSBsYXllciBkb2Vzbid0IGJlbG9uZyB0byBhIGRhdGFzZXQgYW5kIHNldCBpdCB0byBudWxsXG4gICAgICAgIGNvbnN0IGRhdGFzZXRMYXllcnMgPSBsYXllcnNcbiAgICAgICAgICAubWFwKGxheWVyID0+IChsYXllci5jb25maWcuZGF0YUlkID09PSBkYXRhc2V0LmlkID8gbGF5ZXIgOiBudWxsKSlcbiAgICAgICAgICAuZmlsdGVyKGxheWVyID0+IEJvb2xlYW4obGF5ZXIpKTtcblxuICAgICAgICByZXR1cm4ge2RhdGFzZXQsIGRhdGFzZXRMYXllcnN9O1xuICAgICAgfSk7XG4gICAgfSwgW2RhdGFzZXRzLCBsYXllcnNdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7ZGF0YXNldExheWVyU2VjdGlvbkRhdGEubWFwKGRsc0RhdGEgPT4gKFxuICAgICAgICAgIDxEYXRhc2V0TGF5ZXJTZWN0aW9uXG4gICAgICAgICAgICBrZXk9e2Rsc0RhdGEuZGF0YXNldC5pZH1cbiAgICAgICAgICAgIGRhdGFzZXQ9e2Rsc0RhdGEuZGF0YXNldH1cbiAgICAgICAgICAgIGxheWVycz17ZGxzRGF0YS5kYXRhc2V0TGF5ZXJzIGFzIExheWVyW119XG4gICAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgICBzaG93RGF0YXNldFRhYmxlPXtzaG93RGF0YXNldFRhYmxlfVxuICAgICAgICAgICAgdXBkYXRlVGFibGVDb2xvcj17dXBkYXRlVGFibGVDb2xvcn1cbiAgICAgICAgICAgIHNob3dEZWxldGVEYXRhc2V0PXtzaG93RGVsZXRlRGF0YXNldH1cbiAgICAgICAgICAgIHJlbW92ZURhdGFzZXQ9e3JlbW92ZURhdGFzZXR9XG4gICAgICAgICAgICBsYXllck9yZGVyPXtsYXllck9yZGVyfVxuICAgICAgICAgICAgbGF5ZXJDbGFzc2VzPXtsYXllckNsYXNzZXN9XG4gICAgICAgICAgICB1aVN0YXRlQWN0aW9ucz17dWlTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICB2aXNTdGF0ZUFjdGlvbnM9e3Zpc1N0YXRlQWN0aW9uc31cbiAgICAgICAgICAgIG1hcFN0YXRlQWN0aW9ucz17bWFwU3RhdGVBY3Rpb25zfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gRGF0YXNldExheWVyR3JvdXA7XG59XG5cbmV4cG9ydCBkZWZhdWx0IERhdGFzZXRMYXllckdyb3VwRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxvQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQWlFLFNBQUFHLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBTCx3QkFBQUssQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxN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
|
|
@@ -4,11 +4,12 @@ import LayerListFactory from './layer-list';
|
|
|
4
4
|
import { Layer, LayerClassesType } from '@kepler.gl/layers';
|
|
5
5
|
import { UIStateActions, ActionHandler, VisStateActions, MapStateActions } from '@kepler.gl/actions';
|
|
6
6
|
import { KeplerTable, Datasets } from '@kepler.gl/table';
|
|
7
|
+
import { LayerOrder } from '@kepler.gl/types';
|
|
7
8
|
type DatasetLayerSectionProps = {
|
|
8
9
|
datasets: Datasets;
|
|
9
10
|
dataset: KeplerTable;
|
|
10
11
|
layers: Layer[];
|
|
11
|
-
layerOrder:
|
|
12
|
+
layerOrder: LayerOrder;
|
|
12
13
|
layerClasses: LayerClassesType;
|
|
13
14
|
showDeleteDataset: boolean;
|
|
14
15
|
showDatasetTable: ActionHandler<typeof VisStateActions.showDatasetTable>;
|