@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.
- package/components.js +4 -4
- package/dist/cell/index.js +4 -2
- package/dist/exports/components.js +4 -4
- package/dist/field/Field.d.ts.map +1 -1
- package/dist/field/Field.js +9 -3
- package/dist/field/features/BlockQuote/index.d.ts.map +1 -1
- package/dist/field/features/BlockQuote/index.js +8 -10
- package/dist/field/features/Blocks/component/BlockContent.js +4 -2
- package/dist/field/features/Blocks/component/index.js +5 -3
- package/dist/field/features/Blocks/drawer/index.js +8 -6
- package/dist/field/features/Blocks/index.js +4 -2
- package/dist/field/features/Blocks/nodes/BlocksNode.js +7 -5
- package/dist/field/features/Blocks/plugin/index.d.ts.map +1 -1
- package/dist/field/features/Blocks/plugin/index.js +7 -4
- package/dist/field/features/Heading/index.d.ts.map +1 -1
- package/dist/field/features/Heading/index.js +7 -7
- package/dist/field/features/Link/index.js +5 -3
- package/dist/field/features/Link/nodes/AutoLinkNode.js +4 -4
- package/dist/field/features/Link/nodes/LinkNode.d.ts.map +1 -1
- package/dist/field/features/Link/nodes/LinkNode.js +5 -5
- package/dist/field/features/Link/plugins/autoLink/index.d.ts.map +1 -1
- package/dist/field/features/Link/plugins/autoLink/index.js +7 -6
- package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
- package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.js +32 -6
- package/dist/field/features/Link/plugins/floatingLinkEditor/index.js +4 -2
- package/dist/field/features/Paragraph/index.d.ts.map +1 -1
- package/dist/field/features/Paragraph/index.js +6 -8
- package/dist/field/features/Relationship/drawer/index.js +4 -2
- package/dist/field/features/Relationship/index.js +4 -2
- package/dist/field/features/Relationship/nodes/RelationshipNode.js +7 -5
- package/dist/field/features/Relationship/nodes/components/RelationshipComponent.js +4 -2
- package/dist/field/features/Relationship/plugins/index.d.ts.map +1 -1
- package/dist/field/features/Relationship/plugins/index.js +7 -4
- package/dist/field/features/Relationship/utils/EnabledRelationshipsCondition.js +4 -2
- package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.js +5 -3
- package/dist/field/features/Upload/component/index.js +5 -3
- package/dist/field/features/Upload/drawer/index.js +4 -2
- package/dist/field/features/Upload/index.js +5 -3
- package/dist/field/features/Upload/nodes/UploadNode.js +7 -5
- package/dist/field/features/Upload/plugin/index.d.ts.map +1 -1
- package/dist/field/features/Upload/plugin/index.js +7 -4
- package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +4 -2
- package/dist/field/features/align/index.d.ts.map +1 -1
- package/dist/field/features/align/index.js +17 -2
- package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +4 -2
- package/dist/field/features/converters/html/converter/index.js +4 -4
- package/dist/field/features/converters/html/field/index.js +3 -3
- package/dist/field/features/debug/TestRecorder/index.js +4 -2
- package/dist/field/features/debug/TestRecorder/plugin/index.js +7 -5
- package/dist/field/features/debug/TreeView/index.js +4 -2
- package/dist/field/features/debug/TreeView/plugin.js +4 -2
- package/dist/field/features/format/Bold/index.js +4 -2
- package/dist/field/features/format/InlineCode/index.js +4 -2
- package/dist/field/features/format/Italic/index.js +4 -2
- package/dist/field/features/format/strikethrough/index.js +4 -2
- package/dist/field/features/format/subscript/index.js +4 -2
- package/dist/field/features/format/superscript/index.js +4 -2
- package/dist/field/features/format/underline/index.js +4 -2
- package/dist/field/features/indent/index.js +4 -2
- package/dist/field/features/lists/CheckList/index.js +4 -2
- package/dist/field/features/lists/OrderedList/index.js +4 -2
- package/dist/field/features/lists/UnorderedList/index.js +4 -2
- package/dist/field/features/lists/common/markdown.js +4 -4
- package/dist/field/features/migrations/LexicalPluginToLexical/converter/index.js +6 -6
- package/dist/field/features/migrations/LexicalPluginToLexical/index.js +2 -2
- package/dist/field/features/migrations/LexicalPluginToLexical/nodes/unknownConvertedNode/index.js +7 -5
- package/dist/field/features/migrations/SlateToLexical/converter/index.js +8 -8
- package/dist/field/features/migrations/SlateToLexical/index.js +2 -2
- package/dist/field/features/migrations/SlateToLexical/nodes/unknownConvertedNode/index.js +7 -5
- package/dist/field/index.js +4 -2
- package/dist/field/lexical/EditorPlugin.js +4 -2
- package/dist/field/lexical/LexicalEditor.js +4 -2
- package/dist/field/lexical/LexicalProvider.js +4 -2
- package/dist/field/lexical/config/EditorConfigProvider.js +4 -2
- package/dist/field/lexical/config/default.js +7 -5
- package/dist/field/lexical/config/loader.js +4 -4
- package/dist/field/lexical/config/sanitize.js +4 -4
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +4 -2
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js +7 -5
- package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +7 -5
- package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +4 -2
- package/dist/field/lexical/plugins/MarkdownShortcut/index.js +4 -2
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +7 -7
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +13 -11
- package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +4 -4
- package/dist/field/lexical/plugins/SlashMenu/index.js +4 -2
- package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +1 -1
- package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +59 -35
- package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js +4 -2
- package/dist/field/lexical/theme/EditorTheme.d.ts.map +1 -1
- package/dist/field/lexical/theme/EditorTheme.js +2 -1
- package/dist/field/lexical/ui/ContentEditable.js +4 -2
- package/dist/field/lexical/ui/icons/AlignJustify/index.d.ts +3 -0
- package/dist/field/lexical/ui/icons/AlignJustify/index.d.ts.map +1 -0
- package/dist/field/lexical/ui/icons/AlignJustify/index.js +40 -0
- package/dist/field/lexical/utils/environment.js +15 -15
- package/dist/field/lexical/utils/nodeFormat.js +19 -19
- package/dist/field/lexical/utils/swipe.js +4 -4
- package/dist/index.js +194 -192
- package/package.json +14 -14
|
@@ -35,7 +35,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
35
35
|
if (cache && cache.has(obj)) {
|
|
36
36
|
return cache.get(obj);
|
|
37
37
|
}
|
|
38
|
-
var newObj = {
|
|
38
|
+
var newObj = {
|
|
39
|
+
__proto__: null
|
|
40
|
+
};
|
|
39
41
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
40
42
|
for(var key in obj){
|
|
41
43
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -140,4 +142,4 @@ const ToolbarButton = ({ children, entry })=>{
|
|
|
140
142
|
}, children);
|
|
141
143
|
};
|
|
142
144
|
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvRmxvYXRpbmdTZWxlY3RUb29sYmFyL1Rvb2xiYXJCdXR0b24vaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQnXG5pbXBvcnQgeyBtZXJnZVJlZ2lzdGVyIH0gZnJvbSAnQGxleGljYWwvdXRpbHMnXG5pbXBvcnQgeyAkZ2V0U2VsZWN0aW9uIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IEZsb2F0aW5nVG9vbGJhclNlY3Rpb25FbnRyeSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ2Zsb2F0aW5nLXNlbGVjdC10b29sYmFyLXBvcHVwX19idXR0b24nXG5cbmV4cG9ydCBjb25zdCBUb29sYmFyQnV0dG9uID0gKHtcbiAgY2hpbGRyZW4sXG4gIGVudHJ5LFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuSlNYLkVsZW1lbnRcbiAgZW50cnk6IEZsb2F0aW5nVG9vbGJhclNlY3Rpb25FbnRyeVxufSkgPT4ge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICBjb25zdCBbZW5hYmxlZCwgc2V0RW5hYmxlZF0gPSB1c2VTdGF0ZTxib29sZWFuPih0cnVlKVxuICBjb25zdCBbYWN0aXZlLCBzZXRBY3RpdmVdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpXG4gIGNvbnN0IFtjbGFzc05hbWUsIHNldENsYXNzTmFtZV0gPSB1c2VTdGF0ZTxzdHJpbmc+KGJhc2VDbGFzcylcblxuICBjb25zdCB1cGRhdGVTdGF0ZXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICAgIGlmIChlbnRyeS5pc0FjdGl2ZSkge1xuICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IGVudHJ5LmlzQWN0aXZlKHsgZWRpdG9yLCBzZWxlY3Rpb24gfSlcbiAgICAgICAgaWYgKGFjdGl2ZSAhPT0gaXNBY3RpdmUpIHtcbiAgICAgICAgICBzZXRBY3RpdmUoaXNBY3RpdmUpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChlbnRyeS5pc0VuYWJsZWQpIHtcbiAgICAgICAgY29uc3QgaXNFbmFibGVkID0gZW50cnkuaXNFbmFibGVkKHsgZWRpdG9yLCBzZWxlY3Rpb24gfSlcbiAgICAgICAgaWYgKGVuYWJsZWQgIT09IGlzRW5hYmxlZCkge1xuICAgICAgICAgIHNldEVuYWJsZWQoaXNFbmFibGVkKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgfSwgW2FjdGl2ZSwgZWRpdG9yLCBlbmFibGVkLCBlbnRyeV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICB1cGRhdGVTdGF0ZXMoKVxuICB9LCBbdXBkYXRlU3RhdGVzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB1cGRhdGVTdGF0ZXMpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB1cGRhdGVTdGF0ZXMpXG4gICAgfVxuICB9LCBbdXBkYXRlU3RhdGVzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBtZXJnZVJlZ2lzdGVyKFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIoKCkgPT4ge1xuICAgICAgICB1cGRhdGVTdGF0ZXMoKVxuICAgICAgfSksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVTdGF0ZXNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0Q2xhc3NOYW1lKFxuICAgICAgW1xuICAgICAgICBiYXNlQ2xhc3MsXG4gICAgICAgIGVuYWJsZWQgPT09IGZhbHNlID8gJ2Rpc2FibGVkJyA6ICcnLFxuICAgICAgICBhY3RpdmUgPyAnYWN0aXZlJyA6ICcnLFxuICAgICAgICBlbnRyeT8ua2V5ID8gYCR7YmFzZUNsYXNzfS1gICsgZW50cnkua2V5IDogJycsXG4gICAgICBdXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgLmpvaW4oJyAnKSxcbiAgICApXG4gIH0sIFtlbmFibGVkLCBhY3RpdmUsIGNsYXNzTmFtZV0pXG5cbiAgcmV0dXJuIChcbiAgICA8YnV0dG9uXG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgaWYgKGVuYWJsZWQgIT09IGZhbHNlKSB7XG4gICAgICAgICAgZW50cnkub25DbGljayh7XG4gICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICBpc0FjdGl2ZTogYWN0aXZlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH19XG4gICAgICBvbk1vdXNlRG93bj17KGUpID0+
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvRmxvYXRpbmdTZWxlY3RUb29sYmFyL1Rvb2xiYXJCdXR0b24vaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQnXG5pbXBvcnQgeyBtZXJnZVJlZ2lzdGVyIH0gZnJvbSAnQGxleGljYWwvdXRpbHMnXG5pbXBvcnQgeyAkZ2V0U2VsZWN0aW9uIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IEZsb2F0aW5nVG9vbGJhclNlY3Rpb25FbnRyeSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ2Zsb2F0aW5nLXNlbGVjdC10b29sYmFyLXBvcHVwX19idXR0b24nXG5cbmV4cG9ydCBjb25zdCBUb29sYmFyQnV0dG9uID0gKHtcbiAgY2hpbGRyZW4sXG4gIGVudHJ5LFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuSlNYLkVsZW1lbnRcbiAgZW50cnk6IEZsb2F0aW5nVG9vbGJhclNlY3Rpb25FbnRyeVxufSkgPT4ge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICBjb25zdCBbZW5hYmxlZCwgc2V0RW5hYmxlZF0gPSB1c2VTdGF0ZTxib29sZWFuPih0cnVlKVxuICBjb25zdCBbYWN0aXZlLCBzZXRBY3RpdmVdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpXG4gIGNvbnN0IFtjbGFzc05hbWUsIHNldENsYXNzTmFtZV0gPSB1c2VTdGF0ZTxzdHJpbmc+KGJhc2VDbGFzcylcblxuICBjb25zdCB1cGRhdGVTdGF0ZXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICAgIGlmIChlbnRyeS5pc0FjdGl2ZSkge1xuICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IGVudHJ5LmlzQWN0aXZlKHsgZWRpdG9yLCBzZWxlY3Rpb24gfSlcbiAgICAgICAgaWYgKGFjdGl2ZSAhPT0gaXNBY3RpdmUpIHtcbiAgICAgICAgICBzZXRBY3RpdmUoaXNBY3RpdmUpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChlbnRyeS5pc0VuYWJsZWQpIHtcbiAgICAgICAgY29uc3QgaXNFbmFibGVkID0gZW50cnkuaXNFbmFibGVkKHsgZWRpdG9yLCBzZWxlY3Rpb24gfSlcbiAgICAgICAgaWYgKGVuYWJsZWQgIT09IGlzRW5hYmxlZCkge1xuICAgICAgICAgIHNldEVuYWJsZWQoaXNFbmFibGVkKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgfSwgW2FjdGl2ZSwgZWRpdG9yLCBlbmFibGVkLCBlbnRyeV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICB1cGRhdGVTdGF0ZXMoKVxuICB9LCBbdXBkYXRlU3RhdGVzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB1cGRhdGVTdGF0ZXMpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB1cGRhdGVTdGF0ZXMpXG4gICAgfVxuICB9LCBbdXBkYXRlU3RhdGVzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBtZXJnZVJlZ2lzdGVyKFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIoKCkgPT4ge1xuICAgICAgICB1cGRhdGVTdGF0ZXMoKVxuICAgICAgfSksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVTdGF0ZXNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0Q2xhc3NOYW1lKFxuICAgICAgW1xuICAgICAgICBiYXNlQ2xhc3MsXG4gICAgICAgIGVuYWJsZWQgPT09IGZhbHNlID8gJ2Rpc2FibGVkJyA6ICcnLFxuICAgICAgICBhY3RpdmUgPyAnYWN0aXZlJyA6ICcnLFxuICAgICAgICBlbnRyeT8ua2V5ID8gYCR7YmFzZUNsYXNzfS1gICsgZW50cnkua2V5IDogJycsXG4gICAgICBdXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgLmpvaW4oJyAnKSxcbiAgICApXG4gIH0sIFtlbmFibGVkLCBhY3RpdmUsIGNsYXNzTmFtZV0pXG5cbiAgcmV0dXJuIChcbiAgICA8YnV0dG9uXG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgaWYgKGVuYWJsZWQgIT09IGZhbHNlKSB7XG4gICAgICAgICAgZW50cnkub25DbGljayh7XG4gICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICBpc0FjdGl2ZTogYWN0aXZlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH19XG4gICAgICBvbk1vdXNlRG93bj17KGUpID0+IHtcbiAgICAgICAgLy8gVGhpcyBmaXhlcyBhIGJ1ZyB3aGVyZSB5b3UgYXJlIHVuYWJsZSB0byBjbGljayB0aGUgYnV0dG9uIGlmIHlvdSBhcmUgaW4gYSBORVNURUQgZWRpdG9yIChlZGl0b3IgaW4gYmxvY2tzIGZpZWxkIGluIGVkaXRvcikuXG4gICAgICAgIC8vIFRodXMgb25seSBoYXBwZW5zIGlmIHlvdSBjbGljayBvbiB0aGUgU1ZHIG9mIHRoZSBidXR0b24uIENsaWNraW5nIG9uIHRoZSBvdXRzaWRlIHdvcmtzLiBSZWxhdGVkIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL2lzc3Vlcy80MDI1XG4gICAgICAgIC8vIFRPRE86IEZpbmQgb3V0IHdoeSBleGFjdGx5IGl0IGhhcHBlbnMgYW5kIHdoeSBlLnByZXZlbnREZWZhdWx0KCkgb24gdGhlIG1vdXNlRG93biBmaXhlcyBpdC4gV3JpdGUgdGhhdCBkb3duIGhlcmUsIG9yIHBvdGVudGlhbGx5IGZpeCBhIHJvb3QgY2F1c2UsIGlmIHRoZXJlIGlzIGFueS5cbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9fVxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvYnV0dG9uPlxuICApXG59XG4iXSwibmFtZXMiOlsiVG9vbGJhckJ1dHRvbiIsImJhc2VDbGFzcyIsImNoaWxkcmVuIiwiZW50cnkiLCJlZGl0b3IiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwiZW5hYmxlZCIsInNldEVuYWJsZWQiLCJ1c2VTdGF0ZSIsImFjdGl2ZSIsInNldEFjdGl2ZSIsImNsYXNzTmFtZSIsInNldENsYXNzTmFtZSIsInVwZGF0ZVN0YXRlcyIsInVzZUNhbGxiYWNrIiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwic2VsZWN0aW9uIiwiJGdldFNlbGVjdGlvbiIsImlzQWN0aXZlIiwiaXNFbmFibGVkIiwidXNlRWZmZWN0IiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm1lcmdlUmVnaXN0ZXIiLCJyZWdpc3RlclVwZGF0ZUxpc3RlbmVyIiwia2V5IiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJidXR0b24iLCJvbkNsaWNrIiwib25Nb3VzZURvd24iLCJlIiwicHJldmVudERlZmF1bHQiLCJ0eXBlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7K0JBWWFBOzs7ZUFBQUE7Ozt3Q0FYNkI7dUJBQ1o7eUJBQ0E7K0RBQzBCO1FBSWpEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFUCxNQUFNQyxZQUFZO0FBRVgsTUFBTUQsZ0JBQWdCLENBQUMsRUFDNUJFLFFBQVEsRUFDUkMsS0FBSyxFQUlOO0lBQ0MsTUFBTSxDQUFDQyxPQUFPLEdBQUdDLElBQUFBLGlEQUF5QjtJQUMxQyxNQUFNLENBQUNDLFNBQVNDLFdBQVcsR0FBR0MsSUFBQUEsZUFBUSxFQUFVO0lBQ2hELE1BQU0sQ0FBQ0MsUUFBUUMsVUFBVSxHQUFHRixJQUFBQSxlQUFRLEVBQVU7SUFDOUMsTUFBTSxDQUFDRyxXQUFXQyxhQUFhLEdBQUdKLElBQUFBLGVBQVEsRUFBU1A7SUFFbkQsTUFBTVksZUFBZUMsSUFBQUEsa0JBQVcsRUFBQztRQUMvQlYsT0FBT1csY0FBYyxHQUFHQyxJQUFJLENBQUM7WUFDM0IsTUFBTUMsWUFBWUMsSUFBQUEsc0JBQWE7WUFDL0IsSUFBSWYsTUFBTWdCLFFBQVEsRUFBRTtnQkFDbEIsTUFBTUEsV0FBV2hCLE1BQU1nQixRQUFRLENBQUM7b0JBQUVmO29CQUFRYTtnQkFBVTtnQkFDcEQsSUFBSVIsV0FBV1UsVUFBVTtvQkFDdkJULFVBQVVTO2dCQUNaO1lBQ0Y7WUFDQSxJQUFJaEIsTUFBTWlCLFNBQVMsRUFBRTtnQkFDbkIsTUFBTUEsWUFBWWpCLE1BQU1pQixTQUFTLENBQUM7b0JBQUVoQjtvQkFBUWE7Z0JBQVU7Z0JBQ3RELElBQUlYLFlBQVljLFdBQVc7b0JBQ3pCYixXQUFXYTtnQkFDYjtZQUNGO1FBQ0Y7SUFDRixHQUFHO1FBQUNYO1FBQVFMO1FBQVFFO1FBQVNIO0tBQU07SUFFbkNrQixJQUFBQSxnQkFBUyxFQUFDO1FBQ1JSO0lBQ0YsR0FBRztRQUFDQTtLQUFhO0lBRWpCUSxJQUFBQSxnQkFBUyxFQUFDO1FBQ1JDLFNBQVNDLGdCQUFnQixDQUFDLFdBQVdWO1FBQ3JDLE9BQU87WUFDTFMsU0FBU0UsbUJBQW1CLENBQUMsV0FBV1g7UUFDMUM7SUFDRixHQUFHO1FBQUNBO0tBQWE7SUFFakJRLElBQUFBLGdCQUFTLEVBQUM7UUFDUixPQUFPSSxJQUFBQSxvQkFBYSxFQUNsQnJCLE9BQU9zQixzQkFBc0IsQ0FBQztZQUM1QmI7UUFDRjtJQUVKLEdBQUc7UUFBQ1Q7UUFBUVM7S0FBYTtJQUV6QlEsSUFBQUEsZ0JBQVMsRUFBQztRQUNSVCxhQUNFO1lBQ0VYO1lBQ0FLLFlBQVksUUFBUSxhQUFhO1lBQ2pDRyxTQUFTLFdBQVc7WUFDcEJOLE9BQU93QixNQUFNLENBQUMsRUFBRTFCLFVBQVUsQ0FBQyxDQUFDLEdBQUdFLE1BQU13QixHQUFHLEdBQUc7U0FDNUMsQ0FDRUMsTUFBTSxDQUFDQyxTQUNQQyxJQUFJLENBQUM7SUFFWixHQUFHO1FBQUN4QjtRQUFTRztRQUFRRTtLQUFVO0lBRS9CLHFCQUNFLDZCQUFDb0I7UUFDQ3BCLFdBQVdBO1FBQ1hxQixTQUFTO1lBQ1AsSUFBSTFCLFlBQVksT0FBTztnQkFDckJILE1BQU02QixPQUFPLENBQUM7b0JBQ1o1QjtvQkFDQWUsVUFBVVY7Z0JBQ1o7WUFDRjtRQUNGO1FBQ0F3QixhQUFhLENBQUNDO1lBQ1osOEhBQThIO1lBQzlILDJKQUEySjtZQUMzSixzS0FBc0s7WUFDdEtBLEVBQUVDLGNBQWM7UUFDbEI7UUFDQUMsTUFBSztPQUVKbEM7QUFHUCJ9
|
|
@@ -10,11 +10,11 @@ function _export(target, all) {
|
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
_export(exports, {
|
|
13
|
-
DropDownItem: function() {
|
|
14
|
-
return DropDownItem;
|
|
15
|
-
},
|
|
16
13
|
DropDown: function() {
|
|
17
14
|
return DropDown;
|
|
15
|
+
},
|
|
16
|
+
DropDownItem: function() {
|
|
17
|
+
return DropDownItem;
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
20
|
const _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
@@ -43,7 +43,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
43
43
|
if (cache && cache.has(obj)) {
|
|
44
44
|
return cache.get(obj);
|
|
45
45
|
}
|
|
46
|
-
var newObj = {
|
|
46
|
+
var newObj = {
|
|
47
|
+
__proto__: null
|
|
48
|
+
};
|
|
47
49
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
48
50
|
for(var key in obj){
|
|
49
51
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -301,4 +303,4 @@ function DropDown({ Icon, buttonAriaLabel, buttonClassName, children, disabled =
|
|
|
301
303
|
}, children), document.body));
|
|
302
304
|
}
|
|
303
305
|
|
|
304
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvRmxvYXRpbmdTZWxlY3RUb29sYmFyL1Rvb2xiYXJEcm9wZG93bi9Ecm9wRG93bi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7IG1lcmdlUmVnaXN0ZXIgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7ICRnZXRTZWxlY3Rpb24gfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgdHlwZSBSZWFjdE5vZGUsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgdHlwZSB7IEZsb2F0aW5nVG9vbGJhclNlY3Rpb25FbnRyeSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnZmxvYXRpbmctc2VsZWN0LXRvb2xiYXItcG9wdXBfX2Ryb3Bkb3duLWl0ZW0nXG5cbmludGVyZmFjZSBEcm9wRG93bkNvbnRleHRUeXBlIHtcbiAgcmVnaXN0ZXJJdGVtOiAocmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB2b2lkXG59XG5cbmNvbnN0IERyb3BEb3duQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQ8RHJvcERvd25Db250ZXh0VHlwZSB8IG51bGw+KG51bGwpXG5cbmV4cG9ydCBmdW5jdGlvbiBEcm9wRG93bkl0ZW0oe1xuICBjaGlsZHJlbixcbiAgZW50cnksXG4gIHRpdGxlLFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIGVudHJ5OiBGbG9hdGluZ1Rvb2xiYXJTZWN0aW9uRW50cnlcbiAgdGl0bGU/OiBzdHJpbmdcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIGNvbnN0IFtlbmFibGVkLCBzZXRFbmFibGVkXSA9IHVzZVN0YXRlPGJvb2xlYW4+KHRydWUpXG4gIGNvbnN0IFthY3RpdmUsIHNldEFjdGl2ZV0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSlcbiAgY29uc3QgW2NsYXNzTmFtZSwgc2V0Q2xhc3NOYW1lXSA9IHVzZVN0YXRlPHN0cmluZz4oYmFzZUNsYXNzKVxuXG4gIGNvbnN0IHVwZGF0ZVN0YXRlcyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgICAgaWYgKGVudHJ5LmlzQWN0aXZlKSB7XG4gICAgICAgIGNvbnN0IGlzQWN0aXZlID0gZW50cnkuaXNBY3RpdmUoeyBlZGl0b3IsIHNlbGVjdGlvbiB9KVxuICAgICAgICBpZiAoYWN0aXZlICE9PSBpc0FjdGl2ZSkge1xuICAgICAgICAgIHNldEFjdGl2ZShpc0FjdGl2ZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGVudHJ5LmlzRW5hYmxlZCkge1xuICAgICAgICBjb25zdCBpc0VuYWJsZWQgPSBlbnRyeS5pc0VuYWJsZWQoeyBlZGl0b3IsIHNlbGVjdGlvbiB9KVxuICAgICAgICBpZiAoZW5hYmxlZCAhPT0gaXNFbmFibGVkKSB7XG4gICAgICAgICAgc2V0RW5hYmxlZChpc0VuYWJsZWQpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9LCBbYWN0aXZlLCBlZGl0b3IsIGVuYWJsZWQsIGVudHJ5XSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHVwZGF0ZVN0YXRlcygpXG4gIH0sIFt1cGRhdGVTdGF0ZXNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHVwZGF0ZVN0YXRlcylcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHVwZGF0ZVN0YXRlcylcbiAgICB9XG4gIH0sIFt1cGRhdGVTdGF0ZXNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcigoKSA9PiB7XG4gICAgICAgIHVwZGF0ZVN0YXRlcygpXG4gICAgICB9KSxcbiAgICApXG4gIH0sIFtlZGl0b3IsIHVwZGF0ZVN0YXRlc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRDbGFzc05hbWUoXG4gICAgICBbXG4gICAgICAgIGJhc2VDbGFzcyxcbiAgICAgICAgZW5hYmxlZCA9PT0gZmFsc2UgPyAnZGlzYWJsZWQnIDogJycsXG4gICAgICAgIGFjdGl2ZSA/ICdhY3RpdmUnIDogJycsXG4gICAgICAgIGVudHJ5Py5rZXkgPyBgJHtiYXNlQ2xhc3N9LSR7ZW50cnkua2V5fWAgOiAnJyxcbiAgICAgIF1cbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAuam9pbignICcpLFxuICAgIClcbiAgfSwgW2VuYWJsZWQsIGFjdGl2ZSwgY2xhc3NOYW1lLCBlbnRyeS5rZXldKVxuXG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4obnVsbClcblxuICBjb25zdCBkcm9wRG93bkNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KERyb3BEb3duQ29udGV4dClcblxuICBpZiAoZHJvcERvd25Db250ZXh0ID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdEcm9wRG93bkl0ZW0gbXVzdCBiZSB1c2VkIHdpdGhpbiBhIERyb3BEb3duJylcbiAgfVxuXG4gIGNvbnN0IHsgcmVnaXN0ZXJJdGVtIH0gPSBkcm9wRG93bkNvbnRleHRcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZWY/LmN1cnJlbnQgIT0gbnVsbCkge1xuICAgICAgcmVnaXN0ZXJJdGVtKHJlZilcbiAgICB9XG4gIH0sIFtyZWYsIHJlZ2lzdGVySXRlbV0pXG5cbiAgcmV0dXJuIChcbiAgICA8YnV0dG9uXG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgaWYgKGVuYWJsZWQgIT09IGZhbHNlKSB7XG4gICAgICAgICAgZW50cnkub25DbGljayh7XG4gICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICBpc0FjdGl2ZTogYWN0aXZlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH19XG4gICAgICBvbk1vdXNlRG93bj17KGUpID0+IHtcbiAgICAgICAgLy8gVGhpcyBpcyByZXF1aXJlZCBmb3IgRmlyZWZveCBjb21wYXRpYmlsaXR5LiBXaXRob3V0IGl0LCB0aGUgZHJvcGRvd24gd2lsbCBkaXNhcHBlYXIgd2l0aG91dCB0aGUgb25DbGljayBiZWluZyBjYWxsZWQuXG4gICAgICAgIC8vIFRoaXMgb25seSBoYXBwZW5zIGluIEZpcmVmb3guIE11c3QgYmUgc29tZXRoaW5nIGFib3V0IGhvdyBGaXJlZm94IGhhbmRsZXMgZm9jdXMgZXZlbnRzIGRpZmZlcmVudGx5LlxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIH19XG4gICAgICByZWY9e3JlZn1cbiAgICAgIHRpdGxlPXt0aXRsZX1cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2J1dHRvbj5cbiAgKVxufVxuXG5mdW5jdGlvbiBEcm9wRG93bkl0ZW1zKHtcbiAgY2hpbGRyZW4sXG4gIGRyb3BEb3duUmVmLFxuICBvbkNsb3NlLFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIGRyb3BEb3duUmVmOiBSZWFjdC5SZWY8SFRNTERpdkVsZW1lbnQ+XG4gIG9uQ2xvc2U6ICgpID0+IHZvaWRcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtpdGVtcywgc2V0SXRlbXNdID0gdXNlU3RhdGU8QXJyYXk8UmVhY3QuUmVmT2JqZWN0PEhUTUxCdXR0b25FbGVtZW50Pj4+KClcbiAgY29uc3QgW2hpZ2hsaWdodGVkSXRlbSwgc2V0SGlnaGxpZ2h0ZWRJdGVtXSA9IHVzZVN0YXRlPFJlYWN0LlJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudD4+KClcblxuICBjb25zdCByZWdpc3Rlckl0ZW0gPSB1c2VDYWxsYmFjayhcbiAgICAoaXRlbVJlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgc2V0SXRlbXMoKHByZXYpID0+IChwcmV2ICE9IG51bGwgPyBbLi4ucHJldiwgaXRlbVJlZl0gOiBbaXRlbVJlZl0pKVxuICAgIH0sXG4gICAgW3NldEl0ZW1zXSxcbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KTogdm9pZCA9PiB7XG4gICAgaWYgKGl0ZW1zID09IG51bGwpIHJldHVyblxuXG4gICAgY29uc3QgeyBrZXkgfSA9IGV2ZW50XG5cbiAgICBpZiAoWydBcnJvd0Rvd24nLCAnQXJyb3dVcCcsICdFc2NhcGUnLCAnVGFiJ10uaW5jbHVkZXMoa2V5KSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgIH1cblxuICAgIGlmIChrZXkgPT09ICdFc2NhcGUnIHx8IGtleSA9PT0gJ1RhYicpIHtcbiAgICAgIG9uQ2xvc2UoKVxuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgIHNldEhpZ2hsaWdodGVkSXRlbSgocHJldikgPT4ge1xuICAgICAgICBpZiAocHJldiA9PSBudWxsKSByZXR1cm4gaXRlbXNbMF1cbiAgICAgICAgY29uc3QgaW5kZXggPSBpdGVtcy5pbmRleE9mKHByZXYpIC0gMVxuICAgICAgICByZXR1cm4gaXRlbXNbaW5kZXggPT09IC0xID8gaXRlbXMubGVuZ3RoIC0gMSA6IGluZGV4XVxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIHNldEhpZ2hsaWdodGVkSXRlbSgocHJldikgPT4ge1xuICAgICAgICBpZiAocHJldiA9PSBudWxsKSByZXR1cm4gaXRlbXNbMF1cbiAgICAgICAgcmV0dXJuIGl0ZW1zW2l0ZW1zLmluZGV4T2YocHJldikgKyAxXVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBjb250ZXh0VmFsdWUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgfSksXG4gICAgW3JlZ2lzdGVySXRlbV0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpdGVtcyAhPSBudWxsICYmIGhpZ2hsaWdodGVkSXRlbSA9PSBudWxsKSB7XG4gICAgICBzZXRIaWdobGlnaHRlZEl0ZW0oaXRlbXNbMF0pXG4gICAgfVxuXG4gICAgaWYgKGhpZ2hsaWdodGVkSXRlbT8uY3VycmVudCAhPSBudWxsKSB7XG4gICAgICBoaWdobGlnaHRlZEl0ZW0uY3VycmVudC5mb2N1cygpXG4gICAgfVxuICB9LCBbaXRlbXMsIGhpZ2hsaWdodGVkSXRlbV0pXG5cbiAgcmV0dXJuIChcbiAgICA8RHJvcERvd25Db250ZXh0LlByb3ZpZGVyIHZhbHVlPXtjb250ZXh0VmFsdWV9PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9XCJmbG9hdGluZy1zZWxlY3QtdG9vbGJhci1wb3B1cF9fZHJvcGRvd24taXRlbXNcIlxuICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgIHJlZj17ZHJvcERvd25SZWZ9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvZGl2PlxuICAgIDwvRHJvcERvd25Db250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEcm9wRG93bih7XG4gIEljb24sXG4gIGJ1dHRvbkFyaWFMYWJlbCxcbiAgYnV0dG9uQ2xhc3NOYW1lLFxuICBjaGlsZHJlbixcbiAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgc3RvcENsb3NlT25DbGlja1NlbGYsXG59OiB7XG4gIEljb24/OiBSZWFjdC5GQ1xuICBidXR0b25BcmlhTGFiZWw/OiBzdHJpbmdcbiAgYnV0dG9uQ2xhc3NOYW1lOiBzdHJpbmdcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgc3RvcENsb3NlT25DbGlja1NlbGY/OiBib29sZWFuXG59KTogSlNYLkVsZW1lbnQge1xuICBjb25zdCBkcm9wRG93blJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgYnV0dG9uUmVmID0gdXNlUmVmPEhUTUxCdXR0b25FbGVtZW50PihudWxsKVxuICBjb25zdCBbc2hvd0Ryb3BEb3duLCBzZXRTaG93RHJvcERvd25dID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgaGFuZGxlQ2xvc2UgPSAoKTogdm9pZCA9PiB7XG4gICAgc2V0U2hvd0Ryb3BEb3duKGZhbHNlKVxuICAgIGlmIChidXR0b25SZWY/LmN1cnJlbnQgIT0gbnVsbCkge1xuICAgICAgYnV0dG9uUmVmLmN1cnJlbnQuZm9jdXMoKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgYnV0dG9uID0gYnV0dG9uUmVmLmN1cnJlbnRcbiAgICBjb25zdCBkcm9wRG93biA9IGRyb3BEb3duUmVmLmN1cnJlbnRcblxuICAgIGlmIChzaG93RHJvcERvd24gJiYgYnV0dG9uICE9PSBudWxsICYmIGRyb3BEb3duICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB7IGxlZnQsIHRvcCB9ID0gYnV0dG9uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICBjb25zdCBzY3JvbGxUb3BPZmZzZXQgPSB3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcFxuICAgICAgZHJvcERvd24uc3R5bGUudG9wID0gYCR7dG9wICsgc2Nyb2xsVG9wT2Zmc2V0ICsgYnV0dG9uLm9mZnNldEhlaWdodCArIDV9cHhgXG4gICAgICBkcm9wRG93bi5zdHlsZS5sZWZ0ID0gYCR7TWF0aC5taW4obGVmdCAtIDUsIHdpbmRvdy5pbm5lcldpZHRoIC0gZHJvcERvd24ub2Zmc2V0V2lkdGggLSAyMCl9cHhgXG4gICAgfVxuICB9LCBbZHJvcERvd25SZWYsIGJ1dHRvblJlZiwgc2hvd0Ryb3BEb3duXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGJ1dHRvbiA9IGJ1dHRvblJlZi5jdXJyZW50XG5cbiAgICBpZiAoYnV0dG9uICE9PSBudWxsICYmIHNob3dEcm9wRG93bikge1xuICAgICAgY29uc3QgaGFuZGxlID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBldmVudFxuICAgICAgICBpZiAoc3RvcENsb3NlT25DbGlja1NlbGYgIT0gbnVsbCkge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW9wdGlvbmFsLWNoYWluXG4gICAgICAgICAgaWYgKGRyb3BEb3duUmVmLmN1cnJlbnQgIT0gbnVsbCAmJiBkcm9wRG93blJlZi5jdXJyZW50LmNvbnRhaW5zKHRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghYnV0dG9uLmNvbnRhaW5zKHRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICAgIHNldFNob3dEcm9wRG93bihmYWxzZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGUpXG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2Ryb3BEb3duUmVmLCBidXR0b25SZWYsIHNob3dEcm9wRG93biwgc3RvcENsb3NlT25DbGlja1NlbGZdKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPGJ1dHRvblxuICAgICAgICBhcmlhLWxhYmVsPXtidXR0b25BcmlhTGFiZWx9XG4gICAgICAgIGNsYXNzTmFtZT17YnV0dG9uQ2xhc3NOYW1lICsgKHNob3dEcm9wRG93biA/ICcgYWN0aXZlJyA6ICcnKX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBvbkNsaWNrPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgc2V0U2hvd0Ryb3BEb3duKCFzaG93RHJvcERvd24pXG4gICAgICAgIH19XG4gICAgICAgIG9uTW91c2VEb3duPXsoZSkgPT4ge1xuICAgICAgICAgIC8vIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgeW91IGFyZSB1bmFibGUgdG8gY2xpY2sgdGhlIGJ1dHRvbiBpZiB5b3UgYXJlIGluIGEgTkVTVEVEIGVkaXRvciAoZWRpdG9yIGluIGJsb2NrcyBmaWVsZCBpbiBlZGl0b3IpLlxuICAgICAgICAgIC8vIFRodXMgb25seSBoYXBwZW5zIGlmIHlvdSBjbGljayBvbiB0aGUgU1ZHIG9mIHRoZSBidXR0b24uIENsaWNraW5nIG9uIHRoZSBvdXRzaWRlIHdvcmtzLiBSZWxhdGVkIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL2lzc3Vlcy80MDI1XG4gICAgICAgICAgLy8gVE9ETzogRmluZCBvdXQgd2h5IGV4YWN0bHkgaXQgaGFwcGVucyBhbmQgd2h5IGUucHJldmVudERlZmF1bHQoKSBvbiB0aGUgbW91c2VEb3duIGZpeGVzIGl0LiBXcml0ZSB0aGF0IGRvd24gaGVyZSwgb3IgcG90ZW50aWFsbHkgZml4IGEgcm9vdCBjYXVzZSwgaWYgdGhlcmUgaXMgYW55LlxuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICB9fVxuICAgICAgICByZWY9e2J1dHRvblJlZn1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxJY29uIC8+XG4gICAgICAgIDxpIGNsYXNzTmFtZT1cImZsb2F0aW5nLXNlbGVjdC10b29sYmFyLXBvcHVwX19kcm9wZG93bi1jYXJldFwiIC8+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAge3Nob3dEcm9wRG93biAmJlxuICAgICAgICBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgPERyb3BEb3duSXRlbXMgZHJvcERvd25SZWY9e2Ryb3BEb3duUmVmfSBvbkNsb3NlPXtoYW5kbGVDbG9zZX0+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgPC9Ecm9wRG93bkl0ZW1zPixcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LFxuICAgICAgICApfVxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJEcm9wRG93bkl0ZW0iLCJEcm9wRG93biIsImJhc2VDbGFzcyIsIkRyb3BEb3duQ29udGV4dCIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsImNoaWxkcmVuIiwiZW50cnkiLCJ0aXRsZSIsImVkaXRvciIsInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJlbmFibGVkIiwic2V0RW5hYmxlZCIsInVzZVN0YXRlIiwiYWN0aXZlIiwic2V0QWN0aXZlIiwiY2xhc3NOYW1lIiwic2V0Q2xhc3NOYW1lIiwidXBkYXRlU3RhdGVzIiwidXNlQ2FsbGJhY2siLCJnZXRFZGl0b3JTdGF0ZSIsInJlYWQiLCJzZWxlY3Rpb24iLCIkZ2V0U2VsZWN0aW9uIiwiaXNBY3RpdmUiLCJpc0VuYWJsZWQiLCJ1c2VFZmZlY3QiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibWVyZ2VSZWdpc3RlciIsInJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIiLCJrZXkiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsInJlZiIsInVzZVJlZiIsImRyb3BEb3duQ29udGV4dCIsInVzZUNvbnRleHQiLCJFcnJvciIsInJlZ2lzdGVySXRlbSIsImN1cnJlbnQiLCJidXR0b24iLCJvbkNsaWNrIiwib25Nb3VzZURvd24iLCJlIiwicHJldmVudERlZmF1bHQiLCJ0eXBlIiwiRHJvcERvd25JdGVtcyIsImRyb3BEb3duUmVmIiwib25DbG9zZSIsIml0ZW1zIiwic2V0SXRlbXMiLCJoaWdobGlnaHRlZEl0ZW0iLCJzZXRIaWdobGlnaHRlZEl0ZW0iLCJpdGVtUmVmIiwicHJldiIsImhhbmRsZUtleURvd24iLCJldmVudCIsImluY2x1ZGVzIiwiaW5kZXgiLCJpbmRleE9mIiwibGVuZ3RoIiwiY29udGV4dFZhbHVlIiwidXNlTWVtbyIsImZvY3VzIiwiUHJvdmlkZXIiLCJ2YWx1ZSIsImRpdiIsIm9uS2V5RG93biIsIkljb24iLCJidXR0b25BcmlhTGFiZWwiLCJidXR0b25DbGFzc05hbWUiLCJkaXNhYmxlZCIsInN0b3BDbG9zZU9uQ2xpY2tTZWxmIiwiYnV0dG9uUmVmIiwic2hvd0Ryb3BEb3duIiwic2V0U2hvd0Ryb3BEb3duIiwiaGFuZGxlQ2xvc2UiLCJkcm9wRG93biIsImxlZnQiLCJ0b3AiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJzY3JvbGxUb3BPZmZzZXQiLCJ3aW5kb3ciLCJwYWdlWU9mZnNldCIsImRvY3VtZW50RWxlbWVudCIsInNjcm9sbFRvcCIsInN0eWxlIiwib2Zmc2V0SGVpZ2h0IiwiTWF0aCIsIm1pbiIsImlubmVyV2lkdGgiLCJvZmZzZXRXaWR0aCIsImhhbmRsZSIsInRhcmdldCIsImNvbnRhaW5zIiwiRnJhZ21lbnQiLCJhcmlhLWxhYmVsIiwiaSIsImNyZWF0ZVBvcnRhbCIsImJvZHkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7SUFrQmdCQSxZQUFZO2VBQVpBOztJQW1MQUMsUUFBUTtlQUFSQTs7O3dDQXBNMEI7dUJBQ1o7eUJBQ0E7K0RBQ29EOzBCQUVyRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUk3QixNQUFNQyxZQUFZO0FBTWxCLE1BQU1DLGdDQUFrQkMsT0FBTUMsYUFBYSxDQUE2QjtBQUVqRSxTQUFTTCxhQUFhLEVBQzNCTSxRQUFRLEVBQ1JDLEtBQUssRUFDTEMsS0FBSyxFQUtOO0lBQ0MsTUFBTSxDQUFDQyxPQUFPLEdBQUdDLElBQUFBLGlEQUF5QjtJQUMxQyxNQUFNLENBQUNDLFNBQVNDLFdBQVcsR0FBR0MsSUFBQUEsZUFBUSxFQUFVO0lBQ2hELE1BQU0sQ0FBQ0MsUUFBUUMsVUFBVSxHQUFHRixJQUFBQSxlQUFRLEVBQVU7SUFDOUMsTUFBTSxDQUFDRyxXQUFXQyxhQUFhLEdBQUdKLElBQUFBLGVBQVEsRUFBU1g7SUFFbkQsTUFBTWdCLGVBQWVDLElBQUFBLGtCQUFXLEVBQUM7UUFDL0JWLE9BQU9XLGNBQWMsR0FBR0MsSUFBSSxDQUFDO1lBQzNCLE1BQU1DLFlBQVlDLElBQUFBLHNCQUFhO1lBQy9CLElBQUloQixNQUFNaUIsUUFBUSxFQUFFO2dCQUNsQixNQUFNQSxXQUFXakIsTUFBTWlCLFFBQVEsQ0FBQztvQkFBRWY7b0JBQVFhO2dCQUFVO2dCQUNwRCxJQUFJUixXQUFXVSxVQUFVO29CQUN2QlQsVUFBVVM7Z0JBQ1o7WUFDRjtZQUNBLElBQUlqQixNQUFNa0IsU0FBUyxFQUFFO2dCQUNuQixNQUFNQSxZQUFZbEIsTUFBTWtCLFNBQVMsQ0FBQztvQkFBRWhCO29CQUFRYTtnQkFBVTtnQkFDdEQsSUFBSVgsWUFBWWMsV0FBVztvQkFDekJiLFdBQVdhO2dCQUNiO1lBQ0Y7UUFDRjtJQUNGLEdBQUc7UUFBQ1g7UUFBUUw7UUFBUUU7UUFBU0o7S0FBTTtJQUVuQ21CLElBQUFBLGdCQUFTLEVBQUM7UUFDUlI7SUFDRixHQUFHO1FBQUNBO0tBQWE7SUFFakJRLElBQUFBLGdCQUFTLEVBQUM7UUFDUkMsU0FBU0MsZ0JBQWdCLENBQUMsV0FBV1Y7UUFDckMsT0FBTztZQUNMUyxTQUFTRSxtQkFBbUIsQ0FBQyxXQUFXWDtRQUMxQztJQUNGLEdBQUc7UUFBQ0E7S0FBYTtJQUVqQlEsSUFBQUEsZ0JBQVMsRUFBQztRQUNSLE9BQU9JLElBQUFBLG9CQUFhLEVBQ2xCckIsT0FBT3NCLHNCQUFzQixDQUFDO1lBQzVCYjtRQUNGO0lBRUosR0FBRztRQUFDVDtRQUFRUztLQUFhO0lBRXpCUSxJQUFBQSxnQkFBUyxFQUFDO1FBQ1JULGFBQ0U7WUFDRWY7WUFDQVMsWUFBWSxRQUFRLGFBQWE7WUFDakNHLFNBQVMsV0FBVztZQUNwQlAsT0FBT3lCLE1BQU0sQ0FBQyxFQUFFOUIsVUFBVSxDQUFDLEVBQUVLLE1BQU15QixHQUFHLENBQUMsQ0FBQyxHQUFHO1NBQzVDLENBQ0VDLE1BQU0sQ0FBQ0MsU0FDUEMsSUFBSSxDQUFDO0lBRVosR0FBRztRQUFDeEI7UUFBU0c7UUFBUUU7UUFBV1QsTUFBTXlCLEdBQUc7S0FBQztJQUUxQyxNQUFNSSxNQUFNQyxJQUFBQSxhQUFNLEVBQW9CO0lBRXRDLE1BQU1DLGtCQUFrQmxDLE9BQU1tQyxVQUFVLENBQUNwQztJQUV6QyxJQUFJbUMsb0JBQW9CLE1BQU07UUFDNUIsTUFBTSxJQUFJRSxNQUFNO0lBQ2xCO0lBRUEsTUFBTSxFQUFFQyxZQUFZLEVBQUUsR0FBR0g7SUFFekJaLElBQUFBLGdCQUFTLEVBQUM7UUFDUixJQUFJVSxLQUFLTSxXQUFXLE1BQU07WUFDeEJELGFBQWFMO1FBQ2Y7SUFDRixHQUFHO1FBQUNBO1FBQUtLO0tBQWE7SUFFdEIscUJBQ0UscUJBQUNFO1FBQ0MzQixXQUFXQTtRQUNYNEIsU0FBUztZQUNQLElBQUlqQyxZQUFZLE9BQU87Z0JBQ3JCSixNQUFNcUMsT0FBTyxDQUFDO29CQUNabkM7b0JBQ0FlLFVBQVVWO2dCQUNaO1lBQ0Y7UUFDRjtRQUNBK0IsYUFBYSxDQUFDQztZQUNaLHdIQUF3SDtZQUN4SCxzR0FBc0c7WUFDdEdBLEVBQUVDLGNBQWM7UUFDbEI7UUFDQVgsS0FBS0E7UUFDTDVCLE9BQU9BO1FBQ1B3QyxNQUFLO09BRUoxQztBQUdQO0FBRUEsU0FBUzJDLGNBQWMsRUFDckIzQyxRQUFRLEVBQ1I0QyxXQUFXLEVBQ1hDLE9BQU8sRUFLUjtJQUNDLE1BQU0sQ0FBQ0MsT0FBT0MsU0FBUyxHQUFHeEMsSUFBQUEsZUFBUTtJQUNsQyxNQUFNLENBQUN5QyxpQkFBaUJDLG1CQUFtQixHQUFHMUMsSUFBQUEsZUFBUTtJQUV0RCxNQUFNNEIsZUFBZXRCLElBQUFBLGtCQUFXLEVBQzlCLENBQUNxQztRQUNDSCxTQUFTLENBQUNJLE9BQVVBLFFBQVEsT0FBTzttQkFBSUE7Z0JBQU1EO2FBQVEsR0FBRztnQkFBQ0E7YUFBUTtJQUNuRSxHQUNBO1FBQUNIO0tBQVM7SUFHWixNQUFNSyxnQkFBZ0IsQ0FBQ0M7UUFDckIsSUFBSVAsU0FBUyxNQUFNO1FBRW5CLE1BQU0sRUFBRXBCLEdBQUcsRUFBRSxHQUFHMkI7UUFFaEIsSUFBSTtZQUFDO1lBQWE7WUFBVztZQUFVO1NBQU0sQ0FBQ0MsUUFBUSxDQUFDNUIsTUFBTTtZQUMzRDJCLE1BQU1aLGNBQWM7UUFDdEI7UUFFQSxJQUFJZixRQUFRLFlBQVlBLFFBQVEsT0FBTztZQUNyQ21CO1FBQ0YsT0FBTyxJQUFJbkIsUUFBUSxXQUFXO1lBQzVCdUIsbUJBQW1CLENBQUNFO2dCQUNsQixJQUFJQSxRQUFRLE1BQU0sT0FBT0wsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pDLE1BQU1TLFFBQVFULE1BQU1VLE9BQU8sQ0FBQ0wsUUFBUTtnQkFDcEMsT0FBT0wsS0FBSyxDQUFDUyxVQUFVLENBQUMsSUFBSVQsTUFBTVcsTUFBTSxHQUFHLElBQUlGLE1BQU07WUFDdkQ7UUFDRixPQUFPLElBQUk3QixRQUFRLGFBQWE7WUFDOUJ1QixtQkFBbUIsQ0FBQ0U7Z0JBQ2xCLElBQUlBLFFBQVEsTUFBTSxPQUFPTCxLQUFLLENBQUMsRUFBRTtnQkFDakMsT0FBT0EsS0FBSyxDQUFDQSxNQUFNVSxPQUFPLENBQUNMLFFBQVEsRUFBRTtZQUN2QztRQUNGO0lBQ0Y7SUFFQSxNQUFNTyxlQUFlQyxJQUFBQSxjQUFPLEVBQzFCLElBQU8sQ0FBQTtZQUNMeEI7UUFDRixDQUFBLEdBQ0E7UUFBQ0E7S0FBYTtJQUdoQmYsSUFBQUEsZ0JBQVMsRUFBQztRQUNSLElBQUkwQixTQUFTLFFBQVFFLG1CQUFtQixNQUFNO1lBQzVDQyxtQkFBbUJILEtBQUssQ0FBQyxFQUFFO1FBQzdCO1FBRUEsSUFBSUUsaUJBQWlCWixXQUFXLE1BQU07WUFDcENZLGdCQUFnQlosT0FBTyxDQUFDd0IsS0FBSztRQUMvQjtJQUNGLEdBQUc7UUFBQ2Q7UUFBT0U7S0FBZ0I7SUFFM0IscUJBQ0UscUJBQUNuRCxnQkFBZ0JnRSxRQUFRO1FBQUNDLE9BQU9KO3FCQUMvQixxQkFBQ0s7UUFDQ3JELFdBQVU7UUFDVnNELFdBQVdaO1FBQ1h0QixLQUFLYztPQUVKNUM7QUFJVDtBQUVPLFNBQVNMLFNBQVMsRUFDdkJzRSxJQUFJLEVBQ0pDLGVBQWUsRUFDZkMsZUFBZSxFQUNmbkUsUUFBUSxFQUNSb0UsV0FBVyxLQUFLLEVBQ2hCQyxvQkFBb0IsRUFRckI7SUFDQyxNQUFNekIsY0FBY2IsSUFBQUEsYUFBTSxFQUFpQjtJQUMzQyxNQUFNdUMsWUFBWXZDLElBQUFBLGFBQU0sRUFBb0I7SUFDNUMsTUFBTSxDQUFDd0MsY0FBY0MsZ0JBQWdCLEdBQUdqRSxJQUFBQSxlQUFRLEVBQUM7SUFFakQsTUFBTWtFLGNBQWM7UUFDbEJELGdCQUFnQjtRQUNoQixJQUFJRixXQUFXbEMsV0FBVyxNQUFNO1lBQzlCa0MsVUFBVWxDLE9BQU8sQ0FBQ3dCLEtBQUs7UUFDekI7SUFDRjtJQUVBeEMsSUFBQUEsZ0JBQVMsRUFBQztRQUNSLE1BQU1pQixTQUFTaUMsVUFBVWxDLE9BQU87UUFDaEMsTUFBTXNDLFdBQVc5QixZQUFZUixPQUFPO1FBRXBDLElBQUltQyxnQkFBZ0JsQyxXQUFXLFFBQVFxQyxhQUFhLE1BQU07WUFDeEQsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLEdBQUcsRUFBRSxHQUFHdkMsT0FBT3dDLHFCQUFxQjtZQUNsRCxNQUFNQyxrQkFBa0JDLE9BQU9DLFdBQVcsSUFBSTNELFNBQVM0RCxlQUFlLENBQUNDLFNBQVM7WUFDaEZSLFNBQVNTLEtBQUssQ0FBQ1AsR0FBRyxHQUFHLENBQUMsRUFBRUEsTUFBTUUsa0JBQWtCekMsT0FBTytDLFlBQVksR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUMzRVYsU0FBU1MsS0FBSyxDQUFDUixJQUFJLEdBQUcsQ0FBQyxFQUFFVSxLQUFLQyxHQUFHLENBQUNYLE9BQU8sR0FBR0ksT0FBT1EsVUFBVSxHQUFHYixTQUFTYyxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDaEc7SUFDRixHQUFHO1FBQUM1QztRQUFhMEI7UUFBV0M7S0FBYTtJQUV6Q25ELElBQUFBLGdCQUFTLEVBQUM7UUFDUixNQUFNaUIsU0FBU2lDLFVBQVVsQyxPQUFPO1FBRWhDLElBQUlDLFdBQVcsUUFBUWtDLGNBQWM7WUFDbkMsTUFBTWtCLFNBQVMsQ0FBQ3BDO2dCQUNkLE1BQU0sRUFBRXFDLE1BQU0sRUFBRSxHQUFHckM7Z0JBQ25CLElBQUlnQix3QkFBd0IsTUFBTTtvQkFDaEMsb0VBQW9FO29CQUNwRSxJQUFJekIsWUFBWVIsT0FBTyxJQUFJLFFBQVFRLFlBQVlSLE9BQU8sQ0FBQ3VELFFBQVEsQ0FBQ0QsU0FBaUI7d0JBQy9FO29CQUNGO2dCQUNGO2dCQUNBLElBQUksQ0FBQ3JELE9BQU9zRCxRQUFRLENBQUNELFNBQWlCO29CQUNwQ2xCLGdCQUFnQjtnQkFDbEI7WUFDRjtZQUNBbkQsU0FBU0MsZ0JBQWdCLENBQUMsU0FBU21FO1lBRW5DLE9BQU87Z0JBQ0xwRSxTQUFTRSxtQkFBbUIsQ0FBQyxTQUFTa0U7WUFDeEM7UUFDRjtJQUNGLEdBQUc7UUFBQzdDO1FBQWEwQjtRQUFXQztRQUFjRjtLQUFxQjtJQUUvRCxxQkFDRSxxQkFBQ3ZFLE9BQU04RixRQUFRLHNCQUNiLHFCQUFDdkQ7UUFDQ3dELGNBQVkzQjtRQUNaeEQsV0FBV3lELGtCQUFtQkksQ0FBQUEsZUFBZSxZQUFZLEVBQUM7UUFDMURILFVBQVVBO1FBQ1Y5QixTQUFTLENBQUNlO1lBQ1JBLE1BQU1aLGNBQWM7WUFDcEIrQixnQkFBZ0IsQ0FBQ0Q7UUFDbkI7UUFDQWhDLGFBQWEsQ0FBQ0M7WUFDWiw4SEFBOEg7WUFDOUgsMkpBQTJKO1lBQzNKLHNLQUFzSztZQUN0S0EsRUFBRUMsY0FBYztRQUNsQjtRQUNBWCxLQUFLd0M7UUFDTDVCLE1BQUs7cUJBRUwscUJBQUN1QiwyQkFDRCxxQkFBQzZCO1FBQUVwRixXQUFVO1NBR2Q2RCw4QkFDQ3dCLElBQUFBLHNCQUFZLGdCQUNWLHFCQUFDcEQ7UUFBY0MsYUFBYUE7UUFBYUMsU0FBUzRCO09BQy9DekUsV0FFSHFCLFNBQVMyRSxJQUFJO0FBSXZCIn0=
|
|
306
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvRmxvYXRpbmdTZWxlY3RUb29sYmFyL1Rvb2xiYXJEcm9wZG93bi9Ecm9wRG93bi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7IG1lcmdlUmVnaXN0ZXIgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7ICRnZXRTZWxlY3Rpb24gfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgdHlwZSBSZWFjdE5vZGUsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgdHlwZSB7IEZsb2F0aW5nVG9vbGJhclNlY3Rpb25FbnRyeSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnZmxvYXRpbmctc2VsZWN0LXRvb2xiYXItcG9wdXBfX2Ryb3Bkb3duLWl0ZW0nXG5cbmludGVyZmFjZSBEcm9wRG93bkNvbnRleHRUeXBlIHtcbiAgcmVnaXN0ZXJJdGVtOiAocmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB2b2lkXG59XG5cbmNvbnN0IERyb3BEb3duQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQ8RHJvcERvd25Db250ZXh0VHlwZSB8IG51bGw+KG51bGwpXG5cbmV4cG9ydCBmdW5jdGlvbiBEcm9wRG93bkl0ZW0oe1xuICBjaGlsZHJlbixcbiAgZW50cnksXG4gIHRpdGxlLFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIGVudHJ5OiBGbG9hdGluZ1Rvb2xiYXJTZWN0aW9uRW50cnlcbiAgdGl0bGU/OiBzdHJpbmdcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIGNvbnN0IFtlbmFibGVkLCBzZXRFbmFibGVkXSA9IHVzZVN0YXRlPGJvb2xlYW4+KHRydWUpXG4gIGNvbnN0IFthY3RpdmUsIHNldEFjdGl2ZV0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSlcbiAgY29uc3QgW2NsYXNzTmFtZSwgc2V0Q2xhc3NOYW1lXSA9IHVzZVN0YXRlPHN0cmluZz4oYmFzZUNsYXNzKVxuXG4gIGNvbnN0IHVwZGF0ZVN0YXRlcyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgICAgaWYgKGVudHJ5LmlzQWN0aXZlKSB7XG4gICAgICAgIGNvbnN0IGlzQWN0aXZlID0gZW50cnkuaXNBY3RpdmUoeyBlZGl0b3IsIHNlbGVjdGlvbiB9KVxuICAgICAgICBpZiAoYWN0aXZlICE9PSBpc0FjdGl2ZSkge1xuICAgICAgICAgIHNldEFjdGl2ZShpc0FjdGl2ZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGVudHJ5LmlzRW5hYmxlZCkge1xuICAgICAgICBjb25zdCBpc0VuYWJsZWQgPSBlbnRyeS5pc0VuYWJsZWQoeyBlZGl0b3IsIHNlbGVjdGlvbiB9KVxuICAgICAgICBpZiAoZW5hYmxlZCAhPT0gaXNFbmFibGVkKSB7XG4gICAgICAgICAgc2V0RW5hYmxlZChpc0VuYWJsZWQpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9LCBbYWN0aXZlLCBlZGl0b3IsIGVuYWJsZWQsIGVudHJ5XSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHVwZGF0ZVN0YXRlcygpXG4gIH0sIFt1cGRhdGVTdGF0ZXNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHVwZGF0ZVN0YXRlcylcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHVwZGF0ZVN0YXRlcylcbiAgICB9XG4gIH0sIFt1cGRhdGVTdGF0ZXNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcigoKSA9PiB7XG4gICAgICAgIHVwZGF0ZVN0YXRlcygpXG4gICAgICB9KSxcbiAgICApXG4gIH0sIFtlZGl0b3IsIHVwZGF0ZVN0YXRlc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRDbGFzc05hbWUoXG4gICAgICBbXG4gICAgICAgIGJhc2VDbGFzcyxcbiAgICAgICAgZW5hYmxlZCA9PT0gZmFsc2UgPyAnZGlzYWJsZWQnIDogJycsXG4gICAgICAgIGFjdGl2ZSA/ICdhY3RpdmUnIDogJycsXG4gICAgICAgIGVudHJ5Py5rZXkgPyBgJHtiYXNlQ2xhc3N9LSR7ZW50cnkua2V5fWAgOiAnJyxcbiAgICAgIF1cbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAuam9pbignICcpLFxuICAgIClcbiAgfSwgW2VuYWJsZWQsIGFjdGl2ZSwgY2xhc3NOYW1lLCBlbnRyeS5rZXldKVxuXG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4obnVsbClcblxuICBjb25zdCBkcm9wRG93bkNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KERyb3BEb3duQ29udGV4dClcblxuICBpZiAoZHJvcERvd25Db250ZXh0ID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdEcm9wRG93bkl0ZW0gbXVzdCBiZSB1c2VkIHdpdGhpbiBhIERyb3BEb3duJylcbiAgfVxuXG4gIGNvbnN0IHsgcmVnaXN0ZXJJdGVtIH0gPSBkcm9wRG93bkNvbnRleHRcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZWY/LmN1cnJlbnQgIT0gbnVsbCkge1xuICAgICAgcmVnaXN0ZXJJdGVtKHJlZilcbiAgICB9XG4gIH0sIFtyZWYsIHJlZ2lzdGVySXRlbV0pXG5cbiAgcmV0dXJuIChcbiAgICA8YnV0dG9uXG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgaWYgKGVuYWJsZWQgIT09IGZhbHNlKSB7XG4gICAgICAgICAgZW50cnkub25DbGljayh7XG4gICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICBpc0FjdGl2ZTogYWN0aXZlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH19XG4gICAgICBvbk1vdXNlRG93bj17KGUpID0+IHtcbiAgICAgICAgLy8gVGhpcyBpcyByZXF1aXJlZCBmb3IgRmlyZWZveCBjb21wYXRpYmlsaXR5LiBXaXRob3V0IGl0LCB0aGUgZHJvcGRvd24gd2lsbCBkaXNhcHBlYXIgd2l0aG91dCB0aGUgb25DbGljayBiZWluZyBjYWxsZWQuXG4gICAgICAgIC8vIFRoaXMgb25seSBoYXBwZW5zIGluIEZpcmVmb3guIE11c3QgYmUgc29tZXRoaW5nIGFib3V0IGhvdyBGaXJlZm94IGhhbmRsZXMgZm9jdXMgZXZlbnRzIGRpZmZlcmVudGx5LlxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIH19XG4gICAgICByZWY9e3JlZn1cbiAgICAgIHRpdGxlPXt0aXRsZX1cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2J1dHRvbj5cbiAgKVxufVxuXG5mdW5jdGlvbiBEcm9wRG93bkl0ZW1zKHtcbiAgY2hpbGRyZW4sXG4gIGRyb3BEb3duUmVmLFxuICBvbkNsb3NlLFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIGRyb3BEb3duUmVmOiBSZWFjdC5SZWY8SFRNTERpdkVsZW1lbnQ+XG4gIG9uQ2xvc2U6ICgpID0+IHZvaWRcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtpdGVtcywgc2V0SXRlbXNdID0gdXNlU3RhdGU8QXJyYXk8UmVhY3QuUmVmT2JqZWN0PEhUTUxCdXR0b25FbGVtZW50Pj4+KClcbiAgY29uc3QgW2hpZ2hsaWdodGVkSXRlbSwgc2V0SGlnaGxpZ2h0ZWRJdGVtXSA9IHVzZVN0YXRlPFJlYWN0LlJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudD4+KClcblxuICBjb25zdCByZWdpc3Rlckl0ZW0gPSB1c2VDYWxsYmFjayhcbiAgICAoaXRlbVJlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgc2V0SXRlbXMoKHByZXYpID0+IChwcmV2ICE9IG51bGwgPyBbLi4ucHJldiwgaXRlbVJlZl0gOiBbaXRlbVJlZl0pKVxuICAgIH0sXG4gICAgW3NldEl0ZW1zXSxcbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KTogdm9pZCA9PiB7XG4gICAgaWYgKGl0ZW1zID09IG51bGwpIHJldHVyblxuXG4gICAgY29uc3QgeyBrZXkgfSA9IGV2ZW50XG5cbiAgICBpZiAoWydBcnJvd0Rvd24nLCAnQXJyb3dVcCcsICdFc2NhcGUnLCAnVGFiJ10uaW5jbHVkZXMoa2V5KSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgIH1cblxuICAgIGlmIChrZXkgPT09ICdFc2NhcGUnIHx8IGtleSA9PT0gJ1RhYicpIHtcbiAgICAgIG9uQ2xvc2UoKVxuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgIHNldEhpZ2hsaWdodGVkSXRlbSgocHJldikgPT4ge1xuICAgICAgICBpZiAocHJldiA9PSBudWxsKSByZXR1cm4gaXRlbXNbMF1cbiAgICAgICAgY29uc3QgaW5kZXggPSBpdGVtcy5pbmRleE9mKHByZXYpIC0gMVxuICAgICAgICByZXR1cm4gaXRlbXNbaW5kZXggPT09IC0xID8gaXRlbXMubGVuZ3RoIC0gMSA6IGluZGV4XVxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIHNldEhpZ2hsaWdodGVkSXRlbSgocHJldikgPT4ge1xuICAgICAgICBpZiAocHJldiA9PSBudWxsKSByZXR1cm4gaXRlbXNbMF1cbiAgICAgICAgcmV0dXJuIGl0ZW1zW2l0ZW1zLmluZGV4T2YocHJldikgKyAxXVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBjb250ZXh0VmFsdWUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICByZWdpc3Rlckl0ZW0sXG4gICAgfSksXG4gICAgW3JlZ2lzdGVySXRlbV0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpdGVtcyAhPSBudWxsICYmIGhpZ2hsaWdodGVkSXRlbSA9PSBudWxsKSB7XG4gICAgICBzZXRIaWdobGlnaHRlZEl0ZW0oaXRlbXNbMF0pXG4gICAgfVxuXG4gICAgaWYgKGhpZ2hsaWdodGVkSXRlbT8uY3VycmVudCAhPSBudWxsKSB7XG4gICAgICBoaWdobGlnaHRlZEl0ZW0uY3VycmVudC5mb2N1cygpXG4gICAgfVxuICB9LCBbaXRlbXMsIGhpZ2hsaWdodGVkSXRlbV0pXG5cbiAgcmV0dXJuIChcbiAgICA8RHJvcERvd25Db250ZXh0LlByb3ZpZGVyIHZhbHVlPXtjb250ZXh0VmFsdWV9PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9XCJmbG9hdGluZy1zZWxlY3QtdG9vbGJhci1wb3B1cF9fZHJvcGRvd24taXRlbXNcIlxuICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgIHJlZj17ZHJvcERvd25SZWZ9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvZGl2PlxuICAgIDwvRHJvcERvd25Db250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEcm9wRG93bih7XG4gIEljb24sXG4gIGJ1dHRvbkFyaWFMYWJlbCxcbiAgYnV0dG9uQ2xhc3NOYW1lLFxuICBjaGlsZHJlbixcbiAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgc3RvcENsb3NlT25DbGlja1NlbGYsXG59OiB7XG4gIEljb24/OiBSZWFjdC5GQ1xuICBidXR0b25BcmlhTGFiZWw/OiBzdHJpbmdcbiAgYnV0dG9uQ2xhc3NOYW1lOiBzdHJpbmdcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgc3RvcENsb3NlT25DbGlja1NlbGY/OiBib29sZWFuXG59KTogSlNYLkVsZW1lbnQge1xuICBjb25zdCBkcm9wRG93blJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgYnV0dG9uUmVmID0gdXNlUmVmPEhUTUxCdXR0b25FbGVtZW50PihudWxsKVxuICBjb25zdCBbc2hvd0Ryb3BEb3duLCBzZXRTaG93RHJvcERvd25dID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgaGFuZGxlQ2xvc2UgPSAoKTogdm9pZCA9PiB7XG4gICAgc2V0U2hvd0Ryb3BEb3duKGZhbHNlKVxuICAgIGlmIChidXR0b25SZWY/LmN1cnJlbnQgIT0gbnVsbCkge1xuICAgICAgYnV0dG9uUmVmLmN1cnJlbnQuZm9jdXMoKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgYnV0dG9uID0gYnV0dG9uUmVmLmN1cnJlbnRcbiAgICBjb25zdCBkcm9wRG93biA9IGRyb3BEb3duUmVmLmN1cnJlbnRcblxuICAgIGlmIChzaG93RHJvcERvd24gJiYgYnV0dG9uICE9PSBudWxsICYmIGRyb3BEb3duICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB7IGxlZnQsIHRvcCB9ID0gYnV0dG9uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICBjb25zdCBzY3JvbGxUb3BPZmZzZXQgPSB3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcFxuICAgICAgZHJvcERvd24uc3R5bGUudG9wID0gYCR7dG9wICsgc2Nyb2xsVG9wT2Zmc2V0ICsgYnV0dG9uLm9mZnNldEhlaWdodCArIDV9cHhgXG4gICAgICBkcm9wRG93bi5zdHlsZS5sZWZ0ID0gYCR7TWF0aC5taW4obGVmdCAtIDUsIHdpbmRvdy5pbm5lcldpZHRoIC0gZHJvcERvd24ub2Zmc2V0V2lkdGggLSAyMCl9cHhgXG4gICAgfVxuICB9LCBbZHJvcERvd25SZWYsIGJ1dHRvblJlZiwgc2hvd0Ryb3BEb3duXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGJ1dHRvbiA9IGJ1dHRvblJlZi5jdXJyZW50XG5cbiAgICBpZiAoYnV0dG9uICE9PSBudWxsICYmIHNob3dEcm9wRG93bikge1xuICAgICAgY29uc3QgaGFuZGxlID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBldmVudFxuICAgICAgICBpZiAoc3RvcENsb3NlT25DbGlja1NlbGYgIT0gbnVsbCkge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW9wdGlvbmFsLWNoYWluXG4gICAgICAgICAgaWYgKGRyb3BEb3duUmVmLmN1cnJlbnQgIT0gbnVsbCAmJiBkcm9wRG93blJlZi5jdXJyZW50LmNvbnRhaW5zKHRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghYnV0dG9uLmNvbnRhaW5zKHRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICAgIHNldFNob3dEcm9wRG93bihmYWxzZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGUpXG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2Ryb3BEb3duUmVmLCBidXR0b25SZWYsIHNob3dEcm9wRG93biwgc3RvcENsb3NlT25DbGlja1NlbGZdKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPGJ1dHRvblxuICAgICAgICBhcmlhLWxhYmVsPXtidXR0b25BcmlhTGFiZWx9XG4gICAgICAgIGNsYXNzTmFtZT17YnV0dG9uQ2xhc3NOYW1lICsgKHNob3dEcm9wRG93biA/ICcgYWN0aXZlJyA6ICcnKX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBvbkNsaWNrPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgc2V0U2hvd0Ryb3BEb3duKCFzaG93RHJvcERvd24pXG4gICAgICAgIH19XG4gICAgICAgIG9uTW91c2VEb3duPXsoZSkgPT4ge1xuICAgICAgICAgIC8vIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgeW91IGFyZSB1bmFibGUgdG8gY2xpY2sgdGhlIGJ1dHRvbiBpZiB5b3UgYXJlIGluIGEgTkVTVEVEIGVkaXRvciAoZWRpdG9yIGluIGJsb2NrcyBmaWVsZCBpbiBlZGl0b3IpLlxuICAgICAgICAgIC8vIFRodXMgb25seSBoYXBwZW5zIGlmIHlvdSBjbGljayBvbiB0aGUgU1ZHIG9mIHRoZSBidXR0b24uIENsaWNraW5nIG9uIHRoZSBvdXRzaWRlIHdvcmtzLiBSZWxhdGVkIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL2lzc3Vlcy80MDI1XG4gICAgICAgICAgLy8gVE9ETzogRmluZCBvdXQgd2h5IGV4YWN0bHkgaXQgaGFwcGVucyBhbmQgd2h5IGUucHJldmVudERlZmF1bHQoKSBvbiB0aGUgbW91c2VEb3duIGZpeGVzIGl0LiBXcml0ZSB0aGF0IGRvd24gaGVyZSwgb3IgcG90ZW50aWFsbHkgZml4IGEgcm9vdCBjYXVzZSwgaWYgdGhlcmUgaXMgYW55LlxuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICB9fVxuICAgICAgICByZWY9e2J1dHRvblJlZn1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxJY29uIC8+XG4gICAgICAgIDxpIGNsYXNzTmFtZT1cImZsb2F0aW5nLXNlbGVjdC10b29sYmFyLXBvcHVwX19kcm9wZG93bi1jYXJldFwiIC8+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAge3Nob3dEcm9wRG93biAmJlxuICAgICAgICBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgPERyb3BEb3duSXRlbXMgZHJvcERvd25SZWY9e2Ryb3BEb3duUmVmfSBvbkNsb3NlPXtoYW5kbGVDbG9zZX0+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgPC9Ecm9wRG93bkl0ZW1zPixcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LFxuICAgICAgICApfVxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJEcm9wRG93biIsIkRyb3BEb3duSXRlbSIsImJhc2VDbGFzcyIsIkRyb3BEb3duQ29udGV4dCIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsImNoaWxkcmVuIiwiZW50cnkiLCJ0aXRsZSIsImVkaXRvciIsInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJlbmFibGVkIiwic2V0RW5hYmxlZCIsInVzZVN0YXRlIiwiYWN0aXZlIiwic2V0QWN0aXZlIiwiY2xhc3NOYW1lIiwic2V0Q2xhc3NOYW1lIiwidXBkYXRlU3RhdGVzIiwidXNlQ2FsbGJhY2siLCJnZXRFZGl0b3JTdGF0ZSIsInJlYWQiLCJzZWxlY3Rpb24iLCIkZ2V0U2VsZWN0aW9uIiwiaXNBY3RpdmUiLCJpc0VuYWJsZWQiLCJ1c2VFZmZlY3QiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibWVyZ2VSZWdpc3RlciIsInJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIiLCJrZXkiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsInJlZiIsInVzZVJlZiIsImRyb3BEb3duQ29udGV4dCIsInVzZUNvbnRleHQiLCJFcnJvciIsInJlZ2lzdGVySXRlbSIsImN1cnJlbnQiLCJidXR0b24iLCJvbkNsaWNrIiwib25Nb3VzZURvd24iLCJlIiwicHJldmVudERlZmF1bHQiLCJ0eXBlIiwiRHJvcERvd25JdGVtcyIsImRyb3BEb3duUmVmIiwib25DbG9zZSIsIml0ZW1zIiwic2V0SXRlbXMiLCJoaWdobGlnaHRlZEl0ZW0iLCJzZXRIaWdobGlnaHRlZEl0ZW0iLCJpdGVtUmVmIiwicHJldiIsImhhbmRsZUtleURvd24iLCJldmVudCIsImluY2x1ZGVzIiwiaW5kZXgiLCJpbmRleE9mIiwibGVuZ3RoIiwiY29udGV4dFZhbHVlIiwidXNlTWVtbyIsImZvY3VzIiwiUHJvdmlkZXIiLCJ2YWx1ZSIsImRpdiIsIm9uS2V5RG93biIsIkljb24iLCJidXR0b25BcmlhTGFiZWwiLCJidXR0b25DbGFzc05hbWUiLCJkaXNhYmxlZCIsInN0b3BDbG9zZU9uQ2xpY2tTZWxmIiwiYnV0dG9uUmVmIiwic2hvd0Ryb3BEb3duIiwic2V0U2hvd0Ryb3BEb3duIiwiaGFuZGxlQ2xvc2UiLCJkcm9wRG93biIsImxlZnQiLCJ0b3AiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJzY3JvbGxUb3BPZmZzZXQiLCJ3aW5kb3ciLCJwYWdlWU9mZnNldCIsImRvY3VtZW50RWxlbWVudCIsInNjcm9sbFRvcCIsInN0eWxlIiwib2Zmc2V0SGVpZ2h0IiwiTWF0aCIsIm1pbiIsImlubmVyV2lkdGgiLCJvZmZzZXRXaWR0aCIsImhhbmRsZSIsInRhcmdldCIsImNvbnRhaW5zIiwiRnJhZ21lbnQiLCJhcmlhLWxhYmVsIiwiaSIsImNyZWF0ZVBvcnRhbCIsImJvZHkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7SUFxTWdCQSxRQUFRO2VBQVJBOztJQW5MQUMsWUFBWTtlQUFaQTs7O3dDQWpCMEI7dUJBQ1o7eUJBQ0E7K0RBQ29EOzBCQUVyRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSTdCLE1BQU1DLFlBQVk7QUFNbEIsTUFBTUMsZ0NBQWtCQyxPQUFNQyxhQUFhLENBQTZCO0FBRWpFLFNBQVNKLGFBQWEsRUFDM0JLLFFBQVEsRUFDUkMsS0FBSyxFQUNMQyxLQUFLLEVBS047SUFDQyxNQUFNLENBQUNDLE9BQU8sR0FBR0MsSUFBQUEsaURBQXlCO0lBQzFDLE1BQU0sQ0FBQ0MsU0FBU0MsV0FBVyxHQUFHQyxJQUFBQSxlQUFRLEVBQVU7SUFDaEQsTUFBTSxDQUFDQyxRQUFRQyxVQUFVLEdBQUdGLElBQUFBLGVBQVEsRUFBVTtJQUM5QyxNQUFNLENBQUNHLFdBQVdDLGFBQWEsR0FBR0osSUFBQUEsZUFBUSxFQUFTWDtJQUVuRCxNQUFNZ0IsZUFBZUMsSUFBQUEsa0JBQVcsRUFBQztRQUMvQlYsT0FBT1csY0FBYyxHQUFHQyxJQUFJLENBQUM7WUFDM0IsTUFBTUMsWUFBWUMsSUFBQUEsc0JBQWE7WUFDL0IsSUFBSWhCLE1BQU1pQixRQUFRLEVBQUU7Z0JBQ2xCLE1BQU1BLFdBQVdqQixNQUFNaUIsUUFBUSxDQUFDO29CQUFFZjtvQkFBUWE7Z0JBQVU7Z0JBQ3BELElBQUlSLFdBQVdVLFVBQVU7b0JBQ3ZCVCxVQUFVUztnQkFDWjtZQUNGO1lBQ0EsSUFBSWpCLE1BQU1rQixTQUFTLEVBQUU7Z0JBQ25CLE1BQU1BLFlBQVlsQixNQUFNa0IsU0FBUyxDQUFDO29CQUFFaEI7b0JBQVFhO2dCQUFVO2dCQUN0RCxJQUFJWCxZQUFZYyxXQUFXO29CQUN6QmIsV0FBV2E7Z0JBQ2I7WUFDRjtRQUNGO0lB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
|
|
@@ -10,11 +10,11 @@ function _export(target, all) {
|
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
_export(exports, {
|
|
13
|
-
ToolbarEntry: function() {
|
|
14
|
-
return ToolbarEntry;
|
|
15
|
-
},
|
|
16
13
|
ToolbarDropdown: function() {
|
|
17
14
|
return ToolbarDropdown;
|
|
15
|
+
},
|
|
16
|
+
ToolbarEntry: function() {
|
|
17
|
+
return ToolbarEntry;
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
20
|
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
@@ -41,7 +41,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
41
41
|
if (cache && cache.has(obj)) {
|
|
42
42
|
return cache.get(obj);
|
|
43
43
|
}
|
|
44
|
-
var newObj = {
|
|
44
|
+
var newObj = {
|
|
45
|
+
__proto__: null
|
|
46
|
+
};
|
|
45
47
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
46
48
|
for(var key in obj){
|
|
47
49
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -110,4 +112,4 @@ const ToolbarDropdown = ({ Icon, anchorElem, classNames, editor, entries, sectio
|
|
|
110
112
|
}));
|
|
111
113
|
};
|
|
112
114
|
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvRmxvYXRpbmdTZWxlY3RUb29sYmFyL1Rvb2xiYXJEcm9wZG93bi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgUmVhY3QsIHsgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnZmxvYXRpbmctc2VsZWN0LXRvb2xiYXItcG9wdXBfX2Ryb3Bkb3duJ1xuXG5pbXBvcnQgdHlwZSB7IExleGljYWxFZGl0b3IgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgdHlwZSB7IEZsb2F0aW5nVG9vbGJhclNlY3Rpb25FbnRyeSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBEcm9wRG93biwgRHJvcERvd25JdGVtIH0gZnJvbSAnLi9Ecm9wRG93bidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5leHBvcnQgY29uc3QgVG9vbGJhckVudHJ5ID0gKHtcbiAgYW5jaG9yRWxlbSxcbiAgZWRpdG9yLFxuICBlbnRyeSxcbn06IHtcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnRcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yXG4gIGVudHJ5OiBGbG9hdGluZ1Rvb2xiYXJTZWN0aW9uRW50cnlcbn0pID0+IHtcbiAgY29uc3QgQ29tcG9uZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGVudHJ5Py5Db21wb25lbnRcbiAgICAgID8gUmVhY3QubGF6eSgoKSA9PlxuICAgICAgICAgIGVudHJ5LkNvbXBvbmVudCgpLnRoZW4oKHJlc29sdmVkQ29tcG9uZW50KSA9PiAoe1xuICAgICAgICAgICAgZGVmYXVsdDogcmVzb2x2ZWRDb21wb25lbnQsXG4gICAgICAgICAgfSkpLFxuICAgICAgICApXG4gICAgICA6IG51bGxcbiAgfSwgW2VudHJ5XSlcblxuICBjb25zdCBDaGlsZENvbXBvbmVudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBlbnRyeT8uQ2hpbGRDb21wb25lbnRcbiAgICAgID8gUmVhY3QubGF6eSgoKSA9PlxuICAgICAgICAgIGVudHJ5LkNoaWxkQ29tcG9uZW50KCkudGhlbigocmVzb2x2ZWRDaGlsZENvbXBvbmVudCkgPT4gKHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IHJlc29sdmVkQ2hpbGRDb21wb25lbnQsXG4gICAgICAgICAgfSkpLFxuICAgICAgICApXG4gICAgICA6IG51bGxcbiAgfSwgW2VudHJ5XSlcblxuICBpZiAoZW50cnkuQ29tcG9uZW50KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIENvbXBvbmVudCAmJiAoXG4gICAgICAgIDxSZWFjdC5TdXNwZW5zZT5cbiAgICAgICAgICA8Q29tcG9uZW50IGFuY2hvckVsZW09e2FuY2hvckVsZW19IGVkaXRvcj17ZWRpdG9yfSBlbnRyeT17ZW50cnl9IGtleT17ZW50cnkua2V5fSAvPlxuICAgICAgICA8L1JlYWN0LlN1c3BlbnNlPlxuICAgICAgKVxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPERyb3BEb3duSXRlbSBlbnRyeT17ZW50cnl9IGtleT17ZW50cnkua2V5fT5cbiAgICAgIHtDaGlsZENvbXBvbmVudCAmJiAoXG4gICAgICAgIDxSZWFjdC5TdXNwZW5zZT5cbiAgICAgICAgICA8Q2hpbGRDb21wb25lbnQgLz5cbiAgICAgICAgPC9SZWFjdC5TdXNwZW5zZT5cbiAgICAgICl9XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0XCI+e2VudHJ5LmxhYmVsfTwvc3Bhbj5cbiAgICA8L0Ryb3BEb3duSXRlbT5cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgVG9vbGJhckRyb3Bkb3duID0gKHtcbiAgSWNvbixcbiAgYW5jaG9yRWxlbSxcbiAgY2xhc3NOYW1lcyxcbiAgZWRpdG9yLFxuICBlbnRyaWVzLFxuICBzZWN0aW9uS2V5LFxufToge1xuICBJY29uPzogUmVhY3QuRkNcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnRcbiAgY2xhc3NOYW1lcz86IHN0cmluZ1tdXG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxuICBlbnRyaWVzOiBGbG9hdGluZ1Rvb2xiYXJTZWN0aW9uRW50cnlbXVxuICBzZWN0aW9uS2V5OiBzdHJpbmdcbn0pID0+
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvRmxvYXRpbmdTZWxlY3RUb29sYmFyL1Rvb2xiYXJEcm9wZG93bi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgUmVhY3QsIHsgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnZmxvYXRpbmctc2VsZWN0LXRvb2xiYXItcG9wdXBfX2Ryb3Bkb3duJ1xuXG5pbXBvcnQgdHlwZSB7IExleGljYWxFZGl0b3IgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgdHlwZSB7IEZsb2F0aW5nVG9vbGJhclNlY3Rpb25FbnRyeSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBEcm9wRG93biwgRHJvcERvd25JdGVtIH0gZnJvbSAnLi9Ecm9wRG93bidcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5leHBvcnQgY29uc3QgVG9vbGJhckVudHJ5ID0gKHtcbiAgYW5jaG9yRWxlbSxcbiAgZWRpdG9yLFxuICBlbnRyeSxcbn06IHtcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnRcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yXG4gIGVudHJ5OiBGbG9hdGluZ1Rvb2xiYXJTZWN0aW9uRW50cnlcbn0pID0+IHtcbiAgY29uc3QgQ29tcG9uZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGVudHJ5Py5Db21wb25lbnRcbiAgICAgID8gUmVhY3QubGF6eSgoKSA9PlxuICAgICAgICAgIGVudHJ5LkNvbXBvbmVudCgpLnRoZW4oKHJlc29sdmVkQ29tcG9uZW50KSA9PiAoe1xuICAgICAgICAgICAgZGVmYXVsdDogcmVzb2x2ZWRDb21wb25lbnQsXG4gICAgICAgICAgfSkpLFxuICAgICAgICApXG4gICAgICA6IG51bGxcbiAgfSwgW2VudHJ5XSlcblxuICBjb25zdCBDaGlsZENvbXBvbmVudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBlbnRyeT8uQ2hpbGRDb21wb25lbnRcbiAgICAgID8gUmVhY3QubGF6eSgoKSA9PlxuICAgICAgICAgIGVudHJ5LkNoaWxkQ29tcG9uZW50KCkudGhlbigocmVzb2x2ZWRDaGlsZENvbXBvbmVudCkgPT4gKHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IHJlc29sdmVkQ2hpbGRDb21wb25lbnQsXG4gICAgICAgICAgfSkpLFxuICAgICAgICApXG4gICAgICA6IG51bGxcbiAgfSwgW2VudHJ5XSlcblxuICBpZiAoZW50cnkuQ29tcG9uZW50KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIENvbXBvbmVudCAmJiAoXG4gICAgICAgIDxSZWFjdC5TdXNwZW5zZT5cbiAgICAgICAgICA8Q29tcG9uZW50IGFuY2hvckVsZW09e2FuY2hvckVsZW19IGVkaXRvcj17ZWRpdG9yfSBlbnRyeT17ZW50cnl9IGtleT17ZW50cnkua2V5fSAvPlxuICAgICAgICA8L1JlYWN0LlN1c3BlbnNlPlxuICAgICAgKVxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPERyb3BEb3duSXRlbSBlbnRyeT17ZW50cnl9IGtleT17ZW50cnkua2V5fT5cbiAgICAgIHtDaGlsZENvbXBvbmVudCAmJiAoXG4gICAgICAgIDxSZWFjdC5TdXNwZW5zZT5cbiAgICAgICAgICA8Q2hpbGRDb21wb25lbnQgLz5cbiAgICAgICAgPC9SZWFjdC5TdXNwZW5zZT5cbiAgICAgICl9XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0XCI+e2VudHJ5LmxhYmVsfTwvc3Bhbj5cbiAgICA8L0Ryb3BEb3duSXRlbT5cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgVG9vbGJhckRyb3Bkb3duID0gKHtcbiAgSWNvbixcbiAgYW5jaG9yRWxlbSxcbiAgY2xhc3NOYW1lcyxcbiAgZWRpdG9yLFxuICBlbnRyaWVzLFxuICBzZWN0aW9uS2V5LFxufToge1xuICBJY29uPzogUmVhY3QuRkNcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnRcbiAgY2xhc3NOYW1lcz86IHN0cmluZ1tdXG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxuICBlbnRyaWVzOiBGbG9hdGluZ1Rvb2xiYXJTZWN0aW9uRW50cnlbXVxuICBzZWN0aW9uS2V5OiBzdHJpbmdcbn0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8RHJvcERvd25cbiAgICAgIEljb249e0ljb259XG4gICAgICBidXR0b25BcmlhTGFiZWw9e2Ake3NlY3Rpb25LZXl9IGRyb3Bkb3duYH1cbiAgICAgIGJ1dHRvbkNsYXNzTmFtZT17W2Jhc2VDbGFzcywgYCR7YmFzZUNsYXNzfS0ke3NlY3Rpb25LZXl9YCwgLi4uKGNsYXNzTmFtZXMgfHwgW10pXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5qb2luKCcgJyl9XG4gICAgICBrZXk9e3NlY3Rpb25LZXl9XG4gICAgPlxuICAgICAge2VudHJpZXMubGVuZ3RoICYmXG4gICAgICAgIGVudHJpZXMubWFwKChlbnRyeSkgPT4ge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8VG9vbGJhckVudHJ5IGFuY2hvckVsZW09e2FuY2hvckVsZW19IGVkaXRvcj17ZWRpdG9yfSBlbnRyeT17ZW50cnl9IGtleT17ZW50cnkua2V5fSAvPlxuICAgICAgICAgIClcbiAgICAgICAgfSl9XG4gICAgPC9Ecm9wRG93bj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlRvb2xiYXJEcm9wZG93biIsIlRvb2xiYXJFbnRyeSIsImJhc2VDbGFzcyIsImFuY2hvckVsZW0iLCJlZGl0b3IiLCJlbnRyeSIsIkNvbXBvbmVudCIsInVzZU1lbW8iLCJSZWFjdCIsImxhenkiLCJ0aGVuIiwicmVzb2x2ZWRDb21wb25lbnQiLCJkZWZhdWx0IiwiQ2hpbGRDb21wb25lbnQiLCJyZXNvbHZlZENoaWxkQ29tcG9uZW50IiwiU3VzcGVuc2UiLCJrZXkiLCJEcm9wRG93bkl0ZW0iLCJzcGFuIiwiY2xhc3NOYW1lIiwibGFiZWwiLCJJY29uIiwiY2xhc3NOYW1lcyIsImVudHJpZXMiLCJzZWN0aW9uS2V5IiwiRHJvcERvd24iLCJidXR0b25BcmlhTGFiZWwiLCJidXR0b25DbGFzc05hbWUiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsImxlbmd0aCIsIm1hcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztJQStEYUEsZUFBZTtlQUFmQTs7SUFuREFDLFlBQVk7ZUFBWkE7OzsrREFYa0I7MEJBUVE7UUFDaEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVBQLE1BQU1DLFlBQVk7QUFTWCxNQUFNRCxlQUFlLENBQUMsRUFDM0JFLFVBQVUsRUFDVkMsTUFBTSxFQUNOQyxLQUFLLEVBS047SUFDQyxNQUFNQyxZQUFZQyxJQUFBQSxjQUFPLEVBQUM7UUFDeEIsT0FBT0YsT0FBT0MsMEJBQ1ZFLGNBQUssQ0FBQ0MsSUFBSSxDQUFDLElBQ1RKLE1BQU1DLFNBQVMsR0FBR0ksSUFBSSxDQUFDLENBQUNDLG9CQUF1QixDQUFBO29CQUM3Q0MsU0FBU0Q7Z0JBQ1gsQ0FBQSxNQUVGO0lBQ04sR0FBRztRQUFDTjtLQUFNO0lBRVYsTUFBTVEsaUJBQWlCTixJQUFBQSxjQUFPLEVBQUM7UUFDN0IsT0FBT0YsT0FBT1EsK0JBQ1ZMLGNBQUssQ0FBQ0MsSUFBSSxDQUFDLElBQ1RKLE1BQU1RLGNBQWMsR0FBR0gsSUFBSSxDQUFDLENBQUNJLHlCQUE0QixDQUFBO29CQUN2REYsU0FBU0U7Z0JBQ1gsQ0FBQSxNQUVGO0lBQ04sR0FBRztRQUFDVDtLQUFNO0lBRVYsSUFBSUEsTUFBTUMsU0FBUyxFQUFFO1FBQ25CLE9BQ0VBLDJCQUNFLDZCQUFDRSxjQUFLLENBQUNPLFFBQVEsc0JBQ2IsNkJBQUNUO1lBQVVILFlBQVlBO1lBQVlDLFFBQVFBO1lBQVFDLE9BQU9BO1lBQU9XLEtBQUtYLE1BQU1XLEdBQUc7O0lBSXZGO0lBRUEscUJBQ0UsNkJBQUNDLHNCQUFZO1FBQUNaLE9BQU9BO1FBQU9XLEtBQUtYLE1BQU1XLEdBQUc7T0FDdkNILGdDQUNDLDZCQUFDTCxjQUFLLENBQUNPLFFBQVEsc0JBQ2IsNkJBQUNGLHNDQUdMLDZCQUFDSztRQUFLQyxXQUFVO09BQVFkLE1BQU1lLEtBQUs7QUFHekM7QUFFTyxNQUFNcEIsa0JBQWtCLENBQUMsRUFDOUJxQixJQUFJLEVBQ0psQixVQUFVLEVBQ1ZtQixVQUFVLEVBQ1ZsQixNQUFNLEVBQ05tQixPQUFPLEVBQ1BDLFVBQVUsRUFRWDtJQUNDLHFCQUNFLDZCQUFDQyxrQkFBUTtRQUNQSixNQUFNQTtRQUNOSyxpQkFBaUIsQ0FBQyxFQUFFRixXQUFXLFNBQVMsQ0FBQztRQUN6Q0csaUJBQWlCO1lBQUN6QjtZQUFXLENBQUMsRUFBRUEsVUFBVSxDQUFDLEVBQUVzQixXQUFXLENBQUM7ZUFBTUYsY0FBYyxFQUFFO1NBQUUsQ0FDOUVNLE1BQU0sQ0FBQ0MsU0FDUEMsSUFBSSxDQUFDO1FBQ1JkLEtBQUtRO09BRUpELFFBQVFRLE1BQU0sSUFDYlIsUUFBUVMsR0FBRyxDQUFDLENBQUMzQjtRQUNYLHFCQUNFLDZCQUFDSjtZQUFhRSxZQUFZQTtZQUFZQyxRQUFRQTtZQUFRQyxPQUFPQTtZQUFPVyxLQUFLWCxNQUFNVyxHQUFHOztJQUV0RjtBQUdSIn0=
|
|
@@ -41,7 +41,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
41
41
|
if (cache && cache.has(obj)) {
|
|
42
42
|
return cache.get(obj);
|
|
43
43
|
}
|
|
44
|
-
var newObj = {
|
|
44
|
+
var newObj = {
|
|
45
|
+
__proto__: null
|
|
46
|
+
};
|
|
45
47
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
46
48
|
for(var key in obj){
|
|
47
49
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -332,4 +334,4 @@ function FloatingSelectToolbarPlugin({ anchorElem = document.body }) {
|
|
|
332
334
|
return useFloatingTextFormatToolbar(editor, anchorElem);
|
|
333
335
|
}
|
|
334
336
|
|
|
335
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvRmxvYXRpbmdTZWxlY3RUb29sYmFyL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgTGV4aWNhbEVkaXRvciB9IGZyb20gJ2xleGljYWwnXG5cbmltcG9ydCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsQ29tcG9zZXJDb250ZXh0J1xuaW1wb3J0IHsgbWVyZ2VSZWdpc3RlciB9IGZyb20gJ0BsZXhpY2FsL3V0aWxzJ1xuaW1wb3J0IHtcbiAgJGdldFNlbGVjdGlvbixcbiAgJGlzUmFuZ2VTZWxlY3Rpb24sXG4gICRpc1RleHROb2RlLFxuICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5ELFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nXG5cbmltcG9ydCB0eXBlIHsgRmxvYXRpbmdUb29sYmFyU2VjdGlvbiwgRmxvYXRpbmdUb29sYmFyU2VjdGlvbkVudHJ5IH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgdXNlRWRpdG9yQ29uZmlnQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbmZpZy9FZGl0b3JDb25maWdQcm92aWRlcidcbmltcG9ydCB7IGdldERPTVJhbmdlUmVjdCB9IGZyb20gJy4uLy4uL3V0aWxzL2dldERPTVJhbmdlUmVjdCdcbmltcG9ydCB7IHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2V0RmxvYXRpbmdFbGVtUG9zaXRpb24nXG5pbXBvcnQgeyBUb29sYmFyQnV0dG9uIH0gZnJvbSAnLi9Ub29sYmFyQnV0dG9uJ1xuaW1wb3J0IHsgVG9vbGJhckRyb3Bkb3duIH0gZnJvbSAnLi9Ub29sYmFyRHJvcGRvd24nXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuZnVuY3Rpb24gQnV0dG9uU2VjdGlvbkVudHJ5KHtcbiAgYW5jaG9yRWxlbSxcbiAgZWRpdG9yLFxuICBlbnRyeSxcbn06IHtcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnRcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yXG4gIGVudHJ5OiBGbG9hdGluZ1Rvb2xiYXJTZWN0aW9uRW50cnlcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IENvbXBvbmVudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBlbnRyeT8uQ29tcG9uZW50XG4gICAgICA/IFJlYWN0LmxhenkoKCkgPT5cbiAgICAgICAgICBlbnRyeS5Db21wb25lbnQoKS50aGVuKChyZXNvbHZlZENvbXBvbmVudCkgPT4gKHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IHJlc29sdmVkQ29tcG9uZW50LFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgKVxuICAgICAgOiBudWxsXG4gIH0sIFtlbnRyeV0pXG5cbiAgY29uc3QgQ2hpbGRDb21wb25lbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gZW50cnk/LkNoaWxkQ29tcG9uZW50XG4gICAgICA/IFJlYWN0LmxhenkoKCkgPT5cbiAgICAgICAgICBlbnRyeS5DaGlsZENvbXBvbmVudCgpLnRoZW4oKHJlc29sdmVkQ2hpbGRDb21wb25lbnQpID0+ICh7XG4gICAgICAgICAgICBkZWZhdWx0OiByZXNvbHZlZENoaWxkQ29tcG9uZW50LFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgKVxuICAgICAgOiBudWxsXG4gIH0sIFtlbnRyeV0pXG5cbiAgaWYgKGVudHJ5LkNvbXBvbmVudCkge1xuICAgIHJldHVybiAoXG4gICAgICBDb21wb25lbnQgJiYgKFxuICAgICAgICA8UmVhY3QuU3VzcGVuc2U+XG4gICAgICAgICAgPENvbXBvbmVudCBhbmNob3JFbGVtPXthbmNob3JFbGVtfSBlZGl0b3I9e2VkaXRvcn0gZW50cnk9e2VudHJ5fSBrZXk9e2VudHJ5LmtleX0gLz57JyAnfVxuICAgICAgICA8L1JlYWN0LlN1c3BlbnNlPlxuICAgICAgKVxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFRvb2xiYXJCdXR0b24gZW50cnk9e2VudHJ5fSBrZXk9e2VudHJ5LmtleX0+XG4gICAgICB7Q2hpbGRDb21wb25lbnQgJiYgKFxuICAgICAgICA8UmVhY3QuU3VzcGVuc2U+XG4gICAgICAgICAgPENoaWxkQ29tcG9uZW50IC8+XG4gICAgICAgIDwvUmVhY3QuU3VzcGVuc2U+XG4gICAgICApfVxuICAgIDwvVG9vbGJhckJ1dHRvbj5cbiAgKVxufVxuXG5mdW5jdGlvbiBUb29sYmFyU2VjdGlvbih7XG4gIGFuY2hvckVsZW0sXG4gIGVkaXRvcixcbiAgaW5kZXgsXG4gIHNlY3Rpb24sXG59OiB7XG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxuICBpbmRleDogbnVtYmVyXG4gIHNlY3Rpb246IEZsb2F0aW5nVG9vbGJhclNlY3Rpb25cbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IHsgZWRpdG9yQ29uZmlnIH0gPSB1c2VFZGl0b3JDb25maWdDb250ZXh0KClcblxuICBjb25zdCBJY29uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHNlY3Rpb24/LnR5cGUgPT09ICdkcm9wZG93bicgJiYgc2VjdGlvbi5lbnRyaWVzLmxlbmd0aCAmJiBzZWN0aW9uLkNoaWxkQ29tcG9uZW50XG4gICAgICA/IFJlYWN0LmxhenkoKCkgPT5cbiAgICAgICAgICBzZWN0aW9uLkNoaWxkQ29tcG9uZW50KCkudGhlbigocmVzb2x2ZWRDb21wb25lbnQpID0+ICh7XG4gICAgICAgICAgICBkZWZhdWx0OiByZXNvbHZlZENvbXBvbmVudCxcbiAgICAgICAgICB9KSksXG4gICAgICAgIClcbiAgICAgIDogbnVsbFxuICB9LCBbc2VjdGlvbl0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2BmbG9hdGluZy1zZWxlY3QtdG9vbGJhci1wb3B1cF9fc2VjdGlvbiBmbG9hdGluZy1zZWxlY3QtdG9vbGJhci1wb3B1cF9fc2VjdGlvbi0ke3NlY3Rpb24ua2V5fWB9XG4gICAgICBrZXk9e3NlY3Rpb24ua2V5fVxuICAgID5cbiAgICAgIHtzZWN0aW9uLnR5cGUgPT09ICdkcm9wZG93bicgJiZcbiAgICAgICAgc2VjdGlvbi5lbnRyaWVzLmxlbmd0aCAmJlxuICAgICAgICAoSWNvbiA/IChcbiAgICAgICAgICA8UmVhY3QuU3VzcGVuc2U+XG4gICAgICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgICAgIEljb249e0ljb259XG4gICAgICAgICAgICAgIGFuY2hvckVsZW09e2FuY2hvckVsZW19XG4gICAgICAgICAgICAgIGVkaXRvcj17ZWRpdG9yfVxuICAgICAgICAgICAgICBlbnRyaWVzPXtzZWN0aW9uLmVudHJpZXN9XG4gICAgICAgICAgICAgIHNlY3Rpb25LZXk9e3NlY3Rpb24ua2V5fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1JlYWN0LlN1c3BlbnNlPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICAgIGFuY2hvckVsZW09e2FuY2hvckVsZW19XG4gICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgIGVudHJpZXM9e3NlY3Rpb24uZW50cmllc31cbiAgICAgICAgICAgIHNlY3Rpb25LZXk9e3NlY3Rpb24ua2V5fVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAge3NlY3Rpb24udHlwZSA9PT0gJ2J1dHRvbnMnICYmXG4gICAgICAgIHNlY3Rpb24uZW50cmllcy5sZW5ndGggJiZcbiAgICAgICAgc2VjdGlvbi5lbnRyaWVzLm1hcCgoZW50cnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEJ1dHRvblNlY3Rpb25FbnRyeVxuICAgICAgICAgICAgICBhbmNob3JFbGVtPXthbmNob3JFbGVtfVxuICAgICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgICAgZW50cnk9e2VudHJ5fVxuICAgICAgICAgICAgICBrZXk9e2VudHJ5LmtleX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgIHtpbmRleCA8IGVkaXRvckNvbmZpZy5mZWF0dXJlcy5mbG9hdGluZ1NlbGVjdFRvb2xiYXI/LnNlY3Rpb25zLmxlbmd0aCAtIDEgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRpdmlkZXJcIiAvPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5mdW5jdGlvbiBGbG9hdGluZ1NlbGVjdFRvb2xiYXIoe1xuICBhbmNob3JFbGVtLFxuICBlZGl0b3IsXG59OiB7XG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxufSk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgY2FyZXRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IHsgZWRpdG9yQ29uZmlnIH0gPSB1c2VFZGl0b3JDb25maWdDb250ZXh0KClcblxuICBjb25zdCBjbG9zZUZsb2F0aW5nVG9vbGJhciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAocG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmPy5jdXJyZW50KSB7XG4gICAgICBjb25zdCBpc09wYWNpdHlaZXJvID0gcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUub3BhY2l0eSA9PT0gJzAnXG4gICAgICBjb25zdCBpc1BvaW50ZXJFdmVudHNOb25lID0gcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUucG9pbnRlckV2ZW50cyA9PT0gJ25vbmUnXG5cbiAgICAgIGlmICghaXNPcGFjaXR5WmVybykge1xuICAgICAgICBwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzAnXG4gICAgICB9XG4gICAgICBpZiAoIWlzUG9pbnRlckV2ZW50c05vbmUpIHtcbiAgICAgICAgcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJ1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3BvcHVwQ2hhclN0eWxlc0VkaXRvclJlZl0pXG5cbiAgY29uc3QgbW91c2VNb3ZlTGlzdGVuZXIgPSB1c2VDYWxsYmFjayhcbiAgICAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKHBvcHVwQ2hhclN0eWxlc0VkaXRvclJlZj8uY3VycmVudCAmJiAoZS5idXR0b25zID09PSAxIHx8IGUuYnV0dG9ucyA9PT0gMykpIHtcbiAgICAgICAgY29uc3QgaXNPcGFjaXR5WmVybyA9IHBvcHVwQ2hhclN0eWxlc0VkaXRvclJlZi5jdXJyZW50LnN0eWxlLm9wYWNpdHkgPT09ICcwJ1xuICAgICAgICBjb25zdCBpc1BvaW50ZXJFdmVudHNOb25lID0gcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUucG9pbnRlckV2ZW50cyA9PT0gJ25vbmUnXG4gICAgICAgIGlmICghaXNPcGFjaXR5WmVybyB8fCAhaXNQb2ludGVyRXZlbnRzTm9uZSkge1xuICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBtb3VzZSBpcyBub3Qgb3ZlciB0aGUgcG9wdXBcbiAgICAgICAgICBjb25zdCB4ID0gZS5jbGllbnRYXG4gICAgICAgICAgY29uc3QgeSA9IGUuY2xpZW50WVxuICAgICAgICAgIGNvbnN0IGVsZW1lbnRVbmRlck1vdXNlID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh4LCB5KVxuICAgICAgICAgIGlmICghcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuY29udGFpbnMoZWxlbWVudFVuZGVyTW91c2UpKSB7XG4gICAgICAgICAgICAvLyBNb3VzZSBpcyBub3Qgb3ZlciB0aGUgdGFyZ2V0IGVsZW1lbnQgPT4gbm90IGEgbm9ybWFsIGNsaWNrLCBidXQgcHJvYmFibHkgYSBkcmFnXG4gICAgICAgICAgICBjbG9zZUZsb2F0aW5nVG9vbGJhcigpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbY2xvc2VGbG9hdGluZ1Rvb2xiYXJdLFxuICApXG5cbiAgY29uc3QgbW91c2VVcExpc3RlbmVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWY/LmN1cnJlbnQpIHtcbiAgICAgIGlmIChwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ICE9PSAnMScpIHtcbiAgICAgICAgcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUub3BhY2l0eSA9ICcxJ1xuICAgICAgfVxuICAgICAgaWYgKHBvcHVwQ2hhclN0eWxlc0VkaXRvclJlZi5jdXJyZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgIT09ICdhdXRvJykge1xuICAgICAgICBwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWYuY3VycmVudC5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ2F1dG8nXG4gICAgICB9XG4gICAgfVxuICB9LCBbcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG1vdXNlTW92ZUxpc3RlbmVyKVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBtb3VzZVVwTGlzdGVuZXIpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgbW91c2VNb3ZlTGlzdGVuZXIpXG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgbW91c2VVcExpc3RlbmVyKVxuICAgIH1cbiAgfSwgW3BvcHVwQ2hhclN0eWxlc0VkaXRvclJlZiwgbW91c2VNb3ZlTGlzdGVuZXIsIG1vdXNlVXBMaXN0ZW5lcl0pXG5cbiAgY29uc3QgdXBkYXRlVGV4dEZvcm1hdEZsb2F0aW5nVG9vbGJhciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcblxuICAgIGNvbnN0IHBvcHVwQ2hhclN0eWxlc0VkaXRvckVsZW0gPSBwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWYuY3VycmVudFxuICAgIGNvbnN0IG5hdGl2ZVNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuXG4gICAgaWYgKHBvcHVwQ2hhclN0eWxlc0VkaXRvckVsZW0gPT09IG51bGwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcbiAgICBpZiAoXG4gICAgICBzZWxlY3Rpb24gIT09IG51bGwgJiZcbiAgICAgIG5hdGl2ZVNlbGVjdGlvbiAhPT0gbnVsbCAmJlxuICAgICAgIW5hdGl2ZVNlbGVjdGlvbi5pc0NvbGxhcHNlZCAmJlxuICAgICAgcm9vdEVsZW1lbnQgIT09IG51bGwgJiZcbiAgICAgIHJvb3RFbGVtZW50LmNvbnRhaW5zKG5hdGl2ZVNlbGVjdGlvbi5hbmNob3JOb2RlKVxuICAgICkge1xuICAgICAgY29uc3QgcmFuZ2VSZWN0ID0gZ2V0RE9NUmFuZ2VSZWN0KG5hdGl2ZVNlbGVjdGlvbiwgcm9vdEVsZW1lbnQpXG5cbiAgICAgIHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uKHJhbmdlUmVjdCwgcG9wdXBDaGFyU3R5bGVzRWRpdG9yRWxlbSwgYW5jaG9yRWxlbSwgJ2NlbnRlcicpXG5cbiAgICAgIGlmIChjYXJldFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uKFxuICAgICAgICAgIHJhbmdlUmVjdCwgLy8gc2VsZWN0aW9uIHRvIHBvc2l0aW9uIGFyb3VuZFxuICAgICAgICAgIGNhcmV0UmVmLmN1cnJlbnQsIC8vIHdoYXQgdG8gcG9zaXRpb25cbiAgICAgICAgICBwb3B1cENoYXJTdHlsZXNFZGl0b3JFbGVtLCAvLyBhbmNob3IgZWxlbVxuICAgICAgICAgICdjZW50ZXInLFxuICAgICAgICAgIDEwLFxuICAgICAgICAgIDUsXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkaXRvciwgYW5jaG9yRWxlbV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBzY3JvbGxlckVsZW0gPSBhbmNob3JFbGVtLnBhcmVudEVsZW1lbnRcblxuICAgIGNvbnN0IHVwZGF0ZSA9ICgpID0+IHtcbiAgICAgIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgICAgICB1cGRhdGVUZXh0Rm9ybWF0RmxvYXRpbmdUb29sYmFyKClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZSlcbiAgICBpZiAoc2Nyb2xsZXJFbGVtKSB7XG4gICAgICBzY3JvbGxlckVsZW0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlKVxuICAgICAgaWYgKHNjcm9sbGVyRWxlbSkge1xuICAgICAgICBzY3JvbGxlckVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkaXRvciwgdXBkYXRlVGV4dEZvcm1hdEZsb2F0aW5nVG9vbGJhciwgYW5jaG9yRWxlbV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgIHVwZGF0ZVRleHRGb3JtYXRGbG9hdGluZ1Rvb2xiYXIoKVxuICAgIH0pXG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcigoeyBlZGl0b3JTdGF0ZSB9KSA9PiB7XG4gICAgICAgIGVkaXRvclN0YXRlLnJlYWQoKCkgPT4ge1xuICAgICAgICAgIHVwZGF0ZVRleHRGb3JtYXRGbG9hdGluZ1Rvb2xiYXIoKVxuICAgICAgICB9KVxuICAgICAgfSksXG5cbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFNFTEVDVElPTl9DSEFOR0VfQ09NTUFORCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHVwZGF0ZVRleHRGb3JtYXRGbG9hdGluZ1Rvb2xiYXIoKVxuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVUZXh0Rm9ybWF0RmxvYXRpbmdUb29sYmFyXSlcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxvYXRpbmctc2VsZWN0LXRvb2xiYXItcG9wdXBcIiByZWY9e3BvcHVwQ2hhclN0eWxlc0VkaXRvclJlZn0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmV0XCIgcmVmPXtjYXJldFJlZn0gLz5cbiAgICAgIHtlZGl0b3IuaXNFZGl0YWJsZSgpICYmIChcbiAgICAgICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgICAgIHtlZGl0b3JDb25maWc/LmZlYXR1cmVzICYmXG4gICAgICAgICAgICBlZGl0b3JDb25maWcuZmVhdHVyZXM/LmZsb2F0aW5nU2VsZWN0VG9vbGJhcj8uc2VjdGlvbnMubWFwKChzZWN0aW9uLCBpKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPFRvb2xiYXJTZWN0aW9uXG4gICAgICAgICAgICAgICAgICBhbmNob3JFbGVtPXthbmNob3JFbGVtfVxuICAgICAgICAgICAgICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICAgICAgICAgICAgICBpbmRleD17aX1cbiAgICAgICAgICAgICAgICAgIGtleT17c2VjdGlvbi5rZXl9XG4gICAgICAgICAgICAgICAgICBzZWN0aW9uPXtzZWN0aW9ufVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pfVxuICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5mdW5jdGlvbiB1c2VGbG9hdGluZ1RleHRGb3JtYXRUb29sYmFyKFxuICBlZGl0b3I6IExleGljYWxFZGl0b3IsXG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50LFxuKTogSlNYLkVsZW1lbnQgfCBudWxsIHtcbiAgY29uc3QgW2lzVGV4dCwgc2V0SXNUZXh0XSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IHVwZGF0ZVBvcHVwID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgICAgLy8gU2hvdWxkIG5vdCB0byBwb3AgdXAgdGhlIGZsb2F0aW5nIHRvb2xiYXIgd2hlbiB1c2luZyBJTUUgaW5wdXRcbiAgICAgIGlmIChlZGl0b3IuaXNDb21wb3NpbmcoKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgICAgY29uc3QgbmF0aXZlU2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgICBjb25zdCByb290RWxlbWVudCA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG5cbiAgICAgIGlmIChcbiAgICAgICAgbmF0aXZlU2VsZWN0aW9uICE9PSBudWxsICYmXG4gICAgICAgICghJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSB8fFxuICAgICAgICAgIHJvb3RFbGVtZW50ID09PSBudWxsIHx8XG4gICAgICAgICAgIXJvb3RFbGVtZW50LmNvbnRhaW5zKG5hdGl2ZVNlbGVjdGlvbi5hbmNob3JOb2RlKSlcbiAgICAgICkge1xuICAgICAgICBzZXRJc1RleHQoZmFsc2UpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoISRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChzZWxlY3Rpb24uZ2V0VGV4dENvbnRlbnQoKSAhPT0gJycpIHtcbiAgICAgICAgY29uc3Qgbm9kZXMgPSBzZWxlY3Rpb24uZ2V0Tm9kZXMoKVxuICAgICAgICBsZXQgZm91bmROb2RlV2l0aFRleHQgPSBmYWxzZVxuICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICAgICAgICBpZiAoJGlzVGV4dE5vZGUobm9kZSkpIHtcbiAgICAgICAgICAgIHNldElzVGV4dCh0cnVlKVxuICAgICAgICAgICAgZm91bmROb2RlV2l0aFRleHQgPSB0cnVlXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWZvdW5kTm9kZVdpdGhUZXh0KSB7XG4gICAgICAgICAgc2V0SXNUZXh0KGZhbHNlKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRJc1RleHQoZmFsc2UpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJhd1RleHRDb250ZW50ID0gc2VsZWN0aW9uLmdldFRleHRDb250ZW50KCkucmVwbGFjZSgvXFxuL2csICcnKVxuICAgICAgaWYgKCFzZWxlY3Rpb24uaXNDb2xsYXBzZWQoKSAmJiByYXdUZXh0Q29udGVudCA9PT0gJycpIHtcbiAgICAgICAgc2V0SXNUZXh0KGZhbHNlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9KVxuICB9LCBbZWRpdG9yXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGVjdGlvbmNoYW5nZScsIHVwZGF0ZVBvcHVwKVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB1cGRhdGVQb3B1cClcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uY2hhbmdlJywgdXBkYXRlUG9wdXApXG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdXBkYXRlUG9wdXApXG4gICAgfVxuICB9LCBbdXBkYXRlUG9wdXBdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcigoKSA9PiB7XG4gICAgICAgIHVwZGF0ZVBvcHVwKClcbiAgICAgIH0pLFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyUm9vdExpc3RlbmVyKCgpID0+IHtcbiAgICAgICAgaWYgKGVkaXRvci5nZXRSb290RWxlbWVudCgpID09PSBudWxsKSB7XG4gICAgICAgICAgc2V0SXNUZXh0KGZhbHNlKVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApXG4gIH0sIFtlZGl0b3IsIHVwZGF0ZVBvcHVwXSlcblxuICBpZiAoIWlzVGV4dCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKDxGbG9hdGluZ1NlbGVjdFRvb2xiYXIgYW5jaG9yRWxlbT17YW5jaG9yRWxlbX0gZWRpdG9yPXtlZGl0b3J9IC8+LCBhbmNob3JFbGVtKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gRmxvYXRpbmdTZWxlY3RUb29sYmFyUGx1Z2luKHtcbiAgYW5jaG9yRWxlbSA9IGRvY3VtZW50LmJvZHksXG59OiB7XG4gIGFuY2hvckVsZW0/OiBIVE1MRWxlbWVudFxufSk6IEpTWC5FbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIHJldHVybiB1c2VGbG9hdGluZ1RleHRGb3JtYXRUb29sYmFyKGVkaXRvciwgYW5jaG9yRWxlbSlcbn1cbiJdLCJuYW1lcyI6WyJGbG9hdGluZ1NlbGVjdFRvb2xiYXJQbHVnaW4iLCJCdXR0b25TZWN0aW9uRW50cnkiLCJhbmNob3JFbGVtIiwiZWRpdG9yIiwiZW50cnkiLCJDb21wb25lbnQiLCJ1c2VNZW1vIiwiUmVhY3QiLCJsYXp5IiwidGhlbiIsInJlc29sdmVkQ29tcG9uZW50IiwiZGVmYXVsdCIsIkNoaWxkQ29tcG9uZW50IiwicmVzb2x2ZWRDaGlsZENvbXBvbmVudCIsIlN1c3BlbnNlIiwia2V5IiwiVG9vbGJhckJ1dHRvbiIsIlRvb2xiYXJTZWN0aW9uIiwiaW5kZXgiLCJzZWN0aW9uIiwiZWRpdG9yQ29uZmlnIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsIkljb24iLCJ0eXBlIiwiZW50cmllcyIsImxlbmd0aCIsImRpdiIsImNsYXNzTmFtZSIsIlRvb2xiYXJEcm9wZG93biIsInNlY3Rpb25LZXkiLCJtYXAiLCJmZWF0dXJlcyIsImZsb2F0aW5nU2VsZWN0VG9vbGJhciIsInNlY3Rpb25zIiwiRmxvYXRpbmdTZWxlY3RUb29sYmFyIiwicG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmIiwidXNlUmVmIiwiY2FyZXRSZWYiLCJjbG9zZUZsb2F0aW5nVG9vbGJhciIsInVzZUNhbGxiYWNrIiwiY3VycmVudCIsImlzT3BhY2l0eVplcm8iLCJzdHlsZSIsIm9wYWNpdHkiLCJpc1BvaW50ZXJFdmVudHNOb25lIiwicG9pbnRlckV2ZW50cyIsIm1vdXNlTW92ZUxpc3RlbmVyIiwiZSIsImJ1dHRvbnMiLCJ4IiwiY2xpZW50WCIsInkiLCJjbGllbnRZIiwiZWxlbWVudFVuZGVyTW91c2UiLCJkb2N1bWVudCIsImVsZW1lbnRGcm9tUG9pbnQiLCJjb250YWlucyIsIm1vdXNlVXBMaXN0ZW5lciIsInVzZUVmZmVjdCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwidXBkYXRlVGV4dEZvcm1hdEZsb2F0aW5nVG9vbGJhciIsInNlbGVjdGlvbiIsIiRnZXRTZWxlY3Rpb24iLCJwb3B1cENoYXJTdHlsZXNFZGl0b3JFbGVtIiwibmF0aXZlU2VsZWN0aW9uIiwid2luZG93IiwiZ2V0U2VsZWN0aW9uIiwicm9vdEVsZW1lbnQiLCJnZXRSb290RWxlbWVudCIsImlzQ29sbGFwc2VkIiwiYW5jaG9yTm9kZSIsInJhbmdlUmVjdCIsImdldERPTVJhbmdlUmVjdCIsInNldEZsb2F0aW5nRWxlbVBvc2l0aW9uIiwic2Nyb2xsZXJFbGVtIiwicGFyZW50RWxlbWVudCIsInVwZGF0ZSIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsIm1lcmdlUmVnaXN0ZXIiLCJyZWdpc3RlclVwZGF0ZUxpc3RlbmVyIiwiZWRpdG9yU3RhdGUiLCJyZWdpc3RlckNvbW1hbmQiLCJTRUxFQ1RJT05fQ0hBTkdFX0NPTU1BTkQiLCJDT01NQU5EX1BSSU9SSVRZX0xPVyIsInJlZiIsImlzRWRpdGFibGUiLCJGcmFnbWVudCIsImkiLCJ1c2VGbG9hdGluZ1RleHRGb3JtYXRUb29sYmFyIiwiaXNUZXh0Iiwic2V0SXNUZXh0IiwidXNlU3RhdGUiLCJ1cGRhdGVQb3B1cCIsImlzQ29tcG9zaW5nIiwiJGlzUmFuZ2VTZWxlY3Rpb24iLCJnZXRUZXh0Q29udGVudCIsIm5vZGVzIiwiZ2V0Tm9kZXMiLCJmb3VuZE5vZGVXaXRoVGV4dCIsIm5vZGUiLCIkaXNUZXh0Tm9kZSIsInJhd1RleHRDb250ZW50IiwicmVwbGFjZSIsInJlZ2lzdGVyUm9vdExpc3RlbmVyIiwiY3JlYXRlUG9ydGFsIiwiYm9keSIsInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OzsrQkE0WWdCQTs7O2VBQUFBOzs7d0NBelkwQjt1QkFDWjt5QkFPdkI7K0RBQzJEOzBCQUVyQztzQ0FJVTtpQ0FDUDt5Q0FDUTsrQkFDVjtpQ0FDRTtRQUN6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVQLFNBQVNDLG1CQUFtQixFQUMxQkMsVUFBVSxFQUNWQyxNQUFNLEVBQ05DLEtBQUssRUFLTjtJQUNDLE1BQU1DLFlBQVlDLElBQUFBLGNBQU8sRUFBQztRQUN4QixPQUFPRixPQUFPQywwQkFDVkUsT0FBTUMsSUFBSSxDQUFDLElBQ1RKLE1BQU1DLFNBQVMsR0FBR0ksSUFBSSxDQUFDLENBQUNDLG9CQUF1QixDQUFBO29CQUM3Q0MsU0FBU0Q7Z0JBQ1gsQ0FBQSxNQUVGO0lBQ04sR0FBRztRQUFDTjtLQUFNO0lBRVYsTUFBTVEsaUJBQWlCTixJQUFBQSxjQUFPLEVBQUM7UUFDN0IsT0FBT0YsT0FBT1EsK0JBQ1ZMLE9BQU1DLElBQUksQ0FBQyxJQUNUSixNQUFNUSxjQUFjLEdBQUdILElBQUksQ0FBQyxDQUFDSSx5QkFBNEIsQ0FBQTtvQkFDdkRGLFNBQVNFO2dCQUNYLENBQUEsTUFFRjtJQUNOLEdBQUc7UUFBQ1Q7S0FBTTtJQUVWLElBQUlBLE1BQU1DLFNBQVMsRUFBRTtRQUNuQixPQUNFQSwyQkFDRSxxQkFBQ0UsT0FBTU8sUUFBUSxzQkFDYixxQkFBQ1Q7WUFBVUgsWUFBWUE7WUFBWUMsUUFBUUE7WUFBUUMsT0FBT0E7WUFBT1csS0FBS1gsTUFBTVcsR0FBRztZQUFLO0lBSTVGO0lBRUEscUJBQ0UscUJBQUNDLDRCQUFhO1FBQUNaLE9BQU9BO1FBQU9XLEtBQUtYLE1BQU1XLEdBQUc7T0FDeENILGdDQUNDLHFCQUFDTCxPQUFNTyxRQUFRLHNC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
|
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvRmxvYXRpbmdTZWxlY3RUb29sYmFyL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgTGV4aWNhbEVkaXRvciB9IGZyb20gJ2xleGljYWwnXG5cbmltcG9ydCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsQ29tcG9zZXJDb250ZXh0J1xuaW1wb3J0IHsgbWVyZ2VSZWdpc3RlciB9IGZyb20gJ0BsZXhpY2FsL3V0aWxzJ1xuaW1wb3J0IHtcbiAgJGdldFNlbGVjdGlvbixcbiAgJGlzUmFuZ2VTZWxlY3Rpb24sXG4gICRpc1RleHROb2RlLFxuICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5ELFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nXG5cbmltcG9ydCB0eXBlIHsgRmxvYXRpbmdUb29sYmFyU2VjdGlvbiwgRmxvYXRpbmdUb29sYmFyU2VjdGlvbkVudHJ5IH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgdXNlRWRpdG9yQ29uZmlnQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbmZpZy9FZGl0b3JDb25maWdQcm92aWRlcidcbmltcG9ydCB7IGdldERPTVJhbmdlUmVjdCB9IGZyb20gJy4uLy4uL3V0aWxzL2dldERPTVJhbmdlUmVjdCdcbmltcG9ydCB7IHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2V0RmxvYXRpbmdFbGVtUG9zaXRpb24nXG5pbXBvcnQgeyBUb29sYmFyQnV0dG9uIH0gZnJvbSAnLi9Ub29sYmFyQnV0dG9uJ1xuaW1wb3J0IHsgVG9vbGJhckRyb3Bkb3duIH0gZnJvbSAnLi9Ub29sYmFyRHJvcGRvd24nXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuZnVuY3Rpb24gQnV0dG9uU2VjdGlvbkVudHJ5KHtcbiAgYW5jaG9yRWxlbSxcbiAgZWRpdG9yLFxuICBlbnRyeSxcbn06IHtcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnRcbiAgZWRpdG9yOiBMZXhpY2FsRWRpdG9yXG4gIGVudHJ5OiBGbG9hdGluZ1Rvb2xiYXJTZWN0aW9uRW50cnlcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IENvbXBvbmVudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBlbnRyeT8uQ29tcG9uZW50XG4gICAgICA/IFJlYWN0LmxhenkoKCkgPT5cbiAgICAgICAgICBlbnRyeS5Db21wb25lbnQoKS50aGVuKChyZXNvbHZlZENvbXBvbmVudCkgPT4gKHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IHJlc29sdmVkQ29tcG9uZW50LFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgKVxuICAgICAgOiBudWxsXG4gIH0sIFtlbnRyeV0pXG5cbiAgY29uc3QgQ2hpbGRDb21wb25lbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gZW50cnk/LkNoaWxkQ29tcG9uZW50XG4gICAgICA/IFJlYWN0LmxhenkoKCkgPT5cbiAgICAgICAgICBlbnRyeS5DaGlsZENvbXBvbmVudCgpLnRoZW4oKHJlc29sdmVkQ2hpbGRDb21wb25lbnQpID0+ICh7XG4gICAgICAgICAgICBkZWZhdWx0OiByZXNvbHZlZENoaWxkQ29tcG9uZW50LFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgKVxuICAgICAgOiBudWxsXG4gIH0sIFtlbnRyeV0pXG5cbiAgaWYgKGVudHJ5LkNvbXBvbmVudCkge1xuICAgIHJldHVybiAoXG4gICAgICBDb21wb25lbnQgJiYgKFxuICAgICAgICA8UmVhY3QuU3VzcGVuc2U+XG4gICAgICAgICAgPENvbXBvbmVudCBhbmNob3JFbGVtPXthbmNob3JFbGVtfSBlZGl0b3I9e2VkaXRvcn0gZW50cnk9e2VudHJ5fSBrZXk9e2VudHJ5LmtleX0gLz57JyAnfVxuICAgICAgICA8L1JlYWN0LlN1c3BlbnNlPlxuICAgICAgKVxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFRvb2xiYXJCdXR0b24gZW50cnk9e2VudHJ5fSBrZXk9e2VudHJ5LmtleX0+XG4gICAgICB7Q2hpbGRDb21wb25lbnQgJiYgKFxuICAgICAgICA8UmVhY3QuU3VzcGVuc2U+XG4gICAgICAgICAgPENoaWxkQ29tcG9uZW50IC8+XG4gICAgICAgIDwvUmVhY3QuU3VzcGVuc2U+XG4gICAgICApfVxuICAgIDwvVG9vbGJhckJ1dHRvbj5cbiAgKVxufVxuXG5mdW5jdGlvbiBUb29sYmFyU2VjdGlvbih7XG4gIGFuY2hvckVsZW0sXG4gIGVkaXRvcixcbiAgaW5kZXgsXG4gIHNlY3Rpb24sXG59OiB7XG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxuICBpbmRleDogbnVtYmVyXG4gIHNlY3Rpb246IEZsb2F0aW5nVG9vbGJhclNlY3Rpb25cbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IHsgZWRpdG9yQ29uZmlnIH0gPSB1c2VFZGl0b3JDb25maWdDb250ZXh0KClcblxuICBjb25zdCBJY29uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHNlY3Rpb24/LnR5cGUgPT09ICdkcm9wZG93bicgJiYgc2VjdGlvbi5lbnRyaWVzLmxlbmd0aCAmJiBzZWN0aW9uLkNoaWxkQ29tcG9uZW50XG4gICAgICA/IFJlYWN0LmxhenkoKCkgPT5cbiAgICAgICAgICBzZWN0aW9uLkNoaWxkQ29tcG9uZW50KCkudGhlbigocmVzb2x2ZWRDb21wb25lbnQpID0+ICh7XG4gICAgICAgICAgICBkZWZhdWx0OiByZXNvbHZlZENvbXBvbmVudCxcbiAgICAgICAgICB9KSksXG4gICAgICAgIClcbiAgICAgIDogbnVsbFxuICB9LCBbc2VjdGlvbl0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2BmbG9hdGluZy1zZWxlY3QtdG9vbGJhci1wb3B1cF9fc2VjdGlvbiBmbG9hdGluZy1zZWxlY3QtdG9vbGJhci1wb3B1cF9fc2VjdGlvbi0ke3NlY3Rpb24ua2V5fWB9XG4gICAgICBrZXk9e3NlY3Rpb24ua2V5fVxuICAgID5cbiAgICAgIHtzZWN0aW9uLnR5cGUgPT09ICdkcm9wZG93bicgJiZcbiAgICAgICAgc2VjdGlvbi5lbnRyaWVzLmxlbmd0aCAmJlxuICAgICAgICAoSWNvbiA/IChcbiAgICAgICAgICA8UmVhY3QuU3VzcGVuc2U+XG4gICAgICAgICAgICA8VG9vbGJhckRyb3Bkb3duXG4gICAgICAgICAgICAgIEljb249e0ljb259XG4gICAgICAgICAgICAgIGFuY2hvckVsZW09e2FuY2hvckVsZW19XG4gICAgICAgICAgICAgIGVkaXRvcj17ZWRpdG9yfVxuICAgICAgICAgICAgICBlbnRyaWVzPXtzZWN0aW9uLmVudHJpZXN9XG4gICAgICAgICAgICAgIHNlY3Rpb25LZXk9e3NlY3Rpb24ua2V5fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1JlYWN0LlN1c3BlbnNlPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sYmFyRHJvcGRvd25cbiAgICAgICAgICAgIGFuY2hvckVsZW09e2FuY2hvckVsZW19XG4gICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgIGVudHJpZXM9e3NlY3Rpb24uZW50cmllc31cbiAgICAgICAgICAgIHNlY3Rpb25LZXk9e3NlY3Rpb24ua2V5fVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAge3NlY3Rpb24udHlwZSA9PT0gJ2J1dHRvbnMnICYmXG4gICAgICAgIHNlY3Rpb24uZW50cmllcy5sZW5ndGggJiZcbiAgICAgICAgc2VjdGlvbi5lbnRyaWVzLm1hcCgoZW50cnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEJ1dHRvblNlY3Rpb25FbnRyeVxuICAgICAgICAgICAgICBhbmNob3JFbGVtPXthbmNob3JFbGVtfVxuICAgICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgICAgZW50cnk9e2VudHJ5fVxuICAgICAgICAgICAgICBrZXk9e2VudHJ5LmtleX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgIHtpbmRleCA8IGVkaXRvckNvbmZpZy5mZWF0dXJlcy5mbG9hdGluZ1NlbGVjdFRvb2xiYXI/LnNlY3Rpb25zLmxlbmd0aCAtIDEgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRpdmlkZXJcIiAvPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5mdW5jdGlvbiBGbG9hdGluZ1NlbGVjdFRvb2xiYXIoe1xuICBhbmNob3JFbGVtLFxuICBlZGl0b3IsXG59OiB7XG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxufSk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgY2FyZXRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IHsgZWRpdG9yQ29uZmlnIH0gPSB1c2VFZGl0b3JDb25maWdDb250ZXh0KClcblxuICBjb25zdCBjbG9zZUZsb2F0aW5nVG9vbGJhciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAocG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmPy5jdXJyZW50KSB7XG4gICAgICBjb25zdCBpc09wYWNpdHlaZXJvID0gcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUub3BhY2l0eSA9PT0gJzAnXG4gICAgICBjb25zdCBpc1BvaW50ZXJFdmVudHNOb25lID0gcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUucG9pbnRlckV2ZW50cyA9PT0gJ25vbmUnXG5cbiAgICAgIGlmICghaXNPcGFjaXR5WmVybykge1xuICAgICAgICBwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzAnXG4gICAgICB9XG4gICAgICBpZiAoIWlzUG9pbnRlckV2ZW50c05vbmUpIHtcbiAgICAgICAgcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJ1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3BvcHVwQ2hhclN0eWxlc0VkaXRvclJlZl0pXG5cbiAgY29uc3QgbW91c2VNb3ZlTGlzdGVuZXIgPSB1c2VDYWxsYmFjayhcbiAgICAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKHBvcHVwQ2hhclN0eWxlc0VkaXRvclJlZj8uY3VycmVudCAmJiAoZS5idXR0b25zID09PSAxIHx8IGUuYnV0dG9ucyA9PT0gMykpIHtcbiAgICAgICAgY29uc3QgaXNPcGFjaXR5WmVybyA9IHBvcHVwQ2hhclN0eWxlc0VkaXRvclJlZi5jdXJyZW50LnN0eWxlLm9wYWNpdHkgPT09ICcwJ1xuICAgICAgICBjb25zdCBpc1BvaW50ZXJFdmVudHNOb25lID0gcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUucG9pbnRlckV2ZW50cyA9PT0gJ25vbmUnXG4gICAgICAgIGlmICghaXNPcGFjaXR5WmVybyB8fCAhaXNQb2ludGVyRXZlbnRzTm9uZSkge1xuICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBtb3VzZSBpcyBub3Qgb3ZlciB0aGUgcG9wdXBcbiAgICAgICAgICBjb25zdCB4ID0gZS5jbGllbnRYXG4gICAgICAgICAgY29uc3QgeSA9IGUuY2xpZW50WVxuICAgICAgICAgIGNvbnN0IGVsZW1lbnRVbmRlck1vdXNlID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh4LCB5KVxuICAgICAgICAgIGlmICghcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuY29udGFpbnMoZWxlbWVudFVuZGVyTW91c2UpKSB7XG4gICAgICAgICAgICAvLyBNb3VzZSBpcyBub3Qgb3ZlciB0aGUgdGFyZ2V0IGVsZW1lbnQgPT4gbm90IGEgbm9ybWFsIGNsaWNrLCBidXQgcHJvYmFibHkgYSBkcmFnXG4gICAgICAgICAgICBjbG9zZUZsb2F0aW5nVG9vbGJhcigpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbY2xvc2VGbG9hdGluZ1Rvb2xiYXJdLFxuICApXG5cbiAgY29uc3QgbW91c2VVcExpc3RlbmVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWY/LmN1cnJlbnQpIHtcbiAgICAgIGlmIChwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ICE9PSAnMScpIHtcbiAgICAgICAgcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmLmN1cnJlbnQuc3R5bGUub3BhY2l0eSA9ICcxJ1xuICAgICAgfVxuICAgICAgaWYgKHBvcHVwQ2hhclN0eWxlc0VkaXRvclJlZi5jdXJyZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgIT09ICdhdXRvJykge1xuICAgICAgICBwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWYuY3VycmVudC5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ2F1dG8nXG4gICAgICB9XG4gICAgfVxuICB9LCBbcG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG1vdXNlTW92ZUxpc3RlbmVyKVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBtb3VzZVVwTGlzdGVuZXIpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgbW91c2VNb3ZlTGlzdGVuZXIpXG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgbW91c2VVcExpc3RlbmVyKVxuICAgIH1cbiAgfSwgW3BvcHVwQ2hhclN0eWxlc0VkaXRvclJlZiwgbW91c2VNb3ZlTGlzdGVuZXIsIG1vdXNlVXBMaXN0ZW5lcl0pXG5cbiAgY29uc3QgdXBkYXRlVGV4dEZvcm1hdEZsb2F0aW5nVG9vbGJhciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcblxuICAgIGNvbnN0IHBvcHVwQ2hhclN0eWxlc0VkaXRvckVsZW0gPSBwb3B1cENoYXJTdHlsZXNFZGl0b3JSZWYuY3VycmVudFxuICAgIGNvbnN0IG5hdGl2ZVNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuXG4gICAgaWYgKHBvcHVwQ2hhclN0eWxlc0VkaXRvckVsZW0gPT09IG51bGwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcbiAgICBpZiAoXG4gICAgICBzZWxlY3Rpb24gIT09IG51bGwgJiZcbiAgICAgIG5hdGl2ZVNlbGVjdGlvbiAhPT0gbnVsbCAmJlxuICAgICAgIW5hdGl2ZVNlbGVjdGlvbi5pc0NvbGxhcHNlZCAmJlxuICAgICAgcm9vdEVsZW1lbnQgIT09IG51bGwgJiZcbiAgICAgIHJvb3RFbGVtZW50LmNvbnRhaW5zKG5hdGl2ZVNlbGVjdGlvbi5hbmNob3JOb2RlKVxuICAgICkge1xuICAgICAgY29uc3QgcmFuZ2VSZWN0ID0gZ2V0RE9NUmFuZ2VSZWN0KG5hdGl2ZVNlbGVjdGlvbiwgcm9vdEVsZW1lbnQpXG5cbiAgICAgIHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uKHJhbmdlUmVjdCwgcG9wdXBDaGFyU3R5bGVzRWRpdG9yRWxlbSwgYW5jaG9yRWxlbSwgJ2NlbnRlcicpXG5cbiAgICAgIGlmIChjYXJldFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uKFxuICAgICAgICAgIHJhbmdlUmVjdCwgLy8gc2VsZWN0aW9uIHRvIHBvc2l0aW9uIGFyb3VuZFxuICAgICAgICAgIGNhcmV0UmVmLmN1cnJlbnQsIC8vIHdoYXQgdG8gcG9zaXRpb25cbiAgICAgICAgICBwb3B1cENoYXJTdHlsZXNFZGl0b3JFbGVtLCAvLyBhbmNob3IgZWxlbVxuICAgICAgICAgICdjZW50ZXInLFxuICAgICAgICAgIDEwLFxuICAgICAgICAgIDUsXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkaXRvciwgYW5jaG9yRWxlbV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBzY3JvbGxlckVsZW0gPSBhbmNob3JFbGVtLnBhcmVudEVsZW1lbnRcblxuICAgIGNvbnN0IHVwZGF0ZSA9ICgpID0+IHtcbiAgICAgIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgICAgICB1cGRhdGVUZXh0Rm9ybWF0RmxvYXRpbmdUb29sYmFyKClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZSlcbiAgICBpZiAoc2Nyb2xsZXJFbGVtKSB7XG4gICAgICBzY3JvbGxlckVsZW0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlKVxuICAgICAgaWYgKHNjcm9sbGVyRWxlbSkge1xuICAgICAgICBzY3JvbGxlckVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkaXRvciwgdXBkYXRlVGV4dEZvcm1hdEZsb2F0aW5nVG9vbGJhciwgYW5jaG9yRWxlbV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgIHVwZGF0ZVRleHRGb3JtYXRGbG9hdGluZ1Rvb2xiYXIoKVxuICAgIH0pXG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcigoeyBlZGl0b3JTdGF0ZSB9KSA9PiB7XG4gICAgICAgIGVkaXRvclN0YXRlLnJlYWQoKCkgPT4ge1xuICAgICAgICAgIHVwZGF0ZVRleHRGb3JtYXRGbG9hdGluZ1Rvb2xiYXIoKVxuICAgICAgICB9KVxuICAgICAgfSksXG5cbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFNFTEVDVElPTl9DSEFOR0VfQ09NTUFORCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHVwZGF0ZVRleHRGb3JtYXRGbG9hdGluZ1Rvb2xiYXIoKVxuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVUZXh0Rm9ybWF0RmxvYXRpbmdUb29sYmFyXSlcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxvYXRpbmctc2VsZWN0LXRvb2xiYXItcG9wdXBcIiByZWY9e3BvcHVwQ2hhclN0eWxlc0VkaXRvclJlZn0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmV0XCIgcmVmPXtjYXJldFJlZn0gLz5cbiAgICAgIHtlZGl0b3IuaXNFZGl0YWJsZSgpICYmIChcbiAgICAgICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgICAgIHtlZGl0b3JDb25maWc/LmZlYXR1cmVzICYmXG4gICAgICAgICAgICBlZGl0b3JDb25maWcuZmVhdHVyZXM/LmZsb2F0aW5nU2VsZWN0VG9vbGJhcj8uc2VjdGlvbnMubWFwKChzZWN0aW9uLCBpKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPFRvb2xiYXJTZWN0aW9uXG4gICAgICAgICAgICAgICAgICBhbmNob3JFbGVtPXthbmNob3JFbGVtfVxuICAgICAgICAgICAgICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICAgICAgICAgICAgICBpbmRleD17aX1cbiAgICAgICAgICAgICAgICAgIGtleT17c2VjdGlvbi5rZXl9XG4gICAgICAgICAgICAgICAgICBzZWN0aW9uPXtzZWN0aW9ufVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pfVxuICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5mdW5jdGlvbiB1c2VGbG9hdGluZ1RleHRGb3JtYXRUb29sYmFyKFxuICBlZGl0b3I6IExleGljYWxFZGl0b3IsXG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50LFxuKTogSlNYLkVsZW1lbnQgfCBudWxsIHtcbiAgY29uc3QgW2lzVGV4dCwgc2V0SXNUZXh0XSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IHVwZGF0ZVBvcHVwID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgICAgLy8gU2hvdWxkIG5vdCB0byBwb3AgdXAgdGhlIGZsb2F0aW5nIHRvb2xiYXIgd2hlbiB1c2luZyBJTUUgaW5wdXRcbiAgICAgIGlmIChlZGl0b3IuaXNDb21wb3NpbmcoKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgICAgY29uc3QgbmF0aXZlU2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgICBjb25zdCByb290RWxlbWVudCA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG5cbiAgICAgIGlmIChcbiAgICAgICAgbmF0aXZlU2VsZWN0aW9uICE9PSBudWxsICYmXG4gICAgICAgICghJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSB8fFxuICAgICAgICAgIHJvb3RFbGVtZW50ID09PSBudWxsIHx8XG4gICAgICAgICAgIXJvb3RFbGVtZW50LmNvbnRhaW5zKG5hdGl2ZVNlbGVjdGlvbi5hbmNob3JOb2RlKSlcbiAgICAgICkge1xuICAgICAgICBzZXRJc1RleHQoZmFsc2UpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoISRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChzZWxlY3Rpb24uZ2V0VGV4dENvbnRlbnQoKSAhPT0gJycpIHtcbiAgICAgICAgY29uc3Qgbm9kZXMgPSBzZWxlY3Rpb24uZ2V0Tm9kZXMoKVxuICAgICAgICBsZXQgZm91bmROb2RlV2l0aFRleHQgPSBmYWxzZVxuICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICAgICAgICBpZiAoJGlzVGV4dE5vZGUobm9kZSkpIHtcbiAgICAgICAgICAgIHNldElzVGV4dCh0cnVlKVxuICAgICAgICAgICAgZm91bmROb2RlV2l0aFRleHQgPSB0cnVlXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWZvdW5kTm9kZVdpdGhUZXh0KSB7XG4gICAgICAgICAgc2V0SXNUZXh0KGZhbHNlKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRJc1RleHQoZmFsc2UpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJhd1RleHRDb250ZW50ID0gc2VsZWN0aW9uLmdldFRleHRDb250ZW50KCkucmVwbGFjZSgvXFxuL2csICcnKVxuICAgICAgaWYgKCFzZWxlY3Rpb24uaXNDb2xsYXBzZWQoKSAmJiByYXdUZXh0Q29udGVudCA9PT0gJycpIHtcbiAgICAgICAgc2V0SXNUZXh0KGZhbHNlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9KVxuICB9LCBbZWRpdG9yXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGVjdGlvbmNoYW5nZScsIHVwZGF0ZVBvcHVwKVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB1cGRhdGVQb3B1cClcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uY2hhbmdlJywgdXBkYXRlUG9wdXApXG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdXBkYXRlUG9wdXApXG4gICAgfVxuICB9LCBbdXBkYXRlUG9wdXBdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcigoKSA9PiB7XG4gICAgICAgIHVwZGF0ZVBvcHVwKClcbiAgICAgIH0pLFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyUm9vdExpc3RlbmVyKCgpID0+IHtcbiAgICAgICAgaWYgKGVkaXRvci5nZXRSb290RWxlbWVudCgpID09PSBudWxsKSB7XG4gICAgICAgICAgc2V0SXNUZXh0KGZhbHNlKVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApXG4gIH0sIFtlZGl0b3IsIHVwZGF0ZVBvcHVwXSlcblxuICBpZiAoIWlzVGV4dCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKDxGbG9hdGluZ1NlbGVjdFRvb2xiYXIgYW5jaG9yRWxlbT17YW5jaG9yRWxlbX0gZWRpdG9yPXtlZGl0b3J9IC8+LCBhbmNob3JFbGVtKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gRmxvYXRpbmdTZWxlY3RUb29sYmFyUGx1Z2luKHtcbiAgYW5jaG9yRWxlbSA9IGRvY3VtZW50LmJvZHksXG59OiB7XG4gIGFuY2hvckVsZW0/OiBIVE1MRWxlbWVudFxufSk6IEpTWC5FbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIHJldHVybiB1c2VGbG9hdGluZ1RleHRGb3JtYXRUb29sYmFyKGVkaXRvciwgYW5jaG9yRWxlbSlcbn1cbiJdLCJuYW1lcyI6WyJGbG9hdGluZ1NlbGVjdFRvb2xiYXJQbHVnaW4iLCJCdXR0b25TZWN0aW9uRW50cnkiLCJhbmNob3JFbGVtIiwiZWRpdG9yIiwiZW50cnkiLCJDb21wb25lbnQiLCJ1c2VNZW1vIiwiUmVhY3QiLCJsYXp5IiwidGhlbiIsInJlc29sdmVkQ29tcG9uZW50IiwiZGVmYXVsdCIsIkNoaWxkQ29tcG9uZW50IiwicmVzb2x2ZWRDaGlsZENvbXBvbmVudCIsIlN1c3BlbnNlIiwia2V5IiwiVG9vbGJhckJ1dHRvbiIsIlRvb2xiYXJTZWN0aW9uIiwiaW5kZXgiLCJzZWN0aW9uIiwiZWRpdG9yQ29uZmlnIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsIkljb24iLCJ0eXBlIiwiZW50cmllcyIsImxlbmd0aCIsImRpdiIsImNsYXNzTmFtZSIsIlRvb2xiYXJEcm9wZG93biIsInNlY3Rpb25LZXkiLCJtYXAiLCJmZWF0dXJlcyIsImZsb2F0aW5nU2VsZWN0VG9vbGJhciIsInNlY3Rpb25zIiwiRmxvYXRpbmdTZWxlY3RUb29sYmFyIiwicG9wdXBDaGFyU3R5bGVzRWRpdG9yUmVmIiwidXNlUmVmIiwiY2FyZXRSZWYiLCJjbG9zZUZsb2F0aW5nVG9vbGJhciIsInVzZUNhbGxiYWNrIiwiY3VycmVudCIsImlzT3BhY2l0eVplcm8iLCJzdHlsZSIsIm9wYWNpdHkiLCJpc1BvaW50ZXJFdmVudHNOb25lIiwicG9pbnRlckV2ZW50cyIsIm1vdXNlTW92ZUxpc3RlbmVyIiwiZSIsImJ1dHRvbnMiLCJ4IiwiY2xpZW50WCIsInkiLCJjbGllbnRZIiwiZWxlbWVudFVuZGVyTW91c2UiLCJkb2N1bWVudCIsImVsZW1lbnRGcm9tUG9pbnQiLCJjb250YWlucyIsIm1vdXNlVXBMaXN0ZW5lciIsInVzZUVmZmVjdCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwidXBkYXRlVGV4dEZvcm1hdEZsb2F0aW5nVG9vbGJhciIsInNlbGVjdGlvbiIsIiRnZXRTZWxlY3Rpb24iLCJwb3B1cENoYXJTdHlsZXNFZGl0b3JFbGVtIiwibmF0aXZlU2VsZWN0aW9uIiwid2luZG93IiwiZ2V0U2VsZWN0aW9uIiwicm9vdEVsZW1lbnQiLCJnZXRSb290RWxlbWVudCIsImlzQ29sbGFwc2VkIiwiYW5jaG9yTm9kZSIsInJhbmdlUmVjdCIsImdldERPTVJhbmdlUmVjdCIsInNldEZsb2F0aW5nRWxlbVBvc2l0aW9uIiwic2Nyb2xsZXJFbGVtIiwicGFyZW50RWxlbWVudCIsInVwZGF0ZSIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsIm1lcmdlUmVnaXN0ZXIiLCJyZWdpc3RlclVwZGF0ZUxpc3RlbmVyIiwiZWRpdG9yU3RhdGUiLCJyZWdpc3RlckNvbW1hbmQiLCJTRUxFQ1RJT05fQ0hBTkdFX0NPTU1BTkQiLCJDT01NQU5EX1BSSU9SSVRZX0xPVyIsInJlZiIsImlzRWRpdGFibGUiLCJGcmFnbWVudCIsImkiLCJ1c2VGbG9hdGluZ1RleHRGb3JtYXRUb29sYmFyIiwiaXNUZXh0Iiwic2V0SXNUZXh0IiwidXNlU3RhdGUiLCJ1cGRhdGVQb3B1cCIsImlzQ29tcG9zaW5nIiwiJGlzUmFuZ2VTZWxlY3Rpb24iLCJnZXRUZXh0Q29udGVudCIsIm5vZGVzIiwiZ2V0Tm9kZXMiLCJmb3VuZE5vZGVXaXRoVGV4dCIsIm5vZGUiLCIkaXNUZXh0Tm9kZSIsInJhd1RleHRDb250ZW50IiwicmVwbGFjZSIsInJlZ2lzdGVyUm9vdExpc3RlbmVyIiwiY3JlYXRlUG9ydGFsIiwiYm9keSIsInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OzsrQkE0WWdCQTs7O2VBQUFBOzs7d0NBelkwQjt1QkFDWjt5QkFPdkI7K0RBQzJEOzBCQUVyQztzQ0FJVTtpQ0FDUDt5Q0FDUTsrQkFDVjtpQ0FDRTtRQUN6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRVAsU0FBU0MsbUJBQW1CLEVBQzFCQyxVQUFVLEVBQ1ZDLE1BQU0sRUFDTkMsS0FBSyxFQUtOO0lBQ0MsTUFBTUMsWUFBWUMsSUFBQUEsY0FBTyxFQUFDO1FBQ3hCLE9BQU9GLE9BQU9DLDBCQUNWRSxPQUFNQyxJQUFJLENBQUMsSUFDVEosTUFBTUMsU0FBUyxHQUFHSSxJQUFJLENBQUMsQ0FBQ0Msb0JBQXVCLENBQUE7b0JBQzdDQyxTQUFTRDtnQkFDWCxDQUFBLE1BRUY7SUFDTixHQUFHO1FBQUNOO0tBQU07SUFFVixNQUFNUSxpQkFBaUJOLElBQUFBLGNBQU8sRUFBQztRQUM3QixPQUFPRixPQUFPUSwrQkFDVkwsT0FBTUMsSUFBSSxDQUFDLElBQ1RKLE1BQU1RLGNBQWMsR0FBR0gsSUFBSSxDQUFDLENBQUNJLHlCQUE0QixDQUFBO29CQUN2REYsU0FBU0U7Z0JBQ1gsQ0FBQSxNQUVGO0lBQ04sR0FBRztRQUFDVDtLQUFNO0lBRVYsSUFBSUEsTUFBTUMsU0FBUyxFQUFFO1FBQ25CLE9BQ0VBLDJCQUNFLHFCQUFDRSxPQUFNTyxRQUFRLHNCQUNiLHFCQUFDVDtZQUFVSCxZQUFZQTtZQUFZQyxRQUFRQTtZQUFRQyxPQUFPQTtZQUFPVyxLQUFLWCxNQUFNVyxHQUFHO1lBQUs7SUFJNUY7SUFFQSxxQkFDRSxxQkFBQ0MsNEJBQWE7UUFBQ1osT0FBT0E7UUFBT1csS0FBS1gsTUFBTVcsR0FBRztPQUN4Q0gsZ0NBQ0MscUJBQUNMLE9BQU1PLFFBQVEs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
|
|
@@ -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)) {
|
|
@@ -58,4 +60,4 @@ const MarkdownShortcutPlugin = ()=>{
|
|
|
58
60
|
});
|
|
59
61
|
};
|
|
60
62
|
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvTWFya2Rvd25TaG9ydGN1dC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgeyBNYXJrZG93blNob3J0Y3V0UGx1Z2luIGFzIExleGljYWxNYXJrZG93blNob3J0Y3V0UGx1Z2luIH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbE1hcmtkb3duU2hvcnRjdXRQbHVnaW4nXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlRWRpdG9yQ29uZmlnQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbmZpZy9FZGl0b3JDb25maWdQcm92aWRlcidcblxuZXhwb3J0IGNvbnN0IE1hcmtkb3duU2hvcnRjdXRQbHVnaW46IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCB7IGVkaXRvckNvbmZpZyB9ID0gdXNlRWRpdG9yQ29uZmlnQ29udGV4dCgpXG5cbiAgcmV0dXJuIDxMZXhpY2FsTWFya2Rvd25TaG9ydGN1dFBsdWdpbiB0cmFuc2Zvcm1lcnM9e2VkaXRvckNvbmZpZy5mZWF0dXJlcy5tYXJrZG93blRyYW5zZm9ybWVyc30gLz5cbn1cbiJdLCJuYW1lcyI6WyJNYXJrZG93blNob3J0Y3V0UGx1Z2luIiwiZWRpdG9yQ29uZmlnIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsIkxleGljYWxNYXJrZG93blNob3J0Y3V0UGx1Z2luIiwidHJhbnNmb3JtZXJzIiwiZmVhdHVyZXMiLCJtYXJrZG93blRyYW5zZm9ybWVycyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OytCQU1hQTs7O2VBQUFBOzs7K0NBTDJEOytEQUNqRDtzQ0FFZ0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVoQyxNQUFNQSx5QkFBbUM7SUFDOUMsTUFBTSxFQUFFQyxZQUFZLEVBQUUsR0FBR0MsSUFBQUEsNENBQXNCO0lBRS9DLHFCQUFPLHFCQUFDQyxxREFBNkI7UUFBQ0MsY0FBY0gsYUFBYUksUUFBUSxDQUFDQyxvQkFBb0I7O0FBQ2hHIn0=
|
|
@@ -10,18 +10,18 @@ function _export(target, all) {
|
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
_export(exports, {
|
|
13
|
+
LexicalMenu: function() {
|
|
14
|
+
return LexicalMenu;
|
|
15
|
+
},
|
|
16
|
+
SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND: function() {
|
|
17
|
+
return SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND;
|
|
18
|
+
},
|
|
13
19
|
getScrollParent: function() {
|
|
14
20
|
return getScrollParent;
|
|
15
21
|
},
|
|
16
22
|
useDynamicPositioning: function() {
|
|
17
23
|
return useDynamicPositioning;
|
|
18
24
|
},
|
|
19
|
-
SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND: function() {
|
|
20
|
-
return SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND;
|
|
21
|
-
},
|
|
22
|
-
LexicalMenu: function() {
|
|
23
|
-
return LexicalMenu;
|
|
24
|
-
},
|
|
25
25
|
useMenuAnchorRef: function() {
|
|
26
26
|
return useMenuAnchorRef;
|
|
27
27
|
}
|
|
@@ -423,4 +423,4 @@ function useMenuAnchorRef(anchorElem, resolution, setResolution, className) {
|
|
|
423
423
|
return anchorElementRef;
|
|
424
424
|
}
|
|
425
425
|
|
|
426
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL0xleGljYWxNZW51LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgTGV4aWNhbENvbW1hbmQsIExleGljYWxFZGl0b3IsIFRleHROb2RlIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCwgUmVhY3RQb3J0YWwgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQnXG5pbXBvcnQgeyBtZXJnZVJlZ2lzdGVyIH0gZnJvbSAnQGxleGljYWwvdXRpbHMnXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gIEtFWV9BUlJPV19ET1dOX0NPTU1BTkQsXG4gIEtFWV9BUlJPV19VUF9DT01NQU5ELFxuICBLRVlfRU5URVJfQ09NTUFORCxcbiAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICBLRVlfVEFCX0NPTU1BTkQsXG4gIGNyZWF0ZUNvbW1hbmQsXG59IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBNZW51VGV4dE1hdGNoIH0gZnJvbSAnLi4vdXNlTWVudVRyaWdnZXJNYXRjaCdcbmltcG9ydCB0eXBlIHsgU2xhc2hNZW51T3B0aW9uIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB0eXBlIHsgU2xhc2hNZW51R3JvdXAgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgdHlwZSBNZW51UmVzb2x1dGlvbiA9IHtcbiAgZ2V0UmVjdDogKCkgPT4gRE9NUmVjdFxuICBtYXRjaD86IE1lbnVUZXh0TWF0Y2hcbn1cblxuY29uc3QgYmFzZUNsYXNzID0gJ3NsYXNoLW1lbnUtcG9wdXAnXG5cbmV4cG9ydCB0eXBlIE1lbnVSZW5kZXJGbiA9IChcbiAgYW5jaG9yRWxlbWVudFJlZjogTXV0YWJsZVJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+LFxuICBpdGVtUHJvcHM6IHtcbiAgICBncm91cHNXaXRoT3B0aW9uczogQXJyYXk8U2xhc2hNZW51R3JvdXA+XG4gICAgc2VsZWN0T3B0aW9uQW5kQ2xlYW5VcDogKHNlbGVjdGVkT3B0aW9uOiBTbGFzaE1lbnVPcHRpb24pID0+IHZvaWRcbiAgICBzZWxlY3RlZE9wdGlvbktleTogbnVsbCB8IHN0cmluZ1xuICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5OiAob3B0aW9uS2V5OiBzdHJpbmcpID0+IHZvaWRcbiAgfSxcbiAgbWF0Y2hpbmdTdHJpbmc6IG51bGwgfCBzdHJpbmcsXG4pID0+IEpTWC5FbGVtZW50IHwgUmVhY3RQb3J0YWwgfCBudWxsXG5cbmNvbnN0IHNjcm9sbEludG9WaWV3SWZOZWVkZWQgPSAodGFyZ2V0OiBIVE1MRWxlbWVudCkgPT4ge1xuICBjb25zdCB0eXBlYWhlYWRDb250YWluZXJOb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NsYXNoLW1lbnUnKVxuICBpZiAoIXR5cGVhaGVhZENvbnRhaW5lck5vZGUpIHJldHVyblxuXG4gIGNvbnN0IHR5cGVhaGVhZFJlY3QgPSB0eXBlYWhlYWRDb250YWluZXJOb2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG5cbiAgaWYgKHR5cGVhaGVhZFJlY3QudG9wICsgdHlwZWFoZWFkUmVjdC5oZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICB0eXBlYWhlYWRDb250YWluZXJOb2RlLnNjcm9sbEludG9WaWV3KHtcbiAgICAgIGJsb2NrOiAnY2VudGVyJyxcbiAgICB9KVxuICB9XG5cbiAgaWYgKHR5cGVhaGVhZFJlY3QudG9wIDwgMCkge1xuICAgIHR5cGVhaGVhZENvbnRhaW5lck5vZGUuc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgYmxvY2s6ICdjZW50ZXInLFxuICAgIH0pXG4gIH1cblxuICB0YXJnZXQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pXG59XG5cbi8qKlxuICogV2FsayBiYWNrd2FyZHMgYWxvbmcgdXNlciBpbnB1dCBhbmQgZm9yd2FyZCB0aHJvdWdoIGVudGl0eSB0aXRsZSB0byB0cnlcbiAqIGFuZCByZXBsYWNlIG1vcmUgb2YgdGhlIHVzZXIncyB0ZXh0IHdpdGggZW50aXR5LlxuICovXG5mdW5jdGlvbiBnZXRGdWxsTWF0Y2hPZmZzZXQoZG9jdW1lbnRUZXh0OiBzdHJpbmcsIGVudHJ5VGV4dDogc3RyaW5nLCBvZmZzZXQ6IG51bWJlcik6IG51bWJlciB7XG4gIGxldCB0cmlnZ2VyT2Zmc2V0ID0gb2Zmc2V0XG4gIGZvciAobGV0IGkgPSB0cmlnZ2VyT2Zmc2V0OyBpIDw9IGVudHJ5VGV4dC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChkb2N1bWVudFRleHQuc3Vic3RyKC1pKSA9PT0gZW50cnlUZXh0LnN1YnN0cigwLCBpKSkge1xuICAgICAgdHJpZ2dlck9mZnNldCA9IGlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRyaWdnZXJPZmZzZXRcbn1cblxuLyoqXG4gKiBTcGxpdCBMZXhpY2FsIFRleHROb2RlIGFuZCByZXR1cm4gYSBuZXcgVGV4dE5vZGUgb25seSBjb250YWluaW5nIG1hdGNoZWQgdGV4dC5cbiAqIENvbW1vbiB1c2UgY2FzZXMgaW5jbHVkZTogcmVtb3ZpbmcgdGhlIG5vZGUsIHJlcGxhY2luZyB3aXRoIGEgbmV3IG5vZGUuXG4gKi9cbmZ1bmN0aW9uICRzcGxpdE5vZGVDb250YWluaW5nUXVlcnkobWF0Y2g6IE1lbnVUZXh0TWF0Y2gpOiBUZXh0Tm9kZSB8IG51bGwge1xuICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgaWYgKCEkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pIHx8ICFzZWxlY3Rpb24uaXNDb2xsYXBzZWQoKSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yID0gc2VsZWN0aW9uLmFuY2hvclxuICBpZiAoYW5jaG9yLnR5cGUgIT09ICd0ZXh0Jykge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yTm9kZSA9IGFuY2hvci5nZXROb2RlKClcbiAgaWYgKCFhbmNob3JOb2RlLmlzU2ltcGxlVGV4dCgpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBzZWxlY3Rpb25PZmZzZXQgPSBhbmNob3Iub2Zmc2V0XG4gIGNvbnN0IHRleHRDb250ZW50ID0gYW5jaG9yTm9kZS5nZXRUZXh0Q29udGVudCgpLnNsaWNlKDAsIHNlbGVjdGlvbk9mZnNldClcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2Rlc3RydWN0dXJpbmctYXNzaWdubWVudFxuICBjb25zdCBjaGFyYWN0ZXJPZmZzZXQgPSBtYXRjaC5yZXBsYWNlYWJsZVN0cmluZy5sZW5ndGhcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2Rlc3RydWN0dXJpbmctYXNzaWdubWVudFxuICBjb25zdCBxdWVyeU9mZnNldCA9IGdldEZ1bGxNYXRjaE9mZnNldCh0ZXh0Q29udGVudCwgbWF0Y2gubWF0Y2hpbmdTdHJpbmcsIGNoYXJhY3Rlck9mZnNldClcbiAgY29uc3Qgc3RhcnRPZmZzZXQgPSBzZWxlY3Rpb25PZmZzZXQgLSBxdWVyeU9mZnNldFxuICBpZiAoc3RhcnRPZmZzZXQgPCAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBsZXQgbmV3Tm9kZVxuICBpZiAoc3RhcnRPZmZzZXQgPT09IDApIHtcbiAgICA7W25ld05vZGVdID0gYW5jaG9yTm9kZS5zcGxpdFRleHQoc2VsZWN0aW9uT2Zmc2V0KVxuICB9IGVsc2Uge1xuICAgIDtbLCBuZXdOb2RlXSA9IGFuY2hvck5vZGUuc3BsaXRUZXh0KHN0YXJ0T2Zmc2V0LCBzZWxlY3Rpb25PZmZzZXQpXG4gIH1cblxuICByZXR1cm4gbmV3Tm9kZVxufVxuXG4vLyBHb3QgZnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDI1NDM5MDgvMjAxMzU4MFxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcm9sbFBhcmVudChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGluY2x1ZGVIaWRkZW46IGJvb2xlYW4sXG4pOiBIVE1MQm9keUVsZW1lbnQgfCBIVE1MRWxlbWVudCB7XG4gIGxldCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudClcbiAgY29uc3QgZXhjbHVkZVN0YXRpY1BhcmVudCA9IHN0eWxlLnBvc2l0aW9uID09PSAnYWJzb2x1dGUnXG4gIGNvbnN0IG92ZXJmbG93UmVnZXggPSBpbmNsdWRlSGlkZGVuID8gLyhhdXRvfHNjcm9sbHxoaWRkZW4pLyA6IC8oYXV0b3xzY3JvbGwpL1xuICBpZiAoc3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICB9XG4gIGZvciAobGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudDsgKHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50KTsgKSB7XG4gICAgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHBhcmVudClcbiAgICBpZiAoZXhjbHVkZVN0YXRpY1BhcmVudCAmJiBzdHlsZS5wb3NpdGlvbiA9PT0gJ3N0YXRpYycpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChvdmVyZmxvd1JlZ2V4LnRlc3Qoc3R5bGUub3ZlcmZsb3cgKyBzdHlsZS5vdmVyZmxvd1kgKyBzdHlsZS5vdmVyZmxvd1gpKSB7XG4gICAgICByZXR1cm4gcGFyZW50XG4gICAgfVxuICB9XG4gIHJldHVybiBkb2N1bWVudC5ib2R5XG59XG5cbmZ1bmN0aW9uIGlzVHJpZ2dlclZpc2libGVJbk5lYXJlc3RTY3JvbGxDb250YWluZXIoXG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICBjb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudCxcbik6IGJvb2xlYW4ge1xuICBjb25zdCB0UmVjdCA9IHRhcmdldEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgY29uc3QgY1JlY3QgPSBjb250YWluZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIHJldHVybiB0UmVjdC50b3AgPiBjUmVjdC50b3AgJiYgdFJlY3QudG9wIDwgY1JlY3QuYm90dG9tXG59XG5cbi8vIFJlcG9zaXRpb24gdGhlIG1lbnUgb24gc2Nyb2xsLCB3aW5kb3cgcmVzaXplLCBhbmQgZWxlbWVudCByZXNpemUuXG5leHBvcnQgZnVuY3Rpb24gdXNlRHluYW1pY1Bvc2l0aW9uaW5nKFxuICByZXNvbHV0aW9uOiBNZW51UmVzb2x1dGlvbiB8IG51bGwsXG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgb25SZXBvc2l0aW9uOiAoKSA9PiB2b2lkLFxuICBvblZpc2liaWxpdHlDaGFuZ2U/OiAoaXNJblZpZXc6IGJvb2xlYW4pID0+IHZvaWQsXG4pIHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGFyZ2V0RWxlbWVudCAhPSBudWxsICYmIHJlc29sdXRpb24gIT0gbnVsbCkge1xuICAgICAgY29uc3Qgcm9vdEVsZW1lbnQgPSBlZGl0b3IuZ2V0Um9vdEVsZW1lbnQoKVxuICAgICAgY29uc3Qgcm9vdFNjcm9sbFBhcmVudCA9XG4gICAgICAgIHJvb3RFbGVtZW50ICE9IG51bGwgPyBnZXRTY3JvbGxQYXJlbnQocm9vdEVsZW1lbnQsIGZhbHNlKSA6IGRvY3VtZW50LmJvZHlcbiAgICAgIGxldCB0aWNraW5nID0gZmFsc2VcbiAgICAgIGxldCBwcmV2aW91c0lzSW5WaWV3ID0gaXNUcmlnZ2VyVmlzaWJsZUluTmVhcmVzdFNjcm9sbENvbnRhaW5lcihcbiAgICAgICAgdGFyZ2V0RWxlbWVudCxcbiAgICAgICAgcm9vdFNjcm9sbFBhcmVudCxcbiAgICAgIClcbiAgICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCF0aWNraW5nKSB7XG4gICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBvblJlcG9zaXRpb24oKVxuICAgICAgICAgICAgdGlja2luZyA9IGZhbHNlXG4gICAgICAgICAgfSlcbiAgICAgICAgICB0aWNraW5nID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzSW5WaWV3ID0gaXNUcmlnZ2VyVmlzaWJsZUluTmVhcmVzdFNjcm9sbENvbnRhaW5lcih0YXJnZXRFbGVtZW50LCByb290U2Nyb2xsUGFyZW50KVxuICAgICAgICBpZiAoaXNJblZpZXcgIT09IHByZXZpb3VzSXNJblZpZXcpIHtcbiAgICAgICAgICBwcmV2aW91c0lzSW5WaWV3ID0gaXNJblZpZXdcbiAgICAgICAgICBpZiAob25WaXNpYmlsaXR5Q2hhbmdlICE9IG51bGwpIHtcbiAgICAgICAgICAgIG9uVmlzaWJpbGl0eUNoYW5nZShpc0luVmlldylcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKG9uUmVwb3NpdGlvbilcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvblJlcG9zaXRpb24pXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwsIHtcbiAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKHRhcmdldEVsZW1lbnQpXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICByZXNpemVPYnNlcnZlci51bm9ic2VydmUodGFyZ2V0RWxlbWVudClcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uUmVwb3NpdGlvbilcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsLCB0cnVlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW3RhcmdldEVsZW1lbnQsIGVkaXRvciwgb25WaXNpYmlsaXR5Q2hhbmdlLCBvblJlcG9zaXRpb24sIHJlc29sdXRpb25dKVxufVxuXG5leHBvcnQgY29uc3QgU0NST0xMX1RZUEVBSEVBRF9PUFRJT05fSU5UT19WSUVXX0NPTU1BTkQ6IExleGljYWxDb21tYW5kPHtcbiAgaW5kZXg6IG51bWJlclxuICBvcHRpb246IFNsYXNoTWVudU9wdGlvblxufT4gPSBjcmVhdGVDb21tYW5kKCdTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCcpXG5cbmV4cG9ydCBmdW5jdGlvbiBMZXhpY2FsTWVudSh7XG4gIGFuY2hvckVsZW1lbnRSZWYsXG4gIGNsb3NlLFxuICBlZGl0b3IsXG4gIC8vIGdyb3Vwc1dpdGhPcHRpb25zIGZpbHRlcmluZyBpcyBhbHJlYWR5IGhhbmRsZWQgaW4gU2xhc2hNZW51L2luZGV4LnRzeC4gVGh1cywgZ3JvdXBzV2l0aE9wdGlvbnMgYWx3YXlzIGNvbnRhaW5zIHRoZSBtYXRjaGluZyBvcHRpb25zLlxuICBncm91cHNXaXRoT3B0aW9ucyxcbiAgbWVudVJlbmRlckZuLFxuICBvblNlbGVjdE9wdGlvbixcbiAgcmVzb2x1dGlvbixcbiAgc2hvdWxkU3BsaXROb2RlV2l0aFF1ZXJ5ID0gZmFsc2UsXG59OiB7XG4gIGFuY2hvckVsZW1lbnRSZWY6IE11dGFibGVSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+XG4gIGNsb3NlOiAoKSA9PiB2b2lkXG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxuICBncm91cHNXaXRoT3B0aW9uczogQXJyYXk8U2xhc2hNZW51R3JvdXA+XG4gIG1lbnVSZW5kZXJGbjogTWVudVJlbmRlckZuXG4gIG9uU2VsZWN0T3B0aW9uOiAoXG4gICAgb3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgdGV4dE5vZGVDb250YWluaW5nUXVlcnk6IFRleHROb2RlIHwgbnVsbCxcbiAgICBjbG9zZU1lbnU6ICgpID0+IHZvaWQsXG4gICAgbWF0Y2hpbmdTdHJpbmc6IHN0cmluZyxcbiAgKSA9PiB2b2lkXG4gIHJlc29sdXRpb246IE1lbnVSZXNvbHV0aW9uXG4gIHNob3VsZFNwbGl0Tm9kZVdpdGhRdWVyeT86IGJvb2xlYW5cbn0pOiBKU1guRWxlbWVudCB8IG51bGwge1xuICBjb25zdCBbc2VsZWN0ZWRPcHRpb25LZXksIHNldFNlbGVjdGVkT3B0aW9uS2V5XSA9IHVzZVN0YXRlPG51bGwgfCBzdHJpbmc+KG51bGwpXG5cbiAgY29uc3QgbWF0Y2hpbmdTdHJpbmcgPSAocmVzb2x1dGlvbi5tYXRjaCAmJiByZXNvbHV0aW9uLm1hdGNoLm1hdGNoaW5nU3RyaW5nKSB8fCAnJ1xuXG4gIGNvbnN0IHVwZGF0ZVNlbGVjdGVkT3B0aW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wdGlvbjogU2xhc2hNZW51T3B0aW9uKSA9PiB7XG4gICAgICBjb25zdCByb290RWxlbSA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG4gICAgICBpZiAocm9vdEVsZW0gIT09IG51bGwpIHtcbiAgICAgICAgcm9vdEVsZW0uc2V0QXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnLCBgJHtiYXNlQ2xhc3N9X19pdGVtLSR7b3B0aW9uLmtleX1gKVxuICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbktleShvcHRpb24ua2V5KVxuICAgICAgfVxuICAgIH0sXG4gICAgW2VkaXRvcl0sXG4gIClcblxuICBjb25zdCBzZXRTZWxlY3RlZE9wdGlvbktleVRvRmlyc3RNYXRjaGluZ09wdGlvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAvLyBzZXQgc2VsZWN0ZWQgb3B0aW9uIHRvIHRoZSBmaXJzdCBvZiB0aGUgbWF0Y2hpbmcgb25lc1xuICAgIGlmIChncm91cHNXaXRoT3B0aW9ucyAhPT0gbnVsbCAmJiBtYXRjaGluZ1N0cmluZyAhPSBudWxsKSB7XG4gICAgICAvLyBncm91cHNXaXRoT3B0aW9ucyBmaWx0ZXJpbmcgaXMgYWxyZWFkeSBoYW5kbGVkIGluIFNsYXNoTWVudS9pbmRleC50c3guIFRodXMsIGdyb3Vwc1dpdGhPcHRpb25zIGFsd2F5cyBjb250YWlucyB0aGUgbWF0Y2hpbmcgb3B0aW9ucy5cbiAgICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5mbGF0TWFwKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucylcblxuICAgICAgaWYgKGFsbE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0TWF0Y2hpbmdPcHRpb24gPSBhbGxPcHRpb25zWzBdXG4gICAgICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uKGZpcnN0TWF0Y2hpbmdPcHRpb24pXG4gICAgICB9XG4gICAgfVxuICB9LCBbZ3JvdXBzV2l0aE9wdGlvbnMsIHVwZGF0ZVNlbGVjdGVkT3B0aW9uLCBtYXRjaGluZ1N0cmluZ10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRTZWxlY3RlZE9wdGlvbktleVRvRmlyc3RNYXRjaGluZ09wdGlvbigpXG4gIH0sIFttYXRjaGluZ1N0cmluZywgc2V0U2VsZWN0ZWRPcHRpb25LZXlUb0ZpcnN0TWF0Y2hpbmdPcHRpb25dKVxuXG4gIGNvbnN0IHNlbGVjdE9wdGlvbkFuZENsZWFuVXAgPSB1c2VDYWxsYmFjayhcbiAgICAoc2VsZWN0ZWRPcHRpb246IFNsYXNoTWVudU9wdGlvbikgPT4ge1xuICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRleHROb2RlQ29udGFpbmluZ1F1ZXJ5ID1cbiAgICAgICAgICByZXNvbHV0aW9uLm1hdGNoICE9IG51bGwgJiYgc2hvdWxkU3BsaXROb2RlV2l0aFF1ZXJ5XG4gICAgICAgICAgICA/ICRzcGxpdE5vZGVDb250YWluaW5nUXVlcnkocmVzb2x1dGlvbi5tYXRjaClcbiAgICAgICAgICAgIDogbnVsbFxuXG4gICAgICAgIG9uU2VsZWN0T3B0aW9uKFxuICAgICAgICAgIHNlbGVjdGVkT3B0aW9uLFxuICAgICAgICAgIHRleHROb2RlQ29udGFpbmluZ1F1ZXJ5LFxuICAgICAgICAgIGNsb3NlLFxuICAgICAgICAgIHJlc29sdXRpb24ubWF0Y2ggPyByZXNvbHV0aW9uLm1hdGNoLm1hdGNoaW5nU3RyaW5nIDogJycsXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZWRpdG9yLCBzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnksIHJlc29sdXRpb24ubWF0Y2gsIG9uU2VsZWN0T3B0aW9uLCBjbG9zZV0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25zdCByb290RWxlbSA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG4gICAgICBpZiAocm9vdEVsZW0gIT09IG51bGwpIHtcbiAgICAgICAgcm9vdEVsZW0ucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkaXRvcl0pXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZ3JvdXBzV2l0aE9wdGlvbnMgPT09IG51bGwpIHtcbiAgICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5KG51bGwpXG4gICAgfSBlbHNlIGlmIChzZWxlY3RlZE9wdGlvbktleSA9PT0gbnVsbCkge1xuICAgICAgc2V0U2VsZWN0ZWRPcHRpb25LZXlUb0ZpcnN0TWF0Y2hpbmdPcHRpb24oKVxuICAgIH1cbiAgfSwgW1xuICAgIGdyb3Vwc1dpdGhPcHRpb25zLFxuICAgIHNlbGVjdGVkT3B0aW9uS2V5LFxuICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uLFxuICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5VG9GaXJzdE1hdGNoaW5nT3B0aW9uLFxuICBdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCxcbiAgICAgICAgKHsgb3B0aW9uIH0pID0+IHtcbiAgICAgICAgICBpZiAob3B0aW9uLnJlZiAmJiBvcHRpb24ucmVmLmN1cnJlbnQgIT0gbnVsbCkge1xuICAgICAgICAgICAgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChvcHRpb24ucmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVTZWxlY3RlZE9wdGlvbl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQ8S2V5Ym9hcmRFdmVudD4oXG4gICAgICAgIEtFWV9BUlJPV19ET1dOX0NPTU1BTkQsXG4gICAgICAgIChwYXlsb2FkKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXZlbnQgPSBwYXlsb2FkXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZ3JvdXBzV2l0aE9wdGlvbnMgIT09IG51bGwgJiZcbiAgICAgICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zLmxlbmd0aCAmJlxuICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25LZXkgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5mbGF0TWFwKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucylcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSBhbGxPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09PSBzZWxlY3RlZE9wdGlvbktleSlcblxuICAgICAgICAgICAgY29uc3QgbmV3U2VsZWN0ZWRJbmRleCA9IHNlbGVjdGVkSW5kZXggIT09IGFsbE9wdGlvbnMubGVuZ3RoIC0gMSA/IHNlbGVjdGVkSW5kZXggKyAxIDogMFxuXG4gICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZE9wdGlvbiA9IGFsbE9wdGlvbnNbbmV3U2VsZWN0ZWRJbmRleF1cblxuICAgICAgICAgICAgdXBkYXRlU2VsZWN0ZWRPcHRpb24obmV3U2VsZWN0ZWRPcHRpb24pXG4gICAgICAgICAgICBpZiAobmV3U2VsZWN0ZWRPcHRpb24ucmVmICE9IG51bGwgJiYgbmV3U2VsZWN0ZWRPcHRpb24ucmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCwge1xuICAgICAgICAgICAgICAgIGluZGV4OiBuZXdTZWxlY3RlZEluZGV4LFxuICAgICAgICAgICAgICAgIG9wdGlvbjogbmV3U2VsZWN0ZWRPcHRpb24sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kPEtleWJvYXJkRXZlbnQ+KFxuICAgICAgICBLRVlfQVJST1dfVVBfQ09NTUFORCxcbiAgICAgICAgKHBheWxvYWQpID0+IHtcbiAgICAgICAgICBjb25zdCBldmVudCA9IHBheWxvYWRcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBncm91cHNXaXRoT3B0aW9ucyAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgZ3JvdXBzV2l0aE9wdGlvbnMubGVuZ3RoICYmXG4gICAgICAgICAgICBzZWxlY3RlZE9wdGlvbktleSAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgYWxsT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLmZsYXRNYXAoKGdyb3VwKSA9PiBncm91cC5vcHRpb25zKVxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IGFsbE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5rZXkgPT09IHNlbGVjdGVkT3B0aW9uS2V5KVxuXG4gICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZEluZGV4ID0gc2VsZWN0ZWRJbmRleCAhPT0gMCA/IHNlbGVjdGVkSW5kZXggLSAxIDogYWxsT3B0aW9ucy5sZW5ndGggLSAxXG5cbiAgICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkT3B0aW9uID0gYWxsT3B0aW9uc1tuZXdTZWxlY3RlZEluZGV4XVxuXG4gICAgICAgICAgICB1cGRhdGVTZWxlY3RlZE9wdGlvbihuZXdTZWxlY3RlZE9wdGlvbilcbiAgICAgICAgICAgIGlmIChuZXdTZWxlY3RlZE9wdGlvbi5yZWYgIT0gbnVsbCAmJiBuZXdTZWxlY3RlZE9wdGlvbi5yZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICBzY3JvbGxJbnRvVmlld0lmTmVlZGVkKG5ld1NlbGVjdGVkT3B0aW9uLnJlZi5jdXJyZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZDxLZXlib2FyZEV2ZW50PihcbiAgICAgICAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICAgICAgICAocGF5bG9hZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGV2ZW50ID0gcGF5bG9hZFxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGNsb3NlKClcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kPEtleWJvYXJkRXZlbnQ+KFxuICAgICAgICBLRVlfVEFCX0NPTU1BTkQsXG4gICAgICAgIChwYXlsb2FkKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXZlbnQgPSBwYXlsb2FkXG5cbiAgICAgICAgICBpZiAoZ3JvdXBzV2l0aE9wdGlvbnMgPT09IG51bGwgfHwgc2VsZWN0ZWRPcHRpb25LZXkgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBhbGxPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmxhdE1hcCgoZ3JvdXApID0+IGdyb3VwLm9wdGlvbnMpXG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBhbGxPcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLmtleSA9PT0gc2VsZWN0ZWRPcHRpb25LZXkpXG4gICAgICAgICAgaWYgKCFzZWxlY3RlZE9wdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG4gICAgICAgICAgc2VsZWN0T3B0aW9uQW5kQ2xlYW5VcChzZWxlY3RlZE9wdGlvbilcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBLRVlfRU5URVJfQ09NTUFORCxcbiAgICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgbnVsbCkgPT4ge1xuICAgICAgICAgIGlmIChncm91cHNXaXRoT3B0aW9ucyA9PT0gbnVsbCB8fCBzZWxlY3RlZE9wdGlvbktleSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5mbGF0TWFwKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucylcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IGFsbE9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09PSBzZWxlY3RlZE9wdGlvbktleSlcbiAgICAgICAgICBpZiAoIXNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZXZlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG4gICAgICAgICAgfVxuICAgICAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAoc2VsZWN0ZWRPcHRpb24pXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgIClcbiAgfSwgW1xuICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAsXG4gICAgY2xvc2UsXG4gICAgZWRpdG9yLFxuICAgIGdyb3Vwc1dpdGhPcHRpb25zLFxuICAgIHNlbGVjdGVkT3B0aW9uS2V5LFxuICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uLFxuICBdKVxuXG4gIGNvbnN0IGxpc3RJdGVtUHJvcHMgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBncm91cHNXaXRoT3B0aW9ucyxcbiAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAsXG4gICAgICBzZWxlY3RlZE9wdGlvbktleSxcbiAgICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5LFxuICAgIH0pLFxuICAgIFtzZWxlY3RPcHRpb25BbmRDbGVhblVwLCBzZWxlY3RlZE9wdGlvbktleSwgZ3JvdXBzV2l0aE9wdGlvbnNdLFxuICApXG5cbiAgcmV0dXJuIG1lbnVSZW5kZXJGbihcbiAgICBhbmNob3JFbGVtZW50UmVmLFxuICAgIGxpc3RJdGVtUHJvcHMsXG4gICAgcmVzb2x1dGlvbi5tYXRjaCA/IHJlc29sdXRpb24ubWF0Y2gubWF0Y2hpbmdTdHJpbmcgOiAnJyxcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlTWVudUFuY2hvclJlZihcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnQsXG4gIHJlc29sdXRpb246IE1lbnVSZXNvbHV0aW9uIHwgbnVsbCxcbiAgc2V0UmVzb2x1dGlvbjogKHI6IE1lbnVSZXNvbHV0aW9uIHwgbnVsbCkgPT4gdm9pZCxcbiAgY2xhc3NOYW1lPzogc3RyaW5nLFxuKTogTXV0YWJsZVJlZk9iamVjdDxIVE1MRWxlbWVudD4ge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICBjb25zdCBhbmNob3JFbGVtZW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50Pihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSlcbiAgY29uc3QgcG9zaXRpb25NZW51ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcbiAgICBjb25zdCBjb250YWluZXJEaXYgPSBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnRcblxuICAgIGNvbnN0IFZFUlRJQ0FMX09GRlNFVCA9IDMyIGFzIGNvbnN0XG5cbiAgICBjb25zdCBtZW51RWxlID0gY29udGFpbmVyRGl2LmZpcnN0Q2hpbGQgYXMgRWxlbWVudFxuICAgIGlmIChyb290RWxlbWVudCAhPT0gbnVsbCAmJiByZXNvbHV0aW9uICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB7IGhlaWdodCwgd2lkdGggfSA9IHJlc29sdXRpb24uZ2V0UmVjdCgpXG4gICAgICBsZXQgeyBsZWZ0LCB0b3AgfSA9IHJlc29sdXRpb24uZ2V0UmVjdCgpXG5cbiAgICAgIGNvbnN0IHJhd1RvcCA9IHRvcFxuICAgICAgdG9wIC09IGFuY2hvckVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFlcbiAgICAgIGxlZnQgLT0gYW5jaG9yRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0ICsgd2luZG93LnNjcm9sbFhcbiAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS5sZWZ0ID0gYCR7bGVmdCArIHdpbmRvdy5zY3JvbGxYfXB4YFxuICAgICAgY29udGFpbmVyRGl2LnN0eWxlLmhlaWdodCA9IGAke2hlaWdodH1weGBcbiAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YFxuICAgICAgaWYgKG1lbnVFbGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgbWVudVJlY3QgPSBtZW51RWxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgIGNvbnN0IG1lbnVIZWlnaHQgPSBtZW51UmVjdC5oZWlnaHRcbiAgICAgICAgY29uc3QgbWVudVdpZHRoID0gbWVudVJlY3Qud2lkdGhcblxuICAgICAgICBjb25zdCByb290RWxlbWVudFJlY3QgPSByb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuXG4gICAgICAgIGlmIChsZWZ0ICsgbWVudVdpZHRoID4gcm9vdEVsZW1lbnRSZWN0LnJpZ2h0KSB7XG4gICAgICAgICAgY29udGFpbmVyRGl2LnN0eWxlLmxlZnQgPSBgJHtyb290RWxlbWVudFJlY3QucmlnaHQgLSBtZW51V2lkdGggKyB3aW5kb3cuc2Nyb2xsWH1weGBcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHdvdWxkR29PZmZCb3R0b21PZlNjcmVlbiA9IHJhd1RvcCArIG1lbnVIZWlnaHQgKyBWRVJUSUNBTF9PRkZTRVQgPiB3aW5kb3cuaW5uZXJIZWlnaHRcbiAgICAgICAgLy9jb25zdCB3b3VsZEdvT2ZmQm90dG9tT2ZDb250YWluZXIgPSB0b3AgKyBtZW51SGVpZ2h0ID4gcm9vdEVsZW1lbnRSZWN0LmJvdHRvbVxuICAgICAgICBjb25zdCB3b3VsZEdvT2ZmVG9wT2ZTY3JlZW4gPSByYXdUb3AgPCAwXG5cbiAgICAgICAgLy8gUG9zaXRpb24gc2xhc2ggbWVudSBhYm92ZSB0aGUgY3Vyc29yIGluc3RlYWQgb2YgYmVsb3cgKGRlZmF1bHQpIGlmIGl0IHdvdWxkIG90aGVyd2lzZSBnbyBvZmYgdGhlIGJvdHRvbSBvZiB0aGUgc2NyZWVuLlxuICAgICAgICBpZiAod291bGRHb09mZkJvdHRvbU9mU2NyZWVuICYmICF3b3VsZEdvT2ZmVG9wT2ZTY3JlZW4pIHtcbiAgICAgICAgICBjb25zdCBtYXJnaW4gPSAyNFxuICAgICAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS50b3AgPSBgJHtcbiAgICAgICAgICAgIHRvcCArIFZFUlRJQ0FMX09GRlNFVCAtIG1lbnVIZWlnaHQgKyB3aW5kb3cuc2Nyb2xsWSAtIChoZWlnaHQgKyBtYXJnaW4pXG4gICAgICAgICAgfXB4YFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS50b3AgPSBgJHt0b3AgKyB3aW5kb3cuc2Nyb2xsWSArIFZFUlRJQ0FMX09GRlNFVH1weGBcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWNvbnRhaW5lckRpdi5pc0Nvbm5lY3RlZCkge1xuICAgICAgICBpZiAoY2xhc3NOYW1lICE9IG51bGwpIHtcbiAgICAgICAgICBjb250YWluZXJEaXYuY2xhc3NOYW1lID0gY2xhc3NOYW1lXG4gICAgICAgIH1cbiAgICAgICAgY29udGFpbmVyRGl2LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICdTbGFzaCBtZW51JylcbiAgICAgICAgY29udGFpbmVyRGl2LnNldEF0dHJpYnV0ZSgnaWQnLCAnc2xhc2gtbWVudScpXG4gICAgICAgIGNvbnRhaW5lckRpdi5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAnbGlzdGJveCcpXG4gICAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJ1xuICAgICAgICBjb250YWluZXJEaXYuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnXG4gICAgICAgIGFuY2hvckVsZW0uYXBwZW5kKGNvbnRhaW5lckRpdilcbiAgICAgIH1cbiAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCA9IGNvbnRhaW5lckRpdlxuICAgICAgcm9vdEVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWNvbnRyb2xzJywgJ3NsYXNoLW1lbnUnKVxuICAgIH1cbiAgfSwgW2VkaXRvciwgcmVzb2x1dGlvbiwgY2xhc3NOYW1lLCBhbmNob3JFbGVtXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcbiAgICBpZiAocmVzb2x1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgcG9zaXRpb25NZW51KClcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChyb290RWxlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAgIHJvb3RFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1jb250cm9scycpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250YWluZXJEaXYgPSBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnRcbiAgICAgICAgaWYgKGNvbnRhaW5lckRpdiAhPT0gbnVsbCAmJiBjb250YWluZXJEaXYuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgICBjb250YWluZXJEaXYucmVtb3ZlKClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkaXRvciwgcG9zaXRpb25NZW51LCByZXNvbHV0aW9uXSlcblxuICBjb25zdCBvblZpc2liaWxpdHlDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoaXNJblZpZXc6IGJvb2xlYW4pID0+IHtcbiAgICAgIGlmIChyZXNvbHV0aW9uICE9PSBudWxsKSB7XG4gICAgICAgIGlmICghaXNJblZpZXcpIHtcbiAgICAgICAgICBzZXRSZXNvbHV0aW9uKG51bGwpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFtyZXNvbHV0aW9uLCBzZXRSZXNvbHV0aW9uXSxcbiAgKVxuXG4gIHVzZUR5bmFtaWNQb3NpdGlvbmluZyhyZXNvbHV0aW9uLCBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnQsIHBvc2l0aW9uTWVudSwgb25WaXNpYmlsaXR5Q2hhbmdlKVxuXG4gIHJldHVybiBhbmNob3JFbGVtZW50UmVmXG59XG4iXSwibmFtZXMiOlsiZ2V0U2Nyb2xsUGFyZW50IiwidXNlRHluYW1pY1Bvc2l0aW9uaW5nIiwiU0NST0xMX1RZUEVBSEVBRF9PUFRJT05fSU5UT19WSUVXX0NPTU1BTkQiLCJMZXhpY2FsTWVudSIsInVzZU1lbnVBbmNob3JSZWYiLCJiYXNlQ2xhc3MiLCJzY3JvbGxJbnRvVmlld0lmTmVlZGVkIiwidGFyZ2V0IiwidHlwZWFoZWFkQ29udGFpbmVyTm9kZSIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ0eXBlYWhlYWRSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9wIiwiaGVpZ2h0Iiwid2luZG93IiwiaW5uZXJIZWlnaHQiLCJzY3JvbGxJbnRvVmlldyIsImJsb2NrIiwiZ2V0RnVsbE1hdGNoT2Zmc2V0IiwiZG9jdW1lbnRUZXh0IiwiZW50cnlUZXh0Iiwib2Zmc2V0IiwidHJpZ2dlck9mZnNldCIsImkiLCJsZW5ndGgiLCJzdWJzdHIiLCIkc3BsaXROb2RlQ29udGFpbmluZ1F1ZXJ5IiwibWF0Y2giLCJzZWxlY3Rpb24iLCIkZ2V0U2VsZWN0aW9uIiwiJGlzUmFuZ2VTZWxlY3Rpb24iLCJpc0NvbGxhcHNlZCIsImFuY2hvciIsInR5cGUiLCJhbmNob3JOb2RlIiwiZ2V0Tm9kZSIsImlzU2ltcGxlVGV4dCIsInNlbGVjdGlvbk9mZnNldCIsInRleHRDb250ZW50IiwiZ2V0VGV4dENvbnRlbnQiLCJzbGljZSIsImNoYXJhY3Rlck9mZnNldCIsInJlcGxhY2VhYmxlU3RyaW5nIiwicXVlcnlPZmZzZXQiLCJtYXRjaGluZ1N0cmluZyIsInN0YXJ0T2Zmc2V0IiwibmV3Tm9kZSIsInNwbGl0VGV4dCIsImVsZW1lbnQiLCJpbmNsdWRlSGlkZGVuIiwic3R5bGUiLCJnZXRDb21wdXRlZFN0eWxlIiwiZXhjbHVkZVN0YXRpY1BhcmVudCIsInBvc2l0aW9uIiwib3ZlcmZsb3dSZWdleCIsImJvZHkiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidGVzdCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwiaXNUcmlnZ2VyVmlzaWJsZUluTmVhcmVzdFNjcm9sbENvbnRhaW5lciIsInRhcmdldEVsZW1lbnQiLCJjb250YWluZXJFbGVtZW50IiwidFJlY3QiLCJjUmVjdCIsImJvdHRvbSIsInJlc29sdXRpb24iLCJvblJlcG9zaXRpb24iLCJvblZpc2liaWxpdHlDaGFuZ2UiLCJlZGl0b3IiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwidXNlRWZmZWN0Iiwicm9vdEVsZW1lbnQiLCJnZXRSb290RWxlbWVudCIsInJvb3RTY3JvbGxQYXJlbnQiLCJ0aWNraW5nIiwicHJldmlvdXNJc0luVmlldyIsImhhbmRsZVNjcm9sbCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImlzSW5WaWV3IiwicmVzaXplT2JzZXJ2ZXIiLCJSZXNpemVPYnNlcnZlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJjYXB0dXJlIiwicGFzc2l2ZSIsIm9ic2VydmUiLCJ1bm9ic2VydmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY3JlYXRlQ29tbWFuZCIsImFuY2hvckVsZW1lbnRSZWYiLCJjbG9zZSIsImdyb3Vwc1dpdGhPcHRpb25zIiwibWVudVJlbmRlckZuIiwib25TZWxlY3RPcHRpb24iLCJzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnkiLCJzZWxlY3RlZE9wdGlvbktleSIsInNldFNlbGVjdGVkT3B0aW9uS2V5IiwidXNlU3RhdGUiLCJ1cGRhdGVTZWxlY3RlZE9wdGlvbiIsInVzZUNhbGxiYWNrIiwib3B0aW9uIiwicm9vdEVsZW0iLCJzZXRBdHRyaWJ1dGUiLCJrZXkiLCJzZXRTZWxlY3RlZE9wdGlvbktleVRvRmlyc3RNYXRjaGluZ09wdGlvbiIsImFsbE9wdGlvbnMiLCJmbGF0TWFwIiwiZ3JvdXAiLCJvcHRpb25zIiwiZmlyc3RNYXRjaGluZ09wdGlvbiIsInNlbGVjdE9wdGlvbkFuZENsZWFuVXAiLCJzZWxlY3RlZE9wdGlvbiIsInVwZGF0ZSIsInRleHROb2RlQ29udGFpbmluZ1F1ZXJ5IiwicmVtb3ZlQXR0cmlidXRlIiwidXNlTGF5b3V0RWZmZWN0IiwibWVyZ2VSZWdpc3RlciIsInJlZ2lzdGVyQ29tbWFuZCIsInJlZiIsImN1cnJlbnQiLCJDT01NQU5EX1BSSU9SSVRZX0xPVyIsIktFWV9BUlJPV19ET1dOX0NPTU1BTkQiLCJwYXlsb2FkIiwiZXZlbnQiLCJzZWxlY3RlZEluZGV4IiwiZmluZEluZGV4IiwibmV3U2VsZWN0ZWRJbmRleCIsIm5ld1NlbGVjdGVkT3B0aW9uIiwiZGlzcGF0Y2hDb21tYW5kIiwiaW5kZXgiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiIsIktFWV9BUlJPV19VUF9DT01NQU5EIiwiS0VZX0VTQ0FQRV9DT01NQU5EIiwiS0VZX1RBQl9DT01NQU5EIiwiZmluZCIsIktFWV9FTlRFUl9DT01NQU5EIiwibGlzdEl0ZW1Qcm9wcyIsInVzZU1lbW8iLCJhbmNob3JFbGVtIiwic2V0UmVzb2x1dGlvbiIsImNsYXNzTmFtZSIsInVzZVJlZiIsImNyZWF0ZUVsZW1lbnQiLCJwb3NpdGlvbk1lbnUiLCJjb250YWluZXJEaXYiLCJWRVJUSUNBTF9PRkZTRVQiLCJtZW51RWxlIiwiZmlyc3RDaGlsZCIsIndpZHRoIiwiZ2V0UmVjdCIsImxlZnQiLCJyYXdUb3AiLCJzY3JvbGxZIiwic2Nyb2xsWCIsIm1lbnVSZWN0IiwibWVudUhlaWdodCIsIm1lbnVXaWR0aCIsInJvb3RFbGVtZW50UmVjdCIsInJpZ2h0Iiwid291bGRHb09mZkJvdHRvbU9mU2NyZWVuIiwid291bGRHb09mZlRvcE9mU2NyZWVuIiwibWFyZ2luIiwiaXNDb25uZWN0ZWQiLCJkaXNwbGF5IiwiYXBwZW5kIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0lBa0hnQkEsZUFBZTtlQUFmQTs7SUFnQ0FDLHFCQUFxQjtlQUFyQkE7O0lBaURIQyx5Q0FBeUM7ZUFBekNBOztJQUtHQyxXQUFXO2VBQVhBOztJQThQQUMsZ0JBQWdCO2VBQWhCQTs7O3dDQWxjMEI7dUJBQ1o7eUJBV3ZCO3VCQUM0RTtBQVduRixNQUFNQyxZQUFZO0FBYWxCLE1BQU1DLHlCQUF5QixDQUFDQztJQUM5QixNQUFNQyx5QkFBeUJDLFNBQVNDLGNBQWMsQ0FBQztJQUN2RCxJQUFJLENBQUNGLHdCQUF3QjtJQUU3QixNQUFNRyxnQkFBZ0JILHVCQUF1QkkscUJBQXFCO0lBRWxFLElBQUlELGNBQWNFLEdBQUcsR0FBR0YsY0FBY0csTUFBTSxHQUFHQyxPQUFPQyxXQUFXLEVBQUU7UUFDakVSLHVC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
|
|
426
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvU2xhc2hNZW51L0xleGljYWxUeXBlYWhlYWRNZW51UGx1Z2luL0xleGljYWxNZW51LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIHsgTGV4aWNhbENvbW1hbmQsIExleGljYWxFZGl0b3IsIFRleHROb2RlIH0gZnJvbSAnbGV4aWNhbCdcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCwgUmVhY3RQb3J0YWwgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQnXG5pbXBvcnQgeyBtZXJnZVJlZ2lzdGVyIH0gZnJvbSAnQGxleGljYWwvdXRpbHMnXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gIEtFWV9BUlJPV19ET1dOX0NPTU1BTkQsXG4gIEtFWV9BUlJPV19VUF9DT01NQU5ELFxuICBLRVlfRU5URVJfQ09NTUFORCxcbiAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICBLRVlfVEFCX0NPTU1BTkQsXG4gIGNyZWF0ZUNvbW1hbmQsXG59IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBNZW51VGV4dE1hdGNoIH0gZnJvbSAnLi4vdXNlTWVudVRyaWdnZXJNYXRjaCdcbmltcG9ydCB0eXBlIHsgU2xhc2hNZW51T3B0aW9uIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB0eXBlIHsgU2xhc2hNZW51R3JvdXAgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgdHlwZSBNZW51UmVzb2x1dGlvbiA9IHtcbiAgZ2V0UmVjdDogKCkgPT4gRE9NUmVjdFxuICBtYXRjaD86IE1lbnVUZXh0TWF0Y2hcbn1cblxuY29uc3QgYmFzZUNsYXNzID0gJ3NsYXNoLW1lbnUtcG9wdXAnXG5cbmV4cG9ydCB0eXBlIE1lbnVSZW5kZXJGbiA9IChcbiAgYW5jaG9yRWxlbWVudFJlZjogTXV0YWJsZVJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+LFxuICBpdGVtUHJvcHM6IHtcbiAgICBncm91cHNXaXRoT3B0aW9uczogQXJyYXk8U2xhc2hNZW51R3JvdXA+XG4gICAgc2VsZWN0T3B0aW9uQW5kQ2xlYW5VcDogKHNlbGVjdGVkT3B0aW9uOiBTbGFzaE1lbnVPcHRpb24pID0+IHZvaWRcbiAgICBzZWxlY3RlZE9wdGlvbktleTogbnVsbCB8IHN0cmluZ1xuICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5OiAob3B0aW9uS2V5OiBzdHJpbmcpID0+IHZvaWRcbiAgfSxcbiAgbWF0Y2hpbmdTdHJpbmc6IG51bGwgfCBzdHJpbmcsXG4pID0+IEpTWC5FbGVtZW50IHwgUmVhY3RQb3J0YWwgfCBudWxsXG5cbmNvbnN0IHNjcm9sbEludG9WaWV3SWZOZWVkZWQgPSAodGFyZ2V0OiBIVE1MRWxlbWVudCkgPT4ge1xuICBjb25zdCB0eXBlYWhlYWRDb250YWluZXJOb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NsYXNoLW1lbnUnKVxuICBpZiAoIXR5cGVhaGVhZENvbnRhaW5lck5vZGUpIHJldHVyblxuXG4gIGNvbnN0IHR5cGVhaGVhZFJlY3QgPSB0eXBlYWhlYWRDb250YWluZXJOb2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG5cbiAgaWYgKHR5cGVhaGVhZFJlY3QudG9wICsgdHlwZWFoZWFkUmVjdC5oZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICB0eXBlYWhlYWRDb250YWluZXJOb2RlLnNjcm9sbEludG9WaWV3KHtcbiAgICAgIGJsb2NrOiAnY2VudGVyJyxcbiAgICB9KVxuICB9XG5cbiAgaWYgKHR5cGVhaGVhZFJlY3QudG9wIDwgMCkge1xuICAgIHR5cGVhaGVhZENvbnRhaW5lck5vZGUuc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgYmxvY2s6ICdjZW50ZXInLFxuICAgIH0pXG4gIH1cblxuICB0YXJnZXQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pXG59XG5cbi8qKlxuICogV2FsayBiYWNrd2FyZHMgYWxvbmcgdXNlciBpbnB1dCBhbmQgZm9yd2FyZCB0aHJvdWdoIGVudGl0eSB0aXRsZSB0byB0cnlcbiAqIGFuZCByZXBsYWNlIG1vcmUgb2YgdGhlIHVzZXIncyB0ZXh0IHdpdGggZW50aXR5LlxuICovXG5mdW5jdGlvbiBnZXRGdWxsTWF0Y2hPZmZzZXQoZG9jdW1lbnRUZXh0OiBzdHJpbmcsIGVudHJ5VGV4dDogc3RyaW5nLCBvZmZzZXQ6IG51bWJlcik6IG51bWJlciB7XG4gIGxldCB0cmlnZ2VyT2Zmc2V0ID0gb2Zmc2V0XG4gIGZvciAobGV0IGkgPSB0cmlnZ2VyT2Zmc2V0OyBpIDw9IGVudHJ5VGV4dC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChkb2N1bWVudFRleHQuc3Vic3RyKC1pKSA9PT0gZW50cnlUZXh0LnN1YnN0cigwLCBpKSkge1xuICAgICAgdHJpZ2dlck9mZnNldCA9IGlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRyaWdnZXJPZmZzZXRcbn1cblxuLyoqXG4gKiBTcGxpdCBMZXhpY2FsIFRleHROb2RlIGFuZCByZXR1cm4gYSBuZXcgVGV4dE5vZGUgb25seSBjb250YWluaW5nIG1hdGNoZWQgdGV4dC5cbiAqIENvbW1vbiB1c2UgY2FzZXMgaW5jbHVkZTogcmVtb3ZpbmcgdGhlIG5vZGUsIHJlcGxhY2luZyB3aXRoIGEgbmV3IG5vZGUuXG4gKi9cbmZ1bmN0aW9uICRzcGxpdE5vZGVDb250YWluaW5nUXVlcnkobWF0Y2g6IE1lbnVUZXh0TWF0Y2gpOiBUZXh0Tm9kZSB8IG51bGwge1xuICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgaWYgKCEkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pIHx8ICFzZWxlY3Rpb24uaXNDb2xsYXBzZWQoKSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yID0gc2VsZWN0aW9uLmFuY2hvclxuICBpZiAoYW5jaG9yLnR5cGUgIT09ICd0ZXh0Jykge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYW5jaG9yTm9kZSA9IGFuY2hvci5nZXROb2RlKClcbiAgaWYgKCFhbmNob3JOb2RlLmlzU2ltcGxlVGV4dCgpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBzZWxlY3Rpb25PZmZzZXQgPSBhbmNob3Iub2Zmc2V0XG4gIGNvbnN0IHRleHRDb250ZW50ID0gYW5jaG9yTm9kZS5nZXRUZXh0Q29udGVudCgpLnNsaWNlKDAsIHNlbGVjdGlvbk9mZnNldClcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2Rlc3RydWN0dXJpbmctYXNzaWdubWVudFxuICBjb25zdCBjaGFyYWN0ZXJPZmZzZXQgPSBtYXRjaC5yZXBsYWNlYWJsZVN0cmluZy5sZW5ndGhcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2Rlc3RydWN0dXJpbmctYXNzaWdubWVudFxuICBjb25zdCBxdWVyeU9mZnNldCA9IGdldEZ1bGxNYXRjaE9mZnNldCh0ZXh0Q29udGVudCwgbWF0Y2gubWF0Y2hpbmdTdHJpbmcsIGNoYXJhY3Rlck9mZnNldClcbiAgY29uc3Qgc3RhcnRPZmZzZXQgPSBzZWxlY3Rpb25PZmZzZXQgLSBxdWVyeU9mZnNldFxuICBpZiAoc3RhcnRPZmZzZXQgPCAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBsZXQgbmV3Tm9kZVxuICBpZiAoc3RhcnRPZmZzZXQgPT09IDApIHtcbiAgICA7W25ld05vZGVdID0gYW5jaG9yTm9kZS5zcGxpdFRleHQoc2VsZWN0aW9uT2Zmc2V0KVxuICB9IGVsc2Uge1xuICAgIDtbLCBuZXdOb2RlXSA9IGFuY2hvck5vZGUuc3BsaXRUZXh0KHN0YXJ0T2Zmc2V0LCBzZWxlY3Rpb25PZmZzZXQpXG4gIH1cblxuICByZXR1cm4gbmV3Tm9kZVxufVxuXG4vLyBHb3QgZnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDI1NDM5MDgvMjAxMzU4MFxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcm9sbFBhcmVudChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGluY2x1ZGVIaWRkZW46IGJvb2xlYW4sXG4pOiBIVE1MQm9keUVsZW1lbnQgfCBIVE1MRWxlbWVudCB7XG4gIGxldCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudClcbiAgY29uc3QgZXhjbHVkZVN0YXRpY1BhcmVudCA9IHN0eWxlLnBvc2l0aW9uID09PSAnYWJzb2x1dGUnXG4gIGNvbnN0IG92ZXJmbG93UmVnZXggPSBpbmNsdWRlSGlkZGVuID8gLyhhdXRvfHNjcm9sbHxoaWRkZW4pLyA6IC8oYXV0b3xzY3JvbGwpL1xuICBpZiAoc3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYm9keVxuICB9XG4gIGZvciAobGV0IHBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudDsgKHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50KTsgKSB7XG4gICAgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHBhcmVudClcbiAgICBpZiAoZXhjbHVkZVN0YXRpY1BhcmVudCAmJiBzdHlsZS5wb3NpdGlvbiA9PT0gJ3N0YXRpYycpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChvdmVyZmxvd1JlZ2V4LnRlc3Qoc3R5bGUub3ZlcmZsb3cgKyBzdHlsZS5vdmVyZmxvd1kgKyBzdHlsZS5vdmVyZmxvd1gpKSB7XG4gICAgICByZXR1cm4gcGFyZW50XG4gICAgfVxuICB9XG4gIHJldHVybiBkb2N1bWVudC5ib2R5XG59XG5cbmZ1bmN0aW9uIGlzVHJpZ2dlclZpc2libGVJbk5lYXJlc3RTY3JvbGxDb250YWluZXIoXG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICBjb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudCxcbik6IGJvb2xlYW4ge1xuICBjb25zdCB0UmVjdCA9IHRhcmdldEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgY29uc3QgY1JlY3QgPSBjb250YWluZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIHJldHVybiB0UmVjdC50b3AgPiBjUmVjdC50b3AgJiYgdFJlY3QudG9wIDwgY1JlY3QuYm90dG9tXG59XG5cbi8vIFJlcG9zaXRpb24gdGhlIG1lbnUgb24gc2Nyb2xsLCB3aW5kb3cgcmVzaXplLCBhbmQgZWxlbWVudCByZXNpemUuXG5leHBvcnQgZnVuY3Rpb24gdXNlRHluYW1pY1Bvc2l0aW9uaW5nKFxuICByZXNvbHV0aW9uOiBNZW51UmVzb2x1dGlvbiB8IG51bGwsXG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgb25SZXBvc2l0aW9uOiAoKSA9PiB2b2lkLFxuICBvblZpc2liaWxpdHlDaGFuZ2U/OiAoaXNJblZpZXc6IGJvb2xlYW4pID0+IHZvaWQsXG4pIHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGFyZ2V0RWxlbWVudCAhPSBudWxsICYmIHJlc29sdXRpb24gIT0gbnVsbCkge1xuICAgICAgY29uc3Qgcm9vdEVsZW1lbnQgPSBlZGl0b3IuZ2V0Um9vdEVsZW1lbnQoKVxuICAgICAgY29uc3Qgcm9vdFNjcm9sbFBhcmVudCA9XG4gICAgICAgIHJvb3RFbGVtZW50ICE9IG51bGwgPyBnZXRTY3JvbGxQYXJlbnQocm9vdEVsZW1lbnQsIGZhbHNlKSA6IGRvY3VtZW50LmJvZHlcbiAgICAgIGxldCB0aWNraW5nID0gZmFsc2VcbiAgICAgIGxldCBwcmV2aW91c0lzSW5WaWV3ID0gaXNUcmlnZ2VyVmlzaWJsZUluTmVhcmVzdFNjcm9sbENvbnRhaW5lcihcbiAgICAgICAgdGFyZ2V0RWxlbWVudCxcbiAgICAgICAgcm9vdFNjcm9sbFBhcmVudCxcbiAgICAgIClcbiAgICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCF0aWNraW5nKSB7XG4gICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBvblJlcG9zaXRpb24oKVxuICAgICAgICAgICAgdGlja2luZyA9IGZhbHNlXG4gICAgICAgICAgfSlcbiAgICAgICAgICB0aWNraW5nID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzSW5WaWV3ID0gaXNUcmlnZ2VyVmlzaWJsZUluTmVhcmVzdFNjcm9sbENvbnRhaW5lcih0YXJnZXRFbGVtZW50LCByb290U2Nyb2xsUGFyZW50KVxuICAgICAgICBpZiAoaXNJblZpZXcgIT09IHByZXZpb3VzSXNJblZpZXcpIHtcbiAgICAgICAgICBwcmV2aW91c0lzSW5WaWV3ID0gaXNJblZpZXdcbiAgICAgICAgICBpZiAob25WaXNpYmlsaXR5Q2hhbmdlICE9IG51bGwpIHtcbiAgICAgICAgICAgIG9uVmlzaWJpbGl0eUNoYW5nZShpc0luVmlldylcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKG9uUmVwb3NpdGlvbilcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvblJlcG9zaXRpb24pXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwsIHtcbiAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKHRhcmdldEVsZW1lbnQpXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICByZXNpemVPYnNlcnZlci51bm9ic2VydmUodGFyZ2V0RWxlbWVudClcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uUmVwb3NpdGlvbilcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsLCB0cnVlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW3RhcmdldEVsZW1lbnQsIGVkaXRvciwgb25WaXNpYmlsaXR5Q2hhbmdlLCBvblJlcG9zaXRpb24sIHJlc29sdXRpb25dKVxufVxuXG5leHBvcnQgY29uc3QgU0NST0xMX1RZUEVBSEVBRF9PUFRJT05fSU5UT19WSUVXX0NPTU1BTkQ6IExleGljYWxDb21tYW5kPHtcbiAgaW5kZXg6IG51bWJlclxuICBvcHRpb246IFNsYXNoTWVudU9wdGlvblxufT4gPSBjcmVhdGVDb21tYW5kKCdTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCcpXG5cbmV4cG9ydCBmdW5jdGlvbiBMZXhpY2FsTWVudSh7XG4gIGFuY2hvckVsZW1lbnRSZWYsXG4gIGNsb3NlLFxuICBlZGl0b3IsXG4gIC8vIGdyb3Vwc1dpdGhPcHRpb25zIGZpbHRlcmluZyBpcyBhbHJlYWR5IGhhbmRsZWQgaW4gU2xhc2hNZW51L2luZGV4LnRzeC4gVGh1cywgZ3JvdXBzV2l0aE9wdGlvbnMgYWx3YXlzIGNvbnRhaW5zIHRoZSBtYXRjaGluZyBvcHRpb25zLlxuICBncm91cHNXaXRoT3B0aW9ucyxcbiAgbWVudVJlbmRlckZuLFxuICBvblNlbGVjdE9wdGlvbixcbiAgcmVzb2x1dGlvbixcbiAgc2hvdWxkU3BsaXROb2RlV2l0aFF1ZXJ5ID0gZmFsc2UsXG59OiB7XG4gIGFuY2hvckVsZW1lbnRSZWY6IE11dGFibGVSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+XG4gIGNsb3NlOiAoKSA9PiB2b2lkXG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxuICBncm91cHNXaXRoT3B0aW9uczogQXJyYXk8U2xhc2hNZW51R3JvdXA+XG4gIG1lbnVSZW5kZXJGbjogTWVudVJlbmRlckZuXG4gIG9uU2VsZWN0T3B0aW9uOiAoXG4gICAgb3B0aW9uOiBTbGFzaE1lbnVPcHRpb24sXG4gICAgdGV4dE5vZGVDb250YWluaW5nUXVlcnk6IFRleHROb2RlIHwgbnVsbCxcbiAgICBjbG9zZU1lbnU6ICgpID0+IHZvaWQsXG4gICAgbWF0Y2hpbmdTdHJpbmc6IHN0cmluZyxcbiAgKSA9PiB2b2lkXG4gIHJlc29sdXRpb246IE1lbnVSZXNvbHV0aW9uXG4gIHNob3VsZFNwbGl0Tm9kZVdpdGhRdWVyeT86IGJvb2xlYW5cbn0pOiBKU1guRWxlbWVudCB8IG51bGwge1xuICBjb25zdCBbc2VsZWN0ZWRPcHRpb25LZXksIHNldFNlbGVjdGVkT3B0aW9uS2V5XSA9IHVzZVN0YXRlPG51bGwgfCBzdHJpbmc+KG51bGwpXG5cbiAgY29uc3QgbWF0Y2hpbmdTdHJpbmcgPSAocmVzb2x1dGlvbi5tYXRjaCAmJiByZXNvbHV0aW9uLm1hdGNoLm1hdGNoaW5nU3RyaW5nKSB8fCAnJ1xuXG4gIGNvbnN0IHVwZGF0ZVNlbGVjdGVkT3B0aW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wdGlvbjogU2xhc2hNZW51T3B0aW9uKSA9PiB7XG4gICAgICBjb25zdCByb290RWxlbSA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG4gICAgICBpZiAocm9vdEVsZW0gIT09IG51bGwpIHtcbiAgICAgICAgcm9vdEVsZW0uc2V0QXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnLCBgJHtiYXNlQ2xhc3N9X19pdGVtLSR7b3B0aW9uLmtleX1gKVxuICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbktleShvcHRpb24ua2V5KVxuICAgICAgfVxuICAgIH0sXG4gICAgW2VkaXRvcl0sXG4gIClcblxuICBjb25zdCBzZXRTZWxlY3RlZE9wdGlvbktleVRvRmlyc3RNYXRjaGluZ09wdGlvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAvLyBzZXQgc2VsZWN0ZWQgb3B0aW9uIHRvIHRoZSBmaXJzdCBvZiB0aGUgbWF0Y2hpbmcgb25lc1xuICAgIGlmIChncm91cHNXaXRoT3B0aW9ucyAhPT0gbnVsbCAmJiBtYXRjaGluZ1N0cmluZyAhPSBudWxsKSB7XG4gICAgICAvLyBncm91cHNXaXRoT3B0aW9ucyBmaWx0ZXJpbmcgaXMgYWxyZWFkeSBoYW5kbGVkIGluIFNsYXNoTWVudS9pbmRleC50c3guIFRodXMsIGdyb3Vwc1dpdGhPcHRpb25zIGFsd2F5cyBjb250YWlucyB0aGUgbWF0Y2hpbmcgb3B0aW9ucy5cbiAgICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5mbGF0TWFwKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucylcblxuICAgICAgaWYgKGFsbE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0TWF0Y2hpbmdPcHRpb24gPSBhbGxPcHRpb25zWzBdXG4gICAgICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uKGZpcnN0TWF0Y2hpbmdPcHRpb24pXG4gICAgICB9XG4gICAgfVxuICB9LCBbZ3JvdXBzV2l0aE9wdGlvbnMsIHVwZGF0ZVNlbGVjdGVkT3B0aW9uLCBtYXRjaGluZ1N0cmluZ10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRTZWxlY3RlZE9wdGlvbktleVRvRmlyc3RNYXRjaGluZ09wdGlvbigpXG4gIH0sIFttYXRjaGluZ1N0cmluZywgc2V0U2VsZWN0ZWRPcHRpb25LZXlUb0ZpcnN0TWF0Y2hpbmdPcHRpb25dKVxuXG4gIGNvbnN0IHNlbGVjdE9wdGlvbkFuZENsZWFuVXAgPSB1c2VDYWxsYmFjayhcbiAgICAoc2VsZWN0ZWRPcHRpb246IFNsYXNoTWVudU9wdGlvbikgPT4ge1xuICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRleHROb2RlQ29udGFpbmluZ1F1ZXJ5ID1cbiAgICAgICAgICByZXNvbHV0aW9uLm1hdGNoICE9IG51bGwgJiYgc2hvdWxkU3BsaXROb2RlV2l0aFF1ZXJ5XG4gICAgICAgICAgICA/ICRzcGxpdE5vZGVDb250YWluaW5nUXVlcnkocmVzb2x1dGlvbi5tYXRjaClcbiAgICAgICAgICAgIDogbnVsbFxuXG4gICAgICAgIG9uU2VsZWN0T3B0aW9uKFxuICAgICAgICAgIHNlbGVjdGVkT3B0aW9uLFxuICAgICAgICAgIHRleHROb2RlQ29udGFpbmluZ1F1ZXJ5LFxuICAgICAgICAgIGNsb3NlLFxuICAgICAgICAgIHJlc29sdXRpb24ubWF0Y2ggPyByZXNvbHV0aW9uLm1hdGNoLm1hdGNoaW5nU3RyaW5nIDogJycsXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbZWRpdG9yLCBzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnksIHJlc29sdXRpb24ubWF0Y2gsIG9uU2VsZWN0T3B0aW9uLCBjbG9zZV0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25zdCByb290RWxlbSA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG4gICAgICBpZiAocm9vdEVsZW0gIT09IG51bGwpIHtcbiAgICAgICAgcm9vdEVsZW0ucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkaXRvcl0pXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZ3JvdXBzV2l0aE9wdGlvbnMgPT09IG51bGwpIHtcbiAgICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5KG51bGwpXG4gICAgfSBlbHNlIGlmIChzZWxlY3RlZE9wdGlvbktleSA9PT0gbnVsbCkge1xuICAgICAgc2V0U2VsZWN0ZWRPcHRpb25LZXlUb0ZpcnN0TWF0Y2hpbmdPcHRpb24oKVxuICAgIH1cbiAgfSwgW1xuICAgIGdyb3Vwc1dpdGhPcHRpb25zLFxuICAgIHNlbGVjdGVkT3B0aW9uS2V5LFxuICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uLFxuICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5VG9GaXJzdE1hdGNoaW5nT3B0aW9uLFxuICBdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCxcbiAgICAgICAgKHsgb3B0aW9uIH0pID0+IHtcbiAgICAgICAgICBpZiAob3B0aW9uLnJlZiAmJiBvcHRpb24ucmVmLmN1cnJlbnQgIT0gbnVsbCkge1xuICAgICAgICAgICAgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChvcHRpb24ucmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVTZWxlY3RlZE9wdGlvbl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQ8S2V5Ym9hcmRFdmVudD4oXG4gICAgICAgIEtFWV9BUlJPV19ET1dOX0NPTU1BTkQsXG4gICAgICAgIChwYXlsb2FkKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXZlbnQgPSBwYXlsb2FkXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZ3JvdXBzV2l0aE9wdGlvbnMgIT09IG51bGwgJiZcbiAgICAgICAgICAgIGdyb3Vwc1dpdGhPcHRpb25zLmxlbmd0aCAmJlxuICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25LZXkgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5mbGF0TWFwKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucylcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSBhbGxPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09PSBzZWxlY3RlZE9wdGlvbktleSlcblxuICAgICAgICAgICAgY29uc3QgbmV3U2VsZWN0ZWRJbmRleCA9IHNlbGVjdGVkSW5kZXggIT09IGFsbE9wdGlvbnMubGVuZ3RoIC0gMSA/IHNlbGVjdGVkSW5kZXggKyAxIDogMFxuXG4gICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZE9wdGlvbiA9IGFsbE9wdGlvbnNbbmV3U2VsZWN0ZWRJbmRleF1cblxuICAgICAgICAgICAgdXBkYXRlU2VsZWN0ZWRPcHRpb24obmV3U2VsZWN0ZWRPcHRpb24pXG4gICAgICAgICAgICBpZiAobmV3U2VsZWN0ZWRPcHRpb24ucmVmICE9IG51bGwgJiYgbmV3U2VsZWN0ZWRPcHRpb24ucmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCwge1xuICAgICAgICAgICAgICAgIGluZGV4OiBuZXdTZWxlY3RlZEluZGV4LFxuICAgICAgICAgICAgICAgIG9wdGlvbjogbmV3U2VsZWN0ZWRPcHRpb24sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kPEtleWJvYXJkRXZlbnQ+KFxuICAgICAgICBLRVlfQVJST1dfVVBfQ09NTUFORCxcbiAgICAgICAgKHBheWxvYWQpID0+IHtcbiAgICAgICAgICBjb25zdCBldmVudCA9IHBheWxvYWRcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBncm91cHNXaXRoT3B0aW9ucyAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgZ3JvdXBzV2l0aE9wdGlvbnMubGVuZ3RoICYmXG4gICAgICAgICAgICBzZWxlY3RlZE9wdGlvbktleSAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgYWxsT3B0aW9ucyA9IGdyb3Vwc1dpdGhPcHRpb25zLmZsYXRNYXAoKGdyb3VwKSA9PiBncm91cC5vcHRpb25zKVxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IGFsbE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5rZXkgPT09IHNlbGVjdGVkT3B0aW9uS2V5KVxuXG4gICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZEluZGV4ID0gc2VsZWN0ZWRJbmRleCAhPT0gMCA/IHNlbGVjdGVkSW5kZXggLSAxIDogYWxsT3B0aW9ucy5sZW5ndGggLSAxXG5cbiAgICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkT3B0aW9uID0gYWxsT3B0aW9uc1tuZXdTZWxlY3RlZEluZGV4XVxuXG4gICAgICAgICAgICB1cGRhdGVTZWxlY3RlZE9wdGlvbihuZXdTZWxlY3RlZE9wdGlvbilcbiAgICAgICAgICAgIGlmIChuZXdTZWxlY3RlZE9wdGlvbi5yZWYgIT0gbnVsbCAmJiBuZXdTZWxlY3RlZE9wdGlvbi5yZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICBzY3JvbGxJbnRvVmlld0lmTmVlZGVkKG5ld1NlbGVjdGVkT3B0aW9uLnJlZi5jdXJyZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZDxLZXlib2FyZEV2ZW50PihcbiAgICAgICAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICAgICAgICAocGF5bG9hZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGV2ZW50ID0gcGF5bG9hZFxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGNsb3NlKClcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kPEtleWJvYXJkRXZlbnQ+KFxuICAgICAgICBLRVlfVEFCX0NPTU1BTkQsXG4gICAgICAgIChwYXlsb2FkKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXZlbnQgPSBwYXlsb2FkXG5cbiAgICAgICAgICBpZiAoZ3JvdXBzV2l0aE9wdGlvbnMgPT09IG51bGwgfHwgc2VsZWN0ZWRPcHRpb25LZXkgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBhbGxPcHRpb25zID0gZ3JvdXBzV2l0aE9wdGlvbnMuZmxhdE1hcCgoZ3JvdXApID0+IGdyb3VwLm9wdGlvbnMpXG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBhbGxPcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLmtleSA9PT0gc2VsZWN0ZWRPcHRpb25LZXkpXG4gICAgICAgICAgaWYgKCFzZWxlY3RlZE9wdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG4gICAgICAgICAgc2VsZWN0T3B0aW9uQW5kQ2xlYW5VcChzZWxlY3RlZE9wdGlvbilcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBLRVlfRU5URVJfQ09NTUFORCxcbiAgICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgbnVsbCkgPT4ge1xuICAgICAgICAgIGlmIChncm91cHNXaXRoT3B0aW9ucyA9PT0gbnVsbCB8fCBzZWxlY3RlZE9wdGlvbktleSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBncm91cHNXaXRoT3B0aW9ucy5mbGF0TWFwKChncm91cCkgPT4gZ3JvdXAub3B0aW9ucylcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IGFsbE9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09PSBzZWxlY3RlZE9wdGlvbktleSlcbiAgICAgICAgICBpZiAoIXNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZXZlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG4gICAgICAgICAgfVxuICAgICAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAoc2VsZWN0ZWRPcHRpb24pXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgIClcbiAgfSwgW1xuICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAsXG4gICAgY2xvc2UsXG4gICAgZWRpdG9yLFxuICAgIGdyb3Vwc1dpdGhPcHRpb25zLFxuICAgIHNlbGVjdGVkT3B0aW9uS2V5LFxuICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uLFxuICBdKVxuXG4gIGNvbnN0IGxpc3RJdGVtUHJvcHMgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBncm91cHNXaXRoT3B0aW9ucyxcbiAgICAgIHNlbGVjdE9wdGlvbkFuZENsZWFuVXAsXG4gICAgICBzZWxlY3RlZE9wdGlvbktleSxcbiAgICAgIHNldFNlbGVjdGVkT3B0aW9uS2V5LFxuICAgIH0pLFxuICAgIFtzZWxlY3RPcHRpb25BbmRDbGVhblVwLCBzZWxlY3RlZE9wdGlvbktleSwgZ3JvdXBzV2l0aE9wdGlvbnNdLFxuICApXG5cbiAgcmV0dXJuIG1lbnVSZW5kZXJGbihcbiAgICBhbmNob3JFbGVtZW50UmVmLFxuICAgIGxpc3RJdGVtUHJvcHMsXG4gICAgcmVzb2x1dGlvbi5tYXRjaCA/IHJlc29sdXRpb24ubWF0Y2gubWF0Y2hpbmdTdHJpbmcgOiAnJyxcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlTWVudUFuY2hvclJlZihcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnQsXG4gIHJlc29sdXRpb246IE1lbnVSZXNvbHV0aW9uIHwgbnVsbCxcbiAgc2V0UmVzb2x1dGlvbjogKHI6IE1lbnVSZXNvbHV0aW9uIHwgbnVsbCkgPT4gdm9pZCxcbiAgY2xhc3NOYW1lPzogc3RyaW5nLFxuKTogTXV0YWJsZVJlZk9iamVjdDxIVE1MRWxlbWVudD4ge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICBjb25zdCBhbmNob3JFbGVtZW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50Pihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSlcbiAgY29uc3QgcG9zaXRpb25NZW51ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcbiAgICBjb25zdCBjb250YWluZXJEaXYgPSBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnRcblxuICAgIGNvbnN0IFZFUlRJQ0FMX09GRlNFVCA9IDMyIGFzIGNvbnN0XG5cbiAgICBjb25zdCBtZW51RWxlID0gY29udGFpbmVyRGl2LmZpcnN0Q2hpbGQgYXMgRWxlbWVudFxuICAgIGlmIChyb290RWxlbWVudCAhPT0gbnVsbCAmJiByZXNvbHV0aW9uICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB7IGhlaWdodCwgd2lkdGggfSA9IHJlc29sdXRpb24uZ2V0UmVjdCgpXG4gICAgICBsZXQgeyBsZWZ0LCB0b3AgfSA9IHJlc29sdXRpb24uZ2V0UmVjdCgpXG5cbiAgICAgIGNvbnN0IHJhd1RvcCA9IHRvcFxuICAgICAgdG9wIC09IGFuY2hvckVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFlcbiAgICAgIGxlZnQgLT0gYW5jaG9yRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0ICsgd2luZG93LnNjcm9sbFhcbiAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS5sZWZ0ID0gYCR7bGVmdCArIHdpbmRvdy5zY3JvbGxYfXB4YFxuICAgICAgY29udGFpbmVyRGl2LnN0eWxlLmhlaWdodCA9IGAke2hlaWdodH1weGBcbiAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YFxuICAgICAgaWYgKG1lbnVFbGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgbWVudVJlY3QgPSBtZW51RWxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgIGNvbnN0IG1lbnVIZWlnaHQgPSBtZW51UmVjdC5oZWlnaHRcbiAgICAgICAgY29uc3QgbWVudVdpZHRoID0gbWVudVJlY3Qud2lkdGhcblxuICAgICAgICBjb25zdCByb290RWxlbWVudFJlY3QgPSByb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuXG4gICAgICAgIGlmIChsZWZ0ICsgbWVudVdpZHRoID4gcm9vdEVsZW1lbnRSZWN0LnJpZ2h0KSB7XG4gICAgICAgICAgY29udGFpbmVyRGl2LnN0eWxlLmxlZnQgPSBgJHtyb290RWxlbWVudFJlY3QucmlnaHQgLSBtZW51V2lkdGggKyB3aW5kb3cuc2Nyb2xsWH1weGBcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHdvdWxkR29PZmZCb3R0b21PZlNjcmVlbiA9IHJhd1RvcCArIG1lbnVIZWlnaHQgKyBWRVJUSUNBTF9PRkZTRVQgPiB3aW5kb3cuaW5uZXJIZWlnaHRcbiAgICAgICAgLy9jb25zdCB3b3VsZEdvT2ZmQm90dG9tT2ZDb250YWluZXIgPSB0b3AgKyBtZW51SGVpZ2h0ID4gcm9vdEVsZW1lbnRSZWN0LmJvdHRvbVxuICAgICAgICBjb25zdCB3b3VsZEdvT2ZmVG9wT2ZTY3JlZW4gPSByYXdUb3AgPCAwXG5cbiAgICAgICAgLy8gUG9zaXRpb24gc2xhc2ggbWVudSBhYm92ZSB0aGUgY3Vyc29yIGluc3RlYWQgb2YgYmVsb3cgKGRlZmF1bHQpIGlmIGl0IHdvdWxkIG90aGVyd2lzZSBnbyBvZmYgdGhlIGJvdHRvbSBvZiB0aGUgc2NyZWVuLlxuICAgICAgICBpZiAod291bGRHb09mZkJvdHRvbU9mU2NyZWVuICYmICF3b3VsZEdvT2ZmVG9wT2ZTY3JlZW4pIHtcbiAgICAgICAgICBjb25zdCBtYXJnaW4gPSAyNFxuICAgICAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS50b3AgPSBgJHtcbiAgICAgICAgICAgIHRvcCArIFZFUlRJQ0FMX09GRlNFVCAtIG1lbnVIZWlnaHQgKyB3aW5kb3cuc2Nyb2xsWSAtIChoZWlnaHQgKyBtYXJnaW4pXG4gICAgICAgICAgfXB4YFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS50b3AgPSBgJHt0b3AgKyB3aW5kb3cuc2Nyb2xsWSArIFZFUlRJQ0FMX09GRlNFVH1weGBcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWNvbnRhaW5lckRpdi5pc0Nvbm5lY3RlZCkge1xuICAgICAgICBpZiAoY2xhc3NOYW1lICE9IG51bGwpIHtcbiAgICAgICAgICBjb250YWluZXJEaXYuY2xhc3NOYW1lID0gY2xhc3NOYW1lXG4gICAgICAgIH1cbiAgICAgICAgY29udGFpbmVyRGl2LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICdTbGFzaCBtZW51JylcbiAgICAgICAgY29udGFpbmVyRGl2LnNldEF0dHJpYnV0ZSgnaWQnLCAnc2xhc2gtbWVudScpXG4gICAgICAgIGNvbnRhaW5lckRpdi5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAnbGlzdGJveCcpXG4gICAgICAgIGNvbnRhaW5lckRpdi5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJ1xuICAgICAgICBjb250YWluZXJEaXYuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnXG4gICAgICAgIGFuY2hvckVsZW0uYXBwZW5kKGNvbnRhaW5lckRpdilcbiAgICAgIH1cbiAgICAgIGFuY2hvckVsZW1lbnRSZWYuY3VycmVudCA9IGNvbnRhaW5lckRpdlxuICAgICAgcm9vdEVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWNvbnRyb2xzJywgJ3NsYXNoLW1lbnUnKVxuICAgIH1cbiAgfSwgW2VkaXRvciwgcmVzb2x1dGlvbiwgY2xhc3NOYW1lLCBhbmNob3JFbGVtXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcbiAgICBpZiAocmVzb2x1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgcG9zaXRpb25NZW51KClcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChyb290RWxlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAgIHJvb3RFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1jb250cm9scycpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250YWluZXJEaXYgPSBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnRcbiAgICAgICAgaWYgKGNvbnRhaW5lckRpdiAhPT0gbnVsbCAmJiBjb250YWluZXJEaXYuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgICBjb250YWluZXJEaXYucmVtb3ZlKClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkaXRvciwgcG9zaXRpb25NZW51LCByZXNvbHV0aW9uXSlcblxuICBjb25zdCBvblZpc2liaWxpdHlDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoaXNJblZpZXc6IGJvb2xlYW4pID0+IHtcbiAgICAgIGlmIChyZXNvbHV0aW9uICE9PSBudWxsKSB7XG4gICAgICAgIGlmICghaXNJblZpZXcpIHtcbiAgICAgICAgICBzZXRSZXNvbHV0aW9uKG51bGwpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFtyZXNvbHV0aW9uLCBzZXRSZXNvbHV0aW9uXSxcbiAgKVxuXG4gIHVzZUR5bmFtaWNQb3NpdGlvbmluZyhyZXNvbHV0aW9uLCBhbmNob3JFbGVtZW50UmVmLmN1cnJlbnQsIHBvc2l0aW9uTWVudSwgb25WaXNpYmlsaXR5Q2hhbmdlKVxuXG4gIHJldHVybiBhbmNob3JFbGVtZW50UmVmXG59XG4iXSwibmFtZXMiOlsiTGV4aWNhbE1lbnUiLCJTQ1JPTExfVFlQRUFIRUFEX09QVElPTl9JTlRPX1ZJRVdfQ09NTUFORCIsImdldFNjcm9sbFBhcmVudCIsInVzZUR5bmFtaWNQb3NpdGlvbmluZyIsInVzZU1lbnVBbmNob3JSZWYiLCJiYXNlQ2xhc3MiLCJzY3JvbGxJbnRvVmlld0lmTmVlZGVkIiwidGFyZ2V0IiwidHlwZWFoZWFkQ29udGFpbmVyTm9kZSIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ0eXBlYWhlYWRSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9wIiwiaGVpZ2h0Iiwid2luZG93IiwiaW5uZXJIZWlnaHQiLCJzY3JvbGxJbnRvVmlldyIsImJsb2NrIiwiZ2V0RnVsbE1hdGNoT2Zmc2V0IiwiZG9jdW1lbnRUZXh0IiwiZW50cnlUZXh0Iiwib2Zmc2V0IiwidHJpZ2dlck9mZnNldCIsImkiLCJsZW5ndGgiLCJzdWJzdHIiLCIkc3BsaXROb2RlQ29udGFpbmluZ1F1ZXJ5IiwibWF0Y2giLCJzZWxlY3Rpb24iLCIkZ2V0U2VsZWN0aW9uIiwiJGlzUmFuZ2VTZWxlY3Rpb24iLCJpc0NvbGxhcHNlZCIsImFuY2hvciIsInR5cGUiLCJhbmNob3JOb2RlIiwiZ2V0Tm9kZSIsImlzU2ltcGxlVGV4dCIsInNlbGVjdGlvbk9mZnNldCIsInRleHRDb250ZW50IiwiZ2V0VGV4dENvbnRlbnQiLCJzbGljZSIsImNoYXJhY3Rlck9mZnNldCIsInJlcGxhY2VhYmxlU3RyaW5nIiwicXVlcnlPZmZzZXQiLCJtYXRjaGluZ1N0cmluZyIsInN0YXJ0T2Zmc2V0IiwibmV3Tm9kZSIsInNwbGl0VGV4dCIsImVsZW1lbnQiLCJpbmNsdWRlSGlkZGVuIiwic3R5bGUiLCJnZXRDb21wdXRlZFN0eWxlIiwiZXhjbHVkZVN0YXRpY1BhcmVudCIsInBvc2l0aW9uIiwib3ZlcmZsb3dSZWdleCIsImJvZHkiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidGVzdCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwib3ZlcmZsb3dYIiwiaXNUcmlnZ2VyVmlzaWJsZUluTmVhcmVzdFNjcm9sbENvbnRhaW5lciIsInRhcmdldEVsZW1lbnQiLCJjb250YWluZXJFbGVtZW50IiwidFJlY3QiLCJjUmVjdCIsImJvdHRvbSIsInJlc29sdXRpb24iLCJvblJlcG9zaXRpb24iLCJvblZpc2liaWxpdHlDaGFuZ2UiLCJlZGl0b3IiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwidXNlRWZmZWN0Iiwicm9vdEVsZW1lbnQiLCJnZXRSb290RWxlbWVudCIsInJvb3RTY3JvbGxQYXJlbnQiLCJ0aWNraW5nIiwicHJldmlvdXNJc0luVmlldyIsImhhbmRsZVNjcm9sbCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImlzSW5WaWV3IiwicmVzaXplT2JzZXJ2ZXIiLCJSZXNpemVPYnNlcnZlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJjYXB0dXJlIiwicGFzc2l2ZSIsIm9ic2VydmUiLCJ1bm9ic2VydmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY3JlYXRlQ29tbWFuZCIsImFuY2hvckVsZW1lbnRSZWYiLCJjbG9zZSIsImdyb3Vwc1dpdGhPcHRpb25zIiwibWVudVJlbmRlckZuIiwib25TZWxlY3RPcHRpb24iLCJzaG91bGRTcGxpdE5vZGVXaXRoUXVlcnkiLCJzZWxlY3RlZE9wdGlvbktleSIsInNldFNlbGVjdGVkT3B0aW9uS2V5IiwidXNlU3RhdGUiLCJ1cGRhdGVTZWxlY3RlZE9wdGlvbiIsInVzZUNhbGxiYWNrIiwib3B0aW9uIiwicm9vdEVsZW0iLCJzZXRBdHRyaWJ1dGUiLCJrZXkiLCJzZXRTZWxlY3RlZE9wdGlvbktleVRvRmlyc3RNYXRjaGluZ09wdGlvbiIsImFsbE9wdGlvbnMiLCJmbGF0TWFwIiwiZ3JvdXAiLCJvcHRpb25zIiwiZmlyc3RNYXRjaGluZ09wdGlvbiIsInNlbGVjdE9wdGlvbkFuZENsZWFuVXAiLCJzZWxlY3RlZE9wdGlvbiIsInVwZGF0ZSIsInRleHROb2RlQ29udGFpbmluZ1F1ZXJ5IiwicmVtb3ZlQXR0cmlidXRlIiwidXNlTGF5b3V0RWZmZWN0IiwibWVyZ2VSZWdpc3RlciIsInJlZ2lzdGVyQ29tbWFuZCIsInJlZiIsImN1cnJlbnQiLCJDT01NQU5EX1BSSU9SSVRZX0xPVyIsIktFWV9BUlJPV19ET1dOX0NPTU1BTkQiLCJwYXlsb2FkIiwiZXZlbnQiLCJzZWxlY3RlZEluZGV4IiwiZmluZEluZGV4IiwibmV3U2VsZWN0ZWRJbmRleCIsIm5ld1NlbGVjdGVkT3B0aW9uIiwiZGlzcGF0Y2hDb21tYW5kIiwiaW5kZXgiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiIsIktFWV9BUlJPV19VUF9DT01NQU5EIiwiS0VZX0VTQ0FQRV9DT01NQU5EIiwiS0VZX1RBQl9DT01NQU5EIiwiZmluZCIsIktFWV9FTlRFUl9DT01NQU5EIiwibGlzdEl0ZW1Qcm9wcyIsInVzZU1lbW8iLCJhbmNob3JFbGVtIiwic2V0UmVzb2x1dGlvbiIsImNsYXNzTmFtZSIsInVzZVJlZiIsImNyZWF0ZUVsZW1lbnQiLCJwb3NpdGlvbk1lbnUiLCJjb250YWluZXJEaXYiLCJWRVJUSUNBTF9PRkZTRVQiLCJtZW51RWxlIiwiZmlyc3RDaGlsZCIsIndpZHRoIiwiZ2V0UmVjdCIsImxlZnQiLCJyYXdUb3AiLCJzY3JvbGxZIiwic2Nyb2xsWCIsIm1lbnVSZWN0IiwibWVudUhlaWdodCIsIm1lbnVXaWR0aCIsInJvb3RFbGVtZW50UmVjdCIsInJpZ2h0Iiwid291bGRHb09mZkJvdHRvbU9mU2NyZWVuIiwid291bGRHb09mZlRvcE9mU2NyZWVuIiwibWFyZ2luIiwiaXNDb25uZWN0ZWQiLCJkaXNwbGF5IiwiYXBwZW5kIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0lBd01nQkEsV0FBVztlQUFYQTs7SUFMSEMseUNBQXlDO2VBQXpDQTs7SUFqRkdDLGVBQWU7ZUFBZkE7O0lBZ0NBQyxxQkFBcUI7ZUFBckJBOztJQW9UQUMsZ0JBQWdCO2VBQWhCQTs7O3dDQWxjMEI7dUJBQ1o7eUJBV3ZCO3VCQUM0RTtBQVduRixNQUFNQyxZQUFZO0FBYWxCLE1BQU1DLHlCQUF5QixDQUFDQztJQUM5QixNQUFNQyx5QkFBeUJDLFNBQVNDLGNBQWMsQ0FBQztJQUN2RCxJQUFJLENBQUNGLHdCQUF3QjtJQUU3QixNQUFNRyxnQkFBZ0JILHVCQUF1QkkscUJBQXFCO0lBRWxFLElBQUlELGNBQWNFLEdBQUcsR0FBR0YsY0FBY0csTUFBTSxHQUFHQyxPQUFPQyxXQUFXLEVBQUU7UUFDakVSLHVC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
|