@pie-lib/editable-html 10.0.0-beta.2 → 10.0.0-beta.3

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.
@@ -166,14 +166,9 @@ function MediaPlugin(type, opts) {
166
166
  type: type,
167
167
  opts: opts,
168
168
  callback: function callback(val, data) {
169
- var _getNodeBy = getNodeBy(editor, function (descendant) {
170
- return descendant.type === type && (0, _get["default"])(descendant, 'data.newMedia');
171
- }),
172
- _getNodeBy2 = (0, _slicedToArray2["default"])(_getNodeBy, 2),
173
- node = _getNodeBy2[0],
174
- nodePath = _getNodeBy2[1];
175
-
176
- if (node) {
169
+ var nodePath = _slateReact.ReactEditor.findPath(editor, inline);
170
+
171
+ if (inline) {
177
172
  if (!val) {
178
173
  editor.apply({
179
174
  type: 'remove_node',
@@ -184,7 +179,7 @@ function MediaPlugin(type, opts) {
184
179
  type: 'set_node',
185
180
  path: nodePath,
186
181
  properties: {
187
- data: node.data
182
+ data: inline.data
188
183
  },
189
184
  newProperties: {
190
185
  data: _objectSpread(_objectSpread({}, data), {}, {
@@ -195,7 +190,7 @@ function MediaPlugin(type, opts) {
195
190
  }
196
191
  }
197
192
 
198
- moveFocusAfterMedia(editor, node);
193
+ moveFocusAfterMedia(editor, inline);
199
194
  }
200
195
  });
201
196
  }
@@ -258,14 +253,9 @@ function MediaPlugin(type, opts) {
258
253
  type: type,
259
254
  opts: opts,
260
255
  callback: function callback(val, data) {
261
- var _getNodeBy3 = getNodeBy(editor, function (descendant) {
262
- return descendant.type === type && (0, _get["default"])(descendant, 'data.editing');
263
- }),
264
- _getNodeBy4 = (0, _slicedToArray2["default"])(_getNodeBy3, 2),
265
- nodeIsThere = _getNodeBy4[0],
266
- nodePath = _getNodeBy4[1];
267
-
268
- if (nodeIsThere && val) {
256
+ var nodePath = _slateReact.ReactEditor.findPath(editor, nodeToEdit);
257
+
258
+ if (nodePath && val) {
269
259
  editor.apply({
270
260
  type: 'set_node',
271
261
  path: nodePath,
@@ -451,4 +441,4 @@ var serialization = {
451
441
  }
452
442
  };
453
443
  exports.serialization = serialization;
454
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJkZWJ1ZyIsInJlbW92ZURpYWxvZ3MiLCJwcmV2RGlhbG9ncyIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJzIiwicmVtb3ZlIiwiaW5zZXJ0RGlhbG9nIiwicHJvcHMiLCJuZXdFbCIsImNyZWF0ZUVsZW1lbnQiLCJ0eXBlIiwiY2FsbGJhY2siLCJvcHRzIiwicmVzdCIsImluaXRpYWxCb2R5T3ZlcmZsb3ciLCJib2R5Iiwic3R5bGUiLCJvdmVyZmxvdyIsImNsYXNzTmFtZSIsImhhbmRsZUNsb3NlIiwidmFsIiwiZGF0YSIsImVsIiwidXBsb2FkU291bmRTdXBwb3J0IiwiUmVhY3RET00iLCJyZW5kZXIiLCJhcHBlbmRDaGlsZCIsImdldE5vZGVCeSIsImVkaXRvciIsImRlc2NlbmRhbnRzIiwiU2xhdGVOb2RlIiwicmV2ZXJzZSIsImRlc2NlbmRhbnQiLCJkZXNjZW5kYW50UGF0aCIsIm1vdmVGb2N1c0FmdGVyTWVkaWEiLCJub2RlIiwic2V0VGltZW91dCIsIlJlYWN0RWRpdG9yIiwiZm9jdXMiLCJUcmFuc2Zvcm1zIiwibW92ZSIsImRpc3RhbmNlIiwidW5pdCIsInR5cGVzIiwiTWVkaWFQbHVnaW4iLCJ0b29sYmFyIiwiaWNvbiIsIm9uQ2xpY2siLCJpbmxpbmUiLCJpc1ZvaWQiLCJuZXdNZWRpYSIsImVkaXRpbmciLCJlbmRzIiwidW5kZWZpbmVkIiwiaGVpZ2h0IiwidGl0bGUiLCJzdGFydHMiLCJzcmMiLCJ1cmwiLCJ3aWR0aCIsImNoaWxkcmVuIiwidGV4dCIsImluc2VydE5vZGUiLCJnZXQiLCJub2RlUGF0aCIsImFwcGx5IiwicGF0aCIsInByb3BlcnRpZXMiLCJuZXdQcm9wZXJ0aWVzIiwibmFtZSIsInJ1bGVzIiwiaXNJbmxpbmUiLCJlbGVtZW50IiwiaW5jbHVkZXMiLCJzdXBwb3J0cyIsInJlbmRlck5vZGUiLCJvbWl0IiwidGFnIiwiYXR0cmlidXRlcyIsImhhbmRsZUVkaXQiLCJldmVudCIsIm5vZGVUb0VkaXQiLCJ0b1NsYXRlTm9kZSIsInRhcmdldCIsImZpbmRQYXRoIiwiZWRpdCIsIm5vZGVJc1RoZXJlIiwiaGFuZGxlRGVsZXRlIiwic2VyaWFsaXphdGlvbiIsImRlc2VyaWFsaXplIiwiZGF0YXNldCIsInR5cGVJbmRleCIsImluZGV4T2YiLCJFbGVtZW50IiwidGFnTmFtZSIsInRvTG93ZXJDYXNlIiwiZmlyc3RDaGlsZCIsImdldEF0dHJpYnV0ZSIsInBhcnNlSW50Iiwib3V0IiwianN4Iiwic2VyaWFsaXplIiwib2JqZWN0IiwiZGl2UHJvcHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGx1Z2lucy9tZWRpYS9pbmRleC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgTm9kZSBhcyBTbGF0ZU5vZGUsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdzbGF0ZS1oeXBlcnNjcmlwdCc7XG5pbXBvcnQgeyBSZWFjdEVkaXRvciB9IGZyb20gJ3NsYXRlLXJlYWN0JztcbmltcG9ydCBUaGVhdGVyc0ljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL1RoZWF0ZXJzJztcbmltcG9ydCBWb2x1bWVVcEljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL1ZvbHVtZVVwJztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XG5pbXBvcnQgb21pdCBmcm9tICdsb2Rhc2gvb21pdCc7XG5cbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgTWVkaWFEaWFsb2cgZnJvbSAnLi9tZWRpYS1kaWFsb2cnO1xuaW1wb3J0IE1lZGlhVG9vbGJhciBmcm9tICcuL21lZGlhLXRvb2xiYXInO1xuaW1wb3J0IE1lZGlhV3JhcHBlciBmcm9tICcuL21lZGlhLXdyYXBwZXInO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygnQHBpZS1saWI6ZWRpdGFibGUtaHRtbDpwbHVnaW5zOmltYWdlJyk7XG5cbmNvbnN0IHJlbW92ZURpYWxvZ3MgPSAoKSA9PiB7XG4gIGNvbnN0IHByZXZEaWFsb2dzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmluc2VydC1tZWRpYS1kaWFsb2cnKTtcblxuICBwcmV2RGlhbG9ncy5mb3JFYWNoKHMgPT4gcy5yZW1vdmUoKSk7XG59O1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0RGlhbG9nID0gcHJvcHMgPT4ge1xuICBjb25zdCBuZXdFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBjb25zdCB7IHR5cGUsIGNhbGxiYWNrLCBvcHRzLCAuLi5yZXN0IH0gPSBwcm9wcztcbiAgY29uc3QgaW5pdGlhbEJvZHlPdmVyZmxvdyA9IGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c7XG5cbiAgcmVtb3ZlRGlhbG9ncygpO1xuXG4gIG5ld0VsLmNsYXNzTmFtZSA9ICdpbnNlcnQtbWVkaWEtZGlhbG9nJztcbiAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuXG4gIGNvbnN0IGhhbmRsZUNsb3NlID0gKHZhbCwgZGF0YSkgPT4ge1xuICAgIGNhbGxiYWNrKHZhbCwgZGF0YSk7XG4gICAgbmV3RWwucmVtb3ZlKCk7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9IGluaXRpYWxCb2R5T3ZlcmZsb3c7XG4gIH07XG5cbiAgY29uc3QgZWwgPSAoXG4gICAgPE1lZGlhRGlhbG9nXG4gICAgICB7Li4ucmVzdH1cbiAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydD17b3B0cy51cGxvYWRTb3VuZFN1cHBvcnR9XG4gICAgICB0eXBlPXt0eXBlfVxuICAgICAgZGlzYWJsZVBvcnRhbD17dHJ1ZX1cbiAgICAgIG9wZW49e3RydWV9XG4gICAgICBoYW5kbGVDbG9zZT17aGFuZGxlQ2xvc2V9XG4gICAgLz5cbiAgKTtcblxuICBSZWFjdERPTS5yZW5kZXIoZWwsIG5ld0VsKTtcblxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG5ld0VsKTtcbn07XG5cbmNvbnN0IGdldE5vZGVCeSA9IChlZGl0b3IsIGNhbGxiYWNrKSA9PiB7XG4gIGNvbnN0IGRlc2NlbmRhbnRzID0gU2xhdGVOb2RlLmRlc2NlbmRhbnRzKGVkaXRvciwge1xuICAgIHJldmVyc2U6IHRydWVcbiAgfSk7XG5cbiAgZm9yIChjb25zdCBbZGVzY2VuZGFudCwgZGVzY2VuZGFudFBhdGhdIG9mIGRlc2NlbmRhbnRzKSB7XG4gICAgaWYgKGNhbGxiYWNrKGRlc2NlbmRhbnQsIGRlc2NlbmRhbnRQYXRoKSkge1xuICAgICAgcmV0dXJuIFtkZXNjZW5kYW50LCBkZXNjZW5kYW50UGF0aF07XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBtb3ZlRm9jdXNBZnRlck1lZGlhID0gKGVkaXRvciwgbm9kZSkgPT4ge1xuICBpZiAoIWVkaXRvciB8fCAhbm9kZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIFJlYWN0RWRpdG9yLmZvY3VzKGVkaXRvcik7XG4gICAgVHJhbnNmb3Jtcy5tb3ZlKGVkaXRvciwgeyBkaXN0YW5jZTogMSwgdW5pdDogJ29mZnNldCcgfSk7XG4gIH0sIDApO1xufTtcblxuY29uc3QgdHlwZXMgPSBbJ2F1ZGlvJywgJ3ZpZGVvJ107XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1lZGlhUGx1Z2luKHR5cGUsIG9wdHMpIHtcbiAgY29uc3QgdG9vbGJhciA9IHtcbiAgICBpY29uOiB0eXBlID09PSAnYXVkaW8nID8gPFZvbHVtZVVwSWNvbiAvPiA6IDxUaGVhdGVyc0ljb24gLz4sXG4gICAgb25DbGljazogZWRpdG9yID0+IHtcbiAgICAgIGxvZygnW3Rvb2xiYXJdIG9uQ2xpY2snKTtcbiAgICAgIGNvbnN0IGlubGluZSA9IHtcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgaXNWb2lkOiB0cnVlLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgbmV3TWVkaWE6IHRydWUsXG4gICAgICAgICAgZWRpdGluZzogZmFsc2UsXG4gICAgICAgICAgZW5kczogdW5kZWZpbmVkLFxuICAgICAgICAgIGhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgICAgIHRpdGxlOiB1bmRlZmluZWQsXG4gICAgICAgICAgc3RhcnRzOiB1bmRlZmluZWQsXG4gICAgICAgICAgc3JjOiB1bmRlZmluZWQsXG4gICAgICAgICAgdXJsOiB1bmRlZmluZWQsXG4gICAgICAgICAgd2lkdGg6IHVuZGVmaW5lZFxuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogW3sgdGV4dDogJycgfV1cbiAgICAgIH07XG5cbiAgICAgIGVkaXRvci5pbnNlcnROb2RlKGlubGluZSk7XG5cbiAgICAgIGluc2VydERpYWxvZyh7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIG9wdHMsXG4gICAgICAgIGNhbGxiYWNrOiAodmFsLCBkYXRhKSA9PiB7XG4gICAgICAgICAgY29uc3QgW25vZGUsIG5vZGVQYXRoXSA9IGdldE5vZGVCeShcbiAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgIGRlc2NlbmRhbnQgPT4gZGVzY2VuZGFudC50eXBlID09PSB0eXBlICYmIGdldChkZXNjZW5kYW50LCAnZGF0YS5uZXdNZWRpYScpXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgICBpZiAoIXZhbCkge1xuICAgICAgICAgICAgICBlZGl0b3IuYXBwbHkoe1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyZW1vdmVfbm9kZScsXG4gICAgICAgICAgICAgICAgcGF0aDogbm9kZVBhdGhcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBlZGl0b3IuYXBwbHkoe1xuICAgICAgICAgICAgICAgIHR5cGU6ICdzZXRfbm9kZScsXG4gICAgICAgICAgICAgICAgcGF0aDogbm9kZVBhdGgsXG4gICAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgZGF0YTogbm9kZS5kYXRhXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBuZXdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgIG5ld01lZGlhOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbW92ZUZvY3VzQWZ0ZXJNZWRpYShlZGl0b3IsIG5vZGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiB0eXBlLFxuICAgIHRvb2xiYXIsXG4gICAgcnVsZXM6IGVkaXRvciA9PiB7XG4gICAgICBjb25zdCB7IGlzVm9pZCwgaXNJbmxpbmUgfSA9IGVkaXRvcjtcblxuICAgICAgZWRpdG9yLmlzVm9pZCA9IGVsZW1lbnQgPT4ge1xuICAgICAgICByZXR1cm4gWydhdWRpbycsICd2aWRlbyddLmluY2x1ZGVzKGVsZW1lbnQudHlwZSkgPyB0cnVlIDogaXNWb2lkKGVsZW1lbnQpO1xuICAgICAgfTtcblxuICAgICAgZWRpdG9yLmlzSW5saW5lID0gZWxlbWVudCA9PiB7XG4gICAgICAgIHJldHVybiBbJ2F1ZGlvJywgJ3ZpZGVvJ10uaW5jbHVkZXMoZWxlbWVudC50eXBlKSA/IHRydWUgOiBpc0lubGluZShlbGVtZW50KTtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBlZGl0b3I7XG4gICAgfSxcbiAgICBzdXBwb3J0czogbm9kZSA9PiBub2RlLnR5cGUgPT09IHR5cGUsXG4gICAgcmVuZGVyTm9kZShwcm9wcykge1xuICAgICAgaWYgKHByb3BzLm5vZGUudHlwZSA9PT0gdHlwZSkge1xuICAgICAgICBjb25zdCB7IG5vZGUsIGVkaXRvciB9ID0gcHJvcHM7XG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gbm9kZTtcbiAgICAgICAgY29uc3QgeyBzcmMsIGhlaWdodCwgd2lkdGgsIGVkaXRpbmcsIHRhZywgLi4ucmVzdCB9ID0gb21pdChkYXRhLCBbJ25ld01lZGlhJywgJ3VybFRvVXNlJ10pO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0geyAuLi5yZXN0LCAuLi5wcm9wcy5hdHRyaWJ1dGVzIH07XG4gICAgICAgIGNvbnN0IGhhbmRsZUVkaXQgPSBldmVudCA9PiB7XG4gICAgICAgICAgY29uc3Qgbm9kZVRvRWRpdCA9IFJlYWN0RWRpdG9yLnRvU2xhdGVOb2RlKGVkaXRvciwgZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgICBjb25zdCBub2RlUGF0aCA9IFJlYWN0RWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgbm9kZVRvRWRpdCk7XG5cbiAgICAgICAgICBlZGl0b3IuYXBwbHkoe1xuICAgICAgICAgICAgdHlwZTogJ3NldF9ub2RlJyxcbiAgICAgICAgICAgIHBhdGg6IG5vZGVQYXRoLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBkYXRhOiBub2RlLmRhdGFcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgICAgIGVkaXRpbmc6IHRydWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaW5zZXJ0RGlhbG9nKHtcbiAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICBlZGl0OiB0cnVlLFxuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIG9wdHMsXG4gICAgICAgICAgICBjYWxsYmFjazogKHZhbCwgZGF0YSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBbbm9kZUlzVGhlcmUsIG5vZGVQYXRoXSA9IGdldE5vZGVCeShcbiAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgZGVzY2VuZGFudCA9PiBkZXNjZW5kYW50LnR5cGUgPT09IHR5cGUgJiYgZ2V0KGRlc2NlbmRhbnQsICdkYXRhLmVkaXRpbmcnKVxuICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgIGlmIChub2RlSXNUaGVyZSAmJiB2YWwpIHtcbiAgICAgICAgICAgICAgICBlZGl0b3IuYXBwbHkoe1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ3NldF9ub2RlJyxcbiAgICAgICAgICAgICAgICAgIHBhdGg6IG5vZGVQYXRoLFxuICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBub2RlLmRhdGFcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBuZXdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgIGVkaXRpbmc6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGhhbmRsZURlbGV0ZSA9IGV2ZW50ID0+IHtcbiAgICAgICAgICBjb25zdCBub2RlVG9FZGl0ID0gUmVhY3RFZGl0b3IudG9TbGF0ZU5vZGUoZWRpdG9yLCBldmVudC50YXJnZXQpO1xuICAgICAgICAgIGNvbnN0IG5vZGVQYXRoID0gUmVhY3RFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBub2RlVG9FZGl0KTtcblxuICAgICAgICAgIGVkaXRvci5hcHBseSh7XG4gICAgICAgICAgICB0eXBlOiAncmVtb3ZlX25vZGUnLFxuICAgICAgICAgICAgcGF0aDogbm9kZVBhdGhcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSB7fTtcblxuICAgICAgICBpZiAod2lkdGgpIHtcbiAgICAgICAgICBzdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoZWlnaHQpIHtcbiAgICAgICAgICBzdHlsZS5oZWlnaHQgPSBgJHtoZWlnaHR9cHhgO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRhZyA9PT0gJ2F1ZGlvJykge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8TWVkaWFXcmFwcGVyIGRhdGEtdHlwZT17dHlwZX0gd2lkdGg9e3N0eWxlLndpZHRofSBhdHRyaWJ1dGVzPXthdHRyaWJ1dGVzfT5cbiAgICAgICAgICAgICAgPGF1ZGlvIGNvbnRyb2xzPVwiY29udHJvbHNcIj5cbiAgICAgICAgICAgICAgICA8c291cmNlIHR5cGU9XCJhdWRpby9tcDNcIiBzcmM9e3NyY30gLz5cbiAgICAgICAgICAgICAgPC9hdWRpbz5cbiAgICAgICAgICAgICAgPE1lZGlhVG9vbGJhciBoaWRlRWRpdCBvblJlbW92ZT17aGFuZGxlRGVsZXRlfSAvPlxuICAgICAgICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICAgICAgICA8L01lZGlhV3JhcHBlcj5cbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8TWVkaWFXcmFwcGVyIGRhdGEtdHlwZT17dHlwZX0gd2lkdGg9e3N0eWxlLndpZHRofSBhdHRyaWJ1dGVzPXthdHRyaWJ1dGVzfT5cbiAgICAgICAgICAgIDxkaXYgY29udGVudEVkaXRhYmxlPXtmYWxzZX0+XG4gICAgICAgICAgICAgIDxpZnJhbWVcbiAgICAgICAgICAgICAgICBmcmFtZUJvcmRlcj1cIjBcIlxuICAgICAgICAgICAgICAgIGFsbG93PVwiYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZVwiXG4gICAgICAgICAgICAgICAgYWxsb3dGdWxsU2NyZWVuXG4gICAgICAgICAgICAgICAgc3JjPXtzcmN9XG4gICAgICAgICAgICAgICAgZWRpdGluZz17ZWRpdGluZyA/IDEgOiAwfVxuICAgICAgICAgICAgICAgIHsuLi5yZXN0fVxuICAgICAgICAgICAgICAgIHsuLi5zdHlsZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPE1lZGlhVG9vbGJhciBvbkVkaXQ9e2hhbmRsZUVkaXR9IG9uUmVtb3ZlPXtoYW5kbGVEZWxldGV9IC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICA8L01lZGlhV3JhcHBlcj5cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgY29uc3Qgc2VyaWFsaXphdGlvbiA9IHtcbiAgZGVzZXJpYWxpemUoZWwgLyosIG5leHQqLykge1xuICAgIGxldCB0eXBlID0gZWwuZGF0YXNldCAmJiBlbC5kYXRhc2V0LnR5cGU7XG4gICAgbGV0IHRhZyA9ICdpZnJhbWUnO1xuICAgIGxldCBzcmM7XG4gICAgY29uc3QgdHlwZUluZGV4ID0gdHlwZXMuaW5kZXhPZih0eXBlKTtcblxuICAgIGlmICh0eXBlSW5kZXggPCAwKSB7XG4gICAgICBpZiAoZWwgaW5zdGFuY2VvZiBFbGVtZW50ICYmIGVsLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2F1ZGlvJykge1xuICAgICAgICB0eXBlID0gJ2F1ZGlvJztcbiAgICAgICAgdGFnID0gJ2F1ZGlvJztcbiAgICAgICAgc3JjID0gZWwuZmlyc3RDaGlsZD8uZ2V0QXR0cmlidXRlKCdzcmMnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB7IGVuZHMsIHN0YXJ0cywgdGl0bGUsIGVkaXRpbmcsIHVybCB9ID0gZWwuZGF0YXNldCB8fCB7fTtcblxuICAgIGxvZygnZGVzZXJpYWxpemU6ICcsIG5hbWUpO1xuICAgIGNvbnN0IHdpZHRoID0gcGFyc2VJbnQoZWwuZ2V0QXR0cmlidXRlKCd3aWR0aCcpLCAxMCkgfHwgbnVsbDtcbiAgICBjb25zdCBoZWlnaHQgPSBwYXJzZUludChlbC5nZXRBdHRyaWJ1dGUoJ2hlaWdodCcpLCAxMCkgfHwgbnVsbDtcblxuICAgIGNvbnN0IG91dCA9IGpzeCgnZWxlbWVudCcsIHtcbiAgICAgIHR5cGUsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHRhZyxcbiAgICAgICAgc3JjOiBzcmMgfHwgZWwuZ2V0QXR0cmlidXRlKCdzcmMnKSxcbiAgICAgICAgZWRpdGluZyxcbiAgICAgICAgZW5kcyxcbiAgICAgICAgaGVpZ2h0LFxuICAgICAgICBzdGFydHMsXG4gICAgICAgIHRpdGxlLFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgdXJsXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBsb2coJ3JldHVybiBvYmplY3Q6ICcsIG91dCk7XG4gICAgcmV0dXJuIG91dDtcbiAgfSxcbiAgc2VyaWFsaXplKG9iamVjdCkge1xuICAgIGNvbnN0IHR5cGVJbmRleCA9IHR5cGVzLmluZGV4T2Yob2JqZWN0LnR5cGUpO1xuXG4gICAgaWYgKHR5cGVJbmRleCA8IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0eXBlID0gdHlwZXNbdHlwZUluZGV4XTtcblxuICAgIGNvbnN0IHsgZWRpdGluZywgdGFnLCBlbmRzLCBzcmMsIHN0YXJ0cywgdGl0bGUsIHdpZHRoLCBoZWlnaHQsIHVybCB9ID0gb2JqZWN0LmRhdGEgfHwge307XG4gICAgY29uc3Qgc3R5bGUgPSB7fTtcblxuICAgIGlmICh3aWR0aCkge1xuICAgICAgc3R5bGUud2lkdGggPSBgJHt3aWR0aH1weGA7XG4gICAgfVxuXG4gICAgaWYgKGhlaWdodCkge1xuICAgICAgc3R5bGUuaGVpZ2h0ID0gYCR7aGVpZ2h0fXB4YDtcbiAgICB9XG5cbiAgICBjb25zdCBkaXZQcm9wcyA9IHtcbiAgICAgICdkYXRhLWVkaXRpbmcnOiBlZGl0aW5nLFxuICAgICAgJ2RhdGEtZW5kcyc6IGVuZHMsXG4gICAgICAnZGF0YS1zdGFydHMnOiBzdGFydHMsXG4gICAgICAnZGF0YS10aXRsZSc6IHRpdGxlLFxuICAgICAgJ2RhdGEtdXJsJzogdXJsXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgIC4uLnN0eWxlLFxuICAgICAgc3JjXG4gICAgfTtcblxuICAgIGlmICh0YWcgPT09ICdhdWRpbycpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxhdWRpbyBjb250cm9scz1cImNvbnRyb2xzXCI+XG4gICAgICAgICAgPHNvdXJjZSB0eXBlPVwiYXVkaW8vbXAzXCIgc3JjPXtzcmN9IC8+XG4gICAgICAgIDwvYXVkaW8+XG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8aWZyYW1lXG4gICAgICAgIGRhdGEtdHlwZT17dHlwZX1cbiAgICAgICAgc3JjPXtzcmN9XG4gICAgICAgIHsuLi5kaXZQcm9wc31cbiAgICAgICAgZnJhbWVCb3JkZXI9XCIwXCJcbiAgICAgICAgYWxsb3c9XCJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlXCJcbiAgICAgICAgYWxsb3dGdWxsU2NyZWVuXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQU1BLEdBQUcsR0FBRyxJQUFBQyxpQkFBQSxFQUFNLHNDQUFOLENBQVo7O0FBRUEsSUFBTUMsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixHQUFNO0VBQzFCLElBQU1DLFdBQVcsR0FBR0MsUUFBUSxDQUFDQyxnQkFBVCxDQUEwQixzQkFBMUIsQ0FBcEI7RUFFQUYsV0FBVyxDQUFDRyxPQUFaLENBQW9CLFVBQUFDLENBQUM7SUFBQSxPQUFJQSxDQUFDLENBQUNDLE1BQUYsRUFBSjtFQUFBLENBQXJCO0FBQ0QsQ0FKRDs7QUFNTyxJQUFNQyxZQUFZLEdBQUcsU0FBZkEsWUFBZSxDQUFBQyxLQUFLLEVBQUk7RUFDbkMsSUFBTUMsS0FBSyxHQUFHUCxRQUFRLENBQUNRLGFBQVQsQ0FBdUIsS0FBdkIsQ0FBZDtFQUNBLElBQVFDLElBQVIsR0FBMENILEtBQTFDLENBQVFHLElBQVI7RUFBQSxJQUFjQyxRQUFkLEdBQTBDSixLQUExQyxDQUFjSSxRQUFkO0VBQUEsSUFBd0JDLElBQXhCLEdBQTBDTCxLQUExQyxDQUF3QkssSUFBeEI7RUFBQSxJQUFpQ0MsSUFBakMsNkNBQTBDTixLQUExQztFQUNBLElBQU1PLG1CQUFtQixHQUFHYixRQUFRLENBQUNjLElBQVQsQ0FBY0MsS0FBZCxDQUFvQkMsUUFBaEQ7RUFFQWxCLGFBQWE7RUFFYlMsS0FBSyxDQUFDVSxTQUFOLEdBQWtCLHFCQUFsQjtFQUNBakIsUUFBUSxDQUFDYyxJQUFULENBQWNDLEtBQWQsQ0FBb0JDLFFBQXBCLEdBQStCLFFBQS9COztFQUVBLElBQU1FLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUNDLEdBQUQsRUFBTUMsSUFBTixFQUFlO0lBQ2pDVixRQUFRLENBQUNTLEdBQUQsRUFBTUMsSUFBTixDQUFSO0lBQ0FiLEtBQUssQ0FBQ0gsTUFBTjtJQUNBSixRQUFRLENBQUNjLElBQVQsQ0FBY0MsS0FBZCxDQUFvQkMsUUFBcEIsR0FBK0JILG1CQUEvQjtFQUNELENBSkQ7O0VBTUEsSUFBTVEsRUFBRSxnQkFDTixnQ0FBQyx1QkFBRCxnQ0FDTVQsSUFETjtJQUVFLGtCQUFrQixFQUFFRCxJQUFJLENBQUNXLGtCQUYzQjtJQUdFLElBQUksRUFBRWIsSUFIUjtJQUlFLGFBQWEsRUFBRSxJQUpqQjtJQUtFLElBQUksRUFBRSxJQUxSO0lBTUUsV0FBVyxFQUFFUztFQU5mLEdBREY7O0VBV0FLLG9CQUFBLENBQVNDLE1BQVQsQ0FBZ0JILEVBQWhCLEVBQW9CZCxLQUFwQjs7RUFFQVAsUUFBUSxDQUFDYyxJQUFULENBQWNXLFdBQWQsQ0FBMEJsQixLQUExQjtBQUNELENBOUJNOzs7O0FBZ0NQLElBQU1tQixTQUFTLEdBQUcsU0FBWkEsU0FBWSxDQUFDQyxNQUFELEVBQVNqQixRQUFULEVBQXNCO0VBQ3RDLElBQU1rQixXQUFXLEdBQUdDLFdBQUEsQ0FBVUQsV0FBVixDQUFzQkQsTUFBdEIsRUFBOEI7SUFDaERHLE9BQU8sRUFBRTtFQUR1QyxDQUE5QixDQUFwQjs7RUFEc0MsMkNBS0tGLFdBTEw7RUFBQTs7RUFBQTtJQUt0QyxvREFBd0Q7TUFBQTtNQUFBLElBQTVDRyxVQUE0QztNQUFBLElBQWhDQyxjQUFnQzs7TUFDdEQsSUFBSXRCLFFBQVEsQ0FBQ3FCLFVBQUQsRUFBYUMsY0FBYixDQUFaLEVBQTBDO1FBQ3hDLE9BQU8sQ0FBQ0QsVUFBRCxFQUFhQyxjQUFiLENBQVA7TUFDRDtJQUNGO0VBVHFDO0lBQUE7RUFBQTtJQUFBO0VBQUE7QUFVdkMsQ0FWRDs7QUFZQSxJQUFNQyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQXNCLENBQUNOLE1BQUQsRUFBU08sSUFBVCxFQUFrQjtFQUM1QyxJQUFJLENBQUNQLE1BQUQsSUFBVyxDQUFDTyxJQUFoQixFQUFzQjtJQUNwQjtFQUNEOztFQUVEQyxVQUFVLENBQUMsWUFBTTtJQUNmQyx1QkFBQSxDQUFZQyxLQUFaLENBQWtCVixNQUFsQjs7SUFDQVcsaUJBQUEsQ0FBV0MsSUFBWCxDQUFnQlosTUFBaEIsRUFBd0I7TUFBRWEsUUFBUSxFQUFFLENBQVo7TUFBZUMsSUFBSSxFQUFFO0lBQXJCLENBQXhCO0VBQ0QsQ0FIUyxFQUdQLENBSE8sQ0FBVjtBQUlELENBVEQ7O0FBV0EsSUFBTUMsS0FBSyxHQUFHLENBQUMsT0FBRCxFQUFVLE9BQVYsQ0FBZDs7QUFFZSxTQUFTQyxXQUFULENBQXFCbEMsSUFBckIsRUFBMkJFLElBQTNCLEVBQWlDO0VBQzlDLElBQU1pQyxPQUFPLEdBQUc7SUFDZEMsSUFBSSxFQUFFcEMsSUFBSSxLQUFLLE9BQVQsZ0JBQW1CLGdDQUFDLG9CQUFELE9BQW5CLGdCQUFzQyxnQ0FBQyxvQkFBRCxPQUQ5QjtJQUVkcUMsT0FBTyxFQUFFLGlCQUFBbkIsTUFBTSxFQUFJO01BQ2pCL0IsR0FBRyxDQUFDLG1CQUFELENBQUg7TUFDQSxJQUFNbUQsTUFBTSxHQUFHO1FBQ2J0QyxJQUFJLEVBQUVBLElBRE87UUFFYnVDLE1BQU0sRUFBRSxJQUZLO1FBR2I1QixJQUFJLEVBQUU7VUFDSjZCLFFBQVEsRUFBRSxJQUROO1VBRUpDLE9BQU8sRUFBRSxLQUZMO1VBR0pDLElBQUksRUFBRUMsU0FIRjtVQUlKQyxNQUFNLEVBQUVELFNBSko7VUFLSkUsS0FBSyxFQUFFRixTQUxIO1VBTUpHLE1BQU0sRUFBRUgsU0FOSjtVQU9KSSxHQUFHLEVBQUVKLFNBUEQ7VUFRSkssR0FBRyxFQUFFTCxTQVJEO1VBU0pNLEtBQUssRUFBRU47UUFUSCxDQUhPO1FBY2JPLFFBQVEsRUFBRSxDQUFDO1VBQUVDLElBQUksRUFBRTtRQUFSLENBQUQ7TUFkRyxDQUFmO01BaUJBakMsTUFBTSxDQUFDa0MsVUFBUCxDQUFrQmQsTUFBbEI7TUFFQTFDLFlBQVksQ0FBQztRQUNYSSxJQUFJLEVBQUpBLElBRFc7UUFFWEUsSUFBSSxFQUFKQSxJQUZXO1FBR1hELFFBQVEsRUFBRSxrQkFBQ1MsR0FBRCxFQUFNQyxJQUFOLEVBQWU7VUFDdkIsaUJBQXlCTSxTQUFTLENBQ2hDQyxNQURnQyxFQUVoQyxVQUFBSSxVQUFVO1lBQUEsT0FBSUEsVUFBVSxDQUFDdEIsSUFBWCxLQUFvQkEsSUFBcEIsSUFBNEIsSUFBQXFELGVBQUEsRUFBSS9CLFVBQUosRUFBZ0IsZUFBaEIsQ0FBaEM7VUFBQSxDQUZzQixDQUFsQztVQUFBO1VBQUEsSUFBT0csSUFBUDtVQUFBLElBQWE2QixRQUFiOztVQUtBLElBQUk3QixJQUFKLEVBQVU7WUFDUixJQUFJLENBQUNmLEdBQUwsRUFBVTtjQUNSUSxNQUFNLENBQUNxQyxLQUFQLENBQWE7Z0JBQ1h2RCxJQUFJLEVBQUUsYUFESztnQkFFWHdELElBQUksRUFBRUY7Y0FGSyxDQUFiO1lBSUQsQ0FMRCxNQUtPO2NBQ0xwQyxNQUFNLENBQUNxQyxLQUFQLENBQWE7Z0JBQ1h2RCxJQUFJLEVBQUUsVUFESztnQkFFWHdELElBQUksRUFBRUYsUUFGSztnQkFHWEcsVUFBVSxFQUFFO2tCQUNWOUMsSUFBSSxFQUFFYyxJQUFJLENBQUNkO2dCQURELENBSEQ7Z0JBTVgrQyxhQUFhLEVBQUU7a0JBQ2IvQyxJQUFJLGtDQUNDQSxJQUREO29CQUVGNkIsUUFBUSxFQUFFO2tCQUZSO2dCQURTO2NBTkosQ0FBYjtZQWFEO1VBQ0Y7O1VBRURoQixtQkFBbUIsQ0FBQ04sTUFBRCxFQUFTTyxJQUFULENBQW5CO1FBQ0Q7TUFqQ1UsQ0FBRCxDQUFaO0lBbUNEO0VBMURhLENBQWhCO0VBNkRBLE9BQU87SUFDTGtDLElBQUksRUFBRTNELElBREQ7SUFFTG1DLE9BQU8sRUFBUEEsT0FGSztJQUdMeUIsS0FBSyxFQUFFLGVBQUExQyxNQUFNLEVBQUk7TUFDZixJQUFRcUIsTUFBUixHQUE2QnJCLE1BQTdCLENBQVFxQixNQUFSO01BQUEsSUFBZ0JzQixRQUFoQixHQUE2QjNDLE1BQTdCLENBQWdCMkMsUUFBaEI7O01BRUEzQyxNQUFNLENBQUNxQixNQUFQLEdBQWdCLFVBQUF1QixPQUFPLEVBQUk7UUFDekIsT0FBTyxDQUFDLE9BQUQsRUFBVSxPQUFWLEVBQW1CQyxRQUFuQixDQUE0QkQsT0FBTyxDQUFDOUQsSUFBcEMsSUFBNEMsSUFBNUMsR0FBbUR1QyxNQUFNLENBQUN1QixPQUFELENBQWhFO01BQ0QsQ0FGRDs7TUFJQTVDLE1BQU0sQ0FBQzJDLFFBQVAsR0FBa0IsVUFBQUMsT0FBTyxFQUFJO1FBQzNCLE9BQU8sQ0FBQyxPQUFELEVBQVUsT0FBVixFQUFtQkMsUUFBbkIsQ0FBNEJELE9BQU8sQ0FBQzlELElBQXBDLElBQTRDLElBQTVDLEdBQW1ENkQsUUFBUSxDQUFDQyxPQUFELENBQWxFO01BQ0QsQ0FGRDs7TUFJQSxPQUFPNUMsTUFBUDtJQUNELENBZkk7SUFnQkw4QyxRQUFRLEVBQUUsa0JBQUF2QyxJQUFJO01BQUEsT0FBSUEsSUFBSSxDQUFDekIsSUFBTCxLQUFjQSxJQUFsQjtJQUFBLENBaEJUO0lBaUJMaUUsVUFqQkssc0JBaUJNcEUsS0FqQk4sRUFpQmE7TUFDaEIsSUFBSUEsS0FBSyxDQUFDNEIsSUFBTixDQUFXekIsSUFBWCxLQUFvQkEsSUFBeEIsRUFBOEI7UUFDNUIsSUFBUXlCLElBQVIsR0FBeUI1QixLQUF6QixDQUFRNEIsSUFBUjtRQUFBLElBQWNQLE1BQWQsR0FBeUJyQixLQUF6QixDQUFjcUIsTUFBZDtRQUNBLElBQVFQLElBQVIsR0FBaUJjLElBQWpCLENBQVFkLElBQVI7O1FBQ0EsWUFBc0QsSUFBQXVELGlCQUFBLEVBQUt2RCxJQUFMLEVBQVcsQ0FBQyxVQUFELEVBQWEsVUFBYixDQUFYLENBQXREO1FBQUEsSUFBUW9DLEdBQVIsU0FBUUEsR0FBUjtRQUFBLElBQWFILE1BQWIsU0FBYUEsTUFBYjtRQUFBLElBQXFCSyxLQUFyQixTQUFxQkEsS0FBckI7UUFBQSxJQUE0QlIsT0FBNUIsU0FBNEJBLE9BQTVCO1FBQUEsSUFBcUMwQixHQUFyQyxTQUFxQ0EsR0FBckM7UUFBQSxJQUE2Q2hFLElBQTdDOztRQUNBLElBQU1pRSxVQUFVLG1DQUFRakUsSUFBUixHQUFpQk4sS0FBSyxDQUFDdUUsVUFBdkIsQ0FBaEI7O1FBQ0EsSUFBTUMsVUFBVSxHQUFHLFNBQWJBLFVBQWEsQ0FBQUMsS0FBSyxFQUFJO1VBQzFCLElBQU1DLFVBQVUsR0FBRzVDLHVCQUFBLENBQVk2QyxXQUFaLENBQXdCdEQsTUFBeEIsRUFBZ0NvRCxLQUFLLENBQUNHLE1BQXRDLENBQW5COztVQUNBLElBQU1uQixRQUFRLEdBQUczQix1QkFBQSxDQUFZK0MsUUFBWixDQUFxQnhELE1BQXJCLEVBQTZCcUQsVUFBN0IsQ0FBakI7O1VBRUFyRCxNQUFNLENBQUNxQyxLQUFQLENBQWE7WUFDWHZELElBQUksRUFBRSxVQURLO1lBRVh3RCxJQUFJLEVBQUVGLFFBRks7WUFHWEcsVUFBVSxFQUFFO2NBQ1Y5QyxJQUFJLEVBQUVjLElBQUksQ0FBQ2Q7WUFERCxDQUhEO1lBTVgrQyxhQUFhLEVBQUU7Y0FDYi9DLElBQUksa0NBQ0NBLElBREQ7Z0JBRUY4QixPQUFPLEVBQUU7Y0FGUDtZQURTO1VBTkosQ0FBYjtVQWNBN0MsWUFBWSxpQ0FDUGUsSUFETztZQUVWZ0UsSUFBSSxFQUFFLElBRkk7WUFHVjNFLElBQUksRUFBSkEsSUFIVTtZQUlWRSxJQUFJLEVBQUpBLElBSlU7WUFLVkQsUUFBUSxFQUFFLGtCQUFDUyxHQUFELEVBQU1DLElBQU4sRUFBZTtjQUN2QixrQkFBZ0NNLFNBQVMsQ0FDdkNDLE1BRHVDLEVBRXZDLFVBQUFJLFVBQVU7Z0JBQUEsT0FBSUEsVUFBVSxDQUFDdEIsSUFBWCxLQUFvQkEsSUFBcEIsSUFBNEIsSUFBQXFELGVBQUEsRUFBSS9CLFVBQUosRUFBZ0IsY0FBaEIsQ0FBaEM7Y0FBQSxDQUY2QixDQUF6QztjQUFBO2NBQUEsSUFBT3NELFdBQVA7Y0FBQSxJQUFvQnRCLFFBQXBCOztjQUtBLElBQUlzQixXQUFXLElBQUlsRSxHQUFuQixFQUF3QjtnQkFDdEJRLE1BQU0sQ0FBQ3FDLEtBQVAsQ0FBYTtrQkFDWHZELElBQUksRUFBRSxVQURLO2tCQUVYd0QsSUFBSSxFQUFFRixRQUZLO2tCQUdYRyxVQUFVLEVBQUU7b0JBQ1Y5QyxJQUFJLEVBQUVjLElBQUksQ0FBQ2Q7a0JBREQsQ0FIRDtrQkFNWCtDLGFBQWEsRUFBRTtvQkFDYi9DLElBQUksa0NBQ0NBLElBREQ7c0JBRUY4QixPQUFPLEVBQUU7b0JBRlA7a0JBRFM7Z0JBTkosQ0FBYjtjQWFEO1lBQ0Y7VUExQlMsR0FBWjtRQTRCRCxDQTlDRDs7UUErQ0EsSUFBTW9DLFlBQVksR0FBRyxTQUFmQSxZQUFlLENBQUFQLEtBQUssRUFBSTtVQUM1QixJQUFNQyxVQUFVLEdBQUc1Qyx1QkFBQSxDQUFZNkMsV0FBWixDQUF3QnRELE1BQXhCLEVBQWdDb0QsS0FBSyxDQUFDRyxNQUF0QyxDQUFuQjs7VUFDQSxJQUFNbkIsUUFBUSxHQUFHM0IsdUJBQUEsQ0FBWStDLFFBQVosQ0FBcUJ4RCxNQUFyQixFQUE2QnFELFVBQTdCLENBQWpCOztVQUVBckQsTUFBTSxDQUFDcUMsS0FBUCxDQUFhO1lBQ1h2RCxJQUFJLEVBQUUsYUFESztZQUVYd0QsSUFBSSxFQUFFRjtVQUZLLENBQWI7UUFJRCxDQVJEOztRQVNBLElBQU1oRCxLQUFLLEdBQUcsRUFBZDs7UUFFQSxJQUFJMkMsS0FBSixFQUFXO1VBQ1QzQyxLQUFLLENBQUMyQyxLQUFOLGFBQWlCQSxLQUFqQjtRQUNEOztRQUVELElBQUlMLE1BQUosRUFBWTtVQUNWdEMsS0FBSyxDQUFDc0MsTUFBTixhQUFrQkEsTUFBbEI7UUFDRDs7UUFFRCxJQUFJdUIsR0FBRyxLQUFLLE9BQVosRUFBcUI7VUFDbkIsb0JBQ0UsZ0NBQUMsd0JBQUQ7WUFBYyxhQUFXbkUsSUFBekI7WUFBK0IsS0FBSyxFQUFFTSxLQUFLLENBQUMyQyxLQUE1QztZQUFtRCxVQUFVLEVBQUVtQjtVQUEvRCxnQkFDRTtZQUFPLFFBQVEsRUFBQztVQUFoQixnQkFDRTtZQUFRLElBQUksRUFBQyxXQUFiO1lBQXlCLEdBQUcsRUFBRXJCO1VBQTlCLEVBREYsQ0FERixlQUlFLGdDQUFDLHdCQUFEO1lBQWMsUUFBUSxNQUF0QjtZQUF1QixRQUFRLEVBQUU4QjtVQUFqQyxFQUpGLEVBS0doRixLQUFLLENBQUNxRCxRQUxULENBREY7UUFTRDs7UUFFRCxvQkFDRSxnQ0FBQyx3QkFBRDtVQUFjLGFBQVdsRCxJQUF6QjtVQUErQixLQUFLLEVBQUVNLEtBQUssQ0FBQzJDLEtBQTVDO1VBQW1ELFVBQVUsRUFBRW1CO1FBQS9ELGdCQUNFO1VBQUssZUFBZSxFQUFFO1FBQXRCLGdCQUNFO1VBQ0UsV0FBVyxFQUFDLEdBRGQ7VUFFRSxLQUFLLEVBQUMsMEZBRlI7VUFHRSxlQUFlLE1BSGpCO1VBSUUsR0FBRyxFQUFFckIsR0FKUDtVQUtFLE9BQU8sRUFBRU4sT0FBTyxHQUFHLENBQUgsR0FBTztRQUx6QixHQU1NdEMsSUFOTixFQU9NRyxLQVBOLEVBREYsZUFVRSxnQ0FBQyx3QkFBRDtVQUFjLE1BQU0sRUFBRStELFVBQXRCO1VBQWtDLFFBQVEsRUFBRVE7UUFBNUMsRUFWRixDQURGLEVBYUdoRixLQUFLLENBQUNxRCxRQWJULENBREY7TUFpQkQ7SUFDRjtFQXZISSxDQUFQO0FBeUhEOztBQUVNLElBQU00QixhQUFhLEdBQUc7RUFDM0JDLFdBRDJCLHVCQUNmbkU7RUFBRztFQURZLEVBQ0E7SUFDekIsSUFBSVosSUFBSSxHQUFHWSxFQUFFLENBQUNvRSxPQUFILElBQWNwRSxFQUFFLENBQUNvRSxPQUFILENBQVdoRixJQUFwQztJQUNBLElBQUltRSxHQUFHLEdBQUcsUUFBVjtJQUNBLElBQUlwQixHQUFKO0lBQ0EsSUFBTWtDLFNBQVMsR0FBR2hELEtBQUssQ0FBQ2lELE9BQU4sQ0FBY2xGLElBQWQsQ0FBbEI7O0lBRUEsSUFBSWlGLFNBQVMsR0FBRyxDQUFoQixFQUFtQjtNQUNqQixJQUFJckUsRUFBRSxZQUFZdUUsT0FBZCxJQUF5QnZFLEVBQUUsQ0FBQ3dFLE9BQUgsQ0FBV0MsV0FBWCxPQUE2QixPQUExRCxFQUFtRTtRQUFBOztRQUNqRXJGLElBQUksR0FBRyxPQUFQO1FBQ0FtRSxHQUFHLEdBQUcsT0FBTjtRQUNBcEIsR0FBRyxxQkFBR25DLEVBQUUsQ0FBQzBFLFVBQU4sbURBQUcsZUFBZUMsWUFBZixDQUE0QixLQUE1QixDQUFOO01BQ0QsQ0FKRCxNQUlPO1FBQ0w7TUFDRDtJQUNGOztJQUVELFdBQThDM0UsRUFBRSxDQUFDb0UsT0FBSCxJQUFjLEVBQTVEO0lBQUEsSUFBUXRDLElBQVIsUUFBUUEsSUFBUjtJQUFBLElBQWNJLE1BQWQsUUFBY0EsTUFBZDtJQUFBLElBQXNCRCxLQUF0QixRQUFzQkEsS0FBdEI7SUFBQSxJQUE2QkosT0FBN0IsUUFBNkJBLE9BQTdCO0lBQUEsSUFBc0NPLEdBQXRDLFFBQXNDQSxHQUF0Qzs7SUFFQTdELEdBQUcsQ0FBQyxlQUFELEVBQWtCd0UsSUFBbEIsQ0FBSDtJQUNBLElBQU1WLEtBQUssR0FBR3VDLFFBQVEsQ0FBQzVFLEVBQUUsQ0FBQzJFLFlBQUgsQ0FBZ0IsT0FBaEIsQ0FBRCxFQUEyQixFQUEzQixDQUFSLElBQTBDLElBQXhEO0lBQ0EsSUFBTTNDLE1BQU0sR0FBRzRDLFFBQVEsQ0FBQzVFLEVBQUUsQ0FBQzJFLFlBQUgsQ0FBZ0IsUUFBaEIsQ0FBRCxFQUE0QixFQUE1QixDQUFSLElBQTJDLElBQTFEO0lBRUEsSUFBTUUsR0FBRyxHQUFHLElBQUFDLHFCQUFBLEVBQUksU0FBSixFQUFlO01BQ3pCMUYsSUFBSSxFQUFKQSxJQUR5QjtNQUV6QlcsSUFBSSxFQUFFO1FBQ0p3RCxHQUFHLEVBQUhBLEdBREk7UUFFSnBCLEdBQUcsRUFBRUEsR0FBRyxJQUFJbkMsRUFBRSxDQUFDMkUsWUFBSCxDQUFnQixLQUFoQixDQUZSO1FBR0o5QyxPQUFPLEVBQVBBLE9BSEk7UUFJSkMsSUFBSSxFQUFKQSxJQUpJO1FBS0pFLE1BQU0sRUFBTkEsTUFMSTtRQU1KRSxNQUFNLEVBQU5BLE1BTkk7UUFPSkQsS0FBSyxFQUFMQSxLQVBJO1FBUUpJLEtBQUssRUFBTEEsS0FSSTtRQVNKRCxHQUFHLEVBQUhBO01BVEk7SUFGbUIsQ0FBZixDQUFaO0lBZUE3RCxHQUFHLENBQUMsaUJBQUQsRUFBb0JzRyxHQUFwQixDQUFIO0lBQ0EsT0FBT0EsR0FBUDtFQUNELENBeEMwQjtFQXlDM0JFLFNBekMyQixxQkF5Q2pCQyxNQXpDaUIsRUF5Q1Q7SUFDaEIsSUFBTVgsU0FBUyxHQUFHaEQsS0FBSyxDQUFDaUQsT0FBTixDQUFjVSxNQUFNLENBQUM1RixJQUFyQixDQUFsQjs7SUFFQSxJQUFJaUYsU0FBUyxHQUFHLENBQWhCLEVBQW1CO01BQ2pCO0lBQ0Q7O0lBRUQsSUFBTWpGLElBQUksR0FBR2lDLEtBQUssQ0FBQ2dELFNBQUQsQ0FBbEI7O0lBRUEsWUFBdUVXLE1BQU0sQ0FBQ2pGLElBQVAsSUFBZSxFQUF0RjtJQUFBLElBQVE4QixPQUFSLFNBQVFBLE9BQVI7SUFBQSxJQUFpQjBCLEdBQWpCLFNBQWlCQSxHQUFqQjtJQUFBLElBQXNCekIsSUFBdEIsU0FBc0JBLElBQXRCO0lBQUEsSUFBNEJLLEdBQTVCLFNBQTRCQSxHQUE1QjtJQUFBLElBQWlDRCxNQUFqQyxTQUFpQ0EsTUFBakM7SUFBQSxJQUF5Q0QsS0FBekMsU0FBeUNBLEtBQXpDO0lBQUEsSUFBZ0RJLEtBQWhELFNBQWdEQSxLQUFoRDtJQUFBLElBQXVETCxNQUF2RCxTQUF1REEsTUFBdkQ7SUFBQSxJQUErREksR0FBL0QsU0FBK0RBLEdBQS9EOztJQUNBLElBQU0xQyxLQUFLLEdBQUcsRUFBZDs7SUFFQSxJQUFJMkMsS0FBSixFQUFXO01BQ1QzQyxLQUFLLENBQUMyQyxLQUFOLGFBQWlCQSxLQUFqQjtJQUNEOztJQUVELElBQUlMLE1BQUosRUFBWTtNQUNWdEMsS0FBSyxDQUFDc0MsTUFBTixhQUFrQkEsTUFBbEI7SUFDRDs7SUFFRCxJQUFNaUQsUUFBUSxHQUFHO01BQ2YsZ0JBQWdCcEQsT0FERDtNQUVmLGFBQWFDLElBRkU7TUFHZixlQUFlSSxNQUhBO01BSWYsY0FBY0QsS0FKQztNQUtmLFlBQVlHO0lBTEcsQ0FBakI7O0lBT0EsSUFBTW5ELEtBQUssbUNBQ05TLEtBRE07TUFFVHlDLEdBQUcsRUFBSEE7SUFGUyxFQUFYOztJQUtBLElBQUlvQixHQUFHLEtBQUssT0FBWixFQUFxQjtNQUNuQixvQkFDRTtRQUFPLFFBQVEsRUFBQztNQUFoQixnQkFDRTtRQUFRLElBQUksRUFBQyxXQUFiO1FBQXlCLEdBQUcsRUFBRXBCO01BQTlCLEVBREYsQ0FERjtJQUtEOztJQUVELG9CQUNFO01BQ0UsYUFBVy9DLElBRGI7TUFFRSxHQUFHLEVBQUUrQztJQUZQLEdBR004QyxRQUhOO01BSUUsV0FBVyxFQUFDLEdBSmQ7TUFLRSxLQUFLLEVBQUMsMEZBTFI7TUFNRSxlQUFlO0lBTmpCLEdBT01oRyxLQVBOLEVBREY7RUFXRDtBQTVGMEIsQ0FBdEIifQ==
444
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJkZWJ1ZyIsInJlbW92ZURpYWxvZ3MiLCJwcmV2RGlhbG9ncyIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJzIiwicmVtb3ZlIiwiaW5zZXJ0RGlhbG9nIiwicHJvcHMiLCJuZXdFbCIsImNyZWF0ZUVsZW1lbnQiLCJ0eXBlIiwiY2FsbGJhY2siLCJvcHRzIiwicmVzdCIsImluaXRpYWxCb2R5T3ZlcmZsb3ciLCJib2R5Iiwic3R5bGUiLCJvdmVyZmxvdyIsImNsYXNzTmFtZSIsImhhbmRsZUNsb3NlIiwidmFsIiwiZGF0YSIsImVsIiwidXBsb2FkU291bmRTdXBwb3J0IiwiUmVhY3RET00iLCJyZW5kZXIiLCJhcHBlbmRDaGlsZCIsImdldE5vZGVCeSIsImVkaXRvciIsImRlc2NlbmRhbnRzIiwiU2xhdGVOb2RlIiwicmV2ZXJzZSIsImRlc2NlbmRhbnQiLCJkZXNjZW5kYW50UGF0aCIsIm1vdmVGb2N1c0FmdGVyTWVkaWEiLCJub2RlIiwic2V0VGltZW91dCIsIlJlYWN0RWRpdG9yIiwiZm9jdXMiLCJUcmFuc2Zvcm1zIiwibW92ZSIsImRpc3RhbmNlIiwidW5pdCIsInR5cGVzIiwiTWVkaWFQbHVnaW4iLCJ0b29sYmFyIiwiaWNvbiIsIm9uQ2xpY2siLCJpbmxpbmUiLCJpc1ZvaWQiLCJuZXdNZWRpYSIsImVkaXRpbmciLCJlbmRzIiwidW5kZWZpbmVkIiwiaGVpZ2h0IiwidGl0bGUiLCJzdGFydHMiLCJzcmMiLCJ1cmwiLCJ3aWR0aCIsImNoaWxkcmVuIiwidGV4dCIsImluc2VydE5vZGUiLCJub2RlUGF0aCIsImZpbmRQYXRoIiwiYXBwbHkiLCJwYXRoIiwicHJvcGVydGllcyIsIm5ld1Byb3BlcnRpZXMiLCJuYW1lIiwicnVsZXMiLCJpc0lubGluZSIsImVsZW1lbnQiLCJpbmNsdWRlcyIsInN1cHBvcnRzIiwicmVuZGVyTm9kZSIsIm9taXQiLCJ0YWciLCJhdHRyaWJ1dGVzIiwiaGFuZGxlRWRpdCIsImV2ZW50Iiwibm9kZVRvRWRpdCIsInRvU2xhdGVOb2RlIiwidGFyZ2V0IiwiZWRpdCIsImhhbmRsZURlbGV0ZSIsInNlcmlhbGl6YXRpb24iLCJkZXNlcmlhbGl6ZSIsImRhdGFzZXQiLCJ0eXBlSW5kZXgiLCJpbmRleE9mIiwiRWxlbWVudCIsInRhZ05hbWUiLCJ0b0xvd2VyQ2FzZSIsImZpcnN0Q2hpbGQiLCJnZXRBdHRyaWJ1dGUiLCJwYXJzZUludCIsIm91dCIsImpzeCIsInNlcmlhbGl6ZSIsIm9iamVjdCIsImRpdlByb3BzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BsdWdpbnMvbWVkaWEvaW5kZXguanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IE5vZGUgYXMgU2xhdGVOb2RlLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnc2xhdGUtaHlwZXJzY3JpcHQnO1xuaW1wb3J0IHsgUmVhY3RFZGl0b3IgfSBmcm9tICdzbGF0ZS1yZWFjdCc7XG5pbXBvcnQgVGhlYXRlcnNJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9UaGVhdGVycyc7XG5pbXBvcnQgVm9sdW1lVXBJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Wb2x1bWVVcCc7XG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC9nZXQnO1xuaW1wb3J0IG9taXQgZnJvbSAnbG9kYXNoL29taXQnO1xuXG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IE1lZGlhRGlhbG9nIGZyb20gJy4vbWVkaWEtZGlhbG9nJztcbmltcG9ydCBNZWRpYVRvb2xiYXIgZnJvbSAnLi9tZWRpYS10b29sYmFyJztcbmltcG9ydCBNZWRpYVdyYXBwZXIgZnJvbSAnLi9tZWRpYS13cmFwcGVyJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOmVkaXRhYmxlLWh0bWw6cGx1Z2luczppbWFnZScpO1xuXG5jb25zdCByZW1vdmVEaWFsb2dzID0gKCkgPT4ge1xuICBjb25zdCBwcmV2RGlhbG9ncyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5pbnNlcnQtbWVkaWEtZGlhbG9nJyk7XG5cbiAgcHJldkRpYWxvZ3MuZm9yRWFjaChzID0+IHMucmVtb3ZlKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGluc2VydERpYWxvZyA9IHByb3BzID0+IHtcbiAgY29uc3QgbmV3RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgY29uc3QgeyB0eXBlLCBjYWxsYmFjaywgb3B0cywgLi4ucmVzdCB9ID0gcHJvcHM7XG4gIGNvbnN0IGluaXRpYWxCb2R5T3ZlcmZsb3cgPSBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93O1xuXG4gIHJlbW92ZURpYWxvZ3MoKTtcblxuICBuZXdFbC5jbGFzc05hbWUgPSAnaW5zZXJ0LW1lZGlhLWRpYWxvZyc7XG4gIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcblxuICBjb25zdCBoYW5kbGVDbG9zZSA9ICh2YWwsIGRhdGEpID0+IHtcbiAgICBjYWxsYmFjayh2YWwsIGRhdGEpO1xuICAgIG5ld0VsLnJlbW92ZSgpO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSBpbml0aWFsQm9keU92ZXJmbG93O1xuICB9O1xuXG4gIGNvbnN0IGVsID0gKFxuICAgIDxNZWRpYURpYWxvZ1xuICAgICAgey4uLnJlc3R9XG4gICAgICB1cGxvYWRTb3VuZFN1cHBvcnQ9e29wdHMudXBsb2FkU291bmRTdXBwb3J0fVxuICAgICAgdHlwZT17dHlwZX1cbiAgICAgIGRpc2FibGVQb3J0YWw9e3RydWV9XG4gICAgICBvcGVuPXt0cnVlfVxuICAgICAgaGFuZGxlQ2xvc2U9e2hhbmRsZUNsb3NlfVxuICAgIC8+XG4gICk7XG5cbiAgUmVhY3RET00ucmVuZGVyKGVsLCBuZXdFbCk7XG5cbiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuZXdFbCk7XG59O1xuXG5jb25zdCBnZXROb2RlQnkgPSAoZWRpdG9yLCBjYWxsYmFjaykgPT4ge1xuICBjb25zdCBkZXNjZW5kYW50cyA9IFNsYXRlTm9kZS5kZXNjZW5kYW50cyhlZGl0b3IsIHtcbiAgICByZXZlcnNlOiB0cnVlXG4gIH0pO1xuXG4gIGZvciAoY29uc3QgW2Rlc2NlbmRhbnQsIGRlc2NlbmRhbnRQYXRoXSBvZiBkZXNjZW5kYW50cykge1xuICAgIGlmIChjYWxsYmFjayhkZXNjZW5kYW50LCBkZXNjZW5kYW50UGF0aCkpIHtcbiAgICAgIHJldHVybiBbZGVzY2VuZGFudCwgZGVzY2VuZGFudFBhdGhdO1xuICAgIH1cbiAgfVxufTtcblxuY29uc3QgbW92ZUZvY3VzQWZ0ZXJNZWRpYSA9IChlZGl0b3IsIG5vZGUpID0+IHtcbiAgaWYgKCFlZGl0b3IgfHwgIW5vZGUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICBSZWFjdEVkaXRvci5mb2N1cyhlZGl0b3IpO1xuICAgIFRyYW5zZm9ybXMubW92ZShlZGl0b3IsIHsgZGlzdGFuY2U6IDEsIHVuaXQ6ICdvZmZzZXQnIH0pO1xuICB9LCAwKTtcbn07XG5cbmNvbnN0IHR5cGVzID0gWydhdWRpbycsICd2aWRlbyddO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNZWRpYVBsdWdpbih0eXBlLCBvcHRzKSB7XG4gIGNvbnN0IHRvb2xiYXIgPSB7XG4gICAgaWNvbjogdHlwZSA9PT0gJ2F1ZGlvJyA/IDxWb2x1bWVVcEljb24gLz4gOiA8VGhlYXRlcnNJY29uIC8+LFxuICAgIG9uQ2xpY2s6IGVkaXRvciA9PiB7XG4gICAgICBsb2coJ1t0b29sYmFyXSBvbkNsaWNrJyk7XG4gICAgICBjb25zdCBpbmxpbmUgPSB7XG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIGlzVm9pZDogdHJ1ZSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIG5ld01lZGlhOiB0cnVlLFxuICAgICAgICAgIGVkaXRpbmc6IGZhbHNlLFxuICAgICAgICAgIGVuZHM6IHVuZGVmaW5lZCxcbiAgICAgICAgICBoZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICB0aXRsZTogdW5kZWZpbmVkLFxuICAgICAgICAgIHN0YXJ0czogdW5kZWZpbmVkLFxuICAgICAgICAgIHNyYzogdW5kZWZpbmVkLFxuICAgICAgICAgIHVybDogdW5kZWZpbmVkLFxuICAgICAgICAgIHdpZHRoOiB1bmRlZmluZWRcbiAgICAgICAgfSxcbiAgICAgICAgY2hpbGRyZW46IFt7IHRleHQ6ICcnIH1dXG4gICAgICB9O1xuXG4gICAgICBlZGl0b3IuaW5zZXJ0Tm9kZShpbmxpbmUpO1xuXG4gICAgICBpbnNlcnREaWFsb2coe1xuICAgICAgICB0eXBlLFxuICAgICAgICBvcHRzLFxuICAgICAgICBjYWxsYmFjazogKHZhbCwgZGF0YSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5vZGVQYXRoID0gUmVhY3RFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBpbmxpbmUpO1xuXG4gICAgICAgICAgaWYgKGlubGluZSkge1xuICAgICAgICAgICAgaWYgKCF2YWwpIHtcbiAgICAgICAgICAgICAgZWRpdG9yLmFwcGx5KHtcbiAgICAgICAgICAgICAgICB0eXBlOiAncmVtb3ZlX25vZGUnLFxuICAgICAgICAgICAgICAgIHBhdGg6IG5vZGVQYXRoXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZWRpdG9yLmFwcGx5KHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2V0X25vZGUnLFxuICAgICAgICAgICAgICAgIHBhdGg6IG5vZGVQYXRoLFxuICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgIGRhdGE6IGlubGluZS5kYXRhXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBuZXdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgIG5ld01lZGlhOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbW92ZUZvY3VzQWZ0ZXJNZWRpYShlZGl0b3IsIGlubGluZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6IHR5cGUsXG4gICAgdG9vbGJhcixcbiAgICBydWxlczogZWRpdG9yID0+IHtcbiAgICAgIGNvbnN0IHsgaXNWb2lkLCBpc0lubGluZSB9ID0gZWRpdG9yO1xuXG4gICAgICBlZGl0b3IuaXNWb2lkID0gZWxlbWVudCA9PiB7XG4gICAgICAgIHJldHVybiBbJ2F1ZGlvJywgJ3ZpZGVvJ10uaW5jbHVkZXMoZWxlbWVudC50eXBlKSA/IHRydWUgOiBpc1ZvaWQoZWxlbWVudCk7XG4gICAgICB9O1xuXG4gICAgICBlZGl0b3IuaXNJbmxpbmUgPSBlbGVtZW50ID0+IHtcbiAgICAgICAgcmV0dXJuIFsnYXVkaW8nLCAndmlkZW8nXS5pbmNsdWRlcyhlbGVtZW50LnR5cGUpID8gdHJ1ZSA6IGlzSW5saW5lKGVsZW1lbnQpO1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGVkaXRvcjtcbiAgICB9LFxuICAgIHN1cHBvcnRzOiBub2RlID0+IG5vZGUudHlwZSA9PT0gdHlwZSxcbiAgICByZW5kZXJOb2RlKHByb3BzKSB7XG4gICAgICBpZiAocHJvcHMubm9kZS50eXBlID09PSB0eXBlKSB7XG4gICAgICAgIGNvbnN0IHsgbm9kZSwgZWRpdG9yIH0gPSBwcm9wcztcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBub2RlO1xuICAgICAgICBjb25zdCB7IHNyYywgaGVpZ2h0LCB3aWR0aCwgZWRpdGluZywgdGFnLCAuLi5yZXN0IH0gPSBvbWl0KGRhdGEsIFsnbmV3TWVkaWEnLCAndXJsVG9Vc2UnXSk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB7IC4uLnJlc3QsIC4uLnByb3BzLmF0dHJpYnV0ZXMgfTtcbiAgICAgICAgY29uc3QgaGFuZGxlRWRpdCA9IGV2ZW50ID0+IHtcbiAgICAgICAgICBjb25zdCBub2RlVG9FZGl0ID0gUmVhY3RFZGl0b3IudG9TbGF0ZU5vZGUoZWRpdG9yLCBldmVudC50YXJnZXQpO1xuICAgICAgICAgIGNvbnN0IG5vZGVQYXRoID0gUmVhY3RFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBub2RlVG9FZGl0KTtcblxuICAgICAgICAgIGVkaXRvci5hcHBseSh7XG4gICAgICAgICAgICB0eXBlOiAnc2V0X25vZGUnLFxuICAgICAgICAgICAgcGF0aDogbm9kZVBhdGgsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIGRhdGE6IG5vZGUuZGF0YVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5ld1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAgICAgZWRpdGluZzogdHJ1ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpbnNlcnREaWFsb2coe1xuICAgICAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgICAgIGVkaXQ6IHRydWUsXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgb3B0cyxcbiAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsLCBkYXRhKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG5vZGVQYXRoID0gUmVhY3RFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBub2RlVG9FZGl0KTtcblxuICAgICAgICAgICAgICBpZiAobm9kZVBhdGggJiYgdmFsKSB7XG4gICAgICAgICAgICAgICAgZWRpdG9yLmFwcGx5KHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdzZXRfbm9kZScsXG4gICAgICAgICAgICAgICAgICBwYXRoOiBub2RlUGF0aCxcbiAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogbm9kZS5kYXRhXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgbmV3UHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICBlZGl0aW5nOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBoYW5kbGVEZWxldGUgPSBldmVudCA9PiB7XG4gICAgICAgICAgY29uc3Qgbm9kZVRvRWRpdCA9IFJlYWN0RWRpdG9yLnRvU2xhdGVOb2RlKGVkaXRvciwgZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgICBjb25zdCBub2RlUGF0aCA9IFJlYWN0RWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgbm9kZVRvRWRpdCk7XG5cbiAgICAgICAgICBlZGl0b3IuYXBwbHkoe1xuICAgICAgICAgICAgdHlwZTogJ3JlbW92ZV9ub2RlJyxcbiAgICAgICAgICAgIHBhdGg6IG5vZGVQYXRoXG4gICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHN0eWxlID0ge307XG5cbiAgICAgICAgaWYgKHdpZHRoKSB7XG4gICAgICAgICAgc3R5bGUud2lkdGggPSBgJHt3aWR0aH1weGA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGVpZ2h0KSB7XG4gICAgICAgICAgc3R5bGUuaGVpZ2h0ID0gYCR7aGVpZ2h0fXB4YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0YWcgPT09ICdhdWRpbycpIHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPE1lZGlhV3JhcHBlciBkYXRhLXR5cGU9e3R5cGV9IHdpZHRoPXtzdHlsZS53aWR0aH0gYXR0cmlidXRlcz17YXR0cmlidXRlc30+XG4gICAgICAgICAgICAgIDxhdWRpbyBjb250cm9scz1cImNvbnRyb2xzXCI+XG4gICAgICAgICAgICAgICAgPHNvdXJjZSB0eXBlPVwiYXVkaW8vbXAzXCIgc3JjPXtzcmN9IC8+XG4gICAgICAgICAgICAgIDwvYXVkaW8+XG4gICAgICAgICAgICAgIDxNZWRpYVRvb2xiYXIgaGlkZUVkaXQgb25SZW1vdmU9e2hhbmRsZURlbGV0ZX0gLz5cbiAgICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgICAgICAgPC9NZWRpYVdyYXBwZXI+XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPE1lZGlhV3JhcHBlciBkYXRhLXR5cGU9e3R5cGV9IHdpZHRoPXtzdHlsZS53aWR0aH0gYXR0cmlidXRlcz17YXR0cmlidXRlc30+XG4gICAgICAgICAgICA8ZGl2IGNvbnRlbnRFZGl0YWJsZT17ZmFsc2V9PlxuICAgICAgICAgICAgICA8aWZyYW1lXG4gICAgICAgICAgICAgICAgZnJhbWVCb3JkZXI9XCIwXCJcbiAgICAgICAgICAgICAgICBhbGxvdz1cImFjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBjbGlwYm9hcmQtd3JpdGU7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmVcIlxuICAgICAgICAgICAgICAgIGFsbG93RnVsbFNjcmVlblxuICAgICAgICAgICAgICAgIHNyYz17c3JjfVxuICAgICAgICAgICAgICAgIGVkaXRpbmc9e2VkaXRpbmcgPyAxIDogMH1cbiAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICB7Li4uc3R5bGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxNZWRpYVRvb2xiYXIgb25FZGl0PXtoYW5kbGVFZGl0fSBvblJlbW92ZT17aGFuZGxlRGVsZXRlfSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICAgICAgPC9NZWRpYVdyYXBwZXI+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IHNlcmlhbGl6YXRpb24gPSB7XG4gIGRlc2VyaWFsaXplKGVsIC8qLCBuZXh0Ki8pIHtcbiAgICBsZXQgdHlwZSA9IGVsLmRhdGFzZXQgJiYgZWwuZGF0YXNldC50eXBlO1xuICAgIGxldCB0YWcgPSAnaWZyYW1lJztcbiAgICBsZXQgc3JjO1xuICAgIGNvbnN0IHR5cGVJbmRleCA9IHR5cGVzLmluZGV4T2YodHlwZSk7XG5cbiAgICBpZiAodHlwZUluZGV4IDwgMCkge1xuICAgICAgaWYgKGVsIGluc3RhbmNlb2YgRWxlbWVudCAmJiBlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdhdWRpbycpIHtcbiAgICAgICAgdHlwZSA9ICdhdWRpbyc7XG4gICAgICAgIHRhZyA9ICdhdWRpbyc7XG4gICAgICAgIHNyYyA9IGVsLmZpcnN0Q2hpbGQ/LmdldEF0dHJpYnV0ZSgnc3JjJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgeyBlbmRzLCBzdGFydHMsIHRpdGxlLCBlZGl0aW5nLCB1cmwgfSA9IGVsLmRhdGFzZXQgfHwge307XG5cbiAgICBsb2coJ2Rlc2VyaWFsaXplOiAnLCBuYW1lKTtcbiAgICBjb25zdCB3aWR0aCA9IHBhcnNlSW50KGVsLmdldEF0dHJpYnV0ZSgnd2lkdGgnKSwgMTApIHx8IG51bGw7XG4gICAgY29uc3QgaGVpZ2h0ID0gcGFyc2VJbnQoZWwuZ2V0QXR0cmlidXRlKCdoZWlnaHQnKSwgMTApIHx8IG51bGw7XG5cbiAgICBjb25zdCBvdXQgPSBqc3goJ2VsZW1lbnQnLCB7XG4gICAgICB0eXBlLFxuICAgICAgZGF0YToge1xuICAgICAgICB0YWcsXG4gICAgICAgIHNyYzogc3JjIHx8IGVsLmdldEF0dHJpYnV0ZSgnc3JjJyksXG4gICAgICAgIGVkaXRpbmcsXG4gICAgICAgIGVuZHMsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgc3RhcnRzLFxuICAgICAgICB0aXRsZSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIHVybFxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbG9nKCdyZXR1cm4gb2JqZWN0OiAnLCBvdXQpO1xuICAgIHJldHVybiBvdXQ7XG4gIH0sXG4gIHNlcmlhbGl6ZShvYmplY3QpIHtcbiAgICBjb25zdCB0eXBlSW5kZXggPSB0eXBlcy5pbmRleE9mKG9iamVjdC50eXBlKTtcblxuICAgIGlmICh0eXBlSW5kZXggPCAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdHlwZSA9IHR5cGVzW3R5cGVJbmRleF07XG5cbiAgICBjb25zdCB7IGVkaXRpbmcsIHRhZywgZW5kcywgc3JjLCBzdGFydHMsIHRpdGxlLCB3aWR0aCwgaGVpZ2h0LCB1cmwgfSA9IG9iamVjdC5kYXRhIHx8IHt9O1xuICAgIGNvbnN0IHN0eWxlID0ge307XG5cbiAgICBpZiAod2lkdGgpIHtcbiAgICAgIHN0eWxlLndpZHRoID0gYCR7d2lkdGh9cHhgO1xuICAgIH1cblxuICAgIGlmIChoZWlnaHQpIHtcbiAgICAgIHN0eWxlLmhlaWdodCA9IGAke2hlaWdodH1weGA7XG4gICAgfVxuXG4gICAgY29uc3QgZGl2UHJvcHMgPSB7XG4gICAgICAnZGF0YS1lZGl0aW5nJzogZWRpdGluZyxcbiAgICAgICdkYXRhLWVuZHMnOiBlbmRzLFxuICAgICAgJ2RhdGEtc3RhcnRzJzogc3RhcnRzLFxuICAgICAgJ2RhdGEtdGl0bGUnOiB0aXRsZSxcbiAgICAgICdkYXRhLXVybCc6IHVybFxuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAuLi5zdHlsZSxcbiAgICAgIHNyY1xuICAgIH07XG5cbiAgICBpZiAodGFnID09PSAnYXVkaW8nKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8YXVkaW8gY29udHJvbHM9XCJjb250cm9sc1wiPlxuICAgICAgICAgIDxzb3VyY2UgdHlwZT1cImF1ZGlvL21wM1wiIHNyYz17c3JjfSAvPlxuICAgICAgICA8L2F1ZGlvPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGlmcmFtZVxuICAgICAgICBkYXRhLXR5cGU9e3R5cGV9XG4gICAgICAgIHNyYz17c3JjfVxuICAgICAgICB7Li4uZGl2UHJvcHN9XG4gICAgICAgIGZyYW1lQm9yZGVyPVwiMFwiXG4gICAgICAgIGFsbG93PVwiYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZVwiXG4gICAgICAgIGFsbG93RnVsbFNjcmVlblxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxHQUFHLEdBQUcsSUFBQUMsaUJBQUEsRUFBTSxzQ0FBTixDQUFaOztBQUVBLElBQU1DLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0IsR0FBTTtFQUMxQixJQUFNQyxXQUFXLEdBQUdDLFFBQVEsQ0FBQ0MsZ0JBQVQsQ0FBMEIsc0JBQTFCLENBQXBCO0VBRUFGLFdBQVcsQ0FBQ0csT0FBWixDQUFvQixVQUFBQyxDQUFDO0lBQUEsT0FBSUEsQ0FBQyxDQUFDQyxNQUFGLEVBQUo7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
@@ -26,7 +26,7 @@ var onValueChange = function onValueChange(nodeProps, n, value) {
26
26
  var change = val.change();
27
27
  change.setNodeByKey(n.key, {
28
28
  data: _objectSpread(_objectSpread({}, value), {}, {
29
- index: n.data.get('index')
29
+ index: n.data.index
30
30
  })
31
31
  });
32
32
  nodeProps.editor.props.onChange(change, function () {
@@ -40,11 +40,11 @@ var onRemoveResponse = function onRemoveResponse(nodeProps, value) {
40
40
  var val = nodeProps.editor.value;
41
41
  var change = val.change();
42
42
  var dragInTheBlank = val.document.findDescendant(function (n) {
43
- return n.data && n.data.get('index') === value.index;
43
+ return n.data && n.data.index === value.index;
44
44
  });
45
45
  change.setNodeByKey(dragInTheBlank.key, {
46
46
  data: {
47
- index: dragInTheBlank.data.get('index')
47
+ index: dragInTheBlank.data.index
48
48
  }
49
49
  });
50
50
  nodeProps.editor.props.onChange(change, function () {
@@ -95,4 +95,4 @@ DragDrop.propTypes = {
95
95
  };
96
96
  var _default = DragDrop;
97
97
  exports["default"] = _default;
98
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvblZhbHVlQ2hhbmdlIiwibm9kZVByb3BzIiwibiIsInZhbHVlIiwidmFsIiwiZWRpdG9yIiwiY2hhbmdlIiwic2V0Tm9kZUJ5S2V5Iiwia2V5IiwiZGF0YSIsImluZGV4IiwiZ2V0IiwicHJvcHMiLCJvbkNoYW5nZSIsIm9uRWRpdGluZ0RvbmUiLCJvblJlbW92ZVJlc3BvbnNlIiwiZHJhZ0luVGhlQmxhbmsiLCJkb2N1bWVudCIsImZpbmREZXNjZW5kYW50IiwiRHJhZ0Ryb3AiLCJhdHRyaWJ1dGVzIiwiY2hpbGRyZW4iLCJvcHRzIiwiaW5UYWJsZSIsImRpc3BsYXkiLCJtaW5IZWlnaHQiLCJtaW5XaWR0aCIsInBvc2l0aW9uIiwibWFyZ2luIiwiY3Vyc29yIiwib3B0aW9ucyIsImR1cGxpY2F0ZXMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJvYmplY3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGx1Z2lucy9yZXNwQXJlYS9kcmFnLWluLXRoZS1ibGFuay9pbmRleC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgRHJhZ0Ryb3BUaWxlIGZyb20gJy4vY2hvaWNlJztcblxuZXhwb3J0IGNvbnN0IG9uVmFsdWVDaGFuZ2UgPSAobm9kZVByb3BzLCBuLCB2YWx1ZSkgPT4ge1xuICBjb25zdCB2YWwgPSBub2RlUHJvcHMuZWRpdG9yLnZhbHVlO1xuICBjb25zdCBjaGFuZ2UgPSB2YWwuY2hhbmdlKCk7XG5cbiAgY2hhbmdlLnNldE5vZGVCeUtleShuLmtleSwge1xuICAgIGRhdGE6IHtcbiAgICAgIC4uLnZhbHVlLFxuICAgICAgaW5kZXg6IG4uZGF0YS5nZXQoJ2luZGV4JylcbiAgICB9XG4gIH0pO1xuXG4gIG5vZGVQcm9wcy5lZGl0b3IucHJvcHMub25DaGFuZ2UoY2hhbmdlLCAoKSA9PiB7XG4gICAgbm9kZVByb3BzLmVkaXRvci5wcm9wcy5vbkVkaXRpbmdEb25lKCk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IG9uUmVtb3ZlUmVzcG9uc2UgPSAobm9kZVByb3BzLCB2YWx1ZSkgPT4ge1xuICBjb25zdCB2YWwgPSBub2RlUHJvcHMuZWRpdG9yLnZhbHVlO1xuICBjb25zdCBjaGFuZ2UgPSB2YWwuY2hhbmdlKCk7XG4gIGNvbnN0IGRyYWdJblRoZUJsYW5rID0gdmFsLmRvY3VtZW50LmZpbmREZXNjZW5kYW50KFxuICAgIG4gPT4gbi5kYXRhICYmIG4uZGF0YS5nZXQoJ2luZGV4JykgPT09IHZhbHVlLmluZGV4XG4gICk7XG5cbiAgY2hhbmdlLnNldE5vZGVCeUtleShkcmFnSW5UaGVCbGFuay5rZXksIHtcbiAgICBkYXRhOiB7XG4gICAgICBpbmRleDogZHJhZ0luVGhlQmxhbmsuZGF0YS5nZXQoJ2luZGV4JylcbiAgICB9XG4gIH0pO1xuXG4gIG5vZGVQcm9wcy5lZGl0b3IucHJvcHMub25DaGFuZ2UoY2hhbmdlLCAoKSA9PiB7XG4gICAgbm9kZVByb3BzLmVkaXRvci5wcm9wcy5vbkVkaXRpbmdEb25lKCk7XG4gIH0pO1xufTtcblxuY29uc3QgRHJhZ0Ryb3AgPSBwcm9wcyA9PiB7XG4gIGNvbnN0IHsgYXR0cmlidXRlcywgY2hpbGRyZW4sIGRhdGEsIG4sIG5vZGVQcm9wcywgb3B0cyB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgaW5UYWJsZSB9ID0gZGF0YTtcblxuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICB7Li4uYXR0cmlidXRlc31cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsXG4gICAgICAgIG1pbkhlaWdodDogJzUwcHgnLFxuICAgICAgICBtaW5XaWR0aDogJzE3OHB4JyxcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIG1hcmdpbjogaW5UYWJsZSA/ICcxMHB4JyA6ICcwIDEwcHgnLFxuICAgICAgICBjdXJzb3I6ICdwb2ludGVyJ1xuICAgICAgfX1cbiAgICA+XG4gICAgICA8RHJhZ0Ryb3BUaWxlXG4gICAgICAgIG49e259XG4gICAgICAgIGRyYWdLZXk9e24ua2V5fVxuICAgICAgICB0YXJnZXRJZD1cIjBcIlxuICAgICAgICB2YWx1ZT17ZGF0YX1cbiAgICAgICAgZHVwbGljYXRlcz17b3B0cy5vcHRpb25zLmR1cGxpY2F0ZXN9XG4gICAgICAgIG9uQ2hhbmdlPXt2YWx1ZSA9PiBvblZhbHVlQ2hhbmdlKG5vZGVQcm9wcywgbiwgdmFsdWUpfVxuICAgICAgICByZW1vdmVSZXNwb25zZT17dmFsdWUgPT4gb25SZW1vdmVSZXNwb25zZShub2RlUHJvcHMsIHZhbHVlKX1cbiAgICAgID5cbiAgICAgICAge25vZGVQcm9wcy5jaGlsZHJlbn1cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9EcmFnRHJvcFRpbGU+XG4gICAgPC9zcGFuPlxuICApO1xufTtcblxuRHJhZ0Ryb3AucHJvcFR5cGVzID0ge1xuICBhdHRyaWJ1dGVzOiBQcm9wVHlwZXMub2JqZWN0LFxuICBkYXRhOiBQcm9wVHlwZXMub2JqZWN0LFxuICBuOiBQcm9wVHlwZXMub2JqZWN0LFxuICBub2RlUHJvcHM6IFByb3BUeXBlcy5vYmplY3QsXG4gIG9wdHM6IFByb3BUeXBlcy5vYmplY3Rcbn07XG5cbmV4cG9ydCBkZWZhdWx0IERyYWdEcm9wO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVPLElBQU1BLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0IsQ0FBQ0MsU0FBRCxFQUFZQyxDQUFaLEVBQWVDLEtBQWYsRUFBeUI7RUFDcEQsSUFBTUMsR0FBRyxHQUFHSCxTQUFTLENBQUNJLE1BQVYsQ0FBaUJGLEtBQTdCO0VBQ0EsSUFBTUcsTUFBTSxHQUFHRixHQUFHLENBQUNFLE1BQUosRUFBZjtFQUVBQSxNQUFNLENBQUNDLFlBQVAsQ0FBb0JMLENBQUMsQ0FBQ00sR0FBdEIsRUFBMkI7SUFDekJDLElBQUks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
98
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvblZhbHVlQ2hhbmdlIiwibm9kZVByb3BzIiwibiIsInZhbHVlIiwidmFsIiwiZWRpdG9yIiwiY2hhbmdlIiwic2V0Tm9kZUJ5S2V5Iiwia2V5IiwiZGF0YSIsImluZGV4IiwicHJvcHMiLCJvbkNoYW5nZSIsIm9uRWRpdGluZ0RvbmUiLCJvblJlbW92ZVJlc3BvbnNlIiwiZHJhZ0luVGhlQmxhbmsiLCJkb2N1bWVudCIsImZpbmREZXNjZW5kYW50IiwiRHJhZ0Ryb3AiLCJhdHRyaWJ1dGVzIiwiY2hpbGRyZW4iLCJvcHRzIiwiaW5UYWJsZSIsImRpc3BsYXkiLCJtaW5IZWlnaHQiLCJtaW5XaWR0aCIsInBvc2l0aW9uIiwibWFyZ2luIiwiY3Vyc29yIiwib3B0aW9ucyIsImR1cGxpY2F0ZXMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJvYmplY3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGx1Z2lucy9yZXNwQXJlYS9kcmFnLWluLXRoZS1ibGFuay9pbmRleC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgRHJhZ0Ryb3BUaWxlIGZyb20gJy4vY2hvaWNlJztcblxuZXhwb3J0IGNvbnN0IG9uVmFsdWVDaGFuZ2UgPSAobm9kZVByb3BzLCBuLCB2YWx1ZSkgPT4ge1xuICBjb25zdCB2YWwgPSBub2RlUHJvcHMuZWRpdG9yLnZhbHVlO1xuICBjb25zdCBjaGFuZ2UgPSB2YWwuY2hhbmdlKCk7XG5cbiAgY2hhbmdlLnNldE5vZGVCeUtleShuLmtleSwge1xuICAgIGRhdGE6IHtcbiAgICAgIC4uLnZhbHVlLFxuICAgICAgaW5kZXg6IG4uZGF0YS5pbmRleFxuICAgIH1cbiAgfSk7XG5cbiAgbm9kZVByb3BzLmVkaXRvci5wcm9wcy5vbkNoYW5nZShjaGFuZ2UsICgpID0+IHtcbiAgICBub2RlUHJvcHMuZWRpdG9yLnByb3BzLm9uRWRpdGluZ0RvbmUoKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3Qgb25SZW1vdmVSZXNwb25zZSA9IChub2RlUHJvcHMsIHZhbHVlKSA9PiB7XG4gIGNvbnN0IHZhbCA9IG5vZGVQcm9wcy5lZGl0b3IudmFsdWU7XG4gIGNvbnN0IGNoYW5nZSA9IHZhbC5jaGFuZ2UoKTtcbiAgY29uc3QgZHJhZ0luVGhlQmxhbmsgPSB2YWwuZG9jdW1lbnQuZmluZERlc2NlbmRhbnQoXG4gICAgbiA9PiBuLmRhdGEgJiYgbi5kYXRhLmluZGV4ID09PSB2YWx1ZS5pbmRleFxuICApO1xuXG4gIGNoYW5nZS5zZXROb2RlQnlLZXkoZHJhZ0luVGhlQmxhbmsua2V5LCB7XG4gICAgZGF0YToge1xuICAgICAgaW5kZXg6IGRyYWdJblRoZUJsYW5rLmRhdGEuaW5kZXhcbiAgICB9XG4gIH0pO1xuXG4gIG5vZGVQcm9wcy5lZGl0b3IucHJvcHMub25DaGFuZ2UoY2hhbmdlLCAoKSA9PiB7XG4gICAgbm9kZVByb3BzLmVkaXRvci5wcm9wcy5vbkVkaXRpbmdEb25lKCk7XG4gIH0pO1xufTtcblxuY29uc3QgRHJhZ0Ryb3AgPSBwcm9wcyA9PiB7XG4gIGNvbnN0IHsgYXR0cmlidXRlcywgY2hpbGRyZW4sIGRhdGEsIG4sIG5vZGVQcm9wcywgb3B0cyB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgaW5UYWJsZSB9ID0gZGF0YTtcblxuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICB7Li4uYXR0cmlidXRlc31cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsXG4gICAgICAgIG1pbkhlaWdodDogJzUwcHgnLFxuICAgICAgICBtaW5XaWR0aDogJzE3OHB4JyxcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIG1hcmdpbjogaW5UYWJsZSA/ICcxMHB4JyA6ICcwIDEwcHgnLFxuICAgICAgICBjdXJzb3I6ICdwb2ludGVyJ1xuICAgICAgfX1cbiAgICA+XG4gICAgICA8RHJhZ0Ryb3BUaWxlXG4gICAgICAgIG49e259XG4gICAgICAgIGRyYWdLZXk9e24ua2V5fVxuICAgICAgICB0YXJnZXRJZD1cIjBcIlxuICAgICAgICB2YWx1ZT17ZGF0YX1cbiAgICAgICAgZHVwbGljYXRlcz17b3B0cy5vcHRpb25zLmR1cGxpY2F0ZXN9XG4gICAgICAgIG9uQ2hhbmdlPXt2YWx1ZSA9PiBvblZhbHVlQ2hhbmdlKG5vZGVQcm9wcywgbiwgdmFsdWUpfVxuICAgICAgICByZW1vdmVSZXNwb25zZT17dmFsdWUgPT4gb25SZW1vdmVSZXNwb25zZShub2RlUHJvcHMsIHZhbHVlKX1cbiAgICAgID5cbiAgICAgICAge25vZGVQcm9wcy5jaGlsZHJlbn1cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9EcmFnRHJvcFRpbGU+XG4gICAgPC9zcGFuPlxuICApO1xufTtcblxuRHJhZ0Ryb3AucHJvcFR5cGVzID0ge1xuICBhdHRyaWJ1dGVzOiBQcm9wVHlwZXMub2JqZWN0LFxuICBkYXRhOiBQcm9wVHlwZXMub2JqZWN0LFxuICBuOiBQcm9wVHlwZXMub2JqZWN0LFxuICBub2RlUHJvcHM6IFByb3BUeXBlcy5vYmplY3QsXG4gIG9wdHM6IFByb3BUeXBlcy5vYmplY3Rcbn07XG5cbmV4cG9ydCBkZWZhdWx0IERyYWdEcm9wO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVPLElBQU1BLGFBQWEsR0FBRyxTQUFoQkEsYUFBZ0IsQ0FBQ0MsU0FBRCxFQUFZQyxDQUFaLEVBQWVDLEtBQWYsRUFBeUI7RUFDcEQsSUFBTUMsR0FBRyxHQUFHSCxTQUFTLENBQUNJLE1BQVYsQ0FBaUJGLEtBQTdCO0VBQ0EsSUFBTUcsTUFBTSxHQUFHRixHQUFHLENBQUNFLE1BQUosRUFBZjtFQUVBQSxNQUFNLENBQUNDLFlBQVAsQ0FBb0JMLENBQUMsQ0FBQ00sR0FBdEIsRUFBMkI7SUFDekJDLElBQUksa0NBQ0NOLEtBREQ7TUFFRk8sS0FBSyxFQUFF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
@@ -18,6 +18,10 @@ var _slateHyperscript = require("slate-hyperscript");
18
18
 
19
19
  var _debug = _interopRequireDefault(require("debug"));
20
20
 
21
+ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
22
+
23
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
24
+
21
25
  var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
22
26
 
23
27
  var _inlineDropdown = _interopRequireDefault(require("./inline-dropdown"));
@@ -30,12 +34,6 @@ var _utils = require("./utils");
30
34
 
31
35
  var _icons = require("./icons");
32
36
 
33
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
34
-
35
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
36
-
37
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
38
-
39
37
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:respArea');
40
38
  var lastIndexMap = {};
41
39
  var elTypesMap = {
@@ -58,29 +56,19 @@ function ResponseAreaPlugin(opts) {
58
56
  onClick: function onClick(editor) {
59
57
  log('[toolbar] onClick');
60
58
  var currentRespAreaList = [];
61
-
62
- var descendants = _slate.Node.descendants(editor, {
59
+ var descendants = Array.from(_slate.Node.descendants(editor, {
63
60
  reverse: true
64
- });
65
-
66
- var _iterator = _createForOfIteratorHelper(descendants),
67
- _step;
61
+ })).map(function (_ref) {
62
+ var _ref2 = (0, _slicedToArray2["default"])(_ref, 1),
63
+ d = _ref2[0];
68
64
 
69
- try {
70
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
71
- var _step$value = (0, _slicedToArray2["default"])(_step.value, 2),
72
- descendant = _step$value[0],
73
- descendantPath = _step$value[1];
74
-
75
- if (isOfCurrentType(descendant, descendantPath)) {
76
- currentRespAreaList.push(descendant);
77
- }
65
+ return d;
66
+ });
67
+ descendants.forEach(function (d) {
68
+ if (isOfCurrentType(d)) {
69
+ currentRespAreaList.push(d);
78
70
  }
79
- } catch (err) {
80
- _iterator.e(err);
81
- } finally {
82
- _iterator.f();
83
- }
71
+ });
84
72
 
85
73
  if (currentRespAreaList.length >= opts.maxResponseAreas) {
86
74
  return;
@@ -125,7 +113,8 @@ function ResponseAreaPlugin(opts) {
125
113
  toolbar: toolbar,
126
114
  rules: function rules(editor) {
127
115
  var isVoid = editor.isVoid,
128
- isInline = editor.isInline;
116
+ isInline = editor.isInline,
117
+ onChange = editor.onChange;
129
118
 
130
119
  editor.isVoid = function (element) {
131
120
  return elTypesArray.includes(element.type) ? true : isVoid(element);
@@ -135,6 +124,63 @@ function ResponseAreaPlugin(opts) {
135
124
  return elTypesArray.includes(element.type) ? true : isInline(element);
136
125
  };
137
126
 
127
+ var oldEditor = (0, _cloneDeep["default"])(editor);
128
+
129
+ editor.onChange = function (options) {
130
+ var descendants = Array.from(_slate.Node.descendants(editor, {
131
+ reverse: true
132
+ })).map(function (_ref3) {
133
+ var _ref4 = (0, _slicedToArray2["default"])(_ref3, 1),
134
+ d = _ref4[0];
135
+
136
+ return d;
137
+ });
138
+ var type = opts.type.replace(/-/g, '_');
139
+
140
+ if ((0, _isUndefined["default"])(lastIndexMap[type])) {
141
+ lastIndexMap[type] = 0;
142
+ descendants.forEach(function (d) {
143
+ if (d.type === type) {
144
+ var newIndex = parseInt(d.data.index, 10);
145
+
146
+ if (newIndex > lastIndexMap[type]) {
147
+ lastIndexMap[type] = newIndex;
148
+ }
149
+ }
150
+ });
151
+ }
152
+
153
+ if ((0, _isEqual["default"])(editor, oldEditor)) {
154
+ return;
155
+ }
156
+
157
+ var oldDescendants = Array.from(_slate.Node.descendants(oldEditor, {
158
+ reverse: true
159
+ })).map(function (_ref5) {
160
+ var _ref6 = (0, _slicedToArray2["default"])(_ref5, 1),
161
+ d = _ref6[0];
162
+
163
+ return d;
164
+ });
165
+ var currentRespAreaList = descendants.filter(isOfCurrentType);
166
+ var oldRespAreaList = oldDescendants.filter(isOfCurrentType);
167
+ toolbar.disabled = currentRespAreaList.length >= opts.maxResponseAreas;
168
+ var arrayToFilter = oldRespAreaList.length > currentRespAreaList.length ? oldRespAreaList : currentRespAreaList;
169
+ var arrayToUseForFilter = arrayToFilter === oldRespAreaList ? currentRespAreaList : oldRespAreaList;
170
+ var elementsWithChangedStatus = arrayToFilter.filter(function (d) {
171
+ return !arrayToUseForFilter.find(function (e) {
172
+ return e.data.index === d.data.index;
173
+ });
174
+ });
175
+
176
+ if (elementsWithChangedStatus.length && oldRespAreaList.length > currentRespAreaList.length) {
177
+ opts.onHandleAreaChange(elementsWithChangedStatus);
178
+ }
179
+
180
+ oldEditor = (0, _cloneDeep["default"])(editor);
181
+ onChange(options);
182
+ };
183
+
138
184
  return editor;
139
185
  },
140
186
  filterPlugins: function filterPlugins(node, plugins) {
@@ -146,10 +192,13 @@ function ResponseAreaPlugin(opts) {
146
192
  return p.name !== 'response_area';
147
193
  });
148
194
  },
149
- deleteNode: function deleteNode(e, node, value, onChange) {
195
+ deleteNode: function deleteNode(e, node, nodePath, editor, onChange) {
150
196
  e.preventDefault();
151
- var change = value.change().removeNodeByKey(node.key);
152
- onChange(change);
197
+ editor.apply({
198
+ type: 'remove_node',
199
+ path: nodePath
200
+ });
201
+ onChange(editor);
153
202
  },
154
203
  supports: function supports(node) {
155
204
  return elTypesArray.indexOf(node.type) >= 0;
@@ -192,47 +241,6 @@ function ResponseAreaPlugin(opts) {
192
241
  }, props.children);
193
242
  }
194
243
  },
195
- onChange: function onChange(change, editor) {
196
- var type = opts.type.replace(/-/g, '_');
197
-
198
- if ((0, _isUndefined["default"])(lastIndexMap[type])) {
199
- lastIndexMap[type] = 0;
200
- change.value.document.forEachDescendant(function (d) {
201
- if (d.type === type) {
202
- var newIndex = parseInt(d.data.get('index'), 10);
203
-
204
- if (newIndex > lastIndexMap[type]) {
205
- lastIndexMap[type] = newIndex;
206
- }
207
- }
208
- });
209
- }
210
-
211
- if (!editor.value) {
212
- return;
213
- }
214
-
215
- var currentRespAreaList = change.value.document.filterDescendants(isOfCurrentType);
216
- var oldRespAreaList = editor.value.document.filterDescendants(isOfCurrentType);
217
-
218
- if (currentRespAreaList.size >= opts.maxResponseAreas) {
219
- toolbar.disabled = true;
220
- } else {
221
- toolbar.disabled = false;
222
- }
223
-
224
- var arrayToFilter = oldRespAreaList.size > currentRespAreaList.size ? oldRespAreaList : currentRespAreaList;
225
- var arrayToUseForFilter = arrayToFilter === oldRespAreaList ? currentRespAreaList : oldRespAreaList;
226
- var elementsWithChangedStatus = arrayToFilter.filter(function (d) {
227
- return !arrayToUseForFilter.find(function (e) {
228
- return e.data.get('index') === d.data.get('index');
229
- });
230
- });
231
-
232
- if (elementsWithChangedStatus.size && oldRespAreaList.size > currentRespAreaList.size) {
233
- opts.onHandleAreaChange(elementsWithChangedStatus);
234
- }
235
- },
236
244
  onDrop: function onDrop(event, change, editor) {
237
245
  var closestEl = event.target.closest('[data-key]');
238
246
  var inline = editor.value.document.findDescendant(function (d) {
@@ -282,14 +290,10 @@ var serialization = {
282
290
  }
283
291
  },
284
292
  serialize: function serialize(object) {
285
- if (object.object !== 'inline') {
286
- return;
287
- }
288
-
289
293
  switch (object.type) {
290
294
  case 'inline_dropdown':
291
295
  {
292
- var data = object.data.toJSON();
296
+ var data = object.data;
293
297
  return /*#__PURE__*/_react["default"].createElement("span", {
294
298
  "data-type": "inline_dropdown",
295
299
  "data-index": data.index,
@@ -299,8 +303,7 @@ var serialization = {
299
303
 
300
304
  case 'explicit_constructed_response':
301
305
  {
302
- var _data3 = object.data.toJSON();
303
-
306
+ var _data3 = object.data;
304
307
  return /*#__PURE__*/_react["default"].createElement("span", {
305
308
  "data-type": "explicit_constructed_response",
306
309
  "data-index": _data3.index,
@@ -310,8 +313,7 @@ var serialization = {
310
313
 
311
314
  case 'drag_in_the_blank':
312
315
  {
313
- var _data4 = object.data.toJSON();
314
-
316
+ var _data4 = object.data;
315
317
  return /*#__PURE__*/_react["default"].createElement("span", {
316
318
  "data-type": "drag_in_the_blank",
317
319
  "data-index": _data4.index,
@@ -324,4 +326,4 @@ var serialization = {
324
326
  }
325
327
  };
326
328
  exports.serialization = serialization;
327
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJkZWJ1ZyIsImxhc3RJbmRleE1hcCIsImVsVHlwZXNNYXAiLCJlbFR5cGVzQXJyYXkiLCJPYmplY3QiLCJ2YWx1ZXMiLCJSZXNwb25zZUFyZWFQbHVnaW4iLCJvcHRzIiwiaXNPZkN1cnJlbnRUeXBlIiwiZCIsInR5cGUiLCJ0b29sYmFyIiwiaWNvbiIsImJ1dHRvblN0eWxlcyIsIm1hcmdpbiIsIm9uQ2xpY2siLCJlZGl0b3IiLCJjdXJyZW50UmVzcEFyZWFMaXN0IiwiZGVzY2VuZGFudHMiLCJTbGF0ZU5vZGUiLCJyZXZlcnNlIiwiZGVzY2VuZGFudCIsImRlc2NlbmRhbnRQYXRoIiwicHVzaCIsImxlbmd0aCIsIm1heFJlc3BvbnNlQXJlYXMiLCJyZXBsYWNlIiwicHJldkluZGV4IiwibmV3SW5kZXgiLCJuZXdJbmxpbmUiLCJnZXREZWZhdWx0RWxlbWVudCIsImluc2VydE5vZGUiLCJjdXN0b21Ub29sYmFyIiwicmVzcEFyZWFUb29sYmFyIiwic2hvd0RvbmUiLCJuYW1lIiwicnVsZXMiLCJpc1ZvaWQiLCJpc0lubGluZSIsImVsZW1lbnQiLCJpbmNsdWRlcyIsImZpbHRlclBsdWdpbnMiLCJub2RlIiwicGx1Z2lucyIsImZpbHRlciIsInAiLCJkZWxldGVOb2RlIiwiZSIsInZhbHVlIiwib25DaGFuZ2UiLCJwcmV2ZW50RGVmYXVsdCIsImNoYW5nZSIsInJlbW92ZU5vZGVCeUtleSIsImtleSIsInN1cHBvcnRzIiwiaW5kZXhPZiIsInJlbmRlck5vZGUiLCJwcm9wcyIsImF0dHJpYnV0ZXMiLCJkYXRhIiwiZXJyb3IiLCJpbmRleCIsImNoaWxkcmVuIiwiaXNVbmRlZmluZWQiLCJkb2N1bWVudCIsImZvckVhY2hEZXNjZW5kYW50IiwicGFyc2VJbnQiLCJnZXQiLCJmaWx0ZXJEZXNjZW5kYW50cyIsIm9sZFJlc3BBcmVhTGlzdCIsInNpemUiLCJkaXNhYmxlZCIsImFycmF5VG9GaWx0ZXIiLCJhcnJheVRvVXNlRm9yRmlsdGVyIiwiZWxlbWVudHNXaXRoQ2hhbmdlZFN0YXR1cyIsImZpbmQiLCJvbkhhbmRsZUFyZWFDaGFuZ2UiLCJvbkRyb3AiLCJldmVudCIsImNsb3Nlc3RFbCIsInRhcmdldCIsImNsb3Nlc3QiLCJpbmxpbmUiLCJmaW5kRGVzY2VuZGFudCIsImRhdGFzZXQiLCJzZXJpYWxpemF0aW9uIiwiZGVzZXJpYWxpemUiLCJlbCIsImpzeCIsImlkIiwiaW5UYWJsZSIsInNlcmlhbGl6ZSIsIm9iamVjdCIsInRvSlNPTiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW5zL3Jlc3BBcmVhL2luZGV4LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTm9kZSBhcyBTbGF0ZU5vZGUgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdzbGF0ZS1oeXBlcnNjcmlwdCc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuXG5pbXBvcnQgaXNVbmRlZmluZWQgZnJvbSAnbG9kYXNoL2lzVW5kZWZpbmVkJztcbmltcG9ydCBJbmxpbmVEcm9wZG93biBmcm9tICcuL2lubGluZS1kcm9wZG93bic7XG5pbXBvcnQgRHJhZ0luVGhlQmxhbmsgZnJvbSAnLi9kcmFnLWluLXRoZS1ibGFuayc7XG5pbXBvcnQgRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlIGZyb20gJy4vZXhwbGljaXQtY29uc3RydWN0ZWQtcmVzcG9uc2UnO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdEVsZW1lbnQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFRvb2xiYXJJY29uIH0gZnJvbSAnLi9pY29ucyc7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdAcGllLWxpYjplZGl0YWJsZS1odG1sOnBsdWdpbnM6cmVzcEFyZWEnKTtcblxuY29uc3QgbGFzdEluZGV4TWFwID0ge307XG5jb25zdCBlbFR5cGVzTWFwID0ge1xuICAnaW5saW5lLWRyb3Bkb3duJzogJ2lubGluZV9kcm9wZG93bicsXG4gICdleHBsaWNpdC1jb25zdHJ1Y3RlZC1yZXNwb25zZSc6ICdleHBsaWNpdF9jb25zdHJ1Y3RlZF9yZXNwb25zZScsXG4gICdkcmFnLWluLXRoZS1ibGFuayc6ICdkcmFnX2luX3RoZV9ibGFuaydcbn07XG5jb25zdCBlbFR5cGVzQXJyYXkgPSBPYmplY3QudmFsdWVzKGVsVHlwZXNNYXApO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBSZXNwb25zZUFyZWFQbHVnaW4ob3B0cykge1xuICBjb25zdCBpc09mQ3VycmVudFR5cGUgPSBkID0+IGQudHlwZSA9PT0gb3B0cy50eXBlIHx8IGQudHlwZSA9PT0gZWxUeXBlc01hcFtvcHRzLnR5cGVdO1xuXG4gIGNvbnN0IHRvb2xiYXIgPSB7XG4gICAgaWNvbjogPFRvb2xiYXJJY29uIC8+LFxuICAgIGJ1dHRvblN0eWxlczoge1xuICAgICAgbWFyZ2luOiAnMCAyMHB4IDAgYXV0bydcbiAgICB9LFxuICAgIG9uQ2xpY2s6IGVkaXRvciA9PiB7XG4gICAgICBsb2coJ1t0b29sYmFyXSBvbkNsaWNrJyk7XG4gICAgICBjb25zdCBjdXJyZW50UmVzcEFyZWFMaXN0ID0gW107XG4gICAgICBjb25zdCBkZXNjZW5kYW50cyA9IFNsYXRlTm9kZS5kZXNjZW5kYW50cyhlZGl0b3IsIHtcbiAgICAgICAgcmV2ZXJzZTogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICAgIGZvciAoY29uc3QgW2Rlc2NlbmRhbnQsIGRlc2NlbmRhbnRQYXRoXSBvZiBkZXNjZW5kYW50cykge1xuICAgICAgICBpZiAoaXNPZkN1cnJlbnRUeXBlKGRlc2NlbmRhbnQsIGRlc2NlbmRhbnRQYXRoKSkge1xuICAgICAgICAgIGN1cnJlbnRSZXNwQXJlYUxpc3QucHVzaChkZXNjZW5kYW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoY3VycmVudFJlc3BBcmVhTGlzdC5sZW5ndGggPj0gb3B0cy5tYXhSZXNwb25zZUFyZWFzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdHlwZSA9IG9wdHMudHlwZS5yZXBsYWNlKC8tL2csICdfJyk7XG4gICAgICBjb25zdCBwcmV2SW5kZXggPSBsYXN0SW5kZXhNYXBbdHlwZV07XG4gICAgICBjb25zdCBuZXdJbmRleCA9ICFwcmV2SW5kZXggPyAwIDogcHJldkluZGV4ICsgMTtcbiAgICAgIGNvbnN0IG5ld0lubGluZSA9IGdldERlZmF1bHRFbGVtZW50KG9wdHMsIG5ld0luZGV4KTtcblxuICAgICAgbGFzdEluZGV4TWFwW3R5cGVdICs9IDE7XG5cbiAgICAgIGlmIChuZXdJbmxpbmUpIHtcbiAgICAgICAgLyogICAgICAgIGlmIChjaGFuZ2UudmFsdWUuc2VsZWN0aW9uLnN0YXJ0S2V5IHx8IGNoYW5nZS52YWx1ZS5zZWxlY3Rpb24uZW5kS2V5KSB7XG4gICAgICAgICAgY2hhbmdlLmluc2VydElubGluZShuZXdJbmxpbmUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIElmIHRoZSBtYXJrdXAgaXMgZW1wdHkgYW5kIHRoZXJlJ3Mgbm8gZm9jdXNcbiAgICAgICAgICBjb25zdCBsYXN0VGV4dCA9IHZhbHVlLmRvY3VtZW50LmdldExhc3RUZXh0KCk7XG5cbiAgICAgICAgICBpZiAoIWxhc3RUZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB2YWx1ZS5kb2N1bWVudC5nZXRQYXJlbnQobGFzdFRleHQua2V5KTtcblxuICAgICAgICAgIGlmIChwYXJlbnROb2RlKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHBhcmVudE5vZGUubm9kZXMuaW5kZXhPZihsYXN0VGV4dC5rZXkpO1xuXG4gICAgICAgICAgICBpZiAocGFyZW50Tm9kZS5pc1ZvaWQpIHJldHVybjtcblxuICAgICAgICAgICAgY2hhbmdlLmluc2VydE5vZGVCeUtleShwYXJlbnROb2RlLmtleSwgaW5kZXggKyAxLCBuZXdJbmxpbmUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXdJbmxpbmUudHlwZSA9PT0gJ2RyYWdfaW5fdGhlX2JsYW5rJykge1xuICAgICAgICAgIGNvbnN0IG5leHRUZXh0ID0gY2hhbmdlLnZhbHVlLmRvY3VtZW50LmdldE5leHRUZXh0KG5ld0lubGluZS5rZXkpO1xuXG4gICAgICAgICAgaWYgKG5leHRUZXh0KSB7XG4gICAgICAgICAgICBjaGFuZ2UubW92ZUZvY3VzVG8obmV4dFRleHQua2V5LCAwKS5tb3ZlQW5jaG9yVG8obmV4dFRleHQua2V5LCAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0qL1xuICAgICAgICBlZGl0b3IuaW5zZXJ0Tm9kZShuZXdJbmxpbmUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgY3VzdG9tVG9vbGJhcjogb3B0cy5yZXNwQXJlYVRvb2xiYXIsXG4gICAgc2hvd0RvbmU6IGZhbHNlXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAncmVzcG9uc2VfYXJlYScsXG4gICAgdG9vbGJhcixcbiAgICBydWxlczogZWRpdG9yID0+IHtcbiAgICAgIGNvbnN0IHsgaXNWb2lkLCBpc0lubGluZSB9ID0gZWRpdG9yO1xuXG4gICAgICBlZGl0b3IuaXNWb2lkID0gZWxlbWVudCA9PiB7XG4gICAgICAgIHJldHVybiBlbFR5cGVzQXJyYXkuaW5jbHVkZXMoZWxlbWVudC50eXBlKSA/IHRydWUgOiBpc1ZvaWQoZWxlbWVudCk7XG4gICAgICB9O1xuXG4gICAgICBlZGl0b3IuaXNJbmxpbmUgPSBlbGVtZW50ID0+IHtcbiAgICAgICAgcmV0dXJuIGVsVHlwZXNBcnJheS5pbmNsdWRlcyhlbGVtZW50LnR5cGUpID8gdHJ1ZSA6IGlzSW5saW5lKGVsZW1lbnQpO1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGVkaXRvcjtcbiAgICB9LFxuICAgIGZpbHRlclBsdWdpbnM6IChub2RlLCBwbHVnaW5zKSA9PiB7XG4gICAgICBpZiAobm9kZS50eXBlID09PSAnZXhwbGljaXRfY29uc3RydWN0ZWRfcmVzcG9uc2UnIHx8IG5vZGUudHlwZSA9PT0gJ2RyYWdfaW5fdGhlX2JsYW5rJykge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwbHVnaW5zLmZpbHRlcihwID0+IHAubmFtZSAhPT0gJ3Jlc3BvbnNlX2FyZWEnKTtcbiAgICB9LFxuICAgIGRlbGV0ZU5vZGU6IChlLCBub2RlLCB2YWx1ZSwgb25DaGFuZ2UpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgY29uc3QgY2hhbmdlID0gdmFsdWUuY2hhbmdlKCkucmVtb3ZlTm9kZUJ5S2V5KG5vZGUua2V5KTtcblxuICAgICAgb25DaGFuZ2UoY2hhbmdlKTtcbiAgICB9LFxuICAgIHN1cHBvcnRzOiBub2RlID0+IGVsVHlwZXNBcnJheS5pbmRleE9mKG5vZGUudHlwZSkgPj0gMCxcbiAgICByZW5kZXJOb2RlKHByb3BzKSB7XG4gICAgICBjb25zdCB7IGF0dHJpYnV0ZXMsIG5vZGUgfSA9IHByb3BzO1xuXG4gICAgICBpZiAobm9kZS50eXBlID09PSAnZXhwbGljaXRfY29uc3RydWN0ZWRfcmVzcG9uc2UnKSB7XG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gbm9kZTtcbiAgICAgICAgbGV0IGVycm9yO1xuXG4gICAgICAgIGlmIChvcHRzLmVycm9yKSB7XG4gICAgICAgICAgZXJyb3IgPSBvcHRzLmVycm9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxFeHBsaWNpdENvbnN0cnVjdGVkUmVzcG9uc2VcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM9e2F0dHJpYnV0ZXN9XG4gICAgICAgICAgICB2YWx1ZT17ZGF0YS52YWx1ZX1cbiAgICAgICAgICAgIGVycm9yPXtlcnJvciAmJiBlcnJvcltkYXRhLmluZGV4XSAmJiBlcnJvcltkYXRhLmluZGV4XVswXX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICAgICAgPC9FeHBsaWNpdENvbnN0cnVjdGVkUmVzcG9uc2U+XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlLnR5cGUgPT09ICdkcmFnX2luX3RoZV9ibGFuaycpIHtcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBub2RlO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPERyYWdJblRoZUJsYW5rXG4gICAgICAgICAgICBhdHRyaWJ1dGVzPXthdHRyaWJ1dGVzfVxuICAgICAgICAgICAgZGF0YT17ZGF0YX1cbiAgICAgICAgICAgIG49e25vZGV9XG4gICAgICAgICAgICBub2RlUHJvcHM9e3Byb3BzfVxuICAgICAgICAgICAgb3B0cz17b3B0c31cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICAgICAgPC9EcmFnSW5UaGVCbGFuaz5cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5vZGUudHlwZSA9PT0gJ2lubGluZV9kcm9wZG93bicpIHtcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBub2RlO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPElubGluZURyb3Bkb3duIGF0dHJpYnV0ZXM9e2F0dHJpYnV0ZXN9IHNlbGVjdGVkSXRlbT17ZGF0YS52YWx1ZX0+XG4gICAgICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICAgICAgPC9JbmxpbmVEcm9wZG93bj5cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIG9uQ2hhbmdlKGNoYW5nZSwgZWRpdG9yKSB7XG4gICAgICBjb25zdCB0eXBlID0gb3B0cy50eXBlLnJlcGxhY2UoLy0vZywgJ18nKTtcblxuICAgICAgaWYgKGlzVW5kZWZpbmVkKGxhc3RJbmRleE1hcFt0eXBlXSkpIHtcbiAgICAgICAgbGFzdEluZGV4TWFwW3R5cGVdID0gMDtcblxuICAgICAgICBjaGFuZ2UudmFsdWUuZG9jdW1lbnQuZm9yRWFjaERlc2NlbmRhbnQoZCA9PiB7XG4gICAgICAgICAgaWYgKGQudHlwZSA9PT0gdHlwZSkge1xuICAgICAgICAgICAgY29uc3QgbmV3SW5kZXggPSBwYXJzZUludChkLmRhdGEuZ2V0KCdpbmRleCcpLCAxMCk7XG5cbiAgICAgICAgICAgIGlmIChuZXdJbmRleCA+IGxhc3RJbmRleE1hcFt0eXBlXSkge1xuICAgICAgICAgICAgICBsYXN0SW5kZXhNYXBbdHlwZV0gPSBuZXdJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWVkaXRvci52YWx1ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGN1cnJlbnRSZXNwQXJlYUxpc3QgPSBjaGFuZ2UudmFsdWUuZG9jdW1lbnQuZmlsdGVyRGVzY2VuZGFudHMoaXNPZkN1cnJlbnRUeXBlKTtcbiAgICAgIGNvbnN0IG9sZFJlc3BBcmVhTGlzdCA9IGVkaXRvci52YWx1ZS5kb2N1bWVudC5maWx0ZXJEZXNjZW5kYW50cyhpc09mQ3VycmVudFR5cGUpO1xuXG4gICAgICBpZiAoY3VycmVudFJlc3BBcmVhTGlzdC5zaXplID49IG9wdHMubWF4UmVzcG9uc2VBcmVhcykge1xuICAgICAgICB0b29sYmFyLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRvb2xiYXIuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXJyYXlUb0ZpbHRlciA9XG4gICAgICAgIG9sZFJlc3BBcmVhTGlzdC5zaXplID4gY3VycmVudFJlc3BBcmVhTGlzdC5zaXplID8gb2xkUmVzcEFyZWFMaXN0IDogY3VycmVudFJlc3BBcmVhTGlzdDtcbiAgICAgIGNvbnN0IGFycmF5VG9Vc2VGb3JGaWx0ZXIgPVxuICAgICAgICBhcnJheVRvRmlsdGVyID09PSBvbGRSZXNwQXJlYUxpc3QgPyBjdXJyZW50UmVzcEFyZWFMaXN0IDogb2xkUmVzcEFyZWFMaXN0O1xuXG4gICAgICBjb25zdCBlbGVtZW50c1dpdGhDaGFuZ2VkU3RhdHVzID0gYXJyYXlUb0ZpbHRlci5maWx0ZXIoXG4gICAgICAgIGQgPT4gIWFycmF5VG9Vc2VGb3JGaWx0ZXIuZmluZChlID0+IGUuZGF0YS5nZXQoJ2luZGV4JykgPT09IGQuZGF0YS5nZXQoJ2luZGV4JykpXG4gICAgICApO1xuXG4gICAgICBpZiAoZWxlbWVudHNXaXRoQ2hhbmdlZFN0YXR1cy5zaXplICYmIG9sZFJlc3BBcmVhTGlzdC5zaXplID4gY3VycmVudFJlc3BBcmVhTGlzdC5zaXplKSB7XG4gICAgICAgIG9wdHMub25IYW5kbGVBcmVhQ2hhbmdlKGVsZW1lbnRzV2l0aENoYW5nZWRTdGF0dXMpO1xuICAgICAgfVxuICAgIH0sXG4gICAgb25Ecm9wKGV2ZW50LCBjaGFuZ2UsIGVkaXRvcikge1xuICAgICAgY29uc3QgY2xvc2VzdEVsID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLWtleV0nKTtcbiAgICAgIGNvbnN0IGlubGluZSA9IGVkaXRvci52YWx1ZS5kb2N1bWVudC5maW5kRGVzY2VuZGFudChkID0+IGQua2V5ID09PSBjbG9zZXN0RWwuZGF0YXNldC5rZXkpO1xuXG4gICAgICBpZiAoaW5saW5lLnR5cGUgPT09ICdkcmFnX2luX3RoZV9ibGFuaycpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IHNlcmlhbGl6YXRpb24gPSB7XG4gIGRlc2VyaWFsaXplKGVsKSB7XG4gICAgY29uc3QgdHlwZSA9IGVsLmRhdGFzZXQgJiYgZWwuZGF0YXNldC50eXBlO1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdpbmxpbmVfZHJvcGRvd24nOlxuICAgICAgICByZXR1cm4ganN4KCdlbGVtZW50Jywge1xuICAgICAgICAgIHR5cGU6ICdpbmxpbmVfZHJvcGRvd24nLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGluZGV4OiBlbC5kYXRhc2V0LmluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGVsLmRhdGFzZXQudmFsdWVcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgY2FzZSAnZXhwbGljaXRfY29uc3RydWN0ZWRfcmVzcG9uc2UnOlxuICAgICAgICByZXR1cm4ganN4KCdlbGVtZW50Jywge1xuICAgICAgICAgIHR5cGU6ICdleHBsaWNpdF9jb25zdHJ1Y3RlZF9yZXNwb25zZScsXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgaW5kZXg6IGVsLmRhdGFzZXQuaW5kZXgsXG4gICAgICAgICAgICB2YWx1ZTogZWwuZGF0YXNldC52YWx1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICBjYXNlICdkcmFnX2luX3RoZV9ibGFuayc6XG4gICAgICAgIHJldHVybiBqc3goJ2VsZW1lbnQnLCB7XG4gICAgICAgICAgdHlwZTogJ2RyYWdfaW5fdGhlX2JsYW5rJyxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBpbmRleDogZWwuZGF0YXNldC5pbmRleCxcbiAgICAgICAgICAgIGlkOiBlbC5kYXRhc2V0LmlkLFxuICAgICAgICAgICAgdmFsdWU6IGVsLmRhdGFzZXQudmFsdWUsXG4gICAgICAgICAgICBpblRhYmxlOiBlbC5kYXRhc2V0LmluVGFibGVcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSxcbiAgc2VyaWFsaXplKG9iamVjdCkge1xuICAgIGlmIChvYmplY3Qub2JqZWN0ICE9PSAnaW5saW5lJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAob2JqZWN0LnR5cGUpIHtcbiAgICAgIGNhc2UgJ2lubGluZV9kcm9wZG93bic6IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IG9iamVjdC5kYXRhLnRvSlNPTigpO1xuXG4gICAgICAgIHJldHVybiA8c3BhbiBkYXRhLXR5cGU9XCJpbmxpbmVfZHJvcGRvd25cIiBkYXRhLWluZGV4PXtkYXRhLmluZGV4fSBkYXRhLXZhbHVlPXtkYXRhLnZhbHVlfSAvPjtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2V4cGxpY2l0X2NvbnN0cnVjdGVkX3Jlc3BvbnNlJzoge1xuICAgICAgICBjb25zdCBkYXRhID0gb2JqZWN0LmRhdGEudG9KU09OKCk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgZGF0YS10eXBlPVwiZXhwbGljaXRfY29uc3RydWN0ZWRfcmVzcG9uc2VcIlxuICAgICAgICAgICAgZGF0YS1pbmRleD17ZGF0YS5pbmRleH1cbiAgICAgICAgICAgIGRhdGEtdmFsdWU9e2RhdGEudmFsdWV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2RyYWdfaW5fdGhlX2JsYW5rJzoge1xuICAgICAgICBjb25zdCBkYXRhID0gb2JqZWN0LmRhdGEudG9KU09OKCk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgZGF0YS10eXBlPVwiZHJhZ19pbl90aGVfYmxhbmtcIlxuICAgICAgICAgICAgZGF0YS1pbmRleD17ZGF0YS5pbmRleH1cbiAgICAgICAgICAgIGRhdGEtaWQ9e2RhdGEuaWR9XG4gICAgICAgICAgICBkYXRhLXZhbHVlPXtkYXRhLnZhbHVlfVxuICAgICAgICAgICAgZGF0YS1pbi10YWJsZT17ZGF0YS5pblRhYmxlfVxuICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFFQSxJQUFNQSxHQUFHLEdBQUcsSUFBQUMsaUJBQUEsRUFBTSx5Q0FBTixDQUFaO0FBRUEsSUFBTUMsWUFBWSxHQUFHLEVBQXJCO0FBQ0EsSUFBTUMsVUFB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
329
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJkZWJ1ZyIsImxhc3RJbmRleE1hcCIsImVsVHlwZXNNYXAiLCJlbFR5cGVzQXJyYXkiLCJPYmplY3QiLCJ2YWx1ZXMiLCJSZXNwb25zZUFyZWFQbHVnaW4iLCJvcHRzIiwiaXNPZkN1cnJlbnRUeXBlIiwiZCIsInR5cGUiLCJ0b29sYmFyIiwiaWNvbiIsImJ1dHRvblN0eWxlcyIsIm1hcmdpbiIsIm9uQ2xpY2siLCJlZGl0b3IiLCJjdXJyZW50UmVzcEFyZWFMaXN0IiwiZGVzY2VuZGFudHMiLCJBcnJheSIsImZyb20iLCJTbGF0ZU5vZGUiLCJyZXZlcnNlIiwibWFwIiwiZm9yRWFjaCIsInB1c2giLCJsZW5ndGgiLCJtYXhSZXNwb25zZUFyZWFzIiwicmVwbGFjZSIsInByZXZJbmRleCIsIm5ld0luZGV4IiwibmV3SW5saW5lIiwiZ2V0RGVmYXVsdEVsZW1lbnQiLCJpbnNlcnROb2RlIiwiY3VzdG9tVG9vbGJhciIsInJlc3BBcmVhVG9vbGJhciIsInNob3dEb25lIiwibmFtZSIsInJ1bGVzIiwiaXNWb2lkIiwiaXNJbmxpbmUiLCJvbkNoYW5nZSIsImVsZW1lbnQiLCJpbmNsdWRlcyIsIm9sZEVkaXRvciIsImNsb25lRGVlcCIsIm9wdGlvbnMiLCJpc1VuZGVmaW5lZCIsInBhcnNlSW50IiwiZGF0YSIsImluZGV4IiwiaXNFcXVhbCIsIm9sZERlc2NlbmRhbnRzIiwiZmlsdGVyIiwib2xkUmVzcEFyZWFMaXN0IiwiZGlzYWJsZWQiLCJhcnJheVRvRmlsdGVyIiwiYXJyYXlUb1VzZUZvckZpbHRlciIsImVsZW1lbnRzV2l0aENoYW5nZWRTdGF0dXMiLCJmaW5kIiwiZSIsIm9uSGFuZGxlQXJlYUNoYW5nZSIsImZpbHRlclBsdWdpbnMiLCJub2RlIiwicGx1Z2lucyIsInAiLCJkZWxldGVOb2RlIiwibm9kZVBhdGgiLCJwcmV2ZW50RGVmYXVsdCIsImFwcGx5IiwicGF0aCIsInN1cHBvcnRzIiwiaW5kZXhPZiIsInJlbmRlck5vZGUiLCJwcm9wcyIsImF0dHJpYnV0ZXMiLCJlcnJvciIsInZhbHVlIiwiY2hpbGRyZW4iLCJvbkRyb3AiLCJldmVudCIsImNoYW5nZSIsImNsb3Nlc3RFbCIsInRhcmdldCIsImNsb3Nlc3QiLCJpbmxpbmUiLCJkb2N1bWVudCIsImZpbmREZXNjZW5kYW50Iiwia2V5IiwiZGF0YXNldCIsInNlcmlhbGl6YXRpb24iLCJkZXNlcmlhbGl6ZSIsImVsIiwianN4IiwiaWQiLCJpblRhYmxlIiwic2VyaWFsaXplIiwib2JqZWN0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BsdWdpbnMvcmVzcEFyZWEvaW5kZXguanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBOb2RlIGFzIFNsYXRlTm9kZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3NsYXRlLWh5cGVyc2NyaXB0JztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5cbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2gvaXNFcXVhbCc7XG5pbXBvcnQgaXNVbmRlZmluZWQgZnJvbSAnbG9kYXNoL2lzVW5kZWZpbmVkJztcbmltcG9ydCBJbmxpbmVEcm9wZG93biBmcm9tICcuL2lubGluZS1kcm9wZG93bic7XG5pbXBvcnQgRHJhZ0luVGhlQmxhbmsgZnJvbSAnLi9kcmFnLWluLXRoZS1ibGFuayc7XG5pbXBvcnQgRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlIGZyb20gJy4vZXhwbGljaXQtY29uc3RydWN0ZWQtcmVzcG9uc2UnO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdEVsZW1lbnQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFRvb2xiYXJJY29uIH0gZnJvbSAnLi9pY29ucyc7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdAcGllLWxpYjplZGl0YWJsZS1odG1sOnBsdWdpbnM6cmVzcEFyZWEnKTtcblxuY29uc3QgbGFzdEluZGV4TWFwID0ge307XG5jb25zdCBlbFR5cGVzTWFwID0ge1xuICAnaW5saW5lLWRyb3Bkb3duJzogJ2lubGluZV9kcm9wZG93bicsXG4gICdleHBsaWNpdC1jb25zdHJ1Y3RlZC1yZXNwb25zZSc6ICdleHBsaWNpdF9jb25zdHJ1Y3RlZF9yZXNwb25zZScsXG4gICdkcmFnLWluLXRoZS1ibGFuayc6ICdkcmFnX2luX3RoZV9ibGFuaydcbn07XG5jb25zdCBlbFR5cGVzQXJyYXkgPSBPYmplY3QudmFsdWVzKGVsVHlwZXNNYXApO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBSZXNwb25zZUFyZWFQbHVnaW4ob3B0cykge1xuICBjb25zdCBpc09mQ3VycmVudFR5cGUgPSBkID0+IGQudHlwZSA9PT0gb3B0cy50eXBlIHx8IGQudHlwZSA9PT0gZWxUeXBlc01hcFtvcHRzLnR5cGVdO1xuXG4gIGNvbnN0IHRvb2xiYXIgPSB7XG4gICAgaWNvbjogPFRvb2xiYXJJY29uIC8+LFxuICAgIGJ1dHRvblN0eWxlczoge1xuICAgICAgbWFyZ2luOiAnMCAyMHB4IDAgYXV0bydcbiAgICB9LFxuICAgIG9uQ2xpY2s6IGVkaXRvciA9PiB7XG4gICAgICBsb2coJ1t0b29sYmFyXSBvbkNsaWNrJyk7XG4gICAgICBjb25zdCBjdXJyZW50UmVzcEFyZWFMaXN0ID0gW107XG4gICAgICBjb25zdCBkZXNjZW5kYW50cyA9IEFycmF5LmZyb20oU2xhdGVOb2RlLmRlc2NlbmRhbnRzKGVkaXRvciwgeyByZXZlcnNlOiB0cnVlIH0pKS5tYXAoXG4gICAgICAgIChbZF0pID0+IGRcbiAgICAgICk7XG5cbiAgICAgIGRlc2NlbmRhbnRzLmZvckVhY2goZCA9PiB7XG4gICAgICAgIGlmIChpc09mQ3VycmVudFR5cGUoZCkpIHtcbiAgICAgICAgICBjdXJyZW50UmVzcEFyZWFMaXN0LnB1c2goZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpZiAoY3VycmVudFJlc3BBcmVhTGlzdC5sZW5ndGggPj0gb3B0cy5tYXhSZXNwb25zZUFyZWFzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdHlwZSA9IG9wdHMudHlwZS5yZXBsYWNlKC8tL2csICdfJyk7XG4gICAgICBjb25zdCBwcmV2SW5kZXggPSBsYXN0SW5kZXhNYXBbdHlwZV07XG4gICAgICBjb25zdCBuZXdJbmRleCA9ICFwcmV2SW5kZXggPyAwIDogcHJldkluZGV4ICsgMTtcbiAgICAgIGNvbnN0IG5ld0lubGluZSA9IGdldERlZmF1bHRFbGVtZW50KG9wdHMsIG5ld0luZGV4KTtcblxuICAgICAgbGFzdEluZGV4TWFwW3R5cGVdICs9IDE7XG5cbiAgICAgIGlmIChuZXdJbmxpbmUpIHtcbiAgICAgICAgLyogICAgICAgIGlmIChjaGFuZ2UudmFsdWUuc2VsZWN0aW9uLnN0YXJ0S2V5IHx8IGNoYW5nZS52YWx1ZS5zZWxlY3Rpb24uZW5kS2V5KSB7XG4gICAgICAgICAgY2hhbmdlLmluc2VydElubGluZShuZXdJbmxpbmUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIElmIHRoZSBtYXJrdXAgaXMgZW1wdHkgYW5kIHRoZXJlJ3Mgbm8gZm9jdXNcbiAgICAgICAgICBjb25zdCBsYXN0VGV4dCA9IHZhbHVlLmRvY3VtZW50LmdldExhc3RUZXh0KCk7XG5cbiAgICAgICAgICBpZiAoIWxhc3RUZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB2YWx1ZS5kb2N1bWVudC5nZXRQYXJlbnQobGFzdFRleHQua2V5KTtcblxuICAgICAgICAgIGlmIChwYXJlbnROb2RlKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHBhcmVudE5vZGUubm9kZXMuaW5kZXhPZihsYXN0VGV4dC5rZXkpO1xuXG4gICAgICAgICAgICBpZiAocGFyZW50Tm9kZS5pc1ZvaWQpIHJldHVybjtcblxuICAgICAgICAgICAgY2hhbmdlLmluc2VydE5vZGVCeUtleShwYXJlbnROb2RlLmtleSwgaW5kZXggKyAxLCBuZXdJbmxpbmUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXdJbmxpbmUudHlwZSA9PT0gJ2RyYWdfaW5fdGhlX2JsYW5rJykge1xuICAgICAgICAgIGNvbnN0IG5leHRUZXh0ID0gY2hhbmdlLnZhbHVlLmRvY3VtZW50LmdldE5leHRUZXh0KG5ld0lubGluZS5rZXkpO1xuXG4gICAgICAgICAgaWYgKG5leHRUZXh0KSB7XG4gICAgICAgICAgICBjaGFuZ2UubW92ZUZvY3VzVG8obmV4dFRleHQua2V5LCAwKS5tb3ZlQW5jaG9yVG8obmV4dFRleHQua2V5LCAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0qL1xuICAgICAgICBlZGl0b3IuaW5zZXJ0Tm9kZShuZXdJbmxpbmUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgY3VzdG9tVG9vbGJhcjogb3B0cy5yZXNwQXJlYVRvb2xiYXIsXG4gICAgc2hvd0RvbmU6IGZhbHNlXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAncmVzcG9uc2VfYXJlYScsXG4gICAgdG9vbGJhcixcbiAgICBydWxlczogZWRpdG9yID0+IHtcbiAgICAgIGNvbnN0IHsgaXNWb2lkLCBpc0lubGluZSwgb25DaGFuZ2UgfSA9IGVkaXRvcjtcblxuICAgICAgZWRpdG9yLmlzVm9pZCA9IGVsZW1lbnQgPT4ge1xuICAgICAgICByZXR1cm4gZWxUeXBlc0FycmF5LmluY2x1ZGVzKGVsZW1lbnQudHlwZSkgPyB0cnVlIDogaXNWb2lkKGVsZW1lbnQpO1xuICAgICAgfTtcblxuICAgICAgZWRpdG9yLmlzSW5saW5lID0gZWxlbWVudCA9PiB7XG4gICAgICAgIHJldHVybiBlbFR5cGVzQXJyYXkuaW5jbHVkZXMoZWxlbWVudC50eXBlKSA/IHRydWUgOiBpc0lubGluZShlbGVtZW50KTtcbiAgICAgIH07XG5cbiAgICAgIGxldCBvbGRFZGl0b3IgPSBjbG9uZURlZXAoZWRpdG9yKTtcblxuICAgICAgZWRpdG9yLm9uQ2hhbmdlID0gb3B0aW9ucyA9PiB7XG4gICAgICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gQXJyYXkuZnJvbShTbGF0ZU5vZGUuZGVzY2VuZGFudHMoZWRpdG9yLCB7IHJldmVyc2U6IHRydWUgfSkpLm1hcChcbiAgICAgICAgICAoW2RdKSA9PiBkXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBvcHRzLnR5cGUucmVwbGFjZSgvLS9nLCAnXycpO1xuXG4gICAgICAgIGlmIChpc1VuZGVmaW5lZChsYXN0SW5kZXhNYXBbdHlwZV0pKSB7XG4gICAgICAgICAgbGFzdEluZGV4TWFwW3R5cGVdID0gMDtcblxuICAgICAgICAgIGRlc2NlbmRhbnRzLmZvckVhY2goZCA9PiB7XG4gICAgICAgICAgICBpZiAoZC50eXBlID09PSB0eXBlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld0luZGV4ID0gcGFyc2VJbnQoZC5kYXRhLmluZGV4LCAxMCk7XG5cbiAgICAgICAgICAgICAgaWYgKG5ld0luZGV4ID4gbGFzdEluZGV4TWFwW3R5cGVdKSB7XG4gICAgICAgICAgICAgICAgbGFzdEluZGV4TWFwW3R5cGVdID0gbmV3SW5kZXg7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0VxdWFsKGVkaXRvciwgb2xkRWRpdG9yKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9sZERlc2NlbmRhbnRzID0gQXJyYXkuZnJvbShTbGF0ZU5vZGUuZGVzY2VuZGFudHMob2xkRWRpdG9yLCB7IHJldmVyc2U6IHRydWUgfSkpLm1hcChcbiAgICAgICAgICAoW2RdKSA9PiBkXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRSZXNwQXJlYUxpc3QgPSBkZXNjZW5kYW50cy5maWx0ZXIoaXNPZkN1cnJlbnRUeXBlKTtcbiAgICAgICAgY29uc3Qgb2xkUmVzcEFyZWFMaXN0ID0gb2xkRGVzY2VuZGFudHMuZmlsdGVyKGlzT2ZDdXJyZW50VHlwZSk7XG5cbiAgICAgICAgdG9vbGJhci5kaXNhYmxlZCA9IGN1cnJlbnRSZXNwQXJlYUxpc3QubGVuZ3RoID49IG9wdHMubWF4UmVzcG9uc2VBcmVhcztcblxuICAgICAgICBjb25zdCBhcnJheVRvRmlsdGVyID1cbiAgICAgICAgICBvbGRSZXNwQXJlYUxpc3QubGVuZ3RoID4gY3VycmVudFJlc3BBcmVhTGlzdC5sZW5ndGhcbiAgICAgICAgICAgID8gb2xkUmVzcEFyZWFMaXN0XG4gICAgICAgICAgICA6IGN1cnJlbnRSZXNwQXJlYUxpc3Q7XG4gICAgICAgIGNvbnN0IGFycmF5VG9Vc2VGb3JGaWx0ZXIgPVxuICAgICAgICAgIGFycmF5VG9GaWx0ZXIgPT09IG9sZFJlc3BBcmVhTGlzdCA/IGN1cnJlbnRSZXNwQXJlYUxpc3QgOiBvbGRSZXNwQXJlYUxpc3Q7XG5cbiAgICAgICAgY29uc3QgZWxlbWVudHNXaXRoQ2hhbmdlZFN0YXR1cyA9IGFycmF5VG9GaWx0ZXIuZmlsdGVyKFxuICAgICAgICAgIGQgPT4gIWFycmF5VG9Vc2VGb3JGaWx0ZXIuZmluZChlID0+IGUuZGF0YS5pbmRleCA9PT0gZC5kYXRhLmluZGV4KVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBlbGVtZW50c1dpdGhDaGFuZ2VkU3RhdHVzLmxlbmd0aCAmJlxuICAgICAgICAgIG9sZFJlc3BBcmVhTGlzdC5sZW5ndGggPiBjdXJyZW50UmVzcEFyZWFMaXN0Lmxlbmd0aFxuICAgICAgICApIHtcbiAgICAgICAgICBvcHRzLm9uSGFuZGxlQXJlYUNoYW5nZShlbGVtZW50c1dpdGhDaGFuZ2VkU3RhdHVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG9sZEVkaXRvciA9IGNsb25lRGVlcChlZGl0b3IpO1xuICAgICAgICBvbkNoYW5nZShvcHRpb25zKTtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBlZGl0b3I7XG4gICAgfSxcbiAgICBmaWx0ZXJQbHVnaW5zOiAobm9kZSwgcGx1Z2lucykgPT4ge1xuICAgICAgaWYgKG5vZGUudHlwZSA9PT0gJ2V4cGxpY2l0X2NvbnN0cnVjdGVkX3Jlc3BvbnNlJyB8fCBub2RlLnR5cGUgPT09ICdkcmFnX2luX3RoZV9ibGFuaycpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcGx1Z2lucy5maWx0ZXIocCA9PiBwLm5hbWUgIT09ICdyZXNwb25zZV9hcmVhJyk7XG4gICAgfSxcbiAgICBkZWxldGVOb2RlOiAoZSwgbm9kZSwgbm9kZVBhdGgsIGVkaXRvciwgb25DaGFuZ2UpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgZWRpdG9yLmFwcGx5KHtcbiAgICAgICAgdHlwZTogJ3JlbW92ZV9ub2RlJyxcbiAgICAgICAgcGF0aDogbm9kZVBhdGhcbiAgICAgIH0pO1xuXG4gICAgICBvbkNoYW5nZShlZGl0b3IpO1xuICAgIH0sXG4gICAgc3VwcG9ydHM6IG5vZGUgPT4gZWxUeXBlc0FycmF5LmluZGV4T2Yobm9kZS50eXBlKSA+PSAwLFxuICAgIHJlbmRlck5vZGUocHJvcHMpIHtcbiAgICAgIGNvbnN0IHsgYXR0cmlidXRlcywgbm9kZSB9ID0gcHJvcHM7XG5cbiAgICAgIGlmIChub2RlLnR5cGUgPT09ICdleHBsaWNpdF9jb25zdHJ1Y3RlZF9yZXNwb25zZScpIHtcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBub2RlO1xuICAgICAgICBsZXQgZXJyb3I7XG5cbiAgICAgICAgaWYgKG9wdHMuZXJyb3IpIHtcbiAgICAgICAgICBlcnJvciA9IG9wdHMuZXJyb3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPEV4cGxpY2l0Q29uc3RydWN0ZWRSZXNwb25zZVxuICAgICAgICAgICAgYXR0cmlidXRlcz17YXR0cmlidXRlc31cbiAgICAgICAgICAgIHZhbHVlPXtkYXRhLnZhbHVlfVxuICAgICAgICAgICAgZXJyb3I9e2Vycm9yICYmIGVycm9yW2RhdGEuaW5kZXhdICYmIGVycm9yW2RhdGEuaW5kZXhdWzBdfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICA8L0V4cGxpY2l0Q29uc3RydWN0ZWRSZXNwb25zZT5cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5vZGUudHlwZSA9PT0gJ2RyYWdfaW5fdGhlX2JsYW5rJykge1xuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IG5vZGU7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8RHJhZ0luVGhlQmxhbmtcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM9e2F0dHJpYnV0ZXN9XG4gICAgICAgICAgICBkYXRhPXtkYXRhfVxuICAgICAgICAgICAgbj17bm9kZX1cbiAgICAgICAgICAgIG5vZGVQcm9wcz17cHJvcHN9XG4gICAgICAgICAgICBvcHRzPXtvcHRzfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICA8L0RyYWdJblRoZUJsYW5rPlxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAobm9kZS50eXBlID09PSAnaW5saW5lX2Ryb3Bkb3duJykge1xuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IG5vZGU7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8SW5saW5lRHJvcGRvd24gYXR0cmlidXRlcz17YXR0cmlidXRlc30gc2VsZWN0ZWRJdGVtPXtkYXRhLnZhbHVlfT5cbiAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICA8L0lubGluZURyb3Bkb3duPlxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gICAgb25Ecm9wKGV2ZW50LCBjaGFuZ2UsIGVkaXRvcikge1xuICAgICAgY29uc3QgY2xvc2VzdEVsID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLWtleV0nKTtcbiAgICAgIGNvbnN0IGlubGluZSA9IGVkaXRvci52YWx1ZS5kb2N1bWVudC5maW5kRGVzY2VuZGFudChkID0+IGQua2V5ID09PSBjbG9zZXN0RWwuZGF0YXNldC5rZXkpO1xuXG4gICAgICBpZiAoaW5saW5lLnR5cGUgPT09ICdkcmFnX2luX3RoZV9ibGFuaycpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IHNlcmlhbGl6YXRpb24gPSB7XG4gIGRlc2VyaWFsaXplKGVsKSB7XG4gICAgY29uc3QgdHlwZSA9IGVsLmRhdGFzZXQgJiYgZWwuZGF0YXNldC50eXBlO1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdpbmxpbmVfZHJvcGRvd24nOlxuICAgICAgICByZXR1cm4ganN4KCdlbGVtZW50Jywge1xuICAgICAgICAgIHR5cGU6ICdpbmxpbmVfZHJvcGRvd24nLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGluZGV4OiBlbC5kYXRhc2V0LmluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGVsLmRhdGFzZXQudmFsdWVcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgY2FzZSAnZXhwbGljaXRfY29uc3RydWN0ZWRfcmVzcG9uc2UnOlxuICAgICAgICByZXR1cm4ganN4KCdlbGVtZW50Jywge1xuICAgICAgICAgIHR5cGU6ICdleHBsaWNpdF9jb25zdHJ1Y3RlZF9yZXNwb25zZScsXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgaW5kZXg6IGVsLmRhdGFzZXQuaW5kZXgsXG4gICAgICAgICAgICB2YWx1ZTogZWwuZGF0YXNldC52YWx1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICBjYXNlICdkcmFnX2luX3RoZV9ibGFuayc6XG4gICAgICAgIHJldHVybiBqc3goJ2VsZW1lbnQnLCB7XG4gICAgICAgICAgdHlwZTogJ2RyYWdfaW5fdGhlX2JsYW5rJyxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBpbmRleDogZWwuZGF0YXNldC5pbmRleCxcbiAgICAgICAgICAgIGlkOiBlbC5kYXRhc2V0LmlkLFxuICAgICAgICAgICAgdmFsdWU6IGVsLmRhdGFzZXQudmFsdWUsXG4gICAgICAgICAgICBpblRhYmxlOiBlbC5kYXRhc2V0LmluVGFibGVcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSxcbiAgc2VyaWFsaXplKG9iamVjdCkge1xuICAgIHN3aXRjaCAob2JqZWN0LnR5cGUpIHtcbiAgICAgIGNhc2UgJ2lubGluZV9kcm9wZG93bic6IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IG9iamVjdC5kYXRhO1xuXG4gICAgICAgIHJldHVybiA8c3BhbiBkYXRhLXR5cGU9XCJpbmxpbmVfZHJvcGRvd25cIiBkYXRhLWluZGV4PXtkYXRhLmluZGV4fSBkYXRhLXZhbHVlPXtkYXRhLnZhbHVlfSAvPjtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2V4cGxpY2l0X2NvbnN0cnVjdGVkX3Jlc3BvbnNlJzoge1xuICAgICAgICBjb25zdCBkYXRhID0gb2JqZWN0LmRhdGE7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgZGF0YS10eXBlPVwiZXhwbGljaXRfY29uc3RydWN0ZWRfcmVzcG9uc2VcIlxuICAgICAgICAgICAgZGF0YS1pbmRleD17ZGF0YS5pbmRleH1cbiAgICAgICAgICAgIGRhdGEtdmFsdWU9e2RhdGEudmFsdWV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2RyYWdfaW5fdGhlX2JsYW5rJzoge1xuICAgICAgICBjb25zdCBkYXRhID0gb2JqZWN0LmRhdGE7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgZGF0YS10eXBlPVwiZHJhZ19pbl90aGVfYmxhbmtcIlxuICAgICAgICAgICAgZGF0YS1pbmRleD17ZGF0YS5pbmRleH1cbiAgICAgICAgICAgIGRhdGEtaWQ9e2RhdGEuaWR9XG4gICAgICAgICAgICBkYXRhLXZhbHVlPXtkYXRhLnZhbHVlfVxuICAgICAgICAgICAgZGF0YS1pbi10YWJsZT17ZGF0YS5pblRhYmxlfVxuICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxJQUFNQSxHQUFHLEdBQUcsSUFBQUMsaUJBQUEsRUFBTSx5Q0FBTixDQUFaO0FBRUEsSUFBTUMsWUFBWSxHQUFHLEVBQXJCO0FBQ0EsSUFBTUMsVUFBVSxHQUFHO0VBQ2pCLG1CQUFtQixpQkFERjtFQUVqQixpQ0FBaUMsK0JBRmhCO0VBR2pCLHFCQUFxQjtBQUhKLENBQW5CO0FBS0EsSUFBTUMsWUFBWSxHQUFHQyxNQUFNLENBQUNDLE1BQVAsQ0FBY0gsVUFBZCxDQUFyQjs7QUFFZSxTQUFTSSxrQkFBVCxDQUE0QkMsSUFBNUIsRUFBa0M7RUFDL0MsSUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFBQyxDQUFDO0lBQUEsT0FBSUEsQ0FBQyxDQUFDQyxJQUFGLEtBQVdILElBQUksQ0FBQ0csSUFBaEIsSUFBd0JELENBQUMsQ0FBQ0MsSUFBRixLQUFXUixVQUFVLENBQUNLLElBQUksQ0FBQ0csSUFBTixDQUFqRDtFQUFBLENBQXpCOztFQUVBLElBQU1DLE9BQU8sR0FBRztJQUNkQyxJQUFJLGVBQUUsZ0NBQUMsa0JBQUQsT0FEUTtJQUVkQyxZQUFZLEVBQUU7TUFDWkMsTUFBTSxFQUFFO0lBREksQ0FGQTtJQUtkQyxPQUFPLEVBQUUsaUJBQUFDLE1BQU0sRUFBSTtNQUNqQmpCLEdBQUcsQ0FBQyxtQkFBRCxDQUFIO01BQ0EsSUFBTWtCLG1CQUFtQixHQUFHLEVB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