@payloadcms/richtext-lexical 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/components.js +4 -4
  2. package/dist/cell/index.js +4 -2
  3. package/dist/exports/components.js +4 -4
  4. package/dist/field/Field.d.ts.map +1 -1
  5. package/dist/field/Field.js +9 -3
  6. package/dist/field/features/BlockQuote/index.d.ts.map +1 -1
  7. package/dist/field/features/BlockQuote/index.js +8 -10
  8. package/dist/field/features/Blocks/component/BlockContent.js +4 -2
  9. package/dist/field/features/Blocks/component/index.js +5 -3
  10. package/dist/field/features/Blocks/drawer/index.js +8 -6
  11. package/dist/field/features/Blocks/index.js +4 -2
  12. package/dist/field/features/Blocks/nodes/BlocksNode.js +7 -5
  13. package/dist/field/features/Blocks/plugin/index.d.ts.map +1 -1
  14. package/dist/field/features/Blocks/plugin/index.js +7 -4
  15. package/dist/field/features/Heading/index.d.ts.map +1 -1
  16. package/dist/field/features/Heading/index.js +7 -7
  17. package/dist/field/features/Link/index.js +5 -3
  18. package/dist/field/features/Link/nodes/AutoLinkNode.js +4 -4
  19. package/dist/field/features/Link/nodes/LinkNode.d.ts.map +1 -1
  20. package/dist/field/features/Link/nodes/LinkNode.js +5 -5
  21. package/dist/field/features/Link/plugins/autoLink/index.d.ts.map +1 -1
  22. package/dist/field/features/Link/plugins/autoLink/index.js +7 -6
  23. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  24. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.js +32 -6
  25. package/dist/field/features/Link/plugins/floatingLinkEditor/index.js +4 -2
  26. package/dist/field/features/Paragraph/index.d.ts.map +1 -1
  27. package/dist/field/features/Paragraph/index.js +6 -8
  28. package/dist/field/features/Relationship/drawer/index.js +4 -2
  29. package/dist/field/features/Relationship/index.js +4 -2
  30. package/dist/field/features/Relationship/nodes/RelationshipNode.js +7 -5
  31. package/dist/field/features/Relationship/nodes/components/RelationshipComponent.js +4 -2
  32. package/dist/field/features/Relationship/plugins/index.d.ts.map +1 -1
  33. package/dist/field/features/Relationship/plugins/index.js +7 -4
  34. package/dist/field/features/Relationship/utils/EnabledRelationshipsCondition.js +4 -2
  35. package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.js +5 -3
  36. package/dist/field/features/Upload/component/index.js +5 -3
  37. package/dist/field/features/Upload/drawer/index.js +4 -2
  38. package/dist/field/features/Upload/index.js +5 -3
  39. package/dist/field/features/Upload/nodes/UploadNode.js +7 -5
  40. package/dist/field/features/Upload/plugin/index.d.ts.map +1 -1
  41. package/dist/field/features/Upload/plugin/index.js +7 -4
  42. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +4 -2
  43. package/dist/field/features/align/index.d.ts.map +1 -1
  44. package/dist/field/features/align/index.js +17 -2
  45. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +4 -2
  46. package/dist/field/features/converters/html/converter/index.js +4 -4
  47. package/dist/field/features/converters/html/field/index.js +3 -3
  48. package/dist/field/features/debug/TestRecorder/index.js +4 -2
  49. package/dist/field/features/debug/TestRecorder/plugin/index.js +7 -5
  50. package/dist/field/features/debug/TreeView/index.js +4 -2
  51. package/dist/field/features/debug/TreeView/plugin.js +4 -2
  52. package/dist/field/features/format/Bold/index.js +4 -2
  53. package/dist/field/features/format/InlineCode/index.js +4 -2
  54. package/dist/field/features/format/Italic/index.js +4 -2
  55. package/dist/field/features/format/strikethrough/index.js +4 -2
  56. package/dist/field/features/format/subscript/index.js +4 -2
  57. package/dist/field/features/format/superscript/index.js +4 -2
  58. package/dist/field/features/format/underline/index.js +4 -2
  59. package/dist/field/features/indent/index.js +4 -2
  60. package/dist/field/features/lists/CheckList/index.js +4 -2
  61. package/dist/field/features/lists/OrderedList/index.js +4 -2
  62. package/dist/field/features/lists/UnorderedList/index.js +4 -2
  63. package/dist/field/features/lists/common/markdown.js +4 -4
  64. package/dist/field/features/migrations/LexicalPluginToLexical/converter/index.js +6 -6
  65. package/dist/field/features/migrations/LexicalPluginToLexical/index.js +2 -2
  66. package/dist/field/features/migrations/LexicalPluginToLexical/nodes/unknownConvertedNode/index.js +7 -5
  67. package/dist/field/features/migrations/SlateToLexical/converter/index.js +8 -8
  68. package/dist/field/features/migrations/SlateToLexical/index.js +2 -2
  69. package/dist/field/features/migrations/SlateToLexical/nodes/unknownConvertedNode/index.js +7 -5
  70. package/dist/field/index.js +4 -2
  71. package/dist/field/lexical/EditorPlugin.js +4 -2
  72. package/dist/field/lexical/LexicalEditor.js +4 -2
  73. package/dist/field/lexical/LexicalProvider.js +4 -2
  74. package/dist/field/lexical/config/EditorConfigProvider.js +4 -2
  75. package/dist/field/lexical/config/default.js +7 -5
  76. package/dist/field/lexical/config/loader.js +4 -4
  77. package/dist/field/lexical/config/sanitize.js +4 -4
  78. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +4 -2
  79. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js +7 -5
  80. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +7 -5
  81. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +4 -2
  82. package/dist/field/lexical/plugins/MarkdownShortcut/index.js +4 -2
  83. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +7 -7
  84. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +13 -11
  85. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +4 -4
  86. package/dist/field/lexical/plugins/SlashMenu/index.js +4 -2
  87. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +1 -1
  88. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +59 -35
  89. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js +4 -2
  90. package/dist/field/lexical/theme/EditorTheme.d.ts.map +1 -1
  91. package/dist/field/lexical/theme/EditorTheme.js +2 -1
  92. package/dist/field/lexical/ui/ContentEditable.js +4 -2
  93. package/dist/field/lexical/ui/icons/AlignJustify/index.d.ts +3 -0
  94. package/dist/field/lexical/ui/icons/AlignJustify/index.d.ts.map +1 -0
  95. package/dist/field/lexical/ui/icons/AlignJustify/index.js +40 -0
  96. package/dist/field/lexical/utils/environment.js +15 -15
  97. package/dist/field/lexical/utils/nodeFormat.js +19 -19
  98. package/dist/field/lexical/utils/swipe.js +4 -4
  99. package/dist/index.js +194 -192
  100. package/package.json +14 -14
@@ -10,11 +10,11 @@ function _export(target, all) {
10
10
  });
11
11
  }
12
12
  _export(exports, {
13
- createLinkMatcherWithRegExp: function() {
14
- return createLinkMatcherWithRegExp;
15
- },
16
13
  AutoLinkPlugin: function() {
17
14
  return AutoLinkPlugin;
15
+ },
16
+ createLinkMatcherWithRegExp: function() {
17
+ return createLinkMatcherWithRegExp;
18
18
  }
19
19
  });
20
20
  const _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
@@ -185,14 +185,15 @@ function handleLinkCreation(nodes, matchers, onChange) {
185
185
  let currentNodes = [
186
186
  ...nodes
187
187
  ];
188
- let text = currentNodes.map((node)=>node.getTextContent()).join('');
188
+ const initialText = currentNodes.map((node)=>node.getTextContent()).join('');
189
+ let text = initialText;
189
190
  let match;
190
191
  let invalidMatchEnd = 0;
191
192
  while((match = findFirstMatch(text, matchers)) != null && match !== null){
192
193
  const matchStart = match.index;
193
194
  const matchLength = match.length;
194
195
  const matchEnd = matchStart + matchLength;
195
- const isValid = isContentAroundIsValid(invalidMatchEnd + matchStart, invalidMatchEnd + matchEnd, text, currentNodes);
196
+ const isValid = isContentAroundIsValid(invalidMatchEnd + matchStart, invalidMatchEnd + matchEnd, initialText, currentNodes);
196
197
  if (isValid) {
197
198
  const [matchingOffset, , matchingNodes, unmodifiedAfterNodes] = extractMatchingNodes(currentNodes, invalidMatchEnd + matchStart, invalidMatchEnd + matchEnd);
198
199
  const actualMatchStart = invalidMatchEnd + matchStart - matchingOffset;
@@ -332,4 +333,4 @@ function AutoLinkPlugin() {
332
333
  return null;
333
334
  }
334
335
 
335
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL3BsdWdpbnMvYXV0b0xpbmsvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHR5cGUgeyBFbGVtZW50Tm9kZSwgTGV4aWNhbEVkaXRvciwgTGV4aWNhbE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7IG1lcmdlUmVnaXN0ZXIgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7XG4gICRjcmVhdGVUZXh0Tm9kZSxcbiAgJGdldFNlbGVjdGlvbixcbiAgJGlzRWxlbWVudE5vZGUsXG4gICRpc0xpbmVCcmVha05vZGUsXG4gICRpc05vZGVTZWxlY3Rpb24sXG4gICRpc1JhbmdlU2VsZWN0aW9uLFxuICAkaXNUZXh0Tm9kZSxcbiAgVGV4dE5vZGUsXG59IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgaW52YXJpYW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbGV4aWNhbC91dGlscy9pbnZhcmlhbnQnXG5pbXBvcnQgeyAkY3JlYXRlQXV0b0xpbmtOb2RlLCAkaXNBdXRvTGlua05vZGUsIEF1dG9MaW5rTm9kZSB9IGZyb20gJy4uLy4uL25vZGVzL0F1dG9MaW5rTm9kZSdcbmltcG9ydCB7ICRpc0xpbmtOb2RlLCB0eXBlIExpbmtGaWVsZHMgfSBmcm9tICcuLi8uLi9ub2Rlcy9MaW5rTm9kZSdcblxudHlwZSBDaGFuZ2VIYW5kbGVyID0gKHVybDogbnVsbCB8IHN0cmluZywgcHJldlVybDogbnVsbCB8IHN0cmluZykgPT4gdm9pZFxuXG5pbnRlcmZhY2UgTGlua01hdGNoZXJSZXN1bHQge1xuICBmaWVsZHM/OiBMaW5rRmllbGRzXG4gIGluZGV4OiBudW1iZXJcbiAgbGVuZ3RoOiBudW1iZXJcbiAgdGV4dDogc3RyaW5nXG4gIHVybDogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIExpbmtNYXRjaGVyID0gKHRleHQ6IHN0cmluZykgPT4gTGlua01hdGNoZXJSZXN1bHQgfCBudWxsXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMaW5rTWF0Y2hlcldpdGhSZWdFeHAoXG4gIHJlZ0V4cDogUmVnRXhwLFxuICB1cmxUcmFuc2Zvcm1lcjogKHRleHQ6IHN0cmluZykgPT4gc3RyaW5nID0gKHRleHQpID0+IHRleHQsXG4pIHtcbiAgcmV0dXJuICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBtYXRjaCA9IHJlZ0V4cC5leGVjKHRleHQpXG4gICAgaWYgKG1hdGNoID09PSBudWxsKSByZXR1cm4gbnVsbFxuICAgIHJldHVybiB7XG4gICAgICBpbmRleDogbWF0Y2guaW5kZXgsXG4gICAgICBsZW5ndGg6IG1hdGNoWzBdLmxlbmd0aCxcbiAgICAgIHRleHQ6IG1hdGNoWzBdLFxuICAgICAgdXJsOiB1cmxUcmFuc2Zvcm1lcihtYXRjaFswXSksXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGZpbmRGaXJzdE1hdGNoKHRleHQ6IHN0cmluZywgbWF0Y2hlcnM6IExpbmtNYXRjaGVyW10pOiBMaW5rTWF0Y2hlclJlc3VsdCB8IG51bGwge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG1hdGNoZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgbWF0Y2ggPSBtYXRjaGVyc1tpXSh0ZXh0KVxuXG4gICAgaWYgKG1hdGNoICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBtYXRjaFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5cbmNvbnN0IFBVTkNUVUFUSU9OX09SX1NQQUNFID0gL1suLDtcXHNdL1xuXG5mdW5jdGlvbiBpc1NlcGFyYXRvcihjaGFyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIFBVTkNUVUFUSU9OX09SX1NQQUNFLnRlc3QoY2hhcilcbn1cblxuZnVuY3Rpb24gZW5kc1dpdGhTZXBhcmF0b3IodGV4dENvbnRlbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNTZXBhcmF0b3IodGV4dENvbnRlbnRbdGV4dENvbnRlbnQubGVuZ3RoIC0gMV0pXG59XG5cbmZ1bmN0aW9uIHN0YXJ0c1dpdGhTZXBhcmF0b3IodGV4dENvbnRlbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNTZXBhcmF0b3IodGV4dENvbnRlbnRbMF0pXG59XG5cbmZ1bmN0aW9uIGlzUHJldmlvdXNOb2RlVmFsaWQobm9kZTogTGV4aWNhbE5vZGUpOiBib29sZWFuIHtcbiAgbGV0IHByZXZpb3VzTm9kZSA9IG5vZGUuZ2V0UHJldmlvdXNTaWJsaW5nKClcbiAgaWYgKCRpc0VsZW1lbnROb2RlKHByZXZpb3VzTm9kZSkpIHtcbiAgICBwcmV2aW91c05vZGUgPSBwcmV2aW91c05vZGUuZ2V0TGFzdERlc2NlbmRhbnQoKVxuICB9XG4gIHJldHVybiAoXG4gICAgcHJldmlvdXNOb2RlID09PSBudWxsIHx8XG4gICAgJGlzTGluZUJyZWFrTm9kZShwcmV2aW91c05vZGUpIHx8XG4gICAgKCRpc1RleHROb2RlKHByZXZpb3VzTm9kZSkgJiYgZW5kc1dpdGhTZXBhcmF0b3IocHJldmlvdXNOb2RlLmdldFRleHRDb250ZW50KCkpKVxuICApXG59XG5cbmZ1bmN0aW9uIGlzTmV4dE5vZGVWYWxpZChub2RlOiBMZXhpY2FsTm9kZSk6IGJvb2xlYW4ge1xuICBsZXQgbmV4dE5vZGUgPSBub2RlLmdldE5leHRTaWJsaW5nKClcbiAgaWYgKCRpc0VsZW1lbnROb2RlKG5leHROb2RlKSkge1xuICAgIG5leHROb2RlID0gbmV4dE5vZGUuZ2V0Rmlyc3REZXNjZW5kYW50KClcbiAgfVxuICByZXR1cm4gKFxuICAgIG5leHROb2RlID09PSBudWxsIHx8XG4gICAgJGlzTGluZUJyZWFrTm9kZShuZXh0Tm9kZSkgfHxcbiAgICAoJGlzVGV4dE5vZGUobmV4dE5vZGUpICYmIHN0YXJ0c1dpdGhTZXBhcmF0b3IobmV4dE5vZGUuZ2V0VGV4dENvbnRlbnQoKSkpXG4gIClcbn1cblxuZnVuY3Rpb24gaXNDb250ZW50QXJvdW5kSXNWYWxpZChcbiAgbWF0Y2hTdGFydDogbnVtYmVyLFxuICBtYXRjaEVuZDogbnVtYmVyLFxuICB0ZXh0OiBzdHJpbmcsXG4gIG5vZGVzOiBUZXh0Tm9kZVtdLFxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IGNvbnRlbnRCZWZvcmVJc1ZhbGlkID1cbiAgICBtYXRjaFN0YXJ0ID4gMCA/IGlzU2VwYXJhdG9yKHRleHRbbWF0Y2hTdGFydCAtIDFdKSA6IGlzUHJldmlvdXNOb2RlVmFsaWQobm9kZXNbMF0pXG4gIGlmICghY29udGVudEJlZm9yZUlzVmFsaWQpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGNvbnRlbnRBZnRlcklzVmFsaWQgPVxuICAgIG1hdGNoRW5kIDwgdGV4dC5sZW5ndGggPyBpc1NlcGFyYXRvcih0ZXh0W21hdGNoRW5kXSkgOiBpc05leHROb2RlVmFsaWQobm9kZXNbbm9kZXMubGVuZ3RoIC0gMV0pXG4gIHJldHVybiBjb250ZW50QWZ0ZXJJc1ZhbGlkXG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RNYXRjaGluZ05vZGVzKFxuICBub2RlczogVGV4dE5vZGVbXSxcbiAgc3RhcnRJbmRleDogbnVtYmVyLFxuICBlbmRJbmRleDogbnVtYmVyLFxuKTogW1xuICBtYXRjaGluZ09mZnNldDogbnVtYmVyLFxuICB1bm1vZGlmaWVkQmVmb3JlTm9kZXM6IFRleHROb2RlW10sXG4gIG1hdGNoaW5nTm9kZXM6IFRleHROb2RlW10sXG4gIHVubW9kaWZpZWRBZnRlck5vZGVzOiBUZXh0Tm9kZVtdLFxuXSB7XG4gIGNvbnN0IHVubW9kaWZpZWRCZWZvcmVOb2RlczogVGV4dE5vZGVbXSA9IFtdXG4gIGNvbnN0IG1hdGNoaW5nTm9kZXM6IFRleHROb2RlW10gPSBbXVxuICBjb25zdCB1bm1vZGlmaWVkQWZ0ZXJOb2RlczogVGV4dE5vZGVbXSA9IFtdXG4gIGxldCBtYXRjaGluZ09mZnNldCA9IDBcblxuICBsZXQgY3VycmVudE9mZnNldCA9IDBcbiAgY29uc3QgY3VycmVudE5vZGVzID0gWy4uLm5vZGVzXVxuXG4gIHdoaWxlIChjdXJyZW50Tm9kZXMubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGN1cnJlbnROb2RlID0gY3VycmVudE5vZGVzWzBdXG4gICAgY29uc3QgY3VycmVudE5vZGVUZXh0ID0gY3VycmVudE5vZGUuZ2V0VGV4dENvbnRlbnQoKVxuICAgIGNvbnN0IGN1cnJlbnROb2RlTGVuZ3RoID0gY3VycmVudE5vZGVUZXh0Lmxlbmd0aFxuICAgIGNvbnN0IGN1cnJlbnROb2RlU3RhcnQgPSBjdXJyZW50T2Zmc2V0XG4gICAgY29uc3QgY3VycmVudE5vZGVFbmQgPSBjdXJyZW50T2Zmc2V0ICsgY3VycmVudE5vZGVMZW5ndGhcblxuICAgIGlmIChjdXJyZW50Tm9kZUVuZCA8PSBzdGFydEluZGV4KSB7XG4gICAgICB1bm1vZGlmaWVkQmVmb3JlTm9kZXMucHVzaChjdXJyZW50Tm9kZSlcbiAgICAgIG1hdGNoaW5nT2Zmc2V0ICs9IGN1cnJlbnROb2RlTGVuZ3RoXG4gICAgfSBlbHNlIGlmIChjdXJyZW50Tm9kZVN0YXJ0ID49IGVuZEluZGV4KSB7XG4gICAgICB1bm1vZGlmaWVkQWZ0ZXJOb2Rlcy5wdXNoKGN1cnJlbnROb2RlKVxuICAgIH0gZWxzZSB7XG4gICAgICBtYXRjaGluZ05vZGVzLnB1c2goY3VycmVudE5vZGUpXG4gICAgfVxuICAgIGN1cnJlbnRPZmZzZXQgKz0gY3VycmVudE5vZGVMZW5ndGhcbiAgICBjdXJyZW50Tm9kZXMuc2hpZnQoKVxuICB9XG4gIHJldHVybiBbbWF0Y2hpbmdPZmZzZXQsIHVubW9kaWZpZWRCZWZvcmVOb2RlcywgbWF0Y2hpbmdOb2RlcywgdW5tb2RpZmllZEFmdGVyTm9kZXNdXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUF1dG9MaW5rTm9kZShcbiAgbm9kZXM6IFRleHROb2RlW10sXG4gIHN0YXJ0SW5kZXg6IG51bWJlcixcbiAgZW5kSW5kZXg6IG51bWJlcixcbiAgbWF0Y2g6IExpbmtNYXRjaGVyUmVzdWx0LFxuKTogVGV4dE5vZGUgfCB1bmRlZmluZWQge1xuICBjb25zdCBmaWVsZHM6IExpbmtGaWVsZHMgPSB7XG4gICAgbGlua1R5cGU6ICdjdXN0b20nLFxuICAgIHVybDogbWF0Y2gudXJsLFxuICAgIC4uLm1hdGNoLmZpZWxkcyxcbiAgfVxuXG4gIGNvbnN0IGxpbmtOb2RlID0gJGNyZWF0ZUF1dG9MaW5rTm9kZSh7IGZpZWxkcyB9KVxuICBpZiAobm9kZXMubGVuZ3RoID09PSAxKSB7XG4gICAgbGV0IHJlbWFpbmluZ1RleHROb2RlID0gbm9kZXNbMF1cbiAgICBsZXQgbGlua1RleHROb2RlXG4gICAgaWYgKHN0YXJ0SW5kZXggPT09IDApIHtcbiAgICAgIDtbbGlua1RleHROb2RlLCByZW1haW5pbmdUZXh0Tm9kZV0gPSByZW1haW5pbmdUZXh0Tm9kZS5zcGxpdFRleHQoZW5kSW5kZXgpXG4gICAgfSBlbHNlIHtcbiAgICAgIDtbLCBsaW5rVGV4dE5vZGUsIHJlbWFpbmluZ1RleHROb2RlXSA9IHJlbWFpbmluZ1RleHROb2RlLnNwbGl0VGV4dChzdGFydEluZGV4LCBlbmRJbmRleClcbiAgICB9XG4gICAgY29uc3QgdGV4dE5vZGUgPSAkY3JlYXRlVGV4dE5vZGUobWF0Y2gudGV4dClcbiAgICB0ZXh0Tm9kZS5zZXRGb3JtYXQobGlua1RleHROb2RlLmdldEZvcm1hdCgpKVxuICAgIHRleHROb2RlLnNldERldGFpbChsaW5rVGV4dE5vZGUuZ2V0RGV0YWlsKCkpXG4gICAgbGlua05vZGUuYXBwZW5kKHRleHROb2RlKVxuICAgIGxpbmtUZXh0Tm9kZS5yZXBsYWNlKGxpbmtOb2RlKVxuICAgIHJldHVybiByZW1haW5pbmdUZXh0Tm9kZVxuICB9IGVsc2UgaWYgKG5vZGVzLmxlbmd0aCA+IDEpIHtcbiAgICBjb25zdCBmaXJzdFRleHROb2RlID0gbm9kZXNbMF1cbiAgICBsZXQgb2Zmc2V0ID0gZmlyc3RUZXh0Tm9kZS5nZXRUZXh0Q29udGVudCgpLmxlbmd0aFxuICAgIGxldCBmaXJzdExpbmtUZXh0Tm9kZVxuICAgIGlmIChzdGFydEluZGV4ID09PSAwKSB7XG4gICAgICBmaXJzdExpbmtUZXh0Tm9kZSA9IGZpcnN0VGV4dE5vZGVcbiAgICB9IGVsc2Uge1xuICAgICAgO1ssIGZpcnN0TGlua1RleHROb2RlXSA9IGZpcnN0VGV4dE5vZGUuc3BsaXRUZXh0KHN0YXJ0SW5kZXgpXG4gICAgfVxuICAgIGNvbnN0IGxpbmtOb2RlcyA9IFtdXG4gICAgbGV0IHJlbWFpbmluZ1RleHROb2RlXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY3VycmVudE5vZGUgPSBub2Rlc1tpXVxuICAgICAgY29uc3QgY3VycmVudE5vZGVUZXh0ID0gY3VycmVudE5vZGUuZ2V0VGV4dENvbnRlbnQoKVxuICAgICAgY29uc3QgY3VycmVudE5vZGVMZW5ndGggPSBjdXJyZW50Tm9kZVRleHQubGVuZ3RoXG4gICAgICBjb25zdCBjdXJyZW50Tm9kZVN0YXJ0ID0gb2Zmc2V0XG4gICAgICBjb25zdCBjdXJyZW50Tm9kZUVuZCA9IG9mZnNldCArIGN1cnJlbnROb2RlTGVuZ3RoXG4gICAgICBpZiAoY3VycmVudE5vZGVTdGFydCA8IGVuZEluZGV4KSB7XG4gICAgICAgIGlmIChjdXJyZW50Tm9kZUVuZCA8PSBlbmRJbmRleCkge1xuICAgICAgICAgIGxpbmtOb2Rlcy5wdXNoKGN1cnJlbnROb2RlKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IFtsaW5rVGV4dE5vZGUsIGVuZE5vZGVdID0gY3VycmVudE5vZGUuc3BsaXRUZXh0KGVuZEluZGV4IC0gY3VycmVudE5vZGVTdGFydClcbiAgICAgICAgICBsaW5rTm9kZXMucHVzaChsaW5rVGV4dE5vZGUpXG4gICAgICAgICAgcmVtYWluaW5nVGV4dE5vZGUgPSBlbmROb2RlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG9mZnNldCArPSBjdXJyZW50Tm9kZUxlbmd0aFxuICAgIH1cbiAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICBjb25zdCBzZWxlY3RlZFRleHROb2RlID0gc2VsZWN0aW9uID8gc2VsZWN0aW9uLmdldE5vZGVzKCkuZmluZCgkaXNUZXh0Tm9kZSkgOiB1bmRlZmluZWRcbiAgICBjb25zdCB0ZXh0Tm9kZSA9ICRjcmVhdGVUZXh0Tm9kZShmaXJzdExpbmtUZXh0Tm9kZS5nZXRUZXh0Q29udGVudCgpKVxuICAgIHRleHROb2RlLnNldEZvcm1hdChmaXJzdExpbmtUZXh0Tm9kZS5nZXRGb3JtYXQoKSlcbiAgICB0ZXh0Tm9kZS5zZXREZXRhaWwoZmlyc3RMaW5rVGV4dE5vZGUuZ2V0RGV0YWlsKCkpXG4gICAgbGlua05vZGUuYXBwZW5kKHRleHROb2RlLCAuLi5saW5rTm9kZXMpXG4gICAgLy8gaXQgZG9lcyBub3QgcHJlc2VydmUgY2FyZXQgcG9zaXRpb24gaWYgY2FyZXQgd2FzIGF0IHRoZSBmaXJzdCB0ZXh0IG5vZGVcbiAgICAvLyBzbyB3ZSBuZWVkIHRvIHJlc3RvcmUgY2FyZXQgcG9zaXRpb25cbiAgICBpZiAoc2VsZWN0ZWRUZXh0Tm9kZSAmJiBzZWxlY3RlZFRleHROb2RlID09PSBmaXJzdExpbmtUZXh0Tm9kZSkge1xuICAgICAgaWYgKCRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgICAgdGV4dE5vZGUuc2VsZWN0KHNlbGVjdGlvbi5hbmNob3Iub2Zmc2V0LCBzZWxlY3Rpb24uZm9jdXMub2Zmc2V0KVxuICAgICAgfSBlbHNlIGlmICgkaXNOb2RlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgICAgdGV4dE5vZGUuc2VsZWN0KDAsIHRleHROb2RlLmdldFRleHRDb250ZW50KCkubGVuZ3RoKVxuICAgICAgfVxuICAgIH1cbiAgICBmaXJzdExpbmtUZXh0Tm9kZS5yZXBsYWNlKGxpbmtOb2RlKVxuICAgIHJldHVybiByZW1haW5pbmdUZXh0Tm9kZVxuICB9XG4gIHJldHVybiB1bmRlZmluZWRcbn1cblxuZnVuY3Rpb24gaGFuZGxlTGlua0NyZWF0aW9uKFxuICBub2RlczogVGV4dE5vZGVbXSxcbiAgbWF0Y2hlcnM6IExpbmtNYXRjaGVyW10sXG4gIG9uQ2hhbmdlOiBDaGFuZ2VIYW5kbGVyLFxuKTogdm9pZCB7XG4gIGxldCBjdXJyZW50Tm9kZXMgPSBbLi4ubm9kZXNdXG4gIGxldCB0ZXh0ID0gY3VycmVudE5vZGVzLm1hcCgobm9kZSkgPT4gbm9kZS5nZXRUZXh0Q29udGVudCgpKS5qb2luKCcnKVxuXG4gIGxldCBtYXRjaFxuICBsZXQgaW52YWxpZE1hdGNoRW5kID0gMFxuXG4gIHdoaWxlICgobWF0Y2ggPSBmaW5kRmlyc3RNYXRjaCh0ZXh0LCBtYXRjaGVycykpICE9IG51bGwgJiYgbWF0Y2ggIT09IG51bGwpIHtcbiAgICBjb25zdCBtYXRjaFN0YXJ0OiBudW1iZXIgPSBtYXRjaC5pbmRleFxuICAgIGNvbnN0IG1hdGNoTGVuZ3RoOiBudW1iZXIgPSBtYXRjaC5sZW5ndGhcbiAgICBjb25zdCBtYXRjaEVuZCA9IG1hdGNoU3RhcnQgKyBtYXRjaExlbmd0aFxuICAgIGNvbnN0IGlzVmFsaWQgPSBpc0NvbnRlbnRBcm91bmRJc1ZhbGlkKFxuICAgICAgaW52YWxpZE1hdGNoRW5kICsgbWF0Y2hTdGFydCxcbiAgICAgIGludmFsaWRNYXRjaEVuZCArIG1hdGNoRW5kLFxuICAgICAgdGV4dCxcbiAgICAgIGN1cnJlbnROb2RlcyxcbiAgICApXG5cbiAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgY29uc3QgW21hdGNoaW5nT2Zmc2V0LCAsIG1hdGNoaW5nTm9kZXMsIHVubW9kaWZpZWRBZnRlck5vZGVzXSA9IGV4dHJhY3RNYXRjaGluZ05vZGVzKFxuICAgICAgICBjdXJyZW50Tm9kZXMsXG4gICAgICAgIGludmFsaWRNYXRjaEVuZCArIG1hdGNoU3RhcnQsXG4gICAgICAgIGludmFsaWRNYXRjaEVuZCArIG1hdGNoRW5kLFxuICAgICAgKVxuXG4gICAgICBjb25zdCBhY3R1YWxNYXRjaFN0YXJ0ID0gaW52YWxpZE1hdGNoRW5kICsgbWF0Y2hTdGFydCAtIG1hdGNoaW5nT2Zmc2V0XG4gICAgICBjb25zdCBhY3R1YWxNYXRjaEVuZCA9IGludmFsaWRNYXRjaEVuZCArIG1hdGNoRW5kIC0gbWF0Y2hpbmdPZmZzZXRcbiAgICAgIGNvbnN0IHJlbWFpbmluZ1RleHROb2RlID0gY3JlYXRlQXV0b0xpbmtOb2RlKFxuICAgICAgICBtYXRjaGluZ05vZGVzLFxuICAgICAgICBhY3R1YWxNYXRjaFN0YXJ0LFxuICAgICAgICBhY3R1YWxNYXRjaEVuZCxcbiAgICAgICAgbWF0Y2gsXG4gICAgICApXG4gICAgICBjdXJyZW50Tm9kZXMgPSByZW1haW5pbmdUZXh0Tm9kZVxuICAgICAgICA/IFtyZW1haW5pbmdUZXh0Tm9kZSwgLi4udW5tb2RpZmllZEFmdGVyTm9kZXNdXG4gICAgICAgIDogdW5tb2RpZmllZEFmdGVyTm9kZXNcbiAgICAgIG9uQ2hhbmdlKG1hdGNoLnVybCwgbnVsbClcbiAgICAgIGludmFsaWRNYXRjaEVuZCA9IDBcbiAgICB9IGVsc2Uge1xuICAgICAgaW52YWxpZE1hdGNoRW5kICs9IG1hdGNoRW5kXG4gICAgfVxuXG4gICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKG1hdGNoRW5kKVxuICB9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUxpbmtFZGl0KFxuICBsaW5rTm9kZTogQXV0b0xpbmtOb2RlLFxuICBtYXRjaGVyczogTGlua01hdGNoZXJbXSxcbiAgb25DaGFuZ2U6IENoYW5nZUhhbmRsZXIsXG4pOiB2b2lkIHtcbiAgLy8gQ2hlY2sgY2hpbGRyZW4gYXJlIHNpbXBsZSB0ZXh0XG4gIGNvbnN0IGNoaWxkcmVuID0gbGlua05vZGUuZ2V0Q2hpbGRyZW4oKVxuICBjb25zdCBjaGlsZHJlbkxlbmd0aCA9IGNoaWxkcmVuLmxlbmd0aFxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuTGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjaGlsZCA9IGNoaWxkcmVuW2ldXG4gICAgaWYgKCEkaXNUZXh0Tm9kZShjaGlsZCkgfHwgIWNoaWxkLmlzU2ltcGxlVGV4dCgpKSB7XG4gICAgICByZXBsYWNlV2l0aENoaWxkcmVuKGxpbmtOb2RlKVxuICAgICAgb25DaGFuZ2UobnVsbCwgbGlua05vZGUuZ2V0RmllbGRzKCk/LnVybCA/PyBudWxsKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgdGV4dCBjb250ZW50IGZ1bGx5IG1hdGNoZXNcbiAgY29uc3QgdGV4dCA9IGxpbmtOb2RlLmdldFRleHRDb250ZW50KClcbiAgY29uc3QgbWF0Y2ggPSBmaW5kRmlyc3RNYXRjaCh0ZXh0LCBtYXRjaGVycylcbiAgaWYgKG1hdGNoID09PSBudWxsIHx8IG1hdGNoLnRleHQgIT09IHRleHQpIHtcbiAgICByZXBsYWNlV2l0aENoaWxkcmVuKGxpbmtOb2RlKVxuICAgIG9uQ2hhbmdlKG51bGwsIGxpbmtOb2RlLmdldEZpZWxkcygpPy51cmwgPz8gbnVsbClcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8vIENoZWNrIG5laWdoYm9yc1xuICBpZiAoIWlzUHJldmlvdXNOb2RlVmFsaWQobGlua05vZGUpIHx8ICFpc05leHROb2RlVmFsaWQobGlua05vZGUpKSB7XG4gICAgcmVwbGFjZVdpdGhDaGlsZHJlbihsaW5rTm9kZSlcbiAgICBvbkNoYW5nZShudWxsLCBsaW5rTm9kZS5nZXRGaWVsZHMoKT8udXJsID8/IG51bGwpXG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCB1cmwgPSBsaW5rTm9kZS5nZXRGaWVsZHMoKT8udXJsXG4gIGlmICh1cmwgIT09IG1hdGNoPy51cmwpIHtcbiAgICBjb25zdCBmbGRzID0gbGlua05vZGUuZ2V0RmllbGRzKClcbiAgICBmbGRzLnVybCA9IG1hdGNoPy51cmxcbiAgICBsaW5rTm9kZS5zZXRGaWVsZHMoZmxkcylcbiAgICBvbkNoYW5nZShtYXRjaC51cmwsIHVybCA/PyBudWxsKVxuICB9XG59XG5cbi8vIEJhZCBuZWlnaGJvcnMgYXJlIGVkaXRzIGluIG5laWdoYm9yIG5vZGVzIHRoYXQgbWFrZSBBdXRvTGlua3MgaW5jb21wYXRpYmxlLlxuLy8gR2l2ZW4gdGhlIGNyZWF0aW9uIHByZWNvbmRpdGlvbnMsIHRoZXNlIGNhbiBvbmx5IGJlIHNpbXBsZSB0ZXh0IG5vZGVzLlxuZnVuY3Rpb24gaGFuZGxlQmFkTmVpZ2hib3JzKFxuICB0ZXh0Tm9kZTogVGV4dE5vZGUsXG4gIG1hdGNoZXJzOiBMaW5rTWF0Y2hlcltdLFxuICBvbkNoYW5nZTogQ2hhbmdlSGFuZGxlcixcbik6IHZvaWQge1xuICBjb25zdCBwcmV2aW91c1NpYmxpbmcgPSB0ZXh0Tm9kZS5nZXRQcmV2aW91c1NpYmxpbmcoKVxuICBjb25zdCBuZXh0U2libGluZyA9IHRleHROb2RlLmdldE5leHRTaWJsaW5nKClcbiAgY29uc3QgdGV4dCA9IHRleHROb2RlLmdldFRleHRDb250ZW50KClcblxuICBpZiAoJGlzQXV0b0xpbmtOb2RlKHByZXZpb3VzU2libGluZykgJiYgIXN0YXJ0c1dpdGhTZXBhcmF0b3IodGV4dCkpIHtcbiAgICBwcmV2aW91c1NpYmxpbmcuYXBwZW5kKHRleHROb2RlKVxuICAgIGhhbmRsZUxpbmtFZGl0KHByZXZpb3VzU2libGluZywgbWF0Y2hlcnMsIG9uQ2hhbmdlKVxuICAgIG9uQ2hhbmdlKG51bGwsIHByZXZpb3VzU2libGluZy5nZXRGaWVsZHMoKT8udXJsID8/IG51bGwpXG4gIH1cblxuICBpZiAoJGlzQXV0b0xpbmtOb2RlKG5leHRTaWJsaW5nKSAmJiAhZW5kc1dpdGhTZXBhcmF0b3IodGV4dCkpIHtcbiAgICByZXBsYWNlV2l0aENoaWxkcmVuKG5leHRTaWJsaW5nKVxuICAgIGhhbmRsZUxpbmtFZGl0KG5leHRTaWJsaW5nLCBtYXRjaGVycywgb25DaGFuZ2UpXG4gICAgb25DaGFuZ2UobnVsbCwgbmV4dFNpYmxpbmcuZ2V0RmllbGRzKCk/LnVybCA/PyBudWxsKVxuICB9XG59XG5cbmZ1bmN0aW9uIHJlcGxhY2VXaXRoQ2hpbGRyZW4obm9kZTogRWxlbWVudE5vZGUpOiBMZXhpY2FsTm9kZVtdIHtcbiAgY29uc3QgY2hpbGRyZW4gPSBub2RlLmdldENoaWxkcmVuKClcbiAgY29uc3QgY2hpbGRyZW5MZW5ndGggPSBjaGlsZHJlbi5sZW5ndGhcblxuICBmb3IgKGxldCBqID0gY2hpbGRyZW5MZW5ndGggLSAxOyBqID49IDA7IGotLSkge1xuICAgIG5vZGUuaW5zZXJ0QWZ0ZXIoY2hpbGRyZW5bal0pXG4gIH1cblxuICBub2RlLnJlbW92ZSgpXG4gIHJldHVybiBjaGlsZHJlbi5tYXAoKGNoaWxkKSA9PiBjaGlsZC5nZXRMYXRlc3QoKSlcbn1cblxuZnVuY3Rpb24gZ2V0VGV4dE5vZGVzVG9NYXRjaCh0ZXh0Tm9kZTogVGV4dE5vZGUpOiBUZXh0Tm9kZVtdIHtcbiAgLy8gY2hlY2sgaWYgbmV4dCBzaWJsaW5ncyBhcmUgc2ltcGxlIHRleHQgbm9kZXMgdGlsbCBhIG5vZGUgY29udGFpbnMgYSBzcGFjZSBzZXBhcmF0b3JcbiAgY29uc3QgdGV4dE5vZGVzVG9NYXRjaCA9IFt0ZXh0Tm9kZV1cbiAgbGV0IG5leHRTaWJsaW5nID0gdGV4dE5vZGUuZ2V0TmV4dFNpYmxpbmcoKVxuICB3aGlsZSAobmV4dFNpYmxpbmcgIT09IG51bGwgJiYgJGlzVGV4dE5vZGUobmV4dFNpYmxpbmcpICYmIG5leHRTaWJsaW5nLmlzU2ltcGxlVGV4dCgpKSB7XG4gICAgdGV4dE5vZGVzVG9NYXRjaC5wdXNoKG5leHRTaWJsaW5nKVxuICAgIGlmICgvXFxzLy50ZXN0KG5leHRTaWJsaW5nLmdldFRleHRDb250ZW50KCkpKSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgICBuZXh0U2libGluZyA9IG5leHRTaWJsaW5nLmdldE5leHRTaWJsaW5nKClcbiAgfVxuICByZXR1cm4gdGV4dE5vZGVzVG9NYXRjaFxufVxuXG5mdW5jdGlvbiB1c2VBdXRvTGluayhcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yLFxuICBtYXRjaGVyczogTGlua01hdGNoZXJbXSxcbiAgb25DaGFuZ2U/OiBDaGFuZ2VIYW5kbGVyLFxuKTogdm9pZCB7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFlZGl0b3IuaGFzTm9kZXMoW0F1dG9MaW5rTm9kZV0pKSB7XG4gICAgICBpbnZhcmlhbnQoZmFsc2UsICdMZXhpY2FsQXV0b0xpbmtQbHVnaW46IEF1dG9MaW5rTm9kZSBub3QgcmVnaXN0ZXJlZCBvbiBlZGl0b3InKVxuICAgIH1cblxuICAgIGNvbnN0IG9uQ2hhbmdlV3JhcHBlZCA9ICh1cmw6IG51bGwgfCBzdHJpbmcsIHByZXZVcmw6IG51bGwgfCBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgIGlmIChvbkNoYW5nZSAhPSBudWxsKSB7XG4gICAgICAgIG9uQ2hhbmdlKHVybCwgcHJldlVybClcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3Rlck5vZGVUcmFuc2Zvcm0oVGV4dE5vZGUsICh0ZXh0Tm9kZTogVGV4dE5vZGUpID0+IHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGV4dE5vZGUuZ2V0UGFyZW50T3JUaHJvdygpXG4gICAgICAgIGNvbnN0IHByZXZpb3VzID0gdGV4dE5vZGUuZ2V0UHJldmlvdXNTaWJsaW5nKClcbiAgICAgICAgaWYgKCRpc0F1dG9MaW5rTm9kZShwYXJlbnQpKSB7XG4gICAgICAgICAgaGFuZGxlTGlua0VkaXQocGFyZW50LCBtYXRjaGVycywgb25DaGFuZ2VXcmFwcGVkKVxuICAgICAgICB9IGVsc2UgaWYgKCEkaXNMaW5rTm9kZShwYXJlbnQpKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGV4dE5vZGUuaXNTaW1wbGVUZXh0KCkgJiZcbiAgICAgICAgICAgIChzdGFydHNXaXRoU2VwYXJhdG9yKHRleHROb2RlLmdldFRleHRDb250ZW50KCkpIHx8ICEkaXNBdXRvTGlua05vZGUocHJldmlvdXMpKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgdGV4dE5vZGVzVG9NYXRjaCA9IGdldFRleHROb2Rlc1RvTWF0Y2godGV4dE5vZGUpXG4gICAgICAgICAgICBoYW5kbGVMaW5rQ3JlYXRpb24odGV4dE5vZGVzVG9NYXRjaCwgbWF0Y2hlcnMsIG9uQ2hhbmdlV3JhcHBlZClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBoYW5kbGVCYWROZWlnaGJvcnModGV4dE5vZGUsIG1hdGNoZXJzLCBvbkNoYW5nZVdyYXBwZWQpXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgIClcbiAgfSwgW2VkaXRvciwgbWF0Y2hlcnMsIG9uQ2hhbmdlXSlcbn1cblxuY29uc3QgVVJMX1JFR0VYID1cbiAgLygoaHR0cHM/OlxcL1xcLyh3d3dcXC4pPyl8KHd3d1xcLikpWy1cXHdAOiUuK34jPV17MSwyNTZ9XFwuW2EtekEtWlxcZCgpXXsxLDZ9XFxiKFstXFx3KClAOiUrLn4jPyYvPV0qKS9cblxuY29uc3QgRU1BSUxfUkVHRVggPVxuICAvKChbXjw+KClbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClbXFxdXFxcXC4sOzpcXHNAXCJdKykqKXwoXCIuK1wiKSlAKChcXFtcXGR7MSwzfVxcLlxcZHsxLDN9XFwuXFxkezEsM31cXC5cXGR7MSwzfVxcXSl8KChbYS16QS1aXFwtXFxkXStcXC4pK1thLXpBLVpdezIsfSkpL1xuXG5jb25zdCBNQVRDSEVSUyA9IFtcbiAgY3JlYXRlTGlua01hdGNoZXJXaXRoUmVnRXhwKFVSTF9SRUdFWCwgKHRleHQpID0+IHtcbiAgICByZXR1cm4gdGV4dC5zdGFydHNXaXRoKCdodHRwJykgPyB0ZXh0IDogYGh0dHBzOi8vJHt0ZXh0fWBcbiAgfSksXG4gIGNyZWF0ZUxpbmtNYXRjaGVyV2l0aFJlZ0V4cChFTUFJTF9SRUdFWCwgKHRleHQpID0+IHtcbiAgICByZXR1cm4gYG1haWx0bzoke3RleHR9YFxuICB9KSxcbl1cblxuZXhwb3J0IGZ1bmN0aW9uIEF1dG9MaW5rUGx1Z2luKCk6IEpTWC5FbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG5cbiAgdXNlQXV0b0xpbmsoZWRpdG9yLCBNQVRDSEVSUylcblxuICByZXR1cm4gbnVsbFxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZUxpbmtNYXRjaGVyV2l0aFJlZ0V4cCIsIkF1dG9MaW5rUGx1Z2luIiwicmVnRXhwIiwidXJsVHJhbnNmb3JtZXIiLCJ0ZXh0IiwibWF0Y2giLCJleGVjIiwiaW5kZXgiLCJsZW5ndGgiLCJ1cmwiLCJmaW5kRmlyc3RNYXRjaCIsIm1hdGNoZXJzIiwiaSIsIlBVTkNUVUFUSU9OX09SX1NQQUNFIiwiaXNTZXBhcmF0b3IiLCJjaGFyIiwidGVzdCIsImVuZHNXaXRoU2VwYXJhdG9yIiwidGV4dENvbnRlbnQiLCJzdGFydHNXaXRoU2VwYXJhdG9yIiwiaXNQcmV2aW91c05vZGVWYWxpZCIsIm5vZGUiLCJwcmV2aW91c05vZGUiLCJnZXRQcmV2aW91c1NpYmxpbmciLCIkaXNFbGVtZW50Tm9kZSIsImdldExhc3REZXNjZW5kYW50IiwiJGlzTGluZUJyZWFrTm9kZSIsIiRpc1RleHROb2RlIiwiZ2V0VGV4dENvbnRlbnQiLCJpc05leHROb2RlVmFsaWQiLCJuZXh0Tm9kZSIsImdldE5leHRTaWJsaW5nIiwiZ2V0Rmlyc3REZXNjZW5kYW50IiwiaXNDb250ZW50QXJvdW5kSXNWYWxpZCIsIm1hdGNoU3RhcnQiLCJtYXRjaEVuZCIsIm5vZGVzIiwiY29udGVudEJlZm9yZUlzVmFsaWQiLCJjb250ZW50QWZ0ZXJJc1ZhbGlkIiwiZXh0cmFjdE1hdGNoaW5nTm9kZXMiLCJzdGFydEluZGV4IiwiZW5kSW5kZXgiLCJ1bm1vZGlmaWVkQmVmb3JlTm9kZXMiLCJtYXRjaGluZ05vZGVzIiwidW5tb2RpZmllZEFmdGVyTm9kZXMiLCJtYXRjaGluZ09mZnNldCIsImN1cnJlbnRPZmZzZXQiLCJjdXJyZW50Tm9kZXMiLCJjdXJyZW50Tm9kZSIsImN1cnJlbnROb2RlVGV4dCIsImN1cnJlbnROb2RlTGVuZ3RoIiwiY3VycmVudE5vZGVTdGFydCIsImN1cnJlbnROb2RlRW5kIiwicHVzaCIsInNoaWZ0IiwiY3JlYXRlQXV0b0xpbmtOb2RlIiwiZmllbGRzIiwibGlua1R5cGUiLCJsaW5rTm9kZSIsIiRjcmVhdGVBdXRvTGlua05vZGUiLCJyZW1haW5pbmdUZXh0Tm9kZSIsImxpbmtUZXh0Tm9kZSIsInNwbGl0VGV4dCIsInRleHROb2RlIiwiJGNyZWF0ZVRleHROb2RlIiwic2V0Rm9ybWF0IiwiZ2V0Rm9ybWF0Iiwic2V0RGV0YWlsIiwiZ2V0RGV0YWlsIiwiYXBwZW5kIiwicmVwbGFjZSIsImZpcnN0VGV4dE5vZGUiLCJvZmZzZXQiLCJmaXJzdExpbmtUZXh0Tm9kZSIsImxpbmtOb2RlcyIsImVuZE5vZGUiLCJzZWxlY3Rpb24iLCIkZ2V0U2VsZWN0aW9uIiwic2VsZWN0ZWRUZXh0Tm9kZSIsImdldE5vZGVzIiwiZmluZCIsInVuZGVmaW5lZCIsIiRpc1JhbmdlU2VsZWN0aW9uIiwic2VsZWN0IiwiYW5jaG9yIiwiZm9jdXMiLCIkaXNOb2RlU2VsZWN0aW9uIiwiaGFuZGxlTGlua0NyZWF0aW9uIiwib25DaGFuZ2UiLCJtYXAiLCJqb2luIiwiaW52YWxpZE1hdGNoRW5kIiwibWF0Y2hMZW5ndGgiLCJpc1ZhbGlkIiwiYWN0dWFsTWF0Y2hTdGFydCIsImFjdHVhbE1hdGNoRW5kIiwic3Vic3RyaW5nIiwiaGFuZGxlTGlua0VkaXQiLCJjaGlsZHJlbiIsImdldENoaWxkcmVuIiwiY2hpbGRyZW5MZW5ndGgiLCJjaGlsZCIsImlzU2ltcGxlVGV4dCIsInJlcGxhY2VXaXRoQ2hpbGRyZW4iLCJnZXRGaWVsZHMiLCJmbGRzIiwic2V0RmllbGRzIiwiaGFuZGxlQmFkTmVpZ2hib3JzIiwicHJldmlvdXNTaWJsaW5nIiwibmV4dFNpYmxpbmciLCIkaXNBdXRvTGlua05vZGUiLCJqIiwiaW5zZXJ0QWZ0ZXIiLCJyZW1vdmUiLCJnZXRMYXRlc3QiLCJnZXRUZXh0Tm9kZXNUb01hdGNoIiwidGV4dE5vZGVzVG9NYXRjaCIsInVzZUF1dG9MaW5rIiwiZWRpdG9yIiwidXNlRWZmZWN0IiwiaGFzTm9kZXMiLCJBdXRvTGlua05vZGUiLCJpbnZhcmlhbnQiLCJvbkNoYW5nZVdyYXBwZWQiLCJwcmV2VXJsIiwibWVyZ2VSZWdpc3RlciIsInJlZ2lzdGVyTm9kZVRyYW5zZm9ybSIsIlRleHROb2RlIiwicGFyZW50IiwiZ2V0UGFyZW50T3JUaHJvdyIsInByZXZpb3VzIiwiJGlzTGlua05vZGUiLCJVUkxfUkVHRVgiLCJFTUFJTF9SRUdFWCIsIk1BVENIRVJTIiwic3RhcnRzV2l0aCIsInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7SUFpQ2dCQSwyQkFBMkI7ZUFBM0JBOztJQXlZQUMsY0FBYztlQUFkQTs7O3dDQXZhMEI7dUJBQ1o7eUJBVXZCO3VCQUNtQjsyQkFFQTs4QkFDeUM7MEJBQ3RCO0FBY3RDLFNBQVNELDRCQUNkRSxNQUFjLEVBQ2RDLGlCQUEyQyxDQUFDQyxPQUFTQSxJQUFJO0lBRXpELE9BQU8sQ0FBQ0E7UUFDTixNQUFNQyxRQUFRSCxPQUFPSSxJQUFJLENBQUNGO1FBQzFCLElBQUlDLFVBQVUsTUFBTSxPQUFPO1FBQzNCLE9BQU87WUFDTEUsT0FBT0YsTUFBTUUsS0FBSztZQUNsQkMsUUFBUUgsS0FBSyxDQUFDLEVBQUUsQ0FBQ0csTUFBTTtZQUN2QkosTUFBTUMsS0FBSyxDQUFDLEVBQUU7WUFDZEksS0FBS04sZUFBZUUsS0FBSyxDQUFDLEVBQUU7UUFDOUI7SUFDRjtBQUNGO0FBRUEsU0FBU0ssZUFBZU4sSUFBWSxFQUFFTyxRQUF1QjtJQUMzRCxJQUFLLElBQUlDLElBQUksR0FBR0EsSUFBSUQsU0FBU0gsTUFBTSxFQUFFSSxJQUFLO1FBQ3hDLE1BQU1QLFFBQVFNLFFBQVEsQ0FBQ0MsRUFBRSxDQUFDUjtRQUUxQixJQUFJQyxTQUFTLE1B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
336
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL3BsdWdpbnMvYXV0b0xpbmsvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHR5cGUgeyBFbGVtZW50Tm9kZSwgTGV4aWNhbEVkaXRvciwgTGV4aWNhbE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7IG1lcmdlUmVnaXN0ZXIgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7XG4gICRjcmVhdGVUZXh0Tm9kZSxcbiAgJGdldFNlbGVjdGlvbixcbiAgJGlzRWxlbWVudE5vZGUsXG4gICRpc0xpbmVCcmVha05vZGUsXG4gICRpc05vZGVTZWxlY3Rpb24sXG4gICRpc1JhbmdlU2VsZWN0aW9uLFxuICAkaXNUZXh0Tm9kZSxcbiAgVGV4dE5vZGUsXG59IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgaW52YXJpYW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbGV4aWNhbC91dGlscy9pbnZhcmlhbnQnXG5pbXBvcnQgeyAkY3JlYXRlQXV0b0xpbmtOb2RlLCAkaXNBdXRvTGlua05vZGUsIEF1dG9MaW5rTm9kZSB9IGZyb20gJy4uLy4uL25vZGVzL0F1dG9MaW5rTm9kZSdcbmltcG9ydCB7ICRpc0xpbmtOb2RlLCB0eXBlIExpbmtGaWVsZHMgfSBmcm9tICcuLi8uLi9ub2Rlcy9MaW5rTm9kZSdcblxudHlwZSBDaGFuZ2VIYW5kbGVyID0gKHVybDogbnVsbCB8IHN0cmluZywgcHJldlVybDogbnVsbCB8IHN0cmluZykgPT4gdm9pZFxuXG5pbnRlcmZhY2UgTGlua01hdGNoZXJSZXN1bHQge1xuICBmaWVsZHM/OiBMaW5rRmllbGRzXG4gIGluZGV4OiBudW1iZXJcbiAgbGVuZ3RoOiBudW1iZXJcbiAgdGV4dDogc3RyaW5nXG4gIHVybDogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIExpbmtNYXRjaGVyID0gKHRleHQ6IHN0cmluZykgPT4gTGlua01hdGNoZXJSZXN1bHQgfCBudWxsXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMaW5rTWF0Y2hlcldpdGhSZWdFeHAoXG4gIHJlZ0V4cDogUmVnRXhwLFxuICB1cmxUcmFuc2Zvcm1lcjogKHRleHQ6IHN0cmluZykgPT4gc3RyaW5nID0gKHRleHQpID0+IHRleHQsXG4pIHtcbiAgcmV0dXJuICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBtYXRjaCA9IHJlZ0V4cC5leGVjKHRleHQpXG4gICAgaWYgKG1hdGNoID09PSBudWxsKSByZXR1cm4gbnVsbFxuICAgIHJldHVybiB7XG4gICAgICBpbmRleDogbWF0Y2guaW5kZXgsXG4gICAgICBsZW5ndGg6IG1hdGNoWzBdLmxlbmd0aCxcbiAgICAgIHRleHQ6IG1hdGNoWzBdLFxuICAgICAgdXJsOiB1cmxUcmFuc2Zvcm1lcihtYXRjaFswXSksXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGZpbmRGaXJzdE1hdGNoKHRleHQ6IHN0cmluZywgbWF0Y2hlcnM6IExpbmtNYXRjaGVyW10pOiBMaW5rTWF0Y2hlclJlc3VsdCB8IG51bGwge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG1hdGNoZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgbWF0Y2ggPSBtYXRjaGVyc1tpXSh0ZXh0KVxuXG4gICAgaWYgKG1hdGNoICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBtYXRjaFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5cbmNvbnN0IFBVTkNUVUFUSU9OX09SX1NQQUNFID0gL1suLDtcXHNdL1xuXG5mdW5jdGlvbiBpc1NlcGFyYXRvcihjaGFyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIFBVTkNUVUFUSU9OX09SX1NQQUNFLnRlc3QoY2hhcilcbn1cblxuZnVuY3Rpb24gZW5kc1dpdGhTZXBhcmF0b3IodGV4dENvbnRlbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNTZXBhcmF0b3IodGV4dENvbnRlbnRbdGV4dENvbnRlbnQubGVuZ3RoIC0gMV0pXG59XG5cbmZ1bmN0aW9uIHN0YXJ0c1dpdGhTZXBhcmF0b3IodGV4dENvbnRlbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNTZXBhcmF0b3IodGV4dENvbnRlbnRbMF0pXG59XG5cbmZ1bmN0aW9uIGlzUHJldmlvdXNOb2RlVmFsaWQobm9kZTogTGV4aWNhbE5vZGUpOiBib29sZWFuIHtcbiAgbGV0IHByZXZpb3VzTm9kZSA9IG5vZGUuZ2V0UHJldmlvdXNTaWJsaW5nKClcbiAgaWYgKCRpc0VsZW1lbnROb2RlKHByZXZpb3VzTm9kZSkpIHtcbiAgICBwcmV2aW91c05vZGUgPSBwcmV2aW91c05vZGUuZ2V0TGFzdERlc2NlbmRhbnQoKVxuICB9XG4gIHJldHVybiAoXG4gICAgcHJldmlvdXNOb2RlID09PSBudWxsIHx8XG4gICAgJGlzTGluZUJyZWFrTm9kZShwcmV2aW91c05vZGUpIHx8XG4gICAgKCRpc1RleHROb2RlKHByZXZpb3VzTm9kZSkgJiYgZW5kc1dpdGhTZXBhcmF0b3IocHJldmlvdXNOb2RlLmdldFRleHRDb250ZW50KCkpKVxuICApXG59XG5cbmZ1bmN0aW9uIGlzTmV4dE5vZGVWYWxpZChub2RlOiBMZXhpY2FsTm9kZSk6IGJvb2xlYW4ge1xuICBsZXQgbmV4dE5vZGUgPSBub2RlLmdldE5leHRTaWJsaW5nKClcbiAgaWYgKCRpc0VsZW1lbnROb2RlKG5leHROb2RlKSkge1xuICAgIG5leHROb2RlID0gbmV4dE5vZGUuZ2V0Rmlyc3REZXNjZW5kYW50KClcbiAgfVxuICByZXR1cm4gKFxuICAgIG5leHROb2RlID09PSBudWxsIHx8XG4gICAgJGlzTGluZUJyZWFrTm9kZShuZXh0Tm9kZSkgfHxcbiAgICAoJGlzVGV4dE5vZGUobmV4dE5vZGUpICYmIHN0YXJ0c1dpdGhTZXBhcmF0b3IobmV4dE5vZGUuZ2V0VGV4dENvbnRlbnQoKSkpXG4gIClcbn1cblxuZnVuY3Rpb24gaXNDb250ZW50QXJvdW5kSXNWYWxpZChcbiAgbWF0Y2hTdGFydDogbnVtYmVyLFxuICBtYXRjaEVuZDogbnVtYmVyLFxuICB0ZXh0OiBzdHJpbmcsXG4gIG5vZGVzOiBUZXh0Tm9kZVtdLFxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IGNvbnRlbnRCZWZvcmVJc1ZhbGlkID1cbiAgICBtYXRjaFN0YXJ0ID4gMCA/IGlzU2VwYXJhdG9yKHRleHRbbWF0Y2hTdGFydCAtIDFdKSA6IGlzUHJldmlvdXNOb2RlVmFsaWQobm9kZXNbMF0pXG4gIGlmICghY29udGVudEJlZm9yZUlzVmFsaWQpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGNvbnRlbnRBZnRlcklzVmFsaWQgPVxuICAgIG1hdGNoRW5kIDwgdGV4dC5sZW5ndGggPyBpc1NlcGFyYXRvcih0ZXh0W21hdGNoRW5kXSkgOiBpc05leHROb2RlVmFsaWQobm9kZXNbbm9kZXMubGVuZ3RoIC0gMV0pXG4gIHJldHVybiBjb250ZW50QWZ0ZXJJc1ZhbGlkXG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RNYXRjaGluZ05vZGVzKFxuICBub2RlczogVGV4dE5vZGVbXSxcbiAgc3RhcnRJbmRleDogbnVtYmVyLFxuICBlbmRJbmRleDogbnVtYmVyLFxuKTogW1xuICBtYXRjaGluZ09mZnNldDogbnVtYmVyLFxuICB1bm1vZGlmaWVkQmVmb3JlTm9kZXM6IFRleHROb2RlW10sXG4gIG1hdGNoaW5nTm9kZXM6IFRleHROb2RlW10sXG4gIHVubW9kaWZpZWRBZnRlck5vZGVzOiBUZXh0Tm9kZVtdLFxuXSB7XG4gIGNvbnN0IHVubW9kaWZpZWRCZWZvcmVOb2RlczogVGV4dE5vZGVbXSA9IFtdXG4gIGNvbnN0IG1hdGNoaW5nTm9kZXM6IFRleHROb2RlW10gPSBbXVxuICBjb25zdCB1bm1vZGlmaWVkQWZ0ZXJOb2RlczogVGV4dE5vZGVbXSA9IFtdXG4gIGxldCBtYXRjaGluZ09mZnNldCA9IDBcblxuICBsZXQgY3VycmVudE9mZnNldCA9IDBcbiAgY29uc3QgY3VycmVudE5vZGVzID0gWy4uLm5vZGVzXVxuXG4gIHdoaWxlIChjdXJyZW50Tm9kZXMubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGN1cnJlbnROb2RlID0gY3VycmVudE5vZGVzWzBdXG4gICAgY29uc3QgY3VycmVudE5vZGVUZXh0ID0gY3VycmVudE5vZGUuZ2V0VGV4dENvbnRlbnQoKVxuICAgIGNvbnN0IGN1cnJlbnROb2RlTGVuZ3RoID0gY3VycmVudE5vZGVUZXh0Lmxlbmd0aFxuICAgIGNvbnN0IGN1cnJlbnROb2RlU3RhcnQgPSBjdXJyZW50T2Zmc2V0XG4gICAgY29uc3QgY3VycmVudE5vZGVFbmQgPSBjdXJyZW50T2Zmc2V0ICsgY3VycmVudE5vZGVMZW5ndGhcblxuICAgIGlmIChjdXJyZW50Tm9kZUVuZCA8PSBzdGFydEluZGV4KSB7XG4gICAgICB1bm1vZGlmaWVkQmVmb3JlTm9kZXMucHVzaChjdXJyZW50Tm9kZSlcbiAgICAgIG1hdGNoaW5nT2Zmc2V0ICs9IGN1cnJlbnROb2RlTGVuZ3RoXG4gICAgfSBlbHNlIGlmIChjdXJyZW50Tm9kZVN0YXJ0ID49IGVuZEluZGV4KSB7XG4gICAgICB1bm1vZGlmaWVkQWZ0ZXJOb2Rlcy5wdXNoKGN1cnJlbnROb2RlKVxuICAgIH0gZWxzZSB7XG4gICAgICBtYXRjaGluZ05vZGVzLnB1c2goY3VycmVudE5vZGUpXG4gICAgfVxuICAgIGN1cnJlbnRPZmZzZXQgKz0gY3VycmVudE5vZGVMZW5ndGhcbiAgICBjdXJyZW50Tm9kZXMuc2hpZnQoKVxuICB9XG4gIHJldHVybiBbbWF0Y2hpbmdPZmZzZXQsIHVubW9kaWZpZWRCZWZvcmVOb2RlcywgbWF0Y2hpbmdOb2RlcywgdW5tb2RpZmllZEFmdGVyTm9kZXNdXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUF1dG9MaW5rTm9kZShcbiAgbm9kZXM6IFRleHROb2RlW10sXG4gIHN0YXJ0SW5kZXg6IG51bWJlcixcbiAgZW5kSW5kZXg6IG51bWJlcixcbiAgbWF0Y2g6IExpbmtNYXRjaGVyUmVzdWx0LFxuKTogVGV4dE5vZGUgfCB1bmRlZmluZWQge1xuICBjb25zdCBmaWVsZHM6IExpbmtGaWVsZHMgPSB7XG4gICAgbGlua1R5cGU6ICdjdXN0b20nLFxuICAgIHVybDogbWF0Y2gudXJsLFxuICAgIC4uLm1hdGNoLmZpZWxkcyxcbiAgfVxuXG4gIGNvbnN0IGxpbmtOb2RlID0gJGNyZWF0ZUF1dG9MaW5rTm9kZSh7IGZpZWxkcyB9KVxuICBpZiAobm9kZXMubGVuZ3RoID09PSAxKSB7XG4gICAgbGV0IHJlbWFpbmluZ1RleHROb2RlID0gbm9kZXNbMF1cbiAgICBsZXQgbGlua1RleHROb2RlXG4gICAgaWYgKHN0YXJ0SW5kZXggPT09IDApIHtcbiAgICAgIDtbbGlua1RleHROb2RlLCByZW1haW5pbmdUZXh0Tm9kZV0gPSByZW1haW5pbmdUZXh0Tm9kZS5zcGxpdFRleHQoZW5kSW5kZXgpXG4gICAgfSBlbHNlIHtcbiAgICAgIDtbLCBsaW5rVGV4dE5vZGUsIHJlbWFpbmluZ1RleHROb2RlXSA9IHJlbWFpbmluZ1RleHROb2RlLnNwbGl0VGV4dChzdGFydEluZGV4LCBlbmRJbmRleClcbiAgICB9XG4gICAgY29uc3QgdGV4dE5vZGUgPSAkY3JlYXRlVGV4dE5vZGUobWF0Y2gudGV4dClcbiAgICB0ZXh0Tm9kZS5zZXRGb3JtYXQobGlua1RleHROb2RlLmdldEZvcm1hdCgpKVxuICAgIHRleHROb2RlLnNldERldGFpbChsaW5rVGV4dE5vZGUuZ2V0RGV0YWlsKCkpXG4gICAgbGlua05vZGUuYXBwZW5kKHRleHROb2RlKVxuICAgIGxpbmtUZXh0Tm9kZS5yZXBsYWNlKGxpbmtOb2RlKVxuICAgIHJldHVybiByZW1haW5pbmdUZXh0Tm9kZVxuICB9IGVsc2UgaWYgKG5vZGVzLmxlbmd0aCA+IDEpIHtcbiAgICBjb25zdCBmaXJzdFRleHROb2RlID0gbm9kZXNbMF1cbiAgICBsZXQgb2Zmc2V0ID0gZmlyc3RUZXh0Tm9kZS5nZXRUZXh0Q29udGVudCgpLmxlbmd0aFxuICAgIGxldCBmaXJzdExpbmtUZXh0Tm9kZVxuICAgIGlmIChzdGFydEluZGV4ID09PSAwKSB7XG4gICAgICBmaXJzdExpbmtUZXh0Tm9kZSA9IGZpcnN0VGV4dE5vZGVcbiAgICB9IGVsc2Uge1xuICAgICAgO1ssIGZpcnN0TGlua1RleHROb2RlXSA9IGZpcnN0VGV4dE5vZGUuc3BsaXRUZXh0KHN0YXJ0SW5kZXgpXG4gICAgfVxuICAgIGNvbnN0IGxpbmtOb2RlcyA9IFtdXG4gICAgbGV0IHJlbWFpbmluZ1RleHROb2RlXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY3VycmVudE5vZGUgPSBub2Rlc1tpXVxuICAgICAgY29uc3QgY3VycmVudE5vZGVUZXh0ID0gY3VycmVudE5vZGUuZ2V0VGV4dENvbnRlbnQoKVxuICAgICAgY29uc3QgY3VycmVudE5vZGVMZW5ndGggPSBjdXJyZW50Tm9kZVRleHQubGVuZ3RoXG4gICAgICBjb25zdCBjdXJyZW50Tm9kZVN0YXJ0ID0gb2Zmc2V0XG4gICAgICBjb25zdCBjdXJyZW50Tm9kZUVuZCA9IG9mZnNldCArIGN1cnJlbnROb2RlTGVuZ3RoXG4gICAgICBpZiAoY3VycmVudE5vZGVTdGFydCA8IGVuZEluZGV4KSB7XG4gICAgICAgIGlmIChjdXJyZW50Tm9kZUVuZCA8PSBlbmRJbmRleCkge1xuICAgICAgICAgIGxpbmtOb2Rlcy5wdXNoKGN1cnJlbnROb2RlKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IFtsaW5rVGV4dE5vZGUsIGVuZE5vZGVdID0gY3VycmVudE5vZGUuc3BsaXRUZXh0KGVuZEluZGV4IC0gY3VycmVudE5vZGVTdGFydClcbiAgICAgICAgICBsaW5rTm9kZXMucHVzaChsaW5rVGV4dE5vZGUpXG4gICAgICAgICAgcmVtYWluaW5nVGV4dE5vZGUgPSBlbmROb2RlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG9mZnNldCArPSBjdXJyZW50Tm9kZUxlbmd0aFxuICAgIH1cbiAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICBjb25zdCBzZWxlY3RlZFRleHROb2RlID0gc2VsZWN0aW9uID8gc2VsZWN0aW9uLmdldE5vZGVzKCkuZmluZCgkaXNUZXh0Tm9kZSkgOiB1bmRlZmluZWRcbiAgICBjb25zdCB0ZXh0Tm9kZSA9ICRjcmVhdGVUZXh0Tm9kZShmaXJzdExpbmtUZXh0Tm9kZS5nZXRUZXh0Q29udGVudCgpKVxuICAgIHRleHROb2RlLnNldEZvcm1hdChmaXJzdExpbmtUZXh0Tm9kZS5nZXRGb3JtYXQoKSlcbiAgICB0ZXh0Tm9kZS5zZXREZXRhaWwoZmlyc3RMaW5rVGV4dE5vZGUuZ2V0RGV0YWlsKCkpXG4gICAgbGlua05vZGUuYXBwZW5kKHRleHROb2RlLCAuLi5saW5rTm9kZXMpXG4gICAgLy8gaXQgZG9lcyBub3QgcHJlc2VydmUgY2FyZXQgcG9zaXRpb24gaWYgY2FyZXQgd2FzIGF0IHRoZSBmaXJzdCB0ZXh0IG5vZGVcbiAgICAvLyBzbyB3ZSBuZWVkIHRvIHJlc3RvcmUgY2FyZXQgcG9zaXRpb25cbiAgICBpZiAoc2VsZWN0ZWRUZXh0Tm9kZSAmJiBzZWxlY3RlZFRleHROb2RlID09PSBmaXJzdExpbmtUZXh0Tm9kZSkge1xuICAgICAgaWYgKCRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgICAgdGV4dE5vZGUuc2VsZWN0KHNlbGVjdGlvbi5hbmNob3Iub2Zmc2V0LCBzZWxlY3Rpb24uZm9jdXMub2Zmc2V0KVxuICAgICAgfSBlbHNlIGlmICgkaXNOb2RlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgICAgdGV4dE5vZGUuc2VsZWN0KDAsIHRleHROb2RlLmdldFRleHRDb250ZW50KCkubGVuZ3RoKVxuICAgICAgfVxuICAgIH1cbiAgICBmaXJzdExpbmtUZXh0Tm9kZS5yZXBsYWNlKGxpbmtOb2RlKVxuICAgIHJldHVybiByZW1haW5pbmdUZXh0Tm9kZVxuICB9XG4gIHJldHVybiB1bmRlZmluZWRcbn1cblxuZnVuY3Rpb24gaGFuZGxlTGlua0NyZWF0aW9uKFxuICBub2RlczogVGV4dE5vZGVbXSxcbiAgbWF0Y2hlcnM6IExpbmtNYXRjaGVyW10sXG4gIG9uQ2hhbmdlOiBDaGFuZ2VIYW5kbGVyLFxuKTogdm9pZCB7XG4gIGxldCBjdXJyZW50Tm9kZXMgPSBbLi4ubm9kZXNdXG4gIGNvbnN0IGluaXRpYWxUZXh0ID0gY3VycmVudE5vZGVzLm1hcCgobm9kZSkgPT4gbm9kZS5nZXRUZXh0Q29udGVudCgpKS5qb2luKCcnKVxuICBsZXQgdGV4dCA9IGluaXRpYWxUZXh0XG5cbiAgbGV0IG1hdGNoXG4gIGxldCBpbnZhbGlkTWF0Y2hFbmQgPSAwXG5cbiAgd2hpbGUgKChtYXRjaCA9IGZpbmRGaXJzdE1hdGNoKHRleHQsIG1hdGNoZXJzKSkgIT0gbnVsbCAmJiBtYXRjaCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1hdGNoU3RhcnQ6IG51bWJlciA9IG1hdGNoLmluZGV4XG4gICAgY29uc3QgbWF0Y2hMZW5ndGg6IG51bWJlciA9IG1hdGNoLmxlbmd0aFxuICAgIGNvbnN0IG1hdGNoRW5kID0gbWF0Y2hTdGFydCArIG1hdGNoTGVuZ3RoXG4gICAgY29uc3QgaXNWYWxpZCA9IGlzQ29udGVudEFyb3VuZElzVmFsaWQoXG4gICAgICBpbnZhbGlkTWF0Y2hFbmQgKyBtYXRjaFN0YXJ0LFxuICAgICAgaW52YWxpZE1hdGNoRW5kICsgbWF0Y2hFbmQsXG4gICAgICBpbml0aWFsVGV4dCxcbiAgICAgIGN1cnJlbnROb2RlcyxcbiAgICApXG5cbiAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgY29uc3QgW21hdGNoaW5nT2Zmc2V0LCAsIG1hdGNoaW5nTm9kZXMsIHVubW9kaWZpZWRBZnRlck5vZGVzXSA9IGV4dHJhY3RNYXRjaGluZ05vZGVzKFxuICAgICAgICBjdXJyZW50Tm9kZXMsXG4gICAgICAgIGludmFsaWRNYXRjaEVuZCArIG1hdGNoU3RhcnQsXG4gICAgICAgIGludmFsaWRNYXRjaEVuZCArIG1hdGNoRW5kLFxuICAgICAgKVxuXG4gICAgICBjb25zdCBhY3R1YWxNYXRjaFN0YXJ0ID0gaW52YWxpZE1hdGNoRW5kICsgbWF0Y2hTdGFydCAtIG1hdGNoaW5nT2Zmc2V0XG4gICAgICBjb25zdCBhY3R1YWxNYXRjaEVuZCA9IGludmFsaWRNYXRjaEVuZCArIG1hdGNoRW5kIC0gbWF0Y2hpbmdPZmZzZXRcbiAgICAgIGNvbnN0IHJlbWFpbmluZ1RleHROb2RlID0gY3JlYXRlQXV0b0xpbmtOb2RlKFxuICAgICAgICBtYXRjaGluZ05vZGVzLFxuICAgICAgICBhY3R1YWxNYXRjaFN0YXJ0LFxuICAgICAgICBhY3R1YWxNYXRjaEVuZCxcbiAgICAgICAgbWF0Y2gsXG4gICAgICApXG4gICAgICBjdXJyZW50Tm9kZXMgPSByZW1haW5pbmdUZXh0Tm9kZVxuICAgICAgICA/IFtyZW1haW5pbmdUZXh0Tm9kZSwgLi4udW5tb2RpZmllZEFmdGVyTm9kZXNdXG4gICAgICAgIDogdW5tb2RpZmllZEFmdGVyTm9kZXNcbiAgICAgIG9uQ2hhbmdlKG1hdGNoLnVybCwgbnVsbClcbiAgICAgIGludmFsaWRNYXRjaEVuZCA9IDBcbiAgICB9IGVsc2Uge1xuICAgICAgaW52YWxpZE1hdGNoRW5kICs9IG1hdGNoRW5kXG4gICAgfVxuXG4gICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKG1hdGNoRW5kKVxuICB9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUxpbmtFZGl0KFxuICBsaW5rTm9kZTogQXV0b0xpbmtOb2RlLFxuICBtYXRjaGVyczogTGlua01hdGNoZXJbXSxcbiAgb25DaGFuZ2U6IENoYW5nZUhhbmRsZXIsXG4pOiB2b2lkIHtcbiAgLy8gQ2hlY2sgY2hpbGRyZW4gYXJlIHNpbXBsZSB0ZXh0XG4gIGNvbnN0IGNoaWxkcmVuID0gbGlua05vZGUuZ2V0Q2hpbGRyZW4oKVxuICBjb25zdCBjaGlsZHJlbkxlbmd0aCA9IGNoaWxkcmVuLmxlbmd0aFxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuTGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjaGlsZCA9IGNoaWxkcmVuW2ldXG4gICAgaWYgKCEkaXNUZXh0Tm9kZShjaGlsZCkgfHwgIWNoaWxkLmlzU2ltcGxlVGV4dCgpKSB7XG4gICAgICByZXBsYWNlV2l0aENoaWxkcmVuKGxpbmtOb2RlKVxuICAgICAgb25DaGFuZ2UobnVsbCwgbGlua05vZGUuZ2V0RmllbGRzKCk/LnVybCA/PyBudWxsKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgdGV4dCBjb250ZW50IGZ1bGx5IG1hdGNoZXNcbiAgY29uc3QgdGV4dCA9IGxpbmtOb2RlLmdldFRleHRDb250ZW50KClcbiAgY29uc3QgbWF0Y2ggPSBmaW5kRmlyc3RNYXRjaCh0ZXh0LCBtYXRjaGVycylcbiAgaWYgKG1hdGNoID09PSBudWxsIHx8IG1hdGNoLnRleHQgIT09IHRleHQpIHtcbiAgICByZXBsYWNlV2l0aENoaWxkcmVuKGxpbmtOb2RlKVxuICAgIG9uQ2hhbmdlKG51bGwsIGxpbmtOb2RlLmdldEZpZWxkcygpPy51cmwgPz8gbnVsbClcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8vIENoZWNrIG5laWdoYm9yc1xuICBpZiAoIWlzUHJldmlvdXNOb2RlVmFsaWQobGlua05vZGUpIHx8ICFpc05leHROb2RlVmFsaWQobGlua05vZGUpKSB7XG4gICAgcmVwbGFjZVdpdGhDaGlsZHJlbihsaW5rTm9kZSlcbiAgICBvbkNoYW5nZShudWxsLCBsaW5rTm9kZS5nZXRGaWVsZHMoKT8udXJsID8/IG51bGwpXG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCB1cmwgPSBsaW5rTm9kZS5nZXRGaWVsZHMoKT8udXJsXG4gIGlmICh1cmwgIT09IG1hdGNoPy51cmwpIHtcbiAgICBjb25zdCBmbGRzID0gbGlua05vZGUuZ2V0RmllbGRzKClcbiAgICBmbGRzLnVybCA9IG1hdGNoPy51cmxcbiAgICBsaW5rTm9kZS5zZXRGaWVsZHMoZmxkcylcbiAgICBvbkNoYW5nZShtYXRjaC51cmwsIHVybCA/PyBudWxsKVxuICB9XG59XG5cbi8vIEJhZCBuZWlnaGJvcnMgYXJlIGVkaXRzIGluIG5laWdoYm9yIG5vZGVzIHRoYXQgbWFrZSBBdXRvTGlua3MgaW5jb21wYXRpYmxlLlxuLy8gR2l2ZW4gdGhlIGNyZWF0aW9uIHByZWNvbmRpdGlvbnMsIHRoZXNlIGNhbiBvbmx5IGJlIHNpbXBsZSB0ZXh0IG5vZGVzLlxuZnVuY3Rpb24gaGFuZGxlQmFkTmVpZ2hib3JzKFxuICB0ZXh0Tm9kZTogVGV4dE5vZGUsXG4gIG1hdGNoZXJzOiBMaW5rTWF0Y2hlcltdLFxuICBvbkNoYW5nZTogQ2hhbmdlSGFuZGxlcixcbik6IHZvaWQge1xuICBjb25zdCBwcmV2aW91c1NpYmxpbmcgPSB0ZXh0Tm9kZS5nZXRQcmV2aW91c1NpYmxpbmcoKVxuICBjb25zdCBuZXh0U2libGluZyA9IHRleHROb2RlLmdldE5leHRTaWJsaW5nKClcbiAgY29uc3QgdGV4dCA9IHRleHROb2RlLmdldFRleHRDb250ZW50KClcblxuICBpZiAoJGlzQXV0b0xpbmtOb2RlKHByZXZpb3VzU2libGluZykgJiYgIXN0YXJ0c1dpdGhTZXBhcmF0b3IodGV4dCkpIHtcbiAgICBwcmV2aW91c1NpYmxpbmcuYXBwZW5kKHRleHROb2RlKVxuICAgIGhhbmRsZUxpbmtFZGl0KHByZXZpb3VzU2libGluZywgbWF0Y2hlcnMsIG9uQ2hhbmdlKVxuICAgIG9uQ2hhbmdlKG51bGwsIHByZXZpb3VzU2libGluZy5nZXRGaWVsZHMoKT8udXJsID8/IG51bGwpXG4gIH1cblxuICBpZiAoJGlzQXV0b0xpbmtOb2RlKG5leHRTaWJsaW5nKSAmJiAhZW5kc1dpdGhTZXBhcmF0b3IodGV4dCkpIHtcbiAgICByZXBsYWNlV2l0aENoaWxkcmVuKG5leHRTaWJsaW5nKVxuICAgIGhhbmRsZUxpbmtFZGl0KG5leHRTaWJsaW5nLCBtYXRjaGVycywgb25DaGFuZ2UpXG4gICAgb25DaGFuZ2UobnVsbCwgbmV4dFNpYmxpbmcuZ2V0RmllbGRzKCk/LnVybCA/PyBudWxsKVxuICB9XG59XG5cbmZ1bmN0aW9uIHJlcGxhY2VXaXRoQ2hpbGRyZW4obm9kZTogRWxlbWVudE5vZGUpOiBMZXhpY2FsTm9kZVtdIHtcbiAgY29uc3QgY2hpbGRyZW4gPSBub2RlLmdldENoaWxkcmVuKClcbiAgY29uc3QgY2hpbGRyZW5MZW5ndGggPSBjaGlsZHJlbi5sZW5ndGhcblxuICBmb3IgKGxldCBqID0gY2hpbGRyZW5MZW5ndGggLSAxOyBqID49IDA7IGotLSkge1xuICAgIG5vZGUuaW5zZXJ0QWZ0ZXIoY2hpbGRyZW5bal0pXG4gIH1cblxuICBub2RlLnJlbW92ZSgpXG4gIHJldHVybiBjaGlsZHJlbi5tYXAoKGNoaWxkKSA9PiBjaGlsZC5nZXRMYXRlc3QoKSlcbn1cblxuZnVuY3Rpb24gZ2V0VGV4dE5vZGVzVG9NYXRjaCh0ZXh0Tm9kZTogVGV4dE5vZGUpOiBUZXh0Tm9kZVtdIHtcbiAgLy8gY2hlY2sgaWYgbmV4dCBzaWJsaW5ncyBhcmUgc2ltcGxlIHRleHQgbm9kZXMgdGlsbCBhIG5vZGUgY29udGFpbnMgYSBzcGFjZSBzZXBhcmF0b3JcbiAgY29uc3QgdGV4dE5vZGVzVG9NYXRjaCA9IFt0ZXh0Tm9kZV1cbiAgbGV0IG5leHRTaWJsaW5nID0gdGV4dE5vZGUuZ2V0TmV4dFNpYmxpbmcoKVxuICB3aGlsZSAobmV4dFNpYmxpbmcgIT09IG51bGwgJiYgJGlzVGV4dE5vZGUobmV4dFNpYmxpbmcpICYmIG5leHRTaWJsaW5nLmlzU2ltcGxlVGV4dCgpKSB7XG4gICAgdGV4dE5vZGVzVG9NYXRjaC5wdXNoKG5leHRTaWJsaW5nKVxuICAgIGlmICgvXFxzLy50ZXN0KG5leHRTaWJsaW5nLmdldFRleHRDb250ZW50KCkpKSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgICBuZXh0U2libGluZyA9IG5leHRTaWJsaW5nLmdldE5leHRTaWJsaW5nKClcbiAgfVxuICByZXR1cm4gdGV4dE5vZGVzVG9NYXRjaFxufVxuXG5mdW5jdGlvbiB1c2VBdXRvTGluayhcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yLFxuICBtYXRjaGVyczogTGlua01hdGNoZXJbXSxcbiAgb25DaGFuZ2U/OiBDaGFuZ2VIYW5kbGVyLFxuKTogdm9pZCB7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFlZGl0b3IuaGFzTm9kZXMoW0F1dG9MaW5rTm9kZV0pKSB7XG4gICAgICBpbnZhcmlhbnQoZmFsc2UsICdMZXhpY2FsQXV0b0xpbmtQbHVnaW46IEF1dG9MaW5rTm9kZSBub3QgcmVnaXN0ZXJlZCBvbiBlZGl0b3InKVxuICAgIH1cblxuICAgIGNvbnN0IG9uQ2hhbmdlV3JhcHBlZCA9ICh1cmw6IG51bGwgfCBzdHJpbmcsIHByZXZVcmw6IG51bGwgfCBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgIGlmIChvbkNoYW5nZSAhPSBudWxsKSB7XG4gICAgICAgIG9uQ2hhbmdlKHVybCwgcHJldlVybClcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3Rlck5vZGVUcmFuc2Zvcm0oVGV4dE5vZGUsICh0ZXh0Tm9kZTogVGV4dE5vZGUpID0+IHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGV4dE5vZGUuZ2V0UGFyZW50T3JUaHJvdygpXG4gICAgICAgIGNvbnN0IHByZXZpb3VzID0gdGV4dE5vZGUuZ2V0UHJldmlvdXNTaWJsaW5nKClcbiAgICAgICAgaWYgKCRpc0F1dG9MaW5rTm9kZShwYXJlbnQpKSB7XG4gICAgICAgICAgaGFuZGxlTGlua0VkaXQocGFyZW50LCBtYXRjaGVycywgb25DaGFuZ2VXcmFwcGVkKVxuICAgICAgICB9IGVsc2UgaWYgKCEkaXNMaW5rTm9kZShwYXJlbnQpKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGV4dE5vZGUuaXNTaW1wbGVUZXh0KCkgJiZcbiAgICAgICAgICAgIChzdGFydHNXaXRoU2VwYXJhdG9yKHRleHROb2RlLmdldFRleHRDb250ZW50KCkpIHx8ICEkaXNBdXRvTGlua05vZGUocHJldmlvdXMpKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgdGV4dE5vZGVzVG9NYXRjaCA9IGdldFRleHROb2Rlc1RvTWF0Y2godGV4dE5vZGUpXG4gICAgICAgICAgICBoYW5kbGVMaW5rQ3JlYXRpb24odGV4dE5vZGVzVG9NYXRjaCwgbWF0Y2hlcnMsIG9uQ2hhbmdlV3JhcHBlZClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBoYW5kbGVCYWROZWlnaGJvcnModGV4dE5vZGUsIG1hdGNoZXJzLCBvbkNoYW5nZVdyYXBwZWQpXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgIClcbiAgfSwgW2VkaXRvciwgbWF0Y2hlcnMsIG9uQ2hhbmdlXSlcbn1cblxuY29uc3QgVVJMX1JFR0VYID1cbiAgLygoaHR0cHM/OlxcL1xcLyh3d3dcXC4pPyl8KHd3d1xcLikpWy1cXHdAOiUuK34jPV17MSwyNTZ9XFwuW2EtekEtWlxcZCgpXXsxLDZ9XFxiKFstXFx3KClAOiUrLn4jPyYvPV0qKS9cblxuY29uc3QgRU1BSUxfUkVHRVggPVxuICAvKChbXjw+KClbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClbXFxdXFxcXC4sOzpcXHNAXCJdKykqKXwoXCIuK1wiKSlAKChcXFtcXGR7MSwzfVxcLlxcZHsxLDN9XFwuXFxkezEsM31cXC5cXGR7MSwzfVxcXSl8KChbYS16QS1aXFwtXFxkXStcXC4pK1thLXpBLVpdezIsfSkpL1xuXG5jb25zdCBNQVRDSEVSUyA9IFtcbiAgY3JlYXRlTGlua01hdGNoZXJXaXRoUmVnRXhwKFVSTF9SRUdFWCwgKHRleHQpID0+IHtcbiAgICByZXR1cm4gdGV4dC5zdGFydHNXaXRoKCdodHRwJykgPyB0ZXh0IDogYGh0dHBzOi8vJHt0ZXh0fWBcbiAgfSksXG4gIGNyZWF0ZUxpbmtNYXRjaGVyV2l0aFJlZ0V4cChFTUFJTF9SRUdFWCwgKHRleHQpID0+IHtcbiAgICByZXR1cm4gYG1haWx0bzoke3RleHR9YFxuICB9KSxcbl1cblxuZXhwb3J0IGZ1bmN0aW9uIEF1dG9MaW5rUGx1Z2luKCk6IEpTWC5FbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG5cbiAgdXNlQXV0b0xpbmsoZWRpdG9yLCBNQVRDSEVSUylcblxuICByZXR1cm4gbnVsbFxufVxuIl0sIm5hbWVzIjpbIkF1dG9MaW5rUGx1Z2luIiwiY3JlYXRlTGlua01hdGNoZXJXaXRoUmVnRXhwIiwicmVnRXhwIiwidXJsVHJhbnNmb3JtZXIiLCJ0ZXh0IiwibWF0Y2giLCJleGVjIiwiaW5kZXgiLCJsZW5ndGgiLCJ1cmwiLCJmaW5kRmlyc3RNYXRjaCIsIm1hdGNoZXJzIiwiaSIsIlBVTkNUVUFUSU9OX09SX1NQQUNFIiwiaXNTZXBhcmF0b3IiLCJjaGFyIiwidGVzdCIsImVuZHNXaXRoU2VwYXJhdG9yIiwidGV4dENvbnRlbnQiLCJzdGFydHNXaXRoU2VwYXJhdG9yIiwiaXNQcmV2aW91c05vZGVWYWxpZCIsIm5vZGUiLCJwcmV2aW91c05vZGUiLCJnZXRQcmV2aW91c1NpYmxpbmciLCIkaXNFbGVtZW50Tm9kZSIsImdldExhc3REZXNjZW5kYW50IiwiJGlzTGluZUJyZWFrTm9kZSIsIiRpc1RleHROb2RlIiwiZ2V0VGV4dENvbnRlbnQiLCJpc05leHROb2RlVmFsaWQiLCJuZXh0Tm9kZSIsImdldE5leHRTaWJsaW5nIiwiZ2V0Rmlyc3REZXNjZW5kYW50IiwiaXNDb250ZW50QXJvdW5kSXNWYWxpZCIsIm1hdGNoU3RhcnQiLCJtYXRjaEVuZCIsIm5vZGVzIiwiY29udGVudEJlZm9yZUlzVmFsaWQiLCJjb250ZW50QWZ0ZXJJc1ZhbGlkIiwiZXh0cmFjdE1hdGNoaW5nTm9kZXMiLCJzdGFydEluZGV4IiwiZW5kSW5kZXgiLCJ1bm1vZGlmaWVkQmVmb3JlTm9kZXMiLCJtYXRjaGluZ05vZGVzIiwidW5tb2RpZmllZEFmdGVyTm9kZXMiLCJtYXRjaGluZ09mZnNldCIsImN1cnJlbnRPZmZzZXQiLCJjdXJyZW50Tm9kZXMiLCJjdXJyZW50Tm9kZSIsImN1cnJlbnROb2RlVGV4dCIsImN1cnJlbnROb2RlTGVuZ3RoIiwiY3VycmVudE5vZGVTdGFydCIsImN1cnJlbnROb2RlRW5kIiwicHVzaCIsInNoaWZ0IiwiY3JlYXRlQXV0b0xpbmtOb2RlIiwiZmllbGRzIiwibGlua1R5cGUiLCJsaW5rTm9kZSIsIiRjcmVhdGVBdXRvTGlua05vZGUiLCJyZW1haW5pbmdUZXh0Tm9kZSIsImxpbmtUZXh0Tm9kZSIsInNwbGl0VGV4dCIsInRleHROb2RlIiwiJGNyZWF0ZVRleHROb2RlIiwic2V0Rm9ybWF0IiwiZ2V0Rm9ybWF0Iiwic2V0RGV0YWlsIiwiZ2V0RGV0YWlsIiwiYXBwZW5kIiwicmVwbGFjZSIsImZpcnN0VGV4dE5vZGUiLCJvZmZzZXQiLCJmaXJzdExpbmtUZXh0Tm9kZSIsImxpbmtOb2RlcyIsImVuZE5vZGUiLCJzZWxlY3Rpb24iLCIkZ2V0U2VsZWN0aW9uIiwic2VsZWN0ZWRUZXh0Tm9kZSIsImdldE5vZGVzIiwiZmluZCIsInVuZGVmaW5lZCIsIiRpc1JhbmdlU2VsZWN0aW9uIiwic2VsZWN0IiwiYW5jaG9yIiwiZm9jdXMiLCIkaXNOb2RlU2VsZWN0aW9uIiwiaGFuZGxlTGlua0NyZWF0aW9uIiwib25DaGFuZ2UiLCJpbml0aWFsVGV4dCIsIm1hcCIsImpvaW4iLCJpbnZhbGlkTWF0Y2hFbmQiLCJtYXRjaExlbmd0aCIsImlzVmFsaWQiLCJhY3R1YWxNYXRjaFN0YXJ0IiwiYWN0dWFsTWF0Y2hFbmQiLCJzdWJzdHJpbmciLCJoYW5kbGVMaW5rRWRpdCIsImNoaWxkcmVuIiwiZ2V0Q2hpbGRyZW4iLCJjaGlsZHJlbkxlbmd0aCIsImNoaWxkIiwiaXNTaW1wbGVUZXh0IiwicmVwbGFjZVdpdGhDaGlsZHJlbiIsImdldEZpZWxkcyIsImZsZHMiLCJzZXRGaWVsZHMiLCJoYW5kbGVCYWROZWlnaGJvcnMiLCJwcmV2aW91c1NpYmxpbmciLCJuZXh0U2libGluZyIsIiRpc0F1dG9MaW5rTm9kZSIsImoiLCJpbnNlcnRBZnRlciIsInJlbW92ZSIsImdldExhdGVzdCIsImdldFRleHROb2Rlc1RvTWF0Y2giLCJ0ZXh0Tm9kZXNUb01hdGNoIiwidXNlQXV0b0xpbmsiLCJlZGl0b3IiLCJ1c2VFZmZlY3QiLCJoYXNOb2RlcyIsIkF1dG9MaW5rTm9kZSIsImludmFyaWFudCIsIm9uQ2hhbmdlV3JhcHBlZCIsInByZXZVcmwiLCJtZXJnZVJlZ2lzdGVyIiwicmVnaXN0ZXJOb2RlVHJhbnNmb3JtIiwiVGV4dE5vZGUiLCJwYXJlbnQiLCJnZXRQYXJlbnRPclRocm93IiwicHJldmlvdXMiLCIkaXNMaW5rTm9kZSIsIlVSTF9SRUdFWCIsIkVNQUlMX1JFR0VYIiwiTUFUQ0hFUlMiLCJzdGFydHNXaXRoIiwidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztJQTJhZ0JBLGNBQWM7ZUFBZEE7O0lBMVlBQywyQkFBMkI7ZUFBM0JBOzs7d0NBOUIwQjt1QkFDWjt5QkFVdkI7dUJBQ21COzJCQUVBOzhCQUN5QzswQkFDdEI7QUFjdEMsU0FBU0EsNEJBQ2RDLE1BQWMsRUFDZEMsaUJBQTJDLENBQUNDLE9BQVNBLElBQUk7SUFFekQsT0FBTyxDQUFDQTtRQUNOLE1BQU1DLFFBQVFILE9BQU9JLElBQUksQ0FBQ0Y7UUFDMUIsSUFBSUMsVUFBVSxNQUFNLE9BQU87UUFDM0IsT0FBTztZQUNMRSxPQUFPRixNQUFNRSxLQUFLO1lBQ2xCQyxRQUFRSCxLQUFLLENBQUMsRUFBRSxDQUFDRyxNQUFNO1lBQ3ZCSixNQUFNQyxLQUFLLENBQUMsRUFBRTtZQUNkSSxLQUFLTixlQUFlRSxLQUFLLENBQUMsRUFBRTtRQUM5QjtJQUNGO0FBQ0Y7QUFFQSxTQUFTSyxlQUFlTixJQUFZLEVBQUVPLFFBQXVCO0lBQzNELElBQUssSUFBSUMsSUFBSSxHQUFHQSxJQUFJRCxTQUFTSCxNQUFNLEVBQUVJLElBQUs7UUFD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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"names":[],"mappings":";AA4BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAYhD,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,EAAE,iBAAiB,GAC1B,EAAE;IAAE,UAAU,EAAE,WAAW,CAAA;CAAE,GAAG,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAgS9D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"names":[],"mappings":";AA4BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAchD,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,EAAE,iBAAiB,GAC1B,EAAE;IAAE,UAAU,EAAE,WAAW,CAAA;CAAE,GAAG,gBAAgB,GAAG,GAAG,CAAC,OAAO,CA0T9D"}
@@ -23,6 +23,7 @@ const _EditorConfigProvider = require("../../../../../lexical/config/EditorConfi
23
23
  const _getSelectedNode = require("../../../../../lexical/utils/getSelectedNode");
24
24
  const _setFloatingElemPositionForLinkEditor = require("../../../../../lexical/utils/setFloatingElemPositionForLinkEditor");
25
25
  const _drawer = require("../../../drawer");
26
+ const _AutoLinkNode = require("../../../nodes/AutoLinkNode");
26
27
  const _LinkNode = require("../../../nodes/LinkNode");
27
28
  const _utilities2 = require("../utilities");
28
29
  const _commands = require("./commands");
@@ -47,7 +48,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
47
48
  if (cache && cache.has(obj)) {
48
49
  return cache.get(obj);
49
50
  }
50
- var newObj = {};
51
+ var newObj = {
52
+ __proto__: null
53
+ };
51
54
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
52
55
  for(var key in obj){
53
56
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -86,7 +89,7 @@ function LinkEditor({ anchorElem, disabledCollections, enabledCollections, field
86
89
  // Sanitize custom fields here
87
90
  const validRelationships = config.collections.map((c)=>c.slug) || [];
88
91
  const fields = (0, _config.sanitizeFields)({
89
- config: config,
92
+ config,
90
93
  fields: fieldsUnsanitized,
91
94
  validRelationships
92
95
  });
@@ -95,9 +98,10 @@ function LinkEditor({ anchorElem, disabledCollections, enabledCollections, field
95
98
  const { closeModal, toggleModal } = (0, _modal.useModal)();
96
99
  const editDepth = (0, _utilities.useEditDepth)();
97
100
  const [isLink, setIsLink] = (0, _react.useState)(false);
101
+ const [isAutoLink, setIsAutoLink] = (0, _react.useState)(false);
98
102
  const drawerSlug = (0, _elements.formatDrawerSlug)({
99
- depth: editDepth,
100
- slug: `lexical-rich-text-link-` + uuid
103
+ slug: `lexical-rich-text-link-` + uuid,
104
+ depth: editDepth
101
105
  });
102
106
  const updateLinkEditor = (0, _react.useCallback)(async ()=>{
103
107
  const selection = (0, _lexical.$getSelection)();
@@ -109,6 +113,7 @@ function LinkEditor({ anchorElem, disabledCollections, enabledCollections, field
109
113
  const linkParent = (0, _utils.$findMatchingParent)(node, _LinkNode.$isLinkNode);
110
114
  if (linkParent == null) {
111
115
  setIsLink(false);
116
+ setIsAutoLink(false);
112
117
  setLinkUrl('');
113
118
  setLinkLabel('');
114
119
  return;
@@ -151,6 +156,11 @@ function LinkEditor({ anchorElem, disabledCollections, enabledCollections, field
151
156
  });
152
157
  setInitialState(state);
153
158
  setIsLink(true);
159
+ if ((0, _AutoLinkNode.$isAutoLinkNode)(linkParent)) {
160
+ setIsAutoLink(true);
161
+ } else {
162
+ setIsAutoLink(false);
163
+ }
154
164
  }
155
165
  const editorElem = editorRef.current;
156
166
  const nativeSelection = window.getSelection();
@@ -246,6 +256,7 @@ function LinkEditor({ anchorElem, disabledCollections, enabledCollections, field
246
256
  }, _lexical.COMMAND_PRIORITY_LOW), editor.registerCommand(_lexical.KEY_ESCAPE_COMMAND, ()=>{
247
257
  if (isLink) {
248
258
  setIsLink(false);
259
+ setIsAutoLink(false);
249
260
  return true;
250
261
  }
251
262
  return false;
@@ -284,7 +295,7 @@ function LinkEditor({ anchorElem, disabledCollections, enabledCollections, field
284
295
  },
285
296
  tabIndex: 0,
286
297
  type: "button"
287
- }), /*#__PURE__*/ _react.default.createElement("button", {
298
+ }), !isAutoLink && /*#__PURE__*/ _react.default.createElement("button", {
288
299
  "aria-label": "Remove link",
289
300
  className: "link-trash",
290
301
  onClick: ()=>{
@@ -301,10 +312,25 @@ function LinkEditor({ anchorElem, disabledCollections, enabledCollections, field
301
312
  handleModalSubmit: (fields, data)=>{
302
313
  closeModal(drawerSlug);
303
314
  const newLinkPayload = data;
315
+ // See: https://github.com/facebook/lexical/pull/5536. This updates autolink nodes to link nodes whenever a change was made (which is good!).
316
+ editor.update(()=>{
317
+ const selection = (0, _lexical.$getSelection)();
318
+ if ((0, _lexical.$isRangeSelection)(selection)) {
319
+ const parent = (0, _getSelectedNode.getSelectedNode)(selection).getParent();
320
+ if ((0, _AutoLinkNode.$isAutoLinkNode)(parent)) {
321
+ const linkNode = (0, _LinkNode.$createLinkNode)({
322
+ fields: newLinkPayload.fields
323
+ });
324
+ parent.replace(linkNode, true);
325
+ }
326
+ }
327
+ });
328
+ // Needs to happen AFTER a potential auto link => link node conversion, as otherwise, the updated text to display may be lost due to
329
+ // it being applied to the auto link node instead of the link node.
304
330
  editor.dispatchCommand(_LinkNode.TOGGLE_LINK_COMMAND, newLinkPayload);
305
331
  },
306
332
  initialState: initialState
307
333
  }));
308
334
  }
309
335
 
310
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL0xpbmtFZGl0b3IvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHR5cGUgeyBEYXRhLCBGaWVsZHMgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VNb2RhbCB9IGZyb20gJ0BmYWNlbGVzcy11aS9tb2RhbCdcbmltcG9ydCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsQ29tcG9zZXJDb250ZXh0J1xuaW1wb3J0IHsgJGZpbmRNYXRjaGluZ1BhcmVudCwgbWVyZ2VSZWdpc3RlciB9IGZyb20gJ0BsZXhpY2FsL3V0aWxzJ1xuaW1wb3J0IHtcbiAgJGdldFNlbGVjdGlvbixcbiAgJGlzUmFuZ2VTZWxlY3Rpb24sXG4gIENPTU1BTkRfUFJJT1JJVFlfSElHSCxcbiAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gIEtFWV9FU0NBUEVfQ09NTUFORCxcbiAgU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5ELFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgZm9ybWF0RHJhd2VyU2x1ZyB9IGZyb20gJ3BheWxvYWQvY29tcG9uZW50cy9lbGVtZW50cydcbmltcG9ydCB7XG4gIGJ1aWxkU3RhdGVGcm9tU2NoZW1hLFxuICB1c2VBdXRoLFxuICB1c2VDb25maWcsXG4gIHVzZURvY3VtZW50SW5mbyxcbiAgdXNlRWRpdERlcHRoLFxuICB1c2VMb2NhbGUsXG59IGZyb20gJ3BheWxvYWQvY29tcG9uZW50cy91dGlsaXRpZXMnXG5pbXBvcnQgeyBzYW5pdGl6ZUZpZWxkcyB9IGZyb20gJ3BheWxvYWQvY29uZmlnJ1xuaW1wb3J0IHsgZ2V0VHJhbnNsYXRpb24gfSBmcm9tICdwYXlsb2FkL3V0aWxpdGllcydcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5cbmltcG9ydCB0eXBlIHsgTGlua0ZlYXR1cmVQcm9wcyB9IGZyb20gJy4uLy4uLy4uJ1xuaW1wb3J0IHR5cGUgeyBMaW5rTm9kZSB9IGZyb20gJy4uLy4uLy4uL25vZGVzL0xpbmtOb2RlJ1xuaW1wb3J0IHR5cGUgeyBMaW5rUGF5bG9hZCB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VFZGl0b3JDb25maWdDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGV4aWNhbC9jb25maWcvRWRpdG9yQ29uZmlnUHJvdmlkZXInXG5pbXBvcnQgeyBnZXRTZWxlY3RlZE5vZGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9sZXhpY2FsL3V0aWxzL2dldFNlbGVjdGVkTm9kZSdcbmltcG9ydCB7IHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xleGljYWwvdXRpbHMvc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yJ1xuaW1wb3J0IHsgTGlua0RyYXdlciB9IGZyb20gJy4uLy4uLy4uL2RyYXdlcidcbmltcG9ydCB7ICRpc0xpbmtOb2RlLCBUT0dHTEVfTElOS19DT01NQU5EIH0gZnJvbSAnLi4vLi4vLi4vbm9kZXMvTGlua05vZGUnXG5pbXBvcnQgeyB0cmFuc2Zvcm1FeHRyYUZpZWxkcyB9IGZyb20gJy4uL3V0aWxpdGllcydcbmltcG9ydCB7IFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCB9IGZyb20gJy4vY29tbWFuZHMnXG5cbmV4cG9ydCBmdW5jdGlvbiBMaW5rRWRpdG9yKHtcbiAgYW5jaG9yRWxlbSxcbiAgZGlzYWJsZWRDb2xsZWN0aW9ucyxcbiAgZW5hYmxlZENvbGxlY3Rpb25zLFxuICBmaWVsZHM6IGN1c3RvbUZpZWxkU2NoZW1hLFxufTogeyBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCB9ICYgTGlua0ZlYXR1cmVQcm9wcyk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcblxuICBjb25zdCBlZGl0b3JSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBbbGlua1VybCwgc2V0TGlua1VybF0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW2xpbmtMYWJlbCwgc2V0TGlua0xhYmVsXSA9IHVzZVN0YXRlKCcnKVxuXG4gIGNvbnN0IHsgdXVpZCB9ID0gdXNlRWRpdG9yQ29uZmlnQ29udGV4dCgpXG5cbiAgY29uc3QgY29uZmlnID0gdXNlQ29uZmlnKClcblxuICBjb25zdCB7IHVzZXIgfSA9IHVzZUF1dGgoKVxuICBjb25zdCB7IGNvZGU6IGxvY2FsZSB9ID0gdXNlTG9jYWxlKClcbiAgY29uc3QgeyBpMThuLCB0IH0gPSB1c2VUcmFuc2xhdGlvbihbJ2ZpZWxkcycsICd1cGxvYWQnLCAnZ2VuZXJhbCddKVxuXG4gIGNvbnN0IHsgZ2V0RG9jUHJlZmVyZW5jZXMgfSA9IHVzZURvY3VtZW50SW5mbygpXG5cbiAgY29uc3QgW2luaXRpYWxTdGF0ZSwgc2V0SW5pdGlhbFN0YXRlXSA9IHVzZVN0YXRlPEZpZWxkcz4oe30pXG5cbiAgY29uc3QgW2ZpZWxkU2NoZW1hXSA9IHVzZVN0YXRlKCgpID0+IHtcbiAgICBjb25zdCBmaWVsZHNVbnNhbml0aXplZCA9IHRyYW5zZm9ybUV4dHJhRmllbGRzKFxuICAgICAgY3VzdG9tRmllbGRTY2hlbWEsXG4gICAgICBjb25maWcsXG4gICAgICBpMThuLFxuICAgICAgZW5hYmxlZENvbGxlY3Rpb25zLFxuICAgICAgZGlzYWJsZWRDb2xsZWN0aW9ucyxcbiAgICApXG4gICAgLy8gU2FuaXRpemUgY3VzdG9tIGZpZWxkcyBoZXJlXG4gICAgY29uc3QgdmFsaWRSZWxhdGlvbnNoaXBzID0gY29uZmlnLmNvbGxlY3Rpb25zLm1hcCgoYykgPT4gYy5zbHVnKSB8fCBbXVxuICAgIGNvbnN0IGZpZWxkcyA9IHNhbml0aXplRmllbGRzKHtcbiAgICAgIGNvbmZpZzogY29uZmlnLFxuICAgICAgZmllbGRzOiBmaWVsZHNVbnNhbml0aXplZCxcbiAgICAgIHZhbGlkUmVsYXRpb25zaGlwcyxcbiAgICB9KVxuXG4gICAgcmV0dXJuIGZpZWxkc1xuICB9KVxuXG4gIGNvbnN0IHsgY2xvc2VNb2RhbCwgdG9nZ2xlTW9kYWwgfSA9IHVzZU1vZGFsKClcbiAgY29uc3QgZWRpdERlcHRoID0gdXNlRWRpdERlcHRoKClcbiAgY29uc3QgW2lzTGluaywgc2V0SXNMaW5rXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IGRyYXdlclNsdWcgPSBmb3JtYXREcmF3ZXJTbHVnKHtcbiAgICBkZXB0aDogZWRpdERlcHRoLFxuICAgIHNsdWc6IGBsZXhpY2FsLXJpY2gtdGV4dC1saW5rLWAgKyB1dWlkLFxuICB9KVxuXG4gIGNvbnN0IHVwZGF0ZUxpbmtFZGl0b3IgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG4gICAgbGV0IHNlbGVjdGVkTm9kZURvbVJlY3Q6IERPTVJlY3QgfCB1bmRlZmluZWQgPSBudWxsXG5cbiAgICAvLyBIYW5kbGUgdGhlIGRhdGEgZGlzcGxheWVkIGluIHRoZSBmbG9hdGluZyBsaW5rIGVkaXRvciAmIGRyYXdlciB3aGVuIHlvdSBjbGljayBvbiBhIGxpbmsgbm9kZVxuICAgIGlmICgkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICBjb25zdCBub2RlID0gZ2V0U2VsZWN0ZWROb2RlKHNlbGVjdGlvbilcbiAgICAgIHNlbGVjdGVkTm9kZURvbVJlY3QgPSBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KG5vZGUuZ2V0S2V5KCkpPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgbGlua1BhcmVudDogTGlua05vZGUgPSAkZmluZE1hdGNoaW5nUGFyZW50KG5vZGUsICRpc0xpbmtOb2RlKSBhcyBMaW5rTm9kZVxuICAgICAgaWYgKGxpbmtQYXJlbnQgPT0gbnVsbCkge1xuICAgICAgICBzZXRJc0xpbmsoZmFsc2UpXG4gICAgICAgIHNldExpbmtVcmwoJycpXG4gICAgICAgIHNldExpbmtMYWJlbCgnJylcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIEluaXRpYWwgc3RhdGU6XG4gICAgICBjb25zdCBkYXRhOiBMaW5rUGF5bG9hZCA9IHtcbiAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgZG9jOiB1bmRlZmluZWQsXG4gICAgICAgICAgbGlua1R5cGU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBuZXdUYWI6IHVuZGVmaW5lZCxcbiAgICAgICAgICB1cmw6ICcnLFxuICAgICAgICAgIC4uLmxpbmtQYXJlbnQuZ2V0RmllbGRzKCksXG4gICAgICAgIH0sXG4gICAgICAgIHRleHQ6IGxpbmtQYXJlbnQuZ2V0VGV4dENvbnRlbnQoKSxcbiAgICAgIH1cblxuICAgICAgaWYgKGxpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmxpbmtUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgICBzZXRMaW5rVXJsKGxpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LnVybCA/PyAnJylcbiAgICAgICAgc2V0TGlua0xhYmVsKCcnKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gaW50ZXJuYWwgbGlua1xuICAgICAgICBzZXRMaW5rVXJsKFxuICAgICAgICAgIGAvYWRtaW4vY29sbGVjdGlvbnMvJHtsaW5rUGFyZW50LmdldEZpZWxkcygpPy5kb2M/LnJlbGF0aW9uVG99LyR7bGlua1BhcmVudC5nZXRGaWVsZHMoKVxuICAgICAgICAgICAgPy5kb2M/LnZhbHVlfWAsXG4gICAgICAgIClcblxuICAgICAgICBjb25zdCByZWxhdGVkRmllbGQgPSBjb25maWcuY29sbGVjdGlvbnMuZmluZChcbiAgICAgICAgICAoY29sbCkgPT4gY29sbC5zbHVnID09PSBsaW5rUGFyZW50LmdldEZpZWxkcygpPy5kb2M/LnJlbGF0aW9uVG8sXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgbGFiZWwgPSB0KCdmaWVsZHM6bGlua2VkVG8nLCB7XG4gICAgICAgICAgbGFiZWw6IGdldFRyYW5zbGF0aW9uKHJlbGF0ZWRGaWVsZC5sYWJlbHMuc2luZ3VsYXIsIGkxOG4pLFxuICAgICAgICB9KS5yZXBsYWNlKC88W14+XSo+Py9nLCAnJylcbiAgICAgICAgc2V0TGlua0xhYmVsKGxhYmVsKVxuICAgICAgfVxuXG4gICAgICAvLyBTZXQgaW5pdGlhbCBzdGF0ZSBvZiB0aGUgZHJhd2VyLiBUaGlzIHdpbGwgYmFzaWNhbGx5IHByZS1maWxsIHRoZSBkcmF3ZXIgZmllbGRzIHdpdGggdGhlXG4gICAgICAvLyB2YWx1ZXMgc2F2ZWQgaW4gdGhlIGxpbmsgbm9kZSB5b3UgY2xpY2tlZCBvbi5cbiAgICAgIGNvbnN0IHByZWZlcmVuY2VzID0gYXdhaXQgZ2V0RG9jUHJlZmVyZW5jZXMoKVxuICAgICAgY29uc3Qgc3RhdGUgPSBhd2FpdCBidWlsZFN0YXRlRnJvbVNjaGVtYSh7XG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZmllbGRTY2hlbWEsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgb3BlcmF0aW9uOiAnY3JlYXRlJyxcbiAgICAgICAgcHJlZmVyZW5jZXMsXG4gICAgICAgIHQsXG4gICAgICAgIHVzZXI6IHVzZXIgPz8gdW5kZWZpbmVkLFxuICAgICAgfSlcbiAgICAgIHNldEluaXRpYWxTdGF0ZShzdGF0ZSlcbiAgICAgIHNldElzTGluayh0cnVlKVxuICAgIH1cblxuICAgIGNvbnN0IGVkaXRvckVsZW0gPSBlZGl0b3JSZWYuY3VycmVudFxuICAgIGNvbnN0IG5hdGl2ZVNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgIGNvbnN0IHsgYWN0aXZlRWxlbWVudCB9ID0gZG9jdW1lbnRcblxuICAgIGlmIChlZGl0b3JFbGVtID09PSBudWxsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCByb290RWxlbWVudCA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG5cbiAgICBpZiAoXG4gICAgICBzZWxlY3Rpb24gIT09IG51bGwgJiZcbiAgICAgIG5hdGl2ZVNlbGVjdGlvbiAhPT0gbnVsbCAmJlxuICAgICAgcm9vdEVsZW1lbnQgIT09IG51bGwgJiZcbiAgICAgIHJvb3RFbGVtZW50LmNvbnRhaW5zKG5hdGl2ZVNlbGVjdGlvbi5hbmNob3JOb2RlKVxuICAgICkge1xuICAgICAgaWYgKCFzZWxlY3RlZE5vZGVEb21SZWN0KSB7XG4gICAgICAgIC8vIEdldCB0aGUgRE9NIHJlY3Qgb2YgdGhlIHNlbGVjdGVkIG5vZGUgdXNpbmcgdGhlIG5hdGl2ZSBzZWxlY3Rpb24uIFRoaXMgc29tZXRpbWVzIHByb2R1Y2VzIHRoZSB3cm9uZ1xuICAgICAgICAvLyByZXN1bHQsIHdoaWNoIGlzIHdoeSB3ZSB1c2UgbGV4aWNhbCdzIHNlbGVjdGlvbiBwcmVmZXJhYmx5LlxuICAgICAgICBzZWxlY3RlZE5vZGVEb21SZWN0ID0gbmF0aXZlU2VsZWN0aW9uLmdldFJhbmdlQXQoMCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIH1cblxuICAgICAgaWYgKHNlbGVjdGVkTm9kZURvbVJlY3QgIT0gbnVsbCkge1xuICAgICAgICBzZWxlY3RlZE5vZGVEb21SZWN0LnkgKz0gNDBcbiAgICAgICAgc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yKHNlbGVjdGVkTm9kZURvbVJlY3QsIGVkaXRvckVsZW0sIGFuY2hvckVsZW0pXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChhY3RpdmVFbGVtZW50ID09IG51bGwgfHwgYWN0aXZlRWxlbWVudC5jbGFzc05hbWUgIT09ICdsaW5rLWlucHV0Jykge1xuICAgICAgaWYgKHJvb3RFbGVtZW50ICE9PSBudWxsKSB7XG4gICAgICAgIHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvcihudWxsLCBlZGl0b3JFbGVtLCBhbmNob3JFbGVtKVxuICAgICAgfVxuICAgICAgc2V0TGlua1VybCgnJylcbiAgICAgIHNldExpbmtMYWJlbCgnJylcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9LCBbYW5jaG9yRWxlbSwgZWRpdG9yLCBmaWVsZFNjaGVtYSwgY29uZmlnLCBnZXREb2NQcmVmZXJlbmNlcywgbG9jYWxlLCB0LCB1c2VyLCBpMThuXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBtZXJnZVJlZ2lzdGVyKFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZChcbiAgICAgICAgVE9HR0xFX0xJTktfV0lUSF9NT0RBTF9DT01NQU5ELFxuICAgICAgICAocGF5bG9hZDogTGlua1BheWxvYWQpID0+IHtcbiAgICAgICAgICBlZGl0b3IuZGlzcGF0Y2hDb21tYW5kKFRPR0dMRV9MSU5LX0NPTU1BTkQsIHBheWxvYWQpXG5cbiAgICAgICAgICAvLyBOb3csIG9wZW4gdGhlIG1vZGFsXG4gICAgICAgICAgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgIHRvZ2dsZU1vZGFsKGRyYXdlclNsdWcpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgICAgICAgfSlcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yLCB0b2dnbGVNb2RhbCwgZHJhd2VyU2x1Z10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzTGluayAmJiBlZGl0b3JSZWYpIHtcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50LnN0eWxlLm9wYWNpdHkgPSAnMCdcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50LnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGUoLTEwMDAwcHgsIC0xMDAwMHB4KSdcbiAgICB9XG4gIH0sIFtpc0xpbmtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgc2Nyb2xsZXJFbGVtID0gYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50XG5cbiAgICBjb25zdCB1cGRhdGUgPSAoKTogdm9pZCA9PiB7XG4gICAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgICAgdm9pZCB1cGRhdGVMaW5rRWRpdG9yKClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZSlcblxuICAgIGlmIChzY3JvbGxlckVsZW0gIT0gbnVsbCkge1xuICAgICAgc2Nyb2xsZXJFbGVtLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHVwZGF0ZSlcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZSlcblxuICAgICAgaWYgKHNjcm9sbGVyRWxlbSAhPSBudWxsKSB7XG4gICAgICAgIHNjcm9sbGVyRWxlbS5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUpXG4gICAgICB9XG4gICAgfVxuICB9LCBbYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50LCBlZGl0b3IsIHVwZGF0ZUxpbmtFZGl0b3JdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcigoeyBlZGl0b3JTdGF0ZSB9KSA9PiB7XG4gICAgICAgIGVkaXRvclN0YXRlLnJlYWQoKCkgPT4ge1xuICAgICAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgICAgIH0pXG4gICAgICB9KSxcblxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZChcbiAgICAgICAgU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5ELFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdm9pZCB1cGRhdGVMaW5rRWRpdG9yKClcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBLRVlfRVNDQVBFX0NPTU1BTkQsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBpZiAoaXNMaW5rKSB7XG4gICAgICAgICAgICBzZXRJc0xpbmsoZmFsc2UpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9ISUdILFxuICAgICAgKSxcbiAgICApXG4gIH0sIFtlZGl0b3IsIHVwZGF0ZUxpbmtFZGl0b3IsIHNldElzTGluaywgaXNMaW5rXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgICAgdm9pZCB1cGRhdGVMaW5rRWRpdG9yKClcbiAgICB9KVxuICB9LCBbZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yXSlcblxuICByZXR1cm4gKFxuICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGluay1lZGl0b3JcIiByZWY9e2VkaXRvclJlZn0+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGluay1pbnB1dFwiPlxuICAgICAgICAgIDxhIGhyZWY9e2xpbmtVcmx9IHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICAgIHtsaW5rTGFiZWwgIT0gbnVsbCAmJiBsaW5rTGFiZWwubGVuZ3RoID4gMCA/IGxpbmtMYWJlbCA6IGxpbmtVcmx9XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIHtlZGl0b3IuaXNFZGl0YWJsZSgpICYmIChcbiAgICAgICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJFZGl0IGxpbmtcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImxpbmstZWRpdFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgdG9nZ2xlTW9kYWwoZHJhd2VyU2x1ZylcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9uTW91c2VEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlJlbW92ZSBsaW5rXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJsaW5rLXRyYXNoXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBlZGl0b3IuZGlzcGF0Y2hDb21tYW5kKFRPR0dMRV9MSU5LX0NPTU1BTkQsIG51bGwpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxMaW5rRHJhd2VyXG4gICAgICAgIGRyYXdlclNsdWc9e2RyYXdlclNsdWd9XG4gICAgICAgIGZpZWxkU2NoZW1hPXtmaWVsZFNjaGVtYX1cbiAgICAgICAgaGFuZGxlTW9kYWxTdWJtaXQ9eyhmaWVsZHM6IEZpZWxkcywgZGF0YTogRGF0YSkgPT4ge1xuICAgICAgICAgIGNsb3NlTW9kYWwoZHJhd2VyU2x1ZylcblxuICAgICAgICAgIGNvbnN0IG5ld0xpbmtQYXlsb2FkOiBMaW5rUGF5bG9hZCA9IGRhdGEgYXMgTGlua1BheWxvYWRcblxuICAgICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoVE9HR0xFX0xJTktfQ09NTUFORCwgbmV3TGlua1BheWxvYWQpXG4gICAgICAgIH19XG4gICAgICAgIGluaXRpYWxTdGF0ZT17aW5pdGlhbFN0YXRlfVxuICAgICAgLz5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApXG59XG4iXSwibmFtZXMiOlsiTGlua0VkaXRvciIsImFuY2hvckVsZW0iLCJkaXNhYmxlZENvbGxlY3Rpb25zIiwiZW5hYmxlZENvbGxlY3Rpb25zIiwiZmllbGRzIiwiY3VzdG9tRmllbGRTY2hlbWEiLCJlZGl0b3IiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwiZWRpdG9yUmVmIiwidXNlUmVmIiwibGlua1VybCIsInNldExpbmtVcmwiLCJ1c2VTdGF0ZSIsImxpbmtMYWJlbCIsInNldExpbmtMYWJlbCIsInV1aWQiLCJ1c2VFZGl0b3JDb25maWdDb250ZXh0IiwiY29uZmlnIiwidXNlQ29uZmlnIiwidXNlciIsInVzZUF1dGgiLCJjb2RlIiwibG9jYWxlIiwidXNlTG9jYWxlIiwiaTE4biIsInQiLCJ1c2VUcmFuc2xhdGlvbiIsImdldERvY1ByZWZlcmVuY2VzIiwidXNlRG9jdW1lbnRJbmZvIiwiaW5pdGlhbFN0YXRlIiwic2V0SW5pdGlhbFN0YXRlIiwiZmllbGRTY2hlbWEiLCJmaWVsZHNVbnNhbml0aXplZCIsInRyYW5zZm9ybUV4dHJhRmllbGRzIiwidmFsaWRSZWxhdGlvbnNoaXBzIiwiY29sbGVjdGlvbnMiLCJtYXAiLCJjIiwic2x1ZyIsInNhbml0aXplRmllbGRzIiwiY2xvc2VNb2RhbCIsInRvZ2dsZU1vZGFsIiwidXNlTW9kYWwiLCJlZGl0RGVwdGgiLCJ1c2VFZGl0RGVwdGgiLCJpc0xpbmsiLCJzZXRJc0xpbmsiLCJkcmF3ZXJTbHVnIiwiZm9ybWF0RHJhd2VyU2x1ZyIsImRlcHRoIiwidXBkYXRlTGlua0VkaXRvciIsInVzZUNhbGxiYWNrIiwic2VsZWN0aW9uIiwiJGdldFNlbGVjdGlvbiIsInNlbGVjdGVkTm9kZURvbVJlY3QiLCIkaXNSYW5nZVNlbGVjdGlvbiIsIm5vZGUiLCJnZXRTZWxlY3RlZE5vZGUiLCJnZXRFbGVtZW50QnlLZXkiLCJnZXRLZXkiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJsaW5rUGFyZW50IiwiJGZpbmRNYXRjaGluZ1BhcmVudCIsIiRpc0xpbmtOb2RlIiwiZGF0YSIsImRvYyIsInVuZGVmaW5lZCIsImxpbmtUeXBlIiwibmV3VGFiIiwidXJsIiwiZ2V0RmllbGRzIiwidGV4dCIsImdldFRleHRDb250ZW50IiwicmVsYXRpb25UbyIsInZhbHVlIiwicmVsYXRlZEZpZWxkIiwiZmluZCIsImNvbGwiLCJsYWJlbCIsImdldFRyYW5zbGF0aW9uIiwibGFiZWxzIiwic2luZ3VsYXIiLCJyZXBsYWNlIiwicHJlZmVyZW5jZXMiLCJzdGF0ZSIsImJ1aWxkU3RhdGVGcm9tU2NoZW1hIiwib3BlcmF0aW9uIiwiZWRpdG9yRWxlbSIsImN1cnJlbnQiLCJuYXRpdmVTZWxlY3Rpb24iLCJ3aW5kb3ciLCJnZXRTZWxlY3Rpb24iLCJhY3RpdmVFbGVtZW50IiwiZG9jdW1lbnQiLCJyb290RWxlbWVudCIsImdldFJvb3RFbGVtZW50IiwiY29udGFpbnMiLCJhbmNob3JOb2RlIiwiZ2V0UmFuZ2VBdCIsInkiLCJzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3IiLCJjbGFzc05hbWUiLCJ1c2VFZmZlY3QiLCJtZXJnZVJlZ2lzdGVyIiwicmVnaXN0ZXJDb21tYW5kIiwiVE9HR0xFX0xJTktfV0lUSF9NT0RBTF9DT01NQU5EIiwicGF5bG9hZCIsImRpc3BhdGNoQ29tbWFuZCIsIlRPR0dMRV9MSU5LX0NPTU1BTkQiLCJ0aGVuIiwiY2F0Y2giLCJlcnJvciIsIkNPTU1BTkRfUFJJT1JJVFlfTE9XIiwic3R5bGUiLCJvcGFjaXR5IiwidHJhbnNmb3JtIiwic2Nyb2xsZXJFbGVtIiwicGFyZW50RWxlbWVudCIsInVwZGF0ZSIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVnaXN0ZXJVcGRhdGVMaXN0ZW5lciIsImVkaXRvclN0YXRlIiwiU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5EIiwiS0VZX0VTQ0FQRV9DT01NQU5EIiwiQ09NTUFORF9QUklPUklUWV9ISUdIIiwiUmVhY3QiLCJGcmFnbWVudCIsImRpdiIsInJlZiIsImEiLCJocmVmIiwicmVsIiwidGFyZ2V0IiwibGVuZ3RoIiwiaXNFZGl0YWJsZSIsImJ1dHRvbiIsImFyaWEtbGFiZWwiLCJvbkNsaWNrIiwib25Nb3VzZURvd24iLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwidGFiSW5kZXgiLCJ0eXBlIiwiTGlua0RyYXdlciIsImhhbmRsZU1vZGFsU3VibWl0IiwibmV3TGlua1BheWxvYWQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OzsrQkF3Q2dCQTs7O2VBQUFBOzs7dUJBckNTO3dDQUNpQjt1QkFDUzt5QkFRNUM7MEJBQzBCOzJCQVExQjt3QkFDd0I7NEJBQ0E7K0RBQ2lDOzhCQUNqQztzQ0FNUTtpQ0FDUDtzREFD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
336
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL0xpbmtFZGl0b3IvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHR5cGUgeyBEYXRhLCBGaWVsZHMgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VNb2RhbCB9IGZyb20gJ0BmYWNlbGVzcy11aS9tb2RhbCdcbmltcG9ydCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsQ29tcG9zZXJDb250ZXh0J1xuaW1wb3J0IHsgJGZpbmRNYXRjaGluZ1BhcmVudCwgbWVyZ2VSZWdpc3RlciB9IGZyb20gJ0BsZXhpY2FsL3V0aWxzJ1xuaW1wb3J0IHtcbiAgJGdldFNlbGVjdGlvbixcbiAgJGlzUmFuZ2VTZWxlY3Rpb24sXG4gIENPTU1BTkRfUFJJT1JJVFlfSElHSCxcbiAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gIEtFWV9FU0NBUEVfQ09NTUFORCxcbiAgU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5ELFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgZm9ybWF0RHJhd2VyU2x1ZyB9IGZyb20gJ3BheWxvYWQvY29tcG9uZW50cy9lbGVtZW50cydcbmltcG9ydCB7XG4gIGJ1aWxkU3RhdGVGcm9tU2NoZW1hLFxuICB1c2VBdXRoLFxuICB1c2VDb25maWcsXG4gIHVzZURvY3VtZW50SW5mbyxcbiAgdXNlRWRpdERlcHRoLFxuICB1c2VMb2NhbGUsXG59IGZyb20gJ3BheWxvYWQvY29tcG9uZW50cy91dGlsaXRpZXMnXG5pbXBvcnQgeyBzYW5pdGl6ZUZpZWxkcyB9IGZyb20gJ3BheWxvYWQvY29uZmlnJ1xuaW1wb3J0IHsgZ2V0VHJhbnNsYXRpb24gfSBmcm9tICdwYXlsb2FkL3V0aWxpdGllcydcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5cbmltcG9ydCB0eXBlIHsgTGlua0ZlYXR1cmVQcm9wcyB9IGZyb20gJy4uLy4uLy4uJ1xuaW1wb3J0IHR5cGUgeyBMaW5rTm9kZSB9IGZyb20gJy4uLy4uLy4uL25vZGVzL0xpbmtOb2RlJ1xuaW1wb3J0IHR5cGUgeyBMaW5rUGF5bG9hZCB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VFZGl0b3JDb25maWdDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGV4aWNhbC9jb25maWcvRWRpdG9yQ29uZmlnUHJvdmlkZXInXG5pbXBvcnQgeyBnZXRTZWxlY3RlZE5vZGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9sZXhpY2FsL3V0aWxzL2dldFNlbGVjdGVkTm9kZSdcbmltcG9ydCB7IHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xleGljYWwvdXRpbHMvc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yJ1xuaW1wb3J0IHsgTGlua0RyYXdlciB9IGZyb20gJy4uLy4uLy4uL2RyYXdlcidcbmltcG9ydCB7ICRpc0F1dG9MaW5rTm9kZSB9IGZyb20gJy4uLy4uLy4uL25vZGVzL0F1dG9MaW5rTm9kZSdcbmltcG9ydCB7ICRjcmVhdGVMaW5rTm9kZSB9IGZyb20gJy4uLy4uLy4uL25vZGVzL0xpbmtOb2RlJ1xuaW1wb3J0IHsgJGlzTGlua05vZGUsIFRPR0dMRV9MSU5LX0NPTU1BTkQgfSBmcm9tICcuLi8uLi8uLi9ub2Rlcy9MaW5rTm9kZSdcbmltcG9ydCB7IHRyYW5zZm9ybUV4dHJhRmllbGRzIH0gZnJvbSAnLi4vdXRpbGl0aWVzJ1xuaW1wb3J0IHsgVE9HR0xFX0xJTktfV0lUSF9NT0RBTF9DT01NQU5EIH0gZnJvbSAnLi9jb21tYW5kcydcblxuZXhwb3J0IGZ1bmN0aW9uIExpbmtFZGl0b3Ioe1xuICBhbmNob3JFbGVtLFxuICBkaXNhYmxlZENvbGxlY3Rpb25zLFxuICBlbmFibGVkQ29sbGVjdGlvbnMsXG4gIGZpZWxkczogY3VzdG9tRmllbGRTY2hlbWEsXG59OiB7IGFuY2hvckVsZW06IEhUTUxFbGVtZW50IH0gJiBMaW5rRmVhdHVyZVByb3BzKTogSlNYLkVsZW1lbnQge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuXG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtsaW5rVXJsLCBzZXRMaW5rVXJsXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbbGlua0xhYmVsLCBzZXRMaW5rTGFiZWxdID0gdXNlU3RhdGUoJycpXG5cbiAgY29uc3QgeyB1dWlkIH0gPSB1c2VFZGl0b3JDb25maWdDb250ZXh0KClcblxuICBjb25zdCBjb25maWcgPSB1c2VDb25maWcoKVxuXG4gIGNvbnN0IHsgdXNlciB9ID0gdXNlQXV0aCgpXG4gIGNvbnN0IHsgY29kZTogbG9jYWxlIH0gPSB1c2VMb2NhbGUoKVxuICBjb25zdCB7IGkxOG4sIHQgfSA9IHVzZVRyYW5zbGF0aW9uKFsnZmllbGRzJywgJ3VwbG9hZCcsICdnZW5lcmFsJ10pXG5cbiAgY29uc3QgeyBnZXREb2NQcmVmZXJlbmNlcyB9ID0gdXNlRG9jdW1lbnRJbmZvKClcblxuICBjb25zdCBbaW5pdGlhbFN0YXRlLCBzZXRJbml0aWFsU3RhdGVdID0gdXNlU3RhdGU8RmllbGRzPih7fSlcblxuICBjb25zdCBbZmllbGRTY2hlbWFdID0gdXNlU3RhdGUoKCkgPT4ge1xuICAgIGNvbnN0IGZpZWxkc1Vuc2FuaXRpemVkID0gdHJhbnNmb3JtRXh0cmFGaWVsZHMoXG4gICAgICBjdXN0b21GaWVsZFNjaGVtYSxcbiAgICAgIGNvbmZpZyxcbiAgICAgIGkxOG4sXG4gICAgICBlbmFibGVkQ29sbGVjdGlvbnMsXG4gICAgICBkaXNhYmxlZENvbGxlY3Rpb25zLFxuICAgIClcbiAgICAvLyBTYW5pdGl6ZSBjdXN0b20gZmllbGRzIGhlcmVcbiAgICBjb25zdCB2YWxpZFJlbGF0aW9uc2hpcHMgPSBjb25maWcuY29sbGVjdGlvbnMubWFwKChjKSA9PiBjLnNsdWcpIHx8IFtdXG4gICAgY29uc3QgZmllbGRzID0gc2FuaXRpemVGaWVsZHMoe1xuICAgICAgY29uZmlnLFxuICAgICAgZmllbGRzOiBmaWVsZHNVbnNhbml0aXplZCxcbiAgICAgIHZhbGlkUmVsYXRpb25zaGlwcyxcbiAgICB9KVxuXG4gICAgcmV0dXJuIGZpZWxkc1xuICB9KVxuXG4gIGNvbnN0IHsgY2xvc2VNb2RhbCwgdG9nZ2xlTW9kYWwgfSA9IHVzZU1vZGFsKClcbiAgY29uc3QgZWRpdERlcHRoID0gdXNlRWRpdERlcHRoKClcbiAgY29uc3QgW2lzTGluaywgc2V0SXNMaW5rXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNBdXRvTGluaywgc2V0SXNBdXRvTGlua10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBkcmF3ZXJTbHVnID0gZm9ybWF0RHJhd2VyU2x1Zyh7XG4gICAgc2x1ZzogYGxleGljYWwtcmljaC10ZXh0LWxpbmstYCArIHV1aWQsXG4gICAgZGVwdGg6IGVkaXREZXB0aCxcbiAgfSlcblxuICBjb25zdCB1cGRhdGVMaW5rRWRpdG9yID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgIGxldCBzZWxlY3RlZE5vZGVEb21SZWN0OiBET01SZWN0IHwgdW5kZWZpbmVkID0gbnVsbFxuXG4gICAgLy8gSGFuZGxlIHRoZSBkYXRhIGRpc3BsYXllZCBpbiB0aGUgZmxvYXRpbmcgbGluayBlZGl0b3IgJiBkcmF3ZXIgd2hlbiB5b3UgY2xpY2sgb24gYSBsaW5rIG5vZGVcbiAgICBpZiAoJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSkge1xuICAgICAgY29uc3Qgbm9kZSA9IGdldFNlbGVjdGVkTm9kZShzZWxlY3Rpb24pXG4gICAgICBzZWxlY3RlZE5vZGVEb21SZWN0ID0gZWRpdG9yLmdldEVsZW1lbnRCeUtleShub2RlLmdldEtleSgpKT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IGxpbmtQYXJlbnQ6IExpbmtOb2RlID0gJGZpbmRNYXRjaGluZ1BhcmVudChub2RlLCAkaXNMaW5rTm9kZSlcbiAgICAgIGlmIChsaW5rUGFyZW50ID09IG51bGwpIHtcbiAgICAgICAgc2V0SXNMaW5rKGZhbHNlKVxuICAgICAgICBzZXRJc0F1dG9MaW5rKGZhbHNlKVxuICAgICAgICBzZXRMaW5rVXJsKCcnKVxuICAgICAgICBzZXRMaW5rTGFiZWwoJycpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBJbml0aWFsIHN0YXRlOlxuICAgICAgY29uc3QgZGF0YTogTGlua1BheWxvYWQgPSB7XG4gICAgICAgIGZpZWxkczoge1xuICAgICAgICAgIGRvYzogdW5kZWZpbmVkLFxuICAgICAgICAgIGxpbmtUeXBlOiB1bmRlZmluZWQsXG4gICAgICAgICAgbmV3VGFiOiB1bmRlZmluZWQsXG4gICAgICAgICAgdXJsOiAnJyxcbiAgICAgICAgICAuLi5saW5rUGFyZW50LmdldEZpZWxkcygpLFxuICAgICAgICB9LFxuICAgICAgICB0ZXh0OiBsaW5rUGFyZW50LmdldFRleHRDb250ZW50KCksXG4gICAgICB9XG5cbiAgICAgIGlmIChsaW5rUGFyZW50LmdldEZpZWxkcygpPy5saW5rVHlwZSA9PT0gJ2N1c3RvbScpIHtcbiAgICAgICAgc2V0TGlua1VybChsaW5rUGFyZW50LmdldEZpZWxkcygpPy51cmwgPz8gJycpXG4gICAgICAgIHNldExpbmtMYWJlbCgnJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGludGVybmFsIGxpbmtcbiAgICAgICAgc2V0TGlua1VybChcbiAgICAgICAgICBgL2FkbWluL2NvbGxlY3Rpb25zLyR7bGlua1BhcmVudC5nZXRGaWVsZHMoKT8uZG9jPy5yZWxhdGlvblRvfS8ke2xpbmtQYXJlbnQuZ2V0RmllbGRzKClcbiAgICAgICAgICAgID8uZG9jPy52YWx1ZX1gLFxuICAgICAgICApXG5cbiAgICAgICAgY29uc3QgcmVsYXRlZEZpZWxkID0gY29uZmlnLmNvbGxlY3Rpb25zLmZpbmQoXG4gICAgICAgICAgKGNvbGwpID0+IGNvbGwuc2x1ZyA9PT0gbGlua1BhcmVudC5nZXRGaWVsZHMoKT8uZG9jPy5yZWxhdGlvblRvLFxuICAgICAgICApXG4gICAgICAgIGNvbnN0IGxhYmVsID0gdCgnZmllbGRzOmxpbmtlZFRvJywge1xuICAgICAgICAgIGxhYmVsOiBnZXRUcmFuc2xhdGlvbihyZWxhdGVkRmllbGQubGFiZWxzLnNpbmd1bGFyLCBpMThuKSxcbiAgICAgICAgfSkucmVwbGFjZSgvPFtePl0qPj8vZywgJycpXG4gICAgICAgIHNldExpbmtMYWJlbChsYWJlbClcbiAgICAgIH1cblxuICAgICAgLy8gU2V0IGluaXRpYWwgc3RhdGUgb2YgdGhlIGRyYXdlci4gVGhpcyB3aWxsIGJhc2ljYWxseSBwcmUtZmlsbCB0aGUgZHJhd2VyIGZpZWxkcyB3aXRoIHRoZVxuICAgICAgLy8gdmFsdWVzIHNhdmVkIGluIHRoZSBsaW5rIG5vZGUgeW91IGNsaWNrZWQgb24uXG4gICAgICBjb25zdCBwcmVmZXJlbmNlcyA9IGF3YWl0IGdldERvY1ByZWZlcmVuY2VzKClcbiAgICAgIGNvbnN0IHN0YXRlID0gYXdhaXQgYnVpbGRTdGF0ZUZyb21TY2hlbWEoe1xuICAgICAgICBjb25maWcsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGZpZWxkU2NoZW1hLFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIG9wZXJhdGlvbjogJ2NyZWF0ZScsXG4gICAgICAgIHByZWZlcmVuY2VzLFxuICAgICAgICB0LFxuICAgICAgICB1c2VyOiB1c2VyID8/IHVuZGVmaW5lZCxcbiAgICAgIH0pXG4gICAgICBzZXRJbml0aWFsU3RhdGUoc3RhdGUpXG4gICAgICBzZXRJc0xpbmsodHJ1ZSlcbiAgICAgIGlmICgkaXNBdXRvTGlua05vZGUobGlua1BhcmVudCkpIHtcbiAgICAgICAgc2V0SXNBdXRvTGluayh0cnVlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0SXNBdXRvTGluayhmYWxzZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBlZGl0b3JFbGVtID0gZWRpdG9yUmVmLmN1cnJlbnRcbiAgICBjb25zdCBuYXRpdmVTZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICBjb25zdCB7IGFjdGl2ZUVsZW1lbnQgfSA9IGRvY3VtZW50XG5cbiAgICBpZiAoZWRpdG9yRWxlbSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3Qgcm9vdEVsZW1lbnQgPSBlZGl0b3IuZ2V0Um9vdEVsZW1lbnQoKVxuXG4gICAgaWYgKFxuICAgICAgc2VsZWN0aW9uICE9PSBudWxsICYmXG4gICAgICBuYXRpdmVTZWxlY3Rpb24gIT09IG51bGwgJiZcbiAgICAgIHJvb3RFbGVtZW50ICE9PSBudWxsICYmXG4gICAgICByb290RWxlbWVudC5jb250YWlucyhuYXRpdmVTZWxlY3Rpb24uYW5jaG9yTm9kZSlcbiAgICApIHtcbiAgICAgIGlmICghc2VsZWN0ZWROb2RlRG9tUmVjdCkge1xuICAgICAgICAvLyBHZXQgdGhlIERPTSByZWN0IG9mIHRoZSBzZWxlY3RlZCBub2RlIHVzaW5nIHRoZSBuYXRpdmUgc2VsZWN0aW9uLiBUaGlzIHNvbWV0aW1lcyBwcm9kdWNlcyB0aGUgd3JvbmdcbiAgICAgICAgLy8gcmVzdWx0LCB3aGljaCBpcyB3aHkgd2UgdXNlIGxleGljYWwncyBzZWxlY3Rpb24gcHJlZmVyYWJseS5cbiAgICAgICAgc2VsZWN0ZWROb2RlRG9tUmVjdCA9IG5hdGl2ZVNlbGVjdGlvbi5nZXRSYW5nZUF0KDApLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICB9XG5cbiAgICAgIGlmIChzZWxlY3RlZE5vZGVEb21SZWN0ICE9IG51bGwpIHtcbiAgICAgICAgc2VsZWN0ZWROb2RlRG9tUmVjdC55ICs9IDQwXG4gICAgICAgIHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvcihzZWxlY3RlZE5vZGVEb21SZWN0LCBlZGl0b3JFbGVtLCBhbmNob3JFbGVtKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYWN0aXZlRWxlbWVudCA9PSBudWxsIHx8IGFjdGl2ZUVsZW1lbnQuY2xhc3NOYW1lICE9PSAnbGluay1pbnB1dCcpIHtcbiAgICAgIGlmIChyb290RWxlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICBzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3IobnVsbCwgZWRpdG9yRWxlbSwgYW5jaG9yRWxlbSlcbiAgICAgIH1cbiAgICAgIHNldExpbmtVcmwoJycpXG4gICAgICBzZXRMaW5rTGFiZWwoJycpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfSwgW2FuY2hvckVsZW0sIGVkaXRvciwgZmllbGRTY2hlbWEsIGNvbmZpZywgZ2V0RG9jUHJlZmVyZW5jZXMsIGxvY2FsZSwgdCwgdXNlciwgaTE4bl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCxcbiAgICAgICAgKHBheWxvYWQ6IExpbmtQYXlsb2FkKSA9PiB7XG4gICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChUT0dHTEVfTElOS19DT01NQU5ELCBwYXlsb2FkKVxuXG4gICAgICAgICAgLy8gTm93LCBvcGVuIHRoZSBtb2RhbFxuICAgICAgICAgIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0b2dnbGVNb2RhbChkcmF3ZXJTbHVnKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgIClcbiAgfSwgW2VkaXRvciwgdXBkYXRlTGlua0VkaXRvciwgdG9nZ2xlTW9kYWwsIGRyYXdlclNsdWddKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc0xpbmsgJiYgZWRpdG9yUmVmKSB7XG4gICAgICBlZGl0b3JSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzAnXG4gICAgICBlZGl0b3JSZWYuY3VycmVudC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlKC0xMDAwMHB4LCAtMTAwMDBweCknXG4gICAgfVxuICB9LCBbaXNMaW5rXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHNjcm9sbGVyRWxlbSA9IGFuY2hvckVsZW0ucGFyZW50RWxlbWVudFxuXG4gICAgY29uc3QgdXBkYXRlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgICB9KVxuICAgIH1cblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB1cGRhdGUpXG5cbiAgICBpZiAoc2Nyb2xsZXJFbGVtICE9IG51bGwpIHtcbiAgICAgIHNjcm9sbGVyRWxlbS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB1cGRhdGUpXG5cbiAgICAgIGlmIChzY3JvbGxlckVsZW0gIT0gbnVsbCkge1xuICAgICAgICBzY3JvbGxlckVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2FuY2hvckVsZW0ucGFyZW50RWxlbWVudCwgZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBtZXJnZVJlZ2lzdGVyKFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIoKHsgZWRpdG9yU3RhdGUgfSkgPT4ge1xuICAgICAgICBlZGl0b3JTdGF0ZS5yZWFkKCgpID0+IHtcbiAgICAgICAgICB2b2lkIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgICAgICB9KVxuICAgICAgfSksXG5cbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFNFTEVDVElPTl9DSEFOR0VfQ09NTUFORCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZChcbiAgICAgICAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgaWYgKGlzTGluaykge1xuICAgICAgICAgICAgc2V0SXNMaW5rKGZhbHNlKVxuICAgICAgICAgICAgc2V0SXNBdXRvTGluayhmYWxzZSlcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0hJR0gsXG4gICAgICApLFxuICAgIClcbiAgfSwgW2VkaXRvciwgdXBkYXRlTGlua0VkaXRvciwgc2V0SXNMaW5rLCBpc0xpbmtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICB2b2lkIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgIH0pXG4gIH0sIFtlZGl0b3IsIHVwZGF0ZUxpbmtFZGl0b3JdKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5rLWVkaXRvclwiIHJlZj17ZWRpdG9yUmVmfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5rLWlucHV0XCI+XG4gICAgICAgICAgPGEgaHJlZj17bGlua1VybH0gcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICAgICAge2xpbmtMYWJlbCAhPSBudWxsICYmIGxpbmtMYWJlbC5sZW5ndGggPiAwID8gbGlua0xhYmVsIDogbGlua1VybH1cbiAgICAgICAgICA8L2E+XG4gICAgICAgICAge2VkaXRvci5pc0VkaXRhYmxlKCkgJiYgKFxuICAgICAgICAgICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkVkaXQgbGlua1wiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGluay1lZGl0XCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0b2dnbGVNb2RhbChkcmF3ZXJTbHVnKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25Nb3VzZURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIHshaXNBdXRvTGluayAmJiAoXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlJlbW92ZSBsaW5rXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImxpbmstdHJhc2hcIlxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBlZGl0b3IuZGlzcGF0Y2hDb21tYW5kKFRPR0dMRV9MSU5LX0NPTU1BTkQsIG51bGwpXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb25Nb3VzZURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPExpbmtEcmF3ZXJcbiAgICAgICAgZHJhd2VyU2x1Zz17ZHJhd2VyU2x1Z31cbiAgICAgICAgZmllbGRTY2hlbWE9e2ZpZWxkU2NoZW1hfVxuICAgICAgICBoYW5kbGVNb2RhbFN1Ym1pdD17KGZpZWxkczogRmllbGRzLCBkYXRhOiBEYXRhKSA9PiB7XG4gICAgICAgICAgY2xvc2VNb2RhbChkcmF3ZXJTbHVnKVxuXG4gICAgICAgICAgY29uc3QgbmV3TGlua1BheWxvYWQ6IExpbmtQYXlsb2FkID0gZGF0YSBhcyBMaW5rUGF5bG9hZFxuXG4gICAgICAgICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svbGV4aWNhbC9wdWxsLzU1MzYuIFRoaXMgdXBkYXRlcyBhdXRvbGluayBub2RlcyB0byBsaW5rIG5vZGVzIHdoZW5ldmVyIGEgY2hhbmdlIHdhcyBtYWRlICh3aGljaCBpcyBnb29kISkuXG4gICAgICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICAgICAgICAgIGlmICgkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IGdldFNlbGVjdGVkTm9kZShzZWxlY3Rpb24pLmdldFBhcmVudCgpXG4gICAgICAgICAgICAgIGlmICgkaXNBdXRvTGlua05vZGUocGFyZW50KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmtOb2RlID0gJGNyZWF0ZUxpbmtOb2RlKHtcbiAgICAgICAgICAgICAgICAgIGZpZWxkczogbmV3TGlua1BheWxvYWQuZmllbGRzLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgcGFyZW50LnJlcGxhY2UobGlua05vZGUsIHRydWUpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgLy8gTmVlZHMgdG8gaGFwcGVuIEFGVEVSIGEgcG90ZW50aWFsIGF1dG8gbGluayA9PiBsaW5rIG5vZGUgY29udmVyc2lvbiwgYXMgb3RoZXJ3aXNlLCB0aGUgdXBkYXRlZCB0ZXh0IHRvIGRpc3BsYXkgbWF5IGJlIGxvc3QgZHVlIHRvXG4gICAgICAgICAgLy8gaXQgYmVpbmcgYXBwbGllZCB0byB0aGUgYXV0byBsaW5rIG5vZGUgaW5zdGVhZCBvZiB0aGUgbGluayBub2RlLlxuICAgICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoVE9HR0xFX0xJTktfQ09NTUFORCwgbmV3TGlua1BheWxvYWQpXG4gICAgICAgIH19XG4gICAgICAgIGluaXRpYWxTdGF0ZT17aW5pdGlhbFN0YXRlfVxuICAgICAgLz5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApXG59XG4iXSwibmFtZXMiOlsiTGlua0VkaXRvciIsImFuY2hvckVsZW0iLCJkaXNhYmxlZENvbGxlY3Rpb25zIiwiZW5hYmxlZENvbGxlY3Rpb25zIiwiZmllbGRzIiwiY3VzdG9tRmllbGRTY2hlbWEiLCJlZGl0b3IiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwiZWRpdG9yUmVmIiwidXNlUmVmIiwibGlua1VybCIsInNldExpbmtVcmwiLCJ1c2VTdGF0ZSIsImxpbmtMYWJlbCIsInNldExpbmtMYWJlbCIsInV1aWQiLCJ1c2VFZGl0b3JDb25maWdDb250ZXh0IiwiY29uZmlnIiwidXNlQ29uZmlnIiwidXNlciIsInVzZUF1dGgiLCJjb2RlIiwibG9jYWxlIiwidXNlTG9jYWxlIiwiaTE4biIsInQiLCJ1c2VUcmFuc2xhdGlvbiIsImdldERvY1ByZWZlcmVuY2VzIiwidXNlRG9jdW1lbnRJbmZvIiwiaW5pdGlhbFN0YXRlIiwic2V0SW5pdGlhbFN0YXRlIiwiZmllbGRTY2hlbWEiLCJmaWVsZHNVbnNhbml0aXplZCIsInRyYW5zZm9ybUV4dHJhRmllbGRzIiwidmFsaWRSZWxhdGlvbnNoaXBzIiwiY29sbGVjdGlvbnMiLCJtYXAiLCJjIiwic2x1ZyIsInNhbml0aXplRmllbGRzIiwiY2xvc2VNb2RhbCIsInRvZ2dsZU1vZGFsIiwidXNlTW9kYWwiLCJlZGl0RGVwdGgiLCJ1c2VFZGl0RGVwdGgiLCJpc0xpbmsiLCJzZXRJc0xpbmsiLCJpc0F1dG9MaW5rIiwic2V0SXNBdXRvTGluayIsImRyYXdlclNsdWciLCJmb3JtYXREcmF3ZXJTbHVnIiwiZGVwdGgiLCJ1cGRhdGVMaW5rRWRpdG9yIiwidXNlQ2FsbGJhY2siLCJzZWxlY3Rpb24iLCIkZ2V0U2VsZWN0aW9uIiwic2VsZWN0ZWROb2RlRG9tUmVjdCIsIiRpc1JhbmdlU2VsZWN0aW9uIiwibm9kZSIsImdldFNlbGVjdGVkTm9kZSIsImdldEVsZW1lbnRCeUtleSIsImdldEtleSIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImxpbmtQYXJlbnQiLCIkZmluZE1hdGNoaW5nUGFyZW50IiwiJGlzTGlua05vZGUiLCJkYXRhIiwiZG9jIiwidW5kZWZpbmVkIiwibGlua1R5cGUiLCJuZXdUYWIiLCJ1cmwiLCJnZXRGaWVsZHMiLCJ0ZXh0IiwiZ2V0VGV4dENvbnRlbnQiLCJyZWxhdGlvblRvIiwidmFsdWUiLCJyZWxhdGVkRmllbGQiLCJmaW5kIiwiY29sbCIsImxhYmVsIiwiZ2V0VHJhbnNsYXRpb24iLCJsYWJlbHMiLCJzaW5ndWxhciIsInJlcGxhY2UiLCJwcmVmZXJlbmNlcyIsInN0YXRlIiwiYnVpbGRTdGF0ZUZyb21TY2hlbWEiLCJvcGVyYXRpb24iLCIkaXNBdXRvTGlua05vZGUiLCJlZGl0b3JFbGVtIiwiY3VycmVudCIsIm5hdGl2ZVNlbGVjdGlvbiIsIndpbmRvdyIsImdldFNlbGVjdGlvbiIsImFjdGl2ZUVsZW1lbnQiLCJkb2N1bWVudCIsInJvb3RFbGVtZW50IiwiZ2V0Um9vdEVsZW1lbnQiLCJjb250YWlucyIsImFuY2hvck5vZGUiLCJnZXRSYW5nZUF0IiwieSIsInNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvciIsImNsYXNzTmFtZSIsInVzZUVmZmVjdCIsIm1lcmdlUmVnaXN0ZXIiLCJyZWdpc3RlckNvbW1hbmQiLCJUT0dHTEVfTElOS19XSVRIX01PREFMX0NPTU1BTkQiLCJwYXlsb2FkIiwiZGlzcGF0Y2hDb21tYW5kIiwiVE9HR0xFX0xJTktfQ09NTUFORCIsInRoZW4iLCJjYXRjaCIsImVycm9yIiwiQ09NTUFORF9QUklPUklUWV9MT1ciLCJzdHlsZSIsIm9wYWNpdHkiLCJ0cmFuc2Zvcm0iLCJzY3JvbGxlckVsZW0iLCJwYXJlbnRFbGVtZW50IiwidXBkYXRlIiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZWdpc3RlclVwZGF0ZUxpc3RlbmVyIiwiZWRpdG9yU3RhdGUiLCJTRUxFQ1RJT05fQ0hBTkdFX0NPTU1BTkQiLCJLRVlfRVNDQVBFX0NPTU1BTkQiLCJDT01NQU5EX1BSSU9SSVRZX0hJR0giLCJSZWFjdCIsIkZyYWdtZW50IiwiZGl2IiwicmVmIiwiYSIsImhyZWYiLCJyZWwiLCJ0YXJnZXQiLCJsZW5ndGgiLCJpc0VkaXRhYmxlIiwiYnV0dG9uIiwiYXJpYS1sYWJlbCIsIm9uQ2xpY2siLCJvbk1vdXNlRG93biIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJ0YWJJbmRleCIsInR5cGUiLCJMaW5rRHJhd2VyIiwiaGFuZGxlTW9kYWxTdWJtaXQiLCJuZXdMaW5rUGF5bG9hZCIsInBhcmVudCIsImdldFBhcmVudCIsImxpbmtOb2RlIiwiJGNyZWF0ZUxpbmtOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7K0JBMENnQkE7OztlQUFBQTs7O3VCQXZDUzt3Q0FDaUI7dUJBQ1M7eUJBUTVDOzBCQUMwQjsyQkFRMUI7d0JBQ3dCOzRCQUNBOytEQUNpQzs4QkFDakM7c0NBTVE7aUNBQ1A7c0RBQ3FCO3dCQUMxQjs4QkFDSzswQkFDQTs0QkFFSzswQkFDVTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXhDLFNBQVNBLFdBQVcsRUFDekJDLFVBQVUsRUFDVkMsbUJBQW1CLEVBQ25CQyxrQkFBa0IsRUFDbEJDLFFBQVFDLGlCQUFpQixFQUNzQjtJQUMvQyxNQUFNLENBQUNDLE9BQU8sR0FBR0MsSUFBQUEsaURBQXlCO0lBRTFDLE1BQU1DLFlBQVlDLElBQUFBLGFBQU0sRUFBd0I7SUFDaEQsTUFBTSxDQUFDQyxTQUFTQyxXQUFXLEdBQUdDLElBQUFBLGVBQVEsRUFBQztJQUN2QyxNQUFNLENBQUNDLFdBQVdDLGFBQWEsR0FBR0YsSUFBQUEsZUFBUSxFQUFDO0lBRTNDLE1BQU0sRUFBRUcsSUFBSSxFQUFFLEdBQUdDLElBQUFBLDRDQUFzQjtJQUV2QyxNQUFNQyxTQUFTQyxJQUFBQSxvQkFBUztJQUV4QixNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHQyxJQUFBQSxrQkFBTztJQUN4QixNQUFNLEVBQUVDLE1BQU1DLE1BQU0sRUFBRSxHQUFHQyxJQUFBQSxvQkFBUztJQUNsQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsQ0FBQyxFQUFFLEdBQUdDLElBQUFBLDRCQUFjLEVBQUM7UUFBQztRQUFVO1FBQVU7S0FBVTtJQUVsRSxNQUFNLEVBQUVDLGlCQUFpQixFQUFFLEdBQUdDLElBQUFBLDBCQUFlO0lBRTdDLE1BQU0sQ0FBQ0MsY0FBY0MsZ0JBQWdCLEdBQUdsQixJQUFBQSxlQUFRLEVBQVMsQ0FBQztJQUUxRCxNQUFNLENBQUNtQixZQUFZLEdBQUduQixJQUFBQSxlQUFRLEVBQUM7UUFDN0IsTUFBTW9CLG9CQUFvQkMsSUFBQUEsZ0NBQW9CLEVBQzVDNUIsbUJBQ0FZLFFBQ0FPLE1BQ0FyQixvQkFDQUQ7UUFFRiw4QkFBOEI7UUFDOUIsTUFBTWdDLHFCQUFxQmpCLE9BQU9rQixXQUFXLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxJQUFJLEtBQUssRUFBRTtRQUN0RSxNQUFNbEMsU0FBU21DLElBQUFBLHNCQUFjLEVBQUM7WUFDNUJ0QjtZQUNBYixRQUFRNEI7WUFDUkU7UUFDRjtRQUVBLE9BQU85QjtJQUNUO0lBRUEsTUFBTSxFQUFFb0MsVUFBVSxFQUFFQyxXQUFXLEVBQUUsR0FBR0MsSUFBQUEsZUFBUTtJQUM1QyxNQUFNQyxZQUFZQyxJQUFBQSx1QkFBWTtJQUM5QixNQUFNLENBQUNDLFFBQVFDLFVBQVUsR0FBR2xDLElBQUFBLGVBQVEsRUFBQztJQUNyQyxNQUFNLENBQUNtQyxZQUFZQyxjQUFjLEdBQUdwQyxJQUFBQSxlQUFRLEVBQUM7SUFFN0MsTUFBTXFDLGFBQWFDLElBQUFBLDBCQUFnQixFQUFDO1FBQ2xDWixNQUFNLENBQUMsdUJBQXVCLENBQUMsR0FBR3ZCO1FBQ2xDb0MsT0FBT1I7SUFDVDtJQUVBLE1BQU1TLG1CQUFtQkMsSUFBQUEsa0JBQVcsRUFBQztRQUNuQyxNQUFNQyxZQUFZQyxJQUFBQSxzQkFBYTtRQUMvQixJQUFJQyxzQkFBMkM7UUFFL0MsK0ZBQStGO1FBQy9GLElBQUlDLElBQUFBLDBCQUFpQixFQUFDSCxZQUFZO1lBQ2hDLE1BQU1JLE9BQU9DLElBQUFBLGdDQUFlLEVBQUNMO1lBQzdCRSxzQkFBc0JsRCxPQUFPc0QsZUFBZSxDQUFDRixLQUFLRyxNQUFNLEtBQUtDO1lBQzdELE1BQU1DLGFBQXVCQyxJQUFBQSwwQkFBbUIsRUFBQ04sTUFBTU8scUJBQVc7WUFDbEUsSUFBSUYsY0FBYyxNQUFNO2dCQUN0QmpCLFVBQVU7Z0JBQ1ZFLGNBQWM7Z0JBQ2RyQyxXQUFXO2dCQUNYRyxhQUFhO2dCQUNiO1lBQ0Y7WUFFQSxpQkFBaUI7WUFDakIsTUFBTW9ELE9BQW9CO2dCQUN4QjlELFFBQVE7b0JBQ04rRCxLQUFLQztvQkFDTEMsVUFBVUQ7b0JBQ1ZFLFFBQVFGO29CQUNSRyxLQUFLO29CQUNMLEdBQUdSLFdBQVdTLFNBQVMsRUFBRTtnQkFDM0I7Z0JBQ0FDLE1BQU1WLFdBQVdXLGNBQWM7WUFDakM7WUFFQSxJQUFJWCxXQUFXUyxTQUFTLElBQUlILGFBQWEsVUFBVTtnQkFDakQxRCxXQUFXb0QsV0FBV1MsU0FBUyxJQUFJRCxPQUFPO2dCQUMxQ3pELGFBQWE7WUFDZixPQUFPO2dCQUNMLGdCQUFnQjtnQkFDaEJILFdBQ0UsQ0FBQyxtQkFBbUIsRUFBRW9ELFdBQVdTLFNBQVMsSUFBSUwsS0FBS1EsV0FBVyxDQUFDLEVBQUVaLFdBQVdTLFNBQVMsSUFDakZMLEtBQUtTLE1BQU0sQ0FBQztnQkFHbEIsTUFBTUMsZUFBZTVELE9BQU9rQixXQUFXLENBQUMyQyxJQUFJLENBQzFDLENBQUNDLE9BQVNBLEtBQUt6QyxJQUFJLEtBQUt5QixXQUFXUyxTQUFTLElBQUlMLEtBQUtRO2dCQUV2RCxNQUFNSyxRQUFRdkQsRUFBRSxtQkFBbUI7b0JBQ2pDdUQsT0FBT0MsSUFBQUEsMEJBQWMsRUFBQ0osYUFBYUssTUFBTSxDQUFDQyxRQUFRLEVBQUUzRDtnQkFDdEQsR0FBRzRELE9BQU8sQ0FBQyxhQUFhO2dCQUN4QnRFLGFBQWFrRTtZQUNmO1lBRUEsMkZBQTJGO1lBQzNGLGdEQUFnRDtZQUNoRCxNQUFNSyxjQUFjLE1BQU0xRDtZQUMxQixNQUFNMkQsUUFBUSxNQUFNQyxJQUFBQSwrQkFBb0IsRUFBQztnQkFDdkN0RTtnQkFDQWlEO2dCQUNBbkM7Z0JBQ0FUO2dCQUNBa0UsV0FBVztnQkFDWEg7Z0JBQ0E1RDtnQkFDQU4sTUFBTUEsUUFBUWlEO1lBQ2hCO1lBQ0F0QyxnQkFBZ0J3RDtZQUNoQnhDLFVBQVU7WUFDVixJQUFJMkMsSUFBQUEsNkJBQWUsRUFBQzFCLGFBQWE7Z0JBQy9CZixjQUFjO1lBQ2hCLE9BQU87Z0JBQ0xBLGNBQWM7WUFDaEI7UUFDRjtRQUVBLE1BQU0wQyxhQUFhbEYsVUFBVW1GLE9BQU87UUFDcEMsTUFBTUMsa0JBQWtCQyxPQUFPQyxZQUFZO1FBQzNDLE1BQU0sRUFBRUMsYUFBYSxFQUFFLEdBQUdDO1FBRTFCLElBQUlOLGVBQWUsTUFBTTtZQUN2QjtRQUNGO1FBRUEsTUFBTU8sY0FBYzNGLE9BQU80RixjQUFjO1FBRXpDLElBQ0U1QyxjQUFjLFFBQ2RzQyxvQkFBb0IsUUFDcEJLLGdCQUFnQixRQUNoQkEsWUFBWUUsUUFBUSxDQUFDUCxnQkFBZ0JRLFVBQVUsR0FDL0M7WUFDQSxJQUFJLENBQUM1QyxxQkFBcUI7Z0JBQ3hCLHNHQUFzRztnQkFDdEcsOERBQThEO2dCQUM5REEsc0JBQXNCb0MsZ0JBQWdCUyxVQUFVLENBQUMsR0FBR3ZDLHFCQUFxQjtZQUMzRTtZQUVBLElBQUlOLHVCQUF1QixNQUFNO2dCQUMvQkEsb0JBQW9COEMsQ0FBQyxJQUFJO2dCQUN6QkMsSUFBQUEsMEVBQW9DLEVBQUMvQyxxQkFBcUJrQyxZQUFZekY7WUFDeEU7UUFDRixPQUFPLElBQUk4RixpQkFBaUIsUUFBUUEsY0FBY1MsU0FBUyxLQUFLLGNBQWM7WUFDNUUsSUFBSVAsZ0JBQWdCLE1BQU07Z0JBQ3hCTSxJQUFBQSwwRUFBb0MsRUFBQyxNQUFNYixZQUFZekY7WUFDekQ7WUFDQVUsV0FBVztZQUNYRyxhQUFhO1FBQ2Y7UUFFQSxPQUFPO0lBQ1QsR0FBRztRQUFDYjtRQUFZSztRQUFReUI7UUFBYWQ7UUFBUVU7UUFBbUJMO1FBQVFHO1FBQUdOO1FBQU1LO0tBQUs7SUFFdEZpRixJQUFBQSxnQkFBUyxFQUFDO1FBQ1IsT0FBT0MsSUFBQUEsb0JBQWEsRUFDbEJwRyxPQUFPcUcsZUFBZSxDQUNwQkMsd0NBQThCLEVBQzlCLENBQUNDO1lBQ0N2RyxPQUFPd0csZUFBZSxDQUFDQyw2QkFBbUIsRUFBRUY7WUFFNUMsc0JBQXNCO1lBQ3RCekQsbUJBQ0c0RCxJQUFJLENBQUM7Z0JBQ0p2RSxZQUFZUTtZQUNkLEdBQ0NnRSxLQUFLLENBQUMsQ0FBQ0M7Z0JBQ04sTUFBTUE7WUFDUjtZQUNGLE9BQU87UUFDVCxHQUNBQyw2QkFBb0I7SUFHMUIsR0FBRztRQUFDN0c7UUFBUThDO1FBQWtCWDtRQUFhUTtLQUFXO0lBRXREd0QsSUFBQUEsZ0JBQVMsRUFBQztRQUNSLElBQUksQ0FBQzVELFVBQVVyQyxXQUFXO1lBQ3hCQSxVQUFVbUYsT0FBTyxDQUFDeUIsS0FBSyxDQUFDQyxPQUFPLEdBQUc7WUFDbEM3RyxVQUFVbUYsT0FBTyxDQUFDeUIsS0FBSyxDQUFDRSxTQUFTLEdBQUc7UUFDdEM7SUFDRixHQUFHO1FBQUN6RTtLQUFPO0lBRVg0RCxJQUFBQSxnQkFBUyxFQUFDO1FBQ1IsTUFBTWMsZUFBZXRILFdBQVd1SCxhQUFhO1FBRTdDLE1BQU1DLFNBQVM7WUFDYm5ILE9BQU9vSCxjQUFjLEdBQUdDLElBQUksQ0FBQztnQkFDM0IsS0FBS3ZFO1lBQ1A7UUFDRjtRQUVBeUMsT0FBTytCLGdCQUFnQixDQUFDLFVBQVVIO1FBRWxDLElBQUlGLGdCQUFnQixNQUFNO1lBQ3hCQSxhQUFhSyxnQkFBZ0IsQ0FBQyxVQUFVSDtRQUMxQztRQUVBLE9BQU87WUFDTDVCLE9BQU9nQyxtQkFBbUIsQ0FBQyxVQUFVSjtZQUVyQyxJQUFJRixnQkFBZ0IsTUFBTTtnQkFDeEJBLGFBQWFNLG1CQUFtQixDQUFDLFVBQVVKO1lBQzdDO1FBQ0Y7SUFDRixHQUFHO1FBQUN4SCxXQUFXdUgsYUFBYTtRQUFFbEg7UUFBUThDO0tBQWlCO0lBRXZEcUQsSUFBQUEsZ0JBQVMsRUFBQztRQUNSLE9BQU9DLElBQUFBLG9CQUFhLEVBQ2xCcEcsT0FBT3dILHNCQUFzQixDQUFDLENBQUMsRUFBRUMsV0FBVyxFQUFFO1lBQzVDQSxZQUFZSixJQUFJLENBQUM7Z0JBQ2YsS0FBS3ZFO1lBQ1A7UUFDRixJQUVBOUMsT0FBT3FHLGVBQWUsQ0FDcEJxQixpQ0FBd0IsRUFDeEI7WUFDRSxLQUFLNUU7WUFDTCxPQUFPO1FBQ1QsR0FDQStELDZCQUFvQixHQUV0QjdHLE9BQU9xRyxlQUFlLENBQ3BCc0IsMkJBQWtCLEVBQ2xCO1lBQ0UsSUFBSXBGLFFBQVE7Z0JBQ1ZDLFVBQVU7Z0JBQ1ZFLGNBQWM7Z0JBQ2QsT0FBTztZQUNUO1lBQ0EsT0FBTztRQUNULEdBQ0FrRiw4QkFBcUI7SUFHM0IsR0FBRztRQUFDNUg7UUFBUThDO1FBQWtCTjtRQUFXRDtLQUFPO0lBRWhENEQsSUFBQUEsZ0JBQVMsRUFBQztRQUNSbkcsT0FBT29ILGNBQWMsR0FBR0MsSUFBSSxDQUFDO1lBQzNCLEtBQUt2RTtRQUNQO0lBQ0YsR0FBRztRQUFDOUM7UUFBUThDO0tBQWlCO0lBRTdCLHFCQUNFLDZCQUFDK0UsY0FBSyxDQUFDQyxRQUFRLHNCQUNiLDZCQUFDQztRQUFJN0IsV0FBVTtRQUFjOEIsS0FBSzlIO3FCQUNoQyw2QkFBQzZIO1FBQUk3QixXQUFVO3FCQUNiLDZCQUFDK0I7UUFBRUMsTUFBTTlIO1FBQVMrSCxLQUFJO1FBQXNCQyxRQUFPO09BQ2hEN0gsYUFBYSxRQUFRQSxVQUFVOEgsTUFBTSxHQUFHLElBQUk5SCxZQUFZSCxVQUUxREosT0FBT3NJLFVBQVUsb0JBQ2hCLDZCQUFDVCxjQUFLLENBQUNDLFFBQVEsc0JBQ2IsNkJBQUNTO1FBQ0NDLGNBQVc7UUFDWHRDLFdBQVU7UUFDVnVDLFNBQVM7WUFDUHRHLFlBQVlRO1FBQ2Q7UUFDQStGLGFBQWEsQ0FBQ0M7WUFDWkEsTUFBTUMsY0FBYztRQUN0QjtRQUNBQyxVQUFVO1FBQ1ZDLE1BQUs7UUFFTixDQUFDckcsNEJBQ0EsNkJBQUM4RjtRQUNDQyxjQUFXO1FBQ1h0QyxXQUFVO1FBQ1Z1QyxTQUFTO1lBQ1B6SSxPQUFPd0csZUFBZSxDQUFDQyw2QkFBbUIsRUFBRTtRQUM5QztRQUNBaUMsYUFBYSxDQUFDQztZQUNaQSxNQUFNQyxjQUFjO1FBQ3RCO1FBQ0FDLFVBQVU7UUFDVkMsTUFBSzt5QkFPakIsNkJBQUNDLGtCQUFVO1FBQ1RwRyxZQUFZQTtRQUNabEIsYUFBYUE7UUFDYnVILG1CQUFtQixDQUFDbEosUUFBZ0I4RDtZQUNsQzFCLFdBQVdTO1lBRVgsTUFBTXNHLGlCQUE4QnJGO1lBRXBDLDZJQUE2STtZQUM3STVELE9BQU9tSCxNQUFNLENBQUM7Z0JBQ1osTUFBTW5FLFlBQVlDLElBQUFBLHNCQUFhO2dCQUMvQixJQUFJRSxJQUFBQSwwQkFBaUIsRUFBQ0gsWUFBWTtvQkFDaEMsTUFBTWtHLFNBQVM3RixJQUFBQSxnQ0FBZSxFQUFDTCxXQUFXbUcsU0FBUztvQkFDbkQsSUFBSWhFLElBQUFBLDZCQUFlLEVBQUMrRCxTQUFTO3dCQUMzQixNQUFNRSxXQUFXQyxJQUFBQSx5QkFBZSxFQUFDOzRCQUMvQnZKLFFBQVFtSixlQUFlbkosTUFBTTt3QkFDL0I7d0JBQ0FvSixPQUFPcEUsT0FBTyxDQUFDc0UsVUFBVTtvQkFDM0I7Z0JBQ0Y7WUFDRjtZQUVBLG9JQUFvSTtZQUNwSSxtRUFBbUU7WUFDbkVwSixPQUFPd0csZUFBZSxDQUFDQyw2QkFBbUIsRUFBRXdDO1FBQzlDO1FBQ0ExSCxjQUFjQTs7QUFJdEIifQ==
@@ -34,7 +34,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
34
34
  if (cache && cache.has(obj)) {
35
35
  return cache.get(obj);
36
36
  }
37
- var newObj = {};
37
+ var newObj = {
38
+ __proto__: null
39
+ };
38
40
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
39
41
  for(var key in obj){
40
42
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -60,4 +62,4 @@ const FloatingLinkEditorPlugin = (props)=>{
60
62
  }), anchorElem);
61
63
  };
62
64
 
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgdHlwZSB7IExpbmtGZWF0dXJlUHJvcHMgfSBmcm9tICcuLi8uLidcblxuaW1wb3J0IHsgTGlua0VkaXRvciB9IGZyb20gJy4vTGlua0VkaXRvcidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5leHBvcnQgY29uc3QgRmxvYXRpbmdMaW5rRWRpdG9yUGx1Z2luOiBSZWFjdC5GQzxcbiAge1xuICAgIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIH0gJiBMaW5rRmVhdHVyZVByb3BzXG4+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgYW5jaG9yRWxlbSA9IGRvY3VtZW50LmJvZHkgfSA9IHByb3BzXG5cbiAgcmV0dXJuIGNyZWF0ZVBvcnRhbCg8TGlua0VkaXRvciB7Li4ucHJvcHN9IGFuY2hvckVsZW09e2FuY2hvckVsZW19IC8+LCBhbmNob3JFbGVtKVxufVxuIl0sIm5hbWVzIjpbIkZsb2F0aW5nTGlua0VkaXRvclBsdWdpbiIsInByb3BzIiwiYW5jaG9yRWxlbSIsImRvY3VtZW50IiwiYm9keSIsImNyZWF0ZVBvcnRhbCIsIkxpbmtFZGl0b3IiXSwibWFwcGluZ3MiOiJBQUFBOzs7OzsrQkFTYUE7OztlQUFBQTs7OytEQVJVOzBCQUNNOzRCQUlGO1FBQ3BCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsTUFBTUEsMkJBSVQsQ0FBQ0M7SUFDSCxNQUFNLEVBQUVDLGFBQWFDLFNBQVNDLElBQUksRUFBRSxHQUFHSDtJQUV2QyxxQkFBT0ksSUFBQUEsc0JBQVksZ0JBQUMscUJBQUNDLHNCQUFVO1FBQUUsR0FBR0wsS0FBSztRQUFFQyxZQUFZQTtRQUFnQkE7QUFDekUifQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgdHlwZSB7IExpbmtGZWF0dXJlUHJvcHMgfSBmcm9tICcuLi8uLidcblxuaW1wb3J0IHsgTGlua0VkaXRvciB9IGZyb20gJy4vTGlua0VkaXRvcidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5leHBvcnQgY29uc3QgRmxvYXRpbmdMaW5rRWRpdG9yUGx1Z2luOiBSZWFjdC5GQzxcbiAge1xuICAgIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIH0gJiBMaW5rRmVhdHVyZVByb3BzXG4+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgYW5jaG9yRWxlbSA9IGRvY3VtZW50LmJvZHkgfSA9IHByb3BzXG5cbiAgcmV0dXJuIGNyZWF0ZVBvcnRhbCg8TGlua0VkaXRvciB7Li4ucHJvcHN9IGFuY2hvckVsZW09e2FuY2hvckVsZW19IC8+LCBhbmNob3JFbGVtKVxufVxuIl0sIm5hbWVzIjpbIkZsb2F0aW5nTGlua0VkaXRvclBsdWdpbiIsInByb3BzIiwiYW5jaG9yRWxlbSIsImRvY3VtZW50IiwiYm9keSIsImNyZWF0ZVBvcnRhbCIsIkxpbmtFZGl0b3IiXSwibWFwcGluZ3MiOiJBQUFBOzs7OzsrQkFTYUE7OztlQUFBQTs7OytEQVJVOzBCQUNNOzRCQUlGO1FBQ3BCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxNQUFNQSwyQkFJVCxDQUFDQztJQUNILE1BQU0sRUFBRUMsYUFBYUMsU0FBU0MsSUFBSSxFQUFFLEdBQUdIO0lBRXZDLHFCQUFPSSxJQUFBQSxzQkFBWSxnQkFBQyxxQkFBQ0Msc0JBQVU7UUFBRSxHQUFHTCxLQUFLO1FBQUVDLFlBQVlBO1FBQWdCQTtBQUN6RSJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/field/features/Paragraph/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAK/C,eAAO,MAAM,gBAAgB,QAAO,eAyDnC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/field/features/Paragraph/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAK/C,eAAO,MAAM,gBAAgB,QAAO,eAqDnC,CAAA"}
@@ -33,7 +33,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
33
33
  if (cache && cache.has(obj)) {
34
34
  return cache.get(obj);
35
35
  }
36
- var newObj = {};
36
+ var newObj = {
37
+ __proto__: null
38
+ };
37
39
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
38
40
  for(var key in obj){
39
41
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -67,9 +69,7 @@ const ParagraphFeature = ()=>{
67
69
  onClick: ({ editor })=>{
68
70
  editor.update(()=>{
69
71
  const selection = (0, _lexical.$getSelection)();
70
- if ((0, _lexical.$INTERNAL_isPointSelection)(selection)) {
71
- (0, _selection.$setBlocksType)(selection, ()=>(0, _lexical.$createParagraphNode)());
72
- }
72
+ (0, _selection.$setBlocksType)(selection, ()=>(0, _lexical.$createParagraphNode)());
73
73
  });
74
74
  },
75
75
  order: 1
@@ -97,9 +97,7 @@ const ParagraphFeature = ()=>{
97
97
  onSelect: ({ editor })=>{
98
98
  editor.update(()=>{
99
99
  const selection = (0, _lexical.$getSelection)();
100
- if ((0, _lexical.$INTERNAL_isPointSelection)(selection)) {
101
- (0, _selection.$setBlocksType)(selection, ()=>(0, _lexical.$createParagraphNode)());
102
- }
100
+ (0, _selection.$setBlocksType)(selection, ()=>(0, _lexical.$createParagraphNode)());
103
101
  });
104
102
  }
105
103
  })
@@ -113,4 +111,4 @@ const ParagraphFeature = ()=>{
113
111
  };
114
112
  };
115
113
 
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9QYXJhZ3JhcGgvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgJHNldEJsb2Nrc1R5cGUgfSBmcm9tICdAbGV4aWNhbC9zZWxlY3Rpb24nXG5pbXBvcnQgeyAkSU5URVJOQUxfaXNQb2ludFNlbGVjdGlvbiwgJGNyZWF0ZVBhcmFncmFwaE5vZGUsICRnZXRTZWxlY3Rpb24gfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgdHlwZSB7IEZlYXR1cmVQcm92aWRlciB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBTbGFzaE1lbnVPcHRpb24gfSBmcm9tICcuLi8uLi9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL3R5cGVzJ1xuaW1wb3J0IHsgVGV4dERyb3Bkb3duU2VjdGlvbldpdGhFbnRyaWVzIH0gZnJvbSAnLi4vY29tbW9uL2Zsb2F0aW5nU2VsZWN0VG9vbGJhclRleHREcm9wZG93blNlY3Rpb24nXG5cbmV4cG9ydCBjb25zdCBQYXJhZ3JhcGhGZWF0dXJlID0gKCk6IEZlYXR1cmVQcm92aWRlciA9PiB7XG4gIHJldHVybiB7XG4gICAgZmVhdHVyZTogKCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZmxvYXRpbmdTZWxlY3RUb29sYmFyOiB7XG4gICAgICAgICAgc2VjdGlvbnM6IFtcbiAgICAgICAgICAgIFRleHREcm9wZG93blNlY3Rpb25XaXRoRW50cmllcyhbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBDaGlsZENvbXBvbmVudDogKCkgPT5cbiAgICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgICAgICAgICAgIGltcG9ydCgnLi4vLi4vbGV4aWNhbC91aS9pY29ucy9UZXh0JykudGhlbigobW9kdWxlKSA9PiBtb2R1bGUuVGV4dEljb24pLFxuICAgICAgICAgICAgICAgIGlzQWN0aXZlOiAoKSA9PiBmYWxzZSxcbiAgICAgICAgICAgICAgICBrZXk6ICdub3JtYWwtdGV4dCcsXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdOb3JtYWwgVGV4dCcsXG4gICAgICAgICAgICAgICAgb25DbGljazogKHsgZWRpdG9yIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgIGVkaXRvci51cGRhdGUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRJTlRFUk5BTF9pc1BvaW50U2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAkc2V0QmxvY2tzVHlwZShzZWxlY3Rpb24sICgpID0+ICRjcmVhdGVQYXJhZ3JhcGhOb2RlKCkpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvcmRlcjogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BzOiBudWxsLFxuICAgICAgICBzbGFzaE1lbnU6IHtcbiAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnQmFzaWMnLFxuICAgICAgICAgICAgICBrZXk6ICdiYXNpYycsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICBuZXcgU2xhc2hNZW51T3B0aW9uKCdwYXJhZ3JhcGgnLCB7XG4gICAgICAgICAgICAgICAgICBJY29uOiAoKSA9PlxuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgICAgICAgICAgICAgIGltcG9ydCgnLi4vLi4vbGV4aWNhbC91aS9pY29ucy9UZXh0JykudGhlbigobW9kdWxlKSA9PiBtb2R1bGUuVGV4dEljb24pLFxuICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdQYXJhZ3JhcGgnLFxuICAgICAgICAgICAgICAgICAga2V5d29yZHM6IFsnbm9ybWFsJywgJ3BhcmFncmFwaCcsICdwJywgJ3RleHQnXSxcbiAgICAgICAgICAgICAgICAgIG9uU2VsZWN0OiAoeyBlZGl0b3IgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoJElOVEVSTkFMX2lzUG9pbnRTZWxlY3Rpb24oc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHNldEJsb2Nrc1R5cGUoc2VsZWN0aW9uLCAoKSA9PiAkY3JlYXRlUGFyYWdyYXBoTm9kZSgpKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfSxcbiAgICBrZXk6ICdwYXJhZ3JhcGgnLFxuICB9XG59XG4iXSwibmFtZXMiOlsiUGFyYWdyYXBoRmVhdHVyZSIsImZlYXR1cmUiLCJmbG9hdGluZ1NlbGVjdFRvb2xiYXIiLCJzZWN0aW9ucyIsIlRleHREcm9wZG93blNlY3Rpb25XaXRoRW50cmllcyIsIkNoaWxkQ29tcG9uZW50IiwidGhlbiIsIm1vZHVsZSIsIlRleHRJY29uIiwiaXNBY3RpdmUiLCJrZXkiLCJsYWJlbCIsIm9uQ2xpY2siLCJlZGl0b3IiLCJ1cGRhdGUiLCJzZWxlY3Rpb24iLCIkZ2V0U2VsZWN0aW9uIiwiJElOVEVSTkFMX2lzUG9pbnRTZWxlY3Rpb24iLCIkc2V0QmxvY2tzVHlwZSIsIiRjcmVhdGVQYXJhZ3JhcGhOb2RlIiwib3JkZXIiLCJwcm9wcyIsInNsYXNoTWVudSIsIm9wdGlvbnMiLCJkaXNwbGF5TmFtZSIsIlNsYXNoTWVudU9wdGlvbiIsIkljb24iLCJrZXl3b3JkcyIsIm9uU2VsZWN0Il0sIm1hcHBpbmdzIjoiOzs7OytCQVFhQTs7O2VBQUFBOzs7MkJBUmtCO3lCQUNpRDt1QkFJaEQ7MERBQ2U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFeEMsTUFBTUEsbUJBQW1CO0lBQzlCLE9BQU87UUFDTEMsU0FBUztZQUNQLE9BQU87Z0JBQ0xDLHVCQUF1QjtvQkFDckJDLFVBQVU7d0JBQ1JDLElBQUFBLHdFQUE4QixFQUFDOzRCQUM3QjtnQ0FDRUMsZ0JBQWdCLElBQ2QsbUJBQW1CO29DQUNuQixtRUFBQSxRQUFPLGlDQUErQkMsSUFBSSxDQUFDLENBQUNDLFNBQVdBLE9BQU9DLFFBQVE7Z0NBQ3hFQyxVQUFVLElBQU07Z0NBQ2hCQyxLQUFLO2dDQUNMQyxPQUFPO2dDQUNQQyxTQUFTLENBQUMsRUFBRUMsTUFBTSxFQUFFO29DQUNsQkEsT0FBT0MsTUFBTSxDQUFDO3dDQUNaLE1BQU1DLFlBQVlDLElBQUFBLHNCQUFhO3dDQUMvQixJQUFJQyxJQUFBQSxtQ0FBMEIsRUFBQ0YsWUFBWTs0Q0FDekNHLElBQUFBLHlCQUFjLEVBQUNILFdBQVcsSUFBTUksSUFBQUEsNkJBQW9CO3dDQUN0RDtvQ0FDRjtnQ0FDRjtnQ0FDQUMsT0FBTzs0QkFDVDt5QkFDRDtxQkFDRjtnQkFDSDtnQkFDQUMsT0FBTztnQkFDUEMsV0FBVztvQkFDVEMsU0FBUzt3QkFDUDs0QkFDRUMsYUFBYTs0QkFDYmQsS0FBSzs0QkFDTGEsU0FBUztnQ0FDUCxJQUFJRSxzQkFBZSxDQUFDLGFBQWE7b0NBQy9CQyxNQUFNLElBQ0osbUJBQW1CO3dDQUNuQixtRUFBQSxRQUFPLGlDQUErQnBCLElBQUksQ0FBQyxDQUFDQyxTQUFXQSxPQUFPQyxRQUFRO29DQUN4RWdCLGFBQWE7b0NBQ2JHLFVBQVU7d0NBQUM7d0NBQVU7d0NBQWE7d0NBQUs7cUNBQU87b0NBQzlDQyxVQUFVLENBQUMsRUFBRWYsTUFBTSxFQUFFO3dDQUNuQkEsT0FBT0MsTUFBTSxDQUFDOzRDQUNaLE1BQU1DLFlBQVlDLElBQUFBLHNCQUFhOzRDQUMvQixJQUFJQyxJQUFBQSxtQ0FBMEIsRUFBQ0YsWUFBWTtnREFDekNHLElBQUFBLHlCQUFjLEVBQUNILFdBQVcsSUFBTUksSUFBQUEsNkJBQW9COzRDQUN0RDt3Q0FDRjtvQ0FDRjtnQ0FDRjs2QkFDRDt3QkFDSDtxQkFDRDtnQkFDSDtZQUNGO1FBQ0Y7UUFDQVQsS0FBSztJQUNQO0FBQ0YifQ==
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9QYXJhZ3JhcGgvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgJHNldEJsb2Nrc1R5cGUgfSBmcm9tICdAbGV4aWNhbC9zZWxlY3Rpb24nXG5pbXBvcnQgeyAkY3JlYXRlUGFyYWdyYXBoTm9kZSwgJGdldFNlbGVjdGlvbiB9IGZyb20gJ2xleGljYWwnXG5cbmltcG9ydCB0eXBlIHsgRmVhdHVyZVByb3ZpZGVyIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IFNsYXNoTWVudU9wdGlvbiB9IGZyb20gJy4uLy4uL2xleGljYWwvcGx1Z2lucy9TbGFzaE1lbnUvTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4vdHlwZXMnXG5pbXBvcnQgeyBUZXh0RHJvcGRvd25TZWN0aW9uV2l0aEVudHJpZXMgfSBmcm9tICcuLi9jb21tb24vZmxvYXRpbmdTZWxlY3RUb29sYmFyVGV4dERyb3Bkb3duU2VjdGlvbidcblxuZXhwb3J0IGNvbnN0IFBhcmFncmFwaEZlYXR1cmUgPSAoKTogRmVhdHVyZVByb3ZpZGVyID0+IHtcbiAgcmV0dXJuIHtcbiAgICBmZWF0dXJlOiAoKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmbG9hdGluZ1NlbGVjdFRvb2xiYXI6IHtcbiAgICAgICAgICBzZWN0aW9uczogW1xuICAgICAgICAgICAgVGV4dERyb3Bkb3duU2VjdGlvbldpdGhFbnRyaWVzKFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIENoaWxkQ29tcG9uZW50OiAoKSA9PlxuICAgICAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAgICAgICAgICAgaW1wb3J0KCcuLi8uLi9sZXhpY2FsL3VpL2ljb25zL1RleHQnKS50aGVuKChtb2R1bGUpID0+IG1vZHVsZS5UZXh0SWNvbiksXG4gICAgICAgICAgICAgICAgaXNBY3RpdmU6ICgpID0+IGZhbHNlLFxuICAgICAgICAgICAgICAgIGtleTogJ25vcm1hbC10ZXh0JyxcbiAgICAgICAgICAgICAgICBsYWJlbDogJ05vcm1hbCBUZXh0JyxcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiAoeyBlZGl0b3IgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgICAgICAgICAgICAgICAgICAkc2V0QmxvY2tzVHlwZShzZWxlY3Rpb24sICgpID0+ICRjcmVhdGVQYXJhZ3JhcGhOb2RlKCkpXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb3JkZXI6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBwcm9wczogbnVsbCxcbiAgICAgICAgc2xhc2hNZW51OiB7XG4gICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0Jhc2ljJyxcbiAgICAgICAgICAgICAga2V5OiAnYmFzaWMnLFxuICAgICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgbmV3IFNsYXNoTWVudU9wdGlvbigncGFyYWdyYXBoJywge1xuICAgICAgICAgICAgICAgICAgSWNvbjogKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAgICAgICAgICAgICBpbXBvcnQoJy4uLy4uL2xleGljYWwvdWkvaWNvbnMvVGV4dCcpLnRoZW4oKG1vZHVsZSkgPT4gbW9kdWxlLlRleHRJY29uKSxcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnUGFyYWdyYXBoJyxcbiAgICAgICAgICAgICAgICAgIGtleXdvcmRzOiBbJ25vcm1hbCcsICdwYXJhZ3JhcGgnLCAncCcsICd0ZXh0J10sXG4gICAgICAgICAgICAgICAgICBvblNlbGVjdDogKHsgZWRpdG9yIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgJHNldEJsb2Nrc1R5cGUoc2VsZWN0aW9uLCAoKSA9PiAkY3JlYXRlUGFyYWdyYXBoTm9kZSgpKVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGtleTogJ3BhcmFncmFwaCcsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJQYXJhZ3JhcGhGZWF0dXJlIiwiZmVhdHVyZSIsImZsb2F0aW5nU2VsZWN0VG9vbGJhciIsInNlY3Rpb25zIiwiVGV4dERyb3Bkb3duU2VjdGlvbldpdGhFbnRyaWVzIiwiQ2hpbGRDb21wb25lbnQiLCJ0aGVuIiwibW9kdWxlIiwiVGV4dEljb24iLCJpc0FjdGl2ZSIsImtleSIsImxhYmVsIiwib25DbGljayIsImVkaXRvciIsInVwZGF0ZSIsInNlbGVjdGlvbiIsIiRnZXRTZWxlY3Rpb24iLCIkc2V0QmxvY2tzVHlwZSIsIiRjcmVhdGVQYXJhZ3JhcGhOb2RlIiwib3JkZXIiLCJwcm9wcyIsInNsYXNoTWVudSIsIm9wdGlvbnMiLCJkaXNwbGF5TmFtZSIsIlNsYXNoTWVudU9wdGlvbiIsIkljb24iLCJrZXl3b3JkcyIsIm9uU2VsZWN0Il0sIm1hcHBpbmdzIjoiOzs7OytCQVFhQTs7O2VBQUFBOzs7MkJBUmtCO3lCQUNxQjt1QkFJcEI7MERBQ2U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV4QyxNQUFNQSxtQkFBbUI7SUFDOUIsT0FBTztRQUNMQyxTQUFTO1lBQ1AsT0FBTztnQkFDTEMsdUJBQXVCO29CQUNyQkMsVUFBVTt3QkFDUkMsSUFBQUEsd0VBQThCLEVBQUM7NEJBQzdCO2dDQUNFQyxnQkFBZ0IsSUFDZCxtQkFBbUI7b0NBQ25CLG1FQUFBLFFBQU8saUNBQStCQyxJQUFJLENBQUMsQ0FBQ0MsU0FBV0EsT0FBT0MsUUFBUTtnQ0FDeEVDLFVBQVUsSUFBTTtnQ0FDaEJDLEtBQUs7Z0NBQ0xDLE9BQU87Z0NBQ1BDLFNBQVMsQ0FBQyxFQUFFQyxNQUFNLEVBQUU7b0NBQ2xCQSxPQUFPQyxNQUFNLENBQUM7d0NBQ1osTUFBTUMsWUFBWUMsSUFBQUEsc0JBQWE7d0NBQy9CQyxJQUFBQSx5QkFBYyxFQUFDRixXQUFXLElBQU1HLElBQUFBLDZCQUFvQjtvQ0FDdEQ7Z0NBQ0Y7Z0NBQ0FDLE9BQU87NEJBQ1Q7eUJBQ0Q7cUJBQ0Y7Z0JBQ0g7Z0JBQ0FDLE9BQU87Z0JBQ1BDLFdBQVc7b0JBQ1RDLFNBQVM7d0JBQ1A7NEJBQ0VDLGFBQWE7NEJBQ2JiLEtBQUs7NEJBQ0xZLFNBQVM7Z0NBQ1AsSUFBSUUsc0JBQWUsQ0FBQyxhQUFhO29DQUMvQkMsTUFBTSxJQUNKLG1CQUFtQjt3Q0FDbkIsbUVBQUEsUUFBTyxpQ0FBK0JuQixJQUFJLENBQUMsQ0FBQ0MsU0FBV0EsT0FBT0MsUUFBUTtvQ0FDeEVlLGFBQWE7b0NBQ2JHLFVBQVU7d0NBQUM7d0NBQVU7d0NBQWE7d0NBQUs7cUNBQU87b0NBQzlDQyxVQUFVLENBQUMsRUFBRWQsTUFBTSxFQUFFO3dDQUNuQkEsT0FBT0MsTUFBTSxDQUFDOzRDQUNaLE1BQU1DLFlBQVlDLElBQUFBLHNCQUFhOzRDQUMvQkMsSUFBQUEseUJBQWMsRUFBQ0YsV0FBVyxJQUFNRyxJQUFBQSw2QkFBb0I7d0NBQ3REO29DQUNGO2dDQUNGOzZCQUNEO3dCQUNIO3FCQUNEO2dCQUNIO1lBQ0Y7UUFDRjtRQUNBUixLQUFLO0lBQ1A7QUFDRiJ9
@@ -38,7 +38,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
38
38
  if (cache && cache.has(obj)) {
39
39
  return cache.get(obj);
40
40
  }
41
- var newObj = {};
41
+ var newObj = {
42
+ __proto__: null
43
+ };
42
44
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
43
45
  for(var key in obj){
44
46
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -125,4 +127,4 @@ const RelationshipDrawer = (props)=>{
125
127
  return props?.enabledCollectionSlugs?.length > 0 ? /*#__PURE__*/ _react.default.createElement(RelationshipDrawerComponent, props) : /*#__PURE__*/ _react.default.createElement(_EnabledRelationshipsCondition.EnabledRelationshipsCondition, props, /*#__PURE__*/ _react.default.createElement(RelationshipDrawerComponent, props));
126
128
  };
127
129
 
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9SZWxhdGlvbnNoaXAvZHJhd2VyL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsQ29tcG9zZXJDb250ZXh0J1xuaW1wb3J0IHsgJGdldE5vZGVCeUtleSwgQ09NTUFORF9QUklPUklUWV9FRElUT1IsIHR5cGUgTGV4aWNhbEVkaXRvciB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgeyB1c2VMaXN0RHJhd2VyIH0gZnJvbSAncGF5bG9hZC9jb21wb25lbnRzL2VsZW1lbnRzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7ICRjcmVhdGVSZWxhdGlvbnNoaXBOb2RlIH0gZnJvbSAnLi4vbm9kZXMvUmVsYXRpb25zaGlwTm9kZSdcbmltcG9ydCB7IElOU0VSVF9SRUxBVElPTlNISVBfQ09NTUFORCB9IGZyb20gJy4uL3BsdWdpbnMnXG5pbXBvcnQgeyBFbmFibGVkUmVsYXRpb25zaGlwc0NvbmRpdGlvbiB9IGZyb20gJy4uL3V0aWxzL0VuYWJsZWRSZWxhdGlvbnNoaXBzQ29uZGl0aW9uJ1xuaW1wb3J0IHsgSU5TRVJUX1JFTEFUSU9OU0hJUF9XSVRIX0RSQVdFUl9DT01NQU5EIH0gZnJvbSAnLi9jb21tYW5kcydcblxuY29uc3QgaW5zZXJ0UmVsYXRpb25zaGlwID0gKHtcbiAgaWQsXG4gIGVkaXRvcixcbiAgcmVsYXRpb25UbyxcbiAgcmVwbGFjZU5vZGVLZXksXG59OiB7XG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxuICBpZDogc3RyaW5nXG4gIHJlbGF0aW9uVG86IHN0cmluZ1xuICByZXBsYWNlTm9kZUtleTogbnVsbCB8IHN0cmluZ1xufSkgPT4ge1xuICBpZiAoIXJlcGxhY2VOb2RlS2V5KSB7XG4gICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChJTlNFUlRfUkVMQVRJT05TSElQX0NPTU1BTkQsIHtcbiAgICAgIHJlbGF0aW9uVG8sXG4gICAgICB2YWx1ZToge1xuICAgICAgICBpZCxcbiAgICAgIH0sXG4gICAgfSlcbiAgfSBlbHNlIHtcbiAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSAkZ2V0Tm9kZUJ5S2V5KHJlcGxhY2VOb2RlS2V5KVxuICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgbm9kZS5yZXBsYWNlKCRjcmVhdGVSZWxhdGlvbnNoaXBOb2RlKHsgcmVsYXRpb25UbywgdmFsdWU6IHsgaWQgfSB9KSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG5cbnR5cGUgUHJvcHMgPSB7XG4gIGVuYWJsZWRDb2xsZWN0aW9uU2x1Z3M6IG51bGwgfCBzdHJpbmdbXVxufVxuXG5jb25zdCBSZWxhdGlvbnNoaXBEcmF3ZXJDb21wb25lbnQ6IFJlYWN0LkZDPFByb3BzPiA9ICh7IGVuYWJsZWRDb2xsZWN0aW9uU2x1Z3MgfSkgPT4ge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICBjb25zdCBbc2VsZWN0ZWRDb2xsZWN0aW9uU2x1Zywgc2V0U2VsZWN0ZWRDb2xsZWN0aW9uU2x1Z10gPSB1c2VTdGF0ZShcbiAgICAoKSA9PiBlbmFibGVkQ29sbGVjdGlvblNsdWdzWzBdLFxuICApXG4gIGNvbnN0IFtyZXBsYWNlTm9kZUtleSwgc2V0UmVwbGFjZU5vZGVLZXldID0gdXNlU3RhdGU8bnVsbCB8IHN0cmluZz4obnVsbClcblxuICBjb25zdCBbTGlzdERyYXdlciwgTGlzdERyYXdlclRvZ2dsZXIsIHsgY2xvc2VEcmF3ZXIsIGlzRHJhd2VyT3Blbiwgb3BlbkRyYXdlciB9XSA9IHVzZUxpc3REcmF3ZXIoe1xuICAgIGNvbGxlY3Rpb25TbHVnczogZW5hYmxlZENvbGxlY3Rpb25TbHVncyxcbiAgICBzZWxlY3RlZENvbGxlY3Rpb246IHNlbGVjdGVkQ29sbGVjdGlvblNsdWcsXG4gIH0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZDx7XG4gICAgICByZXBsYWNlOiB7IG5vZGVLZXk6IHN0cmluZyB9IHwgZmFsc2VcbiAgICB9PihcbiAgICAgIElOU0VSVF9SRUxBVElPTlNISVBfV0lUSF9EUkFXRVJfQ09NTUFORCxcbiAgICAgIChwYXlsb2FkKSA9PiB7XG4gICAgICAgIHNldFJlcGxhY2VOb2RlS2V5KHBheWxvYWQ/LnJlcGxhY2UgPyBwYXlsb2FkPy5yZXBsYWNlLm5vZGVLZXkgOiBudWxsKVxuICAgICAgICBvcGVuRHJhd2VyKClcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH0sXG4gICAgICBDT01NQU5EX1BSSU9SSVRZX0VESVRPUixcbiAgICApXG4gIH0sIFtlZGl0b3IsIG9wZW5EcmF3ZXJdKVxuXG4gIGNvbnN0IG9uU2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgY29sbGVjdGlvbkNvbmZpZywgZG9jSUQgfSkgPT4ge1xuICAgICAgaW5zZXJ0UmVsYXRpb25zaGlwKHtcbiAgICAgICAgaWQ6IGRvY0lELFxuICAgICAgICBlZGl0b3IsXG4gICAgICAgIHJlbGF0aW9uVG86IGNvbGxlY3Rpb25Db25maWcuc2x1ZyxcbiAgICAgICAgcmVwbGFjZU5vZGVLZXksXG4gICAgICB9KVxuICAgICAgY2xvc2VEcmF3ZXIoKVxuICAgIH0sXG4gICAgW2VkaXRvciwgY2xvc2VEcmF3ZXIsIHJlcGxhY2VOb2RlS2V5XSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gYWx3YXlzIHJlc2V0IGJhY2sgdG8gZmlyc3Qgb3B0aW9uXG4gICAgLy8gVE9ETzogdGhpcyBpcyBub3Qgd29ya2luZywgc2VlIHRoZSBMaXN0RHJhd2VyIGNvbXBvbmVudFxuICAgIHNldFNlbGVjdGVkQ29sbGVjdGlvblNsdWcoZW5hYmxlZENvbGxlY3Rpb25TbHVnc1swXSlcbiAgfSwgW2lzRHJhd2VyT3BlbiwgZW5hYmxlZENvbGxlY3Rpb25TbHVnc10pXG5cbiAgcmV0dXJuIDxMaXN0RHJhd2VyIG9uU2VsZWN0PXtvblNlbGVjdH0gLz5cbn1cblxuZXhwb3J0IGNvbnN0IFJlbGF0aW9uc2hpcERyYXdlciA9IChwcm9wczogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUgPT4ge1xuICByZXR1cm4gcHJvcHM/LmVuYWJsZWRDb2xsZWN0aW9uU2x1Z3M/Lmxlbmd0aCA+IDAgPyAoIC8vIElmIGVuYWJsZWRDb2xsZWN0aW9uU2x1Z3MgaXQgb3ZlcnJpZGVzIHdoYXQgRW5hYmxlZFJlbGF0aW9uc2hpcHNDb25kaXRpb24gaXMgZG9pbmdcbiAgICA8UmVsYXRpb25zaGlwRHJhd2VyQ29tcG9uZW50IHsuLi5wcm9wc30gLz5cbiAgKSA6IChcbiAgICA8RW5hYmxlZFJlbGF0aW9uc2hpcHNDb25kaXRpb24gey4uLnByb3BzfT5cbiAgICAgIDxSZWxhdGlvbnNoaXBEcmF3ZXJDb21wb25lbnQgey4uLnByb3BzfSAvPlxuICAgIDwvRW5hYmxlZFJlbGF0aW9uc2hpcHNDb25kaXRpb24+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJSZWxhdGlvbnNoaXBEcmF3ZXIiLCJpbnNlcnRSZWxhdGlvbnNoaXAiLCJpZCIsImVkaXRvciIsInJlbGF0aW9uVG8iLCJyZXBsYWNlTm9kZUtleSIsImRpc3BhdGNoQ29tbWFuZCIsIklOU0VSVF9SRUxBVElPTlNISVBfQ09NTUFORCIsInZhbHVlIiwidXBkYXRlIiwibm9kZSIsIiRnZXROb2RlQnlLZXkiLCJyZXBsYWNlIiwiJGNyZWF0ZVJlbGF0aW9uc2hpcE5vZGUiLCJSZWxhdGlvbnNoaXBEcmF3ZXJDb21wb25lbnQiLCJlbmFibGVkQ29sbGVjdGlvblNsdWdzIiwidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsInNlbGVjdGVkQ29sbGVjdGlvblNsdWciLCJzZXRTZWxlY3RlZENvbGxlY3Rpb25TbHVnIiwidXNlU3RhdGUiLCJzZXRSZXBsYWNlTm9kZUtleSIsIkxpc3REcmF3ZXIiLCJMaXN0RHJhd2VyVG9nZ2xlciIsImNsb3NlRHJhd2VyIiwiaXNEcmF3ZXJPcGVuIiwib3BlbkRyYXdlciIsInVzZUxpc3REcmF3ZXIiLCJjb2xsZWN0aW9uU2x1Z3MiLCJzZWxlY3RlZENvbGxlY3Rpb24iLCJ1c2VFZmZlY3QiLCJyZWdpc3RlckNvbW1hbmQiLCJJTlNFUlRfUkVMQVRJT05TSElQX1dJVEhfRFJBV0VSX0NPTU1BTkQiLCJwYXlsb2FkIiwibm9kZUtleSIsIkNPTU1BTkRfUFJJT1JJVFlfRURJVE9SIiwib25TZWxlY3QiLCJ1c2VDYWxsYmFjayIsImNvbGxlY3Rpb25Db25maWciLCJkb2NJRCIsInNsdWciLCJwcm9wcyIsImxlbmd0aCIsIkVuYWJsZWRSZWxhdGlvbnNoaXBzQ29uZGl0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7K0JBMkZhQTs7O2VBQUFBOzs7d0NBMUY2Qjt5QkFDaUM7MEJBQzdDOytEQUMwQjtrQ0FFaEI7eUJBQ0k7K0NBQ0U7MEJBQ1U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFeEQsTUFBTUMscUJBQXFCLENBQUMsRUFDMUJDLEVBQUUsRUFDRkMsTUFBTSxFQUNOQyxVQUFVLEVBQ1ZDLGNBQWMsRUFNZjtJQUNDLElBQUksQ0FBQ0EsZ0JBQWdCO1FBQ25CRixPQUFPRyxlQUFlLENBQUNDLG9DQUEyQixFQUFFO1lBQ2xESDtZQUNBSSxPQUFPO2dCQUNMTjtZQUNGO1FBQ0Y7SUFDRixPQUFPO1FBQ0xDLE9BQU9NLE1BQU0sQ0FBQztZQUNaLE1BQU1DLE9BQU9DLElBQUFBLHNCQUFhLEVBQUNOO1lBQzNCLElBQUlLLE1BQU07Z0JBQ1JBLEtBQUtFLE9BQU8sQ0FBQ0MsSUFBQUEseUNBQXVCLEVBQUM7b0JBQUVUO29CQUFZSSxPQUFPO3dCQUFFTjtvQkFBRztnQkFBRTtZQUNuRTtRQUNGO0lBQ0Y7QUFDRjtBQU1BLE1BQU1ZLDhCQUErQyxDQUFDLEVBQUVDLHNCQUFzQixFQUFFO0lBQzlFLE1BQU0sQ0FBQ1osT0FBTyxHQUFHYSxJQUFBQSxpREFBeUI7SUFDMUMsTUFBTSxDQUFDQyx3QkFBd0JDLDBCQUEwQixHQUFHQyxJQUFBQSxlQUFRLEVBQ2xFLElBQU1KLHNCQUFzQixDQUFDLEVBQUU7SUFFakMsTUFBTSxDQUFDVixnQkFBZ0JlLGtCQUFrQixHQUFHRCxJQUFBQSxlQUFRLEVBQWdCO0lBRXBFLE1BQU0sQ0FBQ0UsWUFBWUMsbUJBQW1CLEVBQUVDLFdBQVcsRUFBRUMsWUFBWSxFQUFFQyxVQUFVLEVBQUUsQ0FBQyxHQUFHQyxJQUFBQSx1QkFBYSxFQUFDO1FBQy9GQyxpQkFBaUJaO1FBQ2pCYSxvQkFBb0JYO0lBQ3RCO0lBRUFZLElBQUFBLGdCQUFTLEVBQUM7UUFDUixPQUFPMUIsT0FBTzJCLGVBQWUsQ0FHM0JDLGlEQUF1QyxFQUN2QyxDQUFDQztZQUNDWixrQkFBa0JZLFNBQVNwQixVQUFVb0IsU0FBU3BCLFFBQVFxQixVQUFVO1lBQ2hFUjtZQUNBLE9BQU87UUFDVCxHQUNBUyxnQ0FBdUI7SUFFM0IsR0FBRztRQUFDL0I7UUFBUXNCO0tBQVc7SUFFdkIsTUFBTVUsV0FBV0MsSUFBQUEsa0JBQVcsRUFDMUIsQ0FBQyxFQUFFQyxnQkFBZ0IsRUFBRUMsS0FBSyxFQUFFO1FBQzFCckMsbUJBQW1CO1lBQ2pCQyxJQUFJb0M7WUFDSm5DO1lBQ0FDLFlBQVlpQyxpQkFBaUJFLElBQUk7WUFDakNsQztRQUNGO1FBQ0FrQjtJQUNGLEdBQ0E7UUFBQ3BCO1FBQVFvQjtRQUFhbEI7S0FBZTtJQUd2Q3dCLElBQUFBLGdCQUFTLEVBQUM7UUFDUixvQ0FBb0M7UUFDcEMsMERBQTBEO1FBQzFEWCwwQkFBMEJILHNCQUFzQixDQUFDLEVBQUU7SUFDckQsR0FBRztRQUFDUztRQUFjVDtLQUF1QjtJQUV6QyxxQkFBTyw2QkFBQ007UUFBV2MsVUFBVUE7O0FBQy9CO0FBRU8sTUFBTW5DLHFCQUFxQixDQUFDd0M7SUFDakMsT0FBT0EsT0FBT3pCLHdCQUF3QjBCLFNBQVMsa0JBQzdDLDZCQUFDM0IsNkJBQWdDMEIsdUJBRWpDLDZCQUFDRSw0REFBNkIsRUFBS0YscUJBQ2pDLDZCQUFDMUIsNkJBQWdDMEI7QUFHdkMifQ==
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9SZWxhdGlvbnNoaXAvZHJhd2VyL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsQ29tcG9zZXJDb250ZXh0J1xuaW1wb3J0IHsgJGdldE5vZGVCeUtleSwgQ09NTUFORF9QUklPUklUWV9FRElUT1IsIHR5cGUgTGV4aWNhbEVkaXRvciB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgeyB1c2VMaXN0RHJhd2VyIH0gZnJvbSAncGF5bG9hZC9jb21wb25lbnRzL2VsZW1lbnRzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7ICRjcmVhdGVSZWxhdGlvbnNoaXBOb2RlIH0gZnJvbSAnLi4vbm9kZXMvUmVsYXRpb25zaGlwTm9kZSdcbmltcG9ydCB7IElOU0VSVF9SRUxBVElPTlNISVBfQ09NTUFORCB9IGZyb20gJy4uL3BsdWdpbnMnXG5pbXBvcnQgeyBFbmFibGVkUmVsYXRpb25zaGlwc0NvbmRpdGlvbiB9IGZyb20gJy4uL3V0aWxzL0VuYWJsZWRSZWxhdGlvbnNoaXBzQ29uZGl0aW9uJ1xuaW1wb3J0IHsgSU5TRVJUX1JFTEFUSU9OU0hJUF9XSVRIX0RSQVdFUl9DT01NQU5EIH0gZnJvbSAnLi9jb21tYW5kcydcblxuY29uc3QgaW5zZXJ0UmVsYXRpb25zaGlwID0gKHtcbiAgaWQsXG4gIGVkaXRvcixcbiAgcmVsYXRpb25UbyxcbiAgcmVwbGFjZU5vZGVLZXksXG59OiB7XG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxuICBpZDogc3RyaW5nXG4gIHJlbGF0aW9uVG86IHN0cmluZ1xuICByZXBsYWNlTm9kZUtleTogbnVsbCB8IHN0cmluZ1xufSkgPT4ge1xuICBpZiAoIXJlcGxhY2VOb2RlS2V5KSB7XG4gICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChJTlNFUlRfUkVMQVRJT05TSElQX0NPTU1BTkQsIHtcbiAgICAgIHJlbGF0aW9uVG8sXG4gICAgICB2YWx1ZToge1xuICAgICAgICBpZCxcbiAgICAgIH0sXG4gICAgfSlcbiAgfSBlbHNlIHtcbiAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSAkZ2V0Tm9kZUJ5S2V5KHJlcGxhY2VOb2RlS2V5KVxuICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgbm9kZS5yZXBsYWNlKCRjcmVhdGVSZWxhdGlvbnNoaXBOb2RlKHsgcmVsYXRpb25UbywgdmFsdWU6IHsgaWQgfSB9KSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG5cbnR5cGUgUHJvcHMgPSB7XG4gIGVuYWJsZWRDb2xsZWN0aW9uU2x1Z3M6IG51bGwgfCBzdHJpbmdbXVxufVxuXG5jb25zdCBSZWxhdGlvbnNoaXBEcmF3ZXJDb21wb25lbnQ6IFJlYWN0LkZDPFByb3BzPiA9ICh7IGVuYWJsZWRDb2xsZWN0aW9uU2x1Z3MgfSkgPT4ge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICBjb25zdCBbc2VsZWN0ZWRDb2xsZWN0aW9uU2x1Zywgc2V0U2VsZWN0ZWRDb2xsZWN0aW9uU2x1Z10gPSB1c2VTdGF0ZShcbiAgICAoKSA9PiBlbmFibGVkQ29sbGVjdGlvblNsdWdzWzBdLFxuICApXG4gIGNvbnN0IFtyZXBsYWNlTm9kZUtleSwgc2V0UmVwbGFjZU5vZGVLZXldID0gdXNlU3RhdGU8bnVsbCB8IHN0cmluZz4obnVsbClcblxuICBjb25zdCBbTGlzdERyYXdlciwgTGlzdERyYXdlclRvZ2dsZXIsIHsgY2xvc2VEcmF3ZXIsIGlzRHJhd2VyT3Blbiwgb3BlbkRyYXdlciB9XSA9IHVzZUxpc3REcmF3ZXIoe1xuICAgIGNvbGxlY3Rpb25TbHVnczogZW5hYmxlZENvbGxlY3Rpb25TbHVncyxcbiAgICBzZWxlY3RlZENvbGxlY3Rpb246IHNlbGVjdGVkQ29sbGVjdGlvblNsdWcsXG4gIH0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZDx7XG4gICAgICByZXBsYWNlOiB7IG5vZGVLZXk6IHN0cmluZyB9IHwgZmFsc2VcbiAgICB9PihcbiAgICAgIElOU0VSVF9SRUxBVElPTlNISVBfV0lUSF9EUkFXRVJfQ09NTUFORCxcbiAgICAgIChwYXlsb2FkKSA9PiB7XG4gICAgICAgIHNldFJlcGxhY2VOb2RlS2V5KHBheWxvYWQ/LnJlcGxhY2UgPyBwYXlsb2FkPy5yZXBsYWNlLm5vZGVLZXkgOiBudWxsKVxuICAgICAgICBvcGVuRHJhd2VyKClcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH0sXG4gICAgICBDT01NQU5EX1BSSU9SSVRZX0VESVRPUixcbiAgICApXG4gIH0sIFtlZGl0b3IsIG9wZW5EcmF3ZXJdKVxuXG4gIGNvbnN0IG9uU2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgY29sbGVjdGlvbkNvbmZpZywgZG9jSUQgfSkgPT4ge1xuICAgICAgaW5zZXJ0UmVsYXRpb25zaGlwKHtcbiAgICAgICAgaWQ6IGRvY0lELFxuICAgICAgICBlZGl0b3IsXG4gICAgICAgIHJlbGF0aW9uVG86IGNvbGxlY3Rpb25Db25maWcuc2x1ZyxcbiAgICAgICAgcmVwbGFjZU5vZGVLZXksXG4gICAgICB9KVxuICAgICAgY2xvc2VEcmF3ZXIoKVxuICAgIH0sXG4gICAgW2VkaXRvciwgY2xvc2VEcmF3ZXIsIHJlcGxhY2VOb2RlS2V5XSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gYWx3YXlzIHJlc2V0IGJhY2sgdG8gZmlyc3Qgb3B0aW9uXG4gICAgLy8gVE9ETzogdGhpcyBpcyBub3Qgd29ya2luZywgc2VlIHRoZSBMaXN0RHJhd2VyIGNvbXBvbmVudFxuICAgIHNldFNlbGVjdGVkQ29sbGVjdGlvblNsdWcoZW5hYmxlZENvbGxlY3Rpb25TbHVnc1swXSlcbiAgfSwgW2lzRHJhd2VyT3BlbiwgZW5hYmxlZENvbGxlY3Rpb25TbHVnc10pXG5cbiAgcmV0dXJuIDxMaXN0RHJhd2VyIG9uU2VsZWN0PXtvblNlbGVjdH0gLz5cbn1cblxuZXhwb3J0IGNvbnN0IFJlbGF0aW9uc2hpcERyYXdlciA9IChwcm9wczogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUgPT4ge1xuICByZXR1cm4gcHJvcHM/LmVuYWJsZWRDb2xsZWN0aW9uU2x1Z3M/Lmxlbmd0aCA+IDAgPyAoIC8vIElmIGVuYWJsZWRDb2xsZWN0aW9uU2x1Z3MgaXQgb3ZlcnJpZGVzIHdoYXQgRW5hYmxlZFJlbGF0aW9uc2hpcHNDb25kaXRpb24gaXMgZG9pbmdcbiAgICA8UmVsYXRpb25zaGlwRHJhd2VyQ29tcG9uZW50IHsuLi5wcm9wc30gLz5cbiAgKSA6IChcbiAgICA8RW5hYmxlZFJlbGF0aW9uc2hpcHNDb25kaXRpb24gey4uLnByb3BzfT5cbiAgICAgIDxSZWxhdGlvbnNoaXBEcmF3ZXJDb21wb25lbnQgey4uLnByb3BzfSAvPlxuICAgIDwvRW5hYmxlZFJlbGF0aW9uc2hpcHNDb25kaXRpb24+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJSZWxhdGlvbnNoaXBEcmF3ZXIiLCJpbnNlcnRSZWxhdGlvbnNoaXAiLCJpZCIsImVkaXRvciIsInJlbGF0aW9uVG8iLCJyZXBsYWNlTm9kZUtleSIsImRpc3BhdGNoQ29tbWFuZCIsIklOU0VSVF9SRUxBVElPTlNISVBfQ09NTUFORCIsInZhbHVlIiwidXBkYXRlIiwibm9kZSIsIiRnZXROb2RlQnlLZXkiLCJyZXBsYWNlIiwiJGNyZWF0ZVJlbGF0aW9uc2hpcE5vZGUiLCJSZWxhdGlvbnNoaXBEcmF3ZXJDb21wb25lbnQiLCJlbmFibGVkQ29sbGVjdGlvblNsdWdzIiwidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsInNlbGVjdGVkQ29sbGVjdGlvblNsdWciLCJzZXRTZWxlY3RlZENvbGxlY3Rpb25TbHVnIiwidXNlU3RhdGUiLCJzZXRSZXBsYWNlTm9kZUtleSIsIkxpc3REcmF3ZXIiLCJMaXN0RHJhd2VyVG9nZ2xlciIsImNsb3NlRHJhd2VyIiwiaXNEcmF3ZXJPcGVuIiwib3BlbkRyYXdlciIsInVzZUxpc3REcmF3ZXIiLCJjb2xsZWN0aW9uU2x1Z3MiLCJzZWxlY3RlZENvbGxlY3Rpb24iLCJ1c2VFZmZlY3QiLCJyZWdpc3RlckNvbW1hbmQiLCJJTlNFUlRfUkVMQVRJT05TSElQX1dJVEhfRFJBV0VSX0NPTU1BTkQiLCJwYXlsb2FkIiwibm9kZUtleSIsIkNPTU1BTkRfUFJJT1JJVFlfRURJVE9SIiwib25TZWxlY3QiLCJ1c2VDYWxsYmFjayIsImNvbGxlY3Rpb25Db25maWciLCJkb2NJRCIsInNsdWciLCJwcm9wcyIsImxlbmd0aCIsIkVuYWJsZWRSZWxhdGlvbnNoaXBzQ29uZGl0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7K0JBMkZhQTs7O2VBQUFBOzs7d0NBMUY2Qjt5QkFDaUM7MEJBQzdDOytEQUMwQjtrQ0FFaEI7eUJBQ0k7K0NBQ0U7MEJBQ1U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV4RCxNQUFNQyxxQkFBcUIsQ0FBQyxFQUMxQkMsRUFBRSxFQUNGQyxNQUFNLEVBQ05DLFVBQVUsRUFDVkMsY0FBYyxFQU1mO0lBQ0MsSUFBSSxDQUFDQSxnQkFBZ0I7UUFDbkJGLE9BQU9HLGVBQWUsQ0FBQ0Msb0NBQTJCLEVBQUU7WUFDbERIO1lBQ0FJLE9BQU87Z0JBQ0xOO1lBQ0Y7UUFDRjtJQUNGLE9BQU87UUFDTEMsT0FBT00sTUFBTSxDQUFDO1lBQ1osTUFBTUMsT0FBT0MsSUFBQUEsc0JBQWEsRUFBQ047WUFDM0IsSUFBSUssTUFBTTtnQkFDUkEsS0FBS0UsT0FBTyxDQUFDQyxJQUFBQSx5Q0FBdUIsRUFBQztvQkFBRVQ7b0JBQVlJLE9BQU87d0JBQUVOO29CQUFHO2dCQUFFO1lBQ25FO1FBQ0Y7SUFDRjtBQUNGO0FBTUEsTUFBTVksOEJBQStDLENBQUMsRUFBRUMsc0JBQXNCLEVBQUU7SUFDOUUsTUFBTSxDQUFDWixPQUFPLEdBQUdhLElBQUFBLGlEQUF5QjtJQUMxQyxNQUFNLENBQUNDLHdCQUF3QkMsMEJBQTBCLEdBQUdDLElBQUFBLGVBQVEsRUFDbEUsSUFBTUosc0JBQXNCLENBQUMsRUFBRTtJQUVqQyxNQUFNLENBQUNWLGdCQUFnQmUsa0JBQWtCLEdBQUdELElBQUFBLGVBQVEsRUFBZ0I7SUFFcEUsTUFBTSxDQUFDRSxZQUFZQyxtQkFBbUIsRUFBRUMsV0FBVyxFQUFFQyxZQUFZLEVBQUVDLFVBQVUsRUFBRSxDQUFDLEdBQUdDLElBQUFBLHVCQUFhLEVBQUM7UUFDL0ZDLGlCQUFpQlo7UUFDakJhLG9CQUFvQlg7SUFDdEI7SUFFQVksSUFBQUEsZ0JBQVMsRUFBQztRQUNSLE9BQU8xQixPQUFPMkIsZUFBZSxDQUczQkMsaURBQXVDLEVBQ3ZDLENBQUNDO1lBQ0NaLGtCQUFrQlksU0FBU3BCLFVBQVVvQixTQUFTcEIsUUFBUXFCLFVBQVU7WUFDaEVSO1lBQ0EsT0FBTztRQUNULEdBQ0FTLGdDQUF1QjtJQUUzQixHQUFHO1FBQUMvQjtRQUFRc0I7S0FBVztJQUV2QixNQUFNVSxXQUFXQyxJQUFBQSxrQkFBVyxFQUMxQixDQUFDLEVBQUVDLGdCQUFnQixFQUFFQyxLQUFLLEVBQUU7UUFDMUJyQyxtQkFBbUI7WUFDakJDLElBQUlvQztZQUNKbkM7WUFDQUMsWUFBWWlDLGlCQUFpQkUsSUFBSTtZQUNqQ2xDO1FBQ0Y7UUFDQWtCO0lBQ0YsR0FDQTtRQUFDcEI7UUFBUW9CO1FBQWFsQjtLQUFlO0lBR3ZDd0IsSUFBQUEsZ0JBQVMsRUFBQztRQUNSLG9DQUFvQztRQUNwQywwREFBMEQ7UUFDMURYLDBCQUEwQkgsc0JBQXNCLENBQUMsRUFBRTtJQUNyRCxHQUFHO1FBQUNTO1FBQWNUO0tBQXVCO0lBRXpDLHFCQUFPLDZCQUFDTTtRQUFXYyxVQUFVQTs7QUFDL0I7QUFFTyxNQUFNbkMscUJBQXFCLENBQUN3QztJQUNqQyxPQUFPQSxPQUFPekIsd0JBQXdCMEIsU0FBUyxrQkFDN0MsNkJBQUMzQiw2QkFBZ0MwQix1QkFFakMsNkJBQUNFLDREQUE2QixFQUFLRixxQkFDakMsNkJBQUMxQiw2QkFBZ0MwQjtBQUd2QyJ9
@@ -33,7 +33,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
33
33
  if (cache && cache.has(obj)) {
34
34
  return cache.get(obj);
35
35
  }
36
- var newObj = {};
36
+ var newObj = {
37
+ __proto__: null
38
+ };
37
39
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
38
40
  for(var key in obj){
39
41
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -110,4 +112,4 @@ const RelationshipFeature = (props)=>{
110
112
  };
111
113
  };
112
114
 
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9SZWxhdGlvbnNoaXAvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGZWF0dXJlUHJvdmlkZXIgfSBmcm9tICcuLi90eXBlcydcblxuaW1wb3J0IHsgU2xhc2hNZW51T3B0aW9uIH0gZnJvbSAnLi4vLi4vbGV4aWNhbC9wbHVnaW5zL1NsYXNoTWVudS9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbi90eXBlcydcbmltcG9ydCB7IElOU0VSVF9SRUxBVElPTlNISVBfV0lUSF9EUkFXRVJfQ09NTUFORCB9IGZyb20gJy4vZHJhd2VyL2NvbW1hbmRzJ1xuaW1wb3J0IHsgUmVsYXRpb25zaGlwTm9kZSB9IGZyb20gJy4vbm9kZXMvUmVsYXRpb25zaGlwTm9kZSdcbmltcG9ydCB7IHJlbGF0aW9uc2hpcFBvcHVsYXRpb25Qcm9taXNlIH0gZnJvbSAnLi9wb3B1bGF0aW9uUHJvbWlzZSdcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25zaGlwRmVhdHVyZVByb3BzID1cbiAgfCB7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBjb2xsZWN0aW9ucyB0aGF0IHNob3VsZCBiZSBkaXNhYmxlZC4gT3ZlcnJpZGVzIHRoZSBgZW5hYmxlUmljaFRleHRSZWxhdGlvbnNoaXBgIHByb3BlcnR5IGluIHRoZSBjb2xsZWN0aW9uIGNvbmZpZy5cbiAgICAgICAqIFdoZW4gdGhpcyBwcm9wZXJ0eSBpcyBzZXQsIGBlbmFibGVkQ29sbGVjdGlvbnNgIHdpbGwgbm90IGJlIGF2YWlsYWJsZS5cbiAgICAgICAqKi9cbiAgICAgIGRpc2FibGVkQ29sbGVjdGlvbnM/OiBzdHJpbmdbXVxuXG4gICAgICAvLyBFbnN1cmVzIHRoYXQgZW5hYmxlZENvbGxlY3Rpb25zIGlzIG5vdCBhdmFpbGFibGUgd2hlbiBkaXNhYmxlZENvbGxlY3Rpb25zIGlzIHNldFxuICAgICAgZW5hYmxlZENvbGxlY3Rpb25zPzogbmV2ZXJcbiAgICB9XG4gIHwge1xuICAgICAgLy8gRW5zdXJlcyB0aGF0IGRpc2FibGVkQ29sbGVjdGlvbnMgaXMgbm90IGF2YWlsYWJsZSB3aGVuIGVuYWJsZWRDb2xsZWN0aW9ucyBpcyBzZXRcbiAgICAgIGRpc2FibGVkQ29sbGVjdGlvbnM/OiBuZXZlclxuXG4gICAgICAvKipcbiAgICAgICAqIFRoZSBjb2xsZWN0aW9ucyB0aGF0IHNob3VsZCBiZSBlbmFibGVkLiBPdmVycmlkZXMgdGhlIGBlbmFibGVSaWNoVGV4dFJlbGF0aW9uc2hpcGAgcHJvcGVydHkgaW4gdGhlIGNvbGxlY3Rpb24gY29uZmlnXG4gICAgICAgKiBXaGVuIHRoaXMgcHJvcGVydHkgaXMgc2V0LCBgZGlzYWJsZWRDb2xsZWN0aW9uc2Agd2lsbCBub3QgYmUgYXZhaWxhYmxlLlxuICAgICAgICoqL1xuICAgICAgZW5hYmxlZENvbGxlY3Rpb25zPzogc3RyaW5nW11cbiAgICB9XG5cbmV4cG9ydCBjb25zdCBSZWxhdGlvbnNoaXBGZWF0dXJlID0gKHByb3BzPzogUmVsYXRpb25zaGlwRmVhdHVyZVByb3BzKTogRmVhdHVyZVByb3ZpZGVyID0+IHtcbiAgcmV0dXJuIHtcbiAgICBmZWF0dXJlOiAoKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBub2RlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5vZGU6IFJlbGF0aW9uc2hpcE5vZGUsXG4gICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXM6IFtyZWxhdGlvbnNoaXBQb3B1bGF0aW9uUHJvbWlzZV0sXG4gICAgICAgICAgICB0eXBlOiBSZWxhdGlvbnNoaXBOb2RlLmdldFR5cGUoKSxcbiAgICAgICAgICAgIC8vIFRPRE86IEFkZCB2YWxpZGF0aW9uIHNpbWlsYXIgdG8gdXBsb2FkXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcGx1Z2luczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIENvbXBvbmVudDogKCkgPT5cbiAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAgICAgICBpbXBvcnQoJy4vcGx1Z2lucycpLnRoZW4oKG1vZHVsZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFJlbGF0aW9uc2hpcFBsdWdpbiA9IG1vZHVsZS5SZWxhdGlvbnNoaXBQbHVnaW5cbiAgICAgICAgICAgICAgICByZXR1cm4gaW1wb3J0KCdwYXlsb2FkL3V0aWxpdGllcycpLnRoZW4oKG1vZHVsZTIpID0+XG4gICAgICAgICAgICAgICAgICBtb2R1bGUyLndpdGhNZXJnZWRQcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgIENvbXBvbmVudDogUmVsYXRpb25zaGlwUGx1Z2luLFxuICAgICAgICAgICAgICAgICAgICB0b01lcmdlSW50b1Byb3BzOiBwcm9wcyxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBwb3NpdGlvbjogJ25vcm1hbCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcHJvcHM6IHByb3BzLFxuICAgICAgICBzbGFzaE1lbnU6IHtcbiAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnQmFzaWMnLFxuICAgICAgICAgICAgICBrZXk6ICdiYXNpYycsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICBuZXcgU2xhc2hNZW51T3B0aW9uKCdyZWxhdGlvbnNoaXAnLCB7XG4gICAgICAgICAgICAgICAgICBJY29uOiAoKSA9PlxuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgICAgICAgICAgICAgIGltcG9ydCgnLi4vLi4vbGV4aWNhbC91aS9pY29ucy9SZWxhdGlvbnNoaXAnKS50aGVuKFxuICAgICAgICAgICAgICAgICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5SZWxhdGlvbnNoaXBJY29uLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdSZWxhdGlvbnNoaXAnLFxuICAgICAgICAgICAgICAgICAga2V5d29yZHM6IFsncmVsYXRpb25zaGlwJywgJ3JlbGF0aW9uJywgJ3JlbCddLFxuICAgICAgICAgICAgICAgICAgb25TZWxlY3Q6ICh7IGVkaXRvciB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGRpc3BhdGNoIElOU0VSVF9SRUxBVElPTlNISVBfV0lUSF9EUkFXRVJfQ09NTUFORFxuICAgICAgICAgICAgICAgICAgICBlZGl0b3IuZGlzcGF0Y2hDb21tYW5kKElOU0VSVF9SRUxBVElPTlNISVBfV0lUSF9EUkFXRVJfQ09NTUFORCwge1xuICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2U6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGtleTogJ3JlbGF0aW9uc2hpcCcsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJSZWxhdGlvbnNoaXBGZWF0dXJlIiwicHJvcHMiLCJmZWF0dXJlIiwibm9kZXMiLCJub2RlIiwiUmVsYXRpb25zaGlwTm9kZSIsInBvcHVsYXRpb25Qcm9taXNlcyIsInJlbGF0aW9uc2hpcFBvcHVsYXRpb25Qcm9taXNlIiwidHlwZSIsImdldFR5cGUiLCJwbHVnaW5zIiwiQ29tcG9uZW50IiwidGhlbiIsIm1vZHVsZSIsIlJlbGF0aW9uc2hpcFBsdWdpbiIsIm1vZHVsZTIiLCJ3aXRoTWVyZ2VkUHJvcHMiLCJ0b01lcmdlSW50b1Byb3BzIiwicG9zaXRpb24iLCJzbGFzaE1lbnUiLCJvcHRpb25zIiwiZGlzcGxheU5hbWUiLCJrZXkiLCJTbGFzaE1lbnVPcHRpb24iLCJJY29uIiwiUmVsYXRpb25zaGlwSWNvbiIsImtleXdvcmRzIiwib25TZWxlY3QiLCJlZGl0b3IiLCJkaXNwYXRjaENvbW1hbmQiLCJJTlNFUlRfUkVMQVRJT05TSElQX1dJVEhfRFJBV0VSX0NPTU1BTkQiLCJyZXBsYWNlIl0sIm1hcHBpbmdzIjoiOzs7OytCQTZCYUE7OztlQUFBQTs7O3VCQTNCbUI7MEJBQ3dCO2tDQUN2QjttQ0FDYTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCdkMsTUFBTUEsc0JBQXNCLENBQUNDO0lBQ2xDLE9BQU87UUFDTEMsU0FBUztZQUNQLE9BQU87Z0JBQ0xDLE9BQU87b0JBQ0w7d0JBQ0VDLE1BQU1DLGtDQUFnQjt3QkFDdEJDLG9CQUFvQjs0QkFBQ0MsZ0RBQTZCO3lCQUFDO3dCQUNuREMsTUFBTUgsa0NBQWdCLENBQUNJLE9BQU87b0JBRWhDO2lCQUNEO2dCQUNEQyxTQUFTO29CQUNQO3dCQUNFQyxXQUFXLElBQ1QsbUJBQW1COzRCQUNuQixtRUFBQSxRQUFPLGVBQWFDLElBQUksQ0FBQyxDQUFDQztnQ0FDeEIsTUFBTUMscUJBQXFCRCxPQUFPQyxrQkFBa0I7Z0NBQ3BELE9BQU8sbUVBQUEsUUFBTyx1QkFBcUJGLElBQUksQ0FBQyxDQUFDRyxVQUN2Q0EsUUFBUUMsZUFBZSxDQUFDO3dDQUN0QkwsV0FBV0c7d0NBQ1hHLGtCQUFrQmhCO29DQUNwQjs0QkFFSjt3QkFDRmlCLFVBQVU7b0JBQ1o7aUJBQ0Q7Z0JBQ0RqQixPQUFPQTtnQkFDUGtCLFdBQVc7b0JBQ1RDLFNBQVM7d0JBQ1A7NEJBQ0VDLGFBQWE7NEJBQ2JDLEtBQUs7NEJBQ0xGLFNBQVM7Z0NBQ1AsSUFBSUcsc0JBQWUsQ0FBQyxnQkFBZ0I7b0NBQ2xDQyxNQUFNLElBQ0osbUJBQW1CO3dDQUNuQixtRUFBQSxRQUFPLHlDQUF1Q1osSUFBSSxDQUNoRCxDQUFDQyxTQUFXQSxPQUFPWSxnQkFBZ0I7b0NBRXZDSixhQUFhO29DQUNiSyxVQUFVO3dDQUFDO3dDQUFnQjt3Q0FBWTtxQ0FBTTtvQ0FDN0NDLFVBQVUsQ0FBQyxFQUFFQyxNQUFNLEVBQUU7d0NBQ25CLG1EQUFtRDt3Q0FDbkRBLE9BQU9DLGVBQWUsQ0FBQ0MsaURBQXVDLEVBQUU7NENBQzlEQyxTQUFTO3dDQUNYO29DQUNGO2dDQUNGOzZCQUNEO3dCQUNIO3FCQUNEO2dCQUNIO1lBQ0Y7UUFDRjtRQUNBVCxLQUFLO0lBQ1A7QUFDRiJ9
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9SZWxhdGlvbnNoaXAvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGZWF0dXJlUHJvdmlkZXIgfSBmcm9tICcuLi90eXBlcydcblxuaW1wb3J0IHsgU2xhc2hNZW51T3B0aW9uIH0gZnJvbSAnLi4vLi4vbGV4aWNhbC9wbHVnaW5zL1NsYXNoTWVudS9MZXhpY2FsVHlwZWFoZWFkTWVudVBsdWdpbi90eXBlcydcbmltcG9ydCB7IElOU0VSVF9SRUxBVElPTlNISVBfV0lUSF9EUkFXRVJfQ09NTUFORCB9IGZyb20gJy4vZHJhd2VyL2NvbW1hbmRzJ1xuaW1wb3J0IHsgUmVsYXRpb25zaGlwTm9kZSB9IGZyb20gJy4vbm9kZXMvUmVsYXRpb25zaGlwTm9kZSdcbmltcG9ydCB7IHJlbGF0aW9uc2hpcFBvcHVsYXRpb25Qcm9taXNlIH0gZnJvbSAnLi9wb3B1bGF0aW9uUHJvbWlzZSdcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25zaGlwRmVhdHVyZVByb3BzID1cbiAgfCB7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBjb2xsZWN0aW9ucyB0aGF0IHNob3VsZCBiZSBkaXNhYmxlZC4gT3ZlcnJpZGVzIHRoZSBgZW5hYmxlUmljaFRleHRSZWxhdGlvbnNoaXBgIHByb3BlcnR5IGluIHRoZSBjb2xsZWN0aW9uIGNvbmZpZy5cbiAgICAgICAqIFdoZW4gdGhpcyBwcm9wZXJ0eSBpcyBzZXQsIGBlbmFibGVkQ29sbGVjdGlvbnNgIHdpbGwgbm90IGJlIGF2YWlsYWJsZS5cbiAgICAgICAqKi9cbiAgICAgIGRpc2FibGVkQ29sbGVjdGlvbnM/OiBzdHJpbmdbXVxuXG4gICAgICAvLyBFbnN1cmVzIHRoYXQgZW5hYmxlZENvbGxlY3Rpb25zIGlzIG5vdCBhdmFpbGFibGUgd2hlbiBkaXNhYmxlZENvbGxlY3Rpb25zIGlzIHNldFxuICAgICAgZW5hYmxlZENvbGxlY3Rpb25zPzogbmV2ZXJcbiAgICB9XG4gIHwge1xuICAgICAgLy8gRW5zdXJlcyB0aGF0IGRpc2FibGVkQ29sbGVjdGlvbnMgaXMgbm90IGF2YWlsYWJsZSB3aGVuIGVuYWJsZWRDb2xsZWN0aW9ucyBpcyBzZXRcbiAgICAgIGRpc2FibGVkQ29sbGVjdGlvbnM/OiBuZXZlclxuXG4gICAgICAvKipcbiAgICAgICAqIFRoZSBjb2xsZWN0aW9ucyB0aGF0IHNob3VsZCBiZSBlbmFibGVkLiBPdmVycmlkZXMgdGhlIGBlbmFibGVSaWNoVGV4dFJlbGF0aW9uc2hpcGAgcHJvcGVydHkgaW4gdGhlIGNvbGxlY3Rpb24gY29uZmlnXG4gICAgICAgKiBXaGVuIHRoaXMgcHJvcGVydHkgaXMgc2V0LCBgZGlzYWJsZWRDb2xsZWN0aW9uc2Agd2lsbCBub3QgYmUgYXZhaWxhYmxlLlxuICAgICAgICoqL1xuICAgICAgZW5hYmxlZENvbGxlY3Rpb25zPzogc3RyaW5nW11cbiAgICB9XG5cbmV4cG9ydCBjb25zdCBSZWxhdGlvbnNoaXBGZWF0dXJlID0gKHByb3BzPzogUmVsYXRpb25zaGlwRmVhdHVyZVByb3BzKTogRmVhdHVyZVByb3ZpZGVyID0+IHtcbiAgcmV0dXJuIHtcbiAgICBmZWF0dXJlOiAoKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBub2RlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5vZGU6IFJlbGF0aW9uc2hpcE5vZGUsXG4gICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXM6IFtyZWxhdGlvbnNoaXBQb3B1bGF0aW9uUHJvbWlzZV0sXG4gICAgICAgICAgICB0eXBlOiBSZWxhdGlvbnNoaXBOb2RlLmdldFR5cGUoKSxcbiAgICAgICAgICAgIC8vIFRPRE86IEFkZCB2YWxpZGF0aW9uIHNpbWlsYXIgdG8gdXBsb2FkXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcGx1Z2luczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIENvbXBvbmVudDogKCkgPT5cbiAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAgICAgICBpbXBvcnQoJy4vcGx1Z2lucycpLnRoZW4oKG1vZHVsZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFJlbGF0aW9uc2hpcFBsdWdpbiA9IG1vZHVsZS5SZWxhdGlvbnNoaXBQbHVnaW5cbiAgICAgICAgICAgICAgICByZXR1cm4gaW1wb3J0KCdwYXlsb2FkL3V0aWxpdGllcycpLnRoZW4oKG1vZHVsZTIpID0+XG4gICAgICAgICAgICAgICAgICBtb2R1bGUyLndpdGhNZXJnZWRQcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgIENvbXBvbmVudDogUmVsYXRpb25zaGlwUGx1Z2luLFxuICAgICAgICAgICAgICAgICAgICB0b01lcmdlSW50b1Byb3BzOiBwcm9wcyxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBwb3NpdGlvbjogJ25vcm1hbCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcHJvcHM6IHByb3BzLFxuICAgICAgICBzbGFzaE1lbnU6IHtcbiAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnQmFzaWMnLFxuICAgICAgICAgICAgICBrZXk6ICdiYXNpYycsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICBuZXcgU2xhc2hNZW51T3B0aW9uKCdyZWxhdGlvbnNoaXAnLCB7XG4gICAgICAgICAgICAgICAgICBJY29uOiAoKSA9PlxuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgICAgICAgICAgICAgIGltcG9ydCgnLi4vLi4vbGV4aWNhbC91aS9pY29ucy9SZWxhdGlvbnNoaXAnKS50aGVuKFxuICAgICAgICAgICAgICAgICAgICAgIChtb2R1bGUpID0+IG1vZHVsZS5SZWxhdGlvbnNoaXBJY29uLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdSZWxhdGlvbnNoaXAnLFxuICAgICAgICAgICAgICAgICAga2V5d29yZHM6IFsncmVsYXRpb25zaGlwJywgJ3JlbGF0aW9uJywgJ3JlbCddLFxuICAgICAgICAgICAgICAgICAgb25TZWxlY3Q6ICh7IGVkaXRvciB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGRpc3BhdGNoIElOU0VSVF9SRUxBVElPTlNISVBfV0lUSF9EUkFXRVJfQ09NTUFORFxuICAgICAgICAgICAgICAgICAgICBlZGl0b3IuZGlzcGF0Y2hDb21tYW5kKElOU0VSVF9SRUxBVElPTlNISVBfV0lUSF9EUkFXRVJfQ09NTUFORCwge1xuICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2U6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGtleTogJ3JlbGF0aW9uc2hpcCcsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJSZWxhdGlvbnNoaXBGZWF0dXJlIiwicHJvcHMiLCJmZWF0dXJlIiwibm9kZXMiLCJub2RlIiwiUmVsYXRpb25zaGlwTm9kZSIsInBvcHVsYXRpb25Qcm9taXNlcyIsInJlbGF0aW9uc2hpcFBvcHVsYXRpb25Qcm9taXNlIiwidHlwZSIsImdldFR5cGUiLCJwbHVnaW5zIiwiQ29tcG9uZW50IiwidGhlbiIsIm1vZHVsZSIsIlJlbGF0aW9uc2hpcFBsdWdpbiIsIm1vZHVsZTIiLCJ3aXRoTWVyZ2VkUHJvcHMiLCJ0b01lcmdlSW50b1Byb3BzIiwicG9zaXRpb24iLCJzbGFzaE1lbnUiLCJvcHRpb25zIiwiZGlzcGxheU5hbWUiLCJrZXkiLCJTbGFzaE1lbnVPcHRpb24iLCJJY29uIiwiUmVsYXRpb25zaGlwSWNvbiIsImtleXdvcmRzIiwib25TZWxlY3QiLCJlZGl0b3IiLCJkaXNwYXRjaENvbW1hbmQiLCJJTlNFUlRfUkVMQVRJT05TSElQX1dJVEhfRFJBV0VSX0NPTU1BTkQiLCJyZXBsYWNlIl0sIm1hcHBpbmdzIjoiOzs7OytCQTZCYUE7OztlQUFBQTs7O3VCQTNCbUI7MEJBQ3dCO2tDQUN2QjttQ0FDYTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0J2QyxNQUFNQSxzQkFBc0IsQ0FBQ0M7SUFDbEMsT0FBTztRQUNMQyxTQUFTO1lBQ1AsT0FBTztnQkFDTEMsT0FBTztvQkFDTDt3QkFDRUMsTUFBTUMsa0NBQWdCO3dCQUN0QkMsb0JBQW9COzRCQUFDQyxnREFBNkI7eUJBQUM7d0JBQ25EQyxNQUFNSCxrQ0FBZ0IsQ0FBQ0ksT0FBTztvQkFFaEM7aUJBQ0Q7Z0JBQ0RDLFNBQVM7b0JBQ1A7d0JBQ0VDLFdBQVcsSUFDVCxtQkFBbUI7NEJBQ25CLG1FQUFBLFFBQU8sZUFBYUMsSUFBSSxDQUFDLENBQUNDO2dDQUN4QixNQUFNQyxxQkFBcUJELE9BQU9DLGtCQUFrQjtnQ0FDcEQsT0FBTyxtRUFBQSxRQUFPLHVCQUFxQkYsSUFBSSxDQUFDLENBQUNHLFVBQ3ZDQSxRQUFRQyxlQUFlLENBQUM7d0NBQ3RCTCxXQUFXRzt3Q0FDWEcsa0JBQWtCaEI7b0NBQ3BCOzRCQUVKO3dCQUNGaUIsVUFBVTtvQkFDWjtpQkFDRDtnQkFDRGpCLE9BQU9BO2dCQUNQa0IsV0FBVztvQkFDVEMsU0FBUzt3QkFDUDs0QkFDRUMsYUFBYTs0QkFDYkMsS0FBSzs0QkFDTEYsU0FBUztnQ0FDUCxJQUFJRyxzQkFBZSxDQUFDLGdCQUFnQjtvQ0FDbENDLE1BQU0sSUFDSixtQkFBbUI7d0NBQ25CLG1FQUFBLFFBQU8seUNBQXVDWixJQUFJLENBQ2hELENBQUNDLFNBQVdBLE9BQU9ZLGdCQUFnQjtvQ0FFdkNKLGFBQWE7b0NBQ2JLLFVBQVU7d0NBQUM7d0NBQWdCO3dDQUFZO3FDQUFNO29DQUM3Q0MsVUFBVSxDQUFDLEVBQUVDLE1BQU0sRUFBRTt3Q0FDbkIsbURBQW1EO3dDQUNuREEsT0FBT0MsZUFBZSxDQUFDQyxpREFBdUMsRUFBRTs0Q0FDOURDLFNBQVM7d0NBQ1g7b0NBQ0Y7Z0NBQ0Y7NkJBQ0Q7d0JBQ0g7cUJBQ0Q7Z0JBQ0g7WUFDRjtRQUNGO1FBQ0FULEtBQUs7SUFDUDtBQUNGIn0=