UNPKG

kepler.gl

Version:

kepler.gl is a webgl based application to visualize large scale location data in the browser

93 lines (90 loc) 16.7 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.getApplicationConfig = void 0; exports.initApplicationConfig = initApplicationConfig; var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _constants = require("@kepler.gl/constants"); 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" != (0, _typeof2["default"])(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; } // SPDX-License-Identifier: MIT // Copyright contributors to the kepler.gl project /** * Detect if running with webpack build tool */ function isWebpackBuild() { // @ts-ignore - __webpack_require__ is injected by webpack at runtime return typeof __webpack_require__ !== 'undefined'; } /** * A mechanism to override default Kepler values/settings so that we * without having to make application-specific changes to the kepler repo. */ var DEFAULT_APPLICATION_CONFIG = { defaultHtmlName: 'kepler.gl.html', defaultImageName: 'kepler.gl.png', defaultJsonName: 'kepler.gl.json', defaultDataName: 'kepler.gl', defaultExportJsonSettings: { hasData: true }, baseMapLibraryConfig: { maplibre: { getMapLib: function getMapLib() { return Promise.resolve().then(function () { return _interopRequireWildcard(require('maplibre-gl')); }); }, mapLibCssClass: 'maplibregl', mapLibAttributionCssClass: 'maplibre-attribution-container', mapLibName: 'MapLibre', mapLibUrl: 'https://www.maplibre.org/' }, mapbox: { getMapLib: function getMapLib() { return Promise.resolve().then(function () { return _interopRequireWildcard(require('mapbox-gl')); }); }, mapLibCssClass: 'mapboxgl', mapLibAttributionCssClass: 'mapbox-attribution-container', mapLibName: 'Mapbox', mapLibUrl: 'https://www.mapbox.com/' } }, cdnUrl: _constants.KEPLER_UNFOLDED_BUCKET, plugins: [], // The default table class is KeplerTable. // TODO include KeplerTable here when the circular dependency with @kepler.gl/table and @kepler.gl/utils are resolved. table: null, database: null, useArrowProgressiveLoading: true, showReleaseBanner: true, useOnFilteredItemsChange: false, // Raster Tile layer config enableRasterTileLayer: true, rasterServerUseLatestTitiler: true, rasterServerShowServerInput: true, rasterServerUrls: [], // TODO: provide a default free server or leave blank rasterServerSupportsElevation: true, rasterServerMaxRetries: 1, rasterServerRetryDelay: 10000, rasterServerServerErrorsToRetry: [503], rasterServerMaxPerServerRequests: 0, // WMS layer config enableWMSLayer: true, // Image export config // Default to true for webpack builds, false for other build tools (e.g., Vite) escapeXhtmlForWebpack: isWebpackBuild() }; var applicationConfig = DEFAULT_APPLICATION_CONFIG; var getApplicationConfig = exports.getApplicationConfig = function getApplicationConfig() { return applicationConfig; }; function initApplicationConfig() { var appConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; Object.assign(applicationConfig, appConfig); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsImlzV2VicGFja0J1aWxkIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIkRFRkFVTFRfQVBQTElDQVRJT05fQ09ORklHIiwiZGVmYXVsdEh0bWxOYW1lIiwiZGVmYXVsdEltYWdlTmFtZSIsImRlZmF1bHRKc29uTmFtZSIsImRlZmF1bHREYXRhTmFtZSIsImRlZmF1bHRFeHBvcnRKc29uU2V0dGluZ3MiLCJoYXNEYXRhIiwiYmFzZU1hcExpYnJhcnlDb25maWciLCJtYXBsaWJyZSIsImdldE1hcExpYiIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIm1hcExpYkNzc0NsYXNzIiwibWFwTGliQXR0cmlidXRpb25Dc3NDbGFzcyIsIm1hcExpYk5hbWUiLCJtYXBMaWJVcmwiLCJtYXBib3giLCJjZG5VcmwiLCJLRVBMRVJfVU5GT0xERURfQlVDS0VUIiwicGx1Z2lucyIsInRhYmxlIiwiZGF0YWJhc2UiLCJ1c2VBcnJvd1Byb2dyZXNzaXZlTG9hZGluZyIsInNob3dSZWxlYXNlQmFubmVyIiwidXNlT25GaWx0ZXJlZEl0ZW1zQ2hhbmdlIiwiZW5hYmxlUmFzdGVyVGlsZUxheWVyIiwicmFzdGVyU2VydmVyVXNlTGF0ZXN0VGl0aWxlciIsInJhc3RlclNlcnZlclNob3dTZXJ2ZXJJbnB1dCIsInJhc3RlclNlcnZlclVybHMiLCJyYXN0ZXJTZXJ2ZXJTdXBwb3J0c0VsZXZhdGlvbiIsInJhc3RlclNlcnZlck1heFJldHJpZXMiLCJyYXN0ZXJTZXJ2ZXJSZXRyeURlbGF5IiwicmFzdGVyU2VydmVyU2VydmVyRXJyb3JzVG9SZXRyeSIsInJhc3RlclNlcnZlck1heFBlclNlcnZlclJlcXVlc3RzIiwiZW5hYmxlV01TTGF5ZXIiLCJlc2NhcGVYaHRtbEZvcldlYnBhY2siLCJhcHBsaWNhdGlvbkNvbmZpZyIsImdldEFwcGxpY2F0aW9uQ29uZmlnIiwiZXhwb3J0cyIsImluaXRBcHBsaWNhdGlvbkNvbmZpZyIsImFwcENvbmZpZyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImFzc2lnbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBsaWNhdGlvbi1jb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtNYXBMaWIsIE1hcFJlZn0gZnJvbSAncmVhY3QtbWFwLWdsJztcblxuaW1wb3J0IHtLRVBMRVJfVU5GT0xERURfQlVDS0VUfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7QmFzZU1hcExpYnJhcnlUeXBlfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCB0eXBlIHtEYXRhYmFzZUFkYXB0ZXJ9IGZyb20gJy4vYXBwbGljYXRpb24tY29uZmlnLXR5cGVzJztcblxuLyoqXG4gKiBEZXRlY3QgaWYgcnVubmluZyB3aXRoIHdlYnBhY2sgYnVpbGQgdG9vbFxuICovXG5mdW5jdGlvbiBpc1dlYnBhY2tCdWlsZCgpOiBib29sZWFuIHtcbiAgLy8gQHRzLWlnbm9yZSAtIF9fd2VicGFja19yZXF1aXJlX18gaXMgaW5qZWN0ZWQgYnkgd2VicGFjayBhdCBydW50aW1lXG4gIHJldHVybiB0eXBlb2YgX193ZWJwYWNrX3JlcXVpcmVfXyAhPT0gJ3VuZGVmaW5lZCc7XG59XG5cbmV4cG9ydCB0eXBlIE1hcExpYkluc3RhbmNlID0gTWFwTGliPGFueT47XG5leHBvcnQgdHlwZSBHZXRNYXBSZWYgPSBSZXR1cm5UeXBlPE1hcFJlZlsnZ2V0TWFwJ10+O1xuXG5leHBvcnQgdHlwZSBCYXNlTWFwTGlicmFyeUNvbmZpZyA9IHtcbiAgZ2V0TWFwTGliOiAoKSA9PiBQcm9taXNlPE1hcExpYkluc3RhbmNlPjtcbiAgbWFwTGliQXR0cmlidXRpb25Dc3NDbGFzczogc3RyaW5nO1xuICBtYXBMaWJDc3NDbGFzczogc3RyaW5nO1xuICBtYXBMaWJOYW1lOiBzdHJpbmc7XG4gIG1hcExpYlVybDogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBBIG1lY2hhbmlzbSB0byBvdmVycmlkZSBkZWZhdWx0IEtlcGxlciB2YWx1ZXMvc2V0dGluZ3Mgc28gdGhhdCB3ZVxuICogd2l0aG91dCBoYXZpbmcgdG8gbWFrZSBhcHBsaWNhdGlvbi1zcGVjaWZpYyBjaGFuZ2VzIHRvIHRoZSBrZXBsZXIgcmVwby5cbiAqL1xuZXhwb3J0IHR5cGUgS2VwbGVyQXBwbGljYXRpb25Db25maWcgPSB7XG4gIC8qKiBEZWZhdWx0IG5hbWUgb2YgZXhwb3J0IEhUTUwgZmlsZSwgY2FuIGJlIG92ZXJyaWRkZW4gYnkgdXNlciAqL1xuICBkZWZhdWx0SHRtbE5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRJbWFnZU5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRKc29uTmFtZT86IHN0cmluZztcbiAgZGVmYXVsdERhdGFOYW1lPzogc3RyaW5nO1xuICBkZWZhdWx0RXhwb3J0SnNvblNldHRpbmdzPzoge1xuICAgIGhhc0RhdGE/OiBib29sZWFuO1xuICB9O1xuICBiYXNlTWFwTGlicmFyeUNvbmZpZz86IFJlY29yZDxCYXNlTWFwTGlicmFyeVR5cGUsIEJhc2VNYXBMaWJyYXJ5Q29uZmlnPjtcbiAgcGx1Z2lucz86IGFueVtdO1xuICAvLyBLZXBsZXJUYWJsZSBhbHRlcm5hdGl2ZVxuICAvLyBUT0RPIGltcHJvdmUgdHlwaW5nIGJ5IGV4cG9ydGluZyBLZXBsZXJUYWJsZSBpbnRlcmZhY2UgdG8gQGtlcGxlci5nbC90eXBlc1xuICB0YWJsZT86IGFueTtcbiAgZGF0YWJhc2U/OiBEYXRhYmFzZUFkYXB0ZXIgfCBudWxsO1xuXG4gIC8vIERpc2FibGUgcHJvZ3Jlc3NpdmUgbG9hZGluZyBmb3IgYXJyb3cgZmlsZXNcbiAgdXNlQXJyb3dQcm9ncmVzc2l2ZUxvYWRpbmc/OiBib29sZWFuO1xuICAvLyBTaG93IGJ1aWx0LWluIGJhbm5lciBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBLZXBsZXIuZ2xcbiAgc2hvd1JlbGVhc2VCYW5uZXI/OiBib29sZWFuO1xuICAvLyBVc2UgdGhlIG9uRmlsdGVyZWRJdGVtc0NoYW5nZSBjYWxsYmFjayBmb3IgRGF0YUZpbHRlckV4dGVuc2lvbi5cbiAgLy8gRW5hYmxpbmcgdGhpcyBvcHRpb24gbWF5IGNhdXNlIHBlcmZvcm1hbmNlIGlzc3VlcyB3aGVuIGRlYWxpbmcgd2l0aCBhIGxhcmdlIG51bWJlciBvZiBsYXllcnMgb3Igc3VibGF5ZXJzLFxuICAvLyBlc3BlY2lhbGx5IGlmIGxhcmdlIEFycm93IGZpbGVzIGFyZSBzcGxpdCBpbnRvIHJlbGF0aXZlbHkgc21hbGwgYmF0Y2hlcyAoc2hvdWxkIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUpLlxuICB1c2VPbkZpbHRlcmVkSXRlbXNDaGFuZ2U/OiBib29sZWFuO1xuXG4gIC8vIEEgVVJMIHRvIHRoZSBDRE4gd2hlcmUgdGhlIGtlcGxlci5nbCBhc3NldHMgYXJlIGhvc3RlZC5cbiAgY2RuVXJsPzogc3RyaW5nO1xuXG4gIC8vIFJhc3RlciBUaWxlIGxheWVyIGNvbmZpZ1xuICAvLyBSYXN0ZXIgVGlsZSBsYXllciBpcyB1bmRlciBkZXZlbG9wbWVudCBhbmQgbm90IHJlYWR5IGZvciBwcm9kdWN0aW9uIHVzZS4gRGlzYWJsZWQgYnkgZGVmYXVsdC5cbiAgZW5hYmxlUmFzdGVyVGlsZUxheWVyPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdG8gdXNlIFRpdGlsZXIgdjAuMjEgQVBJIGVuZHBvaW50cyBpbnN0ZWFkIG9mIHYwLjExICovXG4gIHJhc3RlclNlcnZlclVzZUxhdGVzdFRpdGlsZXI/OiBib29sZWFuO1xuICAvKiogQW4gYXJyYXkgb2YgVVJMcyB0byBzaGFyZHMgb2YgdGhlIHJhc3RlciB0aWxlIHNlcnZlciB0byBiZSB1c2VkIGJ5IHRoZSByYXN0ZXIgdGlsZSBsYXllci4gKi9cbiAgcmFzdGVyU2VydmVyVXJscz86IHN0cmluZ1tdO1xuICAvKiogSWYgdHJ1ZSB0aGVuIHRyeSB0byBmZXRjaCBxdWFudGl6ZWQgZWxldmF0aW9uIG1lc2hlcyBmcm9tIHJhc3RlciBzZXJ2ZXJzICovXG4gIHJhc3RlclNlcnZlclN1cHBvcnRzRWxldmF0aW9uPzogYm9vbGVhbjtcbiAgLyoqIEhvdyBtYW55IHRpbWVzIHRvIHJldHJ5IGEgcmVxdWVzdCBpZiBjYXNlIG9mIHJhc3RlclNlcnZlclNlcnZlckVycm9yc1RvUmV0cnkgZXJyb3JzICovXG4gIHJhc3RlclNlcnZlck1heFJldHJpZXM/OiBudW1iZXI7XG4gIC8qKiBIb3cgbG9uZyBiZXR3ZWVuIHJldHJpZXMgKi9cbiAgcmFzdGVyU2VydmVyUmV0cnlEZWxheT86IG51bWJlcjtcbiAgLyoqIEFuIGFycmF5IG9mIEhUVFAgc3RhdHVzIGNvZGVzIHRoYXQgc2hvdWxkIGJlIHJldHJpZWQgd2hlbiBlbmNvdW50ZXJlZC4gKi9cbiAgcmFzdGVyU2VydmVyU2VydmVyRXJyb3JzVG9SZXRyeT86IG51bWJlcltdO1xuICAvKiogTWF4aW11bSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIHJlcXVlc3RzIHBlciByYXN0ZXIgc2VydmVyLiAwIC0gbm8gbGltaXQgKi9cbiAgcmFzdGVyU2VydmVyTWF4UGVyU2VydmVyUmVxdWVzdHM/OiBudW1iZXI7XG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgdGhlIHNlcnZlciBpbnB1dCBmaWVsZCBpbiB0aGUgcmFzdGVyIHRpbGUgbGF5ZXIgc2V0dXAgZm9ybSAqL1xuICByYXN0ZXJTZXJ2ZXJTaG93U2VydmVySW5wdXQ/OiBib29sZWFuO1xuXG4gIC8vIFdNUyBsYXllciBjb25maWcgLS0gRXhwZXJpbWVudGFsXG4gIC8vIFdNUyBsYXllciBpcyB1bmRlciBkZXZlbG9wbWVudCBhbmQgbm90IHJlYWR5IGZvciBwcm9kdWN0aW9uIHVzZS4gRGlzYWJsZWQgYnkgZGVmYXVsdC5cbiAgZW5hYmxlV01TTGF5ZXI/OiBib29sZWFuO1xuXG4gIC8vIEltYWdlIGV4cG9ydCBjb25maWdcbiAgLyoqIFdoZXRoZXIgdG8gYXBwbHkgZml4IGZvciB1Z2xpZnkgZXJyb3IgaW4gZG9tLXRvLWltYWdlIChzaG91bGQgYmUgdHJ1ZSBmb3Igd2VicGFjayBidWlsZHMsIGZhbHNlIGZvciBWaXRlKSAqL1xuICBlc2NhcGVYaHRtbEZvcldlYnBhY2s/OiBib29sZWFuO1xufTtcblxuY29uc3QgREVGQVVMVF9BUFBMSUNBVElPTl9DT05GSUc6IFJlcXVpcmVkPEtlcGxlckFwcGxpY2F0aW9uQ29uZmlnPiA9IHtcbiAgZGVmYXVsdEh0bWxOYW1lOiAna2VwbGVyLmdsLmh0bWwnLFxuICBkZWZhdWx0SW1hZ2VOYW1lOiAna2VwbGVyLmdsLnBuZycsXG4gIGRlZmF1bHRKc29uTmFtZTogJ2tlcGxlci5nbC5qc29uJyxcbiAgZGVmYXVsdERhdGFOYW1lOiAna2VwbGVyLmdsJyxcbiAgZGVmYXVsdEV4cG9ydEpzb25TZXR0aW5nczoge1xuICAgIGhhc0RhdGE6IHRydWVcbiAgfSxcblxuICBiYXNlTWFwTGlicmFyeUNvbmZpZzoge1xuICAgIG1hcGxpYnJlOiB7XG4gICAgICBnZXRNYXBMaWI6ICgpID0+IGltcG9ydCgnbWFwbGlicmUtZ2wnKSxcbiAgICAgIG1hcExpYkNzc0NsYXNzOiAnbWFwbGlicmVnbCcsXG4gICAgICBtYXBMaWJBdHRyaWJ1dGlvbkNzc0NsYXNzOiAnbWFwbGlicmUtYXR0cmlidXRpb24tY29udGFpbmVyJyxcbiAgICAgIG1hcExpYk5hbWU6ICdNYXBMaWJyZScsXG4gICAgICBtYXBMaWJVcmw6ICdodHRwczovL3d3dy5tYXBsaWJyZS5vcmcvJ1xuICAgIH0sXG4gICAgbWFwYm94OiB7XG4gICAgICBnZXRNYXBMaWI6ICgpID0+IGltcG9ydCgnbWFwYm94LWdsJyksXG4gICAgICBtYXBMaWJDc3NDbGFzczogJ21hcGJveGdsJyxcbiAgICAgIG1hcExpYkF0dHJpYnV0aW9uQ3NzQ2xhc3M6ICdtYXBib3gtYXR0cmlidXRpb24tY29udGFpbmVyJyxcbiAgICAgIG1hcExpYk5hbWU6ICdNYXBib3gnLFxuICAgICAgbWFwTGliVXJsOiAnaHR0cHM6Ly93d3cubWFwYm94LmNvbS8nXG4gICAgfVxuICB9LFxuXG4gIGNkblVybDogS0VQTEVSX1VORk9MREVEX0JVQ0tFVCxcblxuICBwbHVnaW5zOiBbXSxcbiAgLy8gVGhlIGRlZmF1bHQgdGFibGUgY2xhc3MgaXMgS2VwbGVyVGFibGUuXG4gIC8vIFRPRE8gaW5jbHVkZSBLZXBsZXJUYWJsZSBoZXJlIHdoZW4gdGhlIGNpcmN1bGFyIGRlcGVuZGVuY3kgd2l0aCBAa2VwbGVyLmdsL3RhYmxlIGFuZCBAa2VwbGVyLmdsL3V0aWxzIGFyZSByZXNvbHZlZC5cbiAgdGFibGU6IG51bGwsXG4gIGRhdGFiYXNlOiBudWxsLFxuXG4gIHVzZUFycm93UHJvZ3Jlc3NpdmVMb2FkaW5nOiB0cnVlLFxuICBzaG93UmVsZWFzZUJhbm5lcjogdHJ1ZSxcbiAgdXNlT25GaWx0ZXJlZEl0ZW1zQ2hhbmdlOiBmYWxzZSxcblxuICAvLyBSYXN0ZXIgVGlsZSBsYXllciBjb25maWdcbiAgZW5hYmxlUmFzdGVyVGlsZUxheWVyOiB0cnVlLFxuICByYXN0ZXJTZXJ2ZXJVc2VMYXRlc3RUaXRpbGVyOiB0cnVlLFxuICByYXN0ZXJTZXJ2ZXJTaG93U2VydmVySW5wdXQ6IHRydWUsXG4gIHJhc3RlclNlcnZlclVybHM6IFtdLCAvLyBUT0RPOiBwcm92aWRlIGEgZGVmYXVsdCBmcmVlIHNlcnZlciBvciBsZWF2ZSBibGFua1xuICByYXN0ZXJTZXJ2ZXJTdXBwb3J0c0VsZXZhdGlvbjogdHJ1ZSxcbiAgcmFzdGVyU2VydmVyTWF4UmV0cmllczogMSxcbiAgcmFzdGVyU2VydmVyUmV0cnlEZWxheTogMTAwMDAsXG4gIHJhc3RlclNlcnZlclNlcnZlckVycm9yc1RvUmV0cnk6IFs1MDNdLFxuICByYXN0ZXJTZXJ2ZXJNYXhQZXJTZXJ2ZXJSZXF1ZXN0czogMCxcblxuICAvLyBXTVMgbGF5ZXIgY29uZmlnXG4gIGVuYWJsZVdNU0xheWVyOiB0cnVlLFxuXG4gIC8vIEltYWdlIGV4cG9ydCBjb25maWdcbiAgLy8gRGVmYXVsdCB0byB0cnVlIGZvciB3ZWJwYWNrIGJ1aWxkcywgZmFsc2UgZm9yIG90aGVyIGJ1aWxkIHRvb2xzIChlLmcuLCBWaXRlKVxuICBlc2NhcGVYaHRtbEZvcldlYnBhY2s6IGlzV2VicGFja0J1aWxkKClcbn07XG5cbmNvbnN0IGFwcGxpY2F0aW9uQ29uZmlnOiBSZXF1aXJlZDxLZXBsZXJBcHBsaWNhdGlvbkNvbmZpZz4gPSBERUZBVUxUX0FQUExJQ0FUSU9OX0NPTkZJRztcblxuZXhwb3J0IGNvbnN0IGdldEFwcGxpY2F0aW9uQ29uZmlnID0gKCk6IFJlcXVpcmVkPEtlcGxlckFwcGxpY2F0aW9uQ29uZmlnPiA9PiBhcHBsaWNhdGlvbkNvbmZpZztcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRBcHBsaWNhdGlvbkNvbmZpZyhhcHBDb25maWc6IEtlcGxlckFwcGxpY2F0aW9uQ29uZmlnID0ge30pIHtcbiAgT2JqZWN0LmFzc2lnbihhcHBsaWNhdGlvbkNvbmZpZywgYXBwQ29uZmlnKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBS0EsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQTRELFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFB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