kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
438 lines (437 loc) • 33.8 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
var _exportNames = {
KeplerGlLayers: true,
LayerClasses: true,
EditorLayerUtils: true,
Layer: true,
OVERLAY_TYPE_CONST: true,
LAYER_ID_LENGTH: true,
colorMaker: true,
layerColors: true,
pointToPolygonGeo: true,
defaultElevation: true,
defaultLineWidth: true,
defaultRadius: true,
COLUMN_MODE_TABLE: true,
MAX_ZOOM_LEVEL: true,
h3DefaultElevation: true,
ScenegraphLayer: true,
scenegraphVisConfigs: true,
tripDefaultLineWidth: true,
coordHasLength4: true,
isTripGeoJsonField: true,
parseTripGeoJsonTimestamp: true,
getAnimationDomainFromTimestamps: true,
s2DefaultElevation: true,
getS2Center: true,
AggregationLayer: true,
getFilterDataFunc: true,
VectorTileLayer: true,
VectorTileIcon: true,
RasterTileLayer: true,
getNumRasterTilesBeingLoaded: true,
RasterTileIcon: true,
CATEGORICAL_COLORMAP_ID: true,
DATA_SOURCE_COLOR_DEFAULTS: true,
RASTER_COLOR_RESET_PARAMS: true,
PRESET_OPTIONS: true,
RasterLayerResources: true,
getCategoricalColormapDataUrl: true,
WMSLayerIcon: true,
parseGeoJsonRawFeature: true,
Table: true,
getEditorLayer: true,
ScenegraphLayerIcon: true
};
Object.defineProperty(exports, "AggregationLayer", {
enumerable: true,
get: function get() {
return _aggregationLayer["default"];
}
});
Object.defineProperty(exports, "CATEGORICAL_COLORMAP_ID", {
enumerable: true,
get: function get() {
return _config.CATEGORICAL_COLORMAP_ID;
}
});
Object.defineProperty(exports, "COLUMN_MODE_TABLE", {
enumerable: true,
get: function get() {
return _geojsonLayer.COLUMN_MODE_TABLE;
}
});
Object.defineProperty(exports, "DATA_SOURCE_COLOR_DEFAULTS", {
enumerable: true,
get: function get() {
return _config.DATA_SOURCE_COLOR_DEFAULTS;
}
});
exports.KeplerGlLayers = exports.EditorLayerUtils = void 0;
Object.defineProperty(exports, "LAYER_ID_LENGTH", {
enumerable: true,
get: function get() {
return _baseLayer.LAYER_ID_LENGTH;
}
});
Object.defineProperty(exports, "Layer", {
enumerable: true,
get: function get() {
return _baseLayer["default"];
}
});
exports.LayerClasses = void 0;
Object.defineProperty(exports, "MAX_ZOOM_LEVEL", {
enumerable: true,
get: function get() {
return _heatmapLayer.MAX_ZOOM_LEVEL;
}
});
Object.defineProperty(exports, "OVERLAY_TYPE_CONST", {
enumerable: true,
get: function get() {
return _baseLayer.OVERLAY_TYPE_CONST;
}
});
Object.defineProperty(exports, "PRESET_OPTIONS", {
enumerable: true,
get: function get() {
return _config.PRESET_OPTIONS;
}
});
Object.defineProperty(exports, "RASTER_COLOR_RESET_PARAMS", {
enumerable: true,
get: function get() {
return _config.RASTER_COLOR_RESET_PARAMS;
}
});
Object.defineProperty(exports, "RasterLayerResources", {
enumerable: true,
get: function get() {
return _url.RasterLayerResources;
}
});
Object.defineProperty(exports, "RasterTileIcon", {
enumerable: true,
get: function get() {
return _rasterTileIcon["default"];
}
});
Object.defineProperty(exports, "RasterTileLayer", {
enumerable: true,
get: function get() {
return _rasterTileLayer["default"];
}
});
Object.defineProperty(exports, "ScenegraphLayer", {
enumerable: true,
get: function get() {
return _scenegraphLayer["default"];
}
});
Object.defineProperty(exports, "ScenegraphLayerIcon", {
enumerable: true,
get: function get() {
return _scenegraphLayerIcon["default"];
}
});
Object.defineProperty(exports, "Table", {
enumerable: true,
get: function get() {
return _table["default"];
}
});
Object.defineProperty(exports, "VectorTileIcon", {
enumerable: true,
get: function get() {
return _vectorTileIcon["default"];
}
});
Object.defineProperty(exports, "VectorTileLayer", {
enumerable: true,
get: function get() {
return _vectorTileLayer["default"];
}
});
Object.defineProperty(exports, "WMSLayerIcon", {
enumerable: true,
get: function get() {
return _wmsLayerIcon["default"];
}
});
Object.defineProperty(exports, "colorMaker", {
enumerable: true,
get: function get() {
return _baseLayer.colorMaker;
}
});
Object.defineProperty(exports, "coordHasLength4", {
enumerable: true,
get: function get() {
return _tripUtils.coordHasLength4;
}
});
Object.defineProperty(exports, "defaultElevation", {
enumerable: true,
get: function get() {
return _geojsonLayer.defaultElevation;
}
});
Object.defineProperty(exports, "defaultLineWidth", {
enumerable: true,
get: function get() {
return _geojsonLayer.defaultLineWidth;
}
});
Object.defineProperty(exports, "defaultRadius", {
enumerable: true,
get: function get() {
return _geojsonLayer.defaultRadius;
}
});
Object.defineProperty(exports, "getAnimationDomainFromTimestamps", {
enumerable: true,
get: function get() {
return _tripUtils.getAnimationDomainFromTimestamps;
}
});
Object.defineProperty(exports, "getCategoricalColormapDataUrl", {
enumerable: true,
get: function get() {
return _image.getCategoricalColormapDataUrl;
}
});
Object.defineProperty(exports, "getEditorLayer", {
enumerable: true,
get: function get() {
return _editorLayer.getEditorLayer;
}
});
Object.defineProperty(exports, "getFilterDataFunc", {
enumerable: true,
get: function get() {
return _aggregationLayer.getFilterDataFunc;
}
});
Object.defineProperty(exports, "getNumRasterTilesBeingLoaded", {
enumerable: true,
get: function get() {
return _rasterTileLayer.getNumRasterTilesBeingLoaded;
}
});
Object.defineProperty(exports, "getS2Center", {
enumerable: true,
get: function get() {
return _s2Utils.getS2Center;
}
});
Object.defineProperty(exports, "h3DefaultElevation", {
enumerable: true,
get: function get() {
return _h3HexagonLayer.defaultElevation;
}
});
Object.defineProperty(exports, "isTripGeoJsonField", {
enumerable: true,
get: function get() {
return _tripUtils.isTripGeoJsonField;
}
});
Object.defineProperty(exports, "layerColors", {
enumerable: true,
get: function get() {
return _baseLayer.layerColors;
}
});
Object.defineProperty(exports, "parseGeoJsonRawFeature", {
enumerable: true,
get: function get() {
return _geojsonUtils.parseGeoJsonRawFeature;
}
});
Object.defineProperty(exports, "parseTripGeoJsonTimestamp", {
enumerable: true,
get: function get() {
return _tripUtils.parseTripGeoJsonTimestamp;
}
});
Object.defineProperty(exports, "pointToPolygonGeo", {
enumerable: true,
get: function get() {
return _gridUtils.pointToPolygonGeo;
}
});
Object.defineProperty(exports, "s2DefaultElevation", {
enumerable: true,
get: function get() {
return _s2GeometryLayer.defaultElevation;
}
});
Object.defineProperty(exports, "scenegraphVisConfigs", {
enumerable: true,
get: function get() {
return _scenegraphLayer.scenegraphVisConfigs;
}
});
Object.defineProperty(exports, "tripDefaultLineWidth", {
enumerable: true,
get: function get() {
return _tripLayer.defaultLineWidth;
}
});
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _baseLayer = _interopRequireWildcard(require("./base-layer"));
Object.keys(_baseLayer).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _baseLayer[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _baseLayer[key];
}
});
});
var _pointLayer = _interopRequireDefault(require("./point-layer/point-layer"));
var _arcLayer = _interopRequireDefault(require("./arc-layer/arc-layer"));
var _lineLayer = _interopRequireDefault(require("./line-layer/line-layer"));
var _gridLayer = _interopRequireDefault(require("./grid-layer/grid-layer"));
var _gridUtils = require("./grid-layer/grid-utils");
var _hexagonLayer = _interopRequireDefault(require("./hexagon-layer/hexagon-layer"));
var _geojsonLayer = _interopRequireWildcard(require("./geojson-layer/geojson-layer"));
var _clusterLayer = _interopRequireDefault(require("./cluster-layer/cluster-layer"));
var _iconLayer = _interopRequireDefault(require("./icon-layer/icon-layer"));
var _heatmapLayer = _interopRequireWildcard(require("./heatmap-layer/heatmap-layer"));
var _h3HexagonLayer = _interopRequireWildcard(require("./h3-hexagon-layer/h3-hexagon-layer"));
var _scenegraphLayer = _interopRequireWildcard(require("./scenegraph-layer/scenegraph-layer"));
var _tripLayer = _interopRequireWildcard(require("./trip-layer/trip-layer"));
var _tripUtils = require("./trip-layer/trip-utils");
var _s2GeometryLayer = _interopRequireWildcard(require("./s2-geometry-layer/s2-geometry-layer"));
var _s2Utils = require("./s2-geometry-layer/s2-utils");
var _aggregationLayer = _interopRequireWildcard(require("./aggregation-layer"));
var _vectorTileLayer = _interopRequireDefault(require("./vector-tile/vector-tile-layer"));
var _vectorTileIcon = _interopRequireDefault(require("./vector-tile/vector-tile-icon"));
var _rasterTileLayer = _interopRequireWildcard(require("./raster-tile/raster-tile-layer"));
var _rasterTileIcon = _interopRequireDefault(require("./raster-tile/raster-tile-icon"));
var _config = require("./raster-tile/config");
var _url = require("./raster-tile/url");
var _image = require("./raster-tile/image");
var _types = require("./raster-tile/types");
Object.keys(_types).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _types[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _types[key];
}
});
});
var _rasterTileUtils = require("./raster-tile/raster-tile-utils");
Object.keys(_rasterTileUtils).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _rasterTileUtils[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _rasterTileUtils[key];
}
});
});
var _wmsLayerIcon = _interopRequireDefault(require("./wms-layer/wms-layer-icon"));
var _constants = require("@kepler.gl/constants");
var _geojsonUtils = require("./geojson-layer/geojson-utils");
var _mapboxUtils = require("./mapbox-utils");
Object.keys(_mapboxUtils).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _mapboxUtils[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _mapboxUtils[key];
}
});
});
var _h3HexagonLayer2 = require("./h3-hexagon-layer");
Object.keys(_h3HexagonLayer2).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _h3HexagonLayer2[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _h3HexagonLayer2[key];
}
});
});
var _table = _interopRequireDefault(require("./table"));
var _editorLayer = require("./editor-layer/editor-layer");
var _scenegraphLayerIcon = _interopRequireDefault(require("./scenegraph-layer/scenegraph-layer-icon"));
var _editorLayerUtils = require("./editor-layer/editor-layer-utils");
var _wmsLayer = _interopRequireDefault(require("./wms-layer/wms-layer"));
var _layerUpdate = require("./layer-update");
Object.keys(_layerUpdate).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _layerUpdate[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _layerUpdate[key];
}
});
});
var _layerUtils = require("./layer-utils");
Object.keys(_layerUtils).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _layerUtils[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _layerUtils[key];
}
});
});
var _LayerClasses; // SPDX-License-Identifier: MIT
// Copyright contributors to the kepler.gl project
// base layer
// eslint-disable-next-line prettier/prettier
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
// individual layers
var KeplerGlLayers = exports.KeplerGlLayers = {
PointLayer: _pointLayer["default"],
ArcLayer: _arcLayer["default"],
LineLayer: _lineLayer["default"],
GridLayer: _gridLayer["default"],
HexagonLayer: _hexagonLayer["default"],
GeojsonLayer: _geojsonLayer["default"],
ClusterLayer: _clusterLayer["default"],
IconLayer: _iconLayer["default"],
HeatmapLayer: _heatmapLayer["default"],
H3Layer: _h3HexagonLayer["default"],
ScenegraphLayer: _scenegraphLayer["default"],
TripLayer: _tripLayer["default"],
S2GeometryLayer: _s2GeometryLayer["default"],
VectorTileLayer: _vectorTileLayer["default"],
RasterTileLayer: _rasterTileLayer["default"],
WMSLayer: _wmsLayer["default"]
};
var LayerClasses = exports.LayerClasses = (_LayerClasses = {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_LayerClasses, _constants.LAYER_TYPES.point, _pointLayer["default"]), _constants.LAYER_TYPES.arc, _arcLayer["default"]), _constants.LAYER_TYPES.line, _lineLayer["default"]), _constants.LAYER_TYPES.grid, _gridLayer["default"]), _constants.LAYER_TYPES.hexagon, _hexagonLayer["default"]), _constants.LAYER_TYPES.geojson, _geojsonLayer["default"]), _constants.LAYER_TYPES.cluster, _clusterLayer["default"]), _constants.LAYER_TYPES.icon, _iconLayer["default"]), _constants.LAYER_TYPES.heatmap, _heatmapLayer["default"]), _constants.LAYER_TYPES.hexagonId, _h3HexagonLayer["default"]), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_LayerClasses, _constants.LAYER_TYPES['3D'], _scenegraphLayer["default"]), _constants.LAYER_TYPES.trip, _tripLayer["default"]), _constants.LAYER_TYPES.s2, _s2GeometryLayer["default"]), _constants.LAYER_TYPES['vectorTile'], _vectorTileLayer["default"]), _constants.LAYER_TYPES['rasterTile'], _rasterTileLayer["default"]), _constants.LAYER_TYPES.wms, _wmsLayer["default"]));
var EditorLayerUtils = exports.EditorLayerUtils = {
isDrawingActive: _editorLayerUtils.isDrawingActive,
onClick: _editorLayerUtils.onClick,
onHover: _editorLayerUtils.onHover,
getTooltip: _editorLayerUtils.getTooltip,
getCursor: _editorLayerUtils.getCursor
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYmFzZUxheWVyIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJfZXhwb3J0TmFtZXMiLCJleHBvcnRzIiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiX3BvaW50TGF5ZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2FyY0xheWVyIiwiX2xpbmVMYXllciIsIl9ncmlkTGF5ZXIiLCJfZ3JpZFV0aWxzIiwiX2hleGFnb25MYXllciIsIl9nZW9qc29uTGF5ZXIiLCJfY2x1c3RlckxheWVyIiwiX2ljb25MYXllciIsIl9oZWF0bWFwTGF5ZXIiLCJfaDNIZXhhZ29uTGF5ZXIiLCJfc2NlbmVncmFwaExheWVyIiwiX3RyaXBMYXllciIsIl90cmlwVXRpbHMiLCJfczJHZW9tZXRyeUxheWVyIiwiX3MyVXRpbHMiLCJfYWdncmVnYXRpb25MYXllciIsIl92ZWN0b3JUaWxlTGF5ZXIiLCJfdmVjdG9yVGlsZUljb24iLCJfcmFzdGVyVGlsZUxheWVyIiwiX3Jhc3RlclRpbGVJY29uIiwiX2NvbmZpZyIsIl91cmwiLCJfaW1hZ2UiLCJfdHlwZXMiLCJfcmFzdGVyVGlsZVV0aWxzIiwiX3dtc0xheWVySWNvbiIsIl9jb25zdGFudHMiLCJfZ2VvanNvblV0aWxzIiwiX21hcGJveFV0aWxzIiwiX2gzSGV4YWdvbkxheWVyMiIsIl90YWJsZSIsIl9lZGl0b3JMYXllciIsIl9zY2VuZWdyYXBoTGF5ZXJJY29uIiwiX2VkaXRvckxheWVyVXRpbHMiLCJfd21zTGF5ZXIiLCJfbGF5ZXJVcGRhdGUiLCJfbGF5ZXJVdGlscyIsIl9MYXllckNsYXNzZXMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJuIiwiX19wcm90b19fIiwiYSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJpIiwic2V0IiwiS2VwbGVyR2xMYXllcnMiLCJQb2ludExheWVyIiwiQXJjTGF5ZXIiLCJMaW5lTGF5ZXIiLCJHcmlkTGF5ZXIiLCJIZXhhZ29uTGF5ZXIiLCJHZW9qc29uTGF5ZXIiLCJDbHVzdGVyTGF5ZXIiLCJJY29uTGF5ZXIiLCJIZWF0bWFwTGF5ZXIiLCJIM0xheWVyIiwiU2NlbmVncmFwaExheWVyIiwiVHJpcExheWVyIiwiUzJHZW9tZXRyeUxheWVyIiwiVmVjdG9yVGlsZUxheWVyIiwiUmFzdGVyVGlsZUxheWVyIiwiV01TTGF5ZXIiLCJMYXllckNsYXNzZXMiLCJfZGVmaW5lUHJvcGVydHkyIiwiTEFZRVJfVFlQRVMiLCJwb2ludCIsImFyYyIsImxpbmUiLCJncmlkIiwiaGV4YWdvbiIsImdlb2pzb24iLCJjbHVzdGVyIiwiaWNvbiIsImhlYXRtYXAiLCJoZXhhZ29uSWQiLCJ0cmlwIiwiczIiLCJ3bXMiLCJFZGl0b3JMYXllclV0aWxzIiwiaXNEcmF3aW5nQWN0aXZlIiwib25DbGljayIsIm9uSG92ZXIiLCJnZXRUb29sdGlwIiwiZ2V0Q3Vyc29yIl0sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMgTGF5ZXIsXG4gIE9WRVJMQVlfVFlQRV9DT05TVCxcbiAgTEFZRVJfSURfTEVOR1RILFxuICBjb2xvck1ha2VyLFxuICBsYXllckNvbG9yc1xufSBmcm9tICcuL2Jhc2UtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIFBvaW50TGF5ZXJ9IGZyb20gJy4vcG9pbnQtbGF5ZXIvcG9pbnQtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEFyY0xheWVyfSBmcm9tICcuL2FyYy1sYXllci9hcmMtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIExpbmVMYXllcn0gZnJvbSAnLi9saW5lLWxheWVyL2xpbmUtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEdyaWRMYXllcn0gZnJvbSAnLi9ncmlkLWxheWVyL2dyaWQtbGF5ZXInO1xuZXhwb3J0IHtwb2ludFRvUG9seWdvbkdlb30gZnJvbSAnLi9ncmlkLWxheWVyL2dyaWQtdXRpbHMnO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEhleGFnb25MYXllcn0gZnJvbSAnLi9oZXhhZ29uLWxheWVyL2hleGFnb24tbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEdlb2pzb25MYXllcn0gZnJvbSAnLi9nZW9qc29uLWxheWVyL2dlb2pzb24tbGF5ZXInO1xuZXhwb3J0IHtcbiAgZGVmYXVsdEVsZXZhdGlvbixcbiAgZGVmYXVsdExpbmVXaWR0aCxcbiAgZGVmYXVsdFJhZGl1cyxcbiAgQ09MVU1OX01PREVfVEFCTEVcbn0gZnJvbSAnLi9nZW9qc29uLWxheWVyL2dlb2pzb24tbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIENsdXN0ZXJMYXllcn0gZnJvbSAnLi9jbHVzdGVyLWxheWVyL2NsdXN0ZXItbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEljb25MYXllcn0gZnJvbSAnLi9pY29uLWxheWVyL2ljb24tbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEhlYXRtYXBMYXllcn0gZnJvbSAnLi9oZWF0bWFwLWxheWVyL2hlYXRtYXAtbGF5ZXInO1xuZXhwb3J0IHtNQVhfWk9PTV9MRVZFTH0gZnJvbSAnLi9oZWF0bWFwLWxheWVyL2hlYXRtYXAtbGF5ZXInO1xuaW1wb3J0IHtkZWZhdWx0IGFzIEgzTGF5ZXJ9IGZyb20gJy4vaDMtaGV4YWdvbi1sYXllci9oMy1oZXhhZ29uLWxheWVyJztcbmV4cG9ydCB7ZGVmYXVsdEVsZXZhdGlvbiBhcyBoM0RlZmF1bHRFbGV2YXRpb259IGZyb20gJy4vaDMtaGV4YWdvbi1sYXllci9oMy1oZXhhZ29uLWxheWVyJztcbmltcG9ydCB7ZGVmYXVsdCBhcyBTY2VuZWdyYXBoTGF5ZXJ9IGZyb20gJy4vc2NlbmVncmFwaC1sYXllci9zY2VuZWdyYXBoLWxheWVyJztcbmltcG9ydCB7ZGVmYXVsdCBhcyBUcmlwTGF5ZXJ9IGZyb20gJy4vdHJpcC1sYXllci90cmlwLWxheWVyJztcbmV4cG9ydCB7ZGVmYXVsdExpbmVXaWR0aCBhcyB0cmlwRGVmYXVsdExpbmVXaWR0aH0gZnJvbSAnLi90cmlwLWxheWVyL3RyaXAtbGF5ZXInO1xuZXhwb3J0IHtcbiAgY29vcmRIYXNMZW5ndGg0LFxuICBpc1RyaXBHZW9Kc29uRmllbGQsXG4gIHBhcnNlVHJpcEdlb0pzb25UaW1lc3RhbXAsXG4gIGdldEFuaW1hdGlvbkRvbWFpbkZyb21UaW1lc3RhbXBzXG59IGZyb20gJy4vdHJpcC1sYXllci90cmlwLXV0aWxzJztcbmltcG9ydCB7ZGVmYXVsdCBhcyBTMkdlb21ldHJ5TGF5ZXJ9IGZyb20gJy4vczItZ2VvbWV0cnktbGF5ZXIvczItZ2VvbWV0cnktbGF5ZXInO1xuZXhwb3J0IHtkZWZhdWx0RWxldmF0aW9uIGFzIHMyRGVmYXVsdEVsZXZhdGlvbn0gZnJvbSAnLi9zMi1nZW9tZXRyeS1sYXllci9zMi1nZW9tZXRyeS1sYXllcic7XG5leHBvcnQge2dldFMyQ2VudGVyfSBmcm9tICcuL3MyLWdlb21ldHJ5LWxheWVyL3MyLXV0aWxzJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBBZ2dyZWdhdGlvbkxheWVyfSBmcm9tICcuL2FnZ3JlZ2F0aW9uLWxheWVyJztcbmltcG9ydCB7ZGVmYXVsdCBhcyBWZWN0b3JUaWxlTGF5ZXJ9IGZyb20gJy4vdmVjdG9yLXRpbGUvdmVjdG9yLXRpbGUtbGF5ZXInO1xuXG5leHBvcnQge2RlZmF1bHQgYXMgVmVjdG9yVGlsZUljb259IGZyb20gJy4vdmVjdG9yLXRpbGUvdmVjdG9yLXRpbGUtaWNvbic7XG5leHBvcnQge2RlZmF1bHQgYXMgVmVjdG9yVGlsZUxheWVyfSBmcm9tICcuL3ZlY3Rvci10aWxlL3ZlY3Rvci10aWxlLWxheWVyJztcblxuaW1wb3J0IHtkZWZhdWx0IGFzIFJhc3RlclRpbGVMYXllcn0gZnJvbSAnLi9yYXN0ZXItdGlsZS9yYXN0ZXItdGlsZS1sYXllcic7XG5leHBvcnQge2RlZmF1bHQgYXMgUmFzdGVyVGlsZUljb259IGZyb20gJy4vcmFzdGVyLXRpbGUvcmFzdGVyLXRpbGUtaWNvbic7XG5leHBvcnQge1xuICBkZWZhdWx0IGFzIFJhc3RlclRpbGVMYXllcixcbiAgZ2V0TnVtUmFzdGVyVGlsZXNCZWluZ0xvYWRlZFxufSBmcm9tICcuL3Jhc3Rlci10aWxlL3Jhc3Rlci10aWxlLWxheWVyJztcbmV4cG9ydCB7XG4gIENBVEVHT1JJQ0FMX0NPTE9STUFQX0lELFxuICBEQVRBX1NPVVJDRV9DT0xPUl9ERUZBVUxUUyxcbiAgUkFTVEVSX0NPTE9SX1JFU0VUX1BBUkFNUyxcbiAgUFJFU0VUX09QVElPTlNcbn0gZnJvbSAnLi9yYXN0ZXItdGlsZS9jb25maWcnO1xuZXhwb3J0IHtSYXN0ZXJMYXllclJlc291cmNlc30gZnJvbSAnLi9yYXN0ZXItdGlsZS91cmwnO1xuZXhwb3J0IHtnZXRDYXRlZ29yaWNhbENvbG9ybWFwRGF0YVVybH0gZnJvbSAnLi9yYXN0ZXItdGlsZS9pbWFnZSc7XG5leHBvcnQgKiBmcm9tICcuL3Jhc3Rlci10aWxlL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vcmFzdGVyLXRpbGUvcmFzdGVyLXRpbGUtdXRpbHMnO1xuXG5leHBvcnQge2RlZmF1bHQgYXMgV01TTGF5ZXJJY29ufSBmcm9tICcuL3dtcy1sYXllci93bXMtbGF5ZXItaWNvbic7XG5cbmltcG9ydCB7TEFZRVJfVFlQRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmV4cG9ydCB7cGFyc2VHZW9Kc29uUmF3RmVhdHVyZX0gZnJvbSAnLi9nZW9qc29uLWxheWVyL2dlb2pzb24tdXRpbHMnO1xuLy8gYmFzZSBsYXllclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZXR0aWVyL3ByZXR0aWVyXG5leHBvcnQgdHlwZSB7XG4gIExheWVyQmFzZUNvbmZpZyxcbiAgVmlzdWFsQ2hhbm5lbERvbWFpbixcbiAgVmlzdWFsQ2hhbm5lbCxcbiAgVmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uXG59IGZyb20gJy4vYmFzZS1sYXllcic7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtbGF5ZXInO1xuXG4vLyBpbmRpdmlkdWFsIGxheWVyc1xuZXhwb3J0IGNvbnN0IEtlcGxlckdsTGF5ZXJzID0ge1xuICBQb2ludExheWVyLFxuICBBcmNMYXllcixcbiAgTGluZUxheWVyLFxuICBHcmlkTGF5ZXIsXG4gIEhleGFnb25MYXllcixcbiAgR2VvanNvbkxheWVyLFxuICBDbHVzdGVyTGF5ZXIsXG4gIEljb25MYXllcixcbiAgSGVhdG1hcExheWVyLFxuICBIM0xheWVyLFxuICBTY2VuZWdyYXBoTGF5ZXIsXG4gIFRyaXBMYXllcixcbiAgUzJHZW9tZXRyeUxheWVyLFxuICBWZWN0b3JUaWxlTGF5ZXIsXG4gIFJhc3RlclRpbGVMYXllcixcbiAgV01TTGF5ZXJcbn07XG5cbmV4cG9ydCB0eXBlIExheWVyQ2xhc3Nlc1R5cGUgPSB0eXBlb2YgTGF5ZXJDbGFzc2VzO1xuZXhwb3J0IGNvbnN0IExheWVyQ2xhc3NlcyA9IHtcbiAgW0xBWUVSX1RZUEVTLnBvaW50XTogUG9pbnRMYXllcixcbiAgW0xBWUVSX1RZUEVTLmFyY106IEFyY0xheWVyLFxuICBbTEFZRVJfVFlQRVMubGluZV06IExpbmVMYXllcixcbiAgW0xBWUVSX1RZUEVTLmdyaWRdOiBHcmlkTGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy5oZXhhZ29uXTogSGV4YWdvbkxheWVyLFxuICBbTEFZRVJfVFlQRVMuZ2VvanNvbl06IEdlb2pzb25MYXllcixcbiAgW0xBWUVSX1RZUEVTLmNsdXN0ZXJdOiBDbHVzdGVyTGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy5pY29uXTogSWNvbkxheWVyLFxuICBbTEFZRVJfVFlQRVMuaGVhdG1hcF06IEhlYXRtYXBMYXllcixcbiAgW0xBWUVSX1RZUEVTLmhleGFnb25JZF06IEgzTGF5ZXIsXG4gIFtMQVlFUl9UWVBFU1snM0QnXV06IFNjZW5lZ3JhcGhMYXllcixcbiAgW0xBWUVSX1RZUEVTLnRyaXBdOiBUcmlwTGF5ZXIsXG4gIFtMQVlFUl9UWVBFUy5zMl06IFMyR2VvbWV0cnlMYXllcixcbiAgW0xBWUVSX1RZUEVTWyd2ZWN0b3JUaWxlJ11dOiBWZWN0b3JUaWxlTGF5ZXIsXG4gIFtMQVlFUl9UWVBFU1sncmFzdGVyVGlsZSddXTogUmFzdGVyVGlsZUxheWVyLFxuICBbTEFZRVJfVFlQRVMud21zXTogV01TTGF5ZXJcbn07XG5cbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94LXV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vaDMtaGV4YWdvbi1sYXllcic7XG5leHBvcnQge2RlZmF1bHQgYXMgVGFibGV9IGZyb20gJy4vdGFibGUnO1xuXG5leHBvcnQge2dldEVkaXRvckxheWVyfSBmcm9tICcuL2VkaXRvci1sYXllci9lZGl0b3ItbGF5ZXInO1xuXG5leHBvcnQge1xuICBkZWZhdWx0IGFzIFNjZW5lZ3JhcGhMYXllcixcbiAgc2NlbmVncmFwaFZpc0NvbmZpZ3Ncbn0gZnJvbSAnLi9zY2VuZWdyYXBoLWxheWVyL3NjZW5lZ3JhcGgtbGF5ZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIFNjZW5lZ3JhcGhMYXllckljb259IGZyb20gJy4vc2NlbmVncmFwaC1sYXllci9zY2VuZWdyYXBoLWxheWVyLWljb24nO1xuXG5pbXBvcnQge1xuICBpc0RyYXdpbmdBY3RpdmUsXG4gIG9uQ2xpY2ssXG4gIG9uSG92ZXIsXG4gIGdldFRvb2x0aXAsXG4gIGdldEN1cnNvclxufSBmcm9tICcuL2VkaXRvci1sYXllci9lZGl0b3ItbGF5ZXItdXRpbHMnO1xuaW1wb3J0IFdNU0xheWVyIGZyb20gJy4vd21zLWxheWVyL3dtcy1sYXllcic7XG5leHBvcnQgY29uc3QgRWRpdG9yTGF5ZXJVdGlscyA9IHtcbiAgaXNEcmF3aW5nQWN0aXZlLFxuICBvbkNsaWNrLFxuICBvbkhvdmVyLFxuICBnZXRUb29sdGlwLFxuICBnZXRDdXJzb3Jcbn07XG5cbmV4cG9ydCB7Z2V0RmlsdGVyRGF0YUZ1bmN9IGZyb20gJy4vYWdncmVnYXRpb24tbGF5ZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2xheWVyLXVwZGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xheWVyLXV0aWxzJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsVUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBeUVBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosVUFBQSxFQUFBSyxPQUFBLFdBQUFDLEdBQUE7RUFBQSxJQUFBQSxHQUFBLGtCQUFBQSxHQUFBO0VBQUEsSUFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBQyxZQUFBLEVBQUFKLEdBQUE7RUFBQSxJQUFBQSxHQUFBLElBQUFLLE9BQUEsSUFBQUEsT0FBQSxDQUFBTCxHQUFBLE1BQUFOLFVBQUEsQ0FBQU0sR0FBQTtFQUFBSCxNQUFBLENBQUFTLGNBQUEsQ0FBQUQsT0FBQSxFQUFBTCxHQUFBO0lBQUFPLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxJQUFBO01BQUEsT0FBQWQsVUFBQSxDQUFBTSxHQUFBO0lBQUE7RUFBQTtBQUFBO0FBbEVBLElBQUFTLFdBQUEsR0FBQUMs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
;