@kepler.gl/constants 3.0.0-alpha.2 → 3.1.0-alpha.0
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/package.json +8 -7
- package/dist/color-palette.d.ts +0 -491
- package/dist/color-palette.js +0 -530
- package/dist/color-ranges.d.ts +0 -16
- package/dist/color-ranges.js +0 -70
- package/dist/custom-color-ranges.d.ts +0 -37
- package/dist/custom-color-ranges.js +0 -398
- package/dist/default-settings.d.ts +0 -836
- package/dist/default-settings.js +0 -1380
- package/dist/dnd-layer-items.d.ts +0 -8
- package/dist/dnd-layer-items.js +0 -26
- package/dist/index.d.ts +0 -10
- package/dist/index.js +0 -145
- package/dist/keyevent.d.ts +0 -2
- package/dist/keyevent.js +0 -30
- package/dist/layers.d.ts +0 -40
- package/dist/layers.js +0 -510
- package/dist/tooltip.d.ts +0 -208
- package/dist/tooltip.js +0 -224
- package/dist/user-feedbacks.d.ts +0 -5
- package/dist/user-feedbacks.js +0 -16
- package/dist/user-guides.d.ts +0 -9
- package/dist/user-guides.js +0 -27
- package/umd/keplergl.min.js +0 -4
package/dist/default-settings.js
DELETED
|
@@ -1,1380 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.getHTMLMapModeTileUrl = getHTMLMapModeTileUrl;
|
|
9
|
-
exports.GEOCODER_LAYER_ID = exports.GEOCODER_DATASET_NAME = exports.SPEED_CONTROL_STEP = exports.SPEED_CONTROL_RANGE = exports.DEFAULT_TIME_FORMAT = exports.ANIMATION_WINDOW = exports.FPS = exports.BASE_SPEED = exports.THROTTLE_NOTIFICATION_TIME = exports.DEFAULT_NOTIFICATION_TOPICS = exports.DEFAULT_NOTIFICATION_TYPES = exports.DEFAULT_NOTIFICATION_MESSAGE = exports.DEFAULT_UUID_COUNT = exports.EXPORT_HTML_MAP_MODE_OPTIONS = exports.EXPORT_MAP_FORMAT_OPTIONS = exports.EXPORT_HTML_MAP_MODES = exports.EXPORT_MAP_FORMATS = exports.EXPORT_DATA_TYPE_OPTIONS = exports.EXPORT_DATA_TYPE = exports.EXPORT_IMG_RESOLUTION_OPTIONS = exports.TwoXResolutionOption = exports.OneXResolutionOption = exports.EXPORT_IMG_RATIO_OPTIONS = exports.SixteenByNineRatioOption = exports.FourByThreeRatioOption = exports.CustomRatioOption = exports.ScreenRatioOption = exports.EXPORT_IMG_RATIOS = exports.RESOLUTIONS = exports.MAX_DEFAULT_TOOLTIPS = exports.LAYER_BLENDINGS = exports.OVERLAY_BLENDINGS = exports.DEFAULT_PICKING_RADIUS = exports.NO_VALUE_COLOR = exports.DEFAULT_TOOLTIP_FIELDS = exports.DEFAULT_LAYER_COLOR = exports.CHANNEL_SCALE_SUPPORTED_FIELDS = exports.FIELD_OPTS = exports.DEFAULT_AGGREGATION = exports.notSupportAggrOpts = exports.notSupportedScaleOpts = exports.ordinalFieldAggrScaleFunctions = exports.ordinalFieldScaleFunctions = exports.linearFieldAggrScaleFunctions = exports.linearFieldScaleFunctions = exports.AGGREGATION_TYPE_OPTIONS = exports.AGGREGATION_TYPES = exports.CHANNEL_SCALES = exports.HIGHLIGH_COLOR_3D = exports.FIELD_COLORS = exports.FIELD_TYPE_DISPLAY = exports.TABLE_OPTION_LIST = exports.TABLE_OPTION = exports.SORT_ORDER = exports.ALL_FIELD_TYPES = exports.SCALE_FUNC = exports.SCALE_TYPES = exports.DEFAULT_FILTER_VIEW_TYPE = exports.FILTER_VIEW_TYPES = exports.FILTER_TYPES = exports.TRIP_ARC_FIELDS = exports.ALTITUDE_FIELDS = exports.TRIP_POINT_FIELDS = exports.ICON_FIELDS = exports.GEOJSON_FIELDS = exports.DEFAULT_MAP_STYLES = exports.NO_BASEMAP_ICON = exports.EMPTY_MAPBOX_STYLE = exports.NO_MAP_ID = exports.BASE_MAP_COLOR_MODES = exports.DEFAULT_LAYER_GROUPS = exports.BACKGROUND_LAYER_GROUP = exports.THREE_D_BUILDING_LAYER_GROUP_SLUG = exports.BACKGROUND_LAYER_GROUP_SLUG = exports.BASE_MAP_BACKGROUND_LAYER_IDS = exports.DEFAULT_BACKGROUND_COLOR = exports.DEFAULT_BLDG_COLOR = exports.PANELS = exports.PANEL_VIEW_TOGGLES = exports.SIDEBAR_PANELS = exports.THEME = exports.DIMENSIONS = exports.KEPLER_GL_WEBSITE = exports.KEPLER_GL_VERSION = exports.KEPLER_GL_NAME = exports.SHARE_MAP_ID = exports.OVERWRITE_MAP_ID = exports.SAVE_MAP_ID = exports.EXPORT_MAP_ID = exports.ADD_MAP_STYLE_ID = exports.EXPORT_DATA_ID = exports.EXPORT_IMAGE_ID = exports.ADD_DATA_ID = exports.DELETE_DATA_ID = exports.DATA_TABLE_ID = exports.TRANSITION_DURATION = exports.DEFAULT_MAPBOX_API_URL = exports.BASEMAP_ICON_PREFIX = exports.KEPLER_UNFOLDED_BUCKET = exports.ACTION_PREFIX = void 0;
|
|
10
|
-
exports.EFFECT_DESCRIPTIONS = exports.POSTPROCESSING_EFFECTS = exports.LIGHT_AND_SHADOW_EFFECT = exports.DEFAULT_LIGHT_AND_SHADOW_PROPS = exports.LIGHT_AND_SHADOW_EFFECT_TIME_MODES = exports.DEFAULT_SHADOW_COLOR = exports.DEFAULT_SHADOW_INTENSITY = exports.DEFAULT_LIGHT_INTENSITY = exports.DEFAULT_LIGHT_COLOR = exports.DEFAULT_POST_PROCESSING_EFFECT_TYPE = exports.DEFAULT_TIMEZONE = exports.dataTestIds = exports.TEXT_OUTLINE_MULTIPLIER = exports.PROJECTED_PIXEL_SIZE_MULTIPLIER = exports.MAP_CONTROLS = exports.DATASET_FORMATS = exports.DEFAULT_FEATURE_FLAGS = exports.LOADING_METHODS = exports.MAP_INFO_CHARACTER = exports.MAP_THUMBNAIL_DIMENSION = exports.MAX_GPU_FILTERS = exports.INIT_FILTER_ITEMS_IN_DROPDOWN = exports.PLOT_TYPES = exports.EDITOR_MODES = exports.EDITOR_LAYER_PICKING_RADIUS = exports.EDITOR_LAYER_ID = exports.GEOCODER_ICON_SIZE = exports.GEOCODER_ICON_COLOR = exports.GEOCODER_GEO_OFFSET = void 0;
|
|
11
|
-
|
|
12
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
-
|
|
14
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
-
|
|
16
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
-
|
|
18
|
-
var _keymirror = _interopRequireDefault(require("keymirror"));
|
|
19
|
-
|
|
20
|
-
var _d3Scale = require("d3-scale");
|
|
21
|
-
|
|
22
|
-
var _tooltip = require("./tooltip");
|
|
23
|
-
|
|
24
|
-
var _SCALE_FUNC, _FIELD_TYPE_DISPLAY, _linearFieldScaleFunc, _CHANNEL_SCALES$color, _CHANNEL_SCALES$sizeA, _linearFieldAggrScale, _ordinalFieldScaleFun, _CHANNEL_SCALES$color2, _ordinalFieldAggrScal, _notSupportedScaleOpt, _notSupportAggrOpts, _DEFAULT_AGGREGATION, _FIELD_OPTS;
|
|
25
|
-
|
|
26
|
-
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; }
|
|
27
|
-
|
|
28
|
-
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; }
|
|
29
|
-
|
|
30
|
-
var ACTION_PREFIX = '@@kepler.gl/';
|
|
31
|
-
exports.ACTION_PREFIX = ACTION_PREFIX;
|
|
32
|
-
var KEPLER_UNFOLDED_BUCKET = 'https://studio-public-data.foursquare.com/statics/keplergl';
|
|
33
|
-
exports.KEPLER_UNFOLDED_BUCKET = KEPLER_UNFOLDED_BUCKET;
|
|
34
|
-
var BASEMAP_ICON_PREFIX = "".concat(KEPLER_UNFOLDED_BUCKET, "/geodude");
|
|
35
|
-
exports.BASEMAP_ICON_PREFIX = BASEMAP_ICON_PREFIX;
|
|
36
|
-
var DEFAULT_MAPBOX_API_URL = 'https://api.mapbox.com';
|
|
37
|
-
exports.DEFAULT_MAPBOX_API_URL = DEFAULT_MAPBOX_API_URL;
|
|
38
|
-
var TRANSITION_DURATION = 0; // Modal Ids
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Modal id: data table
|
|
42
|
-
* @constant
|
|
43
|
-
* @type {string}
|
|
44
|
-
* @public
|
|
45
|
-
*/
|
|
46
|
-
|
|
47
|
-
exports.TRANSITION_DURATION = TRANSITION_DURATION;
|
|
48
|
-
var DATA_TABLE_ID = 'dataTable';
|
|
49
|
-
/**
|
|
50
|
-
* Modal id: delete dataset confirm dialog
|
|
51
|
-
* @constant
|
|
52
|
-
* @type {string}
|
|
53
|
-
* @public
|
|
54
|
-
*/
|
|
55
|
-
|
|
56
|
-
exports.DATA_TABLE_ID = DATA_TABLE_ID;
|
|
57
|
-
var DELETE_DATA_ID = 'deleteData';
|
|
58
|
-
/**
|
|
59
|
-
* Modal id: add data modal
|
|
60
|
-
* @constant
|
|
61
|
-
* @type {string}
|
|
62
|
-
* @public
|
|
63
|
-
*/
|
|
64
|
-
|
|
65
|
-
exports.DELETE_DATA_ID = DELETE_DATA_ID;
|
|
66
|
-
var ADD_DATA_ID = 'addData';
|
|
67
|
-
/**
|
|
68
|
-
* Modal id: export image modal
|
|
69
|
-
* @constant
|
|
70
|
-
* @type {string}
|
|
71
|
-
* @public
|
|
72
|
-
*/
|
|
73
|
-
|
|
74
|
-
exports.ADD_DATA_ID = ADD_DATA_ID;
|
|
75
|
-
var EXPORT_IMAGE_ID = 'exportImage';
|
|
76
|
-
/**
|
|
77
|
-
* Modal id: export data modal
|
|
78
|
-
* @constant
|
|
79
|
-
* @type {string}
|
|
80
|
-
* @public
|
|
81
|
-
*/
|
|
82
|
-
|
|
83
|
-
exports.EXPORT_IMAGE_ID = EXPORT_IMAGE_ID;
|
|
84
|
-
var EXPORT_DATA_ID = 'exportData';
|
|
85
|
-
/**
|
|
86
|
-
* Modal id: add custom map style modal
|
|
87
|
-
* @constant
|
|
88
|
-
* @type {string}
|
|
89
|
-
* @public
|
|
90
|
-
*/
|
|
91
|
-
|
|
92
|
-
exports.EXPORT_DATA_ID = EXPORT_DATA_ID;
|
|
93
|
-
var ADD_MAP_STYLE_ID = 'addMapStyle';
|
|
94
|
-
/**
|
|
95
|
-
* Modal id: export map modal
|
|
96
|
-
* @constant
|
|
97
|
-
* @type {string}
|
|
98
|
-
* @public
|
|
99
|
-
*/
|
|
100
|
-
|
|
101
|
-
exports.ADD_MAP_STYLE_ID = ADD_MAP_STYLE_ID;
|
|
102
|
-
var EXPORT_MAP_ID = 'exportMap';
|
|
103
|
-
/**
|
|
104
|
-
* Modal id: save map modal
|
|
105
|
-
* @constant
|
|
106
|
-
* @type {string}
|
|
107
|
-
* @public
|
|
108
|
-
*/
|
|
109
|
-
|
|
110
|
-
exports.EXPORT_MAP_ID = EXPORT_MAP_ID;
|
|
111
|
-
var SAVE_MAP_ID = 'saveMap';
|
|
112
|
-
/**
|
|
113
|
-
* Modal id: confirm to overwrite saved map
|
|
114
|
-
* @constant
|
|
115
|
-
* @type {string}
|
|
116
|
-
* @public
|
|
117
|
-
*/
|
|
118
|
-
|
|
119
|
-
exports.SAVE_MAP_ID = SAVE_MAP_ID;
|
|
120
|
-
var OVERWRITE_MAP_ID = 'overwriteMap';
|
|
121
|
-
/**
|
|
122
|
-
* Modal id: share map url modal
|
|
123
|
-
* @constant
|
|
124
|
-
* @type {string}
|
|
125
|
-
* @public
|
|
126
|
-
*/
|
|
127
|
-
|
|
128
|
-
exports.OVERWRITE_MAP_ID = OVERWRITE_MAP_ID;
|
|
129
|
-
var SHARE_MAP_ID = 'shareMap';
|
|
130
|
-
exports.SHARE_MAP_ID = SHARE_MAP_ID;
|
|
131
|
-
var KEPLER_GL_NAME = 'kepler.gl'; // __PACKAGE_VERSION__ is automatically injected by Babel/Webpack during the building process
|
|
132
|
-
// Since we are injecting this during the build process with babel
|
|
133
|
-
// while developing VERSION is not defined, we capture the exception and return
|
|
134
|
-
// an empty string which will allow us to retrieve the latest umd version
|
|
135
|
-
|
|
136
|
-
exports.KEPLER_GL_NAME = KEPLER_GL_NAME;
|
|
137
|
-
var KEPLER_GL_VERSION = "3.0.0-alpha.2";
|
|
138
|
-
exports.KEPLER_GL_VERSION = KEPLER_GL_VERSION;
|
|
139
|
-
var KEPLER_GL_WEBSITE = 'http://kepler.gl/';
|
|
140
|
-
exports.KEPLER_GL_WEBSITE = KEPLER_GL_WEBSITE;
|
|
141
|
-
var DIMENSIONS = {
|
|
142
|
-
sidePanel: {
|
|
143
|
-
width: 300,
|
|
144
|
-
margin: {
|
|
145
|
-
top: 20,
|
|
146
|
-
left: 20,
|
|
147
|
-
bottom: 30,
|
|
148
|
-
right: 20
|
|
149
|
-
},
|
|
150
|
-
headerHeight: 96
|
|
151
|
-
},
|
|
152
|
-
mapControl: {
|
|
153
|
-
width: 184,
|
|
154
|
-
padding: 12,
|
|
155
|
-
mapLegend: {
|
|
156
|
-
pinned: {
|
|
157
|
-
bottom: 22,
|
|
158
|
-
right: 12
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
};
|
|
163
|
-
/**
|
|
164
|
-
* Theme name that can be passed to `KeplerGl` `prop.theme`.
|
|
165
|
-
* Available themes are `THEME.light` and `THEME.dark`. Default theme is `THEME.dark`
|
|
166
|
-
* @constant
|
|
167
|
-
* @type {object}
|
|
168
|
-
* @public
|
|
169
|
-
* @example
|
|
170
|
-
* ```js
|
|
171
|
-
* const Map = () => <KeplerGl theme={THEME.light} id="map"/>
|
|
172
|
-
* ```
|
|
173
|
-
*/
|
|
174
|
-
|
|
175
|
-
exports.DIMENSIONS = DIMENSIONS;
|
|
176
|
-
var THEME = (0, _keymirror["default"])({
|
|
177
|
-
light: null,
|
|
178
|
-
dark: null,
|
|
179
|
-
base: null
|
|
180
|
-
});
|
|
181
|
-
exports.THEME = THEME;
|
|
182
|
-
var SIDEBAR_PANELS = [{
|
|
183
|
-
id: 'layer',
|
|
184
|
-
label: 'sidebar.panels.layer',
|
|
185
|
-
onClick: null
|
|
186
|
-
}, {
|
|
187
|
-
id: 'filter',
|
|
188
|
-
label: 'sidebar.panels.filter',
|
|
189
|
-
onClick: null
|
|
190
|
-
}, {
|
|
191
|
-
id: 'interaction',
|
|
192
|
-
label: 'sidebar.panels.interaction',
|
|
193
|
-
onClick: null
|
|
194
|
-
}, {
|
|
195
|
-
id: 'map',
|
|
196
|
-
label: 'sidebar.panels.basemap',
|
|
197
|
-
onClick: null
|
|
198
|
-
}];
|
|
199
|
-
exports.SIDEBAR_PANELS = SIDEBAR_PANELS;
|
|
200
|
-
var PANEL_VIEW_TOGGLES = (0, _keymirror["default"])({
|
|
201
|
-
list: null,
|
|
202
|
-
byDataset: null
|
|
203
|
-
}); // backward compatibility
|
|
204
|
-
|
|
205
|
-
exports.PANEL_VIEW_TOGGLES = PANEL_VIEW_TOGGLES;
|
|
206
|
-
var PANELS = SIDEBAR_PANELS; // MAP STYLES
|
|
207
|
-
|
|
208
|
-
exports.PANELS = PANELS;
|
|
209
|
-
var DEFAULT_BLDG_COLOR = '#D1CEC7';
|
|
210
|
-
exports.DEFAULT_BLDG_COLOR = DEFAULT_BLDG_COLOR;
|
|
211
|
-
var DEFAULT_BACKGROUND_COLOR = '#000000'; // assists in identifying basemap background layers when auto-determining the backgroundColor
|
|
212
|
-
|
|
213
|
-
exports.DEFAULT_BACKGROUND_COLOR = DEFAULT_BACKGROUND_COLOR;
|
|
214
|
-
var BASE_MAP_BACKGROUND_LAYER_IDS = ['background', 'bg', 'land', 'water'];
|
|
215
|
-
exports.BASE_MAP_BACKGROUND_LAYER_IDS = BASE_MAP_BACKGROUND_LAYER_IDS;
|
|
216
|
-
var BACKGROUND_LAYER_GROUP_SLUG = 'Background';
|
|
217
|
-
exports.BACKGROUND_LAYER_GROUP_SLUG = BACKGROUND_LAYER_GROUP_SLUG;
|
|
218
|
-
var THREE_D_BUILDING_LAYER_GROUP_SLUG = '3d building';
|
|
219
|
-
exports.THREE_D_BUILDING_LAYER_GROUP_SLUG = THREE_D_BUILDING_LAYER_GROUP_SLUG;
|
|
220
|
-
var BACKGROUND_LAYER_GROUP = {
|
|
221
|
-
slug: BACKGROUND_LAYER_GROUP_SLUG,
|
|
222
|
-
filter: function filter() {
|
|
223
|
-
return false;
|
|
224
|
-
},
|
|
225
|
-
defaultVisibility: false,
|
|
226
|
-
isVisibilityToggleAvailable: false,
|
|
227
|
-
isMoveToTopAvailable: false,
|
|
228
|
-
isColorPickerAvailable: true
|
|
229
|
-
};
|
|
230
|
-
exports.BACKGROUND_LAYER_GROUP = BACKGROUND_LAYER_GROUP;
|
|
231
|
-
var DEFAULT_LAYER_GROUPS = [{
|
|
232
|
-
slug: 'label',
|
|
233
|
-
filter: function filter(_ref) {
|
|
234
|
-
var id = _ref.id;
|
|
235
|
-
return id.match(/(?=(label|place-|poi-))/);
|
|
236
|
-
},
|
|
237
|
-
defaultVisibility: true,
|
|
238
|
-
isVisibilityToggleAvailable: true,
|
|
239
|
-
isMoveToTopAvailable: true,
|
|
240
|
-
isColorPickerAvailable: false
|
|
241
|
-
}, {
|
|
242
|
-
slug: 'road',
|
|
243
|
-
filter: function filter(_ref2) {
|
|
244
|
-
var id = _ref2.id;
|
|
245
|
-
return id.match(/(?=(road|railway|tunnel|street|bridge))(?!.*label)/);
|
|
246
|
-
},
|
|
247
|
-
defaultVisibility: true,
|
|
248
|
-
isVisibilityToggleAvailable: true,
|
|
249
|
-
isMoveToTopAvailable: true,
|
|
250
|
-
isColorPickerAvailable: false
|
|
251
|
-
}, {
|
|
252
|
-
slug: 'border',
|
|
253
|
-
filter: function filter(_ref3) {
|
|
254
|
-
var id = _ref3.id;
|
|
255
|
-
return id.match(/border|boundaries|boundary/);
|
|
256
|
-
},
|
|
257
|
-
defaultVisibility: false,
|
|
258
|
-
isVisibilityToggleAvailable: true,
|
|
259
|
-
isMoveToTopAvailable: true,
|
|
260
|
-
isColorPickerAvailable: false
|
|
261
|
-
}, {
|
|
262
|
-
slug: 'building',
|
|
263
|
-
filter: function filter(_ref4) {
|
|
264
|
-
var id = _ref4.id;
|
|
265
|
-
return id.match(/building/);
|
|
266
|
-
},
|
|
267
|
-
defaultVisibility: true,
|
|
268
|
-
isVisibilityToggleAvailable: true,
|
|
269
|
-
isMoveToTopAvailable: true,
|
|
270
|
-
isColorPickerAvailable: false
|
|
271
|
-
}, {
|
|
272
|
-
slug: 'water',
|
|
273
|
-
filter: function filter(_ref5) {
|
|
274
|
-
var id = _ref5.id;
|
|
275
|
-
return id.match(/(?=(water|stream|ferry))/);
|
|
276
|
-
},
|
|
277
|
-
defaultVisibility: true,
|
|
278
|
-
isVisibilityToggleAvailable: true,
|
|
279
|
-
isMoveToTopAvailable: true,
|
|
280
|
-
isColorPickerAvailable: false
|
|
281
|
-
}, {
|
|
282
|
-
slug: 'land',
|
|
283
|
-
filter: function filter(_ref6) {
|
|
284
|
-
var id = _ref6.id;
|
|
285
|
-
return id.match(/(?=(parks|landcover|industrial|sand|hillshade))/);
|
|
286
|
-
},
|
|
287
|
-
defaultVisibility: true,
|
|
288
|
-
isVisibilityToggleAvailable: true,
|
|
289
|
-
isMoveToTopAvailable: true,
|
|
290
|
-
isColorPickerAvailable: false
|
|
291
|
-
}, {
|
|
292
|
-
slug: THREE_D_BUILDING_LAYER_GROUP_SLUG,
|
|
293
|
-
filter: function filter() {
|
|
294
|
-
return false;
|
|
295
|
-
},
|
|
296
|
-
defaultVisibility: false,
|
|
297
|
-
isVisibilityToggleAvailable: true,
|
|
298
|
-
isMoveToTopAvailable: true,
|
|
299
|
-
isColorPickerAvailable: true
|
|
300
|
-
}];
|
|
301
|
-
exports.DEFAULT_LAYER_GROUPS = DEFAULT_LAYER_GROUPS;
|
|
302
|
-
var BASE_MAP_COLOR_MODES = (0, _keymirror["default"])({
|
|
303
|
-
NONE: null,
|
|
304
|
-
DARK: null,
|
|
305
|
-
LIGHT: null
|
|
306
|
-
});
|
|
307
|
-
exports.BASE_MAP_COLOR_MODES = BASE_MAP_COLOR_MODES;
|
|
308
|
-
var NO_MAP_ID = 'no_map'; // Fallback style to use when styles are being fetched, or when
|
|
309
|
-
// a style fails to fetch
|
|
310
|
-
|
|
311
|
-
exports.NO_MAP_ID = NO_MAP_ID;
|
|
312
|
-
var EMPTY_MAPBOX_STYLE = {
|
|
313
|
-
version: 8,
|
|
314
|
-
sources: {},
|
|
315
|
-
layers: []
|
|
316
|
-
};
|
|
317
|
-
exports.EMPTY_MAPBOX_STYLE = EMPTY_MAPBOX_STYLE;
|
|
318
|
-
var NO_BASEMAP_ICON = "".concat(BASEMAP_ICON_PREFIX, "/NO_BASEMAP.png");
|
|
319
|
-
exports.NO_BASEMAP_ICON = NO_BASEMAP_ICON;
|
|
320
|
-
var DEFAULT_MAP_STYLES = [{
|
|
321
|
-
id: NO_MAP_ID,
|
|
322
|
-
label: 'No Basemap',
|
|
323
|
-
url: '',
|
|
324
|
-
icon: NO_BASEMAP_ICON,
|
|
325
|
-
layerGroups: [BACKGROUND_LAYER_GROUP],
|
|
326
|
-
colorMode: BASE_MAP_COLOR_MODES.NONE,
|
|
327
|
-
style: EMPTY_MAPBOX_STYLE
|
|
328
|
-
}, {
|
|
329
|
-
id: 'dark-matter',
|
|
330
|
-
label: 'DarkMatter',
|
|
331
|
-
url: 'https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json',
|
|
332
|
-
icon: "".concat(BASEMAP_ICON_PREFIX, "/DARKMATTER.png"),
|
|
333
|
-
layerGroups: DEFAULT_LAYER_GROUPS,
|
|
334
|
-
colorMode: BASE_MAP_COLOR_MODES.DARK,
|
|
335
|
-
complimentaryStyleId: 'positron'
|
|
336
|
-
}, {
|
|
337
|
-
id: 'dark-matter-nolabels',
|
|
338
|
-
label: 'DarkMatterNoLabels',
|
|
339
|
-
url: 'https://basemaps.cartocdn.com/gl/dark-matter-nolabels-gl-style/style.json',
|
|
340
|
-
icon: "".concat(BASEMAP_ICON_PREFIX, "/DARKMATTER_NOLABELS.png"),
|
|
341
|
-
layerGroups: DEFAULT_LAYER_GROUPS,
|
|
342
|
-
colorMode: BASE_MAP_COLOR_MODES.DARK,
|
|
343
|
-
complimentaryStyleId: 'positron-nolabels'
|
|
344
|
-
}, {
|
|
345
|
-
id: 'positron',
|
|
346
|
-
label: 'Positron',
|
|
347
|
-
url: 'https://basemaps.cartocdn.com/gl/positron-gl-style/style.json',
|
|
348
|
-
icon: "".concat(BASEMAP_ICON_PREFIX, "/POSITRON.png"),
|
|
349
|
-
layerGroups: DEFAULT_LAYER_GROUPS,
|
|
350
|
-
colorMode: BASE_MAP_COLOR_MODES.LIGHT,
|
|
351
|
-
complimentaryStyleId: 'dark-matter'
|
|
352
|
-
}, {
|
|
353
|
-
id: 'positron-nolabels',
|
|
354
|
-
label: 'PositronNoLabels',
|
|
355
|
-
url: 'https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json',
|
|
356
|
-
icon: "".concat(BASEMAP_ICON_PREFIX, "/POSITRON_NOLABELS.png"),
|
|
357
|
-
layerGroups: DEFAULT_LAYER_GROUPS,
|
|
358
|
-
colorMode: BASE_MAP_COLOR_MODES.LIGHT,
|
|
359
|
-
complimentaryStyleId: 'dark-matter-nolabels'
|
|
360
|
-
}, {
|
|
361
|
-
id: 'voyager',
|
|
362
|
-
label: 'Voyager',
|
|
363
|
-
url: 'https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json',
|
|
364
|
-
icon: "".concat(BASEMAP_ICON_PREFIX, "/VOYAGER.png"),
|
|
365
|
-
layerGroups: DEFAULT_LAYER_GROUPS,
|
|
366
|
-
colorMode: BASE_MAP_COLOR_MODES.LIGHT,
|
|
367
|
-
complimentaryStyleId: 'dark-matter'
|
|
368
|
-
}, {
|
|
369
|
-
id: 'voyager-nolabels',
|
|
370
|
-
label: 'VoyagerNoLabels',
|
|
371
|
-
url: 'https://basemaps.cartocdn.com/gl/voyager-nolabels-gl-style/style.json',
|
|
372
|
-
icon: "".concat(BASEMAP_ICON_PREFIX, "/VOYAGER_NOLABELS.png"),
|
|
373
|
-
layerGroups: DEFAULT_LAYER_GROUPS,
|
|
374
|
-
colorMode: BASE_MAP_COLOR_MODES.LIGHT,
|
|
375
|
-
complimentaryStyleId: 'dark-matter-nolabels'
|
|
376
|
-
}];
|
|
377
|
-
exports.DEFAULT_MAP_STYLES = DEFAULT_MAP_STYLES;
|
|
378
|
-
var GEOJSON_FIELDS = {
|
|
379
|
-
geojson: ['_geojson', 'all_points', 'geojson']
|
|
380
|
-
};
|
|
381
|
-
exports.GEOJSON_FIELDS = GEOJSON_FIELDS;
|
|
382
|
-
var ICON_FIELDS = {
|
|
383
|
-
icon: ['icon']
|
|
384
|
-
};
|
|
385
|
-
exports.ICON_FIELDS = ICON_FIELDS;
|
|
386
|
-
var TRIP_POINT_FIELDS = [['lat', 'lng'], ['lat', 'lon'], ['lat', 'long'], ['latitude', 'longitude']];
|
|
387
|
-
exports.TRIP_POINT_FIELDS = TRIP_POINT_FIELDS;
|
|
388
|
-
var ALTITUDE_FIELDS = ['alt', 'altitude'];
|
|
389
|
-
exports.ALTITUDE_FIELDS = ALTITUDE_FIELDS;
|
|
390
|
-
var TRIP_ARC_FIELDS = {
|
|
391
|
-
lat0: 'begintrip',
|
|
392
|
-
lng0: 'begintrip',
|
|
393
|
-
lat1: 'dropoff',
|
|
394
|
-
lng1: 'dropoff'
|
|
395
|
-
};
|
|
396
|
-
exports.TRIP_ARC_FIELDS = TRIP_ARC_FIELDS;
|
|
397
|
-
var FILTER_TYPES = (0, _keymirror["default"])({
|
|
398
|
-
range: null,
|
|
399
|
-
select: null,
|
|
400
|
-
input: null,
|
|
401
|
-
timeRange: null,
|
|
402
|
-
multiSelect: null,
|
|
403
|
-
polygon: null
|
|
404
|
-
});
|
|
405
|
-
exports.FILTER_TYPES = FILTER_TYPES;
|
|
406
|
-
var FILTER_VIEW_TYPES = (0, _keymirror["default"])({
|
|
407
|
-
side: null,
|
|
408
|
-
enlarged: null,
|
|
409
|
-
minified: null
|
|
410
|
-
});
|
|
411
|
-
exports.FILTER_VIEW_TYPES = FILTER_VIEW_TYPES;
|
|
412
|
-
var DEFAULT_FILTER_VIEW_TYPE = FILTER_VIEW_TYPES.side;
|
|
413
|
-
exports.DEFAULT_FILTER_VIEW_TYPE = DEFAULT_FILTER_VIEW_TYPE;
|
|
414
|
-
var SCALE_TYPES = (0, _keymirror["default"])({
|
|
415
|
-
ordinal: null,
|
|
416
|
-
quantile: null,
|
|
417
|
-
quantize: null,
|
|
418
|
-
linear: null,
|
|
419
|
-
sqrt: null,
|
|
420
|
-
log: null,
|
|
421
|
-
// ordinal domain to linear range
|
|
422
|
-
point: null
|
|
423
|
-
});
|
|
424
|
-
exports.SCALE_TYPES = SCALE_TYPES;
|
|
425
|
-
var SCALE_FUNC = (_SCALE_FUNC = {}, (0, _defineProperty2["default"])(_SCALE_FUNC, SCALE_TYPES.linear, _d3Scale.scaleLinear), (0, _defineProperty2["default"])(_SCALE_FUNC, SCALE_TYPES.quantize, _d3Scale.scaleQuantize), (0, _defineProperty2["default"])(_SCALE_FUNC, SCALE_TYPES.quantile, _d3Scale.scaleQuantile), (0, _defineProperty2["default"])(_SCALE_FUNC, SCALE_TYPES.ordinal, _d3Scale.scaleOrdinal), (0, _defineProperty2["default"])(_SCALE_FUNC, SCALE_TYPES.sqrt, _d3Scale.scaleSqrt), (0, _defineProperty2["default"])(_SCALE_FUNC, SCALE_TYPES.log, _d3Scale.scaleLog), (0, _defineProperty2["default"])(_SCALE_FUNC, SCALE_TYPES.point, _d3Scale.scalePoint), _SCALE_FUNC);
|
|
426
|
-
exports.SCALE_FUNC = SCALE_FUNC;
|
|
427
|
-
var ALL_FIELD_TYPES = (0, _keymirror["default"])({
|
|
428
|
-
"boolean": null,
|
|
429
|
-
date: null,
|
|
430
|
-
geojson: null,
|
|
431
|
-
integer: null,
|
|
432
|
-
real: null,
|
|
433
|
-
string: null,
|
|
434
|
-
timestamp: null,
|
|
435
|
-
point: null,
|
|
436
|
-
array: null,
|
|
437
|
-
object: null,
|
|
438
|
-
geoarrow: null
|
|
439
|
-
}); // Data Table
|
|
440
|
-
|
|
441
|
-
exports.ALL_FIELD_TYPES = ALL_FIELD_TYPES;
|
|
442
|
-
var SORT_ORDER = (0, _keymirror["default"])({
|
|
443
|
-
ASCENDING: null,
|
|
444
|
-
DESCENDING: null,
|
|
445
|
-
UNSORT: null
|
|
446
|
-
});
|
|
447
|
-
exports.SORT_ORDER = SORT_ORDER;
|
|
448
|
-
var TABLE_OPTION = (0, _keymirror["default"])({
|
|
449
|
-
SORT_ASC: null,
|
|
450
|
-
SORT_DES: null,
|
|
451
|
-
UNSORT: null,
|
|
452
|
-
PIN: null,
|
|
453
|
-
UNPIN: null,
|
|
454
|
-
COPY: null,
|
|
455
|
-
FORMAT_COLUMN: null
|
|
456
|
-
});
|
|
457
|
-
exports.TABLE_OPTION = TABLE_OPTION;
|
|
458
|
-
var TABLE_OPTION_LIST = [{
|
|
459
|
-
value: TABLE_OPTION.SORT_ASC,
|
|
460
|
-
display: 'Sort Ascending',
|
|
461
|
-
icon: 'ArrowUp',
|
|
462
|
-
condition: function condition(props) {
|
|
463
|
-
return props.sortMode !== SORT_ORDER.ASCENDING;
|
|
464
|
-
}
|
|
465
|
-
}, {
|
|
466
|
-
value: TABLE_OPTION.SORT_DES,
|
|
467
|
-
display: 'Sort Descending',
|
|
468
|
-
icon: 'ArrowDown',
|
|
469
|
-
condition: function condition(props) {
|
|
470
|
-
return props.sortMode !== SORT_ORDER.DESCENDING;
|
|
471
|
-
}
|
|
472
|
-
}, {
|
|
473
|
-
value: TABLE_OPTION.UNSORT,
|
|
474
|
-
display: 'Unsort Column',
|
|
475
|
-
icon: 'Cancel',
|
|
476
|
-
condition: function condition(props) {
|
|
477
|
-
return props.isSorted;
|
|
478
|
-
}
|
|
479
|
-
}, {
|
|
480
|
-
value: TABLE_OPTION.PIN,
|
|
481
|
-
display: 'Pin Column',
|
|
482
|
-
icon: 'Pin',
|
|
483
|
-
condition: function condition(props) {
|
|
484
|
-
return !props.isPinned;
|
|
485
|
-
}
|
|
486
|
-
}, {
|
|
487
|
-
value: TABLE_OPTION.UNPIN,
|
|
488
|
-
display: 'Unpin Column',
|
|
489
|
-
icon: 'Cancel',
|
|
490
|
-
condition: function condition(props) {
|
|
491
|
-
return props.isPinned;
|
|
492
|
-
}
|
|
493
|
-
}, {
|
|
494
|
-
value: TABLE_OPTION.COPY,
|
|
495
|
-
display: 'Copy Column',
|
|
496
|
-
icon: 'Clipboard'
|
|
497
|
-
}, {
|
|
498
|
-
value: TABLE_OPTION.FORMAT_COLUMN,
|
|
499
|
-
display: 'Format Column',
|
|
500
|
-
icon: 'Hash'
|
|
501
|
-
}];
|
|
502
|
-
exports.TABLE_OPTION_LIST = TABLE_OPTION_LIST;
|
|
503
|
-
var YELLOW = '248, 194, 28';
|
|
504
|
-
var PINK = '242, 152, 163';
|
|
505
|
-
var PURPLE = '160, 106, 206';
|
|
506
|
-
var BLUE = '140, 210, 205';
|
|
507
|
-
var BLUE2 = '106, 160, 206';
|
|
508
|
-
var BLUE3 = '0, 172, 237';
|
|
509
|
-
var GREEN = '106, 160, 56';
|
|
510
|
-
var GREEN2 = '74, 165, 150';
|
|
511
|
-
var RED = '237, 88, 106';
|
|
512
|
-
var ORANGE = '231, 110, 58';
|
|
513
|
-
var FIELD_TYPE_DISPLAY = (_FIELD_TYPE_DISPLAY = {}, (0, _defineProperty2["default"])(_FIELD_TYPE_DISPLAY, ALL_FIELD_TYPES["boolean"], {
|
|
514
|
-
label: 'bool',
|
|
515
|
-
color: PINK
|
|
516
|
-
}), (0, _defineProperty2["default"])(_FIELD_TYPE_DISPLAY, ALL_FIELD_TYPES.date, {
|
|
517
|
-
label: 'date',
|
|
518
|
-
color: PURPLE
|
|
519
|
-
}), (0, _defineProperty2["default"])(_FIELD_TYPE_DISPLAY, ALL_FIELD_TYPES.geojson, {
|
|
520
|
-
label: 'geo',
|
|
521
|
-
color: BLUE2
|
|
522
|
-
}), (0, _defineProperty2["default"])(_FIELD_TYPE_DISPLAY, ALL_FIELD_TYPES.geoarrow, {
|
|
523
|
-
label: 'geo',
|
|
524
|
-
color: BLUE2
|
|
525
|
-
}), (0, _defineProperty2["default"])(_FIELD_TYPE_DISPLAY, ALL_FIELD_TYPES.integer, {
|
|
526
|
-
label: 'int',
|
|
527
|
-
color: YELLOW
|
|
528
|
-
}), (0, _defineProperty2["default"])(_FIELD_TYPE_DISPLAY, ALL_FIELD_TYPES.real, {
|
|
529
|
-
label: 'float',
|
|
530
|
-
color: YELLOW
|
|
531
|
-
}), (0, _defineProperty2["default"])(_FIELD_TYPE_DISPLAY, ALL_FIELD_TYPES.string, {
|
|
532
|
-
label: 'string',
|
|
533
|
-
color: BLUE
|
|
534
|
-
}), (0, _defineProperty2["default"])(_FIELD_TYPE_DISPLAY, ALL_FIELD_TYPES.timestamp, {
|
|
535
|
-
label: 'time',
|
|
536
|
-
color: GREEN
|
|
537
|
-
}), (0, _defineProperty2["default"])(_FIELD_TYPE_DISPLAY, ALL_FIELD_TYPES.point, {
|
|
538
|
-
label: 'point',
|
|
539
|
-
color: BLUE3
|
|
540
|
-
}), (0, _defineProperty2["default"])(_FIELD_TYPE_DISPLAY, ALL_FIELD_TYPES.array, {
|
|
541
|
-
label: 'array',
|
|
542
|
-
color: ORANGE
|
|
543
|
-
}), (0, _defineProperty2["default"])(_FIELD_TYPE_DISPLAY, ALL_FIELD_TYPES.object, {
|
|
544
|
-
label: 'object',
|
|
545
|
-
color: GREEN2
|
|
546
|
-
}), _FIELD_TYPE_DISPLAY);
|
|
547
|
-
exports.FIELD_TYPE_DISPLAY = FIELD_TYPE_DISPLAY;
|
|
548
|
-
var FIELD_COLORS = {
|
|
549
|
-
"default": RED
|
|
550
|
-
};
|
|
551
|
-
exports.FIELD_COLORS = FIELD_COLORS;
|
|
552
|
-
var HIGHLIGH_COLOR_3D = [255, 255, 255, 60];
|
|
553
|
-
exports.HIGHLIGH_COLOR_3D = HIGHLIGH_COLOR_3D;
|
|
554
|
-
var CHANNEL_SCALES = (0, _keymirror["default"])({
|
|
555
|
-
color: null,
|
|
556
|
-
radius: null,
|
|
557
|
-
size: null,
|
|
558
|
-
colorAggr: null,
|
|
559
|
-
sizeAggr: null
|
|
560
|
-
});
|
|
561
|
-
exports.CHANNEL_SCALES = CHANNEL_SCALES;
|
|
562
|
-
var AGGREGATION_TYPES = {
|
|
563
|
-
// default
|
|
564
|
-
count: 'count',
|
|
565
|
-
// linear
|
|
566
|
-
average: 'average',
|
|
567
|
-
maximum: 'maximum',
|
|
568
|
-
minimum: 'minimum',
|
|
569
|
-
median: 'median',
|
|
570
|
-
stdev: 'stdev',
|
|
571
|
-
sum: 'sum',
|
|
572
|
-
variance: 'variance',
|
|
573
|
-
// ordinal
|
|
574
|
-
mode: 'mode',
|
|
575
|
-
countUnique: 'countUnique'
|
|
576
|
-
};
|
|
577
|
-
exports.AGGREGATION_TYPES = AGGREGATION_TYPES;
|
|
578
|
-
var AGGREGATION_TYPE_OPTIONS = Object.entries(AGGREGATION_TYPES).map(function (_ref7) {
|
|
579
|
-
var _ref8 = (0, _slicedToArray2["default"])(_ref7, 2),
|
|
580
|
-
key = _ref8[0],
|
|
581
|
-
value = _ref8[1];
|
|
582
|
-
|
|
583
|
-
return {
|
|
584
|
-
id: key,
|
|
585
|
-
label: key === 'stdev' ? 'Std Deviation' : key === 'countUnique' ? 'Count Unique' : typeof value === 'string' ? value.charAt(0).toUpperCase() + value.slice(1) : value
|
|
586
|
-
};
|
|
587
|
-
});
|
|
588
|
-
exports.AGGREGATION_TYPE_OPTIONS = AGGREGATION_TYPE_OPTIONS;
|
|
589
|
-
var linearFieldScaleFunctions = (_linearFieldScaleFunc = {}, (0, _defineProperty2["default"])(_linearFieldScaleFunc, CHANNEL_SCALES.color, [SCALE_TYPES.quantize, SCALE_TYPES.quantile]), (0, _defineProperty2["default"])(_linearFieldScaleFunc, CHANNEL_SCALES.radius, [SCALE_TYPES.sqrt]), (0, _defineProperty2["default"])(_linearFieldScaleFunc, CHANNEL_SCALES.size, [SCALE_TYPES.linear, SCALE_TYPES.sqrt, SCALE_TYPES.log]), _linearFieldScaleFunc);
|
|
590
|
-
exports.linearFieldScaleFunctions = linearFieldScaleFunctions;
|
|
591
|
-
var linearFieldAggrScaleFunctions = (_linearFieldAggrScale = {}, (0, _defineProperty2["default"])(_linearFieldAggrScale, CHANNEL_SCALES.colorAggr, (_CHANNEL_SCALES$color = {}, (0, _defineProperty2["default"])(_CHANNEL_SCALES$color, AGGREGATION_TYPES.average, [SCALE_TYPES.quantize, SCALE_TYPES.quantile]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$color, AGGREGATION_TYPES.maximum, [SCALE_TYPES.quantize, SCALE_TYPES.quantile]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$color, AGGREGATION_TYPES.minimum, [SCALE_TYPES.quantize, SCALE_TYPES.quantile]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$color, AGGREGATION_TYPES.median, [SCALE_TYPES.quantize, SCALE_TYPES.quantile]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$color, AGGREGATION_TYPES.stdev, [SCALE_TYPES.quantize, SCALE_TYPES.quantile]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$color, AGGREGATION_TYPES.sum, [SCALE_TYPES.quantize, SCALE_TYPES.quantile]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$color, AGGREGATION_TYPES.variance, [SCALE_TYPES.quantize, SCALE_TYPES.quantile]), _CHANNEL_SCALES$color)), (0, _defineProperty2["default"])(_linearFieldAggrScale, CHANNEL_SCALES.sizeAggr, (_CHANNEL_SCALES$sizeA = {}, (0, _defineProperty2["default"])(_CHANNEL_SCALES$sizeA, AGGREGATION_TYPES.average, [SCALE_TYPES.linear, SCALE_TYPES.sqrt, SCALE_TYPES.log]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$sizeA, AGGREGATION_TYPES.maximum, [SCALE_TYPES.linear, SCALE_TYPES.sqrt, SCALE_TYPES.log]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$sizeA, AGGREGATION_TYPES.minimum, [SCALE_TYPES.linear, SCALE_TYPES.sqrt, SCALE_TYPES.log]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$sizeA, AGGREGATION_TYPES.median, [SCALE_TYPES.linear, SCALE_TYPES.sqrt, SCALE_TYPES.log]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$sizeA, AGGREGATION_TYPES.stdev, [SCALE_TYPES.linear, SCALE_TYPES.sqrt, SCALE_TYPES.log]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$sizeA, AGGREGATION_TYPES.sum, [SCALE_TYPES.linear, SCALE_TYPES.sqrt, SCALE_TYPES.log]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$sizeA, AGGREGATION_TYPES.variance, [SCALE_TYPES.linear, SCALE_TYPES.sqrt, SCALE_TYPES.log]), _CHANNEL_SCALES$sizeA)), _linearFieldAggrScale);
|
|
592
|
-
exports.linearFieldAggrScaleFunctions = linearFieldAggrScaleFunctions;
|
|
593
|
-
var ordinalFieldScaleFunctions = (_ordinalFieldScaleFun = {}, (0, _defineProperty2["default"])(_ordinalFieldScaleFun, CHANNEL_SCALES.color, [SCALE_TYPES.ordinal]), (0, _defineProperty2["default"])(_ordinalFieldScaleFun, CHANNEL_SCALES.radius, [SCALE_TYPES.point]), (0, _defineProperty2["default"])(_ordinalFieldScaleFun, CHANNEL_SCALES.size, [SCALE_TYPES.point]), _ordinalFieldScaleFun);
|
|
594
|
-
exports.ordinalFieldScaleFunctions = ordinalFieldScaleFunctions;
|
|
595
|
-
var ordinalFieldAggrScaleFunctions = (_ordinalFieldAggrScal = {}, (0, _defineProperty2["default"])(_ordinalFieldAggrScal, CHANNEL_SCALES.colorAggr, (_CHANNEL_SCALES$color2 = {}, (0, _defineProperty2["default"])(_CHANNEL_SCALES$color2, AGGREGATION_TYPES.mode, [SCALE_TYPES.ordinal]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$color2, AGGREGATION_TYPES.countUnique, [SCALE_TYPES.quantize, SCALE_TYPES.quantile]), _CHANNEL_SCALES$color2)), (0, _defineProperty2["default"])(_ordinalFieldAggrScal, CHANNEL_SCALES.sizeAggr, {}), _ordinalFieldAggrScal);
|
|
596
|
-
exports.ordinalFieldAggrScaleFunctions = ordinalFieldAggrScaleFunctions;
|
|
597
|
-
var notSupportedScaleOpts = (_notSupportedScaleOpt = {}, (0, _defineProperty2["default"])(_notSupportedScaleOpt, CHANNEL_SCALES.color, []), (0, _defineProperty2["default"])(_notSupportedScaleOpt, CHANNEL_SCALES.radius, []), (0, _defineProperty2["default"])(_notSupportedScaleOpt, CHANNEL_SCALES.size, []), _notSupportedScaleOpt);
|
|
598
|
-
exports.notSupportedScaleOpts = notSupportedScaleOpts;
|
|
599
|
-
var notSupportAggrOpts = (_notSupportAggrOpts = {}, (0, _defineProperty2["default"])(_notSupportAggrOpts, CHANNEL_SCALES.colorAggr, {}), (0, _defineProperty2["default"])(_notSupportAggrOpts, CHANNEL_SCALES.sizeAggr, {}), _notSupportAggrOpts);
|
|
600
|
-
/**
|
|
601
|
-
* Default aggregation are based on ocunt
|
|
602
|
-
*/
|
|
603
|
-
|
|
604
|
-
exports.notSupportAggrOpts = notSupportAggrOpts;
|
|
605
|
-
var DEFAULT_AGGREGATION = (_DEFAULT_AGGREGATION = {}, (0, _defineProperty2["default"])(_DEFAULT_AGGREGATION, CHANNEL_SCALES.colorAggr, (0, _defineProperty2["default"])({}, AGGREGATION_TYPES.count, [SCALE_TYPES.quantize, SCALE_TYPES.quantile])), (0, _defineProperty2["default"])(_DEFAULT_AGGREGATION, CHANNEL_SCALES.sizeAggr, (0, _defineProperty2["default"])({}, AGGREGATION_TYPES.count, [SCALE_TYPES.linear, SCALE_TYPES.sqrt, SCALE_TYPES.log])), _DEFAULT_AGGREGATION);
|
|
606
|
-
/**
|
|
607
|
-
* Define what type of scale operation is allowed on each type of fields
|
|
608
|
-
*/
|
|
609
|
-
|
|
610
|
-
exports.DEFAULT_AGGREGATION = DEFAULT_AGGREGATION;
|
|
611
|
-
var FIELD_OPTS = (_FIELD_OPTS = {}, (0, _defineProperty2["default"])(_FIELD_OPTS, ALL_FIELD_TYPES.string, {
|
|
612
|
-
type: 'categorical',
|
|
613
|
-
scale: _objectSpread(_objectSpread({}, ordinalFieldScaleFunctions), ordinalFieldAggrScaleFunctions),
|
|
614
|
-
format: {
|
|
615
|
-
legend: function legend(d) {
|
|
616
|
-
return d;
|
|
617
|
-
},
|
|
618
|
-
tooltip: []
|
|
619
|
-
}
|
|
620
|
-
}), (0, _defineProperty2["default"])(_FIELD_OPTS, ALL_FIELD_TYPES.real, {
|
|
621
|
-
type: 'numerical',
|
|
622
|
-
scale: _objectSpread(_objectSpread({}, linearFieldScaleFunctions), linearFieldAggrScaleFunctions),
|
|
623
|
-
format: {
|
|
624
|
-
legend: function legend(d) {
|
|
625
|
-
return d;
|
|
626
|
-
},
|
|
627
|
-
tooltip: [_tooltip.TOOLTIP_FORMAT_TYPES.NONE, _tooltip.TOOLTIP_FORMAT_TYPES.DECIMAL, _tooltip.TOOLTIP_FORMAT_TYPES.PERCENTAGE]
|
|
628
|
-
}
|
|
629
|
-
}), (0, _defineProperty2["default"])(_FIELD_OPTS, ALL_FIELD_TYPES.timestamp, {
|
|
630
|
-
type: 'time',
|
|
631
|
-
scale: _objectSpread(_objectSpread({}, linearFieldScaleFunctions), notSupportAggrOpts),
|
|
632
|
-
format: {
|
|
633
|
-
legend: function legend(d) {
|
|
634
|
-
return d;
|
|
635
|
-
},
|
|
636
|
-
tooltip: [_tooltip.TOOLTIP_FORMAT_TYPES.NONE, _tooltip.TOOLTIP_FORMAT_TYPES.DATE, _tooltip.TOOLTIP_FORMAT_TYPES.DATE_TIME]
|
|
637
|
-
}
|
|
638
|
-
}), (0, _defineProperty2["default"])(_FIELD_OPTS, ALL_FIELD_TYPES.integer, {
|
|
639
|
-
type: 'numerical',
|
|
640
|
-
scale: _objectSpread(_objectSpread({}, linearFieldScaleFunctions), linearFieldAggrScaleFunctions),
|
|
641
|
-
format: {
|
|
642
|
-
legend: function legend(d) {
|
|
643
|
-
return d;
|
|
644
|
-
},
|
|
645
|
-
tooltip: [_tooltip.TOOLTIP_FORMAT_TYPES.NONE, _tooltip.TOOLTIP_FORMAT_TYPES.DECIMAL, _tooltip.TOOLTIP_FORMAT_TYPES.PERCENTAGE]
|
|
646
|
-
}
|
|
647
|
-
}), (0, _defineProperty2["default"])(_FIELD_OPTS, ALL_FIELD_TYPES["boolean"], {
|
|
648
|
-
type: 'boolean',
|
|
649
|
-
scale: _objectSpread(_objectSpread({}, ordinalFieldScaleFunctions), ordinalFieldAggrScaleFunctions),
|
|
650
|
-
format: {
|
|
651
|
-
legend: function legend(d) {
|
|
652
|
-
return d;
|
|
653
|
-
},
|
|
654
|
-
tooltip: [_tooltip.TOOLTIP_FORMAT_TYPES.NONE, _tooltip.TOOLTIP_FORMAT_TYPES.BOOLEAN]
|
|
655
|
-
}
|
|
656
|
-
}), (0, _defineProperty2["default"])(_FIELD_OPTS, ALL_FIELD_TYPES.date, {
|
|
657
|
-
type: 'time',
|
|
658
|
-
scale: _objectSpread(_objectSpread({}, ordinalFieldScaleFunctions), ordinalFieldAggrScaleFunctions),
|
|
659
|
-
format: {
|
|
660
|
-
legend: function legend(d) {
|
|
661
|
-
return d;
|
|
662
|
-
},
|
|
663
|
-
tooltip: [_tooltip.TOOLTIP_FORMAT_TYPES.NONE, _tooltip.TOOLTIP_FORMAT_TYPES.DATE]
|
|
664
|
-
}
|
|
665
|
-
}), (0, _defineProperty2["default"])(_FIELD_OPTS, ALL_FIELD_TYPES.geojson, {
|
|
666
|
-
type: 'geometry',
|
|
667
|
-
scale: _objectSpread(_objectSpread({}, notSupportedScaleOpts), notSupportAggrOpts),
|
|
668
|
-
format: {
|
|
669
|
-
legend: function legend(d) {
|
|
670
|
-
return '...';
|
|
671
|
-
},
|
|
672
|
-
tooltip: []
|
|
673
|
-
}
|
|
674
|
-
}), (0, _defineProperty2["default"])(_FIELD_OPTS, ALL_FIELD_TYPES.geoarrow, {
|
|
675
|
-
type: 'geometry',
|
|
676
|
-
scale: _objectSpread(_objectSpread({}, notSupportedScaleOpts), notSupportAggrOpts),
|
|
677
|
-
format: {
|
|
678
|
-
legend: function legend(d) {
|
|
679
|
-
return '...';
|
|
680
|
-
},
|
|
681
|
-
tooltip: []
|
|
682
|
-
}
|
|
683
|
-
}), (0, _defineProperty2["default"])(_FIELD_OPTS, ALL_FIELD_TYPES.object, {
|
|
684
|
-
type: 'numerical',
|
|
685
|
-
scale: {},
|
|
686
|
-
format: {
|
|
687
|
-
legend: function legend(d) {
|
|
688
|
-
return '...';
|
|
689
|
-
},
|
|
690
|
-
tooltip: []
|
|
691
|
-
}
|
|
692
|
-
}), (0, _defineProperty2["default"])(_FIELD_OPTS, ALL_FIELD_TYPES.array, {
|
|
693
|
-
type: 'numerical',
|
|
694
|
-
scale: {},
|
|
695
|
-
format: {
|
|
696
|
-
legend: function legend(d) {
|
|
697
|
-
return '...';
|
|
698
|
-
},
|
|
699
|
-
tooltip: []
|
|
700
|
-
}
|
|
701
|
-
}), _FIELD_OPTS);
|
|
702
|
-
exports.FIELD_OPTS = FIELD_OPTS;
|
|
703
|
-
var CHANNEL_SCALE_SUPPORTED_FIELDS = Object.keys(CHANNEL_SCALES).reduce(function (accu, key) {
|
|
704
|
-
return _objectSpread(_objectSpread({}, accu), {}, (0, _defineProperty2["default"])({}, key, Object.keys(FIELD_OPTS).filter(function (ft) {
|
|
705
|
-
return FIELD_OPTS[ft].scale[key] && Object.keys(FIELD_OPTS[ft].scale[key]).length;
|
|
706
|
-
})));
|
|
707
|
-
}, {});
|
|
708
|
-
exports.CHANNEL_SCALE_SUPPORTED_FIELDS = CHANNEL_SCALE_SUPPORTED_FIELDS;
|
|
709
|
-
var DEFAULT_LAYER_COLOR = {
|
|
710
|
-
tripArc: '#9226C6',
|
|
711
|
-
begintrip_lat: '#1E96BE',
|
|
712
|
-
dropoff_lat: '#FF991F',
|
|
713
|
-
request_lat: '#52A353'
|
|
714
|
-
}; // let user pass in default tooltip fields
|
|
715
|
-
|
|
716
|
-
exports.DEFAULT_LAYER_COLOR = DEFAULT_LAYER_COLOR;
|
|
717
|
-
var DEFAULT_TOOLTIP_FIELDS = [];
|
|
718
|
-
exports.DEFAULT_TOOLTIP_FIELDS = DEFAULT_TOOLTIP_FIELDS;
|
|
719
|
-
var NO_VALUE_COLOR = [0, 0, 0, 0];
|
|
720
|
-
exports.NO_VALUE_COLOR = NO_VALUE_COLOR;
|
|
721
|
-
var DEFAULT_PICKING_RADIUS = 3;
|
|
722
|
-
exports.DEFAULT_PICKING_RADIUS = DEFAULT_PICKING_RADIUS;
|
|
723
|
-
var OVERLAY_BLENDINGS = {
|
|
724
|
-
normal: {
|
|
725
|
-
label: 'overlayBlending.normal',
|
|
726
|
-
value: 'normal'
|
|
727
|
-
},
|
|
728
|
-
screen: {
|
|
729
|
-
label: 'overlayBlending.screen',
|
|
730
|
-
value: 'screen'
|
|
731
|
-
},
|
|
732
|
-
darken: {
|
|
733
|
-
label: 'overlayBlending.darken',
|
|
734
|
-
value: 'darken'
|
|
735
|
-
}
|
|
736
|
-
};
|
|
737
|
-
exports.OVERLAY_BLENDINGS = OVERLAY_BLENDINGS;
|
|
738
|
-
var LAYER_BLENDINGS = {
|
|
739
|
-
additive: {
|
|
740
|
-
label: 'layerBlending.additive',
|
|
741
|
-
blendFunc: ['SRC_ALPHA', 'DST_ALPHA'],
|
|
742
|
-
blendEquation: 'FUNC_ADD'
|
|
743
|
-
},
|
|
744
|
-
normal: {
|
|
745
|
-
// reference to
|
|
746
|
-
// https://limnu.com/webgl-blending-youre-probably-wrong/
|
|
747
|
-
label: 'layerBlending.normal',
|
|
748
|
-
blendFunc: ['SRC_ALPHA', 'ONE_MINUS_SRC_ALPHA', 'ONE', 'ONE_MINUS_SRC_ALPHA'],
|
|
749
|
-
blendEquation: ['FUNC_ADD', 'FUNC_ADD']
|
|
750
|
-
},
|
|
751
|
-
subtractive: {
|
|
752
|
-
label: 'layerBlending.subtractive',
|
|
753
|
-
blendFunc: ['ONE', 'ONE_MINUS_DST_COLOR', 'SRC_ALPHA', 'DST_ALPHA'],
|
|
754
|
-
blendEquation: ['FUNC_SUBTRACT', 'FUNC_ADD']
|
|
755
|
-
}
|
|
756
|
-
};
|
|
757
|
-
exports.LAYER_BLENDINGS = LAYER_BLENDINGS;
|
|
758
|
-
var MAX_DEFAULT_TOOLTIPS = 5;
|
|
759
|
-
exports.MAX_DEFAULT_TOOLTIPS = MAX_DEFAULT_TOOLTIPS;
|
|
760
|
-
var RESOLUTIONS = (0, _keymirror["default"])({
|
|
761
|
-
ONE_X: null,
|
|
762
|
-
TWO_X: null
|
|
763
|
-
});
|
|
764
|
-
exports.RESOLUTIONS = RESOLUTIONS;
|
|
765
|
-
var EXPORT_IMG_RATIOS = (0, _keymirror["default"])({
|
|
766
|
-
SCREEN: null,
|
|
767
|
-
FOUR_BY_THREE: null,
|
|
768
|
-
SIXTEEN_BY_NINE: null,
|
|
769
|
-
CUSTOM: null
|
|
770
|
-
});
|
|
771
|
-
exports.EXPORT_IMG_RATIOS = EXPORT_IMG_RATIOS;
|
|
772
|
-
var ScreenRatioOption = {
|
|
773
|
-
id: EXPORT_IMG_RATIOS.SCREEN,
|
|
774
|
-
label: 'modal.exportImage.ratioOriginalScreen',
|
|
775
|
-
getSize: function getSize(screenW, screenH) {
|
|
776
|
-
return {
|
|
777
|
-
width: screenW,
|
|
778
|
-
height: screenH
|
|
779
|
-
};
|
|
780
|
-
}
|
|
781
|
-
};
|
|
782
|
-
exports.ScreenRatioOption = ScreenRatioOption;
|
|
783
|
-
var CustomRatioOption = {
|
|
784
|
-
id: EXPORT_IMG_RATIOS.CUSTOM,
|
|
785
|
-
hidden: true,
|
|
786
|
-
label: 'modal.exportImage.ratioCustom',
|
|
787
|
-
getSize: function getSize(mapW, mapH) {
|
|
788
|
-
return {
|
|
789
|
-
width: mapW,
|
|
790
|
-
height: mapH
|
|
791
|
-
};
|
|
792
|
-
}
|
|
793
|
-
};
|
|
794
|
-
exports.CustomRatioOption = CustomRatioOption;
|
|
795
|
-
var FourByThreeRatioOption = {
|
|
796
|
-
id: EXPORT_IMG_RATIOS.FOUR_BY_THREE,
|
|
797
|
-
label: 'modal.exportImage.ratio4_3',
|
|
798
|
-
getSize: function getSize(screenW, screenH) {
|
|
799
|
-
return {
|
|
800
|
-
width: screenW,
|
|
801
|
-
height: Math.round(screenW * 0.75)
|
|
802
|
-
};
|
|
803
|
-
}
|
|
804
|
-
};
|
|
805
|
-
exports.FourByThreeRatioOption = FourByThreeRatioOption;
|
|
806
|
-
var SixteenByNineRatioOption = {
|
|
807
|
-
id: EXPORT_IMG_RATIOS.SIXTEEN_BY_NINE,
|
|
808
|
-
label: 'modal.exportImage.ratio16_9',
|
|
809
|
-
getSize: function getSize(screenW, screenH) {
|
|
810
|
-
return {
|
|
811
|
-
width: screenW,
|
|
812
|
-
height: Math.round(screenW * 0.5625)
|
|
813
|
-
};
|
|
814
|
-
}
|
|
815
|
-
};
|
|
816
|
-
exports.SixteenByNineRatioOption = SixteenByNineRatioOption;
|
|
817
|
-
var EXPORT_IMG_RATIO_OPTIONS = [ScreenRatioOption, CustomRatioOption, FourByThreeRatioOption, SixteenByNineRatioOption];
|
|
818
|
-
exports.EXPORT_IMG_RATIO_OPTIONS = EXPORT_IMG_RATIO_OPTIONS;
|
|
819
|
-
var OneXResolutionOption = {
|
|
820
|
-
id: RESOLUTIONS.ONE_X,
|
|
821
|
-
label: '1x',
|
|
822
|
-
available: true,
|
|
823
|
-
scale: 1,
|
|
824
|
-
getSize: function getSize(screenW, screenH) {
|
|
825
|
-
return {
|
|
826
|
-
width: screenW,
|
|
827
|
-
height: screenH
|
|
828
|
-
};
|
|
829
|
-
}
|
|
830
|
-
};
|
|
831
|
-
exports.OneXResolutionOption = OneXResolutionOption;
|
|
832
|
-
var TwoXResolutionOption = {
|
|
833
|
-
id: RESOLUTIONS.TWO_X,
|
|
834
|
-
label: '2x',
|
|
835
|
-
available: true,
|
|
836
|
-
scale: 2,
|
|
837
|
-
getSize: function getSize(screenW, screenH) {
|
|
838
|
-
return {
|
|
839
|
-
width: screenW * 2,
|
|
840
|
-
height: screenH * 2
|
|
841
|
-
};
|
|
842
|
-
}
|
|
843
|
-
};
|
|
844
|
-
exports.TwoXResolutionOption = TwoXResolutionOption;
|
|
845
|
-
var EXPORT_IMG_RESOLUTION_OPTIONS = [OneXResolutionOption, TwoXResolutionOption];
|
|
846
|
-
exports.EXPORT_IMG_RESOLUTION_OPTIONS = EXPORT_IMG_RESOLUTION_OPTIONS;
|
|
847
|
-
var EXPORT_DATA_TYPE = (0, _keymirror["default"])({
|
|
848
|
-
CSV: null // SHAPEFILE: null,
|
|
849
|
-
// JSON: null,
|
|
850
|
-
// GEOJSON: null,
|
|
851
|
-
// TOPOJSON: null
|
|
852
|
-
|
|
853
|
-
});
|
|
854
|
-
exports.EXPORT_DATA_TYPE = EXPORT_DATA_TYPE;
|
|
855
|
-
var EXPORT_DATA_TYPE_OPTIONS = [{
|
|
856
|
-
id: EXPORT_DATA_TYPE.CSV,
|
|
857
|
-
label: EXPORT_DATA_TYPE.CSV.toLowerCase(),
|
|
858
|
-
available: true
|
|
859
|
-
} // {
|
|
860
|
-
// id: EXPORT_DATA_TYPE.SHAPEFILE,
|
|
861
|
-
// label: 'shapefile',
|
|
862
|
-
// available: false
|
|
863
|
-
// },
|
|
864
|
-
// {
|
|
865
|
-
// id: EXPORT_DATA_TYPE.JSON,
|
|
866
|
-
// label: 'json',
|
|
867
|
-
// available: false
|
|
868
|
-
// },
|
|
869
|
-
// {
|
|
870
|
-
// id: EXPORT_DATA_TYPE.GEOJSON,
|
|
871
|
-
// label: 'geojson',
|
|
872
|
-
// available: false
|
|
873
|
-
// },
|
|
874
|
-
// {
|
|
875
|
-
// id: EXPORT_DATA_TYPE.TOPOJSON,
|
|
876
|
-
// label: 'topojson',
|
|
877
|
-
// available: false
|
|
878
|
-
// }
|
|
879
|
-
]; // Export map types
|
|
880
|
-
|
|
881
|
-
exports.EXPORT_DATA_TYPE_OPTIONS = EXPORT_DATA_TYPE_OPTIONS;
|
|
882
|
-
var EXPORT_MAP_FORMATS = (0, _keymirror["default"])({
|
|
883
|
-
HTML: null,
|
|
884
|
-
JSON: null
|
|
885
|
-
});
|
|
886
|
-
exports.EXPORT_MAP_FORMATS = EXPORT_MAP_FORMATS;
|
|
887
|
-
var EXPORT_HTML_MAP_MODES = (0, _keymirror["default"])({
|
|
888
|
-
READ: null,
|
|
889
|
-
EDIT: null
|
|
890
|
-
}); // Export map options
|
|
891
|
-
|
|
892
|
-
exports.EXPORT_HTML_MAP_MODES = EXPORT_HTML_MAP_MODES;
|
|
893
|
-
var EXPORT_MAP_FORMAT_OPTIONS = Object.entries(EXPORT_MAP_FORMATS).map(function (entry) {
|
|
894
|
-
return {
|
|
895
|
-
id: entry[0],
|
|
896
|
-
label: entry[1].toLowerCase(),
|
|
897
|
-
available: true
|
|
898
|
-
};
|
|
899
|
-
});
|
|
900
|
-
exports.EXPORT_MAP_FORMAT_OPTIONS = EXPORT_MAP_FORMAT_OPTIONS;
|
|
901
|
-
|
|
902
|
-
function getHTMLMapModeTileUrl(mode) {
|
|
903
|
-
return "https://d1a3f4spazzrp4.cloudfront.net/kepler.gl/documentation/map-".concat(mode.toLowerCase(), "-mode.png");
|
|
904
|
-
}
|
|
905
|
-
|
|
906
|
-
var EXPORT_HTML_MAP_MODE_OPTIONS = Object.entries(EXPORT_HTML_MAP_MODES).map(function (entry) {
|
|
907
|
-
return {
|
|
908
|
-
id: entry[0],
|
|
909
|
-
label: "modal.exportMap.html.".concat(entry[1].toLowerCase()),
|
|
910
|
-
available: true,
|
|
911
|
-
url: getHTMLMapModeTileUrl(entry[1])
|
|
912
|
-
};
|
|
913
|
-
});
|
|
914
|
-
exports.EXPORT_HTML_MAP_MODE_OPTIONS = EXPORT_HTML_MAP_MODE_OPTIONS;
|
|
915
|
-
var DEFAULT_UUID_COUNT = 6;
|
|
916
|
-
exports.DEFAULT_UUID_COUNT = DEFAULT_UUID_COUNT;
|
|
917
|
-
var DEFAULT_NOTIFICATION_MESSAGE = 'MESSAGE_NOT_PROVIDED';
|
|
918
|
-
exports.DEFAULT_NOTIFICATION_MESSAGE = DEFAULT_NOTIFICATION_MESSAGE;
|
|
919
|
-
var DEFAULT_NOTIFICATION_TYPES = (0, _keymirror["default"])({
|
|
920
|
-
info: null,
|
|
921
|
-
error: null,
|
|
922
|
-
warning: null,
|
|
923
|
-
success: null
|
|
924
|
-
});
|
|
925
|
-
exports.DEFAULT_NOTIFICATION_TYPES = DEFAULT_NOTIFICATION_TYPES;
|
|
926
|
-
var DEFAULT_NOTIFICATION_TOPICS = (0, _keymirror["default"])({
|
|
927
|
-
global: null,
|
|
928
|
-
file: null
|
|
929
|
-
}); // Minimum time between identical notifications about deck.gl errors
|
|
930
|
-
|
|
931
|
-
exports.DEFAULT_NOTIFICATION_TOPICS = DEFAULT_NOTIFICATION_TOPICS;
|
|
932
|
-
var THROTTLE_NOTIFICATION_TIME = 330; // Animation
|
|
933
|
-
|
|
934
|
-
exports.THROTTLE_NOTIFICATION_TIME = THROTTLE_NOTIFICATION_TIME;
|
|
935
|
-
var BASE_SPEED = 600;
|
|
936
|
-
exports.BASE_SPEED = BASE_SPEED;
|
|
937
|
-
var FPS = 60;
|
|
938
|
-
/**
|
|
939
|
-
* 4 Animation Window Types
|
|
940
|
-
* 1. free
|
|
941
|
-
* |-> |->
|
|
942
|
-
* Current time is a fixed range, animation controller calls next animation frames continuously to animation a moving window
|
|
943
|
-
* The increment id based on domain / BASE_SPEED * SPEED
|
|
944
|
-
*
|
|
945
|
-
* 2. incremental
|
|
946
|
-
* | |->
|
|
947
|
-
* Same as free, current time is a growing range, only the max value of range increment during animation.
|
|
948
|
-
* The increment is also based on domain / BASE_SPEED * SPEED
|
|
949
|
-
*
|
|
950
|
-
* 3. point
|
|
951
|
-
* o -> o
|
|
952
|
-
* Current time is a point, animation controller calls next animation frame continuously to animation a moving point
|
|
953
|
-
* The increment is based on domain / BASE_SPEED * SPEED
|
|
954
|
-
*
|
|
955
|
-
* 4. interval
|
|
956
|
-
* o ~> o
|
|
957
|
-
* Current time is a point. An array of sorted time steps need to be provided.
|
|
958
|
-
* animation controller calls next animation at a interval when the point jumps to the next step
|
|
959
|
-
*/
|
|
960
|
-
|
|
961
|
-
exports.FPS = FPS;
|
|
962
|
-
var ANIMATION_WINDOW = (0, _keymirror["default"])({
|
|
963
|
-
free: null,
|
|
964
|
-
incremental: null,
|
|
965
|
-
point: null,
|
|
966
|
-
interval: null
|
|
967
|
-
});
|
|
968
|
-
exports.ANIMATION_WINDOW = ANIMATION_WINDOW;
|
|
969
|
-
var DEFAULT_TIME_FORMAT = 'MM/DD/YY HH:mm:ssa';
|
|
970
|
-
exports.DEFAULT_TIME_FORMAT = DEFAULT_TIME_FORMAT;
|
|
971
|
-
var SPEED_CONTROL_RANGE = [0, 10];
|
|
972
|
-
exports.SPEED_CONTROL_RANGE = SPEED_CONTROL_RANGE;
|
|
973
|
-
var SPEED_CONTROL_STEP = 0.001; // Geocoder
|
|
974
|
-
|
|
975
|
-
exports.SPEED_CONTROL_STEP = SPEED_CONTROL_STEP;
|
|
976
|
-
var GEOCODER_DATASET_NAME = 'geocoder_dataset';
|
|
977
|
-
exports.GEOCODER_DATASET_NAME = GEOCODER_DATASET_NAME;
|
|
978
|
-
var GEOCODER_LAYER_ID = 'geocoder_layer';
|
|
979
|
-
exports.GEOCODER_LAYER_ID = GEOCODER_LAYER_ID;
|
|
980
|
-
var GEOCODER_GEO_OFFSET = 0.05;
|
|
981
|
-
exports.GEOCODER_GEO_OFFSET = GEOCODER_GEO_OFFSET;
|
|
982
|
-
var GEOCODER_ICON_COLOR = [255, 0, 0];
|
|
983
|
-
exports.GEOCODER_ICON_COLOR = GEOCODER_ICON_COLOR;
|
|
984
|
-
var GEOCODER_ICON_SIZE = 80; // Editor
|
|
985
|
-
|
|
986
|
-
exports.GEOCODER_ICON_SIZE = GEOCODER_ICON_SIZE;
|
|
987
|
-
var EDITOR_LAYER_ID = 'kepler_editor_layer';
|
|
988
|
-
exports.EDITOR_LAYER_ID = EDITOR_LAYER_ID;
|
|
989
|
-
var EDITOR_LAYER_PICKING_RADIUS = 6;
|
|
990
|
-
exports.EDITOR_LAYER_PICKING_RADIUS = EDITOR_LAYER_PICKING_RADIUS;
|
|
991
|
-
var EDITOR_MODES = {
|
|
992
|
-
DRAW_POLYGON: 'DRAW_POLYGON',
|
|
993
|
-
DRAW_RECTANGLE: 'DRAW_RECTANGLE',
|
|
994
|
-
EDIT: 'EDIT_VERTEX'
|
|
995
|
-
};
|
|
996
|
-
exports.EDITOR_MODES = EDITOR_MODES;
|
|
997
|
-
var PLOT_TYPES = (0, _keymirror["default"])({
|
|
998
|
-
histogram: null,
|
|
999
|
-
lineChart: null
|
|
1000
|
-
}); // Filter
|
|
1001
|
-
|
|
1002
|
-
exports.PLOT_TYPES = PLOT_TYPES;
|
|
1003
|
-
var INIT_FILTER_ITEMS_IN_DROPDOWN = 100; // GPU Filtering
|
|
1004
|
-
|
|
1005
|
-
/**
|
|
1006
|
-
* Max number of filter value buffers that deck.gl provides
|
|
1007
|
-
*/
|
|
1008
|
-
|
|
1009
|
-
exports.INIT_FILTER_ITEMS_IN_DROPDOWN = INIT_FILTER_ITEMS_IN_DROPDOWN;
|
|
1010
|
-
var MAX_GPU_FILTERS = 4;
|
|
1011
|
-
exports.MAX_GPU_FILTERS = MAX_GPU_FILTERS;
|
|
1012
|
-
var MAP_THUMBNAIL_DIMENSION = {
|
|
1013
|
-
width: 300,
|
|
1014
|
-
height: 200
|
|
1015
|
-
};
|
|
1016
|
-
exports.MAP_THUMBNAIL_DIMENSION = MAP_THUMBNAIL_DIMENSION;
|
|
1017
|
-
var MAP_INFO_CHARACTER = {
|
|
1018
|
-
title: 100,
|
|
1019
|
-
description: 100
|
|
1020
|
-
}; // Load data
|
|
1021
|
-
|
|
1022
|
-
exports.MAP_INFO_CHARACTER = MAP_INFO_CHARACTER;
|
|
1023
|
-
var LOADING_METHODS = (0, _keymirror["default"])({
|
|
1024
|
-
upload: null,
|
|
1025
|
-
storage: null
|
|
1026
|
-
});
|
|
1027
|
-
exports.LOADING_METHODS = LOADING_METHODS;
|
|
1028
|
-
var DEFAULT_FEATURE_FLAGS = {};
|
|
1029
|
-
exports.DEFAULT_FEATURE_FLAGS = DEFAULT_FEATURE_FLAGS;
|
|
1030
|
-
var DATASET_FORMATS = (0, _keymirror["default"])({
|
|
1031
|
-
row: null,
|
|
1032
|
-
geojson: null,
|
|
1033
|
-
csv: null,
|
|
1034
|
-
keplergl: null,
|
|
1035
|
-
arrow: null
|
|
1036
|
-
});
|
|
1037
|
-
exports.DATASET_FORMATS = DATASET_FORMATS;
|
|
1038
|
-
var MAP_CONTROLS = (0, _keymirror["default"])({
|
|
1039
|
-
visibleLayers: null,
|
|
1040
|
-
mapLegend: null,
|
|
1041
|
-
toggle3d: null,
|
|
1042
|
-
splitMap: null,
|
|
1043
|
-
mapDraw: null,
|
|
1044
|
-
mapLocale: null,
|
|
1045
|
-
effect: null
|
|
1046
|
-
});
|
|
1047
|
-
/**
|
|
1048
|
-
* A multiplier for screen-space width/scale for Arc, Line, Icon and Text layers.
|
|
1049
|
-
* Required in order to maintain the same appearance after upgrading to deck.gl v8.5.
|
|
1050
|
-
* https://github.com/visgl/deck.gl/blob/master/docs/upgrade-guide.md
|
|
1051
|
-
*/
|
|
1052
|
-
|
|
1053
|
-
exports.MAP_CONTROLS = MAP_CONTROLS;
|
|
1054
|
-
var PROJECTED_PIXEL_SIZE_MULTIPLIER = 2 / 3;
|
|
1055
|
-
/**
|
|
1056
|
-
* Maximum value for text outline width
|
|
1057
|
-
*/
|
|
1058
|
-
|
|
1059
|
-
exports.PROJECTED_PIXEL_SIZE_MULTIPLIER = PROJECTED_PIXEL_SIZE_MULTIPLIER;
|
|
1060
|
-
var TEXT_OUTLINE_MULTIPLIER = 5;
|
|
1061
|
-
exports.TEXT_OUTLINE_MULTIPLIER = TEXT_OUTLINE_MULTIPLIER;
|
|
1062
|
-
var dataTestIds = {
|
|
1063
|
-
infoIcon: 'info-icon',
|
|
1064
|
-
warningIcon: 'warning-icon',
|
|
1065
|
-
errorIcon: 'error-icon',
|
|
1066
|
-
successIcon: 'success-icon',
|
|
1067
|
-
checkmarkIcon: 'checkmark-icon',
|
|
1068
|
-
sortableLayerItem: 'sortable-layer-item',
|
|
1069
|
-
staticLayerItem: 'static-layer-item',
|
|
1070
|
-
layerTitleEditor: 'layer__title__editor',
|
|
1071
|
-
removeLayerAction: 'remove-layer-action',
|
|
1072
|
-
layerPanel: 'layer-panel',
|
|
1073
|
-
sortableEffectItem: 'sortable-effect-item',
|
|
1074
|
-
staticEffectItem: 'static-effect-item',
|
|
1075
|
-
providerLoading: 'provider-loading',
|
|
1076
|
-
providerMapInfoPanel: 'provider-map-info-panel',
|
|
1077
|
-
providerSelect: 'provider-select',
|
|
1078
|
-
cloudHeader: 'cloud-header',
|
|
1079
|
-
providerShareMap: 'provider-share-map'
|
|
1080
|
-
}; // Effects
|
|
1081
|
-
|
|
1082
|
-
exports.dataTestIds = dataTestIds;
|
|
1083
|
-
var DEFAULT_TIMEZONE = 'UTC';
|
|
1084
|
-
exports.DEFAULT_TIMEZONE = DEFAULT_TIMEZONE;
|
|
1085
|
-
var DEFAULT_POST_PROCESSING_EFFECT_TYPE = 'ink';
|
|
1086
|
-
exports.DEFAULT_POST_PROCESSING_EFFECT_TYPE = DEFAULT_POST_PROCESSING_EFFECT_TYPE;
|
|
1087
|
-
var DEFAULT_LIGHT_COLOR = [255, 255, 255];
|
|
1088
|
-
exports.DEFAULT_LIGHT_COLOR = DEFAULT_LIGHT_COLOR;
|
|
1089
|
-
var DEFAULT_LIGHT_INTENSITY = 1;
|
|
1090
|
-
exports.DEFAULT_LIGHT_INTENSITY = DEFAULT_LIGHT_INTENSITY;
|
|
1091
|
-
var DEFAULT_SHADOW_INTENSITY = 0.5;
|
|
1092
|
-
exports.DEFAULT_SHADOW_INTENSITY = DEFAULT_SHADOW_INTENSITY;
|
|
1093
|
-
var DEFAULT_SHADOW_COLOR = [0, 0, 0];
|
|
1094
|
-
exports.DEFAULT_SHADOW_COLOR = DEFAULT_SHADOW_COLOR;
|
|
1095
|
-
var LIGHT_AND_SHADOW_EFFECT_TIME_MODES = {
|
|
1096
|
-
pick: 'pick',
|
|
1097
|
-
current: 'current',
|
|
1098
|
-
animation: 'animation'
|
|
1099
|
-
};
|
|
1100
|
-
exports.LIGHT_AND_SHADOW_EFFECT_TIME_MODES = LIGHT_AND_SHADOW_EFFECT_TIME_MODES;
|
|
1101
|
-
var DEFAULT_LIGHT_AND_SHADOW_PROPS = {
|
|
1102
|
-
timestamp: Date.now(),
|
|
1103
|
-
timeMode: LIGHT_AND_SHADOW_EFFECT_TIME_MODES.pick,
|
|
1104
|
-
shadowIntensity: DEFAULT_SHADOW_INTENSITY,
|
|
1105
|
-
shadowColor: [].concat(DEFAULT_SHADOW_COLOR),
|
|
1106
|
-
sunLightColor: [].concat(DEFAULT_LIGHT_COLOR),
|
|
1107
|
-
sunLightIntensity: DEFAULT_LIGHT_INTENSITY,
|
|
1108
|
-
ambientLightColor: [].concat(DEFAULT_LIGHT_COLOR),
|
|
1109
|
-
ambientLightIntensity: DEFAULT_LIGHT_INTENSITY
|
|
1110
|
-
};
|
|
1111
|
-
exports.DEFAULT_LIGHT_AND_SHADOW_PROPS = DEFAULT_LIGHT_AND_SHADOW_PROPS;
|
|
1112
|
-
var LIGHT_AND_SHADOW_EFFECT = {
|
|
1113
|
-
type: 'lightAndShadow',
|
|
1114
|
-
name: 'Light & Shadow',
|
|
1115
|
-
parameters: [{
|
|
1116
|
-
name: 'timestamp',
|
|
1117
|
-
min: 0,
|
|
1118
|
-
max: Number.MAX_SAFE_INTEGER
|
|
1119
|
-
}, {
|
|
1120
|
-
name: 'shadowIntensity',
|
|
1121
|
-
min: 0,
|
|
1122
|
-
max: 1,
|
|
1123
|
-
defaultValue: DEFAULT_SHADOW_INTENSITY
|
|
1124
|
-
}, {
|
|
1125
|
-
name: 'sunLightIntensity',
|
|
1126
|
-
min: 0,
|
|
1127
|
-
max: 1,
|
|
1128
|
-
defaultValue: DEFAULT_LIGHT_INTENSITY
|
|
1129
|
-
}, {
|
|
1130
|
-
name: 'ambientLightIntensity',
|
|
1131
|
-
min: 0,
|
|
1132
|
-
max: 1,
|
|
1133
|
-
defaultValue: DEFAULT_LIGHT_INTENSITY
|
|
1134
|
-
}, {
|
|
1135
|
-
name: 'shadowColor',
|
|
1136
|
-
type: 'color',
|
|
1137
|
-
min: 0,
|
|
1138
|
-
max: 255,
|
|
1139
|
-
defaultValue: DEFAULT_SHADOW_COLOR
|
|
1140
|
-
}, {
|
|
1141
|
-
name: 'sunLightColor',
|
|
1142
|
-
type: 'color',
|
|
1143
|
-
min: 0,
|
|
1144
|
-
max: 255,
|
|
1145
|
-
defaultValue: DEFAULT_LIGHT_COLOR
|
|
1146
|
-
}, {
|
|
1147
|
-
name: 'ambientLightColor',
|
|
1148
|
-
type: 'color',
|
|
1149
|
-
min: 0,
|
|
1150
|
-
max: 255,
|
|
1151
|
-
defaultValue: DEFAULT_LIGHT_COLOR
|
|
1152
|
-
}]
|
|
1153
|
-
};
|
|
1154
|
-
exports.LIGHT_AND_SHADOW_EFFECT = LIGHT_AND_SHADOW_EFFECT;
|
|
1155
|
-
var POSTPROCESSING_EFFECTS = {
|
|
1156
|
-
ink: {
|
|
1157
|
-
type: 'ink',
|
|
1158
|
-
name: 'Ink',
|
|
1159
|
-
parameters: [{
|
|
1160
|
-
name: 'strength',
|
|
1161
|
-
min: 0,
|
|
1162
|
-
max: 1
|
|
1163
|
-
}]
|
|
1164
|
-
},
|
|
1165
|
-
brightnessContrast: {
|
|
1166
|
-
type: 'brightnessContrast',
|
|
1167
|
-
name: 'Brightness & Contrast',
|
|
1168
|
-
parameters: [{
|
|
1169
|
-
name: 'brightness',
|
|
1170
|
-
min: -1,
|
|
1171
|
-
max: 1
|
|
1172
|
-
}, {
|
|
1173
|
-
name: 'contrast',
|
|
1174
|
-
min: -1,
|
|
1175
|
-
max: 1
|
|
1176
|
-
}]
|
|
1177
|
-
},
|
|
1178
|
-
hueSaturation: {
|
|
1179
|
-
type: 'hueSaturation',
|
|
1180
|
-
name: 'Hue & Saturation',
|
|
1181
|
-
parameters: [{
|
|
1182
|
-
name: 'hue',
|
|
1183
|
-
min: -1,
|
|
1184
|
-
max: 1
|
|
1185
|
-
}, {
|
|
1186
|
-
name: 'saturation',
|
|
1187
|
-
defaultValue: 0.25,
|
|
1188
|
-
min: -1,
|
|
1189
|
-
max: 1
|
|
1190
|
-
}]
|
|
1191
|
-
},
|
|
1192
|
-
vibrance: {
|
|
1193
|
-
type: 'vibrance',
|
|
1194
|
-
name: 'Vibrance',
|
|
1195
|
-
parameters: [{
|
|
1196
|
-
name: 'amount',
|
|
1197
|
-
defaultValue: 0.5,
|
|
1198
|
-
min: -1,
|
|
1199
|
-
max: 1
|
|
1200
|
-
}]
|
|
1201
|
-
},
|
|
1202
|
-
sepia: {
|
|
1203
|
-
type: 'sepia',
|
|
1204
|
-
name: 'Sepia',
|
|
1205
|
-
parameters: [{
|
|
1206
|
-
name: 'amount',
|
|
1207
|
-
min: 0,
|
|
1208
|
-
max: 1
|
|
1209
|
-
}]
|
|
1210
|
-
},
|
|
1211
|
-
dotScreen: {
|
|
1212
|
-
type: 'dotScreen',
|
|
1213
|
-
name: 'Dot Screen',
|
|
1214
|
-
parameters: [{
|
|
1215
|
-
name: 'angle',
|
|
1216
|
-
min: 0,
|
|
1217
|
-
max: Math.PI / 2
|
|
1218
|
-
}, {
|
|
1219
|
-
name: 'size',
|
|
1220
|
-
min: 1,
|
|
1221
|
-
max: 20
|
|
1222
|
-
}, {
|
|
1223
|
-
name: 'center',
|
|
1224
|
-
type: 'array',
|
|
1225
|
-
label: ['Center X', 'Center Y'],
|
|
1226
|
-
defaultValue: [0.5, 0.5],
|
|
1227
|
-
min: 0,
|
|
1228
|
-
max: 1
|
|
1229
|
-
}]
|
|
1230
|
-
},
|
|
1231
|
-
colorHalftone: {
|
|
1232
|
-
type: 'colorHalftone',
|
|
1233
|
-
name: 'Color Halftone',
|
|
1234
|
-
parameters: [{
|
|
1235
|
-
name: 'angle',
|
|
1236
|
-
min: 0,
|
|
1237
|
-
max: Math.PI / 2
|
|
1238
|
-
}, {
|
|
1239
|
-
name: 'size',
|
|
1240
|
-
min: 1,
|
|
1241
|
-
max: 20
|
|
1242
|
-
}, {
|
|
1243
|
-
name: 'center',
|
|
1244
|
-
type: 'array',
|
|
1245
|
-
label: ['Center X', 'Center Y'],
|
|
1246
|
-
defaultValue: [0.5, 0.5],
|
|
1247
|
-
min: 0,
|
|
1248
|
-
max: 1
|
|
1249
|
-
}]
|
|
1250
|
-
},
|
|
1251
|
-
noise: {
|
|
1252
|
-
type: 'noise',
|
|
1253
|
-
name: 'Noise',
|
|
1254
|
-
parameters: [{
|
|
1255
|
-
name: 'amount',
|
|
1256
|
-
min: 0,
|
|
1257
|
-
max: 1
|
|
1258
|
-
}]
|
|
1259
|
-
},
|
|
1260
|
-
triangleBlur: {
|
|
1261
|
-
type: 'triangleBlur',
|
|
1262
|
-
name: 'Blur (Triangle)',
|
|
1263
|
-
parameters: [{
|
|
1264
|
-
name: 'radius',
|
|
1265
|
-
min: 0,
|
|
1266
|
-
max: 100
|
|
1267
|
-
}]
|
|
1268
|
-
},
|
|
1269
|
-
zoomBlur: {
|
|
1270
|
-
type: 'zoomBlur',
|
|
1271
|
-
name: 'Blur (Zoom)',
|
|
1272
|
-
parameters: [{
|
|
1273
|
-
name: 'strength',
|
|
1274
|
-
defaultValue: 0.05,
|
|
1275
|
-
min: 0,
|
|
1276
|
-
max: 1
|
|
1277
|
-
}, {
|
|
1278
|
-
name: 'center',
|
|
1279
|
-
type: 'array',
|
|
1280
|
-
label: ['Center X', 'Center Y'],
|
|
1281
|
-
defaultValue: [0.5, 0.5],
|
|
1282
|
-
min: 0,
|
|
1283
|
-
max: 1
|
|
1284
|
-
}]
|
|
1285
|
-
},
|
|
1286
|
-
tiltShift: {
|
|
1287
|
-
type: 'tiltShift',
|
|
1288
|
-
name: 'Blur (Tilt Shift)',
|
|
1289
|
-
parameters: [{
|
|
1290
|
-
name: 'blurRadius',
|
|
1291
|
-
label: 'Blur',
|
|
1292
|
-
min: 0,
|
|
1293
|
-
max: 50
|
|
1294
|
-
}, {
|
|
1295
|
-
name: 'gradientRadius',
|
|
1296
|
-
label: 'Gradient',
|
|
1297
|
-
min: 0,
|
|
1298
|
-
max: 400
|
|
1299
|
-
}, {
|
|
1300
|
-
name: 'start',
|
|
1301
|
-
type: 'array',
|
|
1302
|
-
label: ['Start', false],
|
|
1303
|
-
defaultValue: [0.0, 0.0],
|
|
1304
|
-
min: 0,
|
|
1305
|
-
max: 1
|
|
1306
|
-
}, {
|
|
1307
|
-
name: 'end',
|
|
1308
|
-
type: 'array',
|
|
1309
|
-
label: ['End', false],
|
|
1310
|
-
defaultValue: [1, 1],
|
|
1311
|
-
min: 0,
|
|
1312
|
-
max: 1
|
|
1313
|
-
}]
|
|
1314
|
-
},
|
|
1315
|
-
edgeWork: {
|
|
1316
|
-
type: 'edgeWork',
|
|
1317
|
-
name: 'Edge work',
|
|
1318
|
-
parameters: [{
|
|
1319
|
-
name: 'radius',
|
|
1320
|
-
min: 1,
|
|
1321
|
-
max: 50
|
|
1322
|
-
}]
|
|
1323
|
-
},
|
|
1324
|
-
vignette: {
|
|
1325
|
-
type: 'vignette',
|
|
1326
|
-
name: 'Vignette',
|
|
1327
|
-
parameters: [{
|
|
1328
|
-
name: 'amount',
|
|
1329
|
-
min: 0,
|
|
1330
|
-
max: 1
|
|
1331
|
-
}, {
|
|
1332
|
-
name: 'radius',
|
|
1333
|
-
min: 0,
|
|
1334
|
-
max: 1
|
|
1335
|
-
}]
|
|
1336
|
-
},
|
|
1337
|
-
magnify: {
|
|
1338
|
-
type: 'magnify',
|
|
1339
|
-
name: 'Magnify',
|
|
1340
|
-
parameters: [{
|
|
1341
|
-
name: 'screenXY',
|
|
1342
|
-
type: 'array',
|
|
1343
|
-
label: ['Position X', 'Position Y'],
|
|
1344
|
-
defaultValue: [0.5, 0.5],
|
|
1345
|
-
min: 0,
|
|
1346
|
-
max: 1
|
|
1347
|
-
}, {
|
|
1348
|
-
name: 'radiusPixels',
|
|
1349
|
-
label: 'Size',
|
|
1350
|
-
min: 10,
|
|
1351
|
-
max: 500
|
|
1352
|
-
}, {
|
|
1353
|
-
name: 'zoom',
|
|
1354
|
-
min: 0.5,
|
|
1355
|
-
max: 50
|
|
1356
|
-
}, {
|
|
1357
|
-
name: 'borderWidthPixels',
|
|
1358
|
-
label: 'Border Width',
|
|
1359
|
-
defaultValue: 3,
|
|
1360
|
-
min: 0,
|
|
1361
|
-
max: 50
|
|
1362
|
-
}]
|
|
1363
|
-
},
|
|
1364
|
-
hexagonalPixelate: {
|
|
1365
|
-
type: 'hexagonalPixelate',
|
|
1366
|
-
name: 'Hexagonal Pixelate',
|
|
1367
|
-
parameters: [{
|
|
1368
|
-
name: 'scale',
|
|
1369
|
-
defaultValue: 20,
|
|
1370
|
-
min: 1,
|
|
1371
|
-
max: 50
|
|
1372
|
-
}]
|
|
1373
|
-
}
|
|
1374
|
-
};
|
|
1375
|
-
exports.POSTPROCESSING_EFFECTS = POSTPROCESSING_EFFECTS;
|
|
1376
|
-
var EFFECT_DESCRIPTIONS = [LIGHT_AND_SHADOW_EFFECT].concat((0, _toConsumableArray2["default"])(Object.keys(POSTPROCESSING_EFFECTS).map(function (keyName) {
|
|
1377
|
-
return POSTPROCESSING_EFFECTS[keyName];
|
|
1378
|
-
})));
|
|
1379
|
-
exports.EFFECT_DESCRIPTIONS = EFFECT_DESCRIPTIONS;
|
|
1380
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0LXNldHRpbmdzLnRzIl0sIm5hbWVzIjpbIkFDVElPTl9QUkVGSVgiLCJLRVBMRVJfVU5GT0xERURfQlVDS0VUIiwiQkFTRU1BUF9JQ09OX1BSRUZJWCIsIkRFRkFVTFRfTUFQQk9YX0FQSV9VUkwiLCJUUkFOU0lUSU9OX0RVUkFUSU9OIiwiREFUQV9UQUJMRV9JRCIsIkRFTEVURV9EQVRBX0lEIiwiQUREX0RBVEFfSUQiLCJFWFBPUlRfSU1BR0VfSUQiLCJFWFBPUlRfREFUQV9JRCIsIkFERF9NQVBfU1RZTEVfSUQiLCJFWFBPUlRfTUFQX0lEIiwiU0FWRV9NQVBfSUQiLCJPVkVSV1JJVEVfTUFQX0lEIiwiU0hBUkVfTUFQX0lEIiwiS0VQTEVSX0dMX05BTUUiLCJLRVBMRVJfR0xfVkVSU0lPTiIsIktFUExFUl9HTF9XRUJTSVRFIiwiRElNRU5TSU9OUyIsInNpZGVQYW5lbCIsIndpZHRoIiwibWFyZ2luIiwidG9wIiwibGVmdCIsImJvdHRvbSIsInJpZ2h0IiwiaGVhZGVySGVpZ2h0IiwibWFwQ29udHJvbCIsInBhZGRpbmciLCJtYXBMZWdlbmQiLCJwaW5uZWQiLCJUSEVNRSIsImxpZ2h0IiwiZGFyayIsImJhc2UiLCJTSURFQkFSX1BBTkVMUyIsImlkIiwibGFiZWwiLCJvbkNsaWNrIiwiUEFORUxfVklFV19UT0dHTEVTIiwibGlzdCIsImJ5RGF0YXNldCIsIlBBTkVMUyIsIkRFRkFVTFRfQkxER19DT0xPUiIsIkRFRkFVTFRfQkFDS0dST1VORF9DT0xPUiIsIkJBU0VfTUFQX0JBQ0tHUk9VTkRfTEFZRVJfSURTIiwiQkFDS0dST1VORF9MQVlFUl9HUk9VUF9TTFVHIiwiVEhSRUVfRF9CVUlMRElOR19MQVlFUl9HUk9VUF9TTFVHIiwiQkFDS0dST1VORF9MQVlFUl9HUk9VUCIsInNsdWciLCJmaWx0ZXIiLCJkZWZhdWx0VmlzaWJpbGl0eSIsImlzVmlzaWJpbGl0eVRvZ2dsZUF2YWlsYWJsZSIsImlzTW92ZVRvVG9wQXZhaWxhYmxlIiwiaXNDb2xvclBpY2tlckF2YWlsYWJsZSIsIkRFRkFVTFRfTEFZRVJfR1JPVVBTIiwibWF0Y2giLCJCQVNFX01BUF9DT0xPUl9NT0RFUyIsIk5PTkUiLCJEQVJLIiwiTElHSFQiLCJOT19NQVBfSUQiLCJFTVBUWV9NQVBCT1hfU1RZTEUiLCJ2ZXJzaW9uIiwic291cmNlcyIsImxheWVycyIsIk5PX0JBU0VNQVBfSUNPTiIsIkRFRkFVTFRfTUFQX1NUWUxFUyIsInVybCIsImljb24iLCJsYXllckdyb3VwcyIsImNvbG9yTW9kZSIsInN0eWxlIiwiY29tcGxpbWVudGFyeVN0eWxlSWQiLCJHRU9KU09OX0ZJRUxEUyIsImdlb2pzb24iLCJJQ09OX0ZJRUxEUyIsIlRSSVBfUE9JTlRfRklFTERTIiwiQUxUSVRVREVfRklFTERTIiwiVFJJUF9BUkNfRklFTERTIiwibGF0MCIsImxuZzAiLCJsYXQxIiwibG5nMSIsIkZJTFRFUl9UWVBFUyIsInJhbmdlIiwic2VsZWN0IiwiaW5wdXQiLCJ0aW1lUmFuZ2UiLCJtdWx0aVNlbGVjdCIsInBvbHlnb24iLCJGSUxURVJfVklFV19UWVBFUyIsInNpZGUiLCJlbmxhcmdlZCIsIm1pbmlmaWVkIiwiREVGQVVMVF9GSUxURVJfVklFV19UWVBFIiwiU0NBTEVfVFlQRVMiLCJvcmRpbmFsIiwicXVhbnRpbGUiLCJxdWFudGl6ZSIsImxpbmVhciIsInNxcnQiLCJsb2ciLCJwb2ludCIsIlNDQUxFX0ZVTkMiLCJzY2FsZUxpbmVhciIsInNjYWxlUXVhbnRpemUiLCJzY2FsZVF1YW50aWxlIiwic2NhbGVPcmRpbmFsIiwic2NhbGVTcXJ0Iiwic2NhbGVMb2ciLCJzY2FsZVBvaW50IiwiQUxMX0ZJRUxEX1RZUEVTIiwiZGF0ZSIsImludGVnZXIiLCJyZWFsIiwic3RyaW5nIiwidGltZXN0YW1wIiwiYXJyYXkiLCJvYmplY3QiLCJnZW9hcnJvdyIsIlNPUlRfT1JERVIiLCJBU0NFTkRJTkciLCJERVNDRU5ESU5HIiwiVU5TT1JUIiwiVEFCTEVfT1BUSU9OIiwiU09SVF9BU0MiLCJTT1JUX0RFUyIsIlBJTiIsIlVOUElOIiwiQ09QWSIsIkZPUk1BVF9DT0xVTU4iLCJUQUJMRV9PUFRJT05fTElTVCIsInZhbHVlIiwiZGlzcGxheSIsImNvbmRpdGlvbiIsInByb3BzIiwic29ydE1vZGUiLCJpc1NvcnRlZCIsImlzUGlubmVkIiwiWUVMTE9XIiwiUElOSyIsIlBVUlBMRSIsIkJMVUUiLCJCTFVFMiIsIkJMVUUzIiwiR1JFRU4iLCJHUkVFTjIiLCJSRUQiLCJPUkFOR0UiLCJGSUVMRF9UWVBFX0RJU1BMQVkiLCJjb2xvciIsIkZJRUxEX0NPTE9SUyIsIkhJR0hMSUdIX0NPTE9SXzNEIiwiQ0hBTk5FTF9TQ0FMRVMiLCJyYWRpdXMiLCJzaXplIiwiY29sb3JBZ2dyIiwic2l6ZUFnZ3IiLCJBR0dSRUdBVElPTl9UWVBFUyIsImNvdW50IiwiYXZlcmFnZSIsIm1heGltdW0iLCJtaW5pbXVtIiwibWVkaWFuIiwic3RkZXYiLCJzdW0iLCJ2YXJpYW5jZSIsIm1vZGUiLCJjb3VudFVuaXF1ZSIsIkFHR1JFR0FUSU9OX1RZUEVfT1BUSU9OUyIsIk9iamVjdCIsImVudHJpZXMiLCJtYXAiLCJrZXkiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNsaWNlIiwibGluZWFyRmllbGRTY2FsZUZ1bmN0aW9ucyIsImxpbmVhckZpZWxkQWdnclNjYWxlRnVuY3Rpb25zIiwib3JkaW5hbEZpZWxkU2NhbGVGdW5jdGlvbnMiLCJvcmRpbmFsRmllbGRBZ2dyU2NhbGVGdW5jdGlvbnMiLCJub3RTdXBwb3J0ZWRTY2FsZU9wdHMiLCJub3RTdXBwb3J0QWdnck9wdHMiLCJERUZBVUxUX0FHR1JFR0FUSU9OIiwiRklFTERfT1BUUyIsInR5cGUiLCJzY2FsZSIsImZvcm1hdCIsImxlZ2VuZCIsImQiLCJ0b29sdGlwIiwiVE9PTFRJUF9GT1JNQVRfVFlQRVMiLCJERUNJTUFMIiwiUEVSQ0VOVEFHRSIsIkRBVEUiLCJEQVRFX1RJTUUiLCJCT09MRUFOIiwiQ0hBTk5FTF9TQ0FMRV9TVVBQT1JURURfRklFTERTIiwia2V5cyIsInJlZHVjZSIsImFjY3UiLCJmdCIsImxlbmd0aCIsIkRFRkFVTFRfTEFZRVJfQ09MT1IiLCJ0cmlwQXJjIiwiYmVnaW50cmlwX2xhdCIsImRyb3BvZmZfbGF0IiwicmVxdWVzdF9sYXQiLCJERUZBVUxUX1RPT0xUSVBfRklFTERTIiwiTk9fVkFMVUVfQ09MT1IiLCJERUZBVUxUX1BJQ0tJTkdfUkFESVVTIiwiT1ZFUkxBWV9CTEVORElOR1MiLCJub3JtYWwiLCJzY3JlZW4iLCJkYXJrZW4iLCJMQVlFUl9CTEVORElOR1MiLCJhZGRpdGl2ZSIsImJsZW5kRnVuYyIsImJsZW5kRXF1YXRpb24iLCJzdWJ0cmFjdGl2ZSIsIk1BWF9ERUZBVUxUX1RPT0xUSVBTIiwiUkVTT0xVVElPTlMiLCJPTkVfWCIsIlRXT19YIiwiRVhQT1JUX0lNR19SQVRJT1MiLCJTQ1JFRU4iLCJGT1VSX0JZX1RIUkVFIiwiU0lYVEVFTl9CWV9OSU5FIiwiQ1VTVE9NIiwiU2NyZWVuUmF0aW9PcHRpb24iLCJnZXRTaXplIiwic2NyZWVuVyIsInNjcmVlbkgiLCJoZWlnaHQiLCJDdXN0b21SYXRpb09wdGlvbiIsImhpZGRlbiIsIm1hcFciLCJtYXBIIiwiRm91ckJ5VGhyZWVSYXRpb09wdGlvbiIsIk1hdGgiLCJyb3VuZCIsIlNpeHRlZW5CeU5pbmVSYXRpb09wdGlvbiIsIkVYUE9SVF9JTUdfUkFUSU9fT1BUSU9OUyIsIk9uZVhSZXNvbHV0aW9uT3B0aW9uIiwiYXZhaWxhYmxlIiwiVHdvWFJlc29sdXRpb25PcHRpb24iLCJFWFBPUlRfSU1HX1JFU09MVVRJT05fT1BUSU9OUyIsIkVYUE9SVF9EQVRBX1RZUEUiLCJDU1YiLCJFWFBPUlRfREFUQV9UWVBFX09QVElPTlMiLCJ0b0xvd2VyQ2FzZSIsIkVYUE9SVF9NQVBfRk9STUFUUyIsIkhUTUwiLCJKU09OIiwiRVhQT1JUX0hUTUxfTUFQX01PREVTIiwiUkVBRCIsIkVESVQiLCJFWFBPUlRfTUFQX0ZPUk1BVF9PUFRJT05TIiwiZW50cnkiLCJnZXRIVE1MTWFwTW9kZVRpbGVVcmwiLCJFWFBPUlRfSFRNTF9NQVBfTU9ERV9PUFRJT05TIiwiREVGQVVMVF9VVUlEX0NPVU5UIiwiREVGQVVMVF9OT1RJRklDQVRJT05fTUVTU0FHRSIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OX1RZUEVTIiwiaW5mbyIsImVycm9yIiwid2FybmluZyIsInN1Y2Nlc3MiLCJERUZBVUxUX05PVElGSUNBVElPTl9UT1BJQ1MiLCJnbG9iYWwiLCJmaWxlIiwiVEhST1RUTEVfTk9USUZJQ0FUSU9OX1RJTUUiLCJCQVNFX1NQRUVEIiwiRlBTIiwiQU5JTUFUSU9OX1dJTkRPVyIsImZyZWUiLCJpbmNyZW1lbnRhbCIsImludGVydmFsIiwiREVGQVVMVF9USU1FX0ZPUk1BVCIsIlNQRUVEX0NPTlRST0xfUkFOR0UiLCJTUEVFRF9DT05UUk9MX1NURVAiLCJHRU9DT0RFUl9EQVRBU0VUX05BTUUiLCJHRU9DT0RFUl9MQVlFUl9JRCIsIkdFT0NPREVSX0dFT19PRkZTRVQiLCJHRU9DT0RFUl9JQ09OX0NPTE9SIiwiR0VPQ09ERVJfSUNPTl9TSVpFIiwiRURJVE9SX0xBWUVSX0lEIiwiRURJVE9SX0xBWUVSX1BJQ0tJTkdfUkFESVVTIiwiRURJVE9SX01PREVTIiwiRFJBV19QT0xZR09OIiwiRFJBV19SRUNUQU5HTEUiLCJQTE9UX1RZUEVTIiwiaGlzdG9ncmFtIiwibGluZUNoYXJ0IiwiSU5JVF9GSUxURVJfSVRFTVNfSU5fRFJPUERPV04iLCJNQVhfR1BVX0ZJTFRFUlMiLCJNQVBfVEhVTUJOQUlMX0RJTUVOU0lPTiIsIk1BUF9JTkZPX0NIQVJBQ1RFUiIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJMT0FESU5HX01FVEhPRFMiLCJ1cGxvYWQiLCJzdG9yYWdlIiwiREVGQVVMVF9GRUFUVVJFX0ZMQUdTIiwiREFUQVNFVF9GT1JNQVRTIiwicm93IiwiY3N2Iiwia2VwbGVyZ2wiLCJhcnJvdyIsIk1BUF9DT05UUk9MUyIsInZpc2libGVMYXllcnMiLCJ0b2dnbGUzZCIsInNwbGl0TWFwIiwibWFwRHJhdyIsIm1hcExvY2FsZSIsImVmZmVjdCIsIlBST0pFQ1RFRF9QSVhFTF9TSVpFX01VTFRJUExJRVIiLCJURVhUX09VVExJTkVfTVVMVElQTElFUiIsImRhdGFUZXN0SWRzIiwiaW5mb0ljb24iLCJ3YXJuaW5nSWNvbiIsImVycm9ySWNvbiIsInN1Y2Nlc3NJY29uIiwiY2hlY2ttYXJrSWNvbiIsInNvcnRhYmxlTGF5ZXJJdGVtIiwic3RhdGljTGF5ZXJJdGVtIiwibGF5ZXJUaXRsZUVkaXRvciIsInJlbW92ZUxheWVyQWN0aW9uIiwibGF5ZXJQYW5lbCIsInNvcnRhYmxlRWZmZWN0SXRlbSIsInN0YXRpY0VmZmVjdEl0ZW0iLCJwcm92aWRlckxvYWRpbmciLCJwcm92aWRlck1hcEluZm9QYW5lbCIsInByb3ZpZGVyU2VsZWN0IiwiY2xvdWRIZWFkZXIiLCJwcm92aWRlclNoYXJlTWFwIiwiREVGQVVMVF9USU1FWk9ORSIsIkRFRkFVTFRfUE9TVF9QUk9DRVNTSU5HX0VGRkVDVF9UWVBFIiwiREVGQVVMVF9MSUdIVF9DT0xPUiIsIkRFRkFVTFRfTElHSFRfSU5URU5TSVRZIiwiREVGQVVMVF9TSEFET1dfSU5URU5TSVRZIiwiREVGQVVMVF9TSEFET1dfQ09MT1IiLCJMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVF9USU1FX01PREVTIiwicGljayIsImN1cnJlbnQiLCJhbmltYXRpb24iLCJERUZBVUxUX0xJR0hUX0FORF9TSEFET1dfUFJPUFMiLCJEYXRlIiwibm93IiwidGltZU1vZGUiLCJzaGFkb3dJbnRlbnNpdHkiLCJzaGFkb3dDb2xvciIsInN1bkxpZ2h0Q29sb3IiLCJzdW5MaWdodEludGVuc2l0eSIsImFtYmllbnRMaWdodENvbG9yIiwiYW1iaWVudExpZ2h0SW50ZW5zaXR5IiwiTElHSFRfQU5EX1NIQURPV19FRkZFQ1QiLCJuYW1lIiwicGFyYW1ldGVycyIsIm1pbiIsIm1heCIsIk51bWJlciIsIk1BWF9TQUZFX0lOVEVHRVIiLCJkZWZhdWx0VmFsdWUiLCJQT1NUUFJPQ0VTU0lOR19FRkZFQ1RTIiwiaW5rIiwiYnJpZ2h0bmVzc0NvbnRyYXN0IiwiaHVlU2F0dXJhdGlvbiIsInZpYnJhbmNlIiwic2VwaWEiLCJkb3RTY3JlZW4iLCJQSSIsImNvbG9ySGFsZnRvbmUiLCJub2lzZSIsInRyaWFuZ2xlQmx1ciIsInpvb21CbHVyIiwidGlsdFNoaWZ0IiwiZWRnZVdvcmsiLCJ2aWduZXR0ZSIsIm1hZ25pZnkiLCJoZXhhZ29uYWxQaXhlbGF0ZSIsIkVGRkVDVF9ERVNDUklQVElPTlMiLCJrZXlOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUdBOztBQUVBOztBQVNBOzs7Ozs7OztBQUdPLElBQU1BLGFBQWEsR0FBRyxjQUF0Qjs7QUFDQSxJQUFNQyxzQkFBc0IsR0FBRyw0REFBL0I7O0FBQ0EsSUFBTUMsbUJBQW1CLGFBQU1ELHNCQUFOLGFBQXpCOztBQUNBLElBQU1FLHNCQUFzQixHQUFHLHdCQUEvQjs7QUFDQSxJQUFNQyxtQkFBbUIsR0FBRyxDQUE1QixDLENBRVA7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxJQUFNQyxhQUFhLEdBQUcsV0FBdEI7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLElBQU1DLGNBQWMsR0FBRyxZQUF2QjtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ08sSUFBTUMsV0FBVyxHQUFHLFNBQXBCO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxJQUFNQyxlQUFlLEdBQUcsYUFBeEI7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLElBQU1DLGNBQWMsR0FBRyxZQUF2QjtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ08sSUFBTUMsZ0JBQWdCLEdBQUcsYUFBekI7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLElBQU1DLGFBQWEsR0FBRyxXQUF0QjtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ08sSUFBTUMs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LElBQUksRUFBRSxPQUFQO0FBQWdCTSxNQUFBQSxZQUFZLEVBQUUsRUFBOUI7QUFBa0NKLE1BQUFBLEdBQUcsRUFBRSxDQUF2QztBQUEwQ0MsTUFBQUEsR0FBRyxFQUFFO0FBQS9DLEtBQUQ7QUFISztBQTdMcUQsQ0FBbkU7O0FBb01BLElBQU1xQixtQkFBd0MsSUFDbkR6Qix1QkFEbUQsNkNBRWhEMUwsTUFBTSxDQUFDNEIsSUFBUCxDQUFZc0ssc0JBQVosRUFBb0NoTSxHQUFwQyxDQUF3QyxVQUFBa04sT0FBTztBQUFBLFNBQUlsQixzQkFBc0IsQ0FBQ2tCLE9BQUQsQ0FBMUI7QUFBQSxDQUEvQyxDQUZnRCxFQUE5QyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBrZXlNaXJyb3IgZnJvbSAna2V5bWlycm9yJztcblxuaW1wb3J0IHtcbiAgc2NhbGVMaW5lYXIsXG4gIHNjYWxlUXVhbnRpemUsXG4gIHNjYWxlUXVhbnRpbGUsXG4gIHNjYWxlT3JkaW5hbCxcbiAgc2NhbGVTcXJ0LFxuICBzY2FsZUxvZyxcbiAgc2NhbGVQb2ludFxufSBmcm9tICdkMy1zY2FsZSc7XG5pbXBvcnQge1RPT0xUSVBfRk9STUFUX1RZUEVTfSBmcm9tICcuL3Rvb2x0aXAnO1xuaW1wb3J0IHtSR0JBQ29sb3IsIEVmZmVjdERlc2NyaXB0aW9uLCBCYXNlTWFwU3R5bGV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgQUNUSU9OX1BSRUZJWCA9ICdAQGtlcGxlci5nbC8nO1xuZXhwb3J0IGNvbnN0IEtFUExFUl9VTkZPTERFRF9CVUNLRVQgPSAnaHR0cHM6Ly9zdHVkaW8tcHVibGljLWRhdGEuZm91cnNxdWFyZS5jb20vc3RhdGljcy9rZXBsZXJnbCc7XG5leHBvcnQgY29uc3QgQkFTRU1BUF9JQ09OX1BSRUZJWCA9IGAke0tFUExFUl9VTkZPTERFRF9CVUNLRVR9L2dlb2R1ZGVgO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTUFQQk9YX0FQSV9VUkwgPSAnaHR0cHM6Ly9hcGkubWFwYm94LmNvbSc7XG5leHBvcnQgY29uc3QgVFJBTlNJVElPTl9EVVJBVElPTiA9IDA7XG5cbi8vIE1vZGFsIElkc1xuLyoqXG4gKiBNb2RhbCBpZDogZGF0YSB0YWJsZVxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgREFUQV9UQUJMRV9JRCA9ICdkYXRhVGFibGUnO1xuLyoqXG4gKiBNb2RhbCBpZDogZGVsZXRlIGRhdGFzZXQgY29uZmlybSBkaWFsb2dcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IERFTEVURV9EQVRBX0lEID0gJ2RlbGV0ZURhdGEnO1xuLyoqXG4gKiBNb2RhbCBpZDogYWRkIGRhdGEgbW9kYWxcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IEFERF9EQVRBX0lEID0gJ2FkZERhdGEnO1xuLyoqXG4gKiBNb2RhbCBpZDogZXhwb3J0IGltYWdlIG1vZGFsXG4gKiBAY29uc3RhbnRcbiAqIEB0eXBlIHtzdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBFWFBPUlRfSU1BR0VfSUQgPSAnZXhwb3J0SW1hZ2UnO1xuLyoqXG4gKiBNb2RhbCBpZDogZXhwb3J0IGRhdGEgbW9kYWxcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9EQVRBX0lEID0gJ2V4cG9ydERhdGEnO1xuLyoqXG4gKiBNb2RhbCBpZDogYWRkIGN1c3RvbSBtYXAgc3R5bGUgbW9kYWxcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IEFERF9NQVBfU1RZTEVfSUQgPSAnYWRkTWFwU3R5bGUnO1xuLyoqXG4gKiBNb2RhbCBpZDogZXhwb3J0IG1hcCBtb2RhbFxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgRVhQT1JUX01BUF9JRCA9ICdleHBvcnRNYXAnO1xuLyoqXG4gKiBNb2RhbCBpZDogc2F2ZSBtYXAgbW9kYWxcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IFNBVkVfTUFQX0lEID0gJ3NhdmVNYXAnO1xuLyoqXG4gKiBNb2RhbCBpZDogY29uZmlybSB0byBvdmVyd3JpdGUgc2F2ZWQgbWFwXG4gKiBAY29uc3RhbnRcbiAqIEB0eXBlIHtzdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBPVkVSV1JJVEVfTUFQX0lEID0gJ292ZXJ3cml0ZU1hcCc7XG4vKipcbiAqIE1vZGFsIGlkOiBzaGFyZSBtYXAgdXJsIG1vZGFsXG4gKiBAY29uc3RhbnRcbiAqIEB0eXBlIHtzdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBTSEFSRV9NQVBfSUQgPSAnc2hhcmVNYXAnO1xuXG5leHBvcnQgY29uc3QgS0VQTEVSX0dMX05BTUUgPSAna2VwbGVyLmdsJztcblxuLy8gX19QQUNLQUdFX1ZFUlNJT05fXyBpcyBhdXRvbWF0aWNhbGx5IGluamVjdGVkIGJ5IEJhYmVsL1dlYnBhY2sgZHVyaW5nIHRoZSBidWlsZGluZyBwcm9jZXNzXG4vLyBTaW5jZSB3ZSBhcmUgaW5qZWN0aW5nIHRoaXMgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzIHdpdGggYmFiZWxcbi8vIHdoaWxlIGRldmVsb3BpbmcgVkVSU0lPTiBpcyBub3QgZGVmaW5lZCwgd2UgY2FwdHVyZSB0aGUgZXhjZXB0aW9uIGFuZCByZXR1cm5cbi8vIGFuIGVtcHR5IHN0cmluZyB3aGljaCB3aWxsIGFsbG93IHVzIHRvIHJldHJpZXZlIHRoZSBsYXRlc3QgdW1kIHZlcnNpb25cbmV4cG9ydCBjb25zdCBLRVBMRVJfR0xfVkVSU0lPTiA9ICdfX1BBQ0tBR0VfVkVSU0lPTl9fJztcbmV4cG9ydCBjb25zdCBLRVBMRVJfR0xfV0VCU0lURSA9ICdodHRwOi8va2VwbGVyLmdsLyc7XG5cbmV4cG9ydCBjb25zdCBESU1FTlNJT05TID0ge1xuICBzaWRlUGFuZWw6IHtcbiAgICB3aWR0aDogMzAwLFxuICAgIG1hcmdpbjoge3RvcDogMjAsIGxlZnQ6IDIwLCBib3R0b206IDMwLCByaWdodDogMjB9LFxuICAgIGhlYWRlckhlaWdodDogOTZcbiAgfSxcbiAgbWFwQ29udHJvbDoge1xuICAgIHdpZHRoOiAxODQsXG4gICAgcGFkZGluZzogMTIsXG4gICAgbWFwTGVnZW5kOiB7XG4gICAgICBwaW5uZWQ6IHtcbiAgICAgICAgYm90dG9tOiAyMixcbiAgICAgICAgcmlnaHQ6IDEyXG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIFRoZW1lIG5hbWUgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIGBLZXBsZXJHbGAgYHByb3AudGhlbWVgLlxuICogQXZhaWxhYmxlIHRoZW1lcyBhcmUgYFRIRU1FLmxpZ2h0YCBhbmQgYFRIRU1FLmRhcmtgLiBEZWZhdWx0IHRoZW1lIGlzIGBUSEVNRS5kYXJrYFxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7b2JqZWN0fVxuICogQHB1YmxpY1xuICogQGV4YW1wbGVcbiAqIGBgYGpzXG4gKiBjb25zdCBNYXAgPSAoKSA9PiA8S2VwbGVyR2wgdGhlbWU9e1RIRU1FLmxpZ2h0fSBpZD1cIm1hcFwiLz5cbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgVEhFTUUgPSBrZXlNaXJyb3Ioe1xuICBsaWdodDogbnVsbCxcbiAgZGFyazogbnVsbCxcbiAgYmFzZTogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBTSURFQkFSX1BBTkVMUyA9IFtcbiAge1xuICAgIGlkOiAnbGF5ZXInLFxuICAgIGxhYmVsOiAnc2lkZWJhci5wYW5lbHMubGF5ZXInLFxuICAgIG9uQ2xpY2s6IG51bGxcbiAgfSxcbiAge1xuICAgIGlkOiAnZmlsdGVyJyxcbiAgICBsYWJlbDogJ3NpZGViYXIucGFuZWxzLmZpbHRlcicsXG4gICAgb25DbGljazogbnVsbFxuICB9LFxuICB7XG4gICAgaWQ6ICdpbnRlcmFjdGlvbicsXG4gICAgbGFiZWw6ICdzaWRlYmFyLnBhbmVscy5pbnRlcmFjdGlvbicsXG4gICAgb25DbGljazogbnVsbFxuICB9LFxuICB7XG4gICAgaWQ6ICdtYXAnLFxuICAgIGxhYmVsOiAnc2lkZWJhci5wYW5lbHMuYmFzZW1hcCcsXG4gICAgb25DbGljazogbnVsbFxuICB9XG5dO1xuXG5leHBvcnQgY29uc3QgUEFORUxfVklFV19UT0dHTEVTID0ga2V5TWlycm9yKHtcbiAgbGlzdDogbnVsbCxcbiAgYnlEYXRhc2V0OiBudWxsXG59KTtcblxuLy8gYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuZXhwb3J0IGNvbnN0IFBBTkVMUyA9IFNJREVCQVJfUEFORUxTO1xuXG4vLyBNQVAgU1RZTEVTXG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JMREdfQ09MT1IgPSAnI0QxQ0VDNyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0tHUk9VTkRfQ09MT1IgPSAnIzAwMDAwMCc7XG5cbi8vIGFzc2lzdHMgaW4gaWRlbnRpZnlpbmcgYmFzZW1hcCBiYWNrZ3JvdW5kIGxheWVycyB3aGVuIGF1dG8tZGV0ZXJtaW5pbmcgdGhlIGJhY2tncm91bmRDb2xvclxuZXhwb3J0IGNvbnN0IEJBU0VfTUFQX0JBQ0tHUk9VTkRfTEFZRVJfSURTID0gWydiYWNrZ3JvdW5kJywgJ2JnJywgJ2xhbmQnLCAnd2F0ZXInXTtcblxuZXhwb3J0IGNvbnN0IEJBQ0tHUk9VTkRfTEFZRVJfR1JPVVBfU0xVRyA9ICdCYWNrZ3JvdW5kJztcblxuZXhwb3J0IGNvbnN0IFRIUkVFX0RfQlVJTERJTkdfTEFZRVJfR1JPVVBfU0xVRyA9ICczZCBidWlsZGluZyc7XG5cbmV4cG9ydCB0eXBlIERFRkFVTFRfTEFZRVJfR1JPVVAgPSB7XG4gIHNsdWc6IHN0cmluZztcbiAgZmlsdGVyOiAodmFsdWUpID0+IGJvb2xlYW47XG4gIGRlZmF1bHRWaXNpYmlsaXR5OiBib29sZWFuO1xuICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGU/OiBib29sZWFuO1xuICBpc01vdmVUb1RvcEF2YWlsYWJsZT86IGJvb2xlYW47XG4gIGlzQ29sb3JQaWNrZXJBdmFpbGFibGU/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IEJBQ0tHUk9VTkRfTEFZRVJfR1JPVVA6IERFRkFVTFRfTEFZRVJfR1JPVVAgPSB7XG4gIHNsdWc6IEJBQ0tHUk9VTkRfTEFZRVJfR1JPVVBfU0xVRyxcbiAgZmlsdGVyOiAoKSA9PiBmYWxzZSxcbiAgZGVmYXVsdFZpc2liaWxpdHk6IGZhbHNlLFxuICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGU6IGZhbHNlLFxuICBpc01vdmVUb1RvcEF2YWlsYWJsZTogZmFsc2UsXG4gIGlzQ29sb3JQaWNrZXJBdmFpbGFibGU6IHRydWVcbn07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBWUVSX0dST1VQUzogREVGQVVMVF9MQVlFUl9HUk9VUFtdID0gW1xuICB7XG4gICAgc2x1ZzogJ2xhYmVsJyxcbiAgICBmaWx0ZXI6ICh7aWR9KSA9PiBpZC5tYXRjaCgvKD89KGxhYmVsfHBsYWNlLXxwb2ktKSkvKSxcbiAgICBkZWZhdWx0VmlzaWJpbGl0eTogdHJ1ZSxcbiAgICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGU6IHRydWUsXG4gICAgaXNNb3ZlVG9Ub3BBdmFpbGFibGU6IHRydWUsXG4gICAgaXNDb2xvclBpY2tlckF2YWlsYWJsZTogZmFsc2VcbiAgfSxcbiAge1xuICAgIHNsdWc6ICdyb2FkJyxcbiAgICBmaWx0ZXI6ICh7aWR9KSA9PiBpZC5tYXRjaCgvKD89KHJvYWR8cmFpbHdheXx0dW5uZWx8c3RyZWV0fGJyaWRnZSkpKD8hLipsYWJlbCkvKSxcbiAgICBkZWZhdWx0VmlzaWJpbGl0eTogdHJ1ZSxcbiAgICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGU6IHRydWUsXG4gICAgaXNNb3ZlVG9Ub3BBdmFpbGFibGU6IHRydWUsXG4gICAgaXNDb2xvclBpY2tlckF2YWlsYWJsZTogZmFsc2VcbiAgfSxcbiAge1xuICAgIHNsdWc6ICdib3JkZXInLFxuICAgIGZpbHRlcjogKHtpZH0pID0+IGlkLm1hdGNoKC9ib3JkZXJ8Ym91bmRhcmllc3xib3VuZGFyeS8pLFxuICAgIGRlZmF1bHRWaXNpYmlsaXR5OiBmYWxzZSxcbiAgICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGU6IHRydWUsXG4gICAgaXNNb3ZlVG9Ub3BBdmFpbGFibGU6IHRydWUsXG4gICAgaXNDb2xvclBpY2tlckF2YWlsYWJsZTogZmFsc2VcbiAgfSxcbiAge1xuICAgIHNsdWc6ICdidWlsZGluZycsXG4gICAgZmlsdGVyOiAoe2lkfSkgPT4gaWQubWF0Y2goL2J1aWxkaW5nLyksXG4gICAgZGVmYXVsdFZpc2liaWxpdHk6IHRydWUsXG4gICAgaXNWaXNpYmlsaXR5VG9nZ2xlQXZhaWxhYmxlOiB0cnVlLFxuICAgIGlzTW92ZVRvVG9wQXZhaWxhYmxlOiB0cnVlLFxuICAgIGlzQ29sb3JQaWNrZXJBdmFpbGFibGU6IGZhbHNlXG4gIH0sXG4gIHtcbiAgICBzbHVnOiAnd2F0ZXInLFxuICAgIGZpbHRlcjogKHtpZH0pID0+IGlkLm1hdGNoKC8oPz0od2F0ZXJ8c3RyZWFtfGZlcnJ5KSkvKSxcbiAgICBkZWZhdWx0VmlzaWJpbGl0eTogdHJ1ZSxcbiAgICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGU6IHRydWUsXG4gICAgaXNNb3ZlVG9Ub3BBdmFpbGFibGU6IHRydWUsXG4gICAgaXNDb2xvclBpY2tlckF2YWlsYWJsZTogZmFsc2VcbiAgfSxcbiAge1xuICAgIHNsdWc6ICdsYW5kJyxcbiAgICBmaWx0ZXI6ICh7aWR9KSA9PiBpZC5tYXRjaCgvKD89KHBhcmtzfGxhbmRjb3ZlcnxpbmR1c3RyaWFsfHNhbmR8aGlsbHNoYWRlKSkvKSxcbiAgICBkZWZhdWx0VmlzaWJpbGl0eTogdHJ1ZSxcbiAgICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGU6IHRydWUsXG4gICAgaXNNb3ZlVG9Ub3BBdmFpbGFibGU6IHRydWUsXG4gICAgaXNDb2xvclBpY2tlckF2YWlsYWJsZTogZmFsc2VcbiAgfSxcbiAge1xuICAgIHNsdWc6IFRIUkVFX0RfQlVJTERJTkdfTEFZRVJfR1JPVVBfU0xVRyxcbiAgICBmaWx0ZXI6ICgpID0+IGZhbHNlLFxuICAgIGRlZmF1bHRWaXNpYmlsaXR5OiBmYWxzZSxcbiAgICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGU6IHRydWUsXG4gICAgaXNNb3ZlVG9Ub3BBdmFpbGFibGU6IHRydWUsXG4gICAgaXNDb2xvclBpY2tlckF2YWlsYWJsZTogdHJ1ZVxuICB9XG5dO1xuXG5leHBvcnQgY29uc3QgQkFTRV9NQVBfQ09MT1JfTU9ERVMgPSBrZXlNaXJyb3Ioe1xuICBOT05FOiBudWxsLFxuICBEQVJLOiBudWxsLFxuICBMSUdIVDogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBOT19NQVBfSUQgPSAnbm9fbWFwJztcblxuLy8gRmFsbGJhY2sgc3R5bGUgdG8gdXNlIHdoZW4gc3R5bGVzIGFyZSBiZWluZyBmZXRjaGVkLCBvciB3aGVuXG4vLyBhIHN0eWxlIGZhaWxzIHRvIGZldGNoXG5leHBvcnQgY29uc3QgRU1QVFlfTUFQQk9YX1NUWUxFID0ge1xuICB2ZXJzaW9uOiA4LFxuICBzb3VyY2VzOiB7fSxcbiAgbGF5ZXJzOiBbXVxufTtcblxuZXhwb3J0IGNvbnN0IE5PX0JBU0VNQVBfSUNPTiA9IGAke0JBU0VNQVBfSUNPTl9QUkVGSVh9L05PX0JBU0VNQVAucG5nYDtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTUFQX1NUWUxFUzogQmFzZU1hcFN0eWxlW10gPSBbXG4gIHtcbiAgICBpZDogTk9fTUFQX0lELFxuICAgIGxhYmVsOiAnTm8gQmFzZW1hcCcsXG4gICAgdXJsOiAnJyxcbiAgICBpY29uOiBOT19CQVNFTUFQX0lDT04sXG4gICAgbGF5ZXJHcm91cHM6IFtCQUNLR1JPVU5EX0xBWUVSX0dST1VQXSxcbiAgICBjb2xvck1vZGU6IEJBU0VfTUFQX0NPTE9SX01PREVTLk5PTkUsXG4gICAgc3R5bGU6IEVNUFRZX01BUEJPWF9TVFlMRVxuICB9LFxuICB7XG4gICAgaWQ6ICdkYXJrLW1hdHRlcicsXG4gICAgbGFiZWw6ICdEYXJrTWF0dGVyJyxcbiAgICB1cmw6ICdodHRwczovL2Jhc2VtYXBzLmNhcnRvY2RuLmNvbS9nbC9kYXJrLW1hdHRlci1nbC1zdHlsZS9zdHlsZS5qc29uJyxcbiAgICBpY29uOiBgJHtCQVNFTUFQX0lDT05fUFJFRklYfS9EQVJLTUFUVEVSLnBuZ2AsXG4gICAgbGF5ZXJHcm91cHM6IERFRkFVTFRfTEFZRVJfR1JPVVBTLFxuICAgIGNvbG9yTW9kZTogQkFTRV9NQVBfQ09MT1JfTU9ERVMuREFSSyxcbiAgICBjb21wbGltZW50YXJ5U3R5bGVJZDogJ3Bvc2l0cm9uJ1xuICB9LFxuICB7XG4gICAgaWQ6ICdkYXJrLW1hdHRlci1ub2xhYmVscycsXG4gICAgbGFiZWw6ICdEYXJrTWF0dGVyTm9MYWJlbHMnLFxuICAgIHVybDogJ2h0dHBzOi8vYmFzZW1hcHMuY2FydG9jZG4uY29tL2dsL2RhcmstbWF0dGVyLW5vbGFiZWxzLWdsLXN0eWxlL3N0eWxlLmpzb24nLFxuICAgIGljb246IGAke0JBU0VNQVBfSUNPTl9QUkVGSVh9L0RBUktNQVRURVJfTk9MQUJFTFMucG5nYCxcbiAgICBsYXllckdyb3VwczogREVGQVVMVF9MQVlFUl9HUk9VUFMsXG4gICAgY29sb3JNb2RlOiBCQVNFX01BUF9DT0xPUl9NT0RFUy5EQVJLLFxuICAgIGNvbXBsaW1lbnRhcnlTdHlsZUlkOiAncG9zaXRyb24tbm9sYWJlbHMnXG4gIH0sXG4gIHtcbiAgICBpZDogJ3Bvc2l0cm9uJyxcbiAgICBsYWJlbDogJ1Bvc2l0cm9uJyxcbiAgICB1cmw6ICdodHRwczovL2Jhc2VtYXBzLmNhcnRvY2RuLmNvbS9nbC9wb3NpdHJvbi1nbC1zdHlsZS9zdHlsZS5qc29uJyxcbiAgICBpY29uOiBgJHtCQVNFTUFQX0lDT05fUFJFRklYfS9QT1NJVFJPTi5wbmdgLFxuICAgIGxheWVyR3JvdXBzOiBERUZBVUxUX0xBWUVSX0dST1VQUyxcbiAgICBjb2xvck1vZGU6IEJBU0VfTUFQX0NPTE9SX01PREVTLkxJR0hULFxuICAgIGNvbXBsaW1lbnRhcnlTdHlsZUlkOiAnZGFyay1tYXR0ZXInXG4gIH0sXG4gIHtcbiAgICBpZDogJ3Bvc2l0cm9uLW5vbGFiZWxzJyxcbiAgICBsYWJlbDogJ1Bvc2l0cm9uTm9MYWJlbHMnLFxuICAgIHVybDogJ2h0dHBzOi8vYmFzZW1hcHMuY2FydG9jZG4uY29tL2dsL3Bvc2l0cm9uLW5vbGFiZWxzLWdsLXN0eWxlL3N0eWxlLmpzb24nLFxuICAgIGljb246IGAke0JBU0VNQVBfSUNPTl9QUkVGSVh9L1BPU0lUUk9OX05PTEFCRUxTLnBuZ2AsXG4gICAgbGF5ZXJHcm91cHM6IERFRkFVTFRfTEFZRVJfR1JPVVBTLFxuICAgIGNvbG9yTW9kZTogQkFTRV9NQVBfQ09MT1JfTU9ERVMuTElHSFQsXG4gICAgY29tcGxpbWVudGFyeVN0eWxlSWQ6ICdkYXJrLW1hdHRlci1ub2xhYmVscydcbiAgfSxcbiAge1xuICAgIGlkOiAndm95YWdlcicsXG4gICAgbGFiZWw6ICdWb3lhZ2VyJyxcbiAgICB1cmw6ICdodHRwczovL2Jhc2VtYXBzLmNhcnRvY2RuLmNvbS9nbC92b3lhZ2VyLWdsLXN0eWxlL3N0eWxlLmpzb24nLFxuICAgIGljb246IGAke0JBU0VNQVBfSUNPTl9QUkVGSVh9L1ZPWUFHRVIucG5nYCxcbiAgICBsYXllckdyb3VwczogREVGQVVMVF9MQVlFUl9HUk9VUFMsXG4gICAgY29sb3JNb2RlOiBCQVNFX01BUF9DT0xPUl9NT0RFUy5MSUdIVCxcbiAgICBjb21wbGltZW50YXJ5U3R5bGVJZDogJ2RhcmstbWF0dGVyJ1xuICB9LFxuICB7XG4gICAgaWQ6ICd2b3lhZ2VyLW5vbGFiZWxzJyxcbiAgICBsYWJlbDogJ1ZveWFnZXJOb0xhYmVscycsXG4gICAgdXJsOiAnaHR0cHM6Ly9iYXNlbWFwcy5jYXJ0b2Nkbi5jb20vZ2wvdm95YWdlci1ub2xhYmVscy1nbC1zdHlsZS9zdHlsZS5qc29uJyxcbiAgICBpY29uOiBgJHtCQVNFTUFQX0lDT05fUFJFRklYfS9WT1lBR0VSX05PTEFCRUxTLnBuZ2AsXG4gICAgbGF5ZXJHcm91cHM6IERFRkFVTFRfTEFZRVJfR1JPVVBTLFxuICAgIGNvbG9yTW9kZTogQkFTRV9NQVBfQ09MT1JfTU9ERVMuTElHSFQsXG4gICAgY29tcGxpbWVudGFyeVN0eWxlSWQ6ICdkYXJrLW1hdHRlci1ub2xhYmVscydcbiAgfVxuXTtcblxuZXhwb3J0IGNvbnN0IEdFT0pTT05fRklFTERTID0ge1xuICBnZW9qc29uOiBbJ19nZW9qc29uJywgJ2FsbF9wb2ludHMnLCAnZ2VvanNvbiddXG59O1xuXG5leHBvcnQgY29uc3QgSUNPTl9GSUVMRFMgPSB7XG4gIGljb246IFsnaWNvbiddXG59O1xuXG5leHBvcnQgY29uc3QgVFJJUF9QT0lOVF9GSUVMRFM6IFtzdHJpbmcsIHN0cmluZ11bXSA9IFtcbiAgWydsYXQnLCAnbG5nJ10sXG4gIFsnbGF0JywgJ2xvbiddLFxuICBbJ2xhdCcsICdsb25nJ10sXG4gIFsnbGF0aXR1ZGUnLCAnbG9uZ2l0dWRlJ11cbl07XG5cbmV4cG9ydCBjb25zdCBBTFRJVFVERV9GSUVMRFMgPSBbJ2FsdCcsICdhbHRpdHVkZSddO1xuZXhwb3J0IGNvbnN0IFRSSVBfQVJDX0ZJRUxEUyA9IHtcbiAgbGF0MDogJ2JlZ2ludHJpcCcsXG4gIGxuZzA6ICdiZWdpbnRyaXAnLFxuICBsYXQxOiAnZHJvcG9mZicsXG4gIGxuZzE6ICdkcm9wb2ZmJ1xufTtcblxuZXhwb3J0IGNvbnN0IEZJTFRFUl9UWVBFUyA9IGtleU1pcnJvcih7XG4gIHJhbmdlOiBudWxsLFxuICBzZWxlY3Q6IG51bGwsXG4gIGlucHV0OiBudWxsLFxuICB0aW1lUmFuZ2U6IG51bGwsXG4gIG11bHRpU2VsZWN0OiBudWxsLFxuICBwb2x5Z29uOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IEZJTFRFUl9WSUVXX1RZUEVTID0ga2V5TWlycm9yKHtcbiAgc2lkZTogbnVsbCxcbiAgZW5sYXJnZWQ6IG51bGwsXG4gIG1pbmlmaWVkOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRklMVEVSX1ZJRVdfVFlQRSA9IEZJTFRFUl9WSUVXX1RZUEVTLnNpZGU7XG5cbmV4cG9ydCBjb25zdCBTQ0FMRV9UWVBFUyA9IGtleU1pcnJvcih7XG4gIG9yZGluYWw6IG51bGwsXG4gIHF1YW50aWxlOiBudWxsLFxuICBxdWFudGl6ZTogbnVsbCxcbiAgbGluZWFyOiBudWxsLFxuICBzcXJ0OiBudWxsLFxuICBsb2c6IG51bGwsXG5cbiAgLy8gb3JkaW5hbCBkb21haW4gdG8gbGluZWFyIHJhbmdlXG4gIHBvaW50OiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IFNDQUxFX0ZVTkMgPSB7XG4gIFtTQ0FMRV9UWVBFUy5saW5lYXJdOiBzY2FsZUxpbmVhcixcbiAgW1NDQUxFX1RZUEVTLnF1YW50aXplXTogc2NhbGVRdWFudGl6ZSxcbiAgW1NDQUxFX1RZUEVTLnF1YW50aWxlXTogc2NhbGVRdWFudGlsZSxcbiAgW1NDQUxFX1RZUEVTLm9yZGluYWxdOiBzY2FsZU9yZGluYWwsXG4gIFtTQ0FMRV9UWVBFUy5zcXJ0XTogc2NhbGVTcXJ0LFxuICBbU0NBTEVfVFlQRVMubG9nXTogc2NhbGVMb2csXG4gIFtTQ0FMRV9UWVBFUy5wb2ludF06IHNjYWxlUG9pbnRcbn07XG5cbmV4cG9ydCBjb25zdCBBTExfRklFTERfVFlQRVMgPSBrZXlNaXJyb3Ioe1xuICBib29sZWFuOiBudWxsLFxuICBkYXRlOiBudWxsLFxuICBnZW9qc29uOiBudWxsLFxuICBpbnRlZ2VyOiBudWxsLFxuICByZWFsOiBudWxsLFxuICBzdHJpbmc6IG51bGwsXG4gIHRpbWVzdGFtcDogbnVsbCxcbiAgcG9pbnQ6IG51bGwsXG4gIGFycmF5OiBudWxsLFxuICBvYmplY3Q6IG51bGwsXG4gIGdlb2Fycm93OiBudWxsXG59KTtcblxuLy8gRGF0YSBUYWJsZVxuZXhwb3J0IGNvbnN0IFNPUlRfT1JERVIgPSBrZXlNaXJyb3Ioe1xuICBBU0NFTkRJTkc6IG51bGwsXG4gIERFU0NFTkRJTkc6IG51bGwsXG4gIFVOU09SVDogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBUQUJMRV9PUFRJT04gPSBrZXlNaXJyb3Ioe1xuICBTT1JUX0FTQzogbnVsbCxcbiAgU09SVF9ERVM6IG51bGwsXG4gIFVOU09SVDogbnVsbCxcbiAgUElOOiBudWxsLFxuICBVTlBJTjogbnVsbCxcbiAgQ09QWTogbnVsbCxcbiAgRk9STUFUX0NPTFVNTjogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBUQUJMRV9PUFRJT05fTElTVCA9IFtcbiAge1xuICAgIHZhbHVlOiBUQUJMRV9PUFRJT04uU09SVF9BU0MsXG4gICAgZGlzcGxheTogJ1NvcnQgQXNjZW5kaW5nJyxcbiAgICBpY29uOiAnQXJyb3dVcCcsXG4gICAgY29uZGl0aW9uOiBwcm9wcyA9PiBwcm9wcy5zb3J0TW9kZSAhPT0gU09SVF9PUkRFUi5BU0NFTkRJTkdcbiAgfSxcbiAge1xuICAgIHZhbHVlOiBUQUJMRV9PUFRJT04uU09SVF9ERVMsXG4gICAgZGlzcGxheTogJ1NvcnQgRGVzY2VuZGluZycsXG4gICAgaWNvbjogJ0Fycm93RG93bicsXG4gICAgY29uZGl0aW9uOiBwcm9wcyA9PiBwcm9wcy5zb3J0TW9kZSAhPT0gU09SVF9PUkRFUi5ERVNDRU5ESU5HXG4gIH0sXG4gIHtcbiAgICB2YWx1ZTogVEFCTEVfT1BUSU9OLlVOU09SVCxcbiAgICBkaXNwbGF5OiAnVW5zb3J0IENvbHVtbicsXG4gICAgaWNvbjogJ0NhbmNlbCcsXG4gICAgY29uZGl0aW9uOiBwcm9wcyA9PiBwcm9wcy5pc1NvcnRlZFxuICB9LFxuICB7XG4gICAgdmFsdWU6IFRBQkxFX09QVElPTi5QSU4sXG4gICAgZGlzcGxheTogJ1BpbiBDb2x1bW4nLFxuICAgIGljb246ICdQaW4nLFxuICAgIGNvbmRpdGlvbjogcHJvcHMgPT4gIXByb3BzLmlzUGlubmVkXG4gIH0sXG4gIHtcbiAgICB2YWx1ZTogVEFCTEVfT1BUSU9OLlVOUElOLFxuICAgIGRpc3BsYXk6ICdVbnBpbiBDb2x1bW4nLFxuICAgIGljb246ICdDYW5jZWwnLFxuICAgIGNvbmRpdGlvbjogcHJvcHMgPT4gcHJvcHMuaXNQaW5uZWRcbiAgfSxcbiAge3ZhbHVlOiBUQUJMRV9PUFRJT04uQ09QWSwgZGlzcGxheTogJ0NvcHkgQ29sdW1uJywgaWNvbjogJ0NsaXBib2FyZCd9LFxuICB7dmFsdWU6IFRBQkxFX09QVElPTi5GT1JNQVRfQ09MVU1OLCBkaXNwbGF5OiAnRm9ybWF0IENvbHVtbicsIGljb246ICdIYXNoJ31cbl07XG5cbmNvbnN0IFlFTExPVyA9ICcyNDgsIDE5NCwgMjgnO1xuY29uc3QgUElOSyA9ICcyNDIsIDE1MiwgMTYzJztcbmNvbnN0IFBVUlBMRSA9ICcxNjAsIDEwNiwgMjA2JztcbmNvbnN0IEJMVUUgPSAnMTQwLCAyMTAsIDIwNSc7XG5jb25zdCBCTFVFMiA9ICcxMDYsIDE2MCwgMjA2JztcbmNvbnN0IEJMVUUzID0gJzAsIDE3MiwgMjM3JztcbmNvbnN0IEdSRUVOID0gJzEwNiwgMTYwLCA1Nic7XG5jb25zdCBHUkVFTjIgPSAnNzQsIDE2NSwgMTUwJztcbmNvbnN0IFJFRCA9ICcyMzcsIDg4LCAxMDYnO1xuY29uc3QgT1JBTkdFID0gJzIzMSwgMTEwLCA1OCc7XG5cbmV4cG9ydCBjb25zdCBGSUVMRF9UWVBFX0RJU1BMQVkgPSB7XG4gIFtBTExfRklFTERfVFlQRVMuYm9vbGVhbl06IHtcbiAgICBsYWJlbDogJ2Jvb2wnLFxuICAgIGNvbG9yOiBQSU5LXG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMuZGF0ZV06IHtcbiAgICBsYWJlbDogJ2RhdGUnLFxuICAgIGNvbG9yOiBQVVJQTEVcbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5nZW9qc29uXToge1xuICAgIGxhYmVsOiAnZ2VvJyxcbiAgICBjb2xvcjogQkxVRTJcbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5nZW9hcnJvd106IHtcbiAgICBsYWJlbDogJ2dlbycsXG4gICAgY29sb3I6IEJMVUUyXG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMuaW50ZWdlcl06IHtcbiAgICBsYWJlbDogJ2ludCcsXG4gICAgY29sb3I6IFlFTExPV1xuICB9LFxuICBbQUxMX0ZJRUxEX1RZUEVTLnJlYWxdOiB7XG4gICAgbGFiZWw6ICdmbG9hdCcsXG4gICAgY29sb3I6IFlFTExPV1xuICB9LFxuICBbQUxMX0ZJRUxEX1RZUEVTLnN0cmluZ106IHtcbiAgICBsYWJlbDogJ3N0cmluZycsXG4gICAgY29sb3I6IEJMVUVcbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy50aW1lc3RhbXBdOiB7XG4gICAgbGFiZWw6ICd0aW1lJyxcbiAgICBjb2xvcjogR1JFRU5cbiAgfSxcbiAgLy8gZmllbGQgcGFpcnNcbiAgW0FMTF9GSUVMRF9UWVBFUy5wb2ludF06IHtcbiAgICBsYWJlbDogJ3BvaW50JyxcbiAgICBjb2xvcjogQkxVRTNcbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5hcnJheV06IHtcbiAgICBsYWJlbDogJ2FycmF5JyxcbiAgICBjb2xvcjogT1JBTkdFXG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMub2JqZWN0XToge1xuICAgIGxhYmVsOiAnb2JqZWN0JyxcbiAgICBjb2xvcjogR1JFRU4yXG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBGSUVMRF9DT0xPUlMgPSB7XG4gIGRlZmF1bHQ6IFJFRFxufTtcbmV4cG9ydCBjb25zdCBISUdITElHSF9DT0xPUl8zRDogUkdCQUNvbG9yID0gWzI1NSwgMjU1LCAyNTUsIDYwXTtcbmV4cG9ydCBjb25zdCBDSEFOTkVMX1NDQUxFUyA9IGtleU1pcnJvcih7XG4gIGNvbG9yOiBudWxsLFxuICByYWRpdXM6IG51bGwsXG4gIHNpemU6IG51bGwsXG4gIGNvbG9yQWdncjogbnVsbCxcbiAgc2l6ZUFnZ3I6IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgQUdHUkVHQVRJT05fVFlQRVM6IHtcbiAgLy8gZGVmYXVsdFxuICBjb3VudDogJ2NvdW50JztcbiAgLy8gbGluZWFyXG4gIGF2ZXJhZ2U6ICdhdmVyYWdlJztcbiAgbWF4aW11bTogJ21heGltdW0nO1xuICBtaW5pbXVtOiAnbWluaW11bSc7XG4gIG1lZGlhbjogJ21lZGlhbic7XG4gIHN0ZGV2OiAnc3RkZXYnO1xuICBzdW06ICdzdW0nO1xuICB2YXJpYW5jZTogJ3ZhcmlhbmNlJztcbiAgLy8gb3JkaW5hbFxuICBtb2RlOiAnbW9kZSc7XG4gIGNvdW50VW5pcXVlOiAnY291bnRVbmlxdWUnO1xufSA9IHtcbiAgLy8gZGVmYXVsdFxuICBjb3VudDogJ2NvdW50JyxcbiAgLy8gbGluZWFyXG4gIGF2ZXJhZ2U6ICdhdmVyYWdlJyxcbiAgbWF4aW11bTogJ21heGltdW0nLFxuICBtaW5pbXVtOiAnbWluaW11bScsXG4gIG1lZGlhbjogJ21lZGlhbicsXG4gIHN0ZGV2OiAnc3RkZXYnLFxuICBzdW06ICdzdW0nLFxuICB2YXJpYW5jZTogJ3ZhcmlhbmNlJyxcbiAgLy8gb3JkaW5hbFxuICBtb2RlOiAnbW9kZScsXG4gIGNvdW50VW5pcXVlOiAnY291bnRVbmlxdWUnXG59O1xuXG5leHBvcnQgY29uc3QgQUdHUkVHQVRJT05fVFlQRV9PUFRJT05TOiB7aWQ6IHN0cmluZzsgbGFiZWw6IHN0cmluZ31bXSA9IE9iamVjdC5lbnRyaWVzKFxuICBBR0dSRUdBVElPTl9UWVBFU1xuKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gKHtcbiAgaWQ6IGtleSxcbiAgbGFiZWw6XG4gICAga2V5ID09PSAnc3RkZXYnXG4gICAgICA/ICdTdGQgRGV2aWF0aW9uJ1xuICAgICAgOiBrZXkgPT09ICdjb3VudFVuaXF1ZSdcbiAgICAgID8gJ0NvdW50IFVuaXF1ZSdcbiAgICAgIDogdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgPyB2YWx1ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHZhbHVlLnNsaWNlKDEpXG4gICAgICA6IHZhbHVlXG59KSk7XG5cbmV4cG9ydCBjb25zdCBsaW5lYXJGaWVsZFNjYWxlRnVuY3Rpb25zID0ge1xuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JdOiBbU0NBTEVfVFlQRVMucXVhbnRpemUsIFNDQUxFX1RZUEVTLnF1YW50aWxlXSxcbiAgW0NIQU5ORUxfU0NBTEVTLnJhZGl1c106IFtTQ0FMRV9UWVBFUy5zcXJ0XSxcbiAgW0NIQU5ORUxfU0NBTEVTLnNpemVdOiBbU0NBTEVfVFlQRVMubGluZWFyLCBTQ0FMRV9UWVBFUy5zcXJ0LCBTQ0FMRV9UWVBFUy5sb2ddXG59O1xuXG5leHBvcnQgY29uc3QgbGluZWFyRmllbGRBZ2dyU2NhbGVGdW5jdGlvbnMgPSB7XG4gIFtDSEFOTkVMX1NDQUxFUy5jb2xvckFnZ3JdOiB7XG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLmF2ZXJhZ2VdOiBbU0NBTEVfVFlQRVMucXVhbnRpemUsIFNDQUxFX1RZUEVTLnF1YW50aWxlXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMubWF4aW11bV06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGVdLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5taW5pbXVtXTogW1NDQUxFX1RZUEVTLnF1YW50aXplLCBTQ0FMRV9UWVBFUy5xdWFudGlsZV0sXG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLm1lZGlhbl06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGVdLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5zdGRldl06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGVdLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5zdW1dOiBbU0NBTEVfVFlQRVMucXVhbnRpemUsIFNDQUxFX1RZUEVTLnF1YW50aWxlXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMudmFyaWFuY2VdOiBbU0NBTEVfVFlQRVMucXVhbnRpemUsIFNDQUxFX1RZUEVTLnF1YW50aWxlXVxuICB9LFxuXG4gIFtDSEFOTkVMX1NDQUxFUy5zaXplQWdncl06IHtcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZV06IFtTQ0FMRV9UWVBFUy5saW5lYXIsIFNDQUxFX1RZUEVTLnNxcnQsIFNDQUxFX1RZUEVTLmxvZ10sXG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLm1heGltdW1dOiBbU0NBTEVfVFlQRVMubGluZWFyLCBTQ0FMRV9UWVBFUy5zcXJ0LCBTQ0FMRV9UWVBFUy5sb2ddLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5taW5pbXVtXTogW1NDQUxFX1RZUEVTLmxpbmVhciwgU0NBTEVfVFlQRVMuc3FydCwgU0NBTEVfVFlQRVMubG9nXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMubWVkaWFuXTogW1NDQUxFX1RZUEVTLmxpbmVhciwgU0NBTEVfVFlQRVMuc3FydCwgU0NBTEVfVFlQRVMubG9nXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuc3RkZXZdOiBbU0NBTEVfVFlQRVMubGluZWFyLCBTQ0FMRV9UWVBFUy5zcXJ0LCBTQ0FMRV9UWVBFUy5sb2ddLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5zdW1dOiBbU0NBTEVfVFlQRVMubGluZWFyLCBTQ0FMRV9UWVBFUy5zcXJ0LCBTQ0FMRV9UWVBFUy5sb2ddLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy52YXJpYW5jZV06IFtTQ0FMRV9UWVBFUy5saW5lYXIsIFNDQUxFX1RZUEVTLnNxcnQsIFNDQUxFX1RZUEVTLmxvZ11cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IG9yZGluYWxGaWVsZFNjYWxlRnVuY3Rpb25zID0ge1xuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JdOiBbU0NBTEVfVFlQRVMub3JkaW5hbF0sXG4gIFtDSEFOTkVMX1NDQUxFUy5yYWRpdXNdOiBbU0NBTEVfVFlQRVMucG9pbnRdLFxuICBbQ0hBTk5FTF9TQ0FMRVMuc2l6ZV06IFtTQ0FMRV9UWVBFUy5wb2ludF1cbn07XG5cbmV4cG9ydCBjb25zdCBvcmRpbmFsRmllbGRBZ2dyU2NhbGVGdW5jdGlvbnMgPSB7XG4gIC8vIFtDSEFOTkVMX1NDQUxFUy5jb2xvckFnZ3JdOiBbU0NBTEVfVFlQRVMub3JkaW5hbCwgU0NBTEVfVFlQRVMubGluZWFyXSxcbiAgW0NIQU5ORUxfU0NBTEVTLmNvbG9yQWdncl06IHtcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMubW9kZV06IFtTQ0FMRV9UWVBFUy5vcmRpbmFsXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuY291bnRVbmlxdWVdOiBbU0NBTEVfVFlQRVMucXVhbnRpemUsIFNDQUxFX1RZUEVTLnF1YW50aWxlXVxuICB9LFxuXG4gIC8vIEN1cnJlbnRseSBkb2Vzbid0IHN1cHBvcnQgeWV0XG4gIFtDSEFOTkVMX1NDQUxFUy5zaXplQWdncl06IHt9XG59O1xuXG5leHBvcnQgY29uc3Qgbm90U3VwcG9ydGVkU2NhbGVPcHRzID0ge1xuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JdOiBbXSxcbiAgW0NIQU5ORUxfU0NBTEVTLnJhZGl1c106IFtdLFxuICBbQ0hBTk5FTF9TQ0FMRVMuc2l6ZV06IFtdXG59O1xuXG5leHBvcnQgY29uc3Qgbm90U3VwcG9ydEFnZ3JPcHRzID0ge1xuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JBZ2dyXToge30sXG4gIFtDSEFOTkVMX1NDQUxFUy5zaXplQWdncl06IHt9XG59O1xuXG4vKipcbiAqIERlZmF1bHQgYWdncmVnYXRpb24gYXJlIGJhc2VkIG9uIG9jdW50XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0FHR1JFR0FUSU9OID0ge1xuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JBZ2dyXToge1xuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5jb3VudF06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGVdXG4gIH0sXG4gIFtDSEFOTkVMX1NDQUxFUy5zaXplQWdncl06IHtcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuY291bnRdOiBbU0NBTEVfVFlQRVMubGluZWFyLCBTQ0FMRV9UWVBFUy5zcXJ0LCBTQ0FMRV9UWVBFUy5sb2ddXG4gIH1cbn07XG5cbi8qKlxuICogRGVmaW5lIHdoYXQgdHlwZSBvZiBzY2FsZSBvcGVyYXRpb24gaXMgYWxsb3dlZCBvbiBlYWNoIHR5cGUgb2YgZmllbGRzXG4gKi9cbmV4cG9ydCBjb25zdCBGSUVMRF9PUFRTID0ge1xuICBbQUxMX0ZJRUxEX1RZUEVTLnN0cmluZ106IHtcbiAgICB0eXBlOiAnY2F0ZWdvcmljYWwnLFxuICAgIHNjYWxlOiB7XG4gICAgICAuLi5vcmRpbmFsRmllbGRTY2FsZUZ1bmN0aW9ucyxcbiAgICAgIC4uLm9yZGluYWxGaWVsZEFnZ3JTY2FsZUZ1bmN0aW9uc1xuICAgIH0sXG4gICAgZm9ybWF0OiB7XG4gICAgICBsZWdlbmQ6IGQgPT4gZCxcbiAgICAgIHRvb2x0aXA6IFtdXG4gICAgfVxuICB9LFxuICBbQUxMX0ZJRUxEX1RZUEVTLnJlYWxdOiB7XG4gICAgdHlwZTogJ251bWVyaWNhbCcsXG4gICAgc2NhbGU6IHtcbiAgICAgIC4uLmxpbmVhckZpZWxkU2NhbGVGdW5jdGlvbnMsXG4gICAgICAuLi5saW5lYXJGaWVsZEFnZ3JTY2FsZUZ1bmN0aW9uc1xuICAgIH0sXG4gICAgZm9ybWF0OiB7XG4gICAgICBsZWdlbmQ6IGQgPT4gZCxcbiAgICAgIHRvb2x0aXA6IFtcbiAgICAgICAgVE9PTFRJUF9GT1JNQVRfVFlQRVMuTk9ORSxcbiAgICAgICAgVE9PTFRJUF9GT1JNQVRfVFlQRVMuREVDSU1BTCxcbiAgICAgICAgVE9PTFRJUF9GT1JNQVRfVFlQRVMuUEVSQ0VOVEFHRVxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy50aW1lc3RhbXBdOiB7XG4gICAgdHlwZTogJ3RpbWUnLFxuICAgIHNjYWxlOiB7XG4gICAgICAuLi5saW5lYXJGaWVsZFNjYWxlRnVuY3Rpb25zLFxuICAgICAgLi4ubm90U3VwcG9ydEFnZ3JPcHRzXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiBkLFxuICAgICAgdG9vbHRpcDogW1xuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5OT05FLFxuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5EQVRFLFxuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5EQVRFX1RJTUVcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMuaW50ZWdlcl06IHtcbiAgICB0eXBlOiAnbnVtZXJpY2FsJyxcbiAgICBzY2FsZToge1xuICAgICAgLi4ubGluZWFyRmllbGRTY2FsZUZ1bmN0aW9ucyxcbiAgICAgIC4uLmxpbmVhckZpZWxkQWdnclNjYWxlRnVuY3Rpb25zXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiBkLFxuICAgICAgdG9vbHRpcDogW1xuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5OT05FLFxuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5ERUNJTUFMLFxuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5QRVJDRU5UQUdFXG4gICAgICBdXG4gICAgfVxuICB9LFxuICBbQUxMX0ZJRUxEX1RZUEVTLmJvb2xlYW5dOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIHNjYWxlOiB7XG4gICAgICAuLi5vcmRpbmFsRmllbGRTY2FsZUZ1bmN0aW9ucyxcbiAgICAgIC4uLm9yZGluYWxGaWVsZEFnZ3JTY2FsZUZ1bmN0aW9uc1xuICAgIH0sXG4gICAgZm9ybWF0OiB7XG4gICAgICBsZWdlbmQ6IGQgPT4gZCxcbiAgICAgIHRvb2x0aXA6IFtUT09MVElQX0ZPUk1BVF9UWVBFUy5OT05FLCBUT09MVElQX0ZPUk1BVF9UWVBFUy5CT09MRUFOXVxuICAgIH1cbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5kYXRlXToge1xuICAgIHR5cGU6ICd0aW1lJyxcbiAgICBzY2FsZToge1xuICAgICAgLi4ub3JkaW5hbEZpZWxkU2NhbGVGdW5jdGlvbnMsXG4gICAgICAuLi5vcmRpbmFsRmllbGRBZ2dyU2NhbGVGdW5jdGlvbnNcbiAgICB9LFxuICAgIGZvcm1hdDoge1xuICAgICAgbGVnZW5kOiBkID0+IGQsXG4gICAgICB0b29sdGlwOiBbVE9PTFRJUF9GT1JNQVRfVFlQRVMuTk9ORSwgVE9PTFRJUF9GT1JNQVRfVFlQRVMuREFURV1cbiAgICB9XG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMuZ2VvanNvbl06IHtcbiAgICB0eXBlOiAnZ2VvbWV0cnknLFxuICAgIHNjYWxlOiB7XG4gICAgICAuLi5ub3RTdXBwb3J0ZWRTY2FsZU9wdHMsXG4gICAgICAuLi5ub3RTdXBwb3J0QWdnck9wdHNcbiAgICB9LFxuICAgIGZvcm1hdDoge1xuICAgICAgbGVnZW5kOiBkID0+ICcuLi4nLFxuICAgICAgdG9vbHRpcDogW11cbiAgICB9XG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMuZ2VvYXJyb3ddOiB7XG4gICAgdHlwZTogJ2dlb21ldHJ5JyxcbiAgICBzY2FsZToge1xuICAgICAgLi4ubm90U3VwcG9ydGVkU2NhbGVPcHRzLFxuICAgICAgLi4ubm90U3VwcG9ydEFnZ3JPcHRzXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiAnLi4uJyxcbiAgICAgIHRvb2x0aXA6IFtdXG4gICAgfVxuICB9LFxuICBbQUxMX0ZJRUxEX1RZUEVTLm9iamVjdF06IHtcbiAgICB0eXBlOiAnbnVtZXJpY2FsJyxcbiAgICBzY2FsZToge30sXG4gICAgZm9ybWF0OiB7XG4gICAgICBsZWdlbmQ6IGQgPT4gJy4uLicsXG4gICAgICB0b29sdGlwOiBbXVxuICAgIH1cbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5hcnJheV06IHtcbiAgICB0eXBlOiAnbnVtZXJpY2FsJyxcbiAgICBzY2FsZToge30sXG4gICAgZm9ybWF0OiB7XG4gICAgICBsZWdlbmQ6IGQgPT4gJy4uLicsXG4gICAgICB0b29sdGlwOiBbXVxuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IENIQU5ORUxfU0NBTEVfU1VQUE9SVEVEX0ZJRUxEUyA9IE9iamVjdC5rZXlzKENIQU5ORUxfU0NBTEVTKS5yZWR1Y2UoXG4gIChhY2N1LCBrZXkpID0+ICh7XG4gICAgLi4uYWNjdSxcbiAgICBba2V5XTogT2JqZWN0LmtleXMoRklFTERfT1BUUykuZmlsdGVyKFxuICAgICAgZnQgPT4gRklFTERfT1BUU1tmdF0uc2NhbGVba2V5XSAmJiBPYmplY3Qua2V5cyhGSUVMRF9PUFRTW2Z0XS5zY2FsZVtrZXldKS5sZW5ndGhcbiAgICApXG4gIH0pLFxuICB7fSBhcyB7W2lkOiBzdHJpbmddOiBzdHJpbmdbXX1cbik7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBWUVSX0NPTE9SID0ge1xuICB0cmlwQXJjOiAnIzkyMjZDNicsXG4gIGJlZ2ludHJpcF9sYXQ6ICcjMUU5NkJFJyxcbiAgZHJvcG9mZl9sYXQ6ICcjRkY5OTFGJyxcbiAgcmVxdWVzdF9sYXQ6ICcjNTJBMzUzJ1xufTtcblxuLy8gbGV0IHVzZXIgcGFzcyBpbiBkZWZhdWx0IHRvb2x0aXAgZmllbGRzXG5leHBvcnQgY29uc3QgREVGQVVMVF9UT09MVElQX0ZJRUxEUzogYW55W10gPSBbXTtcblxuZXhwb3J0IGNvbnN0IE5PX1ZBTFVFX0NPTE9SOiBSR0JBQ29sb3IgPSBbMCwgMCwgMCwgMF07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1BJQ0tJTkdfUkFESVVTID0gMztcblxuZXhwb3J0IGNvbnN0IE9WRVJMQVlfQkxFTkRJTkdTID0ge1xuICBub3JtYWw6IHtcbiAgICBsYWJlbDogJ292ZXJsYXlCbGVuZGluZy5ub3JtYWwnLFxuICAgIHZhbHVlOiAnbm9ybWFsJ1xuICB9LFxuICBzY3JlZW46IHtcbiAgICBsYWJlbDogJ292ZXJsYXlCbGVuZGluZy5zY3JlZW4nLFxuICAgIHZhbHVlOiAnc2NyZWVuJ1xuICB9LFxuICBkYXJrZW46IHtcbiAgICBsYWJlbDogJ292ZXJsYXlCbGVuZGluZy5kYXJrZW4nLFxuICAgIHZhbHVlOiAnZGFya2VuJ1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgTEFZRVJfQkxFTkRJTkdTID0ge1xuICBhZGRpdGl2ZToge1xuICAgIGxhYmVsOiAnbGF5ZXJCbGVuZGluZy5hZGRpdGl2ZScsXG4gICAgYmxlbmRGdW5jOiBbJ1NSQ19BTFBIQScsICdEU1RfQUxQSEEnXSxcbiAgICBibGVuZEVxdWF0aW9uOiAnRlVOQ19BREQnXG4gIH0sXG4gIG5vcm1hbDoge1xuICAgIC8vIHJlZmVyZW5jZSB0b1xuICAgIC8vIGh0dHBzOi8vbGltbnUuY29tL3dlYmdsLWJsZW5kaW5nLXlvdXJlLXByb2JhYmx5LXdyb25nL1xuICAgIGxhYmVsOiAnbGF5ZXJCbGVuZGluZy5ub3JtYWwnLFxuICAgIGJsZW5kRnVuYzogWydTUkNfQUxQSEEnLCAnT05FX01JTlVTX1NSQ19BTFBIQScsICdPTkUnLCAnT05FX01JTlVTX1NSQ19BTFBIQSddLFxuICAgIGJsZW5kRXF1YXRpb246IFsnRlVOQ19BREQnLCAnRlVOQ19BREQnXVxuICB9LFxuICBzdWJ0cmFjdGl2ZToge1xuICAgIGxhYmVsOiAnbGF5ZXJCbGVuZGluZy5zdWJ0cmFjdGl2ZScsXG4gICAgYmxlbmRGdW5jOiBbJ09ORScsICdPTkVfTUlOVVNfRFNUX0NPTE9SJywgJ1NSQ19BTFBIQScsICdEU1RfQUxQSEEnXSxcbiAgICBibGVuZEVxdWF0aW9uOiBbJ0ZVTkNfU1VCVFJBQ1QnLCAnRlVOQ19BREQnXVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgTUFYX0RFRkFVTFRfVE9PTFRJUFMgPSA1O1xuXG5leHBvcnQgY29uc3QgUkVTT0xVVElPTlMgPSBrZXlNaXJyb3Ioe1xuICBPTkVfWDogbnVsbCxcbiAgVFdPX1g6IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgRVhQT1JUX0lNR19SQVRJT1MgPSBrZXlNaXJyb3Ioe1xuICBTQ1JFRU46IG51bGwsXG4gIEZPVVJfQllfVEhSRUU6IG51bGwsXG4gIFNJWFRFRU5fQllfTklORTogbnVsbCxcbiAgQ1VTVE9NOiBudWxsXG59KTtcblxuZXhwb3J0IHR5cGUgRXhwb3J0SW1hZ2UgPSB7XG4gIHJhdGlvOiBrZXlvZiB0eXBlb2YgRVhQT1JUX0lNR19SQVRJT1M7XG4gIHJlc29sdXRpb246IGtleW9mIHR5cGVvZiBSRVNPTFVUSU9OUztcbiAgbGVnZW5kOiBib29sZWFuO1xuICBtYXBIOiBudW1iZXI7XG4gIG1hcFc6IG51bWJlcjtcbiAgaW1hZ2VTaXplOiB7XG4gICAgem9vbU9mZnNldDogbnVtYmVyO1xuICAgIHNjYWxlOiBudW1iZXI7XG4gICAgaW1hZ2VXOiBudW1iZXI7XG4gICAgaW1hZ2VIOiBudW1iZXI7XG4gIH07XG4gIC8vIGV4cG9ydGluZyBzdGF0ZVxuICBpbWFnZURhdGFVcmk6IHN0cmluZztcbiAgZXhwb3J0aW5nOiBib29sZWFuO1xuICBwcm9jZXNzaW5nOiBib29sZWFuO1xuICBlcnJvcjogRXJyb3IgfCBmYWxzZTtcbiAgZXNjYXBlWGh0bWxGb3JXZWJwYWNrPzogYm9vbGVhbjtcbiAgLy8gVGhpcyBmaWVsZCB3YXMgbm90IGluIHRoZSAuZC50cyBmaWxlXG4gIGNlbnRlcjogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIEltYWdlUmF0aW9PcHRpb24gPSB7XG4gIGlkOiBrZXlvZiB0eXBlb2YgRVhQT1JUX0lNR19SQVRJT1M7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIGdldFNpemU6IChzY3JlZW5XOiBudW1iZXIsIHNjcmVlbkg6IG51bWJlcikgPT4ge3dpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyfTtcbn07XG5cbmV4cG9ydCBjb25zdCBTY3JlZW5SYXRpb09wdGlvbjogSW1hZ2VSYXRpb09wdGlvbiA9IHtcbiAgaWQ6IEVYUE9SVF9JTUdfUkFUSU9TLlNDUkVFTixcbiAgbGFiZWw6ICdtb2RhbC5leHBvcnRJbWFnZS5yYXRpb09yaWdpbmFsU2NyZWVuJyxcbiAgZ2V0U2l6ZTogKHNjcmVlblcsIHNjcmVlbkgpID0+ICh7d2lkdGg6IHNjcmVlblcsIGhlaWdodDogc2NyZWVuSH0pXG59O1xuZXhwb3J0IGNvbnN0IEN1c3RvbVJhdGlvT3B0aW9uOiBJbWFnZVJhdGlvT3B0aW9uID0ge1xuICBpZDogRVhQT1JUX0lNR19SQVRJT1MuQ1VTVE9NLFxuICBoaWRkZW46IHRydWUsXG4gIGxhYmVsOiAnbW9kYWwuZXhwb3J0SW1hZ2UucmF0aW9DdXN0b20nLFxuICBnZXRTaXplOiAobWFwVywgbWFwSCkgPT4gKHt3aWR0aDogbWFwVywgaGVpZ2h0OiBtYXBIfSlcbn07XG5leHBvcnQgY29uc3QgRm91ckJ5VGhyZWVSYXRpb09wdGlvbjogSW1hZ2VSYXRpb09wdGlvbiA9IHtcbiAgaWQ6IEVYUE9SVF9JTUdfUkFUSU9TLkZPVVJfQllfVEhSRUUsXG4gIGxhYmVsOiAnbW9kYWwuZXhwb3J0SW1hZ2UucmF0aW80XzMnLFxuICBnZXRTaXplOiAoc2NyZWVuVywgc2NyZWVuSCkgPT4gKHtcbiAgICB3aWR0aDogc2NyZWVuVyxcbiAgICBoZWlnaHQ6IE1hdGgucm91bmQoc2NyZWVuVyAqIDAuNzUpXG4gIH0pXG59O1xuZXhwb3J0IGNvbnN0IFNpeHRlZW5CeU5pbmVSYXRpb09wdGlvbjogSW1hZ2VSYXRpb09wdGlvbiA9IHtcbiAgaWQ6IEVYUE9SVF9JTUdfUkFUSU9TLlNJWFRFRU5fQllfTklORSxcbiAgbGFiZWw6ICdtb2RhbC5leHBvcnRJbWFnZS5yYXRpbzE2XzknLFxuICBnZXRTaXplOiAoc2NyZWVuVywgc2NyZWVuSCkgPT4gKHtcbiAgICB3aWR0aDogc2NyZWVuVyxcbiAgICBoZWlnaHQ6IE1hdGgucm91bmQoc2NyZWVuVyAqIDAuNTYyNSlcbiAgfSlcbn07XG5cbmV4cG9ydCBjb25zdCBFWFBPUlRfSU1HX1JBVElPX09QVElPTlM6IFJlYWRvbmx5QXJyYXk8SW1hZ2VSYXRpb09wdGlvbj4gPSBbXG4gIFNjcmVlblJhdGlvT3B0aW9uLFxuICBDdXN0b21SYXRpb09wdGlvbixcbiAgRm91ckJ5VGhyZWVSYXRpb09wdGlvbixcbiAgU2l4dGVlbkJ5TmluZVJhdGlvT3B0aW9uXG5dO1xuXG5leHBvcnQgdHlwZSBJbWFnZVJlc29sdXRpb25PcHRpb24gPSB7XG4gIGlkOiBrZXlvZiB0eXBlb2YgUkVTT0xVVElPTlM7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGF2YWlsYWJsZTogYm9vbGVhbjtcbiAgc2NhbGU6IG51bWJlcjtcbiAgZ2V0U2l6ZTogKHNjcmVlblc6IG51bWJlciwgc2NyZWVuSDogbnVtYmVyKSA9PiB7d2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXJ9O1xufTtcblxuZXhwb3J0IGNvbnN0IE9uZVhSZXNvbHV0aW9uT3B0aW9uOiBJbWFnZVJlc29sdXRpb25PcHRpb24gPSB7XG4gIGlkOiBSRVNPTFVUSU9OUy5PTkVfWCxcbiAgbGFiZWw6ICcxeCcsXG4gIGF2YWlsYWJsZTogdHJ1ZSxcbiAgc2NhbGU6IDEsXG4gIGdldFNpemU6IChzY3JlZW5XLCBzY3JlZW5IKSA9PiAoe1xuICAgIHdpZHRoOiBzY3JlZW5XLFxuICAgIGhlaWdodDogc2NyZWVuSFxuICB9KVxufTtcblxuZXhwb3J0IGNvbnN0IFR3b1hSZXNvbHV0aW9uT3B0aW9uOiBJbWFnZVJlc29sdXRpb25PcHRpb24gPSB7XG4gIGlkOiBSRVNPTFVUSU9OUy5UV09fWCxcbiAgbGFiZWw6ICcyeCcsXG4gIGF2YWlsYWJsZTogdHJ1ZSxcbiAgc2NhbGU6IDIsXG4gIGdldFNpemU6IChzY3JlZW5XLCBzY3JlZW5IKSA9PiAoe1xuICAgIHdpZHRoOiBzY3JlZW5XICogMixcbiAgICBoZWlnaHQ6IHNjcmVlbkggKiAyXG4gIH0pXG59O1xuXG5leHBvcnQgY29uc3QgRVhQT1JUX0lNR19SRVNPTFVUSU9OX09QVElPTlM6IFJlYWRvbmx5QXJyYXk8SW1hZ2VSZXNvbHV0aW9uT3B0aW9uPiA9IFtcbiAgT25lWFJlc29sdXRpb25PcHRpb24sXG4gIFR3b1hSZXNvbHV0aW9uT3B0aW9uXG5dO1xuXG5leHBvcnQgY29uc3QgRVhQT1JUX0RBVEFfVFlQRSA9IGtleU1pcnJvcih7XG4gIENTVjogbnVsbFxuICAvLyBTSEFQRUZJTEU6IG51bGwsXG4gIC8vIEpTT046IG51bGwsXG4gIC8vIEdFT0pTT046IG51bGwsXG4gIC8vIFRPUE9KU09OOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IEVYUE9SVF9EQVRBX1RZUEVfT1BUSU9OUyA9IFtcbiAge1xuICAgIGlkOiBFWFBPUlRfREFUQV9UWVBFLkNTVixcbiAgICBsYWJlbDogRVhQT1JUX0RBVEFfVFlQRS5DU1YudG9Mb3dlckNhc2UoKSxcbiAgICBhdmFpbGFibGU6IHRydWVcbiAgfVxuICAvLyB7XG4gIC8vICAgaWQ6IEVYUE9SVF9EQVRBX1RZUEUuU0hBUEVGSUxFLFxuICAvLyAgIGxhYmVsOiAnc2hhcGVmaWxlJyxcbiAgLy8gICBhdmFpbGFibGU6IGZhbHNlXG4gIC8vIH0sXG4gIC8vIHtcbiAgLy8gICBpZDogRVhQT1JUX0RBVEFfVFlQRS5KU09OLFxuICAvLyAgIGxhYmVsOiAnanNvbicsXG4gIC8vICAgYXZhaWxhYmxlOiBmYWxzZVxuICAvLyB9LFxuICAvLyB7XG4gIC8vICAgaWQ6IEVYUE9SVF9EQVRBX1RZUEUuR0VPSlNPTixcbiAgLy8gICBsYWJlbDogJ2dlb2pzb24nLFxuICAvLyAgIGF2YWlsYWJsZTogZmFsc2VcbiAgLy8gfSxcbiAgLy8ge1xuICAvLyAgIGlkOiBFWFBPUlRfREFUQV9UWVBFLlRPUE9KU09OLFxuICAvLyAgIGxhYmVsOiAndG9wb2pzb24nLFxuICAvLyAgIGF2YWlsYWJsZTogZmFsc2VcbiAgLy8gfVxuXTtcblxuLy8gRXhwb3J0IG1hcCB0eXBlc1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9NQVBfRk9STUFUUyA9IGtleU1pcnJvcih7XG4gIEhUTUw6IG51bGwsXG4gIEpTT046IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgRVhQT1JUX0hUTUxfTUFQX01PREVTID0ga2V5TWlycm9yKHtcbiAgUkVBRDogbnVsbCxcbiAgRURJVDogbnVsbFxufSk7XG5cbi8vIEV4cG9ydCBtYXAgb3B0aW9uc1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9NQVBfRk9STUFUX09QVElPTlMgPSBPYmplY3QuZW50cmllcyhFWFBPUlRfTUFQX0ZPUk1BVFMpLm1hcChcbiAgKGVudHJ5OiBbc3RyaW5nLCBhbnldKSA9PiAoe1xuICAgIGlkOiBlbnRyeVswXSxcbiAgICBsYWJlbDogZW50cnlbMV0udG9Mb3dlckNhc2UoKSxcbiAgICBhdmFpbGFibGU6IHRydWVcbiAgfSlcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIVE1MTWFwTW9kZVRpbGVVcmwobW9kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBodHRwczovL2QxYTNmNHNwYXp6cnA0LmNsb3VkZnJvbnQubmV0L2tlcGxlci5nbC9kb2N1bWVudGF0aW9uL21hcC0ke21vZGUudG9Mb3dlckNhc2UoKX0tbW9kZS5wbmdgO1xufVxuXG5leHBvcnQgY29uc3QgRVhQT1JUX0hUTUxfTUFQX01PREVfT1BUSU9OUyA9IE9iamVjdC5lbnRyaWVzKEVYUE9SVF9IVE1MX01BUF9NT0RFUykubWFwKFxuICAoZW50cnk6IFtzdHJpbmcsIGFueV0pID0+ICh7XG4gICAgaWQ6IGVudHJ5WzBdLFxuICAgIGxhYmVsOiBgbW9kYWwuZXhwb3J0TWFwLmh0bWwuJHtlbnRyeVsxXS50b0xvd2VyQ2FzZSgpfWAsXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxuICAgIHVybDogZ2V0SFRNTE1hcE1vZGVUaWxlVXJsKGVudHJ5WzFdKVxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVVVJRF9DT1VOVCA9IDY7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX05PVElGSUNBVElPTl9NRVNTQUdFID0gJ01FU1NBR0VfTk9UX1BST1ZJREVEJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTk9USUZJQ0FUSU9OX1RZUEVTID0ga2V5TWlycm9yKHtcbiAgaW5mbzogbnVsbCxcbiAgZXJyb3I6IG51bGwsXG4gIHdhcm5pbmc6IG51bGwsXG4gIHN1Y2Nlc3M6IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9OT1RJRklDQVRJT05fVE9QSUNTID0ga2V5TWlycm9yKHtcbiAgZ2xvYmFsOiBudWxsLFxuICBmaWxlOiBudWxsXG59KTtcblxuLy8gTWluaW11bSB0aW1lIGJldHdlZW4gaWRlbnRpY2FsIG5vdGlmaWNhdGlvbnMgYWJvdXQgZGVjay5nbCBlcnJvcnNcbmV4cG9ydCBjb25zdCBUSFJPVFRMRV9OT1RJRklDQVRJT05fVElNRSA9IDMzMDtcblxuLy8gQW5pbWF0aW9uXG5leHBvcnQgY29uc3QgQkFTRV9TUEVFRCA9IDYwMDtcbmV4cG9ydCBjb25zdCBGUFMgPSA2MDtcblxuLyoqXG4gKiA0IEFuaW1hdGlvbiBXaW5kb3cgVHlwZXNcbiAqIDEuIGZyZWVcbiAqICB8LT4gIHwtPlxuICogQ3VycmVudCB0aW1lIGlzIGEgZml4ZWQgcmFuZ2UsIGFuaW1hdGlvbiBjb250cm9sbGVyIGNhbGxzIG5leHQgYW5pbWF0aW9uIGZyYW1lcyBjb250aW51b3VzbHkgdG8gYW5pbWF0aW9uIGEgbW92aW5nIHdpbmRvd1xuICogVGhlIGluY3JlbWVudCBpZCBiYXNlZCBvbiBkb21haW4gLyBCQVNFX1NQRUVEICogU1BFRURcbiAqXG4gKiAyLiBpbmNyZW1lbnRhbFxuICogfCAgICB8LT5cbiAqIFNhbWUgYXMgZnJlZSwgY3VycmVudCB0aW1lIGlzIGEgZ3Jvd2luZyByYW5nZSwgb25seSB0aGUgbWF4IHZhbHVlIG9mIHJhbmdlIGluY3JlbWVudCBkdXJpbmcgYW5pbWF0aW9uLlxuICogVGhlIGluY3JlbWVudCBpcyBhbHNvIGJhc2VkIG9uIGRvbWFpbiAvIEJBU0VfU1BFRUQgKiBTUEVFRFxuICpcbiAqIDMuIHBvaW50XG4gKiBvIC0+IG9cbiAqIEN1cnJlbnQgdGltZSBpcyBhIHBvaW50LCBhbmltYXRpb24gY29udHJvbGxlciBjYWxscyBuZXh0IGFuaW1hdGlvbiBmcmFtZSBjb250aW51b3VzbHkgdG8gYW5pbWF0aW9uIGEgbW92aW5nIHBvaW50XG4gKiBUaGUgaW5jcmVtZW50IGlzIGJhc2VkIG9uIGRvbWFpbiAvIEJBU0VfU1BFRUQgKiBTUEVFRFxuICpcbiAqIDQuIGludGVydmFsXG4gKiBvIH4+IG9cbiAqIEN1cnJlbnQgdGltZSBpcyBhIHBvaW50LiBBbiBhcnJheSBvZiBzb3J0ZWQgdGltZSBzdGVwcyBuZWVkIHRvIGJlIHByb3ZpZGVkLlxuICogYW5pbWF0aW9uIGNvbnRyb2xsZXIgY2FsbHMgbmV4dCBhbmltYXRpb24gYXQgYSBpbnRlcnZhbCB3aGVuIHRoZSBwb2ludCBqdW1wcyB0byB0aGUgbmV4dCBzdGVwXG4gKi9cbmV4cG9ydCBjb25zdCBBTklNQVRJT05fV0lORE9XID0ga2V5TWlycm9yKHtcbiAgZnJlZTogbnVsbCxcbiAgaW5jcmVtZW50YWw6IG51bGwsXG4gIHBvaW50OiBudWxsLFxuICBpbnRlcnZhbDogbnVsbFxufSk7XG5leHBvcnQgY29uc3QgREVGQVVMVF9USU1FX0ZPUk1BVCA9ICdNTS9ERC9ZWSBISDptbTpzc2EnO1xuZXhwb3J0IGNvbnN0IFNQRUVEX0NPTlRST0xfUkFOR0U6IFtudW1iZXIsIG51bWJlcl0gPSBbMCwgMTBdO1xuZXhwb3J0IGNvbnN0IFNQRUVEX0NPTlRST0xfU1RFUCA9IDAuMDAxO1xuXG4vLyBHZW9jb2RlclxuZXhwb3J0IGNvbnN0IEdFT0NPREVSX0RBVEFTRVRfTkFNRSA9ICdnZW9jb2Rlcl9kYXRhc2V0JztcbmV4cG9ydCBjb25zdCBHRU9DT0RFUl9MQVlFUl9JRCA9ICdnZW9jb2Rlcl9sYXllcic7XG5leHBvcnQgY29uc3QgR0VPQ09ERVJfR0VPX09GRlNFVCA9IDAuMDU7XG5leHBvcnQgY29uc3QgR0VPQ09ERVJfSUNPTl9DT0xPUjogW251bWJlciwgbnVtYmVyLCBudW1iZXJdID0gWzI1NSwgMCwgMF07XG5leHBvcnQgY29uc3QgR0VPQ09ERVJfSUNPTl9TSVpFID0gODA7XG5cbi8vIEVkaXRvclxuZXhwb3J0IGNvbnN0IEVESVRPUl9MQVlFUl9JRCA9ICdrZXBsZXJfZWRpdG9yX2xheWVyJztcbmV4cG9ydCBjb25zdCBFRElUT1JfTEFZRVJfUElDS0lOR19SQURJVVMgPSA2O1xuZXhwb3J0IGNvbnN0IEVESVRPUl9NT0RFUyA9IHtcbiAgRFJBV19QT0xZR09OOiAnRFJBV19QT0xZR09OJyxcbiAgRFJBV19SRUNUQU5HTEU6ICdEUkFXX1JFQ1RBTkdMRScsXG4gIEVESVQ6ICdFRElUX1ZFUlRFWCdcbn07XG5cbmV4cG9ydCBjb25zdCBQTE9UX1RZUEVTID0ga2V5TWlycm9yKHtcbiAgaGlzdG9ncmFtOiBudWxsLFxuICBsaW5lQ2hhcnQ6IG51bGxcbn0pO1xuXG4vLyBGaWx0ZXJcbmV4cG9ydCBjb25zdCBJTklUX0ZJTFRFUl9JVEVNU19JTl9EUk9QRE9XTiA9IDEwMDtcblxuLy8gR1BVIEZpbHRlcmluZ1xuLyoqXG4gKiBNYXggbnVtYmVyIG9mIGZpbHRlciB2YWx1ZSBidWZmZXJzIHRoYXQgZGVjay5nbCBwcm92aWRlc1xuICovXG5leHBvcnQgY29uc3QgTUFYX0dQVV9GSUxURVJTID0gNDtcbmV4cG9ydCBjb25zdCBNQVBfVEhVTUJOQUlMX0RJTUVOU0lPTiA9IHtcbiAgd2lkdGg6IDMwMCxcbiAgaGVpZ2h0OiAyMDBcbn07XG5cbmV4cG9ydCBjb25zdCBNQVBfSU5GT19DSEFSQUNURVIgPSB7XG4gIHRpdGxlOiAxMDAsXG4gIGRlc2NyaXB0aW9uOiAxMDBcbn07XG5cbi8vIExvYWQgZGF0YVxuZXhwb3J0IGNvbnN0IExPQURJTkdfTUVUSE9EUyA9IGtleU1pcnJvcih7XG4gIHVwbG9hZDogbnVsbCxcbiAgc3RvcmFnZTogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZFQVRVUkVfRkxBR1MgPSB7fTtcblxuZXhwb3J0IGNvbnN0IERBVEFTRVRfRk9STUFUUyA9IGtleU1pcnJvcih7XG4gIHJvdzogbnVsbCxcbiAgZ2VvanNvbjogbnVsbCxcbiAgY3N2OiBudWxsLFxuICBrZXBsZXJnbDogbnVsbCxcbiAgYXJyb3c6IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgTUFQX0NPTlRST0xTID0ga2V5TWlycm9yKHtcbiAgdmlzaWJsZUxheWVyczogbnVsbCxcbiAgbWFwTGVnZW5kOiBudWxsLFxuICB0b2dnbGUzZDogbnVsbCxcbiAgc3BsaXRNYXA6IG51bGwsXG4gIG1hcERyYXc6IG51bGwsXG4gIG1hcExvY2FsZTogbnVsbCxcbiAgZWZmZWN0OiBudWxsXG59KTtcblxuLyoqXG4gKiBBIG11bHRpcGxpZXIgZm9yIHNjcmVlbi1zcGFjZSB3aWR0aC9zY2FsZSBmb3IgQXJjLCBMaW5lLCBJY29uIGFuZCBUZXh0IGxheWVycy5cbiAqIFJlcXVpcmVkIGluIG9yZGVyIHRvIG1haW50YWluIHRoZSBzYW1lIGFwcGVhcmFuY2UgYWZ0ZXIgdXBncmFkaW5nIHRvIGRlY2suZ2wgdjguNS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS92aXNnbC9kZWNrLmdsL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZS1ndWlkZS5tZFxuICovXG5leHBvcnQgY29uc3QgUFJPSkVDVEVEX1BJWEVMX1NJWkVfTVVMVElQTElFUiA9IDIgLyAzO1xuXG4vKipcbiAqIE1heGltdW0gdmFsdWUgZm9yIHRleHQgb3V0bGluZSB3aWR0aFxuICovXG5leHBvcnQgY29uc3QgVEVYVF9PVVRMSU5FX01VTFRJUExJRVIgPSA1O1xuXG5leHBvcnQgY29uc3QgZGF0YVRlc3RJZHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGluZm9JY29uOiAnaW5mby1pY29uJyxcbiAgd2FybmluZ0ljb246ICd3YXJuaW5nLWljb24nLFxuICBlcnJvckljb246ICdlcnJvci1pY29uJyxcbiAgc3VjY2Vzc0ljb246ICdzdWNjZXNzLWljb24nLFxuICBjaGVja21hcmtJY29uOiAnY2hlY2ttYXJrLWljb24nLFxuICBzb3J0YWJsZUxheWVySXRlbTogJ3NvcnRhYmxlLWxheWVyLWl0ZW0nLFxuICBzdGF0aWNMYXllckl0ZW06ICdzdGF0aWMtbGF5ZXItaXRlbScsXG4gIGxheWVyVGl0bGVFZGl0b3I6ICdsYXllcl9fdGl0bGVfX2VkaXRvcicsXG4gIHJlbW92ZUxheWVyQWN0aW9uOiAncmVtb3ZlLWxheWVyLWFjdGlvbicsXG4gIGxheWVyUGFuZWw6ICdsYXllci1wYW5lbCcsXG4gIHNvcnRhYmxlRWZmZWN0SXRlbTogJ3NvcnRhYmxlLWVmZmVjdC1pdGVtJyxcbiAgc3RhdGljRWZmZWN0SXRlbTogJ3N0YXRpYy1lZmZlY3QtaXRlbScsXG4gIHByb3ZpZGVyTG9hZGluZzogJ3Byb3ZpZGVyLWxvYWRpbmcnLFxuICBwcm92aWRlck1hcEluZm9QYW5lbDogJ3Byb3ZpZGVyLW1hcC1pbmZvLXBhbmVsJyxcbiAgcHJvdmlkZXJTZWxlY3Q6ICdwcm92aWRlci1zZWxlY3QnLFxuICBjbG91ZEhlYWRlcjogJ2Nsb3VkLWhlYWRlcicsXG4gIHByb3ZpZGVyU2hhcmVNYXA6ICdwcm92aWRlci1zaGFyZS1tYXAnXG59O1xuXG4vLyBFZmZlY3RzXG5leHBvcnQgY29uc3QgREVGQVVMVF9USU1FWk9ORSA9ICdVVEMnO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUE9TVF9QUk9DRVNTSU5HX0VGRkVDVF9UWVBFOiBzdHJpbmcgPSAnaW5rJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTElHSFRfQ09MT1I6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSA9IFsyNTUsIDI1NSwgMjU1XTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0xJR0hUX0lOVEVOU0lUWSA9IDE7XG5leHBvcnQgY29uc3QgREVGQVVMVF9TSEFET1dfSU5URU5TSVRZID0gMC41O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0hBRE9XX0NPTE9SOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gPSBbMCwgMCwgMF07XG5cbmV4cG9ydCBjb25zdCBMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVF9USU1FX01PREVTID0ge1xuICBwaWNrOiAncGljaycgYXMgJ3BpY2snLFxuICBjdXJyZW50OiAnY3VycmVudCcgYXMgJ2N1cnJlbnQnLFxuICBhbmltYXRpb246ICdhbmltYXRpb24nIGFzICdhbmltYXRpb24nXG59O1xuZXhwb3J0IHR5cGUgTGlnaHRBbmRTaGFkb3dFZmZlY3RUaW1lTW9kZSA9ICdwaWNrJyB8ICdjdXJyZW50JyB8ICdhbmltYXRpb24nO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTElHSFRfQU5EX1NIQURPV19QUk9QUzoge1xuICB0aW1lc3RhbXA6IG51bWJlcjtcbiAgdGltZU1vZGU6IExpZ2h0QW5kU2hhZG93RWZmZWN0VGltZU1vZGU7XG4gIHNoYWRvd0ludGVuc2l0eTogbnVtYmVyO1xuICBzaGFkb3dDb2xvcjogW251bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuICBzdW5MaWdodENvbG9yOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG4gIHN1bkxpZ2h0SW50ZW5zaXR5OiBudW1iZXI7XG4gIGFtYmllbnRMaWdodENvbG9yOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG4gIGFtYmllbnRMaWdodEludGVuc2l0eTogbnVtYmVyO1xufSA9IHtcbiAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICB0aW1lTW9kZTogTElHSFRfQU5EX1NIQURPV19FRkZFQ1RfVElNRV9NT0RFUy5waWNrIGFzIExpZ2h0QW5kU2hhZG93RWZmZWN0VGltZU1vZGUsXG4gIHNoYWRvd0ludGVuc2l0eTogREVGQVVMVF9TSEFET1dfSU5URU5TSVRZLFxuICBzaGFkb3dDb2xvcjogWy4uLkRFRkFVTFRfU0hBRE9XX0NPTE9SXSBhcyBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0sXG4gIHN1bkxpZ2h0Q29sb3I6IFsuLi5ERUZBVUxUX0xJR0hUX0NPTE9SXSBhcyBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0sXG4gIHN1bkxpZ2h0SW50ZW5zaXR5OiBERUZBVUxUX0xJR0hUX0lOVEVOU0lUWSxcbiAgYW1iaWVudExpZ2h0Q29sb3I6IFsuLi5ERUZBVUxUX0xJR0hUX0NPTE9SXSBhcyBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0sXG4gIGFtYmllbnRMaWdodEludGVuc2l0eTogREVGQVVMVF9MSUdIVF9JTlRFTlNJVFlcbn07XG5cbmV4cG9ydCBjb25zdCBMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVDogRWZmZWN0RGVzY3JpcHRpb24gPSB7XG4gIHR5cGU6ICdsaWdodEFuZFNoYWRvdycsXG4gIG5hbWU6ICdMaWdodCAmIFNoYWRvdycsXG4gIHBhcmFtZXRlcnM6IFtcbiAgICB7bmFtZTogJ3RpbWVzdGFtcCcsIG1pbjogMCwgbWF4OiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUn0sXG4gICAge25hbWU6ICdzaGFkb3dJbnRlbnNpdHknLCBtaW46IDAsIG1heDogMSwgZGVmYXVsdFZhbHVlOiBERUZBVUxUX1NIQURPV19JTlRFTlNJVFl9LFxuICAgIHtuYW1lOiAnc3VuTGlnaHRJbnRlbnNpdHknLCBtaW46IDAsIG1heDogMSwgZGVmYXVsdFZhbHVlOiBERUZBVUxUX0xJR0hUX0lOVEVOU0lUWX0sXG4gICAge25hbWU6ICdhbWJpZW50TGlnaHRJbnRlbnNpdHknLCBtaW46IDAsIG1heDogMSwgZGVmYXVsdFZhbHVlOiBERUZBVUxUX0xJR0hUX0lOVEVOU0lUWX0sXG4gICAge25hbWU6ICdzaGFkb3dDb2xvcicsIHR5cGU6ICdjb2xvcicsIG1pbjogMCwgbWF4OiAyNTUsIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9TSEFET1dfQ09MT1J9LFxuICAgIHtuYW1lOiAnc3VuTGlnaHRDb2xvcicsIHR5cGU6ICdjb2xvcicsIG1pbjogMCwgbWF4OiAyNTUsIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9MSUdIVF9DT0xPUn0sXG4gICAge25hbWU6ICdhbWJpZW50TGlnaHRDb2xvcicsIHR5cGU6ICdjb2xvcicsIG1pbjogMCwgbWF4OiAyNTUsIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9MSUdIVF9DT0xPUn1cbiAgXVxufTtcblxuZXhwb3J0IGNvbnN0IFBPU1RQUk9DRVNTSU5HX0VGRkVDVFM6IHtba2V5OiBzdHJpbmddOiBFZmZlY3REZXNjcmlwdGlvbn0gPSB7XG4gIGluazoge1xuICAgIHR5cGU6ICdpbmsnLFxuICAgIG5hbWU6ICdJbmsnLFxuICAgIHBhcmFtZXRlcnM6IFt7bmFtZTogJ3N0cmVuZ3RoJywgbWluOiAwLCBtYXg6IDF9XVxuICB9LFxuICBicmlnaHRuZXNzQ29udHJhc3Q6IHtcbiAgICB0eXBlOiAnYnJpZ2h0bmVzc0NvbnRyYXN0JyxcbiAgICBuYW1lOiAnQnJpZ2h0bmVzcyAmIENvbnRyYXN0JyxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7bmFtZTogJ2JyaWdodG5lc3MnLCBtaW46IC0xLCBtYXg6IDF9LFxuICAgICAge25hbWU6ICdjb250cmFzdCcsIG1pbjogLTEsIG1heDogMX1cbiAgICBdXG4gIH0sXG4gIGh1ZVNhdHVyYXRpb246IHtcbiAgICB0eXBlOiAnaHVlU2F0dXJhdGlvbicsXG4gICAgbmFtZTogJ0h1ZSAmIFNhdHVyYXRpb24nLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtuYW1lOiAnaHVlJywgbWluOiAtMSwgbWF4OiAxfSxcbiAgICAgIHtuYW1lOiAnc2F0dXJhdGlvbicsIGRlZmF1bHRWYWx1ZTogMC4yNSwgbWluOiAtMSwgbWF4OiAxfVxuICAgIF1cbiAgfSxcbiAgdmlicmFuY2U6IHtcbiAgICB0eXBlOiAndmlicmFuY2UnLFxuICAgIG5hbWU6ICdWaWJyYW5jZScsXG4gICAgcGFyYW1ldGVyczogW3tuYW1lOiAnYW1vdW50JywgZGVmYXVsdFZhbHVlOiAwLjUsIG1pbjogLTEsIG1heDogMX1dXG4gIH0sXG4gIHNlcGlhOiB7XG4gICAgdHlwZTogJ3NlcGlhJyxcbiAgICBuYW1lOiAnU2VwaWEnLFxuICAgIHBhcmFtZXRlcnM6IFt7bmFtZTogJ2Ftb3VudCcsIG1pbjogMCwgbWF4OiAxfV1cbiAgfSxcbiAgZG90U2NyZWVuOiB7XG4gICAgdHlwZTogJ2RvdFNjcmVlbicsXG4gICAgbmFtZTogJ0RvdCBTY3JlZW4nLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2FuZ2xlJyxcbiAgICAgICAgbWluOiAwLFxuICAgICAgICBtYXg6IE1hdGguUEkgLyAyXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnc2l6ZScsXG4gICAgICAgIG1pbjogMSxcbiAgICAgICAgbWF4OiAyMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2NlbnRlcicsXG4gICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgIGxhYmVsOiBbJ0NlbnRlciBYJywgJ0NlbnRlciBZJ10sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogWzAuNSwgMC41XSxcbiAgICAgICAgbWluOiAwLFxuICAgICAgICBtYXg6IDFcbiAgICAgIH1cbiAgICBdXG4gIH0sXG4gIGNvbG9ySGFsZnRvbmU6IHtcbiAgICB0eXBlOiAnY29sb3JIYWxmdG9uZScsXG4gICAgbmFtZTogJ0NvbG9yIEhhbGZ0b25lJyxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdhbmdsZScsXG4gICAgICAgIG1pbjogMCxcbiAgICAgICAgbWF4OiBNYXRoLlBJIC8gMlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3NpemUnLFxuICAgICAgICBtaW46IDEsXG4gICAgICAgIG1heDogMjBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjZW50ZXInLFxuICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICBsYWJlbDogWydDZW50ZXIgWCcsICdDZW50ZXIgWSddLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IFswLjUsIDAuNV0sXG4gICAgICAgIG1pbjogMCxcbiAgICAgICAgbWF4OiAxXG4gICAgICB9XG4gICAgXVxuICB9LFxuICBub2lzZToge1xuICAgIHR5cGU6ICdub2lzZScsXG4gICAgbmFtZTogJ05vaXNlJyxcbiAgICBwYXJhbWV0ZXJzOiBbe25hbWU6ICdhbW91bnQnLCBtaW46IDAsIG1heDogMX1dXG4gIH0sXG4gIHRyaWFuZ2xlQmx1cjoge1xuICAgIHR5cGU6ICd0cmlhbmdsZUJsdXInLFxuICAgIG5hbWU6ICdCbHVyIChUcmlhbmdsZSknLFxuICAgIHBhcmFtZXRlcnM6IFt7bmFtZTogJ3JhZGl1cycsIG1pbjogMCwgbWF4OiAxMDB9XVxuICB9LFxuICB6b29tQmx1cjoge1xuICAgIHR5cGU6ICd6b29tQmx1cicsXG4gICAgbmFtZTogJ0JsdXIgKFpvb20pJyxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzdHJlbmd0aCcsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogMC4wNSxcbiAgICAgICAgbWluOiAwLFxuICAgICAgICBtYXg6IDFcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjZW50ZXInLFxuICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICBsYWJlbDogWydDZW50ZXIgWCcsICdDZW50ZXIgWSddLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IFswLjUsIDAuNV0sXG4gICAgICAgIG1pbjogMCxcbiAgICAgICAgbWF4OiAxXG4gICAgICB9XG4gICAgXVxuICB9LFxuICB0aWx0U2hpZnQ6IHtcbiAgICB0eXBlOiAndGlsdFNoaWZ0JyxcbiAgICBuYW1lOiAnQmx1ciAoVGlsdCBTaGlmdCknLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2JsdXJSYWRpdXMnLFxuICAgICAgICBsYWJlbDogJ0JsdXInLFxuICAgICAgICBtaW46IDAsXG4gICAgICAgIG1heDogNTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdncmFkaWVudFJhZGl1cycsXG4gICAgICAgIGxhYmVsOiAnR3JhZGllbnQnLFxuICAgICAgICBtaW46IDAsXG4gICAgICAgIG1heDogNDAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnc3RhcnQnLFxuICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICBsYWJlbDogWydTdGFydCcsIGZhbHNlXSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBbMC4wLCAwLjBdLFxuICAgICAgICBtaW46IDAsXG4gICAgICAgIG1heDogMVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2VuZCcsXG4gICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgIGxhYmVsOiBbJ0VuZCcsIGZhbHNlXSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBbMSwgMV0sXG4gICAgICAgIG1pbjogMCxcbiAgICAgICAgbWF4OiAxXG4gICAgICB9XG4gICAgXVxuICB9LFxuICBlZGdlV29yazoge1xuICAgIHR5cGU6ICdlZGdlV29yaycsXG4gICAgbmFtZTogJ0VkZ2Ugd29yaycsXG4gICAgcGFyYW1ldGVyczogW3tuYW1lOiAncmFkaXVzJywgbWluOiAxLCBtYXg6IDUwfV1cbiAgfSxcbiAgdmlnbmV0dGU6IHtcbiAgICB0eXBlOiAndmlnbmV0dGUnLFxuICAgIG5hbWU6ICdWaWduZXR0ZScsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge25hbWU6ICdhbW91bnQnLCBtaW46IDAsIG1heDogMX0sXG4gICAgICB7bmFtZTogJ3JhZGl1cycsIG1pbjogMCwgbWF4OiAxfVxuICAgIF1cbiAgfSxcbiAgbWFnbmlmeToge1xuICAgIHR5cGU6ICdtYWduaWZ5JyxcbiAgICBuYW1lOiAnTWFnbmlmeScsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnc2NyZWVuWFknLFxuICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICBsYWJlbDogWydQb3NpdGlvbiBYJywgJ1Bvc2l0aW9uIFknXSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBbMC41LCAwLjVdLFxuICAgICAgICBtaW46IDAsXG4gICAgICAgIG1heDogMVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3JhZGl1c1BpeGVscycsXG4gICAgICAgIGxhYmVsOiAnU2l6ZScsXG4gICAgICAgIG1pbjogMTAsXG4gICAgICAgIG1heDogNTAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnem9vbScsXG4gICAgICAgIG1pbjogMC41LFxuICAgICAgICBtYXg6IDUwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnYm9yZGVyV2lkdGhQaXhlbHMnLFxuICAgICAgICBsYWJlbDogJ0JvcmRlciBXaWR0aCcsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogMyxcbiAgICAgICAgbWluOiAwLFxuICAgICAgICBtYXg6IDUwXG4gICAgICB9XG4gICAgXVxuICB9LFxuICBoZXhhZ29uYWxQaXhlbGF0ZToge1xuICAgIHR5cGU6ICdoZXhhZ29uYWxQaXhlbGF0ZScsXG4gICAgbmFtZTogJ0hleGFnb25hbCBQaXhlbGF0ZScsXG4gICAgcGFyYW1ldGVyczogW3tuYW1lOiAnc2NhbGUnLCBkZWZhdWx0VmFsdWU6IDIwLCBtaW46IDEsIG1heDogNTB9XVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgRUZGRUNUX0RFU0NSSVBUSU9OUzogRWZmZWN0RGVzY3JpcHRpb25bXSA9IFtcbiAgTElHSFRfQU5EX1NIQURPV19FRkZFQ1QsXG4gIC4uLk9iamVjdC5rZXlzKFBPU1RQUk9DRVNTSU5HX0VGRkVDVFMpLm1hcChrZXlOYW1lID0+IFBPU1RQUk9DRVNTSU5HX0VGRkVDVFNba2V5TmFtZV0pXG5dO1xuXG5leHBvcnQgdHlwZSBFZmZlY3RUeXBlID1cbiAgfCAnaW5rJ1xuICB8ICdicmlnaHRuZXNzQ29udHJhc3QnXG4gIHwgJ2h1ZVNhdHVyYXRpb24nXG4gIHwgJ3ZpYnJhbmNlJ1xuICB8ICdzZXBpYSdcbiAgfCAnZG90U2NyZWVuJ1xuICB8ICdjb2xvckhhbGZ0b25lJ1xuICB8ICdub2lzZSdcbiAgfCAndHJpYW5nbGVCbHVyJ1xuICB8ICd6b29tQmx1cidcbiAgfCAndGlsdFNoaWZ0J1xuICB8ICdlZGdlV29yaydcbiAgfCAndmlnbmV0dGUnXG4gIHwgJ21hZ25pZnknXG4gIHwgJ2hleGFnb25hbFBpeGVsYXRlJ1xuICB8ICdsaWdodEFuZFNoYWRvdyc7XG4iXX0=
|