@kepler.gl/components 3.3.0-alpha.6 → 3.3.0-alpha.7

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.
Files changed (121) hide show
  1. package/dist/cjs/common/data-table/cell-size.js +40 -23
  2. package/dist/cjs/common/data-table/column-statistics-categoric.js +40 -0
  3. package/dist/cjs/common/data-table/column-statistics-components.js +65 -0
  4. package/dist/cjs/common/data-table/column-statistics-numeric.js +87 -0
  5. package/dist/cjs/common/data-table/column-statistics-time.js +69 -0
  6. package/dist/cjs/common/data-table/header-cell.js +123 -44
  7. package/dist/cjs/common/data-table/index.js +102 -29
  8. package/dist/cjs/common/histogram-plot.js +1 -1
  9. package/dist/cjs/common/icons/{arrow-down-solid.js → draw-point.js} +21 -11
  10. package/dist/cjs/common/icons/index.js +15 -1
  11. package/dist/cjs/common/icons/line-string.js +60 -0
  12. package/dist/cjs/common/toolbar-item.js +24 -3
  13. package/dist/cjs/editor/editor.js +26 -8
  14. package/dist/cjs/editor/feature-action-panel.js +34 -12
  15. package/dist/cjs/editor/feature-properties-editor.js +215 -0
  16. package/dist/cjs/editor/filter-feature-badges.js +92 -0
  17. package/dist/cjs/index.js +33 -1
  18. package/dist/cjs/kepler-gl.js +20 -3
  19. package/dist/cjs/map/map-control-toolbar.js +2 -2
  20. package/dist/cjs/map/map-control.js +13 -7
  21. package/dist/cjs/map/map-draw-panel.js +65 -15
  22. package/dist/cjs/map/theme-toggle-button.js +64 -0
  23. package/dist/cjs/map-container.js +16 -5
  24. package/dist/cjs/modal-container.js +2 -1
  25. package/dist/cjs/modals/cloud-components/cloud-item.js +55 -7
  26. package/dist/cjs/modals/cloud-components/cloud-item.spec.js +75 -3
  27. package/dist/cjs/modals/cloud-components/cloud-maps.js +2 -1
  28. package/dist/cjs/modals/cloud-tile.js +52 -38
  29. package/dist/cjs/modals/data-table-modal.js +37 -25
  30. package/dist/cjs/modals/export-video-modal.js +28 -1
  31. package/dist/cjs/modals/export-video-modal.spec.js +56 -10
  32. package/dist/cjs/modals/globe-export-video-container.js +19 -3
  33. package/dist/cjs/modals/globe-export-video-preview.js +25 -7
  34. package/dist/cjs/modals/hubble-utils.js +8 -3
  35. package/dist/cjs/modals/swipe-composite-utils.js +9 -1
  36. package/dist/cjs/modals/swipe-composite-utils.spec.js +69 -0
  37. package/dist/cjs/modals/swipe-export-video-preview.js +9 -5
  38. package/dist/cjs/side-panel/layer-manager.js +11 -3
  39. package/dist/cjs/side-panel/layer-panel/dataset-layer-section.js +11 -3
  40. package/dist/cjs/side-panel/layer-panel/layer-configurator.js +74 -31
  41. package/dist/cjs/side-panel/map-style-panel/globe-config-panel.js +90 -25
  42. package/dist/common/data-table/column-statistics-categoric.d.ts +9 -0
  43. package/dist/common/data-table/column-statistics-components.d.ts +31 -0
  44. package/dist/common/data-table/column-statistics-numeric.d.ts +18 -0
  45. package/dist/common/data-table/column-statistics-time.d.ts +19 -0
  46. package/dist/common/data-table/header-cell.d.ts +7 -5
  47. package/dist/common/data-table/index.d.ts +7 -24
  48. package/dist/common/histogram-plot.d.ts +24 -1
  49. package/dist/common/icons/{arrow-down-solid.d.ts → draw-point.d.ts} +2 -1
  50. package/dist/common/icons/index.d.ts +2 -0
  51. package/dist/common/icons/line-string.d.ts +10 -0
  52. package/dist/common/toolbar-item.d.ts +2 -0
  53. package/dist/editor/editor.d.ts +1 -0
  54. package/dist/editor/feature-action-panel.d.ts +1 -0
  55. package/dist/editor/feature-properties-editor.d.ts +8 -0
  56. package/dist/editor/filter-feature-badges.d.ts +12 -0
  57. package/dist/esm/common/data-table/cell-size.js +40 -23
  58. package/dist/esm/common/data-table/column-statistics-categoric.js +33 -0
  59. package/dist/esm/common/data-table/column-statistics-components.js +59 -0
  60. package/dist/esm/common/data-table/column-statistics-numeric.js +78 -0
  61. package/dist/esm/common/data-table/column-statistics-time.js +60 -0
  62. package/dist/esm/common/data-table/header-cell.js +125 -46
  63. package/dist/esm/common/data-table/index.js +102 -29
  64. package/dist/esm/common/histogram-plot.js +1 -1
  65. package/dist/esm/common/icons/draw-point.js +44 -0
  66. package/dist/esm/common/icons/index.js +3 -1
  67. package/dist/esm/common/icons/line-string.js +54 -0
  68. package/dist/esm/common/toolbar-item.js +24 -3
  69. package/dist/esm/editor/editor.js +26 -8
  70. package/dist/esm/editor/feature-action-panel.js +37 -15
  71. package/dist/esm/editor/feature-properties-editor.js +208 -0
  72. package/dist/esm/editor/filter-feature-badges.js +85 -0
  73. package/dist/esm/index.js +5 -1
  74. package/dist/esm/kepler-gl.js +20 -3
  75. package/dist/esm/map/map-control-toolbar.js +2 -2
  76. package/dist/esm/map/map-control.js +13 -7
  77. package/dist/esm/map/map-draw-panel.js +63 -11
  78. package/dist/esm/map/theme-toggle-button.js +55 -0
  79. package/dist/esm/map-container.js +16 -5
  80. package/dist/esm/modal-container.js +2 -1
  81. package/dist/esm/modals/cloud-components/cloud-item.js +53 -7
  82. package/dist/esm/modals/cloud-components/cloud-item.spec.js +76 -4
  83. package/dist/esm/modals/cloud-components/cloud-maps.js +2 -1
  84. package/dist/esm/modals/cloud-tile.js +52 -38
  85. package/dist/esm/modals/data-table-modal.js +38 -26
  86. package/dist/esm/modals/export-video-modal.js +29 -2
  87. package/dist/esm/modals/export-video-modal.spec.js +56 -10
  88. package/dist/esm/modals/globe-export-video-container.js +20 -4
  89. package/dist/esm/modals/globe-export-video-preview.js +26 -8
  90. package/dist/esm/modals/hubble-utils.js +8 -3
  91. package/dist/esm/modals/swipe-composite-utils.js +9 -1
  92. package/dist/esm/modals/swipe-composite-utils.spec.js +67 -0
  93. package/dist/esm/modals/swipe-export-video-preview.js +8 -4
  94. package/dist/esm/side-panel/layer-manager.js +11 -3
  95. package/dist/esm/side-panel/layer-panel/dataset-layer-section.js +11 -3
  96. package/dist/esm/side-panel/layer-panel/layer-configurator.js +74 -31
  97. package/dist/esm/side-panel/map-style-panel/globe-config-panel.js +90 -25
  98. package/dist/index.d.ts +8 -0
  99. package/dist/kepler-gl.d.ts +3 -0
  100. package/dist/map/map-control.d.ts +6 -2
  101. package/dist/map/map-draw-panel.d.ts +1 -0
  102. package/dist/map/theme-toggle-button.d.ts +18 -0
  103. package/dist/map-container.d.ts +1 -0
  104. package/dist/modals/cloud-components/cloud-item.d.ts +2 -1
  105. package/dist/modals/data-table-modal.d.ts +1 -0
  106. package/dist/modals/globe-export-video-container.d.ts +2 -0
  107. package/dist/modals/globe-export-video-preview.d.ts +3 -0
  108. package/dist/modals/hubble-utils.d.ts +2 -1
  109. package/dist/modals/swipe-composite-utils.d.ts +1 -1
  110. package/dist/modals/swipe-composite-utils.spec.d.ts +1 -0
  111. package/package.json +20 -20
  112. package/dist/cjs/modals/cloud-components/provider-loading.js +0 -20
  113. package/dist/cjs/modals/storage-map-viewer.js +0 -98
  114. package/dist/cjs/side-panel/cloud-storage-dropdown.js +0 -40
  115. package/dist/esm/common/icons/arrow-down-solid.js +0 -34
  116. package/dist/esm/modals/cloud-components/provider-loading.js +0 -15
  117. package/dist/esm/modals/storage-map-viewer.js +0 -93
  118. package/dist/esm/side-panel/cloud-storage-dropdown.js +0 -33
  119. package/dist/modals/cloud-components/provider-loading.d.ts +0 -2
  120. package/dist/modals/storage-map-viewer.d.ts +0 -21
  121. package/dist/side-panel/cloud-storage-dropdown.d.ts +0 -6
@@ -46,6 +46,7 @@ function EditorFactory(FeatureActionPanel) {
46
46
  currentFilter = _ref.currentFilter,
47
47
  onClose = _ref.onClose,
48
48
  onDeleteFeature = _ref.onDeleteFeature,
49
+ onSetFeatureProperties = _ref.onSetFeatureProperties,
49
50
  onToggleLayer = _ref.onToggleLayer,
50
51
  position = _ref.position;
51
52
  return /*#__PURE__*/_react["default"].createElement(_context.RootContext.Consumer, null, function (context) {
@@ -60,6 +61,7 @@ function EditorFactory(FeatureActionPanel) {
60
61
  currentFilter: currentFilter,
61
62
  onClose: onClose,
62
63
  onDeleteFeature: onDeleteFeature,
64
+ onSetFeatureProperties: onSetFeatureProperties,
63
65
  onToggleLayer: onToggleLayer,
64
66
  position: position || null
65
67
  }) : null), (_context$current = context === null || context === void 0 ? void 0 : context.current) !== null && _context$current !== void 0 ? _context$current : document.body));
@@ -108,20 +110,32 @@ function EditorFactory(FeatureActionPanel) {
108
110
  var _document$activeEleme;
109
111
  return ((_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.id) === DECKGL_RENDER_LAYER;
110
112
  });
113
+ (0, _defineProperty2["default"])(_this, "isTypingTarget", function (target) {
114
+ var element = target;
115
+ if (!element) {
116
+ return false;
117
+ }
118
+ var tagName = element.tagName;
119
+ return tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT' || Boolean(element.isContentEditable);
120
+ });
111
121
  (0, _defineProperty2["default"])(_this, "_onKeyPressed", function (event) {
122
+ var isEscape = event.keyCode === _constants.KeyEvent.DOM_VK_ESCAPE || event.key === 'Escape';
123
+ if (isEscape && !_this.isTypingTarget(event.target)) {
124
+ var drawing = _layers.EditorLayerUtils.isDrawingActive(true, _this.props.editor.mode);
125
+ if (drawing) {
126
+ _this.props.onSetEditorMode(_constants.EDITOR_MODES.EDIT);
127
+ _this.props.onSelect(null);
128
+ } else if (_this.isInFocus()) {
129
+ _this.props.onSelect(null);
130
+ }
131
+ return;
132
+ }
112
133
  if (_this.isInFocus()) {
113
134
  switch (event.keyCode) {
114
135
  case _constants.KeyEvent.DOM_VK_DELETE:
115
136
  case _constants.KeyEvent.DOM_VK_BACK_SPACE:
116
137
  _this._onDeleteSelectedFeature();
117
138
  break;
118
- case _constants.KeyEvent.DOM_VK_ESCAPE:
119
- // reset active drawing
120
- if (_layers.EditorLayerUtils.isDrawingActive(true, _this.props.editor.mode)) {
121
- _this.props.onSetEditorMode(_constants.EDITOR_MODES.EDIT);
122
- }
123
- _this.props.onSelect(null);
124
- break;
125
139
  default:
126
140
  break;
127
141
  }
@@ -145,6 +159,9 @@ function EditorFactory(FeatureActionPanel) {
145
159
  _this.props.onTogglePolygonFilter(layer, selectedFeature);
146
160
  }
147
161
  });
162
+ (0, _defineProperty2["default"])(_this, "_onSetFeatureProperties", function (feature, properties) {
163
+ _this.props.onSetFeatureProperties(feature, properties);
164
+ });
148
165
  return _this;
149
166
  }
150
167
  (0, _inherits2["default"])(EditorUnmemoized, _Component);
@@ -183,6 +200,7 @@ function EditorFactory(FeatureActionPanel) {
183
200
  currentFilter: currentFilter,
184
201
  onClose: this._closeFeatureAction,
185
202
  onDeleteFeature: this._onDeleteSelectedFeature,
203
+ onSetFeatureProperties: this._onSetFeatureProperties,
186
204
  onToggleLayer: this._togglePolygonFilter,
187
205
  position: position || null,
188
206
  className: className,
@@ -197,4 +215,4 @@ function EditorFactory(FeatureActionPanel) {
197
215
  Editor.displayName = 'Editor';
198
216
  return Editor;
199
217
  }
200
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3REb20iLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfd2luZG93IiwiX2NsYXNzbmFtZXMiLCJfZ2V0IiwiX3Jlc2VsZWN0IiwiX2ZlYXR1cmVBY3Rpb25QYW5lbCIsIl9jb25zdGFudHMiLCJfbGF5ZXJzIiwiX2NvbnRleHQiLCJfdGVtcGxhdGVPYmplY3QiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJERUNLR0xfUkVOREVSX0xBWUVSIiwiU3R5bGVkV3JhcHBlciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiZWRpdG9yTGF5ZXJGaWx0ZXIiLCJsYXllciIsIkVESVRPUl9BVkFJTEFCTEVfTEFZRVJTIiwiaW5jbHVkZXMiLCJ0eXBlIiwiRWRpdG9yRmFjdG9yeSIsImRlcHMiLCJGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5IiwiRmVhdHVyZUFjdGlvblBhbmVsIiwiUG9ydGFsRWRpdG9yIiwiX3JlZiIsInZpc2libGVQYW5lbCIsImNsYXNzTmFtZSIsInN0eWxlIiwic2VsZWN0ZWRGZWF0dXJlIiwiZGF0YXNldHMiLCJsYXllcnMiLCJjdXJyZW50RmlsdGVyIiwib25DbG9zZSIsIm9uRGVsZXRlRmVhdHVyZSIsIm9uVG9nZ2xlTGF5ZXIiLCJwb3NpdGlvbiIsImNyZWF0ZUVsZW1lbnQiLCJSb290Q29udGV4dCIsIkNvbnN1bWVyIiwiY29udGV4dCIsIl9jb250ZXh0JGN1cnJlbnQiLCJGcmFnbWVudCIsImNyZWF0ZVBvcnRhbCIsImNsYXNzbmFtZXMiLCJjdXJyZW50IiwiZG9jdW1lbnQiLCJib2R5IiwiRWRpdG9yVW5tZW1vaXplZCIsIl9Db21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNvbmNhdCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJwcm9wcyIsImZpbHRlcnMiLCJjcmVhdGVTZWxlY3RvciIsImZpbHRlclNlbGVjdG9yIiwic2VsZWN0ZWRGZWF0dXJlSWRTZWxlY3RvciIsInNlbGVjdGVkRmVhdHVyZUlkIiwiZmluZCIsInZhbHVlIiwiaWQiLCJsYXllclNlbGVjdG9yIiwiZmlsdGVyIiwiX2xheWVyJGNvbmZpZyIsImNvbmZpZyIsImlzVmlzaWJsZSIsIkdFT0NPREVSX0xBWUVSX0lEIiwiZWRpdG9yRmVhdHVyZVNlbGVjdG9yIiwiZWRpdG9yRmVhdHVyZXMiLCJGSUxURVJfVFlQRVMiLCJwb2x5Z29uIiwibWFwIiwiX2RvY3VtZW50JGFjdGl2ZUVsZW1lIiwiYWN0aXZlRWxlbWVudCIsImV2ZW50IiwiaXNJbkZvY3VzIiwia2V5Q29kZSIsIktleUV2ZW50IiwiRE9NX1ZLX0RFTEVURSIsIkRPTV9WS19CQUNLX1NQQUNFIiwiX29uRGVsZXRlU2VsZWN0ZWRGZWF0dXJlIiwiRE9NX1ZLX0VTQ0FQRSIsIkVkaXRvckxheWVyVXRpbHMiLCJpc0RyYXdpbmdBY3RpdmUiLCJlZGl0b3IiLCJtb2RlIiwib25TZXRFZGl0b3JNb2RlIiwiRURJVE9SX01PREVTIiwiRURJVCIsIm9uU2VsZWN0Iiwib25Ub2dnbGVQb2x5Z29uRmlsdGVyIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJjb21wb25lbnREaWRNb3VudCIsIldpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJfb25LZXlQcmVzc2VkIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJpbmRleCIsInNlbGVjdGlvbkNvbnRleHQiLCJjdXJyZW50RmlsdGVyU2VsZWN0b3IiLCJhdmFpbGFibGVMYXllcnMiLCJhdmFpbGFibGVMYXllcnNTZWxlY3RvciIsIl9yZWYyIiwicmlnaHRDbGljayIsIm1hcEluZGV4IiwiX2Nsb3NlRmVhdHVyZUFjdGlvbiIsIl90b2dnbGVQb2x5Z29uRmlsdGVyIiwiQ29tcG9uZW50IiwiRWRpdG9yIiwiUmVhY3QiLCJtZW1vIiwiZGlzcGxheU5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWRpdG9yL2VkaXRvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBDU1NQcm9wZXJ0aWVzLCBLZXlib2FyZEV2ZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2NyZWF0ZVBvcnRhbH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IFdpbmRvdyBmcm9tICdnbG9iYWwvd2luZG93JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCB7Y3JlYXRlU2VsZWN0b3J9IGZyb20gJ3Jlc2VsZWN0JztcbmltcG9ydCBGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5LCB7RmVhdHVyZUFjdGlvblBhbmVsUHJvcHN9IGZyb20gJy4vZmVhdHVyZS1hY3Rpb24tcGFuZWwnO1xuaW1wb3J0IHtcbiAgRURJVE9SX0FWQUlMQUJMRV9MQVlFUlMsXG4gIEZJTFRFUl9UWVBFUyxcbiAgRURJVE9SX01PREVTLFxuICBHRU9DT0RFUl9MQVlFUl9JRCxcbiAgS2V5RXZlbnRcbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtMYXllciwgRWRpdG9yTGF5ZXJVdGlsc30gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtGaWx0ZXIsIEZlYXR1cmVTZWxlY3Rpb25Db250ZXh0LCBGZWF0dXJlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7RmVhdHVyZSBhcyBFZGl0YWJsZUZlYXR1cmUsIFBvbHlnb259IGZyb20gJ0BkZWNrLmdsLWNvbW11bml0eS9lZGl0YWJsZS1sYXllcnMnO1xuaW1wb3J0IHtEYXRhc2V0c30gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5cbmltcG9ydCB7Um9vdENvbnRleHR9IGZyb20gJy4uL2NvbnRleHQnO1xuXG5jb25zdCBERUNLR0xfUkVOREVSX0xBWUVSID0gJ2RlZmF1bHQtZGVja2dsLW92ZXJsYXktd3JhcHBlcic7XG5cbmNvbnN0IFN0eWxlZFdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG5jb25zdCBlZGl0b3JMYXllckZpbHRlciA9IChsYXllcjogTGF5ZXIpID0+IEVESVRPUl9BVkFJTEFCTEVfTEFZRVJTLmluY2x1ZGVzKGxheWVyLnR5cGUgfHwgJycpO1xuXG5FZGl0b3JGYWN0b3J5LmRlcHMgPSBbRmVhdHVyZUFjdGlvblBhbmVsRmFjdG9yeV07XG5cbmludGVyZmFjZSBFZGl0b3JQcm9wcyB7XG4gIGZpbHRlcnM6IEZpbHRlcltdO1xuICBsYXllcnM6IExheWVyW107XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgZWRpdG9yOiB7c2VsZWN0ZWRGZWF0dXJlOiBGZWF0dXJlOyBtb2RlOiBzdHJpbmc7IHNlbGVjdGlvbkNvbnRleHQ/OiBGZWF0dXJlU2VsZWN0aW9uQ29udGV4dH07XG4gIGluZGV4OiBudW1iZXI7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgc3R5bGU6IENTU1Byb3BlcnRpZXM7XG4gIG9uU2VsZWN0OiAoZjogRmVhdHVyZSB8IG51bGwpID0+IGFueTtcbiAgb25TZXRFZGl0b3JNb2RlOiAobTogYW55KSA9PiB2b2lkO1xuICBvbkRlbGV0ZUZlYXR1cmU6IChmOiBGZWF0dXJlKSA9PiBhbnk7XG4gIG9uVG9nZ2xlUG9seWdvbkZpbHRlcjogKGw6IExheWVyLCBmOiBGZWF0dXJlKSA9PiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFBvcnRhbEVkaXRvclByb3BzID0gRmVhdHVyZUFjdGlvblBhbmVsUHJvcHMgJiB7XG4gIHZpc2libGVQYW5lbDogYm9vbGVhbjtcbiAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRWRpdG9yRmFjdG9yeShcbiAgRmVhdHVyZUFjdGlvblBhbmVsOiBSZWFjdC5GQzxGZWF0dXJlQWN0aW9uUGFuZWxQcm9wcz5cbik6IFJlYWN0LkNvbXBvbmVudENsYXNzPEVkaXRvclByb3BzPiB7XG4gIGNvbnN0IFBvcnRhbEVkaXRvcjogUmVhY3QuRkM8UG9ydGFsRWRpdG9yUHJvcHM+ID0gKHtcbiAgICB2aXNpYmxlUGFuZWwsXG4gICAgY2xhc3NOYW1lLFxuICAgIHN0eWxlLFxuICAgIHNlbGVjdGVkRmVhdHVyZSxcbiAgICBkYXRhc2V0cyxcbiAgICBsYXllcnMsXG4gICAgY3VycmVudEZpbHRlcixcbiAgICBvbkNsb3NlLFxuICAgIG9uRGVsZXRlRmVhdHVyZSxcbiAgICBvblRvZ2dsZUxheWVyLFxuICAgIHBvc2l0aW9uXG4gIH0pID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPFJvb3RDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgICB7Y29udGV4dCA9PiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHtjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICAgIDxTdHlsZWRXcmFwcGVyIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnZWRpdG9yJywgY2xhc3NOYW1lKX0gc3R5bGU9e3N0eWxlfT5cbiAgICAgICAgICAgICAgICB7dmlzaWJsZVBhbmVsID8gKFxuICAgICAgICAgICAgICAgICAgPEZlYXR1cmVBY3Rpb25QYW5lbFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEZlYXR1cmU9e3NlbGVjdGVkRmVhdHVyZSBhcyBFZGl0YWJsZUZlYXR1cmU8UG9seWdvbj59XG4gICAgICAgICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgICAgICAgbGF5ZXJzPXtsYXllcnN9XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGaWx0ZXI9e2N1cnJlbnRGaWx0ZXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xvc2U9e29uQ2xvc2V9XG4gICAgICAgICAgICAgICAgICAgIG9uRGVsZXRlRmVhdHVyZT17b25EZWxldGVGZWF0dXJlfVxuICAgICAgICAgICAgICAgICAgICBvblRvZ2dsZUxheWVyPXtvblRvZ2dsZUxheWVyfVxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj17cG9zaXRpb24gfHwgbnVsbH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3R5bGVkV3JhcHBlcj4sXG4gICAgICAgICAgICAgIGNvbnRleHQ/LmN1cnJlbnQgPz8gZG9jdW1lbnQuYm9keVxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvUm9vdENvbnRleHQuQ29uc3VtZXI+XG4gICAgKTtcbiAgfTtcbiAgY2xhc3MgRWRpdG9yVW5tZW1vaXplZCBleHRlbmRzIENvbXBvbmVudDxFZGl0b3JQcm9wcz4ge1xuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7fTtcblxuICAgIHN0YXRpYyBkaXNwbGF5TmFtZSA9ICdFZGl0b3InO1xuXG4gICAgc3RhdGUgPSB7fTtcblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgV2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9vbktleVByZXNzZWQpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgV2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9vbktleVByZXNzZWQpO1xuICAgIH1cblxuICAgIGxheWVyU2VsZWN0b3IgPSAocHJvcHM6IEVkaXRvclByb3BzKSA9PiBwcm9wcy5sYXllcnM7XG4gICAgZmlsdGVyU2VsZWN0b3IgPSAocHJvcHM6IEVkaXRvclByb3BzKSA9PiBwcm9wcy5maWx0ZXJzO1xuICAgIHNlbGVjdGVkRmVhdHVyZUlkU2VsZWN0b3IgPSAocHJvcHM6IEVkaXRvclByb3BzKSA9PlxuICAgICAgZ2V0KHByb3BzLCBbJ2VkaXRvcicsICdzZWxlY3RlZEZlYXR1cmUnLCAnaWQnXSk7XG4gICAgZWRpdG9yRmVhdHVyZVNlbGVjdG9yID0gKHByb3BzOiBFZGl0b3JQcm9wcykgPT4gZ2V0KHByb3BzLCBbJ2VkaXRvcicsICdmZWF0dXJlcyddKTtcblxuICAgIGN1cnJlbnRGaWx0ZXJTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgdGhpcy5maWx0ZXJTZWxlY3RvcixcbiAgICAgIHRoaXMuc2VsZWN0ZWRGZWF0dXJlSWRTZWxlY3RvcixcbiAgICAgIChmaWx0ZXJzLCBzZWxlY3RlZEZlYXR1cmVJZCkgPT4gZmlsdGVycy5maW5kKGYgPT4gZi52YWx1ZSAmJiBmLnZhbHVlLmlkID09PSBzZWxlY3RlZEZlYXR1cmVJZClcbiAgICApO1xuXG4gICAgYXZhaWxhYmxlTGF5ZXJzU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3Rvcih0aGlzLmxheWVyU2VsZWN0b3IsIGxheWVycyA9PlxuICAgICAgbGF5ZXJzXG4gICAgICAgIC5maWx0ZXIoZWRpdG9yTGF5ZXJGaWx0ZXIpXG4gICAgICAgIC5maWx0ZXIobGF5ZXIgPT4gbGF5ZXIuY29uZmlnPy5pc1Zpc2libGUgJiYgbGF5ZXIuaWQgIT09IEdFT0NPREVSX0xBWUVSX0lEKVxuICAgICk7XG5cbiAgICBhbGxGZWF0dXJlc1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLmZpbHRlclNlbGVjdG9yLFxuICAgICAgdGhpcy5lZGl0b3JGZWF0dXJlU2VsZWN0b3IsXG4gICAgICAoZmlsdGVycywgZWRpdG9yRmVhdHVyZXMpID0+XG4gICAgICAgIGZpbHRlcnNcbiAgICAgICAgICAuZmlsdGVyKGYgPT4gZi50eXBlID09PSBGSUxURVJfVFlQRVMucG9seWdvbilcbiAgICAgICAgICAubWFwKGYgPT4gZi52YWx1ZSlcbiAgICAgICAgICAuY29uY2F0KGVkaXRvckZlYXR1cmVzKVxuICAgICk7XG5cbiAgICBpc0luRm9jdXMgPSAoKSA9PiBkb2N1bWVudC5hY3RpdmVFbGVtZW50Py5pZCA9PT0gREVDS0dMX1JFTkRFUl9MQVlFUjtcblxuICAgIF9vbktleVByZXNzZWQgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzSW5Gb2N1cygpKSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5Q29kZSkge1xuICAgICAgICAgIGNhc2UgS2V5RXZlbnQuRE9NX1ZLX0RFTEVURTpcbiAgICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19CQUNLX1NQQUNFOlxuICAgICAgICAgICAgdGhpcy5fb25EZWxldGVTZWxlY3RlZEZlYXR1cmUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgS2V5RXZlbnQuRE9NX1ZLX0VTQ0FQRTpcbiAgICAgICAgICAgIC8vIHJlc2V0IGFjdGl2ZSBkcmF3aW5nXG4gICAgICAgICAgICBpZiAoRWRpdG9yTGF5ZXJVdGlscy5pc0RyYXdpbmdBY3RpdmUodHJ1ZSwgdGhpcy5wcm9wcy5lZGl0b3IubW9kZSkpIHtcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblNldEVkaXRvck1vZGUoRURJVE9SX01PREVTLkVESVQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uU2VsZWN0KG51bGwpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIF9vbkRlbGV0ZVNlbGVjdGVkRmVhdHVyZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHtlZGl0b3J9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHtzZWxlY3RlZEZlYXR1cmV9ID0gZWRpdG9yO1xuICAgICAgaWYgKHNlbGVjdGVkRmVhdHVyZSkge1xuICAgICAgICB0aGlzLnByb3BzLm9uRGVsZXRlRmVhdHVyZShzZWxlY3RlZEZlYXR1cmUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfY2xvc2VGZWF0dXJlQWN0aW9uID0gKCkgPT4ge1xuICAgICAgLy8gcmVzZXQgc2VsZWN0aW9uIGNvbnRleHRcbiAgICAgIGNvbnN0IHtzZWxlY3RlZEZlYXR1cmV9ID0gdGhpcy5wcm9wcy5lZGl0b3I7XG4gICAgICB0aGlzLnByb3BzLm9uU2VsZWN0KHNlbGVjdGVkRmVhdHVyZSk7XG4gICAgfTtcblxuICAgIF90b2dnbGVQb2x5Z29uRmlsdGVyID0gKGxheWVyOiBMYXllcikgPT4ge1xuICAgICAgY29uc3Qge3NlbGVjdGVkRmVhdHVyZX0gPSB0aGlzLnByb3BzLmVkaXRvcjtcbiAgICAgIGlmIChzZWxlY3RlZEZlYXR1cmUpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vblRvZ2dsZVBvbHlnb25GaWx0ZXIobGF5ZXIsIHNlbGVjdGVkRmVhdHVyZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHtjbGFzc05hbWUsIGRhdGFzZXRzLCBlZGl0b3IsIHN0eWxlLCBpbmRleH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qge3NlbGVjdGVkRmVhdHVyZSwgc2VsZWN0aW9uQ29udGV4dH0gPSBlZGl0b3I7XG4gICAgICBjb25zdCBjdXJyZW50RmlsdGVyID0gdGhpcy5jdXJyZW50RmlsdGVyU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBhdmFpbGFibGVMYXllcnMgPSB0aGlzLmF2YWlsYWJsZUxheWVyc1NlbGVjdG9yKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCB7cmlnaHRDbGljaywgcG9zaXRpb24sIG1hcEluZGV4fSA9IHNlbGVjdGlvbkNvbnRleHQgfHwge307XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxQb3J0YWxFZGl0b3JcbiAgICAgICAgICBzZWxlY3RlZEZlYXR1cmU9e3NlbGVjdGVkRmVhdHVyZSBhcyBFZGl0YWJsZUZlYXR1cmU8UG9seWdvbj59XG4gICAgICAgICAgdmlzaWJsZVBhbmVsPXtCb29sZWFuKHJpZ2h0Q2xpY2spICYmIHNlbGVjdGVkRmVhdHVyZSAmJiBpbmRleCA9PT0gbWFwSW5kZXh9XG4gICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgIGxheWVycz17YXZhaWxhYmxlTGF5ZXJzfVxuICAgICAgICAgIGN1cnJlbnRGaWx0ZXI9e2N1cnJlbnRGaWx0ZXJ9XG4gICAgICAgICAgb25DbG9zZT17dGhpcy5fY2xvc2VGZWF0dXJlQWN0aW9ufVxuICAgICAgICAgIG9uRGVsZXRlRmVhdHVyZT17dGhpcy5fb25EZWxldGVTZWxlY3RlZEZlYXR1cmV9XG4gICAgICAgICAgb25Ub2dnbGVMYXllcj17dGhpcy5fdG9nZ2xlUG9seWdvbkZpbHRlcn1cbiAgICAgICAgICBwb3NpdGlvbj17cG9zaXRpb24gfHwgbnVsbH1cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IEVkaXRvciA9IFJlYWN0Lm1lbW8oRWRpdG9yVW5tZW1vaXplZCkgYXMgdW5rbm93biBhcyB0eXBlb2YgRWRpdG9yVW5tZW1vaXplZDtcbiAgRWRpdG9yLmRpc3BsYXlOYW1lID0gJ0VkaXRvcic7XG4gIHJldHVybiBFZGl0b3I7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFELHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTSxJQUFBLEdBQUFILHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTyxTQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxtQkFBQSxHQUFBTCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVMsVUFBQSxHQUFBVCxPQUFBO0FBT0EsSUFBQVUsT0FBQSxHQUFBVixPQUFBO0FBS0EsSUFBQVcsUUFBQSxHQUFBWCxPQUFBO0FBQXVDLElBQUFZLGVBQUEsRUF2QnZDO0FBQ0E7QUFBQSxTQUFBYix3QkFBQWMsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQWhCLHVCQUFBLFlBQUFBLHdCQUFBYyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsbUJBQUFULENBQUEsaUJBQUFBLENBQUEsZ0JBQUFVLE9BQUEsQ0FBQVYsQ0FBQSwwQkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEs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
218
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3REb20iLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfd2luZG93IiwiX2NsYXNzbmFtZXMiLCJfZ2V0IiwiX3Jlc2VsZWN0IiwiX2ZlYXR1cmVBY3Rpb25QYW5lbCIsIl9jb25zdGFudHMiLCJfbGF5ZXJzIiwiX2NvbnRleHQiLCJfdGVtcGxhdGVPYmplY3QiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJERUNLR0xfUkVOREVSX0xBWUVSIiwiU3R5bGVkV3JhcHBlciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiZWRpdG9yTGF5ZXJGaWx0ZXIiLCJsYXllciIsIkVESVRPUl9BVkFJTEFCTEVfTEFZRVJTIiwiaW5jbHVkZXMiLCJ0eXBlIiwiRWRpdG9yRmFjdG9yeSIsImRlcHMiLCJGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5IiwiRmVhdHVyZUFjdGlvblBhbmVsIiwiUG9ydGFsRWRpdG9yIiwiX3JlZiIsInZpc2libGVQYW5lbCIsImNsYXNzTmFtZSIsInN0eWxlIiwic2VsZWN0ZWRGZWF0dXJlIiwiZGF0YXNldHMiLCJsYXllcnMiLCJjdXJyZW50RmlsdGVyIiwib25DbG9zZSIsIm9uRGVsZXRlRmVhdHVyZSIsIm9uU2V0RmVhdHVyZVByb3BlcnRpZXMiLCJvblRvZ2dsZUxheWVyIiwicG9zaXRpb24iLCJjcmVhdGVFbGVtZW50IiwiUm9vdENvbnRleHQiLCJDb25zdW1lciIsImNvbnRleHQiLCJfY29udGV4dCRjdXJyZW50IiwiRnJhZ21lbnQiLCJjcmVhdGVQb3J0YWwiLCJjbGFzc25hbWVzIiwiY3VycmVudCIsImRvY3VtZW50IiwiYm9keSIsIkVkaXRvclVubWVtb2l6ZWQiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjb25jYXQiLCJfZGVmaW5lUHJvcGVydHkyIiwicHJvcHMiLCJmaWx0ZXJzIiwiY3JlYXRlU2VsZWN0b3IiLCJmaWx0ZXJTZWxlY3RvciIsInNlbGVjdGVkRmVhdHVyZUlkU2VsZWN0b3IiLCJzZWxlY3RlZEZlYXR1cmVJZCIsImZpbmQiLCJ2YWx1ZSIsImlkIiwibGF5ZXJTZWxlY3RvciIsImZpbHRlciIsIl9sYXllciRjb25maWciLCJjb25maWciLCJpc1Zpc2libGUiLCJHRU9DT0RFUl9MQVlFUl9JRCIsImVkaXRvckZlYXR1cmVTZWxlY3RvciIsImVkaXRvckZlYXR1cmVzIiwiRklMVEVSX1RZUEVTIiwicG9seWdvbiIsIm1hcCIsIl9kb2N1bWVudCRhY3RpdmVFbGVtZSIsImFjdGl2ZUVsZW1lbnQiLCJ0YXJnZXQiLCJlbGVtZW50IiwidGFnTmFtZSIsImlzQ29udGVudEVkaXRhYmxlIiwiZXZlbnQiLCJpc0VzY2FwZSIsImtleUNvZGUiLCJLZXlFdmVudCIsIkRPTV9WS19FU0NBUEUiLCJrZXkiLCJpc1R5cGluZ1RhcmdldCIsImRyYXdpbmciLCJFZGl0b3JMYXllclV0aWxzIiwiaXNEcmF3aW5nQWN0aXZlIiwiZWRpdG9yIiwibW9kZSIsIm9uU2V0RWRpdG9yTW9kZSIsIkVESVRPUl9NT0RFUyIsIkVESVQiLCJvblNlbGVjdCIsImlzSW5Gb2N1cyIsIkRPTV9WS19ERUxFVEUiLCJET01fVktfQkFDS19TUEFDRSIsIl9vbkRlbGV0ZVNlbGVjdGVkRmVhdHVyZSIsIm9uVG9nZ2xlUG9seWdvbkZpbHRlciIsImZlYXR1cmUiLCJwcm9wZXJ0aWVzIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJjb21wb25lbnREaWRNb3VudCIsIldpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJfb25LZXlQcmVzc2VkIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJpbmRleCIsInNlbGVjdGlvbkNvbnRleHQiLCJjdXJyZW50RmlsdGVyU2VsZWN0b3IiLCJhdmFpbGFibGVMYXllcnMiLCJhdmFpbGFibGVMYXllcnNTZWxlY3RvciIsIl9yZWYyIiwicmlnaHRDbGljayIsIm1hcEluZGV4IiwiX2Nsb3NlRmVhdHVyZUFjdGlvbiIsIl9vblNldEZlYXR1cmVQcm9wZXJ0aWVzIiwiX3RvZ2dsZVBvbHlnb25GaWx0ZXIiLCJDb21wb25lbnQiLCJFZGl0b3IiLCJSZWFjdCIsIm1lbW8iLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lZGl0b3IvZWRpdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIENTU1Byb3BlcnRpZXMsIEtleWJvYXJkRXZlbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7Y3JlYXRlUG9ydGFsfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgV2luZG93IGZyb20gJ2dsb2JhbC93aW5kb3cnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC9nZXQnO1xuaW1wb3J0IHtjcmVhdGVTZWxlY3Rvcn0gZnJvbSAncmVzZWxlY3QnO1xuaW1wb3J0IEZlYXR1cmVBY3Rpb25QYW5lbEZhY3RvcnksIHtGZWF0dXJlQWN0aW9uUGFuZWxQcm9wc30gZnJvbSAnLi9mZWF0dXJlLWFjdGlvbi1wYW5lbCc7XG5pbXBvcnQge1xuICBFRElUT1JfQVZBSUxBQkxFX0xBWUVSUyxcbiAgRklMVEVSX1RZUEVTLFxuICBFRElUT1JfTU9ERVMsXG4gIEdFT0NPREVSX0xBWUVSX0lELFxuICBLZXlFdmVudFxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0xheWVyLCBFZGl0b3JMYXllclV0aWxzfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge0ZpbHRlciwgRmVhdHVyZVNlbGVjdGlvbkNvbnRleHQsIEZlYXR1cmV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtGZWF0dXJlIGFzIEVkaXRhYmxlRmVhdHVyZSwgUG9seWdvbn0gZnJvbSAnQGRlY2suZ2wtY29tbXVuaXR5L2VkaXRhYmxlLWxheWVycyc7XG5pbXBvcnQge0RhdGFzZXRzfSBmcm9tICdAa2VwbGVyLmdsL3RhYmxlJztcblxuaW1wb3J0IHtSb290Q29udGV4dH0gZnJvbSAnLi4vY29udGV4dCc7XG5cbmNvbnN0IERFQ0tHTF9SRU5ERVJfTEFZRVIgPSAnZGVmYXVsdC1kZWNrZ2wtb3ZlcmxheS13cmFwcGVyJztcblxuY29uc3QgU3R5bGVkV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IGVkaXRvckxheWVyRmlsdGVyID0gKGxheWVyOiBMYXllcikgPT4gRURJVE9SX0FWQUlMQUJMRV9MQVlFUlMuaW5jbHVkZXMobGF5ZXIudHlwZSB8fCAnJyk7XG5cbkVkaXRvckZhY3RvcnkuZGVwcyA9IFtGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5XTtcblxuaW50ZXJmYWNlIEVkaXRvclByb3BzIHtcbiAgZmlsdGVyczogRmlsdGVyW107XG4gIGxheWVyczogTGF5ZXJbXTtcbiAgZGF0YXNldHM6IERhdGFzZXRzO1xuICBlZGl0b3I6IHtzZWxlY3RlZEZlYXR1cmU6IEZlYXR1cmU7IG1vZGU6IHN0cmluZzsgc2VsZWN0aW9uQ29udGV4dD86IEZlYXR1cmVTZWxlY3Rpb25Db250ZXh0fTtcbiAgaW5kZXg6IG51bWJlcjtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBzdHlsZTogQ1NTUHJvcGVydGllcztcbiAgb25TZWxlY3Q6IChmOiBGZWF0dXJlIHwgbnVsbCkgPT4gYW55O1xuICBvblNldEVkaXRvck1vZGU6IChtOiBhbnkpID0+IHZvaWQ7XG4gIG9uRGVsZXRlRmVhdHVyZTogKGY6IEZlYXR1cmUpID0+IGFueTtcbiAgb25TZXRGZWF0dXJlUHJvcGVydGllczogKGY6IEZlYXR1cmUsIHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiBhbnk7XG4gIG9uVG9nZ2xlUG9seWdvbkZpbHRlcjogKGw6IExheWVyLCBmOiBGZWF0dXJlKSA9PiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFBvcnRhbEVkaXRvclByb3BzID0gRmVhdHVyZUFjdGlvblBhbmVsUHJvcHMgJiB7XG4gIHZpc2libGVQYW5lbDogYm9vbGVhbjtcbiAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRWRpdG9yRmFjdG9yeShcbiAgRmVhdHVyZUFjdGlvblBhbmVsOiBSZWFjdC5GQzxGZWF0dXJlQWN0aW9uUGFuZWxQcm9wcz5cbik6IFJlYWN0LkNvbXBvbmVudENsYXNzPEVkaXRvclByb3BzPiB7XG4gIGNvbnN0IFBvcnRhbEVkaXRvcjogUmVhY3QuRkM8UG9ydGFsRWRpdG9yUHJvcHM+ID0gKHtcbiAgICB2aXNpYmxlUGFuZWwsXG4gICAgY2xhc3NOYW1lLFxuICAgIHN0eWxlLFxuICAgIHNlbGVjdGVkRmVhdHVyZSxcbiAgICBkYXRhc2V0cyxcbiAgICBsYXllcnMsXG4gICAgY3VycmVudEZpbHRlcixcbiAgICBvbkNsb3NlLFxuICAgIG9uRGVsZXRlRmVhdHVyZSxcbiAgICBvblNldEZlYXR1cmVQcm9wZXJ0aWVzLFxuICAgIG9uVG9nZ2xlTGF5ZXIsXG4gICAgcG9zaXRpb25cbiAgfSkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8Um9vdENvbnRleHQuQ29uc3VtZXI+XG4gICAgICAgIHtjb250ZXh0ID0+IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAge2NyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgPFN0eWxlZFdyYXBwZXIgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdlZGl0b3InLCBjbGFzc05hbWUpfSBzdHlsZT17c3R5bGV9PlxuICAgICAgICAgICAgICAgIHt2aXNpYmxlUGFuZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8RmVhdHVyZUFjdGlvblBhbmVsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkRmVhdHVyZT17c2VsZWN0ZWRGZWF0dXJlIGFzIEVkaXRhYmxlRmVhdHVyZTxQb2x5Z29uPn1cbiAgICAgICAgICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpbHRlcj17Y3VycmVudEZpbHRlcn1cbiAgICAgICAgICAgICAgICAgICAgb25DbG9zZT17b25DbG9zZX1cbiAgICAgICAgICAgICAgICAgICAgb25EZWxldGVGZWF0dXJlPXtvbkRlbGV0ZUZlYXR1cmV9XG4gICAgICAgICAgICAgICAgICAgIG9uU2V0RmVhdHVyZVByb3BlcnRpZXM9e29uU2V0RmVhdHVyZVByb3BlcnRpZXN9XG4gICAgICAgICAgICAgICAgICAgIG9uVG9nZ2xlTGF5ZXI9e29uVG9nZ2xlTGF5ZXJ9XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPXtwb3NpdGlvbiB8fCBudWxsfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRXcmFwcGVyPixcbiAgICAgICAgICAgICAgY29udGV4dD8uY3VycmVudCA/PyBkb2N1bWVudC5ib2R5XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgPC9Sb290Q29udGV4dC5Db25zdW1lcj5cbiAgICApO1xuICB9O1xuICBjbGFzcyBFZGl0b3JVbm1lbW9pemVkIGV4dGVuZHMgQ29tcG9uZW50PEVkaXRvclByb3BzPiB7XG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHt9O1xuXG4gICAgc3RhdGljIGRpc3BsYXlOYW1lID0gJ0VkaXRvcic7XG5cbiAgICBzdGF0ZSA9IHt9O1xuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICBXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX29uS2V5UHJlc3NlZCk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBXaW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX29uS2V5UHJlc3NlZCk7XG4gICAgfVxuXG4gICAgbGF5ZXJTZWxlY3RvciA9IChwcm9wczogRWRpdG9yUHJvcHMpID0+IHByb3BzLmxheWVycztcbiAgICBmaWx0ZXJTZWxlY3RvciA9IChwcm9wczogRWRpdG9yUHJvcHMpID0+IHByb3BzLmZpbHRlcnM7XG4gICAgc2VsZWN0ZWRGZWF0dXJlSWRTZWxlY3RvciA9IChwcm9wczogRWRpdG9yUHJvcHMpID0+XG4gICAgICBnZXQocHJvcHMsIFsnZWRpdG9yJywgJ3NlbGVjdGVkRmVhdHVyZScsICdpZCddKTtcbiAgICBlZGl0b3JGZWF0dXJlU2VsZWN0b3IgPSAocHJvcHM6IEVkaXRvclByb3BzKSA9PiBnZXQocHJvcHMsIFsnZWRpdG9yJywgJ2ZlYXR1cmVzJ10pO1xuXG4gICAgY3VycmVudEZpbHRlclNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLmZpbHRlclNlbGVjdG9yLFxuICAgICAgdGhpcy5zZWxlY3RlZEZlYXR1cmVJZFNlbGVjdG9yLFxuICAgICAgKGZpbHRlcnMsIHNlbGVjdGVkRmVhdHVyZUlkKSA9PiBmaWx0ZXJzLmZpbmQoZiA9PiBmLnZhbHVlICYmIGYudmFsdWUuaWQgPT09IHNlbGVjdGVkRmVhdHVyZUlkKVxuICAgICk7XG5cbiAgICBhdmFpbGFibGVMYXllcnNTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKHRoaXMubGF5ZXJTZWxlY3RvciwgbGF5ZXJzID0+XG4gICAgICBsYXllcnNcbiAgICAgICAgLmZpbHRlcihlZGl0b3JMYXllckZpbHRlcilcbiAgICAgICAgLmZpbHRlcihsYXllciA9PiBsYXllci5jb25maWc/LmlzVmlzaWJsZSAmJiBsYXllci5pZCAhPT0gR0VPQ09ERVJfTEFZRVJfSUQpXG4gICAgKTtcblxuICAgIGFsbEZlYXR1cmVzU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHRoaXMuZmlsdGVyU2VsZWN0b3IsXG4gICAgICB0aGlzLmVkaXRvckZlYXR1cmVTZWxlY3RvcixcbiAgICAgIChmaWx0ZXJzLCBlZGl0b3JGZWF0dXJlcykgPT5cbiAgICAgICAgZmlsdGVyc1xuICAgICAgICAgIC5maWx0ZXIoZiA9PiBmLnR5cGUgPT09IEZJTFRFUl9UWVBFUy5wb2x5Z29uKVxuICAgICAgICAgIC5tYXAoZiA9PiBmLnZhbHVlKVxuICAgICAgICAgIC5jb25jYXQoZWRpdG9yRmVhdHVyZXMpXG4gICAgKTtcblxuICAgIGlzSW5Gb2N1cyA9ICgpID0+IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmlkID09PSBERUNLR0xfUkVOREVSX0xBWUVSO1xuXG4gICAgaXNUeXBpbmdUYXJnZXQgPSAodGFyZ2V0OiBFdmVudFRhcmdldCB8IG51bGwpID0+IHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0YXJnZXQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRhZ05hbWUgPSBlbGVtZW50LnRhZ05hbWU7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0YWdOYW1lID09PSAnSU5QVVQnIHx8XG4gICAgICAgIHRhZ05hbWUgPT09ICdURVhUQVJFQScgfHxcbiAgICAgICAgdGFnTmFtZSA9PT0gJ1NFTEVDVCcgfHxcbiAgICAgICAgQm9vbGVhbihlbGVtZW50LmlzQ29udGVudEVkaXRhYmxlKVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgX29uS2V5UHJlc3NlZCA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgY29uc3QgaXNFc2NhcGUgPSBldmVudC5rZXlDb2RlID09PSBLZXlFdmVudC5ET01fVktfRVNDQVBFIHx8IGV2ZW50LmtleSA9PT0gJ0VzY2FwZSc7XG4gICAgICBpZiAoaXNFc2NhcGUgJiYgIXRoaXMuaXNUeXBpbmdUYXJnZXQoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICBjb25zdCBkcmF3aW5nID0gRWRpdG9yTGF5ZXJVdGlscy5pc0RyYXdpbmdBY3RpdmUodHJ1ZSwgdGhpcy5wcm9wcy5lZGl0b3IubW9kZSk7XG4gICAgICAgIGlmIChkcmF3aW5nKSB7XG4gICAgICAgICAgdGhpcy5wcm9wcy5vblNldEVkaXRvck1vZGUoRURJVE9SX01PREVTLkVESVQpO1xuICAgICAgICAgIHRoaXMucHJvcHMub25TZWxlY3QobnVsbCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0luRm9jdXMoKSkge1xuICAgICAgICAgIHRoaXMucHJvcHMub25TZWxlY3QobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5pc0luRm9jdXMoKSkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHtcbiAgICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19ERUxFVEU6XG4gICAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfQkFDS19TUEFDRTpcbiAgICAgICAgICAgIHRoaXMuX29uRGVsZXRlU2VsZWN0ZWRGZWF0dXJlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX29uRGVsZXRlU2VsZWN0ZWRGZWF0dXJlID0gKCkgPT4ge1xuICAgICAgY29uc3Qge2VkaXRvcn0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qge3NlbGVjdGVkRmVhdHVyZX0gPSBlZGl0b3I7XG4gICAgICBpZiAoc2VsZWN0ZWRGZWF0dXJlKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25EZWxldGVGZWF0dXJlKHNlbGVjdGVkRmVhdHVyZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF9jbG9zZUZlYXR1cmVBY3Rpb24gPSAoKSA9PiB7XG4gICAgICAvLyByZXNldCBzZWxlY3Rpb24gY29udGV4dFxuICAgICAgY29uc3Qge3NlbGVjdGVkRmVhdHVyZX0gPSB0aGlzLnByb3BzLmVkaXRvcjtcbiAgICAgIHRoaXMucHJvcHMub25TZWxlY3Qoc2VsZWN0ZWRGZWF0dXJlKTtcbiAgICB9O1xuXG4gICAgX3RvZ2dsZVBvbHlnb25GaWx0ZXIgPSAobGF5ZXI6IExheWVyKSA9PiB7XG4gICAgICBjb25zdCB7c2VsZWN0ZWRGZWF0dXJlfSA9IHRoaXMucHJvcHMuZWRpdG9yO1xuICAgICAgaWYgKHNlbGVjdGVkRmVhdHVyZSkge1xuICAgICAgICB0aGlzLnByb3BzLm9uVG9nZ2xlUG9seWdvbkZpbHRlcihsYXllciwgc2VsZWN0ZWRGZWF0dXJlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX29uU2V0RmVhdHVyZVByb3BlcnRpZXMgPSAoZmVhdHVyZTogRmVhdHVyZSwgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgIHRoaXMucHJvcHMub25TZXRGZWF0dXJlUHJvcGVydGllcyhmZWF0dXJlLCBwcm9wZXJ0aWVzKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge2NsYXNzTmFtZSwgZGF0YXNldHMsIGVkaXRvciwgc3R5bGUsIGluZGV4fSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCB7c2VsZWN0ZWRGZWF0dXJlLCBzZWxlY3Rpb25Db250ZXh0fSA9IGVkaXRvcjtcbiAgICAgIGNvbnN0IGN1cnJlbnRGaWx0ZXIgPSB0aGlzLmN1cnJlbnRGaWx0ZXJTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGF2YWlsYWJsZUxheWVycyA9IHRoaXMuYXZhaWxhYmxlTGF5ZXJzU2VsZWN0b3IodGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IHtyaWdodENsaWNrLCBwb3NpdGlvbiwgbWFwSW5kZXh9ID0gc2VsZWN0aW9uQ29udGV4dCB8fCB7fTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFBvcnRhbEVkaXRvclxuICAgICAgICAgIHNlbGVjdGVkRmVhdHVyZT17c2VsZWN0ZWRGZWF0dXJlIGFzIEVkaXRhYmxlRmVhdHVyZTxQb2x5Z29uPn1cbiAgICAgICAgICB2aXNpYmxlUGFuZWw9e0Jvb2xlYW4ocmlnaHRDbGljaykgJiYgc2VsZWN0ZWRGZWF0dXJlICYmIGluZGV4ID09PSBtYXBJbmRleH1cbiAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgbGF5ZXJzPXthdmFpbGFibGVMYXllcnN9XG4gICAgICAgICAgY3VycmVudEZpbHRlcj17Y3VycmVudEZpbHRlcn1cbiAgICAgICAgICBvbkNsb3NlPXt0aGlzLl9jbG9zZUZlYXR1cmVBY3Rpb259XG4gICAgICAgICAgb25EZWxldGVGZWF0dXJlPXt0aGlzLl9vbkRlbGV0ZVNlbGVjdGVkRmVhdHVyZX1cbiAgICAgICAgICBvblNldEZlYXR1cmVQcm9wZXJ0aWVzPXtcbiAgICAgICAgICAgIHRoaXMuX29uU2V0RmVhdHVyZVByb3BlcnRpZXMgYXMgRmVhdHVyZUFjdGlvblBhbmVsUHJvcHNbJ29uU2V0RmVhdHVyZVByb3BlcnRpZXMnXVxuICAgICAgICAgIH1cbiAgICAgICAgICBvblRvZ2dsZUxheWVyPXt0aGlzLl90b2dnbGVQb2x5Z29uRmlsdGVyfVxuICAgICAgICAgIHBvc2l0aW9uPXtwb3NpdGlvbiB8fCBudWxsfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgRWRpdG9yID0gUmVhY3QubWVtbyhFZGl0b3JVbm1lbW9pemVkKSBhcyB1bmtub3duIGFzIHR5cGVvZiBFZGl0b3JVbm1lbW9pemVkO1xuICBFZGl0b3IuZGlzcGxheU5hbWUgPSAnRWRpdG9yJztcbiAgcmV0dXJuIEVkaXRvcjtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLFdBQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFNLElBQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFPLFNBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLG1CQUFBLEdBQUFMLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUyxVQUFBLEdBQUFULE9BQUE7QUFPQSxJQUFBVSxPQUFBLEdBQUFWLE9BQUE7QUFLQSxJQUFBVyxRQUFBLEdBQUFYLE9BQUE7QUFBdUMsSUFBQVksZUFBQSxFQXZCdkM7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
@@ -19,18 +19,20 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
19
19
  var _utils = require("@kepler.gl/utils");
20
20
  var _actionPanel = _interopRequireWildcard(require("../common/action-panel"));
21
21
  var _icons = require("../common/icons");
22
+ var _featurePropertiesEditor = _interopRequireDefault(require("./feature-properties-editor"));
22
23
  var _templateObject; // SPDX-License-Identifier: MIT
23
24
  // Copyright contributors to the kepler.gl project
24
25
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
25
26
  var LAYOVER_OFFSET = 4;
26
- var StyledActionsLayer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n .layer-panel-item-disabled {\n color: ", ";\n }\n"])), function (props) {
27
+ var StyledActionsLayer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n gap: 4px;\n .layer-panel-item-disabled {\n color: ", ";\n }\n"])), function (props) {
27
28
  return props.theme.textColor;
28
29
  });
29
30
  var defaultActionIcons = {
30
31
  remove: _icons.Trash,
31
32
  layer: _icons.Layers,
32
33
  copy: _icons.Copy,
33
- copied: _icons.Checkmark
34
+ copied: _icons.Checkmark,
35
+ edit: _icons.Edit
34
36
  };
35
37
  PureFeatureActionPanelFactory.deps = [];
36
38
  function PureFeatureActionPanelFactory() {
@@ -44,6 +46,7 @@ function PureFeatureActionPanelFactory() {
44
46
  currentFilter = _ref.currentFilter,
45
47
  onToggleLayer = _ref.onToggleLayer,
46
48
  onDeleteFeature = _ref.onDeleteFeature,
49
+ onSetFeatureProperties = _ref.onSetFeatureProperties,
47
50
  _ref$actionIcons = _ref.actionIcons,
48
51
  actionIcons = _ref$actionIcons === void 0 ? defaultActionIcons : _ref$actionIcons,
49
52
  children = _ref.children,
@@ -52,6 +55,10 @@ function PureFeatureActionPanelFactory() {
52
55
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
53
56
  copied = _useState2[0],
54
57
  setCopied = _useState2[1];
58
+ var _useState3 = (0, _react.useState)(false),
59
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
60
+ showProperties = _useState4[0],
61
+ setShowProperties = _useState4[1];
55
62
  var _ref2 = currentFilter || {},
56
63
  _ref2$layerId = _ref2.layerId,
57
64
  layerId = _ref2$layerId === void 0 ? [] : _ref2$layerId;
@@ -73,10 +80,14 @@ function PureFeatureActionPanelFactory() {
73
80
  if (selectedFeature !== null && selectedFeature !== void 0 && selectedFeature.geometry) (0, _copyToClipboard["default"])(JSON.stringify(selectedFeature.geometry));
74
81
  setCopied(true);
75
82
  }, [selectedFeature === null || selectedFeature === void 0 ? void 0 : selectedFeature.geometry]);
83
+ (0, _react.useEffect)(function () {
84
+ setShowProperties(false);
85
+ }, [selectedFeature === null || selectedFeature === void 0 ? void 0 : selectedFeature.id]);
76
86
  if (!position) {
77
87
  return null;
78
88
  }
79
- var isFilterLayerDisabled = !(0, _utils.canApplyFeatureFilter)(selectedFeature);
89
+ var canFilterLayers = (0, _utils.canApplyFeatureFilter)(selectedFeature);
90
+ var enableSketches = (0, _utils.getApplicationConfig)().enableDrawOnMapSketches;
80
91
  return /*#__PURE__*/_react["default"].createElement(StyledActionsLayer, (0, _extends2["default"])({
81
92
  ref: refs.setFloating
82
93
  }, getFloatingProps(), {
@@ -85,17 +96,13 @@ function PureFeatureActionPanelFactory() {
85
96
  top: "".concat(position.y + LAYOVER_OFFSET, "px"),
86
97
  left: "".concat(position.x + LAYOVER_OFFSET, "px")
87
98
  }
88
- }), /*#__PURE__*/_react["default"].createElement(_actionPanel["default"], null, /*#__PURE__*/_react["default"].createElement(_actionPanel.ActionPanelItem, {
99
+ }), /*#__PURE__*/_react["default"].createElement(_actionPanel["default"], null, canFilterLayers ? /*#__PURE__*/_react["default"].createElement(_actionPanel.ActionPanelItem, {
89
100
  className: "editor-layers-list",
90
101
  label: intl.formatMessage({
91
102
  id: 'editor.filterLayer',
92
103
  defaultMessage: 'Filter layers'
93
104
  }),
94
- Icon: actionIcons.layer,
95
- isDisabled: isFilterLayerDisabled,
96
- tooltipText: isFilterLayerDisabled ? intl.formatMessage({
97
- id: 'editor.filterLayerDisabled'
98
- }) : null
105
+ Icon: actionIcons.layer
99
106
  }, layers.length ? layers.map(function (layer, index) {
100
107
  return /*#__PURE__*/_react["default"].createElement(_actionPanel.ActionPanelItem, {
101
108
  key: index,
@@ -119,7 +126,19 @@ function PureFeatureActionPanelFactory() {
119
126
  isSelection: false,
120
127
  isActive: false,
121
128
  className: "layer-panel-item-disabled"
122
- })), /*#__PURE__*/_react["default"].createElement(_actionPanel.ActionPanelItem, {
129
+ })) : null, enableSketches ? /*#__PURE__*/_react["default"].createElement(_actionPanel.ActionPanelItem, {
130
+ label: intl.formatMessage({
131
+ id: 'editor.editProperties',
132
+ defaultMessage: 'Edit Properties'
133
+ }),
134
+ className: "edit-properties-panel-item",
135
+ Icon: actionIcons.edit,
136
+ onClick: function onClick() {
137
+ return setShowProperties(function (open) {
138
+ return !open;
139
+ });
140
+ }
141
+ }) : null, /*#__PURE__*/_react["default"].createElement(_actionPanel.ActionPanelItem, {
123
142
  label: intl.formatMessage({
124
143
  id: 'editor.copyGeometry',
125
144
  defaultMessage: 'Copy Geometry'
@@ -135,7 +154,10 @@ function PureFeatureActionPanelFactory() {
135
154
  className: "delete-panel-item",
136
155
  Icon: actionIcons.remove,
137
156
  onClick: onDeleteFeature
138
- })));
157
+ })), enableSketches && showProperties ? /*#__PURE__*/_react["default"].createElement(_featurePropertiesEditor["default"], {
158
+ selectedFeature: selectedFeature,
159
+ onSetFeatureProperties: onSetFeatureProperties
160
+ }) : null);
139
161
  };
140
162
  FeatureActionPanel.displayName = 'FeatureActionPanel';
141
163
  return FeatureActionPanel;
@@ -144,4 +166,4 @@ FeatureActionPanelFactory.deps = PureFeatureActionPanelFactory.deps;
144
166
  function FeatureActionPanelFactory() {
145
167
  return PureFeatureActionPanelFactory();
146
168
  }
147
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RJbnRsIiwiX2NvcHlUb0NsaXBib2FyZCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3QyIiwiX2NsYXNzbmFtZXMiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl91dGlscyIsIl9hY3Rpb25QYW5lbCIsIl9pY29ucyIsIl90ZW1wbGF0ZU9iamVjdCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiTEFZT1ZFUl9PRkZTRVQiLCJTdHlsZWRBY3Rpb25zTGF5ZXIiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJ0ZXh0Q29sb3IiLCJkZWZhdWx0QWN0aW9uSWNvbnMiLCJyZW1vdmUiLCJUcmFzaCIsImxheWVyIiwiTGF5ZXJzIiwiY29weSIsIkNvcHkiLCJjb3BpZWQiLCJDaGVja21hcmsiLCJQdXJlRmVhdHVyZUFjdGlvblBhbmVsRmFjdG9yeSIsImRlcHMiLCJGZWF0dXJlQWN0aW9uUGFuZWwiLCJfcmVmIiwiY2xhc3NOYW1lIiwiZGF0YXNldHMiLCJzZWxlY3RlZEZlYXR1cmUiLCJfcmVmJHBvc2l0aW9uIiwicG9zaXRpb24iLCJsYXllcnMiLCJjdXJyZW50RmlsdGVyIiwib25Ub2dnbGVMYXllciIsIm9uRGVsZXRlRmVhdHVyZSIsIl9yZWYkYWN0aW9uSWNvbnMiLCJhY3Rpb25JY29ucyIsImNoaWxkcmVuIiwib25DbG9zZSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNldENvcGllZCIsIl9yZWYyIiwiX3JlZjIkbGF5ZXJJZCIsImxheWVySWQiLCJpbnRsIiwidXNlSW50bCIsIl91c2VGbG9hdGluZyIsInVzZUZsb2F0aW5nIiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsInYiLCJyZWZzIiwiY29udGV4dCIsImRpc21pc3MiLCJ1c2VEaXNtaXNzIiwiX3VzZUludGVyYWN0aW9ucyIsInVzZUludGVyYWN0aW9ucyIsImdldEZsb2F0aW5nUHJvcHMiLCJjb3B5R2VvbWV0cnkiLCJ1c2VDYWxsYmFjayIsImdlb21ldHJ5IiwiSlNPTiIsInN0cmluZ2lmeSIsImlzRmlsdGVyTGF5ZXJEaXNhYmxlZCIsImNhbkFwcGx5RmVhdHVyZUZpbHRlciIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJyZWYiLCJzZXRGbG9hdGluZyIsImNsYXNzbmFtZXMiLCJzdHlsZSIsInRvcCIsImNvbmNhdCIsInkiLCJsZWZ0IiwieCIsIkFjdGlvblBhbmVsSXRlbSIsImxhYmVsIiwiZm9ybWF0TWVzc2FnZSIsImlkIiwiZGVmYXVsdE1lc3NhZ2UiLCJJY29uIiwiaXNEaXNhYmxlZCIsInRvb2x0aXBUZXh0IiwibGVuZ3RoIiwibWFwIiwiaW5kZXgiLCJrZXkiLCJjb25maWciLCJjb2xvciIsImRhdGFJZCIsImlzU2VsZWN0aW9uIiwiaXNBY3RpdmUiLCJpbmNsdWRlcyIsIm9uQ2xpY2siLCJkaXNwbGF5TmFtZSIsIkZlYXR1cmVBY3Rpb25QYW5lbEZhY3RvcnkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWRpdG9yL2ZlYXR1cmUtYWN0aW9uLXBhbmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlU3RhdGUsIENvbXBvbmVudFR5cGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7dXNlSW50bH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgY29weSBmcm9tICdjb3B5LXRvLWNsaXBib2FyZCc7XG5pbXBvcnQge3VzZURpc21pc3MsIHVzZUZsb2F0aW5nLCB1c2VJbnRlcmFjdGlvbnN9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQge0xheWVyfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge0ZpbHRlcn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge0ZlYXR1cmV9IGZyb20gJ0BkZWNrLmdsLWNvbW11bml0eS9lZGl0YWJsZS1sYXllcnMnO1xuaW1wb3J0IHtEYXRhc2V0c30gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge2NhbkFwcGx5RmVhdHVyZUZpbHRlcn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmltcG9ydCBBY3Rpb25QYW5lbCwge0FjdGlvblBhbmVsSXRlbX0gZnJvbSAnLi4vY29tbW9uL2FjdGlvbi1wYW5lbCc7XG5pbXBvcnQge1RyYXNoLCBMYXllcnMsIENvcHksIENoZWNrbWFya30gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcblxuY29uc3QgTEFZT1ZFUl9PRkZTRVQgPSA0O1xuXG5jb25zdCBTdHlsZWRBY3Rpb25zTGF5ZXIgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC5sYXllci1wYW5lbC1pdGVtLWRpc2FibGVkIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICB9XG5gO1xuY29uc3QgZGVmYXVsdEFjdGlvbkljb25zID0ge1xuICByZW1vdmU6IFRyYXNoLFxuICBsYXllcjogTGF5ZXJzLFxuICBjb3B5OiBDb3B5LFxuICBjb3BpZWQ6IENoZWNrbWFya1xufTtcblB1cmVGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5LmRlcHMgPSBbXTtcblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlQWN0aW9uUGFuZWxQcm9wcyB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgZGF0YXNldHM6IERhdGFzZXRzO1xuICBzZWxlY3RlZEZlYXR1cmU6IEZlYXR1cmUgfCBudWxsO1xuICBwb3NpdGlvbjoge1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG4gIH0gfCBudWxsO1xuICBsYXllcnM6IExheWVyW107XG4gIGN1cnJlbnRGaWx0ZXI/OiBGaWx0ZXI7XG4gIG9uVG9nZ2xlTGF5ZXI6IChsYXllcjogTGF5ZXIpID0+IHZvaWQ7XG4gIG9uRGVsZXRlRmVhdHVyZTogKCkgPT4gdm9pZDtcbiAgb25DbG9zZT86ICgpID0+IHZvaWQ7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBhY3Rpb25JY29ucz86IHtcbiAgICBbaWQ6IHN0cmluZ106IFJlYWN0LkVsZW1lbnRUeXBlO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gUHVyZUZlYXR1cmVBY3Rpb25QYW5lbEZhY3RvcnkoKTogUmVhY3QuRkM8RmVhdHVyZUFjdGlvblBhbmVsUHJvcHM+IHtcbiAgY29uc3QgRmVhdHVyZUFjdGlvblBhbmVsID0gKHtcbiAgICBjbGFzc05hbWUsXG4gICAgZGF0YXNldHMsXG4gICAgc2VsZWN0ZWRGZWF0dXJlLFxuICAgIHBvc2l0aW9uID0gbnVsbCxcbiAgICBsYXllcnMsXG4gICAgY3VycmVudEZpbHRlcixcbiAgICBvblRvZ2dsZUxheWVyLFxuICAgIG9uRGVsZXRlRmVhdHVyZSxcbiAgICBhY3Rpb25JY29ucyA9IGRlZmF1bHRBY3Rpb25JY29ucyxcbiAgICBjaGlsZHJlbixcbiAgICBvbkNsb3NlXG4gIH06IEZlYXR1cmVBY3Rpb25QYW5lbFByb3BzKSA9PiB7XG4gICAgY29uc3QgW2NvcGllZCwgc2V0Q29waWVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB7bGF5ZXJJZCA9IFtdfSA9IGN1cnJlbnRGaWx0ZXIgfHwge307XG4gICAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcblxuICAgIGNvbnN0IHtyZWZzLCBjb250ZXh0fSA9IHVzZUZsb2F0aW5nKHtcbiAgICAgIG9wZW46IHRydWUsXG4gICAgICBvbk9wZW5DaGFuZ2U6IHYgPT4ge1xuICAgICAgICBpZiAoIXYgJiYgb25DbG9zZSkge1xuICAgICAgICAgIG9uQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGRpc21pc3MgPSB1c2VEaXNtaXNzKGNvbnRleHQpO1xuXG4gICAgY29uc3Qge2dldEZsb2F0aW5nUHJvcHN9ID0gdXNlSW50ZXJhY3Rpb25zKFtkaXNtaXNzXSk7XG5cbiAgICBjb25zdCBjb3B5R2VvbWV0cnkgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoc2VsZWN0ZWRGZWF0dXJlPy5nZW9tZXRyeSkgY29weShKU09OLnN0cmluZ2lmeShzZWxlY3RlZEZlYXR1cmUuZ2VvbWV0cnkpKTtcbiAgICAgIHNldENvcGllZCh0cnVlKTtcbiAgICB9LCBbc2VsZWN0ZWRGZWF0dXJlPy5nZW9tZXRyeV0pO1xuXG4gICAgaWYgKCFwb3NpdGlvbikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgaXNGaWx0ZXJMYXllckRpc2FibGVkID0gIWNhbkFwcGx5RmVhdHVyZUZpbHRlcihzZWxlY3RlZEZlYXR1cmUgYXMgYW55KTtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEFjdGlvbnNMYXllclxuICAgICAgICByZWY9e3JlZnMuc2V0RmxvYXRpbmd9XG4gICAgICAgIHsuLi5nZXRGbG9hdGluZ1Byb3BzKCl9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnZmVhdHVyZS1hY3Rpb24tcGFuZWwnLCBjbGFzc05hbWUpfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIHRvcDogYCR7cG9zaXRpb24ueSArIExBWU9WRVJfT0ZGU0VUfXB4YCxcbiAgICAgICAgICBsZWZ0OiBgJHtwb3NpdGlvbi54ICsgTEFZT1ZFUl9PRkZTRVR9cHhgXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxBY3Rpb25QYW5lbD5cbiAgICAgICAgICA8QWN0aW9uUGFuZWxJdGVtXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJlZGl0b3ItbGF5ZXJzLWxpc3RcIlxuICAgICAgICAgICAgbGFiZWw9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdlZGl0b3IuZmlsdGVyTGF5ZXInLCBkZWZhdWx0TWVzc2FnZTogJ0ZpbHRlciBsYXllcnMnfSl9XG4gICAgICAgICAgICBJY29uPXthY3Rpb25JY29ucy5sYXllcn1cbiAgICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzRmlsdGVyTGF5ZXJEaXNhYmxlZH1cbiAgICAgICAgICAgIHRvb2x0aXBUZXh0PXtcbiAgICAgICAgICAgICAgaXNGaWx0ZXJMYXllckRpc2FibGVkID8gaW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ2VkaXRvci5maWx0ZXJMYXllckRpc2FibGVkJ30pIDogbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtsYXllcnMubGVuZ3RoID8gKFxuICAgICAgICAgICAgICBsYXllcnMubWFwKChsYXllciwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICA8QWN0aW9uUGFuZWxJdGVtXG4gICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgbGFiZWw9e2xheWVyLmNvbmZpZy5sYWJlbH1cbiAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgIGNvbG9yPXtkYXRhc2V0c1tsYXllci5jb25maWcuZGF0YUlkXS5jb2xvcn1cbiAgICAgICAgICAgICAgICAgIGlzU2VsZWN0aW9uPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgaXNBY3RpdmU9e2xheWVySWQuaW5jbHVkZXMobGF5ZXIuaWQpfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGVMYXllcihsYXllcil9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJsYXllci1wYW5lbC1pdGVtXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPEFjdGlvblBhbmVsSXRlbVxuICAgICAgICAgICAgICAgIGtleT17J25vLWxheWVycyd9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ludGwuZm9ybWF0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICBpZDogJ2VkaXRvci5ub0xheWVyc1RvRmlsdGVyJyxcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRNZXNzYWdlOiAnTm8gbGF5ZXJzIHRvIGZpbHRlcidcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICBpc1NlbGVjdGlvbj17ZmFsc2V9XG4gICAgICAgICAgICAgICAgaXNBY3RpdmU9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImxheWVyLXBhbmVsLWl0ZW0tZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0FjdGlvblBhbmVsSXRlbT5cbiAgICAgICAgICA8QWN0aW9uUGFuZWxJdGVtXG4gICAgICAgICAgICBsYWJlbD17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ2VkaXRvci5jb3B5R2VvbWV0cnknLCBkZWZhdWx0TWVzc2FnZTogJ0NvcHkgR2VvbWV0cnknfSl9XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJkZWxldGUtcGFuZWwtaXRlbVwiXG4gICAgICAgICAgICBJY29uPXtjb3BpZWQgPyBhY3Rpb25JY29ucy5jb3BpZWQgOiBhY3Rpb25JY29ucy5jb3B5fVxuICAgICAgICAgICAgb25DbGljaz17Y29weUdlb21ldHJ5fVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgIDxBY3Rpb25QYW5lbEl0ZW1cbiAgICAgICAgICAgIGxhYmVsPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAndG9vbHRpcC5kZWxldGUnLCBkZWZhdWx0TWVzc2FnZTogJ0RlbGV0ZSd9KX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImRlbGV0ZS1wYW5lbC1pdGVtXCJcbiAgICAgICAgICAgIEljb249e2FjdGlvbkljb25zLnJlbW92ZX1cbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRGVsZXRlRmVhdHVyZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0FjdGlvblBhbmVsPlxuICAgICAgPC9TdHlsZWRBY3Rpb25zTGF5ZXI+XG4gICAgKTtcbiAgfTtcblxuICBGZWF0dXJlQWN0aW9uUGFuZWwuZGlzcGxheU5hbWUgPSAnRmVhdHVyZUFjdGlvblBhbmVsJztcblxuICByZXR1cm4gRmVhdHVyZUFjdGlvblBhbmVsO1xufVxuXG5GZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5LmRlcHMgPSBQdXJlRmVhdHVyZUFjdGlvblBhbmVsRmFjdG9yeS5kZXBzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5KCk6IENvbXBvbmVudFR5cGU8RmVhdHVyZUFjdGlvblBhbmVsUHJvcHM+IHtcbiAgcmV0dXJuIFB1cmVGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5KCk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGdCQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTSxpQkFBQSxHQUFBSCxzQkFBQSxDQUFBSCxPQUFBO0FBTUEsSUFB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
169
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RJbnRsIiwiX2NvcHlUb0NsaXBib2FyZCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3QyIiwiX2NsYXNzbmFtZXMiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl91dGlscyIsIl9hY3Rpb25QYW5lbCIsIl9pY29ucyIsIl9mZWF0dXJlUHJvcGVydGllc0VkaXRvciIsIl90ZW1wbGF0ZU9iamVjdCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiTEFZT1ZFUl9PRkZTRVQiLCJTdHlsZWRBY3Rpb25zTGF5ZXIiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJ0ZXh0Q29sb3IiLCJkZWZhdWx0QWN0aW9uSWNvbnMiLCJyZW1vdmUiLCJUcmFzaCIsImxheWVyIiwiTGF5ZXJzIiwiY29weSIsIkNvcHkiLCJjb3BpZWQiLCJDaGVja21hcmsiLCJlZGl0IiwiRWRpdCIsIlB1cmVGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5IiwiZGVwcyIsIkZlYXR1cmVBY3Rpb25QYW5lbCIsIl9yZWYiLCJjbGFzc05hbWUiLCJkYXRhc2V0cyIsInNlbGVjdGVkRmVhdHVyZSIsIl9yZWYkcG9zaXRpb24iLCJwb3NpdGlvbiIsImxheWVycyIsImN1cnJlbnRGaWx0ZXIiLCJvblRvZ2dsZUxheWVyIiwib25EZWxldGVGZWF0dXJlIiwib25TZXRGZWF0dXJlUHJvcGVydGllcyIsIl9yZWYkYWN0aW9uSWNvbnMiLCJhY3Rpb25JY29ucyIsImNoaWxkcmVuIiwib25DbG9zZSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNldENvcGllZCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2hvd1Byb3BlcnRpZXMiLCJzZXRTaG93UHJvcGVydGllcyIsIl9yZWYyIiwiX3JlZjIkbGF5ZXJJZCIsImxheWVySWQiLCJpbnRsIiwidXNlSW50bCIsIl91c2VGbG9hdGluZyIsInVzZUZsb2F0aW5nIiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsInYiLCJyZWZzIiwiY29udGV4dCIsImRpc21pc3MiLCJ1c2VEaXNtaXNzIiwiX3VzZUludGVyYWN0aW9ucyIsInVzZUludGVyYWN0aW9ucyIsImdldEZsb2F0aW5nUHJvcHMiLCJjb3B5R2VvbWV0cnkiLCJ1c2VDYWxsYmFjayIsImdlb21ldHJ5IiwiSlNPTiIsInN0cmluZ2lmeSIsInVzZUVmZmVjdCIsImlkIiwiY2FuRmlsdGVyTGF5ZXJzIiwiY2FuQXBwbHlGZWF0dXJlRmlsdGVyIiwiZW5hYmxlU2tldGNoZXMiLCJnZXRBcHBsaWNhdGlvbkNvbmZpZyIsImVuYWJsZURyYXdPbk1hcFNrZXRjaGVzIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzMiIsInJlZiIsInNldEZsb2F0aW5nIiwiY2xhc3NuYW1lcyIsInN0eWxlIiwidG9wIiwiY29uY2F0IiwieSIsImxlZnQiLCJ4IiwiQWN0aW9uUGFuZWxJdGVtIiwibGFiZWwiLCJmb3JtYXRNZXNzYWdlIiwiZGVmYXVsdE1lc3NhZ2UiLCJJY29uIiwibGVuZ3RoIiwibWFwIiwiaW5kZXgiLCJrZXkiLCJjb25maWciLCJjb2xvciIsImRhdGFJZCIsImlzU2VsZWN0aW9uIiwiaXNBY3RpdmUiLCJpbmNsdWRlcyIsIm9uQ2xpY2siLCJkaXNwbGF5TmFtZSIsIkZlYXR1cmVBY3Rpb25QYW5lbEZhY3RvcnkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWRpdG9yL2ZlYXR1cmUtYWN0aW9uLXBhbmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VTdGF0ZSwgQ29tcG9uZW50VHlwZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHt1c2VJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCBjb3B5IGZyb20gJ2NvcHktdG8tY2xpcGJvYXJkJztcbmltcG9ydCB7dXNlRGlzbWlzcywgdXNlRmxvYXRpbmcsIHVzZUludGVyYWN0aW9uc30gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7TGF5ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7RmlsdGVyfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7RmVhdHVyZX0gZnJvbSAnQGRlY2suZ2wtY29tbXVuaXR5L2VkaXRhYmxlLWxheWVycyc7XG5pbXBvcnQge0RhdGFzZXRzfSBmcm9tICdAa2VwbGVyLmdsL3RhYmxlJztcbmltcG9ydCB7Y2FuQXBwbHlGZWF0dXJlRmlsdGVyLCBnZXRBcHBsaWNhdGlvbkNvbmZpZ30gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmltcG9ydCBBY3Rpb25QYW5lbCwge0FjdGlvblBhbmVsSXRlbX0gZnJvbSAnLi4vY29tbW9uL2FjdGlvbi1wYW5lbCc7XG5pbXBvcnQge1RyYXNoLCBMYXllcnMsIENvcHksIENoZWNrbWFyaywgRWRpdH0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCBGZWF0dXJlUHJvcGVydGllc0VkaXRvciBmcm9tICcuL2ZlYXR1cmUtcHJvcGVydGllcy1lZGl0b3InO1xuXG5jb25zdCBMQVlPVkVSX09GRlNFVCA9IDQ7XG5cbmNvbnN0IFN0eWxlZEFjdGlvbnNMYXllciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogNHB4O1xuICAubGF5ZXItcGFuZWwtaXRlbS1kaXNhYmxlZCB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgfVxuYDtcbmNvbnN0IGRlZmF1bHRBY3Rpb25JY29ucyA9IHtcbiAgcmVtb3ZlOiBUcmFzaCxcbiAgbGF5ZXI6IExheWVycyxcbiAgY29weTogQ29weSxcbiAgY29waWVkOiBDaGVja21hcmssXG4gIGVkaXQ6IEVkaXRcbn07XG5QdXJlRmVhdHVyZUFjdGlvblBhbmVsRmFjdG9yeS5kZXBzID0gW107XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUFjdGlvblBhbmVsUHJvcHMge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgc2VsZWN0ZWRGZWF0dXJlOiBGZWF0dXJlIHwgbnVsbDtcbiAgcG9zaXRpb246IHtcbiAgICB4OiBudW1iZXI7XG4gICAgeTogbnVtYmVyO1xuICB9IHwgbnVsbDtcbiAgbGF5ZXJzOiBMYXllcltdO1xuICBjdXJyZW50RmlsdGVyPzogRmlsdGVyO1xuICBvblRvZ2dsZUxheWVyOiAobGF5ZXI6IExheWVyKSA9PiB2b2lkO1xuICBvbkRlbGV0ZUZlYXR1cmU6ICgpID0+IHZvaWQ7XG4gIG9uU2V0RmVhdHVyZVByb3BlcnRpZXM/OiAoZmVhdHVyZTogRmVhdHVyZSwgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHZvaWQ7XG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkO1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgYWN0aW9uSWNvbnM/OiB7XG4gICAgW2lkOiBzdHJpbmddOiBSZWFjdC5FbGVtZW50VHlwZTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFB1cmVGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5KCk6IFJlYWN0LkZDPEZlYXR1cmVBY3Rpb25QYW5lbFByb3BzPiB7XG4gIGNvbnN0IEZlYXR1cmVBY3Rpb25QYW5lbCA9ICh7XG4gICAgY2xhc3NOYW1lLFxuICAgIGRhdGFzZXRzLFxuICAgIHNlbGVjdGVkRmVhdHVyZSxcbiAgICBwb3NpdGlvbiA9IG51bGwsXG4gICAgbGF5ZXJzLFxuICAgIGN1cnJlbnRGaWx0ZXIsXG4gICAgb25Ub2dnbGVMYXllcixcbiAgICBvbkRlbGV0ZUZlYXR1cmUsXG4gICAgb25TZXRGZWF0dXJlUHJvcGVydGllcyxcbiAgICBhY3Rpb25JY29ucyA9IGRlZmF1bHRBY3Rpb25JY29ucyxcbiAgICBjaGlsZHJlbixcbiAgICBvbkNsb3NlXG4gIH06IEZlYXR1cmVBY3Rpb25QYW5lbFByb3BzKSA9PiB7XG4gICAgY29uc3QgW2NvcGllZCwgc2V0Q29waWVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbc2hvd1Byb3BlcnRpZXMsIHNldFNob3dQcm9wZXJ0aWVzXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB7bGF5ZXJJZCA9IFtdfSA9IGN1cnJlbnRGaWx0ZXIgfHwge307XG4gICAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcblxuICAgIGNvbnN0IHtyZWZzLCBjb250ZXh0fSA9IHVzZUZsb2F0aW5nKHtcbiAgICAgIG9wZW46IHRydWUsXG4gICAgICBvbk9wZW5DaGFuZ2U6IHYgPT4ge1xuICAgICAgICBpZiAoIXYgJiYgb25DbG9zZSkge1xuICAgICAgICAgIG9uQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGRpc21pc3MgPSB1c2VEaXNtaXNzKGNvbnRleHQpO1xuXG4gICAgY29uc3Qge2dldEZsb2F0aW5nUHJvcHN9ID0gdXNlSW50ZXJhY3Rpb25zKFtkaXNtaXNzXSk7XG5cbiAgICBjb25zdCBjb3B5R2VvbWV0cnkgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoc2VsZWN0ZWRGZWF0dXJlPy5nZW9tZXRyeSkgY29weShKU09OLnN0cmluZ2lmeShzZWxlY3RlZEZlYXR1cmUuZ2VvbWV0cnkpKTtcbiAgICAgIHNldENvcGllZCh0cnVlKTtcbiAgICB9LCBbc2VsZWN0ZWRGZWF0dXJlPy5nZW9tZXRyeV0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIHNldFNob3dQcm9wZXJ0aWVzKGZhbHNlKTtcbiAgICB9LCBbc2VsZWN0ZWRGZWF0dXJlPy5pZF0pO1xuXG4gICAgaWYgKCFwb3NpdGlvbikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgY2FuRmlsdGVyTGF5ZXJzID0gY2FuQXBwbHlGZWF0dXJlRmlsdGVyKHNlbGVjdGVkRmVhdHVyZSBhcyBhbnkpO1xuICAgIGNvbnN0IGVuYWJsZVNrZXRjaGVzID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS5lbmFibGVEcmF3T25NYXBTa2V0Y2hlcztcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEFjdGlvbnNMYXllclxuICAgICAgICByZWY9e3JlZnMuc2V0RmxvYXRpbmd9XG4gICAgICAgIHsuLi5nZXRGbG9hdGluZ1Byb3BzKCl9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnZmVhdHVyZS1hY3Rpb24tcGFuZWwnLCBjbGFzc05hbWUpfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIHRvcDogYCR7cG9zaXRpb24ueSArIExBWU9WRVJfT0ZGU0VUfXB4YCxcbiAgICAgICAgICBsZWZ0OiBgJHtwb3NpdGlvbi54ICsgTEFZT1ZFUl9PRkZTRVR9cHhgXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxBY3Rpb25QYW5lbD5cbiAgICAgICAgICB7Y2FuRmlsdGVyTGF5ZXJzID8gKFxuICAgICAgICAgICAgPEFjdGlvblBhbmVsSXRlbVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJlZGl0b3ItbGF5ZXJzLWxpc3RcIlxuICAgICAgICAgICAgICBsYWJlbD17aW50bC5mb3JtYXRNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICBpZDogJ2VkaXRvci5maWx0ZXJMYXllcicsXG4gICAgICAgICAgICAgICAgZGVmYXVsdE1lc3NhZ2U6ICdGaWx0ZXIgbGF5ZXJzJ1xuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgSWNvbj17YWN0aW9uSWNvbnMubGF5ZXJ9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtsYXllcnMubGVuZ3RoID8gKFxuICAgICAgICAgICAgICAgIGxheWVycy5tYXAoKGxheWVyLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgPEFjdGlvblBhbmVsSXRlbVxuICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICBsYWJlbD17bGF5ZXIuY29uZmlnLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPXtkYXRhc2V0c1tsYXllci5jb25maWcuZGF0YUlkXS5jb2xvcn1cbiAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3Rpb249e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtsYXllcklkLmluY2x1ZGVzKGxheWVyLmlkKX1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGVMYXllcihsYXllcil9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImxheWVyLXBhbmVsLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxBY3Rpb25QYW5lbEl0ZW1cbiAgICAgICAgICAgICAgICAgIGtleT17J25vLWxheWVycyd9XG4gICAgICAgICAgICAgICAgICBsYWJlbD17aW50bC5mb3JtYXRNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6ICdlZGl0b3Iubm9MYXllcnNUb0ZpbHRlcicsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRNZXNzYWdlOiAnTm8gbGF5ZXJzIHRvIGZpbHRlcidcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgaXNTZWxlY3Rpb249e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgaXNBY3RpdmU9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGF5ZXItcGFuZWwtaXRlbS1kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvQWN0aW9uUGFuZWxJdGVtPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIHtlbmFibGVTa2V0Y2hlcyA/IChcbiAgICAgICAgICAgIDxBY3Rpb25QYW5lbEl0ZW1cbiAgICAgICAgICAgICAgbGFiZWw9e2ludGwuZm9ybWF0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgaWQ6ICdlZGl0b3IuZWRpdFByb3BlcnRpZXMnLFxuICAgICAgICAgICAgICAgIGRlZmF1bHRNZXNzYWdlOiAnRWRpdCBQcm9wZXJ0aWVzJ1xuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZWRpdC1wcm9wZXJ0aWVzLXBhbmVsLWl0ZW1cIlxuICAgICAgICAgICAgICBJY29uPXthY3Rpb25JY29ucy5lZGl0fVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93UHJvcGVydGllcyhvcGVuID0+ICFvcGVuKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPEFjdGlvblBhbmVsSXRlbVxuICAgICAgICAgICAgbGFiZWw9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdlZGl0b3IuY29weUdlb21ldHJ5JywgZGVmYXVsdE1lc3NhZ2U6ICdDb3B5IEdlb21ldHJ5J30pfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZGVsZXRlLXBhbmVsLWl0ZW1cIlxuICAgICAgICAgICAgSWNvbj17Y29waWVkID8gYWN0aW9uSWNvbnMuY29waWVkIDogYWN0aW9uSWNvbnMuY29weX1cbiAgICAgICAgICAgIG9uQ2xpY2s9e2NvcHlHZW9tZXRyeX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICA8QWN0aW9uUGFuZWxJdGVtXG4gICAgICAgICAgICBsYWJlbD17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ3Rvb2x0aXAuZGVsZXRlJywgZGVmYXVsdE1lc3NhZ2U6ICdEZWxldGUnfSl9XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJkZWxldGUtcGFuZWwtaXRlbVwiXG4gICAgICAgICAgICBJY29uPXthY3Rpb25JY29ucy5yZW1vdmV9XG4gICAgICAgICAgICBvbkNsaWNrPXtvbkRlbGV0ZUZlYXR1cmV9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9BY3Rpb25QYW5lbD5cbiAgICAgICAge2VuYWJsZVNrZXRjaGVzICYmIHNob3dQcm9wZXJ0aWVzID8gKFxuICAgICAgICAgIDxGZWF0dXJlUHJvcGVydGllc0VkaXRvclxuICAgICAgICAgICAgc2VsZWN0ZWRGZWF0dXJlPXtzZWxlY3RlZEZlYXR1cmV9XG4gICAgICAgICAgICBvblNldEZlYXR1cmVQcm9wZXJ0aWVzPXtvblNldEZlYXR1cmVQcm9wZXJ0aWVzfVxuICAgICAgICAgIC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TdHlsZWRBY3Rpb25zTGF5ZXI+XG4gICAgKTtcbiAgfTtcblxuICBGZWF0dXJlQWN0aW9uUGFuZWwuZGlzcGxheU5hbWUgPSAnRmVhdHVyZUFjdGlvblBhbmVsJztcblxuICByZXR1cm4gRmVhdHVyZUFjdGlvblBhbmVsO1xufVxuXG5GZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5LmRlcHMgPSBQdXJlRmVhdHVyZUFjdGlvblBhbmVsRmFjdG9yeS5kZXBzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5KCk6IENvbXBvbmVudFR5cGU8RmVhdHVyZUFjdGlvblBhbmVsUHJvcHM+IHtcbiAgcmV0dXJuIFB1cmVGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5KCk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGdCQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTSxpQkFBQSxHQUFBSCxzQkFBQSxDQUFBSCxPQUFBO0FBTUEsSUFBQU8sTUFBQSxHQUFBUCxPQUFBO0FBRUEsSUFBQVEsWUFBQSxHQUFBVCx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVMsTUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsd0JBQUEsR0FBQVAsc0JBQUEsQ0FBQUgsT0FBQTtBQUFrRSxJQUFBVyxlQUFBLEVBbEJsRTtBQUNBO0FBQUEsU0FBQVosd0JBQUFhLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFmLHVCQUFBLFlBQUFBLHdCQUFBYSxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsbUJBQUFULENBQUEsaUJBQUFBLENBQUEsZ0JBQUFVLE9BQUEsQ0FBQVYsQ0FBQSwwQkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFG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