@carto/kepler.gl 0.0.39 → 0.0.40-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/index.js +10 -1
- package/dist/components/map-container.js +14 -1
- package/dist/components/side-panel/layer-panel/layer-configurator.js +9 -4
- package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.js +102 -0
- package/dist/constants/default-settings.js +8 -3
- package/dist/layers/base-layer.js +11 -1
- package/dist/localization/ca.js +4 -1
- package/dist/localization/cn.js +4 -1
- package/dist/localization/en.js +4 -1
- package/dist/localization/es.js +4 -1
- package/dist/localization/fi.js +4 -1
- package/dist/localization/ja.js +4 -1
- package/dist/localization/pt.js +4 -1
- package/dist/localization/ru.js +4 -1
- package/dist/reducers/vis-state-merger.js +3 -2
- package/dist/schemas/vis-state-schema.js +5 -1
- package/package.json +1 -1
- package/src/components/index.js +1 -0
- package/src/components/map-container.js +14 -0
- package/src/components/side-panel/layer-panel/layer-configurator.js +7 -3
- package/src/components/side-panel/layer-panel/layer-visibility-by-zoom.js +99 -0
- package/src/constants/default-settings.js +5 -0
- package/src/layers/base-layer.js +10 -3
- package/src/layers/index.d.ts +1 -0
- package/src/localization/ca.js +3 -0
- package/src/localization/cn.js +3 -0
- package/src/localization/en.js +3 -0
- package/src/localization/es.js +3 -0
- package/src/localization/fi.js +3 -0
- package/src/localization/ja.js +3 -0
- package/src/localization/pt.js +3 -0
- package/src/localization/ru.js +3 -0
- package/src/reducers/vis-state-merger.js +2 -1
- package/src/schemas/schema-manager.d.ts +1 -0
- package/src/schemas/vis-state-schema.js +2 -0
- package/umd/keplergl.min.js +31 -31
package/dist/components/index.js
CHANGED
|
@@ -71,6 +71,7 @@ var _exportNames = {
|
|
|
71
71
|
LayerLabelEditor: true,
|
|
72
72
|
LayerTitleSectionFactory: true,
|
|
73
73
|
TextLabelPanelFactory: true,
|
|
74
|
+
LayerVisibilityByZoomFactory: true,
|
|
74
75
|
SourceDataCatalogFactory: true,
|
|
75
76
|
SourceDataSelectorFactory: true,
|
|
76
77
|
DatasetTitleFactory: true,
|
|
@@ -487,6 +488,12 @@ Object.defineProperty(exports, "TextLabelPanelFactory", {
|
|
|
487
488
|
return _textLabelPanel["default"];
|
|
488
489
|
}
|
|
489
490
|
});
|
|
491
|
+
Object.defineProperty(exports, "LayerVisibilityByZoomFactory", {
|
|
492
|
+
enumerable: true,
|
|
493
|
+
get: function get() {
|
|
494
|
+
return _layerVisibilityByZoom["default"];
|
|
495
|
+
}
|
|
496
|
+
});
|
|
490
497
|
Object.defineProperty(exports, "SourceDataCatalogFactory", {
|
|
491
498
|
enumerable: true,
|
|
492
499
|
get: function get() {
|
|
@@ -1159,6 +1166,8 @@ var _layerPanelHeader = _interopRequireWildcard(require("./side-panel/layer-pane
|
|
|
1159
1166
|
|
|
1160
1167
|
var _textLabelPanel = _interopRequireDefault(require("./side-panel/layer-panel/text-label-panel"));
|
|
1161
1168
|
|
|
1169
|
+
var _layerVisibilityByZoom = _interopRequireDefault(require("./side-panel/layer-panel/layer-visibility-by-zoom"));
|
|
1170
|
+
|
|
1162
1171
|
var _sourceDataCatalog = _interopRequireDefault(require("./side-panel/common/source-data-catalog"));
|
|
1163
1172
|
|
|
1164
1173
|
var _sourceDataSelector = _interopRequireDefault(require("./side-panel/common/source-data-selector"));
|
|
@@ -1433,4 +1442,4 @@ exports.FieldListItemFactory = FieldListItemFactory;
|
|
|
1433
1442
|
var InfoHelper = _container.appInjector.get(_infoHelper["default"]);
|
|
1434
1443
|
|
|
1435
1444
|
exports.InfoHelper = InfoHelper;
|
|
1436
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2luZGV4LmpzIl0sIm5hbWVzIjpbIlRpbWVSYW5nZVNsaWRlciIsImFwcEluamVjdG9yIiwiZ2V0IiwiVGltZVJhbmdlU2xpZGVyRmFjdG9yeSIsIlJhbmdlU2xpZGVyIiwiUmFuZ2VTbGlkZXJGYWN0b3J5IiwiVmlzQ29uZmlnU2xpZGVyIiwiVmlzQ29uZmlnU2xpZGVyRmFjdG9yeSIsIlZpc0NvbmZpZ1N3aXRjaCIsIlZpc0NvbmZpZ1N3aXRjaEZhY3RvcnkiLCJMYXllckNvbmZpZ0dyb3VwIiwiTGF5ZXJDb25maWdHcm91cEZhY3RvcnkiLCJDaGFubmVsQnlWYWx1ZVNlbGVjdG9yIiwiQ2hhbm5lbEJ5VmFsdWVTZWxlY3RvckZhY3RvcnkiLCJDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3IiLCJDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3JGYWN0b3J5IiwiRmllbGRTZWxlY3RvciIsIkZpZWxkU2VsZWN0b3JGYWN0b3J5IiwiRmllbGRUb2tlbiIsIkZpZWxkVG9rZW5GYWN0b3J5IiwiUGFuZWxIZWFkZXJBY3Rpb24iLCJQYW5lbEhlYWRlckFjdGlvbkZhY3RvcnkiLCJGaWVsZExpc3RJdGVtRmFjdG9yeSIsIkZpZWxkTGlzdEl0ZW1GYWN0b3J5RmFjdG9yeSIsIkluZm9IZWxwZXIiLCJJbmZvSGVscGVyRmFjdG9yeSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBS0E7O0FBQ0E7O0FBRUE7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBSUE7O0FBR0E7O0FBQ0E7O0FBR0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBOEJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBN0JBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQWNBOztBQUdBOzs7O0FBZ0NBOztBQTdPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWVBO0FBR0E7QUFlQTtBQXVDQTtBQW9CQTtBQWNBO0FBY0E7QUFVQTtBQUlBO0FBR0E7QUEyQkE7QUEyQkE7QUFDTyxJQUFNQSxlQUFlLEdBQUdDLHVCQUFZQyxHQUFaLENBQWdCQywyQkFBaEIsQ0FBeEI7Ozs7QUFDQSxJQUFNQyxXQUFXLEdBQUdILHVCQUFZQyxHQUFaLENBQWdCRyx1QkFBaEIsQ0FBcEI7Ozs7QUFDQSxJQUFNQyxlQUFlLEdBQUdMLHVCQUFZQyxHQUFaLENBQWdCSywyQkFBaEIsQ0FBeEI7Ozs7QUFDQSxJQUFNQyxlQUFlLEdBQUdQLHVCQUFZQyxHQUFaLENBQWdCTywyQkFBaEIsQ0FBeEI7Ozs7QUFDQSxJQUFNQyxnQkFBZ0IsR0FBR1QsdUJBQVlDLEdBQVosQ0FBZ0JTLDRCQUFoQixDQUF6Qjs7OztBQUNBLElBQU1DLHNCQUFzQixHQUFHWCx1QkFBWUMsR0FBWixDQUFnQlcsZ0RBQWhCLENBQS9COzs7O0FBQ0EsSUFBTUMsMkJBQTJCLEdBQUdiLHVCQUFZQyxHQUFaLENBQWdCYSx1Q0FBaEIsQ0FBcEM7Ozs7QUFDQSxJQUFNQyxhQUFhLEdBQUdmLHVCQUFZQyxHQUFaLENBQWdCZSx5QkFBaEIsQ0FBdEI7Ozs7QUFDQSxJQUFNQyxVQUFVLEdBQUdqQix1QkFBWUMsR0FBWixDQUFnQmlCLHNCQUFoQixDQUFuQjs7OztBQUNBLElBQU1DLGlCQUFpQixHQUFHbkIsdUJBQVlDLEdBQVosQ0FBZ0JtQiw2QkFBaEIsQ0FBMUI7Ozs7QUFDQSxJQUFNQyxvQkFBb0IsR0FBR3JCLHVCQUFZQyxHQUFaLENBQWdCcUIsMENBQWhCLENBQTdCOzs7O0FBQ0EsSUFBTUMsVUFBVSxHQUFHdkIsdUJBQVlDLEdBQVosQ0FBZ0J1QixzQkFBaEIsQ0FBbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgVGltZVJhbmdlU2xpZGVyRmFjdG9yeSBmcm9tICcuL2NvbW1vbi90aW1lLXJhbmdlLXNsaWRlcic7XG5pbXBvcnQgUmFuZ2VTbGlkZXJGYWN0b3J5IGZyb20gJy4vY29tbW9uL3JhbmdlLXNsaWRlcic7XG5pbXBvcnQgVmlzQ29uZmlnU2xpZGVyRmFjdG9yeSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvdmlzLWNvbmZpZy1zbGlkZXInO1xuaW1wb3J0IFZpc0NvbmZpZ1N3aXRjaEZhY3RvcnkgZnJvbSAnLi9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL3Zpcy1jb25maWctc3dpdGNoJztcbmltcG9ydCBMYXllckNvbmZpZ0dyb3VwRmFjdG9yeSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItY29uZmlnLWdyb3VwJztcbmltcG9ydCB7Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvckZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci1jb25maWd1cmF0b3InO1xuaW1wb3J0IENvbG9yRGltZW5zaW9uU2NhbGVTZWxlY3RvckZhY3RvcnkgZnJvbSAnLi9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL2NvbG9yLWRpbWVuc2lvbi1zY2FsZS1zZWxlY3Rvcic7XG5pbXBvcnQgRmllbGRTZWxlY3RvckZhY3RvcnksIHtGaWVsZExpc3RJdGVtRmFjdG9yeUZhY3Rvcnl9IGZyb20gJy4vY29tbW9uL2ZpZWxkLXNlbGVjdG9yJztcbmltcG9ydCBGaWVsZFRva2VuRmFjdG9yeSBmcm9tICcuL2NvbW1vbi9maWVsZC10b2tlbic7XG5pbXBvcnQgUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5IGZyb20gJy4vc2lkZS1wYW5lbC9wYW5lbC1oZWFkZXItYWN0aW9uJztcbmltcG9ydCBJbmZvSGVscGVyRmFjdG9yeSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9pbmZvLWhlbHBlcic7XG5pbXBvcnQge2FwcEluamVjdG9yfSBmcm9tICcuL2NvbnRhaW5lcic7XG5cbi8vIENvbXBvbmVudHNcbmV4cG9ydCB7ZGVmYXVsdCBhcyBLZXBsZXJHbCwgZGVmYXVsdCwgaW5qZWN0Q29tcG9uZW50cywgQ29udGFpbmVyRmFjdG9yeX0gZnJvbSAnLi9jb250YWluZXInO1xuXG4vLyBmYWN0b3JpZXNcbmV4cG9ydCB7ZGVmYXVsdCBhcyBLZXBsZXJHbEZhY3RvcnksIERFRkFVTFRfS0VQTEVSX0dMX1BST1BTfSBmcm9tICcuL2tlcGxlci1nbCc7XG5leHBvcnQge2RlZmF1bHQgYXMgU2lkZVBhbmVsRmFjdG9yeX0gZnJvbSAnLi9zaWRlLXBhbmVsJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBQYW5lbFRpdGxlRmFjdG9yeX0gZnJvbSAnLi9zaWRlLXBhbmVsL3BhbmVsLXRpdGxlJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBNYXBDb250YWluZXJGYWN0b3J5LCBBdHRyaWJ1dGlvbn0gZnJvbSAnLi9tYXAtY29udGFpbmVyJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBNYXBzTGF5b3V0RmFjdG9yeX0gZnJvbSAnLi9tYXBzLWxheW91dCc7XG5leHBvcnQge1xuICBkZWZhdWx0IGFzIEJvdHRvbVdpZGdldEZhY3RvcnksXG4gIExheWVyQW5pbWF0aW9uQ29udHJvbGxlckZhY3RvcnksXG4gIEZpbHRlckFuaW1hdGlvbkNvbnRyb2xsZXJGYWN0b3J5XG59IGZyb20gJy4vYm90dG9tLXdpZGdldCc7XG5leHBvcnQge2RlZmF1bHQgYXMgTW9kYWxDb250YWluZXJGYWN0b3J5fSBmcm9tICcuL21vZGFsLWNvbnRhaW5lcic7XG5leHBvcnQge2RlZmF1bHQgYXMgUGxvdENvbnRhaW5lckZhY3Rvcnl9IGZyb20gJy4vcGxvdC1jb250YWluZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEdlb2NvZGVyUGFuZWxGYWN0b3J5fSBmcm9tICcuL2dlb2NvZGVyLXBhbmVsJztcblxuLy8gLy8gc2lkZSBwYW5lbCBmYWN0b3JpZXNcbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMgUGFuZWxIZWFkZXJGYWN0b3J5LFxuICBTYXZlRXhwb3J0RHJvcGRvd25GYWN0b3J5LFxuICBQYW5lbEhlYWRlckRyb3Bkb3duRmFjdG9yeVxufSBmcm9tICcuL3NpZGUtcGFuZWwvcGFuZWwtaGVhZGVyJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9wYW5lbC1oZWFkZXItYWN0aW9uJztcbmV4cG9ydCB7Q29sbGFwc2VCdXR0b25GYWN0b3J5LCBkZWZhdWx0IGFzIFNpZGViYXJGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvc2lkZS1iYXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIFBhbmVsVG9nZ2xlRmFjdG9yeX0gZnJvbSAnLi9zaWRlLXBhbmVsL3BhbmVsLXRvZ2dsZSc7XG5leHBvcnQge2RlZmF1bHQgYXMgUGFuZWxUYWJGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvcGFuZWwtdGFiJztcblxuZXhwb3J0IHtcbiAgQWRkRGF0YUJ1dHRvbkZhY3RvcnksXG4gIExheWVyQmxlbmRpbmdTZWxlY3RvckZhY3RvcnksXG4gIGRlZmF1bHQgYXMgTGF5ZXJNYW5hZ2VyRmFjdG9yeVxufSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItbWFuYWdlcic7XG5leHBvcnQge2RlZmF1bHQgYXMgTGF5ZXJQYW5lbEZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci1wYW5lbCc7XG5leHBvcnQge2RlZmF1bHQgYXMgTGF5ZXJQYW5lbEhlYWRlckZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci1wYW5lbC1oZWFkZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIExheWVyQ29uZmlndXJhdG9yRmFjdG9yeX0gZnJvbSAnLi9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL2xheWVyLWNvbmZpZ3VyYXRvcic7XG5leHBvcnQge2RlZmF1bHQgYXMgVGV4dExhYmVsUGFuZWxGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvdGV4dC1sYWJlbC1wYW5lbCc7XG5leHBvcnQge0xheWVyQ29uZmlnR3JvdXBMYWJlbEZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci1jb25maWctZ3JvdXAnO1xuXG5leHBvcnQge2RlZmF1bHQgYXMgU291cmNlRGF0YUNhdGFsb2dGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvY29tbW9uL3NvdXJjZS1kYXRhLWNhdGFsb2cnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIFNvdXJjZURhdGFTZWxlY3RvckZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9jb21tb24vc291cmNlLWRhdGEtc2VsZWN0b3InO1xuZXhwb3J0IHtkZWZhdWx0IGFzIERhdGFzZXRUaXRsZUZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9jb21tb24vZGF0YXNldC10aXRsZSc7XG5leHBvcnQge2RlZmF1bHQgYXMgRGF0YXNldEluZm9GYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvY29tbW9uL2RhdGFzZXQtaW5mbyc7XG5leHBvcnQge2RlZmF1bHQgYXMgRGF0YXNldFRhZ0ZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9jb21tb24vZGF0YXNldC10YWcnO1xuXG5leHBvcnQge2RlZmF1bHQgYXMgRmlsdGVyTWFuYWdlckZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9maWx0ZXItbWFuYWdlcic7XG5leHBvcnQge2RlZmF1bHQgYXMgRmlsdGVyUGFuZWxGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvZmlsdGVyLXBhbmVsL2ZpbHRlci1wYW5lbCc7XG5cbmV4cG9ydCB7ZGVmYXVsdCBhcyBJbnRlcmFjdGlvbk1hbmFnZXJGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvaW50ZXJhY3Rpb24tbWFuYWdlcic7XG5leHBvcnQge2RlZmF1bHQgYXMgQnJ1c2hDb25maWdGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvaW50ZXJhY3Rpb24tcGFuZWwvYnJ1c2gtY29uZmlnJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBUb29sdGlwQ29uZmlnRmFjdG9yeX0gZnJvbSAnLi9zaWRlLXBhbmVsL2ludGVyYWN0aW9uLXBhbmVsL3Rvb2x0aXAtY29uZmlnJztcblxuZXhwb3J0IHtkZWZhdWx0IGFzIE1hcE1hbmFnZXJGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvbWFwLW1hbmFnZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIExheWVyR3JvdXBTZWxlY3RvckZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9tYXAtc3R5bGUtcGFuZWwvbWFwLWxheWVyLXNlbGVjdG9yJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBNYXBTdHlsZVNlbGVjdG9yRmFjdG9yeX0gZnJvbSAnLi9zaWRlLXBhbmVsL21hcC1zdHlsZS1wYW5lbC9tYXAtc3R5bGUtc2VsZWN0b3InO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEN1c3RvbVBhbmVsc0ZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9jdXN0b20tcGFuZWwnO1xuLy8gLy8gbWFwIGZhY3Rvcmllc1xuZXhwb3J0IHtkZWZhdWx0IGFzIE1hcFBvcG92ZXJGYWN0b3J5fSBmcm9tICcuL21hcC9tYXAtcG9wb3Zlcic7XG5leHBvcnQge2RlZmF1bHQgYXMgTWFwQ29udHJvbEZhY3Rvcnl9IGZyb20gJy4vbWFwL21hcC1jb250cm9sJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBMYXllckhvdmVySW5mb0ZhY3Rvcnl9IGZyb20gJy4vbWFwL2xheWVyLWhvdmVyLWluZm8nO1xuZXhwb3J0IHtkZWZhdWx0IGFzIENvb3JkaW5hdGVJbmZvRmFjdG9yeX0gZnJvbSAnLi9tYXAvY29vcmRpbmF0ZS1pbmZvJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBMYXllclNlbGVjdG9yUGFuZWxGYWN0b3J5fSBmcm9tICcuL21hcC9sYXllci1zZWxlY3Rvci1wYW5lbCc7XG5leHBvcnQge2RlZmF1bHQgYXMgTG9jYWxlUGFuZWxGYWN0b3J5fSBmcm9tICcuL21hcC9sb2NhbGUtcGFuZWwnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIE1hcENvbnRyb2xQYW5lbEZhY3Rvcnl9IGZyb20gJy4vbWFwL21hcC1jb250cm9sLXBhbmVsJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBNYXBDb250cm9sVG9vbHRpcEZhY3Rvcnl9IGZyb20gJy4vbWFwL21hcC1jb250cm9sLXRvb2x0aXAnO1xuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyBNYXBMZWdlbmRGYWN0b3J5LFxuICBMYXllckxlZ2VuZEhlYWRlckZhY3RvcnksXG4gIExheWVyTGVnZW5kQ29udGVudEZhY3Rvcnlcbn0gZnJvbSAnLi9tYXAvbWFwLWxlZ2VuZCc7XG5leHBvcnQge2RlZmF1bHQgYXMgTWFwRHJhd1BhbmVsRmFjdG9yeX0gZnJvbSAnLi9tYXAvbWFwLWRyYXctcGFuZWwnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIFNwbGl0TWFwQnV0dG9uRmFjdG9yeX0gZnJvbSAnLi9tYXAvc3BsaXQtbWFwLWJ1dHRvbic7XG5leHBvcnQge2RlZmF1bHQgYXMgTWFwTGVnZW5kUGFuZWxGYWN0b3J5fSBmcm9tICcuL21hcC9tYXAtbGVnZW5kLXBhbmVsJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBUb2dnbGUzZEJ1dHRvbkZhY3Rvcnl9IGZyb20gJy4vbWFwL3RvZ2dsZS0zZC1idXR0b24nO1xuZXhwb3J0IHtkZWZhdWx0IGFzIE1hcENvbnRyb2xUb29sYmFyRmFjdG9yeX0gZnJvbSAnLi9tYXAvbWFwLWNvbnRyb2wtdG9vbGJhcic7XG5cbi8vIC8vIG1vZGFsIGZhY3Rvcmllc1xuZXhwb3J0IHtkZWZhdWx0IGFzIE1vZGFsRGlhbG9nRmFjdG9yeX0gZnJvbSAnLi9tb2RhbHMvbW9kYWwtZGlhbG9nJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBEZWxldGVEYXRhc2V0TW9kYWxGYWN0b3J5fSBmcm9tICcuL21vZGFscy9kZWxldGUtZGF0YS1tb2RhbCc7XG5leHBvcnQge2RlZmF1bHQgYXMgRGF0YVRhYmxlTW9kYWxGYWN0b3J5fSBmcm9tICcuL21vZGFscy9kYXRhLXRhYmxlLW1vZGFsJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBMb2FkRGF0YU1vZGFsRmFjdG9yeX0gZnJvbSAnLi9tb2RhbHMvbG9hZC1kYXRhLW1vZGFsJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBFeHBvcnRJbWFnZU1vZGFsRmFjdG9yeX0gZnJvbSAnLi9tb2RhbHMvZXhwb3J0LWltYWdlLW1vZGFsJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBFeHBvcnREYXRhTW9kYWxGYWN0b3J5fSBmcm9tICcuL21vZGFscy9leHBvcnQtZGF0YS1tb2RhbCc7XG5leHBvcnQge2RlZmF1bHQgYXMgQWRkTWFwU3R5bGVNb2RhbEZhY3Rvcnl9IGZyb20gJy4vbW9kYWxzL2FkZC1tYXAtc3R5bGUtbW9kYWwnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEV4cG9ydE1hcE1vZGFsRmFjdG9yeX0gZnJvbSAnLi9tb2RhbHMvZXhwb3J0LW1hcC1tb2RhbC9leHBvcnQtbWFwLW1vZGFsJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBNb2RhbFRhYnNGYWN0b3J5fSBmcm9tICcuL21vZGFscy9tb2RhbC10YWJzJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBMb2FkU3RvcmFnZU1hcEZhY3Rvcnl9IGZyb20gJy4vbW9kYWxzL2xvYWQtc3RvcmFnZS1tYXAnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEV4cG9ydEpzb25NYXBGYWN0b3J5fSBmcm9tICcuL21vZGFscy9leHBvcnQtbWFwLW1vZGFsL2V4cG9ydC1qc29uLW1hcCc7XG5leHBvcnQge2RlZmF1bHQgYXMgRXhwb3J0SHRtbE1hcEZhY3Rvcnl9IGZyb20gJy4vbW9kYWxzL2V4cG9ydC1tYXAtbW9kYWwvZXhwb3J0LWh0bWwtbWFwJztcblxuLy8gLy8gY29tbW9uIGZhY3RvcnlcbmV4cG9ydCB7ZGVmYXVsdCBhcyBBbmltYXRpb25Db250cm9sRmFjdG9yeX0gZnJvbSAnLi9jb21tb24vYW5pbWF0aW9uLWNvbnRyb2wvYW5pbWF0aW9uLWNvbnRyb2wnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEFuaW1hdGlvbkNvbnRyb2xsZXJGYWN0b3J5fSBmcm9tICcuL2NvbW1vbi9hbmltYXRpb24tY29udHJvbC9hbmltYXRpb24tY29udHJvbGxlcic7XG5leHBvcnQge2RlZmF1bHQgYXMgU3BlZWRDb250cm9sRmFjdG9yeX0gZnJvbSAnLi9jb21tb24vYW5pbWF0aW9uLWNvbnRyb2wvc3BlZWQtY29udHJvbCc7XG5leHBvcnQge2RlZmF1bHQgYXMgUGxheWJhY2tDb250cm9sc0ZhY3Rvcnl9IGZyb20gJy4vY29tbW9uL2FuaW1hdGlvbi1jb250cm9sL3BsYXliYWNrLWNvbnRyb2xzJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBGbG9hdGluZ1RpbWVEaXNwbGF5RmFjdG9yeX0gZnJvbSAnLi9jb21tb24vYW5pbWF0aW9uLWNvbnRyb2wvZmxvYXRpbmctdGltZS1kaXNwbGF5JztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBBbmltYXRpb25TcGVlZFNsaWRlckZhY3Rvcnl9IGZyb20gJy4vY29tbW9uL2FuaW1hdGlvbi1jb250cm9sL2FuaW1hdGlvbi1zcGVlZC1zbGlkZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIFJhbmdlUGxvdEZhY3Rvcnl9IGZyb20gJy4vY29tbW9uL3JhbmdlLXBsb3QnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEhpc3RvZ3JhbVBsb3RGYWN0b3J5fSBmcm9tICcuL2NvbW1vbi9oaXN0b2dyYW0tcGxvdCc7XG5leHBvcnQge2RlZmF1bHQgYXMgTGluZUNoYXJ0RmFjdG9yeX0gZnJvbSAnLi9jb21tb24vbGluZS1jaGFydCc7XG5leHBvcnQge2RlZmF1bHQgYXMgUmFuZ2VCcnVzaEZhY3Rvcnl9IGZyb20gJy4vY29tbW9uL3JhbmdlLWJydXNoJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBUaW1lU2xpZGVyTWFya2VyRmFjdG9yeX0gZnJvbSAnLi9jb21tb24vdGltZS1zbGlkZXItbWFya2VyJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBUaW1lUmFuZ2VTbGlkZXJUaW1lVGl0bGVGYWN0b3J5fSBmcm9tICcuL2NvbW1vbi90aW1lLXJhbmdlLXNsaWRlci10aW1lLXRpdGxlJztcblxuLy8gLy8gRmlsdGVycyBmYWN0b3J5XG5leHBvcnQge2RlZmF1bHQgYXMgVGltZVdpZGdldEZhY3RvcnksIFRpbWVXaWRnZXRUb3BGYWN0b3J5fSBmcm9tICcuL2ZpbHRlcnMvdGltZS13aWRnZXQnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIFNpbmdsZVNlbGVjdEZpbHRlckZhY3Rvcnl9IGZyb20gJy4vZmlsdGVycy9zaW5nbGUtc2VsZWN0LWZpbHRlcic7XG5leHBvcnQge2RlZmF1bHQgYXMgTXVsdGlTZWxlY3RGaWx0ZXJGYWN0b3J5fSBmcm9tICcuL2ZpbHRlcnMvbXVsdGktc2VsZWN0LWZpbHRlcic7XG5leHBvcnQge1xuICB0aW1lUmFuZ2VTbGlkZXJGaWVsZHNTZWxlY3RvcixcbiAgZGVmYXVsdCBhcyBUaW1lUmFuZ2VGaWx0ZXJGYWN0b3J5XG59IGZyb20gJy4vZmlsdGVycy90aW1lLXJhbmdlLWZpbHRlcic7XG5leHBvcnQge2RlZmF1bHQgYXMgUmFuZ2VGaWx0ZXJGYWN0b3J5fSBmcm9tICcuL2ZpbHRlcnMvcmFuZ2UtZmlsdGVyJztcblxuLy8gLy8gRWRpdG9yIEZhY3RvcnlcbmV4cG9ydCB7ZGVmYXVsdCBhcyBFZGl0b3JGYWN0b3J5fSBmcm9tICcuL2VkaXRvci9lZGl0b3InO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEZlYXR1cmVBY3Rpb25QYW5lbEZhY3Rvcnl9IGZyb20gJy4vZWRpdG9yL2ZlYXR1cmUtYWN0aW9uLXBhbmVsJztcblxuLy8gSW5qZWN0b3JcbmV4cG9ydCB7aW5qZWN0b3IsIHByb3ZpZGVSZWNpcGVzVG9JbmplY3Rvciwgd2l0aFN0YXRlfSBmcm9tICcuL2luamVjdG9yJztcblxuLy8gQ29tbW9uIENvbXBvbmVudHNcbmV4cG9ydCB7ZGVmYXVsdCBhcyBDbG91ZFRpbGV9IGZyb20gJy4vbW9kYWxzL2Nsb3VkLXRpbGUnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEZpbGVVcGxvYWRGYWN0b3J5LCBGaWxlVXBsb2FkfSBmcm9tICcuL2NvbW1vbi9maWxlLXVwbG9hZGVyL2ZpbGUtdXBsb2FkJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBEYXRhc2V0TGFiZWx9IGZyb20gJy4vY29tbW9uL2RhdGFzZXQtbGFiZWwnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEl0ZW1TZWxlY3Rvcn0gZnJvbSAnLi9jb21tb24vaXRlbS1zZWxlY3Rvci9pdGVtLXNlbGVjdG9yJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBUeXBlYWhlYWR9IGZyb20gJy4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvdHlwZWFoZWFkJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBEcm9wZG93bkxpc3R9IGZyb20gJy4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvZHJvcGRvd24tbGlzdCc7XG5leHBvcnQge2RlZmF1bHQgYXMgRmllbGRTZWxlY3RvckZhY3Rvcnl9IGZyb20gJy4vY29tbW9uL2ZpZWxkLXNlbGVjdG9yJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBNb2RhbCwgTW9kYWxGb290ZXIsIE1vZGFsVGl0bGV9IGZyb20gJy4vY29tbW9uL21vZGFsJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBBcHBMb2dvfSBmcm9tICcuL2NvbW1vbi9sb2dvJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBTd2l0Y2h9IGZyb20gJy4vY29tbW9uL3N3aXRjaCc7XG5leHBvcnQge2RlZmF1bHQgYXMgQ2hlY2tib3h9IGZyb20gJy4vY29tbW9uL2NoZWNrYm94JztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBMb2FkaW5nU3Bpbm5lcn0gZnJvbSAnLi9jb21tb24vbG9hZGluZy1zcGlubmVyJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBMb2FkaW5nRGlhbG9nfSBmcm9tICcuL21vZGFscy9sb2FkaW5nLWRpYWxvZyc7XG5leHBvcnQge2RlZmF1bHQgYXMgRmllbGRUb2tlbkZhY3Rvcnl9IGZyb20gJy4vY29tbW9uL2ZpZWxkLXRva2VuJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBQb3J0YWxlZH0gZnJvbSAnLi9jb21tb24vcG9ydGFsZWQnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIFByb2dyZXNzQmFyfSBmcm9tICcuL2NvbW1vbi9wcm9ncmVzcy1iYXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEZpbGVVcGxvYWRQcm9ncmVzc30gZnJvbSAnLi9jb21tb24vZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZC1wcm9ncmVzcyc7XG5leHBvcnQge2RlZmF1bHQgYXMgU2xpZGVyfSBmcm9tICcuL2NvbW1vbi9zbGlkZXIvc2xpZGVyJztcbmV4cG9ydCB7RGF0YXNldFNxdWFyZX0gZnJvbSAnLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEFjdGlvblBhbmVsLCBBY3Rpb25QYW5lbEl0ZW19IGZyb20gJy4vY29tbW9uL2FjdGlvbi1wYW5lbCc7XG5leHBvcnQge2RlZmF1bHQgYXMgRGF0YVRhYmxlRmFjdG9yeX0gZnJvbSAnLi9jb21tb24vZGF0YS10YWJsZSc7XG5leHBvcnQge2RlZmF1bHQgYXMgQ2FudmFzSGFja30gZnJvbSAnLi9jb21tb24vZGF0YS10YWJsZS9jYW52YXMnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIE1hcExheWVyU2VsZWN0b3J9IGZyb20gJy4vY29tbW9uL21hcC1sYXllci1zZWxlY3Rvcic7XG5leHBvcnQge2RlZmF1bHQgYXMgVmVydGljYWxUb29sYmFyfSBmcm9tICcuL2NvbW1vbi92ZXJ0aWNhbC10b29sYmFyJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBUb29sYmFySXRlbX0gZnJvbSAnLi9jb21tb24vdG9vbGJhci1pdGVtJztcblxuLy8gc2lkZSBwYW5lIGNvbXBvbmVudHNcbmV4cG9ydCB7ZGVmYXVsdCBhcyBMYXllclR5cGVTZWxlY3RvckZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci10eXBlLXNlbGVjdG9yJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBMYXllclR5cGVEcm9wZG93bkxpc3RGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItdHlwZS1kcm9wZG93bi1saXN0JztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBMYXllclR5cGVMaXN0SXRlbUZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci10eXBlLWxpc3QtaXRlbSc7XG5leHBvcnQge0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50fSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItY29uZmlnLWdyb3VwJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBDb2x1bW5TZWxlY3RvckZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9sYXllci1wYW5lbC9jb2x1bW4tc2VsZWN0b3InO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEZpbHRlclBhbmVsSGVhZGVyRmFjdG9yeX0gZnJvbSAnLi9zaWRlLXBhbmVsL2ZpbHRlci1wYW5lbC9maWx0ZXItcGFuZWwtaGVhZGVyJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBTdHlsZWREcm9wZG93blNlbGVjdH0gZnJvbSAnLi9jb21tb24vaXRlbS1zZWxlY3Rvci9pdGVtLXNlbGVjdG9yJztcbmV4cG9ydCB7XG4gIExheWVyTGFiZWxFZGl0b3IsXG4gIExheWVyVGl0bGVTZWN0aW9uRmFjdG9yeVxufSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItcGFuZWwtaGVhZGVyJztcblxuZXhwb3J0IHtcbiAgSG93VG9CdXR0b24sXG4gIExheWVyQ29sb3JSYW5nZVNlbGVjdG9yLFxuICBMYXllckNvbG9yU2VsZWN0b3IsXG4gIEFnZ3JlZ2F0aW9uVHlwZVNlbGVjdG9yXG59IGZyb20gJy4vc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci1jb25maWd1cmF0b3InO1xuXG5leHBvcnQge2RlZmF1bHQgYXMgQ29sb3JQYWxldHRlfSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvY29sb3ItcGFsZXR0ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCAqIGFzIEljb25zIGZyb20gJy4vY29tbW9uL2ljb25zJztcblxuZXhwb3J0IHtJY29uc307XG5cbi8vIEluZGl2aWR1YWwgQ29tcG9uZW50IGZyb20gRGVwZW5kZW5jeSBUcmVlXG5leHBvcnQgY29uc3QgVGltZVJhbmdlU2xpZGVyID0gYXBwSW5qZWN0b3IuZ2V0KFRpbWVSYW5nZVNsaWRlckZhY3RvcnkpO1xuZXhwb3J0IGNvbnN0IFJhbmdlU2xpZGVyID0gYXBwSW5qZWN0b3IuZ2V0KFJhbmdlU2xpZGVyRmFjdG9yeSk7XG5leHBvcnQgY29uc3QgVmlzQ29uZmlnU2xpZGVyID0gYXBwSW5qZWN0b3IuZ2V0KFZpc0NvbmZpZ1NsaWRlckZhY3RvcnkpO1xuZXhwb3J0IGNvbnN0IFZpc0NvbmZpZ1N3aXRjaCA9IGFwcEluamVjdG9yLmdldChWaXNDb25maWdTd2l0Y2hGYWN0b3J5KTtcbmV4cG9ydCBjb25zdCBMYXllckNvbmZpZ0dyb3VwID0gYXBwSW5qZWN0b3IuZ2V0KExheWVyQ29uZmlnR3JvdXBGYWN0b3J5KTtcbmV4cG9ydCBjb25zdCBDaGFubmVsQnlWYWx1ZVNlbGVjdG9yID0gYXBwSW5qZWN0b3IuZ2V0KENoYW5uZWxCeVZhbHVlU2VsZWN0b3JGYWN0b3J5KTtcbmV4cG9ydCBjb25zdCBDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3IgPSBhcHBJbmplY3Rvci5nZXQoQ29sb3JEaW1lbnNpb25TY2FsZVNlbGVjdG9yRmFjdG9yeSk7XG5leHBvcnQgY29uc3QgRmllbGRTZWxlY3RvciA9IGFwcEluamVjdG9yLmdldChGaWVsZFNlbGVjdG9yRmFjdG9yeSk7XG5leHBvcnQgY29uc3QgRmllbGRUb2tlbiA9IGFwcEluamVjdG9yLmdldChGaWVsZFRva2VuRmFjdG9yeSk7XG5leHBvcnQgY29uc3QgUGFuZWxIZWFkZXJBY3Rpb24gPSBhcHBJbmplY3Rvci5nZXQoUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5KTtcbmV4cG9ydCBjb25zdCBGaWVsZExpc3RJdGVtRmFjdG9yeSA9IGFwcEluamVjdG9yLmdldChGaWVsZExpc3RJdGVtRmFjdG9yeUZhY3RvcnkpO1xuZXhwb3J0IGNvbnN0IEluZm9IZWxwZXIgPSBhcHBJbmplY3Rvci5nZXQoSW5mb0hlbHBlckZhY3RvcnkpO1xuXG5leHBvcnQge1xuICBhcHBJbmplY3RvcixcbiAgVGltZVJhbmdlU2xpZGVyRmFjdG9yeSxcbiAgUmFuZ2VTbGlkZXJGYWN0b3J5LFxuICBWaXNDb25maWdTbGlkZXJGYWN0b3J5LFxuICBWaXNDb25maWdTd2l0Y2hGYWN0b3J5LFxuICBMYXllckNvbmZpZ0dyb3VwRmFjdG9yeSxcbiAgQ2hhbm5lbEJ5VmFsdWVTZWxlY3RvckZhY3RvcnksXG4gIENvbG9yRGltZW5zaW9uU2NhbGVTZWxlY3RvckZhY3RvcnksXG4gIEZpZWxkTGlzdEl0ZW1GYWN0b3J5RmFjdG9yeSxcbiAgSW5mb0hlbHBlckZhY3Rvcnlcbn07XG5cbi8vIENvbnRleHRcbmV4cG9ydCB7ZGVmYXVsdCBhcyBLZXBsZXJHbENvbnRleHQsIFJvb3RDb250ZXh0fSBmcm9tICdjb21wb25lbnRzL2NvbnRleHQnO1xuIl19
|
|
1445
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2luZGV4LmpzIl0sIm5hbWVzIjpbIlRpbWVSYW5nZVNsaWRlciIsImFwcEluamVjdG9yIiwiZ2V0IiwiVGltZVJhbmdlU2xpZGVyRmFjdG9yeSIsIlJhbmdlU2xpZGVyIiwiUmFuZ2VTbGlkZXJGYWN0b3J5IiwiVmlzQ29uZmlnU2xpZGVyIiwiVmlzQ29uZmlnU2xpZGVyRmFjdG9yeSIsIlZpc0NvbmZpZ1N3aXRjaCIsIlZpc0NvbmZpZ1N3aXRjaEZhY3RvcnkiLCJMYXllckNvbmZpZ0dyb3VwIiwiTGF5ZXJDb25maWdHcm91cEZhY3RvcnkiLCJDaGFubmVsQnlWYWx1ZVNlbGVjdG9yIiwiQ2hhbm5lbEJ5VmFsdWVTZWxlY3RvckZhY3RvcnkiLCJDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3IiLCJDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3JGYWN0b3J5IiwiRmllbGRTZWxlY3RvciIsIkZpZWxkU2VsZWN0b3JGYWN0b3J5IiwiRmllbGRUb2tlbiIsIkZpZWxkVG9rZW5GYWN0b3J5IiwiUGFuZWxIZWFkZXJBY3Rpb24iLCJQYW5lbEhlYWRlckFjdGlvbkZhY3RvcnkiLCJGaWVsZExpc3RJdGVtRmFjdG9yeSIsIkZpZWxkTGlzdEl0ZW1GYWN0b3J5RmFjdG9yeSIsIkluZm9IZWxwZXIiLCJJbmZvSGVscGVyRmFjdG9yeSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQU1BOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUtBOztBQUNBOztBQUNBOztBQUdBOztBQU1BOztBQUNBOztBQUNBOztBQUVBOztBQUtBOztBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUtBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUlBOztBQUdBOztBQUNBOztBQUdBOztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQThCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQTdCQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFjQTs7QUFHQTs7OztBQWdDQTs7QUE5T0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFlQTtBQUdBO0FBZUE7QUF3Q0E7QUFvQkE7QUFjQTtBQWNBO0FBVUE7QUFJQTtBQUdBO0FBMkJBO0FBMkJBO0FBQ08sSUFBTUEsZUFBZSxHQUFHQyx1QkFBWUMsR0FBWixDQUFnQkMsMkJBQWhCLENBQXhCOzs7O0FBQ0EsSUFBTUMsV0FBVyxHQUFHSCx1QkFBWUMsR0FBWixDQUFnQkcsdUJBQWhCLENBQXBCOzs7O0FBQ0EsSUFBTUMsZUFBZSxHQUFHTCx1QkFBWUMsR0FBWixDQUFnQkssMkJBQWhCLENBQXhCOzs7O0FBQ0EsSUFBTUMsZUFBZSxHQUFHUCx1QkFBWUMsR0FBWixDQUFnQk8sMkJBQWhCLENBQXhCOzs7O0FBQ0EsSUFBTUMsZ0JBQWdCLEdBQUdULHVCQUFZQyxHQUFaLENBQWdCUyw0QkFBaEIsQ0FBekI7Ozs7QUFDQSxJQUFNQyxzQkFBc0IsR0FBR1gsdUJBQVlDLEdBQVosQ0FBZ0JXLGdEQUFoQixDQUEvQjs7OztBQUNBLElBQU1DLDJCQUEyQixHQUFHYix1QkFBWUMsR0FBWixDQUFnQmEsdUNBQWhCLENBQXBDOzs7O0FBQ0EsSUFBTUMsYUFBYSxHQUFHZix1QkFBWUMsR0FBWixDQUFnQmUseUJBQWhCLENBQXRCOzs7O0FBQ0EsSUFBTUMsVUFBVSxHQUFHakIsdUJBQVlDLEdBQVosQ0FBZ0JpQixzQkFBaEIsQ0FBbkI7Ozs7QUFDQSxJQUFNQyxpQkFBaUIsR0FBR25CLHVCQUFZQyxHQUFaLENBQWdCbUIsNkJBQWhCLENBQTFCOzs7O0FBQ0EsSUFBTUMsb0JBQW9CLEdBQUdyQix1QkFBWUMsR0FBWixDQUFnQnFCLDBDQUFoQixDQUE3Qjs7OztBQUNBLElBQU1DLFVBQVUsR0FBR3ZCLHVCQUFZQyxHQUFaLENBQWdCdUIsc0JBQWhCLENBQW5CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFRpbWVSYW5nZVNsaWRlckZhY3RvcnkgZnJvbSAnLi9jb21tb24vdGltZS1yYW5nZS1zbGlkZXInO1xuaW1wb3J0IFJhbmdlU2xpZGVyRmFjdG9yeSBmcm9tICcuL2NvbW1vbi9yYW5nZS1zbGlkZXInO1xuaW1wb3J0IFZpc0NvbmZpZ1NsaWRlckZhY3RvcnkgZnJvbSAnLi9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL3Zpcy1jb25maWctc2xpZGVyJztcbmltcG9ydCBWaXNDb25maWdTd2l0Y2hGYWN0b3J5IGZyb20gJy4vc2lkZS1wYW5lbC9sYXllci1wYW5lbC92aXMtY29uZmlnLXN3aXRjaCc7XG5pbXBvcnQgTGF5ZXJDb25maWdHcm91cEZhY3RvcnkgZnJvbSAnLi9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL2xheWVyLWNvbmZpZy1ncm91cCc7XG5pbXBvcnQge0NoYW5uZWxCeVZhbHVlU2VsZWN0b3JGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItY29uZmlndXJhdG9yJztcbmltcG9ydCBDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3JGYWN0b3J5IGZyb20gJy4vc2lkZS1wYW5lbC9sYXllci1wYW5lbC9jb2xvci1kaW1lbnNpb24tc2NhbGUtc2VsZWN0b3InO1xuaW1wb3J0IEZpZWxkU2VsZWN0b3JGYWN0b3J5LCB7RmllbGRMaXN0SXRlbUZhY3RvcnlGYWN0b3J5fSBmcm9tICcuL2NvbW1vbi9maWVsZC1zZWxlY3Rvcic7XG5pbXBvcnQgRmllbGRUb2tlbkZhY3RvcnkgZnJvbSAnLi9jb21tb24vZmllbGQtdG9rZW4nO1xuaW1wb3J0IFBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeSBmcm9tICcuL3NpZGUtcGFuZWwvcGFuZWwtaGVhZGVyLWFjdGlvbic7XG5pbXBvcnQgSW5mb0hlbHBlckZhY3RvcnkgZnJvbSAnY29tcG9uZW50cy9jb21tb24vaW5mby1oZWxwZXInO1xuaW1wb3J0IHthcHBJbmplY3Rvcn0gZnJvbSAnLi9jb250YWluZXInO1xuXG4vLyBDb21wb25lbnRzXG5leHBvcnQge2RlZmF1bHQgYXMgS2VwbGVyR2wsIGRlZmF1bHQsIGluamVjdENvbXBvbmVudHMsIENvbnRhaW5lckZhY3Rvcnl9IGZyb20gJy4vY29udGFpbmVyJztcblxuLy8gZmFjdG9yaWVzXG5leHBvcnQge2RlZmF1bHQgYXMgS2VwbGVyR2xGYWN0b3J5LCBERUZBVUxUX0tFUExFUl9HTF9QUk9QU30gZnJvbSAnLi9rZXBsZXItZ2wnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIFNpZGVQYW5lbEZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbCc7XG5leHBvcnQge2RlZmF1bHQgYXMgUGFuZWxUaXRsZUZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9wYW5lbC10aXRsZSc7XG5leHBvcnQge2RlZmF1bHQgYXMgTWFwQ29udGFpbmVyRmFjdG9yeSwgQXR0cmlidXRpb259IGZyb20gJy4vbWFwLWNvbnRhaW5lcic7XG5leHBvcnQge2RlZmF1bHQgYXMgTWFwc0xheW91dEZhY3Rvcnl9IGZyb20gJy4vbWFwcy1sYXlvdXQnO1xuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyBCb3R0b21XaWRnZXRGYWN0b3J5LFxuICBMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJGYWN0b3J5LFxuICBGaWx0ZXJBbmltYXRpb25Db250cm9sbGVyRmFjdG9yeVxufSBmcm9tICcuL2JvdHRvbS13aWRnZXQnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIE1vZGFsQ29udGFpbmVyRmFjdG9yeX0gZnJvbSAnLi9tb2RhbC1jb250YWluZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIFBsb3RDb250YWluZXJGYWN0b3J5fSBmcm9tICcuL3Bsb3QtY29udGFpbmVyJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBHZW9jb2RlclBhbmVsRmFjdG9yeX0gZnJvbSAnLi9nZW9jb2Rlci1wYW5lbCc7XG5cbi8vIC8vIHNpZGUgcGFuZWwgZmFjdG9yaWVzXG5leHBvcnQge1xuICBkZWZhdWx0IGFzIFBhbmVsSGVhZGVyRmFjdG9yeSxcbiAgU2F2ZUV4cG9ydERyb3Bkb3duRmFjdG9yeSxcbiAgUGFuZWxIZWFkZXJEcm9wZG93bkZhY3Rvcnlcbn0gZnJvbSAnLi9zaWRlLXBhbmVsL3BhbmVsLWhlYWRlcic7XG5leHBvcnQge2RlZmF1bHQgYXMgUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvcGFuZWwtaGVhZGVyLWFjdGlvbic7XG5leHBvcnQge0NvbGxhcHNlQnV0dG9uRmFjdG9yeSwgZGVmYXVsdCBhcyBTaWRlYmFyRmFjdG9yeX0gZnJvbSAnLi9zaWRlLXBhbmVsL3NpZGUtYmFyJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBQYW5lbFRvZ2dsZUZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9wYW5lbC10b2dnbGUnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIFBhbmVsVGFiRmFjdG9yeX0gZnJvbSAnLi9zaWRlLXBhbmVsL3BhbmVsLXRhYic7XG5cbmV4cG9ydCB7XG4gIEFkZERhdGFCdXR0b25GYWN0b3J5LFxuICBMYXllckJsZW5kaW5nU2VsZWN0b3JGYWN0b3J5LFxuICBkZWZhdWx0IGFzIExheWVyTWFuYWdlckZhY3Rvcnlcbn0gZnJvbSAnLi9zaWRlLXBhbmVsL2xheWVyLW1hbmFnZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIExheWVyUGFuZWxGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItcGFuZWwnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIExheWVyUGFuZWxIZWFkZXJGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItcGFuZWwtaGVhZGVyJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBMYXllckNvbmZpZ3VyYXRvckZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci1jb25maWd1cmF0b3InO1xuZXhwb3J0IHtkZWZhdWx0IGFzIFRleHRMYWJlbFBhbmVsRmFjdG9yeX0gZnJvbSAnLi9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL3RleHQtbGFiZWwtcGFuZWwnO1xuZXhwb3J0IHtMYXllckNvbmZpZ0dyb3VwTGFiZWxGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItY29uZmlnLWdyb3VwJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBMYXllclZpc2liaWxpdHlCeVpvb21GYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItdmlzaWJpbGl0eS1ieS16b29tJztcblxuZXhwb3J0IHtkZWZhdWx0IGFzIFNvdXJjZURhdGFDYXRhbG9nRmFjdG9yeX0gZnJvbSAnLi9zaWRlLXBhbmVsL2NvbW1vbi9zb3VyY2UtZGF0YS1jYXRhbG9nJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBTb3VyY2VEYXRhU2VsZWN0b3JGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvY29tbW9uL3NvdXJjZS1kYXRhLXNlbGVjdG9yJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBEYXRhc2V0VGl0bGVGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvY29tbW9uL2RhdGFzZXQtdGl0bGUnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIERhdGFzZXRJbmZvRmFjdG9yeX0gZnJvbSAnLi9zaWRlLXBhbmVsL2NvbW1vbi9kYXRhc2V0LWluZm8nO1xuZXhwb3J0IHtkZWZhdWx0IGFzIERhdGFzZXRUYWdGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvY29tbW9uL2RhdGFzZXQtdGFnJztcblxuZXhwb3J0IHtkZWZhdWx0IGFzIEZpbHRlck1hbmFnZXJGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvZmlsdGVyLW1hbmFnZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEZpbHRlclBhbmVsRmFjdG9yeX0gZnJvbSAnLi9zaWRlLXBhbmVsL2ZpbHRlci1wYW5lbC9maWx0ZXItcGFuZWwnO1xuXG5leHBvcnQge2RlZmF1bHQgYXMgSW50ZXJhY3Rpb25NYW5hZ2VyRmFjdG9yeX0gZnJvbSAnLi9zaWRlLXBhbmVsL2ludGVyYWN0aW9uLW1hbmFnZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEJydXNoQ29uZmlnRmFjdG9yeX0gZnJvbSAnLi9zaWRlLXBhbmVsL2ludGVyYWN0aW9uLXBhbmVsL2JydXNoLWNvbmZpZyc7XG5leHBvcnQge2RlZmF1bHQgYXMgVG9vbHRpcENvbmZpZ0ZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9pbnRlcmFjdGlvbi1wYW5lbC90b29sdGlwLWNvbmZpZyc7XG5cbmV4cG9ydCB7ZGVmYXVsdCBhcyBNYXBNYW5hZ2VyRmFjdG9yeX0gZnJvbSAnLi9zaWRlLXBhbmVsL21hcC1tYW5hZ2VyJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBMYXllckdyb3VwU2VsZWN0b3JGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvbWFwLXN0eWxlLXBhbmVsL21hcC1sYXllci1zZWxlY3Rvcic7XG5leHBvcnQge2RlZmF1bHQgYXMgTWFwU3R5bGVTZWxlY3RvckZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9tYXAtc3R5bGUtcGFuZWwvbWFwLXN0eWxlLXNlbGVjdG9yJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBDdXN0b21QYW5lbHNGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvY3VzdG9tLXBhbmVsJztcbi8vIC8vIG1hcCBmYWN0b3JpZXNcbmV4cG9ydCB7ZGVmYXVsdCBhcyBNYXBQb3BvdmVyRmFjdG9yeX0gZnJvbSAnLi9tYXAvbWFwLXBvcG92ZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIE1hcENvbnRyb2xGYWN0b3J5fSBmcm9tICcuL21hcC9tYXAtY29udHJvbCc7XG5leHBvcnQge2RlZmF1bHQgYXMgTGF5ZXJIb3ZlckluZm9GYWN0b3J5fSBmcm9tICcuL21hcC9sYXllci1ob3Zlci1pbmZvJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBDb29yZGluYXRlSW5mb0ZhY3Rvcnl9IGZyb20gJy4vbWFwL2Nvb3JkaW5hdGUtaW5mbyc7XG5leHBvcnQge2RlZmF1bHQgYXMgTGF5ZXJTZWxlY3RvclBhbmVsRmFjdG9yeX0gZnJvbSAnLi9tYXAvbGF5ZXItc2VsZWN0b3ItcGFuZWwnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIExvY2FsZVBhbmVsRmFjdG9yeX0gZnJvbSAnLi9tYXAvbG9jYWxlLXBhbmVsJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBNYXBDb250cm9sUGFuZWxGYWN0b3J5fSBmcm9tICcuL21hcC9tYXAtY29udHJvbC1wYW5lbCc7XG5leHBvcnQge2RlZmF1bHQgYXMgTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5fSBmcm9tICcuL21hcC9tYXAtY29udHJvbC10b29sdGlwJztcbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMgTWFwTGVnZW5kRmFjdG9yeSxcbiAgTGF5ZXJMZWdlbmRIZWFkZXJGYWN0b3J5LFxuICBMYXllckxlZ2VuZENvbnRlbnRGYWN0b3J5XG59IGZyb20gJy4vbWFwL21hcC1sZWdlbmQnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIE1hcERyYXdQYW5lbEZhY3Rvcnl9IGZyb20gJy4vbWFwL21hcC1kcmF3LXBhbmVsJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBTcGxpdE1hcEJ1dHRvbkZhY3Rvcnl9IGZyb20gJy4vbWFwL3NwbGl0LW1hcC1idXR0b24nO1xuZXhwb3J0IHtkZWZhdWx0IGFzIE1hcExlZ2VuZFBhbmVsRmFjdG9yeX0gZnJvbSAnLi9tYXAvbWFwLWxlZ2VuZC1wYW5lbCc7XG5leHBvcnQge2RlZmF1bHQgYXMgVG9nZ2xlM2RCdXR0b25GYWN0b3J5fSBmcm9tICcuL21hcC90b2dnbGUtM2QtYnV0dG9uJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBNYXBDb250cm9sVG9vbGJhckZhY3Rvcnl9IGZyb20gJy4vbWFwL21hcC1jb250cm9sLXRvb2xiYXInO1xuXG4vLyAvLyBtb2RhbCBmYWN0b3JpZXNcbmV4cG9ydCB7ZGVmYXVsdCBhcyBNb2RhbERpYWxvZ0ZhY3Rvcnl9IGZyb20gJy4vbW9kYWxzL21vZGFsLWRpYWxvZyc7XG5leHBvcnQge2RlZmF1bHQgYXMgRGVsZXRlRGF0YXNldE1vZGFsRmFjdG9yeX0gZnJvbSAnLi9tb2RhbHMvZGVsZXRlLWRhdGEtbW9kYWwnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIERhdGFUYWJsZU1vZGFsRmFjdG9yeX0gZnJvbSAnLi9tb2RhbHMvZGF0YS10YWJsZS1tb2RhbCc7XG5leHBvcnQge2RlZmF1bHQgYXMgTG9hZERhdGFNb2RhbEZhY3Rvcnl9IGZyb20gJy4vbW9kYWxzL2xvYWQtZGF0YS1tb2RhbCc7XG5leHBvcnQge2RlZmF1bHQgYXMgRXhwb3J0SW1hZ2VNb2RhbEZhY3Rvcnl9IGZyb20gJy4vbW9kYWxzL2V4cG9ydC1pbWFnZS1tb2RhbCc7XG5leHBvcnQge2RlZmF1bHQgYXMgRXhwb3J0RGF0YU1vZGFsRmFjdG9yeX0gZnJvbSAnLi9tb2RhbHMvZXhwb3J0LWRhdGEtbW9kYWwnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEFkZE1hcFN0eWxlTW9kYWxGYWN0b3J5fSBmcm9tICcuL21vZGFscy9hZGQtbWFwLXN0eWxlLW1vZGFsJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBFeHBvcnRNYXBNb2RhbEZhY3Rvcnl9IGZyb20gJy4vbW9kYWxzL2V4cG9ydC1tYXAtbW9kYWwvZXhwb3J0LW1hcC1tb2RhbCc7XG5leHBvcnQge2RlZmF1bHQgYXMgTW9kYWxUYWJzRmFjdG9yeX0gZnJvbSAnLi9tb2RhbHMvbW9kYWwtdGFicyc7XG5leHBvcnQge2RlZmF1bHQgYXMgTG9hZFN0b3JhZ2VNYXBGYWN0b3J5fSBmcm9tICcuL21vZGFscy9sb2FkLXN0b3JhZ2UtbWFwJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBFeHBvcnRKc29uTWFwRmFjdG9yeX0gZnJvbSAnLi9tb2RhbHMvZXhwb3J0LW1hcC1tb2RhbC9leHBvcnQtanNvbi1tYXAnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEV4cG9ydEh0bWxNYXBGYWN0b3J5fSBmcm9tICcuL21vZGFscy9leHBvcnQtbWFwLW1vZGFsL2V4cG9ydC1odG1sLW1hcCc7XG5cbi8vIC8vIGNvbW1vbiBmYWN0b3J5XG5leHBvcnQge2RlZmF1bHQgYXMgQW5pbWF0aW9uQ29udHJvbEZhY3Rvcnl9IGZyb20gJy4vY29tbW9uL2FuaW1hdGlvbi1jb250cm9sL2FuaW1hdGlvbi1jb250cm9sJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBBbmltYXRpb25Db250cm9sbGVyRmFjdG9yeX0gZnJvbSAnLi9jb21tb24vYW5pbWF0aW9uLWNvbnRyb2wvYW5pbWF0aW9uLWNvbnRyb2xsZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIFNwZWVkQ29udHJvbEZhY3Rvcnl9IGZyb20gJy4vY29tbW9uL2FuaW1hdGlvbi1jb250cm9sL3NwZWVkLWNvbnRyb2wnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIFBsYXliYWNrQ29udHJvbHNGYWN0b3J5fSBmcm9tICcuL2NvbW1vbi9hbmltYXRpb24tY29udHJvbC9wbGF5YmFjay1jb250cm9scyc7XG5leHBvcnQge2RlZmF1bHQgYXMgRmxvYXRpbmdUaW1lRGlzcGxheUZhY3Rvcnl9IGZyb20gJy4vY29tbW9uL2FuaW1hdGlvbi1jb250cm9sL2Zsb2F0aW5nLXRpbWUtZGlzcGxheSc7XG5leHBvcnQge2RlZmF1bHQgYXMgQW5pbWF0aW9uU3BlZWRTbGlkZXJGYWN0b3J5fSBmcm9tICcuL2NvbW1vbi9hbmltYXRpb24tY29udHJvbC9hbmltYXRpb24tc3BlZWQtc2xpZGVyJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBSYW5nZVBsb3RGYWN0b3J5fSBmcm9tICcuL2NvbW1vbi9yYW5nZS1wbG90JztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBIaXN0b2dyYW1QbG90RmFjdG9yeX0gZnJvbSAnLi9jb21tb24vaGlzdG9ncmFtLXBsb3QnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIExpbmVDaGFydEZhY3Rvcnl9IGZyb20gJy4vY29tbW9uL2xpbmUtY2hhcnQnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIFJhbmdlQnJ1c2hGYWN0b3J5fSBmcm9tICcuL2NvbW1vbi9yYW5nZS1icnVzaCc7XG5leHBvcnQge2RlZmF1bHQgYXMgVGltZVNsaWRlck1hcmtlckZhY3Rvcnl9IGZyb20gJy4vY29tbW9uL3RpbWUtc2xpZGVyLW1hcmtlcic7XG5leHBvcnQge2RlZmF1bHQgYXMgVGltZVJhbmdlU2xpZGVyVGltZVRpdGxlRmFjdG9yeX0gZnJvbSAnLi9jb21tb24vdGltZS1yYW5nZS1zbGlkZXItdGltZS10aXRsZSc7XG5cbi8vIC8vIEZpbHRlcnMgZmFjdG9yeVxuZXhwb3J0IHtkZWZhdWx0IGFzIFRpbWVXaWRnZXRGYWN0b3J5LCBUaW1lV2lkZ2V0VG9wRmFjdG9yeX0gZnJvbSAnLi9maWx0ZXJzL3RpbWUtd2lkZ2V0JztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBTaW5nbGVTZWxlY3RGaWx0ZXJGYWN0b3J5fSBmcm9tICcuL2ZpbHRlcnMvc2luZ2xlLXNlbGVjdC1maWx0ZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIE11bHRpU2VsZWN0RmlsdGVyRmFjdG9yeX0gZnJvbSAnLi9maWx0ZXJzL211bHRpLXNlbGVjdC1maWx0ZXInO1xuZXhwb3J0IHtcbiAgdGltZVJhbmdlU2xpZGVyRmllbGRzU2VsZWN0b3IsXG4gIGRlZmF1bHQgYXMgVGltZVJhbmdlRmlsdGVyRmFjdG9yeVxufSBmcm9tICcuL2ZpbHRlcnMvdGltZS1yYW5nZS1maWx0ZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIFJhbmdlRmlsdGVyRmFjdG9yeX0gZnJvbSAnLi9maWx0ZXJzL3JhbmdlLWZpbHRlcic7XG5cbi8vIC8vIEVkaXRvciBGYWN0b3J5XG5leHBvcnQge2RlZmF1bHQgYXMgRWRpdG9yRmFjdG9yeX0gZnJvbSAnLi9lZGl0b3IvZWRpdG9yJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5fSBmcm9tICcuL2VkaXRvci9mZWF0dXJlLWFjdGlvbi1wYW5lbCc7XG5cbi8vIEluamVjdG9yXG5leHBvcnQge2luamVjdG9yLCBwcm92aWRlUmVjaXBlc1RvSW5qZWN0b3IsIHdpdGhTdGF0ZX0gZnJvbSAnLi9pbmplY3Rvcic7XG5cbi8vIENvbW1vbiBDb21wb25lbnRzXG5leHBvcnQge2RlZmF1bHQgYXMgQ2xvdWRUaWxlfSBmcm9tICcuL21vZGFscy9jbG91ZC10aWxlJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBGaWxlVXBsb2FkRmFjdG9yeSwgRmlsZVVwbG9hZH0gZnJvbSAnLi9jb21tb24vZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZCc7XG5leHBvcnQge2RlZmF1bHQgYXMgRGF0YXNldExhYmVsfSBmcm9tICcuL2NvbW1vbi9kYXRhc2V0LWxhYmVsJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBJdGVtU2VsZWN0b3J9IGZyb20gJy4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvaXRlbS1zZWxlY3Rvcic7XG5leHBvcnQge2RlZmF1bHQgYXMgVHlwZWFoZWFkfSBmcm9tICcuL2NvbW1vbi9pdGVtLXNlbGVjdG9yL3R5cGVhaGVhZCc7XG5leHBvcnQge2RlZmF1bHQgYXMgRHJvcGRvd25MaXN0fSBmcm9tICcuL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2Ryb3Bkb3duLWxpc3QnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEZpZWxkU2VsZWN0b3JGYWN0b3J5fSBmcm9tICcuL2NvbW1vbi9maWVsZC1zZWxlY3Rvcic7XG5leHBvcnQge2RlZmF1bHQgYXMgTW9kYWwsIE1vZGFsRm9vdGVyLCBNb2RhbFRpdGxlfSBmcm9tICcuL2NvbW1vbi9tb2RhbCc7XG5leHBvcnQge2RlZmF1bHQgYXMgQXBwTG9nb30gZnJvbSAnLi9jb21tb24vbG9nbyc7XG5leHBvcnQge2RlZmF1bHQgYXMgU3dpdGNofSBmcm9tICcuL2NvbW1vbi9zd2l0Y2gnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIENoZWNrYm94fSBmcm9tICcuL2NvbW1vbi9jaGVja2JveCc7XG5leHBvcnQge2RlZmF1bHQgYXMgTG9hZGluZ1NwaW5uZXJ9IGZyb20gJy4vY29tbW9uL2xvYWRpbmctc3Bpbm5lcic7XG5leHBvcnQge2RlZmF1bHQgYXMgTG9hZGluZ0RpYWxvZ30gZnJvbSAnLi9tb2RhbHMvbG9hZGluZy1kaWFsb2cnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEZpZWxkVG9rZW5GYWN0b3J5fSBmcm9tICcuL2NvbW1vbi9maWVsZC10b2tlbic7XG5leHBvcnQge2RlZmF1bHQgYXMgUG9ydGFsZWR9IGZyb20gJy4vY29tbW9uL3BvcnRhbGVkJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBQcm9ncmVzc0Jhcn0gZnJvbSAnLi9jb21tb24vcHJvZ3Jlc3MtYmFyJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBGaWxlVXBsb2FkUHJvZ3Jlc3N9IGZyb20gJy4vY29tbW9uL2ZpbGUtdXBsb2FkZXIvZmlsZS11cGxvYWQtcHJvZ3Jlc3MnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIFNsaWRlcn0gZnJvbSAnLi9jb21tb24vc2xpZGVyL3NsaWRlcic7XG5leHBvcnQge0RhdGFzZXRTcXVhcmV9IGZyb20gJy4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBBY3Rpb25QYW5lbCwgQWN0aW9uUGFuZWxJdGVtfSBmcm9tICcuL2NvbW1vbi9hY3Rpb24tcGFuZWwnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIERhdGFUYWJsZUZhY3Rvcnl9IGZyb20gJy4vY29tbW9uL2RhdGEtdGFibGUnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIENhbnZhc0hhY2t9IGZyb20gJy4vY29tbW9uL2RhdGEtdGFibGUvY2FudmFzJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBNYXBMYXllclNlbGVjdG9yfSBmcm9tICcuL2NvbW1vbi9tYXAtbGF5ZXItc2VsZWN0b3InO1xuZXhwb3J0IHtkZWZhdWx0IGFzIFZlcnRpY2FsVG9vbGJhcn0gZnJvbSAnLi9jb21tb24vdmVydGljYWwtdG9vbGJhcic7XG5leHBvcnQge2RlZmF1bHQgYXMgVG9vbGJhckl0ZW19IGZyb20gJy4vY29tbW9uL3Rvb2xiYXItaXRlbSc7XG5cbi8vIHNpZGUgcGFuZSBjb21wb25lbnRzXG5leHBvcnQge2RlZmF1bHQgYXMgTGF5ZXJUeXBlU2VsZWN0b3JGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItdHlwZS1zZWxlY3Rvcic7XG5leHBvcnQge2RlZmF1bHQgYXMgTGF5ZXJUeXBlRHJvcGRvd25MaXN0RmFjdG9yeX0gZnJvbSAnLi9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL2xheWVyLXR5cGUtZHJvcGRvd24tbGlzdCc7XG5leHBvcnQge2RlZmF1bHQgYXMgTGF5ZXJUeXBlTGlzdEl0ZW1GYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItdHlwZS1saXN0LWl0ZW0nO1xuZXhwb3J0IHtDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudH0gZnJvbSAnLi9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL2xheWVyLWNvbmZpZy1ncm91cCc7XG5leHBvcnQge2RlZmF1bHQgYXMgQ29sdW1uU2VsZWN0b3JGYWN0b3J5fSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvY29sdW1uLXNlbGVjdG9yJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBGaWx0ZXJQYW5lbEhlYWRlckZhY3Rvcnl9IGZyb20gJy4vc2lkZS1wYW5lbC9maWx0ZXItcGFuZWwvZmlsdGVyLXBhbmVsLWhlYWRlcic7XG5leHBvcnQge2RlZmF1bHQgYXMgU3R5bGVkRHJvcGRvd25TZWxlY3R9IGZyb20gJy4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvaXRlbS1zZWxlY3Rvcic7XG5leHBvcnQge1xuICBMYXllckxhYmVsRWRpdG9yLFxuICBMYXllclRpdGxlU2VjdGlvbkZhY3Rvcnlcbn0gZnJvbSAnLi9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL2xheWVyLXBhbmVsLWhlYWRlcic7XG5cbmV4cG9ydCB7XG4gIEhvd1RvQnV0dG9uLFxuICBMYXllckNvbG9yUmFuZ2VTZWxlY3RvcixcbiAgTGF5ZXJDb2xvclNlbGVjdG9yLFxuICBBZ2dyZWdhdGlvblR5cGVTZWxlY3RvclxufSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItY29uZmlndXJhdG9yJztcblxuZXhwb3J0IHtkZWZhdWx0IGFzIENvbG9yUGFsZXR0ZX0gZnJvbSAnLi9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL2NvbG9yLXBhbGV0dGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgKiBhcyBJY29ucyBmcm9tICcuL2NvbW1vbi9pY29ucyc7XG5cbmV4cG9ydCB7SWNvbnN9O1xuXG4vLyBJbmRpdmlkdWFsIENvbXBvbmVudCBmcm9tIERlcGVuZGVuY3kgVHJlZVxuZXhwb3J0IGNvbnN0IFRpbWVSYW5nZVNsaWRlciA9IGFwcEluamVjdG9yLmdldChUaW1lUmFuZ2VTbGlkZXJGYWN0b3J5KTtcbmV4cG9ydCBjb25zdCBSYW5nZVNsaWRlciA9IGFwcEluamVjdG9yLmdldChSYW5nZVNsaWRlckZhY3RvcnkpO1xuZXhwb3J0IGNvbnN0IFZpc0NvbmZpZ1NsaWRlciA9IGFwcEluamVjdG9yLmdldChWaXNDb25maWdTbGlkZXJGYWN0b3J5KTtcbmV4cG9ydCBjb25zdCBWaXNDb25maWdTd2l0Y2ggPSBhcHBJbmplY3Rvci5nZXQoVmlzQ29uZmlnU3dpdGNoRmFjdG9yeSk7XG5leHBvcnQgY29uc3QgTGF5ZXJDb25maWdHcm91cCA9IGFwcEluamVjdG9yLmdldChMYXllckNvbmZpZ0dyb3VwRmFjdG9yeSk7XG5leHBvcnQgY29uc3QgQ2hhbm5lbEJ5VmFsdWVTZWxlY3RvciA9IGFwcEluamVjdG9yLmdldChDaGFubmVsQnlWYWx1ZVNlbGVjdG9yRmFjdG9yeSk7XG5leHBvcnQgY29uc3QgQ29sb3JEaW1lbnNpb25TY2FsZVNlbGVjdG9yID0gYXBwSW5qZWN0b3IuZ2V0KENvbG9yRGltZW5zaW9uU2NhbGVTZWxlY3RvckZhY3RvcnkpO1xuZXhwb3J0IGNvbnN0IEZpZWxkU2VsZWN0b3IgPSBhcHBJbmplY3Rvci5nZXQoRmllbGRTZWxlY3RvckZhY3RvcnkpO1xuZXhwb3J0IGNvbnN0IEZpZWxkVG9rZW4gPSBhcHBJbmplY3Rvci5nZXQoRmllbGRUb2tlbkZhY3RvcnkpO1xuZXhwb3J0IGNvbnN0IFBhbmVsSGVhZGVyQWN0aW9uID0gYXBwSW5qZWN0b3IuZ2V0KFBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeSk7XG5leHBvcnQgY29uc3QgRmllbGRMaXN0SXRlbUZhY3RvcnkgPSBhcHBJbmplY3Rvci5nZXQoRmllbGRMaXN0SXRlbUZhY3RvcnlGYWN0b3J5KTtcbmV4cG9ydCBjb25zdCBJbmZvSGVscGVyID0gYXBwSW5qZWN0b3IuZ2V0KEluZm9IZWxwZXJGYWN0b3J5KTtcblxuZXhwb3J0IHtcbiAgYXBwSW5qZWN0b3IsXG4gIFRpbWVSYW5nZVNsaWRlckZhY3RvcnksXG4gIFJhbmdlU2xpZGVyRmFjdG9yeSxcbiAgVmlzQ29uZmlnU2xpZGVyRmFjdG9yeSxcbiAgVmlzQ29uZmlnU3dpdGNoRmFjdG9yeSxcbiAgTGF5ZXJDb25maWdHcm91cEZhY3RvcnksXG4gIENoYW5uZWxCeVZhbHVlU2VsZWN0b3JGYWN0b3J5LFxuICBDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3JGYWN0b3J5LFxuICBGaWVsZExpc3RJdGVtRmFjdG9yeUZhY3RvcnksXG4gIEluZm9IZWxwZXJGYWN0b3J5XG59O1xuXG4vLyBDb250ZXh0XG5leHBvcnQge2RlZmF1bHQgYXMgS2VwbGVyR2xDb250ZXh0LCBSb290Q29udGV4dH0gZnJvbSAnY29tcG9uZW50cy9jb250ZXh0JztcbiJdfQ==
|
|
@@ -499,6 +499,19 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
|
|
|
499
499
|
},
|
|
500
500
|
onWebGLInitialized: function onWebGLInitialized(gl) {
|
|
501
501
|
return _this2._onDeckInitialized(gl);
|
|
502
|
+
},
|
|
503
|
+
layerFilter: function layerFilter(_ref3) {
|
|
504
|
+
var _layer$props$visibili, _layer$props$visibili2;
|
|
505
|
+
|
|
506
|
+
var layer = _ref3.layer,
|
|
507
|
+
viewport = _ref3.viewport;
|
|
508
|
+
|
|
509
|
+
if (isNaN((_layer$props$visibili = layer.props.visibilityByZoom) === null || _layer$props$visibili === void 0 ? void 0 : _layer$props$visibili.min) || isNaN((_layer$props$visibili2 = layer.props.visibilityByZoom) === null || _layer$props$visibili2 === void 0 ? void 0 : _layer$props$visibili2.max)) {
|
|
510
|
+
return true;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
var currentZoomRange = Math.floor(mapState.zoom);
|
|
514
|
+
return layer.props.visibilityByZoom.min <= currentZoomRange && layer.props.visibilityByZoom.max >= currentZoomRange;
|
|
502
515
|
}
|
|
503
516
|
}));
|
|
504
517
|
}
|
|
@@ -681,4 +694,4 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
|
|
|
681
694
|
MapContainer.displayName = 'MapContainer';
|
|
682
695
|
return MapContainer;
|
|
683
696
|
}
|
|
684
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL21hcC1jb250YWluZXIuanMiXSwibmFtZXMiOlsiTUFQX1NUWUxFIiwiY29udGFpbmVyIiwiZGlzcGxheSIsInBvc2l0aW9uIiwid2lkdGgiLCJoZWlnaHQiLCJ0b3AiLCJwb2ludGVyRXZlbnRzIiwiTUFQQk9YR0xfU1RZTEVfVVBEQVRFIiwiTUFQQk9YR0xfUkVOREVSIiwiVFJBTlNJVElPTl9EVVJBVElPTiIsIkF0dHJpYnV0aW9uIiwiTWFwQ29udGFpbmVyRmFjdG9yeSIsImRlcHMiLCJNYXBQb3BvdmVyRmFjdG9yeSIsIk1hcENvbnRyb2xGYWN0b3J5IiwiRWRpdG9yRmFjdG9yeSIsIk1hcFBvcG92ZXIiLCJNYXBDb250cm9sIiwiRWRpdG9yIiwiTWFwQ29udGFpbmVyIiwicHJvcHMiLCJkaW1lbnNpb25zIiwicHJpbWFyeSIsImlzRXhwb3J0IiwibWFwU3RhdGVBY3Rpb25zIiwidXBkYXRlTWFwIiwibGF5ZXJzIiwibGF5ZXJEYXRhIiwibWFwTGF5ZXJzIiwibGF5ZXJPcmRlciIsImxheWVyc1NlbGVjdG9yIiwibGF5ZXJEYXRhU2VsZWN0b3IiLCJtYXBMYXllcnNTZWxlY3RvciIsInByZXBhcmVMYXllcnNUb1JlbmRlciIsInByZXBhcmVMYXllcnNGb3JEZWNrIiwiZmlsdGVycyIsImZpbHRlcnNTZWxlY3RvciIsImZpbHRlciIsImYiLCJ0eXBlIiwiRklMVEVSX1RZUEVTIiwicG9seWdvbiIsImxheWVyT3JkZXJTZWxlY3RvciIsImxheWVyc1RvUmVuZGVyU2VsZWN0b3IiLCJnZW5lcmF0ZU1hcGJveExheWVycyIsInZpc1N0YXRlQWN0aW9ucyIsIm9uTGF5ZXJDbGljayIsImlkeCIsImNvbG9yRG9tYWluIiwibGF5ZXJDb25maWdDaGFuZ2UiLCJsYXllcklkIiwiaW5kZXgiLCJtYXBJbmRleCIsInRvZ2dsZUxheWVyRm9yTWFwIiwicHJldmlvdXNMYXllcnMiLCJfdXBkYXRlTWFwYm94TGF5ZXJzIiwib25NYXBTdHlsZUxvYWRlZCIsIl9tYXAiLCJtYXBib3giLCJnZXRNYXAiLCJvbiIsIl9vbk1hcGJveFN0eWxlVXBkYXRlIiwib25NYXBSZW5kZXIiLCJnZXRNYXBib3hSZWYiLCJnbCIsImxheWVyQmxlbmRpbmciLCJlcnJvciIsImxheWVyIiwibWVzc2FnZSIsInNldFN0YXRlIiwiY29udGV4dExvc3QiLCJlcnJvck1lc3NhZ2UiLCJpZCIsIm5vdGlmaWNhdGlvbklkIiwiX2RlY2tHTEVycm9yc0VsYXBzZWQiLCJsYXN0U2hvd24iLCJEYXRlIiwibm93IiwiVEhST1RUTEVfTk9USUZJQ0FUSU9OX1RJTUUiLCJ1aVN0YXRlQWN0aW9ucyIsImFkZE5vdGlmaWNhdGlvbiIsInZpZXdTdGF0ZSIsInJlc3RWaWV3U3RhdGUiLCJuZXh0IiwidHJhbnNpdGlvbkR1cmF0aW9uIiwib25WaWV3U3RhdGVDaGFuZ2UiLCJwYW5lbElkIiwidG9nZ2xlTWFwQ29udHJvbCIsIl9kZWNrIiwiX3JlZiIsImN1cnJlbnQiLCJfaGFuZGxlUmVzaXplIiwic3RhdGUiLCJvZmYiLCJvbkRlY2tJbml0aWFsaXplZCIsImxheWVyc1RvUmVuZGVyIiwibWFwU3RhdGUiLCJob3ZlckluZm8iLCJjbGlja2VkIiwiZGF0YXNldHMiLCJpbnRlcmFjdGlvbkNvbmZpZyIsIm1vdXNlUG9zIiwibW91c2VQb3NpdGlvbiIsImNvb3JkaW5hdGUiLCJwaW5uZWQiLCJ0b29sdGlwIiwibGF5ZXJIb3ZlclByb3AiLCJjb21wYXJlTW9kZSIsImNvbmZpZyIsInBpbm5lZFBvc2l0aW9uIiwibGF5ZXJQaW5uZWRQcm9wIiwidmlld3BvcnQiLCJXZWJNZXJjYXRvclZpZXdwb3J0IiwibG5nTGF0IiwiX2dldEhvdmVyWFkiLCJwcmltYXJ5RGF0YSIsImRhdGEiLCJjb21wYXJlVHlwZSIsImNvbW1vblByb3AiLCJvbkNsb3NlIiwiX29uQ2xvc2VNYXBQb3BvdmVyIiwiem9vbSIsImVuYWJsZWQiLCJzY3JlZW5Db29yZCIsInByb2plY3QiLCJ4IiwieSIsImxheWVyc0ZvckRlY2siLCJtYXBTdHlsZSIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwibWFwYm94QXBpVXJsIiwibWFza1BvbHlnb24iLCJkZWNrR2xMYXllcnMiLCJkZWNrR2xQcm9wcyIsImxlbmd0aCIsImRhdGFMYXllcnMiLCJzbGljZSIsInJldmVyc2UiLCJyZWR1Y2UiLCJvdmVybGF5cyIsImxheWVyQ2FsbGJhY2tzIiwib25TZXRMYXllckRvbWFpbiIsInZhbCIsIl9vbkxheWVyU2V0RG9tYWluIiwibGF5ZXJPdmVybGF5IiwiY29uY2F0IiwibGF5ZXJzT25Ub3AiLCJwdXNoIiwiU29saWRQb2x5Z29uTGF5ZXIiLCJNQVNLX0xBWUVSX0lEIiwib3BlcmF0aW9uIiwiT1BFUkFUSU9OIiwiTUFTSyIsImdldEZpbGxDb2xvciIsInZpc2libGVMYXllckdyb3VwcyIsIlRocmVlREJ1aWxkaW5nTGF5ZXIiLCJ0aHJlZURCdWlsZGluZ0NvbG9yIiwidXBkYXRlVHJpZ2dlcnMiLCJfb25WaWV3cG9ydENoYW5nZSIsIl9vbkJlZm9yZVJlbmRlciIsIm9uTGF5ZXJIb3ZlciIsIl9vbkRlY2tFcnJvciIsImNvbXAiLCJkZWNrIiwiX29uRGVja0luaXRpYWxpemVkIiwibWFwYm94TGF5ZXJzIiwibWFwYm94TGF5ZXJzU2VsZWN0b3IiLCJPYmplY3QiLCJrZXlzIiwiaXNTdHlsZUxvYWRlZCIsIk1hcENvbXBvbmVudCIsIm1hcENvbnRyb2xzIiwibG9jYWxlIiwiZWRpdG9yIiwibGF5ZXJzRm9yRGVja1NlbGVjdG9yIiwibWFwUHJvcHMiLCJwcmVzZXJ2ZURyYXdpbmdCdWZmZXIiLCJ0cmFuc2Zvcm1SZXF1ZXN0IiwiaXNFZGl0IiwibWFwRHJhdyIsImFjdGl2ZSIsImhhc0dlb2NvZGVyTGF5ZXIiLCJmaW5kIiwibCIsIkdFT0NPREVSX0xBWUVSX0lEIiwiaXNTcGxpdCIsIkJvb2xlYW4iLCJMT0NBTEVfQ09ERVMiLCJkcmFnUm90YXRlIiwicmVhZE9ubHkiLCJzY2FsZSIsImdlb2NvZGVyIiwidG9nZ2xlUGVyc3BlY3RpdmUiLCJ0b2dnbGVTcGxpdE1hcCIsIl9oYW5kbGVNYXBUb2dnbGVMYXllciIsIl90b2dnbGVNYXBDb250cm9sIiwic2V0RWRpdG9yTW9kZSIsInNldExvY2FsZSIsInRvZ2dsZUVkaXRvclZpc2liaWxpdHkiLCJfc2V0TWFwYm94TWFwIiwiYm90dG9tTWFwU3R5bGUiLCJ1bmRlZmluZWQiLCJvbk1vdXNlTW92ZSIsIl9yZW5kZXJEZWNrT3ZlcmxheSIsIl9yZW5kZXJNYXBib3hPdmVybGF5cyIsInBvbHlnb25GaWx0ZXJzIiwiZGVsZXRlRmVhdHVyZSIsInNldFNlbGVjdGVkRmVhdHVyZSIsInNldEZlYXR1cmVzIiwic2V0UG9seWdvbkZpbHRlckxheWVyIiwidmlzaWJsZSIsInRvcE1hcFN0eWxlIiwiX3JlbmRlck1hcFBvcG92ZXIiLCJnbG9iZSIsIl9yZW5kZXJNYXAiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwic3RyaW5nIiwiYXJyYXlPZiIsImFueSIsImJvb2wiLCJvbk1hcFRvZ2dsZUxheWVyIiwiZnVuYyIsIm51bWJlciIsIk1hcGJveEdMTWFwIiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFCQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFRQTs7QUFDQTs7QUFPQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBO0FBQ0EsSUFBTUEsU0FBUyxHQUFHO0FBQ2hCQyxFQUFBQSxTQUFTLEVBQUU7QUFDVEMsSUFBQUEsT0FBTyxFQUFFLGNBREE7QUFFVEMsSUFBQUEsUUFBUSxFQUFFLFVBRkQ7QUFHVEMsSUFBQUEsS0FBSyxFQUFFLE1BSEU7QUFJVEMsSUFBQUEsTUFBTSxFQUFFO0FBSkMsR0FESztBQU9oQkMsRUFBQUEsR0FBRyxFQUFFO0FBQ0hI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QUFDekJqQyxJQUFBQSxRQUFRLEVBQUUyQixzQkFBVU0sSUFyQkg7QUFzQmpCdk0sSUFBQUEsUUFBUSxFQUFFaU0sc0JBQVVNLElBdEJIO0FBdUJqQjVILElBQUFBLE9BQU8sRUFBRXNILHNCQUFVQyxNQXZCRjtBQXdCakJ4SCxJQUFBQSxTQUFTLEVBQUV1SCxzQkFBVUMsTUF4Qko7QUF5QmpCN0wsSUFBQUEsU0FBUyxFQUFFNEwsc0JBQVVDLE1BekJKO0FBMEJqQk0sSUFBQUEsZ0JBQWdCLEVBQUVQLHNCQUFVUSxJQTFCWDtBQTJCakJ4SyxJQUFBQSxnQkFBZ0IsRUFBRWdLLHNCQUFVUSxJQTNCWDtBQTRCakJsSyxJQUFBQSxXQUFXLEVBQUUwSixzQkFBVVEsSUE1Qk47QUE2QmpCakssSUFBQUEsWUFBWSxFQUFFeUosc0JBQVVRLElBN0JQO0FBOEJqQjdLLElBQUFBLEtBQUssRUFBRXFLLHNCQUFVUztBQTlCQSxHQUZxRDtBQUFBLG1DQUNwRTlNLFlBRG9FLGtCQW1DbEQ7QUFDcEJ1SixJQUFBQSxZQUFZLEVBQUV3RCxzQkFETTtBQUVwQjdGLElBQUFBLFdBQVcsRUFBRSxFQUZPO0FBR3BCbEYsSUFBQUEsS0FBSyxFQUFFLENBSGE7QUFJcEI3QixJQUFBQSxPQUFPLEVBQUU7QUFKVyxHQW5Da0Q7QUEyaEIxRUgsRUFBQUEsWUFBWSxDQUFDZ04sV0FBYixHQUEyQixjQUEzQjtBQUVBLFNBQU9oTixZQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG4vLyBsaWJyYXJpZXNcbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IE1hcGJveEdMTWFwIGZyb20gJ3JlYWN0LW1hcC1nbCc7XG5pbXBvcnQgRGVja0dMIGZyb20gJ0BkZWNrLmdsL3JlYWN0JztcbmltcG9ydCB7Y3JlYXRlU2VsZWN0b3J9IGZyb20gJ3Jlc2VsZWN0JztcbmltcG9ydCB7T1BFUkFUSU9OfSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCB7U29saWRQb2x5Z29uTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5pbXBvcnQgV2ViTWVyY2F0b3JWaWV3cG9ydCBmcm9tICd2aWV3cG9ydC1tZXJjYXRvci1wcm9qZWN0JztcbmltcG9ydCB7ZXJyb3JOb3RpZmljYXRpb259IGZyb20gJ3V0aWxzL25vdGlmaWNhdGlvbnMtdXRpbHMnO1xuXG4vLyBjb21wb25lbnRzXG5pbXBvcnQgTWFwUG9wb3ZlckZhY3RvcnkgZnJvbSAnY29tcG9uZW50cy9tYXAvbWFwLXBvcG92ZXInO1xuaW1wb3J0IE1hcENvbnRyb2xGYWN0b3J5IGZyb20gJ2NvbXBvbmVudHMvbWFwL21hcC1jb250cm9sJztcbmltcG9ydCB7U3R5bGVkTWFwQ29udGFpbmVyLCBTdHlsZWRBdHRyYnV0aW9ufSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCBFZGl0b3JGYWN0b3J5IGZyb20gJy4vZWRpdG9yL2VkaXRvcic7XG5cbi8vIHV0aWxzXG5pbXBvcnQge2dlbmVyYXRlTWFwYm94TGF5ZXJzLCB1cGRhdGVNYXBib3hMYXllcnN9IGZyb20gJ2xheWVycy9tYXBib3gtdXRpbHMnO1xuaW1wb3J0IHtzZXRMYXllckJsZW5kaW5nfSBmcm9tICd1dGlscy9nbC11dGlscyc7XG5pbXBvcnQge3RyYW5zZm9ybVJlcXVlc3R9IGZyb20gJ3V0aWxzL21hcC1zdHlsZS11dGlscy9tYXBib3gtdXRpbHMnO1xuaW1wb3J0IHtcbiAgZ2V0TGF5ZXJIb3ZlclByb3AsXG4gIHJlbmRlckRlY2tHbExheWVyLFxuICBwcmVwYXJlTGF5ZXJzVG9SZW5kZXIsXG4gIHByZXBhcmVMYXllcnNGb3JEZWNrXG59IGZyb20gJ3V0aWxzL2xheWVyLXV0aWxzJztcblxuLy8gZGVmYXVsdC1zZXR0aW5nc1xuaW1wb3J0IFRocmVlREJ1aWxkaW5nTGF5ZXIgZnJvbSAnZGVja2dsLWxheWVycy8zZC1idWlsZGluZy1sYXllci8zZC1idWlsZGluZy1sYXllcic7XG5pbXBvcnQge1xuICBGSUxURVJfVFlQRVMsXG4gIEdFT0NPREVSX0xBWUVSX0lELFxuICBNQVNLX0xBWUVSX0lELFxuICBUSFJPVFRMRV9OT1RJRklDQVRJT05fVElNRVxufSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5cbmltcG9ydCBFcnJvckJvdW5kYXJ5IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2Vycm9yLWJvdW5kYXJ5JztcbmltcG9ydCB7b2JzZXJ2ZURpbWVuc2lvbnMsIHVub2JzZXJ2ZURpbWVuc2lvbnN9IGZyb20gJy4uL3V0aWxzL29ic2VydmUtZGltZW5zaW9ucyc7XG5pbXBvcnQge0xPQ0FMRV9DT0RFU30gZnJvbSAnbG9jYWxpemF0aW9uL2xvY2FsZXMnO1xuXG4vKiogQHR5cGUge3tba2V5OiBzdHJpbmddOiBSZWFjdC5DU1NQcm9wZXJ0aWVzfX0gKi9cbmNvbnN0IE1BUF9TVFlMRSA9IHtcbiAgY29udGFpbmVyOiB7XG4gICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBoZWlnaHQ6ICcxMDAlJ1xuICB9LFxuICB0b3A6IHtcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICB0b3A6ICcwcHgnLFxuICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIGhlaWdodDogJzEwMCUnXG4gIH1cbn07XG5cbmNvbnN0IE1BUEJPWEdMX1NUWUxFX1VQREFURSA9ICdzdHlsZS5sb2FkJztcbmNvbnN0IE1BUEJPWEdMX1JFTkRFUiA9ICdyZW5kZXInO1xuY29uc3QgVFJBTlNJVElPTl9EVVJBVElPTiA9IDA7XG5cbmV4cG9ydCBjb25zdCBBdHRyaWJ1dGlvbiA9ICgpID0+IChcbiAgPFN0eWxlZEF0dHJidXRpb24+XG4gICAgPGRpdiBjbGFzc05hbWU9XCJhdHRyaXRpb24tbG9nb1wiPlxuICAgICAgQmFzZW1hcCBieTpcbiAgICAgIDxhXG4gICAgICAgIGNsYXNzTmFtZT1cIm1hcGJveGdsLWN0cmwtbG9nb1wiXG4gICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cubWFwYm94LmNvbS9cIlxuICAgICAgICBhcmlhLWxhYmVsPVwiTWFwYm94IGxvZ29cIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzTmFtZT1cImF0dHJpdGlvbi1saW5rXCI+XG4gICAgICA8YSBocmVmPVwiaHR0cHM6Ly9rZXBsZXIuZ2wvcG9saWN5L1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5cbiAgICAgICAgwqkga2VwbGVyLmdsIHx7JyAnfVxuICAgICAgPC9hPlxuICAgICAgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm1hcGJveC5jb20vYWJvdXQvbWFwcy9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+XG4gICAgICAgIMKpIE1hcGJveCB8eycgJ31cbiAgICAgIDwvYT5cbiAgICAgIDxhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5cbiAgICAgICAgwqkgT3BlblN0cmVldE1hcCB8eycgJ31cbiAgICAgIDwvYT5cbiAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5tYXBib3guY29tL21hcC1mZWVkYmFjay9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+XG4gICAgICAgIDxzdHJvbmc+SW1wcm92ZSB0aGlzIG1hcDwvc3Ryb25nPlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L1N0eWxlZEF0dHJidXRpb24+XG4pO1xuXG5NYXBDb250YWluZXJGYWN0b3J5LmRlcHMgPSBbTWFwUG9wb3ZlckZhY3RvcnksIE1hcENvbnRyb2xGYWN0b3J5LCBFZGl0b3JGYWN0b3J5XTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWFwQ29udGFpbmVyRmFjdG9yeShNYXBQb3BvdmVyLCBNYXBDb250cm9sLCBFZGl0b3IpIHtcbiAgY2xhc3MgTWFwQ29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgLy8gcmVxdWlyZWRcbiAgICAgIGRhdGFzZXRzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgaW50ZXJhY3Rpb25Db25maWc6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIGxheWVyQmxlbmRpbmc6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIGxheWVyT3JkZXI6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLmlzUmVxdWlyZWQsXG4gICAgICBsYXllckRhdGE6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLmlzUmVxdWlyZWQsXG4gICAgICBsYXllcnM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLmlzUmVxdWlyZWQsXG4gICAgICBmaWx0ZXJzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KS5pc1JlcXVpcmVkLFxuICAgICAgbWFwU3RhdGU6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIG1hcENvbnRyb2xzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBtYXBTdHlsZTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgbW91c2VQb3M6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICBtYXBib3hBcGlVcmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICB2aXNTdGF0ZUFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIG1hcFN0YXRlQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgdWlTdGF0ZUFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcblxuICAgICAgLy8gb3B0aW9uYWxcbiAgICAgIHByaW1hcnk6IFByb3BUeXBlcy5ib29sLCAvLyBwcmltYXJ5IG9uZSB3aWxsIGJlIHJlcG9ydGluZyBpdHMgc2l6ZSB0byBhcHBTdGF0ZVxuICAgICAgcmVhZE9ubHk6IFByb3BUeXBlcy5ib29sLFxuICAgICAgaXNFeHBvcnQ6IFByb3BUeXBlcy5ib29sLFxuICAgICAgY2xpY2tlZDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgIGhvdmVySW5mbzogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgIG1hcExheWVyczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgIG9uTWFwVG9nZ2xlTGF5ZXI6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgb25NYXBTdHlsZUxvYWRlZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBvbk1hcFJlbmRlcjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBnZXRNYXBib3hSZWY6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgaW5kZXg6IFByb3BUeXBlcy5udW1iZXJcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIE1hcENvbXBvbmVudDogTWFwYm94R0xNYXAsXG4gICAgICBkZWNrR2xQcm9wczoge30sXG4gICAgICBpbmRleDogMCxcbiAgICAgIHByaW1hcnk6IHRydWVcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgIHN1cGVyKHByb3BzKTtcblxuICAgICAgdGhpcy5wcmV2aW91c0xheWVycyA9IHtcbiAgICAgICAgLy8gW2xheWVycy5pZF06IG1hcGJveExheWVyQ29uZmlnXG4gICAgICB9O1xuXG4gICAgICB0aGlzLl9kZWNrID0gbnVsbDtcbiAgICAgIHRoaXMuX3JlZiA9IGNyZWF0ZVJlZigpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgb2JzZXJ2ZURpbWVuc2lvbnModGhpcy5fcmVmLmN1cnJlbnQsIHRoaXMuX2hhbmRsZVJlc2l6ZSk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgICAgY29uc3QgY29udGV4dExvc3QgPSB0aGlzLnN0YXRlPy5jb250ZXh0TG9zdDtcblxuICAgICAgaWYgKGNvbnRleHRMb3N0KSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby1kaWQtdXBkYXRlLXNldC1zdGF0ZVxuICAgICAgICB0aGlzLnNldFN0YXRlKHtjb250ZXh0TG9zdDogZmFsc2V9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIC8vIHVuYmluZCBtYXBib3hnbCBldmVudCBsaXN0ZW5lclxuICAgICAgaWYgKHRoaXMuX21hcCkge1xuICAgICAgICB0aGlzLl9tYXAub2ZmKE1BUEJPWEdMX1NUWUxFX1VQREFURSk7XG4gICAgICAgIHRoaXMuX21hcC5vZmYoTUFQQk9YR0xfUkVOREVSKTtcbiAgICAgIH1cbiAgICAgIHVub2JzZXJ2ZURpbWVuc2lvbnModGhpcy5fcmVmLmN1cnJlbnQpO1xuICAgIH1cblxuICAgIF9oYW5kbGVSZXNpemUgPSBkaW1lbnNpb25zID0+IHtcbiAgICAgIGNvbnN0IHtwcmltYXJ5LCBpc0V4cG9ydH0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKHByaW1hcnkpIHtcbiAgICAgICAgY29uc3Qge21hcFN0YXRlQWN0aW9uc30gPSB0aGlzLnByb3BzO1xuICAgICAgICBpZiAoIWlzRXhwb3J0ICYmIGRpbWVuc2lvbnMgJiYgZGltZW5zaW9ucy53aWR0aCA+IDAgJiYgZGltZW5zaW9ucy5oZWlnaHQgPiAwKSB7XG4gICAgICAgICAgbWFwU3RhdGVBY3Rpb25zLnVwZGF0ZU1hcChkaW1lbnNpb25zKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBsYXllcnNTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLmxheWVycztcbiAgICBsYXllckRhdGFTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLmxheWVyRGF0YTtcbiAgICBtYXBMYXllcnNTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLm1hcExheWVycztcbiAgICBsYXllck9yZGVyU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5sYXllck9yZGVyO1xuICAgIGxheWVyc1RvUmVuZGVyU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHRoaXMubGF5ZXJzU2VsZWN0b3IsXG4gICAgICB0aGlzLmxheWVyRGF0YVNlbGVjdG9yLFxuICAgICAgdGhpcy5tYXBMYXllcnNTZWxlY3RvcixcbiAgICAgIHByZXBhcmVMYXllcnNUb1JlbmRlclxuICAgICk7XG4gICAgbGF5ZXJzRm9yRGVja1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLmxheWVyc1NlbGVjdG9yLFxuICAgICAgdGhpcy5sYXllckRhdGFTZWxlY3RvcixcbiAgICAgIHByZXBhcmVMYXllcnNGb3JEZWNrXG4gICAgKTtcbiAgICBmaWx0ZXJzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5maWx0ZXJzO1xuICAgIHBvbHlnb25GaWx0ZXJzID0gY3JlYXRlU2VsZWN0b3IodGhpcy5maWx0ZXJzU2VsZWN0b3IsIGZpbHRlcnMgPT5cbiAgICAgIGZpbHRlcnMuZmlsdGVyKGYgPT4gZi50eXBlID09PSBGSUxURVJfVFlQRVMucG9seWdvbilcbiAgICApO1xuXG4gICAgbWFwYm94TGF5ZXJzU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHRoaXMubGF5ZXJzU2VsZWN0b3IsXG4gICAgICB0aGlzLmxheWVyRGF0YVNlbGVjdG9yLFxuICAgICAgdGhpcy5sYXllck9yZGVyU2VsZWN0b3IsXG4gICAgICB0aGlzLmxheWVyc1RvUmVuZGVyU2VsZWN0b3IsXG4gICAgICBnZW5lcmF0ZU1hcGJveExheWVyc1xuICAgICk7XG5cbiAgICAvKiBjb21wb25lbnQgcHJpdmF0ZSBmdW5jdGlvbnMgKi9cbiAgICBfb25DbG9zZU1hcFBvcG92ZXIgPSAoKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy5vbkxheWVyQ2xpY2sobnVsbCk7XG4gICAgfTtcblxuICAgIF9vbkxheWVyU2V0RG9tYWluID0gKGlkeCwgY29sb3JEb21haW4pID0+IHtcbiAgICAgIHRoaXMucHJvcHMudmlzU3RhdGVBY3Rpb25zLmxheWVyQ29uZmlnQ2hhbmdlKHRoaXMucHJvcHMubGF5ZXJzW2lkeF0sIHtcbiAgICAgICAgY29sb3JEb21haW5cbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfaGFuZGxlTWFwVG9nZ2xlTGF5ZXIgPSBsYXllcklkID0+IHtcbiAgICAgIGNvbnN0IHtpbmRleDogbWFwSW5kZXggPSAwLCB2aXNTdGF0ZUFjdGlvbnN9ID0gdGhpcy5wcm9wcztcbiAgICAgIHZpc1N0YXRlQWN0aW9ucy50b2dnbGVMYXllckZvck1hcChtYXBJbmRleCwgbGF5ZXJJZCk7XG4gICAgfTtcblxuICAgIF9vbk1hcGJveFN0eWxlVXBkYXRlID0gKCkgPT4ge1xuICAgICAgLy8gZm9yY2UgcmVmcmVzaCBtYXBib3hnbCBsYXllcnNcbiAgICAgIHRoaXMucHJldmlvdXNMYXllcnMgPSB7fTtcbiAgICAgIHRoaXMuX3VwZGF0ZU1hcGJveExheWVycygpO1xuXG4gICAgICBpZiAodHlwZW9mIHRoaXMucHJvcHMub25NYXBTdHlsZUxvYWRlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnByb3BzLm9uTWFwU3R5bGVMb2FkZWQodGhpcy5fbWFwKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3NldE1hcGJveE1hcCA9IG1hcGJveCA9PiB7XG4gICAgICBpZiAoIXRoaXMuX21hcCAmJiBtYXBib3gpIHtcbiAgICAgICAgdGhpcy5fbWFwID0gbWFwYm94LmdldE1hcCgpO1xuICAgICAgICAvLyBpIG5vdGljZWQgaW4gY2VydGFpbiBjb250ZXh0IHdlIGRvbid0IGFjY2VzcyB0aGUgYWN0dWFsIG1hcCBlbGVtZW50XG4gICAgICAgIGlmICghdGhpcy5fbWFwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIGJpbmQgbWFwYm94Z2wgZXZlbnQgbGlzdGVuZXJcbiAgICAgICAgdGhpcy5fbWFwLm9uKE1BUEJPWEdMX1NUWUxFX1VQREFURSwgdGhpcy5fb25NYXBib3hTdHlsZVVwZGF0ZSk7XG5cbiAgICAgICAgdGhpcy5fbWFwLm9uKE1BUEJPWEdMX1JFTkRFUiwgKCkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vbk1hcFJlbmRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbk1hcFJlbmRlcih0aGlzLl9tYXApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnByb3BzLmdldE1hcGJveFJlZikge1xuICAgICAgICAvLyBUaGUgcGFyZW50IGNvbXBvbmVudCBjYW4gZ2FpbiBhY2Nlc3MgdG8gb3VyIE1hcGJveEdsTWFwIGJ5XG4gICAgICAgIC8vIHByb3ZpZGluZyB0aGlzIGNhbGxiYWNrLiBOb3RlIHRoYXQgJ21hcGJveCcgd2lsbCBiZSBudWxsIHdoZW4gdGhlXG4gICAgICAgIC8vIHJlZiBpcyB1bnNldCAoZS5nLiB3aGVuIGEgc3BsaXQgbWFwIGlzIGNsb3NlZCkuXG4gICAgICAgIHRoaXMucHJvcHMuZ2V0TWFwYm94UmVmKG1hcGJveCwgdGhpcy5wcm9wcy5pbmRleCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF9vbkRlY2tJbml0aWFsaXplZChnbCkge1xuICAgICAgaWYgKHRoaXMucHJvcHMub25EZWNrSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbkRlY2tJbml0aWFsaXplZCh0aGlzLl9kZWNrLCBnbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX29uQmVmb3JlUmVuZGVyID0gKHtnbH0pID0+IHtcbiAgICAgIHNldExheWVyQmxlbmRpbmcoZ2wsIHRoaXMucHJvcHMubGF5ZXJCbGVuZGluZyk7XG4gICAgfTtcblxuICAgIF9vbkRlY2tFcnJvciA9IChlcnJvciwgbGF5ZXIpID0+IHtcbiAgICAgIGlmIChlcnJvcj8ubWVzc2FnZSA9PT0gJ1dlYkdMIGNvbnRleHQgaXMgbG9zdCcpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y29udGV4dExvc3Q6IHRydWV9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgQW4gZXJyb3IgaW4gZGVjay5nbDogJHtlcnJvcj8ubWVzc2FnZX0gaW4gJHtsYXllcj8uaWR9YDtcbiAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbklkID0gYCR7bGF5ZXI/LmlkfS0ke2Vycm9yPy5tZXNzYWdlfWA7XG5cbiAgICAgIC8vIFRocm90dGxlIGVycm9yIG5vdGlmaWNhdGlvbnMsIGFzIFJlYWN0IGRvZXNuJ3QgbGlrZSB0b28gbWFueSBzdGF0ZSBjaGFuZ2VzIGZyb20gaGVyZS5cbiAgICAgIHRoaXMuX2RlY2tHTEVycm9yc0VsYXBzZWQgPSB0aGlzLl9kZWNrR0xFcnJvcnNFbGFwc2VkIHx8IHt9O1xuICAgICAgY29uc3QgbGFzdFNob3duID0gdGhpcy5fZGVja0dMRXJyb3JzRWxhcHNlZFtub3RpZmljYXRpb25JZF07XG4gICAgICBpZiAoIWxhc3RTaG93biB8fCBsYXN0U2hvd24gPCBEYXRlLm5vdygpIC0gVEhST1RUTEVfTk9USUZJQ0FUSU9OX1RJTUUpIHtcbiAgICAgICAgdGhpcy5fZGVja0dMRXJyb3JzRWxhcHNlZFtub3RpZmljYXRpb25JZF0gPSBEYXRlLm5vdygpO1xuXG4gICAgICAgIC8vIENyZWF0ZSBuZXcgZXJyb3Igbm90aWZpY2F0aW9uIG9yIHVwZGF0ZSBleGlzdGluZyBvbmUgd2l0aCBzYW1lIGlkLlxuICAgICAgICAvLyBVcGRhdGUgaXMgcmVxdWlyZWQgdG8gcHJlc2VydmUgdGhlIG9yZGVyIG9mIG5vdGlmaWNhdGlvbnMgYXMgdGhleSBwcm9iYWJseSBhcmUgZ29pbmcgdG8gXCJqdW1wXCIgYmFzZWQgb24gb3JkZXIgb2YgZXJyb3JzLlxuICAgICAgICBjb25zdCB7dWlTdGF0ZUFjdGlvbnN9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgdWlTdGF0ZUFjdGlvbnMuYWRkTm90aWZpY2F0aW9uKFxuICAgICAgICAgIGVycm9yTm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgICAgIGlkOiBub3RpZmljYXRpb25JZFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8qIGNvbXBvbmVudCByZW5kZXIgZnVuY3Rpb25zICovXG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG4gICAgX3JlbmRlck1hcFBvcG92ZXIobGF5ZXJzVG9SZW5kZXIpIHtcbiAgICAgIC8vIFRPRE86IG1vdmUgdGhpcyBpbnRvIHJlZHVjZXIgc28gaXQgY2FuIGJlIHRlc3RlZFxuICAgICAgY29uc3Qge1xuICAgICAgICBtYXBTdGF0ZSxcbiAgICAgICAgaG92ZXJJbmZvLFxuICAgICAgICBjbGlja2VkLFxuICAgICAgICBkYXRhc2V0cyxcbiAgICAgICAgaW50ZXJhY3Rpb25Db25maWcsXG4gICAgICAgIGxheWVycyxcbiAgICAgICAgbW91c2VQb3M6IHttb3VzZVBvc2l0aW9uLCBjb29yZGluYXRlLCBwaW5uZWR9XG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKCFtb3VzZVBvc2l0aW9uIHx8ICFpbnRlcmFjdGlvbkNvbmZpZy50b29sdGlwKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsYXllckhvdmVyUHJvcCA9IGdldExheWVySG92ZXJQcm9wKHtcbiAgICAgICAgaW50ZXJhY3Rpb25Db25maWcsXG4gICAgICAgIGhvdmVySW5mbyxcbiAgICAgICAgbGF5ZXJzLFxuICAgICAgICBsYXllcnNUb1JlbmRlcixcbiAgICAgICAgZGF0YXNldHNcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBjb21wYXJlTW9kZSA9IGludGVyYWN0aW9uQ29uZmlnLnRvb2x0aXAuY29uZmlnXG4gICAgICAgID8gaW50ZXJhY3Rpb25Db25maWcudG9vbHRpcC5jb25maWcuY29tcGFyZU1vZGVcbiAgICAgICAgOiBmYWxzZTtcblxuICAgICAgbGV0IHBpbm5lZFBvc2l0aW9uID0ge307XG4gICAgICBsZXQgbGF5ZXJQaW5uZWRQcm9wID0gbnVsbDtcbiAgICAgIGlmIChwaW5uZWQgfHwgY2xpY2tlZCkge1xuICAgICAgICAvLyBwcm9qZWN0IGxuZ2xhdCB0byBzY3JlZW4gc28gdGhhdCB0b29sdGlwIGZvbGxvd3MgdGhlIG9iamVjdCBvbiB6b29tXG4gICAgICAgIGNvbnN0IHZpZXdwb3J0ID0gbmV3IFdlYk1lcmNhdG9yVmlld3BvcnQobWFwU3RhdGUpO1xuICAgICAgICBjb25zdCBsbmdMYXQgPSBjbGlja2VkID8gY2xpY2tlZC5sbmdMYXQgOiBwaW5uZWQuY29vcmRpbmF0ZTtcbiAgICAgICAgcGlubmVkUG9zaXRpb24gPSB0aGlzLl9nZXRIb3ZlclhZKHZpZXdwb3J0LCBsbmdMYXQpO1xuICAgICAgICBsYXllclBpbm5lZFByb3AgPSBnZXRMYXllckhvdmVyUHJvcCh7XG4gICAgICAgICAgaW50ZXJhY3Rpb25Db25maWcsXG4gICAgICAgICAgaG92ZXJJbmZvOiBjbGlja2VkLFxuICAgICAgICAgIGxheWVycyxcbiAgICAgICAgICBsYXllcnNUb1JlbmRlcixcbiAgICAgICAgICBkYXRhc2V0c1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGxheWVySG92ZXJQcm9wICYmIGxheWVyUGlubmVkUHJvcCkge1xuICAgICAgICAgIGxheWVySG92ZXJQcm9wLnByaW1hcnlEYXRhID0gbGF5ZXJQaW5uZWRQcm9wLmRhdGE7XG4gICAgICAgICAgbGF5ZXJIb3ZlclByb3AuY29tcGFyZVR5cGUgPSBpbnRlcmFjdGlvbkNvbmZpZy50b29sdGlwLmNvbmZpZy5jb21wYXJlVHlwZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBjb21tb25Qcm9wID0ge1xuICAgICAgICBvbkNsb3NlOiB0aGlzLl9vbkNsb3NlTWFwUG9wb3ZlcixcbiAgICAgICAgem9vbTogbWFwU3RhdGUuem9vbSxcbiAgICAgICAgY29udGFpbmVyOiB0aGlzLl9yZWYuY3VycmVudFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEVycm9yQm91bmRhcnk+XG4gICAgICAgICAge2xheWVyUGlubmVkUHJvcCAmJiAoXG4gICAgICAgICAgICA8TWFwUG9wb3ZlclxuICAgICAgICAgICAgICB7Li4ucGlubmVkUG9zaXRpb259XG4gICAgICAgICAgICAgIHsuLi5jb21tb25Qcm9wfVxuICAgICAgICAgICAgICBsYXllckhvdmVyUHJvcD17bGF5ZXJQaW5uZWRQcm9wfVxuICAgICAgICAgICAgICBjb29yZGluYXRlPXtpbnRlcmFjdGlvbkNvbmZpZy5jb29yZGluYXRlLmVuYWJsZWQgJiYgKHBpbm5lZCB8fCB7fSkuY29vcmRpbmF0ZX1cbiAgICAgICAgICAgICAgZnJvemVuPXt0cnVlfVxuICAgICAgICAgICAgICBpc0Jhc2U9e2NvbXBhcmVNb2RlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIHtsYXllckhvdmVyUHJvcCAmJiAoIWxheWVyUGlubmVkUHJvcCB8fCBjb21wYXJlTW9kZSkgJiYgKFxuICAgICAgICAgICAgPE1hcFBvcG92ZXJcbiAgICAgICAgICAgICAgeD17bW91c2VQb3NpdGlvblswXX1cbiAgICAgICAgICAgICAgeT17bW91c2VQb3NpdGlvblsxXX1cbiAgICAgICAgICAgICAgey4uLmNvbW1vblByb3B9XG4gICAgICAgICAgICAgIGxheWVySG92ZXJQcm9wPXtsYXllckhvdmVyUHJvcH1cbiAgICAgICAgICAgICAgZnJvemVuPXtmYWxzZX1cbiAgICAgICAgICAgICAgY29vcmRpbmF0ZT17aW50ZXJhY3Rpb25Db25maWcuY29vcmRpbmF0ZS5lbmFibGVkICYmIGNvb3JkaW5hdGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgLyogZXNsaW50LWVuYWJsZSBjb21wbGV4aXR5ICovXG5cbiAgICBfZ2V0SG92ZXJYWSh2aWV3cG9ydCwgbG5nTGF0KSB7XG4gICAgICBjb25zdCBzY3JlZW5Db29yZCA9ICF2aWV3cG9ydCB8fCAhbG5nTGF0ID8gbnVsbCA6IHZpZXdwb3J0LnByb2plY3QobG5nTGF0KTtcbiAgICAgIHJldHVybiBzY3JlZW5Db29yZCAmJiB7eDogc2NyZWVuQ29vcmRbMF0sIHk6IHNjcmVlbkNvb3JkWzFdfTtcbiAgICB9XG5cbiAgICBfcmVuZGVyRGVja092ZXJsYXkobGF5ZXJzRm9yRGVjaykge1xuICAgICAgY29uc3Qge1xuICAgICAgICBtYXBTdGF0ZSxcbiAgICAgICAgbWFwU3R5bGUsXG4gICAgICAgIGxheWVyRGF0YSxcbiAgICAgICAgbGF5ZXJPcmRlcixcbiAgICAgICAgbGF5ZXJzLFxuICAgICAgICB2aXNTdGF0ZUFjdGlvbnMsXG4gICAgICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICAgICAgICBtYXBib3hBcGlVcmwsXG4gICAgICAgIG1hc2tQb2x5Z29uXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgLy8gaW5pdGlhbGlzZSBsYXllcnMgZnJvbSBwcm9wcyBpZiBleGlzdHNcbiAgICAgIGxldCBkZWNrR2xMYXllcnMgPSB0aGlzLnByb3BzLmRlY2tHbFByb3BzPy5sYXllcnMgfHwgW107XG5cbiAgICAgIC8vIHdhaXQgdW50aWwgZGF0YSBpcyByZWFkeSBiZWZvcmUgcmVuZGVyIGRhdGEgbGF5ZXJzXG4gICAgICBpZiAobGF5ZXJEYXRhICYmIGxheWVyRGF0YS5sZW5ndGgpIHtcbiAgICAgICAgLy8gbGFzdCBsYXllciByZW5kZXIgZmlyc3RcbiAgICAgICAgY29uc3QgZGF0YUxheWVycyA9IGxheWVyT3JkZXJcbiAgICAgICAgICAuc2xpY2UoKVxuICAgICAgICAgIC5yZXZlcnNlKClcbiAgICAgICAgICAuZmlsdGVyKGlkeCA9PiBsYXllcnNGb3JEZWNrW2xheWVyc1tpZHhdLmlkXSlcbiAgICAgICAgICAucmVkdWNlKChvdmVybGF5cywgaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYXllckNhbGxiYWNrcyA9IHtcbiAgICAgICAgICAgICAgb25TZXRMYXllckRvbWFpbjogdmFsID0+IHRoaXMuX29uTGF5ZXJTZXREb21haW4oaWR4LCB2YWwpXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgbGF5ZXJPdmVybGF5ID0gcmVuZGVyRGVja0dsTGF5ZXIodGhpcy5wcm9wcywgbGF5ZXJDYWxsYmFja3MsIGlkeCk7XG4gICAgICAgICAgICByZXR1cm4gb3ZlcmxheXMuY29uY2F0KGxheWVyT3ZlcmxheSB8fCBbXSk7XG4gICAgICAgICAgfSwgW10pO1xuICAgICAgICBkZWNrR2xMYXllcnMgPSBkZWNrR2xMYXllcnMuY29uY2F0KGRhdGFMYXllcnMpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5wcm9wcy5kZWNrR2xQcm9wcz8ubGF5ZXJzT25Ub3ApIHtcbiAgICAgICAgZGVja0dsTGF5ZXJzID0gZGVja0dsTGF5ZXJzLmNvbmNhdCh0aGlzLnByb3BzLmRlY2tHbFByb3BzLmxheWVyc09uVG9wKTtcbiAgICAgIH1cblxuICAgICAgZGVja0dsTGF5ZXJzLnB1c2goXG4gICAgICAgIG5ldyBTb2xpZFBvbHlnb25MYXllcih7XG4gICAgICAgICAgaWQ6IE1BU0tfTEFZRVJfSUQsXG4gICAgICAgICAgb3BlcmF0aW9uOiBPUEVSQVRJT04uTUFTSyxcbiAgICAgICAgICBkYXRhOiBtYXNrUG9seWdvbiA/IFt7cG9seWdvbjogbWFza1BvbHlnb259XSA6IFtdLFxuICAgICAgICAgIGdldEZpbGxDb2xvcjogWzI1NSwgMjU1LCAyNTUsIDI1NV1cbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIGlmIChtYXBTdHlsZS52aXNpYmxlTGF5ZXJHcm91cHNbJzNkIGJ1aWxkaW5nJ10pIHtcbiAgICAgICAgZGVja0dsTGF5ZXJzLnB1c2goXG4gICAgICAgICAgbmV3IFRocmVlREJ1aWxkaW5nTGF5ZXIoe1xuICAgICAgICAgICAgaWQ6ICdfa2VwbGVyZ2xfM2QtYnVpbGRpbmcnLFxuICAgICAgICAgICAgbWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gICAgICAgICAgICBtYXBib3hBcGlVcmwsXG4gICAgICAgICAgICB0aHJlZURCdWlsZGluZ0NvbG9yOiBtYXBTdHlsZS50aHJlZURCdWlsZGluZ0NvbG9yLFxuICAgICAgICAgICAgdXBkYXRlVHJpZ2dlcnM6IHtcbiAgICAgICAgICAgICAgZ2V0RmlsbENvbG9yOiBtYXBTdHlsZS50aHJlZURCdWlsZGluZ0NvbG9yXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPERlY2tHTFxuICAgICAgICAgIGNvbnRyb2xsZXI9e3RydWV9XG4gICAgICAgICAgey4uLnRoaXMucHJvcHMuZGVja0dsUHJvcHN9XG4gICAgICAgICAgdmlld1N0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICBvblZpZXdTdGF0ZUNoYW5nZT17KHt2aWV3U3RhdGV9KSA9PiB0aGlzLl9vblZpZXdwb3J0Q2hhbmdlKHZpZXdTdGF0ZSl9XG4gICAgICAgICAgaWQ9XCJkZWZhdWx0LWRlY2tnbC1vdmVybGF5XCJcbiAgICAgICAgICBsYXllcnM9e2RlY2tHbExheWVyc31cbiAgICAgICAgICBvbkJlZm9yZVJlbmRlcj17dGhpcy5fb25CZWZvcmVSZW5kZXJ9XG4gICAgICAgICAgb25Ib3Zlcj17dmlzU3RhdGVBY3Rpb25zLm9uTGF5ZXJIb3Zlcn1cbiAgICAgICAgICBvbkNsaWNrPXt2aXNTdGF0ZUFjdGlvbnMub25MYXllckNsaWNrfVxuICAgICAgICAgIG9uRXJyb3I9e3RoaXMuX29uRGVja0Vycm9yfVxuICAgICAgICAgIHJlZj17Y29tcCA9PiB7XG4gICAgICAgICAgICBpZiAoY29tcCAmJiBjb21wLmRlY2sgJiYgY29tcC5kZWNrICE9PSB0aGlzLl9kZWNrKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2RlY2sgPSBjb21wLmRlY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbldlYkdMSW5pdGlhbGl6ZWQ9e2dsID0+IHRoaXMuX29uRGVja0luaXRpYWxpemVkKGdsKX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3VwZGF0ZU1hcGJveExheWVycygpIHtcbiAgICAgIGNvbnN0IG1hcGJveExheWVycyA9IHRoaXMubWFwYm94TGF5ZXJzU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBpZiAoIU9iamVjdC5rZXlzKG1hcGJveExheWVycykubGVuZ3RoICYmICFPYmplY3Qua2V5cyh0aGlzLnByZXZpb3VzTGF5ZXJzKS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB1cGRhdGVNYXBib3hMYXllcnModGhpcy5fbWFwLCBtYXBib3hMYXllcnMsIHRoaXMucHJldmlvdXNMYXllcnMpO1xuXG4gICAgICB0aGlzLnByZXZpb3VzTGF5ZXJzID0gbWFwYm94TGF5ZXJzO1xuICAgIH1cblxuICAgIF9yZW5kZXJNYXBib3hPdmVybGF5cygpIHtcbiAgICAgIGlmICh0aGlzLl9tYXAgJiYgdGhpcy5fbWFwLmlzU3R5bGVMb2FkZWQoKSkge1xuICAgICAgICB0aGlzLl91cGRhdGVNYXBib3hMYXllcnMoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfb25WaWV3cG9ydENoYW5nZSA9IHZpZXdTdGF0ZSA9PiB7XG4gICAgICBjb25zdCB7d2lkdGgsIGhlaWdodCwgLi4ucmVzdFZpZXdTdGF0ZX0gPSB2aWV3U3RhdGU7XG4gICAgICBjb25zdCB7cHJpbWFyeSwgaXNFeHBvcnR9ID0gdGhpcy5wcm9wcztcbiAgICAgIC8vIHJlYWN0LW1hcC1nbCBzZW5kcyAwLDAgZGltZW5zaW9ucyBkdXJpbmcgaW5pdGlhbGl6YXRpb25cbiAgICAgIC8vIGFmdGVyIHdlIGhhdmUgcmVjZWl2ZWQgcHJvcGVyIGRpbWVuc2lvbnMgZnJvbSBvYnNlcnZlRGltZW5zaW9uc1xuICAgICAgY29uc3QgbmV4dCA9IHtcbiAgICAgICAgLi4uKHdpZHRoID4gMCAmJiBoZWlnaHQgPiAwID8gdmlld1N0YXRlIDogcmVzdFZpZXdTdGF0ZSksXG4gICAgICAgIC8vIGVuYWJsaW5nIHRyYW5zaXRpb24gaW4gdHdvIG1hcHMgbWF5IGxlYWQgdG8gZW5kbGVzcyB1cGRhdGUgbG9vcHNcbiAgICAgICAgdHJhbnNpdGlvbkR1cmF0aW9uOiBwcmltYXJ5ID8gVFJBTlNJVElPTl9EVVJBVElPTiA6IDBcbiAgICAgIH07XG4gICAgICBpZiAodHlwZW9mIHRoaXMucHJvcHMub25WaWV3U3RhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vblZpZXdTdGF0ZUNoYW5nZShuZXh0KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFpc0V4cG9ydCkge1xuICAgICAgICB0aGlzLnByb3BzLm1hcFN0YXRlQWN0aW9ucy51cGRhdGVNYXAobmV4dCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90b2dnbGVNYXBDb250cm9sID0gcGFuZWxJZCA9PiB7XG4gICAgICBjb25zdCB7aW5kZXgsIHVpU3RhdGVBY3Rpb25zfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIHVpU3RhdGVBY3Rpb25zLnRvZ2dsZU1hcENvbnRyb2wocGFuZWxJZCwgaW5kZXgpO1xuICAgIH07XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG4gICAgX3JlbmRlck1hcCgpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbWFwU3RhdGUsXG4gICAgICAgIG1hcFN0eWxlLFxuICAgICAgICBtYXBTdGF0ZUFjdGlvbnMsXG4gICAgICAgIGxheWVycyxcbiAgICAgICAgTWFwQ29tcG9uZW50LFxuICAgICAgICBkYXRhc2V0cyxcbiAgICAgICAgbWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gICAgICAgIG1hcGJveEFwaVVybCxcbiAgICAgICAgbWFwQ29udHJvbHMsXG4gICAgICAgIGlzRXhwb3J0LFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgICB2aXNTdGF0ZUFjdGlvbnMsXG4gICAgICAgIGludGVyYWN0aW9uQ29uZmlnLFxuICAgICAgICBlZGl0b3IsXG4gICAgICAgIGluZGV4LFxuICAgICAgICBwcmltYXJ5XG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgY29uc3QgbGF5ZXJzVG9SZW5kZXIgPSB0aGlzLmxheWVyc1RvUmVuZGVyU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBsYXllcnNGb3JEZWNrID0gdGhpcy5sYXllcnNGb3JEZWNrU2VsZWN0b3IodGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IG1hcFByb3BzID0ge1xuICAgICAgICAuLi5tYXBTdGF0ZSxcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIHByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZSxcbiAgICAgICAgbWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gICAgICAgIG1hcGJveEFwaVVybCxcbiAgICAgICAgdHJhbnNmb3JtUmVxdWVzdFxuICAgICAgfTtcblxuICAgICAgY29uc3QgaXNFZGl0ID0gKG1hcENvbnRyb2xzLm1hcERyYXcgfHwge30pLmFjdGl2ZTtcblxuICAgICAgY29uc3QgaGFzR2VvY29kZXJMYXllciA9IGxheWVycy5maW5kKGwgPT4gbC5pZCA9PT0gR0VPQ09ERVJfTEFZRVJfSUQpO1xuICAgICAgY29uc3QgaXNTcGxpdCA9IEJvb2xlYW4obWFwU3RhdGUuaXNTcGxpdCk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPE1hcENvbnRyb2xcbiAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgIGF2YWlsYWJsZUxvY2FsZXM9e09iamVjdC5rZXlzKExPQ0FMRV9DT0RFUyl9XG4gICAgICAgICAgICBkcmFnUm90YXRlPXttYXBTdGF0ZS5kcmFnUm90YXRlfVxuICAgICAgICAgICAgaXNTcGxpdD17aXNTcGxpdH1cbiAgICAgICAgICAgIHByaW1hcnk9e3ByaW1hcnl9XG4gICAgICAgICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICAgIGxheWVyc1RvUmVuZGVyPXtsYXllcnNUb1JlbmRlcn1cbiAgICAgICAgICAgIG1hcEluZGV4PXtpbmRleH1cbiAgICAgICAgICAgIG1hcENvbnRyb2xzPXttYXBDb250cm9sc31cbiAgICAgICAgICAgIHJlYWRPbmx5PXt0aGlzLnByb3BzLnJlYWRPbmx5fVxuICAgICAgICAgICAgc2NhbGU9e21hcFN0YXRlLnNjYWxlIHx8IDF9XG4gICAgICAgICAgICB0b3A9e2ludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyICYmIGludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyLmVuYWJsZWQgPyA1MiA6IDB9XG4gICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgb25Ub2dnbGVQZXJzcGVjdGl2ZT17bWFwU3RhdGVBY3Rpb25zLnRvZ2dsZVBlcnNwZWN0aXZlfVxuICAgICAgICAgICAgb25Ub2dnbGVTcGxpdE1hcD17bWFwU3RhdGVBY3Rpb25zLnRvZ2dsZVNwbGl0TWFwfVxuICAgICAgICAgICAgb25NYXBUb2dnbGVMYXllcj17dGhpcy5faGFuZGxlTWFwVG9nZ2xlTGF5ZXJ9XG4gICAgICAgICAgICBvblRvZ2dsZU1hcENvbnRyb2w9e3RoaXMuX3RvZ2dsZU1hcENvbnRyb2x9XG4gICAgICAgICAgICBvblNldEVkaXRvck1vZGU9e3Zpc1N0YXRlQWN0aW9ucy5zZXRFZGl0b3JNb2RlfVxuICAgICAgICAgICAgb25TZXRMb2NhbGU9e3VpU3RhdGVBY3Rpb25zLnNldExvY2FsZX1cbiAgICAgICAgICAgIG9uVG9nZ2xlRWRpdG9yVmlzaWJpbGl0eT17dmlzU3RhdGVBY3Rpb25zLnRvZ2dsZUVkaXRvclZpc2liaWxpdHl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8TWFwQ29tcG9uZW50XG4gICAgICAgICAgICB7Li4ubWFwUHJvcHN9XG4gICAgICAgICAgICBrZXk9XCJib3R0b21cIlxuICAgICAgICAgICAgcmVmPXt0aGlzLl9zZXRNYXBib3hNYXB9XG4gICAgICAgICAgICBtYXBTdHlsZT17bWFwU3R5bGUuYm90dG9tTWFwU3R5bGV9XG4gICAgICAgICAgICBnZXRDdXJzb3I9e3RoaXMucHJvcHMuaG92ZXJJbmZvID8gKCkgPT4gJ3BvaW50ZXInIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgb25Nb3VzZU1vdmU9e3RoaXMucHJvcHMudmlzU3RhdGVBY3Rpb25zLm9uTW91c2VNb3ZlfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt0aGlzLl9yZW5kZXJEZWNrT3ZlcmxheShsYXllcnNGb3JEZWNrKX1cbiAgICAgICAgICAgIHt0aGlzLl9yZW5kZXJNYXBib3hPdmVybGF5cygpfVxuICAgICAgICAgICAgPEVkaXRvclxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICAgICAgICAgIGZpbHRlcnM9e3RoaXMucG9seWdvbkZpbHRlcnModGhpcy5wcm9wcyl9XG4gICAgICAgICAgICAgIGlzRW5hYmxlZD17aXNFZGl0fVxuICAgICAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICAgICAgbGF5ZXJzVG9SZW5kZXI9e2xheWVyc1RvUmVuZGVyfVxuICAgICAgICAgICAgICBvbkRlbGV0ZUZlYXR1cmU9e3Zpc1N0YXRlQWN0aW9ucy5kZWxldGVGZWF0dXJlfVxuICAgICAgICAgICAgICBvblNlbGVjdD17dmlzU3RhdGVBY3Rpb25zLnNldFNlbGVjdGVkRmVhdHVyZX1cbiAgICAgICAgICAgICAgb25VcGRhdGU9e3Zpc1N0YXRlQWN0aW9ucy5zZXRGZWF0dXJlc31cbiAgICAgICAgICAgICAgb25Ub2dnbGVQb2x5Z29uRmlsdGVyPXt2aXNTdGF0ZUFjdGlvbnMuc2V0UG9seWdvbkZpbHRlckxheWVyfVxuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6IGlzRWRpdCA/ICdhbGwnIDogJ25vbmUnLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGVkaXRvci52aXNpYmxlID8gJ2Jsb2NrJyA6ICdub25lJ1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L01hcENvbXBvbmVudD5cbiAgICAgICAgICB7bWFwU3R5bGUudG9wTWFwU3R5bGUgfHwgaGFzR2VvY29kZXJMYXllciA/IChcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e01BUF9TVFlMRS50b3B9PlxuICAgICAgICAgICAgICA8TWFwQ29tcG9uZW50IHsuLi5tYXBQcm9wc30ga2V5PVwidG9wXCIgbWFwU3R5bGU9e21hcFN0eWxlLnRvcE1hcFN0eWxlfT5cbiAgICAgICAgICAgICAgICB7dGhpcy5fcmVuZGVyRGVja092ZXJsYXkoe1tHRU9DT0RFUl9MQVlFUl9JRF06IHRydWV9KX1cbiAgICAgICAgICAgICAgPC9NYXBDb21wb25lbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICB7dGhpcy5fcmVuZGVyTWFwUG9wb3ZlcihsYXllcnNUb1JlbmRlcil9XG4gICAgICAgICAgeyFpc1NwbGl0IHx8IGluZGV4ID09PSAxID8gPEF0dHJpYnV0aW9uIC8+IDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHttYXBTdGF0ZSwgbWFwU3R5bGV9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IGNvbnRleHRMb3N0ID0gdGhpcy5zdGF0ZT8uY29udGV4dExvc3Q7XG5cbiAgICAgIGlmIChjb250ZXh0TG9zdCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1hcENvbnRhaW5lciByZWY9e3RoaXMuX3JlZn0gc3R5bGU9e01BUF9TVFlMRS5jb250YWluZXJ9IGdsb2JlPXttYXBTdGF0ZS5nbG9iZX0+XG4gICAgICAgICAge21hcFN0eWxlLmJvdHRvbU1hcFN0eWxlICYmIHRoaXMuX3JlbmRlck1hcCgpfVxuICAgICAgICA8L1N0eWxlZE1hcENvbnRhaW5lcj5cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgTWFwQ29udGFpbmVyLmRpc3BsYXlOYW1lID0gJ01hcENvbnRhaW5lcic7XG5cbiAgcmV0dXJuIE1hcENvbnRhaW5lcjtcbn1cbiJdfQ==
|
|
697
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL21hcC1jb250YWluZXIuanMiXSwibmFtZXMiOlsiTUFQX1NUWUxFIiwiY29udGFpbmVyIiwiZGlzcGxheSIsInBvc2l0aW9uIiwid2lkdGgiLCJoZWlnaHQiLCJ0b3AiLCJwb2ludGVyRXZlbnRzIiwiTUFQQk9YR0xfU1RZTEVfVVBEQVRFIiwiTUFQQk9YR0xfUkVOREVSIiwiVFJBTlNJVElPTl9EVVJBVElPTiIsIkF0dHJpYnV0aW9uIiwiTWFwQ29udGFpbmVyRmFjdG9yeSIsImRlcHMiLCJNYXBQb3BvdmVyRmFjdG9yeSIsIk1hcENvbnRyb2xGYWN0b3J5IiwiRWRpdG9yRmFjdG9yeSIsIk1hcFBvcG92ZXIiLCJNYXBDb250cm9sIiwiRWRpdG9yIiwiTWFwQ29udGFpbmVyIiwicHJvcHMiLCJkaW1lbnNpb25zIiwicHJpbWFyeSIsImlzRXhwb3J0IiwibWFwU3RhdGVBY3Rpb25zIiwidXBkYXRlTWFwIiwibGF5ZXJzIiwibGF5ZXJEYXRhIiwibWFwTGF5ZXJzIiwibGF5ZXJPcmRlciIsImxheWVyc1NlbGVjdG9yIiwibGF5ZXJEYXRhU2VsZWN0b3IiLCJtYXBMYXllcnNTZWxlY3RvciIsInByZXBhcmVMYXllcnNUb1JlbmRlciIsInByZXBhcmVMYXllcnNGb3JEZWNrIiwiZmlsdGVycyIsImZpbHRlcnNTZWxlY3RvciIsImZpbHRlciIsImYiLCJ0eXBlIiwiRklMVEVSX1RZUEVTIiwicG9seWdvbiIsImxheWVyT3JkZXJTZWxlY3RvciIsImxheWVyc1RvUmVuZGVyU2VsZWN0b3IiLCJnZW5lcmF0ZU1hcGJveExheWVycyIsInZpc1N0YXRlQWN0aW9ucyIsIm9uTGF5ZXJDbGljayIsImlkeCIsImNvbG9yRG9tYWluIiwibGF5ZXJDb25maWdDaGFuZ2UiLCJsYXllcklkIiwiaW5kZXgiLCJtYXBJbmRleCIsInRvZ2dsZUxheWVyRm9yTWFwIiwicHJldmlvdXNMYXllcnMiLCJfdXBkYXRlTWFwYm94TGF5ZXJzIiwib25NYXBTdHlsZUxvYWRlZCIsIl9tYXAiLCJtYXBib3giLCJnZXRNYXAiLCJvbiIsIl9vbk1hcGJveFN0eWxlVXBkYXRlIiwib25NYXBSZW5kZXIiLCJnZXRNYXBib3hSZWYiLCJnbCIsImxheWVyQmxlbmRpbmciLCJlcnJvciIsImxheWVyIiwibWVzc2FnZSIsInNldFN0YXRlIiwiY29udGV4dExvc3QiLCJlcnJvck1lc3NhZ2UiLCJpZCIsIm5vdGlmaWNhdGlvbklkIiwiX2RlY2tHTEVycm9yc0VsYXBzZWQiLCJsYXN0U2hvd24iLCJEYXRlIiwibm93IiwiVEhST1RUTEVfTk9USUZJQ0FUSU9OX1RJTUUiLCJ1aVN0YXRlQWN0aW9ucyIsImFkZE5vdGlmaWNhdGlvbiIsInZpZXdTdGF0ZSIsInJlc3RWaWV3U3RhdGUiLCJuZXh0IiwidHJhbnNpdGlvbkR1cmF0aW9uIiwib25WaWV3U3RhdGVDaGFuZ2UiLCJwYW5lbElkIiwidG9nZ2xlTWFwQ29udHJvbCIsIl9kZWNrIiwiX3JlZiIsImN1cnJlbnQiLCJfaGFuZGxlUmVzaXplIiwic3RhdGUiLCJvZmYiLCJvbkRlY2tJbml0aWFsaXplZCIsImxheWVyc1RvUmVuZGVyIiwibWFwU3RhdGUiLCJob3ZlckluZm8iLCJjbGlja2VkIiwiZGF0YXNldHMiLCJpbnRlcmFjdGlvbkNvbmZpZyIsIm1vdXNlUG9zIiwibW91c2VQb3NpdGlvbiIsImNvb3JkaW5hdGUiLCJwaW5uZWQiLCJ0b29sdGlwIiwibGF5ZXJIb3ZlclByb3AiLCJjb21wYXJlTW9kZSIsImNvbmZpZyIsInBpbm5lZFBvc2l0aW9uIiwibGF5ZXJQaW5uZWRQcm9wIiwidmlld3BvcnQiLCJXZWJNZXJjYXRvclZpZXdwb3J0IiwibG5nTGF0IiwiX2dldEhvdmVyWFkiLCJwcmltYXJ5RGF0YSIsImRhdGEiLCJjb21wYXJlVHlwZSIsImNvbW1vblByb3AiLCJvbkNsb3NlIiwiX29uQ2xvc2VNYXBQb3BvdmVyIiwiem9vbSIsImVuYWJsZWQiLCJzY3JlZW5Db29yZCIsInByb2plY3QiLCJ4IiwieSIsImxheWVyc0ZvckRlY2siLCJtYXBTdHlsZSIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwibWFwYm94QXBpVXJsIiwibWFza1BvbHlnb24iLCJkZWNrR2xMYXllcnMiLCJkZWNrR2xQcm9wcyIsImxlbmd0aCIsImRhdGFMYXllcnMiLCJzbGljZSIsInJldmVyc2UiLCJyZWR1Y2UiLCJvdmVybGF5cyIsImxheWVyQ2FsbGJhY2tzIiwib25TZXRMYXllckRvbWFpbiIsInZhbCIsIl9vbkxheWVyU2V0RG9tYWluIiwibGF5ZXJPdmVybGF5IiwiY29uY2F0IiwibGF5ZXJzT25Ub3AiLCJwdXNoIiwiU29saWRQb2x5Z29uTGF5ZXIiLCJNQVNLX0xBWUVSX0lEIiwib3BlcmF0aW9uIiwiT1BFUkFUSU9OIiwiTUFTSyIsImdldEZpbGxDb2xvciIsInZpc2libGVMYXllckdyb3VwcyIsIlRocmVlREJ1aWxkaW5nTGF5ZXIiLCJ0aHJlZURCdWlsZGluZ0NvbG9yIiwidXBkYXRlVHJpZ2dlcnMiLCJfb25WaWV3cG9ydENoYW5nZSIsIl9vbkJlZm9yZVJlbmRlciIsIm9uTGF5ZXJIb3ZlciIsIl9vbkRlY2tFcnJvciIsImNvbXAiLCJkZWNrIiwiX29uRGVja0luaXRpYWxpemVkIiwiaXNOYU4iLCJ2aXNpYmlsaXR5Qnlab29tIiwibWluIiwibWF4IiwiY3VycmVudFpvb21SYW5nZSIsIk1hdGgiLCJmbG9vciIsIm1hcGJveExheWVycyIsIm1hcGJveExheWVyc1NlbGVjdG9yIiwiT2JqZWN0Iiwia2V5cyIsImlzU3R5bGVMb2FkZWQiLCJNYXBDb21wb25lbnQiLCJtYXBDb250cm9scyIsImxvY2FsZSIsImVkaXRvciIsImxheWVyc0ZvckRlY2tTZWxlY3RvciIsIm1hcFByb3BzIiwicHJlc2VydmVEcmF3aW5nQnVmZmVyIiwidHJhbnNmb3JtUmVxdWVzdCIsImlzRWRpdCIsIm1hcERyYXciLCJhY3RpdmUiLCJoYXNHZW9jb2RlckxheWVyIiwiZmluZCIsImwiLCJHRU9DT0RFUl9MQVlFUl9JRCIsImlzU3BsaXQiLCJCb29sZWFuIiwiTE9DQUxFX0NPREVTIiwiZHJhZ1JvdGF0ZSIsInJlYWRPbmx5Iiwic2NhbGUiLCJnZW9jb2RlciIsInRvZ2dsZVBlcnNwZWN0aXZlIiwidG9nZ2xlU3BsaXRNYXAiLCJfaGFuZGxlTWFwVG9nZ2xlTGF5ZXIiLCJfdG9nZ2xlTWFwQ29udHJvbCIsInNldEVkaXRvck1vZGUiLCJzZXRMb2NhbGUiLCJ0b2dnbGVFZGl0b3JWaXNpYmlsaXR5IiwiX3NldE1hcGJveE1hcCIsImJvdHRvbU1hcFN0eWxlIiwidW5kZWZpbmVkIiwib25Nb3VzZU1vdmUiLCJfcmVuZGVyRGVja092ZXJsYXkiLCJfcmVuZGVyTWFwYm94T3ZlcmxheXMiLCJwb2x5Z29uRmlsdGVycyIsImRlbGV0ZUZlYXR1cmUiLCJzZXRTZWxlY3RlZEZlYXR1cmUiLCJzZXRGZWF0dXJlcyIsInNldFBvbHlnb25GaWx0ZXJMYXllciIsInZpc2libGUiLCJ0b3BNYXBTdHlsZSIsIl9yZW5kZXJNYXBQb3BvdmVyIiwiZ2xvYmUiLCJfcmVuZGVyTWFwIiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImFycmF5T2YiLCJhbnkiLCJib29sIiwib25NYXBUb2dnbGVMYXllciIsImZ1bmMiLCJudW1iZXIiLCJNYXBib3hHTE1hcCIsImRpc3BsYXlOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBUUE7O0FBQ0E7O0FBT0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQTtBQUNBLElBQU1BLFNBQVMsR0FBRztBQUNoQkMsRUFBQUEsU0FBUyxFQUFFO0FBQ1RDLElBQUFBLE9BQU8sRUFBRSxjQURBO0FBRVRDLElBQUFBLFFBQVEsRUFBRSxVQUZEO0FBR1RDLElBQUFBLEtB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QUFBLFlBQVksRUFBRWdLLHNCQUFVUSxJQTdCUDtBQThCakJwTCxJQUFBQSxLQUFLLEVBQUU0SyxzQkFBVVM7QUE5QkEsR0FGcUQ7QUFBQSxtQ0FDcEVyTixZQURvRSxrQkFtQ2xEO0FBQ3BCOEosSUFBQUEsWUFBWSxFQUFFd0Qsc0JBRE07QUFFcEJwRyxJQUFBQSxXQUFXLEVBQUUsRUFGTztBQUdwQmxGLElBQUFBLEtBQUssRUFBRSxDQUhhO0FBSXBCN0IsSUFBQUEsT0FBTyxFQUFFO0FBSlcsR0FuQ2tEO0FBeWlCMUVILEVBQUFBLFlBQVksQ0FBQ3VOLFdBQWIsR0FBMkIsY0FBM0I7QUFFQSxTQUFPdk4sWUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuLy8gbGlicmFyaWVzXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIGNyZWF0ZVJlZn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBNYXBib3hHTE1hcCBmcm9tICdyZWFjdC1tYXAtZ2wnO1xuaW1wb3J0IERlY2tHTCBmcm9tICdAZGVjay5nbC9yZWFjdCc7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQge09QRVJBVElPTn0gZnJvbSAnQGRlY2suZ2wvY29yZSc7XG5pbXBvcnQge1NvbGlkUG9seWdvbkxheWVyfSBmcm9tICdAZGVjay5nbC9sYXllcnMnO1xuaW1wb3J0IFdlYk1lcmNhdG9yVmlld3BvcnQgZnJvbSAndmlld3BvcnQtbWVyY2F0b3ItcHJvamVjdCc7XG5pbXBvcnQge2Vycm9yTm90aWZpY2F0aW9ufSBmcm9tICd1dGlscy9ub3RpZmljYXRpb25zLXV0aWxzJztcblxuLy8gY29tcG9uZW50c1xuaW1wb3J0IE1hcFBvcG92ZXJGYWN0b3J5IGZyb20gJ2NvbXBvbmVudHMvbWFwL21hcC1wb3BvdmVyJztcbmltcG9ydCBNYXBDb250cm9sRmFjdG9yeSBmcm9tICdjb21wb25lbnRzL21hcC9tYXAtY29udHJvbCc7XG5pbXBvcnQge1N0eWxlZE1hcENvbnRhaW5lciwgU3R5bGVkQXR0cmJ1dGlvbn0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgRWRpdG9yRmFjdG9yeSBmcm9tICcuL2VkaXRvci9lZGl0b3InO1xuXG4vLyB1dGlsc1xuaW1wb3J0IHtnZW5lcmF0ZU1hcGJveExheWVycywgdXBkYXRlTWFwYm94TGF5ZXJzfSBmcm9tICdsYXllcnMvbWFwYm94LXV0aWxzJztcbmltcG9ydCB7c2V0TGF5ZXJCbGVuZGluZ30gZnJvbSAndXRpbHMvZ2wtdXRpbHMnO1xuaW1wb3J0IHt0cmFuc2Zvcm1SZXF1ZXN0fSBmcm9tICd1dGlscy9tYXAtc3R5bGUtdXRpbHMvbWFwYm94LXV0aWxzJztcbmltcG9ydCB7XG4gIGdldExheWVySG92ZXJQcm9wLFxuICByZW5kZXJEZWNrR2xMYXllcixcbiAgcHJlcGFyZUxheWVyc1RvUmVuZGVyLFxuICBwcmVwYXJlTGF5ZXJzRm9yRGVja1xufSBmcm9tICd1dGlscy9sYXllci11dGlscyc7XG5cbi8vIGRlZmF1bHQtc2V0dGluZ3NcbmltcG9ydCBUaHJlZURCdWlsZGluZ0xheWVyIGZyb20gJ2RlY2tnbC1sYXllcnMvM2QtYnVpbGRpbmctbGF5ZXIvM2QtYnVpbGRpbmctbGF5ZXInO1xuaW1wb3J0IHtcbiAgRklMVEVSX1RZUEVTLFxuICBHRU9DT0RFUl9MQVlFUl9JRCxcbiAgTUFTS19MQVlFUl9JRCxcbiAgVEhST1RUTEVfTk9USUZJQ0FUSU9OX1RJTUVcbn0gZnJvbSAnY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MnO1xuXG5pbXBvcnQgRXJyb3JCb3VuZGFyeSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9lcnJvci1ib3VuZGFyeSc7XG5pbXBvcnQge29ic2VydmVEaW1lbnNpb25zLCB1bm9ic2VydmVEaW1lbnNpb25zfSBmcm9tICcuLi91dGlscy9vYnNlcnZlLWRpbWVuc2lvbnMnO1xuaW1wb3J0IHtMT0NBTEVfQ09ERVN9IGZyb20gJ2xvY2FsaXphdGlvbi9sb2NhbGVzJztcblxuLyoqIEB0eXBlIHt7W2tleTogc3RyaW5nXTogUmVhY3QuQ1NTUHJvcGVydGllc319ICovXG5jb25zdCBNQVBfU1RZTEUgPSB7XG4gIGNvbnRhaW5lcjoge1xuICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgaGVpZ2h0OiAnMTAwJSdcbiAgfSxcbiAgdG9wOiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgdG9wOiAnMHB4JyxcbiAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBoZWlnaHQ6ICcxMDAlJ1xuICB9XG59O1xuXG5jb25zdCBNQVBCT1hHTF9TVFlMRV9VUERBVEUgPSAnc3R5bGUubG9hZCc7XG5jb25zdCBNQVBCT1hHTF9SRU5ERVIgPSAncmVuZGVyJztcbmNvbnN0IFRSQU5TSVRJT05fRFVSQVRJT04gPSAwO1xuXG5leHBvcnQgY29uc3QgQXR0cmlidXRpb24gPSAoKSA9PiAoXG4gIDxTdHlsZWRBdHRyYnV0aW9uPlxuICAgIDxkaXYgY2xhc3NOYW1lPVwiYXR0cml0aW9uLWxvZ29cIj5cbiAgICAgIEJhc2VtYXAgYnk6XG4gICAgICA8YVxuICAgICAgICBjbGFzc05hbWU9XCJtYXBib3hnbC1jdHJsLWxvZ29cIlxuICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3Lm1hcGJveC5jb20vXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIk1hcGJveCBsb2dvXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzc05hbWU9XCJhdHRyaXRpb24tbGlua1wiPlxuICAgICAgPGEgaHJlZj1cImh0dHBzOi8va2VwbGVyLmdsL3BvbGljeS9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+XG4gICAgICAgIMKpIGtlcGxlci5nbCB8eycgJ31cbiAgICAgIDwvYT5cbiAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5tYXBib3guY29tL2Fib3V0L21hcHMvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPlxuICAgICAgICDCqSBNYXBib3ggfHsnICd9XG4gICAgICA8L2E+XG4gICAgICA8YSBocmVmPVwiaHR0cDovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHRcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+XG4gICAgICAgIMKpIE9wZW5TdHJlZXRNYXAgfHsnICd9XG4gICAgICA8L2E+XG4gICAgICA8YSBocmVmPVwiaHR0cHM6Ly93d3cubWFwYm94LmNvbS9tYXAtZmVlZGJhY2svXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPlxuICAgICAgICA8c3Ryb25nPkltcHJvdmUgdGhpcyBtYXA8L3N0cm9uZz5cbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgPC9TdHlsZWRBdHRyYnV0aW9uPlxuKTtcblxuTWFwQ29udGFpbmVyRmFjdG9yeS5kZXBzID0gW01hcFBvcG92ZXJGYWN0b3J5LCBNYXBDb250cm9sRmFjdG9yeSwgRWRpdG9yRmFjdG9yeV07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1hcENvbnRhaW5lckZhY3RvcnkoTWFwUG9wb3ZlciwgTWFwQ29udHJvbCwgRWRpdG9yKSB7XG4gIGNsYXNzIE1hcENvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIC8vIHJlcXVpcmVkXG4gICAgICBkYXRhc2V0czogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgIGludGVyYWN0aW9uQ29uZmlnOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBsYXllckJsZW5kaW5nOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICBsYXllck9yZGVyOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KS5pc1JlcXVpcmVkLFxuICAgICAgbGF5ZXJEYXRhOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KS5pc1JlcXVpcmVkLFxuICAgICAgbGF5ZXJzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KS5pc1JlcXVpcmVkLFxuICAgICAgZmlsdGVyczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmFueSkuaXNSZXF1aXJlZCxcbiAgICAgIG1hcFN0YXRlOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBtYXBDb250cm9sczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgbWFwU3R5bGU6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIG1vdXNlUG9zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgbWFwYm94QXBpVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgdmlzU3RhdGVBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBtYXBTdGF0ZUFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIHVpU3RhdGVBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG5cbiAgICAgIC8vIG9wdGlvbmFsXG4gICAgICBwcmltYXJ5OiBQcm9wVHlwZXMuYm9vbCwgLy8gcHJpbWFyeSBvbmUgd2lsbCBiZSByZXBvcnRpbmcgaXRzIHNpemUgdG8gYXBwU3RhdGVcbiAgICAgIHJlYWRPbmx5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgIGlzRXhwb3J0OiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgIGNsaWNrZWQ6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICBob3ZlckluZm86IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICBtYXBMYXllcnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICBvbk1hcFRvZ2dsZUxheWVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgIG9uTWFwU3R5bGVMb2FkZWQ6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgb25NYXBSZW5kZXI6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgZ2V0TWFwYm94UmVmOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgIGluZGV4OiBQcm9wVHlwZXMubnVtYmVyXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICBNYXBDb21wb25lbnQ6IE1hcGJveEdMTWFwLFxuICAgICAgZGVja0dsUHJvcHM6IHt9LFxuICAgICAgaW5kZXg6IDAsXG4gICAgICBwcmltYXJ5OiB0cnVlXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgIHRoaXMucHJldmlvdXNMYXllcnMgPSB7XG4gICAgICAgIC8vIFtsYXllcnMuaWRdOiBtYXBib3hMYXllckNvbmZpZ1xuICAgICAgfTtcblxuICAgICAgdGhpcy5fZGVjayA9IG51bGw7XG4gICAgICB0aGlzLl9yZWYgPSBjcmVhdGVSZWYoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIG9ic2VydmVEaW1lbnNpb25zKHRoaXMuX3JlZi5jdXJyZW50LCB0aGlzLl9oYW5kbGVSZXNpemUpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IGNvbnRleHRMb3N0ID0gdGhpcy5zdGF0ZT8uY29udGV4dExvc3Q7XG5cbiAgICAgIGlmIChjb250ZXh0TG9zdCkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tZGlkLXVwZGF0ZS1zZXQtc3RhdGVcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y29udGV4dExvc3Q6IGZhbHNlfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICAvLyB1bmJpbmQgbWFwYm94Z2wgZXZlbnQgbGlzdGVuZXJcbiAgICAgIGlmICh0aGlzLl9tYXApIHtcbiAgICAgICAgdGhpcy5fbWFwLm9mZihNQVBCT1hHTF9TVFlMRV9VUERBVEUpO1xuICAgICAgICB0aGlzLl9tYXAub2ZmKE1BUEJPWEdMX1JFTkRFUik7XG4gICAgICB9XG4gICAgICB1bm9ic2VydmVEaW1lbnNpb25zKHRoaXMuX3JlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICBfaGFuZGxlUmVzaXplID0gZGltZW5zaW9ucyA9PiB7XG4gICAgICBjb25zdCB7cHJpbWFyeSwgaXNFeHBvcnR9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmIChwcmltYXJ5KSB7XG4gICAgICAgIGNvbnN0IHttYXBTdGF0ZUFjdGlvbnN9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgaWYgKCFpc0V4cG9ydCAmJiBkaW1lbnNpb25zICYmIGRpbWVuc2lvbnMud2lkdGggPiAwICYmIGRpbWVuc2lvbnMuaGVpZ2h0ID4gMCkge1xuICAgICAgICAgIG1hcFN0YXRlQWN0aW9ucy51cGRhdGVNYXAoZGltZW5zaW9ucyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgbGF5ZXJzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5sYXllcnM7XG4gICAgbGF5ZXJEYXRhU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5sYXllckRhdGE7XG4gICAgbWFwTGF5ZXJzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5tYXBMYXllcnM7XG4gICAgbGF5ZXJPcmRlclNlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMubGF5ZXJPcmRlcjtcbiAgICBsYXllcnNUb1JlbmRlclNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLmxheWVyc1NlbGVjdG9yLFxuICAgICAgdGhpcy5sYXllckRhdGFTZWxlY3RvcixcbiAgICAgIHRoaXMubWFwTGF5ZXJzU2VsZWN0b3IsXG4gICAgICBwcmVwYXJlTGF5ZXJzVG9SZW5kZXJcbiAgICApO1xuICAgIGxheWVyc0ZvckRlY2tTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgdGhpcy5sYXllcnNTZWxlY3RvcixcbiAgICAgIHRoaXMubGF5ZXJEYXRhU2VsZWN0b3IsXG4gICAgICBwcmVwYXJlTGF5ZXJzRm9yRGVja1xuICAgICk7XG4gICAgZmlsdGVyc1NlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMuZmlsdGVycztcbiAgICBwb2x5Z29uRmlsdGVycyA9IGNyZWF0ZVNlbGVjdG9yKHRoaXMuZmlsdGVyc1NlbGVjdG9yLCBmaWx0ZXJzID0+XG4gICAgICBmaWx0ZXJzLmZpbHRlcihmID0+IGYudHlwZSA9PT0gRklMVEVSX1RZUEVTLnBvbHlnb24pXG4gICAgKTtcblxuICAgIG1hcGJveExheWVyc1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLmxheWVyc1NlbGVjdG9yLFxuICAgICAgdGhpcy5sYXllckRhdGFTZWxlY3RvcixcbiAgICAgIHRoaXMubGF5ZXJPcmRlclNlbGVjdG9yLFxuICAgICAgdGhpcy5sYXllcnNUb1JlbmRlclNlbGVjdG9yLFxuICAgICAgZ2VuZXJhdGVNYXBib3hMYXllcnNcbiAgICApO1xuXG4gICAgLyogY29tcG9uZW50IHByaXZhdGUgZnVuY3Rpb25zICovXG4gICAgX29uQ2xvc2VNYXBQb3BvdmVyID0gKCkgPT4ge1xuICAgICAgdGhpcy5wcm9wcy52aXNTdGF0ZUFjdGlvbnMub25MYXllckNsaWNrKG51bGwpO1xuICAgIH07XG5cbiAgICBfb25MYXllclNldERvbWFpbiA9IChpZHgsIGNvbG9yRG9tYWluKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy5sYXllckNvbmZpZ0NoYW5nZSh0aGlzLnByb3BzLmxheWVyc1tpZHhdLCB7XG4gICAgICAgIGNvbG9yRG9tYWluXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX2hhbmRsZU1hcFRvZ2dsZUxheWVyID0gbGF5ZXJJZCA9PiB7XG4gICAgICBjb25zdCB7aW5kZXg6IG1hcEluZGV4ID0gMCwgdmlzU3RhdGVBY3Rpb25zfSA9IHRoaXMucHJvcHM7XG4gICAgICB2aXNTdGF0ZUFjdGlvbnMudG9nZ2xlTGF5ZXJGb3JNYXAobWFwSW5kZXgsIGxheWVySWQpO1xuICAgIH07XG5cbiAgICBfb25NYXBib3hTdHlsZVVwZGF0ZSA9ICgpID0+IHtcbiAgICAgIC8vIGZvcmNlIHJlZnJlc2ggbWFwYm94Z2wgbGF5ZXJzXG4gICAgICB0aGlzLnByZXZpb3VzTGF5ZXJzID0ge307XG4gICAgICB0aGlzLl91cGRhdGVNYXBib3hMYXllcnMoKTtcblxuICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9uTWFwU3R5bGVMb2FkZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbk1hcFN0eWxlTG9hZGVkKHRoaXMuX21hcCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF9zZXRNYXBib3hNYXAgPSBtYXBib3ggPT4ge1xuICAgICAgaWYgKCF0aGlzLl9tYXAgJiYgbWFwYm94KSB7XG4gICAgICAgIHRoaXMuX21hcCA9IG1hcGJveC5nZXRNYXAoKTtcbiAgICAgICAgLy8gaSBub3RpY2VkIGluIGNlcnRhaW4gY29udGV4dCB3ZSBkb24ndCBhY2Nlc3MgdGhlIGFjdHVhbCBtYXAgZWxlbWVudFxuICAgICAgICBpZiAoIXRoaXMuX21hcCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBiaW5kIG1hcGJveGdsIGV2ZW50IGxpc3RlbmVyXG4gICAgICAgIHRoaXMuX21hcC5vbihNQVBCT1hHTF9TVFlMRV9VUERBVEUsIHRoaXMuX29uTWFwYm94U3R5bGVVcGRhdGUpO1xuXG4gICAgICAgIHRoaXMuX21hcC5vbihNQVBCT1hHTF9SRU5ERVIsICgpID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHRoaXMucHJvcHMub25NYXBSZW5kZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25NYXBSZW5kZXIodGhpcy5fbWFwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5wcm9wcy5nZXRNYXBib3hSZWYpIHtcbiAgICAgICAgLy8gVGhlIHBhcmVudCBjb21wb25lbnQgY2FuIGdhaW4gYWNjZXNzIHRvIG91ciBNYXBib3hHbE1hcCBieVxuICAgICAgICAvLyBwcm92aWRpbmcgdGhpcyBjYWxsYmFjay4gTm90ZSB0aGF0ICdtYXBib3gnIHdpbGwgYmUgbnVsbCB3aGVuIHRoZVxuICAgICAgICAvLyByZWYgaXMgdW5zZXQgKGUuZy4gd2hlbiBhIHNwbGl0IG1hcCBpcyBjbG9zZWQpLlxuICAgICAgICB0aGlzLnByb3BzLmdldE1hcGJveFJlZihtYXBib3gsIHRoaXMucHJvcHMuaW5kZXgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfb25EZWNrSW5pdGlhbGl6ZWQoZ2wpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLm9uRGVja0luaXRpYWxpemVkKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25EZWNrSW5pdGlhbGl6ZWQodGhpcy5fZGVjaywgZ2wpO1xuICAgICAgfVxuICAgIH1cblxuICAgIF9vbkJlZm9yZVJlbmRlciA9ICh7Z2x9KSA9PiB7XG4gICAgICBzZXRMYXllckJsZW5kaW5nKGdsLCB0aGlzLnByb3BzLmxheWVyQmxlbmRpbmcpO1xuICAgIH07XG5cbiAgICBfb25EZWNrRXJyb3IgPSAoZXJyb3IsIGxheWVyKSA9PiB7XG4gICAgICBpZiAoZXJyb3I/Lm1lc3NhZ2UgPT09ICdXZWJHTCBjb250ZXh0IGlzIGxvc3QnKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2NvbnRleHRMb3N0OiB0cnVlfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYEFuIGVycm9yIGluIGRlY2suZ2w6ICR7ZXJyb3I/Lm1lc3NhZ2V9IGluICR7bGF5ZXI/LmlkfWA7XG4gICAgICBjb25zdCBub3RpZmljYXRpb25JZCA9IGAke2xheWVyPy5pZH0tJHtlcnJvcj8ubWVzc2FnZX1gO1xuXG4gICAgICAvLyBUaHJvdHRsZSBlcnJvciBub3RpZmljYXRpb25zLCBhcyBSZWFjdCBkb2Vzbid0IGxpa2UgdG9vIG1hbnkgc3RhdGUgY2hhbmdlcyBmcm9tIGhlcmUuXG4gICAgICB0aGlzLl9kZWNrR0xFcnJvcnNFbGFwc2VkID0gdGhpcy5fZGVja0dMRXJyb3JzRWxhcHNlZCB8fCB7fTtcbiAgICAgIGNvbnN0IGxhc3RTaG93biA9IHRoaXMuX2RlY2tHTEVycm9yc0VsYXBzZWRbbm90aWZpY2F0aW9uSWRdO1xuICAgICAgaWYgKCFsYXN0U2hvd24gfHwgbGFzdFNob3duIDwgRGF0ZS5ub3coKSAtIFRIUk9UVExFX05PVElGSUNBVElPTl9USU1FKSB7XG4gICAgICAgIHRoaXMuX2RlY2tHTEVycm9yc0VsYXBzZWRbbm90aWZpY2F0aW9uSWRdID0gRGF0ZS5ub3coKTtcblxuICAgICAgICAvLyBDcmVhdGUgbmV3IGVycm9yIG5vdGlmaWNhdGlvbiBvciB1cGRhdGUgZXhpc3Rpbmcgb25lIHdpdGggc2FtZSBpZC5cbiAgICAgICAgLy8gVXBkYXRlIGlzIHJlcXVpcmVkIHRvIHByZXNlcnZlIHRoZSBvcmRlciBvZiBub3RpZmljYXRpb25zIGFzIHRoZXkgcHJvYmFibHkgYXJlIGdvaW5nIHRvIFwianVtcFwiIGJhc2VkIG9uIG9yZGVyIG9mIGVycm9ycy5cbiAgICAgICAgY29uc3Qge3VpU3RhdGVBY3Rpb25zfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIHVpU3RhdGVBY3Rpb25zLmFkZE5vdGlmaWNhdGlvbihcbiAgICAgICAgICBlcnJvck5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgICAgICBpZDogbm90aWZpY2F0aW9uSWRcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvKiBjb21wb25lbnQgcmVuZGVyIGZ1bmN0aW9ucyAqL1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuICAgIF9yZW5kZXJNYXBQb3BvdmVyKGxheWVyc1RvUmVuZGVyKSB7XG4gICAgICAvLyBUT0RPOiBtb3ZlIHRoaXMgaW50byByZWR1Y2VyIHNvIGl0IGNhbiBiZSB0ZXN0ZWRcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbWFwU3RhdGUsXG4gICAgICAgIGhvdmVySW5mbyxcbiAgICAgICAgY2xpY2tlZCxcbiAgICAgICAgZGF0YXNldHMsXG4gICAgICAgIGludGVyYWN0aW9uQ29uZmlnLFxuICAgICAgICBsYXllcnMsXG4gICAgICAgIG1vdXNlUG9zOiB7bW91c2VQb3NpdGlvbiwgY29vcmRpbmF0ZSwgcGlubmVkfVxuICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmICghbW91c2VQb3NpdGlvbiB8fCAhaW50ZXJhY3Rpb25Db25maWcudG9vbHRpcCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbGF5ZXJIb3ZlclByb3AgPSBnZXRMYXllckhvdmVyUHJvcCh7XG4gICAgICAgIGludGVyYWN0aW9uQ29uZmlnLFxuICAgICAgICBob3ZlckluZm8sXG4gICAgICAgIGxheWVycyxcbiAgICAgICAgbGF5ZXJzVG9SZW5kZXIsXG4gICAgICAgIGRhdGFzZXRzXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgY29tcGFyZU1vZGUgPSBpbnRlcmFjdGlvbkNvbmZpZy50b29sdGlwLmNvbmZpZ1xuICAgICAgICA/IGludGVyYWN0aW9uQ29uZmlnLnRvb2x0aXAuY29uZmlnLmNvbXBhcmVNb2RlXG4gICAgICAgIDogZmFsc2U7XG5cbiAgICAgIGxldCBwaW5uZWRQb3NpdGlvbiA9IHt9O1xuICAgICAgbGV0IGxheWVyUGlubmVkUHJvcCA9IG51bGw7XG4gICAgICBpZiAocGlubmVkIHx8IGNsaWNrZWQpIHtcbiAgICAgICAgLy8gcHJvamVjdCBsbmdsYXQgdG8gc2NyZWVuIHNvIHRoYXQgdG9vbHRpcCBmb2xsb3dzIHRoZSBvYmplY3Qgb24gem9vbVxuICAgICAgICBjb25zdCB2aWV3cG9ydCA9IG5ldyBXZWJNZXJjYXRvclZpZXdwb3J0KG1hcFN0YXRlKTtcbiAgICAgICAgY29uc3QgbG5nTGF0ID0gY2xpY2tlZCA/IGNsaWNrZWQubG5nTGF0IDogcGlubmVkLmNvb3JkaW5hdGU7XG4gICAgICAgIHBpbm5lZFBvc2l0aW9uID0gdGhpcy5fZ2V0SG92ZXJYWSh2aWV3cG9ydCwgbG5nTGF0KTtcbiAgICAgICAgbGF5ZXJQaW5uZWRQcm9wID0gZ2V0TGF5ZXJIb3ZlclByb3Aoe1xuICAgICAgICAgIGludGVyYWN0aW9uQ29uZmlnLFxuICAgICAgICAgIGhvdmVySW5mbzogY2xpY2tlZCxcbiAgICAgICAgICBsYXllcnMsXG4gICAgICAgICAgbGF5ZXJzVG9SZW5kZXIsXG4gICAgICAgICAgZGF0YXNldHNcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChsYXllckhvdmVyUHJvcCAmJiBsYXllclBpbm5lZFByb3ApIHtcbiAgICAgICAgICBsYXllckhvdmVyUHJvcC5wcmltYXJ5RGF0YSA9IGxheWVyUGlubmVkUHJvcC5kYXRhO1xuICAgICAgICAgIGxheWVySG92ZXJQcm9wLmNvbXBhcmVUeXBlID0gaW50ZXJhY3Rpb25Db25maWcudG9vbHRpcC5jb25maWcuY29tcGFyZVR5cGU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgY29tbW9uUHJvcCA9IHtcbiAgICAgICAgb25DbG9zZTogdGhpcy5fb25DbG9zZU1hcFBvcG92ZXIsXG4gICAgICAgIHpvb206IG1hcFN0YXRlLnpvb20sXG4gICAgICAgIGNvbnRhaW5lcjogdGhpcy5fcmVmLmN1cnJlbnRcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxFcnJvckJvdW5kYXJ5PlxuICAgICAgICAgIHtsYXllclBpbm5lZFByb3AgJiYgKFxuICAgICAgICAgICAgPE1hcFBvcG92ZXJcbiAgICAgICAgICAgICAgey4uLnBpbm5lZFBvc2l0aW9ufVxuICAgICAgICAgICAgICB7Li4uY29tbW9uUHJvcH1cbiAgICAgICAgICAgICAgbGF5ZXJIb3ZlclByb3A9e2xheWVyUGlubmVkUHJvcH1cbiAgICAgICAgICAgICAgY29vcmRpbmF0ZT17aW50ZXJhY3Rpb25Db25maWcuY29vcmRpbmF0ZS5lbmFibGVkICYmIChwaW5uZWQgfHwge30pLmNvb3JkaW5hdGV9XG4gICAgICAgICAgICAgIGZyb3plbj17dHJ1ZX1cbiAgICAgICAgICAgICAgaXNCYXNlPXtjb21wYXJlTW9kZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7bGF5ZXJIb3ZlclByb3AgJiYgKCFsYXllclBpbm5lZFByb3AgfHwgY29tcGFyZU1vZGUpICYmIChcbiAgICAgICAgICAgIDxNYXBQb3BvdmVyXG4gICAgICAgICAgICAgIHg9e21vdXNlUG9zaXRpb25bMF19XG4gICAgICAgICAgICAgIHk9e21vdXNlUG9zaXRpb25bMV19XG4gICAgICAgICAgICAgIHsuLi5jb21tb25Qcm9wfVxuICAgICAgICAgICAgICBsYXllckhvdmVyUHJvcD17bGF5ZXJIb3ZlclByb3B9XG4gICAgICAgICAgICAgIGZyb3plbj17ZmFsc2V9XG4gICAgICAgICAgICAgIGNvb3JkaW5hdGU9e2ludGVyYWN0aW9uQ29uZmlnLmNvb3JkaW5hdGUuZW5hYmxlZCAmJiBjb29yZGluYXRlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L0Vycm9yQm91bmRhcnk+XG4gICAgICApO1xuICAgIH1cblxuICAgIC8qIGVzbGludC1lbmFibGUgY29tcGxleGl0eSAqL1xuXG4gICAgX2dldEhvdmVyWFkodmlld3BvcnQsIGxuZ0xhdCkge1xuICAgICAgY29uc3Qgc2NyZWVuQ29vcmQgPSAhdmlld3BvcnQgfHwgIWxuZ0xhdCA/IG51bGwgOiB2aWV3cG9ydC5wcm9qZWN0KGxuZ0xhdCk7XG4gICAgICByZXR1cm4gc2NyZWVuQ29vcmQgJiYge3g6IHNjcmVlbkNvb3JkWzBdLCB5OiBzY3JlZW5Db29yZFsxXX07XG4gICAgfVxuXG4gICAgX3JlbmRlckRlY2tPdmVybGF5KGxheWVyc0ZvckRlY2spIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbWFwU3RhdGUsXG4gICAgICAgIG1hcFN0eWxlLFxuICAgICAgICBsYXllckRhdGEsXG4gICAgICAgIGxheWVyT3JkZXIsXG4gICAgICAgIGxheWVycyxcbiAgICAgICAgdmlzU3RhdGVBY3Rpb25zLFxuICAgICAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgICAgICAgbWFwYm94QXBpVXJsLFxuICAgICAgICBtYXNrUG9seWdvblxuICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIC8vIGluaXRpYWxpc2UgbGF5ZXJzIGZyb20gcHJvcHMgaWYgZXhpc3RzXG4gICAgICBsZXQgZGVja0dsTGF5ZXJzID0gdGhpcy5wcm9wcy5kZWNrR2xQcm9wcz8ubGF5ZXJzIHx8IFtdO1xuXG4gICAgICAvLyB3YWl0IHVudGlsIGRhdGEgaXMgcmVhZHkgYmVmb3JlIHJlbmRlciBkYXRhIGxheWVyc1xuICAgICAgaWYgKGxheWVyRGF0YSAmJiBsYXllckRhdGEubGVuZ3RoKSB7XG4gICAgICAgIC8vIGxhc3QgbGF5ZXIgcmVuZGVyIGZpcnN0XG4gICAgICAgIGNvbnN0IGRhdGFMYXllcnMgPSBsYXllck9yZGVyXG4gICAgICAgICAgLnNsaWNlKClcbiAgICAgICAgICAucmV2ZXJzZSgpXG4gICAgICAgICAgLmZpbHRlcihpZHggPT4gbGF5ZXJzRm9yRGVja1tsYXllcnNbaWR4XS5pZF0pXG4gICAgICAgICAgLnJlZHVjZSgob3ZlcmxheXMsIGlkeCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGF5ZXJDYWxsYmFja3MgPSB7XG4gICAgICAgICAgICAgIG9uU2V0TGF5ZXJEb21haW46IHZhbCA9PiB0aGlzLl9vbkxheWVyU2V0RG9tYWluKGlkeCwgdmFsKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IGxheWVyT3ZlcmxheSA9IHJlbmRlckRlY2tHbExheWVyKHRoaXMucHJvcHMsIGxheWVyQ2FsbGJhY2tzLCBpZHgpO1xuICAgICAgICAgICAgcmV0dXJuIG92ZXJsYXlzLmNvbmNhdChsYXllck92ZXJsYXkgfHwgW10pO1xuICAgICAgICAgIH0sIFtdKTtcbiAgICAgICAgZGVja0dsTGF5ZXJzID0gZGVja0dsTGF5ZXJzLmNvbmNhdChkYXRhTGF5ZXJzKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMucHJvcHMuZGVja0dsUHJvcHM/LmxheWVyc09uVG9wKSB7XG4gICAgICAgIGRlY2tHbExheWVycyA9IGRlY2tHbExheWVycy5jb25jYXQodGhpcy5wcm9wcy5kZWNrR2xQcm9wcy5sYXllcnNPblRvcCk7XG4gICAgICB9XG5cbiAgICAgIGRlY2tHbExheWVycy5wdXNoKFxuICAgICAgICBuZXcgU29saWRQb2x5Z29uTGF5ZXIoe1xuICAgICAgICAgIGlkOiBNQVNLX0xBWUVSX0lELFxuICAgICAgICAgIG9wZXJhdGlvbjogT1BFUkFUSU9OLk1BU0ssXG4gICAgICAgICAgZGF0YTogbWFza1BvbHlnb24gPyBbe3BvbHlnb246IG1hc2tQb2x5Z29ufV0gOiBbXSxcbiAgICAgICAgICBnZXRGaWxsQ29sb3I6IFsyNTUsIDI1NSwgMjU1LCAyNTVdXG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICBpZiAobWFwU3R5bGUudmlzaWJsZUxheWVyR3JvdXBzWyczZCBidWlsZGluZyddKSB7XG4gICAgICAgIGRlY2tHbExheWVycy5wdXNoKFxuICAgICAgICAgIG5ldyBUaHJlZURCdWlsZGluZ0xheWVyKHtcbiAgICAgICAgICAgIGlkOiAnX2tlcGxlcmdsXzNkLWJ1aWxkaW5nJyxcbiAgICAgICAgICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgbWFwYm94QXBpVXJsLFxuICAgICAgICAgICAgdGhyZWVEQnVpbGRpbmdDb2xvcjogbWFwU3R5bGUudGhyZWVEQnVpbGRpbmdDb2xvcixcbiAgICAgICAgICAgIHVwZGF0ZVRyaWdnZXJzOiB7XG4gICAgICAgICAgICAgIGdldEZpbGxDb2xvcjogbWFwU3R5bGUudGhyZWVEQnVpbGRpbmdDb2xvclxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxEZWNrR0xcbiAgICAgICAgICBjb250cm9sbGVyPXt0cnVlfVxuICAgICAgICAgIHsuLi50aGlzLnByb3BzLmRlY2tHbFByb3BzfVxuICAgICAgICAgIHZpZXdTdGF0ZT17bWFwU3RhdGV9XG4gICAgICAgICAgb25WaWV3U3RhdGVDaGFuZ2U9eyh7dmlld1N0YXRlfSkgPT4gdGhpcy5fb25WaWV3cG9ydENoYW5nZSh2aWV3U3RhdGUpfVxuICAgICAgICAgIGlkPVwiZGVmYXVsdC1kZWNrZ2wtb3ZlcmxheVwiXG4gICAgICAgICAgbGF5ZXJzPXtkZWNrR2xMYXllcnN9XG4gICAgICAgICAgb25CZWZvcmVSZW5kZXI9e3RoaXMuX29uQmVmb3JlUmVuZGVyfVxuICAgICAgICAgIG9uSG92ZXI9e3Zpc1N0YXRlQWN0aW9ucy5vbkxheWVySG92ZXJ9XG4gICAgICAgICAgb25DbGljaz17dmlzU3RhdGVBY3Rpb25zLm9uTGF5ZXJDbGlja31cbiAgICAgICAgICBvbkVycm9yPXt0aGlzLl9vbkRlY2tFcnJvcn1cbiAgICAgICAgICByZWY9e2NvbXAgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbXAgJiYgY29tcC5kZWNrICYmIGNvbXAuZGVjayAhPT0gdGhpcy5fZGVjaykge1xuICAgICAgICAgICAgICB0aGlzLl9kZWNrID0gY29tcC5kZWNrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgICAgb25XZWJHTEluaXRpYWxpemVkPXtnbCA9PiB0aGlzLl9vbkRlY2tJbml0aWFsaXplZChnbCl9XG4gICAgICAgICAgbGF5ZXJGaWx0ZXI9eyh7bGF5ZXIsIHZpZXdwb3J0fSkgPT4ge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBpc05hTihsYXllci5wcm9wcy52aXNpYmlsaXR5Qnlab29tPy5taW4pIHx8XG4gICAgICAgICAgICAgIGlzTmFOKGxheWVyLnByb3BzLnZpc2liaWxpdHlCeVpvb20/Lm1heClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRab29tUmFuZ2UgPSBNYXRoLmZsb29yKG1hcFN0YXRlLnpvb20pO1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICBsYXllci5wcm9wcy52aXNpYmlsaXR5Qnlab29tLm1pbiA8PSBjdXJyZW50Wm9vbVJhbmdlICYmXG4gICAgICAgICAgICAgIGxheWVyLnByb3BzLnZpc2liaWxpdHlCeVpvb20ubWF4ID49IGN1cnJlbnRab29tUmFuZ2VcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3VwZGF0ZU1hcGJveExheWVycygpIHtcbiAgICAgIGNvbnN0IG1hcGJveExheWVycyA9IHRoaXMubWFwYm94TGF5ZXJzU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBpZiAoIU9iamVjdC5rZXlzKG1hcGJveExheWVycykubGVuZ3RoICYmICFPYmplY3Qua2V5cyh0aGlzLnByZXZpb3VzTGF5ZXJzKS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB1cGRhdGVNYXBib3hMYXllcnModGhpcy5fbWFwLCBtYXBib3hMYXllcnMsIHRoaXMucHJldmlvdXNMYXllcnMpO1xuXG4gICAgICB0aGlzLnByZXZpb3VzTGF5ZXJzID0gbWFwYm94TGF5ZXJzO1xuICAgIH1cblxuICAgIF9yZW5kZXJNYXBib3hPdmVybGF5cygpIHtcbiAgICAgIGlmICh0aGlzLl9tYXAgJiYgdGhpcy5fbWFwLmlzU3R5bGVMb2FkZWQoKSkge1xuICAgICAgICB0aGlzLl91cGRhdGVNYXBib3hMYXllcnMoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfb25WaWV3cG9ydENoYW5nZSA9IHZpZXdTdGF0ZSA9PiB7XG4gICAgICBjb25zdCB7d2lkdGgsIGhlaWdodCwgLi4ucmVzdFZpZXdTdGF0ZX0gPSB2aWV3U3RhdGU7XG4gICAgICBjb25zdCB7cHJpbWFyeSwgaXNFeHBvcnR9ID0gdGhpcy5wcm9wcztcbiAgICAgIC8vIHJlYWN0LW1hcC1nbCBzZW5kcyAwLDAgZGltZW5zaW9ucyBkdXJpbmcgaW5pdGlhbGl6YXRpb25cbiAgICAgIC8vIGFmdGVyIHdlIGhhdmUgcmVjZWl2ZWQgcHJvcGVyIGRpbWVuc2lvbnMgZnJvbSBvYnNlcnZlRGltZW5zaW9uc1xuICAgICAgY29uc3QgbmV4dCA9IHtcbiAgICAgICAgLi4uKHdpZHRoID4gMCAmJiBoZWlnaHQgPiAwID8gdmlld1N0YXRlIDogcmVzdFZpZXdTdGF0ZSksXG4gICAgICAgIC8vIGVuYWJsaW5nIHRyYW5zaXRpb24gaW4gdHdvIG1hcHMgbWF5IGxlYWQgdG8gZW5kbGVzcyB1cGRhdGUgbG9vcHNcbiAgICAgICAgdHJhbnNpdGlvbkR1cmF0aW9uOiBwcmltYXJ5ID8gVFJBTlNJVElPTl9EVVJBVElPTiA6IDBcbiAgICAgIH07XG4gICAgICBpZiAodHlwZW9mIHRoaXMucHJvcHMub25WaWV3U3RhdGVDaGFuZ2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vblZpZXdTdGF0ZUNoYW5nZShuZXh0KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFpc0V4cG9ydCkge1xuICAgICAgICB0aGlzLnByb3BzLm1hcFN0YXRlQWN0aW9ucy51cGRhdGVNYXAobmV4dCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90b2dnbGVNYXBDb250cm9sID0gcGFuZWxJZCA9PiB7XG4gICAgICBjb25zdCB7aW5kZXgsIHVpU3RhdGVBY3Rpb25zfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIHVpU3RhdGVBY3Rpb25zLnRvZ2dsZU1hcENvbnRyb2wocGFuZWxJZCwgaW5kZXgpO1xuICAgIH07XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG4gICAgX3JlbmRlck1hcCgpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbWFwU3RhdGUsXG4gICAgICAgIG1hcFN0eWxlLFxuICAgICAgICBtYXBTdGF0ZUFjdGlvbnMsXG4gICAgICAgIGxheWVycyxcbiAgICAgICAgTWFwQ29tcG9uZW50LFxuICAgICAgICBkYXRhc2V0cyxcbiAgICAgICAgbWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gICAgICAgIG1hcGJveEFwaVVybCxcbiAgICAgICAgbWFwQ29udHJvbHMsXG4gICAgICAgIGlzRXhwb3J0LFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgICB2aXNTdGF0ZUFjdGlvbnMsXG4gICAgICAgIGludGVyYWN0aW9uQ29uZmlnLFxuICAgICAgICBlZGl0b3IsXG4gICAgICAgIGluZGV4LFxuICAgICAgICBwcmltYXJ5XG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgY29uc3QgbGF5ZXJzVG9SZW5kZXIgPSB0aGlzLmxheWVyc1RvUmVuZGVyU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBsYXllcnNGb3JEZWNrID0gdGhpcy5sYXllcnNGb3JEZWNrU2VsZWN0b3IodGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IG1hcFByb3BzID0ge1xuICAgICAgICAuLi5tYXBTdGF0ZSxcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIHByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZSxcbiAgICAgICAgbWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gICAgICAgIG1hcGJveEFwaVVybCxcbiAgICAgICAgdHJhbnNmb3JtUmVxdWVzdFxuICAgICAgfTtcblxuICAgICAgY29uc3QgaXNFZGl0ID0gKG1hcENvbnRyb2xzLm1hcERyYXcgfHwge30pLmFjdGl2ZTtcblxuICAgICAgY29uc3QgaGFzR2VvY29kZXJMYXllciA9IGxheWVycy5maW5kKGwgPT4gbC5pZCA9PT0gR0VPQ09ERVJfTEFZRVJfSUQpO1xuICAgICAgY29uc3QgaXNTcGxpdCA9IEJvb2xlYW4obWFwU3RhdGUuaXNTcGxpdCk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPE1hcENvbnRyb2xcbiAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgIGF2YWlsYWJsZUxvY2FsZXM9e09iamVjdC5rZXlzKExPQ0FMRV9DT0RFUyl9XG4gICAgICAgICAgICBkcmFnUm90YXRlPXttYXBTdGF0ZS5kcmFnUm90YXRlfVxuICAgICAgICAgICAgaXNTcGxpdD17aXNTcGxpdH1cbiAgICAgICAgICAgIHByaW1hcnk9e3ByaW1hcnl9XG4gICAgICAgICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICAgIGxheWVyc1RvUmVuZGVyPXtsYXllcnNUb1JlbmRlcn1cbiAgICAgICAgICAgIG1hcEluZGV4PXtpbmRleH1cbiAgICAgICAgICAgIG1hcENvbnRyb2xzPXttYXBDb250cm9sc31cbiAgICAgICAgICAgIHJlYWRPbmx5PXt0aGlzLnByb3BzLnJlYWRPbmx5fVxuICAgICAgICAgICAgc2NhbGU9e21hcFN0YXRlLnNjYWxlIHx8IDF9XG4gICAgICAgICAgICB0b3A9e2ludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyICYmIGludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyLmVuYWJsZWQgPyA1MiA6IDB9XG4gICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgb25Ub2dnbGVQZXJzcGVjdGl2ZT17bWFwU3RhdGVBY3Rpb25zLnRvZ2dsZVBlcnNwZWN0aXZlfVxuICAgICAgICAgICAgb25Ub2dnbGVTcGxpdE1hcD17bWFwU3RhdGVBY3Rpb25zLnRvZ2dsZVNwbGl0TWFwfVxuICAgICAgICAgICAgb25NYXBUb2dnbGVMYXllcj17dGhpcy5faGFuZGxlTWFwVG9nZ2xlTGF5ZXJ9XG4gICAgICAgICAgICBvblRvZ2dsZU1hcENvbnRyb2w9e3RoaXMuX3RvZ2dsZU1hcENvbnRyb2x9XG4gICAgICAgICAgICBvblNldEVkaXRvck1vZGU9e3Zpc1N0YXRlQWN0aW9ucy5zZXRFZGl0b3JNb2RlfVxuICAgICAgICAgICAgb25TZXRMb2NhbGU9e3VpU3RhdGVBY3Rpb25zLnNldExvY2FsZX1cbiAgICAgICAgICAgIG9uVG9nZ2xlRWRpdG9yVmlzaWJpbGl0eT17dmlzU3RhdGVBY3Rpb25zLnRvZ2dsZUVkaXRvclZpc2liaWxpdHl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8TWFwQ29tcG9uZW50XG4gICAgICAgICAgICB7Li4ubWFwUHJvcHN9XG4gICAgICAgICAgICBrZXk9XCJib3R0b21cIlxuICAgICAgICAgICAgcmVmPXt0aGlzLl9zZXRNYXBib3hNYXB9XG4gICAgICAgICAgICBtYXBTdHlsZT17bWFwU3R5bGUuYm90dG9tTWFwU3R5bGV9XG4gICAgICAgICAgICBnZXRDdXJzb3I9e3RoaXMucHJvcHMuaG92ZXJJbmZvID8gKCkgPT4gJ3BvaW50ZXInIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgb25Nb3VzZU1vdmU9e3RoaXMucHJvcHMudmlzU3RhdGVBY3Rpb25zLm9uTW91c2VNb3ZlfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt0aGlzLl9yZW5kZXJEZWNrT3ZlcmxheShsYXllcnNGb3JEZWNrKX1cbiAgICAgICAgICAgIHt0aGlzLl9yZW5kZXJNYXBib3hPdmVybGF5cygpfVxuICAgICAgICAgICAgPEVkaXRvclxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICAgICAgICAgIGZpbHRlcnM9e3RoaXMucG9seWdvbkZpbHRlcnModGhpcy5wcm9wcyl9XG4gICAgICAgICAgICAgIGlzRW5hYmxlZD17aXNFZGl0fVxuICAgICAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICAgICAgbGF5ZXJzVG9SZW5kZXI9e2xheWVyc1RvUmVuZGVyfVxuICAgICAgICAgICAgICBvbkRlbGV0ZUZlYXR1cmU9e3Zpc1N0YXRlQWN0aW9ucy5kZWxldGVGZWF0dXJlfVxuICAgICAgICAgICAgICBvblNlbGVjdD17dmlzU3RhdGVBY3Rpb25zLnNldFNlbGVjdGVkRmVhdHVyZX1cbiAgICAgICAgICAgICAgb25VcGRhdGU9e3Zpc1N0YXRlQWN0aW9ucy5zZXRGZWF0dXJlc31cbiAgICAgICAgICAgICAgb25Ub2dnbGVQb2x5Z29uRmlsdGVyPXt2aXNTdGF0ZUFjdGlvbnMuc2V0UG9seWdvbkZpbHRlckxheWVyfVxuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6IGlzRWRpdCA/ICdhbGwnIDogJ25vbmUnLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGVkaXRvci52aXNpYmxlID8gJ2Jsb2NrJyA6ICdub25lJ1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L01hcENvbXBvbmVudD5cbiAgICAgICAgICB7bWFwU3R5bGUudG9wTWFwU3R5bGUgfHwgaGFzR2VvY29kZXJMYXllciA/IChcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e01BUF9TVFlMRS50b3B9PlxuICAgICAgICAgICAgICA8TWFwQ29tcG9uZW50IHsuLi5tYXBQcm9wc30ga2V5PVwidG9wXCIgbWFwU3R5bGU9e21hcFN0eWxlLnRvcE1hcFN0eWxlfT5cbiAgICAgICAgICAgICAgICB7dGhpcy5fcmVuZGVyRGVja092ZXJsYXkoe1tHRU9DT0RFUl9MQVlFUl9JRF06IHRydWV9KX1cbiAgICAgICAgICAgICAgPC9NYXBDb21wb25lbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICB7dGhpcy5fcmVuZGVyTWFwUG9wb3ZlcihsYXllcnNUb1JlbmRlcil9XG4gICAgICAgICAgeyFpc1NwbGl0IHx8IGluZGV4ID09PSAxID8gPEF0dHJpYnV0aW9uIC8+IDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHttYXBTdGF0ZSwgbWFwU3R5bGV9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IGNvbnRleHRMb3N0ID0gdGhpcy5zdGF0ZT8uY29udGV4dExvc3Q7XG5cbiAgICAgIGlmIChjb250ZXh0TG9zdCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1hcENvbnRhaW5lciByZWY9e3RoaXMuX3JlZn0gc3R5bGU9e01BUF9TVFlMRS5jb250YWluZXJ9IGdsb2JlPXttYXBTdGF0ZS5nbG9iZX0+XG4gICAgICAgICAge21hcFN0eWxlLmJvdHRvbU1hcFN0eWxlICYmIHRoaXMuX3JlbmRlck1hcCgpfVxuICAgICAgICA8L1N0eWxlZE1hcENvbnRhaW5lcj5cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgTWFwQ29udGFpbmVyLmRpc3BsYXlOYW1lID0gJ01hcENvbnRhaW5lcic7XG5cbiAgcmV0dXJuIE1hcENvbnRhaW5lcjtcbn1cbiJdfQ==
|