@carto/kepler.gl 0.0.65-alpha.labels → 0.0.65-alpha.labels.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/side-panel/layer-panel/layer-config-group.js +3 -3
- package/dist/components/side-panel/layer-panel/text-label-panel.js +67 -81
- package/dist/constants/default-settings.js +2 -2
- package/dist/layers/base-layer.js +112 -224
- package/dist/layers/layer-factory.js +19 -23
- package/dist/layers/layer-text-label.js +9 -32
- package/dist/layers/point-layer/point-layer.js +5 -7
- package/dist/localization/en.js +3 -3
- package/dist/reducers/vis-state-updaters.js +16 -8
- package/package.json +9 -8
- package/src/.index.js.swp +0 -0
- package/src/components/side-panel/layer-panel/layer-config-group.js +2 -2
- package/src/components/side-panel/layer-panel/text-label-panel.js +0 -10
- package/src/layers/base-layer.js +78 -145
- package/src/layers/layer-factory.js +8 -1
- package/src/layers/layer-text-label.js +11 -48
- package/src/layers/point-layer/point-layer.js +6 -14
- package/src/localization/en.js +2 -2
- package/src/reducers/vis-state-updaters.js +13 -10
|
@@ -11,7 +11,9 @@ 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_TEXT_LABEL = exports.DEFAULT_LAYER_LABEL = exports.DEFAULT_HIGHLIGHT_COLOR = exports.DEFAULT_LAYER_OPACITY = exports.PROPERTY_GROUPS = void 0;
|
|
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"));
|
|
15
17
|
|
|
16
18
|
var _keymirror = _interopRequireDefault(require("keymirror"));
|
|
17
19
|
|
|
@@ -19,25 +21,10 @@ var _defaultSettings = require("../constants/default-settings");
|
|
|
19
21
|
|
|
20
22
|
var _colorRanges = require("../constants/color-ranges");
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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.
|
|
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
|
+
|
|
41
28
|
var PROPERTY_GROUPS = (0, _keymirror["default"])({
|
|
42
29
|
color: null,
|
|
43
30
|
stroke: null,
|
|
@@ -62,15 +49,24 @@ exports.DEFAULT_LAYER_LABEL = DEFAULT_LAYER_LABEL;
|
|
|
62
49
|
var DEFAULT_TEXT_LABEL = {
|
|
63
50
|
field: null,
|
|
64
51
|
color: [44, 48, 50],
|
|
65
|
-
outlineColor: [
|
|
52
|
+
outlineColor: [255, 255, 255],
|
|
66
53
|
size: 12,
|
|
67
54
|
offset: [0, 0],
|
|
68
55
|
anchor: 'start',
|
|
69
56
|
alignment: 'center'
|
|
70
57
|
};
|
|
71
|
-
/** @type {import('./layer-factory').
|
|
58
|
+
/** @type {import('./layer-factory').LayerTextLabel} */
|
|
72
59
|
|
|
73
60
|
exports.DEFAULT_TEXT_LABEL = DEFAULT_TEXT_LABEL;
|
|
61
|
+
|
|
62
|
+
var DEFAULT_SECONDARY_TEXT_LABEL = _objectSpread(_objectSpread({}, DEFAULT_TEXT_LABEL), {}, {
|
|
63
|
+
color: [128, 130, 132],
|
|
64
|
+
size: 10
|
|
65
|
+
});
|
|
66
|
+
/** @type {import('./layer-factory').ColorRange} */
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
exports.DEFAULT_SECONDARY_TEXT_LABEL = DEFAULT_SECONDARY_TEXT_LABEL;
|
|
74
70
|
var DEFAULT_CUSTOM_PALETTE = {
|
|
75
71
|
name: 'color.customPalette',
|
|
76
72
|
type: 'custom',
|
|
@@ -515,4 +511,4 @@ var LAYER_TEXT_CONFIGS = {
|
|
|
515
511
|
}
|
|
516
512
|
};
|
|
517
513
|
exports.LAYER_TEXT_CONFIGS = LAYER_TEXT_CONFIGS;
|
|
518
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllcnMvbGF5ZXItZmFjdG9yeS5qcyJdLCJuYW1lcyI6WyJQUk9QRVJUWV9HUk9VUFMiLCJjb2xvciIsInN0cm9rZSIsImN1c3RvbU1hcmtlcnMiLCJsYWJlbHMiLCJyYWRpdXMiLCJoZWlnaHQiLCJhbmdsZSIsImNlbGwiLCJwcmVjaXNpb24iLCJERUZBVUxUX0xBWUVSX09QQUNJVFkiLCJERUZBVUxUX0hJR0hMSUdIVF9DT0xPUiIsIkRFRkFVTFRfTEFZRVJfTEFCRUwiLCJERUZBVUxUX1RFWFRfTEFCRUwiLCJmaWVsZCIsIm91dGxpbmVDb2xvciIsInNpemUiLCJvZmZzZXQiLCJhbmNob3IiLCJhbGlnbm1lbnQiLCJERUZBVUxUX0NVU1RPTV9QQUxFVFRFIiwibmFtZSIsInR5cGUiLCJjYXRlZ29yeSIsImNvbG9ycyIsIlVOS05PV05fQ09MT1JfS0VZIiwiREVGQVVMVF9DT0xPUl9VSSIsImN1c3RvbVBhbGV0dGUiLCJzaG93U2tldGNoZXIiLCJzaG93RHJvcGRvd24iLCJjb2xvclJhbmdlQ29uZmlnIiwic3RlcHMiLCJyZXZlcnNlZCIsImN1c3RvbSIsIkxBWUVSX1ZJU19DT05GSUdTIiwidGhpY2tuZXNzIiwiZGVmYXVsdFZhbHVlIiwibGFiZWwiLCJpc1JhbmdlZCIsInJhbmdlIiwic3RlcCIsImdyb3VwIiwicHJvcGVydHkiLCJzdHJva2VXaWR0aFJhbmdlIiwidHJhaWxMZW5ndGgiLCJyYWRpdXNSYW5nZSIsImNsdXN0ZXJSYWRpdXMiLCJjbHVzdGVyUmFkaXVzUmFuZ2UiLCJvcGFjaXR5IiwiY292ZXJhZ2UiLCJvdXRsaW5lIiwiZGlzcGxheSIsImNvbG9yUmFuZ2UiLCJERUZBVUxUX0NPTE9SX1JBTkdFIiwic3Ryb2tlQ29sb3JSYW5nZSIsInRhcmdldENvbG9yIiwic3Ryb2tlQ29sb3IiLCJhZ2dyZWdhdGlvbiIsIkFHR1JFR0FUSU9OX1RZUEVTIiwiYXZlcmFnZSIsIm9wdGlvbnMiLCJPYmplY3QiLCJrZXlzIiwiY29uZGl0aW9uIiwiY29uZmlnIiwiY29sb3JGaWVsZCIsInNpemVBZ2dyZWdhdGlvbiIsInNpemVGaWVsZCIsImhlaWdodEFnZ3JlZ2F0aW9uIiwiaGVpZ2h0RmllbGQiLCJwZXJjZW50aWxlIiwidmlzQ29uZmlnIiwiY29sb3JBZ2dyZWdhdGlvbiIsImNvbG9yU2NhbGUiLCJlbGV2YXRpb25QZXJjZW50aWxlIiwiZW5hYmxlM2QiLCJyZXNvbHV0aW9uIiwic2l6ZVNjYWxlIiwid29ybGRVbml0U2l6ZSIsImVsZXZhdGlvblNjYWxlIiwiZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvciIsImRlc2NyaXB0aW9uIiwiZWxldmF0aW9uUmFuZ2UiLCJoZWlnaHRSYW5nZSIsImNvdmVyYWdlUmFuZ2UiLCJzdHJva2VkIiwiZmlsbGVkIiwiZXh0cnVkZWQiLCJ3aXJlZnJhbWUiLCJ3ZWlnaHQiLCJ3ZWlnaHRGaWVsZCIsImhlYXRtYXBSYWRpdXMiLCJsYWJlbHNFbmFibGVkIiwiY3VzdG9tTWFya2Vyc1VybCIsImN1c3RvbU1hcmtlcnNSYW5nZSIsInVuZGVmaW5lZCIsIkxBWUVSX1RFWFRfQ09ORklHUyIsImZvbnRTaXplIiwidmFsdWUwIiwic2hvd0lucHV0IiwidGV4dEFuY2hvciIsIm11bHRpU2VsZWN0Iiwic2VhcmNoYWJsZSIsInRleHRBbGlnbm1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFFQTs7QUFDQTs7QUF2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFPTyxJQUFNQSxlQUFlLEdBQUcsMkJBQVU7QUFDdkNDLEVBQUFBLEtBQUssRUFBRSxJQURnQztBQUV2Q0MsRUFBQUEsTUFBTSxFQUFFLElBRitCO0FBR3ZDQyxFQUFBQSxhQUFhLEVBQUUsSUFId0I7QUFJdkNDLEVBQUFBLE1BQU0sRUFBRSxJQUorQjtBQUt2Q0MsRUFBQUEsTUFBTSxFQUFFLElB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QVcsRUFBRSxLQUhBO0FBSWJDLElBQUFBLFVBQVUsRUFBRTtBQUpDO0FBaEJpQixDQUEzQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBrZXlNaXJyb3IgZnJvbSAna2V5bWlycm9yJztcblxuaW1wb3J0IHtBR0dSRUdBVElPTl9UWVBFU30gZnJvbSAnY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MnO1xuaW1wb3J0IHtERUZBVUxUX0NPTE9SX1JBTkdFfSBmcm9tICdjb25zdGFudHMvY29sb3ItcmFuZ2VzJztcblxuZXhwb3J0IGNvbnN0IFBST1BFUlRZX0dST1VQUyA9IGtleU1pcnJvcih7XG4gIGNvbG9yOiBudWxsLFxuICBzdHJva2U6IG51bGwsXG4gIGN1c3RvbU1hcmtlcnM6IG51bGwsXG4gIGxhYmVsczogbnVsbCxcbiAgcmFkaXVzOiBudWxsLFxuICBoZWlnaHQ6IG51bGwsXG4gIGFuZ2xlOiBudWxsLFxuICAvLyBmb3IgaGVhdG1hcCBhZ2dyZWdhdGlvblxuICBjZWxsOiBudWxsLFxuICBwcmVjaXNpb246IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9MQVlFUl9PUEFDSVRZID0gMC44O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSElHSExJR0hUX0NPTE9SID0gWzI1MiwgMjQyLCAyNiwgMjU1XTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBWUVSX0xBQkVMID0gJ25ldyBsYXllcic7XG5leHBvcnQge0RFRkFVTFRfQ09MT1JfUkFOR0V9O1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9sYXllci1mYWN0b3J5JykuTGF5ZXJUZXh0TGFiZWx9ICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9URVhUX0xBQkVMID0ge1xuICBmaWVsZDogbnVsbCxcbiAgY29sb3I6IFs0NCwgNDgsIDUwXSxcbiAgb3V0bGluZUNvbG9yOiBbMCwgMCwgMF0sXG4gIHNpemU6IDEyLFxuICBvZmZzZXQ6IFswLCAwXSxcbiAgYW5jaG9yOiAnc3RhcnQnLFxuICBhbGlnbm1lbnQ6ICdjZW50ZXInXG59O1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9sYXllci1mYWN0b3J5JykuQ29sb3JSYW5nZX0gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0NVU1RPTV9QQUxFVFRFID0ge1xuICBuYW1lOiAnY29sb3IuY3VzdG9tUGFsZXR0ZScsXG4gIHR5cGU6ICdjdXN0b20nLFxuICBjYXRlZ29yeTogJ0N1c3RvbScsXG4gIGNvbG9yczogW11cbn07XG5cbmV4cG9ydCBjb25zdCBVTktOT1dOX0NPTE9SX0tFWSA9ICdfX3Vua25vd25Db2xvcl9fJztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vbGF5ZXItZmFjdG9yeScpLkNvbG9yVUl9ICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT0xPUl9VSSA9IHtcbiAgLy8gY3VzdG9tUGFsZXR0ZSBpbiBlZGl0XG4gIGN1c3RvbVBhbGV0dGU6IERFRkFVTFRfQ1VTVE9NX1BBTEVUVEUsXG4gIC8vIHNob3cgY29sb3Igc2tldGNoZXIgbW9kYWxcbiAgc2hvd1NrZXRjaGVyOiBmYWxzZSxcbiAgLy8gc2hvdyBjb2xvciByYW5nZSBzZWxlY3Rpb24gcGFuZWxcbiAgc2hvd0Ryb3Bkb3duOiBmYWxzZSxcbiAgLy8gY29sb3IgcmFuZ2Ugc2VsZWN0b3IgY29uZmlnXG4gIGNvbG9yUmFuZ2VDb25maWc6IHtcbiAgICB0eXBlOiAnYWxsJyxcbiAgICBzdGVwczogNixcbiAgICByZXZlcnNlZDogZmFsc2UsXG4gICAgY3VzdG9tOiBmYWxzZVxuICB9XG59O1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9sYXllci1mYWN0b3J5JykuTGF5ZXJWaXNDb25maWd9ICovXG5leHBvcnQgY29uc3QgTEFZRVJfVklTX0NPTkZJR1MgPSB7XG4gIHRoaWNrbmVzczoge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMixcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zdHJva2VXaWR0aCcsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMTAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5zdHJva2UsXG4gICAgcHJvcGVydHk6ICd0aGlja25lc3MnXG4gIH0sXG4gIHN0cm9rZVdpZHRoUmFuZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCAxMF0sXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc3Ryb2tlV2lkdGhSYW5nZScsXG4gICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgcmFuZ2U6IFswLCAyMDBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnN0cm9rZSxcbiAgICBwcm9wZXJ0eTogJ3NpemVSYW5nZSdcbiAgfSxcbiAgdHJhaWxMZW5ndGg6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDE4MCxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zdHJva2VXaWR0aCcsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMSwgMTAwMF0sXG4gICAgc3RlcDogMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnN0cm9rZSxcbiAgICBwcm9wZXJ0eTogJ3RyYWlsTGVuZ3RoJ1xuICB9LFxuICAvLyByYWRpdXMgaXMgYWN0dWFsbHkgcmFkaXVzU2NhbGUgaW4gZGVjay5nbFxuICByYWRpdXM6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDIsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MucmFkaXVzJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCAxMDBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnJhZGl1cyxcbiAgICBwcm9wZXJ0eTogJ3JhZGl1cydcbiAgfSxcbiAgcmFkaXVzUmFuZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCA1MF0sXG4gICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgcmFuZ2U6IFswLCA1MDBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5yYWRpdXNSYW5nZScsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5yYWRpdXMsXG4gICAgcHJvcGVydHk6ICdyYWRpdXNSYW5nZSdcbiAgfSxcbiAgY2x1c3RlclJhZGl1czoge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmNsdXN0ZXJSYWRpdXMnLFxuICAgIGRlZmF1bHRWYWx1ZTogNDAsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMSwgNTAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5yYWRpdXMsXG4gICAgcHJvcGVydHk6ICdjbHVzdGVyUmFkaXVzJ1xuICB9LFxuICBjbHVzdGVyUmFkaXVzUmFuZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5yYWRpdXNSYW5nZVBpeGVscycsXG4gICAgZGVmYXVsdFZhbHVlOiBbMSwgNDBdLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMSwgMTUwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5yYWRpdXMsXG4gICAgcHJvcGVydHk6ICdyYWRpdXNSYW5nZSdcbiAgfSxcbiAgb3BhY2l0eToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9MQVlFUl9PUEFDSVRZLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLm9wYWNpdHknLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDFdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ29wYWNpdHknXG4gIH0sXG4gIGNvdmVyYWdlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAxLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmNvdmVyYWdlJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCAxXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY2VsbCxcbiAgICBwcm9wZXJ0eTogJ2NvdmVyYWdlJ1xuICB9LFxuICAvLyB1c2VkIGluIHBvaW50IGxheWVyXG4gIG91dGxpbmU6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBsYWJlbDogJ2xheWVyLm91dGxpbmUnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuZGlzcGxheSxcbiAgICBwcm9wZXJ0eTogJ291dGxpbmUnXG4gIH0sXG4gIGNvbG9yUmFuZ2U6IHtcbiAgICB0eXBlOiAnY29sb3ItcmFuZ2Utc2VsZWN0JyxcbiAgICBkZWZhdWx0VmFsdWU6IERFRkFVTFRfQ09MT1JfUkFOR0UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuY29sb3JSYW5nZScsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ2NvbG9yUmFuZ2UnXG4gIH0sXG4gIHN0cm9rZUNvbG9yUmFuZ2U6IHtcbiAgICB0eXBlOiAnY29sb3ItcmFuZ2Utc2VsZWN0JyxcbiAgICBkZWZhdWx0VmFsdWU6IERFRkFVTFRfQ09MT1JfUkFOR0UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc3Ryb2tlQ29sb3JSYW5nZScsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ3N0cm9rZUNvbG9yUmFuZ2UnXG4gIH0sXG4gIHRhcmdldENvbG9yOiB7XG4gICAgdHlwZTogJ2NvbG9yLXNlbGVjdCcsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MudGFyZ2V0Q29sb3InLFxuICAgIGRlZmF1bHRWYWx1ZTogbnVsbCxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNvbG9yLFxuICAgIHByb3BlcnR5OiAndGFyZ2V0Q29sb3InXG4gIH0sXG4gIHN0cm9rZUNvbG9yOiB7XG4gICAgdHlwZTogJ2NvbG9yLXNlbGVjdCcsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc3Ryb2tlQ29sb3InLFxuICAgIGRlZmF1bHRWYWx1ZTogbnVsbCxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNvbG9yLFxuICAgIHByb3BlcnR5OiAnc3Ryb2tlQ29sb3InXG4gIH0sXG4gIGFnZ3JlZ2F0aW9uOiB7XG4gICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgZGVmYXVsdFZhbHVlOiBBR0dSRUdBVElPTl9UWVBFUy5hdmVyYWdlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmNvbG9yQWdncmVnYXRpb24nLFxuICAgIC8vIGFnZ3JlZ2F0aW9uIG9wdGlvbnMgYXJlIGJhc2VkIG9uIGNvbG9yIGZpZWxkIHR5cGVzXG4gICAgb3B0aW9uczogT2JqZWN0LmtleXMoQUdHUkVHQVRJT05fVFlQRVMpLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY29sb3IsXG4gICAgcHJvcGVydHk6ICdjb2xvckFnZ3JlZ2F0aW9uJyxcbiAgICBjb25kaXRpb246IGNvbmZpZyA9PiBjb25maWcuY29sb3JGaWVsZFxuICB9LFxuICBzaXplQWdncmVnYXRpb246IHtcbiAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICBkZWZhdWx0VmFsdWU6IEFHR1JFR0FUSU9OX1RZUEVTLmF2ZXJhZ2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuaGVpZ2h0QWdncmVnYXRpb24nLFxuICAgIC8vIGFnZ3JlZ2F0aW9uIG9wdGlvbnMgYXJlIGJhc2VkIG9uIGNvbG9yIGZpZWxkIHR5cGVzXG4gICAgb3B0aW9uczogT2JqZWN0LmtleXMoQUdHUkVHQVRJT05fVFlQRVMpLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnc2l6ZUFnZ3JlZ2F0aW9uJyxcbiAgICBjb25kaXRpb246IGNvbmZpZyA9PiBjb25maWcuc2l6ZUZpZWxkXG4gIH0sXG4gIGhlaWdodEFnZ3JlZ2F0aW9uOiB7XG4gICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgZGVmYXVsdFZhbHVlOiBBR0dSRUdBVElPTl9UWVBFUy5hdmVyYWdlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmhlaWdodEFnZ3JlZ2F0aW9uJyxcbiAgICBvcHRpb25zOiBPYmplY3Qua2V5cyhBR0dSRUdBVElPTl9UWVBFUyksXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5oZWlnaHQsXG4gICAgcHJvcGVydHk6ICdoZWlnaHRBZ2dyZWdhdGlvbicsXG4gICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLmhlaWdodEZpZWxkXG4gIH0sXG4gIHBlcmNlbnRpbGU6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCAxMDBdLFxuICAgIGxhYmVsOiBjb25maWcgPT5cbiAgICAgIGBGaWx0ZXIgYnkgJHtcbiAgICAgICAgY29uZmlnLmNvbG9yRmllbGRcbiAgICAgICAgICA/IGAke2NvbmZpZy52aXNDb25maWcuY29sb3JBZ2dyZWdhdGlvbn0gJHtjb25maWcuY29sb3JGaWVsZC5uYW1lfWBcbiAgICAgICAgICA6ICdjb3VudCdcbiAgICAgIH0gcGVyY2VudGlsZWAsXG4gICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgcmFuZ2U6IFswLCAxMDBdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ3BlcmNlbnRpbGUnLFxuXG4gICAgLy8gcGVyY2VudGlsZSBmaWx0ZXIgb25seSBtYWtlcyBzZW5zZSB3aXRoIGxpbmVhciBhZ2dyZWdhdGlvblxuICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy5jb2xvclNjYWxlICE9PSAnb3JkaW5hbCdcbiAgfSxcbiAgZWxldmF0aW9uUGVyY2VudGlsZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDEwMF0sXG4gICAgbGFiZWw6IGNvbmZpZyA9PlxuICAgICAgYEZpbHRlciBieSAke1xuICAgICAgICBjb25maWcuc2l6ZUZpZWxkID8gYCR7Y29uZmlnLnZpc0NvbmZpZy5zaXplQWdncmVnYXRpb259ICR7Y29uZmlnLnNpemVGaWVsZC5uYW1lfWAgOiAnY291bnQnXG4gICAgICB9IHBlcmNlbnRpbGVgLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMTAwXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnZWxldmF0aW9uUGVyY2VudGlsZScsXG4gICAgLy8gcGVyY2VudGlsZSBmaWx0ZXIgb25seSBtYWtlcyBzZW5zZSB3aXRoIGxpbmVhciBhZ2dyZWdhdGlvblxuICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcuZW5hYmxlM2QgJiYgKGNvbmZpZy5jb2xvckZpZWxkIHx8IGNvbmZpZy5zaXplRmllbGQpXG4gIH0sXG4gIHJlc29sdXRpb246IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDgsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MucmVzb2x1dGlvbicsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMTNdLFxuICAgIHN0ZXA6IDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jZWxsLFxuICAgIHByb3BlcnR5OiAncmVzb2x1dGlvbidcbiAgfSxcbiAgc2l6ZVNjYWxlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAxMCxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zaXplU2NhbGUnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzEsIDEwMDBdLFxuICAgIHN0ZXA6IDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5zdHJva2UsXG4gICAgcHJvcGVydHk6ICdzaXplU2NhbGUnXG4gIH0sXG4gIGFuZ2xlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuYW5nbGUnLFxuICAgIGRlZmF1bHRWYWx1ZTogMCxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCAzNjBdLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuYW5nbGUsXG4gICAgc3RlcDogMSxcbiAgICBwcm9wZXJ0eTogJ2FuZ2xlJ1xuICB9LFxuICB3b3JsZFVuaXRTaXplOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAxLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLndvcmxkVW5pdFNpemUnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDUwMF0sXG4gICAgc3RlcDogMC4wMDAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY2VsbCxcbiAgICBwcm9wZXJ0eTogJ3dvcmxkVW5pdFNpemUnXG4gIH0sXG4gIGVsZXZhdGlvblNjYWxlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiA1LFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmVsZXZhdGlvblNjYWxlJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCA1MDAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5oZWlnaHQsXG4gICAgcHJvcGVydHk6ICdlbGV2YXRpb25TY2FsZSdcbiAgfSxcbiAgZW5hYmxlRWxldmF0aW9uWm9vbUZhY3Rvcjoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvcicsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5oZWlnaHQsXG4gICAgcHJvcGVydHk6ICdlbmFibGVFbGV2YXRpb25ab29tRmFjdG9yJyxcbiAgICBkZXNjcmlwdGlvbjogJ2xheWVyVmlzQ29uZmlncy5lbmFibGVFbGV2YXRpb25ab29tRmFjdG9yRGVzY3JpcHRpb24nXG4gIH0sXG4gIGVsZXZhdGlvblJhbmdlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiBbMCwgNTAwXSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5oZWlnaHRTY2FsZScsXG4gICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgcmFuZ2U6IFswLCAxMDAwXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnc2l6ZVJhbmdlJ1xuICB9LFxuICBoZWlnaHRSYW5nZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDUwMF0sXG4gICAgbGFiZWw6ICdIZWlnaHQgU2NhbGUnLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMTAwMF0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ2hlaWdodFJhbmdlJ1xuICB9LFxuICBjb3ZlcmFnZVJhbmdlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiBbMCwgMV0sXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuY292ZXJhZ2VSYW5nZScsXG4gICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgcmFuZ2U6IFswLCAxXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMucmFkaXVzLFxuICAgIHByb3BlcnR5OiAnY292ZXJhZ2VSYW5nZSdcbiAgfSxcbiAgLy8gaGkgcHJlY2lzaW9uIGlzIGRlcHJlY2F0ZWQgYnkgZGVjay5nbFxuICAnaGktcHJlY2lzaW9uJzoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmhpZ2hQcmVjaXNpb25SZW5kZXJpbmcnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMucHJlY2lzaW9uLFxuICAgIHByb3BlcnR5OiAnaGktcHJlY2lzaW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ2xheWVyVmlzQ29uZmlncy5oaWdoUHJlY2lzaW9uUmVuZGVyaW5nRGVzY3JpcHRpb24nXG4gIH0sXG4gIGVuYWJsZTNkOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuaGVpZ2h0JyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ2VuYWJsZTNkJyxcbiAgICBkZXNjcmlwdGlvbjogJ2xheWVyVmlzQ29uZmlncy5oZWlnaHREZXNjcmlwdGlvbidcbiAgfSxcbiAgc3Ryb2tlZDoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zdHJva2UnLFxuICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmRpc3BsYXksXG4gICAgcHJvcGVydHk6ICdzdHJva2VkJ1xuICB9LFxuICBmaWxsZWQ6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuZmlsbCcsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmRpc3BsYXksXG4gICAgcHJvcGVydHk6ICdmaWxsZWQnXG4gIH0sXG4gIGxhYmVsczoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5sYWJlbHMnLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5sYWJlbHMsXG4gICAgcHJvcGVydHk6ICdsYWJlbHMnXG4gIH0sXG4gIGV4dHJ1ZGVkOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuZW5hYmxlUG9seWdvbkhlaWdodCcsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5kaXNwbGF5LFxuICAgIHByb3BlcnR5OiAnZXh0cnVkZWQnXG4gIH0sXG4gIHdpcmVmcmFtZToge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnNob3dXaXJlZnJhbWUnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuZGlzcGxheSxcbiAgICBwcm9wZXJ0eTogJ3dpcmVmcmFtZSdcbiAgfSxcbiAgLy8gdXNlZCBmb3IgaGVhdG1hcFxuICB3ZWlnaHQ6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDEsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Mud2VpZ2h0SW50ZW5zaXR5JyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLjAxLCA1MDBdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jZWxsLFxuICAgIHByb3BlcnR5OiAnd2VpZ2h0JyxcbiAgICBjb25kaXRpb246IGNvbmZpZyA9PiBjb25maWcud2VpZ2h0RmllbGRcbiAgfSxcbiAgaGVhdG1hcFJhZGl1czoge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMjAsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MucmFkaXVzJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCAxMDBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNlbGwsXG4gICAgcHJvcGVydHk6ICdyYWRpdXMnXG4gIH0sXG4gIGN1c3RvbU1hcmtlcnM6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jdXN0b21NYXJrZXJzJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmN1c3RvbU1hcmtlcnMsXG4gICAgcHJvcGVydHk6ICdjdXN0b21NYXJrZXJzJ1xuICB9LFxuICBsYWJlbHNFbmFibGVkOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5sYWJlbHNFbmFibGVkJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmxhYmVscyxcbiAgICBwcm9wZXJ0eTogJ2xhYmVsc0VuYWJsZWQnXG4gIH0sXG4gIGN1c3RvbU1hcmtlcnNVcmw6IHtcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgZGVmYXVsdFZhbHVlOiAnJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5hZGRVcmwnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY3VzdG9tTWFya2VycyxcbiAgICBwcm9wZXJ0eTogJ2N1c3RvbU1hcmtlcnNVcmwnXG4gIH0sXG4gIGN1c3RvbU1hcmtlcnNSYW5nZToge1xuICAgIHR5cGU6ICdtYXJrZXJzLXJhbmdlLXNlbGVjdCcsXG4gICAgZGVmYXVsdFZhbHVlOiB1bmRlZmluZWQsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuY29sb3JSYW5nZScsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jdXN0b21NYXJrZXJzLFxuICAgIHByb3BlcnR5OiAnY3VzdG9tTWFya2Vyc1JhbmdlJ1xuICB9XG59O1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9sYXllci1mYWN0b3J5JykuTGF5ZXJUZXh0Q29uZmlnfSAqL1xuZXhwb3J0IGNvbnN0IExBWUVSX1RFWFRfQ09ORklHUyA9IHtcbiAgZm9udFNpemU6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICByYW5nZTogWzYsIDMyXSxcbiAgICB2YWx1ZTA6IDYsXG4gICAgc3RlcDogMSxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgbGFiZWw6ICdGb250IHNpemUnLFxuICAgIHNob3dJbnB1dDogdHJ1ZVxuICB9LFxuICB0ZXh0QW5jaG9yOiB7XG4gICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgb3B0aW9uczogWydzdGFydCcsICdtaWRkbGUnLCAnZW5kJ10sXG4gICAgbXVsdGlTZWxlY3Q6IGZhbHNlLFxuICAgIHNlYXJjaGFibGU6IGZhbHNlXG4gIH0sXG4gIHRleHRBbGlnbm1lbnQ6IHtcbiAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICBvcHRpb25zOiBbJ3RvcCcsICdjZW50ZXInLCAnYm90dG9tJ10sXG4gICAgbXVsdGlTZWxlY3Q6IGZhbHNlLFxuICAgIHNlYXJjaGFibGU6IGZhbHNlXG4gIH1cbn07XG4iXX0=
|
|
514
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllcnMvbGF5ZXItZmFjdG9yeS5qcyJdLCJuYW1lcyI6WyJQUk9QRVJUWV9HUk9VUFMiLCJjb2xvciIsInN0cm9rZSIsImN1c3RvbU1hcmtlcnMiLCJsYWJlbHMiLCJyYWRpdXMiLCJoZWlnaHQiLCJhbmdsZSIsImNlbGwiLCJwcmVjaXNpb24iLCJERUZBVUxUX0xBWUVSX09QQUNJVFkiLCJERUZBVUxUX0hJR0hMSUdIVF9DT0xPUiIsIkRFRkFVTFRfTEFZRVJfTEFCRUwiLCJERUZBVUxUX1RFWFRfTEFCRUwiLCJmaWVsZCIsIm91dGxpbmVDb2xvciIsInNpemUiLCJvZmZzZXQiLCJhbmNob3IiLCJhbGlnbm1lbnQiLCJERUZBVUxUX1NFQ09OREFSWV9URVhUX0xBQkVMIiwiREVGQVVMVF9DVVNUT01fUEFMRVRURSIsIm5hbWUiLCJ0eXBlIiwiY2F0ZWdvcnkiLCJjb2xvcnMiLCJVTktOT1dOX0NPTE9SX0tFWSIsIkRFRkFVTFRfQ09MT1JfVUkiLCJjdXN0b21QYWxldHRlIiwic2hvd1NrZXRjaGVyIiwic2hvd0Ryb3Bkb3duIiwiY29sb3JSYW5nZUNvbmZpZyIsInN0ZXBzIiwicmV2ZXJzZWQiLCJjdXN0b20iLCJMQVlFUl9WSVNfQ09ORklHUyIsInRoaWNrbmVzcyIsImRlZmF1bHRWYWx1ZSIsImxhYmVsIiwiaXNSYW5nZWQiLCJyYW5nZSIsInN0ZXAiLCJncm91cCIsInByb3BlcnR5Iiwic3Ryb2tlV2lkdGhSYW5nZSIsInRyYWlsTGVuZ3RoIiwicmFkaXVzUmFuZ2UiLCJjbHVzdGVyUmFkaXVzIiwiY2x1c3RlclJhZGl1c1JhbmdlIiwib3BhY2l0eSIsImNvdmVyYWdlIiwib3V0bGluZSIsImRpc3BsYXkiLCJjb2xvclJhbmdlIiwiREVGQVVMVF9DT0xPUl9SQU5HRSIsInN0cm9rZUNvbG9yUmFuZ2UiLCJ0YXJnZXRDb2xvciIsInN0cm9rZUNvbG9yIiwiYWdncmVnYXRpb24iLCJBR0dSRUdBVElPTl9UWVBFUyIsImF2ZXJhZ2UiLCJvcHRpb25zIiwiT2JqZWN0Iiwia2V5cyIsImNvbmRpdGlvbiIsImNvbmZpZyIsImNvbG9yRmllbGQiLCJzaXplQWdncmVnYXRpb24iLCJzaXplRmllbGQiLCJoZWlnaHRBZ2dyZWdhdGlvbiIsImhlaWdodEZpZWxkIiwicGVyY2VudGlsZSIsInZpc0NvbmZpZyIsImNvbG9yQWdncmVnYXRpb24iLCJjb2xvclNjYWxlIiwiZWxldmF0aW9uUGVyY2VudGlsZSIsImVuYWJsZTNkIiwicmVzb2x1dGlvbiIsInNpemVTY2FsZSIsIndvcmxkVW5pdFNpemUiLCJlbGV2YXRpb25TY2FsZSIsImVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3IiLCJkZXNjcmlwdGlvbiIsImVsZXZhdGlvblJhbmdlIiwiaGVpZ2h0UmFuZ2UiLCJjb3ZlcmFnZVJhbmdlIiwic3Ryb2tlZCIsImZpbGxlZCIsImV4dHJ1ZGVkIiwid2lyZWZyYW1lIiwid2VpZ2h0Iiwid2VpZ2h0RmllbGQiLCJoZWF0bWFwUmFkaXVzIiwibGFiZWxzRW5hYmxlZCIsImN1c3RvbU1hcmtlcnNVcmwiLCJjdXN0b21NYXJrZXJzUmFuZ2UiLCJ1bmRlZmluZWQiLCJMQVlFUl9URVhUX0NPTkZJR1MiLCJmb250U2l6ZSIsInZhbHVlMCIsInNob3dJbnB1dCIsInRleHRBbmNob3IiLCJtdWx0aVNlbGVjdCIsInNlYXJjaGFibGUiLCJ0ZXh0QWxpZ25tZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFFQTs7QUFDQTs7Ozs7O0FBRU8sSUFBTUEsZUFBZSxHQUFHLDJCQUFVO0FBQ3ZDQyxFQUFBQSxLQUFLLEVBQUUsSUFEZ0M7QUFFdkNDLEVBQUFBLE1BQU0sRUFBRSxJQUYrQjtBQUd2Q0MsRUFBQUEsYUFBYSxFQUFFLElBSHdCO0FBSXZDQyxFQUFBQSxNQUFNLEVBQUUsSUFKK0I7QUFLdkNDLEVBQUFBLE1BQU0sRUFBRSxJQUwrQjtBQU12Q0MsRUFBQUEsTUFBTSxFQUFFLElBTitCO0FBT3ZDQyxFQUFBQSxLQUFLLEVBQUUsSUFQ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RE87QUFFYnNDLElBQUFBLE9BQU8sRUFBRSxDQUFDLEtBQUQsRUFBUSxRQUFSLEVBQWtCLFFBQWxCLENBRkk7QUFHYnlDLElBQUFBLFdBQVcsRUFBRSxLQUhBO0FBSWJDLElBQUFBLFVBQVUsRUFBRTtBQUpDO0FBaEJpQixDQUEzQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBrZXlNaXJyb3IgZnJvbSAna2V5bWlycm9yJztcblxuaW1wb3J0IHtBR0dSRUdBVElPTl9UWVBFU30gZnJvbSAnY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MnO1xuaW1wb3J0IHtERUZBVUxUX0NPTE9SX1JBTkdFfSBmcm9tICdjb25zdGFudHMvY29sb3ItcmFuZ2VzJztcblxuZXhwb3J0IGNvbnN0IFBST1BFUlRZX0dST1VQUyA9IGtleU1pcnJvcih7XG4gIGNvbG9yOiBudWxsLFxuICBzdHJva2U6IG51bGwsXG4gIGN1c3RvbU1hcmtlcnM6IG51bGwsXG4gIGxhYmVsczogbnVsbCxcbiAgcmFkaXVzOiBudWxsLFxuICBoZWlnaHQ6IG51bGwsXG4gIGFuZ2xlOiBudWxsLFxuICAvLyBmb3IgaGVhdG1hcCBhZ2dyZWdhdGlvblxuICBjZWxsOiBudWxsLFxuICBwcmVjaXNpb246IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9MQVlFUl9PUEFDSVRZID0gMC44O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSElHSExJR0hUX0NPTE9SID0gWzI1MiwgMjQyLCAyNiwgMjU1XTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBWUVSX0xBQkVMID0gJ25ldyBsYXllcic7XG5leHBvcnQge0RFRkFVTFRfQ09MT1JfUkFOR0V9O1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9sYXllci1mYWN0b3J5JykuTGF5ZXJUZXh0TGFiZWx9ICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9URVhUX0xBQkVMID0ge1xuICBmaWVsZDogbnVsbCxcbiAgY29sb3I6IFs0NCwgNDgsIDUwXSxcbiAgb3V0bGluZUNvbG9yOiBbMjU1LCAyNTUsIDI1NV0sXG4gIHNpemU6IDEyLFxuICBvZmZzZXQ6IFswLCAwXSxcbiAgYW5jaG9yOiAnc3RhcnQnLFxuICBhbGlnbm1lbnQ6ICdjZW50ZXInXG59O1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9sYXllci1mYWN0b3J5JykuTGF5ZXJUZXh0TGFiZWx9ICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUNPTkRBUllfVEVYVF9MQUJFTCA9IHtcbiAgLi4uREVGQVVMVF9URVhUX0xBQkVMLFxuICBjb2xvcjogWzEyOCwgMTMwLCAxMzJdLFxuICBzaXplOiAxMFxufTtcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vbGF5ZXItZmFjdG9yeScpLkNvbG9yUmFuZ2V9ICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9DVVNUT01fUEFMRVRURSA9IHtcbiAgbmFtZTogJ2NvbG9yLmN1c3RvbVBhbGV0dGUnLFxuICB0eXBlOiAnY3VzdG9tJyxcbiAgY2F0ZWdvcnk6ICdDdXN0b20nLFxuICBjb2xvcnM6IFtdXG59O1xuXG5leHBvcnQgY29uc3QgVU5LTk9XTl9DT0xPUl9LRVkgPSAnX191bmtub3duQ29sb3JfXyc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL2xheWVyLWZhY3RvcnknKS5Db2xvclVJfSAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09MT1JfVUkgPSB7XG4gIC8vIGN1c3RvbVBhbGV0dGUgaW4gZWRpdFxuICBjdXN0b21QYWxldHRlOiBERUZBVUxUX0NVU1RPTV9QQUxFVFRFLFxuICAvLyBzaG93IGNvbG9yIHNrZXRjaGVyIG1vZGFsXG4gIHNob3dTa2V0Y2hlcjogZmFsc2UsXG4gIC8vIHNob3cgY29sb3IgcmFuZ2Ugc2VsZWN0aW9uIHBhbmVsXG4gIHNob3dEcm9wZG93bjogZmFsc2UsXG4gIC8vIGNvbG9yIHJhbmdlIHNlbGVjdG9yIGNvbmZpZ1xuICBjb2xvclJhbmdlQ29uZmlnOiB7XG4gICAgdHlwZTogJ2FsbCcsXG4gICAgc3RlcHM6IDYsXG4gICAgcmV2ZXJzZWQ6IGZhbHNlLFxuICAgIGN1c3RvbTogZmFsc2VcbiAgfVxufTtcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vbGF5ZXItZmFjdG9yeScpLkxheWVyVmlzQ29uZmlnfSAqL1xuZXhwb3J0IGNvbnN0IExBWUVSX1ZJU19DT05GSUdTID0ge1xuICB0aGlja25lc3M6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDIsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc3Ryb2tlV2lkdGgnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDEwMF0sXG4gICAgc3RlcDogMC4xLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuc3Ryb2tlLFxuICAgIHByb3BlcnR5OiAndGhpY2tuZXNzJ1xuICB9LFxuICBzdHJva2VXaWR0aFJhbmdlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiBbMCwgMTBdLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnN0cm9rZVdpZHRoUmFuZ2UnLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMjAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5zdHJva2UsXG4gICAgcHJvcGVydHk6ICdzaXplUmFuZ2UnXG4gIH0sXG4gIHRyYWlsTGVuZ3RoOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAxODAsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc3Ryb2tlV2lkdGgnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzEsIDEwMDBdLFxuICAgIHN0ZXA6IDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5zdHJva2UsXG4gICAgcHJvcGVydHk6ICd0cmFpbExlbmd0aCdcbiAgfSxcbiAgLy8gcmFkaXVzIGlzIGFjdHVhbGx5IHJhZGl1c1NjYWxlIGluIGRlY2suZ2xcbiAgcmFkaXVzOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAyLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnJhZGl1cycsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMTAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5yYWRpdXMsXG4gICAgcHJvcGVydHk6ICdyYWRpdXMnXG4gIH0sXG4gIHJhZGl1c1JhbmdlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiBbMCwgNTBdLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgNTAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MucmFkaXVzUmFuZ2UnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMucmFkaXVzLFxuICAgIHByb3BlcnR5OiAncmFkaXVzUmFuZ2UnXG4gIH0sXG4gIGNsdXN0ZXJSYWRpdXM6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jbHVzdGVyUmFkaXVzJyxcbiAgICBkZWZhdWx0VmFsdWU6IDQwLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzEsIDUwMF0sXG4gICAgc3RlcDogMC4xLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMucmFkaXVzLFxuICAgIHByb3BlcnR5OiAnY2x1c3RlclJhZGl1cydcbiAgfSxcbiAgY2x1c3RlclJhZGl1c1JhbmdlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MucmFkaXVzUmFuZ2VQaXhlbHMnLFxuICAgIGRlZmF1bHRWYWx1ZTogWzEsIDQwXSxcbiAgICBpc1JhbmdlZDogdHJ1ZSxcbiAgICByYW5nZTogWzEsIDE1MF0sXG4gICAgc3RlcDogMC4xLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMucmFkaXVzLFxuICAgIHByb3BlcnR5OiAncmFkaXVzUmFuZ2UnXG4gIH0sXG4gIG9wYWNpdHk6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IERFRkFVTFRfTEFZRVJfT1BBQ0lUWSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5vcGFjaXR5JyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCAxXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY29sb3IsXG4gICAgcHJvcGVydHk6ICdvcGFjaXR5J1xuICB9LFxuICBjb3ZlcmFnZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jb3ZlcmFnZScsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMV0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNlbGwsXG4gICAgcHJvcGVydHk6ICdjb3ZlcmFnZSdcbiAgfSxcbiAgLy8gdXNlZCBpbiBwb2ludCBsYXllclxuICBvdXRsaW5lOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgbGFiZWw6ICdsYXllci5vdXRsaW5lJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmRpc3BsYXksXG4gICAgcHJvcGVydHk6ICdvdXRsaW5lJ1xuICB9LFxuICBjb2xvclJhbmdlOiB7XG4gICAgdHlwZTogJ2NvbG9yLXJhbmdlLXNlbGVjdCcsXG4gICAgZGVmYXVsdFZhbHVlOiBERUZBVUxUX0NPTE9SX1JBTkdFLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmNvbG9yUmFuZ2UnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY29sb3IsXG4gICAgcHJvcGVydHk6ICdjb2xvclJhbmdlJ1xuICB9LFxuICBzdHJva2VDb2xvclJhbmdlOiB7XG4gICAgdHlwZTogJ2NvbG9yLXJhbmdlLXNlbGVjdCcsXG4gICAgZGVmYXVsdFZhbHVlOiBERUZBVUxUX0NPTE9SX1JBTkdFLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnN0cm9rZUNvbG9yUmFuZ2UnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY29sb3IsXG4gICAgcHJvcGVydHk6ICdzdHJva2VDb2xvclJhbmdlJ1xuICB9LFxuICB0YXJnZXRDb2xvcjoge1xuICAgIHR5cGU6ICdjb2xvci1zZWxlY3QnLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnRhcmdldENvbG9yJyxcbiAgICBkZWZhdWx0VmFsdWU6IG51bGwsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ3RhcmdldENvbG9yJ1xuICB9LFxuICBzdHJva2VDb2xvcjoge1xuICAgIHR5cGU6ICdjb2xvci1zZWxlY3QnLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnN0cm9rZUNvbG9yJyxcbiAgICBkZWZhdWx0VmFsdWU6IG51bGwsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ3N0cm9rZUNvbG9yJ1xuICB9LFxuICBhZ2dyZWdhdGlvbjoge1xuICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIGRlZmF1bHRWYWx1ZTogQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jb2xvckFnZ3JlZ2F0aW9uJyxcbiAgICAvLyBhZ2dyZWdhdGlvbiBvcHRpb25zIGFyZSBiYXNlZCBvbiBjb2xvciBmaWVsZCB0eXBlc1xuICAgIG9wdGlvbnM6IE9iamVjdC5rZXlzKEFHR1JFR0FUSU9OX1RZUEVTKSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNvbG9yLFxuICAgIHByb3BlcnR5OiAnY29sb3JBZ2dyZWdhdGlvbicsXG4gICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLmNvbG9yRmllbGRcbiAgfSxcbiAgc2l6ZUFnZ3JlZ2F0aW9uOiB7XG4gICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgZGVmYXVsdFZhbHVlOiBBR0dSRUdBVElPTl9UWVBFUy5hdmVyYWdlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmhlaWdodEFnZ3JlZ2F0aW9uJyxcbiAgICAvLyBhZ2dyZWdhdGlvbiBvcHRpb25zIGFyZSBiYXNlZCBvbiBjb2xvciBmaWVsZCB0eXBlc1xuICAgIG9wdGlvbnM6IE9iamVjdC5rZXlzKEFHR1JFR0FUSU9OX1RZUEVTKSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ3NpemVBZ2dyZWdhdGlvbicsXG4gICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLnNpemVGaWVsZFxuICB9LFxuICBoZWlnaHRBZ2dyZWdhdGlvbjoge1xuICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIGRlZmF1bHRWYWx1ZTogQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5oZWlnaHRBZ2dyZWdhdGlvbicsXG4gICAgb3B0aW9uczogT2JqZWN0LmtleXMoQUdHUkVHQVRJT05fVFlQRVMpLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnaGVpZ2h0QWdncmVnYXRpb24nLFxuICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy5oZWlnaHRGaWVsZFxuICB9LFxuICBwZXJjZW50aWxlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiBbMCwgMTAwXSxcbiAgICBsYWJlbDogY29uZmlnID0+XG4gICAgICBgRmlsdGVyIGJ5ICR7XG4gICAgICAgIGNvbmZpZy5jb2xvckZpZWxkXG4gICAgICAgICAgPyBgJHtjb25maWcudmlzQ29uZmlnLmNvbG9yQWdncmVnYXRpb259ICR7Y29uZmlnLmNvbG9yRmllbGQubmFtZX1gXG4gICAgICAgICAgOiAnY291bnQnXG4gICAgICB9IHBlcmNlbnRpbGVgLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMTAwXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY29sb3IsXG4gICAgcHJvcGVydHk6ICdwZXJjZW50aWxlJyxcblxuICAgIC8vIHBlcmNlbnRpbGUgZmlsdGVyIG9ubHkgbWFrZXMgc2Vuc2Ugd2l0aCBsaW5lYXIgYWdncmVnYXRpb25cbiAgICBjb25kaXRpb246IGNvbmZpZyA9PiBjb25maWcuY29sb3JTY2FsZSAhPT0gJ29yZGluYWwnXG4gIH0sXG4gIGVsZXZhdGlvblBlcmNlbnRpbGU6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCAxMDBdLFxuICAgIGxhYmVsOiBjb25maWcgPT5cbiAgICAgIGBGaWx0ZXIgYnkgJHtcbiAgICAgICAgY29uZmlnLnNpemVGaWVsZCA/IGAke2NvbmZpZy52aXNDb25maWcuc2l6ZUFnZ3JlZ2F0aW9ufSAke2NvbmZpZy5zaXplRmllbGQubmFtZX1gIDogJ2NvdW50J1xuICAgICAgfSBwZXJjZW50aWxlYCxcbiAgICBpc1JhbmdlZDogdHJ1ZSxcbiAgICByYW5nZTogWzAsIDEwMF0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ2VsZXZhdGlvblBlcmNlbnRpbGUnLFxuICAgIC8vIHBlcmNlbnRpbGUgZmlsdGVyIG9ubHkgbWFrZXMgc2Vuc2Ugd2l0aCBsaW5lYXIgYWdncmVnYXRpb25cbiAgICBjb25kaXRpb246IGNvbmZpZyA9PiBjb25maWcudmlzQ29uZmlnLmVuYWJsZTNkICYmIChjb25maWcuY29sb3JGaWVsZCB8fCBjb25maWcuc2l6ZUZpZWxkKVxuICB9LFxuICByZXNvbHV0aW9uOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiA4LFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnJlc29sdXRpb24nLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDEzXSxcbiAgICBzdGVwOiAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY2VsbCxcbiAgICBwcm9wZXJ0eTogJ3Jlc29sdXRpb24nXG4gIH0sXG4gIHNpemVTY2FsZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMTAsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc2l6ZVNjYWxlJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFsxLCAxMDAwXSxcbiAgICBzdGVwOiAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuc3Ryb2tlLFxuICAgIHByb3BlcnR5OiAnc2l6ZVNjYWxlJ1xuICB9LFxuICBhbmdsZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmFuZ2xlJyxcbiAgICBkZWZhdWx0VmFsdWU6IDAsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMzYwXSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmFuZ2xlLFxuICAgIHN0ZXA6IDEsXG4gICAgcHJvcGVydHk6ICdhbmdsZSdcbiAgfSxcbiAgd29ybGRVbml0U2l6ZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy53b3JsZFVuaXRTaXplJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCA1MDBdLFxuICAgIHN0ZXA6IDAuMDAwMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNlbGwsXG4gICAgcHJvcGVydHk6ICd3b3JsZFVuaXRTaXplJ1xuICB9LFxuICBlbGV2YXRpb25TY2FsZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogNSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5lbGV2YXRpb25TY2FsZScsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgNTAwMF0sXG4gICAgc3RlcDogMC4xLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnZWxldmF0aW9uU2NhbGUnXG4gIH0sXG4gIGVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3I6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3InLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvcicsXG4gICAgZGVzY3JpcHRpb246ICdsYXllclZpc0NvbmZpZ3MuZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvckRlc2NyaXB0aW9uJ1xuICB9LFxuICBlbGV2YXRpb25SYW5nZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDUwMF0sXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuaGVpZ2h0U2NhbGUnLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMTAwMF0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ3NpemVSYW5nZSdcbiAgfSxcbiAgaGVpZ2h0UmFuZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCA1MDBdLFxuICAgIGxhYmVsOiAnSGVpZ2h0IFNjYWxlJyxcbiAgICBpc1JhbmdlZDogdHJ1ZSxcbiAgICByYW5nZTogWzAsIDEwMDBdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5oZWlnaHQsXG4gICAgcHJvcGVydHk6ICdoZWlnaHRSYW5nZSdcbiAgfSxcbiAgY292ZXJhZ2VSYW5nZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDFdLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmNvdmVyYWdlUmFuZ2UnLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMV0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnJhZGl1cyxcbiAgICBwcm9wZXJ0eTogJ2NvdmVyYWdlUmFuZ2UnXG4gIH0sXG4gIC8vIGhpIHByZWNpc2lvbiBpcyBkZXByZWNhdGVkIGJ5IGRlY2suZ2xcbiAgJ2hpLXByZWNpc2lvbic6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5oaWdoUHJlY2lzaW9uUmVuZGVyaW5nJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnByZWNpc2lvbixcbiAgICBwcm9wZXJ0eTogJ2hpLXByZWNpc2lvbicsXG4gICAgZGVzY3JpcHRpb246ICdsYXllclZpc0NvbmZpZ3MuaGlnaFByZWNpc2lvblJlbmRlcmluZ0Rlc2NyaXB0aW9uJ1xuICB9LFxuICBlbmFibGUzZDoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmhlaWdodCcsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5oZWlnaHQsXG4gICAgcHJvcGVydHk6ICdlbmFibGUzZCcsXG4gICAgZGVzY3JpcHRpb246ICdsYXllclZpc0NvbmZpZ3MuaGVpZ2h0RGVzY3JpcHRpb24nXG4gIH0sXG4gIHN0cm9rZWQ6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc3Ryb2tlJyxcbiAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5kaXNwbGF5LFxuICAgIHByb3BlcnR5OiAnc3Ryb2tlZCdcbiAgfSxcbiAgZmlsbGVkOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmZpbGwnLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5kaXNwbGF5LFxuICAgIHByb3BlcnR5OiAnZmlsbGVkJ1xuICB9LFxuICBsYWJlbHM6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MubGFiZWxzJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMubGFiZWxzLFxuICAgIHByb3BlcnR5OiAnbGFiZWxzJ1xuICB9LFxuICBleHRydWRlZDoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmVuYWJsZVBvbHlnb25IZWlnaHQnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuZGlzcGxheSxcbiAgICBwcm9wZXJ0eTogJ2V4dHJ1ZGVkJ1xuICB9LFxuICB3aXJlZnJhbWU6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zaG93V2lyZWZyYW1lJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmRpc3BsYXksXG4gICAgcHJvcGVydHk6ICd3aXJlZnJhbWUnXG4gIH0sXG4gIC8vIHVzZWQgZm9yIGhlYXRtYXBcbiAgd2VpZ2h0OiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAxLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLndlaWdodEludGVuc2l0eScsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMC4wMSwgNTAwXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY2VsbCxcbiAgICBwcm9wZXJ0eTogJ3dlaWdodCcsXG4gICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLndlaWdodEZpZWxkXG4gIH0sXG4gIGhlYXRtYXBSYWRpdXM6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDIwLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnJhZGl1cycsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMTAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jZWxsLFxuICAgIHByb3BlcnR5OiAncmFkaXVzJ1xuICB9LFxuICBjdXN0b21NYXJrZXJzOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuY3VzdG9tTWFya2VycycsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jdXN0b21NYXJrZXJzLFxuICAgIHByb3BlcnR5OiAnY3VzdG9tTWFya2VycydcbiAgfSxcbiAgbGFiZWxzRW5hYmxlZDoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MubGFiZWxzRW5hYmxlZCcsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5sYWJlbHMsXG4gICAgcHJvcGVydHk6ICdsYWJlbHNFbmFibGVkJ1xuICB9LFxuICBjdXN0b21NYXJrZXJzVXJsOiB7XG4gICAgdHlwZTogJ3RleHQnLFxuICAgIGRlZmF1bHRWYWx1ZTogJycsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuYWRkVXJsJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmN1c3RvbU1hcmtlcnMsXG4gICAgcHJvcGVydHk6ICdjdXN0b21NYXJrZXJzVXJsJ1xuICB9LFxuICBjdXN0b21NYXJrZXJzUmFuZ2U6IHtcbiAgICB0eXBlOiAnbWFya2Vycy1yYW5nZS1zZWxlY3QnLFxuICAgIGRlZmF1bHRWYWx1ZTogdW5kZWZpbmVkLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmNvbG9yUmFuZ2UnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY3VzdG9tTWFya2VycyxcbiAgICBwcm9wZXJ0eTogJ2N1c3RvbU1hcmtlcnNSYW5nZSdcbiAgfVxufTtcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vbGF5ZXItZmFjdG9yeScpLkxheWVyVGV4dENvbmZpZ30gKi9cbmV4cG9ydCBjb25zdCBMQVlFUl9URVhUX0NPTkZJR1MgPSB7XG4gIGZvbnRTaXplOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgcmFuZ2U6IFs2LCAzMl0sXG4gICAgdmFsdWUwOiA2LFxuICAgIHN0ZXA6IDEsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIGxhYmVsOiAnRm9udCBzaXplJyxcbiAgICBzaG93SW5wdXQ6IHRydWVcbiAgfSxcbiAgdGV4dEFuY2hvcjoge1xuICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIG9wdGlvbnM6IFsnc3RhcnQnLCAnbWlkZGxlJywgJ2VuZCddLFxuICAgIG11bHRpU2VsZWN0OiBmYWxzZSxcbiAgICBzZWFyY2hhYmxlOiBmYWxzZVxuICB9LFxuICB0ZXh0QWxpZ25tZW50OiB7XG4gICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgb3B0aW9uczogWyd0b3AnLCAnY2VudGVyJywgJ2JvdHRvbSddLFxuICAgIG11bHRpU2VsZWN0OiBmYWxzZSxcbiAgICBzZWFyY2hhYmxlOiBmYWxzZVxuICB9XG59O1xuIl19
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.getTextOffsetByRadius = getTextOffsetByRadius;
|
|
9
|
-
exports.formatTextLabelData = exports.textLabelAccessor =
|
|
9
|
+
exports.formatTextLabelData = exports.textLabelAccessor = void 0;
|
|
10
10
|
|
|
11
11
|
var _dataUtils = require("../utils/data-utils");
|
|
12
12
|
|
|
@@ -31,21 +31,19 @@ var _lodash = _interopRequireDefault(require("lodash.uniq"));
|
|
|
31
31
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
32
32
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
33
33
|
// THE SOFTWARE.
|
|
34
|
-
var defaultPadding = 20;
|
|
35
|
-
exports.defaultPadding = defaultPadding;
|
|
36
|
-
|
|
37
34
|
function getTextOffsetByRadius(radiusScale, getRadius) {
|
|
38
35
|
return function (textLabel) {
|
|
39
36
|
var xMult = textLabel.anchor === 'middle' ? 0 : textLabel.anchor === 'start' ? 1 : -1;
|
|
40
37
|
var yMult = textLabel.alignment === 'center' ? 0 : textLabel.alignment === 'bottom' ? 1 : -1;
|
|
41
|
-
var sizeOffset =
|
|
42
|
-
var
|
|
38
|
+
var sizeOffset = Math.abs(yMult * textLabel.size);
|
|
39
|
+
var xPadding = textLabel.size / 4; // Padding based on font size (font size / 4)
|
|
43
40
|
|
|
44
|
-
var
|
|
41
|
+
var yPadding = textLabel.size;
|
|
42
|
+
var radiusPadding = 1 + 1 / 4; // Padding based on point radius (radius/ 4)
|
|
45
43
|
|
|
46
44
|
return typeof getRadius === 'function' ? function (d) {
|
|
47
|
-
return [xMult * (getRadius(d) * radiusScale *
|
|
48
|
-
} : [xMult * (getRadius * radiusScale *
|
|
45
|
+
return [xMult * (getRadius(d) * radiusScale * radiusPadding + xPadding), yMult * (getRadius(d) * radiusScale * radiusPadding + yPadding)];
|
|
46
|
+
} : [xMult * (getRadius * radiusScale * radiusPadding + xPadding), yMult * (getRadius * radiusScale * radiusPadding + yPadding)];
|
|
49
47
|
};
|
|
50
48
|
}
|
|
51
49
|
|
|
@@ -62,35 +60,14 @@ exports.textLabelAccessor = textLabelAccessor;
|
|
|
62
60
|
|
|
63
61
|
var formatTextLabelData = function formatTextLabelData(_ref) {
|
|
64
62
|
var textLabel = _ref.textLabel,
|
|
65
|
-
triggerChanged = _ref.triggerChanged,
|
|
66
|
-
oldLayerData = _ref.oldLayerData,
|
|
67
|
-
data = _ref.data,
|
|
68
63
|
dataContainer = _ref.dataContainer;
|
|
69
64
|
return textLabel.map(function (tl, i) {
|
|
70
|
-
|
|
71
|
-
// if no field selected,
|
|
72
|
-
return {
|
|
73
|
-
getText: null,
|
|
74
|
-
characterSet: []
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
var getText = textLabelAccessor(tl)(dataContainer);
|
|
79
|
-
var characterSet;
|
|
80
|
-
|
|
81
|
-
if (!triggerChanged["getLabelCharacterSet-".concat(i)] && oldLayerData && oldLayerData.textLabels && oldLayerData.textLabels[i]) {
|
|
82
|
-
characterSet = oldLayerData.textLabels[i].characterSet;
|
|
83
|
-
} else {
|
|
84
|
-
var allLabels = tl.field ? data.map(getText) : [];
|
|
85
|
-
characterSet = (0, _lodash["default"])(allLabels.join(''));
|
|
86
|
-
}
|
|
87
|
-
|
|
65
|
+
var getText = tl.field ? textLabelAccessor(tl)(dataContainer) : null;
|
|
88
66
|
return {
|
|
89
|
-
characterSet: characterSet,
|
|
90
67
|
getText: getText
|
|
91
68
|
};
|
|
92
69
|
});
|
|
93
70
|
};
|
|
94
71
|
|
|
95
72
|
exports.formatTextLabelData = formatTextLabelData;
|
|
96
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllcnMvbGF5ZXItdGV4dC1sYWJlbC5qcyJdLCJuYW1lcyI6WyJnZXRUZXh0T2Zmc2V0QnlSYWRpdXMiLCJyYWRpdXNTY2FsZSIsImdldFJhZGl1cyIsInRleHRMYWJlbCIsInhNdWx0IiwiYW5jaG9yIiwieU11bHQiLCJhbGlnbm1lbnQiLCJzaXplT2Zmc2V0IiwiTWF0aCIsImFicyIsInNpemUiLCJ4UGFkZGluZyIsInlQYWRkaW5nIiwicmFkaXVzUGFkZGluZyIsImQiLCJ0ZXh0TGFiZWxBY2Nlc3NvciIsImRjIiwidmFsIiwiZmllbGQiLCJ2YWx1ZUFjY2Vzc29yIiwiU3RyaW5nIiwiZm9ybWF0VGV4dExhYmVsRGF0YSIsImRhdGFDb250YWluZXIiLCJtYXAiLCJ0bCIsImkiLCJnZXRUZXh0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQXJCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUtPLFNBQVNBLHFCQUFULENBQStCQyxXQUEvQixFQUE0Q0MsU0FBNUMsRUFBdUQ7QUFDNUQsU0FBTyxVQUFBQyxTQUFTLEVBQUk7QUFDbEIsUUFBTUMsS0FBSyxHQUFHRCxTQUFTLENBQUNFLE1BQVYsS0FBcUIsUUFBckIsR0FBZ0MsQ0FBaEMsR0FBb0NGLFNBQVMsQ0FBQ0UsTUFBVixLQUFxQixPQUFyQixHQUErQixDQUEvQixHQUFtQyxDQUFDLENBQXRGO0FBQ0EsUUFBTUMsS0FBSyxHQUFHSCxTQUFTLENBQUNJLFNBQVYsS0FBd0IsUUFBeEIsR0FBbUMsQ0FBbkMsR0FBdUNKLFNBQVMsQ0FBQ0ksU0FBVixLQUF3QixRQUF4QixHQUFtQyxDQUFuQyxHQUF1QyxDQUFDLENBQTdGO0FBRUEsUUFBTUMsVUFBVSxHQUFHQyxJQUFJLENBQUNDLEdBQUwsQ0FBU0osS0FBSyxHQUFHSCxTQUFTLENBQUNRLElBQTNCLENBQW5CO0FBRUEsUUFBTUMsUUFBUSxHQUFHVCxTQUFTLENBQUNRLElBQVYsR0FBaUIsQ0FBbEMsQ0FOa0IsQ0FNbUI7O0FBQ3JDLFFBQU1FLFFBQVEsR0FBR1YsU0FBUyxDQUFDUSxJQUEzQjtBQUNBLFFBQU1HLGFBQWEsR0FBRyxJQUFJLElBQUksQ0FBOUIsQ0FSa0IsQ0FRZTs7QUFFakMsV0FBTyxPQUFPWixTQUFQLEtBQXFCLFVBQXJCLEdBQ0gsVUFBQWEsQ0FBQztBQUFBLGFBQUksQ0FDSFgsS0FBSyxJQUFJRixTQUFTLENBQUNhLENBQUQsQ0FBVCxHQUFlZCxXQUFmLEdBQTZCYSxhQUE3QixHQUE2Q0YsUUFBakQsQ0FERixFQUVITixLQUFLLElBQUlKLFNBQVMsQ0FBQ2EsQ0FBRCxDQUFULEdBQWVkLFdBQWYsR0FBNkJhLGFBQTdCLEdBQTZDRCxRQUFqRCxDQUZGLENBQUo7QUFBQSxLQURFLEdBS0gsQ0FDRVQsS0FBSyxJQUFJRixTQUFTLEdBQUdELFdBQVosR0FBMEJhLGFBQTFCLEdBQTBDRixRQUE5QyxDQURQLEVBRUVOLEtBQUssSUFBSUosU0FBUyxHQUFHRCxXQUFaLEdBQTBCYSxhQUExQixHQUEwQ0QsUUFBOUMsQ0FGUCxDQUxKO0FBU0QsR0FuQkQ7QUFvQkQ7O0FBRU0sSUFBTUcsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFvQixDQUFBYixTQUFTO0FBQUEsU0FBSSxVQUFBYyxFQUFFO0FBQUEsV0FBSSxVQUFBRixDQUFDLEVBQUk7QUFDdkQsVUFBTUcsR0FBRyxHQUFHZixTQUFTLENBQUNnQixLQUFWLENBQWdCQyxhQUFoQixDQUE4QkwsQ0FBOUIsQ0FBWjtBQUNBLGFBQU8sbUNBQW1CRyxHQUFuQixJQUEwQkcsTUFBTSxDQUFDSCxHQUFELENBQWhDLEdBQXdDLEVBQS9DO0FBQ0QsS0FIK0M7QUFBQSxHQUFOO0FBQUEsQ0FBbkM7Ozs7QUFLQSxJQUFNSSxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQXNCLE9BQWdDO0FBQUEsTUFBOUJuQixTQUE4QixRQUE5QkEsU0FBOEI7QUFBQSxNQUFuQm9CLGFBQW1CLFFBQW5CQSxhQUFtQjtBQUNqRSxTQUFPcEIsU0FBUyxDQUFDcUIsR0FBVixDQUFjLFVBQUNDLEVBQUQsRUFBS0MsQ0FBTCxFQUFXO0FBQzlCLFFBQU1DLE9BQU8sR0FBR0YsRUFBRSxDQUFDTixLQUFILEdBQVdILGlCQUFpQixDQUFDUyxFQUFELENBQWpCLENBQXNCRixhQUF0QixDQUFYLEdBQWtELElBQWxFO0FBQ0EsV0FBTztBQUFDSSxNQUFBQSxPQUFPLEVBQVBBO0FBQUQsS0FBUDtBQUNELEdBSE0sQ0FBUDtBQUlELENBTE0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge25vdE51bGxvclVuZGVmaW5lZH0gZnJvbSAndXRpbHMvZGF0YS11dGlscyc7XG5pbXBvcnQgdW5pcSBmcm9tICdsb2Rhc2gudW5pcSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXh0T2Zmc2V0QnlSYWRpdXMocmFkaXVzU2NhbGUsIGdldFJhZGl1cykge1xuICByZXR1cm4gdGV4dExhYmVsID0+IHtcbiAgICBjb25zdCB4TXVsdCA9IHRleHRMYWJlbC5hbmNob3IgPT09ICdtaWRkbGUnID8gMCA6IHRleHRMYWJlbC5hbmNob3IgPT09ICdzdGFydCcgPyAxIDogLTE7XG4gICAgY29uc3QgeU11bHQgPSB0ZXh0TGFiZWwuYWxpZ25tZW50ID09PSAnY2VudGVyJyA/IDAgOiB0ZXh0TGFiZWwuYWxpZ25tZW50ID09PSAnYm90dG9tJyA/IDEgOiAtMTtcblxuICAgIGNvbnN0IHNpemVPZmZzZXQgPSBNYXRoLmFicyh5TXVsdCAqIHRleHRMYWJlbC5zaXplKTtcblxuICAgIGNvbnN0IHhQYWRkaW5nID0gdGV4dExhYmVsLnNpemUgLyA0OyAvLyBQYWRkaW5nIGJhc2VkIG9uIGZvbnQgc2l6ZSAoZm9udCBzaXplIC8gNClcbiAgICBjb25zdCB5UGFkZGluZyA9IHRleHRMYWJlbC5zaXplO1xuICAgIGNvbnN0IHJhZGl1c1BhZGRpbmcgPSAxICsgMSAvIDQ7IC8vIFBhZGRpbmcgYmFzZWQgb24gcG9pbnQgcmFkaXVzIChyYWRpdXMvIDQpXG5cbiAgICByZXR1cm4gdHlwZW9mIGdldFJhZGl1cyA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgPyBkID0+IFtcbiAgICAgICAgICB4TXVsdCAqIChnZXRSYWRpdXMoZCkgKiByYWRpdXNTY2FsZSAqIHJhZGl1c1BhZGRpbmcgKyB4UGFkZGluZyksXG4gICAgICAgICAgeU11bHQgKiAoZ2V0UmFkaXVzKGQpICogcmFkaXVzU2NhbGUgKiByYWRpdXNQYWRkaW5nICsgeVBhZGRpbmcpXG4gICAgICAgIF1cbiAgICAgIDogW1xuICAgICAgICAgIHhNdWx0ICogKGdldFJhZGl1cyAqIHJhZGl1c1NjYWxlICogcmFkaXVzUGFkZGluZyArIHhQYWRkaW5nKSxcbiAgICAgICAgICB5TXVsdCAqIChnZXRSYWRpdXMgKiByYWRpdXNTY2FsZSAqIHJhZGl1c1BhZGRpbmcgKyB5UGFkZGluZylcbiAgICAgICAgXTtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IHRleHRMYWJlbEFjY2Vzc29yID0gdGV4dExhYmVsID0+IGRjID0+IGQgPT4ge1xuICBjb25zdCB2YWwgPSB0ZXh0TGFiZWwuZmllbGQudmFsdWVBY2Nlc3NvcihkKTtcbiAgcmV0dXJuIG5vdE51bGxvclVuZGVmaW5lZCh2YWwpID8gU3RyaW5nKHZhbCkgOiAnJztcbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRUZXh0TGFiZWxEYXRhID0gKHt0ZXh0TGFiZWwsIGRhdGFDb250YWluZXJ9KSA9PiB7XG4gIHJldHVybiB0ZXh0TGFiZWwubWFwKCh0bCwgaSkgPT4ge1xuICAgIGNvbnN0IGdldFRleHQgPSB0bC5maWVsZCA/IHRleHRMYWJlbEFjY2Vzc29yKHRsKShkYXRhQ29udGFpbmVyKSA6IG51bGw7XG4gICAgcmV0dXJuIHtnZXRUZXh0fTtcbiAgfSk7XG59O1xuIl19
|
|
@@ -280,9 +280,6 @@ var PointLayer = /*#__PURE__*/function (_Layer) {
|
|
|
280
280
|
|
|
281
281
|
var textLabels = (0, _layerTextLabel.formatTextLabelData)({
|
|
282
282
|
textLabel: textLabel,
|
|
283
|
-
triggerChanged: triggerChanged,
|
|
284
|
-
oldLayerData: oldLayerData,
|
|
285
|
-
data: data,
|
|
286
283
|
dataContainer: dataContainer
|
|
287
284
|
});
|
|
288
285
|
var accessors = this.getAttributeAccessors({
|
|
@@ -330,8 +327,6 @@ var PointLayer = /*#__PURE__*/function (_Layer) {
|
|
|
330
327
|
var radiusScale = this.getRadiusScale();
|
|
331
328
|
var defaultLayerProps = this.getDefaultDeckLayerProps(opts);
|
|
332
329
|
var brushingProps = this.getBrushingExtensionProps(interactionConfig);
|
|
333
|
-
var getPixelOffset = (0, _layerTextLabel.getTextOffsetByRadius)( // TODO remove this scaling by half here and elsewhere
|
|
334
|
-
customMarkers ? radiusScale / 2 : radiusScale, data.getRadius);
|
|
335
330
|
var extensions = [].concat((0, _toConsumableArray2["default"])(defaultLayerProps.extensions), [brushingExtension]);
|
|
336
331
|
|
|
337
332
|
var updateTriggers = _objectSpread({
|
|
@@ -343,6 +338,7 @@ var PointLayer = /*#__PURE__*/function (_Layer) {
|
|
|
343
338
|
getFilterValue: data.getFilterValue,
|
|
344
339
|
extensions: extensions,
|
|
345
340
|
filterRange: defaultLayerProps.filterRange,
|
|
341
|
+
maskId: defaultLayerProps.maskId,
|
|
346
342
|
visible: defaultLayerProps.visible
|
|
347
343
|
}, brushingProps);
|
|
348
344
|
|
|
@@ -350,7 +346,9 @@ var PointLayer = /*#__PURE__*/function (_Layer) {
|
|
|
350
346
|
var textLabelLayer = this.renderTextLabelLayer({
|
|
351
347
|
getPosition: data.getPosition,
|
|
352
348
|
sharedProps: sharedProps,
|
|
353
|
-
|
|
349
|
+
// TODO remove this scaling by half here and elsewhere
|
|
350
|
+
radiusScale: customMarkers ? radiusScale / 2 : radiusScale,
|
|
351
|
+
getRadius: data.getRadius,
|
|
354
352
|
updateTriggers: updateTriggers
|
|
355
353
|
}, opts);
|
|
356
354
|
|
|
@@ -475,4 +473,4 @@ var PointLayer = /*#__PURE__*/function (_Layer) {
|
|
|
475
473
|
}(_baseLayer["default"]);
|
|
476
474
|
|
|
477
475
|
exports["default"] = PointLayer;
|
|
478
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvcG9pbnQtbGF5ZXIvcG9pbnQtbGF5ZXIuanMiXSwibmFtZXMiOlsicG9pbnRQb3NBY2Nlc3NvciIsImxhdCIsImxuZyIsImFsdGl0dWRlIiwiZGMiLCJkIiwidmFsdWVBdCIsImluZGV4IiwiZmllbGRJZHgiLCJwb2ludFJlcXVpcmVkQ29sdW1ucyIsInBvaW50T3B0aW9uYWxDb2x1bW5zIiwiYnJ1c2hpbmdFeHRlbnNpb24iLCJCcnVzaGluZ0V4dGVuc2lvbiIsInBvaW50VmlzQ29uZmlncyIsInJhZGl1cyIsImN1c3RvbU1hcmtlcnMiLCJjdXN0b21NYXJrZXJzVXJsIiwiY3VzdG9tTWFya2Vyc1JhbmdlIiwibGFiZWxzRW5hYmxlZCIsIm9wYWNpdHkiLCJvdXRsaW5lIiwidGhpY2tuZXNzIiwic3Ryb2tlQ29sb3IiLCJjb2xvclJhbmdlIiwic3Ryb2tlQ29sb3JSYW5nZSIsInJhZGl1c1JhbmdlIiwiZmlsbGVkIiwidHlwZSIsImxhYmVsIiwiZGVmYXVsdFZhbHVlIiwicHJvcGVydHkiLCJQb2ludExheWVyIiwicHJvcHMiLCJyZWdpc3RlclZpc0NvbmZpZyIsImdldFBvc2l0aW9uQWNjZXNzb3IiLCJkYXRhQ29udGFpbmVyIiwiY29uZmlnIiwiY29sdW1ucyIsIlBvaW50TGF5ZXJJY29uIiwiZGVmYXVsdFBvaW50Q29sdW1uUGFpcnMiLCJjb2xvciIsImFjY2Vzc29yIiwiY29uZGl0aW9uIiwidmlzQ29uZmlnIiwia2V5IiwiZmllbGQiLCJzY2FsZSIsImRvbWFpbiIsInJhbmdlIiwiY2hhbm5lbFNjYWxlVHlwZSIsIkNIQU5ORUxfU0NBTEVTIiwic2l6ZSIsImZpeGVkIiwiY3VzdG9tTWFya2VyIiwic3VwcG9ydGVkRmllbGRUeXBlcyIsInJvdGF0aW9uIiwiaWRlbnRpdHkiLCJudWxsVmFsdWUiLCJyb3RhdGlvbkZpZWxkIiwiZGF0YXNldCIsImRlZmF1bHRDb2xvckZpZWxkIiwidXBkYXRlTGF5ZXJDb25maWciLCJjb2xvckZpZWxkIiwidXBkYXRlTGF5ZXJWaXN1YWxDaGFubmVsIiwic3Ryb2tlQ29sb3JGaWVsZCIsInN0cm9rZUNvbG9yRG9tYWluIiwic3Ryb2tlQ29sb3JTY2FsZSIsImN1c3RvbU1hcmtlcnNGaWVsZCIsImN1c3RvbU1hcmtlcnNTY2FsZSIsImdldFBvc2l0aW9uIiwiZmlsdGVyZWRJbmRleCIsImRhdGEiLCJpIiwibGVuZ3RoIiwicG9zIiwiZXZlcnkiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsInB1c2giLCJwb3NpdGlvbiIsImRhdGFzZXRzIiwib2xkTGF5ZXJEYXRhIiwidGV4dExhYmVsIiwiZGF0YUlkIiwiZ3B1RmlsdGVyIiwidXBkYXRlRGF0YSIsInRyaWdnZXJDaGFuZ2VkIiwidGV4dExhYmVscyIsImFjY2Vzc29ycyIsImdldEF0dHJpYnV0ZUFjY2Vzc29ycyIsImdldEZpbHRlclZhbHVlIiwiZmlsdGVyVmFsdWVBY2Nlc3NvciIsImJvdW5kcyIsImdldFBvaW50c0JvdW5kcyIsInVwZGF0ZU1ldGEiLCJvYmplY3RJbmZvIiwicGlja2VkIiwibGF5ZXIiLCJpZCIsIm9wdHMiLCJvYmplY3RIb3ZlcmVkIiwiaW50ZXJhY3Rpb25Db25maWciLCJyYWRpdXNTY2FsZSIsImdldFJhZGl1c1NjYWxlIiwiZGVmYXVsdExheWVyUHJvcHMiLCJnZXREZWZhdWx0RGVja0xheWVyUHJvcHMiLCJicnVzaGluZ1Byb3BzIiwiZ2V0QnJ1c2hpbmdFeHRlbnNpb25Qcm9wcyIsImdldFBpeGVsT2Zmc2V0IiwiZ2V0UmFkaXVzIiwiZXh0ZW5zaW9ucyIsInVwZGF0ZVRyaWdnZXJzIiwiZmlsdGVyVmFsdWVVcGRhdGVUcmlnZ2VycyIsImdldFZpc3VhbENoYW5uZWxVcGRhdGVUcmlnZ2VycyIsInNoYXJlZFByb3BzIiwiZmlsdGVyUmFuZ2UiLCJ2aXNpYmxlIiwiaG92ZXJlZE9iamVjdCIsImhhc0hvdmVyZWRPYmplY3QiLCJ0ZXh0TGFiZWxMYXllciIsInJlbmRlclRleHRMYWJlbExheWVyIiwiY29tbW9uTGF5ZXJQcm9wcyIsInBhcmFtZXRlcnMiLCJkZXB0aFRlc3QiLCJjdXN0b21NYXJrZXJzQ29uZmlndXJlZCIsIkJvb2xlYW4iLCJjdXN0b21NYXJrZXJzTWlzQ29uZmlndXJlZCIsIm1heEljb25TaXplIiwiZ2V0TWF4TWFya2VyU2l6ZSIsInVzZU1hc2siLCJpY29uTGF5ZXJQcm9wcyIsImdldEljb24iLCJnZXRDdXN0b21NYXJrZXJJY29uQWNjZXNzb3IiLCJnZXRJY29uVXJsIiwiZ2V0U2l6ZSIsImdldEFuZ2xlIiwiZ2V0Um90YXRpb24iLCJzaXplU2NhbGUiLCJzaXplVW5pdHMiLCJsb2FkT3B0aW9ucyIsImltYWdlIiwiaW1hZ2ViaXRtYXAiLCJyZXNpemVXaWR0aCIsInJlc2l6ZUhlaWdodCIsInJlc2l6ZVF1YWxpdHkiLCJJY29uTGF5ZXIiLCJnZXRDb2xvciIsImdldEZpbGxDb2xvciIsIlVOS05PV05fQ09MT1IiLCJnZXREZWZhdWx0SG92ZXJMYXllclByb3BzIiwiaGlnaGxpZ2h0Q29sb3IiLCJzY2F0dGVyUGxvdExheWVyUHJvcHMiLCJzdHJva2VkIiwibGluZVdpZHRoU2NhbGUiLCJyYWRpdXNNYXhQaXhlbHMiLCJTY2F0dGVycGxvdExheWVyIiwicmFkaXVzVW5pdHMiLCJsaW5lV2lkdGhVbml0cyIsImdldExpbmVDb2xvciIsImZpZWxkUGFpcnMiLCJmb3JFYWNoIiwicGFpciIsImxhdEZpZWxkIiwibG5nRmllbGQiLCJsYXllck5hbWUiLCJkZWZhdWx0TmFtZSIsInByb3AiLCJ2YWx1ZSIsIkRFRkFVTFRfTEFZRVJfQ09MT1IiLCJpc1Zpc2libGUiLCJvcHRpb25hbCIsIkxheWVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOzs7Ozs7Ozs7O0FBRU8sSUFBTUEsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQjtBQUFBLE1BQUVDLEdBQUYsUUFBRUEsR0FBRjtBQUFBLE1BQU9DLEdBQVAsUUFBT0EsR0FBUDtBQUFBLE1BQVlDLFFBQVosUUFBWUEsUUFBWjtBQUFBLFNBQTBCLFVBQUFDLEVBQUU7QUFBQSxXQUFJLFVBQUFDLENBQUM7QUFBQSxhQUFJLENBQ25FRCxFQUFFLENBQUNFLE9BQUgsQ0FBV0QsQ0FBQyxDQUFDRSxLQUFiLEVBQW9CTCxHQUFHLENBQUNNLFFBQXhCLENBRG1FLEVBRW5FSixFQUFFLENBQUNFLE9BQUgsQ0FBV0QsQ0FBQyxDQUFDRSxLQUFiLEVBQW9CTixHQUFHLENBQUNPLFFBQXhCLENBRm1FLEVBR25FTCxRQUFRLElBQUlBLFFBQVEsQ0FBQ0ssUUFBVCxHQUFvQixDQUFDLENBQWpDLEdBQXFDSixFQUFFLENBQUNFLE9BQUgsQ0FBV0QsQ0FBQyxDQUFDRSxLQUFiLEVBQW9CSixRQUFRLENBQUNLLFFBQTdCLENBQXJDLEdBQThFLENBSFgsQ0FBSjtBQUFBLEtBQUw7QUFBQSxHQUE1QjtBQUFBLENBQXpCOzs7QUFNQSxJQUFNQyxvQkFBb0IsR0FBRyxDQUFDLEtBQUQsRUFBUSxLQUFSLENBQTdCOztBQUNBLElBQU1DLG9CQUFvQixHQUFHLENBQUMsVUFBRCxDQUE3Qjs7QUFFUCxJQUFNQyxpQkFBaUIsR0FBRyxJQUFJQyw2QkFBSixFQUExQjtBQUVPLElBQU1DLGVBQWUsR0FBRztBQUM3QkMsRUFBQUEsTUFBTSxFQUFFLFFBRHFCO0FBRTdCQyxFQUFBQSxhQUFhLEVBQUUsZUFGYztBQUc3QkMsRUFBQUEsZ0JBQWdCLEVBQUUsa0JBSFc7QUFJN0JDLEVBQUFBLGtCQUFrQixFQUFFLG9CQUpTO0FBSzdCQyxFQUFBQSxhQUFhLEVBQUUsZUFMYztBQU03QkMsRUFBQUEsT0FBTyxFQUFFLFNBTm9CO0FBTzdCQyxFQUFBQSxPQUFPLEVBQUUsU0FQb0I7QUFRN0JDLEVBQUFBLFNBQVMsRUFBRSxXQVJrQjtBQVM3QkMsRUFBQUEsV0FBVyxFQUFFLGFBVGdCO0FBVTdCQyxFQUFBQSxVQUFVLEVBQUUsWUFWaUI7QUFXN0JDLEVBQUFBLGdCQUFnQixFQUFFLGtCQVhXO0FBWTdCQyxFQUFBQSxXQUFXLEVBQUUsYUFaZ0I7QUFhN0JDLEVBQUFBLE1BQU0sRUFBRTtBQUNOQyxJQUFBQSxJQUFJLEVBQUUsU0FEQTtBQUVOQyxJQUFBQSxLQUFLLEVBQUUsaUJBRkQ7QUFHTkMsSUFBQUEsWUFBWSxFQUFFLElBSFI7QUFJTkMsSUFBQUEsUUFBUSxFQUFFO0FBSko7QUFicUIsQ0FBeEI7OztJQXFCY0MsVTs7Ozs7QUFDbkIsc0JBQVlDLEtBQVosRUFBbUI7QUFBQTs7QUFBQTtBQUNqQiw4QkFBTUEsS0FBTjs7QUFFQSxVQUFLQyxpQkFBTCxDQUF1QnBCLGVBQXZCOztBQUNBLFVBQUtxQixtQkFBTCxHQUEyQixVQUFBQyxhQUFhO0FBQUEsYUFDdENuQyxnQkFBZ0IsQ0FBQyxNQUFLb0MsTUFBTCxDQUFZQyxPQUFiLENBQWhCLENBQXNDRixhQUF0QyxDQURzQztBQUFBLEtBQXhDOztBQUppQjtBQU1sQjs7OztTQUVELGVBQVc7QUFDVCxhQUFPLE9BQVA7QUFDRDs7O1NBRUQsZUFBbUI7QUFDakIsYUFBTyxLQUFQO0FBQ0Q7OztTQUVELGVBQWdCO0FBQ2QsYUFBT0csMEJBQVA7QUFDRDs7O1NBQ0QsZUFBMkI7QUFDekIsYUFBTzdCLG9CQUFQO0FBQ0Q7OztTQUVELGVBQXNCO0FBQ3BCLGFBQU9DLG9CQUFQO0FBQ0Q7OztTQUVELGVBQWtCO0FBQ2hCLGFBQU8sS0FBSzZCLHVCQUFaO0FBQ0Q7OztTQUVELGVBQWtDO0FBQ2hDLGlMQUE4QyxRQUE5QztBQUNEOzs7U0FFRCxlQUFxQjtBQUNuQixhQUFPO0FBQ0xDLFFBQUFBLEtBQUssa0NBQ0Esc0dBQXFCQSxLQURyQjtBQUVIQyxVQUFBQSxRQUFRLEVBQUUsY0FGUDtBQUdIQyxVQUFBQSxTQUFTLEVBQUUsbUJBQUFOLE1BQU07QUFBQSxtQkFBSUEsTUFBTSxDQUFDTyxTQUFQLENBQWlCakIsTUFBckI7QUFBQSxXQUhkO0FBSUhHLFVBQUFBLFlBQVksRUFBRSxzQkFBQU8sTUFBTTtBQUFBLG1CQUFJQSxNQUFNLENBQUNJLEtBQVg7QUFBQTtBQUpqQixVQURBO0FBT0xsQixRQUFBQSxXQUFXLEVBQUU7QUFDWFEsVUFBQUEsUUFBUSxFQUFFLGFBREM7QUFFWGMsVUFBQUEsR0FBRyxFQUFFLGFBRk07QUFHWEMsVUFBQUEsS0FBSyxFQUFFLGtCQUhJO0FBSVhDLFVBQUFBLEtBQUssRUFBRSxrQkFKSTtBQUtYQyxVQUFBQSxNQUFNLEVBQUUsbUJBTEc7QUFNWEMsVUFBQUEsS0FBSyxFQUFFLGtCQU5JO0FBT1hDLFVBQUFBLGdCQUFnQixFQUFFQyxnQ0FBZVYsS0FQdEI7QUFRWEMsVUFBQUEsUUFBUSxFQUFFLGNBUkM7QUFTWEMsVUFBQUEsU0FBUyxFQUFFLG1CQUFBTixNQUFNO0FBQUEsbUJBQUlBLE1BQU0sQ0FBQ08sU0FBUCxDQUFpQnZCLE9BQXJCO0FBQUEsV0FUTjtBQVVYUyxVQUFBQSxZQUFZLEVBQUUsc0JBQUFPLE1BQU07QUFBQSxtQkFBSUEsTUFBTSxDQUFDTyxTQUFQLENBQWlCckIsV0FBakIsSUFBZ0NjLE1BQU0sQ0FBQ0ksS0FBM0M7QUFBQTtBQVZULFNBUFI7QUFtQkxXLFFBQUFBLElBQUksa0NBQ0Msc0dBQXFCQSxJQUR0QjtBQUVGckIsVUFBQUEsUUFBUSxFQUFFLFFBRlI7QUFHRmtCLFVBQUFBLEtBQUssRUFBRSxhQUhMO0FBSUZDLFVBQUFBLGdCQUFnQixFQUFFLFFBSmhCO0FBS0ZSLFVBQUFBLFFBQVEsRUFBRSxXQUxSO0FBTUZaLFVBQUFBLFlBQVksRUFBRTtBQU5aLFVBbkJDO0FBMkJMZCxRQUFBQSxhQUFhLEVBQUU7QUFDYmUsVUFBQUEsUUFBUSxFQUFFLGVBREc7QUFFYmMsVUFBQUEsR0FBRyxFQUFFLGVBRlE7QUFHYkMsVUFBQUEsS0FBSyxFQUFFLG9CQUhNO0FBSWJDLFVBQUFBLEtBQUssRUFBRSxvQkFKTTtBQUtiQyxVQUFBQSxNQUFNLEVBQUUscUJBTEs7QUFNYkMsVUFBQUEsS0FBSyxFQUFFLG9CQU5NO0FBT2JJLFVBQUFBLEtBQUssRUFBRSxrQkFQTTtBQVFiSCxVQUFBQSxnQkFBZ0IsRUFBRUMsZ0NBQWVHLFlBUnBCO0FBU2JaLFVBQUFBLFFBQVEsRUFBRSxZQVRHO0FBVWJhLFVBQUFBLG1CQUFtQixFQUFFLENBQUMsUUFBRCxDQVZSO0FBV2J6QixVQUFBQSxZQUFZLEVBQUUsc0JBQUFPLE1BQU07QUFBQSxtQkFBSUEsTUFBTSxDQUFDTyxTQUFQLENBQWlCM0IsZ0JBQXJCO0FBQUEsV0FYUDtBQVliMEIsVUFBQUEsU0FBUyxFQUFFLG1CQUFBTixNQUFNO0FBQUEsbUJBQUlBLE1BQU0sQ0FBQ08sU0FBUCxDQUFpQjVCLGFBQXJCO0FBQUE7QUFaSixTQTNCVjtBQXlDTHdDLFFBQUFBLFFBQVEsRUFBRTtBQUNSekIsVUFBQUEsUUFBUSxFQUFFLFVBREY7QUFFUmMsVUFBQUEsR0FBRyxFQUFFLFVBRkc7QUFHUkMsVUFBQUEsS0FBSyxFQUFFLGVBSEM7QUFJUkksVUFBQUEsZ0JBQWdCLEVBQUVDLGdDQUFlTSxRQUp6QjtBQUtSZixVQUFBQSxRQUFRLEVBQUUsYUFMRjtBQU1SYSxVQUFBQSxtQkFBbUIsRUFBRSxDQUFDLE9BQUQsRUFBVSxTQUFWLEVBQXFCLE1BQXJCLEVBQTZCLFFBQTdCLENBTmI7QUFPUnpCLFVBQUFBLFlBQVksRUFBRTtBQUFBLG1CQUFNLENBQU47QUFBQSxXQVBOO0FBUVI0QixVQUFBQSxTQUFTLEVBQUUsQ0FSSDtBQVNSZixVQUFBQSxTQUFTLEVBQUUsbUJBQUFOLE1BQU07QUFBQSxtQkFBSUEsTUFBTSxDQUFDc0IsYUFBWDtBQUFBO0FBVFQ7QUF6Q0wsT0FBUDtBQXFERDs7O1dBRUQsK0JBQXNCQyxPQUF0QixFQUErQjtBQUM3QixVQUFNQyxpQkFBaUIsR0FBRyx5Q0FBc0JELE9BQXRCLENBQTFCOztBQUVBLFVBQUlDLGlCQUFKLEVBQXVCO0FBQ3JCLGFBQUtDLGlCQUFMLENBQXVCO0FBQ3JCQyxVQUFBQSxVQUFVLEVBQUVGO0FBRFMsU0FBdkI7QUFHQSxhQUFLRyx3QkFBTCxDQUE4QkosT0FBOUIsRUFBdUMsT0FBdkM7QUFDRDs7QUFFRCxhQUFPLElBQVA7QUFDRDs7O1dBcUNELGlDQUFrQztBQUFBLFVBQVozQixLQUFZLHVFQUFKLEVBQUk7QUFDaEMscUtBQ2lDQSxLQURqQztBQUdFO0FBQ0FnQyxRQUFBQSxnQkFBZ0IsRUFBRSxJQUpwQjtBQUtFQyxRQUFBQSxpQkFBaUIsRUFBRSxDQUFDLENBQUQsRUFBSSxDQUFKLENBTHJCO0FBTUVDLFFBQUFBLGdCQUFnQixFQUFFLFVBTnBCO0FBUUVDLFFBQUFBLGtCQUFrQixFQUFFLElBUnRCO0FBU0VDLFFBQUFBLGtCQUFrQixFQUFFO0FBVHRCO0FBV0Q7OztXQUVELHVDQUF3Q0MsV0FBeEMsRUFBcUQ7QUFBQSxVQUE3QkMsYUFBNkIsU0FBN0JBLGFBQTZCO0FBQ25ELFVBQU1DLElBQUksR0FBRyxFQUFiOztBQUVBLFdBQUssSUFBSUMsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR0YsYUFBYSxDQUFDRyxNQUFsQyxFQUEwQ0QsQ0FBQyxFQUEzQyxFQUErQztBQUM3QyxZQUFNakUsS0FBSyxHQUFHK0QsYUFBYSxDQUFDRSxDQUFELENBQTNCO0FBQ0EsWUFBTUUsR0FBRyxHQUFHTCxXQUFXLENBQUM7QUFBQzlELFVBQUFBLEtBQUssRUFBTEE7QUFBRCxTQUFELENBQXZCLENBRjZDLENBSTdDO0FBQ0E7O0FBQ0EsWUFBSW1FLEdBQUcsQ0FBQ0MsS0FBSixDQUFVQyxNQUFNLENBQUNDLFFBQWpCLENBQUosRUFBZ0M7QUFDOUJOLFVBQUFBLElBQUksQ0FBQ08sSUFBTCxDQUFVO0FBQ1JDLFlBQUFBLFFBQVEsRUFBRUwsR0FERjtBQUVSbkUsWUFBQUEsS0FBSyxFQUFMQTtBQUZRLFdBQVY7QUFJRDtBQUNGOztBQUNELGFBQU9nRSxJQUFQO0FBQ0Q7OztXQUVELHlCQUFnQlMsUUFBaEIsRUFBMEJDLFlBQTFCLEVBQXdDO0FBQUEsVUFDL0JDLFNBRCtCLEdBQ2xCLEtBQUs5QyxNQURhLENBQy9COEMsU0FEK0I7QUFBQSxrQ0FFSEYsUUFBUSxDQUFDLEtBQUs1QyxNQUFMLENBQVkrQyxNQUFiLENBRkw7QUFBQSxVQUUvQkMsU0FGK0IseUJBRS9CQSxTQUYrQjtBQUFBLFVBRXBCakQsYUFGb0IseUJBRXBCQSxhQUZvQjs7QUFBQSw2QkFHUCxLQUFLa0QsVUFBTCxDQUFnQkwsUUFBaEIsRUFBMEJDLFlBQTFCLENBSE87QUFBQSxVQUcvQlYsSUFIK0Isb0JBRy9CQSxJQUgrQjtBQUFBLFVBR3pCZSxjQUh5QixvQkFHekJBLGNBSHlCOztBQUl0QyxVQUFNakIsV0FBVyxHQUFHLEtBQUtuQyxtQkFBTCxDQUF5QkMsYUFBekIsQ0FBcEIsQ0FKc0MsQ0FNdEM7O0FBQ0EsVUFBTW9ELFVBQVUsR0FBRyx5Q0FBb0I7QUFDckNMLFFBQUFBLFNBQVMsRUFBVEEsU0FEcUM7QUFFckNJLFFBQUFBLGNBQWMsRUFBZEEsY0FGcUM7QUFHckNMLFFBQUFBLFlBQVksRUFBWkEsWUFIcUM7QUFJckNWLFFBQUFBLElBQUksRUFBSkEsSUFKcUM7QUFLckNwQyxRQUFBQSxhQUFhLEVBQWJBO0FBTHFDLE9BQXBCLENBQW5CO0FBUUEsVUFBTXFELFNBQVMsR0FBRyxLQUFLQyxxQkFBTCxDQUEyQjtBQUFDdEQsUUFBQUEsYUFBYSxFQUFiQTtBQUFELE9BQTNCLENBQWxCO0FBRUE7QUFDRW9DLFFBQUFBLElBQUksRUFBSkEsSUFERjtBQUVFRixRQUFBQSxXQUFXLEVBQVhBLFdBRkY7QUFHRXFCLFFBQUFBLGNBQWMsRUFBRU4sU0FBUyxDQUFDTyxtQkFBVixDQUE4QnhELGFBQTlCLEdBSGxCO0FBSUVvRCxRQUFBQSxVQUFVLEVBQVZBO0FBSkYsU0FLS0MsU0FMTDtBQU9EO0FBQ0Q7Ozs7V0FFQSx5QkFBZ0JyRCxhQUFoQixFQUErQjtBQUM3QixVQUFNa0MsV0FBVyxHQUFHLEtBQUtuQyxtQkFBTCxDQUF5QkMsYUFBekIsQ0FBcEI7QUFDQSxVQUFNeUQsTUFBTSxHQUFHLEtBQUtDLGVBQUwsQ0FBcUIxRCxhQUFyQixFQUFvQ2tDLFdBQXBDLENBQWY7QUFDQSxXQUFLeUIsVUFBTCxDQUFnQjtBQUFDRixRQUFBQSxNQUFNLEVBQU5BO0FBQUQsT0FBaEI7QUFDRDs7O1dBRUQsd0JBQWVHLFVBQWYsRUFBMkI7QUFBQTs7QUFDekIsYUFDRyxDQUFBQSxVQUFVLFNBQVYsSUFBQUEsVUFBVSxXQUFWLFlBQUFBLFVBQVUsQ0FBRUMsTUFBWixLQUFzQixDQUFBRCxVQUFVLFNBQVYsSUFBQUEsVUFBVSxXQUFWLGlDQUFBQSxVQUFVLENBQUVFLEtBQVosaUdBQW1CakUsS0FBbkIsZ0ZBQTBCa0UsRUFBMUIsTUFBaUMsS0FBS0EsRUFBN0QsSUFDQSxDQUFBSCxVQUFVLFNBQVYsSUFBQUEsVUFBVSxXQUFWLGtDQUFBQSxVQUFVLENBQUVFLEtBQVosbUdBQW1CakUsS0FBbkIsZ0ZBQTBCa0UsRUFBMUIsZ0JBQW9DLEtBQUtBLEVBQXpDLFVBRkY7QUFJRCxLLENBRUQ7Ozs7V0FDQSxxQkFBWUMsSUFBWixFQUFrQjtBQUFBOztBQUFBLFVBQ1Q1QixJQURTLEdBQzRDNEIsSUFENUMsQ0FDVDVCLElBRFM7QUFBQSxVQUNIYSxTQURHLEdBQzRDZSxJQUQ1QyxDQUNIZixTQURHO0FBQUEsVUFDUWdCLGFBRFIsR0FDNENELElBRDVDLENBQ1FDLGFBRFI7QUFBQSxVQUN1QkMsaUJBRHZCLEdBQzRDRixJQUQ1QyxDQUN1QkUsaUJBRHZCO0FBQUEsa0NBRThDLEtBQUtqRSxNQUFMLENBQVlPLFNBRjFEO0FBQUEsVUFFVDVCLGFBRlMseUJBRVRBLGFBRlM7QUFBQSxVQUVNQyxnQkFGTix5QkFFTUEsZ0JBRk47QUFBQSxVQUV3QkMsa0JBRnhCLHlCQUV3QkEsa0JBRnhCO0FBSWhCLFVBQU1xRixXQUFXLEdBQUcsS0FBS0MsY0FBTCxFQUFwQjtBQUVBLFVBQU1DLGlCQUFpQixHQUFHLEtBQUtDLHdCQUFMLENBQThCTixJQUE5QixDQUExQjtBQUNBLFVBQU1PLGFBQWEsR0FBRyxLQUFLQyx5QkFBTCxDQUErQk4saUJBQS9CLENBQXRCO0FBQ0EsVUFBTU8sY0FBYyxHQUFHLDRDQUNyQjtBQUNBN0YsTUFBQUEsYUFBYSxHQUFHdUYsV0FBVyxHQUFHLENBQWpCLEdBQXFCQSxXQUZiLEVBR3JCL0IsSUFBSSxDQUFDc0MsU0FIZ0IsQ0FBdkI7QUFLQSxVQUFNQyxVQUFVLGlEQUFPTixpQkFBaUIsQ0FBQ00sVUFBekIsSUFBcUNuRyxpQkFBckMsRUFBaEI7O0FBRUEsVUFBTW9HLGNBQWM7QUFDbEIxQyxRQUFBQSxXQUFXLEVBQUUsS0FBS2pDLE1BQUwsQ0FBWUMsT0FEUDtBQUVsQnFELFFBQUFBLGNBQWMsRUFBRU4sU0FBUyxDQUFDNEI7QUFGUixTQUdmLEtBQUtDLDhCQUFMLEVBSGUsQ0FBcEI7O0FBTUEsVUFBTUMsV0FBVztBQUNmeEIsUUFBQUEsY0FBYyxFQUFFbkIsSUFBSSxDQUFDbUIsY0FETjtBQUVmb0IsUUFBQUEsVUFBVSxFQUFWQSxVQUZlO0FBR2ZLLFFBQUFBLFdBQVcsRUFBRVgsaUJBQWlCLENBQUNXLFdBSGhCO0FBSWZDLFFBQUFBLE9BQU8sRUFBRVosaUJBQWlCLENBQUNZO0FBSlosU0FLWlYsYUFMWSxDQUFqQjs7QUFPQSxVQUFNVyxhQUFhLEdBQUcsS0FBS0MsZ0JBQUwsQ0FBc0JsQixhQUF0QixDQUF0QjtBQUVBLFVBQU1tQixjQUFjLEdBQUcsS0FBS0Msb0JBQUwsQ0FDckI7QUFDRW5ELFFBQUFBLFdBQVcsRUFBRUUsSUFBSSxDQUFDRixXQURwQjtBQUVFNkMsUUFBQUEsV0FBVyxFQUFYQSxXQUZGO0FBR0VOLFFBQUFBLGNBQWMsRUFBZEEsY0FIRjtBQUlFRyxRQUFBQSxjQUFjLEVBQWRBO0FBSkYsT0FEcUIsRUFPckJaLElBUHFCLENBQXZCOztBQVNBLFVBQU1zQixnQkFBZ0IsbUNBQ2pCakIsaUJBRGlCO0FBRXBCa0IsUUFBQUEsVUFBVSxFQUFFO0FBQ1Y7QUFDQUMsVUFBQUEsU0FBUyxFQUFFLCtCQUFLdkYsTUFBTCxDQUFZQyxPQUFaLENBQW9CbEMsUUFBcEIsZ0ZBQThCSyxRQUE5QixJQUF5QyxDQUFDO0FBRjNDO0FBRlEsUUFBdEI7O0FBUUEsVUFBTTJELGtCQUFrQixHQUFHLEtBQUsvQixNQUFMLENBQVkrQixrQkFBdkM7QUFDQSxVQUFNeUQsdUJBQXVCLEdBQzNCN0csYUFBYSxJQUFJOEcsT0FBTyxDQUFDN0csZ0JBQWdCLElBQUttRCxrQkFBa0IsSUFBSWxELGtCQUE1QyxDQUQxQjtBQUVBLFVBQU02RywwQkFBMEIsR0FBRy9HLGFBQWEsSUFBSSxDQUFDNkcsdUJBQXJEOztBQUVBLFVBQUlBLHVCQUFKLEVBQTZCO0FBQzNCLFlBQU1HLFdBQVcsR0FBRyxLQUFLQyxnQkFBTCxFQUFwQjtBQUNBLFlBQU1DLE9BQU8sR0FBR0osT0FBTyxDQUFDLEtBQUt6RixNQUFMLENBQVlPLFNBQVosQ0FBc0JqQixNQUF2QixDQUF2QjtBQUNBLFlBQU13RyxjQUFjLEdBQUc7QUFDckJDLFVBQUFBLE9BQU8sRUFBRSxLQUFLQywyQkFBTCxDQUFpQzdELElBQUksQ0FBQzhELFVBQXRDLEVBQWtESixPQUFsRCxDQURZO0FBRXJCNUQsVUFBQUEsV0FBVyxFQUFFRSxJQUFJLENBQUNGLFdBRkc7QUFHckJpRSxVQUFBQSxPQUFPLEVBQUUvRCxJQUFJLENBQUNzQyxTQUhPO0FBSXJCMEIsVUFBQUEsUUFBUSxFQUFFLGdDQUFlaEUsSUFBSSxDQUFDaUUsV0FBcEIsQ0FKVztBQUtyQkMsVUFBQUEsU0FBUyxFQUFFbkMsV0FMVTtBQU1yQm9DLFVBQUFBLFNBQVMsRUFBRSxRQU5VO0FBT3JCQyxVQUFBQSxXQUFXLEVBQUU7QUFDWEMsWUFBQUEsS0FBSyxFQUFFO0FBQ0xqSCxjQUFBQSxJQUFJLEVBQUU7QUFERCxhQURJO0FBSVhrSCxZQUFBQSxXQUFXLEVBQUU7QUFDWEMsY0FBQUEsV0FBVyxFQUFFZixXQURGO0FBRVhnQixjQUFBQSxZQUFZLEVBQUVoQixXQUZIO0FBR1hpQixjQUFBQSxhQUFhLEVBQUU7QUFISjtBQUpGO0FBUFEsU0FBdkI7QUFtQkEsZ0JBQ0UsSUFBSUMsaUJBQUosK0NBQ0t4QixnQkFETCxHQUVLUyxjQUZMO0FBR0VoQyxVQUFBQSxFQUFFLFlBQUtNLGlCQUFpQixDQUFDTixFQUF2QixVQUhKO0FBSUUzQixVQUFBQSxJQUFJLEVBQUVBLElBQUksQ0FBQ0EsSUFKYjtBQUtFMkUsVUFBQUEsUUFBUSxFQUFFLEtBQUs5RyxNQUFMLENBQVlPLFNBQVosQ0FBc0JqQixNQUF0QixHQUErQjZDLElBQUksQ0FBQzRFLFlBQXBDLEdBQW1EQyw4QkFML0Q7QUFNRTFELFVBQUFBLGNBQWMsRUFBRW5CLElBQUksQ0FBQ21CLGNBTnZCO0FBT0VxQixVQUFBQSxjQUFjLEVBQUU7QUFDZHJCLFlBQUFBLGNBQWMsRUFBRXFCLGNBQWMsQ0FBQ3JCLGNBRGpCO0FBRWR3RCxZQUFBQSxRQUFRLGtDQUFNbkMsY0FBYyxDQUFDb0MsWUFBckI7QUFBbUN6SCxjQUFBQSxNQUFNLEVBQUUsS0FBS1UsTUFBTCxDQUFZTyxTQUFaLENBQXNCakI7QUFBakUsY0FGTTtBQUdkeUcsWUFBQUEsT0FBTyxrQ0FBTXBCLGNBQWMsQ0FBQ3NCLFVBQXJCO0FBQWlDTixjQUFBQSxXQUFXLEVBQVhBLFdBQWpDO0FBQThDRSxjQUFBQSxPQUFPLEVBQVBBO0FBQTlDLGNBSE87QUFJZEssWUFBQUEsT0FBTyxFQUFFdkIsY0FBYyxDQUFDRixTQUpWO0FBS2QwQixZQUFBQSxRQUFRLEVBQUV4QixjQUFjLENBQUN5QjtBQUxYO0FBUGxCLFdBREYsNkNBZ0JNbkIsYUFBYSxHQUNiLENBQ0UsSUFBSTRCLGlCQUFKLCtDQUNLZixjQURMLEdBRUssS0FBS21CLHlCQUFMLEVBRkw7QUFHRW5ELFVBQUFBLEVBQUUsWUFBS00saUJBQWlCLENBQUNOLEVBQXZCLGtCQUhKO0FBSUUzQixVQUFBQSxJQUFJLEVBQUUsQ0FBQzhDLGFBQUQsQ0FKUjtBQUtFNkIsVUFBQUEsUUFBUSxFQUFFLEtBQUs5RyxNQUFMLENBQVlrSDtBQUx4QixXQURGLENBRGEsR0FVYixFQTFCTix1Q0EyQksvQixjQTNCTDtBQTZCRDs7QUFFRCxVQUFNZ0MscUJBQXFCLEdBQUc7QUFDNUJDLFFBQUFBLE9BQU8sRUFBRSxLQUFLcEgsTUFBTCxDQUFZTyxTQUFaLENBQXNCdkIsT0FESDtBQUU1Qk0sUUFBQUEsTUFBTSxFQUFFLEtBQUtVLE1BQUwsQ0FBWU8sU0FBWixDQUFzQmpCLE1BRkY7QUFHNUIrSCxRQUFBQSxjQUFjLEVBQUUsS0FBS3JILE1BQUwsQ0FBWU8sU0FBWixDQUFzQnRCLFNBSFY7QUFJNUI7QUFDQWlGLFFBQUFBLFdBQVcsRUFBRXdCLDBCQUEwQixHQUFHeEIsV0FBVyxHQUFHLENBQWpCLEdBQXFCQSxXQUxoQztBQU01Qm9ELFFBQUFBLGVBQWUsRUFBRTtBQU5XLE9BQTlCO0FBU0EsY0FDRSxJQUFJQyx3QkFBSiwyRUFDS2pELGFBREwsR0FFS25DLElBRkwsR0FHS2tELGdCQUhMLEdBSUs4QixxQkFKTDtBQUtFSyxRQUFBQSxXQUFXLEVBQUUsUUFMZjtBQU1FQyxRQUFBQSxjQUFjLEVBQUUsUUFObEI7QUFPRTlDLFFBQUFBLGNBQWMsRUFBZEEsY0FQRjtBQVFFRCxRQUFBQSxVQUFVLEVBQVZBO0FBUkYsU0FERiw2Q0FZTU8sYUFBYSxHQUNiLENBQ0UsSUFBSXNDLHdCQUFKLCtDQUNLLEtBQUtOLHlCQUFMLEVBREwsR0FFS0UscUJBRkw7QUFHRWhGLFFBQUFBLElBQUksRUFBRSxDQUFDOEMsYUFBRCxDQUhSO0FBSUV5QyxRQUFBQSxZQUFZLEVBQUUsS0FBSzFILE1BQUwsQ0FBWWtILGNBSjVCO0FBS0VILFFBQUFBLFlBQVksRUFBRSxLQUFLL0csTUFBTCxDQUFZa0gsY0FMNUI7QUFNRXpDLFFBQUFBLFNBQVMsRUFBRXRDLElBQUksQ0FBQ3NDLFNBTmxCO0FBT0V4QyxRQUFBQSxXQUFXLEVBQUVFLElBQUksQ0FBQ0Y7QUFQcEIsU0FERixDQURhLEdBWWIsRUF4Qk4sdUNBMEJLa0QsY0ExQkw7QUE0QkQ7OztXQTNQRCxzQ0FBZ0Q7QUFBQSxtQ0FBbEJ3QyxVQUFrQjtBQUFBLFVBQWxCQSxVQUFrQixpQ0FBTCxFQUFLO0FBQzlDLFVBQU0vSCxLQUFLLEdBQUcsRUFBZCxDQUQ4QyxDQUc5Qzs7QUFDQStILE1BQUFBLFVBQVUsQ0FBQ0MsT0FBWCxDQUFtQixVQUFBQyxJQUFJLEVBQUk7QUFDekIsWUFBTUMsUUFBUSxHQUFHRCxJQUFJLENBQUNBLElBQUwsQ0FBVWhLLEdBQTNCO0FBQ0EsWUFBTWtLLFFBQVEsR0FBR0YsSUFBSSxDQUFDQSxJQUFMLENBQVUvSixHQUEzQjtBQUNBLFlBQU1rSyxTQUFTLEdBQUdILElBQUksQ0FBQ0ksV0FBdkI7QUFFQSxZQUFNQyxJQUFJLEdBQUc7QUFDWDFJLFVBQUFBLEtBQUssRUFBRXdJLFNBQVMsQ0FBQzNGLE1BQVYsR0FBbUIyRixTQUFuQixHQUErQjtBQUQzQixTQUFiLENBTHlCLENBU3pCOztBQUNBLFlBQUlGLFFBQVEsQ0FBQ0ssS0FBVCxJQUFrQkMsb0NBQXRCLEVBQTJDO0FBQ3pDRixVQUFBQSxJQUFJLENBQUM5SCxLQUFMLEdBQWEsMEJBQVNnSSxxQ0FBb0JOLFFBQVEsQ0FBQ0ssS0FBN0IsQ0FBVCxDQUFiO0FBQ0QsU0Fad0IsQ0FjekI7OztBQUNBLFlBQUl2SSxLQUFLLENBQUN5QyxNQUFOLEtBQWlCLENBQXJCLEVBQXdCO0FBQ3RCNkYsVUFBQUEsSUFBSSxDQUFDRyxTQUFMLEdBQWlCLElBQWpCO0FBQ0Q7O0FBRURILFFBQUFBLElBQUksQ0FBQ2pJLE9BQUwsR0FBZTtBQUNicEMsVUFBQUEsR0FBRyxFQUFFaUssUUFEUTtBQUViaEssVUFBQUEsR0FBRyxFQUFFaUssUUFGUTtBQUdiaEssVUFBQUEsUUFBUSxFQUFFO0FBQUNvSyxZQUFBQSxLQUFLLEVBQUUsSUFBUjtBQUFjL0osWUFBQUEsUUFBUSxFQUFFLENBQUMsQ0FBekI7QUFBNEJrSyxZQUFBQSxRQUFRLEVBQUU7QUFBdEM7QUFIRyxTQUFmO0FBTUExSSxRQUFBQSxLQUFLLENBQUM4QyxJQUFOLENBQVd3RixJQUFYO0FBQ0QsT0ExQkQ7QUE0QkEsYUFBTztBQUFDdEksUUFBQUEsS0FBSyxFQUFMQTtBQUFELE9BQVA7QUFDRDs7O0VBMUlxQzJJLHFCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtCcnVzaGluZ0V4dGVuc2lvbn0gZnJvbSAnQGRlY2suZ2wvZXh0ZW5zaW9ucyc7XG5pbXBvcnQge1NjYXR0ZXJwbG90TGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5pbXBvcnQge0ljb25MYXllcn0gZnJvbSAnQGRlY2suZ2wvbGF5ZXJzJztcblxuaW1wb3J0IExheWVyIGZyb20gJy4uL2Jhc2UtbGF5ZXInO1xuaW1wb3J0IHtoZXhUb1JnYn0gZnJvbSAndXRpbHMvY29sb3ItdXRpbHMnO1xuaW1wb3J0IHtuZWdhdGVBY2Nlc3Nvcn0gZnJvbSAndXRpbHMvbGF5ZXItdXRpbHMnO1xuaW1wb3J0IHtmaW5kRGVmYXVsdENvbG9yRmllbGR9IGZyb20gJ3V0aWxzL2RhdGFzZXQtdXRpbHMnO1xuaW1wb3J0IFBvaW50TGF5ZXJJY29uIGZyb20gJy4vcG9pbnQtbGF5ZXItaWNvbic7XG5pbXBvcnQge0RFRkFVTFRfTEFZRVJfQ09MT1IsIENIQU5ORUxfU0NBTEVTLCBVTktOT1dOX0NPTE9SfSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5cbmltcG9ydCB7Z2V0VGV4dE9mZnNldEJ5UmFkaXVzLCBmb3JtYXRUZXh0TGFiZWxEYXRhfSBmcm9tICcuLi9sYXllci10ZXh0LWxhYmVsJztcblxuZXhwb3J0IGNvbnN0IHBvaW50UG9zQWNjZXNzb3IgPSAoe2xhdCwgbG5nLCBhbHRpdHVkZX0pID0+IGRjID0+IGQgPT4gW1xuICBkYy52YWx1ZUF0KGQuaW5kZXgsIGxuZy5maWVsZElkeCksXG4gIGRjLnZhbHVlQXQoZC5pbmRleCwgbGF0LmZpZWxkSWR4KSxcbiAgYWx0aXR1ZGUgJiYgYWx0aXR1ZGUuZmllbGRJZHggPiAtMSA/IGRjLnZhbHVlQXQoZC5pbmRleCwgYWx0aXR1ZGUuZmllbGRJZHgpIDogMFxuXTtcblxuZXhwb3J0IGNvbnN0IHBvaW50UmVxdWlyZWRDb2x1bW5zID0gWydsYXQnLCAnbG5nJ107XG5leHBvcnQgY29uc3QgcG9pbnRPcHRpb25hbENvbHVtbnMgPSBbJ2FsdGl0dWRlJ107XG5cbmNvbnN0IGJydXNoaW5nRXh0ZW5zaW9uID0gbmV3IEJydXNoaW5nRXh0ZW5zaW9uKCk7XG5cbmV4cG9ydCBjb25zdCBwb2ludFZpc0NvbmZpZ3MgPSB7XG4gIHJhZGl1czogJ3JhZGl1cycsXG4gIGN1c3RvbU1hcmtlcnM6ICdjdXN0b21NYXJrZXJzJyxcbiAgY3VzdG9tTWFya2Vyc1VybDogJ2N1c3RvbU1hcmtlcnNVcmwnLFxuICBjdXN0b21NYXJrZXJzUmFuZ2U6ICdjdXN0b21NYXJrZXJzUmFuZ2UnLFxuICBsYWJlbHNFbmFibGVkOiAnbGFiZWxzRW5hYmxlZCcsXG4gIG9wYWNpdHk6ICdvcGFjaXR5JyxcbiAgb3V0bGluZTogJ291dGxpbmUnLFxuICB0aGlja25lc3M6ICd0aGlja25lc3MnLFxuICBzdHJva2VDb2xvcjogJ3N0cm9rZUNvbG9yJyxcbiAgY29sb3JSYW5nZTogJ2NvbG9yUmFuZ2UnLFxuICBzdHJva2VDb2xvclJhbmdlOiAnc3Ryb2tlQ29sb3JSYW5nZScsXG4gIHJhZGl1c1JhbmdlOiAncmFkaXVzUmFuZ2UnLFxuICBmaWxsZWQ6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgbGFiZWw6ICdsYXllci5maWxsQ29sb3InLFxuICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICBwcm9wZXJ0eTogJ2ZpbGxlZCdcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9pbnRMYXllciBleHRlbmRzIExheWVyIHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyVmlzQ29uZmlnKHBvaW50VmlzQ29uZmlncyk7XG4gICAgdGhpcy5nZXRQb3NpdGlvbkFjY2Vzc29yID0gZGF0YUNvbnRhaW5lciA9PlxuICAgICAgcG9pbnRQb3NBY2Nlc3Nvcih0aGlzLmNvbmZpZy5jb2x1bW5zKShkYXRhQ29udGFpbmVyKTtcbiAgfVxuXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiAncG9pbnQnO1xuICB9XG5cbiAgZ2V0IGlzQWdncmVnYXRlZCgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXQgbGF5ZXJJY29uKCkge1xuICAgIHJldHVybiBQb2ludExheWVySWNvbjtcbiAgfVxuICBnZXQgcmVxdWlyZWRMYXllckNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIHBvaW50UmVxdWlyZWRDb2x1bW5zO1xuICB9XG5cbiAgZ2V0IG9wdGlvbmFsQ29sdW1ucygpIHtcbiAgICByZXR1cm4gcG9pbnRPcHRpb25hbENvbHVtbnM7XG4gIH1cblxuICBnZXQgY29sdW1uUGFpcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFBvaW50Q29sdW1uUGFpcnM7XG4gIH1cblxuICBnZXQgbm9uZUxheWVyRGF0YUFmZmVjdGluZ1Byb3BzKCkge1xuICAgIHJldHVybiBbLi4uc3VwZXIubm9uZUxheWVyRGF0YUFmZmVjdGluZ1Byb3BzLCAncmFkaXVzJ107XG4gIH1cblxuICBnZXQgdmlzdWFsQ2hhbm5lbHMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiB7XG4gICAgICAgIC4uLnN1cGVyLnZpc3VhbENoYW5uZWxzLmNvbG9yLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldEZpbGxDb2xvcicsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcuZmlsbGVkLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGNvbmZpZyA9PiBjb25maWcuY29sb3JcbiAgICAgIH0sXG4gICAgICBzdHJva2VDb2xvcjoge1xuICAgICAgICBwcm9wZXJ0eTogJ3N0cm9rZUNvbG9yJyxcbiAgICAgICAga2V5OiAnc3Ryb2tlQ29sb3InLFxuICAgICAgICBmaWVsZDogJ3N0cm9rZUNvbG9yRmllbGQnLFxuICAgICAgICBzY2FsZTogJ3N0cm9rZUNvbG9yU2NhbGUnLFxuICAgICAgICBkb21haW46ICdzdHJva2VDb2xvckRvbWFpbicsXG4gICAgICAgIHJhbmdlOiAnc3Ryb2tlQ29sb3JSYW5nZScsXG4gICAgICAgIGNoYW5uZWxTY2FsZVR5cGU6IENIQU5ORUxfU0NBTEVTLmNvbG9yLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldExpbmVDb2xvcicsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcub3V0bGluZSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBjb25maWcgPT4gY29uZmlnLnZpc0NvbmZpZy5zdHJva2VDb2xvciB8fCBjb25maWcuY29sb3JcbiAgICAgIH0sXG4gICAgICBzaXplOiB7XG4gICAgICAgIC4uLnN1cGVyLnZpc3VhbENoYW5uZWxzLnNpemUsXG4gICAgICAgIHByb3BlcnR5OiAncmFkaXVzJyxcbiAgICAgICAgcmFuZ2U6ICdyYWRpdXNSYW5nZScsXG4gICAgICAgIGNoYW5uZWxTY2FsZVR5cGU6ICdyYWRpdXMnLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldFJhZGl1cycsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogMVxuICAgICAgfSxcbiAgICAgIGN1c3RvbU1hcmtlcnM6IHtcbiAgICAgICAgcHJvcGVydHk6ICdjdXN0b21NYXJrZXJzJyxcbiAgICAgICAga2V5OiAnY3VzdG9tTWFya2VycycsXG4gICAgICAgIGZpZWxkOiAnY3VzdG9tTWFya2Vyc0ZpZWxkJyxcbiAgICAgICAgc2NhbGU6ICdjdXN0b21NYXJrZXJzU2NhbGUnLFxuICAgICAgICBkb21haW46ICdjdXN0b21NYXJrZXJzRG9tYWluJyxcbiAgICAgICAgcmFuZ2U6ICdjdXN0b21NYXJrZXJzUmFuZ2UnLFxuICAgICAgICBmaXhlZDogJ2N1c3RvbU1hcmtlcnNVcmwnLFxuICAgICAgICBjaGFubmVsU2NhbGVUeXBlOiBDSEFOTkVMX1NDQUxFUy5jdXN0b21NYXJrZXIsXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0SWNvblVybCcsXG4gICAgICAgIHN1cHBvcnRlZEZpZWxkVHlwZXM6IFsnc3RyaW5nJ10sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcuY3VzdG9tTWFya2Vyc1VybCxcbiAgICAgICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLnZpc0NvbmZpZy5jdXN0b21NYXJrZXJzXG4gICAgICB9LFxuICAgICAgcm90YXRpb246IHtcbiAgICAgICAgcHJvcGVydHk6ICdyb3RhdGlvbicsXG4gICAgICAgIGtleTogJ3JvdGF0aW9uJyxcbiAgICAgICAgZmllbGQ6ICdyb3RhdGlvbkZpZWxkJyxcbiAgICAgICAgY2hhbm5lbFNjYWxlVHlwZTogQ0hBTk5FTF9TQ0FMRVMuaWRlbnRpdHksXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0Um90YXRpb24nLFxuICAgICAgICBzdXBwb3J0ZWRGaWVsZFR5cGVzOiBbJ2Zsb2F0JywgJ2ludGVnZXInLCAncmVhbCcsICdudW1iZXInXSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAoKSA9PiAwLFxuICAgICAgICBudWxsVmFsdWU6IDAsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy5yb3RhdGlvbkZpZWxkXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHNldEluaXRpYWxMYXllckNvbmZpZyhkYXRhc2V0KSB7XG4gICAgY29uc3QgZGVmYXVsdENvbG9yRmllbGQgPSBmaW5kRGVmYXVsdENvbG9yRmllbGQoZGF0YXNldCk7XG5cbiAgICBpZiAoZGVmYXVsdENvbG9yRmllbGQpIHtcbiAgICAgIHRoaXMudXBkYXRlTGF5ZXJDb25maWcoe1xuICAgICAgICBjb2xvckZpZWxkOiBkZWZhdWx0Q29sb3JGaWVsZFxuICAgICAgfSk7XG4gICAgICB0aGlzLnVwZGF0ZUxheWVyVmlzdWFsQ2hhbm5lbChkYXRhc2V0LCAnY29sb3InKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHN0YXRpYyBmaW5kRGVmYXVsdExheWVyUHJvcHMoe2ZpZWxkUGFpcnMgPSBbXX0pIHtcbiAgICBjb25zdCBwcm9wcyA9IFtdO1xuXG4gICAgLy8gTWFrZSBsYXllciBmb3IgZWFjaCBwYWlyXG4gICAgZmllbGRQYWlycy5mb3JFYWNoKHBhaXIgPT4ge1xuICAgICAgY29uc3QgbGF0RmllbGQgPSBwYWlyLnBhaXIubGF0O1xuICAgICAgY29uc3QgbG5nRmllbGQgPSBwYWlyLnBhaXIubG5nO1xuICAgICAgY29uc3QgbGF5ZXJOYW1lID0gcGFpci5kZWZhdWx0TmFtZTtcblxuICAgICAgY29uc3QgcHJvcCA9IHtcbiAgICAgICAgbGFiZWw6IGxheWVyTmFtZS5sZW5ndGggPyBsYXllck5hbWUgOiAnUG9pbnQnXG4gICAgICB9O1xuXG4gICAgICAvLyBkZWZhdWx0IGxheWVyIGNvbG9yIGZvciBiZWdpbnRyaXAgYW5kIGRyb3BvZmYgcG9pbnRcbiAgICAgIGlmIChsYXRGaWVsZC52YWx1ZSBpbiBERUZBVUxUX0xBWUVSX0NPTE9SKSB7XG4gICAgICAgIHByb3AuY29sb3IgPSBoZXhUb1JnYihERUZBVUxUX0xBWUVSX0NPTE9SW2xhdEZpZWxkLnZhbHVlXSk7XG4gICAgICB9XG5cbiAgICAgIC8vIHNldCB0aGUgZmlyc3QgbGF5ZXIgdG8gYmUgdmlzaWJsZVxuICAgICAgaWYgKHByb3BzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBwcm9wLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHByb3AuY29sdW1ucyA9IHtcbiAgICAgICAgbGF0OiBsYXRGaWVsZCxcbiAgICAgICAgbG5nOiBsbmdGaWVsZCxcbiAgICAgICAgYWx0aXR1ZGU6IHt2YWx1ZTogbnVsbCwgZmllbGRJZHg6IC0xLCBvcHRpb25hbDogdHJ1ZX1cbiAgICAgIH07XG5cbiAgICAgIHByb3BzLnB1c2gocHJvcCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge3Byb3BzfTtcbiAgfVxuXG4gIGdldERlZmF1bHRMYXllckNvbmZpZyhwcm9wcyA9IHt9KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLmdldERlZmF1bHRMYXllckNvbmZpZyhwcm9wcyksXG5cbiAgICAgIC8vIGFkZCBzdHJva2UgY29sb3IgdmlzdWFsIGNoYW5uZWxcbiAgICAgIHN0cm9rZUNvbG9yRmllbGQ6IG51bGwsXG4gICAgICBzdHJva2VDb2xvckRvbWFpbjogWzAsIDFdLFxuICAgICAgc3Ryb2tlQ29sb3JTY2FsZTogJ3F1YW50aWxlJyxcblxuICAgICAgY3VzdG9tTWFya2Vyc0ZpZWxkOiBudWxsLFxuICAgICAgY3VzdG9tTWFya2Vyc1NjYWxlOiAnb3JkaW5hbCdcbiAgICB9O1xuICB9XG5cbiAgY2FsY3VsYXRlRGF0YUF0dHJpYnV0ZSh7ZmlsdGVyZWRJbmRleH0sIGdldFBvc2l0aW9uKSB7XG4gICAgY29uc3QgZGF0YSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWx0ZXJlZEluZGV4Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBpbmRleCA9IGZpbHRlcmVkSW5kZXhbaV07XG4gICAgICBjb25zdCBwb3MgPSBnZXRQb3NpdGlvbih7aW5kZXh9KTtcblxuICAgICAgLy8gaWYgZG9lc24ndCBoYXZlIHBvaW50IGxhdCBvciBsbmcsIGRvIG5vdCBhZGQgdGhlIHBvaW50XG4gICAgICAvLyBkZWNrLmdsIGNhbid0IGhhbmRsZSBwb3NpdGlvbiA9IG51bGxcbiAgICAgIGlmIChwb3MuZXZlcnkoTnVtYmVyLmlzRmluaXRlKSkge1xuICAgICAgICBkYXRhLnB1c2goe1xuICAgICAgICAgIHBvc2l0aW9uOiBwb3MsXG4gICAgICAgICAgaW5kZXhcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgZm9ybWF0TGF5ZXJEYXRhKGRhdGFzZXRzLCBvbGRMYXllckRhdGEpIHtcbiAgICBjb25zdCB7dGV4dExhYmVsfSA9IHRoaXMuY29uZmlnO1xuICAgIGNvbnN0IHtncHVGaWx0ZXIsIGRhdGFDb250YWluZXJ9ID0gZGF0YXNldHNbdGhpcy5jb25maWcuZGF0YUlkXTtcbiAgICBjb25zdCB7ZGF0YSwgdHJpZ2dlckNoYW5nZWR9ID0gdGhpcy51cGRhdGVEYXRhKGRhdGFzZXRzLCBvbGRMYXllckRhdGEpO1xuICAgIGNvbnN0IGdldFBvc2l0aW9uID0gdGhpcy5nZXRQb3NpdGlvbkFjY2Vzc29yKGRhdGFDb250YWluZXIpO1xuXG4gICAgLy8gZ2V0IGFsbCBkaXN0aW5jdCBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0IGxhYmVsc1xuICAgIGNvbnN0IHRleHRMYWJlbHMgPSBmb3JtYXRUZXh0TGFiZWxEYXRhKHtcbiAgICAgIHRleHRMYWJlbCxcbiAgICAgIHRyaWdnZXJDaGFuZ2VkLFxuICAgICAgb2xkTGF5ZXJEYXRhLFxuICAgICAgZGF0YSxcbiAgICAgIGRhdGFDb250YWluZXJcbiAgICB9KTtcblxuICAgIGNvbnN0IGFjY2Vzc29ycyA9IHRoaXMuZ2V0QXR0cmlidXRlQWNjZXNzb3JzKHtkYXRhQ29udGFpbmVyfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGdldFBvc2l0aW9uLFxuICAgICAgZ2V0RmlsdGVyVmFsdWU6IGdwdUZpbHRlci5maWx0ZXJWYWx1ZUFjY2Vzc29yKGRhdGFDb250YWluZXIpKCksXG4gICAgICB0ZXh0TGFiZWxzLFxuICAgICAgLi4uYWNjZXNzb3JzXG4gICAgfTtcbiAgfVxuICAvKiBlc2xpbnQtZW5hYmxlIGNvbXBsZXhpdHkgKi9cblxuICB1cGRhdGVMYXllck1ldGEoZGF0YUNvbnRhaW5lcikge1xuICAgIGNvbnN0IGdldFBvc2l0aW9uID0gdGhpcy5nZXRQb3NpdGlvbkFjY2Vzc29yKGRhdGFDb250YWluZXIpO1xuICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMuZ2V0UG9pbnRzQm91bmRzKGRhdGFDb250YWluZXIsIGdldFBvc2l0aW9uKTtcbiAgICB0aGlzLnVwZGF0ZU1ldGEoe2JvdW5kc30pO1xuICB9XG5cbiAgaXNMYXllckhvdmVyZWQob2JqZWN0SW5mbykge1xuICAgIHJldHVybiAoXG4gICAgICAob2JqZWN0SW5mbz8ucGlja2VkICYmIG9iamVjdEluZm8/LmxheWVyPy5wcm9wcz8uaWQgPT09IHRoaXMuaWQpIHx8XG4gICAgICBvYmplY3RJbmZvPy5sYXllcj8ucHJvcHM/LmlkID09PSBgJHt0aGlzLmlkfS1pY29uYFxuICAgICk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eSwgbWF4LXN0YXRlbWVudHNcbiAgcmVuZGVyTGF5ZXIob3B0cykge1xuICAgIGNvbnN0IHtkYXRhLCBncHVGaWx0ZXIsIG9iamVjdEhvdmVyZWQsIGludGVyYWN0aW9uQ29uZmlnfSA9IG9wdHM7XG4gICAgY29uc3Qge2N1c3RvbU1hcmtlcnMsIGN1c3RvbU1hcmtlcnNVcmwsIGN1c3RvbU1hcmtlcnNSYW5nZX0gPSB0aGlzLmNvbmZpZy52aXNDb25maWc7XG5cbiAgICBjb25zdCByYWRpdXNTY2FsZSA9IHRoaXMuZ2V0UmFkaXVzU2NhbGUoKTtcblxuICAgIGNvbnN0IGRlZmF1bHRMYXllclByb3BzID0gdGhpcy5nZXREZWZhdWx0RGVja0xheWVyUHJvcHMob3B0cyk7XG4gICAgY29uc3QgYnJ1c2hpbmdQcm9wcyA9IHRoaXMuZ2V0QnJ1c2hpbmdFeHRlbnNpb25Qcm9wcyhpbnRlcmFjdGlvbkNvbmZpZyk7XG4gICAgY29uc3QgZ2V0UGl4ZWxPZmZzZXQgPSBnZXRUZXh0T2Zmc2V0QnlSYWRpdXMoXG4gICAgICAvLyBUT0RPIHJlbW92ZSB0aGlzIHNjYWxpbmcgYnkgaGFsZiBoZXJlIGFuZCBlbHNld2hlcmVcbiAgICAgIGN1c3RvbU1hcmtlcnMgPyByYWRpdXNTY2FsZSAvIDIgOiByYWRpdXNTY2FsZSxcbiAgICAgIGRhdGEuZ2V0UmFkaXVzXG4gICAgKTtcbiAgICBjb25zdCBleHRlbnNpb25zID0gWy4uLmRlZmF1bHRMYXllclByb3BzLmV4dGVuc2lvbnMsIGJydXNoaW5nRXh0ZW5zaW9uXTtcblxuICAgIGNvbnN0IHVwZGF0ZVRyaWdnZXJzID0ge1xuICAgICAgZ2V0UG9zaXRpb246IHRoaXMuY29uZmlnLmNvbHVtbnMsXG4gICAgICBnZXRGaWx0ZXJWYWx1ZTogZ3B1RmlsdGVyLmZpbHRlclZhbHVlVXBkYXRlVHJpZ2dlcnMsXG4gICAgICAuLi50aGlzLmdldFZpc3VhbENoYW5uZWxVcGRhdGVUcmlnZ2VycygpXG4gICAgfTtcblxuICAgIGNvbnN0IHNoYXJlZFByb3BzID0ge1xuICAgICAgZ2V0RmlsdGVyVmFsdWU6IGRhdGEuZ2V0RmlsdGVyVmFsdWUsXG4gICAgICBleHRlbnNpb25zLFxuICAgICAgZmlsdGVyUmFuZ2U6IGRlZmF1bHRMYXllclByb3BzLmZpbHRlclJhbmdlLFxuICAgICAgdmlzaWJsZTogZGVmYXVsdExheWVyUHJvcHMudmlzaWJsZSxcbiAgICAgIC4uLmJydXNoaW5nUHJvcHNcbiAgICB9O1xuICAgIGNvbnN0IGhvdmVyZWRPYmplY3QgPSB0aGlzLmhhc0hvdmVyZWRPYmplY3Qob2JqZWN0SG92ZXJlZCk7XG5cbiAgICBjb25zdCB0ZXh0TGFiZWxMYXllciA9IHRoaXMucmVuZGVyVGV4dExhYmVsTGF5ZXIoXG4gICAgICB7XG4gICAgICAgIGdldFBvc2l0aW9uOiBkYXRhLmdldFBvc2l0aW9uLFxuICAgICAgICBzaGFyZWRQcm9wcyxcbiAgICAgICAgZ2V0UGl4ZWxPZmZzZXQsXG4gICAgICAgIHVwZGF0ZVRyaWdnZXJzXG4gICAgICB9LFxuICAgICAgb3B0c1xuICAgICk7XG4gICAgY29uc3QgY29tbW9uTGF5ZXJQcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRMYXllclByb3BzLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAvLyBjaXJjbGVzIHdpbGwgYmUgZmxhdCBvbiB0aGUgbWFwIHdoZW4gdGhlIGFsdGl0dWRlIGNvbHVtbiBpcyBub3QgdXNlZFxuICAgICAgICBkZXB0aFRlc3Q6IHRoaXMuY29uZmlnLmNvbHVtbnMuYWx0aXR1ZGU/LmZpZWxkSWR4ID4gLTFcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgY3VzdG9tTWFya2Vyc0ZpZWxkID0gdGhpcy5jb25maWcuY3VzdG9tTWFya2Vyc0ZpZWxkO1xuICAgIGNvbnN0IGN1c3RvbU1hcmtlcnNDb25maWd1cmVkID1cbiAgICAgIGN1c3RvbU1hcmtlcnMgJiYgQm9vbGVhbihjdXN0b21NYXJrZXJzVXJsIHx8IChjdXN0b21NYXJrZXJzRmllbGQgJiYgY3VzdG9tTWFya2Vyc1JhbmdlKSk7XG4gICAgY29uc3QgY3VzdG9tTWFya2Vyc01pc0NvbmZpZ3VyZWQgPSBjdXN0b21NYXJrZXJzICYmICFjdXN0b21NYXJrZXJzQ29uZmlndXJlZDtcblxuICAgIGlmIChjdXN0b21NYXJrZXJzQ29uZmlndXJlZCkge1xuICAgICAgY29uc3QgbWF4SWNvblNpemUgPSB0aGlzLmdldE1heE1hcmtlclNpemUoKTtcbiAgICAgIGNvbnN0IHVzZU1hc2sgPSBCb29sZWFuKHRoaXMuY29uZmlnLnZpc0NvbmZpZy5maWxsZWQpO1xuICAgICAgY29uc3QgaWNvbkxheWVyUHJvcHMgPSB7XG4gICAgICAgIGdldEljb246IHRoaXMuZ2V0Q3VzdG9tTWFya2VySWNvbkFjY2Vzc29yKGRhdGEuZ2V0SWNvblVybCwgdXNlTWFzayksXG4gICAgICAgIGdldFBvc2l0aW9uOiBkYXRhLmdldFBvc2l0aW9uLFxuICAgICAgICBnZXRTaXplOiBkYXRhLmdldFJhZGl1cyxcbiAgICAgICAgZ2V0QW5nbGU6IG5lZ2F0ZUFjY2Vzc29yKGRhdGEuZ2V0Um90YXRpb24pLFxuICAgICAgICBzaXplU2NhbGU6IHJhZGl1c1NjYWxlLFxuICAgICAgICBzaXplVW5pdHM6ICdwaXhlbHMnLFxuICAgICAgICBsb2FkT3B0aW9uczoge1xuICAgICAgICAgIGltYWdlOiB7XG4gICAgICAgICAgICB0eXBlOiAnaW1hZ2ViaXRtYXAnXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpbWFnZWJpdG1hcDoge1xuICAgICAgICAgICAgcmVzaXplV2lkdGg6IG1heEljb25TaXplLFxuICAgICAgICAgICAgcmVzaXplSGVpZ2h0OiBtYXhJY29uU2l6ZSxcbiAgICAgICAgICAgIHJlc2l6ZVF1YWxpdHk6ICdoaWdoJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIFtcbiAgICAgICAgbmV3IEljb25MYXllcih7XG4gICAgICAgICAgLi4uY29tbW9uTGF5ZXJQcm9wcyxcbiAgICAgICAgICAuLi5pY29uTGF5ZXJQcm9wcyxcbiAgICAgICAgICBpZDogYCR7ZGVmYXVsdExheWVyUHJvcHMuaWR9LWljb25gLFxuICAgICAgICAgIGRhdGE6IGRhdGEuZGF0YSxcbiAgICAgICAgICBnZXRDb2xvcjogdGhpcy5jb25maWcudmlzQ29uZmlnLmZpbGxlZCA/IGRhdGEuZ2V0RmlsbENvbG9yIDogVU5LTk9XTl9DT0xPUixcbiAgICAgICAgICBnZXRGaWx0ZXJWYWx1ZTogZGF0YS5nZXRGaWx0ZXJWYWx1ZSxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2Vyczoge1xuICAgICAgICAgICAgZ2V0RmlsdGVyVmFsdWU6IHVwZGF0ZVRyaWdnZXJzLmdldEZpbHRlclZhbHVlLFxuICAgICAgICAgICAgZ2V0Q29sb3I6IHsuLi51cGRhdGVUcmlnZ2Vycy5nZXRGaWxsQ29sb3IsIGZpbGxlZDogdGhpcy5jb25maWcudmlzQ29uZmlnLmZpbGxlZH0sXG4gICAgICAgICAgICBnZXRJY29uOiB7Li4udXBkYXRlVHJpZ2dlcnMuZ2V0SWNvblVybCwgbWF4SWNvblNpemUsIHVzZU1hc2t9LFxuICAgICAgICAgICAgZ2V0U2l6ZTogdXBkYXRlVHJpZ2dlcnMuZ2V0UmFkaXVzLFxuICAgICAgICAgICAgZ2V0QW5nbGU6IHVwZGF0ZVRyaWdnZXJzLmdldFJvdGF0aW9uXG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgLi4uKGhvdmVyZWRPYmplY3RcbiAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgbmV3IEljb25MYXllcih7XG4gICAgICAgICAgICAgICAgLi4uaWNvbkxheWVyUHJvcHMsXG4gICAgICAgICAgICAgICAgLi4udGhpcy5nZXREZWZhdWx0SG92ZXJMYXllclByb3BzKCksXG4gICAgICAgICAgICAgICAgaWQ6IGAke2RlZmF1bHRMYXllclByb3BzLmlkfS1pY29uLWhvdmVyZWRgLFxuICAgICAgICAgICAgICAgIGRhdGE6IFtob3ZlcmVkT2JqZWN0XSxcbiAgICAgICAgICAgICAgICBnZXRDb2xvcjogdGhpcy5jb25maWcuaGlnaGxpZ2h0Q29sb3JcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIF1cbiAgICAgICAgICA6IFtdKSxcbiAgICAgICAgLi4udGV4dExhYmVsTGF5ZXJcbiAgICAgIF07XG4gICAgfVxuXG4gICAgY29uc3Qgc2NhdHRlclBsb3RMYXllclByb3BzID0ge1xuICAgICAgc3Ryb2tlZDogdGhpcy5jb25maWcudmlzQ29uZmlnLm91dGxpbmUsXG4gICAgICBmaWxsZWQ6IHRoaXMuY29uZmlnLnZpc0NvbmZpZy5maWxsZWQsXG4gICAgICBsaW5lV2lkdGhTY2FsZTogdGhpcy5jb25maWcudmlzQ29uZmlnLnRoaWNrbmVzcyxcbiAgICAgIC8vIFRPRE86IGludmVudCBiZXR0ZXIgd2F5IHRvIHJlbmRlciBzb21ldGhpbmcgd2hlbiBjdXN0b21NYXJrZXJzIGFyZSBub3QgeWV0IGNvbmZpZ3VyZWRcbiAgICAgIHJhZGl1c1NjYWxlOiBjdXN0b21NYXJrZXJzTWlzQ29uZmlndXJlZCA/IHJhZGl1c1NjYWxlIC8gMiA6IHJhZGl1c1NjYWxlLFxuICAgICAgcmFkaXVzTWF4UGl4ZWxzOiA1MDBcbiAgICB9O1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIG5ldyBTY2F0dGVycGxvdExheWVyKHtcbiAgICAgICAgLi4uYnJ1c2hpbmdQcm9wcyxcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgLi4uY29tbW9uTGF5ZXJQcm9wcyxcbiAgICAgICAgLi4uc2NhdHRlclBsb3RMYXllclByb3BzLFxuICAgICAgICByYWRpdXNVbml0czogJ3BpeGVscycsXG4gICAgICAgIGxpbmVXaWR0aFVuaXRzOiAncGl4ZWxzJyxcbiAgICAgICAgdXBkYXRlVHJpZ2dlcnMsXG4gICAgICAgIGV4dGVuc2lvbnNcbiAgICAgIH0pLFxuICAgICAgLy8gaG92ZXIgbGF5ZXJcbiAgICAgIC4uLihob3ZlcmVkT2JqZWN0XG4gICAgICAgID8gW1xuICAgICAgICAgICAgbmV3IFNjYXR0ZXJwbG90TGF5ZXIoe1xuICAgICAgICAgICAgICAuLi50aGlzLmdldERlZmF1bHRIb3ZlckxheWVyUHJvcHMoKSxcbiAgICAgICAgICAgICAgLi4uc2NhdHRlclBsb3RMYXllclByb3BzLFxuICAgICAgICAgICAgICBkYXRhOiBbaG92ZXJlZE9iamVjdF0sXG4gICAgICAgICAgICAgIGdldExpbmVDb2xvcjogdGhpcy5jb25maWcuaGlnaGxpZ2h0Q29sb3IsXG4gICAgICAgICAgICAgIGdldEZpbGxDb2xvcjogdGhpcy5jb25maWcuaGlnaGxpZ2h0Q29sb3IsXG4gICAgICAgICAgICAgIGdldFJhZGl1czogZGF0YS5nZXRSYWRpdXMsXG4gICAgICAgICAgICAgIGdldFBvc2l0aW9uOiBkYXRhLmdldFBvc2l0aW9uXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXSksXG4gICAgICAvLyB0ZXh0IGxhYmVsIGxheWVyXG4gICAgICAuLi50ZXh0TGFiZWxMYXllclxuICAgIF07XG4gIH1cbn1cbiJdfQ==
|
|
476
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvcG9pbnQtbGF5ZXIvcG9pbnQtbGF5ZXIuanMiXSwibmFtZXMiOlsicG9pbnRQb3NBY2Nlc3NvciIsImxhdCIsImxuZyIsImFsdGl0dWRlIiwiZGMiLCJkIiwidmFsdWVBdCIsImluZGV4IiwiZmllbGRJZHgiLCJwb2ludFJlcXVpcmVkQ29sdW1ucyIsInBvaW50T3B0aW9uYWxDb2x1bW5zIiwiYnJ1c2hpbmdFeHRlbnNpb24iLCJCcnVzaGluZ0V4dGVuc2lvbiIsInBvaW50VmlzQ29uZmlncyIsInJhZGl1cyIsImN1c3RvbU1hcmtlcnMiLCJjdXN0b21NYXJrZXJzVXJsIiwiY3VzdG9tTWFya2Vyc1JhbmdlIiwibGFiZWxzRW5hYmxlZCIsIm9wYWNpdHkiLCJvdXRsaW5lIiwidGhpY2tuZXNzIiwic3Ryb2tlQ29sb3IiLCJjb2xvclJhbmdlIiwic3Ryb2tlQ29sb3JSYW5nZSIsInJhZGl1c1JhbmdlIiwiZmlsbGVkIiwidHlwZSIsImxhYmVsIiwiZGVmYXVsdFZhbHVlIiwicHJvcGVydHkiLCJQb2ludExheWVyIiwicHJvcHMiLCJyZWdpc3RlclZpc0NvbmZpZyIsImdldFBvc2l0aW9uQWNjZXNzb3IiLCJkYXRhQ29udGFpbmVyIiwiY29uZmlnIiwiY29sdW1ucyIsIlBvaW50TGF5ZXJJY29uIiwiZGVmYXVsdFBvaW50Q29sdW1uUGFpcnMiLCJjb2xvciIsImFjY2Vzc29yIiwiY29uZGl0aW9uIiwidmlzQ29uZmlnIiwia2V5IiwiZmllbGQiLCJzY2FsZSIsImRvbWFpbiIsInJhbmdlIiwiY2hhbm5lbFNjYWxlVHlwZSIsIkNIQU5ORUxfU0NBTEVTIiwic2l6ZSIsImZpeGVkIiwiY3VzdG9tTWFya2VyIiwic3VwcG9ydGVkRmllbGRUeXBlcyIsInJvdGF0aW9uIiwiaWRlbnRpdHkiLCJudWxsVmFsdWUiLCJyb3RhdGlvbkZpZWxkIiwiZGF0YXNldCIsImRlZmF1bHRDb2xvckZpZWxkIiwidXBkYXRlTGF5ZXJDb25maWciLCJjb2xvckZpZWxkIiwidXBkYXRlTGF5ZXJWaXN1YWxDaGFubmVsIiwic3Ryb2tlQ29sb3JGaWVsZCIsInN0cm9rZUNvbG9yRG9tYWluIiwic3Ryb2tlQ29sb3JTY2FsZSIsImN1c3RvbU1hcmtlcnNGaWVsZCIsImN1c3RvbU1hcmtlcnNTY2FsZSIsImdldFBvc2l0aW9uIiwiZmlsdGVyZWRJbmRleCIsImRhdGEiLCJpIiwibGVuZ3RoIiwicG9zIiwiZXZlcnkiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsInB1c2giLCJwb3NpdGlvbiIsImRhdGFzZXRzIiwib2xkTGF5ZXJEYXRhIiwidGV4dExhYmVsIiwiZGF0YUlkIiwiZ3B1RmlsdGVyIiwidXBkYXRlRGF0YSIsInRyaWdnZXJDaGFuZ2VkIiwidGV4dExhYmVscyIsImFjY2Vzc29ycyIsImdldEF0dHJpYnV0ZUFjY2Vzc29ycyIsImdldEZpbHRlclZhbHVlIiwiZmlsdGVyVmFsdWVBY2Nlc3NvciIsImJvdW5kcyIsImdldFBvaW50c0JvdW5kcyIsInVwZGF0ZU1ldGEiLCJvYmplY3RJbmZvIiwicGlja2VkIiwibGF5ZXIiLCJpZCIsIm9wdHMiLCJvYmplY3RIb3ZlcmVkIiwiaW50ZXJhY3Rpb25Db25maWciLCJyYWRpdXNTY2FsZSIsImdldFJhZGl1c1NjYWxlIiwiZGVmYXVsdExheWVyUHJvcHMiLCJnZXREZWZhdWx0RGVja0xheWVyUHJvcHMiLCJicnVzaGluZ1Byb3BzIiwiZ2V0QnJ1c2hpbmdFeHRlbnNpb25Qcm9wcyIsImV4dGVuc2lvbnMiLCJ1cGRhdGVUcmlnZ2VycyIsImZpbHRlclZhbHVlVXBkYXRlVHJpZ2dlcnMiLCJnZXRWaXN1YWxDaGFubmVsVXBkYXRlVHJpZ2dlcnMiLCJzaGFyZWRQcm9wcyIsImZpbHRlclJhbmdlIiwibWFza0lkIiwidmlzaWJsZSIsImhvdmVyZWRPYmplY3QiLCJoYXNIb3ZlcmVkT2JqZWN0IiwidGV4dExhYmVsTGF5ZXIiLCJyZW5kZXJUZXh0TGFiZWxMYXllciIsImdldFJhZGl1cyIsImNvbW1vbkxheWVyUHJvcHMiLCJwYXJhbWV0ZXJzIiwiZGVwdGhUZXN0IiwiY3VzdG9tTWFya2Vyc0NvbmZpZ3VyZWQiLCJCb29sZWFuIiwiY3VzdG9tTWFya2Vyc01pc0NvbmZpZ3VyZWQiLCJtYXhJY29uU2l6ZSIsImdldE1heE1hcmtlclNpemUiLCJ1c2VNYXNrIiwiaWNvbkxheWVyUHJvcHMiLCJnZXRJY29uIiwiZ2V0Q3VzdG9tTWFya2VySWNvbkFjY2Vzc29yIiwiZ2V0SWNvblVybCIsImdldFNpemUiLCJnZXRBbmdsZSIsImdldFJvdGF0aW9uIiwic2l6ZVNjYWxlIiwic2l6ZVVuaXRzIiwibG9hZE9wdGlvbnMiLCJpbWFnZSIsImltYWdlYml0bWFwIiwicmVzaXplV2lkdGgiLCJyZXNpemVIZWlnaHQiLCJyZXNpemVRdWFsaXR5IiwiSWNvbkxheWVyIiwiZ2V0Q29sb3IiLCJnZXRGaWxsQ29sb3IiLCJVTktOT1dOX0NPTE9SIiwiZ2V0RGVmYXVsdEhvdmVyTGF5ZXJQcm9wcyIsImhpZ2hsaWdodENvbG9yIiwic2NhdHRlclBsb3RMYXllclByb3BzIiwic3Ryb2tlZCIsImxpbmVXaWR0aFNjYWxlIiwicmFkaXVzTWF4UGl4ZWxzIiwiU2NhdHRlcnBsb3RMYXllciIsInJhZGl1c1VuaXRzIiwibGluZVdpZHRoVW5pdHMiLCJnZXRMaW5lQ29sb3IiLCJmaWVsZFBhaXJzIiwiZm9yRWFjaCIsInBhaXIiLCJsYXRGaWVsZCIsImxuZ0ZpZWxkIiwibGF5ZXJOYW1lIiwiZGVmYXVsdE5hbWUiLCJwcm9wIiwidmFsdWUiLCJERUZBVUxUX0xBWUVSX0NPTE9SIiwiaXNWaXNpYmxlIiwib3B0aW9uYWwiLCJMYXllciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7OztBQUVPLElBQU1BLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBbUI7QUFBQSxNQUFFQyxHQUFGLFFBQUVBLEdBQUY7QUFBQSxNQUFP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LFlBQU1DLElBQUksR0FBRztBQUNYMUksVUFBQUEsS0FBSyxFQUFFd0ksU0FBUyxDQUFDM0YsTUFBVixHQUFtQjJGLFNBQW5CLEdBQStCO0FBRDNCLFNBQWIsQ0FMeUIsQ0FTekI7O0FBQ0EsWUFBSUYsUUFBUSxDQUFDSyxLQUFULElBQWtCQyxvQ0FBdEIsRUFBMkM7QUFDekNGLFVBQUFBLElBQUksQ0FBQzlILEtBQUwsR0FBYSwwQkFBU2dJLHFDQUFvQk4sUUFBUSxDQUFDSyxLQUE3QixDQUFULENBQWI7QUFDRCxTQVp3QixDQWN6Qjs7O0FBQ0EsWUFBSXZJLEtBQUssQ0FBQ3lDLE1BQU4sS0FBaUIsQ0FBckIsRUFBd0I7QUFDdEI2RixVQUFBQSxJQUFJLENBQUNHLFNBQUwsR0FBaUIsSUFBakI7QUFDRDs7QUFFREgsUUFBQUEsSUFBSSxDQUFDakksT0FBTCxHQUFlO0FBQ2JwQyxVQUFBQSxHQUFHLEVBQUVpSyxRQURRO0FBRWJoSyxVQUFBQSxHQUFHLEVBQUVpSyxRQUZRO0FBR2JoSyxVQUFBQSxRQUFRLEVBQUU7QUFBQ29LLFlBQUFBLEtBQUssRUFBRSxJQUFSO0FBQWMvSixZQUFBQSxRQUFRLEVBQUUsQ0FBQyxDQUF6QjtBQUE0QmtLLFlBQUFBLFFBQVEsRUFBRTtBQUF0QztBQUhHLFNBQWY7QUFNQTFJLFFBQUFBLEtBQUssQ0FBQzhDLElBQU4sQ0FBV3dGLElBQVg7QUFDRCxPQTFCRDtBQTRCQSxhQUFPO0FBQUN0SSxRQUFBQSxLQUFLLEVBQUxBO0FBQUQsT0FBUDtBQUNEOzs7RUExSXFDMkkscUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge0JydXNoaW5nRXh0ZW5zaW9ufSBmcm9tICdAZGVjay5nbC9leHRlbnNpb25zJztcbmltcG9ydCB7U2NhdHRlcnBsb3RMYXllcn0gZnJvbSAnQGRlY2suZ2wvbGF5ZXJzJztcbmltcG9ydCB7SWNvbkxheWVyfSBmcm9tICdAZGVjay5nbC9sYXllcnMnO1xuXG5pbXBvcnQgTGF5ZXIgZnJvbSAnLi4vYmFzZS1sYXllcic7XG5pbXBvcnQge2hleFRvUmdifSBmcm9tICd1dGlscy9jb2xvci11dGlscyc7XG5pbXBvcnQge25lZ2F0ZUFjY2Vzc29yfSBmcm9tICd1dGlscy9sYXllci11dGlscyc7XG5pbXBvcnQge2ZpbmREZWZhdWx0Q29sb3JGaWVsZH0gZnJvbSAndXRpbHMvZGF0YXNldC11dGlscyc7XG5pbXBvcnQgUG9pbnRMYXllckljb24gZnJvbSAnLi9wb2ludC1sYXllci1pY29uJztcbmltcG9ydCB7REVGQVVMVF9MQVlFUl9DT0xPUiwgQ0hBTk5FTF9TQ0FMRVMsIFVOS05PV05fQ09MT1J9IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcblxuaW1wb3J0IHtmb3JtYXRUZXh0TGFiZWxEYXRhfSBmcm9tICcuLi9sYXllci10ZXh0LWxhYmVsJztcblxuZXhwb3J0IGNvbnN0IHBvaW50UG9zQWNjZXNzb3IgPSAoe2xhdCwgbG5nLCBhbHRpdHVkZX0pID0+IGRjID0+IGQgPT4gW1xuICBkYy52YWx1ZUF0KGQuaW5kZXgsIGxuZy5maWVsZElkeCksXG4gIGRjLnZhbHVlQXQoZC5pbmRleCwgbGF0LmZpZWxkSWR4KSxcbiAgYWx0aXR1ZGUgJiYgYWx0aXR1ZGUuZmllbGRJZHggPiAtMSA/IGRjLnZhbHVlQXQoZC5pbmRleCwgYWx0aXR1ZGUuZmllbGRJZHgpIDogMFxuXTtcblxuZXhwb3J0IGNvbnN0IHBvaW50UmVxdWlyZWRDb2x1bW5zID0gWydsYXQnLCAnbG5nJ107XG5leHBvcnQgY29uc3QgcG9pbnRPcHRpb25hbENvbHVtbnMgPSBbJ2FsdGl0dWRlJ107XG5cbmNvbnN0IGJydXNoaW5nRXh0ZW5zaW9uID0gbmV3IEJydXNoaW5nRXh0ZW5zaW9uKCk7XG5cbmV4cG9ydCBjb25zdCBwb2ludFZpc0NvbmZpZ3MgPSB7XG4gIHJhZGl1czogJ3JhZGl1cycsXG4gIGN1c3RvbU1hcmtlcnM6ICdjdXN0b21NYXJrZXJzJyxcbiAgY3VzdG9tTWFya2Vyc1VybDogJ2N1c3RvbU1hcmtlcnNVcmwnLFxuICBjdXN0b21NYXJrZXJzUmFuZ2U6ICdjdXN0b21NYXJrZXJzUmFuZ2UnLFxuICBsYWJlbHNFbmFibGVkOiAnbGFiZWxzRW5hYmxlZCcsXG4gIG9wYWNpdHk6ICdvcGFjaXR5JyxcbiAgb3V0bGluZTogJ291dGxpbmUnLFxuICB0aGlja25lc3M6ICd0aGlja25lc3MnLFxuICBzdHJva2VDb2xvcjogJ3N0cm9rZUNvbG9yJyxcbiAgY29sb3JSYW5nZTogJ2NvbG9yUmFuZ2UnLFxuICBzdHJva2VDb2xvclJhbmdlOiAnc3Ryb2tlQ29sb3JSYW5nZScsXG4gIHJhZGl1c1JhbmdlOiAncmFkaXVzUmFuZ2UnLFxuICBmaWxsZWQ6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgbGFiZWw6ICdsYXllci5maWxsQ29sb3InLFxuICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICBwcm9wZXJ0eTogJ2ZpbGxlZCdcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9pbnRMYXllciBleHRlbmRzIExheWVyIHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyVmlzQ29uZmlnKHBvaW50VmlzQ29uZmlncyk7XG4gICAgdGhpcy5nZXRQb3NpdGlvbkFjY2Vzc29yID0gZGF0YUNvbnRhaW5lciA9PlxuICAgICAgcG9pbnRQb3NBY2Nlc3Nvcih0aGlzLmNvbmZpZy5jb2x1bW5zKShkYXRhQ29udGFpbmVyKTtcbiAgfVxuXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiAncG9pbnQnO1xuICB9XG5cbiAgZ2V0IGlzQWdncmVnYXRlZCgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXQgbGF5ZXJJY29uKCkge1xuICAgIHJldHVybiBQb2ludExheWVySWNvbjtcbiAgfVxuICBnZXQgcmVxdWlyZWRMYXllckNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIHBvaW50UmVxdWlyZWRDb2x1bW5zO1xuICB9XG5cbiAgZ2V0IG9wdGlvbmFsQ29sdW1ucygpIHtcbiAgICByZXR1cm4gcG9pbnRPcHRpb25hbENvbHVtbnM7XG4gIH1cblxuICBnZXQgY29sdW1uUGFpcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFBvaW50Q29sdW1uUGFpcnM7XG4gIH1cblxuICBnZXQgbm9uZUxheWVyRGF0YUFmZmVjdGluZ1Byb3BzKCkge1xuICAgIHJldHVybiBbLi4uc3VwZXIubm9uZUxheWVyRGF0YUFmZmVjdGluZ1Byb3BzLCAncmFkaXVzJ107XG4gIH1cblxuICBnZXQgdmlzdWFsQ2hhbm5lbHMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiB7XG4gICAgICAgIC4uLnN1cGVyLnZpc3VhbENoYW5uZWxzLmNvbG9yLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldEZpbGxDb2xvcicsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcuZmlsbGVkLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGNvbmZpZyA9PiBjb25maWcuY29sb3JcbiAgICAgIH0sXG4gICAgICBzdHJva2VDb2xvcjoge1xuICAgICAgICBwcm9wZXJ0eTogJ3N0cm9rZUNvbG9yJyxcbiAgICAgICAga2V5OiAnc3Ryb2tlQ29sb3InLFxuICAgICAgICBmaWVsZDogJ3N0cm9rZUNvbG9yRmllbGQnLFxuICAgICAgICBzY2FsZTogJ3N0cm9rZUNvbG9yU2NhbGUnLFxuICAgICAgICBkb21haW46ICdzdHJva2VDb2xvckRvbWFpbicsXG4gICAgICAgIHJhbmdlOiAnc3Ryb2tlQ29sb3JSYW5nZScsXG4gICAgICAgIGNoYW5uZWxTY2FsZVR5cGU6IENIQU5ORUxfU0NBTEVTLmNvbG9yLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldExpbmVDb2xvcicsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcub3V0bGluZSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBjb25maWcgPT4gY29uZmlnLnZpc0NvbmZpZy5zdHJva2VDb2xvciB8fCBjb25maWcuY29sb3JcbiAgICAgIH0sXG4gICAgICBzaXplOiB7XG4gICAgICAgIC4uLnN1cGVyLnZpc3VhbENoYW5uZWxzLnNpemUsXG4gICAgICAgIHByb3BlcnR5OiAncmFkaXVzJyxcbiAgICAgICAgcmFuZ2U6ICdyYWRpdXNSYW5nZScsXG4gICAgICAgIGNoYW5uZWxTY2FsZVR5cGU6ICdyYWRpdXMnLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldFJhZGl1cycsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogMVxuICAgICAgfSxcbiAgICAgIGN1c3RvbU1hcmtlcnM6IHtcbiAgICAgICAgcHJvcGVydHk6ICdjdXN0b21NYXJrZXJzJyxcbiAgICAgICAga2V5OiAnY3VzdG9tTWFya2VycycsXG4gICAgICAgIGZpZWxkOiAnY3VzdG9tTWFya2Vyc0ZpZWxkJyxcbiAgICAgICAgc2NhbGU6ICdjdXN0b21NYXJrZXJzU2NhbGUnLFxuICAgICAgICBkb21haW46ICdjdXN0b21NYXJrZXJzRG9tYWluJyxcbiAgICAgICAgcmFuZ2U6ICdjdXN0b21NYXJrZXJzUmFuZ2UnLFxuICAgICAgICBmaXhlZDogJ2N1c3RvbU1hcmtlcnNVcmwnLFxuICAgICAgICBjaGFubmVsU2NhbGVUeXBlOiBDSEFOTkVMX1NDQUxFUy5jdXN0b21NYXJrZXIsXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0SWNvblVybCcsXG4gICAgICAgIHN1cHBvcnRlZEZpZWxkVHlwZXM6IFsnc3RyaW5nJ10sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcuY3VzdG9tTWFya2Vyc1VybCxcbiAgICAgICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLnZpc0NvbmZpZy5jdXN0b21NYXJrZXJzXG4gICAgICB9LFxuICAgICAgcm90YXRpb246IHtcbiAgICAgICAgcHJvcGVydHk6ICdyb3RhdGlvbicsXG4gICAgICAgIGtleTogJ3JvdGF0aW9uJyxcbiAgICAgICAgZmllbGQ6ICdyb3RhdGlvbkZpZWxkJyxcbiAgICAgICAgY2hhbm5lbFNjYWxlVHlwZTogQ0hBTk5FTF9TQ0FMRVMuaWRlbnRpdHksXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0Um90YXRpb24nLFxuICAgICAgICBzdXBwb3J0ZWRGaWVsZFR5cGVzOiBbJ2Zsb2F0JywgJ2ludGVnZXInLCAncmVhbCcsICdudW1iZXInXSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAoKSA9PiAwLFxuICAgICAgICBudWxsVmFsdWU6IDAsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy5yb3RhdGlvbkZpZWxkXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHNldEluaXRpYWxMYXllckNvbmZpZyhkYXRhc2V0KSB7XG4gICAgY29uc3QgZGVmYXVsdENvbG9yRmllbGQgPSBmaW5kRGVmYXVsdENvbG9yRmllbGQoZGF0YXNldCk7XG5cbiAgICBpZiAoZGVmYXVsdENvbG9yRmllbGQpIHtcbiAgICAgIHRoaXMudXBkYXRlTGF5ZXJDb25maWcoe1xuICAgICAgICBjb2xvckZpZWxkOiBkZWZhdWx0Q29sb3JGaWVsZFxuICAgICAgfSk7XG4gICAgICB0aGlzLnVwZGF0ZUxheWVyVmlzdWFsQ2hhbm5lbChkYXRhc2V0LCAnY29sb3InKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHN0YXRpYyBmaW5kRGVmYXVsdExheWVyUHJvcHMoe2ZpZWxkUGFpcnMgPSBbXX0pIHtcbiAgICBjb25zdCBwcm9wcyA9IFtdO1xuXG4gICAgLy8gTWFrZSBsYXllciBmb3IgZWFjaCBwYWlyXG4gICAgZmllbGRQYWlycy5mb3JFYWNoKHBhaXIgPT4ge1xuICAgICAgY29uc3QgbGF0RmllbGQgPSBwYWlyLnBhaXIubGF0O1xuICAgICAgY29uc3QgbG5nRmllbGQgPSBwYWlyLnBhaXIubG5nO1xuICAgICAgY29uc3QgbGF5ZXJOYW1lID0gcGFpci5kZWZhdWx0TmFtZTtcblxuICAgICAgY29uc3QgcHJvcCA9IHtcbiAgICAgICAgbGFiZWw6IGxheWVyTmFtZS5sZW5ndGggPyBsYXllck5hbWUgOiAnUG9pbnQnXG4gICAgICB9O1xuXG4gICAgICAvLyBkZWZhdWx0IGxheWVyIGNvbG9yIGZvciBiZWdpbnRyaXAgYW5kIGRyb3BvZmYgcG9pbnRcbiAgICAgIGlmIChsYXRGaWVsZC52YWx1ZSBpbiBERUZBVUxUX0xBWUVSX0NPTE9SKSB7XG4gICAgICAgIHByb3AuY29sb3IgPSBoZXhUb1JnYihERUZBVUxUX0xBWUVSX0NPTE9SW2xhdEZpZWxkLnZhbHVlXSk7XG4gICAgICB9XG5cbiAgICAgIC8vIHNldCB0aGUgZmlyc3QgbGF5ZXIgdG8gYmUgdmlzaWJsZVxuICAgICAgaWYgKHByb3BzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBwcm9wLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHByb3AuY29sdW1ucyA9IHtcbiAgICAgICAgbGF0OiBsYXRGaWVsZCxcbiAgICAgICAgbG5nOiBsbmdGaWVsZCxcbiAgICAgICAgYWx0aXR1ZGU6IHt2YWx1ZTogbnVsbCwgZmllbGRJZHg6IC0xLCBvcHRpb25hbDogdHJ1ZX1cbiAgICAgIH07XG5cbiAgICAgIHByb3BzLnB1c2gocHJvcCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge3Byb3BzfTtcbiAgfVxuXG4gIGdldERlZmF1bHRMYXllckNvbmZpZyhwcm9wcyA9IHt9KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLmdldERlZmF1bHRMYXllckNvbmZpZyhwcm9wcyksXG5cbiAgICAgIC8vIGFkZCBzdHJva2UgY29sb3IgdmlzdWFsIGNoYW5uZWxcbiAgICAgIHN0cm9rZUNvbG9yRmllbGQ6IG51bGwsXG4gICAgICBzdHJva2VDb2xvckRvbWFpbjogWzAsIDFdLFxuICAgICAgc3Ryb2tlQ29sb3JTY2FsZTogJ3F1YW50aWxlJyxcblxuICAgICAgY3VzdG9tTWFya2Vyc0ZpZWxkOiBudWxsLFxuICAgICAgY3VzdG9tTWFya2Vyc1NjYWxlOiAnb3JkaW5hbCdcbiAgICB9O1xuICB9XG5cbiAgY2FsY3VsYXRlRGF0YUF0dHJpYnV0ZSh7ZmlsdGVyZWRJbmRleH0sIGdldFBvc2l0aW9uKSB7XG4gICAgY29uc3QgZGF0YSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWx0ZXJlZEluZGV4Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBpbmRleCA9IGZpbHRlcmVkSW5kZXhbaV07XG4gICAgICBjb25zdCBwb3MgPSBnZXRQb3NpdGlvbih7aW5kZXh9KTtcblxuICAgICAgLy8gaWYgZG9lc24ndCBoYXZlIHBvaW50IGxhdCBvciBsbmcsIGRvIG5vdCBhZGQgdGhlIHBvaW50XG4gICAgICAvLyBkZWNrLmdsIGNhbid0IGhhbmRsZSBwb3NpdGlvbiA9IG51bGxcbiAgICAgIGlmIChwb3MuZXZlcnkoTnVtYmVyLmlzRmluaXRlKSkge1xuICAgICAgICBkYXRhLnB1c2goe1xuICAgICAgICAgIHBvc2l0aW9uOiBwb3MsXG4gICAgICAgICAgaW5kZXhcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgZm9ybWF0TGF5ZXJEYXRhKGRhdGFzZXRzLCBvbGRMYXllckRhdGEpIHtcbiAgICBjb25zdCB7dGV4dExhYmVsfSA9IHRoaXMuY29uZmlnO1xuICAgIGNvbnN0IHtncHVGaWx0ZXIsIGRhdGFDb250YWluZXJ9ID0gZGF0YXNldHNbdGhpcy5jb25maWcuZGF0YUlkXTtcbiAgICBjb25zdCB7ZGF0YSwgdHJpZ2dlckNoYW5nZWR9ID0gdGhpcy51cGRhdGVEYXRhKGRhdGFzZXRzLCBvbGRMYXllckRhdGEpO1xuICAgIGNvbnN0IGdldFBvc2l0aW9uID0gdGhpcy5nZXRQb3NpdGlvbkFjY2Vzc29yKGRhdGFDb250YWluZXIpO1xuXG4gICAgLy8gZ2V0IGFsbCBkaXN0aW5jdCBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0IGxhYmVsc1xuICAgIGNvbnN0IHRleHRMYWJlbHMgPSBmb3JtYXRUZXh0TGFiZWxEYXRhKHt0ZXh0TGFiZWwsIGRhdGFDb250YWluZXJ9KTtcblxuICAgIGNvbnN0IGFjY2Vzc29ycyA9IHRoaXMuZ2V0QXR0cmlidXRlQWNjZXNzb3JzKHtkYXRhQ29udGFpbmVyfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGdldFBvc2l0aW9uLFxuICAgICAgZ2V0RmlsdGVyVmFsdWU6IGdwdUZpbHRlci5maWx0ZXJWYWx1ZUFjY2Vzc29yKGRhdGFDb250YWluZXIpKCksXG4gICAgICB0ZXh0TGFiZWxzLFxuICAgICAgLi4uYWNjZXNzb3JzXG4gICAgfTtcbiAgfVxuICAvKiBlc2xpbnQtZW5hYmxlIGNvbXBsZXhpdHkgKi9cblxuICB1cGRhdGVMYXllck1ldGEoZGF0YUNvbnRhaW5lcikge1xuICAgIGNvbnN0IGdldFBvc2l0aW9uID0gdGhpcy5nZXRQb3NpdGlvbkFjY2Vzc29yKGRhdGFDb250YWluZXIpO1xuICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMuZ2V0UG9pbnRzQm91bmRzKGRhdGFDb250YWluZXIsIGdldFBvc2l0aW9uKTtcbiAgICB0aGlzLnVwZGF0ZU1ldGEoe2JvdW5kc30pO1xuICB9XG5cbiAgaXNMYXllckhvdmVyZWQob2JqZWN0SW5mbykge1xuICAgIHJldHVybiAoXG4gICAgICAob2JqZWN0SW5mbz8ucGlja2VkICYmIG9iamVjdEluZm8/LmxheWVyPy5wcm9wcz8uaWQgPT09IHRoaXMuaWQpIHx8XG4gICAgICBvYmplY3RJbmZvPy5sYXllcj8ucHJvcHM/LmlkID09PSBgJHt0aGlzLmlkfS1pY29uYFxuICAgICk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eSwgbWF4LXN0YXRlbWVudHNcbiAgcmVuZGVyTGF5ZXIob3B0cykge1xuICAgIGNvbnN0IHtkYXRhLCBncHVGaWx0ZXIsIG9iamVjdEhvdmVyZWQsIGludGVyYWN0aW9uQ29uZmlnfSA9IG9wdHM7XG4gICAgY29uc3Qge2N1c3RvbU1hcmtlcnMsIGN1c3RvbU1hcmtlcnNVcmwsIGN1c3RvbU1hcmtlcnNSYW5nZX0gPSB0aGlzLmNvbmZpZy52aXNDb25maWc7XG5cbiAgICBjb25zdCByYWRpdXNTY2FsZSA9IHRoaXMuZ2V0UmFkaXVzU2NhbGUoKTtcblxuICAgIGNvbnN0IGRlZmF1bHRMYXllclByb3BzID0gdGhpcy5nZXREZWZhdWx0RGVja0xheWVyUHJvcHMob3B0cyk7XG4gICAgY29uc3QgYnJ1c2hpbmdQcm9wcyA9IHRoaXMuZ2V0QnJ1c2hpbmdFeHRlbnNpb25Qcm9wcyhpbnRlcmFjdGlvbkNvbmZpZyk7XG4gICAgY29uc3QgZXh0ZW5zaW9ucyA9IFsuLi5kZWZhdWx0TGF5ZXJQcm9wcy5leHRlbnNpb25zLCBicnVzaGluZ0V4dGVuc2lvbl07XG5cbiAgICBjb25zdCB1cGRhdGVUcmlnZ2VycyA9IHtcbiAgICAgIGdldFBvc2l0aW9uOiB0aGlzLmNvbmZpZy5jb2x1bW5zLFxuICAgICAgZ2V0RmlsdGVyVmFsdWU6IGdwdUZpbHRlci5maWx0ZXJWYWx1ZVVwZGF0ZVRyaWdnZXJzLFxuICAgICAgLi4udGhpcy5nZXRWaXN1YWxDaGFubmVsVXBkYXRlVHJpZ2dlcnMoKVxuICAgIH07XG5cbiAgICBjb25zdCBzaGFyZWRQcm9wcyA9IHtcbiAgICAgIGdldEZpbHRlclZhbHVlOiBkYXRhLmdldEZpbHRlclZhbHVlLFxuICAgICAgZXh0ZW5zaW9ucyxcbiAgICAgIGZpbHRlclJhbmdlOiBkZWZhdWx0TGF5ZXJQcm9wcy5maWx0ZXJSYW5nZSxcbiAgICAgIG1hc2tJZDogZGVmYXVsdExheWVyUHJvcHMubWFza0lkLFxuICAgICAgdmlzaWJsZTogZGVmYXVsdExheWVyUHJvcHMudmlzaWJsZSxcbiAgICAgIC4uLmJydXNoaW5nUHJvcHNcbiAgICB9O1xuICAgIGNvbnN0IGhvdmVyZWRPYmplY3QgPSB0aGlzLmhhc0hvdmVyZWRPYmplY3Qob2JqZWN0SG92ZXJlZCk7XG5cbiAgICBjb25zdCB0ZXh0TGFiZWxMYXllciA9IHRoaXMucmVuZGVyVGV4dExhYmVsTGF5ZXIoXG4gICAgICB7XG4gICAgICAgIGdldFBvc2l0aW9uOiBkYXRhLmdldFBvc2l0aW9uLFxuICAgICAgICBzaGFyZWRQcm9wcyxcbiAgICAgICAgLy8gVE9ETyByZW1vdmUgdGhpcyBzY2FsaW5nIGJ5IGhhbGYgaGVyZSBhbmQgZWxzZXdoZXJlXG4gICAgICAgIHJhZGl1c1NjYWxlOiBjdXN0b21NYXJrZXJzID8gcmFkaXVzU2NhbGUgLyAyIDogcmFkaXVzU2NhbGUsXG4gICAgICAgIGdldFJhZGl1czogZGF0YS5nZXRSYWRpdXMsXG4gICAgICAgIHVwZGF0ZVRyaWdnZXJzXG4gICAgICB9LFxuICAgICAgb3B0c1xuICAgICk7XG4gICAgY29uc3QgY29tbW9uTGF5ZXJQcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRMYXllclByb3BzLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAvLyBjaXJjbGVzIHdpbGwgYmUgZmxhdCBvbiB0aGUgbWFwIHdoZW4gdGhlIGFsdGl0dWRlIGNvbHVtbiBpcyBub3QgdXNlZFxuICAgICAgICBkZXB0aFRlc3Q6IHRoaXMuY29uZmlnLmNvbHVtbnMuYWx0aXR1ZGU/LmZpZWxkSWR4ID4gLTFcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgY3VzdG9tTWFya2Vyc0ZpZWxkID0gdGhpcy5jb25maWcuY3VzdG9tTWFya2Vyc0ZpZWxkO1xuICAgIGNvbnN0IGN1c3RvbU1hcmtlcnNDb25maWd1cmVkID1cbiAgICAgIGN1c3RvbU1hcmtlcnMgJiYgQm9vbGVhbihjdXN0b21NYXJrZXJzVXJsIHx8IChjdXN0b21NYXJrZXJzRmllbGQgJiYgY3VzdG9tTWFya2Vyc1JhbmdlKSk7XG4gICAgY29uc3QgY3VzdG9tTWFya2Vyc01pc0NvbmZpZ3VyZWQgPSBjdXN0b21NYXJrZXJzICYmICFjdXN0b21NYXJrZXJzQ29uZmlndXJlZDtcblxuICAgIGlmIChjdXN0b21NYXJrZXJzQ29uZmlndXJlZCkge1xuICAgICAgY29uc3QgbWF4SWNvblNpemUgPSB0aGlzLmdldE1heE1hcmtlclNpemUoKTtcbiAgICAgIGNvbnN0IHVzZU1hc2sgPSBCb29sZWFuKHRoaXMuY29uZmlnLnZpc0NvbmZpZy5maWxsZWQpO1xuICAgICAgY29uc3QgaWNvbkxheWVyUHJvcHMgPSB7XG4gICAgICAgIGdldEljb246IHRoaXMuZ2V0Q3VzdG9tTWFya2VySWNvbkFjY2Vzc29yKGRhdGEuZ2V0SWNvblVybCwgdXNlTWFzayksXG4gICAgICAgIGdldFBvc2l0aW9uOiBkYXRhLmdldFBvc2l0aW9uLFxuICAgICAgICBnZXRTaXplOiBkYXRhLmdldFJhZGl1cyxcbiAgICAgICAgZ2V0QW5nbGU6IG5lZ2F0ZUFjY2Vzc29yKGRhdGEuZ2V0Um90YXRpb24pLFxuICAgICAgICBzaXplU2NhbGU6IHJhZGl1c1NjYWxlLFxuICAgICAgICBzaXplVW5pdHM6ICdwaXhlbHMnLFxuICAgICAgICBsb2FkT3B0aW9uczoge1xuICAgICAgICAgIGltYWdlOiB7XG4gICAgICAgICAgICB0eXBlOiAnaW1hZ2ViaXRtYXAnXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpbWFnZWJpdG1hcDoge1xuICAgICAgICAgICAgcmVzaXplV2lkdGg6IG1heEljb25TaXplLFxuICAgICAgICAgICAgcmVzaXplSGVpZ2h0OiBtYXhJY29uU2l6ZSxcbiAgICAgICAgICAgIHJlc2l6ZVF1YWxpdHk6ICdoaWdoJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIFtcbiAgICAgICAgbmV3IEljb25MYXllcih7XG4gICAgICAgICAgLi4uY29tbW9uTGF5ZXJQcm9wcyxcbiAgICAgICAgICAuLi5pY29uTGF5ZXJQcm9wcyxcbiAgICAgICAgICBpZDogYCR7ZGVmYXVsdExheWVyUHJvcHMuaWR9LWljb25gLFxuICAgICAgICAgIGRhdGE6IGRhdGEuZGF0YSxcbiAgICAgICAgICBnZXRDb2xvcjogdGhpcy5jb25maWcudmlzQ29uZmlnLmZpbGxlZCA/IGRhdGEuZ2V0RmlsbENvbG9yIDogVU5LTk9XTl9DT0xPUixcbiAgICAgICAgICBnZXRGaWx0ZXJWYWx1ZTogZGF0YS5nZXRGaWx0ZXJWYWx1ZSxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2Vyczoge1xuICAgICAgICAgICAgZ2V0RmlsdGVyVmFsdWU6IHVwZGF0ZVRyaWdnZXJzLmdldEZpbHRlclZhbHVlLFxuICAgICAgICAgICAgZ2V0Q29sb3I6IHsuLi51cGRhdGVUcmlnZ2Vycy5nZXRGaWxsQ29sb3IsIGZpbGxlZDogdGhpcy5jb25maWcudmlzQ29uZmlnLmZpbGxlZH0sXG4gICAgICAgICAgICBnZXRJY29uOiB7Li4udXBkYXRlVHJpZ2dlcnMuZ2V0SWNvblVybCwgbWF4SWNvblNpemUsIHVzZU1hc2t9LFxuICAgICAgICAgICAgZ2V0U2l6ZTogdXBkYXRlVHJpZ2dlcnMuZ2V0UmFkaXVzLFxuICAgICAgICAgICAgZ2V0QW5nbGU6IHVwZGF0ZVRyaWdnZXJzLmdldFJvdGF0aW9uXG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgLi4uKGhvdmVyZWRPYmplY3RcbiAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgbmV3IEljb25MYXllcih7XG4gICAgICAgICAgICAgICAgLi4uaWNvbkxheWVyUHJvcHMsXG4gICAgICAgICAgICAgICAgLi4udGhpcy5nZXREZWZhdWx0SG92ZXJMYXllclByb3BzKCksXG4gICAgICAgICAgICAgICAgaWQ6IGAke2RlZmF1bHRMYXllclByb3BzLmlkfS1pY29uLWhvdmVyZWRgLFxuICAgICAgICAgICAgICAgIGRhdGE6IFtob3ZlcmVkT2JqZWN0XSxcbiAgICAgICAgICAgICAgICBnZXRDb2xvcjogdGhpcy5jb25maWcuaGlnaGxpZ2h0Q29sb3JcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIF1cbiAgICAgICAgICA6IFtdKSxcbiAgICAgICAgLi4udGV4dExhYmVsTGF5ZXJcbiAgICAgIF07XG4gICAgfVxuXG4gICAgY29uc3Qgc2NhdHRlclBsb3RMYXllclByb3BzID0ge1xuICAgICAgc3Ryb2tlZDogdGhpcy5jb25maWcudmlzQ29uZmlnLm91dGxpbmUsXG4gICAgICBmaWxsZWQ6IHRoaXMuY29uZmlnLnZpc0NvbmZpZy5maWxsZWQsXG4gICAgICBsaW5lV2lkdGhTY2FsZTogdGhpcy5jb25maWcudmlzQ29uZmlnLnRoaWNrbmVzcyxcbiAgICAgIC8vIFRPRE86IGludmVudCBiZXR0ZXIgd2F5IHRvIHJlbmRlciBzb21ldGhpbmcgd2hlbiBjdXN0b21NYXJrZXJzIGFyZSBub3QgeWV0IGNvbmZpZ3VyZWRcbiAgICAgIHJhZGl1c1NjYWxlOiBjdXN0b21NYXJrZXJzTWlzQ29uZmlndXJlZCA/IHJhZGl1c1NjYWxlIC8gMiA6IHJhZGl1c1NjYWxlLFxuICAgICAgcmFkaXVzTWF4UGl4ZWxzOiA1MDBcbiAgICB9O1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIG5ldyBTY2F0dGVycGxvdExheWVyKHtcbiAgICAgICAgLi4uYnJ1c2hpbmdQcm9wcyxcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgLi4uY29tbW9uTGF5ZXJQcm9wcyxcbiAgICAgICAgLi4uc2NhdHRlclBsb3RMYXllclByb3BzLFxuICAgICAgICByYWRpdXNVbml0czogJ3BpeGVscycsXG4gICAgICAgIGxpbmVXaWR0aFVuaXRzOiAncGl4ZWxzJyxcbiAgICAgICAgdXBkYXRlVHJpZ2dlcnMsXG4gICAgICAgIGV4dGVuc2lvbnNcbiAgICAgIH0pLFxuICAgICAgLy8gaG92ZXIgbGF5ZXJcbiAgICAgIC4uLihob3ZlcmVkT2JqZWN0XG4gICAgICAgID8gW1xuICAgICAgICAgICAgbmV3IFNjYXR0ZXJwbG90TGF5ZXIoe1xuICAgICAgICAgICAgICAuLi50aGlzLmdldERlZmF1bHRIb3ZlckxheWVyUHJvcHMoKSxcbiAgICAgICAgICAgICAgLi4uc2NhdHRlclBsb3RMYXllclByb3BzLFxuICAgICAgICAgICAgICBkYXRhOiBbaG92ZXJlZE9iamVjdF0sXG4gICAgICAgICAgICAgIGdldExpbmVDb2xvcjogdGhpcy5jb25maWcuaGlnaGxpZ2h0Q29sb3IsXG4gICAgICAgICAgICAgIGdldEZpbGxDb2xvcjogdGhpcy5jb25maWcuaGlnaGxpZ2h0Q29sb3IsXG4gICAgICAgICAgICAgIGdldFJhZGl1czogZGF0YS5nZXRSYWRpdXMsXG4gICAgICAgICAgICAgIGdldFBvc2l0aW9uOiBkYXRhLmdldFBvc2l0aW9uXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXSksXG4gICAgICAvLyB0ZXh0IGxhYmVsIGxheWVyXG4gICAgICAuLi50ZXh0TGFiZWxMYXllclxuICAgIF07XG4gIH1cbn1cbiJdfQ==
|