@carto/kepler.gl 0.0.65 → 0.0.66

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.
@@ -11,9 +11,7 @@ Object.defineProperty(exports, "DEFAULT_COLOR_RANGE", {
11
11
  return _colorRanges.DEFAULT_COLOR_RANGE;
12
12
  }
13
13
  });
14
- exports.LAYER_TEXT_CONFIGS = exports.LAYER_VIS_CONFIGS = exports.DEFAULT_COLOR_UI = exports.UNKNOWN_COLOR_KEY = exports.DEFAULT_CUSTOM_PALETTE = exports.DEFAULT_SECONDARY_TEXT_LABEL = exports.DEFAULT_TEXT_LABEL = exports.DEFAULT_LAYER_LABEL = exports.DEFAULT_HIGHLIGHT_COLOR = exports.DEFAULT_LAYER_OPACITY = exports.PROPERTY_GROUPS = void 0;
15
-
16
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ exports.LAYER_TEXT_CONFIGS = exports.LAYER_VIS_CONFIGS = exports.DEFAULT_COLOR_UI = exports.UNKNOWN_COLOR_KEY = exports.DEFAULT_CUSTOM_PALETTE = exports.DEFAULT_TEXT_LABEL = exports.DEFAULT_LAYER_LABEL = exports.DEFAULT_HIGHLIGHT_COLOR = exports.DEFAULT_LAYER_OPACITY = exports.PROPERTY_GROUPS = void 0;
17
15
 
18
16
  var _keymirror = _interopRequireDefault(require("keymirror"));
19
17
 
@@ -21,10 +19,25 @@ var _defaultSettings = require("../constants/default-settings");
21
19
 
22
20
  var _colorRanges = require("../constants/color-ranges");
23
21
 
24
- 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; }
25
-
26
- 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; }
27
-
22
+ // Copyright (c) 2022 Uber Technologies, Inc.
23
+ //
24
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
25
+ // of this software and associated documentation files (the "Software"), to deal
26
+ // in the Software without restriction, including without limitation the rights
27
+ // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
28
+ // copies of the Software, and to permit persons to whom the Software is
29
+ // furnished to do so, subject to the following conditions:
30
+ //
31
+ // The above copyright notice and this permission notice shall be included in
32
+ // all copies or substantial portions of the Software.
33
+ //
34
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
35
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
36
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
37
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
38
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
39
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
40
+ // THE SOFTWARE.
28
41
  var PROPERTY_GROUPS = (0, _keymirror["default"])({
29
42
  color: null,
30
43
  stroke: null,
@@ -47,25 +60,15 @@ exports.DEFAULT_LAYER_LABEL = DEFAULT_LAYER_LABEL;
47
60
  /** @type {import('./layer-factory').LayerTextLabel} */
48
61
  var DEFAULT_TEXT_LABEL = {
49
62
  field: null,
50
- color: [44, 48, 50],
51
- outlineColor: [255, 255, 255],
52
- size: 12,
63
+ color: [255, 255, 255],
64
+ size: 18,
53
65
  offset: [0, 0],
54
66
  anchor: 'start',
55
67
  alignment: 'center'
56
68
  };
57
- /** @type {import('./layer-factory').LayerTextLabel} */
58
-
59
- exports.DEFAULT_TEXT_LABEL = DEFAULT_TEXT_LABEL;
60
-
61
- var DEFAULT_SECONDARY_TEXT_LABEL = _objectSpread(_objectSpread({}, DEFAULT_TEXT_LABEL), {}, {
62
- color: [128, 130, 132],
63
- size: 10
64
- });
65
69
  /** @type {import('./layer-factory').ColorRange} */
66
70
 
67
-
68
- exports.DEFAULT_SECONDARY_TEXT_LABEL = DEFAULT_SECONDARY_TEXT_LABEL;
71
+ exports.DEFAULT_TEXT_LABEL = DEFAULT_TEXT_LABEL;
69
72
  var DEFAULT_CUSTOM_PALETTE = {
70
73
  name: 'color.customPalette',
71
74
  type: 'custom',
@@ -475,8 +478,8 @@ exports.LAYER_VIS_CONFIGS = LAYER_VIS_CONFIGS;
475
478
  var LAYER_TEXT_CONFIGS = {
476
479
  fontSize: {
477
480
  type: 'number',
478
- range: [6, 32],
479
- value0: 6,
481
+ range: [1, 100],
482
+ value0: 1,
480
483
  step: 1,
481
484
  isRanged: false,
482
485
  label: 'Font size',
@@ -496,4 +499,4 @@ var LAYER_TEXT_CONFIGS = {
496
499
  }
497
500
  };
498
501
  exports.LAYER_TEXT_CONFIGS = LAYER_TEXT_CONFIGS;
499
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllcnMvbGF5ZXItZmFjdG9yeS5qcyJdLCJuYW1lcyI6WyJQUk9QRVJUWV9HUk9VUFMiLCJjb2xvciIsInN0cm9rZSIsImN1c3RvbU1hcmtlcnMiLCJyYWRpdXMiLCJoZWlnaHQiLCJhbmdsZSIsImNlbGwiLCJwcmVjaXNpb24iLCJERUZBVUxUX0xBWUVSX09QQUNJVFkiLCJERUZBVUxUX0hJR0hMSUdIVF9DT0xPUiIsIkRFRkFVTFRfTEFZRVJfTEFCRUwiLCJERUZBVUxUX1RFWFRfTEFCRUwiLCJmaWVsZCIsIm91dGxpbmVDb2xvciIsInNpemUiLCJvZmZzZXQiLCJhbmNob3IiLCJhbGlnbm1lbnQiLCJERUZBVUxUX1NFQ09OREFSWV9URVhUX0xBQkVMIiwiREVGQVVMVF9DVVNUT01fUEFMRVRURSIsIm5hbWUiLCJ0eXBlIiwiY2F0ZWdvcnkiLCJjb2xvcnMiLCJVTktOT1dOX0NPTE9SX0tFWSIsIkRFRkFVTFRfQ09MT1JfVUkiLCJjdXN0b21QYWxldHRlIiwic2hvd1NrZXRjaGVyIiwic2hvd0Ryb3Bkb3duIiwiY29sb3JSYW5nZUNvbmZpZyIsInN0ZXBzIiwicmV2ZXJzZWQiLCJjdXN0b20iLCJMQVlFUl9WSVNfQ09ORklHUyIsInRoaWNrbmVzcyIsImRlZmF1bHRWYWx1ZSIsImxhYmVsIiwiaXNSYW5nZWQiLCJyYW5nZSIsInN0ZXAiLCJncm91cCIsInByb3BlcnR5Iiwic3Ryb2tlV2lkdGhSYW5nZSIsInRyYWlsTGVuZ3RoIiwicmFkaXVzUmFuZ2UiLCJjbHVzdGVyUmFkaXVzIiwiY2x1c3RlclJhZGl1c1JhbmdlIiwib3BhY2l0eSIsImNvdmVyYWdlIiwib3V0bGluZSIsImRpc3BsYXkiLCJjb2xvclJhbmdlIiwiREVGQVVMVF9DT0xPUl9SQU5HRSIsInN0cm9rZUNvbG9yUmFuZ2UiLCJ0YXJnZXRDb2xvciIsInN0cm9rZUNvbG9yIiwiYWdncmVnYXRpb24iLCJBR0dSRUdBVElPTl9UWVBFUyIsImF2ZXJhZ2UiLCJvcHRpb25zIiwiT2JqZWN0Iiwia2V5cyIsImNvbmRpdGlvbiIsImNvbmZpZyIsImNvbG9yRmllbGQiLCJzaXplQWdncmVnYXRpb24iLCJzaXplRmllbGQiLCJoZWlnaHRBZ2dyZWdhdGlvbiIsImhlaWdodEZpZWxkIiwicGVyY2VudGlsZSIsInZpc0NvbmZpZyIsImNvbG9yQWdncmVnYXRpb24iLCJjb2xvclNjYWxlIiwiZWxldmF0aW9uUGVyY2VudGlsZSIsImVuYWJsZTNkIiwicmVzb2x1dGlvbiIsInNpemVTY2FsZSIsIndvcmxkVW5pdFNpemUiLCJlbGV2YXRpb25TY2FsZSIsImVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3IiLCJkZXNjcmlwdGlvbiIsImVsZXZhdGlvblJhbmdlIiwiaGVpZ2h0UmFuZ2UiLCJjb3ZlcmFnZVJhbmdlIiwic3Ryb2tlZCIsImZpbGxlZCIsImV4dHJ1ZGVkIiwid2lyZWZyYW1lIiwid2VpZ2h0Iiwid2VpZ2h0RmllbGQiLCJoZWF0bWFwUmFkaXVzIiwiY3VzdG9tTWFya2Vyc1VybCIsImN1c3RvbU1hcmtlcnNSYW5nZSIsInVuZGVmaW5lZCIsIkxBWUVSX1RFWFRfQ09ORklHUyIsImZvbnRTaXplIiwidmFsdWUwIiwic2hvd0lucHV0IiwidGV4dEFuY2hvciIsIm11bHRpU2VsZWN0Iiwic2VhcmNoYWJsZSIsInRleHRBbGlnbm1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUVBOztBQUNBOzs7Ozs7QUFFTyxJQUFNQSxlQUFlLEdBQUcsMkJBQVU7QUFDdkNDLEVBQUFBLEtBQUssRUFBRSxJQURnQztBQUV2Q0MsRUFBQUEsTUFBTSxFQUFFLElBRitCO0FBR3ZDQyxFQUFBQSxhQUFhLEVBQUUsSUFId0I7QUFJdkNDLEVBQUFBLE1BQU0sRUFBRSxJQUorQjtBQUt2Q0MsRUFBQUEsTUFBTSxFQUFFLElBTCtCO0FBTXZDQyxFQUFBQSxLQUFLLEVBQUUsSUFOZ0M7QUFPdkM7QUFDQUMsRUFBQUEsSUFBSSxFQUFFLElBUmlDO0FBU3ZDQyxFQUFBQSxTQUFT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cUQsa0JBQWtCLEdBQUc7QUFDaENDLEVBQUFBLFFBQVEsRUFBRTtBQUNSMUUsSUFBQUEsSUFBSSxFQUFFLFFBREU7QUFFUmlCLElBQUFBLEtBQUssRUFBRSxDQUFDLENBQUQsRUFBSSxFQUFKLENBRkM7QUFHUjBELElBQUFBLE1BQU0sRUFBRSxDQUhBO0FBSVJ6RCxJQUFBQSxJQUFJLEVBQUUsQ0FKRTtBQUtSRixJQUFBQSxRQUFRLEVBQUUsS0FMRjtBQU1SRCxJQUFBQSxLQUFLLEVBQUUsV0FOQztBQU9SNkQsSUFBQUEsU0FBUyxFQUFFO0FBUEgsR0FEc0I7QUFVaENDLEVBQUFBLFVBQVUsRUFBRTtBQUNWN0UsSUFBQUEsSUFBSSxFQUFFLFFBREk7QUFFVnNDLElBQUFBLE9BQU8sRUFBRSxDQUFDLE9BQUQsRUFBVSxRQUFWLEVBQW9CLEtBQXBCLENBRkM7QUFHVndDLElBQUFBLFdBQVcsRUFBRSxLQUhIO0FBSVZDLElBQUFBLFVBQVUsRUFBRTtBQUpGLEdBVm9CO0FBZ0JoQ0MsRUFBQUEsYUFBYSxFQUFFO0FBQ2JoRixJQUFBQSxJQUFJLEVBQUUsUUFETztBQUVic0MsSUFBQUEsT0FBTyxFQUFFLENBQUMsS0FBRCxFQUFRLFFBQVIsRUFBa0IsUUFBbEIsQ0FGSTtBQUdid0MsSUFBQUEsV0FBVyxFQUFFLEtBSEE7QUFJYkMsSUFBQUEsVUFBVSxFQUFFO0FBSkM7QUFoQmlCLENBQTNCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IGtleU1pcnJvciBmcm9tICdrZXltaXJyb3InO1xuXG5pbXBvcnQge0FHR1JFR0FUSU9OX1RZUEVTfSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5pbXBvcnQge0RFRkFVTFRfQ09MT1JfUkFOR0V9IGZyb20gJ2NvbnN0YW50cy9jb2xvci1yYW5nZXMnO1xuXG5leHBvcnQgY29uc3QgUFJPUEVSVFlfR1JPVVBTID0ga2V5TWlycm9yKHtcbiAgY29sb3I6IG51bGwsXG4gIHN0cm9rZTogbnVsbCxcbiAgY3VzdG9tTWFya2VyczogbnVsbCxcbiAgcmFkaXVzOiBudWxsLFxuICBoZWlnaHQ6IG51bGwsXG4gIGFuZ2xlOiBudWxsLFxuICAvLyBmb3IgaGVhdG1hcCBhZ2dyZWdhdGlvblxuICBjZWxsOiBudWxsLFxuICBwcmVjaXNpb246IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9MQVlFUl9PUEFDSVRZID0gMC44O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSElHSExJR0hUX0NPTE9SID0gWzI1MiwgMjQyLCAyNiwgMjU1XTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBWUVSX0xBQkVMID0gJ25ldyBsYXllcic7XG5leHBvcnQge0RFRkFVTFRfQ09MT1JfUkFOR0V9O1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9sYXllci1mYWN0b3J5JykuTGF5ZXJUZXh0TGFiZWx9ICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9URVhUX0xBQkVMID0ge1xuICBmaWVsZDogbnVsbCxcbiAgY29sb3I6IFs0NCwgNDgsIDUwXSxcbiAgb3V0bGluZUNvbG9yOiBbMjU1LCAyNTUsIDI1NV0sXG4gIHNpemU6IDEyLFxuICBvZmZzZXQ6IFswLCAwXSxcbiAgYW5jaG9yOiAnc3RhcnQnLFxuICBhbGlnbm1lbnQ6ICdjZW50ZXInXG59O1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9sYXllci1mYWN0b3J5JykuTGF5ZXJUZXh0TGFiZWx9ICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUNPTkRBUllfVEVYVF9MQUJFTCA9IHtcbiAgLi4uREVGQVVMVF9URVhUX0xBQkVMLFxuICBjb2xvcjogWzEyOCwgMTMwLCAxMzJdLFxuICBzaXplOiAxMFxufTtcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vbGF5ZXItZmFjdG9yeScpLkNvbG9yUmFuZ2V9ICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9DVVNUT01fUEFMRVRURSA9IHtcbiAgbmFtZTogJ2NvbG9yLmN1c3RvbVBhbGV0dGUnLFxuICB0eXBlOiAnY3VzdG9tJyxcbiAgY2F0ZWdvcnk6ICdDdXN0b20nLFxuICBjb2xvcnM6IFtdXG59O1xuXG5leHBvcnQgY29uc3QgVU5LTk9XTl9DT0xPUl9LRVkgPSAnX191bmtub3duQ29sb3JfXyc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL2xheWVyLWZhY3RvcnknKS5Db2xvclVJfSAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09MT1JfVUkgPSB7XG4gIC8vIGN1c3RvbVBhbGV0dGUgaW4gZWRpdFxuICBjdXN0b21QYWxldHRlOiBERUZBVUxUX0NVU1RPTV9QQUxFVFRFLFxuICAvLyBzaG93IGNvbG9yIHNrZXRjaGVyIG1vZGFsXG4gIHNob3dTa2V0Y2hlcjogZmFsc2UsXG4gIC8vIHNob3cgY29sb3IgcmFuZ2Ugc2VsZWN0aW9uIHBhbmVsXG4gIHNob3dEcm9wZG93bjogZmFsc2UsXG4gIC8vIGNvbG9yIHJhbmdlIHNlbGVjdG9yIGNvbmZpZ1xuICBjb2xvclJhbmdlQ29uZmlnOiB7XG4gICAgdHlwZTogJ2FsbCcsXG4gICAgc3RlcHM6IDYsXG4gICAgcmV2ZXJzZWQ6IGZhbHNlLFxuICAgIGN1c3RvbTogZmFsc2VcbiAgfVxufTtcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vbGF5ZXItZmFjdG9yeScpLkxheWVyVmlzQ29uZmlnfSAqL1xuZXhwb3J0IGNvbnN0IExBWUVSX1ZJU19DT05GSUdTID0ge1xuICB0aGlja25lc3M6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDIsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc3Ryb2tlV2lkdGgnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDEwMF0sXG4gICAgc3RlcDogMC4xLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuc3Ryb2tlLFxuICAgIHByb3BlcnR5OiAndGhpY2tuZXNzJ1xuICB9LFxuICBzdHJva2VXaWR0aFJhbmdlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiBbMCwgMTBdLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnN0cm9rZVdpZHRoUmFuZ2UnLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMjAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5zdHJva2UsXG4gICAgcHJvcGVydHk6ICdzaXplUmFuZ2UnXG4gIH0sXG4gIHRyYWlsTGVuZ3RoOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAxODAsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc3Ryb2tlV2lkdGgnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzEsIDEwMDBdLFxuICAgIHN0ZXA6IDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5zdHJva2UsXG4gICAgcHJvcGVydHk6ICd0cmFpbExlbmd0aCdcbiAgfSxcbiAgLy8gcmFkaXVzIGlzIGFjdHVhbGx5IHJhZGl1c1NjYWxlIGluIGRlY2suZ2xcbiAgcmFkaXVzOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAyLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnJhZGl1cycsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMTAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5yYWRpdXMsXG4gICAgcHJvcGVydHk6ICdyYWRpdXMnXG4gIH0sXG4gIHJhZGl1c1JhbmdlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiBbMCwgNTBdLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgNTAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MucmFkaXVzUmFuZ2UnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMucmFkaXVzLFxuICAgIHByb3BlcnR5OiAncmFkaXVzUmFuZ2UnXG4gIH0sXG4gIGNsdXN0ZXJSYWRpdXM6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jbHVzdGVyUmFkaXVzJyxcbiAgICBkZWZhdWx0VmFsdWU6IDQwLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzEsIDUwMF0sXG4gICAgc3RlcDogMC4xLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMucmFkaXVzLFxuICAgIHByb3BlcnR5OiAnY2x1c3RlclJhZGl1cydcbiAgfSxcbiAgY2x1c3RlclJhZGl1c1JhbmdlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MucmFkaXVzUmFuZ2VQaXhlbHMnLFxuICAgIGRlZmF1bHRWYWx1ZTogWzEsIDQwXSxcbiAgICBpc1JhbmdlZDogdHJ1ZSxcbiAgICByYW5nZTogWzEsIDE1MF0sXG4gICAgc3RlcDogMC4xLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMucmFkaXVzLFxuICAgIHByb3BlcnR5OiAncmFkaXVzUmFuZ2UnXG4gIH0sXG4gIG9wYWNpdHk6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IERFRkFVTFRfTEFZRVJfT1BBQ0lUWSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5vcGFjaXR5JyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCAxXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY29sb3IsXG4gICAgcHJvcGVydHk6ICdvcGFjaXR5J1xuICB9LFxuICBjb3ZlcmFnZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jb3ZlcmFnZScsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMV0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNlbGwsXG4gICAgcHJvcGVydHk6ICdjb3ZlcmFnZSdcbiAgfSxcbiAgLy8gdXNlZCBpbiBwb2ludCBsYXllclxuICBvdXRsaW5lOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgbGFiZWw6ICdsYXllci5vdXRsaW5lJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmRpc3BsYXksXG4gICAgcHJvcGVydHk6ICdvdXRsaW5lJ1xuICB9LFxuICBjb2xvclJhbmdlOiB7XG4gICAgdHlwZTogJ2NvbG9yLXJhbmdlLXNlbGVjdCcsXG4gICAgZGVmYXVsdFZhbHVlOiBERUZBVUxUX0NPTE9SX1JBTkdFLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmNvbG9yUmFuZ2UnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY29sb3IsXG4gICAgcHJvcGVydHk6ICdjb2xvclJhbmdlJ1xuICB9LFxuICBzdHJva2VDb2xvclJhbmdlOiB7XG4gICAgdHlwZTogJ2NvbG9yLXJhbmdlLXNlbGVjdCcsXG4gICAgZGVmYXVsdFZhbHVlOiBERUZBVUxUX0NPTE9SX1JBTkdFLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnN0cm9rZUNvbG9yUmFuZ2UnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY29sb3IsXG4gICAgcHJvcGVydHk6ICdzdHJva2VDb2xvclJhbmdlJ1xuICB9LFxuICB0YXJnZXRDb2xvcjoge1xuICAgIHR5cGU6ICdjb2xvci1zZWxlY3QnLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnRhcmdldENvbG9yJyxcbiAgICBkZWZhdWx0VmFsdWU6IG51bGwsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ3RhcmdldENvbG9yJ1xuICB9LFxuICBzdHJva2VDb2xvcjoge1xuICAgIHR5cGU6ICdjb2xvci1zZWxlY3QnLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnN0cm9rZUNvbG9yJyxcbiAgICBkZWZhdWx0VmFsdWU6IG51bGwsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ3N0cm9rZUNvbG9yJ1xuICB9LFxuICBhZ2dyZWdhdGlvbjoge1xuICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIGRlZmF1bHRWYWx1ZTogQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jb2xvckFnZ3JlZ2F0aW9uJyxcbiAgICAvLyBhZ2dyZWdhdGlvbiBvcHRpb25zIGFyZSBiYXNlZCBvbiBjb2xvciBmaWVsZCB0eXBlc1xuICAgIG9wdGlvbnM6IE9iamVjdC5rZXlzKEFHR1JFR0FUSU9OX1RZUEVTKSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNvbG9yLFxuICAgIHByb3BlcnR5OiAnY29sb3JBZ2dyZWdhdGlvbicsXG4gICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLmNvbG9yRmllbGRcbiAgfSxcbiAgc2l6ZUFnZ3JlZ2F0aW9uOiB7XG4gICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgZGVmYXVsdFZhbHVlOiBBR0dSRUdBVElPTl9UWVBFUy5hdmVyYWdlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmhlaWdodEFnZ3JlZ2F0aW9uJyxcbiAgICAvLyBhZ2dyZWdhdGlvbiBvcHRpb25zIGFyZSBiYXNlZCBvbiBjb2xvciBmaWVsZCB0eXBlc1xuICAgIG9wdGlvbnM6IE9iamVjdC5rZXlzKEFHR1JFR0FUSU9OX1RZUEVTKSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ3NpemVBZ2dyZWdhdGlvbicsXG4gICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLnNpemVGaWVsZFxuICB9LFxuICBoZWlnaHRBZ2dyZWdhdGlvbjoge1xuICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIGRlZmF1bHRWYWx1ZTogQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5oZWlnaHRBZ2dyZWdhdGlvbicsXG4gICAgb3B0aW9uczogT2JqZWN0LmtleXMoQUdHUkVHQVRJT05fVFlQRVMpLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnaGVpZ2h0QWdncmVnYXRpb24nLFxuICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy5oZWlnaHRGaWVsZFxuICB9LFxuICBwZXJjZW50aWxlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiBbMCwgMTAwXSxcbiAgICBsYWJlbDogY29uZmlnID0+XG4gICAgICBgRmlsdGVyIGJ5ICR7XG4gICAgICAgIGNvbmZpZy5jb2xvckZpZWxkXG4gICAgICAgICAgPyBgJHtjb25maWcudmlzQ29uZmlnLmNvbG9yQWdncmVnYXRpb259ICR7Y29uZmlnLmNvbG9yRmllbGQubmFtZX1gXG4gICAgICAgICAgOiAnY291bnQnXG4gICAgICB9IHBlcmNlbnRpbGVgLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMTAwXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY29sb3IsXG4gICAgcHJvcGVydHk6ICdwZXJjZW50aWxlJyxcblxuICAgIC8vIHBlcmNlbnRpbGUgZmlsdGVyIG9ubHkgbWFrZXMgc2Vuc2Ugd2l0aCBsaW5lYXIgYWdncmVnYXRpb25cbiAgICBjb25kaXRpb246IGNvbmZpZyA9PiBjb25maWcuY29sb3JTY2FsZSAhPT0gJ29yZGluYWwnXG4gIH0sXG4gIGVsZXZhdGlvblBlcmNlbnRpbGU6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCAxMDBdLFxuICAgIGxhYmVsOiBjb25maWcgPT5cbiAgICAgIGBGaWx0ZXIgYnkgJHtcbiAgICAgICAgY29uZmlnLnNpemVGaWVsZCA/IGAke2NvbmZpZy52aXNDb25maWcuc2l6ZUFnZ3JlZ2F0aW9ufSAke2NvbmZpZy5zaXplRmllbGQubmFtZX1gIDogJ2NvdW50J1xuICAgICAgfSBwZXJjZW50aWxlYCxcbiAgICBpc1JhbmdlZDogdHJ1ZSxcbiAgICByYW5nZTogWzAsIDEwMF0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ2VsZXZhdGlvblBlcmNlbnRpbGUnLFxuICAgIC8vIHBlcmNlbnRpbGUgZmlsdGVyIG9ubHkgbWFrZXMgc2Vuc2Ugd2l0aCBsaW5lYXIgYWdncmVnYXRpb25cbiAgICBjb25kaXRpb246IGNvbmZpZyA9PiBjb25maWcudmlzQ29uZmlnLmVuYWJsZTNkICYmIChjb25maWcuY29sb3JGaWVsZCB8fCBjb25maWcuc2l6ZUZpZWxkKVxuICB9LFxuICByZXNvbHV0aW9uOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiA4LFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnJlc29sdXRpb24nLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDEzXSxcbiAgICBzdGVwOiAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY2VsbCxcbiAgICBwcm9wZXJ0eTogJ3Jlc29sdXRpb24nXG4gIH0sXG4gIHNpemVTY2FsZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMTAsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc2l6ZVNjYWxlJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFsxLCAxMDAwXSxcbiAgICBzdGVwOiAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuc3Ryb2tlLFxuICAgIHByb3BlcnR5OiAnc2l6ZVNjYWxlJ1xuICB9LFxuICBhbmdsZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmFuZ2xlJyxcbiAgICBkZWZhdWx0VmFsdWU6IDAsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMzYwXSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmFuZ2xlLFxuICAgIHN0ZXA6IDEsXG4gICAgcHJvcGVydHk6ICdhbmdsZSdcbiAgfSxcbiAgd29ybGRVbml0U2l6ZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy53b3JsZFVuaXRTaXplJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCA1MDBdLFxuICAgIHN0ZXA6IDAuMDAwMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNlbGwsXG4gICAgcHJvcGVydHk6ICd3b3JsZFVuaXRTaXplJ1xuICB9LFxuICBlbGV2YXRpb25TY2FsZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogNSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5lbGV2YXRpb25TY2FsZScsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgNTAwMF0sXG4gICAgc3RlcDogMC4xLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnZWxldmF0aW9uU2NhbGUnXG4gIH0sXG4gIGVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3I6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3InLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvcicsXG4gICAgZGVzY3JpcHRpb246ICdsYXllclZpc0NvbmZpZ3MuZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvckRlc2NyaXB0aW9uJ1xuICB9LFxuICBlbGV2YXRpb25SYW5nZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDUwMF0sXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuaGVpZ2h0U2NhbGUnLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMTAwMF0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ3NpemVSYW5nZSdcbiAgfSxcbiAgaGVpZ2h0UmFuZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCA1MDBdLFxuICAgIGxhYmVsOiAnSGVpZ2h0IFNjYWxlJyxcbiAgICBpc1JhbmdlZDogdHJ1ZSxcbiAgICByYW5nZTogWzAsIDEwMDBdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5oZWlnaHQsXG4gICAgcHJvcGVydHk6ICdoZWlnaHRSYW5nZSdcbiAgfSxcbiAgY292ZXJhZ2VSYW5nZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDFdLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmNvdmVyYWdlUmFuZ2UnLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMV0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnJhZGl1cyxcbiAgICBwcm9wZXJ0eTogJ2NvdmVyYWdlUmFuZ2UnXG4gIH0sXG4gIC8vIGhpIHByZWNpc2lvbiBpcyBkZXByZWNhdGVkIGJ5IGRlY2suZ2xcbiAgJ2hpLXByZWNpc2lvbic6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5oaWdoUHJlY2lzaW9uUmVuZGVyaW5nJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnByZWNpc2lvbixcbiAgICBwcm9wZXJ0eTogJ2hpLXByZWNpc2lvbicsXG4gICAgZGVzY3JpcHRpb246ICdsYXllclZpc0NvbmZpZ3MuaGlnaFByZWNpc2lvblJlbmRlcmluZ0Rlc2NyaXB0aW9uJ1xuICB9LFxuICBlbmFibGUzZDoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmhlaWdodCcsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5oZWlnaHQsXG4gICAgcHJvcGVydHk6ICdlbmFibGUzZCcsXG4gICAgZGVzY3JpcHRpb246ICdsYXllclZpc0NvbmZpZ3MuaGVpZ2h0RGVzY3JpcHRpb24nXG4gIH0sXG4gIHN0cm9rZWQ6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc3Ryb2tlJyxcbiAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5kaXNwbGF5LFxuICAgIHByb3BlcnR5OiAnc3Ryb2tlZCdcbiAgfSxcbiAgZmlsbGVkOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmZpbGwnLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5kaXNwbGF5LFxuICAgIHByb3BlcnR5OiAnZmlsbGVkJ1xuICB9LFxuICBleHRydWRlZDoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmVuYWJsZVBvbHlnb25IZWlnaHQnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuZGlzcGxheSxcbiAgICBwcm9wZXJ0eTogJ2V4dHJ1ZGVkJ1xuICB9LFxuICB3aXJlZnJhbWU6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zaG93V2lyZWZyYW1lJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmRpc3BsYXksXG4gICAgcHJvcGVydHk6ICd3aXJlZnJhbWUnXG4gIH0sXG4gIC8vIHVzZWQgZm9yIGhlYXRtYXBcbiAgd2VpZ2h0OiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAxLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLndlaWdodEludGVuc2l0eScsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMC4wMSwgNTAwXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY2VsbCxcbiAgICBwcm9wZXJ0eTogJ3dlaWdodCcsXG4gICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLndlaWdodEZpZWxkXG4gIH0sXG4gIGhlYXRtYXBSYWRpdXM6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDIwLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnJhZGl1cycsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMTAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jZWxsLFxuICAgIHByb3BlcnR5OiAncmFkaXVzJ1xuICB9LFxuICBjdXN0b21NYXJrZXJzOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuY3VzdG9tTWFya2VycycsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jdXN0b21NYXJrZXJzLFxuICAgIHByb3BlcnR5OiAnY3VzdG9tTWFya2VycydcbiAgfSxcbiAgY3VzdG9tTWFya2Vyc1VybDoge1xuICAgIHR5cGU6ICd0ZXh0JyxcbiAgICBkZWZhdWx0VmFsdWU6ICcnLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmFkZFVybCcsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jdXN0b21NYXJrZXJzLFxuICAgIHByb3BlcnR5OiAnY3VzdG9tTWFya2Vyc1VybCdcbiAgfSxcbiAgY3VzdG9tTWFya2Vyc1JhbmdlOiB7XG4gICAgdHlwZTogJ21hcmtlcnMtcmFuZ2Utc2VsZWN0JyxcbiAgICBkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZCxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jb2xvclJhbmdlJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmN1c3RvbU1hcmtlcnMsXG4gICAgcHJvcGVydHk6ICdjdXN0b21NYXJrZXJzUmFuZ2UnXG4gIH1cbn07XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL2xheWVyLWZhY3RvcnknKS5MYXllclRleHRDb25maWd9ICovXG5leHBvcnQgY29uc3QgTEFZRVJfVEVYVF9DT05GSUdTID0ge1xuICBmb250U2l6ZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIHJhbmdlOiBbNiwgMzJdLFxuICAgIHZhbHVlMDogNixcbiAgICBzdGVwOiAxLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICBsYWJlbDogJ0ZvbnQgc2l6ZScsXG4gICAgc2hvd0lucHV0OiB0cnVlXG4gIH0sXG4gIHRleHRBbmNob3I6IHtcbiAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICBvcHRpb25zOiBbJ3N0YXJ0JywgJ21pZGRsZScsICdlbmQnXSxcbiAgICBtdWx0aVNlbGVjdDogZmFsc2UsXG4gICAgc2VhcmNoYWJsZTogZmFsc2VcbiAgfSxcbiAgdGV4dEFsaWdubWVudDoge1xuICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIG9wdGlvbnM6IFsndG9wJywgJ2NlbnRlcicsICdib3R0b20nXSxcbiAgICBtdWx0aVNlbGVjdDogZmFsc2UsXG4gICAgc2VhcmNoYWJsZTogZmFsc2VcbiAgfVxufTtcbiJdfQ==
502
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllcnMvbGF5ZXItZmFjdG9yeS5qcyJdLCJuYW1lcyI6WyJQUk9QRVJUWV9HUk9VUFMiLCJjb2xvciIsInN0cm9rZSIsImN1c3RvbU1hcmtlcnMiLCJyYWRpdXMiLCJoZWlnaHQiLCJhbmdsZSIsImNlbGwiLCJwcmVjaXNpb24iLCJERUZBVUxUX0xBWUVSX09QQUNJVFkiLCJERUZBVUxUX0hJR0hMSUdIVF9DT0xPUiIsIkRFRkFVTFRfTEFZRVJfTEFCRUwiLCJERUZBVUxUX1RFWFRfTEFCRUwiLCJmaWVsZCIsInNpemUiLCJvZmZzZXQiLCJhbmNob3IiLCJhbGlnbm1lbnQiLCJERUZBVUxUX0NVU1RPTV9QQUxFVFRFIiwibmFtZSIsInR5cGUiLCJjYXRlZ29yeSIsImNvbG9ycyIsIlVOS05PV05fQ09MT1JfS0VZIiwiREVGQVVMVF9DT0xPUl9VSSIsImN1c3RvbVBhbGV0dGUiLCJzaG93U2tldGNoZXIiLCJzaG93RHJvcGRvd24iLCJjb2xvclJhbmdlQ29uZmlnIiwic3RlcHMiLCJyZXZlcnNlZCIsImN1c3RvbSIsIkxBWUVSX1ZJU19DT05GSUdTIiwidGhpY2tuZXNzIiwiZGVmYXVsdFZhbHVlIiwibGFiZWwiLCJpc1JhbmdlZCIsInJhbmdlIiwic3RlcCIsImdyb3VwIiwicHJvcGVydHkiLCJzdHJva2VXaWR0aFJhbmdlIiwidHJhaWxMZW5ndGgiLCJyYWRpdXNSYW5nZSIsImNsdXN0ZXJSYWRpdXMiLCJjbHVzdGVyUmFkaXVzUmFuZ2UiLCJvcGFjaXR5IiwiY292ZXJhZ2UiLCJvdXRsaW5lIiwiZGlzcGxheSIsImNvbG9yUmFuZ2UiLCJERUZBVUxUX0NPTE9SX1JBTkdFIiwic3Ryb2tlQ29sb3JSYW5nZSIsInRhcmdldENvbG9yIiwic3Ryb2tlQ29sb3IiLCJhZ2dyZWdhdGlvbiIsIkFHR1JFR0FUSU9OX1RZUEVTIiwiYXZlcmFnZSIsIm9wdGlvbnMiLCJPYmplY3QiLCJrZXlzIiwiY29uZGl0aW9uIiwiY29uZmlnIiwiY29sb3JGaWVsZCIsInNpemVBZ2dyZWdhdGlvbiIsInNpemVGaWVsZCIsImhlaWdodEFnZ3JlZ2F0aW9uIiwiaGVpZ2h0RmllbGQiLCJwZXJjZW50aWxlIiwidmlzQ29uZmlnIiwiY29sb3JBZ2dyZWdhdGlvbiIsImNvbG9yU2NhbGUiLCJlbGV2YXRpb25QZXJjZW50aWxlIiwiZW5hYmxlM2QiLCJyZXNvbHV0aW9uIiwic2l6ZVNjYWxlIiwid29ybGRVbml0U2l6ZSIsImVsZXZhdGlvblNjYWxlIiwiZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvciIsImRlc2NyaXB0aW9uIiwiZWxldmF0aW9uUmFuZ2UiLCJoZWlnaHRSYW5nZSIsImNvdmVyYWdlUmFuZ2UiLCJzdHJva2VkIiwiZmlsbGVkIiwiZXh0cnVkZWQiLCJ3aXJlZnJhbWUiLCJ3ZWlnaHQiLCJ3ZWlnaHRGaWVsZCIsImhlYXRtYXBSYWRpdXMiLCJjdXN0b21NYXJrZXJzVXJsIiwiY3VzdG9tTWFya2Vyc1JhbmdlIiwidW5kZWZpbmVkIiwiTEFZRVJfVEVYVF9DT05GSUdTIiwiZm9udFNpemUiLCJ2YWx1ZTAiLCJzaG93SW5wdXQiLCJ0ZXh0QW5jaG9yIiwibXVsdGlTZWxlY3QiLCJzZWFyY2hhYmxlIiwidGV4dEFsaWdubWVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUVBOztBQUNBOztBQXZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU9PLElBQU1BLGVBQWUsR0FBRywyQkFBVTtBQUN2Q0MsRUFBQUEsS0FBSyxFQUFFLElBRGdDO0FBRXZDQyxFQUFBQSxNQUFNLEVBQUUsSUFGK0I7QUFHdkNDLEVBQUFBLGFBQWEsRUFBRSxJQUh3QjtBQUl2Q0MsRUFBQUEsTUFBTSxFQUFFLElBSitCO0FBS3ZDQyxFQUFBQSxNQUFNLEVBQUUsSUFMK0I7QUFNdkNDLEVBQUFBLEtBQUssRUFBRSxJQU5nQztBQU92QztB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QUEsSUFBSSxFQUFFLENBSkU7QUFLUkYsSUFBQUEsUUFBUSxFQUFFLEtBTEY7QUFNUkQsSUFBQUEsS0FBSyxFQUFFLFdBTkM7QUFPUjZELElBQUFBLFNBQVMsRUFBRTtBQVBILEdBRHNCO0FBVWhDQyxFQUFBQSxVQUFVLEVBQUU7QUFDVjdFLElBQUFBLElBQUksRUFBRSxRQURJO0FBRVZzQyxJQUFBQSxPQUFPLEVBQUUsQ0FBQyxPQUFELEVBQVUsUUFBVixFQUFvQixLQUFwQixDQUZDO0FBR1Z3QyxJQUFBQSxXQUFXLEVBQUUsS0FISDtBQUlWQyxJQUFBQSxVQUFVLEVBQUU7QUFKRixHQVZvQjtBQWdCaENDLEVBQUFBLGFBQWEsRUFBRTtBQUNiaEYsSUFBQUEsSUFBSSxFQUFFLFFBRE87QUFFYnNDLElBQUFBLE9BQU8sRUFBRSxDQUFDLEtBQUQsRUFBUSxRQUFSLEVBQWtCLFFBQWxCLENBRkk7QUFHYndDLElBQUFBLFdBQVcsRUFBRSxLQUhBO0FBSWJDLElBQUFBLFVBQVUsRUFBRTtBQUpDO0FBaEJpQixDQUEzQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBrZXlNaXJyb3IgZnJvbSAna2V5bWlycm9yJztcblxuaW1wb3J0IHtBR0dSRUdBVElPTl9UWVBFU30gZnJvbSAnY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MnO1xuaW1wb3J0IHtERUZBVUxUX0NPTE9SX1JBTkdFfSBmcm9tICdjb25zdGFudHMvY29sb3ItcmFuZ2VzJztcblxuZXhwb3J0IGNvbnN0IFBST1BFUlRZX0dST1VQUyA9IGtleU1pcnJvcih7XG4gIGNvbG9yOiBudWxsLFxuICBzdHJva2U6IG51bGwsXG4gIGN1c3RvbU1hcmtlcnM6IG51bGwsXG4gIHJhZGl1czogbnVsbCxcbiAgaGVpZ2h0OiBudWxsLFxuICBhbmdsZTogbnVsbCxcbiAgLy8gZm9yIGhlYXRtYXAgYWdncmVnYXRpb25cbiAgY2VsbDogbnVsbCxcbiAgcHJlY2lzaW9uOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTEFZRVJfT1BBQ0lUWSA9IDAuODtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0hJR0hMSUdIVF9DT0xPUiA9IFsyNTIsIDI0MiwgMjYsIDI1NV07XG5leHBvcnQgY29uc3QgREVGQVVMVF9MQVlFUl9MQUJFTCA9ICduZXcgbGF5ZXInO1xuZXhwb3J0IHtERUZBVUxUX0NPTE9SX1JBTkdFfTtcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vbGF5ZXItZmFjdG9yeScpLkxheWVyVGV4dExhYmVsfSAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVEVYVF9MQUJFTCA9IHtcbiAgZmllbGQ6IG51bGwsXG4gIGNvbG9yOiBbMjU1LCAyNTUsIDI1NV0sXG4gIHNpemU6IDE4LFxuICBvZmZzZXQ6IFswLCAwXSxcbiAgYW5jaG9yOiAnc3RhcnQnLFxuICBhbGlnbm1lbnQ6ICdjZW50ZXInXG59O1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9sYXllci1mYWN0b3J5JykuQ29sb3JSYW5nZX0gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0NVU1RPTV9QQUxFVFRFID0ge1xuICBuYW1lOiAnY29sb3IuY3VzdG9tUGFsZXR0ZScsXG4gIHR5cGU6ICdjdXN0b20nLFxuICBjYXRlZ29yeTogJ0N1c3RvbScsXG4gIGNvbG9yczogW11cbn07XG5cbmV4cG9ydCBjb25zdCBVTktOT1dOX0NPTE9SX0tFWSA9ICdfX3Vua25vd25Db2xvcl9fJztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vbGF5ZXItZmFjdG9yeScpLkNvbG9yVUl9ICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT0xPUl9VSSA9IHtcbiAgLy8gY3VzdG9tUGFsZXR0ZSBpbiBlZGl0XG4gIGN1c3RvbVBhbGV0dGU6IERFRkFVTFRfQ1VTVE9NX1BBTEVUVEUsXG4gIC8vIHNob3cgY29sb3Igc2tldGNoZXIgbW9kYWxcbiAgc2hvd1NrZXRjaGVyOiBmYWxzZSxcbiAgLy8gc2hvdyBjb2xvciByYW5nZSBzZWxlY3Rpb24gcGFuZWxcbiAgc2hvd0Ryb3Bkb3duOiBmYWxzZSxcbiAgLy8gY29sb3IgcmFuZ2Ugc2VsZWN0b3IgY29uZmlnXG4gIGNvbG9yUmFuZ2VDb25maWc6IHtcbiAgICB0eXBlOiAnYWxsJyxcbiAgICBzdGVwczogNixcbiAgICByZXZlcnNlZDogZmFsc2UsXG4gICAgY3VzdG9tOiBmYWxzZVxuICB9XG59O1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9sYXllci1mYWN0b3J5JykuTGF5ZXJWaXNDb25maWd9ICovXG5leHBvcnQgY29uc3QgTEFZRVJfVklTX0NPTkZJR1MgPSB7XG4gIHRoaWNrbmVzczoge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMixcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zdHJva2VXaWR0aCcsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMTAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5zdHJva2UsXG4gICAgcHJvcGVydHk6ICd0aGlja25lc3MnXG4gIH0sXG4gIHN0cm9rZVdpZHRoUmFuZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCAxMF0sXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc3Ryb2tlV2lkdGhSYW5nZScsXG4gICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgcmFuZ2U6IFswLCAyMDBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnN0cm9rZSxcbiAgICBwcm9wZXJ0eTogJ3NpemVSYW5nZSdcbiAgfSxcbiAgdHJhaWxMZW5ndGg6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDE4MCxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zdHJva2VXaWR0aCcsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMSwgMTAwMF0sXG4gICAgc3RlcDogMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnN0cm9rZSxcbiAgICBwcm9wZXJ0eTogJ3RyYWlsTGVuZ3RoJ1xuICB9LFxuICAvLyByYWRpdXMgaXMgYWN0dWFsbHkgcmFkaXVzU2NhbGUgaW4gZGVjay5nbFxuICByYWRpdXM6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDIsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MucmFkaXVzJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCAxMDBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnJhZGl1cyxcbiAgICBwcm9wZXJ0eTogJ3JhZGl1cydcbiAgfSxcbiAgcmFkaXVzUmFuZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCA1MF0sXG4gICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgcmFuZ2U6IFswLCA1MDBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5yYWRpdXNSYW5nZScsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5yYWRpdXMsXG4gICAgcHJvcGVydHk6ICdyYWRpdXNSYW5nZSdcbiAgfSxcbiAgY2x1c3RlclJhZGl1czoge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmNsdXN0ZXJSYWRpdXMnLFxuICAgIGRlZmF1bHRWYWx1ZTogNDAsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMSwgNTAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5yYWRpdXMsXG4gICAgcHJvcGVydHk6ICdjbHVzdGVyUmFkaXVzJ1xuICB9LFxuICBjbHVzdGVyUmFkaXVzUmFuZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5yYWRpdXNSYW5nZVBpeGVscycsXG4gICAgZGVmYXVsdFZhbHVlOiBbMSwgNDBdLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMSwgMTUwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5yYWRpdXMsXG4gICAgcHJvcGVydHk6ICdyYWRpdXNSYW5nZSdcbiAgfSxcbiAgb3BhY2l0eToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9MQVlFUl9PUEFDSVRZLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLm9wYWNpdHknLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDFdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ29wYWNpdHknXG4gIH0sXG4gIGNvdmVyYWdlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAxLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmNvdmVyYWdlJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCAxXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY2VsbCxcbiAgICBwcm9wZXJ0eTogJ2NvdmVyYWdlJ1xuICB9LFxuICAvLyB1c2VkIGluIHBvaW50IGxheWVyXG4gIG91dGxpbmU6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBsYWJlbDogJ2xheWVyLm91dGxpbmUnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuZGlzcGxheSxcbiAgICBwcm9wZXJ0eTogJ291dGxpbmUnXG4gIH0sXG4gIGNvbG9yUmFuZ2U6IHtcbiAgICB0eXBlOiAnY29sb3ItcmFuZ2Utc2VsZWN0JyxcbiAgICBkZWZhdWx0VmFsdWU6IERFRkFVTFRfQ09MT1JfUkFOR0UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuY29sb3JSYW5nZScsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ2NvbG9yUmFuZ2UnXG4gIH0sXG4gIHN0cm9rZUNvbG9yUmFuZ2U6IHtcbiAgICB0eXBlOiAnY29sb3ItcmFuZ2Utc2VsZWN0JyxcbiAgICBkZWZhdWx0VmFsdWU6IERFRkFVTFRfQ09MT1JfUkFOR0UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc3Ryb2tlQ29sb3JSYW5nZScsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ3N0cm9rZUNvbG9yUmFuZ2UnXG4gIH0sXG4gIHRhcmdldENvbG9yOiB7XG4gICAgdHlwZTogJ2NvbG9yLXNlbGVjdCcsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MudGFyZ2V0Q29sb3InLFxuICAgIGRlZmF1bHRWYWx1ZTogbnVsbCxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNvbG9yLFxuICAgIHByb3BlcnR5OiAndGFyZ2V0Q29sb3InXG4gIH0sXG4gIHN0cm9rZUNvbG9yOiB7XG4gICAgdHlwZTogJ2NvbG9yLXNlbGVjdCcsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc3Ryb2tlQ29sb3InLFxuICAgIGRlZmF1bHRWYWx1ZTogbnVsbCxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNvbG9yLFxuICAgIHByb3BlcnR5OiAnc3Ryb2tlQ29sb3InXG4gIH0sXG4gIGFnZ3JlZ2F0aW9uOiB7XG4gICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgZGVmYXVsdFZhbHVlOiBBR0dSRUdBVElPTl9UWVBFUy5hdmVyYWdlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmNvbG9yQWdncmVnYXRpb24nLFxuICAgIC8vIGFnZ3JlZ2F0aW9uIG9wdGlvbnMgYXJlIGJhc2VkIG9uIGNvbG9yIGZpZWxkIHR5cGVzXG4gICAgb3B0aW9uczogT2JqZWN0LmtleXMoQUdHUkVHQVRJT05fVFlQRVMpLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY29sb3IsXG4gICAgcHJvcGVydHk6ICdjb2xvckFnZ3JlZ2F0aW9uJyxcbiAgICBjb25kaXRpb246IGNvbmZpZyA9PiBjb25maWcuY29sb3JGaWVsZFxuICB9LFxuICBzaXplQWdncmVnYXRpb246IHtcbiAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICBkZWZhdWx0VmFsdWU6IEFHR1JFR0FUSU9OX1RZUEVTLmF2ZXJhZ2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuaGVpZ2h0QWdncmVnYXRpb24nLFxuICAgIC8vIGFnZ3JlZ2F0aW9uIG9wdGlvbnMgYXJlIGJhc2VkIG9uIGNvbG9yIGZpZWxkIHR5cGVzXG4gICAgb3B0aW9uczogT2JqZWN0LmtleXMoQUdHUkVHQVRJT05fVFlQRVMpLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnc2l6ZUFnZ3JlZ2F0aW9uJyxcbiAgICBjb25kaXRpb246IGNvbmZpZyA9PiBjb25maWcuc2l6ZUZpZWxkXG4gIH0sXG4gIGhlaWdodEFnZ3JlZ2F0aW9uOiB7XG4gICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgZGVmYXVsdFZhbHVlOiBBR0dSRUdBVElPTl9UWVBFUy5hdmVyYWdlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmhlaWdodEFnZ3JlZ2F0aW9uJyxcbiAgICBvcHRpb25zOiBPYmplY3Qua2V5cyhBR0dSRUdBVElPTl9UWVBFUyksXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5oZWlnaHQsXG4gICAgcHJvcGVydHk6ICdoZWlnaHRBZ2dyZWdhdGlvbicsXG4gICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLmhlaWdodEZpZWxkXG4gIH0sXG4gIHBlcmNlbnRpbGU6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCAxMDBdLFxuICAgIGxhYmVsOiBjb25maWcgPT5cbiAgICAgIGBGaWx0ZXIgYnkgJHtcbiAgICAgICAgY29uZmlnLmNvbG9yRmllbGRcbiAgICAgICAgICA/IGAke2NvbmZpZy52aXNDb25maWcuY29sb3JBZ2dyZWdhdGlvbn0gJHtjb25maWcuY29sb3JGaWVsZC5uYW1lfWBcbiAgICAgICAgICA6ICdjb3VudCdcbiAgICAgIH0gcGVyY2VudGlsZWAsXG4gICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgcmFuZ2U6IFswLCAxMDBdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ3BlcmNlbnRpbGUnLFxuXG4gICAgLy8gcGVyY2VudGlsZSBmaWx0ZXIgb25seSBtYWtlcyBzZW5zZSB3aXRoIGxpbmVhciBhZ2dyZWdhdGlvblxuICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy5jb2xvclNjYWxlICE9PSAnb3JkaW5hbCdcbiAgfSxcbiAgZWxldmF0aW9uUGVyY2VudGlsZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDEwMF0sXG4gICAgbGFiZWw6IGNvbmZpZyA9PlxuICAgICAgYEZpbHRlciBieSAke1xuICAgICAgICBjb25maWcuc2l6ZUZpZWxkID8gYCR7Y29uZmlnLnZpc0NvbmZpZy5zaXplQWdncmVnYXRpb259ICR7Y29uZmlnLnNpemVGaWVsZC5uYW1lfWAgOiAnY291bnQnXG4gICAgICB9IHBlcmNlbnRpbGVgLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMTAwXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnZWxldmF0aW9uUGVyY2VudGlsZScsXG4gICAgLy8gcGVyY2VudGlsZSBmaWx0ZXIgb25seSBtYWtlcyBzZW5zZSB3aXRoIGxpbmVhciBhZ2dyZWdhdGlvblxuICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcuZW5hYmxlM2QgJiYgKGNvbmZpZy5jb2xvckZpZWxkIHx8IGNvbmZpZy5zaXplRmllbGQpXG4gIH0sXG4gIHJlc29sdXRpb246IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDgsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MucmVzb2x1dGlvbicsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMTNdLFxuICAgIHN0ZXA6IDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jZWxsLFxuICAgIHByb3BlcnR5OiAncmVzb2x1dGlvbidcbiAgfSxcbiAgc2l6ZVNjYWxlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAxMCxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zaXplU2NhbGUnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzEsIDEwMDBdLFxuICAgIHN0ZXA6IDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5zdHJva2UsXG4gICAgcHJvcGVydHk6ICdzaXplU2NhbGUnXG4gIH0sXG4gIGFuZ2xlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuYW5nbGUnLFxuICAgIGRlZmF1bHRWYWx1ZTogMCxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCAzNjBdLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuYW5nbGUsXG4gICAgc3RlcDogMSxcbiAgICBwcm9wZXJ0eTogJ2FuZ2xlJ1xuICB9LFxuICB3b3JsZFVuaXRTaXplOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAxLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLndvcmxkVW5pdFNpemUnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDUwMF0sXG4gICAgc3RlcDogMC4wMDAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY2VsbCxcbiAgICBwcm9wZXJ0eTogJ3dvcmxkVW5pdFNpemUnXG4gIH0sXG4gIGVsZXZhdGlvblNjYWxlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiA1LFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmVsZXZhdGlvblNjYWxlJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCA1MDAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5oZWlnaHQsXG4gICAgcHJvcGVydHk6ICdlbGV2YXRpb25TY2FsZSdcbiAgfSxcbiAgZW5hYmxlRWxldmF0aW9uWm9vbUZhY3Rvcjoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvcicsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5oZWlnaHQsXG4gICAgcHJvcGVydHk6ICdlbmFibGVFbGV2YXRpb25ab29tRmFjdG9yJyxcbiAgICBkZXNjcmlwdGlvbjogJ2xheWVyVmlzQ29uZmlncy5lbmFibGVFbGV2YXRpb25ab29tRmFjdG9yRGVzY3JpcHRpb24nXG4gIH0sXG4gIGVsZXZhdGlvblJhbmdlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiBbMCwgNTAwXSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5oZWlnaHRTY2FsZScsXG4gICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgcmFuZ2U6IFswLCAxMDAwXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnc2l6ZVJhbmdlJ1xuICB9LFxuICBoZWlnaHRSYW5nZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDUwMF0sXG4gICAgbGFiZWw6ICdIZWlnaHQgU2NhbGUnLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMTAwMF0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ2hlaWdodFJhbmdlJ1xuICB9LFxuICBjb3ZlcmFnZVJhbmdlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiBbMCwgMV0sXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuY292ZXJhZ2VSYW5nZScsXG4gICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgcmFuZ2U6IFswLCAxXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMucmFkaXVzLFxuICAgIHByb3BlcnR5OiAnY292ZXJhZ2VSYW5nZSdcbiAgfSxcbiAgLy8gaGkgcHJlY2lzaW9uIGlzIGRlcHJlY2F0ZWQgYnkgZGVjay5nbFxuICAnaGktcHJlY2lzaW9uJzoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmhpZ2hQcmVjaXNpb25SZW5kZXJpbmcnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMucHJlY2lzaW9uLFxuICAgIHByb3BlcnR5OiAnaGktcHJlY2lzaW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ2xheWVyVmlzQ29uZmlncy5oaWdoUHJlY2lzaW9uUmVuZGVyaW5nRGVzY3JpcHRpb24nXG4gIH0sXG4gIGVuYWJsZTNkOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuaGVpZ2h0JyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ2VuYWJsZTNkJyxcbiAgICBkZXNjcmlwdGlvbjogJ2xheWVyVmlzQ29uZmlncy5oZWlnaHREZXNjcmlwdGlvbidcbiAgfSxcbiAgc3Ryb2tlZDoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zdHJva2UnLFxuICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmRpc3BsYXksXG4gICAgcHJvcGVydHk6ICdzdHJva2VkJ1xuICB9LFxuICBmaWxsZWQ6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuZmlsbCcsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmRpc3BsYXksXG4gICAgcHJvcGVydHk6ICdmaWxsZWQnXG4gIH0sXG4gIGV4dHJ1ZGVkOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuZW5hYmxlUG9seWdvbkhlaWdodCcsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5kaXNwbGF5LFxuICAgIHByb3BlcnR5OiAnZXh0cnVkZWQnXG4gIH0sXG4gIHdpcmVmcmFtZToge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnNob3dXaXJlZnJhbWUnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuZGlzcGxheSxcbiAgICBwcm9wZXJ0eTogJ3dpcmVmcmFtZSdcbiAgfSxcbiAgLy8gdXNlZCBmb3IgaGVhdG1hcFxuICB3ZWlnaHQ6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDEsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Mud2VpZ2h0SW50ZW5zaXR5JyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLjAxLCA1MDBdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jZWxsLFxuICAgIHByb3BlcnR5OiAnd2VpZ2h0JyxcbiAgICBjb25kaXRpb246IGNvbmZpZyA9PiBjb25maWcud2VpZ2h0RmllbGRcbiAgfSxcbiAgaGVhdG1hcFJhZGl1czoge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMjAsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MucmFkaXVzJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCAxMDBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNlbGwsXG4gICAgcHJvcGVydHk6ICdyYWRpdXMnXG4gIH0sXG4gIGN1c3RvbU1hcmtlcnM6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jdXN0b21NYXJrZXJzJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmN1c3RvbU1hcmtlcnMsXG4gICAgcHJvcGVydHk6ICdjdXN0b21NYXJrZXJzJ1xuICB9LFxuICBjdXN0b21NYXJrZXJzVXJsOiB7XG4gICAgdHlwZTogJ3RleHQnLFxuICAgIGRlZmF1bHRWYWx1ZTogJycsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuYWRkVXJsJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmN1c3RvbU1hcmtlcnMsXG4gICAgcHJvcGVydHk6ICdjdXN0b21NYXJrZXJzVXJsJ1xuICB9LFxuICBjdXN0b21NYXJrZXJzUmFuZ2U6IHtcbiAgICB0eXBlOiAnbWFya2Vycy1yYW5nZS1zZWxlY3QnLFxuICAgIGRlZmF1bHRWYWx1ZTogdW5kZWZpbmVkLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmNvbG9yUmFuZ2UnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY3VzdG9tTWFya2VycyxcbiAgICBwcm9wZXJ0eTogJ2N1c3RvbU1hcmtlcnNSYW5nZSdcbiAgfVxufTtcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vbGF5ZXItZmFjdG9yeScpLkxheWVyVGV4dENvbmZpZ30gKi9cbmV4cG9ydCBjb25zdCBMQVlFUl9URVhUX0NPTkZJR1MgPSB7XG4gIGZvbnRTaXplOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgcmFuZ2U6IFsxLCAxMDBdLFxuICAgIHZhbHVlMDogMSxcbiAgICBzdGVwOiAxLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICBsYWJlbDogJ0ZvbnQgc2l6ZScsXG4gICAgc2hvd0lucHV0OiB0cnVlXG4gIH0sXG4gIHRleHRBbmNob3I6IHtcbiAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICBvcHRpb25zOiBbJ3N0YXJ0JywgJ21pZGRsZScsICdlbmQnXSxcbiAgICBtdWx0aVNlbGVjdDogZmFsc2UsXG4gICAgc2VhcmNoYWJsZTogZmFsc2VcbiAgfSxcbiAgdGV4dEFsaWdubWVudDoge1xuICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIG9wdGlvbnM6IFsndG9wJywgJ2NlbnRlcicsICdib3R0b20nXSxcbiAgICBtdWx0aVNlbGVjdDogZmFsc2UsXG4gICAgc2VhcmNoYWJsZTogZmFsc2VcbiAgfVxufTtcbiJdfQ==
@@ -59,14 +59,35 @@ exports.textLabelAccessor = textLabelAccessor;
59
59
 
60
60
  var formatTextLabelData = function formatTextLabelData(_ref) {
61
61
  var textLabel = _ref.textLabel,
62
+ triggerChanged = _ref.triggerChanged,
63
+ oldLayerData = _ref.oldLayerData,
64
+ data = _ref.data,
62
65
  dataContainer = _ref.dataContainer;
63
66
  return textLabel.map(function (tl, i) {
64
- var getText = tl.field ? textLabelAccessor(tl)(dataContainer) : null;
67
+ if (!tl.field) {
68
+ // if no field selected,
69
+ return {
70
+ getText: null,
71
+ characterSet: []
72
+ };
73
+ }
74
+
75
+ var getText = textLabelAccessor(tl)(dataContainer);
76
+ var characterSet;
77
+
78
+ if (!triggerChanged["getLabelCharacterSet-".concat(i)] && oldLayerData && oldLayerData.textLabels && oldLayerData.textLabels[i]) {
79
+ characterSet = oldLayerData.textLabels[i].characterSet;
80
+ } else {
81
+ var allLabels = tl.field ? data.map(getText) : [];
82
+ characterSet = (0, _lodash["default"])(allLabels.join(''));
83
+ }
84
+
65
85
  return {
86
+ characterSet: characterSet,
66
87
  getText: getText
67
88
  };
68
89
  });
69
90
  };
70
91
 
71
92
  exports.formatTextLabelData = formatTextLabelData;
72
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllcnMvbGF5ZXItdGV4dC1sYWJlbC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0UGFkZGluZyIsImdldFRleHRPZmZzZXRCeVJhZGl1cyIsInJhZGl1c1NjYWxlIiwiZ2V0UmFkaXVzIiwidGV4dExhYmVsIiwieE11bHQiLCJhbmNob3IiLCJ5TXVsdCIsImFsaWdubWVudCIsInNpemVPZmZzZXQiLCJzaXplIiwicGFkZGluZyIsImQiLCJ0ZXh0TGFiZWxBY2Nlc3NvciIsImRjIiwidmFsIiwiZmllbGQiLCJ2YWx1ZUFjY2Vzc29yIiwiU3RyaW5nIiwiZm9ybWF0VGV4dExhYmVsRGF0YSIsImRhdGFDb250YWluZXIiLCJtYXAiLCJ0bCIsImkiLCJnZXRUZXh0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQXJCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUtPLElBQU1BLGNBQWMsR0FBRyxFQUF2Qjs7O0FBRUEsU0FBU0MscUJBQVQsQ0FBK0JDLFdBQS9CLEVBQTRDQyxTQUE1QyxFQUF1RDtBQUM1RCxTQUFPLFVBQUFDLFNBQVMsRUFBSTtBQUNsQixRQUFNQyxLQUFLLEdBQUdELFNBQVMsQ0FBQ0UsTUFBVixLQUFxQixRQUFyQixHQUFnQyxDQUFoQyxHQUFvQ0YsU0FBUyxDQUFDRSxNQUFWLEtBQXFCLE9BQXJCLEdBQStCLENBQS9CLEdBQW1DLENBQUMsQ0FBdEY7QUFDQSxRQUFNQyxLQUFLLEdBQUdILFNBQVMsQ0FBQ0ksU0FBVixLQUF3QixRQUF4QixHQUFtQyxDQUFuQyxHQUF1Q0osU0FBUyxDQUFDSSxTQUFWLEtBQXdCLFFBQXhCLEdBQW1DLENBQW5DLEdBQXVDLENBQUMsQ0FBN0Y7QUFFQSxRQUFNQyxVQUFVLEdBQ2RMLFNBQVMsQ0FBQ0ksU0FBVixLQUF3QixRQUF4QixHQUNJLENBREosR0FFSUosU0FBUyxDQUFDSSxTQUFWLEtBQXdCLFFBQXhCLEdBQ0FKLFNBQVMsQ0FBQ00sSUFEVixHQUVBTixTQUFTLENBQUNNLElBTGhCO0FBT0EsUUFBTUMsT0FBTyxHQUFHWCxjQUFoQjtBQUVBLFdBQU8sT0FBT0csU0FBUCxLQUFxQixVQUFyQixHQUNILFVBQUFTLENBQUM7QUFBQSxhQUFJLENBQ0hQLEtBQUssSUFBSUYsU0FBUyxDQUFDUyxDQUFELENBQVQsR0FBZVYsV0FBZixHQUE2QlMsT0FBakMsQ0FERixFQUVISixLQUFLLElBQUlKLFNBQVMsQ0FBQ1MsQ0FBRCxDQUFULEdBQWVWLFdBQWYsR0FBNkJTLE9BQTdCLEdBQXVDRixVQUEzQyxDQUZGLENBQUo7QUFBQSxLQURFLEdBS0gsQ0FDRUosS0FBSyxJQUFJRixTQUFTLEdBQUdELFdBQVosR0FBMEJTLE9BQTlCLENBRFAsRUFFRUosS0FBSyxJQUFJSixTQUFTLEdBQUdELFdBQVosR0FBMEJTLE9BQTFCLEdBQW9DRixVQUF4QyxDQUZQLENBTEo7QUFTRCxHQXRCRDtBQXVCRDs7QUFFTSxJQUFNSSxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQW9CLENBQUFULFNBQVM7QUFBQSxTQUFJLFVBQUFVLEVBQUU7QUFBQSxXQUFJLFVBQUFGLENBQUMsRUFBSTtBQUN2RCxVQUFNRyxHQUFHLEdBQUdYLFNBQVMsQ0FBQ1ksS0FBVixDQUFnQkMsYUFBaEIsQ0FBOEJMLENBQTlCLENBQVo7QUFDQSxhQUFPLG1DQUFtQkcsR0FBbkIsSUFBMEJHLE1BQU0sQ0FBQ0gsR0FBRCxDQUFoQyxHQUF3QyxFQUEvQztBQUNELEtBSCtDO0FBQUEsR0FBTjtBQUFBLENBQW5DOzs7O0FBS0EsSUFBTUksbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFzQixPQUFnQztBQUFBLE1BQTlCZixTQUE4QixRQUE5QkEsU0FBOEI7QUFBQSxNQUFuQmdCLGFBQW1CLFFBQW5CQSxhQUFtQjtBQUNqRSxTQUFPaEIsU0FBUyxDQUFDaUIsR0FBVixDQUFjLFVBQUNDLEVBQUQsRUFBS0MsQ0FBTCxFQUFXO0FBQzlCLFFBQU1DLE9BQU8sR0FBR0YsRUFBRSxDQUFDTixLQUFILEdBQVdILGlCQUFpQixDQUFDUyxFQUFELENBQWpCLENBQXNCRixhQUF0QixDQUFYLEdBQWtELElBQWxFO0FBQ0EsV0FBTztBQUFDSSxNQUFBQSxPQUFPLEVBQVBBO0FBQUQsS0FBUDtBQUNELEdBSE0sQ0FBUDtBQUlELENBTE0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge25vdE51bGxvclVuZGVmaW5lZH0gZnJvbSAndXRpbHMvZGF0YS11dGlscyc7XG5pbXBvcnQgdW5pcSBmcm9tICdsb2Rhc2gudW5pcSc7XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0UGFkZGluZyA9IDIwO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGV4dE9mZnNldEJ5UmFkaXVzKHJhZGl1c1NjYWxlLCBnZXRSYWRpdXMpIHtcbiAgcmV0dXJuIHRleHRMYWJlbCA9PiB7XG4gICAgY29uc3QgeE11bHQgPSB0ZXh0TGFiZWwuYW5jaG9yID09PSAnbWlkZGxlJyA/IDAgOiB0ZXh0TGFiZWwuYW5jaG9yID09PSAnc3RhcnQnID8gMSA6IC0xO1xuICAgIGNvbnN0IHlNdWx0ID0gdGV4dExhYmVsLmFsaWdubWVudCA9PT0gJ2NlbnRlcicgPyAwIDogdGV4dExhYmVsLmFsaWdubWVudCA9PT0gJ2JvdHRvbScgPyAxIDogLTE7XG5cbiAgICBjb25zdCBzaXplT2Zmc2V0ID1cbiAgICAgIHRleHRMYWJlbC5hbGlnbm1lbnQgPT09ICdjZW50ZXInXG4gICAgICAgID8gMFxuICAgICAgICA6IHRleHRMYWJlbC5hbGlnbm1lbnQgPT09ICdib3R0b20nXG4gICAgICAgID8gdGV4dExhYmVsLnNpemVcbiAgICAgICAgOiB0ZXh0TGFiZWwuc2l6ZTtcblxuICAgIGNvbnN0IHBhZGRpbmcgPSBkZWZhdWx0UGFkZGluZztcblxuICAgIHJldHVybiB0eXBlb2YgZ2V0UmFkaXVzID09PSAnZnVuY3Rpb24nXG4gICAgICA/IGQgPT4gW1xuICAgICAgICAgIHhNdWx0ICogKGdldFJhZGl1cyhkKSAqIHJhZGl1c1NjYWxlICsgcGFkZGluZyksXG4gICAgICAgICAgeU11bHQgKiAoZ2V0UmFkaXVzKGQpICogcmFkaXVzU2NhbGUgKyBwYWRkaW5nICsgc2l6ZU9mZnNldClcbiAgICAgICAgXVxuICAgICAgOiBbXG4gICAgICAgICAgeE11bHQgKiAoZ2V0UmFkaXVzICogcmFkaXVzU2NhbGUgKyBwYWRkaW5nKSxcbiAgICAgICAgICB5TXVsdCAqIChnZXRSYWRpdXMgKiByYWRpdXNTY2FsZSArIHBhZGRpbmcgKyBzaXplT2Zmc2V0KVxuICAgICAgICBdO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgdGV4dExhYmVsQWNjZXNzb3IgPSB0ZXh0TGFiZWwgPT4gZGMgPT4gZCA9PiB7XG4gIGNvbnN0IHZhbCA9IHRleHRMYWJlbC5maWVsZC52YWx1ZUFjY2Vzc29yKGQpO1xuICByZXR1cm4gbm90TnVsbG9yVW5kZWZpbmVkKHZhbCkgPyBTdHJpbmcodmFsKSA6ICcnO1xufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdFRleHRMYWJlbERhdGEgPSAoe3RleHRMYWJlbCwgZGF0YUNvbnRhaW5lcn0pID0+IHtcbiAgcmV0dXJuIHRleHRMYWJlbC5tYXAoKHRsLCBpKSA9PiB7XG4gICAgY29uc3QgZ2V0VGV4dCA9IHRsLmZpZWxkID8gdGV4dExhYmVsQWNjZXNzb3IodGwpKGRhdGFDb250YWluZXIpIDogbnVsbDtcbiAgICByZXR1cm4ge2dldFRleHR9O1xuICB9KTtcbn07XG4iXX0=
93
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllcnMvbGF5ZXItdGV4dC1sYWJlbC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0UGFkZGluZyIsImdldFRleHRPZmZzZXRCeVJhZGl1cyIsInJhZGl1c1NjYWxlIiwiZ2V0UmFkaXVzIiwidGV4dExhYmVsIiwieE11bHQiLCJhbmNob3IiLCJ5TXVsdCIsImFsaWdubWVudCIsInNpemVPZmZzZXQiLCJzaXplIiwicGFkZGluZyIsImQiLCJ0ZXh0TGFiZWxBY2Nlc3NvciIsImRjIiwidmFsIiwiZmllbGQiLCJ2YWx1ZUFjY2Vzc29yIiwiU3RyaW5nIiwiZm9ybWF0VGV4dExhYmVsRGF0YSIsInRyaWdnZXJDaGFuZ2VkIiwib2xkTGF5ZXJEYXRhIiwiZGF0YSIsImRhdGFDb250YWluZXIiLCJtYXAiLCJ0bCIsImkiLCJnZXRUZXh0IiwiY2hhcmFjdGVyU2V0IiwidGV4dExhYmVscyIsImFsbExhYmVscyIsImpvaW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS08sSUFBTUEsY0FBYyxHQUFHLEVBQXZCOzs7QUFFQSxTQUFTQyxxQkFBVCxDQUErQkMsV0FBL0IsRUFBNENDLFNBQTVDLEVBQXVEO0FBQzVELFNBQU8sVUFBQUMsU0FBUyxFQUFJO0FBQ2xCLFFBQU1DLEtBQUssR0FBR0QsU0FBUyxDQUFDRSxNQUFWLEtBQXFCLFFBQXJCLEdBQWdDLENBQWhDLEdBQW9DRixTQUFTLENBQUNFLE1BQVYsS0FBcUIsT0FBckIsR0FBK0IsQ0FBL0IsR0FBbUMsQ0FBQyxDQUF0RjtBQUNBLFFBQU1DLEtBQUssR0FBR0gsU0FBUyxDQUFDSSxTQUFWLEtBQXdCLFFBQXhCLEdBQW1DLENBQW5DLEdBQXVDSixTQUFTLENBQUNJLFNBQVYsS0FBd0IsUUFBeEIsR0FBbUMsQ0FBbkMsR0FBdUMsQ0FBQyxDQUE3RjtBQUVBLFFBQU1DLFVBQVUsR0FDZEwsU0FBUyxDQUFDSSxTQUFWLEtBQXdCLFFBQXhCLEdBQ0ksQ0FESixHQUVJSixTQUFTLENBQUNJLFNBQVYsS0FBd0IsUUFBeEIsR0FDQUosU0FBUyxDQUFDTSxJQURWLEdBRUFOLFNBQVMsQ0FBQ00sSUFMaEI7QUFPQSxRQUFNQyxPQUFPLEdBQUdYLGNBQWhCO0FBRUEsV0FBTyxPQUFPRyxTQUFQLEtBQXFCLFVBQXJCLEdBQ0gsVUFBQVMsQ0FBQztBQUFBLGFBQUksQ0FDSFAsS0FBSyxJQUFJRixTQUFTLENBQUNTLENBQUQsQ0FBVCxHQUFlVixXQUFmLEdBQTZCUyxPQUFqQyxDQURGLEVBRUhKLEtBQUssSUFBSUosU0FBUyxDQUFDUyxDQUFELENBQVQsR0FBZVYsV0FBZixHQUE2QlMsT0FBN0IsR0FBdUNGLFVBQTNDLENBRkYsQ0FBSjtBQUFBLEtBREUsR0FLSCxDQUNFSixLQUFLLElBQUlGLFNBQVMsR0FBR0QsV0FBWixHQUEwQlMsT0FBOUIsQ0FEUCxFQUVFSixLQUFLLElBQUlKLFNBQVMsR0FBR0QsV0FBWixHQUEwQlMsT0FBMUIsR0FBb0NGLFVBQXhDLENBRlAsQ0FMSjtBQVNELEdBdEJEO0FBdUJEOztBQUVNLElBQU1JLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBb0IsQ0FBQVQsU0FBUztBQUFBLFNBQUksVUFBQVUsRUFBRTtBQUFBLFdBQUksVUFBQUYsQ0FBQyxFQUFJO0FBQ3ZELFVBQU1HLEdBQUcsR0FBR1gsU0FBUyxDQUFDWSxLQUFWLENBQWdCQyxhQUFoQixDQUE4QkwsQ0FBOUIsQ0FBWjtBQUNBLGFBQU8sbUNBQW1CRyxHQUFuQixJQUEwQkcsTUFBTSxDQUFDSCxHQUFELENBQWhDLEdBQXdDLEVBQS9DO0FBQ0QsS0FIK0M7QUFBQSxHQUFOO0FBQUEsQ0FBbkM7Ozs7QUFLQSxJQUFNSSxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQXNCLE9BTTdCO0FBQUEsTUFMSmYsU0FLSSxRQUxKQSxTQUtJO0FBQUEsTUFKSmdCLGNBSUksUUFKSkEsY0FJSTtBQUFBLE1BSEpDLFlBR0ksUUFISkEsWUFHSTtBQUFBLE1BRkpDLElBRUksUUFGSkEsSUFFSTtBQUFBLE1BREpDLGFBQ0ksUUFESkEsYUFDSTtBQUNKLFNBQU9uQixTQUFTLENBQUNvQixHQUFWLENBQWMsVUFBQ0MsRUFBRCxFQUFLQyxDQUFMLEVBQVc7QUFDOUIsUUFBSSxDQUFDRCxFQUFFLENBQUNULEtBQVIsRUFBZTtBQUNiO0FBQ0EsYUFBTztBQUNMVyxRQUFBQSxPQUFPLEVBQUUsSUFESjtBQUVMQyxRQUFBQSxZQUFZLEVBQUU7QUFGVCxPQUFQO0FBSUQ7O0FBRUQsUUFBTUQsT0FBTyxHQUFHZCxpQkFBaUIsQ0FBQ1ksRUFBRCxDQUFqQixDQUFzQkYsYUFBdEIsQ0FBaEI7QUFDQSxRQUFJSyxZQUFKOztBQUVBLFFBQ0UsQ0FBQ1IsY0FBYyxnQ0FBeUJNLENBQXpCLEVBQWYsSUFDQUwsWUFEQSxJQUVBQSxZQUFZLENBQUNRLFVBRmIsSUFHQVIsWUFBWSxDQUFDUSxVQUFiLENBQXdCSCxDQUF4QixDQUpGLEVBS0U7QUFDQUUsTUFBQUEsWUFBWSxHQUFHUCxZQUFZLENBQUNRLFVBQWIsQ0FBd0JILENBQXhCLEVBQTJCRSxZQUExQztBQUNELEtBUEQsTUFPTztBQUNMLFVBQU1FLFNBQVMsR0FBR0wsRUFBRSxDQUFDVCxLQUFILEdBQVdNLElBQUksQ0FBQ0UsR0FBTCxDQUFTRyxPQUFULENBQVgsR0FBK0IsRUFBakQ7QUFDQUMsTUFBQUEsWUFBWSxHQUFHLHdCQUFLRSxTQUFTLENBQUNDLElBQVYsQ0FBZSxFQUFmLENBQUwsQ0FBZjtBQUNEOztBQUVELFdBQU87QUFDTEgsTUFBQUEsWUFBWSxFQUFaQSxZQURLO0FBRUxELE1BQUFBLE9BQU8sRUFBUEE7QUFGSyxLQUFQO0FBSUQsR0E1Qk0sQ0FBUDtBQTZCRCxDQXBDTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7bm90TnVsbG9yVW5kZWZpbmVkfSBmcm9tICd1dGlscy9kYXRhLXV0aWxzJztcbmltcG9ydCB1bmlxIGZyb20gJ2xvZGFzaC51bmlxJztcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRQYWRkaW5nID0gMjA7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXh0T2Zmc2V0QnlSYWRpdXMocmFkaXVzU2NhbGUsIGdldFJhZGl1cykge1xuICByZXR1cm4gdGV4dExhYmVsID0+IHtcbiAgICBjb25zdCB4TXVsdCA9IHRleHRMYWJlbC5hbmNob3IgPT09ICdtaWRkbGUnID8gMCA6IHRleHRMYWJlbC5hbmNob3IgPT09ICdzdGFydCcgPyAxIDogLTE7XG4gICAgY29uc3QgeU11bHQgPSB0ZXh0TGFiZWwuYWxpZ25tZW50ID09PSAnY2VudGVyJyA/IDAgOiB0ZXh0TGFiZWwuYWxpZ25tZW50ID09PSAnYm90dG9tJyA/IDEgOiAtMTtcblxuICAgIGNvbnN0IHNpemVPZmZzZXQgPVxuICAgICAgdGV4dExhYmVsLmFsaWdubWVudCA9PT0gJ2NlbnRlcidcbiAgICAgICAgPyAwXG4gICAgICAgIDogdGV4dExhYmVsLmFsaWdubWVudCA9PT0gJ2JvdHRvbSdcbiAgICAgICAgPyB0ZXh0TGFiZWwuc2l6ZVxuICAgICAgICA6IHRleHRMYWJlbC5zaXplO1xuXG4gICAgY29uc3QgcGFkZGluZyA9IGRlZmF1bHRQYWRkaW5nO1xuXG4gICAgcmV0dXJuIHR5cGVvZiBnZXRSYWRpdXMgPT09ICdmdW5jdGlvbidcbiAgICAgID8gZCA9PiBbXG4gICAgICAgICAgeE11bHQgKiAoZ2V0UmFkaXVzKGQpICogcmFkaXVzU2NhbGUgKyBwYWRkaW5nKSxcbiAgICAgICAgICB5TXVsdCAqIChnZXRSYWRpdXMoZCkgKiByYWRpdXNTY2FsZSArIHBhZGRpbmcgKyBzaXplT2Zmc2V0KVxuICAgICAgICBdXG4gICAgICA6IFtcbiAgICAgICAgICB4TXVsdCAqIChnZXRSYWRpdXMgKiByYWRpdXNTY2FsZSArIHBhZGRpbmcpLFxuICAgICAgICAgIHlNdWx0ICogKGdldFJhZGl1cyAqIHJhZGl1c1NjYWxlICsgcGFkZGluZyArIHNpemVPZmZzZXQpXG4gICAgICAgIF07XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCB0ZXh0TGFiZWxBY2Nlc3NvciA9IHRleHRMYWJlbCA9PiBkYyA9PiBkID0+IHtcbiAgY29uc3QgdmFsID0gdGV4dExhYmVsLmZpZWxkLnZhbHVlQWNjZXNzb3IoZCk7XG4gIHJldHVybiBub3ROdWxsb3JVbmRlZmluZWQodmFsKSA/IFN0cmluZyh2YWwpIDogJyc7XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0VGV4dExhYmVsRGF0YSA9ICh7XG4gIHRleHRMYWJlbCxcbiAgdHJpZ2dlckNoYW5nZWQsXG4gIG9sZExheWVyRGF0YSxcbiAgZGF0YSxcbiAgZGF0YUNvbnRhaW5lclxufSkgPT4ge1xuICByZXR1cm4gdGV4dExhYmVsLm1hcCgodGwsIGkpID0+IHtcbiAgICBpZiAoIXRsLmZpZWxkKSB7XG4gICAgICAvLyBpZiBubyBmaWVsZCBzZWxlY3RlZCxcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGdldFRleHQ6IG51bGwsXG4gICAgICAgIGNoYXJhY3RlclNldDogW11cbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0VGV4dCA9IHRleHRMYWJlbEFjY2Vzc29yKHRsKShkYXRhQ29udGFpbmVyKTtcbiAgICBsZXQgY2hhcmFjdGVyU2V0O1xuXG4gICAgaWYgKFxuICAgICAgIXRyaWdnZXJDaGFuZ2VkW2BnZXRMYWJlbENoYXJhY3RlclNldC0ke2l9YF0gJiZcbiAgICAgIG9sZExheWVyRGF0YSAmJlxuICAgICAgb2xkTGF5ZXJEYXRhLnRleHRMYWJlbHMgJiZcbiAgICAgIG9sZExheWVyRGF0YS50ZXh0TGFiZWxzW2ldXG4gICAgKSB7XG4gICAgICBjaGFyYWN0ZXJTZXQgPSBvbGRMYXllckRhdGEudGV4dExhYmVsc1tpXS5jaGFyYWN0ZXJTZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGFsbExhYmVscyA9IHRsLmZpZWxkID8gZGF0YS5tYXAoZ2V0VGV4dCkgOiBbXTtcbiAgICAgIGNoYXJhY3RlclNldCA9IHVuaXEoYWxsTGFiZWxzLmpvaW4oJycpKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgY2hhcmFjdGVyU2V0LFxuICAgICAgZ2V0VGV4dFxuICAgIH07XG4gIH0pO1xufTtcbiJdfQ==
@@ -279,6 +279,9 @@ var PointLayer = /*#__PURE__*/function (_Layer) {
279
279
 
280
280
  var textLabels = (0, _layerTextLabel.formatTextLabelData)({
281
281
  textLabel: textLabel,
282
+ triggerChanged: triggerChanged,
283
+ oldLayerData: oldLayerData,
284
+ data: data,
282
285
  dataContainer: dataContainer
283
286
  });
284
287
  var accessors = this.getAttributeAccessors({
@@ -319,13 +322,10 @@ var PointLayer = /*#__PURE__*/function (_Layer) {
319
322
  gpuFilter = opts.gpuFilter,
320
323
  objectHovered = opts.objectHovered,
321
324
  interactionConfig = opts.interactionConfig;
322
- var _this$config$visConfi = this.config.visConfig,
323
- customMarkers = _this$config$visConfi.customMarkers,
324
- customMarkersUrl = _this$config$visConfi.customMarkersUrl,
325
- customMarkersRange = _this$config$visConfi.customMarkersRange;
326
325
  var radiusScale = this.getRadiusScale();
327
326
  var defaultLayerProps = this.getDefaultDeckLayerProps(opts);
328
327
  var brushingProps = this.getBrushingExtensionProps(interactionConfig);
328
+ var getPixelOffset = (0, _layerTextLabel.getTextOffsetByRadius)(radiusScale, data.getRadius);
329
329
  var extensions = [].concat((0, _toConsumableArray2["default"])(defaultLayerProps.extensions), [brushingExtension]);
330
330
 
331
331
  var updateTriggers = _objectSpread({
@@ -337,7 +337,6 @@ var PointLayer = /*#__PURE__*/function (_Layer) {
337
337
  getFilterValue: data.getFilterValue,
338
338
  extensions: extensions,
339
339
  filterRange: defaultLayerProps.filterRange,
340
- maskId: defaultLayerProps.maskId,
341
340
  visible: defaultLayerProps.visible
342
341
  }, brushingProps);
343
342
 
@@ -345,9 +344,7 @@ var PointLayer = /*#__PURE__*/function (_Layer) {
345
344
  var textLabelLayer = this.renderTextLabelLayer({
346
345
  getPosition: data.getPosition,
347
346
  sharedProps: sharedProps,
348
- // TODO remove this scaling by half here and elsewhere
349
- radiusScale: customMarkers ? radiusScale / 2 : radiusScale,
350
- getRadius: data.getRadius,
347
+ getPixelOffset: getPixelOffset,
351
348
  updateTriggers: updateTriggers
352
349
  }, opts);
353
350
 
@@ -359,6 +356,10 @@ var PointLayer = /*#__PURE__*/function (_Layer) {
359
356
  });
360
357
 
361
358
  var customMarkersField = this.config.customMarkersField;
359
+ var _this$config$visConfi = this.config.visConfig,
360
+ customMarkers = _this$config$visConfi.customMarkers,
361
+ customMarkersUrl = _this$config$visConfi.customMarkersUrl,
362
+ customMarkersRange = _this$config$visConfi.customMarkersRange;
362
363
  var customMarkersConfigured = customMarkers && Boolean(customMarkersUrl || customMarkersField && customMarkersRange);
363
364
  var customMarkersMisConfigured = customMarkers && !customMarkersConfigured;
364
365
 
@@ -472,4 +473,4 @@ var PointLayer = /*#__PURE__*/function (_Layer) {
472
473
  }(_baseLayer["default"]);
473
474
 
474
475
  exports["default"] = PointLayer;
475
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvcG9pbnQtbGF5ZXIvcG9pbnQtbGF5ZXIuanMiXSwibmFtZXMiOlsicG9pbnRQb3NBY2Nlc3NvciIsImxhdCIsImxuZyIsImFsdGl0dWRlIiwiZGMiLCJkIiwidmFsdWVBdCIsImluZGV4IiwiZmllbGRJZHgiLCJwb2ludFJlcXVpcmVkQ29sdW1ucyIsInBvaW50T3B0aW9uYWxDb2x1bW5zIiwiYnJ1c2hpbmdFeHRlbnNpb24iLCJCcnVzaGluZ0V4dGVuc2lvbiIsInBvaW50VmlzQ29uZmlncyIsInJhZGl1cyIsImN1c3RvbU1hcmtlcnMiLCJjdXN0b21NYXJrZXJzVXJsIiwiY3VzdG9tTWFya2Vyc1JhbmdlIiwib3BhY2l0eSIsIm91dGxpbmUiLCJ0aGlja25lc3MiLCJzdHJva2VDb2xvciIsImNvbG9yUmFuZ2UiLCJzdHJva2VDb2xvclJhbmdlIiwicmFkaXVzUmFuZ2UiLCJmaWxsZWQiLCJ0eXBlIiwibGFiZWwiLCJkZWZhdWx0VmFsdWUiLCJwcm9wZXJ0eSIsIlBvaW50TGF5ZXIiLCJwcm9wcyIsInJlZ2lzdGVyVmlzQ29uZmlnIiwiZ2V0UG9zaXRpb25BY2Nlc3NvciIsImRhdGFDb250YWluZXIiLCJjb25maWciLCJjb2x1bW5zIiwiUG9pbnRMYXllckljb24iLCJkZWZhdWx0UG9pbnRDb2x1bW5QYWlycyIsImNvbG9yIiwiYWNjZXNzb3IiLCJjb25kaXRpb24iLCJ2aXNDb25maWciLCJrZXkiLCJmaWVsZCIsInNjYWxlIiwiZG9tYWluIiwicmFuZ2UiLCJjaGFubmVsU2NhbGVUeXBlIiwiQ0hBTk5FTF9TQ0FMRVMiLCJzaXplIiwiZml4ZWQiLCJjdXN0b21NYXJrZXIiLCJzdXBwb3J0ZWRGaWVsZFR5cGVzIiwicm90YXRpb24iLCJpZGVudGl0eSIsIm51bGxWYWx1ZSIsInJvdGF0aW9uRmllbGQiLCJkYXRhc2V0IiwiZGVmYXVsdENvbG9yRmllbGQiLCJ1cGRhdGVMYXllckNvbmZpZyIsImNvbG9yRmllbGQiLCJ1cGRhdGVMYXllclZpc3VhbENoYW5uZWwiLCJzdHJva2VDb2xvckZpZWxkIiwic3Ryb2tlQ29sb3JEb21haW4iLCJzdHJva2VDb2xvclNjYWxlIiwiY3VzdG9tTWFya2Vyc0ZpZWxkIiwiY3VzdG9tTWFya2Vyc1NjYWxlIiwiZ2V0UG9zaXRpb24iLCJmaWx0ZXJlZEluZGV4IiwiZGF0YSIsImkiLCJsZW5ndGgiLCJwb3MiLCJldmVyeSIsIk51bWJlciIsImlzRmluaXRlIiwicHVzaCIsInBvc2l0aW9uIiwiZGF0YXNldHMiLCJvbGRMYXllckRhdGEiLCJ0ZXh0TGFiZWwiLCJkYXRhSWQiLCJncHVGaWx0ZXIiLCJ1cGRhdGVEYXRhIiwidHJpZ2dlckNoYW5nZWQiLCJ0ZXh0TGFiZWxzIiwiYWNjZXNzb3JzIiwiZ2V0QXR0cmlidXRlQWNjZXNzb3JzIiwiZ2V0RmlsdGVyVmFsdWUiLCJmaWx0ZXJWYWx1ZUFjY2Vzc29yIiwiYm91bmRzIiwiZ2V0UG9pbnRzQm91bmRzIiwidXBkYXRlTWV0YSIsIm9iamVjdEluZm8iLCJwaWNrZWQiLCJsYXllciIsImlkIiwib3B0cyIsIm9iamVjdEhvdmVyZWQiLCJpbnRlcmFjdGlvbkNvbmZpZyIsInJhZGl1c1NjYWxlIiwiZ2V0UmFkaXVzU2NhbGUiLCJkZWZhdWx0TGF5ZXJQcm9wcyIsImdldERlZmF1bHREZWNrTGF5ZXJQcm9wcyIsImJydXNoaW5nUHJvcHMiLCJnZXRCcnVzaGluZ0V4dGVuc2lvblByb3BzIiwiZXh0ZW5zaW9ucyIsInVwZGF0ZVRyaWdnZXJzIiwiZmlsdGVyVmFsdWVVcGRhdGVUcmlnZ2VycyIsImdldFZpc3VhbENoYW5uZWxVcGRhdGVUcmlnZ2VycyIsInNoYXJlZFByb3BzIiwiZmlsdGVyUmFuZ2UiLCJtYXNrSWQiLCJ2aXNpYmxlIiwiaG92ZXJlZE9iamVjdCIsImhhc0hvdmVyZWRPYmplY3QiLCJ0ZXh0TGFiZWxMYXllciIsInJlbmRlclRleHRMYWJlbExheWVyIiwiZ2V0UmFkaXVzIiwiY29tbW9uTGF5ZXJQcm9wcyIsInBhcmFtZXRlcnMiLCJkZXB0aFRlc3QiLCJjdXN0b21NYXJrZXJzQ29uZmlndXJlZCIsIkJvb2xlYW4iLCJjdXN0b21NYXJrZXJzTWlzQ29uZmlndXJlZCIsIm1heEljb25TaXplIiwiZ2V0TWF4TWFya2VyU2l6ZSIsInVzZU1hc2siLCJpY29uTGF5ZXJQcm9wcyIsImdldEljb24iLCJnZXRDdXN0b21NYXJrZXJJY29uQWNjZXNzb3IiLCJnZXRJY29uVXJsIiwiZ2V0U2l6ZSIsImdldEFuZ2xlIiwiZ2V0Um90YXRpb24iLCJzaXplU2NhbGUiLCJzaXplVW5pdHMiLCJsb2FkT3B0aW9ucyIsImltYWdlIiwiaW1hZ2ViaXRtYXAiLCJyZXNpemVXaWR0aCIsInJlc2l6ZUhlaWdodCIsInJlc2l6ZVF1YWxpdHkiLCJJY29uTGF5ZXIiLCJnZXRDb2xvciIsImdldEZpbGxDb2xvciIsIlVOS05PV05fQ09MT1IiLCJnZXREZWZhdWx0SG92ZXJMYXllclByb3BzIiwiaGlnaGxpZ2h0Q29sb3IiLCJzY2F0dGVyUGxvdExheWVyUHJvcHMiLCJzdHJva2VkIiwibGluZVdpZHRoU2NhbGUiLCJyYWRpdXNNYXhQaXhlbHMiLCJTY2F0dGVycGxvdExheWVyIiwicmFkaXVzVW5pdHMiLCJsaW5lV2lkdGhVbml0cyIsImdldExpbmVDb2xvciIsImZpZWxkUGFpcnMiLCJmb3JFYWNoIiwicGFpciIsImxhdEZpZWxkIiwibG5nRmllbGQiLCJsYXllck5hbWUiLCJkZWZhdWx0TmFtZSIsInByb3AiLCJ2YWx1ZSIsIkRFRkFVTFRfTEFZRVJfQ09MT1IiLCJpc1Zpc2libGUiLCJvcHRpb25hbCIsIkxheWVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOzs7Ozs7Ozs7O0FBRU8sSUFBTUEsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQjtBQUFBLE1BQUVDLEdBQUYsUUFBRUEsR0FBRjtBQUFBLE1BQU9DLEdBQVAsUUFBT0EsR0FB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QVMsQ0FBQzNGLE1BQVYsR0FBbUIyRixTQUFuQixHQUErQjtBQUQzQixTQUFiLENBTHlCLENBU3pCOztBQUNBLFlBQUlGLFFBQVEsQ0FBQ0ssS0FBVCxJQUFrQkMsb0NBQXRCLEVBQTJDO0FBQ3pDRixVQUFBQSxJQUFJLENBQUM5SCxLQUFMLEdBQWEsMEJBQVNnSSxxQ0FBb0JOLFFBQVEsQ0FBQ0ssS0FBN0IsQ0FBVCxDQUFiO0FBQ0QsU0Fad0IsQ0FjekI7OztBQUNBLFlBQUl2SSxLQUFLLENBQUN5QyxNQUFOLEtBQWlCLENBQXJCLEVBQXdCO0FBQ3RCNkYsVUFBQUEsSUFBSSxDQUFDRyxTQUFMLEdBQWlCLElBQWpCO0FBQ0Q7O0FBRURILFFBQUFBLElBQUksQ0FBQ2pJLE9BQUwsR0FBZTtBQUNibkMsVUFBQUEsR0FBRyxFQUFFZ0ssUUFEUTtBQUViL0osVUFBQUEsR0FBRyxFQUFFZ0ssUUFGUTtBQUdiL0osVUFBQUEsUUFBUSxFQUFFO0FBQUNtSyxZQUFBQSxLQUFLLEVBQUUsSUFBUjtBQUFjOUosWUFBQUEsUUFBUSxFQUFFLENBQUMsQ0FBekI7QUFBNEJpSyxZQUFBQSxRQUFRLEVBQUU7QUFBdEM7QUFIRyxTQUFmO0FBTUExSSxRQUFBQSxLQUFLLENBQUM4QyxJQUFOLENBQVd3RixJQUFYO0FBQ0QsT0ExQkQ7QUE0QkEsYUFBTztBQUFDdEksUUFBQUEsS0FBSyxFQUFMQTtBQUFELE9BQVA7QUFDRDs7O0VBMUlxQzJJLHFCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtCcnVzaGluZ0V4dGVuc2lvbn0gZnJvbSAnQGRlY2suZ2wvZXh0ZW5zaW9ucyc7XG5pbXBvcnQge1NjYXR0ZXJwbG90TGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5pbXBvcnQge0ljb25MYXllcn0gZnJvbSAnQGRlY2suZ2wvbGF5ZXJzJztcblxuaW1wb3J0IExheWVyIGZyb20gJy4uL2Jhc2UtbGF5ZXInO1xuaW1wb3J0IHtoZXhUb1JnYn0gZnJvbSAndXRpbHMvY29sb3ItdXRpbHMnO1xuaW1wb3J0IHtuZWdhdGVBY2Nlc3Nvcn0gZnJvbSAndXRpbHMvbGF5ZXItdXRpbHMnO1xuaW1wb3J0IHtmaW5kRGVmYXVsdENvbG9yRmllbGR9IGZyb20gJ3V0aWxzL2RhdGFzZXQtdXRpbHMnO1xuaW1wb3J0IFBvaW50TGF5ZXJJY29uIGZyb20gJy4vcG9pbnQtbGF5ZXItaWNvbic7XG5pbXBvcnQge0RFRkFVTFRfTEFZRVJfQ09MT1IsIENIQU5ORUxfU0NBTEVTLCBVTktOT1dOX0NPTE9SfSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5cbmltcG9ydCB7Zm9ybWF0VGV4dExhYmVsRGF0YX0gZnJvbSAnLi4vbGF5ZXItdGV4dC1sYWJlbCc7XG5cbmV4cG9ydCBjb25zdCBwb2ludFBvc0FjY2Vzc29yID0gKHtsYXQsIGxuZywgYWx0aXR1ZGV9KSA9PiBkYyA9PiBkID0+IFtcbiAgZGMudmFsdWVBdChkLmluZGV4LCBsbmcuZmllbGRJZHgpLFxuICBkYy52YWx1ZUF0KGQuaW5kZXgsIGxhdC5maWVsZElkeCksXG4gIGFsdGl0dWRlICYmIGFsdGl0dWRlLmZpZWxkSWR4ID4gLTEgPyBkYy52YWx1ZUF0KGQuaW5kZXgsIGFsdGl0dWRlLmZpZWxkSWR4KSA6IDBcbl07XG5cbmV4cG9ydCBjb25zdCBwb2ludFJlcXVpcmVkQ29sdW1ucyA9IFsnbGF0JywgJ2xuZyddO1xuZXhwb3J0IGNvbnN0IHBvaW50T3B0aW9uYWxDb2x1bW5zID0gWydhbHRpdHVkZSddO1xuXG5jb25zdCBicnVzaGluZ0V4dGVuc2lvbiA9IG5ldyBCcnVzaGluZ0V4dGVuc2lvbigpO1xuXG5leHBvcnQgY29uc3QgcG9pbnRWaXNDb25maWdzID0ge1xuICByYWRpdXM6ICdyYWRpdXMnLFxuICBjdXN0b21NYXJrZXJzOiAnY3VzdG9tTWFya2VycycsXG4gIGN1c3RvbU1hcmtlcnNVcmw6ICdjdXN0b21NYXJrZXJzVXJsJyxcbiAgY3VzdG9tTWFya2Vyc1JhbmdlOiAnY3VzdG9tTWFya2Vyc1JhbmdlJyxcbiAgb3BhY2l0eTogJ29wYWNpdHknLFxuICBvdXRsaW5lOiAnb3V0bGluZScsXG4gIHRoaWNrbmVzczogJ3RoaWNrbmVzcycsXG4gIHN0cm9rZUNvbG9yOiAnc3Ryb2tlQ29sb3InLFxuICBjb2xvclJhbmdlOiAnY29sb3JSYW5nZScsXG4gIHN0cm9rZUNvbG9yUmFuZ2U6ICdzdHJva2VDb2xvclJhbmdlJyxcbiAgcmFkaXVzUmFuZ2U6ICdyYWRpdXNSYW5nZScsXG4gIGZpbGxlZDoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBsYWJlbDogJ2xheWVyLmZpbGxDb2xvcicsXG4gICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgIHByb3BlcnR5OiAnZmlsbGVkJ1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQb2ludExheWVyIGV4dGVuZHMgTGF5ZXIge1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIHRoaXMucmVnaXN0ZXJWaXNDb25maWcocG9pbnRWaXNDb25maWdzKTtcbiAgICB0aGlzLmdldFBvc2l0aW9uQWNjZXNzb3IgPSBkYXRhQ29udGFpbmVyID0+XG4gICAgICBwb2ludFBvc0FjY2Vzc29yKHRoaXMuY29uZmlnLmNvbHVtbnMpKGRhdGFDb250YWluZXIpO1xuICB9XG5cbiAgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuICdwb2ludCc7XG4gIH1cblxuICBnZXQgaXNBZ2dyZWdhdGVkKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGdldCBsYXllckljb24oKSB7XG4gICAgcmV0dXJuIFBvaW50TGF5ZXJJY29uO1xuICB9XG4gIGdldCByZXF1aXJlZExheWVyQ29sdW1ucygpIHtcbiAgICByZXR1cm4gcG9pbnRSZXF1aXJlZENvbHVtbnM7XG4gIH1cblxuICBnZXQgb3B0aW9uYWxDb2x1bW5zKCkge1xuICAgIHJldHVybiBwb2ludE9wdGlvbmFsQ29sdW1ucztcbiAgfVxuXG4gIGdldCBjb2x1bW5QYWlycygpIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0UG9pbnRDb2x1bW5QYWlycztcbiAgfVxuXG4gIGdldCBub25lTGF5ZXJEYXRhQWZmZWN0aW5nUHJvcHMoKSB7XG4gICAgcmV0dXJuIFsuLi5zdXBlci5ub25lTGF5ZXJEYXRhQWZmZWN0aW5nUHJvcHMsICdyYWRpdXMnXTtcbiAgfVxuXG4gIGdldCB2aXN1YWxDaGFubmVscygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6IHtcbiAgICAgICAgLi4uc3VwZXIudmlzdWFsQ2hhbm5lbHMuY29sb3IsXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0RmlsbENvbG9yJyxcbiAgICAgICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLnZpc0NvbmZpZy5maWxsZWQsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogY29uZmlnID0+IGNvbmZpZy5jb2xvclxuICAgICAgfSxcbiAgICAgIHN0cm9rZUNvbG9yOiB7XG4gICAgICAgIHByb3BlcnR5OiAnc3Ryb2tlQ29sb3InLFxuICAgICAgICBrZXk6ICdzdHJva2VDb2xvcicsXG4gICAgICAgIGZpZWxkOiAnc3Ryb2tlQ29sb3JGaWVsZCcsXG4gICAgICAgIHNjYWxlOiAnc3Ryb2tlQ29sb3JTY2FsZScsXG4gICAgICAgIGRvbWFpbjogJ3N0cm9rZUNvbG9yRG9tYWluJyxcbiAgICAgICAgcmFuZ2U6ICdzdHJva2VDb2xvclJhbmdlJyxcbiAgICAgICAgY2hhbm5lbFNjYWxlVHlwZTogQ0hBTk5FTF9TQ0FMRVMuY29sb3IsXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0TGluZUNvbG9yJyxcbiAgICAgICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLnZpc0NvbmZpZy5vdXRsaW5lLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGNvbmZpZyA9PiBjb25maWcudmlzQ29uZmlnLnN0cm9rZUNvbG9yIHx8IGNvbmZpZy5jb2xvclxuICAgICAgfSxcbiAgICAgIHNpemU6IHtcbiAgICAgICAgLi4uc3VwZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZSxcbiAgICAgICAgcHJvcGVydHk6ICdyYWRpdXMnLFxuICAgICAgICByYW5nZTogJ3JhZGl1c1JhbmdlJyxcbiAgICAgICAgY2hhbm5lbFNjYWxlVHlwZTogJ3JhZGl1cycsXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0UmFkaXVzJyxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAxXG4gICAgICB9LFxuICAgICAgY3VzdG9tTWFya2Vyczoge1xuICAgICAgICBwcm9wZXJ0eTogJ2N1c3RvbU1hcmtlcnMnLFxuICAgICAgICBrZXk6ICdjdXN0b21NYXJrZXJzJyxcbiAgICAgICAgZmllbGQ6ICdjdXN0b21NYXJrZXJzRmllbGQnLFxuICAgICAgICBzY2FsZTogJ2N1c3RvbU1hcmtlcnNTY2FsZScsXG4gICAgICAgIGRvbWFpbjogJ2N1c3RvbU1hcmtlcnNEb21haW4nLFxuICAgICAgICByYW5nZTogJ2N1c3RvbU1hcmtlcnNSYW5nZScsXG4gICAgICAgIGZpeGVkOiAnY3VzdG9tTWFya2Vyc1VybCcsXG4gICAgICAgIGNoYW5uZWxTY2FsZVR5cGU6IENIQU5ORUxfU0NBTEVTLmN1c3RvbU1hcmtlcixcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRJY29uVXJsJyxcbiAgICAgICAgc3VwcG9ydGVkRmllbGRUeXBlczogWydzdHJpbmcnXSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBjb25maWcgPT4gY29uZmlnLnZpc0NvbmZpZy5jdXN0b21NYXJrZXJzVXJsLFxuICAgICAgICBjb25kaXRpb246IGNvbmZpZyA9PiBjb25maWcudmlzQ29uZmlnLmN1c3RvbU1hcmtlcnNcbiAgICAgIH0sXG4gICAgICByb3RhdGlvbjoge1xuICAgICAgICBwcm9wZXJ0eTogJ3JvdGF0aW9uJyxcbiAgICAgICAga2V5OiAncm90YXRpb24nLFxuICAgICAgICBmaWVsZDogJ3JvdGF0aW9uRmllbGQnLFxuICAgICAgICBjaGFubmVsU2NhbGVUeXBlOiBDSEFOTkVMX1NDQUxFUy5pZGVudGl0eSxcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRSb3RhdGlvbicsXG4gICAgICAgIHN1cHBvcnRlZEZpZWxkVHlwZXM6IFsnZmxvYXQnLCAnaW50ZWdlcicsICdyZWFsJywgJ251bWJlciddLFxuICAgICAgICBkZWZhdWx0VmFsdWU6ICgpID0+IDAsXG4gICAgICAgIG51bGxWYWx1ZTogMCxcbiAgICAgICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLnJvdGF0aW9uRmllbGRcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgc2V0SW5pdGlhbExheWVyQ29uZmlnKGRhdGFzZXQpIHtcbiAgICBjb25zdCBkZWZhdWx0Q29sb3JGaWVsZCA9IGZpbmREZWZhdWx0Q29sb3JGaWVsZChkYXRhc2V0KTtcblxuICAgIGlmIChkZWZhdWx0Q29sb3JGaWVsZCkge1xuICAgICAgdGhpcy51cGRhdGVMYXllckNvbmZpZyh7XG4gICAgICAgIGNvbG9yRmllbGQ6IGRlZmF1bHRDb2xvckZpZWxkXG4gICAgICB9KTtcbiAgICAgIHRoaXMudXBkYXRlTGF5ZXJWaXN1YWxDaGFubmVsKGRhdGFzZXQsICdjb2xvcicpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc3RhdGljIGZpbmREZWZhdWx0TGF5ZXJQcm9wcyh7ZmllbGRQYWlycyA9IFtdfSkge1xuICAgIGNvbnN0IHByb3BzID0gW107XG5cbiAgICAvLyBNYWtlIGxheWVyIGZvciBlYWNoIHBhaXJcbiAgICBmaWVsZFBhaXJzLmZvckVhY2gocGFpciA9PiB7XG4gICAgICBjb25zdCBsYXRGaWVsZCA9IHBhaXIucGFpci5sYXQ7XG4gICAgICBjb25zdCBsbmdGaWVsZCA9IHBhaXIucGFpci5sbmc7XG4gICAgICBjb25zdCBsYXllck5hbWUgPSBwYWlyLmRlZmF1bHROYW1lO1xuXG4gICAgICBjb25zdCBwcm9wID0ge1xuICAgICAgICBsYWJlbDogbGF5ZXJOYW1lLmxlbmd0aCA/IGxheWVyTmFtZSA6ICdQb2ludCdcbiAgICAgIH07XG5cbiAgICAgIC8vIGRlZmF1bHQgbGF5ZXIgY29sb3IgZm9yIGJlZ2ludHJpcCBhbmQgZHJvcG9mZiBwb2ludFxuICAgICAgaWYgKGxhdEZpZWxkLnZhbHVlIGluIERFRkFVTFRfTEFZRVJfQ09MT1IpIHtcbiAgICAgICAgcHJvcC5jb2xvciA9IGhleFRvUmdiKERFRkFVTFRfTEFZRVJfQ09MT1JbbGF0RmllbGQudmFsdWVdKTtcbiAgICAgIH1cblxuICAgICAgLy8gc2V0IHRoZSBmaXJzdCBsYXllciB0byBiZSB2aXNpYmxlXG4gICAgICBpZiAocHJvcHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHByb3AuaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcHJvcC5jb2x1bW5zID0ge1xuICAgICAgICBsYXQ6IGxhdEZpZWxkLFxuICAgICAgICBsbmc6IGxuZ0ZpZWxkLFxuICAgICAgICBhbHRpdHVkZToge3ZhbHVlOiBudWxsLCBmaWVsZElkeDogLTEsIG9wdGlvbmFsOiB0cnVlfVxuICAgICAgfTtcblxuICAgICAgcHJvcHMucHVzaChwcm9wKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7cHJvcHN9O1xuICB9XG5cbiAgZ2V0RGVmYXVsdExheWVyQ29uZmlnKHByb3BzID0ge30pIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIuZ2V0RGVmYXVsdExheWVyQ29uZmlnKHByb3BzKSxcblxuICAgICAgLy8gYWRkIHN0cm9rZSBjb2xvciB2aXN1YWwgY2hhbm5lbFxuICAgICAgc3Ryb2tlQ29sb3JGaWVsZDogbnVsbCxcbiAgICAgIHN0cm9rZUNvbG9yRG9tYWluOiBbMCwgMV0sXG4gICAgICBzdHJva2VDb2xvclNjYWxlOiAncXVhbnRpbGUnLFxuXG4gICAgICBjdXN0b21NYXJrZXJzRmllbGQ6IG51bGwsXG4gICAgICBjdXN0b21NYXJrZXJzU2NhbGU6ICdvcmRpbmFsJ1xuICAgIH07XG4gIH1cblxuICBjYWxjdWxhdGVEYXRhQXR0cmlidXRlKHtmaWx0ZXJlZEluZGV4fSwgZ2V0UG9zaXRpb24pIHtcbiAgICBjb25zdCBkYXRhID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbHRlcmVkSW5kZXgubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmlsdGVyZWRJbmRleFtpXTtcbiAgICAgIGNvbnN0IHBvcyA9IGdldFBvc2l0aW9uKHtpbmRleH0pO1xuXG4gICAgICAvLyBpZiBkb2Vzbid0IGhhdmUgcG9pbnQgbGF0IG9yIGxuZywgZG8gbm90IGFkZCB0aGUgcG9pbnRcbiAgICAgIC8vIGRlY2suZ2wgY2FuJ3QgaGFuZGxlIHBvc2l0aW9uID0gbnVsbFxuICAgICAgaWYgKHBvcy5ldmVyeShOdW1iZXIuaXNGaW5pdGUpKSB7XG4gICAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgICAgcG9zaXRpb246IHBvcyxcbiAgICAgICAgICBpbmRleFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBmb3JtYXRMYXllckRhdGEoZGF0YXNldHMsIG9sZExheWVyRGF0YSkge1xuICAgIGNvbnN0IHt0ZXh0TGFiZWx9ID0gdGhpcy5jb25maWc7XG4gICAgY29uc3Qge2dwdUZpbHRlciwgZGF0YUNvbnRhaW5lcn0gPSBkYXRhc2V0c1t0aGlzLmNvbmZpZy5kYXRhSWRdO1xuICAgIGNvbnN0IHtkYXRhLCB0cmlnZ2VyQ2hhbmdlZH0gPSB0aGlzLnVwZGF0ZURhdGEoZGF0YXNldHMsIG9sZExheWVyRGF0YSk7XG4gICAgY29uc3QgZ2V0UG9zaXRpb24gPSB0aGlzLmdldFBvc2l0aW9uQWNjZXNzb3IoZGF0YUNvbnRhaW5lcik7XG5cbiAgICAvLyBnZXQgYWxsIGRpc3RpbmN0IGNoYXJhY3RlcnMgaW4gdGhlIHRleHQgbGFiZWxzXG4gICAgY29uc3QgdGV4dExhYmVscyA9IGZvcm1hdFRleHRMYWJlbERhdGEoe3RleHRMYWJlbCwgZGF0YUNvbnRhaW5lcn0pO1xuXG4gICAgY29uc3QgYWNjZXNzb3JzID0gdGhpcy5nZXRBdHRyaWJ1dGVBY2Nlc3NvcnMoe2RhdGFDb250YWluZXJ9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhLFxuICAgICAgZ2V0UG9zaXRpb24sXG4gICAgICBnZXRGaWx0ZXJWYWx1ZTogZ3B1RmlsdGVyLmZpbHRlclZhbHVlQWNjZXNzb3IoZGF0YUNvbnRhaW5lcikoKSxcbiAgICAgIHRleHRMYWJlbHMsXG4gICAgICAuLi5hY2Nlc3NvcnNcbiAgICB9O1xuICB9XG4gIC8qIGVzbGludC1lbmFibGUgY29tcGxleGl0eSAqL1xuXG4gIHVwZGF0ZUxheWVyTWV0YShkYXRhQ29udGFpbmVyKSB7XG4gICAgY29uc3QgZ2V0UG9zaXRpb24gPSB0aGlzLmdldFBvc2l0aW9uQWNjZXNzb3IoZGF0YUNvbnRhaW5lcik7XG4gICAgY29uc3QgYm91bmRzID0gdGhpcy5nZXRQb2ludHNCb3VuZHMoZGF0YUNvbnRhaW5lciwgZ2V0UG9zaXRpb24pO1xuICAgIHRoaXMudXBkYXRlTWV0YSh7Ym91bmRzfSk7XG4gIH1cblxuICBpc0xheWVySG92ZXJlZChvYmplY3RJbmZvKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIChvYmplY3RJbmZvPy5waWNrZWQgJiYgb2JqZWN0SW5mbz8ubGF5ZXI/LnByb3BzPy5pZCA9PT0gdGhpcy5pZCkgfHxcbiAgICAgIG9iamVjdEluZm8/LmxheWVyPy5wcm9wcz8uaWQgPT09IGAke3RoaXMuaWR9LWljb25gXG4gICAgKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5LCBtYXgtc3RhdGVtZW50c1xuICByZW5kZXJMYXllcihvcHRzKSB7XG4gICAgY29uc3Qge2RhdGEsIGdwdUZpbHRlciwgb2JqZWN0SG92ZXJlZCwgaW50ZXJhY3Rpb25Db25maWd9ID0gb3B0cztcbiAgICBjb25zdCB7Y3VzdG9tTWFya2VycywgY3VzdG9tTWFya2Vyc1VybCwgY3VzdG9tTWFya2Vyc1JhbmdlfSA9IHRoaXMuY29uZmlnLnZpc0NvbmZpZztcblxuICAgIGNvbnN0IHJhZGl1c1NjYWxlID0gdGhpcy5nZXRSYWRpdXNTY2FsZSgpO1xuXG4gICAgY29uc3QgZGVmYXVsdExheWVyUHJvcHMgPSB0aGlzLmdldERlZmF1bHREZWNrTGF5ZXJQcm9wcyhvcHRzKTtcbiAgICBjb25zdCBicnVzaGluZ1Byb3BzID0gdGhpcy5nZXRCcnVzaGluZ0V4dGVuc2lvblByb3BzKGludGVyYWN0aW9uQ29uZmlnKTtcbiAgICBjb25zdCBleHRlbnNpb25zID0gWy4uLmRlZmF1bHRMYXllclByb3BzLmV4dGVuc2lvbnMsIGJydXNoaW5nRXh0ZW5zaW9uXTtcblxuICAgIGNvbnN0IHVwZGF0ZVRyaWdnZXJzID0ge1xuICAgICAgZ2V0UG9zaXRpb246IHRoaXMuY29uZmlnLmNvbHVtbnMsXG4gICAgICBnZXRGaWx0ZXJWYWx1ZTogZ3B1RmlsdGVyLmZpbHRlclZhbHVlVXBkYXRlVHJpZ2dlcnMsXG4gICAgICAuLi50aGlzLmdldFZpc3VhbENoYW5uZWxVcGRhdGVUcmlnZ2VycygpXG4gICAgfTtcblxuICAgIGNvbnN0IHNoYXJlZFByb3BzID0ge1xuICAgICAgZ2V0RmlsdGVyVmFsdWU6IGRhdGEuZ2V0RmlsdGVyVmFsdWUsXG4gICAgICBleHRlbnNpb25zLFxuICAgICAgZmlsdGVyUmFuZ2U6IGRlZmF1bHRMYXllclByb3BzLmZpbHRlclJhbmdlLFxuICAgICAgbWFza0lkOiBkZWZhdWx0TGF5ZXJQcm9wcy5tYXNrSWQsXG4gICAgICB2aXNpYmxlOiBkZWZhdWx0TGF5ZXJQcm9wcy52aXNpYmxlLFxuICAgICAgLi4uYnJ1c2hpbmdQcm9wc1xuICAgIH07XG4gICAgY29uc3QgaG92ZXJlZE9iamVjdCA9IHRoaXMuaGFzSG92ZXJlZE9iamVjdChvYmplY3RIb3ZlcmVkKTtcblxuICAgIGNvbnN0IHRleHRMYWJlbExheWVyID0gdGhpcy5yZW5kZXJUZXh0TGFiZWxMYXllcihcbiAgICAgIHtcbiAgICAgICAgZ2V0UG9zaXRpb246IGRhdGEuZ2V0UG9zaXRpb24sXG4gICAgICAgIHNoYXJlZFByb3BzLFxuICAgICAgICAvLyBUT0RPIHJlbW92ZSB0aGlzIHNjYWxpbmcgYnkgaGFsZiBoZXJlIGFuZCBlbHNld2hlcmVcbiAgICAgICAgcmFkaXVzU2NhbGU6IGN1c3RvbU1hcmtlcnMgPyByYWRpdXNTY2FsZSAvIDIgOiByYWRpdXNTY2FsZSxcbiAgICAgICAgZ2V0UmFkaXVzOiBkYXRhLmdldFJhZGl1cyxcbiAgICAgICAgdXBkYXRlVHJpZ2dlcnNcbiAgICAgIH0sXG4gICAgICBvcHRzXG4gICAgKTtcbiAgICBjb25zdCBjb21tb25MYXllclByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdExheWVyUHJvcHMsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIC8vIGNpcmNsZXMgd2lsbCBiZSBmbGF0IG9uIHRoZSBtYXAgd2hlbiB0aGUgYWx0aXR1ZGUgY29sdW1uIGlzIG5vdCB1c2VkXG4gICAgICAgIGRlcHRoVGVzdDogdGhpcy5jb25maWcuY29sdW1ucy5hbHRpdHVkZT8uZmllbGRJZHggPiAtMVxuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBjdXN0b21NYXJrZXJzRmllbGQgPSB0aGlzLmNvbmZpZy5jdXN0b21NYXJrZXJzRmllbGQ7XG4gICAgY29uc3QgY3VzdG9tTWFya2Vyc0NvbmZpZ3VyZWQgPVxuICAgICAgY3VzdG9tTWFya2VycyAmJiBCb29sZWFuKGN1c3RvbU1hcmtlcnNVcmwgfHwgKGN1c3RvbU1hcmtlcnNGaWVsZCAmJiBjdXN0b21NYXJrZXJzUmFuZ2UpKTtcbiAgICBjb25zdCBjdXN0b21NYXJrZXJzTWlzQ29uZmlndXJlZCA9IGN1c3RvbU1hcmtlcnMgJiYgIWN1c3RvbU1hcmtlcnNDb25maWd1cmVkO1xuXG4gICAgaWYgKGN1c3RvbU1hcmtlcnNDb25maWd1cmVkKSB7XG4gICAgICBjb25zdCBtYXhJY29uU2l6ZSA9IHRoaXMuZ2V0TWF4TWFya2VyU2l6ZSgpO1xuICAgICAgY29uc3QgdXNlTWFzayA9IEJvb2xlYW4odGhpcy5jb25maWcudmlzQ29uZmlnLmZpbGxlZCk7XG4gICAgICBjb25zdCBpY29uTGF5ZXJQcm9wcyA9IHtcbiAgICAgICAgZ2V0SWNvbjogdGhpcy5nZXRDdXN0b21NYXJrZXJJY29uQWNjZXNzb3IoZGF0YS5nZXRJY29uVXJsLCB1c2VNYXNrKSxcbiAgICAgICAgZ2V0UG9zaXRpb246IGRhdGEuZ2V0UG9zaXRpb24sXG4gICAgICAgIGdldFNpemU6IGRhdGEuZ2V0UmFkaXVzLFxuICAgICAgICBnZXRBbmdsZTogbmVnYXRlQWNjZXNzb3IoZGF0YS5nZXRSb3RhdGlvbiksXG4gICAgICAgIHNpemVTY2FsZTogcmFkaXVzU2NhbGUsXG4gICAgICAgIHNpemVVbml0czogJ3BpeGVscycsXG4gICAgICAgIGxvYWRPcHRpb25zOiB7XG4gICAgICAgICAgaW1hZ2U6IHtcbiAgICAgICAgICAgIHR5cGU6ICdpbWFnZWJpdG1hcCdcbiAgICAgICAgICB9LFxuICAgICAgICAgIGltYWdlYml0bWFwOiB7XG4gICAgICAgICAgICByZXNpemVXaWR0aDogbWF4SWNvblNpemUsXG4gICAgICAgICAgICByZXNpemVIZWlnaHQ6IG1heEljb25TaXplLFxuICAgICAgICAgICAgcmVzaXplUXVhbGl0eTogJ2hpZ2gnXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gW1xuICAgICAgICBuZXcgSWNvbkxheWVyKHtcbiAgICAgICAgICAuLi5jb21tb25MYXllclByb3BzLFxuICAgICAgICAgIC4uLmljb25MYXllclByb3BzLFxuICAgICAgICAgIGlkOiBgJHtkZWZhdWx0TGF5ZXJQcm9wcy5pZH0taWNvbmAsXG4gICAgICAgICAgZGF0YTogZGF0YS5kYXRhLFxuICAgICAgICAgIGdldENvbG9yOiB0aGlzLmNvbmZpZy52aXNDb25maWcuZmlsbGVkID8gZGF0YS5nZXRGaWxsQ29sb3IgOiBVTktOT1dOX0NPTE9SLFxuICAgICAgICAgIGdldEZpbHRlclZhbHVlOiBkYXRhLmdldEZpbHRlclZhbHVlLFxuICAgICAgICAgIHVwZGF0ZVRyaWdnZXJzOiB7XG4gICAgICAgICAgICBnZXRGaWx0ZXJWYWx1ZTogdXBkYXRlVHJpZ2dlcnMuZ2V0RmlsdGVyVmFsdWUsXG4gICAgICAgICAgICBnZXRDb2xvcjogey4uLnVwZGF0ZVRyaWdnZXJzLmdldEZpbGxDb2xvciwgZmlsbGVkOiB0aGlzLmNvbmZpZy52aXNDb25maWcuZmlsbGVkfSxcbiAgICAgICAgICAgIGdldEljb246IHsuLi51cGRhdGVUcmlnZ2Vycy5nZXRJY29uVXJsLCBtYXhJY29uU2l6ZSwgdXNlTWFza30sXG4gICAgICAgICAgICBnZXRTaXplOiB1cGRhdGVUcmlnZ2Vycy5nZXRSYWRpdXMsXG4gICAgICAgICAgICBnZXRBbmdsZTogdXBkYXRlVHJpZ2dlcnMuZ2V0Um90YXRpb25cbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICAuLi4oaG92ZXJlZE9iamVjdFxuICAgICAgICAgID8gW1xuICAgICAgICAgICAgICBuZXcgSWNvbkxheWVyKHtcbiAgICAgICAgICAgICAgICAuLi5pY29uTGF5ZXJQcm9wcyxcbiAgICAgICAgICAgICAgICAuLi50aGlzLmdldERlZmF1bHRIb3ZlckxheWVyUHJvcHMoKSxcbiAgICAgICAgICAgICAgICBpZDogYCR7ZGVmYXVsdExheWVyUHJvcHMuaWR9LWljb24taG92ZXJlZGAsXG4gICAgICAgICAgICAgICAgZGF0YTogW2hvdmVyZWRPYmplY3RdLFxuICAgICAgICAgICAgICAgIGdldENvbG9yOiB0aGlzLmNvbmZpZy5oaWdobGlnaHRDb2xvclxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgXVxuICAgICAgICAgIDogW10pLFxuICAgICAgICAuLi50ZXh0TGFiZWxMYXllclxuICAgICAgXTtcbiAgICB9XG5cbiAgICBjb25zdCBzY2F0dGVyUGxvdExheWVyUHJvcHMgPSB7XG4gICAgICBzdHJva2VkOiB0aGlzLmNvbmZpZy52aXNDb25maWcub3V0bGluZSxcbiAgICAgIGZpbGxlZDogdGhpcy5jb25maWcudmlzQ29uZmlnLmZpbGxlZCxcbiAgICAgIGxpbmVXaWR0aFNjYWxlOiB0aGlzLmNvbmZpZy52aXNDb25maWcudGhpY2tuZXNzLFxuICAgICAgLy8gVE9ETzogaW52ZW50IGJldHRlciB3YXkgdG8gcmVuZGVyIHNvbWV0aGluZyB3aGVuIGN1c3RvbU1hcmtlcnMgYXJlIG5vdCB5ZXQgY29uZmlndXJlZFxuICAgICAgcmFkaXVzU2NhbGU6IGN1c3RvbU1hcmtlcnNNaXNDb25maWd1cmVkID8gcmFkaXVzU2NhbGUgLyAyIDogcmFkaXVzU2NhbGUsXG4gICAgICByYWRpdXNNYXhQaXhlbHM6IDUwMFxuICAgIH07XG5cbiAgICByZXR1cm4gW1xuICAgICAgbmV3IFNjYXR0ZXJwbG90TGF5ZXIoe1xuICAgICAgICAuLi5icnVzaGluZ1Byb3BzLFxuICAgICAgICAuLi5kYXRhLFxuICAgICAgICAuLi5jb21tb25MYXllclByb3BzLFxuICAgICAgICAuLi5zY2F0dGVyUGxvdExheWVyUHJvcHMsXG4gICAgICAgIHJhZGl1c1VuaXRzOiAncGl4ZWxzJyxcbiAgICAgICAgbGluZVdpZHRoVW5pdHM6ICdwaXhlbHMnLFxuICAgICAgICB1cGRhdGVUcmlnZ2VycyxcbiAgICAgICAgZXh0ZW5zaW9uc1xuICAgICAgfSksXG4gICAgICAvLyBob3ZlciBsYXllclxuICAgICAgLi4uKGhvdmVyZWRPYmplY3RcbiAgICAgICAgPyBbXG4gICAgICAgICAgICBuZXcgU2NhdHRlcnBsb3RMYXllcih7XG4gICAgICAgICAgICAgIC4uLnRoaXMuZ2V0RGVmYXVsdEhvdmVyTGF5ZXJQcm9wcygpLFxuICAgICAgICAgICAgICAuLi5zY2F0dGVyUGxvdExheWVyUHJvcHMsXG4gICAgICAgICAgICAgIGRhdGE6IFtob3ZlcmVkT2JqZWN0XSxcbiAgICAgICAgICAgICAgZ2V0TGluZUNvbG9yOiB0aGlzLmNvbmZpZy5oaWdobGlnaHRDb2xvcixcbiAgICAgICAgICAgICAgZ2V0RmlsbENvbG9yOiB0aGlzLmNvbmZpZy5oaWdobGlnaHRDb2xvcixcbiAgICAgICAgICAgICAgZ2V0UmFkaXVzOiBkYXRhLmdldFJhZGl1cyxcbiAgICAgICAgICAgICAgZ2V0UG9zaXRpb246IGRhdGEuZ2V0UG9zaXRpb25cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgXVxuICAgICAgICA6IFtdKSxcbiAgICAgIC8vIHRleHQgbGFiZWwgbGF5ZXJcbiAgICAgIC4uLnRleHRMYWJlbExheWVyXG4gICAgXTtcbiAgfVxufVxuIl19
476
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvcG9pbnQtbGF5ZXIvcG9pbnQtbGF5ZXIuanMiXSwibmFtZXMiOlsicG9pbnRQb3NBY2Nlc3NvciIsImxhdCIsImxuZyIsImFsdGl0dWRlIiwiZGMiLCJkIiwidmFsdWVBdCIsImluZGV4IiwiZmllbGRJZHgiLCJwb2ludFJlcXVpcmVkQ29sdW1ucyIsInBvaW50T3B0aW9uYWxDb2x1bW5zIiwiYnJ1c2hpbmdFeHRlbnNpb24iLCJCcnVzaGluZ0V4dGVuc2lvbiIsInBvaW50VmlzQ29uZmlncyIsInJhZGl1cyIsImN1c3RvbU1hcmtlcnMiLCJjdXN0b21NYXJrZXJzVXJsIiwiY3VzdG9tTWFya2Vyc1JhbmdlIiwib3BhY2l0eSIsIm91dGxpbmUiLCJ0aGlja25lc3MiLCJzdHJva2VDb2xvciIsImNvbG9yUmFuZ2UiLCJzdHJva2VDb2xvclJhbmdlIiwicmFkaXVzUmFuZ2UiLCJmaWxsZWQiLCJ0eXBlIiwibGFiZWwiLCJkZWZhdWx0VmFsdWUiLCJwcm9wZXJ0eSIsIlBvaW50TGF5ZXIiLCJwcm9wcyIsInJlZ2lzdGVyVmlzQ29uZmlnIiwiZ2V0UG9zaXRpb25BY2Nlc3NvciIsImRhdGFDb250YWluZXIiLCJjb25maWciLCJjb2x1bW5zIiwiUG9pbnRMYXllckljb24iLCJkZWZhdWx0UG9pbnRDb2x1bW5QYWlycyIsImNvbG9yIiwiYWNjZXNzb3IiLCJjb25kaXRpb24iLCJ2aXNDb25maWciLCJrZXkiLCJmaWVsZCIsInNjYWxlIiwiZG9tYWluIiwicmFuZ2UiLCJjaGFubmVsU2NhbGVUeXBlIiwiQ0hBTk5FTF9TQ0FMRVMiLCJzaXplIiwiZml4ZWQiLCJjdXN0b21NYXJrZXIiLCJzdXBwb3J0ZWRGaWVsZFR5cGVzIiwicm90YXRpb24iLCJpZGVudGl0eSIsIm51bGxWYWx1ZSIsInJvdGF0aW9uRmllbGQiLCJkYXRhc2V0IiwiZGVmYXVsdENvbG9yRmllbGQiLCJ1cGRhdGVMYXllckNvbmZpZyIsImNvbG9yRmllbGQiLCJ1cGRhdGVMYXllclZpc3VhbENoYW5uZWwiLCJzdHJva2VDb2xvckZpZWxkIiwic3Ryb2tlQ29sb3JEb21haW4iLCJzdHJva2VDb2xvclNjYWxlIiwiY3VzdG9tTWFya2Vyc0ZpZWxkIiwiY3VzdG9tTWFya2Vyc1NjYWxlIiwiZ2V0UG9zaXRpb24iLCJmaWx0ZXJlZEluZGV4IiwiZGF0YSIsImkiLCJsZW5ndGgiLCJwb3MiLCJldmVyeSIsIk51bWJlciIsImlzRmluaXRlIiwicHVzaCIsInBvc2l0aW9uIiwiZGF0YXNldHMiLCJvbGRMYXllckRhdGEiLCJ0ZXh0TGFiZWwiLCJkYXRhSWQiLCJncHVGaWx0ZXIiLCJ1cGRhdGVEYXRhIiwidHJpZ2dlckNoYW5nZWQiLCJ0ZXh0TGFiZWxzIiwiYWNjZXNzb3JzIiwiZ2V0QXR0cmlidXRlQWNjZXNzb3JzIiwiZ2V0RmlsdGVyVmFsdWUiLCJmaWx0ZXJWYWx1ZUFjY2Vzc29yIiwiYm91bmRzIiwiZ2V0UG9pbnRzQm91bmRzIiwidXBkYXRlTWV0YSIsIm9iamVjdEluZm8iLCJwaWNrZWQiLCJsYXllciIsImlkIiwib3B0cyIsIm9iamVjdEhvdmVyZWQiLCJpbnRlcmFjdGlvbkNvbmZpZyIsInJhZGl1c1NjYWxlIiwiZ2V0UmFkaXVzU2NhbGUiLCJkZWZhdWx0TGF5ZXJQcm9wcyIsImdldERlZmF1bHREZWNrTGF5ZXJQcm9wcyIsImJydXNoaW5nUHJvcHMiLCJnZXRCcnVzaGluZ0V4dGVuc2lvblByb3BzIiwiZ2V0UGl4ZWxPZmZzZXQiLCJnZXRSYWRpdXMiLCJleHRlbnNpb25zIiwidXBkYXRlVHJpZ2dlcnMiLCJmaWx0ZXJWYWx1ZVVwZGF0ZVRyaWdnZXJzIiwiZ2V0VmlzdWFsQ2hhbm5lbFVwZGF0ZVRyaWdnZXJzIiwic2hhcmVkUHJvcHMiLCJmaWx0ZXJSYW5nZSIsInZpc2libGUiLCJob3ZlcmVkT2JqZWN0IiwiaGFzSG92ZXJlZE9iamVjdCIsInRleHRMYWJlbExheWVyIiwicmVuZGVyVGV4dExhYmVsTGF5ZXIiLCJjb21tb25MYXllclByb3BzIiwicGFyYW1ldGVycyIsImRlcHRoVGVzdCIsImN1c3RvbU1hcmtlcnNDb25maWd1cmVkIiwiQm9vbGVhbiIsImN1c3RvbU1hcmtlcnNNaXNDb25maWd1cmVkIiwibWF4SWNvblNpemUiLCJnZXRNYXhNYXJrZXJTaXplIiwidXNlTWFzayIsImljb25MYXllclByb3BzIiwiZ2V0SWNvbiIsImdldEN1c3RvbU1hcmtlckljb25BY2Nlc3NvciIsImdldEljb25VcmwiLCJnZXRTaXplIiwiZ2V0QW5nbGUiLCJnZXRSb3RhdGlvbiIsInNpemVTY2FsZSIsInNpemVVbml0cyIsImxvYWRPcHRpb25zIiwiaW1hZ2UiLCJpbWFnZWJpdG1hcCIsInJlc2l6ZVdpZHRoIiwicmVzaXplSGVpZ2h0IiwicmVzaXplUXVhbGl0eSIsIkljb25MYXllciIsImdldENvbG9yIiwiZ2V0RmlsbENvbG9yIiwiVU5LTk9XTl9DT0xPUiIsImdldERlZmF1bHRIb3ZlckxheWVyUHJvcHMiLCJoaWdobGlnaHRDb2xvciIsInNjYXR0ZXJQbG90TGF5ZXJQcm9wcyIsInN0cm9rZWQiLCJsaW5lV2lkdGhTY2FsZSIsInJhZGl1c01heFBpeGVscyIsIlNjYXR0ZXJwbG90TGF5ZXIiLCJyYWRpdXNVbml0cyIsImxpbmVXaWR0aFVuaXRzIiwiZ2V0TGluZUNvbG9yIiwiZmllbGRQYWlycyIsImZvckVhY2giLCJwYWlyIiwibGF0RmllbGQiLCJsbmdGaWVsZCIsImxheWVyTmFtZSIsImRlZmF1bHROYW1lIiwicHJvcCIsInZhbHVlIiwiREVGQVVMVF9MQVlFUl9DT0xPUiIsImlzVmlzaWJsZSIsIm9wdGlvbmFsIiwiTGF5ZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7Ozs7Ozs7Ozs7QUFFTyxJQUFNQSxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQW1CO0FBQUEsTUFBRUMsR0FBRixRQUFFQSxHQUFGO0FBQUEsTUFBT0MsR0FBUCxR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SSxDQUFDSSxXQUF2QjtBQUVBLFlBQU1DLElBQUksR0FBRztBQUNYMUksVUFBQUEsS0FBSyxFQUFFd0ksU0FBUyxDQUFDM0YsTUFBVixHQUFtQjJGLFNBQW5CLEdBQStCO0FBRDNCLFNBQWIsQ0FMeUIsQ0FTekI7O0FBQ0EsWUFBSUYsUUFBUSxDQUFDSyxLQUFULElBQWtCQyxvQ0FBdEIsRUFBMkM7QUFDekNGLFVBQUFBLElBQUksQ0FBQzlILEtBQUwsR0FBYSwwQkFBU2dJLHFDQUFvQk4sUUFBUSxDQUFDSyxLQUE3QixDQUFULENBQWI7QUFDRCxTQVp3QixDQWN6Qjs7O0FBQ0EsWUFBSXZJLEtBQUssQ0FBQ3lDLE1BQU4sS0FBaUIsQ0FBckIsRUFBd0I7QUFDdEI2RixVQUFBQSxJQUFJLENBQUNHLFNBQUwsR0FBaUIsSUFBakI7QUFDRDs7QUFFREgsUUFBQUEsSUFBSSxDQUFDakksT0FBTCxHQUFlO0FBQ2JuQyxVQUFBQSxHQUFHLEVBQUVnSyxRQURRO0FBRWIvSixVQUFBQSxHQUFHLEVBQUVnSyxRQUZRO0FBR2IvSixVQUFBQSxRQUFRLEVBQUU7QUFBQ21LLFlBQUFBLEtBQUssRUFBRSxJQUFSO0FBQWM5SixZQUFBQSxRQUFRLEVBQUUsQ0FBQyxDQUF6QjtBQUE0QmlLLFlBQUFBLFFBQVEsRUFBRTtBQUF0QztBQUhHLFNBQWY7QUFNQTFJLFFBQUFBLEtBQUssQ0FBQzhDLElBQU4sQ0FBV3dGLElBQVg7QUFDRCxPQTFCRDtBQTRCQSxhQUFPO0FBQUN0SSxRQUFBQSxLQUFLLEVBQUxBO0FBQUQsT0FBUDtBQUNEOzs7RUExSXFDMkkscUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge0JydXNoaW5nRXh0ZW5zaW9ufSBmcm9tICdAZGVjay5nbC9leHRlbnNpb25zJztcbmltcG9ydCB7U2NhdHRlcnBsb3RMYXllcn0gZnJvbSAnQGRlY2suZ2wvbGF5ZXJzJztcbmltcG9ydCB7SWNvbkxheWVyfSBmcm9tICdAZGVjay5nbC9sYXllcnMnO1xuXG5pbXBvcnQgTGF5ZXIgZnJvbSAnLi4vYmFzZS1sYXllcic7XG5pbXBvcnQge2hleFRvUmdifSBmcm9tICd1dGlscy9jb2xvci11dGlscyc7XG5pbXBvcnQge25lZ2F0ZUFjY2Vzc29yfSBmcm9tICd1dGlscy9sYXllci11dGlscyc7XG5pbXBvcnQge2ZpbmREZWZhdWx0Q29sb3JGaWVsZH0gZnJvbSAndXRpbHMvZGF0YXNldC11dGlscyc7XG5pbXBvcnQgUG9pbnRMYXllckljb24gZnJvbSAnLi9wb2ludC1sYXllci1pY29uJztcbmltcG9ydCB7REVGQVVMVF9MQVlFUl9DT0xPUiwgQ0hBTk5FTF9TQ0FMRVMsIFVOS05PV05fQ09MT1J9IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcblxuaW1wb3J0IHtnZXRUZXh0T2Zmc2V0QnlSYWRpdXMsIGZvcm1hdFRleHRMYWJlbERhdGF9IGZyb20gJy4uL2xheWVyLXRleHQtbGFiZWwnO1xuXG5leHBvcnQgY29uc3QgcG9pbnRQb3NBY2Nlc3NvciA9ICh7bGF0LCBsbmcsIGFsdGl0dWRlfSkgPT4gZGMgPT4gZCA9PiBbXG4gIGRjLnZhbHVlQXQoZC5pbmRleCwgbG5nLmZpZWxkSWR4KSxcbiAgZGMudmFsdWVBdChkLmluZGV4LCBsYXQuZmllbGRJZHgpLFxuICBhbHRpdHVkZSAmJiBhbHRpdHVkZS5maWVsZElkeCA+IC0xID8gZGMudmFsdWVBdChkLmluZGV4LCBhbHRpdHVkZS5maWVsZElkeCkgOiAwXG5dO1xuXG5leHBvcnQgY29uc3QgcG9pbnRSZXF1aXJlZENvbHVtbnMgPSBbJ2xhdCcsICdsbmcnXTtcbmV4cG9ydCBjb25zdCBwb2ludE9wdGlvbmFsQ29sdW1ucyA9IFsnYWx0aXR1ZGUnXTtcblxuY29uc3QgYnJ1c2hpbmdFeHRlbnNpb24gPSBuZXcgQnJ1c2hpbmdFeHRlbnNpb24oKTtcblxuZXhwb3J0IGNvbnN0IHBvaW50VmlzQ29uZmlncyA9IHtcbiAgcmFkaXVzOiAncmFkaXVzJyxcbiAgY3VzdG9tTWFya2VyczogJ2N1c3RvbU1hcmtlcnMnLFxuICBjdXN0b21NYXJrZXJzVXJsOiAnY3VzdG9tTWFya2Vyc1VybCcsXG4gIGN1c3RvbU1hcmtlcnNSYW5nZTogJ2N1c3RvbU1hcmtlcnNSYW5nZScsXG4gIG9wYWNpdHk6ICdvcGFjaXR5JyxcbiAgb3V0bGluZTogJ291dGxpbmUnLFxuICB0aGlja25lc3M6ICd0aGlja25lc3MnLFxuICBzdHJva2VDb2xvcjogJ3N0cm9rZUNvbG9yJyxcbiAgY29sb3JSYW5nZTogJ2NvbG9yUmFuZ2UnLFxuICBzdHJva2VDb2xvclJhbmdlOiAnc3Ryb2tlQ29sb3JSYW5nZScsXG4gIHJhZGl1c1JhbmdlOiAncmFkaXVzUmFuZ2UnLFxuICBmaWxsZWQ6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgbGFiZWw6ICdsYXllci5maWxsQ29sb3InLFxuICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICBwcm9wZXJ0eTogJ2ZpbGxlZCdcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9pbnRMYXllciBleHRlbmRzIExheWVyIHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyVmlzQ29uZmlnKHBvaW50VmlzQ29uZmlncyk7XG4gICAgdGhpcy5nZXRQb3NpdGlvbkFjY2Vzc29yID0gZGF0YUNvbnRhaW5lciA9PlxuICAgICAgcG9pbnRQb3NBY2Nlc3Nvcih0aGlzLmNvbmZpZy5jb2x1bW5zKShkYXRhQ29udGFpbmVyKTtcbiAgfVxuXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiAncG9pbnQnO1xuICB9XG5cbiAgZ2V0IGlzQWdncmVnYXRlZCgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXQgbGF5ZXJJY29uKCkge1xuICAgIHJldHVybiBQb2ludExheWVySWNvbjtcbiAgfVxuICBnZXQgcmVxdWlyZWRMYXllckNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIHBvaW50UmVxdWlyZWRDb2x1bW5zO1xuICB9XG5cbiAgZ2V0IG9wdGlvbmFsQ29sdW1ucygpIHtcbiAgICByZXR1cm4gcG9pbnRPcHRpb25hbENvbHVtbnM7XG4gIH1cblxuICBnZXQgY29sdW1uUGFpcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFBvaW50Q29sdW1uUGFpcnM7XG4gIH1cblxuICBnZXQgbm9uZUxheWVyRGF0YUFmZmVjdGluZ1Byb3BzKCkge1xuICAgIHJldHVybiBbLi4uc3VwZXIubm9uZUxheWVyRGF0YUFmZmVjdGluZ1Byb3BzLCAncmFkaXVzJ107XG4gIH1cblxuICBnZXQgdmlzdWFsQ2hhbm5lbHMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiB7XG4gICAgICAgIC4uLnN1cGVyLnZpc3VhbENoYW5uZWxzLmNvbG9yLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldEZpbGxDb2xvcicsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcuZmlsbGVkLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGNvbmZpZyA9PiBjb25maWcuY29sb3JcbiAgICAgIH0sXG4gICAgICBzdHJva2VDb2xvcjoge1xuICAgICAgICBwcm9wZXJ0eTogJ3N0cm9rZUNvbG9yJyxcbiAgICAgICAga2V5OiAnc3Ryb2tlQ29sb3InLFxuICAgICAgICBmaWVsZDogJ3N0cm9rZUNvbG9yRmllbGQnLFxuICAgICAgICBzY2FsZTogJ3N0cm9rZUNvbG9yU2NhbGUnLFxuICAgICAgICBkb21haW46ICdzdHJva2VDb2xvckRvbWFpbicsXG4gICAgICAgIHJhbmdlOiAnc3Ryb2tlQ29sb3JSYW5nZScsXG4gICAgICAgIGNoYW5uZWxTY2FsZVR5cGU6IENIQU5ORUxfU0NBTEVTLmNvbG9yLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldExpbmVDb2xvcicsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcub3V0bGluZSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBjb25maWcgPT4gY29uZmlnLnZpc0NvbmZpZy5zdHJva2VDb2xvciB8fCBjb25maWcuY29sb3JcbiAgICAgIH0sXG4gICAgICBzaXplOiB7XG4gICAgICAgIC4uLnN1cGVyLnZpc3VhbENoYW5uZWxzLnNpemUsXG4gICAgICAgIHByb3BlcnR5OiAncmFkaXVzJyxcbiAgICAgICAgcmFuZ2U6ICdyYWRpdXNSYW5nZScsXG4gICAgICAgIGNoYW5uZWxTY2FsZVR5cGU6ICdyYWRpdXMnLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldFJhZGl1cycsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogMVxuICAgICAgfSxcbiAgICAgIGN1c3RvbU1hcmtlcnM6IHtcbiAgICAgICAgcHJvcGVydHk6ICdjdXN0b21NYXJrZXJzJyxcbiAgICAgICAga2V5OiAnY3VzdG9tTWFya2VycycsXG4gICAgICAgIGZpZWxkOiAnY3VzdG9tTWFya2Vyc0ZpZWxkJyxcbiAgICAgICAgc2NhbGU6ICdjdXN0b21NYXJrZXJzU2NhbGUnLFxuICAgICAgICBkb21haW46ICdjdXN0b21NYXJrZXJzRG9tYWluJyxcbiAgICAgICAgcmFuZ2U6ICdjdXN0b21NYXJrZXJzUmFuZ2UnLFxuICAgICAgICBmaXhlZDogJ2N1c3RvbU1hcmtlcnNVcmwnLFxuICAgICAgICBjaGFubmVsU2NhbGVUeXBlOiBDSEFOTkVMX1NDQUxFUy5jdXN0b21NYXJrZXIsXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0SWNvblVybCcsXG4gICAgICAgIHN1cHBvcnRlZEZpZWxkVHlwZXM6IFsnc3RyaW5nJ10sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcuY3VzdG9tTWFya2Vyc1VybCxcbiAgICAgICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLnZpc0NvbmZpZy5jdXN0b21NYXJrZXJzXG4gICAgICB9LFxuICAgICAgcm90YXRpb246IHtcbiAgICAgICAgcHJvcGVydHk6ICdyb3RhdGlvbicsXG4gICAgICAgIGtleTogJ3JvdGF0aW9uJyxcbiAgICAgICAgZmllbGQ6ICdyb3RhdGlvbkZpZWxkJyxcbiAgICAgICAgY2hhbm5lbFNjYWxlVHlwZTogQ0hBTk5FTF9TQ0FMRVMuaWRlbnRpdHksXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0Um90YXRpb24nLFxuICAgICAgICBzdXBwb3J0ZWRGaWVsZFR5cGVzOiBbJ2Zsb2F0JywgJ2ludGVnZXInLCAncmVhbCcsICdudW1iZXInXSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAoKSA9PiAwLFxuICAgICAgICBudWxsVmFsdWU6IDAsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy5yb3RhdGlvbkZpZWxkXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHNldEluaXRpYWxMYXllckNvbmZpZyhkYXRhc2V0KSB7XG4gICAgY29uc3QgZGVmYXVsdENvbG9yRmllbGQgPSBmaW5kRGVmYXVsdENvbG9yRmllbGQoZGF0YXNldCk7XG5cbiAgICBpZiAoZGVmYXVsdENvbG9yRmllbGQpIHtcbiAgICAgIHRoaXMudXBkYXRlTGF5ZXJDb25maWcoe1xuICAgICAgICBjb2xvckZpZWxkOiBkZWZhdWx0Q29sb3JGaWVsZFxuICAgICAgfSk7XG4gICAgICB0aGlzLnVwZGF0ZUxheWVyVmlzdWFsQ2hhbm5lbChkYXRhc2V0LCAnY29sb3InKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHN0YXRpYyBmaW5kRGVmYXVsdExheWVyUHJvcHMoe2ZpZWxkUGFpcnMgPSBbXX0pIHtcbiAgICBjb25zdCBwcm9wcyA9IFtdO1xuXG4gICAgLy8gTWFrZSBsYXllciBmb3IgZWFjaCBwYWlyXG4gICAgZmllbGRQYWlycy5mb3JFYWNoKHBhaXIgPT4ge1xuICAgICAgY29uc3QgbGF0RmllbGQgPSBwYWlyLnBhaXIubGF0O1xuICAgICAgY29uc3QgbG5nRmllbGQgPSBwYWlyLnBhaXIubG5nO1xuICAgICAgY29uc3QgbGF5ZXJOYW1lID0gcGFpci5kZWZhdWx0TmFtZTtcblxuICAgICAgY29uc3QgcHJvcCA9IHtcbiAgICAgICAgbGFiZWw6IGxheWVyTmFtZS5sZW5ndGggPyBsYXllck5hbWUgOiAnUG9pbnQnXG4gICAgICB9O1xuXG4gICAgICAvLyBkZWZhdWx0IGxheWVyIGNvbG9yIGZvciBiZWdpbnRyaXAgYW5kIGRyb3BvZmYgcG9pbnRcbiAgICAgIGlmIChsYXRGaWVsZC52YWx1ZSBpbiBERUZBVUxUX0xBWUVSX0NPTE9SKSB7XG4gICAgICAgIHByb3AuY29sb3IgPSBoZXhUb1JnYihERUZBVUxUX0xBWUVSX0NPTE9SW2xhdEZpZWxkLnZhbHVlXSk7XG4gICAgICB9XG5cbiAgICAgIC8vIHNldCB0aGUgZmlyc3QgbGF5ZXIgdG8gYmUgdmlzaWJsZVxuICAgICAgaWYgKHByb3BzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBwcm9wLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHByb3AuY29sdW1ucyA9IHtcbiAgICAgICAgbGF0OiBsYXRGaWVsZCxcbiAgICAgICAgbG5nOiBsbmdGaWVsZCxcbiAgICAgICAgYWx0aXR1ZGU6IHt2YWx1ZTogbnVsbCwgZmllbGRJZHg6IC0xLCBvcHRpb25hbDogdHJ1ZX1cbiAgICAgIH07XG5cbiAgICAgIHByb3BzLnB1c2gocHJvcCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge3Byb3BzfTtcbiAgfVxuXG4gIGdldERlZmF1bHRMYXllckNvbmZpZyhwcm9wcyA9IHt9KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLmdldERlZmF1bHRMYXllckNvbmZpZyhwcm9wcyksXG5cbiAgICAgIC8vIGFkZCBzdHJva2UgY29sb3IgdmlzdWFsIGNoYW5uZWxcbiAgICAgIHN0cm9rZUNvbG9yRmllbGQ6IG51bGwsXG4gICAgICBzdHJva2VDb2xvckRvbWFpbjogWzAsIDFdLFxuICAgICAgc3Ryb2tlQ29sb3JTY2FsZTogJ3F1YW50aWxlJyxcblxuICAgICAgY3VzdG9tTWFya2Vyc0ZpZWxkOiBudWxsLFxuICAgICAgY3VzdG9tTWFya2Vyc1NjYWxlOiAnb3JkaW5hbCdcbiAgICB9O1xuICB9XG5cbiAgY2FsY3VsYXRlRGF0YUF0dHJpYnV0ZSh7ZmlsdGVyZWRJbmRleH0sIGdldFBvc2l0aW9uKSB7XG4gICAgY29uc3QgZGF0YSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWx0ZXJlZEluZGV4Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBpbmRleCA9IGZpbHRlcmVkSW5kZXhbaV07XG4gICAgICBjb25zdCBwb3MgPSBnZXRQb3NpdGlvbih7aW5kZXh9KTtcblxuICAgICAgLy8gaWYgZG9lc24ndCBoYXZlIHBvaW50IGxhdCBvciBsbmcsIGRvIG5vdCBhZGQgdGhlIHBvaW50XG4gICAgICAvLyBkZWNrLmdsIGNhbid0IGhhbmRsZSBwb3NpdGlvbiA9IG51bGxcbiAgICAgIGlmIChwb3MuZXZlcnkoTnVtYmVyLmlzRmluaXRlKSkge1xuICAgICAgICBkYXRhLnB1c2goe1xuICAgICAgICAgIHBvc2l0aW9uOiBwb3MsXG4gICAgICAgICAgaW5kZXhcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgZm9ybWF0TGF5ZXJEYXRhKGRhdGFzZXRzLCBvbGRMYXllckRhdGEpIHtcbiAgICBjb25zdCB7dGV4dExhYmVsfSA9IHRoaXMuY29uZmlnO1xuICAgIGNvbnN0IHtncHVGaWx0ZXIsIGRhdGFDb250YWluZXJ9ID0gZGF0YXNldHNbdGhpcy5jb25maWcuZGF0YUlkXTtcbiAgICBjb25zdCB7ZGF0YSwgdHJpZ2dlckNoYW5nZWR9ID0gdGhpcy51cGRhdGVEYXRhKGRhdGFzZXRzLCBvbGRMYXllckRhdGEpO1xuICAgIGNvbnN0IGdldFBvc2l0aW9uID0gdGhpcy5nZXRQb3NpdGlvbkFjY2Vzc29yKGRhdGFDb250YWluZXIpO1xuXG4gICAgLy8gZ2V0IGFsbCBkaXN0aW5jdCBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0IGxhYmVsc1xuICAgIGNvbnN0IHRleHRMYWJlbHMgPSBmb3JtYXRUZXh0TGFiZWxEYXRhKHtcbiAgICAgIHRleHRMYWJlbCxcbiAgICAgIHRyaWdnZXJDaGFuZ2VkLFxuICAgICAgb2xkTGF5ZXJEYXRhLFxuICAgICAgZGF0YSxcbiAgICAgIGRhdGFDb250YWluZXJcbiAgICB9KTtcblxuICAgIGNvbnN0IGFjY2Vzc29ycyA9IHRoaXMuZ2V0QXR0cmlidXRlQWNjZXNzb3JzKHtkYXRhQ29udGFpbmVyfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGdldFBvc2l0aW9uLFxuICAgICAgZ2V0RmlsdGVyVmFsdWU6IGdwdUZpbHRlci5maWx0ZXJWYWx1ZUFjY2Vzc29yKGRhdGFDb250YWluZXIpKCksXG4gICAgICB0ZXh0TGFiZWxzLFxuICAgICAgLi4uYWNjZXNzb3JzXG4gICAgfTtcbiAgfVxuICAvKiBlc2xpbnQtZW5hYmxlIGNvbXBsZXhpdHkgKi9cblxuICB1cGRhdGVMYXllck1ldGEoZGF0YUNvbnRhaW5lcikge1xuICAgIGNvbnN0IGdldFBvc2l0aW9uID0gdGhpcy5nZXRQb3NpdGlvbkFjY2Vzc29yKGRhdGFDb250YWluZXIpO1xuICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMuZ2V0UG9pbnRzQm91bmRzKGRhdGFDb250YWluZXIsIGdldFBvc2l0aW9uKTtcbiAgICB0aGlzLnVwZGF0ZU1ldGEoe2JvdW5kc30pO1xuICB9XG5cbiAgaXNMYXllckhvdmVyZWQob2JqZWN0SW5mbykge1xuICAgIHJldHVybiAoXG4gICAgICAob2JqZWN0SW5mbz8ucGlja2VkICYmIG9iamVjdEluZm8/LmxheWVyPy5wcm9wcz8uaWQgPT09IHRoaXMuaWQpIHx8XG4gICAgICBvYmplY3RJbmZvPy5sYXllcj8ucHJvcHM/LmlkID09PSBgJHt0aGlzLmlkfS1pY29uYFxuICAgICk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eSwgbWF4LXN0YXRlbWVudHNcbiAgcmVuZGVyTGF5ZXIob3B0cykge1xuICAgIGNvbnN0IHtkYXRhLCBncHVGaWx0ZXIsIG9iamVjdEhvdmVyZWQsIGludGVyYWN0aW9uQ29uZmlnfSA9IG9wdHM7XG5cbiAgICBjb25zdCByYWRpdXNTY2FsZSA9IHRoaXMuZ2V0UmFkaXVzU2NhbGUoKTtcblxuICAgIGNvbnN0IGRlZmF1bHRMYXllclByb3BzID0gdGhpcy5nZXREZWZhdWx0RGVja0xheWVyUHJvcHMob3B0cyk7XG4gICAgY29uc3QgYnJ1c2hpbmdQcm9wcyA9IHRoaXMuZ2V0QnJ1c2hpbmdFeHRlbnNpb25Qcm9wcyhpbnRlcmFjdGlvbkNvbmZpZyk7XG4gICAgY29uc3QgZ2V0UGl4ZWxPZmZzZXQgPSBnZXRUZXh0T2Zmc2V0QnlSYWRpdXMocmFkaXVzU2NhbGUsIGRhdGEuZ2V0UmFkaXVzKTtcbiAgICBjb25zdCBleHRlbnNpb25zID0gWy4uLmRlZmF1bHRMYXllclByb3BzLmV4dGVuc2lvbnMsIGJydXNoaW5nRXh0ZW5zaW9uXTtcblxuICAgIGNvbnN0IHVwZGF0ZVRyaWdnZXJzID0ge1xuICAgICAgZ2V0UG9zaXRpb246IHRoaXMuY29uZmlnLmNvbHVtbnMsXG4gICAgICBnZXRGaWx0ZXJWYWx1ZTogZ3B1RmlsdGVyLmZpbHRlclZhbHVlVXBkYXRlVHJpZ2dlcnMsXG4gICAgICAuLi50aGlzLmdldFZpc3VhbENoYW5uZWxVcGRhdGVUcmlnZ2VycygpXG4gICAgfTtcblxuICAgIGNvbnN0IHNoYXJlZFByb3BzID0ge1xuICAgICAgZ2V0RmlsdGVyVmFsdWU6IGRhdGEuZ2V0RmlsdGVyVmFsdWUsXG4gICAgICBleHRlbnNpb25zLFxuICAgICAgZmlsdGVyUmFuZ2U6IGRlZmF1bHRMYXllclByb3BzLmZpbHRlclJhbmdlLFxuICAgICAgdmlzaWJsZTogZGVmYXVsdExheWVyUHJvcHMudmlzaWJsZSxcbiAgICAgIC4uLmJydXNoaW5nUHJvcHNcbiAgICB9O1xuICAgIGNvbnN0IGhvdmVyZWRPYmplY3QgPSB0aGlzLmhhc0hvdmVyZWRPYmplY3Qob2JqZWN0SG92ZXJlZCk7XG5cbiAgICBjb25zdCB0ZXh0TGFiZWxMYXllciA9IHRoaXMucmVuZGVyVGV4dExhYmVsTGF5ZXIoXG4gICAgICB7XG4gICAgICAgIGdldFBvc2l0aW9uOiBkYXRhLmdldFBvc2l0aW9uLFxuICAgICAgICBzaGFyZWRQcm9wcyxcbiAgICAgICAgZ2V0UGl4ZWxPZmZzZXQsXG4gICAgICAgIHVwZGF0ZVRyaWdnZXJzXG4gICAgICB9LFxuICAgICAgb3B0c1xuICAgICk7XG4gICAgY29uc3QgY29tbW9uTGF5ZXJQcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRMYXllclByb3BzLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAvLyBjaXJjbGVzIHdpbGwgYmUgZmxhdCBvbiB0aGUgbWFwIHdoZW4gdGhlIGFsdGl0dWRlIGNvbHVtbiBpcyBub3QgdXNlZFxuICAgICAgICBkZXB0aFRlc3Q6IHRoaXMuY29uZmlnLmNvbHVtbnMuYWx0aXR1ZGU/LmZpZWxkSWR4ID4gLTFcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgY3VzdG9tTWFya2Vyc0ZpZWxkID0gdGhpcy5jb25maWcuY3VzdG9tTWFya2Vyc0ZpZWxkO1xuICAgIGNvbnN0IHtjdXN0b21NYXJrZXJzLCBjdXN0b21NYXJrZXJzVXJsLCBjdXN0b21NYXJrZXJzUmFuZ2V9ID0gdGhpcy5jb25maWcudmlzQ29uZmlnO1xuICAgIGNvbnN0IGN1c3RvbU1hcmtlcnNDb25maWd1cmVkID1cbiAgICAgIGN1c3RvbU1hcmtlcnMgJiYgQm9vbGVhbihjdXN0b21NYXJrZXJzVXJsIHx8IChjdXN0b21NYXJrZXJzRmllbGQgJiYgY3VzdG9tTWFya2Vyc1JhbmdlKSk7XG4gICAgY29uc3QgY3VzdG9tTWFya2Vyc01pc0NvbmZpZ3VyZWQgPSBjdXN0b21NYXJrZXJzICYmICFjdXN0b21NYXJrZXJzQ29uZmlndXJlZDtcblxuICAgIGlmIChjdXN0b21NYXJrZXJzQ29uZmlndXJlZCkge1xuICAgICAgY29uc3QgbWF4SWNvblNpemUgPSB0aGlzLmdldE1heE1hcmtlclNpemUoKTtcbiAgICAgIGNvbnN0IHVzZU1hc2sgPSBCb29sZWFuKHRoaXMuY29uZmlnLnZpc0NvbmZpZy5maWxsZWQpO1xuICAgICAgY29uc3QgaWNvbkxheWVyUHJvcHMgPSB7XG4gICAgICAgIGdldEljb246IHRoaXMuZ2V0Q3VzdG9tTWFya2VySWNvbkFjY2Vzc29yKGRhdGEuZ2V0SWNvblVybCwgdXNlTWFzayksXG4gICAgICAgIGdldFBvc2l0aW9uOiBkYXRhLmdldFBvc2l0aW9uLFxuICAgICAgICBnZXRTaXplOiBkYXRhLmdldFJhZGl1cyxcbiAgICAgICAgZ2V0QW5nbGU6IG5lZ2F0ZUFjY2Vzc29yKGRhdGEuZ2V0Um90YXRpb24pLFxuICAgICAgICBzaXplU2NhbGU6IHJhZGl1c1NjYWxlLFxuICAgICAgICBzaXplVW5pdHM6ICdwaXhlbHMnLFxuICAgICAgICBsb2FkT3B0aW9uczoge1xuICAgICAgICAgIGltYWdlOiB7XG4gICAgICAgICAgICB0eXBlOiAnaW1hZ2ViaXRtYXAnXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpbWFnZWJpdG1hcDoge1xuICAgICAgICAgICAgcmVzaXplV2lkdGg6IG1heEljb25TaXplLFxuICAgICAgICAgICAgcmVzaXplSGVpZ2h0OiBtYXhJY29uU2l6ZSxcbiAgICAgICAgICAgIHJlc2l6ZVF1YWxpdHk6ICdoaWdoJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIFtcbiAgICAgICAgbmV3IEljb25MYXllcih7XG4gICAgICAgICAgLi4uY29tbW9uTGF5ZXJQcm9wcyxcbiAgICAgICAgICAuLi5pY29uTGF5ZXJQcm9wcyxcbiAgICAgICAgICBpZDogYCR7ZGVmYXVsdExheWVyUHJvcHMuaWR9LWljb25gLFxuICAgICAgICAgIGRhdGE6IGRhdGEuZGF0YSxcbiAgICAgICAgICBnZXRDb2xvcjogdGhpcy5jb25maWcudmlzQ29uZmlnLmZpbGxlZCA/IGRhdGEuZ2V0RmlsbENvbG9yIDogVU5LTk9XTl9DT0xPUixcbiAgICAgICAgICBnZXRGaWx0ZXJWYWx1ZTogZGF0YS5nZXRGaWx0ZXJWYWx1ZSxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2Vyczoge1xuICAgICAgICAgICAgZ2V0RmlsdGVyVmFsdWU6IHVwZGF0ZVRyaWdnZXJzLmdldEZpbHRlclZhbHVlLFxuICAgICAgICAgICAgZ2V0Q29sb3I6IHsuLi51cGRhdGVUcmlnZ2Vycy5nZXRGaWxsQ29sb3IsIGZpbGxlZDogdGhpcy5jb25maWcudmlzQ29uZmlnLmZpbGxlZH0sXG4gICAgICAgICAgICBnZXRJY29uOiB7Li4udXBkYXRlVHJpZ2dlcnMuZ2V0SWNvblVybCwgbWF4SWNvblNpemUsIHVzZU1hc2t9LFxuICAgICAgICAgICAgZ2V0U2l6ZTogdXBkYXRlVHJpZ2dlcnMuZ2V0UmFkaXVzLFxuICAgICAgICAgICAgZ2V0QW5nbGU6IHVwZGF0ZVRyaWdnZXJzLmdldFJvdGF0aW9uXG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgLi4uKGhvdmVyZWRPYmplY3RcbiAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgbmV3IEljb25MYXllcih7XG4gICAgICAgICAgICAgICAgLi4uaWNvbkxheWVyUHJvcHMsXG4gICAgICAgICAgICAgICAgLi4udGhpcy5nZXREZWZhdWx0SG92ZXJMYXllclByb3BzKCksXG4gICAgICAgICAgICAgICAgaWQ6IGAke2RlZmF1bHRMYXllclByb3BzLmlkfS1pY29uLWhvdmVyZWRgLFxuICAgICAgICAgICAgICAgIGRhdGE6IFtob3ZlcmVkT2JqZWN0XSxcbiAgICAgICAgICAgICAgICBnZXRDb2xvcjogdGhpcy5jb25maWcuaGlnaGxpZ2h0Q29sb3JcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIF1cbiAgICAgICAgICA6IFtdKSxcbiAgICAgICAgLi4udGV4dExhYmVsTGF5ZXJcbiAgICAgIF07XG4gICAgfVxuXG4gICAgY29uc3Qgc2NhdHRlclBsb3RMYXllclByb3BzID0ge1xuICAgICAgc3Ryb2tlZDogdGhpcy5jb25maWcudmlzQ29uZmlnLm91dGxpbmUsXG4gICAgICBmaWxsZWQ6IHRoaXMuY29uZmlnLnZpc0NvbmZpZy5maWxsZWQsXG4gICAgICBsaW5lV2lkdGhTY2FsZTogdGhpcy5jb25maWcudmlzQ29uZmlnLnRoaWNrbmVzcyxcbiAgICAgIC8vIFRPRE86IGludmVudCBiZXR0ZXIgd2F5IHRvIHJlbmRlciBzb21ldGhpbmcgd2hlbiBjdXN0b21NYXJrZXJzIGFyZSBub3QgeWV0IGNvbmZpZ3VyZWRcbiAgICAgIHJhZGl1c1NjYWxlOiBjdXN0b21NYXJrZXJzTWlzQ29uZmlndXJlZCA/IHJhZGl1c1NjYWxlIC8gMiA6IHJhZGl1c1NjYWxlLFxuICAgICAgcmFkaXVzTWF4UGl4ZWxzOiA1MDBcbiAgICB9O1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIG5ldyBTY2F0dGVycGxvdExheWVyKHtcbiAgICAgICAgLi4uYnJ1c2hpbmdQcm9wcyxcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgLi4uY29tbW9uTGF5ZXJQcm9wcyxcbiAgICAgICAgLi4uc2NhdHRlclBsb3RMYXllclByb3BzLFxuICAgICAgICByYWRpdXNVbml0czogJ3BpeGVscycsXG4gICAgICAgIGxpbmVXaWR0aFVuaXRzOiAncGl4ZWxzJyxcbiAgICAgICAgdXBkYXRlVHJpZ2dlcnMsXG4gICAgICAgIGV4dGVuc2lvbnNcbiAgICAgIH0pLFxuICAgICAgLy8gaG92ZXIgbGF5ZXJcbiAgICAgIC4uLihob3ZlcmVkT2JqZWN0XG4gICAgICAgID8gW1xuICAgICAgICAgICAgbmV3IFNjYXR0ZXJwbG90TGF5ZXIoe1xuICAgICAgICAgICAgICAuLi50aGlzLmdldERlZmF1bHRIb3ZlckxheWVyUHJvcHMoKSxcbiAgICAgICAgICAgICAgLi4uc2NhdHRlclBsb3RMYXllclByb3BzLFxuICAgICAgICAgICAgICBkYXRhOiBbaG92ZXJlZE9iamVjdF0sXG4gICAgICAgICAgICAgIGdldExpbmVDb2xvcjogdGhpcy5jb25maWcuaGlnaGxpZ2h0Q29sb3IsXG4gICAgICAgICAgICAgIGdldEZpbGxDb2xvcjogdGhpcy5jb25maWcuaGlnaGxpZ2h0Q29sb3IsXG4gICAgICAgICAgICAgIGdldFJhZGl1czogZGF0YS5nZXRSYWRpdXMsXG4gICAgICAgICAgICAgIGdldFBvc2l0aW9uOiBkYXRhLmdldFBvc2l0aW9uXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXSksXG4gICAgICAvLyB0ZXh0IGxhYmVsIGxheWVyXG4gICAgICAuLi50ZXh0TGFiZWxMYXllclxuICAgIF07XG4gIH1cbn1cbiJdfQ==