UNPKG

kepler.gl

Version:

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

46 lines (31 loc) 27 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.visStateReducerFactory = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _actionTypes = _interopRequireDefault(require("../constants/action-types")); var _reduxActions = require("redux-actions"); var visStateUpdaters = _interopRequireWildcard(require("./vis-state-updaters")); var _actionHandler; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } /** * Important: Do not rename `actionHandler` or the assignment pattern of property value. * It is used to generate documentation */ var actionHandler = (_actionHandler = {}, (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].ADD_FILTER, visStateUpdaters.addFilterUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].ADD_LAYER, visStateUpdaters.addLayerUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].DUPLICATE_LAYER, visStateUpdaters.duplicateLayerUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].ENLARGE_FILTER, visStateUpdaters.enlargeFilterUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].INTERACTION_CONFIG_CHANGE, visStateUpdaters.interactionConfigChangeUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].LAYER_CLICK, visStateUpdaters.layerClickUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].LAYER_CONFIG_CHANGE, visStateUpdaters.layerConfigChangeUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].LAYER_HOVER, visStateUpdaters.layerHoverUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].LAYER_TYPE_CHANGE, visStateUpdaters.layerTypeChangeUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].LAYER_VIS_CONFIG_CHANGE, visStateUpdaters.layerVisConfigChangeUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].LAYER_TEXT_LABEL_CHANGE, visStateUpdaters.layerTextLabelChangeUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].LAYER_VISUAL_CHANNEL_CHANGE, visStateUpdaters.layerVisualChannelChangeUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].LAYER_COLOR_UI_CHANGE, visStateUpdaters.layerColorUIChangeUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].TOGGLE_LAYER_ANIMATION, visStateUpdaters.toggleLayerAnimationUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].TOGGLE_LAYER_ANIMATION_CONTROL, visStateUpdaters.toggleLayerAnimationControlUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].LOAD_FILES, visStateUpdaters.loadFilesUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].LOAD_FILES_ERR, visStateUpdaters.loadFilesErrUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].LOAD_NEXT_FILE, visStateUpdaters.loadNextFileUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].LOAD_FILE_STEP_SUCCESS, visStateUpdaters.loadFileStepSuccessUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].MAP_CLICK, visStateUpdaters.mapClickUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].MOUSE_MOVE, visStateUpdaters.mouseMoveUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].RECEIVE_MAP_CONFIG, visStateUpdaters.receiveMapConfigUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].REMOVE_DATASET, visStateUpdaters.removeDatasetUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].REMOVE_FILTER, visStateUpdaters.removeFilterUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].REMOVE_LAYER, visStateUpdaters.removeLayerUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].REORDER_LAYER, visStateUpdaters.reorderLayerUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].RESET_MAP_CONFIG, visStateUpdaters.resetMapConfigUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_FILTER, visStateUpdaters.setFilterUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_FILTER_ANIMATION_TIME, visStateUpdaters.setFilterAnimationTimeUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_FILTER_ANIMATION_TIME_CONFIG, visStateUpdaters.setFilterAnimationTimeConfigUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_FILTER_ANIMATION_WINDOW, visStateUpdaters.setFilterAnimationWindowUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_FILTER_PLOT, visStateUpdaters.setFilterPlotUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_MAP_INFO, visStateUpdaters.setMapInfoUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SHOW_DATASET_TABLE, visStateUpdaters.showDatasetTableUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].TOGGLE_FILTER_ANIMATION, visStateUpdaters.toggleFilterAnimationUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].UPDATE_FILTER_ANIMATION_SPEED, visStateUpdaters.updateFilterAnimationSpeedUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_LAYER_ANIMATION_TIME, visStateUpdaters.setLayerAnimationTimeUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].UPDATE_LAYER_ANIMATION_SPEED, visStateUpdaters.updateLayerAnimationSpeedUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].TOGGLE_LAYER_FOR_MAP, visStateUpdaters.toggleLayerForMapUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].TOGGLE_SPLIT_MAP, visStateUpdaters.toggleSplitMapUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].UPDATE_LAYER_BLENDING, visStateUpdaters.updateLayerBlendingUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].UPDATE_VIS_DATA, visStateUpdaters.updateVisDataUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].RENAME_DATASET, visStateUpdaters.renameDatasetUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_FEATURES, visStateUpdaters.setFeaturesUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].DELETE_FEATURE, visStateUpdaters.deleteFeatureUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_POLYGON_FILTER_LAYER, visStateUpdaters.setPolygonFilterLayerUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_SELECTED_FEATURE, visStateUpdaters.setSelectedFeatureUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_EDITOR_MODE, visStateUpdaters.setEditorModeUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].TOGGLE_EDITOR_VISIBILITY, visStateUpdaters.toggleEditorVisibilityUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].TOGGLE_FILTER_FEATURE, visStateUpdaters.toggleFilterFeatureUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].APPLY_CPU_FILTER, visStateUpdaters.applyCPUFilterUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SORT_TABLE_COLUMN, visStateUpdaters.sortTableColumnUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].PIN_TABLE_COLUMN, visStateUpdaters.pinTableColumnUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].COPY_TABLE_COLUMN, visStateUpdaters.copyTableColumnUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].NEXT_FILE_BATCH, visStateUpdaters.nextFileBatchUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].PROCESS_FILE_CONTENT, visStateUpdaters.processFileContentUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_LAYER_ANIMATION_TIME_CONFIG, visStateUpdaters.setLayerAnimationTimeConfigUpdater), _actionHandler); // construct vis-state reducer var visStateReducerFactory = function visStateReducerFactory() { var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return (// @ts-ignore (0, _reduxActions.handleActions)(actionHandler, _objectSpread(_objectSpread(_objectSpread({}, visStateUpdaters.INITIAL_VIS_STATE), initialState), {}, { initialState: initialState })) ); }; exports.visStateReducerFactory = visStateReducerFactory; var _default = visStateReducerFactory(); exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWR1Y2Vycy92aXMtc3RhdGUuanMiXSwibmFtZXMiOlsiYWN0aW9uSGFuZGxlciIsIkFjdGlvblR5cGVzIiwiQUREX0ZJTFRFUiIsInZpc1N0YXRlVXBkYXRlcnMiLCJhZGRGaWx0ZXJVcGRhdGVyIiwiQUREX0xBWUVSIiwiYWRkTGF5ZXJVcGRhdGVyIiwiRFVQTElDQVRFX0xBWUVSIiwiZHVwbGljYXRlTGF5ZXJVcGRhdGVyIiwiRU5MQVJHRV9GSUxURVIiLCJlbmxhcmdlRmlsdGVyVXBkYXRlciIsIklOVEVSQUNUSU9OX0NPTkZJR19DSEFOR0UiLCJpbnRlcmFjdGlvbkNvbmZpZ0NoYW5nZVVwZGF0ZXIiLCJMQVlFUl9DTElDSyIsImxheWVyQ2xpY2tVcGRhdGVyIiwiTEFZRVJfQ09ORklHX0NIQU5HRSIsImxheWVyQ29uZmlnQ2hhbmdlVXBkYXRlciIsIkxBWUVSX0hPVkVSIiwibGF5ZXJIb3ZlclVwZGF0ZXIiLCJMQVlFUl9UWVBFX0NIQU5HRSIsImxheWVyVHlwZUNoYW5nZVVwZGF0ZXIiLCJMQVlFUl9WSVNfQ09ORklHX0NIQU5HRSIsImxheWVyVmlzQ29uZmlnQ2hhbmdlVXBkYXRlciIsIkxBWUVSX1RFWFRfTEFCRUxfQ0hBTkdFIiwibGF5ZXJUZXh0TGFiZWxDaGFuZ2VVcGRhdGVyIiwiTEFZRVJfVklTVUFMX0NIQU5ORUxfQ0hBTkdFIiwibGF5ZXJWaXN1YWxDaGFubmVsQ2hhbmdlVXBkYXRlciIsIkxBWUVSX0NPTE9SX1VJX0NIQU5HRSIsImxheWVyQ29sb3JVSUNoYW5nZVVwZGF0ZXIiLCJUT0dHTEVfTEFZRVJfQU5JTUFUSU9OIiwidG9nZ2xlTGF5ZXJBbmltYXRpb25VcGRhdGVyIiwiVE9HR0xFX0xBWUVSX0FOSU1BVElPTl9DT05UUk9MIiwidG9nZ2xlTGF5ZXJBbmltYXRpb25Db250cm9sVXBkYXRlciIsIkxPQURfRklMRVMiLCJsb2FkRmlsZXNVcGRhdGVyIiwiTE9BRF9GSUxFU19FUlIiLCJsb2FkRmlsZXNFcnJVcGRhdGVyIiwiTE9BRF9ORVhUX0ZJTEUiLCJsb2FkTmV4dEZpbGVVcGRhdGVyIiwiTE9BRF9GSUxFX1NURVBfU1VDQ0VTUyIsImxvYWRGaWxlU3RlcFN1Y2Nlc3NVcGRhdGVyIiwiTUFQX0NMSUNLIiwibWFwQ2xpY2tVcGRhdGVyIiwiTU9VU0VfTU9WRSIsIm1vdXNlTW92ZVVwZGF0ZXIiLCJSRUNFSVZFX01BUF9DT05GSUciLCJyZWNlaXZlTWFwQ29uZmlnVXBkYXRlciIsIlJFTU9WRV9EQVRBU0VUIiwicmVtb3ZlRGF0YXNldFVwZGF0ZXIiLCJSRU1PVkVfRklMVEVSIiwicmVtb3ZlRmlsdGVyVXBkYXRlciIsIlJFTU9WRV9MQVlFUiIsInJlbW92ZUxheWVyVXBkYXRlciIsIlJFT1JERVJfTEFZRVIiLCJyZW9yZGVyTGF5ZXJVcGRhdGVyIiwiUkVTRVRfTUFQX0NPTkZJRyIsInJlc2V0TWFwQ29uZmlnVXBkYXRlciIsIlNFVF9GSUxURVIiLCJzZXRGaWx0ZXJVcGRhdGVyIiwiU0VUX0ZJTFRFUl9BTklNQVRJT05fVElNRSIsInNldEZpbHRlckFuaW1hdGlvblRpbWVVcGRhdGVyIiwiU0VUX0ZJTFRFUl9BTklNQVRJT05fVElNRV9DT05GSUciLCJzZXRGaWx0ZXJBbmltYXRpb25UaW1lQ29uZmlnVXBkYXRlciIsIlNFVF9GSUxURVJfQU5JTUFUSU9OX1dJTkRPVyIsInNldEZpbHRlckFuaW1hdGlvbldpbmRvd1VwZGF0ZXIiLCJTRVRfRklMVEVSX1BMT1QiLCJzZXRGaWx0ZXJQbG90VXBkYXRlciIsIlNFVF9NQVBfSU5GTyIsInNldE1hcEluZm9VcGRhdGVyIiwiU0hPV19EQVRBU0VUX1RBQkxFIiwic2hvd0RhdGFzZXRUYWJsZVVwZGF0ZXIiLCJUT0dHTEVfRklMVEVSX0FOSU1BVElPTiIsInRvZ2dsZUZpbHRlckFuaW1hdGlvblVwZGF0ZXIiLCJVUERBVEVfRklMVEVSX0FOSU1BVElPTl9TUEVFRCIsInVwZGF0ZUZpbHRlckFuaW1hdGlvblNwZWVkVXBkYXRlciIsIlNFVF9MQVlFUl9BTklNQVRJT05fVElNRSIsInNldExheWVyQW5pbWF0aW9uVGltZVVwZGF0ZXIiLCJVUERBVEVfTEFZRVJfQU5JTUFUSU9OX1NQRUVEIiwidXBkYXRlTGF5ZXJBbmltYXRpb25TcGVlZFVwZGF0ZXIiLCJUT0dHTEVfTEFZRVJfRk9SX01BUCIsInRvZ2dsZUxheWVyRm9yTWFwVXBkYXRlciIsIlRPR0dMRV9TUExJVF9NQVAiLCJ0b2dnbGVTcGxpdE1hcFVwZGF0ZXIiLCJVUERBVEVfTEFZRVJfQkxFTkRJTkciLCJ1cGRhdGVMYXllckJsZW5kaW5nVXBkYXRlciIsIlVQREFURV9WSVNfREFUQSIsInVwZGF0ZVZpc0RhdGFVcGRhdGVyIiwiUkVOQU1FX0RBVEFTRVQiLCJyZW5hbWVEYXRhc2V0VXBkYXRlciIsIlNFVF9GRUFUVVJFUyIsInNldEZlYXR1cmVzVXBkYXRlciIsIkRFTEVURV9GRUFUVVJFIiwiZGVsZXRlRmVhdHVyZVVwZGF0ZXIiLCJTRVRfUE9MWUdPTl9GSUxURVJfTEFZRVIiLCJzZXRQb2x5Z29uRmlsdGVyTGF5ZXJVcGRhdGVyIiwiU0VUX1NFTEVDVEVEX0ZFQVRVUkUiLCJzZXRTZWxlY3RlZEZlYXR1cmVVcGRhdGVyIiwiU0VUX0VESVRPUl9NT0RFIiwic2V0RWRpdG9yTW9kZVVwZGF0ZXIiLCJUT0dHTEVfRURJVE9SX1ZJU0lCSUxJVFkiLCJ0b2dnbGVFZGl0b3JWaXNpYmlsaXR5VXBkYXRlciIsIlRPR0dMRV9GSUxURVJfRkVBVFVSRSIsInRvZ2dsZUZpbHRlckZlYXR1cmVVcGRhdGVyIiwiQVBQTFlfQ1BVX0ZJTFRFUiIsImFwcGx5Q1BVRmlsdGVyVXBkYXRlciIsIlNPUlRfVEFCTEVfQ09MVU1OIiwic29ydFRhYmxlQ29sdW1uVXBkYXRlciIsIlBJTl9UQUJMRV9DT0xVTU4iLCJwaW5UYWJsZUNvbHVtblVwZGF0ZXIiLCJDT1BZX1RBQkxFX0NPTFVNTiIsImNvcHlUYWJsZUNvbHVtblVwZGF0ZXIiLCJORVhUX0ZJTEVfQkFUQ0giLCJuZXh0RmlsZUJhdGNoVXBkYXRlciIsIlBST0NFU1NfRklMRV9DT05URU5UIiwicHJvY2Vzc0ZpbGVDb250ZW50VXBkYXRlciIsIlNFVF9MQVlFUl9BTklNQVRJT05fVElNRV9DT05GSUciLCJzZXRMYXllckFuaW1hdGlvblRpbWVDb25maWdVcGRhdGVyIiwidmlzU3RhdGVSZWR1Y2VyRmFjdG9yeSIsImluaXRpYWxTdGF0ZSIsIklOSVRJQUxfVklTX1NUQVRFIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOzs7Ozs7OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUEsYUFBYSwwRUFDaEJDLHdCQUFZQyxVQURJLEVBQ1NDLGdCQUFnQixDQUFDQyxnQkFEMUIsb0RBR2hCSCx3QkFBWUksU0FISSxFQUdRRixnQkFBZ0IsQ0FBQ0csZUFIekIsb0RBS2hCTCx3QkFBWU0sZUFMSSxFQUtjSixnQkFBZ0IsQ0FBQ0sscUJBTC9CLG9EQU9oQlAsd0JBQVlRLGNBUEksRUFPYU4sZ0JBQWdCLENBQUNPLG9CQVA5QixvREFTaEJULHdCQUFZVSx5QkFUSSxFQVN3QlIsZ0JBQWdCLENBQUNTLDhCQVR6QyxvREFXaEJYLHdCQUFZWSxXQVhJLEVBV1VWLGdCQUFnQixDQUFDVyxpQkFYM0Isb0RBYWhCYix3QkFBWWMsbUJBYkksRUFha0JaLGdCQUFnQixDQUFDYSx3QkFibkMsb0RBZWhCZix3QkFBWWdCLFdBZkksRUFlVWQsZ0JBQWdCLENBQUNlLGlCQWYzQixvREFpQmhCakIsd0JBQVlrQixpQkFqQkksRUFpQmdCaEIsZ0JBQWdCLENBQUNpQixzQkFqQmpDLG9EQW1CaEJuQix3QkFBWW9CLHVCQW5CSSxFQW1Cc0JsQixnQkFBZ0IsQ0FBQ21CLDJCQW5CdkMsb0RBcUJoQnJCLHdCQUFZc0IsdUJBckJJLEVBcUJzQnBCLGdCQUFnQixDQUFDcUIsMkJBckJ2QyxvREF1QmhCdkIsd0JBQVl3QiwyQkF2QkksRUF1QjBCdEIsZ0JBQWdCLENBQUN1QiwrQkF2QjNDLG9EQXlCaEJ6Qix3QkFBWTBCLHFCQXpCSSxFQXlCb0J4QixnQkFBZ0IsQ0FBQ3lC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ZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgQWN0aW9uVHlwZXMgZnJvbSAnY29uc3RhbnRzL2FjdGlvbi10eXBlcyc7XG5pbXBvcnQge2hhbmRsZUFjdGlvbnN9IGZyb20gJ3JlZHV4LWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgdmlzU3RhdGVVcGRhdGVycyBmcm9tICcuL3Zpcy1zdGF0ZS11cGRhdGVycyc7XG5cbi8qKlxuICogSW1wb3J0YW50OiBEbyBub3QgcmVuYW1lIGBhY3Rpb25IYW5kbGVyYCBvciB0aGUgYXNzaWdubWVudCBwYXR0ZXJuIG9mIHByb3BlcnR5IHZhbHVlLlxuICogSXQgaXMgdXNlZCB0byBnZW5lcmF0ZSBkb2N1bWVudGF0aW9uXG4gKi9cbmNvbnN0IGFjdGlvbkhhbmRsZXIgPSB7XG4gIFtBY3Rpb25UeXBlcy5BRERfRklMVEVSXTogdmlzU3RhdGVVcGRhdGVycy5hZGRGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BRERfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLmFkZExheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuRFVQTElDQVRFX0xBWUVSXTogdmlzU3RhdGVVcGRhdGVycy5kdXBsaWNhdGVMYXllclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkVOTEFSR0VfRklMVEVSXTogdmlzU3RhdGVVcGRhdGVycy5lbmxhcmdlRmlsdGVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuSU5URVJBQ1RJT05fQ09ORklHX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMuaW50ZXJhY3Rpb25Db25maWdDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9DTElDS106IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJDbGlja1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX0NPTkZJR19DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyQ29uZmlnQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfSE9WRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVySG92ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9UWVBFX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJUeXBlQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfVklTX0NPTkZJR19DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyVmlzQ29uZmlnQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfVEVYVF9MQUJFTF9DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyVGV4dExhYmVsQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfVklTVUFMX0NIQU5ORUxfQ0hBTkdFXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclZpc3VhbENoYW5uZWxDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9DT0xPUl9VSV9DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyQ29sb3JVSUNoYW5nZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9MQVlFUl9BTklNQVRJT05dOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZUxheWVyQW5pbWF0aW9uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX0xBWUVSX0FOSU1BVElPTl9DT05UUk9MXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVMYXllckFuaW1hdGlvbkNvbnRyb2xVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0ZJTEVTXTogdmlzU3RhdGVVcGRhdGVycy5sb2FkRmlsZXNVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0ZJTEVTX0VSUl06IHZpc1N0YXRlVXBkYXRlcnMubG9hZEZpbGVzRXJyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTE9BRF9ORVhUX0ZJTEVdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWROZXh0RmlsZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxPQURfRklMRV9TVEVQX1NVQ0NFU1NdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWRGaWxlU3RlcFN1Y2Nlc3NVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5NQVBfQ0xJQ0tdOiB2aXNTdGF0ZVVwZGF0ZXJzLm1hcENsaWNrVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTU9VU0VfTU9WRV06IHZpc1N0YXRlVXBkYXRlcnMubW91c2VNb3ZlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVDRUlWRV9NQVBfQ09ORklHXTogdmlzU3RhdGVVcGRhdGVycy5yZWNlaXZlTWFwQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZURhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfRklMVEVSXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZUxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVPUkRFUl9MQVlFUl06IHZpc1N0YXRlVXBkYXRlcnMucmVvcmRlckxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVTRVRfTUFQX0NPTkZJR106IHZpc1N0YXRlVXBkYXRlcnMucmVzZXRNYXBDb25maWdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRklMVEVSXTogdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRklMVEVSX0FOSU1BVElPTl9USU1FXTogdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJBbmltYXRpb25UaW1lVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0ZJTFRFUl9BTklNQVRJT05fVElNRV9DT05GSUddOlxuICAgIHZpc1N0YXRlVXBkYXRlcnMuc2V0RmlsdGVyQW5pbWF0aW9uVGltZUNvbmZpZ1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9GSUxURVJfQU5JTUFUSU9OX1dJTkRPV106IHZpc1N0YXRlVXBkYXRlcnMuc2V0RmlsdGVyQW5pbWF0aW9uV2luZG93VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0ZJTFRFUl9QTE9UXTogdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJQbG90VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX01BUF9JTkZPXTogdmlzU3RhdGVVcGRhdGVycy5zZXRNYXBJbmZvVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0hPV19EQVRBU0VUX1RBQkxFXTogdmlzU3RhdGVVcGRhdGVycy5zaG93RGF0YXNldFRhYmxlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX0ZJTFRFUl9BTklNQVRJT05dOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZUZpbHRlckFuaW1hdGlvblVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlVQREFURV9GSUxURVJfQU5JTUFUSU9OX1NQRUVEXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVGaWx0ZXJBbmltYXRpb25TcGVlZFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9MQVlFUl9BTklNQVRJT05fVElNRV06IHZpc1N0YXRlVXBkYXRlcnMuc2V0TGF5ZXJBbmltYXRpb25UaW1lVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0xBWUVSX0FOSU1BVElPTl9TUEVFRF06IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlTGF5ZXJBbmltYXRpb25TcGVlZFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9MQVlFUl9GT1JfTUFQXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVMYXllckZvck1hcFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9TUExJVF9NQVBdOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZVNwbGl0TWFwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0xBWUVSX0JMRU5ESU5HXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVMYXllckJsZW5kaW5nVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX1ZJU19EQVRBXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVWaXNEYXRhVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVOQU1FX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbmFtZURhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRkVBVFVSRVNdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZlYXR1cmVzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuREVMRVRFX0ZFQVRVUkVdOiB2aXNTdGF0ZVVwZGF0ZXJzLmRlbGV0ZUZlYXR1cmVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfUE9MWUdPTl9GSUxURVJfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldFBvbHlnb25GaWx0ZXJMYXllclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9TRUxFQ1RFRF9GRUFUVVJFXTogdmlzU3RhdGVVcGRhdGVycy5zZXRTZWxlY3RlZEZlYXR1cmVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRURJVE9SX01PREVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEVkaXRvck1vZGVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfRURJVE9SX1ZJU0lCSUxJVFldOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZUVkaXRvclZpc2liaWxpdHlVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfRklMVEVSX0ZFQVRVUkVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZUZpbHRlckZlYXR1cmVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BUFBMWV9DUFVfRklMVEVSXTogdmlzU3RhdGVVcGRhdGVycy5hcHBseUNQVUZpbHRlclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNPUlRfVEFCTEVfQ09MVU1OXTogdmlzU3RhdGVVcGRhdGVycy5zb3J0VGFibGVDb2x1bW5VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5QSU5fVEFCTEVfQ09MVU1OXTogdmlzU3RhdGVVcGRhdGVycy5waW5UYWJsZUNvbHVtblVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkNPUFlfVEFCTEVfQ09MVU1OXTogdmlzU3RhdGVVcGRhdGVycy5jb3B5VGFibGVDb2x1bW5VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5ORVhUX0ZJTEVfQkFUQ0hdOiB2aXNTdGF0ZVVwZGF0ZXJzLm5leHRGaWxlQmF0Y2hVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5QUk9DRVNTX0ZJTEVfQ09OVEVOVF06IHZpc1N0YXRlVXBkYXRlcnMucHJvY2Vzc0ZpbGVDb250ZW50VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0xBWUVSX0FOSU1BVElPTl9USU1FX0NPTkZJR106IHZpc1N0YXRlVXBkYXRlcnMuc2V0TGF5ZXJBbmltYXRpb25UaW1lQ29uZmlnVXBkYXRlclxufTtcblxuLy8gY29uc3RydWN0IHZpcy1zdGF0ZSByZWR1Y2VyXG5leHBvcnQgY29uc3QgdmlzU3RhdGVSZWR1Y2VyRmFjdG9yeSA9IChpbml0aWFsU3RhdGUgPSB7fSkgPT5cbiAgLy8gQHRzLWlnbm9yZVxuICBoYW5kbGVBY3Rpb25zKGFjdGlvbkhhbmRsZXIsIHtcbiAgICAuLi52aXNTdGF0ZVVwZGF0ZXJzLklOSVRJQUxfVklTX1NUQVRFLFxuICAgIC4uLmluaXRpYWxTdGF0ZSxcbiAgICBpbml0aWFsU3RhdGVcbiAgfSk7XG5cbmV4cG9ydCBkZWZhdWx0IHZpc1N0YXRlUmVkdWNlckZhY3RvcnkoKTtcbiJdfQ==