decap-cms-core 3.6.3 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/dist/decap-cms-core.js +26 -26
  2. package/dist/decap-cms-core.js.LICENSE.txt +22 -4
  3. package/dist/decap-cms-core.js.map +1 -1
  4. package/dist/esm/actions/config.js +57 -49
  5. package/dist/esm/actions/editorialWorkflow.js +4 -4
  6. package/dist/esm/actions/entries.js +8 -14
  7. package/dist/esm/actions/mediaLibrary.js +6 -11
  8. package/dist/esm/actions/search.js +2 -2
  9. package/dist/esm/actions/status.js +2 -8
  10. package/dist/esm/backend.js +70 -79
  11. package/dist/esm/bootstrap.js +2 -2
  12. package/dist/esm/components/App/App.js +28 -34
  13. package/dist/esm/components/App/Header.js +32 -39
  14. package/dist/esm/components/Collection/Collection.js +45 -48
  15. package/dist/esm/components/Collection/CollectionSearch.js +76 -81
  16. package/dist/esm/components/Collection/CollectionTop.js +1 -2
  17. package/dist/esm/components/Collection/Entries/Entries.js +2 -4
  18. package/dist/esm/components/Collection/Entries/EntriesCollection.js +25 -29
  19. package/dist/esm/components/Collection/Entries/EntriesSearch.js +34 -38
  20. package/dist/esm/components/Collection/Entries/EntryCard.js +8 -13
  21. package/dist/esm/components/Collection/Entries/EntryListing.js +72 -76
  22. package/dist/esm/components/Collection/FilterControl.js +1 -1
  23. package/dist/esm/components/Collection/GroupControl.js +1 -1
  24. package/dist/esm/components/Collection/NestedCollection.js +50 -53
  25. package/dist/esm/components/Collection/Sidebar.js +35 -38
  26. package/dist/esm/components/Collection/SortControl.js +3 -3
  27. package/dist/esm/components/Collection/ViewStyleControl.js +1 -2
  28. package/dist/esm/components/Editor/Editor.js +197 -201
  29. package/dist/esm/components/Editor/EditorControlPane/EditorControl.js +79 -87
  30. package/dist/esm/components/Editor/EditorControlPane/EditorControlPane.js +75 -86
  31. package/dist/esm/components/Editor/EditorControlPane/Widget.js +226 -228
  32. package/dist/esm/components/Editor/EditorInterface.js +69 -80
  33. package/dist/esm/components/Editor/EditorPreviewPane/EditorPreview.js +1 -2
  34. package/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewContent.js +20 -28
  35. package/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewPane.js +163 -161
  36. package/dist/esm/components/Editor/EditorPreviewPane/PreviewHOC.js +4 -8
  37. package/dist/esm/components/Editor/EditorToolbar.js +335 -347
  38. package/dist/esm/components/Editor/withWorkflow.js +5 -6
  39. package/dist/esm/components/MediaLibrary/MediaLibrary.js +304 -294
  40. package/dist/esm/components/MediaLibrary/MediaLibraryButtons.js +40 -46
  41. package/dist/esm/components/MediaLibrary/MediaLibraryCard.js +1 -2
  42. package/dist/esm/components/MediaLibrary/MediaLibraryCardGrid.js +8 -13
  43. package/dist/esm/components/MediaLibrary/MediaLibraryModal.js +3 -3
  44. package/dist/esm/components/MediaLibrary/MediaLibrarySearch.js +1 -2
  45. package/dist/esm/components/MediaLibrary/MediaLibraryTop.js +3 -6
  46. package/dist/esm/components/UI/DragDrop.js +15 -23
  47. package/dist/esm/components/UI/ErrorBoundary.js +23 -25
  48. package/dist/esm/components/UI/Modal.js +10 -12
  49. package/dist/esm/components/UI/Notifications.js +4 -8
  50. package/dist/esm/components/UI/SettingsDropdown.js +4 -8
  51. package/dist/esm/components/Workflow/Workflow.js +19 -20
  52. package/dist/esm/components/Workflow/WorkflowCard.js +2 -4
  53. package/dist/esm/components/Workflow/WorkflowList.js +105 -113
  54. package/dist/esm/constants/configSchema.js +18 -16
  55. package/dist/esm/formats/formats.js +11 -12
  56. package/dist/esm/formats/frontmatter.js +17 -21
  57. package/dist/esm/formats/yaml.js +2 -6
  58. package/dist/esm/index.js +3 -7
  59. package/dist/esm/integrations/providers/algolia/implementation.js +12 -14
  60. package/dist/esm/integrations/providers/assetStore/implementation.js +10 -12
  61. package/dist/esm/lib/formatters.js +13 -17
  62. package/dist/esm/lib/i18n.js +35 -33
  63. package/dist/esm/lib/phrases.js +2 -2
  64. package/dist/esm/lib/registry.js +35 -35
  65. package/dist/esm/lib/serializeEntryValues.js +3 -3
  66. package/dist/esm/lib/stega.js +142 -0
  67. package/dist/esm/lib/urlHelper.js +16 -18
  68. package/dist/esm/mediaLibrary.js +3 -4
  69. package/dist/esm/reducers/collections.js +26 -42
  70. package/dist/esm/reducers/combinedReducer.js +3 -6
  71. package/dist/esm/reducers/config.js +3 -7
  72. package/dist/esm/reducers/editorialWorkflow.js +5 -9
  73. package/dist/esm/reducers/entries.js +33 -35
  74. package/dist/esm/reducers/entryDraft.js +2 -2
  75. package/dist/esm/reducers/integrations.js +8 -14
  76. package/dist/esm/reducers/mediaLibrary.js +18 -20
  77. package/dist/esm/reducers/notifications.js +4 -8
  78. package/dist/esm/types/immutable.js +7 -1
  79. package/dist/esm/valueObjects/AssetProxy.js +1 -9
  80. package/dist/esm/valueObjects/EditorComponent.js +18 -25
  81. package/dist/esm/valueObjects/Entry.js +2 -2
  82. package/index.d.ts +2 -0
  83. package/package.json +8 -11
  84. package/src/actions/__tests__/config.spec.js +3 -3
  85. package/src/actions/config.ts +3 -1
  86. package/src/actions/editorialWorkflow.ts +1 -1
  87. package/src/actions/entries.ts +1 -1
  88. package/src/actions/search.ts +1 -1
  89. package/src/backend.ts +8 -1
  90. package/src/components/App/App.js +5 -0
  91. package/src/components/App/Header.js +3 -0
  92. package/src/components/Collection/Collection.js +5 -0
  93. package/src/components/Collection/CollectionSearch.js +5 -0
  94. package/src/components/Collection/Entries/EntriesCollection.js +4 -1
  95. package/src/components/Collection/Entries/EntriesSearch.js +4 -1
  96. package/src/components/Collection/Entries/EntryListing.js +5 -0
  97. package/src/components/Collection/Entries/__tests__/__snapshots__/EntriesCollection.spec.js.snap +0 -4
  98. package/src/components/Collection/NestedCollection.js +6 -1
  99. package/src/components/Collection/Sidebar.js +5 -0
  100. package/src/components/Editor/Editor.js +4 -1
  101. package/src/components/Editor/EditorControlPane/EditorControl.js +7 -1
  102. package/src/components/Editor/EditorControlPane/Widget.js +5 -0
  103. package/src/components/Editor/EditorPreviewPane/EditorPreviewPane.js +1 -1
  104. package/src/components/Editor/EditorToolbar.js +3 -0
  105. package/src/components/Editor/__tests__/Editor.spec.js +3 -4
  106. package/src/components/Editor/__tests__/__snapshots__/Editor.spec.js.snap +5 -5
  107. package/src/components/Editor/__tests__/__snapshots__/EditorToolbar.spec.js.snap +708 -393
  108. package/src/components/MediaLibrary/MediaLibrary.js +5 -1
  109. package/src/components/MediaLibrary/MediaLibraryModal.js +1 -1
  110. package/src/components/UI/ErrorBoundary.js +6 -1
  111. package/src/components/UI/Modal.js +3 -0
  112. package/src/components/Workflow/Workflow.js +3 -0
  113. package/src/components/Workflow/WorkflowList.js +5 -0
  114. package/src/constants/__tests__/configSchema.spec.js +1 -1
  115. package/src/formats/formats.ts +1 -1
  116. package/src/integrations/providers/algolia/implementation.js +2 -2
  117. package/src/integrations/providers/assetStore/implementation.js +2 -1
  118. package/src/lib/formatters.ts +4 -1
  119. package/src/lib/i18n.ts +3 -1
  120. package/src/lib/phrases.js +1 -1
  121. package/src/lib/serializeEntryValues.js +1 -1
  122. package/src/lib/stega.ts +145 -0
  123. package/src/lib/urlHelper.ts +4 -1
  124. package/src/mediaLibrary.ts +1 -1
  125. package/src/reducers/collections.ts +2 -1
  126. package/src/reducers/editorialWorkflow.ts +1 -1
  127. package/src/reducers/entries.ts +6 -1
  128. package/src/reducers/entryDraft.js +1 -1
  129. package/src/types/immutable.ts +10 -0
  130. package/src/types/redux.ts +2 -0
  131. package/src/valueObjects/EditorComponent.js +1 -1
  132. package/src/valueObjects/Entry.ts +1 -1
@@ -1,8 +1,5 @@
1
1
  import _styled from "@emotion/styled/base";
2
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
5
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
2
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
6
3
  function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
7
4
  import PropTypes from 'prop-types';
8
5
  import React, { Component } from 'react';
@@ -29,8 +26,7 @@ const styles = {
29
26
  styles: "height:100%;overflow-y:auto;label:pane;"
30
27
  } : {
31
28
  name: "1yvxf4n-pane",
32
- styles: "height:100%;overflow-y:auto;label:pane;",
33
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JJbnRlcmZhY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0NXIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JJbnRlcmZhY2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MsIEdsb2JhbCB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCBTcGxpdFBhbmUgZnJvbSAncmVhY3Qtc3BsaXQtcGFuZSc7XG5pbXBvcnQge1xuICBjb2xvcnMsXG4gIGNvbG9yc1JhdyxcbiAgY29tcG9uZW50cyxcbiAgdHJhbnNpdGlvbnMsXG4gIEljb25CdXR0b24sXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuaW1wb3J0IHsgU2Nyb2xsU3luYywgU2Nyb2xsU3luY1BhbmUgfSBmcm9tICdyZWFjdC1zY3JvbGwtc3luYyc7XG5cbmltcG9ydCBFZGl0b3JDb250cm9sUGFuZSBmcm9tICcuL0VkaXRvckNvbnRyb2xQYW5lL0VkaXRvckNvbnRyb2xQYW5lJztcbmltcG9ydCBFZGl0b3JQcmV2aWV3UGFuZSBmcm9tICcuL0VkaXRvclByZXZpZXdQYW5lL0VkaXRvclByZXZpZXdQYW5lJztcbmltcG9ydCBFZGl0b3JUb29sYmFyIGZyb20gJy4vRWRpdG9yVG9vbGJhcic7XG5pbXBvcnQgeyBoYXNJMThuLCBnZXRJMThuSW5mbywgZ2V0UHJldmlld0VudHJ5IH0gZnJvbSAnLi4vLi4vbGliL2kxOG4nO1xuaW1wb3J0IHsgRklMRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29sbGVjdGlvblR5cGVzJztcbmltcG9ydCB7IGdldEZpbGVGcm9tU2x1ZyB9IGZyb20gJy4uLy4uL3JlZHVjZXJzL2NvbGxlY3Rpb25zJztcblxuY29uc3QgUFJFVklFV19WSVNJQkxFID0gJ2Ntcy5wcmV2aWV3LXZpc2libGUnO1xuY29uc3QgU0NST0xMX1NZTkNfRU5BQkxFRCA9ICdjbXMuc2Nyb2xsLXN5bmMtZW5hYmxlZCc7XG5jb25zdCBTUExJVF9QQU5FX1BPU0lUSU9OID0gJ2Ntcy5zcGxpdC1wYW5lLXBvc2l0aW9uJztcbmNvbnN0IEkxOE5fVklTSUJMRSA9ICdjbXMuaTE4bi12aXNpYmxlJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBzcGxpdFBhbmU6IGNzc2BcbiAgICAke2NvbXBvbmVudHMuY2FyZH07XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIGAsXG4gIHBhbmU6IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgYCxcbn07XG5cbmNvbnN0IEVkaXRvclRvZ2dsZSA9IHN0eWxlZChJY29uQnV0dG9uKWBcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbmA7XG5cbmZ1bmN0aW9uIFJlYWN0U3BsaXRQYW5lR2xvYmFsU3R5bGVzKCkge1xuICByZXR1cm4gKFxuICAgIDxHbG9iYWxcbiAgICAgIHN0eWxlcz17Y3NzYFxuICAgICAgICAuUmVzaXplci52ZXJ0aWNhbCB7XG4gICAgICAgICAgd2lkdGg6IDJweDtcbiAgICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHt0cmFuc2l0aW9ucy5tYWlufTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgd2lkdGg6IDRweDtcbiAgICAgICAgICAgICAgbGVmdDogLTFweDtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgfVxuICAgIC8+XG4gICk7XG59XG5cbmNvbnN0IFN0eWxlZFNwbGl0UGFuZSA9IHN0eWxlZChTcGxpdFBhbmUpYFxuICAke3N0eWxlcy5zcGxpdFBhbmV9O1xuXG4gIC8qKlxuICAgKiBRdWljayBmaXggZm9yIHByZXZpZXcgcGFuZSBub3QgZnVsbHkgZGlzcGxheWluZyBpbiBTYWZhcmlcbiAgICovXG4gIC5QYW5lIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbmA7XG5cbmNvbnN0IE5vUHJldmlld0NvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnNwbGl0UGFuZX07XG5gO1xuXG5jb25zdCBFZGl0b3JDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiA4MDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy10b3A6IDY2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzLmJhY2tncm91bmR9O1xuYDtcblxuY29uc3QgRWRpdG9yID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgUHJldmlld1BhbmVDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBoZWlnaHQ6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiAke3Byb3BzID0+IChwcm9wcy5ibG9ja0VudHJ5ID8gJ25vbmUnIDogJ2F1dG8nKX07XG4gIG92ZXJmbG93LXk6ICR7cHJvcHMgPT4gKHByb3BzLm92ZXJGbG93ID8gJ2F1dG8nIDogJ2hpZGRlbicpfTtcbmA7XG5cbmNvbnN0IENvbnRyb2xQYW5lQ29udGFpbmVyID0gc3R5bGVkKFByZXZpZXdQYW5lQ29udGFpbmVyKWBcbiAgcGFkZGluZzogMCAxNnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbmA7XG5cbmNvbnN0IFZpZXdDb250cm9scyA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMHB4O1xuICByaWdodDogMTBweDtcbiAgei1pbmRleDogJHt6SW5kZXguekluZGV4Mjk5fTtcbmA7XG5cbmZ1bmN0aW9uIEVkaXRvckNvbnRlbnQoe1xuICBpMThuVmlzaWJsZSxcbiAgcHJldmlld1Zpc2libGUsXG4gIGVkaXRvcixcbiAgZWRpdG9yV2l0aEVkaXRvcixcbiAgZWRpdG9yV2l0aFByZXZpZXcsXG59KSB7XG4gIGlmIChpMThuVmlzaWJsZSkge1xuICAgIHJldHVybiBlZGl0b3JXaXRoRWRpdG9yO1xuICB9IGVsc2UgaWYgKHByZXZpZXdWaXNpYmxlKSB7XG4gICAgcmV0dXJuIGVkaXRvcldpdGhQcmV2aWV3O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiA8Tm9QcmV2aWV3Q29udGFpbmVyPntlZGl0b3J9PC9Ob1ByZXZpZXdDb250YWluZXI+O1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzUHJldmlld0VuYWJsZWQoY29sbGVjdGlvbiwgZW50cnkpIHtcbiAgaWYgKGNvbGxlY3Rpb24uZ2V0KCd0eXBlJykgPT09IEZJTEVTKSB7XG4gICAgY29uc3QgZmlsZSA9IGdldEZpbGVGcm9tU2x1Zyhjb2xsZWN0aW9uLCBlbnRyeS5nZXQoJ3NsdWcnKSk7XG4gICAgY29uc3QgcHJldmlld0VuYWJsZWQgPSBmaWxlPy5nZXRJbihbJ2VkaXRvcicsICdwcmV2aWV3J10pO1xuICAgIGlmIChwcmV2aWV3RW5hYmxlZCAhPSBudWxsKSByZXR1cm4gcHJldmlld0VuYWJsZWQ7XG4gIH1cbiAgcmV0dXJuIGNvbGxlY3Rpb24uZ2V0SW4oWydlZGl0b3InLCAncHJldmlldyddLCB0cnVlKTtcbn1cblxuY2xhc3MgRWRpdG9ySW50ZXJmYWNlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGUgPSB7XG4gICAgc2hvd0V2ZW50QmxvY2tlcjogZmFsc2UsXG4gICAgcHJldmlld1Zpc2libGU6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFBSRVZJRVdfVklTSUJMRSkgIT09ICdmYWxzZScsXG4gICAgc2Nyb2xsU3luY0VuYWJsZWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNDUk9MTF9TWU5DX0VOQUJMRUQpICE9PSAnZmFsc2UnLFxuICAgIGkxOG5WaXNpYmxlOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShJMThOX1ZJU0lCTEUpICE9PSAnZmFsc2UnLFxuICB9O1xuXG4gIGhhbmRsZUZpZWxkQ2xpY2sgPSBwYXRoID0+IHtcbiAgICB0aGlzLmNvbnRyb2xQYW5lUmVmPy5mb2N1cyhwYXRoKTtcbiAgfTtcblxuICBoYW5kbGVTcGxpdFBhbmVEcmFnU3RhcnQgPSAoKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHNob3dFdmVudEJsb2NrZXI6IHRydWUgfSk7XG4gIH07XG5cbiAgaGFuZGxlU3BsaXRQYW5lRHJhZ0ZpbmlzaGVkID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93RXZlbnRCbG9ja2VyOiBmYWxzZSB9KTtcbiAgfTtcblxuICBoYW5kbGVPblBlcnNpc3QgPSBhc3luYyAob3B0cyA9IHt9KSA9PiB7XG4gICAgY29uc3QgeyBjcmVhdGVOZXcgPSBmYWxzZSwgZHVwbGljYXRlID0gZmFsc2UgfSA9IG9wdHM7XG4gICAgYXdhaXQgdGhpcy5jb250cm9sUGFuZVJlZi5zd2l0Y2hUb0RlZmF1bHRMb2NhbGUoKTtcbiAgICB0aGlzLmNvbnRyb2xQYW5lUmVmLnZhbGlkYXRlKCk7XG4gICAgdGhpcy5wcm9wcy5vblBlcnNpc3QoeyBjcmVhdGVOZXcsIGR1cGxpY2F0ZSB9KTtcbiAgfTtcblxuICBoYW5kbGVPblB1Ymxpc2ggPSBhc3luYyAob3B0cyA9IHt9KSA9PiB7XG4gICAgY29uc3QgeyBjcmVhdGVOZXcgPSBmYWxzZSwgZHVwbGljYXRlID0gZmFsc2UgfSA9IG9wdHM7XG4gICAgYXdhaXQgdGhpcy5jb250cm9sUGFuZVJlZi5zd2l0Y2hUb0RlZmF1bHRMb2NhbGUoKTtcbiAgICB0aGlzLmNvbnRyb2xQYW5lUmVmLnZhbGlkYXRlKCk7XG4gICAgdGhpcy5wcm9wcy5vblB1Ymxpc2goeyBjcmVhdGVOZXcsIGR1cGxpY2F0ZSB9KTtcbiAgfTtcblxuICBoYW5kbGVUb2dnbGVQcmV2aWV3ID0gKCkgPT4ge1xuICAgIGNvbnN0IG5ld1ByZXZpZXdWaXNpYmxlID0gIXRoaXMuc3RhdGUucHJldmlld1Zpc2libGU7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHByZXZpZXdWaXNpYmxlOiBuZXdQcmV2aWV3VmlzaWJsZSB9KTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShQUkVWSUVXX1ZJU0lCTEUsIG5ld1ByZXZpZXdWaXNpYmxlKTtcbiAgfTtcblxuICBoYW5kbGVUb2dnbGVTY3JvbGxTeW5jID0gKCkgPT4ge1xuICAgIGNvbnN0IG5ld1Njcm9sbFN5bmNFbmFibGVkID0gIXRoaXMuc3RhdGUuc2Nyb2xsU3luY0VuYWJsZWQ7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHNjcm9sbFN5bmNFbmFibGVkOiBuZXdTY3JvbGxTeW5jRW5hYmxlZCB9KTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShTQ1JPTExfU1lOQ19FTkFCTEVELCBuZXdTY3JvbGxTeW5jRW5hYmxlZCk7XG4gIH07XG5cbiAgaGFuZGxlVG9nZ2xlSTE4biA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdJMThuVmlzaWJsZSA9ICF0aGlzLnN0YXRlLmkxOG5WaXNpYmxlO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBpMThuVmlzaWJsZTogbmV3STE4blZpc2libGUgfSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oSTE4Tl9WSVNJQkxFLCBuZXdJMThuVmlzaWJsZSk7XG4gIH07XG5cbiAgaGFuZGxlTGVmdFBhbmVsTG9jYWxlQ2hhbmdlID0gbG9jYWxlID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHsgbGVmdFBhbmVsTG9jYWxlOiBsb2NhbGUgfSk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNvbGxlY3Rpb24sXG4gICAgICBlbnRyeSxcbiAgICAgIGZpZWxkcyxcbiAgICAgIGZpZWxkc01ldGFEYXRhLFxuICAgICAgZmllbGRzRXJyb3JzLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBzaG93RGVsZXRlLFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIG9uQ2hhbmdlU3RhdHVzLFxuICAgICAgb25QdWJsaXNoLFxuICAgICAgdW5QdWJsaXNoLFxuICAgICAgb25EdXBsaWNhdGUsXG4gICAgICBvblZhbGlkYXRlLFxuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgaXNOZXdFbnRyeSxcbiAgICAgIGlzTW9kaWZpY2F0aW9uLFxuICAgICAgY3VycmVudFN0YXR1cyxcbiAgICAgIG9uTG9nb3V0Q2xpY2ssXG4gICAgICBsb2FkRGVwbG95UHJldmlldyxcbiAgICAgIGRlcGxveVByZXZpZXcsXG4gICAgICBkcmFmdEtleSxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHsgc2Nyb2xsU3luY0VuYWJsZWQsIHNob3dFdmVudEJsb2NrZXIgfSA9IHRoaXMuc3RhdGU7XG5cbiAgICBjb25zdCBwcmV2aWV3RW5hYmxlZCA9IGlzUHJldmlld0VuYWJsZWQoY29sbGVjdGlvbiwgZW50cnkpO1xuXG4gICAgY29uc3QgeyBsb2NhbGVzLCBkZWZhdWx0TG9jYWxlIH0gPSBnZXRJMThuSW5mbyh0aGlzLnByb3BzLmNvbGxlY3Rpb24pO1xuICAgIGNvbnN0IGNvbGxlY3Rpb25JMThuRW5hYmxlZCA9IGhhc0kxOG4oY29sbGVjdGlvbikgJiYgbG9jYWxlcy5sZW5ndGggPiAxO1xuICAgIGNvbnN0IGVkaXRvclByb3BzID0ge1xuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGVudHJ5LFxuICAgICAgZmllbGRzLFxuICAgICAgZmllbGRzTWV0YURhdGEsXG4gICAgICBmaWVsZHNFcnJvcnMsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uVmFsaWRhdGUsXG4gICAgfTtcblxuICAgIGNvbnN0IGxlZnRQYW5lbExvY2FsZSA9IHRoaXMuc3RhdGUubGVmdFBhbmVsTG9jYWxlIHx8IGxvY2FsZXM/LlswXTtcbiAgICBjb25zdCBlZGl0b3IgPSAoXG4gICAgICA8Q29udHJvbFBhbmVDb250YWluZXIgb3ZlckZsb3cgYmxvY2tFbnRyeT17c2hvd0V2ZW50QmxvY2tlcn0+XG4gICAgICAgIDxFZGl0b3JDb250cm9sUGFuZVxuICAgICAgICAgIHsuLi5lZGl0b3JQcm9wc31cbiAgICAgICAgICByZWY9e2MgPT4gKHRoaXMuY29udHJvbFBhbmVSZWYgPSBjKX1cbiAgICAgICAgICBsb2NhbGU9e2xlZnRQYW5lbExvY2FsZX1cbiAgICAgICAgICB0PXt0fVxuICAgICAgICAgIG9uTG9jYWxlQ2hhbmdlPXt0aGlzLmhhbmRsZUxlZnRQYW5lbExvY2FsZUNoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgIDwvQ29udHJvbFBhbmVDb250YWluZXI+XG4gICAgKTtcblxuICAgIGNvbnN0IGVkaXRvcjIgPSAoXG4gICAgICA8Q29udHJvbFBhbmVDb250YWluZXIgb3ZlckZsb3c9eyF0aGlzLnN0YXRlLnNjcm9sbFN5bmNFbmFibGVkfSBibG9ja0VudHJ5PXtzaG93RXZlbnRCbG9ja2VyfT5cbiAgICAgICAgPEVkaXRvckNvbnRyb2xQYW5lIHsuLi5lZGl0b3JQcm9wc30gbG9jYWxlPXtsb2NhbGVzPy5bMV19IHQ9e3R9IC8+XG4gICAgICA8L0NvbnRyb2xQYW5lQ29udGFpbmVyPlxuICAgICk7XG5cbiAgICBjb25zdCBwcmV2aWV3RW50cnkgPSBjb2xsZWN0aW9uSTE4bkVuYWJsZWRcbiAgICAgID8gZ2V0UHJldmlld0VudHJ5KGVudHJ5LCBsZWZ0UGFuZWxMb2NhbGUsIGRlZmF1bHRMb2NhbGUpXG4gICAgICA6IGVudHJ5O1xuXG4gICAgY29uc3QgZWRpdG9yV2l0aFByZXZpZXcgPSAoXG4gICAgICA8U2Nyb2xsU3luYyBlbmFibGVkPXt0aGlzLnN0YXRlLnNjcm9sbFN5bmNFbmFibGVkfT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8UmVhY3RTcGxpdFBhbmVHbG9iYWxTdHlsZXMgLz5cbiAgICAgICAgICA8U3R5bGVkU3BsaXRQYW5lXG4gICAgICAgICAgICBtYXhTaXplPXstMTAwfVxuICAgICAgICAgICAgbWluU2l6ZT17NDAwfVxuICAgICAgICAgICAgZGVmYXVsdFNpemU9e3BhcnNlSW50KGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNQTElUX1BBTkVfUE9TSVRJT04pLCAxMCkgfHwgJzUwJSd9XG4gICAgICAgICAgICBvbkNoYW5nZT17c2l6ZSA9PiBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShTUExJVF9QQU5FX1BPU0lUSU9OLCBzaXplKX1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0ZWQ9e3RoaXMuaGFuZGxlU3BsaXRQYW5lRHJhZ1N0YXJ0fVxuICAgICAgICAgICAgb25EcmFnRmluaXNoZWQ9e3RoaXMuaGFuZGxlU3BsaXRQYW5lRHJhZ0ZpbmlzaGVkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTY3JvbGxTeW5jUGFuZT57ZWRpdG9yfTwvU2Nyb2xsU3luY1BhbmU+XG4gICAgICAgICAgICA8UHJldmlld1BhbmVDb250YWluZXIgYmxvY2tFbnRyeT17c2hvd0V2ZW50QmxvY2tlcn0+XG4gICAgICAgICAgICAgIDxFZGl0b3JQcmV2aWV3UGFuZVxuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb249e2NvbGxlY3Rpb259XG4gICAgICAgICAgICAgICAgZW50cnk9e3ByZXZpZXdFbnRyeX1cbiAgICAgICAgICAgICAgICBmaWVsZHM9e2ZpZWxkc31cbiAgICAgICAgICAgICAgICBmaWVsZHNNZXRhRGF0YT17ZmllbGRzTWV0YURhdGF9XG4gICAgICAgICAgICAgICAgbG9jYWxlPXtsZWZ0UGFuZWxMb2NhbGV9XG4gICAgICAgICAgICAgICAgb25GaWVsZENsaWNrPXt0aGlzLmhhbmRsZUZpZWxkQ2xpY2t9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L1ByZXZpZXdQYW5lQ29udGFpbmVyPlxuICAgICAgICAgIDwvU3R5bGVkU3BsaXRQYW5lPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvU2Nyb2xsU3luYz5cbiAgICApO1xuXG4gICAgY29uc3QgZWRpdG9yV2l0aEVkaXRvciA9IChcbiAgICAgIDxTY3JvbGxTeW5jIGVuYWJsZWQ9e3RoaXMuc3RhdGUuc2Nyb2xsU3luY0VuYWJsZWR9PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxTdHlsZWRTcGxpdFBhbmVcbiAgICAgICAgICAgIG1heFNpemU9ey0xMDB9XG4gICAgICAgICAgICBkZWZhdWx0U2l6ZT17cGFyc2VJbnQobG9jYWxTdG9yYWdlLmdldEl0ZW0oU1BMSVRfUEFORV9QT1NJVElPTiksIDEwKSB8fCAnNTAlJ31cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtzaXplID0+IGxvY2FsU3RvcmFnZS5zZXRJdGVtKFNQTElUX1BBTkVfUE9TSVRJT04sIHNpemUpfVxuICAgICAgICAgICAgb25EcmFnU3RhcnRlZD17dGhpcy5oYW5kbGVTcGxpdFBhbmVEcmFnU3RhcnR9XG4gICAgICAgICAgICBvbkRyYWdGaW5pc2hlZD17dGhpcy5oYW5kbGVTcGxpdFBhbmVEcmFnRmluaXNoZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFNjcm9sbFN5bmNQYW5lPntlZGl0b3J9PC9TY3JvbGxTeW5jUGFuZT5cbiAgICAgICAgICAgIDxTY3JvbGxTeW5jUGFuZT57ZWRpdG9yMn08L1Njcm9sbFN5bmNQYW5lPlxuICAgICAgICAgIDwvU3R5bGVkU3BsaXRQYW5lPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvU2Nyb2xsU3luYz5cbiAgICApO1xuXG4gICAgY29uc3QgaTE4blZpc2libGUgPSBjb2xsZWN0aW9uSTE4bkVuYWJsZWQgJiYgdGhpcy5zdGF0ZS5pMThuVmlzaWJsZTtcbiAgICBjb25zdCBwcmV2aWV3VmlzaWJsZSA9IHByZXZpZXdFbmFibGVkICYmIHRoaXMuc3RhdGUucHJldmlld1Zpc2libGU7XG4gICAgY29uc3Qgc2Nyb2xsU3luY1Zpc2libGUgPSBpMThuVmlzaWJsZSB8fCBwcmV2aWV3VmlzaWJsZTtcblxuICAgIHJldHVybiAoXG4gICAgICA8RWRpdG9yQ29udGFpbmVyPlxuICAgICAgICA8RWRpdG9yVG9vbGJhclxuICAgICAgICAgIGlzUGVyc2lzdGluZz17ZW50cnkuZ2V0KCdpc1BlcnNpc3RpbmcnKX1cbiAgICAgICAgICBpc1B1Ymxpc2hpbmc9e2VudHJ5LmdldCgnaXNQdWJsaXNoaW5nJyl9XG4gICAgICAgICAgaXNVcGRhdGluZ1N0YXR1cz17ZW50cnkuZ2V0KCdpc1VwZGF0aW5nU3RhdHVzJyl9XG4gICAgICAgICAgaXNEZWxldGluZz17ZW50cnkuZ2V0KCdpc0RlbGV0aW5nJyl9XG4gICAgICAgICAgb25QZXJzaXN0PXt0aGlzLmhhbmRsZU9uUGVyc2lzdH1cbiAgICAgICAgICBvblBlcnNpc3RBbmROZXc9eygpID0+IHRoaXMuaGFuZGxlT25QZXJzaXN0KHsgY3JlYXRlTmV3OiB0cnVlIH0pfVxuICAgICAgICAgIG9uUGVyc2lzdEFuZER1cGxpY2F0ZT17KCkgPT4gdGhpcy5oYW5kbGVPblBlcnNpc3QoeyBjcmVhdGVOZXc6IHRydWUsIGR1cGxpY2F0ZTogdHJ1ZSB9KX1cbiAgICAgICAgICBvbkRlbGV0ZT17b25EZWxldGV9XG4gICAgICAgICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM9e29uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzfVxuICAgICAgICAgIG9uQ2hhbmdlU3RhdHVzPXtvbkNoYW5nZVN0YXR1c31cbiAgICAgICAgICBzaG93RGVsZXRlPXtzaG93RGVsZXRlfVxuICAgICAgICAgIG9uUHVibGlzaD17b25QdWJsaXNofVxuICAgICAgICAgIHVuUHVibGlzaD17dW5QdWJsaXNofVxuICAgICAgICAgIG9uRHVwbGljYXRlPXtvbkR1cGxpY2F0ZX1cbiAgICAgICAgICBvblB1Ymxpc2hBbmROZXc9eygpID0+IHRoaXMuaGFuZGxlT25QdWJsaXNoKHsgY3JlYXRlTmV3OiB0cnVlIH0pfVxuICAgICAgICAgIG9uUHVibGlzaEFuZER1cGxpY2F0ZT17KCkgPT4gdGhpcy5oYW5kbGVPblB1Ymxpc2goeyBjcmVhdGVOZXc6IHRydWUsIGR1cGxpY2F0ZTogdHJ1ZSB9KX1cbiAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgIGhhc0NoYW5nZWQ9e2hhc0NoYW5nZWR9XG4gICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICBjb2xsZWN0aW9uPXtjb2xsZWN0aW9ufVxuICAgICAgICAgIGhhc1dvcmtmbG93PXtoYXNXb3JrZmxvd31cbiAgICAgICAgICB1c2VPcGVuQXV0aG9yaW5nPXt1c2VPcGVuQXV0aG9yaW5nfVxuICAgICAgICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlcz17aGFzVW5wdWJsaXNoZWRDaGFuZ2VzfVxuICAgICAgICAgIGlzTmV3RW50cnk9e2lzTmV3RW50cnl9XG4gICAgICAgICAgaXNNb2RpZmljYXRpb249e2lzTW9kaWZpY2F0aW9ufVxuICAgICAgICAgIGN1cnJlbnRTdGF0dXM9e2N1cnJlbnRTdGF0dXN9XG4gICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICBsb2FkRGVwbG95UHJldmlldz17bG9hZERlcGxveVByZXZpZXd9XG4gICAgICAgICAgZGVwbG95UHJldmlldz17ZGVwbG95UHJldmlld31cbiAgICAgICAgICBlZGl0b3JCYWNrTGluaz17ZWRpdG9yQmFja0xpbmt9XG4gICAgICAgIC8+XG4gICAgICAgIDxFZGl0b3Iga2V5PXtkcmFmdEtleX0+XG4gICAgICAgICAgPFZpZXdDb250cm9scz5cbiAgICAgICAgICAgIHtjb2xsZWN0aW9uSTE4bkVuYWJsZWQgJiYgKFxuICAgICAgICAgICAgICA8RWRpdG9yVG9nZ2xlXG4gICAgICAgICAgICAgICAgaXNBY3RpdmU9e2kxOG5WaXNpYmxlfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuaGFuZGxlVG9nZ2xlSTE4bn1cbiAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJwYWdlXCJcbiAgICAgICAgICAgICAgICB0aXRsZT17dCgnZWRpdG9yLmVkaXRvckludGVyZmFjZS50b2dnbGVJMThuJyl9XG4gICAgICAgICAgICAgICAgbWFyZ2luVG9wPVwiNzBweFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge3ByZXZpZXdFbmFibGVkICYmIChcbiAgICAgICAgICAgICAgPEVkaXRvclRvZ2dsZVxuICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtwcmV2aWV3VmlzaWJsZX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVRvZ2dsZVByZXZpZXd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiZXllXCJcbiAgICAgICAgICAgICAgICB0aXRsZT17dCgnZWRpdG9yLmVkaXRvckludGVyZmFjZS50b2dnbGVQcmV2aWV3Jyl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge3Njcm9sbFN5bmNWaXNpYmxlICYmICFjb2xsZWN0aW9uLmdldEluKFsnZWRpdG9yJywgJ3Zpc3VhbEVkaXRpbmcnXSkgJiYgKFxuICAgICAgICAgICAgICA8RWRpdG9yVG9nZ2xlXG4gICAgICAgICAgICAgICAgaXNBY3RpdmU9e3Njcm9sbFN5bmNFbmFibGVkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuaGFuZGxlVG9nZ2xlU2Nyb2xsU3luY31cbiAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJzY3JvbGxcIlxuICAgICAgICAgICAgICAgIHRpdGxlPXt0KCdlZGl0b3IuZWRpdG9ySW50ZXJmYWNlLnRvZ2dsZVNjcm9sbFN5bmMnKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9WaWV3Q29udHJvbHM+XG4gICAgICAgICAgPEVkaXRvckNvbnRlbnRcbiAgICAgICAgICAgIGkxOG5WaXNpYmxlPXtpMThuVmlzaWJsZX1cbiAgICAgICAgICAgIHByZXZpZXdWaXNpYmxlPXtwcmV2aWV3VmlzaWJsZX1cbiAgICAgICAgICAgIGVkaXRvcj17ZWRpdG9yfVxuICAgICAgICAgICAgZWRpdG9yV2l0aEVkaXRvcj17ZWRpdG9yV2l0aEVkaXRvcn1cbiAgICAgICAgICAgIGVkaXRvcldpdGhQcmV2aWV3PXtlZGl0b3JXaXRoUHJldmlld31cbiAgICAgICAgICAvPlxuICAgICAgICA8L0VkaXRvcj5cbiAgICAgIDwvRWRpdG9yQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuRWRpdG9ySW50ZXJmYWNlLnByb3BUeXBlcyA9IHtcbiAgY29sbGVjdGlvbjogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICBlbnRyeTogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICBmaWVsZHM6IEltbXV0YWJsZVByb3BUeXBlcy5saXN0LmlzUmVxdWlyZWQsXG4gIGZpZWxkc01ldGFEYXRhOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gIGZpZWxkc0Vycm9yczogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25WYWxpZGF0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzaG93RGVsZXRlOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gIGhhc0NoYW5nZWQ6IFByb3BUeXBlcy5ib29sLFxuICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICBoYXNVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5ib29sLFxuICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICBjdXJyZW50U3RhdHVzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICBsb2FkRGVwbG95UHJldmlldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZHJhZnRLZXk6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEVkaXRvckludGVyZmFjZTtcbiJdfQ== */",
29
+ styles: "height:100%;overflow-y:auto;label:pane;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JJbnRlcmZhY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0NXIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JJbnRlcmZhY2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgeyBjc3MsIEdsb2JhbCB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCBTcGxpdFBhbmUgZnJvbSAncmVhY3Qtc3BsaXQtcGFuZSc7XG5pbXBvcnQge1xuICBjb2xvcnMsXG4gIGNvbG9yc1JhdyxcbiAgY29tcG9uZW50cyxcbiAgdHJhbnNpdGlvbnMsXG4gIEljb25CdXR0b24sXG4gIHpJbmRleCxcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuaW1wb3J0IHsgU2Nyb2xsU3luYywgU2Nyb2xsU3luY1BhbmUgfSBmcm9tICdyZWFjdC1zY3JvbGwtc3luYyc7XG5cbmltcG9ydCBFZGl0b3JDb250cm9sUGFuZSBmcm9tICcuL0VkaXRvckNvbnRyb2xQYW5lL0VkaXRvckNvbnRyb2xQYW5lJztcbmltcG9ydCBFZGl0b3JQcmV2aWV3UGFuZSBmcm9tICcuL0VkaXRvclByZXZpZXdQYW5lL0VkaXRvclByZXZpZXdQYW5lJztcbmltcG9ydCBFZGl0b3JUb29sYmFyIGZyb20gJy4vRWRpdG9yVG9vbGJhcic7XG5pbXBvcnQgeyBoYXNJMThuLCBnZXRJMThuSW5mbywgZ2V0UHJldmlld0VudHJ5IH0gZnJvbSAnLi4vLi4vbGliL2kxOG4nO1xuaW1wb3J0IHsgRklMRVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29sbGVjdGlvblR5cGVzJztcbmltcG9ydCB7IGdldEZpbGVGcm9tU2x1ZyB9IGZyb20gJy4uLy4uL3JlZHVjZXJzL2NvbGxlY3Rpb25zJztcblxuY29uc3QgUFJFVklFV19WSVNJQkxFID0gJ2Ntcy5wcmV2aWV3LXZpc2libGUnO1xuY29uc3QgU0NST0xMX1NZTkNfRU5BQkxFRCA9ICdjbXMuc2Nyb2xsLXN5bmMtZW5hYmxlZCc7XG5jb25zdCBTUExJVF9QQU5FX1BPU0lUSU9OID0gJ2Ntcy5zcGxpdC1wYW5lLXBvc2l0aW9uJztcbmNvbnN0IEkxOE5fVklTSUJMRSA9ICdjbXMuaTE4bi12aXNpYmxlJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBzcGxpdFBhbmU6IGNzc2BcbiAgICAke2NvbXBvbmVudHMuY2FyZH07XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIGAsXG4gIHBhbmU6IGNzc2BcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgYCxcbn07XG5cbmNvbnN0IEVkaXRvclRvZ2dsZSA9IHN0eWxlZChJY29uQnV0dG9uKWBcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbmA7XG5cbmZ1bmN0aW9uIFJlYWN0U3BsaXRQYW5lR2xvYmFsU3R5bGVzKCkge1xuICByZXR1cm4gKFxuICAgIDxHbG9iYWxcbiAgICAgIHN0eWxlcz17Y3NzYFxuICAgICAgICAuUmVzaXplci52ZXJ0aWNhbCB7XG4gICAgICAgICAgd2lkdGg6IDJweDtcbiAgICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHt0cmFuc2l0aW9ucy5tYWlufTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgd2lkdGg6IDRweDtcbiAgICAgICAgICAgICAgbGVmdDogLTFweDtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnNSYXcuYmx1ZX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgfVxuICAgIC8+XG4gICk7XG59XG5cbmNvbnN0IFN0eWxlZFNwbGl0UGFuZSA9IHN0eWxlZChTcGxpdFBhbmUpYFxuICAke3N0eWxlcy5zcGxpdFBhbmV9O1xuXG4gIC8qKlxuICAgKiBRdWljayBmaXggZm9yIHByZXZpZXcgcGFuZSBub3QgZnVsbHkgZGlzcGxheWluZyBpbiBTYWZhcmlcbiAgICovXG4gIC5QYW5lIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbmA7XG5cbmNvbnN0IE5vUHJldmlld0NvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gICR7c3R5bGVzLnNwbGl0UGFuZX07XG5gO1xuXG5jb25zdCBFZGl0b3JDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiA4MDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy10b3A6IDY2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzLmJhY2tncm91bmR9O1xuYDtcblxuY29uc3QgRWRpdG9yID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgUHJldmlld1BhbmVDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBoZWlnaHQ6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiAke3Byb3BzID0+IChwcm9wcy5ibG9ja0VudHJ5ID8gJ25vbmUnIDogJ2F1dG8nKX07XG4gIG92ZXJmbG93LXk6ICR7cHJvcHMgPT4gKHByb3BzLm92ZXJGbG93ID8gJ2F1dG8nIDogJ2hpZGRlbicpfTtcbmA7XG5cbmNvbnN0IENvbnRyb2xQYW5lQ29udGFpbmVyID0gc3R5bGVkKFByZXZpZXdQYW5lQ29udGFpbmVyKWBcbiAgcGFkZGluZzogMCAxNnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbmA7XG5cbmNvbnN0IFZpZXdDb250cm9scyA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMHB4O1xuICByaWdodDogMTBweDtcbiAgei1pbmRleDogJHt6SW5kZXguekluZGV4Mjk5fTtcbmA7XG5cbmZ1bmN0aW9uIEVkaXRvckNvbnRlbnQoe1xuICBpMThuVmlzaWJsZSxcbiAgcHJldmlld1Zpc2libGUsXG4gIGVkaXRvcixcbiAgZWRpdG9yV2l0aEVkaXRvcixcbiAgZWRpdG9yV2l0aFByZXZpZXcsXG59KSB7XG4gIGlmIChpMThuVmlzaWJsZSkge1xuICAgIHJldHVybiBlZGl0b3JXaXRoRWRpdG9yO1xuICB9IGVsc2UgaWYgKHByZXZpZXdWaXNpYmxlKSB7XG4gICAgcmV0dXJuIGVkaXRvcldpdGhQcmV2aWV3O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiA8Tm9QcmV2aWV3Q29udGFpbmVyPntlZGl0b3J9PC9Ob1ByZXZpZXdDb250YWluZXI+O1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzUHJldmlld0VuYWJsZWQoY29sbGVjdGlvbiwgZW50cnkpIHtcbiAgaWYgKGNvbGxlY3Rpb24uZ2V0KCd0eXBlJykgPT09IEZJTEVTKSB7XG4gICAgY29uc3QgZmlsZSA9IGdldEZpbGVGcm9tU2x1Zyhjb2xsZWN0aW9uLCBlbnRyeS5nZXQoJ3NsdWcnKSk7XG4gICAgY29uc3QgcHJldmlld0VuYWJsZWQgPSBmaWxlPy5nZXRJbihbJ2VkaXRvcicsICdwcmV2aWV3J10pO1xuICAgIGlmIChwcmV2aWV3RW5hYmxlZCAhPSBudWxsKSByZXR1cm4gcHJldmlld0VuYWJsZWQ7XG4gIH1cbiAgcmV0dXJuIGNvbGxlY3Rpb24uZ2V0SW4oWydlZGl0b3InLCAncHJldmlldyddLCB0cnVlKTtcbn1cblxuY2xhc3MgRWRpdG9ySW50ZXJmYWNlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGUgPSB7XG4gICAgc2hvd0V2ZW50QmxvY2tlcjogZmFsc2UsXG4gICAgcHJldmlld1Zpc2libGU6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFBSRVZJRVdfVklTSUJMRSkgIT09ICdmYWxzZScsXG4gICAgc2Nyb2xsU3luY0VuYWJsZWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNDUk9MTF9TWU5DX0VOQUJMRUQpICE9PSAnZmFsc2UnLFxuICAgIGkxOG5WaXNpYmxlOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShJMThOX1ZJU0lCTEUpICE9PSAnZmFsc2UnLFxuICB9O1xuXG4gIGhhbmRsZUZpZWxkQ2xpY2sgPSBwYXRoID0+IHtcbiAgICB0aGlzLmNvbnRyb2xQYW5lUmVmPy5mb2N1cyhwYXRoKTtcbiAgfTtcblxuICBoYW5kbGVTcGxpdFBhbmVEcmFnU3RhcnQgPSAoKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHNob3dFdmVudEJsb2NrZXI6IHRydWUgfSk7XG4gIH07XG5cbiAgaGFuZGxlU3BsaXRQYW5lRHJhZ0ZpbmlzaGVkID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93RXZlbnRCbG9ja2VyOiBmYWxzZSB9KTtcbiAgfTtcblxuICBoYW5kbGVPblBlcnNpc3QgPSBhc3luYyAob3B0cyA9IHt9KSA9PiB7XG4gICAgY29uc3QgeyBjcmVhdGVOZXcgPSBmYWxzZSwgZHVwbGljYXRlID0gZmFsc2UgfSA9IG9wdHM7XG4gICAgYXdhaXQgdGhpcy5jb250cm9sUGFuZVJlZi5zd2l0Y2hUb0RlZmF1bHRMb2NhbGUoKTtcbiAgICB0aGlzLmNvbnRyb2xQYW5lUmVmLnZhbGlkYXRlKCk7XG4gICAgdGhpcy5wcm9wcy5vblBlcnNpc3QoeyBjcmVhdGVOZXcsIGR1cGxpY2F0ZSB9KTtcbiAgfTtcblxuICBoYW5kbGVPblB1Ymxpc2ggPSBhc3luYyAob3B0cyA9IHt9KSA9PiB7XG4gICAgY29uc3QgeyBjcmVhdGVOZXcgPSBmYWxzZSwgZHVwbGljYXRlID0gZmFsc2UgfSA9IG9wdHM7XG4gICAgYXdhaXQgdGhpcy5jb250cm9sUGFuZVJlZi5zd2l0Y2hUb0RlZmF1bHRMb2NhbGUoKTtcbiAgICB0aGlzLmNvbnRyb2xQYW5lUmVmLnZhbGlkYXRlKCk7XG4gICAgdGhpcy5wcm9wcy5vblB1Ymxpc2goeyBjcmVhdGVOZXcsIGR1cGxpY2F0ZSB9KTtcbiAgfTtcblxuICBoYW5kbGVUb2dnbGVQcmV2aWV3ID0gKCkgPT4ge1xuICAgIGNvbnN0IG5ld1ByZXZpZXdWaXNpYmxlID0gIXRoaXMuc3RhdGUucHJldmlld1Zpc2libGU7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHByZXZpZXdWaXNpYmxlOiBuZXdQcmV2aWV3VmlzaWJsZSB9KTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShQUkVWSUVXX1ZJU0lCTEUsIG5ld1ByZXZpZXdWaXNpYmxlKTtcbiAgfTtcblxuICBoYW5kbGVUb2dnbGVTY3JvbGxTeW5jID0gKCkgPT4ge1xuICAgIGNvbnN0IG5ld1Njcm9sbFN5bmNFbmFibGVkID0gIXRoaXMuc3RhdGUuc2Nyb2xsU3luY0VuYWJsZWQ7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHNjcm9sbFN5bmNFbmFibGVkOiBuZXdTY3JvbGxTeW5jRW5hYmxlZCB9KTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShTQ1JPTExfU1lOQ19FTkFCTEVELCBuZXdTY3JvbGxTeW5jRW5hYmxlZCk7XG4gIH07XG5cbiAgaGFuZGxlVG9nZ2xlSTE4biA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdJMThuVmlzaWJsZSA9ICF0aGlzLnN0YXRlLmkxOG5WaXNpYmxlO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBpMThuVmlzaWJsZTogbmV3STE4blZpc2libGUgfSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oSTE4Tl9WSVNJQkxFLCBuZXdJMThuVmlzaWJsZSk7XG4gIH07XG5cbiAgaGFuZGxlTGVmdFBhbmVsTG9jYWxlQ2hhbmdlID0gbG9jYWxlID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHsgbGVmdFBhbmVsTG9jYWxlOiBsb2NhbGUgfSk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNvbGxlY3Rpb24sXG4gICAgICBlbnRyeSxcbiAgICAgIGZpZWxkcyxcbiAgICAgIGZpZWxkc01ldGFEYXRhLFxuICAgICAgZmllbGRzRXJyb3JzLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBzaG93RGVsZXRlLFxuICAgICAgb25EZWxldGUsXG4gICAgICBvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIG9uQ2hhbmdlU3RhdHVzLFxuICAgICAgb25QdWJsaXNoLFxuICAgICAgdW5QdWJsaXNoLFxuICAgICAgb25EdXBsaWNhdGUsXG4gICAgICBvblZhbGlkYXRlLFxuICAgICAgdXNlcixcbiAgICAgIGhhc0NoYW5nZWQsXG4gICAgICBkaXNwbGF5VXJsLFxuICAgICAgaGFzV29ya2Zsb3csXG4gICAgICB1c2VPcGVuQXV0aG9yaW5nLFxuICAgICAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzLFxuICAgICAgaXNOZXdFbnRyeSxcbiAgICAgIGlzTW9kaWZpY2F0aW9uLFxuICAgICAgY3VycmVudFN0YXR1cyxcbiAgICAgIG9uTG9nb3V0Q2xpY2ssXG4gICAgICBsb2FkRGVwbG95UHJldmlldyxcbiAgICAgIGRlcGxveVByZXZpZXcsXG4gICAgICBkcmFmdEtleSxcbiAgICAgIGVkaXRvckJhY2tMaW5rLFxuICAgICAgdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHsgc2Nyb2xsU3luY0VuYWJsZWQsIHNob3dFdmVudEJsb2NrZXIgfSA9IHRoaXMuc3RhdGU7XG5cbiAgICBjb25zdCBwcmV2aWV3RW5hYmxlZCA9IGlzUHJldmlld0VuYWJsZWQoY29sbGVjdGlvbiwgZW50cnkpO1xuXG4gICAgY29uc3QgeyBsb2NhbGVzLCBkZWZhdWx0TG9jYWxlIH0gPSBnZXRJMThuSW5mbyh0aGlzLnByb3BzLmNvbGxlY3Rpb24pO1xuICAgIGNvbnN0IGNvbGxlY3Rpb25JMThuRW5hYmxlZCA9IGhhc0kxOG4oY29sbGVjdGlvbikgJiYgbG9jYWxlcy5sZW5ndGggPiAxO1xuICAgIGNvbnN0IGVkaXRvclByb3BzID0ge1xuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGVudHJ5LFxuICAgICAgZmllbGRzLFxuICAgICAgZmllbGRzTWV0YURhdGEsXG4gICAgICBmaWVsZHNFcnJvcnMsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uVmFsaWRhdGUsXG4gICAgfTtcblxuICAgIGNvbnN0IGxlZnRQYW5lbExvY2FsZSA9IHRoaXMuc3RhdGUubGVmdFBhbmVsTG9jYWxlIHx8IGxvY2FsZXM/LlswXTtcbiAgICBjb25zdCBlZGl0b3IgPSAoXG4gICAgICA8Q29udHJvbFBhbmVDb250YWluZXIgb3ZlckZsb3cgYmxvY2tFbnRyeT17c2hvd0V2ZW50QmxvY2tlcn0+XG4gICAgICAgIDxFZGl0b3JDb250cm9sUGFuZVxuICAgICAgICAgIHsuLi5lZGl0b3JQcm9wc31cbiAgICAgICAgICByZWY9e2MgPT4gKHRoaXMuY29udHJvbFBhbmVSZWYgPSBjKX1cbiAgICAgICAgICBsb2NhbGU9e2xlZnRQYW5lbExvY2FsZX1cbiAgICAgICAgICB0PXt0fVxuICAgICAgICAgIG9uTG9jYWxlQ2hhbmdlPXt0aGlzLmhhbmRsZUxlZnRQYW5lbExvY2FsZUNoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgIDwvQ29udHJvbFBhbmVDb250YWluZXI+XG4gICAgKTtcblxuICAgIGNvbnN0IGVkaXRvcjIgPSAoXG4gICAgICA8Q29udHJvbFBhbmVDb250YWluZXIgb3ZlckZsb3c9eyF0aGlzLnN0YXRlLnNjcm9sbFN5bmNFbmFibGVkfSBibG9ja0VudHJ5PXtzaG93RXZlbnRCbG9ja2VyfT5cbiAgICAgICAgPEVkaXRvckNvbnRyb2xQYW5lIHsuLi5lZGl0b3JQcm9wc30gbG9jYWxlPXtsb2NhbGVzPy5bMV19IHQ9e3R9IC8+XG4gICAgICA8L0NvbnRyb2xQYW5lQ29udGFpbmVyPlxuICAgICk7XG5cbiAgICBjb25zdCBwcmV2aWV3RW50cnkgPSBjb2xsZWN0aW9uSTE4bkVuYWJsZWRcbiAgICAgID8gZ2V0UHJldmlld0VudHJ5KGVudHJ5LCBsZWZ0UGFuZWxMb2NhbGUsIGRlZmF1bHRMb2NhbGUpXG4gICAgICA6IGVudHJ5O1xuXG4gICAgY29uc3QgZWRpdG9yV2l0aFByZXZpZXcgPSAoXG4gICAgICA8U2Nyb2xsU3luYyBlbmFibGVkPXt0aGlzLnN0YXRlLnNjcm9sbFN5bmNFbmFibGVkfT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8UmVhY3RTcGxpdFBhbmVHbG9iYWxTdHlsZXMgLz5cbiAgICAgICAgICA8U3R5bGVkU3BsaXRQYW5lXG4gICAgICAgICAgICBtYXhTaXplPXstMTAwfVxuICAgICAgICAgICAgbWluU2l6ZT17NDAwfVxuICAgICAgICAgICAgZGVmYXVsdFNpemU9e3BhcnNlSW50KGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNQTElUX1BBTkVfUE9TSVRJT04pLCAxMCkgfHwgJzUwJSd9XG4gICAgICAgICAgICBvbkNoYW5nZT17c2l6ZSA9PiBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShTUExJVF9QQU5FX1BPU0lUSU9OLCBzaXplKX1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0ZWQ9e3RoaXMuaGFuZGxlU3BsaXRQYW5lRHJhZ1N0YXJ0fVxuICAgICAgICAgICAgb25EcmFnRmluaXNoZWQ9e3RoaXMuaGFuZGxlU3BsaXRQYW5lRHJhZ0ZpbmlzaGVkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTY3JvbGxTeW5jUGFuZT57ZWRpdG9yfTwvU2Nyb2xsU3luY1BhbmU+XG4gICAgICAgICAgICA8UHJldmlld1BhbmVDb250YWluZXIgYmxvY2tFbnRyeT17c2hvd0V2ZW50QmxvY2tlcn0+XG4gICAgICAgICAgICAgIDxFZGl0b3JQcmV2aWV3UGFuZVxuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb249e2NvbGxlY3Rpb259XG4gICAgICAgICAgICAgICAgZW50cnk9e3ByZXZpZXdFbnRyeX1cbiAgICAgICAgICAgICAgICBmaWVsZHM9e2ZpZWxkc31cbiAgICAgICAgICAgICAgICBmaWVsZHNNZXRhRGF0YT17ZmllbGRzTWV0YURhdGF9XG4gICAgICAgICAgICAgICAgbG9jYWxlPXtsZWZ0UGFuZWxMb2NhbGV9XG4gICAgICAgICAgICAgICAgb25GaWVsZENsaWNrPXt0aGlzLmhhbmRsZUZpZWxkQ2xpY2t9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L1ByZXZpZXdQYW5lQ29udGFpbmVyPlxuICAgICAgICAgIDwvU3R5bGVkU3BsaXRQYW5lPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvU2Nyb2xsU3luYz5cbiAgICApO1xuXG4gICAgY29uc3QgZWRpdG9yV2l0aEVkaXRvciA9IChcbiAgICAgIDxTY3JvbGxTeW5jIGVuYWJsZWQ9e3RoaXMuc3RhdGUuc2Nyb2xsU3luY0VuYWJsZWR9PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxTdHlsZWRTcGxpdFBhbmVcbiAgICAgICAgICAgIG1heFNpemU9ey0xMDB9XG4gICAgICAgICAgICBkZWZhdWx0U2l6ZT17cGFyc2VJbnQobG9jYWxTdG9yYWdlLmdldEl0ZW0oU1BMSVRfUEFORV9QT1NJVElPTiksIDEwKSB8fCAnNTAlJ31cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtzaXplID0+IGxvY2FsU3RvcmFnZS5zZXRJdGVtKFNQTElUX1BBTkVfUE9TSVRJT04sIHNpemUpfVxuICAgICAgICAgICAgb25EcmFnU3RhcnRlZD17dGhpcy5oYW5kbGVTcGxpdFBhbmVEcmFnU3RhcnR9XG4gICAgICAgICAgICBvbkRyYWdGaW5pc2hlZD17dGhpcy5oYW5kbGVTcGxpdFBhbmVEcmFnRmluaXNoZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFNjcm9sbFN5bmNQYW5lPntlZGl0b3J9PC9TY3JvbGxTeW5jUGFuZT5cbiAgICAgICAgICAgIDxTY3JvbGxTeW5jUGFuZT57ZWRpdG9yMn08L1Njcm9sbFN5bmNQYW5lPlxuICAgICAgICAgIDwvU3R5bGVkU3BsaXRQYW5lPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvU2Nyb2xsU3luYz5cbiAgICApO1xuXG4gICAgY29uc3QgaTE4blZpc2libGUgPSBjb2xsZWN0aW9uSTE4bkVuYWJsZWQgJiYgdGhpcy5zdGF0ZS5pMThuVmlzaWJsZTtcbiAgICBjb25zdCBwcmV2aWV3VmlzaWJsZSA9IHByZXZpZXdFbmFibGVkICYmIHRoaXMuc3RhdGUucHJldmlld1Zpc2libGU7XG4gICAgY29uc3Qgc2Nyb2xsU3luY1Zpc2libGUgPSBpMThuVmlzaWJsZSB8fCBwcmV2aWV3VmlzaWJsZTtcblxuICAgIHJldHVybiAoXG4gICAgICA8RWRpdG9yQ29udGFpbmVyPlxuICAgICAgICA8RWRpdG9yVG9vbGJhclxuICAgICAgICAgIGlzUGVyc2lzdGluZz17ZW50cnkuZ2V0KCdpc1BlcnNpc3RpbmcnKX1cbiAgICAgICAgICBpc1B1Ymxpc2hpbmc9e2VudHJ5LmdldCgnaXNQdWJsaXNoaW5nJyl9XG4gICAgICAgICAgaXNVcGRhdGluZ1N0YXR1cz17ZW50cnkuZ2V0KCdpc1VwZGF0aW5nU3RhdHVzJyl9XG4gICAgICAgICAgaXNEZWxldGluZz17ZW50cnkuZ2V0KCdpc0RlbGV0aW5nJyl9XG4gICAgICAgICAgb25QZXJzaXN0PXt0aGlzLmhhbmRsZU9uUGVyc2lzdH1cbiAgICAgICAgICBvblBlcnNpc3RBbmROZXc9eygpID0+IHRoaXMuaGFuZGxlT25QZXJzaXN0KHsgY3JlYXRlTmV3OiB0cnVlIH0pfVxuICAgICAgICAgIG9uUGVyc2lzdEFuZER1cGxpY2F0ZT17KCkgPT4gdGhpcy5oYW5kbGVPblBlcnNpc3QoeyBjcmVhdGVOZXc6IHRydWUsIGR1cGxpY2F0ZTogdHJ1ZSB9KX1cbiAgICAgICAgICBvbkRlbGV0ZT17b25EZWxldGV9XG4gICAgICAgICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM9e29uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzfVxuICAgICAgICAgIG9uQ2hhbmdlU3RhdHVzPXtvbkNoYW5nZVN0YXR1c31cbiAgICAgICAgICBzaG93RGVsZXRlPXtzaG93RGVsZXRlfVxuICAgICAgICAgIG9uUHVibGlzaD17b25QdWJsaXNofVxuICAgICAgICAgIHVuUHVibGlzaD17dW5QdWJsaXNofVxuICAgICAgICAgIG9uRHVwbGljYXRlPXtvbkR1cGxpY2F0ZX1cbiAgICAgICAgICBvblB1Ymxpc2hBbmROZXc9eygpID0+IHRoaXMuaGFuZGxlT25QdWJsaXNoKHsgY3JlYXRlTmV3OiB0cnVlIH0pfVxuICAgICAgICAgIG9uUHVibGlzaEFuZER1cGxpY2F0ZT17KCkgPT4gdGhpcy5oYW5kbGVPblB1Ymxpc2goeyBjcmVhdGVOZXc6IHRydWUsIGR1cGxpY2F0ZTogdHJ1ZSB9KX1cbiAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgIGhhc0NoYW5nZWQ9e2hhc0NoYW5nZWR9XG4gICAgICAgICAgZGlzcGxheVVybD17ZGlzcGxheVVybH1cbiAgICAgICAgICBjb2xsZWN0aW9uPXtjb2xsZWN0aW9ufVxuICAgICAgICAgIGhhc1dvcmtmbG93PXtoYXNXb3JrZmxvd31cbiAgICAgICAgICB1c2VPcGVuQXV0aG9yaW5nPXt1c2VPcGVuQXV0aG9yaW5nfVxuICAgICAgICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlcz17aGFzVW5wdWJsaXNoZWRDaGFuZ2VzfVxuICAgICAgICAgIGlzTmV3RW50cnk9e2lzTmV3RW50cnl9XG4gICAgICAgICAgaXNNb2RpZmljYXRpb249e2lzTW9kaWZpY2F0aW9ufVxuICAgICAgICAgIGN1cnJlbnRTdGF0dXM9e2N1cnJlbnRTdGF0dXN9XG4gICAgICAgICAgb25Mb2dvdXRDbGljaz17b25Mb2dvdXRDbGlja31cbiAgICAgICAgICBsb2FkRGVwbG95UHJldmlldz17bG9hZERlcGxveVByZXZpZXd9XG4gICAgICAgICAgZGVwbG95UHJldmlldz17ZGVwbG95UHJldmlld31cbiAgICAgICAgICBlZGl0b3JCYWNrTGluaz17ZWRpdG9yQmFja0xpbmt9XG4gICAgICAgIC8+XG4gICAgICAgIDxFZGl0b3Iga2V5PXtkcmFmdEtleX0+XG4gICAgICAgICAgPFZpZXdDb250cm9scz5cbiAgICAgICAgICAgIHtjb2xsZWN0aW9uSTE4bkVuYWJsZWQgJiYgKFxuICAgICAgICAgICAgICA8RWRpdG9yVG9nZ2xlXG4gICAgICAgICAgICAgICAgaXNBY3RpdmU9e2kxOG5WaXNpYmxlfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuaGFuZGxlVG9nZ2xlSTE4bn1cbiAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJwYWdlXCJcbiAgICAgICAgICAgICAgICB0aXRsZT17dCgnZWRpdG9yLmVkaXRvckludGVyZmFjZS50b2dnbGVJMThuJyl9XG4gICAgICAgICAgICAgICAgbWFyZ2luVG9wPVwiNzBweFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge3ByZXZpZXdFbmFibGVkICYmIChcbiAgICAgICAgICAgICAgPEVkaXRvclRvZ2dsZVxuICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtwcmV2aWV3VmlzaWJsZX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVRvZ2dsZVByZXZpZXd9XG4gICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiZXllXCJcbiAgICAgICAgICAgICAgICB0aXRsZT17dCgnZWRpdG9yLmVkaXRvckludGVyZmFjZS50b2dnbGVQcmV2aWV3Jyl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge3Njcm9sbFN5bmNWaXNpYmxlICYmICFjb2xsZWN0aW9uLmdldEluKFsnZWRpdG9yJywgJ3Zpc3VhbEVkaXRpbmcnXSkgJiYgKFxuICAgICAgICAgICAgICA8RWRpdG9yVG9nZ2xlXG4gICAgICAgICAgICAgICAgaXNBY3RpdmU9e3Njcm9sbFN5bmNFbmFibGVkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuaGFuZGxlVG9nZ2xlU2Nyb2xsU3luY31cbiAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJzY3JvbGxcIlxuICAgICAgICAgICAgICAgIHRpdGxlPXt0KCdlZGl0b3IuZWRpdG9ySW50ZXJmYWNlLnRvZ2dsZVNjcm9sbFN5bmMnKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9WaWV3Q29udHJvbHM+XG4gICAgICAgICAgPEVkaXRvckNvbnRlbnRcbiAgICAgICAgICAgIGkxOG5WaXNpYmxlPXtpMThuVmlzaWJsZX1cbiAgICAgICAgICAgIHByZXZpZXdWaXNpYmxlPXtwcmV2aWV3VmlzaWJsZX1cbiAgICAgICAgICAgIGVkaXRvcj17ZWRpdG9yfVxuICAgICAgICAgICAgZWRpdG9yV2l0aEVkaXRvcj17ZWRpdG9yV2l0aEVkaXRvcn1cbiAgICAgICAgICAgIGVkaXRvcldpdGhQcmV2aWV3PXtlZGl0b3JXaXRoUHJldmlld31cbiAgICAgICAgICAvPlxuICAgICAgICA8L0VkaXRvcj5cbiAgICAgIDwvRWRpdG9yQ29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cblxuRWRpdG9ySW50ZXJmYWNlLnByb3BUeXBlcyA9IHtcbiAgY29sbGVjdGlvbjogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICBlbnRyeTogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICBmaWVsZHM6IEltbXV0YWJsZVByb3BUeXBlcy5saXN0LmlzUmVxdWlyZWQsXG4gIGZpZWxkc01ldGFEYXRhOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gIGZpZWxkc0Vycm9yczogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25WYWxpZGF0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25QZXJzaXN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzaG93RGVsZXRlOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBvbkRlbGV0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgdW5QdWJsaXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvbkR1cGxpY2F0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25DaGFuZ2VTdGF0dXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gIGhhc0NoYW5nZWQ6IFByb3BUeXBlcy5ib29sLFxuICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBoYXNXb3JrZmxvdzogUHJvcFR5cGVzLmJvb2wsXG4gIHVzZU9wZW5BdXRob3Jpbmc6IFByb3BUeXBlcy5ib29sLFxuICBoYXNVbnB1Ymxpc2hlZENoYW5nZXM6IFByb3BUeXBlcy5ib29sLFxuICBpc05ld0VudHJ5OiBQcm9wVHlwZXMuYm9vbCxcbiAgaXNNb2RpZmljYXRpb246IFByb3BUeXBlcy5ib29sLFxuICBjdXJyZW50U3RhdHVzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBkZXBsb3lQcmV2aWV3OiBQcm9wVHlwZXMub2JqZWN0LFxuICBsb2FkRGVwbG95UHJldmlldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZHJhZnRLZXk6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEVkaXRvckludGVyZmFjZTtcbiJdfQ== */",
34
30
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
35
31
  }
36
32
  };
@@ -42,8 +38,7 @@ const EditorToggle = /*#__PURE__*/_styled(IconButton, {
42
38
  styles: "margin-bottom:12px"
43
39
  } : {
44
40
  name: "cn3xcj",
45
- styles: "margin-bottom:12px",
46
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JJbnRlcmZhY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0N1QyIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9FZGl0b3IvRWRpdG9ySW50ZXJmYWNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgSW1tdXRhYmxlUHJvcFR5cGVzIGZyb20gJ3JlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXMnO1xuaW1wb3J0IHsgY3NzLCBHbG9iYWwgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgU3BsaXRQYW5lIGZyb20gJ3JlYWN0LXNwbGl0LXBhbmUnO1xuaW1wb3J0IHtcbiAgY29sb3JzLFxuICBjb2xvcnNSYXcsXG4gIGNvbXBvbmVudHMsXG4gIHRyYW5zaXRpb25zLFxuICBJY29uQnV0dG9uLFxuICB6SW5kZXgsXG59IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcbmltcG9ydCB7IFNjcm9sbFN5bmMsIFNjcm9sbFN5bmNQYW5lIH0gZnJvbSAncmVhY3Qtc2Nyb2xsLXN5bmMnO1xuXG5pbXBvcnQgRWRpdG9yQ29udHJvbFBhbmUgZnJvbSAnLi9FZGl0b3JDb250cm9sUGFuZS9FZGl0b3JDb250cm9sUGFuZSc7XG5pbXBvcnQgRWRpdG9yUHJldmlld1BhbmUgZnJvbSAnLi9FZGl0b3JQcmV2aWV3UGFuZS9FZGl0b3JQcmV2aWV3UGFuZSc7XG5pbXBvcnQgRWRpdG9yVG9vbGJhciBmcm9tICcuL0VkaXRvclRvb2xiYXInO1xuaW1wb3J0IHsgaGFzSTE4biwgZ2V0STE4bkluZm8sIGdldFByZXZpZXdFbnRyeSB9IGZyb20gJy4uLy4uL2xpYi9pMThuJztcbmltcG9ydCB7IEZJTEVTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbGxlY3Rpb25UeXBlcyc7XG5pbXBvcnQgeyBnZXRGaWxlRnJvbVNsdWcgfSBmcm9tICcuLi8uLi9yZWR1Y2Vycy9jb2xsZWN0aW9ucyc7XG5cbmNvbnN0IFBSRVZJRVdfVklTSUJMRSA9ICdjbXMucHJldmlldy12aXNpYmxlJztcbmNvbnN0IFNDUk9MTF9TWU5DX0VOQUJMRUQgPSAnY21zLnNjcm9sbC1zeW5jLWVuYWJsZWQnO1xuY29uc3QgU1BMSVRfUEFORV9QT1NJVElPTiA9ICdjbXMuc3BsaXQtcGFuZS1wb3NpdGlvbic7XG5jb25zdCBJMThOX1ZJU0lCTEUgPSAnY21zLmkxOG4tdmlzaWJsZSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgc3BsaXRQYW5lOiBjc3NgXG4gICAgJHtjb21wb25lbnRzLmNhcmR9O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICBgLFxuICBwYW5lOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIGAsXG59O1xuXG5jb25zdCBFZGl0b3JUb2dnbGUgPSBzdHlsZWQoSWNvbkJ1dHRvbilgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5mdW5jdGlvbiBSZWFjdFNwbGl0UGFuZUdsb2JhbFN0eWxlcygpIHtcbiAgcmV0dXJuIChcbiAgICA8R2xvYmFsXG4gICAgICBzdHlsZXM9e2Nzc2BcbiAgICAgICAgLlJlc2l6ZXIudmVydGljYWwge1xuICAgICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICB3aWR0aDogMnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICR7dHJhbnNpdGlvbnMubWFpbn07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgICAgICAgIGxlZnQ6IC0xcHg7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgYH1cbiAgICAvPlxuICApO1xufVxuXG5jb25zdCBTdHlsZWRTcGxpdFBhbmUgPSBzdHlsZWQoU3BsaXRQYW5lKWBcbiAgJHtzdHlsZXMuc3BsaXRQYW5lfTtcblxuICAvKipcbiAgICogUXVpY2sgZml4IGZvciBwcmV2aWV3IHBhbmUgbm90IGZ1bGx5IGRpc3BsYXlpbmcgaW4gU2FmYXJpXG4gICAqL1xuICAuUGFuZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5gO1xuXG5jb25zdCBOb1ByZXZpZXdDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy5zcGxpdFBhbmV9O1xuYDtcblxuY29uc3QgRWRpdG9yQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctdG9wOiA2NnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9ycy5iYWNrZ3JvdW5kfTtcbmA7XG5cbmNvbnN0IEVkaXRvciA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IFByZXZpZXdQYW5lQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb2ludGVyLWV2ZW50czogJHtwcm9wcyA9PiAocHJvcHMuYmxvY2tFbnRyeSA/ICdub25lJyA6ICdhdXRvJyl9O1xuICBvdmVyZmxvdy15OiAke3Byb3BzID0+IChwcm9wcy5vdmVyRmxvdyA/ICdhdXRvJyA6ICdoaWRkZW4nKX07XG5gO1xuXG5jb25zdCBDb250cm9sUGFuZUNvbnRhaW5lciA9IHN0eWxlZChQcmV2aWV3UGFuZUNvbnRhaW5lcilgXG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG5gO1xuXG5jb25zdCBWaWV3Q29udHJvbHMgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDI5OX07XG5gO1xuXG5mdW5jdGlvbiBFZGl0b3JDb250ZW50KHtcbiAgaTE4blZpc2libGUsXG4gIHByZXZpZXdWaXNpYmxlLFxuICBlZGl0b3IsXG4gIGVkaXRvcldpdGhFZGl0b3IsXG4gIGVkaXRvcldpdGhQcmV2aWV3LFxufSkge1xuICBpZiAoaTE4blZpc2libGUpIHtcbiAgICByZXR1cm4gZWRpdG9yV2l0aEVkaXRvcjtcbiAgfSBlbHNlIGlmIChwcmV2aWV3VmlzaWJsZSkge1xuICAgIHJldHVybiBlZGl0b3JXaXRoUHJldmlldztcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gPE5vUHJldmlld0NvbnRhaW5lcj57ZWRpdG9yfTwvTm9QcmV2aWV3Q29udGFpbmVyPjtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1ByZXZpZXdFbmFibGVkKGNvbGxlY3Rpb24sIGVudHJ5KSB7XG4gIGlmIChjb2xsZWN0aW9uLmdldCgndHlwZScpID09PSBGSUxFUykge1xuICAgIGNvbnN0IGZpbGUgPSBnZXRGaWxlRnJvbVNsdWcoY29sbGVjdGlvbiwgZW50cnkuZ2V0KCdzbHVnJykpO1xuICAgIGNvbnN0IHByZXZpZXdFbmFibGVkID0gZmlsZT8uZ2V0SW4oWydlZGl0b3InLCAncHJldmlldyddKTtcbiAgICBpZiAocHJldmlld0VuYWJsZWQgIT0gbnVsbCkgcmV0dXJuIHByZXZpZXdFbmFibGVkO1xuICB9XG4gIHJldHVybiBjb2xsZWN0aW9uLmdldEluKFsnZWRpdG9yJywgJ3ByZXZpZXcnXSwgdHJ1ZSk7XG59XG5cbmNsYXNzIEVkaXRvckludGVyZmFjZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRlID0ge1xuICAgIHNob3dFdmVudEJsb2NrZXI6IGZhbHNlLFxuICAgIHByZXZpZXdWaXNpYmxlOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShQUkVWSUVXX1ZJU0lCTEUpICE9PSAnZmFsc2UnLFxuICAgIHNjcm9sbFN5bmNFbmFibGVkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTQ1JPTExfU1lOQ19FTkFCTEVEKSAhPT0gJ2ZhbHNlJyxcbiAgICBpMThuVmlzaWJsZTogbG9jYWxTdG9yYWdlLmdldEl0ZW0oSTE4Tl9WSVNJQkxFKSAhPT0gJ2ZhbHNlJyxcbiAgfTtcblxuICBoYW5kbGVGaWVsZENsaWNrID0gcGF0aCA9PiB7XG4gICAgdGhpcy5jb250cm9sUGFuZVJlZj8uZm9jdXMocGF0aCk7XG4gIH07XG5cbiAgaGFuZGxlU3BsaXRQYW5lRHJhZ1N0YXJ0ID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93RXZlbnRCbG9ja2VyOiB0cnVlIH0pO1xuICB9O1xuXG4gIGhhbmRsZVNwbGl0UGFuZURyYWdGaW5pc2hlZCA9ICgpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHsgc2hvd0V2ZW50QmxvY2tlcjogZmFsc2UgfSk7XG4gIH07XG5cbiAgaGFuZGxlT25QZXJzaXN0ID0gYXN5bmMgKG9wdHMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IHsgY3JlYXRlTmV3ID0gZmFsc2UsIGR1cGxpY2F0ZSA9IGZhbHNlIH0gPSBvcHRzO1xuICAgIGF3YWl0IHRoaXMuY29udHJvbFBhbmVSZWYuc3dpdGNoVG9EZWZhdWx0TG9jYWxlKCk7XG4gICAgdGhpcy5jb250cm9sUGFuZVJlZi52YWxpZGF0ZSgpO1xuICAgIHRoaXMucHJvcHMub25QZXJzaXN0KHsgY3JlYXRlTmV3LCBkdXBsaWNhdGUgfSk7XG4gIH07XG5cbiAgaGFuZGxlT25QdWJsaXNoID0gYXN5bmMgKG9wdHMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IHsgY3JlYXRlTmV3ID0gZmFsc2UsIGR1cGxpY2F0ZSA9IGZhbHNlIH0gPSBvcHRzO1xuICAgIGF3YWl0IHRoaXMuY29udHJvbFBhbmVSZWYuc3dpdGNoVG9EZWZhdWx0TG9jYWxlKCk7XG4gICAgdGhpcy5jb250cm9sUGFuZVJlZi52YWxpZGF0ZSgpO1xuICAgIHRoaXMucHJvcHMub25QdWJsaXNoKHsgY3JlYXRlTmV3LCBkdXBsaWNhdGUgfSk7XG4gIH07XG5cbiAgaGFuZGxlVG9nZ2xlUHJldmlldyA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdQcmV2aWV3VmlzaWJsZSA9ICF0aGlzLnN0YXRlLnByZXZpZXdWaXNpYmxlO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBwcmV2aWV3VmlzaWJsZTogbmV3UHJldmlld1Zpc2libGUgfSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oUFJFVklFV19WSVNJQkxFLCBuZXdQcmV2aWV3VmlzaWJsZSk7XG4gIH07XG5cbiAgaGFuZGxlVG9nZ2xlU2Nyb2xsU3luYyA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdTY3JvbGxTeW5jRW5hYmxlZCA9ICF0aGlzLnN0YXRlLnNjcm9sbFN5bmNFbmFibGVkO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBzY3JvbGxTeW5jRW5hYmxlZDogbmV3U2Nyb2xsU3luY0VuYWJsZWQgfSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oU0NST0xMX1NZTkNfRU5BQkxFRCwgbmV3U2Nyb2xsU3luY0VuYWJsZWQpO1xuICB9O1xuXG4gIGhhbmRsZVRvZ2dsZUkxOG4gPSAoKSA9PiB7XG4gICAgY29uc3QgbmV3STE4blZpc2libGUgPSAhdGhpcy5zdGF0ZS5pMThuVmlzaWJsZTtcbiAgICB0aGlzLnNldFN0YXRlKHsgaTE4blZpc2libGU6IG5ld0kxOG5WaXNpYmxlIH0pO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKEkxOE5fVklTSUJMRSwgbmV3STE4blZpc2libGUpO1xuICB9O1xuXG4gIGhhbmRsZUxlZnRQYW5lbExvY2FsZUNoYW5nZSA9IGxvY2FsZSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxlZnRQYW5lbExvY2FsZTogbG9jYWxlIH0pO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgZW50cnksXG4gICAgICBmaWVsZHMsXG4gICAgICBmaWVsZHNNZXRhRGF0YSxcbiAgICAgIGZpZWxkc0Vycm9ycyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIG9uRGVsZXRlLFxuICAgICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICBvbkNoYW5nZVN0YXR1cyxcbiAgICAgIG9uUHVibGlzaCxcbiAgICAgIHVuUHVibGlzaCxcbiAgICAgIG9uRHVwbGljYXRlLFxuICAgICAgb25WYWxpZGF0ZSxcbiAgICAgIHVzZXIsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgZGlzcGxheVVybCxcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgbG9hZERlcGxveVByZXZpZXcsXG4gICAgICBkZXBsb3lQcmV2aWV3LFxuICAgICAgZHJhZnRLZXksXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCB7IHNjcm9sbFN5bmNFbmFibGVkLCBzaG93RXZlbnRCbG9ja2VyIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgY29uc3QgcHJldmlld0VuYWJsZWQgPSBpc1ByZXZpZXdFbmFibGVkKGNvbGxlY3Rpb24sIGVudHJ5KTtcblxuICAgIGNvbnN0IHsgbG9jYWxlcywgZGVmYXVsdExvY2FsZSB9ID0gZ2V0STE4bkluZm8odGhpcy5wcm9wcy5jb2xsZWN0aW9uKTtcbiAgICBjb25zdCBjb2xsZWN0aW9uSTE4bkVuYWJsZWQgPSBoYXNJMThuKGNvbGxlY3Rpb24pICYmIGxvY2FsZXMubGVuZ3RoID4gMTtcbiAgICBjb25zdCBlZGl0b3JQcm9wcyA9IHtcbiAgICAgIGNvbGxlY3Rpb24sXG4gICAgICBlbnRyeSxcbiAgICAgIGZpZWxkcyxcbiAgICAgIGZpZWxkc01ldGFEYXRhLFxuICAgICAgZmllbGRzRXJyb3JzLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvblZhbGlkYXRlLFxuICAgIH07XG5cbiAgICBjb25zdCBsZWZ0UGFuZWxMb2NhbGUgPSB0aGlzLnN0YXRlLmxlZnRQYW5lbExvY2FsZSB8fCBsb2NhbGVzPy5bMF07XG4gICAgY29uc3QgZWRpdG9yID0gKFxuICAgICAgPENvbnRyb2xQYW5lQ29udGFpbmVyIG92ZXJGbG93IGJsb2NrRW50cnk9e3Nob3dFdmVudEJsb2NrZXJ9PlxuICAgICAgICA8RWRpdG9yQ29udHJvbFBhbmVcbiAgICAgICAgICB7Li4uZWRpdG9yUHJvcHN9XG4gICAgICAgICAgcmVmPXtjID0+ICh0aGlzLmNvbnRyb2xQYW5lUmVmID0gYyl9XG4gICAgICAgICAgbG9jYWxlPXtsZWZ0UGFuZWxMb2NhbGV9XG4gICAgICAgICAgdD17dH1cbiAgICAgICAgICBvbkxvY2FsZUNoYW5nZT17dGhpcy5oYW5kbGVMZWZ0UGFuZWxMb2NhbGVDaGFuZ2V9XG4gICAgICAgIC8+XG4gICAgICA8L0NvbnRyb2xQYW5lQ29udGFpbmVyPlxuICAgICk7XG5cbiAgICBjb25zdCBlZGl0b3IyID0gKFxuICAgICAgPENvbnRyb2xQYW5lQ29udGFpbmVyIG92ZXJGbG93PXshdGhpcy5zdGF0ZS5zY3JvbGxTeW5jRW5hYmxlZH0gYmxvY2tFbnRyeT17c2hvd0V2ZW50QmxvY2tlcn0+XG4gICAgICAgIDxFZGl0b3JDb250cm9sUGFuZSB7Li4uZWRpdG9yUHJvcHN9IGxvY2FsZT17bG9jYWxlcz8uWzFdfSB0PXt0fSAvPlxuICAgICAgPC9Db250cm9sUGFuZUNvbnRhaW5lcj5cbiAgICApO1xuXG4gICAgY29uc3QgcHJldmlld0VudHJ5ID0gY29sbGVjdGlvbkkxOG5FbmFibGVkXG4gICAgICA/IGdldFByZXZpZXdFbnRyeShlbnRyeSwgbGVmdFBhbmVsTG9jYWxlLCBkZWZhdWx0TG9jYWxlKVxuICAgICAgOiBlbnRyeTtcblxuICAgIGNvbnN0IGVkaXRvcldpdGhQcmV2aWV3ID0gKFxuICAgICAgPFNjcm9sbFN5bmMgZW5hYmxlZD17dGhpcy5zdGF0ZS5zY3JvbGxTeW5jRW5hYmxlZH0+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPFJlYWN0U3BsaXRQYW5lR2xvYmFsU3R5bGVzIC8+XG4gICAgICAgICAgPFN0eWxlZFNwbGl0UGFuZVxuICAgICAgICAgICAgbWF4U2l6ZT17LTEwMH1cbiAgICAgICAgICAgIG1pblNpemU9ezQwMH1cbiAgICAgICAgICAgIGRlZmF1bHRTaXplPXtwYXJzZUludChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTUExJVF9QQU5FX1BPU0lUSU9OKSwgMTApIHx8ICc1MCUnfVxuICAgICAgICAgICAgb25DaGFuZ2U9e3NpemUgPT4gbG9jYWxTdG9yYWdlLnNldEl0ZW0oU1BMSVRfUEFORV9QT1NJVElPTiwgc2l6ZSl9XG4gICAgICAgICAgICBvbkRyYWdTdGFydGVkPXt0aGlzLmhhbmRsZVNwbGl0UGFuZURyYWdTdGFydH1cbiAgICAgICAgICAgIG9uRHJhZ0ZpbmlzaGVkPXt0aGlzLmhhbmRsZVNwbGl0UGFuZURyYWdGaW5pc2hlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U2Nyb2xsU3luY1BhbmU+e2VkaXRvcn08L1Njcm9sbFN5bmNQYW5lPlxuICAgICAgICAgICAgPFByZXZpZXdQYW5lQ29udGFpbmVyIGJsb2NrRW50cnk9e3Nob3dFdmVudEJsb2NrZXJ9PlxuICAgICAgICAgICAgICA8RWRpdG9yUHJldmlld1BhbmVcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uPXtjb2xsZWN0aW9ufVxuICAgICAgICAgICAgICAgIGVudHJ5PXtwcmV2aWV3RW50cnl9XG4gICAgICAgICAgICAgICAgZmllbGRzPXtmaWVsZHN9XG4gICAgICAgICAgICAgICAgZmllbGRzTWV0YURhdGE9e2ZpZWxkc01ldGFEYXRhfVxuICAgICAgICAgICAgICAgIGxvY2FsZT17bGVmdFBhbmVsTG9jYWxlfVxuICAgICAgICAgICAgICAgIG9uRmllbGRDbGljaz17dGhpcy5oYW5kbGVGaWVsZENsaWNrfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9QcmV2aWV3UGFuZUNvbnRhaW5lcj5cbiAgICAgICAgICA8L1N0eWxlZFNwbGl0UGFuZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1Njcm9sbFN5bmM+XG4gICAgKTtcblxuICAgIGNvbnN0IGVkaXRvcldpdGhFZGl0b3IgPSAoXG4gICAgICA8U2Nyb2xsU3luYyBlbmFibGVkPXt0aGlzLnN0YXRlLnNjcm9sbFN5bmNFbmFibGVkfT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8U3R5bGVkU3BsaXRQYW5lXG4gICAgICAgICAgICBtYXhTaXplPXstMTAwfVxuICAgICAgICAgICAgZGVmYXVsdFNpemU9e3BhcnNlSW50KGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNQTElUX1BBTkVfUE9TSVRJT04pLCAxMCkgfHwgJzUwJSd9XG4gICAgICAgICAgICBvbkNoYW5nZT17c2l6ZSA9PiBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShTUExJVF9QQU5FX1BPU0lUSU9OLCBzaXplKX1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0ZWQ9e3RoaXMuaGFuZGxlU3BsaXRQYW5lRHJhZ1N0YXJ0fVxuICAgICAgICAgICAgb25EcmFnRmluaXNoZWQ9e3RoaXMuaGFuZGxlU3BsaXRQYW5lRHJhZ0ZpbmlzaGVkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTY3JvbGxTeW5jUGFuZT57ZWRpdG9yfTwvU2Nyb2xsU3luY1BhbmU+XG4gICAgICAgICAgICA8U2Nyb2xsU3luY1BhbmU+e2VkaXRvcjJ9PC9TY3JvbGxTeW5jUGFuZT5cbiAgICAgICAgICA8L1N0eWxlZFNwbGl0UGFuZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1Njcm9sbFN5bmM+XG4gICAgKTtcblxuICAgIGNvbnN0IGkxOG5WaXNpYmxlID0gY29sbGVjdGlvbkkxOG5FbmFibGVkICYmIHRoaXMuc3RhdGUuaTE4blZpc2libGU7XG4gICAgY29uc3QgcHJldmlld1Zpc2libGUgPSBwcmV2aWV3RW5hYmxlZCAmJiB0aGlzLnN0YXRlLnByZXZpZXdWaXNpYmxlO1xuICAgIGNvbnN0IHNjcm9sbFN5bmNWaXNpYmxlID0gaTE4blZpc2libGUgfHwgcHJldmlld1Zpc2libGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEVkaXRvckNvbnRhaW5lcj5cbiAgICAgICAgPEVkaXRvclRvb2xiYXJcbiAgICAgICAgICBpc1BlcnNpc3Rpbmc9e2VudHJ5LmdldCgnaXNQZXJzaXN0aW5nJyl9XG4gICAgICAgICAgaXNQdWJsaXNoaW5nPXtlbnRyeS5nZXQoJ2lzUHVibGlzaGluZycpfVxuICAgICAgICAgIGlzVXBkYXRpbmdTdGF0dXM9e2VudHJ5LmdldCgnaXNVcGRhdGluZ1N0YXR1cycpfVxuICAgICAgICAgIGlzRGVsZXRpbmc9e2VudHJ5LmdldCgnaXNEZWxldGluZycpfVxuICAgICAgICAgIG9uUGVyc2lzdD17dGhpcy5oYW5kbGVPblBlcnNpc3R9XG4gICAgICAgICAgb25QZXJzaXN0QW5kTmV3PXsoKSA9PiB0aGlzLmhhbmRsZU9uUGVyc2lzdCh7IGNyZWF0ZU5ldzogdHJ1ZSB9KX1cbiAgICAgICAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU9eygpID0+IHRoaXMuaGFuZGxlT25QZXJzaXN0KHsgY3JlYXRlTmV3OiB0cnVlLCBkdXBsaWNhdGU6IHRydWUgfSl9XG4gICAgICAgICAgb25EZWxldGU9e29uRGVsZXRlfVxuICAgICAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzPXtvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlc31cbiAgICAgICAgICBvbkNoYW5nZVN0YXR1cz17b25DaGFuZ2VTdGF0dXN9XG4gICAgICAgICAgc2hvd0RlbGV0ZT17c2hvd0RlbGV0ZX1cbiAgICAgICAgICBvblB1Ymxpc2g9e29uUHVibGlzaH1cbiAgICAgICAgICB1blB1Ymxpc2g9e3VuUHVibGlzaH1cbiAgICAgICAgICBvbkR1cGxpY2F0ZT17b25EdXBsaWNhdGV9XG4gICAgICAgICAgb25QdWJsaXNoQW5kTmV3PXsoKSA9PiB0aGlzLmhhbmRsZU9uUHVibGlzaCh7IGNyZWF0ZU5ldzogdHJ1ZSB9KX1cbiAgICAgICAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU9eygpID0+IHRoaXMuaGFuZGxlT25QdWJsaXNoKHsgY3JlYXRlTmV3OiB0cnVlLCBkdXBsaWNhdGU6IHRydWUgfSl9XG4gICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICBoYXNDaGFuZ2VkPXtoYXNDaGFuZ2VkfVxuICAgICAgICAgIGRpc3BsYXlVcmw9e2Rpc3BsYXlVcmx9XG4gICAgICAgICAgY29sbGVjdGlvbj17Y29sbGVjdGlvbn1cbiAgICAgICAgICBoYXNXb3JrZmxvdz17aGFzV29ya2Zsb3d9XG4gICAgICAgICAgdXNlT3BlbkF1dGhvcmluZz17dXNlT3BlbkF1dGhvcmluZ31cbiAgICAgICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXM9e2hhc1VucHVibGlzaGVkQ2hhbmdlc31cbiAgICAgICAgICBpc05ld0VudHJ5PXtpc05ld0VudHJ5fVxuICAgICAgICAgIGlzTW9kaWZpY2F0aW9uPXtpc01vZGlmaWNhdGlvbn1cbiAgICAgICAgICBjdXJyZW50U3RhdHVzPXtjdXJyZW50U3RhdHVzfVxuICAgICAgICAgIG9uTG9nb3V0Q2xpY2s9e29uTG9nb3V0Q2xpY2t9XG4gICAgICAgICAgbG9hZERlcGxveVByZXZpZXc9e2xvYWREZXBsb3lQcmV2aWV3fVxuICAgICAgICAgIGRlcGxveVByZXZpZXc9e2RlcGxveVByZXZpZXd9XG4gICAgICAgICAgZWRpdG9yQmFja0xpbms9e2VkaXRvckJhY2tMaW5rfVxuICAgICAgICAvPlxuICAgICAgICA8RWRpdG9yIGtleT17ZHJhZnRLZXl9PlxuICAgICAgICAgIDxWaWV3Q29udHJvbHM+XG4gICAgICAgICAgICB7Y29sbGVjdGlvbkkxOG5FbmFibGVkICYmIChcbiAgICAgICAgICAgICAgPEVkaXRvclRvZ2dsZVxuICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtpMThuVmlzaWJsZX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVRvZ2dsZUkxOG59XG4gICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwicGFnZVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9e3QoJ2VkaXRvci5lZGl0b3JJbnRlcmZhY2UudG9nZ2xlSTE4bicpfVxuICAgICAgICAgICAgICAgIG1hcmdpblRvcD1cIjcwcHhcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtwcmV2aWV3RW5hYmxlZCAmJiAoXG4gICAgICAgICAgICAgIDxFZGl0b3JUb2dnbGVcbiAgICAgICAgICAgICAgICBpc0FjdGl2ZT17cHJldmlld1Zpc2libGV9XG4gICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVUb2dnbGVQcmV2aWV3fVxuICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImV5ZVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9e3QoJ2VkaXRvci5lZGl0b3JJbnRlcmZhY2UudG9nZ2xlUHJldmlldycpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtzY3JvbGxTeW5jVmlzaWJsZSAmJiAhY29sbGVjdGlvbi5nZXRJbihbJ2VkaXRvcicsICd2aXN1YWxFZGl0aW5nJ10pICYmIChcbiAgICAgICAgICAgICAgPEVkaXRvclRvZ2dsZVxuICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtzY3JvbGxTeW5jRW5hYmxlZH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVRvZ2dsZVNjcm9sbFN5bmN9XG4gICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwic2Nyb2xsXCJcbiAgICAgICAgICAgICAgICB0aXRsZT17dCgnZWRpdG9yLmVkaXRvckludGVyZmFjZS50b2dnbGVTY3JvbGxTeW5jJyl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvVmlld0NvbnRyb2xzPlxuICAgICAgICAgIDxFZGl0b3JDb250ZW50XG4gICAgICAgICAgICBpMThuVmlzaWJsZT17aTE4blZpc2libGV9XG4gICAgICAgICAgICBwcmV2aWV3VmlzaWJsZT17cHJldmlld1Zpc2libGV9XG4gICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgIGVkaXRvcldpdGhFZGl0b3I9e2VkaXRvcldpdGhFZGl0b3J9XG4gICAgICAgICAgICBlZGl0b3JXaXRoUHJldmlldz17ZWRpdG9yV2l0aFByZXZpZXd9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9FZGl0b3I+XG4gICAgICA8L0VkaXRvckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbkVkaXRvckludGVyZmFjZS5wcm9wVHlwZXMgPSB7XG4gIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgZW50cnk6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgZmllbGRzOiBJbW11dGFibGVQcm9wVHlwZXMubGlzdC5pc1JlcXVpcmVkLFxuICBmaWVsZHNNZXRhRGF0YTogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICBmaWVsZHNFcnJvcnM6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uVmFsaWRhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25EdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uQ2hhbmdlU3RhdHVzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB1c2VyOiBQcm9wVHlwZXMub2JqZWN0LFxuICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICB1c2VPcGVuQXV0aG9yaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gIGlzTW9kaWZpY2F0aW9uOiBQcm9wVHlwZXMuYm9vbCxcbiAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZGVwbG95UHJldmlldzogUHJvcFR5cGVzLm9iamVjdCxcbiAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGRyYWZ0S2V5OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBFZGl0b3JJbnRlcmZhY2U7XG4iXX0= */",
41
+ styles: "margin-bottom:12px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JJbnRlcmZhY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0N1QyIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9FZGl0b3IvRWRpdG9ySW50ZXJmYWNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgSW1tdXRhYmxlUHJvcFR5cGVzIGZyb20gJ3JlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXMnO1xuaW1wb3J0IHsgY3NzLCBHbG9iYWwgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgU3BsaXRQYW5lIGZyb20gJ3JlYWN0LXNwbGl0LXBhbmUnO1xuaW1wb3J0IHtcbiAgY29sb3JzLFxuICBjb2xvcnNSYXcsXG4gIGNvbXBvbmVudHMsXG4gIHRyYW5zaXRpb25zLFxuICBJY29uQnV0dG9uLFxuICB6SW5kZXgsXG59IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcbmltcG9ydCB7IFNjcm9sbFN5bmMsIFNjcm9sbFN5bmNQYW5lIH0gZnJvbSAncmVhY3Qtc2Nyb2xsLXN5bmMnO1xuXG5pbXBvcnQgRWRpdG9yQ29udHJvbFBhbmUgZnJvbSAnLi9FZGl0b3JDb250cm9sUGFuZS9FZGl0b3JDb250cm9sUGFuZSc7XG5pbXBvcnQgRWRpdG9yUHJldmlld1BhbmUgZnJvbSAnLi9FZGl0b3JQcmV2aWV3UGFuZS9FZGl0b3JQcmV2aWV3UGFuZSc7XG5pbXBvcnQgRWRpdG9yVG9vbGJhciBmcm9tICcuL0VkaXRvclRvb2xiYXInO1xuaW1wb3J0IHsgaGFzSTE4biwgZ2V0STE4bkluZm8sIGdldFByZXZpZXdFbnRyeSB9IGZyb20gJy4uLy4uL2xpYi9pMThuJztcbmltcG9ydCB7IEZJTEVTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbGxlY3Rpb25UeXBlcyc7XG5pbXBvcnQgeyBnZXRGaWxlRnJvbVNsdWcgfSBmcm9tICcuLi8uLi9yZWR1Y2Vycy9jb2xsZWN0aW9ucyc7XG5cbmNvbnN0IFBSRVZJRVdfVklTSUJMRSA9ICdjbXMucHJldmlldy12aXNpYmxlJztcbmNvbnN0IFNDUk9MTF9TWU5DX0VOQUJMRUQgPSAnY21zLnNjcm9sbC1zeW5jLWVuYWJsZWQnO1xuY29uc3QgU1BMSVRfUEFORV9QT1NJVElPTiA9ICdjbXMuc3BsaXQtcGFuZS1wb3NpdGlvbic7XG5jb25zdCBJMThOX1ZJU0lCTEUgPSAnY21zLmkxOG4tdmlzaWJsZSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgc3BsaXRQYW5lOiBjc3NgXG4gICAgJHtjb21wb25lbnRzLmNhcmR9O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICBgLFxuICBwYW5lOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIGAsXG59O1xuXG5jb25zdCBFZGl0b3JUb2dnbGUgPSBzdHlsZWQoSWNvbkJ1dHRvbilgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5mdW5jdGlvbiBSZWFjdFNwbGl0UGFuZUdsb2JhbFN0eWxlcygpIHtcbiAgcmV0dXJuIChcbiAgICA8R2xvYmFsXG4gICAgICBzdHlsZXM9e2Nzc2BcbiAgICAgICAgLlJlc2l6ZXIudmVydGljYWwge1xuICAgICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICB3aWR0aDogMnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICR7dHJhbnNpdGlvbnMubWFpbn07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgICAgICAgIGxlZnQ6IC0xcHg7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgYH1cbiAgICAvPlxuICApO1xufVxuXG5jb25zdCBTdHlsZWRTcGxpdFBhbmUgPSBzdHlsZWQoU3BsaXRQYW5lKWBcbiAgJHtzdHlsZXMuc3BsaXRQYW5lfTtcblxuICAvKipcbiAgICogUXVpY2sgZml4IGZvciBwcmV2aWV3IHBhbmUgbm90IGZ1bGx5IGRpc3BsYXlpbmcgaW4gU2FmYXJpXG4gICAqL1xuICAuUGFuZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5gO1xuXG5jb25zdCBOb1ByZXZpZXdDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy5zcGxpdFBhbmV9O1xuYDtcblxuY29uc3QgRWRpdG9yQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctdG9wOiA2NnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9ycy5iYWNrZ3JvdW5kfTtcbmA7XG5cbmNvbnN0IEVkaXRvciA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IFByZXZpZXdQYW5lQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb2ludGVyLWV2ZW50czogJHtwcm9wcyA9PiAocHJvcHMuYmxvY2tFbnRyeSA/ICdub25lJyA6ICdhdXRvJyl9O1xuICBvdmVyZmxvdy15OiAke3Byb3BzID0+IChwcm9wcy5vdmVyRmxvdyA/ICdhdXRvJyA6ICdoaWRkZW4nKX07XG5gO1xuXG5jb25zdCBDb250cm9sUGFuZUNvbnRhaW5lciA9IHN0eWxlZChQcmV2aWV3UGFuZUNvbnRhaW5lcilgXG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG5gO1xuXG5jb25zdCBWaWV3Q29udHJvbHMgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDI5OX07XG5gO1xuXG5mdW5jdGlvbiBFZGl0b3JDb250ZW50KHtcbiAgaTE4blZpc2libGUsXG4gIHByZXZpZXdWaXNpYmxlLFxuICBlZGl0b3IsXG4gIGVkaXRvcldpdGhFZGl0b3IsXG4gIGVkaXRvcldpdGhQcmV2aWV3LFxufSkge1xuICBpZiAoaTE4blZpc2libGUpIHtcbiAgICByZXR1cm4gZWRpdG9yV2l0aEVkaXRvcjtcbiAgfSBlbHNlIGlmIChwcmV2aWV3VmlzaWJsZSkge1xuICAgIHJldHVybiBlZGl0b3JXaXRoUHJldmlldztcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gPE5vUHJldmlld0NvbnRhaW5lcj57ZWRpdG9yfTwvTm9QcmV2aWV3Q29udGFpbmVyPjtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1ByZXZpZXdFbmFibGVkKGNvbGxlY3Rpb24sIGVudHJ5KSB7XG4gIGlmIChjb2xsZWN0aW9uLmdldCgndHlwZScpID09PSBGSUxFUykge1xuICAgIGNvbnN0IGZpbGUgPSBnZXRGaWxlRnJvbVNsdWcoY29sbGVjdGlvbiwgZW50cnkuZ2V0KCdzbHVnJykpO1xuICAgIGNvbnN0IHByZXZpZXdFbmFibGVkID0gZmlsZT8uZ2V0SW4oWydlZGl0b3InLCAncHJldmlldyddKTtcbiAgICBpZiAocHJldmlld0VuYWJsZWQgIT0gbnVsbCkgcmV0dXJuIHByZXZpZXdFbmFibGVkO1xuICB9XG4gIHJldHVybiBjb2xsZWN0aW9uLmdldEluKFsnZWRpdG9yJywgJ3ByZXZpZXcnXSwgdHJ1ZSk7XG59XG5cbmNsYXNzIEVkaXRvckludGVyZmFjZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRlID0ge1xuICAgIHNob3dFdmVudEJsb2NrZXI6IGZhbHNlLFxuICAgIHByZXZpZXdWaXNpYmxlOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShQUkVWSUVXX1ZJU0lCTEUpICE9PSAnZmFsc2UnLFxuICAgIHNjcm9sbFN5bmNFbmFibGVkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTQ1JPTExfU1lOQ19FTkFCTEVEKSAhPT0gJ2ZhbHNlJyxcbiAgICBpMThuVmlzaWJsZTogbG9jYWxTdG9yYWdlLmdldEl0ZW0oSTE4Tl9WSVNJQkxFKSAhPT0gJ2ZhbHNlJyxcbiAgfTtcblxuICBoYW5kbGVGaWVsZENsaWNrID0gcGF0aCA9PiB7XG4gICAgdGhpcy5jb250cm9sUGFuZVJlZj8uZm9jdXMocGF0aCk7XG4gIH07XG5cbiAgaGFuZGxlU3BsaXRQYW5lRHJhZ1N0YXJ0ID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93RXZlbnRCbG9ja2VyOiB0cnVlIH0pO1xuICB9O1xuXG4gIGhhbmRsZVNwbGl0UGFuZURyYWdGaW5pc2hlZCA9ICgpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHsgc2hvd0V2ZW50QmxvY2tlcjogZmFsc2UgfSk7XG4gIH07XG5cbiAgaGFuZGxlT25QZXJzaXN0ID0gYXN5bmMgKG9wdHMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IHsgY3JlYXRlTmV3ID0gZmFsc2UsIGR1cGxpY2F0ZSA9IGZhbHNlIH0gPSBvcHRzO1xuICAgIGF3YWl0IHRoaXMuY29udHJvbFBhbmVSZWYuc3dpdGNoVG9EZWZhdWx0TG9jYWxlKCk7XG4gICAgdGhpcy5jb250cm9sUGFuZVJlZi52YWxpZGF0ZSgpO1xuICAgIHRoaXMucHJvcHMub25QZXJzaXN0KHsgY3JlYXRlTmV3LCBkdXBsaWNhdGUgfSk7XG4gIH07XG5cbiAgaGFuZGxlT25QdWJsaXNoID0gYXN5bmMgKG9wdHMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IHsgY3JlYXRlTmV3ID0gZmFsc2UsIGR1cGxpY2F0ZSA9IGZhbHNlIH0gPSBvcHRzO1xuICAgIGF3YWl0IHRoaXMuY29udHJvbFBhbmVSZWYuc3dpdGNoVG9EZWZhdWx0TG9jYWxlKCk7XG4gICAgdGhpcy5jb250cm9sUGFuZVJlZi52YWxpZGF0ZSgpO1xuICAgIHRoaXMucHJvcHMub25QdWJsaXNoKHsgY3JlYXRlTmV3LCBkdXBsaWNhdGUgfSk7XG4gIH07XG5cbiAgaGFuZGxlVG9nZ2xlUHJldmlldyA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdQcmV2aWV3VmlzaWJsZSA9ICF0aGlzLnN0YXRlLnByZXZpZXdWaXNpYmxlO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBwcmV2aWV3VmlzaWJsZTogbmV3UHJldmlld1Zpc2libGUgfSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oUFJFVklFV19WSVNJQkxFLCBuZXdQcmV2aWV3VmlzaWJsZSk7XG4gIH07XG5cbiAgaGFuZGxlVG9nZ2xlU2Nyb2xsU3luYyA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdTY3JvbGxTeW5jRW5hYmxlZCA9ICF0aGlzLnN0YXRlLnNjcm9sbFN5bmNFbmFibGVkO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBzY3JvbGxTeW5jRW5hYmxlZDogbmV3U2Nyb2xsU3luY0VuYWJsZWQgfSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oU0NST0xMX1NZTkNfRU5BQkxFRCwgbmV3U2Nyb2xsU3luY0VuYWJsZWQpO1xuICB9O1xuXG4gIGhhbmRsZVRvZ2dsZUkxOG4gPSAoKSA9PiB7XG4gICAgY29uc3QgbmV3STE4blZpc2libGUgPSAhdGhpcy5zdGF0ZS5pMThuVmlzaWJsZTtcbiAgICB0aGlzLnNldFN0YXRlKHsgaTE4blZpc2libGU6IG5ld0kxOG5WaXNpYmxlIH0pO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKEkxOE5fVklTSUJMRSwgbmV3STE4blZpc2libGUpO1xuICB9O1xuXG4gIGhhbmRsZUxlZnRQYW5lbExvY2FsZUNoYW5nZSA9IGxvY2FsZSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxlZnRQYW5lbExvY2FsZTogbG9jYWxlIH0pO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgZW50cnksXG4gICAgICBmaWVsZHMsXG4gICAgICBmaWVsZHNNZXRhRGF0YSxcbiAgICAgIGZpZWxkc0Vycm9ycyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIG9uRGVsZXRlLFxuICAgICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICBvbkNoYW5nZVN0YXR1cyxcbiAgICAgIG9uUHVibGlzaCxcbiAgICAgIHVuUHVibGlzaCxcbiAgICAgIG9uRHVwbGljYXRlLFxuICAgICAgb25WYWxpZGF0ZSxcbiAgICAgIHVzZXIsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgZGlzcGxheVVybCxcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgbG9hZERlcGxveVByZXZpZXcsXG4gICAgICBkZXBsb3lQcmV2aWV3LFxuICAgICAgZHJhZnRLZXksXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCB7IHNjcm9sbFN5bmNFbmFibGVkLCBzaG93RXZlbnRCbG9ja2VyIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgY29uc3QgcHJldmlld0VuYWJsZWQgPSBpc1ByZXZpZXdFbmFibGVkKGNvbGxlY3Rpb24sIGVudHJ5KTtcblxuICAgIGNvbnN0IHsgbG9jYWxlcywgZGVmYXVsdExvY2FsZSB9ID0gZ2V0STE4bkluZm8odGhpcy5wcm9wcy5jb2xsZWN0aW9uKTtcbiAgICBjb25zdCBjb2xsZWN0aW9uSTE4bkVuYWJsZWQgPSBoYXNJMThuKGNvbGxlY3Rpb24pICYmIGxvY2FsZXMubGVuZ3RoID4gMTtcbiAgICBjb25zdCBlZGl0b3JQcm9wcyA9IHtcbiAgICAgIGNvbGxlY3Rpb24sXG4gICAgICBlbnRyeSxcbiAgICAgIGZpZWxkcyxcbiAgICAgIGZpZWxkc01ldGFEYXRhLFxuICAgICAgZmllbGRzRXJyb3JzLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvblZhbGlkYXRlLFxuICAgIH07XG5cbiAgICBjb25zdCBsZWZ0UGFuZWxMb2NhbGUgPSB0aGlzLnN0YXRlLmxlZnRQYW5lbExvY2FsZSB8fCBsb2NhbGVzPy5bMF07XG4gICAgY29uc3QgZWRpdG9yID0gKFxuICAgICAgPENvbnRyb2xQYW5lQ29udGFpbmVyIG92ZXJGbG93IGJsb2NrRW50cnk9e3Nob3dFdmVudEJsb2NrZXJ9PlxuICAgICAgICA8RWRpdG9yQ29udHJvbFBhbmVcbiAgICAgICAgICB7Li4uZWRpdG9yUHJvcHN9XG4gICAgICAgICAgcmVmPXtjID0+ICh0aGlzLmNvbnRyb2xQYW5lUmVmID0gYyl9XG4gICAgICAgICAgbG9jYWxlPXtsZWZ0UGFuZWxMb2NhbGV9XG4gICAgICAgICAgdD17dH1cbiAgICAgICAgICBvbkxvY2FsZUNoYW5nZT17dGhpcy5oYW5kbGVMZWZ0UGFuZWxMb2NhbGVDaGFuZ2V9XG4gICAgICAgIC8+XG4gICAgICA8L0NvbnRyb2xQYW5lQ29udGFpbmVyPlxuICAgICk7XG5cbiAgICBjb25zdCBlZGl0b3IyID0gKFxuICAgICAgPENvbnRyb2xQYW5lQ29udGFpbmVyIG92ZXJGbG93PXshdGhpcy5zdGF0ZS5zY3JvbGxTeW5jRW5hYmxlZH0gYmxvY2tFbnRyeT17c2hvd0V2ZW50QmxvY2tlcn0+XG4gICAgICAgIDxFZGl0b3JDb250cm9sUGFuZSB7Li4uZWRpdG9yUHJvcHN9IGxvY2FsZT17bG9jYWxlcz8uWzFdfSB0PXt0fSAvPlxuICAgICAgPC9Db250cm9sUGFuZUNvbnRhaW5lcj5cbiAgICApO1xuXG4gICAgY29uc3QgcHJldmlld0VudHJ5ID0gY29sbGVjdGlvbkkxOG5FbmFibGVkXG4gICAgICA/IGdldFByZXZpZXdFbnRyeShlbnRyeSwgbGVmdFBhbmVsTG9jYWxlLCBkZWZhdWx0TG9jYWxlKVxuICAgICAgOiBlbnRyeTtcblxuICAgIGNvbnN0IGVkaXRvcldpdGhQcmV2aWV3ID0gKFxuICAgICAgPFNjcm9sbFN5bmMgZW5hYmxlZD17dGhpcy5zdGF0ZS5zY3JvbGxTeW5jRW5hYmxlZH0+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPFJlYWN0U3BsaXRQYW5lR2xvYmFsU3R5bGVzIC8+XG4gICAgICAgICAgPFN0eWxlZFNwbGl0UGFuZVxuICAgICAgICAgICAgbWF4U2l6ZT17LTEwMH1cbiAgICAgICAgICAgIG1pblNpemU9ezQwMH1cbiAgICAgICAgICAgIGRlZmF1bHRTaXplPXtwYXJzZUludChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTUExJVF9QQU5FX1BPU0lUSU9OKSwgMTApIHx8ICc1MCUnfVxuICAgICAgICAgICAgb25DaGFuZ2U9e3NpemUgPT4gbG9jYWxTdG9yYWdlLnNldEl0ZW0oU1BMSVRfUEFORV9QT1NJVElPTiwgc2l6ZSl9XG4gICAgICAgICAgICBvbkRyYWdTdGFydGVkPXt0aGlzLmhhbmRsZVNwbGl0UGFuZURyYWdTdGFydH1cbiAgICAgICAgICAgIG9uRHJhZ0ZpbmlzaGVkPXt0aGlzLmhhbmRsZVNwbGl0UGFuZURyYWdGaW5pc2hlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U2Nyb2xsU3luY1BhbmU+e2VkaXRvcn08L1Njcm9sbFN5bmNQYW5lPlxuICAgICAgICAgICAgPFByZXZpZXdQYW5lQ29udGFpbmVyIGJsb2NrRW50cnk9e3Nob3dFdmVudEJsb2NrZXJ9PlxuICAgICAgICAgICAgICA8RWRpdG9yUHJldmlld1BhbmVcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uPXtjb2xsZWN0aW9ufVxuICAgICAgICAgICAgICAgIGVudHJ5PXtwcmV2aWV3RW50cnl9XG4gICAgICAgICAgICAgICAgZmllbGRzPXtmaWVsZHN9XG4gICAgICAgICAgICAgICAgZmllbGRzTWV0YURhdGE9e2ZpZWxkc01ldGFEYXRhfVxuICAgICAgICAgICAgICAgIGxvY2FsZT17bGVmdFBhbmVsTG9jYWxlfVxuICAgICAgICAgICAgICAgIG9uRmllbGRDbGljaz17dGhpcy5oYW5kbGVGaWVsZENsaWNrfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9QcmV2aWV3UGFuZUNvbnRhaW5lcj5cbiAgICAgICAgICA8L1N0eWxlZFNwbGl0UGFuZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1Njcm9sbFN5bmM+XG4gICAgKTtcblxuICAgIGNvbnN0IGVkaXRvcldpdGhFZGl0b3IgPSAoXG4gICAgICA8U2Nyb2xsU3luYyBlbmFibGVkPXt0aGlzLnN0YXRlLnNjcm9sbFN5bmNFbmFibGVkfT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8U3R5bGVkU3BsaXRQYW5lXG4gICAgICAgICAgICBtYXhTaXplPXstMTAwfVxuICAgICAgICAgICAgZGVmYXVsdFNpemU9e3BhcnNlSW50KGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNQTElUX1BBTkVfUE9TSVRJT04pLCAxMCkgfHwgJzUwJSd9XG4gICAgICAgICAgICBvbkNoYW5nZT17c2l6ZSA9PiBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShTUExJVF9QQU5FX1BPU0lUSU9OLCBzaXplKX1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0ZWQ9e3RoaXMuaGFuZGxlU3BsaXRQYW5lRHJhZ1N0YXJ0fVxuICAgICAgICAgICAgb25EcmFnRmluaXNoZWQ9e3RoaXMuaGFuZGxlU3BsaXRQYW5lRHJhZ0ZpbmlzaGVkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTY3JvbGxTeW5jUGFuZT57ZWRpdG9yfTwvU2Nyb2xsU3luY1BhbmU+XG4gICAgICAgICAgICA8U2Nyb2xsU3luY1BhbmU+e2VkaXRvcjJ9PC9TY3JvbGxTeW5jUGFuZT5cbiAgICAgICAgICA8L1N0eWxlZFNwbGl0UGFuZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1Njcm9sbFN5bmM+XG4gICAgKTtcblxuICAgIGNvbnN0IGkxOG5WaXNpYmxlID0gY29sbGVjdGlvbkkxOG5FbmFibGVkICYmIHRoaXMuc3RhdGUuaTE4blZpc2libGU7XG4gICAgY29uc3QgcHJldmlld1Zpc2libGUgPSBwcmV2aWV3RW5hYmxlZCAmJiB0aGlzLnN0YXRlLnByZXZpZXdWaXNpYmxlO1xuICAgIGNvbnN0IHNjcm9sbFN5bmNWaXNpYmxlID0gaTE4blZpc2libGUgfHwgcHJldmlld1Zpc2libGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEVkaXRvckNvbnRhaW5lcj5cbiAgICAgICAgPEVkaXRvclRvb2xiYXJcbiAgICAgICAgICBpc1BlcnNpc3Rpbmc9e2VudHJ5LmdldCgnaXNQZXJzaXN0aW5nJyl9XG4gICAgICAgICAgaXNQdWJsaXNoaW5nPXtlbnRyeS5nZXQoJ2lzUHVibGlzaGluZycpfVxuICAgICAgICAgIGlzVXBkYXRpbmdTdGF0dXM9e2VudHJ5LmdldCgnaXNVcGRhdGluZ1N0YXR1cycpfVxuICAgICAgICAgIGlzRGVsZXRpbmc9e2VudHJ5LmdldCgnaXNEZWxldGluZycpfVxuICAgICAgICAgIG9uUGVyc2lzdD17dGhpcy5oYW5kbGVPblBlcnNpc3R9XG4gICAgICAgICAgb25QZXJzaXN0QW5kTmV3PXsoKSA9PiB0aGlzLmhhbmRsZU9uUGVyc2lzdCh7IGNyZWF0ZU5ldzogdHJ1ZSB9KX1cbiAgICAgICAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU9eygpID0+IHRoaXMuaGFuZGxlT25QZXJzaXN0KHsgY3JlYXRlTmV3OiB0cnVlLCBkdXBsaWNhdGU6IHRydWUgfSl9XG4gICAgICAgICAgb25EZWxldGU9e29uRGVsZXRlfVxuICAgICAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzPXtvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlc31cbiAgICAgICAgICBvbkNoYW5nZVN0YXR1cz17b25DaGFuZ2VTdGF0dXN9XG4gICAgICAgICAgc2hvd0RlbGV0ZT17c2hvd0RlbGV0ZX1cbiAgICAgICAgICBvblB1Ymxpc2g9e29uUHVibGlzaH1cbiAgICAgICAgICB1blB1Ymxpc2g9e3VuUHVibGlzaH1cbiAgICAgICAgICBvbkR1cGxpY2F0ZT17b25EdXBsaWNhdGV9XG4gICAgICAgICAgb25QdWJsaXNoQW5kTmV3PXsoKSA9PiB0aGlzLmhhbmRsZU9uUHVibGlzaCh7IGNyZWF0ZU5ldzogdHJ1ZSB9KX1cbiAgICAgICAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU9eygpID0+IHRoaXMuaGFuZGxlT25QdWJsaXNoKHsgY3JlYXRlTmV3OiB0cnVlLCBkdXBsaWNhdGU6IHRydWUgfSl9XG4gICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICBoYXNDaGFuZ2VkPXtoYXNDaGFuZ2VkfVxuICAgICAgICAgIGRpc3BsYXlVcmw9e2Rpc3BsYXlVcmx9XG4gICAgICAgICAgY29sbGVjdGlvbj17Y29sbGVjdGlvbn1cbiAgICAgICAgICBoYXNXb3JrZmxvdz17aGFzV29ya2Zsb3d9XG4gICAgICAgICAgdXNlT3BlbkF1dGhvcmluZz17dXNlT3BlbkF1dGhvcmluZ31cbiAgICAgICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXM9e2hhc1VucHVibGlzaGVkQ2hhbmdlc31cbiAgICAgICAgICBpc05ld0VudHJ5PXtpc05ld0VudHJ5fVxuICAgICAgICAgIGlzTW9kaWZpY2F0aW9uPXtpc01vZGlmaWNhdGlvbn1cbiAgICAgICAgICBjdXJyZW50U3RhdHVzPXtjdXJyZW50U3RhdHVzfVxuICAgICAgICAgIG9uTG9nb3V0Q2xpY2s9e29uTG9nb3V0Q2xpY2t9XG4gICAgICAgICAgbG9hZERlcGxveVByZXZpZXc9e2xvYWREZXBsb3lQcmV2aWV3fVxuICAgICAgICAgIGRlcGxveVByZXZpZXc9e2RlcGxveVByZXZpZXd9XG4gICAgICAgICAgZWRpdG9yQmFja0xpbms9e2VkaXRvckJhY2tMaW5rfVxuICAgICAgICAvPlxuICAgICAgICA8RWRpdG9yIGtleT17ZHJhZnRLZXl9PlxuICAgICAgICAgIDxWaWV3Q29udHJvbHM+XG4gICAgICAgICAgICB7Y29sbGVjdGlvbkkxOG5FbmFibGVkICYmIChcbiAgICAgICAgICAgICAgPEVkaXRvclRvZ2dsZVxuICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtpMThuVmlzaWJsZX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVRvZ2dsZUkxOG59XG4gICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwicGFnZVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9e3QoJ2VkaXRvci5lZGl0b3JJbnRlcmZhY2UudG9nZ2xlSTE4bicpfVxuICAgICAgICAgICAgICAgIG1hcmdpblRvcD1cIjcwcHhcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtwcmV2aWV3RW5hYmxlZCAmJiAoXG4gICAgICAgICAgICAgIDxFZGl0b3JUb2dnbGVcbiAgICAgICAgICAgICAgICBpc0FjdGl2ZT17cHJldmlld1Zpc2libGV9XG4gICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVUb2dnbGVQcmV2aWV3fVxuICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImV5ZVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9e3QoJ2VkaXRvci5lZGl0b3JJbnRlcmZhY2UudG9nZ2xlUHJldmlldycpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtzY3JvbGxTeW5jVmlzaWJsZSAmJiAhY29sbGVjdGlvbi5nZXRJbihbJ2VkaXRvcicsICd2aXN1YWxFZGl0aW5nJ10pICYmIChcbiAgICAgICAgICAgICAgPEVkaXRvclRvZ2dsZVxuICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtzY3JvbGxTeW5jRW5hYmxlZH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVRvZ2dsZVNjcm9sbFN5bmN9XG4gICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwic2Nyb2xsXCJcbiAgICAgICAgICAgICAgICB0aXRsZT17dCgnZWRpdG9yLmVkaXRvckludGVyZmFjZS50b2dnbGVTY3JvbGxTeW5jJyl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvVmlld0NvbnRyb2xzPlxuICAgICAgICAgIDxFZGl0b3JDb250ZW50XG4gICAgICAgICAgICBpMThuVmlzaWJsZT17aTE4blZpc2libGV9XG4gICAgICAgICAgICBwcmV2aWV3VmlzaWJsZT17cHJldmlld1Zpc2libGV9XG4gICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgIGVkaXRvcldpdGhFZGl0b3I9e2VkaXRvcldpdGhFZGl0b3J9XG4gICAgICAgICAgICBlZGl0b3JXaXRoUHJldmlldz17ZWRpdG9yV2l0aFByZXZpZXd9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9FZGl0b3I+XG4gICAgICA8L0VkaXRvckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbkVkaXRvckludGVyZmFjZS5wcm9wVHlwZXMgPSB7XG4gIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgZW50cnk6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgZmllbGRzOiBJbW11dGFibGVQcm9wVHlwZXMubGlzdC5pc1JlcXVpcmVkLFxuICBmaWVsZHNNZXRhRGF0YTogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICBmaWVsZHNFcnJvcnM6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uVmFsaWRhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25EdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uQ2hhbmdlU3RhdHVzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB1c2VyOiBQcm9wVHlwZXMub2JqZWN0LFxuICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICB1c2VPcGVuQXV0aG9yaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gIGlzTW9kaWZpY2F0aW9uOiBQcm9wVHlwZXMuYm9vbCxcbiAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZGVwbG95UHJldmlldzogUHJvcFR5cGVzLm9iamVjdCxcbiAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGRyYWZ0S2V5OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBFZGl0b3JJbnRlcmZhY2U7XG4iXX0= */",
47
42
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
48
43
  });
49
44
  function ReactSplitPaneGlobalStyles() {
@@ -71,8 +66,7 @@ const Editor = /*#__PURE__*/_styled("div", {
71
66
  styles: "height:100%;margin:0 auto;position:relative"
72
67
  } : {
73
68
  name: "yd3x82",
74
- styles: "height:100%;margin:0 auto;position:relative",
75
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JJbnRlcmZhY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEd5QiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9FZGl0b3IvRWRpdG9ySW50ZXJmYWNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgSW1tdXRhYmxlUHJvcFR5cGVzIGZyb20gJ3JlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXMnO1xuaW1wb3J0IHsgY3NzLCBHbG9iYWwgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgU3BsaXRQYW5lIGZyb20gJ3JlYWN0LXNwbGl0LXBhbmUnO1xuaW1wb3J0IHtcbiAgY29sb3JzLFxuICBjb2xvcnNSYXcsXG4gIGNvbXBvbmVudHMsXG4gIHRyYW5zaXRpb25zLFxuICBJY29uQnV0dG9uLFxuICB6SW5kZXgsXG59IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcbmltcG9ydCB7IFNjcm9sbFN5bmMsIFNjcm9sbFN5bmNQYW5lIH0gZnJvbSAncmVhY3Qtc2Nyb2xsLXN5bmMnO1xuXG5pbXBvcnQgRWRpdG9yQ29udHJvbFBhbmUgZnJvbSAnLi9FZGl0b3JDb250cm9sUGFuZS9FZGl0b3JDb250cm9sUGFuZSc7XG5pbXBvcnQgRWRpdG9yUHJldmlld1BhbmUgZnJvbSAnLi9FZGl0b3JQcmV2aWV3UGFuZS9FZGl0b3JQcmV2aWV3UGFuZSc7XG5pbXBvcnQgRWRpdG9yVG9vbGJhciBmcm9tICcuL0VkaXRvclRvb2xiYXInO1xuaW1wb3J0IHsgaGFzSTE4biwgZ2V0STE4bkluZm8sIGdldFByZXZpZXdFbnRyeSB9IGZyb20gJy4uLy4uL2xpYi9pMThuJztcbmltcG9ydCB7IEZJTEVTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbGxlY3Rpb25UeXBlcyc7XG5pbXBvcnQgeyBnZXRGaWxlRnJvbVNsdWcgfSBmcm9tICcuLi8uLi9yZWR1Y2Vycy9jb2xsZWN0aW9ucyc7XG5cbmNvbnN0IFBSRVZJRVdfVklTSUJMRSA9ICdjbXMucHJldmlldy12aXNpYmxlJztcbmNvbnN0IFNDUk9MTF9TWU5DX0VOQUJMRUQgPSAnY21zLnNjcm9sbC1zeW5jLWVuYWJsZWQnO1xuY29uc3QgU1BMSVRfUEFORV9QT1NJVElPTiA9ICdjbXMuc3BsaXQtcGFuZS1wb3NpdGlvbic7XG5jb25zdCBJMThOX1ZJU0lCTEUgPSAnY21zLmkxOG4tdmlzaWJsZSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgc3BsaXRQYW5lOiBjc3NgXG4gICAgJHtjb21wb25lbnRzLmNhcmR9O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICBgLFxuICBwYW5lOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIGAsXG59O1xuXG5jb25zdCBFZGl0b3JUb2dnbGUgPSBzdHlsZWQoSWNvbkJ1dHRvbilgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5mdW5jdGlvbiBSZWFjdFNwbGl0UGFuZUdsb2JhbFN0eWxlcygpIHtcbiAgcmV0dXJuIChcbiAgICA8R2xvYmFsXG4gICAgICBzdHlsZXM9e2Nzc2BcbiAgICAgICAgLlJlc2l6ZXIudmVydGljYWwge1xuICAgICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICB3aWR0aDogMnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICR7dHJhbnNpdGlvbnMubWFpbn07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgICAgICAgIGxlZnQ6IC0xcHg7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgYH1cbiAgICAvPlxuICApO1xufVxuXG5jb25zdCBTdHlsZWRTcGxpdFBhbmUgPSBzdHlsZWQoU3BsaXRQYW5lKWBcbiAgJHtzdHlsZXMuc3BsaXRQYW5lfTtcblxuICAvKipcbiAgICogUXVpY2sgZml4IGZvciBwcmV2aWV3IHBhbmUgbm90IGZ1bGx5IGRpc3BsYXlpbmcgaW4gU2FmYXJpXG4gICAqL1xuICAuUGFuZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5gO1xuXG5jb25zdCBOb1ByZXZpZXdDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy5zcGxpdFBhbmV9O1xuYDtcblxuY29uc3QgRWRpdG9yQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctdG9wOiA2NnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9ycy5iYWNrZ3JvdW5kfTtcbmA7XG5cbmNvbnN0IEVkaXRvciA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IFByZXZpZXdQYW5lQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb2ludGVyLWV2ZW50czogJHtwcm9wcyA9PiAocHJvcHMuYmxvY2tFbnRyeSA/ICdub25lJyA6ICdhdXRvJyl9O1xuICBvdmVyZmxvdy15OiAke3Byb3BzID0+IChwcm9wcy5vdmVyRmxvdyA/ICdhdXRvJyA6ICdoaWRkZW4nKX07XG5gO1xuXG5jb25zdCBDb250cm9sUGFuZUNvbnRhaW5lciA9IHN0eWxlZChQcmV2aWV3UGFuZUNvbnRhaW5lcilgXG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG5gO1xuXG5jb25zdCBWaWV3Q29udHJvbHMgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDI5OX07XG5gO1xuXG5mdW5jdGlvbiBFZGl0b3JDb250ZW50KHtcbiAgaTE4blZpc2libGUsXG4gIHByZXZpZXdWaXNpYmxlLFxuICBlZGl0b3IsXG4gIGVkaXRvcldpdGhFZGl0b3IsXG4gIGVkaXRvcldpdGhQcmV2aWV3LFxufSkge1xuICBpZiAoaTE4blZpc2libGUpIHtcbiAgICByZXR1cm4gZWRpdG9yV2l0aEVkaXRvcjtcbiAgfSBlbHNlIGlmIChwcmV2aWV3VmlzaWJsZSkge1xuICAgIHJldHVybiBlZGl0b3JXaXRoUHJldmlldztcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gPE5vUHJldmlld0NvbnRhaW5lcj57ZWRpdG9yfTwvTm9QcmV2aWV3Q29udGFpbmVyPjtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1ByZXZpZXdFbmFibGVkKGNvbGxlY3Rpb24sIGVudHJ5KSB7XG4gIGlmIChjb2xsZWN0aW9uLmdldCgndHlwZScpID09PSBGSUxFUykge1xuICAgIGNvbnN0IGZpbGUgPSBnZXRGaWxlRnJvbVNsdWcoY29sbGVjdGlvbiwgZW50cnkuZ2V0KCdzbHVnJykpO1xuICAgIGNvbnN0IHByZXZpZXdFbmFibGVkID0gZmlsZT8uZ2V0SW4oWydlZGl0b3InLCAncHJldmlldyddKTtcbiAgICBpZiAocHJldmlld0VuYWJsZWQgIT0gbnVsbCkgcmV0dXJuIHByZXZpZXdFbmFibGVkO1xuICB9XG4gIHJldHVybiBjb2xsZWN0aW9uLmdldEluKFsnZWRpdG9yJywgJ3ByZXZpZXcnXSwgdHJ1ZSk7XG59XG5cbmNsYXNzIEVkaXRvckludGVyZmFjZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRlID0ge1xuICAgIHNob3dFdmVudEJsb2NrZXI6IGZhbHNlLFxuICAgIHByZXZpZXdWaXNpYmxlOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShQUkVWSUVXX1ZJU0lCTEUpICE9PSAnZmFsc2UnLFxuICAgIHNjcm9sbFN5bmNFbmFibGVkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTQ1JPTExfU1lOQ19FTkFCTEVEKSAhPT0gJ2ZhbHNlJyxcbiAgICBpMThuVmlzaWJsZTogbG9jYWxTdG9yYWdlLmdldEl0ZW0oSTE4Tl9WSVNJQkxFKSAhPT0gJ2ZhbHNlJyxcbiAgfTtcblxuICBoYW5kbGVGaWVsZENsaWNrID0gcGF0aCA9PiB7XG4gICAgdGhpcy5jb250cm9sUGFuZVJlZj8uZm9jdXMocGF0aCk7XG4gIH07XG5cbiAgaGFuZGxlU3BsaXRQYW5lRHJhZ1N0YXJ0ID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93RXZlbnRCbG9ja2VyOiB0cnVlIH0pO1xuICB9O1xuXG4gIGhhbmRsZVNwbGl0UGFuZURyYWdGaW5pc2hlZCA9ICgpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHsgc2hvd0V2ZW50QmxvY2tlcjogZmFsc2UgfSk7XG4gIH07XG5cbiAgaGFuZGxlT25QZXJzaXN0ID0gYXN5bmMgKG9wdHMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IHsgY3JlYXRlTmV3ID0gZmFsc2UsIGR1cGxpY2F0ZSA9IGZhbHNlIH0gPSBvcHRzO1xuICAgIGF3YWl0IHRoaXMuY29udHJvbFBhbmVSZWYuc3dpdGNoVG9EZWZhdWx0TG9jYWxlKCk7XG4gICAgdGhpcy5jb250cm9sUGFuZVJlZi52YWxpZGF0ZSgpO1xuICAgIHRoaXMucHJvcHMub25QZXJzaXN0KHsgY3JlYXRlTmV3LCBkdXBsaWNhdGUgfSk7XG4gIH07XG5cbiAgaGFuZGxlT25QdWJsaXNoID0gYXN5bmMgKG9wdHMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IHsgY3JlYXRlTmV3ID0gZmFsc2UsIGR1cGxpY2F0ZSA9IGZhbHNlIH0gPSBvcHRzO1xuICAgIGF3YWl0IHRoaXMuY29udHJvbFBhbmVSZWYuc3dpdGNoVG9EZWZhdWx0TG9jYWxlKCk7XG4gICAgdGhpcy5jb250cm9sUGFuZVJlZi52YWxpZGF0ZSgpO1xuICAgIHRoaXMucHJvcHMub25QdWJsaXNoKHsgY3JlYXRlTmV3LCBkdXBsaWNhdGUgfSk7XG4gIH07XG5cbiAgaGFuZGxlVG9nZ2xlUHJldmlldyA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdQcmV2aWV3VmlzaWJsZSA9ICF0aGlzLnN0YXRlLnByZXZpZXdWaXNpYmxlO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBwcmV2aWV3VmlzaWJsZTogbmV3UHJldmlld1Zpc2libGUgfSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oUFJFVklFV19WSVNJQkxFLCBuZXdQcmV2aWV3VmlzaWJsZSk7XG4gIH07XG5cbiAgaGFuZGxlVG9nZ2xlU2Nyb2xsU3luYyA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdTY3JvbGxTeW5jRW5hYmxlZCA9ICF0aGlzLnN0YXRlLnNjcm9sbFN5bmNFbmFibGVkO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBzY3JvbGxTeW5jRW5hYmxlZDogbmV3U2Nyb2xsU3luY0VuYWJsZWQgfSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oU0NST0xMX1NZTkNfRU5BQkxFRCwgbmV3U2Nyb2xsU3luY0VuYWJsZWQpO1xuICB9O1xuXG4gIGhhbmRsZVRvZ2dsZUkxOG4gPSAoKSA9PiB7XG4gICAgY29uc3QgbmV3STE4blZpc2libGUgPSAhdGhpcy5zdGF0ZS5pMThuVmlzaWJsZTtcbiAgICB0aGlzLnNldFN0YXRlKHsgaTE4blZpc2libGU6IG5ld0kxOG5WaXNpYmxlIH0pO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKEkxOE5fVklTSUJMRSwgbmV3STE4blZpc2libGUpO1xuICB9O1xuXG4gIGhhbmRsZUxlZnRQYW5lbExvY2FsZUNoYW5nZSA9IGxvY2FsZSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxlZnRQYW5lbExvY2FsZTogbG9jYWxlIH0pO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgZW50cnksXG4gICAgICBmaWVsZHMsXG4gICAgICBmaWVsZHNNZXRhRGF0YSxcbiAgICAgIGZpZWxkc0Vycm9ycyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIG9uRGVsZXRlLFxuICAgICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICBvbkNoYW5nZVN0YXR1cyxcbiAgICAgIG9uUHVibGlzaCxcbiAgICAgIHVuUHVibGlzaCxcbiAgICAgIG9uRHVwbGljYXRlLFxuICAgICAgb25WYWxpZGF0ZSxcbiAgICAgIHVzZXIsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgZGlzcGxheVVybCxcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgbG9hZERlcGxveVByZXZpZXcsXG4gICAgICBkZXBsb3lQcmV2aWV3LFxuICAgICAgZHJhZnRLZXksXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCB7IHNjcm9sbFN5bmNFbmFibGVkLCBzaG93RXZlbnRCbG9ja2VyIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgY29uc3QgcHJldmlld0VuYWJsZWQgPSBpc1ByZXZpZXdFbmFibGVkKGNvbGxlY3Rpb24sIGVudHJ5KTtcblxuICAgIGNvbnN0IHsgbG9jYWxlcywgZGVmYXVsdExvY2FsZSB9ID0gZ2V0STE4bkluZm8odGhpcy5wcm9wcy5jb2xsZWN0aW9uKTtcbiAgICBjb25zdCBjb2xsZWN0aW9uSTE4bkVuYWJsZWQgPSBoYXNJMThuKGNvbGxlY3Rpb24pICYmIGxvY2FsZXMubGVuZ3RoID4gMTtcbiAgICBjb25zdCBlZGl0b3JQcm9wcyA9IHtcbiAgICAgIGNvbGxlY3Rpb24sXG4gICAgICBlbnRyeSxcbiAgICAgIGZpZWxkcyxcbiAgICAgIGZpZWxkc01ldGFEYXRhLFxuICAgICAgZmllbGRzRXJyb3JzLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvblZhbGlkYXRlLFxuICAgIH07XG5cbiAgICBjb25zdCBsZWZ0UGFuZWxMb2NhbGUgPSB0aGlzLnN0YXRlLmxlZnRQYW5lbExvY2FsZSB8fCBsb2NhbGVzPy5bMF07XG4gICAgY29uc3QgZWRpdG9yID0gKFxuICAgICAgPENvbnRyb2xQYW5lQ29udGFpbmVyIG92ZXJGbG93IGJsb2NrRW50cnk9e3Nob3dFdmVudEJsb2NrZXJ9PlxuICAgICAgICA8RWRpdG9yQ29udHJvbFBhbmVcbiAgICAgICAgICB7Li4uZWRpdG9yUHJvcHN9XG4gICAgICAgICAgcmVmPXtjID0+ICh0aGlzLmNvbnRyb2xQYW5lUmVmID0gYyl9XG4gICAgICAgICAgbG9jYWxlPXtsZWZ0UGFuZWxMb2NhbGV9XG4gICAgICAgICAgdD17dH1cbiAgICAgICAgICBvbkxvY2FsZUNoYW5nZT17dGhpcy5oYW5kbGVMZWZ0UGFuZWxMb2NhbGVDaGFuZ2V9XG4gICAgICAgIC8+XG4gICAgICA8L0NvbnRyb2xQYW5lQ29udGFpbmVyPlxuICAgICk7XG5cbiAgICBjb25zdCBlZGl0b3IyID0gKFxuICAgICAgPENvbnRyb2xQYW5lQ29udGFpbmVyIG92ZXJGbG93PXshdGhpcy5zdGF0ZS5zY3JvbGxTeW5jRW5hYmxlZH0gYmxvY2tFbnRyeT17c2hvd0V2ZW50QmxvY2tlcn0+XG4gICAgICAgIDxFZGl0b3JDb250cm9sUGFuZSB7Li4uZWRpdG9yUHJvcHN9IGxvY2FsZT17bG9jYWxlcz8uWzFdfSB0PXt0fSAvPlxuICAgICAgPC9Db250cm9sUGFuZUNvbnRhaW5lcj5cbiAgICApO1xuXG4gICAgY29uc3QgcHJldmlld0VudHJ5ID0gY29sbGVjdGlvbkkxOG5FbmFibGVkXG4gICAgICA/IGdldFByZXZpZXdFbnRyeShlbnRyeSwgbGVmdFBhbmVsTG9jYWxlLCBkZWZhdWx0TG9jYWxlKVxuICAgICAgOiBlbnRyeTtcblxuICAgIGNvbnN0IGVkaXRvcldpdGhQcmV2aWV3ID0gKFxuICAgICAgPFNjcm9sbFN5bmMgZW5hYmxlZD17dGhpcy5zdGF0ZS5zY3JvbGxTeW5jRW5hYmxlZH0+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPFJlYWN0U3BsaXRQYW5lR2xvYmFsU3R5bGVzIC8+XG4gICAgICAgICAgPFN0eWxlZFNwbGl0UGFuZVxuICAgICAgICAgICAgbWF4U2l6ZT17LTEwMH1cbiAgICAgICAgICAgIG1pblNpemU9ezQwMH1cbiAgICAgICAgICAgIGRlZmF1bHRTaXplPXtwYXJzZUludChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTUExJVF9QQU5FX1BPU0lUSU9OKSwgMTApIHx8ICc1MCUnfVxuICAgICAgICAgICAgb25DaGFuZ2U9e3NpemUgPT4gbG9jYWxTdG9yYWdlLnNldEl0ZW0oU1BMSVRfUEFORV9QT1NJVElPTiwgc2l6ZSl9XG4gICAgICAgICAgICBvbkRyYWdTdGFydGVkPXt0aGlzLmhhbmRsZVNwbGl0UGFuZURyYWdTdGFydH1cbiAgICAgICAgICAgIG9uRHJhZ0ZpbmlzaGVkPXt0aGlzLmhhbmRsZVNwbGl0UGFuZURyYWdGaW5pc2hlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U2Nyb2xsU3luY1BhbmU+e2VkaXRvcn08L1Njcm9sbFN5bmNQYW5lPlxuICAgICAgICAgICAgPFByZXZpZXdQYW5lQ29udGFpbmVyIGJsb2NrRW50cnk9e3Nob3dFdmVudEJsb2NrZXJ9PlxuICAgICAgICAgICAgICA8RWRpdG9yUHJldmlld1BhbmVcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uPXtjb2xsZWN0aW9ufVxuICAgICAgICAgICAgICAgIGVudHJ5PXtwcmV2aWV3RW50cnl9XG4gICAgICAgICAgICAgICAgZmllbGRzPXtmaWVsZHN9XG4gICAgICAgICAgICAgICAgZmllbGRzTWV0YURhdGE9e2ZpZWxkc01ldGFEYXRhfVxuICAgICAgICAgICAgICAgIGxvY2FsZT17bGVmdFBhbmVsTG9jYWxlfVxuICAgICAgICAgICAgICAgIG9uRmllbGRDbGljaz17dGhpcy5oYW5kbGVGaWVsZENsaWNrfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9QcmV2aWV3UGFuZUNvbnRhaW5lcj5cbiAgICAgICAgICA8L1N0eWxlZFNwbGl0UGFuZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1Njcm9sbFN5bmM+XG4gICAgKTtcblxuICAgIGNvbnN0IGVkaXRvcldpdGhFZGl0b3IgPSAoXG4gICAgICA8U2Nyb2xsU3luYyBlbmFibGVkPXt0aGlzLnN0YXRlLnNjcm9sbFN5bmNFbmFibGVkfT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8U3R5bGVkU3BsaXRQYW5lXG4gICAgICAgICAgICBtYXhTaXplPXstMTAwfVxuICAgICAgICAgICAgZGVmYXVsdFNpemU9e3BhcnNlSW50KGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNQTElUX1BBTkVfUE9TSVRJT04pLCAxMCkgfHwgJzUwJSd9XG4gICAgICAgICAgICBvbkNoYW5nZT17c2l6ZSA9PiBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShTUExJVF9QQU5FX1BPU0lUSU9OLCBzaXplKX1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0ZWQ9e3RoaXMuaGFuZGxlU3BsaXRQYW5lRHJhZ1N0YXJ0fVxuICAgICAgICAgICAgb25EcmFnRmluaXNoZWQ9e3RoaXMuaGFuZGxlU3BsaXRQYW5lRHJhZ0ZpbmlzaGVkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTY3JvbGxTeW5jUGFuZT57ZWRpdG9yfTwvU2Nyb2xsU3luY1BhbmU+XG4gICAgICAgICAgICA8U2Nyb2xsU3luY1BhbmU+e2VkaXRvcjJ9PC9TY3JvbGxTeW5jUGFuZT5cbiAgICAgICAgICA8L1N0eWxlZFNwbGl0UGFuZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1Njcm9sbFN5bmM+XG4gICAgKTtcblxuICAgIGNvbnN0IGkxOG5WaXNpYmxlID0gY29sbGVjdGlvbkkxOG5FbmFibGVkICYmIHRoaXMuc3RhdGUuaTE4blZpc2libGU7XG4gICAgY29uc3QgcHJldmlld1Zpc2libGUgPSBwcmV2aWV3RW5hYmxlZCAmJiB0aGlzLnN0YXRlLnByZXZpZXdWaXNpYmxlO1xuICAgIGNvbnN0IHNjcm9sbFN5bmNWaXNpYmxlID0gaTE4blZpc2libGUgfHwgcHJldmlld1Zpc2libGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEVkaXRvckNvbnRhaW5lcj5cbiAgICAgICAgPEVkaXRvclRvb2xiYXJcbiAgICAgICAgICBpc1BlcnNpc3Rpbmc9e2VudHJ5LmdldCgnaXNQZXJzaXN0aW5nJyl9XG4gICAgICAgICAgaXNQdWJsaXNoaW5nPXtlbnRyeS5nZXQoJ2lzUHVibGlzaGluZycpfVxuICAgICAgICAgIGlzVXBkYXRpbmdTdGF0dXM9e2VudHJ5LmdldCgnaXNVcGRhdGluZ1N0YXR1cycpfVxuICAgICAgICAgIGlzRGVsZXRpbmc9e2VudHJ5LmdldCgnaXNEZWxldGluZycpfVxuICAgICAgICAgIG9uUGVyc2lzdD17dGhpcy5oYW5kbGVPblBlcnNpc3R9XG4gICAgICAgICAgb25QZXJzaXN0QW5kTmV3PXsoKSA9PiB0aGlzLmhhbmRsZU9uUGVyc2lzdCh7IGNyZWF0ZU5ldzogdHJ1ZSB9KX1cbiAgICAgICAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU9eygpID0+IHRoaXMuaGFuZGxlT25QZXJzaXN0KHsgY3JlYXRlTmV3OiB0cnVlLCBkdXBsaWNhdGU6IHRydWUgfSl9XG4gICAgICAgICAgb25EZWxldGU9e29uRGVsZXRlfVxuICAgICAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzPXtvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlc31cbiAgICAgICAgICBvbkNoYW5nZVN0YXR1cz17b25DaGFuZ2VTdGF0dXN9XG4gICAgICAgICAgc2hvd0RlbGV0ZT17c2hvd0RlbGV0ZX1cbiAgICAgICAgICBvblB1Ymxpc2g9e29uUHVibGlzaH1cbiAgICAgICAgICB1blB1Ymxpc2g9e3VuUHVibGlzaH1cbiAgICAgICAgICBvbkR1cGxpY2F0ZT17b25EdXBsaWNhdGV9XG4gICAgICAgICAgb25QdWJsaXNoQW5kTmV3PXsoKSA9PiB0aGlzLmhhbmRsZU9uUHVibGlzaCh7IGNyZWF0ZU5ldzogdHJ1ZSB9KX1cbiAgICAgICAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU9eygpID0+IHRoaXMuaGFuZGxlT25QdWJsaXNoKHsgY3JlYXRlTmV3OiB0cnVlLCBkdXBsaWNhdGU6IHRydWUgfSl9XG4gICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICBoYXNDaGFuZ2VkPXtoYXNDaGFuZ2VkfVxuICAgICAgICAgIGRpc3BsYXlVcmw9e2Rpc3BsYXlVcmx9XG4gICAgICAgICAgY29sbGVjdGlvbj17Y29sbGVjdGlvbn1cbiAgICAgICAgICBoYXNXb3JrZmxvdz17aGFzV29ya2Zsb3d9XG4gICAgICAgICAgdXNlT3BlbkF1dGhvcmluZz17dXNlT3BlbkF1dGhvcmluZ31cbiAgICAgICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXM9e2hhc1VucHVibGlzaGVkQ2hhbmdlc31cbiAgICAgICAgICBpc05ld0VudHJ5PXtpc05ld0VudHJ5fVxuICAgICAgICAgIGlzTW9kaWZpY2F0aW9uPXtpc01vZGlmaWNhdGlvbn1cbiAgICAgICAgICBjdXJyZW50U3RhdHVzPXtjdXJyZW50U3RhdHVzfVxuICAgICAgICAgIG9uTG9nb3V0Q2xpY2s9e29uTG9nb3V0Q2xpY2t9XG4gICAgICAgICAgbG9hZERlcGxveVByZXZpZXc9e2xvYWREZXBsb3lQcmV2aWV3fVxuICAgICAgICAgIGRlcGxveVByZXZpZXc9e2RlcGxveVByZXZpZXd9XG4gICAgICAgICAgZWRpdG9yQmFja0xpbms9e2VkaXRvckJhY2tMaW5rfVxuICAgICAgICAvPlxuICAgICAgICA8RWRpdG9yIGtleT17ZHJhZnRLZXl9PlxuICAgICAgICAgIDxWaWV3Q29udHJvbHM+XG4gICAgICAgICAgICB7Y29sbGVjdGlvbkkxOG5FbmFibGVkICYmIChcbiAgICAgICAgICAgICAgPEVkaXRvclRvZ2dsZVxuICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtpMThuVmlzaWJsZX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVRvZ2dsZUkxOG59XG4gICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwicGFnZVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9e3QoJ2VkaXRvci5lZGl0b3JJbnRlcmZhY2UudG9nZ2xlSTE4bicpfVxuICAgICAgICAgICAgICAgIG1hcmdpblRvcD1cIjcwcHhcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtwcmV2aWV3RW5hYmxlZCAmJiAoXG4gICAgICAgICAgICAgIDxFZGl0b3JUb2dnbGVcbiAgICAgICAgICAgICAgICBpc0FjdGl2ZT17cHJldmlld1Zpc2libGV9XG4gICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVUb2dnbGVQcmV2aWV3fVxuICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImV5ZVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9e3QoJ2VkaXRvci5lZGl0b3JJbnRlcmZhY2UudG9nZ2xlUHJldmlldycpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtzY3JvbGxTeW5jVmlzaWJsZSAmJiAhY29sbGVjdGlvbi5nZXRJbihbJ2VkaXRvcicsICd2aXN1YWxFZGl0aW5nJ10pICYmIChcbiAgICAgICAgICAgICAgPEVkaXRvclRvZ2dsZVxuICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtzY3JvbGxTeW5jRW5hYmxlZH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVRvZ2dsZVNjcm9sbFN5bmN9XG4gICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwic2Nyb2xsXCJcbiAgICAgICAgICAgICAgICB0aXRsZT17dCgnZWRpdG9yLmVkaXRvckludGVyZmFjZS50b2dnbGVTY3JvbGxTeW5jJyl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvVmlld0NvbnRyb2xzPlxuICAgICAgICAgIDxFZGl0b3JDb250ZW50XG4gICAgICAgICAgICBpMThuVmlzaWJsZT17aTE4blZpc2libGV9XG4gICAgICAgICAgICBwcmV2aWV3VmlzaWJsZT17cHJldmlld1Zpc2libGV9XG4gICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgIGVkaXRvcldpdGhFZGl0b3I9e2VkaXRvcldpdGhFZGl0b3J9XG4gICAgICAgICAgICBlZGl0b3JXaXRoUHJldmlldz17ZWRpdG9yV2l0aFByZXZpZXd9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9FZGl0b3I+XG4gICAgICA8L0VkaXRvckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbkVkaXRvckludGVyZmFjZS5wcm9wVHlwZXMgPSB7XG4gIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgZW50cnk6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgZmllbGRzOiBJbW11dGFibGVQcm9wVHlwZXMubGlzdC5pc1JlcXVpcmVkLFxuICBmaWVsZHNNZXRhRGF0YTogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICBmaWVsZHNFcnJvcnM6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uVmFsaWRhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25EdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uQ2hhbmdlU3RhdHVzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB1c2VyOiBQcm9wVHlwZXMub2JqZWN0LFxuICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICB1c2VPcGVuQXV0aG9yaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gIGlzTW9kaWZpY2F0aW9uOiBQcm9wVHlwZXMuYm9vbCxcbiAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZGVwbG95UHJldmlldzogUHJvcFR5cGVzLm9iamVjdCxcbiAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGRyYWZ0S2V5OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBFZGl0b3JJbnRlcmZhY2U7XG4iXX0= */",
69
+ styles: "height:100%;margin:0 auto;position:relative/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JJbnRlcmZhY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEd5QiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9FZGl0b3IvRWRpdG9ySW50ZXJmYWNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgSW1tdXRhYmxlUHJvcFR5cGVzIGZyb20gJ3JlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXMnO1xuaW1wb3J0IHsgY3NzLCBHbG9iYWwgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgU3BsaXRQYW5lIGZyb20gJ3JlYWN0LXNwbGl0LXBhbmUnO1xuaW1wb3J0IHtcbiAgY29sb3JzLFxuICBjb2xvcnNSYXcsXG4gIGNvbXBvbmVudHMsXG4gIHRyYW5zaXRpb25zLFxuICBJY29uQnV0dG9uLFxuICB6SW5kZXgsXG59IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcbmltcG9ydCB7IFNjcm9sbFN5bmMsIFNjcm9sbFN5bmNQYW5lIH0gZnJvbSAncmVhY3Qtc2Nyb2xsLXN5bmMnO1xuXG5pbXBvcnQgRWRpdG9yQ29udHJvbFBhbmUgZnJvbSAnLi9FZGl0b3JDb250cm9sUGFuZS9FZGl0b3JDb250cm9sUGFuZSc7XG5pbXBvcnQgRWRpdG9yUHJldmlld1BhbmUgZnJvbSAnLi9FZGl0b3JQcmV2aWV3UGFuZS9FZGl0b3JQcmV2aWV3UGFuZSc7XG5pbXBvcnQgRWRpdG9yVG9vbGJhciBmcm9tICcuL0VkaXRvclRvb2xiYXInO1xuaW1wb3J0IHsgaGFzSTE4biwgZ2V0STE4bkluZm8sIGdldFByZXZpZXdFbnRyeSB9IGZyb20gJy4uLy4uL2xpYi9pMThuJztcbmltcG9ydCB7IEZJTEVTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbGxlY3Rpb25UeXBlcyc7XG5pbXBvcnQgeyBnZXRGaWxlRnJvbVNsdWcgfSBmcm9tICcuLi8uLi9yZWR1Y2Vycy9jb2xsZWN0aW9ucyc7XG5cbmNvbnN0IFBSRVZJRVdfVklTSUJMRSA9ICdjbXMucHJldmlldy12aXNpYmxlJztcbmNvbnN0IFNDUk9MTF9TWU5DX0VOQUJMRUQgPSAnY21zLnNjcm9sbC1zeW5jLWVuYWJsZWQnO1xuY29uc3QgU1BMSVRfUEFORV9QT1NJVElPTiA9ICdjbXMuc3BsaXQtcGFuZS1wb3NpdGlvbic7XG5jb25zdCBJMThOX1ZJU0lCTEUgPSAnY21zLmkxOG4tdmlzaWJsZSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgc3BsaXRQYW5lOiBjc3NgXG4gICAgJHtjb21wb25lbnRzLmNhcmR9O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICBgLFxuICBwYW5lOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIGAsXG59O1xuXG5jb25zdCBFZGl0b3JUb2dnbGUgPSBzdHlsZWQoSWNvbkJ1dHRvbilgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5mdW5jdGlvbiBSZWFjdFNwbGl0UGFuZUdsb2JhbFN0eWxlcygpIHtcbiAgcmV0dXJuIChcbiAgICA8R2xvYmFsXG4gICAgICBzdHlsZXM9e2Nzc2BcbiAgICAgICAgLlJlc2l6ZXIudmVydGljYWwge1xuICAgICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICB3aWR0aDogMnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICR7dHJhbnNpdGlvbnMubWFpbn07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgICAgICAgIGxlZnQ6IC0xcHg7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgYH1cbiAgICAvPlxuICApO1xufVxuXG5jb25zdCBTdHlsZWRTcGxpdFBhbmUgPSBzdHlsZWQoU3BsaXRQYW5lKWBcbiAgJHtzdHlsZXMuc3BsaXRQYW5lfTtcblxuICAvKipcbiAgICogUXVpY2sgZml4IGZvciBwcmV2aWV3IHBhbmUgbm90IGZ1bGx5IGRpc3BsYXlpbmcgaW4gU2FmYXJpXG4gICAqL1xuICAuUGFuZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5gO1xuXG5jb25zdCBOb1ByZXZpZXdDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy5zcGxpdFBhbmV9O1xuYDtcblxuY29uc3QgRWRpdG9yQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctdG9wOiA2NnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9ycy5iYWNrZ3JvdW5kfTtcbmA7XG5cbmNvbnN0IEVkaXRvciA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IFByZXZpZXdQYW5lQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb2ludGVyLWV2ZW50czogJHtwcm9wcyA9PiAocHJvcHMuYmxvY2tFbnRyeSA/ICdub25lJyA6ICdhdXRvJyl9O1xuICBvdmVyZmxvdy15OiAke3Byb3BzID0+IChwcm9wcy5vdmVyRmxvdyA/ICdhdXRvJyA6ICdoaWRkZW4nKX07XG5gO1xuXG5jb25zdCBDb250cm9sUGFuZUNvbnRhaW5lciA9IHN0eWxlZChQcmV2aWV3UGFuZUNvbnRhaW5lcilgXG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG5gO1xuXG5jb25zdCBWaWV3Q29udHJvbHMgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDI5OX07XG5gO1xuXG5mdW5jdGlvbiBFZGl0b3JDb250ZW50KHtcbiAgaTE4blZpc2libGUsXG4gIHByZXZpZXdWaXNpYmxlLFxuICBlZGl0b3IsXG4gIGVkaXRvcldpdGhFZGl0b3IsXG4gIGVkaXRvcldpdGhQcmV2aWV3LFxufSkge1xuICBpZiAoaTE4blZpc2libGUpIHtcbiAgICByZXR1cm4gZWRpdG9yV2l0aEVkaXRvcjtcbiAgfSBlbHNlIGlmIChwcmV2aWV3VmlzaWJsZSkge1xuICAgIHJldHVybiBlZGl0b3JXaXRoUHJldmlldztcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gPE5vUHJldmlld0NvbnRhaW5lcj57ZWRpdG9yfTwvTm9QcmV2aWV3Q29udGFpbmVyPjtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1ByZXZpZXdFbmFibGVkKGNvbGxlY3Rpb24sIGVudHJ5KSB7XG4gIGlmIChjb2xsZWN0aW9uLmdldCgndHlwZScpID09PSBGSUxFUykge1xuICAgIGNvbnN0IGZpbGUgPSBnZXRGaWxlRnJvbVNsdWcoY29sbGVjdGlvbiwgZW50cnkuZ2V0KCdzbHVnJykpO1xuICAgIGNvbnN0IHByZXZpZXdFbmFibGVkID0gZmlsZT8uZ2V0SW4oWydlZGl0b3InLCAncHJldmlldyddKTtcbiAgICBpZiAocHJldmlld0VuYWJsZWQgIT0gbnVsbCkgcmV0dXJuIHByZXZpZXdFbmFibGVkO1xuICB9XG4gIHJldHVybiBjb2xsZWN0aW9uLmdldEluKFsnZWRpdG9yJywgJ3ByZXZpZXcnXSwgdHJ1ZSk7XG59XG5cbmNsYXNzIEVkaXRvckludGVyZmFjZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRlID0ge1xuICAgIHNob3dFdmVudEJsb2NrZXI6IGZhbHNlLFxuICAgIHByZXZpZXdWaXNpYmxlOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShQUkVWSUVXX1ZJU0lCTEUpICE9PSAnZmFsc2UnLFxuICAgIHNjcm9sbFN5bmNFbmFibGVkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTQ1JPTExfU1lOQ19FTkFCTEVEKSAhPT0gJ2ZhbHNlJyxcbiAgICBpMThuVmlzaWJsZTogbG9jYWxTdG9yYWdlLmdldEl0ZW0oSTE4Tl9WSVNJQkxFKSAhPT0gJ2ZhbHNlJyxcbiAgfTtcblxuICBoYW5kbGVGaWVsZENsaWNrID0gcGF0aCA9PiB7XG4gICAgdGhpcy5jb250cm9sUGFuZVJlZj8uZm9jdXMocGF0aCk7XG4gIH07XG5cbiAgaGFuZGxlU3BsaXRQYW5lRHJhZ1N0YXJ0ID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93RXZlbnRCbG9ja2VyOiB0cnVlIH0pO1xuICB9O1xuXG4gIGhhbmRsZVNwbGl0UGFuZURyYWdGaW5pc2hlZCA9ICgpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHsgc2hvd0V2ZW50QmxvY2tlcjogZmFsc2UgfSk7XG4gIH07XG5cbiAgaGFuZGxlT25QZXJzaXN0ID0gYXN5bmMgKG9wdHMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IHsgY3JlYXRlTmV3ID0gZmFsc2UsIGR1cGxpY2F0ZSA9IGZhbHNlIH0gPSBvcHRzO1xuICAgIGF3YWl0IHRoaXMuY29udHJvbFBhbmVSZWYuc3dpdGNoVG9EZWZhdWx0TG9jYWxlKCk7XG4gICAgdGhpcy5jb250cm9sUGFuZVJlZi52YWxpZGF0ZSgpO1xuICAgIHRoaXMucHJvcHMub25QZXJzaXN0KHsgY3JlYXRlTmV3LCBkdXBsaWNhdGUgfSk7XG4gIH07XG5cbiAgaGFuZGxlT25QdWJsaXNoID0gYXN5bmMgKG9wdHMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IHsgY3JlYXRlTmV3ID0gZmFsc2UsIGR1cGxpY2F0ZSA9IGZhbHNlIH0gPSBvcHRzO1xuICAgIGF3YWl0IHRoaXMuY29udHJvbFBhbmVSZWYuc3dpdGNoVG9EZWZhdWx0TG9jYWxlKCk7XG4gICAgdGhpcy5jb250cm9sUGFuZVJlZi52YWxpZGF0ZSgpO1xuICAgIHRoaXMucHJvcHMub25QdWJsaXNoKHsgY3JlYXRlTmV3LCBkdXBsaWNhdGUgfSk7XG4gIH07XG5cbiAgaGFuZGxlVG9nZ2xlUHJldmlldyA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdQcmV2aWV3VmlzaWJsZSA9ICF0aGlzLnN0YXRlLnByZXZpZXdWaXNpYmxlO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBwcmV2aWV3VmlzaWJsZTogbmV3UHJldmlld1Zpc2libGUgfSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oUFJFVklFV19WSVNJQkxFLCBuZXdQcmV2aWV3VmlzaWJsZSk7XG4gIH07XG5cbiAgaGFuZGxlVG9nZ2xlU2Nyb2xsU3luYyA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdTY3JvbGxTeW5jRW5hYmxlZCA9ICF0aGlzLnN0YXRlLnNjcm9sbFN5bmNFbmFibGVkO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBzY3JvbGxTeW5jRW5hYmxlZDogbmV3U2Nyb2xsU3luY0VuYWJsZWQgfSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oU0NST0xMX1NZTkNfRU5BQkxFRCwgbmV3U2Nyb2xsU3luY0VuYWJsZWQpO1xuICB9O1xuXG4gIGhhbmRsZVRvZ2dsZUkxOG4gPSAoKSA9PiB7XG4gICAgY29uc3QgbmV3STE4blZpc2libGUgPSAhdGhpcy5zdGF0ZS5pMThuVmlzaWJsZTtcbiAgICB0aGlzLnNldFN0YXRlKHsgaTE4blZpc2libGU6IG5ld0kxOG5WaXNpYmxlIH0pO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKEkxOE5fVklTSUJMRSwgbmV3STE4blZpc2libGUpO1xuICB9O1xuXG4gIGhhbmRsZUxlZnRQYW5lbExvY2FsZUNoYW5nZSA9IGxvY2FsZSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxlZnRQYW5lbExvY2FsZTogbG9jYWxlIH0pO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgZW50cnksXG4gICAgICBmaWVsZHMsXG4gICAgICBmaWVsZHNNZXRhRGF0YSxcbiAgICAgIGZpZWxkc0Vycm9ycyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIG9uRGVsZXRlLFxuICAgICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICBvbkNoYW5nZVN0YXR1cyxcbiAgICAgIG9uUHVibGlzaCxcbiAgICAgIHVuUHVibGlzaCxcbiAgICAgIG9uRHVwbGljYXRlLFxuICAgICAgb25WYWxpZGF0ZSxcbiAgICAgIHVzZXIsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgZGlzcGxheVVybCxcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgbG9hZERlcGxveVByZXZpZXcsXG4gICAgICBkZXBsb3lQcmV2aWV3LFxuICAgICAgZHJhZnRLZXksXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCB7IHNjcm9sbFN5bmNFbmFibGVkLCBzaG93RXZlbnRCbG9ja2VyIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgY29uc3QgcHJldmlld0VuYWJsZWQgPSBpc1ByZXZpZXdFbmFibGVkKGNvbGxlY3Rpb24sIGVudHJ5KTtcblxuICAgIGNvbnN0IHsgbG9jYWxlcywgZGVmYXVsdExvY2FsZSB9ID0gZ2V0STE4bkluZm8odGhpcy5wcm9wcy5jb2xsZWN0aW9uKTtcbiAgICBjb25zdCBjb2xsZWN0aW9uSTE4bkVuYWJsZWQgPSBoYXNJMThuKGNvbGxlY3Rpb24pICYmIGxvY2FsZXMubGVuZ3RoID4gMTtcbiAgICBjb25zdCBlZGl0b3JQcm9wcyA9IHtcbiAgICAgIGNvbGxlY3Rpb24sXG4gICAgICBlbnRyeSxcbiAgICAgIGZpZWxkcyxcbiAgICAgIGZpZWxkc01ldGFEYXRhLFxuICAgICAgZmllbGRzRXJyb3JzLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvblZhbGlkYXRlLFxuICAgIH07XG5cbiAgICBjb25zdCBsZWZ0UGFuZWxMb2NhbGUgPSB0aGlzLnN0YXRlLmxlZnRQYW5lbExvY2FsZSB8fCBsb2NhbGVzPy5bMF07XG4gICAgY29uc3QgZWRpdG9yID0gKFxuICAgICAgPENvbnRyb2xQYW5lQ29udGFpbmVyIG92ZXJGbG93IGJsb2NrRW50cnk9e3Nob3dFdmVudEJsb2NrZXJ9PlxuICAgICAgICA8RWRpdG9yQ29udHJvbFBhbmVcbiAgICAgICAgICB7Li4uZWRpdG9yUHJvcHN9XG4gICAgICAgICAgcmVmPXtjID0+ICh0aGlzLmNvbnRyb2xQYW5lUmVmID0gYyl9XG4gICAgICAgICAgbG9jYWxlPXtsZWZ0UGFuZWxMb2NhbGV9XG4gICAgICAgICAgdD17dH1cbiAgICAgICAgICBvbkxvY2FsZUNoYW5nZT17dGhpcy5oYW5kbGVMZWZ0UGFuZWxMb2NhbGVDaGFuZ2V9XG4gICAgICAgIC8+XG4gICAgICA8L0NvbnRyb2xQYW5lQ29udGFpbmVyPlxuICAgICk7XG5cbiAgICBjb25zdCBlZGl0b3IyID0gKFxuICAgICAgPENvbnRyb2xQYW5lQ29udGFpbmVyIG92ZXJGbG93PXshdGhpcy5zdGF0ZS5zY3JvbGxTeW5jRW5hYmxlZH0gYmxvY2tFbnRyeT17c2hvd0V2ZW50QmxvY2tlcn0+XG4gICAgICAgIDxFZGl0b3JDb250cm9sUGFuZSB7Li4uZWRpdG9yUHJvcHN9IGxvY2FsZT17bG9jYWxlcz8uWzFdfSB0PXt0fSAvPlxuICAgICAgPC9Db250cm9sUGFuZUNvbnRhaW5lcj5cbiAgICApO1xuXG4gICAgY29uc3QgcHJldmlld0VudHJ5ID0gY29sbGVjdGlvbkkxOG5FbmFibGVkXG4gICAgICA/IGdldFByZXZpZXdFbnRyeShlbnRyeSwgbGVmdFBhbmVsTG9jYWxlLCBkZWZhdWx0TG9jYWxlKVxuICAgICAgOiBlbnRyeTtcblxuICAgIGNvbnN0IGVkaXRvcldpdGhQcmV2aWV3ID0gKFxuICAgICAgPFNjcm9sbFN5bmMgZW5hYmxlZD17dGhpcy5zdGF0ZS5zY3JvbGxTeW5jRW5hYmxlZH0+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPFJlYWN0U3BsaXRQYW5lR2xvYmFsU3R5bGVzIC8+XG4gICAgICAgICAgPFN0eWxlZFNwbGl0UGFuZVxuICAgICAgICAgICAgbWF4U2l6ZT17LTEwMH1cbiAgICAgICAgICAgIG1pblNpemU9ezQwMH1cbiAgICAgICAgICAgIGRlZmF1bHRTaXplPXtwYXJzZUludChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTUExJVF9QQU5FX1BPU0lUSU9OKSwgMTApIHx8ICc1MCUnfVxuICAgICAgICAgICAgb25DaGFuZ2U9e3NpemUgPT4gbG9jYWxTdG9yYWdlLnNldEl0ZW0oU1BMSVRfUEFORV9QT1NJVElPTiwgc2l6ZSl9XG4gICAgICAgICAgICBvbkRyYWdTdGFydGVkPXt0aGlzLmhhbmRsZVNwbGl0UGFuZURyYWdTdGFydH1cbiAgICAgICAgICAgIG9uRHJhZ0ZpbmlzaGVkPXt0aGlzLmhhbmRsZVNwbGl0UGFuZURyYWdGaW5pc2hlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U2Nyb2xsU3luY1BhbmU+e2VkaXRvcn08L1Njcm9sbFN5bmNQYW5lPlxuICAgICAgICAgICAgPFByZXZpZXdQYW5lQ29udGFpbmVyIGJsb2NrRW50cnk9e3Nob3dFdmVudEJsb2NrZXJ9PlxuICAgICAgICAgICAgICA8RWRpdG9yUHJldmlld1BhbmVcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uPXtjb2xsZWN0aW9ufVxuICAgICAgICAgICAgICAgIGVudHJ5PXtwcmV2aWV3RW50cnl9XG4gICAgICAgICAgICAgICAgZmllbGRzPXtmaWVsZHN9XG4gICAgICAgICAgICAgICAgZmllbGRzTWV0YURhdGE9e2ZpZWxkc01ldGFEYXRhfVxuICAgICAgICAgICAgICAgIGxvY2FsZT17bGVmdFBhbmVsTG9jYWxlfVxuICAgICAgICAgICAgICAgIG9uRmllbGRDbGljaz17dGhpcy5oYW5kbGVGaWVsZENsaWNrfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9QcmV2aWV3UGFuZUNvbnRhaW5lcj5cbiAgICAgICAgICA8L1N0eWxlZFNwbGl0UGFuZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1Njcm9sbFN5bmM+XG4gICAgKTtcblxuICAgIGNvbnN0IGVkaXRvcldpdGhFZGl0b3IgPSAoXG4gICAgICA8U2Nyb2xsU3luYyBlbmFibGVkPXt0aGlzLnN0YXRlLnNjcm9sbFN5bmNFbmFibGVkfT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8U3R5bGVkU3BsaXRQYW5lXG4gICAgICAgICAgICBtYXhTaXplPXstMTAwfVxuICAgICAgICAgICAgZGVmYXVsdFNpemU9e3BhcnNlSW50KGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNQTElUX1BBTkVfUE9TSVRJT04pLCAxMCkgfHwgJzUwJSd9XG4gICAgICAgICAgICBvbkNoYW5nZT17c2l6ZSA9PiBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShTUExJVF9QQU5FX1BPU0lUSU9OLCBzaXplKX1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0ZWQ9e3RoaXMuaGFuZGxlU3BsaXRQYW5lRHJhZ1N0YXJ0fVxuICAgICAgICAgICAgb25EcmFnRmluaXNoZWQ9e3RoaXMuaGFuZGxlU3BsaXRQYW5lRHJhZ0ZpbmlzaGVkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTY3JvbGxTeW5jUGFuZT57ZWRpdG9yfTwvU2Nyb2xsU3luY1BhbmU+XG4gICAgICAgICAgICA8U2Nyb2xsU3luY1BhbmU+e2VkaXRvcjJ9PC9TY3JvbGxTeW5jUGFuZT5cbiAgICAgICAgICA8L1N0eWxlZFNwbGl0UGFuZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1Njcm9sbFN5bmM+XG4gICAgKTtcblxuICAgIGNvbnN0IGkxOG5WaXNpYmxlID0gY29sbGVjdGlvbkkxOG5FbmFibGVkICYmIHRoaXMuc3RhdGUuaTE4blZpc2libGU7XG4gICAgY29uc3QgcHJldmlld1Zpc2libGUgPSBwcmV2aWV3RW5hYmxlZCAmJiB0aGlzLnN0YXRlLnByZXZpZXdWaXNpYmxlO1xuICAgIGNvbnN0IHNjcm9sbFN5bmNWaXNpYmxlID0gaTE4blZpc2libGUgfHwgcHJldmlld1Zpc2libGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEVkaXRvckNvbnRhaW5lcj5cbiAgICAgICAgPEVkaXRvclRvb2xiYXJcbiAgICAgICAgICBpc1BlcnNpc3Rpbmc9e2VudHJ5LmdldCgnaXNQZXJzaXN0aW5nJyl9XG4gICAgICAgICAgaXNQdWJsaXNoaW5nPXtlbnRyeS5nZXQoJ2lzUHVibGlzaGluZycpfVxuICAgICAgICAgIGlzVXBkYXRpbmdTdGF0dXM9e2VudHJ5LmdldCgnaXNVcGRhdGluZ1N0YXR1cycpfVxuICAgICAgICAgIGlzRGVsZXRpbmc9e2VudHJ5LmdldCgnaXNEZWxldGluZycpfVxuICAgICAgICAgIG9uUGVyc2lzdD17dGhpcy5oYW5kbGVPblBlcnNpc3R9XG4gICAgICAgICAgb25QZXJzaXN0QW5kTmV3PXsoKSA9PiB0aGlzLmhhbmRsZU9uUGVyc2lzdCh7IGNyZWF0ZU5ldzogdHJ1ZSB9KX1cbiAgICAgICAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU9eygpID0+IHRoaXMuaGFuZGxlT25QZXJzaXN0KHsgY3JlYXRlTmV3OiB0cnVlLCBkdXBsaWNhdGU6IHRydWUgfSl9XG4gICAgICAgICAgb25EZWxldGU9e29uRGVsZXRlfVxuICAgICAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzPXtvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlc31cbiAgICAgICAgICBvbkNoYW5nZVN0YXR1cz17b25DaGFuZ2VTdGF0dXN9XG4gICAgICAgICAgc2hvd0RlbGV0ZT17c2hvd0RlbGV0ZX1cbiAgICAgICAgICBvblB1Ymxpc2g9e29uUHVibGlzaH1cbiAgICAgICAgICB1blB1Ymxpc2g9e3VuUHVibGlzaH1cbiAgICAgICAgICBvbkR1cGxpY2F0ZT17b25EdXBsaWNhdGV9XG4gICAgICAgICAgb25QdWJsaXNoQW5kTmV3PXsoKSA9PiB0aGlzLmhhbmRsZU9uUHVibGlzaCh7IGNyZWF0ZU5ldzogdHJ1ZSB9KX1cbiAgICAgICAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU9eygpID0+IHRoaXMuaGFuZGxlT25QdWJsaXNoKHsgY3JlYXRlTmV3OiB0cnVlLCBkdXBsaWNhdGU6IHRydWUgfSl9XG4gICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICBoYXNDaGFuZ2VkPXtoYXNDaGFuZ2VkfVxuICAgICAgICAgIGRpc3BsYXlVcmw9e2Rpc3BsYXlVcmx9XG4gICAgICAgICAgY29sbGVjdGlvbj17Y29sbGVjdGlvbn1cbiAgICAgICAgICBoYXNXb3JrZmxvdz17aGFzV29ya2Zsb3d9XG4gICAgICAgICAgdXNlT3BlbkF1dGhvcmluZz17dXNlT3BlbkF1dGhvcmluZ31cbiAgICAgICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXM9e2hhc1VucHVibGlzaGVkQ2hhbmdlc31cbiAgICAgICAgICBpc05ld0VudHJ5PXtpc05ld0VudHJ5fVxuICAgICAgICAgIGlzTW9kaWZpY2F0aW9uPXtpc01vZGlmaWNhdGlvbn1cbiAgICAgICAgICBjdXJyZW50U3RhdHVzPXtjdXJyZW50U3RhdHVzfVxuICAgICAgICAgIG9uTG9nb3V0Q2xpY2s9e29uTG9nb3V0Q2xpY2t9XG4gICAgICAgICAgbG9hZERlcGxveVByZXZpZXc9e2xvYWREZXBsb3lQcmV2aWV3fVxuICAgICAgICAgIGRlcGxveVByZXZpZXc9e2RlcGxveVByZXZpZXd9XG4gICAgICAgICAgZWRpdG9yQmFja0xpbms9e2VkaXRvckJhY2tMaW5rfVxuICAgICAgICAvPlxuICAgICAgICA8RWRpdG9yIGtleT17ZHJhZnRLZXl9PlxuICAgICAgICAgIDxWaWV3Q29udHJvbHM+XG4gICAgICAgICAgICB7Y29sbGVjdGlvbkkxOG5FbmFibGVkICYmIChcbiAgICAgICAgICAgICAgPEVkaXRvclRvZ2dsZVxuICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtpMThuVmlzaWJsZX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVRvZ2dsZUkxOG59XG4gICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwicGFnZVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9e3QoJ2VkaXRvci5lZGl0b3JJbnRlcmZhY2UudG9nZ2xlSTE4bicpfVxuICAgICAgICAgICAgICAgIG1hcmdpblRvcD1cIjcwcHhcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtwcmV2aWV3RW5hYmxlZCAmJiAoXG4gICAgICAgICAgICAgIDxFZGl0b3JUb2dnbGVcbiAgICAgICAgICAgICAgICBpc0FjdGl2ZT17cHJldmlld1Zpc2libGV9XG4gICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVUb2dnbGVQcmV2aWV3fVxuICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImV5ZVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9e3QoJ2VkaXRvci5lZGl0b3JJbnRlcmZhY2UudG9nZ2xlUHJldmlldycpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtzY3JvbGxTeW5jVmlzaWJsZSAmJiAhY29sbGVjdGlvbi5nZXRJbihbJ2VkaXRvcicsICd2aXN1YWxFZGl0aW5nJ10pICYmIChcbiAgICAgICAgICAgICAgPEVkaXRvclRvZ2dsZVxuICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtzY3JvbGxTeW5jRW5hYmxlZH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVRvZ2dsZVNjcm9sbFN5bmN9XG4gICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwic2Nyb2xsXCJcbiAgICAgICAgICAgICAgICB0aXRsZT17dCgnZWRpdG9yLmVkaXRvckludGVyZmFjZS50b2dnbGVTY3JvbGxTeW5jJyl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvVmlld0NvbnRyb2xzPlxuICAgICAgICAgIDxFZGl0b3JDb250ZW50XG4gICAgICAgICAgICBpMThuVmlzaWJsZT17aTE4blZpc2libGV9XG4gICAgICAgICAgICBwcmV2aWV3VmlzaWJsZT17cHJldmlld1Zpc2libGV9XG4gICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgIGVkaXRvcldpdGhFZGl0b3I9e2VkaXRvcldpdGhFZGl0b3J9XG4gICAgICAgICAgICBlZGl0b3JXaXRoUHJldmlldz17ZWRpdG9yV2l0aFByZXZpZXd9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9FZGl0b3I+XG4gICAgICA8L0VkaXRvckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbkVkaXRvckludGVyZmFjZS5wcm9wVHlwZXMgPSB7XG4gIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgZW50cnk6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgZmllbGRzOiBJbW11dGFibGVQcm9wVHlwZXMubGlzdC5pc1JlcXVpcmVkLFxuICBmaWVsZHNNZXRhRGF0YTogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICBmaWVsZHNFcnJvcnM6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uVmFsaWRhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25EdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uQ2hhbmdlU3RhdHVzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB1c2VyOiBQcm9wVHlwZXMub2JqZWN0LFxuICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICB1c2VPcGVuQXV0aG9yaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gIGlzTW9kaWZpY2F0aW9uOiBQcm9wVHlwZXMuYm9vbCxcbiAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZGVwbG95UHJldmlldzogUHJvcFR5cGVzLm9iamVjdCxcbiAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGRyYWZ0S2V5OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBFZGl0b3JJbnRlcmZhY2U7XG4iXX0= */",
76
70
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
77
71
  });
78
72
  const PreviewPaneContainer = /*#__PURE__*/_styled("div", {
@@ -87,8 +81,7 @@ const ControlPaneContainer = /*#__PURE__*/_styled(PreviewPaneContainer, {
87
81
  styles: "padding:0 16px;position:relative;overflow-x:hidden"
88
82
  } : {
89
83
  name: "b2tic3",
90
- styles: "padding:0 16px;position:relative;overflow-x:hidden",
91
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JJbnRlcmZhY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0h5RCIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9FZGl0b3IvRWRpdG9ySW50ZXJmYWNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgSW1tdXRhYmxlUHJvcFR5cGVzIGZyb20gJ3JlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXMnO1xuaW1wb3J0IHsgY3NzLCBHbG9iYWwgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgU3BsaXRQYW5lIGZyb20gJ3JlYWN0LXNwbGl0LXBhbmUnO1xuaW1wb3J0IHtcbiAgY29sb3JzLFxuICBjb2xvcnNSYXcsXG4gIGNvbXBvbmVudHMsXG4gIHRyYW5zaXRpb25zLFxuICBJY29uQnV0dG9uLFxuICB6SW5kZXgsXG59IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcbmltcG9ydCB7IFNjcm9sbFN5bmMsIFNjcm9sbFN5bmNQYW5lIH0gZnJvbSAncmVhY3Qtc2Nyb2xsLXN5bmMnO1xuXG5pbXBvcnQgRWRpdG9yQ29udHJvbFBhbmUgZnJvbSAnLi9FZGl0b3JDb250cm9sUGFuZS9FZGl0b3JDb250cm9sUGFuZSc7XG5pbXBvcnQgRWRpdG9yUHJldmlld1BhbmUgZnJvbSAnLi9FZGl0b3JQcmV2aWV3UGFuZS9FZGl0b3JQcmV2aWV3UGFuZSc7XG5pbXBvcnQgRWRpdG9yVG9vbGJhciBmcm9tICcuL0VkaXRvclRvb2xiYXInO1xuaW1wb3J0IHsgaGFzSTE4biwgZ2V0STE4bkluZm8sIGdldFByZXZpZXdFbnRyeSB9IGZyb20gJy4uLy4uL2xpYi9pMThuJztcbmltcG9ydCB7IEZJTEVTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbGxlY3Rpb25UeXBlcyc7XG5pbXBvcnQgeyBnZXRGaWxlRnJvbVNsdWcgfSBmcm9tICcuLi8uLi9yZWR1Y2Vycy9jb2xsZWN0aW9ucyc7XG5cbmNvbnN0IFBSRVZJRVdfVklTSUJMRSA9ICdjbXMucHJldmlldy12aXNpYmxlJztcbmNvbnN0IFNDUk9MTF9TWU5DX0VOQUJMRUQgPSAnY21zLnNjcm9sbC1zeW5jLWVuYWJsZWQnO1xuY29uc3QgU1BMSVRfUEFORV9QT1NJVElPTiA9ICdjbXMuc3BsaXQtcGFuZS1wb3NpdGlvbic7XG5jb25zdCBJMThOX1ZJU0lCTEUgPSAnY21zLmkxOG4tdmlzaWJsZSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgc3BsaXRQYW5lOiBjc3NgXG4gICAgJHtjb21wb25lbnRzLmNhcmR9O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICBgLFxuICBwYW5lOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIGAsXG59O1xuXG5jb25zdCBFZGl0b3JUb2dnbGUgPSBzdHlsZWQoSWNvbkJ1dHRvbilgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5mdW5jdGlvbiBSZWFjdFNwbGl0UGFuZUdsb2JhbFN0eWxlcygpIHtcbiAgcmV0dXJuIChcbiAgICA8R2xvYmFsXG4gICAgICBzdHlsZXM9e2Nzc2BcbiAgICAgICAgLlJlc2l6ZXIudmVydGljYWwge1xuICAgICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICB3aWR0aDogMnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICR7dHJhbnNpdGlvbnMubWFpbn07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgICAgICAgIGxlZnQ6IC0xcHg7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgYH1cbiAgICAvPlxuICApO1xufVxuXG5jb25zdCBTdHlsZWRTcGxpdFBhbmUgPSBzdHlsZWQoU3BsaXRQYW5lKWBcbiAgJHtzdHlsZXMuc3BsaXRQYW5lfTtcblxuICAvKipcbiAgICogUXVpY2sgZml4IGZvciBwcmV2aWV3IHBhbmUgbm90IGZ1bGx5IGRpc3BsYXlpbmcgaW4gU2FmYXJpXG4gICAqL1xuICAuUGFuZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5gO1xuXG5jb25zdCBOb1ByZXZpZXdDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy5zcGxpdFBhbmV9O1xuYDtcblxuY29uc3QgRWRpdG9yQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctdG9wOiA2NnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9ycy5iYWNrZ3JvdW5kfTtcbmA7XG5cbmNvbnN0IEVkaXRvciA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IFByZXZpZXdQYW5lQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb2ludGVyLWV2ZW50czogJHtwcm9wcyA9PiAocHJvcHMuYmxvY2tFbnRyeSA/ICdub25lJyA6ICdhdXRvJyl9O1xuICBvdmVyZmxvdy15OiAke3Byb3BzID0+IChwcm9wcy5vdmVyRmxvdyA/ICdhdXRvJyA6ICdoaWRkZW4nKX07XG5gO1xuXG5jb25zdCBDb250cm9sUGFuZUNvbnRhaW5lciA9IHN0eWxlZChQcmV2aWV3UGFuZUNvbnRhaW5lcilgXG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG5gO1xuXG5jb25zdCBWaWV3Q29udHJvbHMgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDI5OX07XG5gO1xuXG5mdW5jdGlvbiBFZGl0b3JDb250ZW50KHtcbiAgaTE4blZpc2libGUsXG4gIHByZXZpZXdWaXNpYmxlLFxuICBlZGl0b3IsXG4gIGVkaXRvcldpdGhFZGl0b3IsXG4gIGVkaXRvcldpdGhQcmV2aWV3LFxufSkge1xuICBpZiAoaTE4blZpc2libGUpIHtcbiAgICByZXR1cm4gZWRpdG9yV2l0aEVkaXRvcjtcbiAgfSBlbHNlIGlmIChwcmV2aWV3VmlzaWJsZSkge1xuICAgIHJldHVybiBlZGl0b3JXaXRoUHJldmlldztcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gPE5vUHJldmlld0NvbnRhaW5lcj57ZWRpdG9yfTwvTm9QcmV2aWV3Q29udGFpbmVyPjtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1ByZXZpZXdFbmFibGVkKGNvbGxlY3Rpb24sIGVudHJ5KSB7XG4gIGlmIChjb2xsZWN0aW9uLmdldCgndHlwZScpID09PSBGSUxFUykge1xuICAgIGNvbnN0IGZpbGUgPSBnZXRGaWxlRnJvbVNsdWcoY29sbGVjdGlvbiwgZW50cnkuZ2V0KCdzbHVnJykpO1xuICAgIGNvbnN0IHByZXZpZXdFbmFibGVkID0gZmlsZT8uZ2V0SW4oWydlZGl0b3InLCAncHJldmlldyddKTtcbiAgICBpZiAocHJldmlld0VuYWJsZWQgIT0gbnVsbCkgcmV0dXJuIHByZXZpZXdFbmFibGVkO1xuICB9XG4gIHJldHVybiBjb2xsZWN0aW9uLmdldEluKFsnZWRpdG9yJywgJ3ByZXZpZXcnXSwgdHJ1ZSk7XG59XG5cbmNsYXNzIEVkaXRvckludGVyZmFjZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRlID0ge1xuICAgIHNob3dFdmVudEJsb2NrZXI6IGZhbHNlLFxuICAgIHByZXZpZXdWaXNpYmxlOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShQUkVWSUVXX1ZJU0lCTEUpICE9PSAnZmFsc2UnLFxuICAgIHNjcm9sbFN5bmNFbmFibGVkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTQ1JPTExfU1lOQ19FTkFCTEVEKSAhPT0gJ2ZhbHNlJyxcbiAgICBpMThuVmlzaWJsZTogbG9jYWxTdG9yYWdlLmdldEl0ZW0oSTE4Tl9WSVNJQkxFKSAhPT0gJ2ZhbHNlJyxcbiAgfTtcblxuICBoYW5kbGVGaWVsZENsaWNrID0gcGF0aCA9PiB7XG4gICAgdGhpcy5jb250cm9sUGFuZVJlZj8uZm9jdXMocGF0aCk7XG4gIH07XG5cbiAgaGFuZGxlU3BsaXRQYW5lRHJhZ1N0YXJ0ID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93RXZlbnRCbG9ja2VyOiB0cnVlIH0pO1xuICB9O1xuXG4gIGhhbmRsZVNwbGl0UGFuZURyYWdGaW5pc2hlZCA9ICgpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHsgc2hvd0V2ZW50QmxvY2tlcjogZmFsc2UgfSk7XG4gIH07XG5cbiAgaGFuZGxlT25QZXJzaXN0ID0gYXN5bmMgKG9wdHMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IHsgY3JlYXRlTmV3ID0gZmFsc2UsIGR1cGxpY2F0ZSA9IGZhbHNlIH0gPSBvcHRzO1xuICAgIGF3YWl0IHRoaXMuY29udHJvbFBhbmVSZWYuc3dpdGNoVG9EZWZhdWx0TG9jYWxlKCk7XG4gICAgdGhpcy5jb250cm9sUGFuZVJlZi52YWxpZGF0ZSgpO1xuICAgIHRoaXMucHJvcHMub25QZXJzaXN0KHsgY3JlYXRlTmV3LCBkdXBsaWNhdGUgfSk7XG4gIH07XG5cbiAgaGFuZGxlT25QdWJsaXNoID0gYXN5bmMgKG9wdHMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IHsgY3JlYXRlTmV3ID0gZmFsc2UsIGR1cGxpY2F0ZSA9IGZhbHNlIH0gPSBvcHRzO1xuICAgIGF3YWl0IHRoaXMuY29udHJvbFBhbmVSZWYuc3dpdGNoVG9EZWZhdWx0TG9jYWxlKCk7XG4gICAgdGhpcy5jb250cm9sUGFuZVJlZi52YWxpZGF0ZSgpO1xuICAgIHRoaXMucHJvcHMub25QdWJsaXNoKHsgY3JlYXRlTmV3LCBkdXBsaWNhdGUgfSk7XG4gIH07XG5cbiAgaGFuZGxlVG9nZ2xlUHJldmlldyA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdQcmV2aWV3VmlzaWJsZSA9ICF0aGlzLnN0YXRlLnByZXZpZXdWaXNpYmxlO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBwcmV2aWV3VmlzaWJsZTogbmV3UHJldmlld1Zpc2libGUgfSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oUFJFVklFV19WSVNJQkxFLCBuZXdQcmV2aWV3VmlzaWJsZSk7XG4gIH07XG5cbiAgaGFuZGxlVG9nZ2xlU2Nyb2xsU3luYyA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdTY3JvbGxTeW5jRW5hYmxlZCA9ICF0aGlzLnN0YXRlLnNjcm9sbFN5bmNFbmFibGVkO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBzY3JvbGxTeW5jRW5hYmxlZDogbmV3U2Nyb2xsU3luY0VuYWJsZWQgfSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oU0NST0xMX1NZTkNfRU5BQkxFRCwgbmV3U2Nyb2xsU3luY0VuYWJsZWQpO1xuICB9O1xuXG4gIGhhbmRsZVRvZ2dsZUkxOG4gPSAoKSA9PiB7XG4gICAgY29uc3QgbmV3STE4blZpc2libGUgPSAhdGhpcy5zdGF0ZS5pMThuVmlzaWJsZTtcbiAgICB0aGlzLnNldFN0YXRlKHsgaTE4blZpc2libGU6IG5ld0kxOG5WaXNpYmxlIH0pO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKEkxOE5fVklTSUJMRSwgbmV3STE4blZpc2libGUpO1xuICB9O1xuXG4gIGhhbmRsZUxlZnRQYW5lbExvY2FsZUNoYW5nZSA9IGxvY2FsZSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxlZnRQYW5lbExvY2FsZTogbG9jYWxlIH0pO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgZW50cnksXG4gICAgICBmaWVsZHMsXG4gICAgICBmaWVsZHNNZXRhRGF0YSxcbiAgICAgIGZpZWxkc0Vycm9ycyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIG9uRGVsZXRlLFxuICAgICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICBvbkNoYW5nZVN0YXR1cyxcbiAgICAgIG9uUHVibGlzaCxcbiAgICAgIHVuUHVibGlzaCxcbiAgICAgIG9uRHVwbGljYXRlLFxuICAgICAgb25WYWxpZGF0ZSxcbiAgICAgIHVzZXIsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgZGlzcGxheVVybCxcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgbG9hZERlcGxveVByZXZpZXcsXG4gICAgICBkZXBsb3lQcmV2aWV3LFxuICAgICAgZHJhZnRLZXksXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCB7IHNjcm9sbFN5bmNFbmFibGVkLCBzaG93RXZlbnRCbG9ja2VyIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgY29uc3QgcHJldmlld0VuYWJsZWQgPSBpc1ByZXZpZXdFbmFibGVkKGNvbGxlY3Rpb24sIGVudHJ5KTtcblxuICAgIGNvbnN0IHsgbG9jYWxlcywgZGVmYXVsdExvY2FsZSB9ID0gZ2V0STE4bkluZm8odGhpcy5wcm9wcy5jb2xsZWN0aW9uKTtcbiAgICBjb25zdCBjb2xsZWN0aW9uSTE4bkVuYWJsZWQgPSBoYXNJMThuKGNvbGxlY3Rpb24pICYmIGxvY2FsZXMubGVuZ3RoID4gMTtcbiAgICBjb25zdCBlZGl0b3JQcm9wcyA9IHtcbiAgICAgIGNvbGxlY3Rpb24sXG4gICAgICBlbnRyeSxcbiAgICAgIGZpZWxkcyxcbiAgICAgIGZpZWxkc01ldGFEYXRhLFxuICAgICAgZmllbGRzRXJyb3JzLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvblZhbGlkYXRlLFxuICAgIH07XG5cbiAgICBjb25zdCBsZWZ0UGFuZWxMb2NhbGUgPSB0aGlzLnN0YXRlLmxlZnRQYW5lbExvY2FsZSB8fCBsb2NhbGVzPy5bMF07XG4gICAgY29uc3QgZWRpdG9yID0gKFxuICAgICAgPENvbnRyb2xQYW5lQ29udGFpbmVyIG92ZXJGbG93IGJsb2NrRW50cnk9e3Nob3dFdmVudEJsb2NrZXJ9PlxuICAgICAgICA8RWRpdG9yQ29udHJvbFBhbmVcbiAgICAgICAgICB7Li4uZWRpdG9yUHJvcHN9XG4gICAgICAgICAgcmVmPXtjID0+ICh0aGlzLmNvbnRyb2xQYW5lUmVmID0gYyl9XG4gICAgICAgICAgbG9jYWxlPXtsZWZ0UGFuZWxMb2NhbGV9XG4gICAgICAgICAgdD17dH1cbiAgICAgICAgICBvbkxvY2FsZUNoYW5nZT17dGhpcy5oYW5kbGVMZWZ0UGFuZWxMb2NhbGVDaGFuZ2V9XG4gICAgICAgIC8+XG4gICAgICA8L0NvbnRyb2xQYW5lQ29udGFpbmVyPlxuICAgICk7XG5cbiAgICBjb25zdCBlZGl0b3IyID0gKFxuICAgICAgPENvbnRyb2xQYW5lQ29udGFpbmVyIG92ZXJGbG93PXshdGhpcy5zdGF0ZS5zY3JvbGxTeW5jRW5hYmxlZH0gYmxvY2tFbnRyeT17c2hvd0V2ZW50QmxvY2tlcn0+XG4gICAgICAgIDxFZGl0b3JDb250cm9sUGFuZSB7Li4uZWRpdG9yUHJvcHN9IGxvY2FsZT17bG9jYWxlcz8uWzFdfSB0PXt0fSAvPlxuICAgICAgPC9Db250cm9sUGFuZUNvbnRhaW5lcj5cbiAgICApO1xuXG4gICAgY29uc3QgcHJldmlld0VudHJ5ID0gY29sbGVjdGlvbkkxOG5FbmFibGVkXG4gICAgICA/IGdldFByZXZpZXdFbnRyeShlbnRyeSwgbGVmdFBhbmVsTG9jYWxlLCBkZWZhdWx0TG9jYWxlKVxuICAgICAgOiBlbnRyeTtcblxuICAgIGNvbnN0IGVkaXRvcldpdGhQcmV2aWV3ID0gKFxuICAgICAgPFNjcm9sbFN5bmMgZW5hYmxlZD17dGhpcy5zdGF0ZS5zY3JvbGxTeW5jRW5hYmxlZH0+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPFJlYWN0U3BsaXRQYW5lR2xvYmFsU3R5bGVzIC8+XG4gICAgICAgICAgPFN0eWxlZFNwbGl0UGFuZVxuICAgICAgICAgICAgbWF4U2l6ZT17LTEwMH1cbiAgICAgICAgICAgIG1pblNpemU9ezQwMH1cbiAgICAgICAgICAgIGRlZmF1bHRTaXplPXtwYXJzZUludChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTUExJVF9QQU5FX1BPU0lUSU9OKSwgMTApIHx8ICc1MCUnfVxuICAgICAgICAgICAgb25DaGFuZ2U9e3NpemUgPT4gbG9jYWxTdG9yYWdlLnNldEl0ZW0oU1BMSVRfUEFORV9QT1NJVElPTiwgc2l6ZSl9XG4gICAgICAgICAgICBvbkRyYWdTdGFydGVkPXt0aGlzLmhhbmRsZVNwbGl0UGFuZURyYWdTdGFydH1cbiAgICAgICAgICAgIG9uRHJhZ0ZpbmlzaGVkPXt0aGlzLmhhbmRsZVNwbGl0UGFuZURyYWdGaW5pc2hlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U2Nyb2xsU3luY1BhbmU+e2VkaXRvcn08L1Njcm9sbFN5bmNQYW5lPlxuICAgICAgICAgICAgPFByZXZpZXdQYW5lQ29udGFpbmVyIGJsb2NrRW50cnk9e3Nob3dFdmVudEJsb2NrZXJ9PlxuICAgICAgICAgICAgICA8RWRpdG9yUHJldmlld1BhbmVcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uPXtjb2xsZWN0aW9ufVxuICAgICAgICAgICAgICAgIGVudHJ5PXtwcmV2aWV3RW50cnl9XG4gICAgICAgICAgICAgICAgZmllbGRzPXtmaWVsZHN9XG4gICAgICAgICAgICAgICAgZmllbGRzTWV0YURhdGE9e2ZpZWxkc01ldGFEYXRhfVxuICAgICAgICAgICAgICAgIGxvY2FsZT17bGVmdFBhbmVsTG9jYWxlfVxuICAgICAgICAgICAgICAgIG9uRmllbGRDbGljaz17dGhpcy5oYW5kbGVGaWVsZENsaWNrfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9QcmV2aWV3UGFuZUNvbnRhaW5lcj5cbiAgICAgICAgICA8L1N0eWxlZFNwbGl0UGFuZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1Njcm9sbFN5bmM+XG4gICAgKTtcblxuICAgIGNvbnN0IGVkaXRvcldpdGhFZGl0b3IgPSAoXG4gICAgICA8U2Nyb2xsU3luYyBlbmFibGVkPXt0aGlzLnN0YXRlLnNjcm9sbFN5bmNFbmFibGVkfT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8U3R5bGVkU3BsaXRQYW5lXG4gICAgICAgICAgICBtYXhTaXplPXstMTAwfVxuICAgICAgICAgICAgZGVmYXVsdFNpemU9e3BhcnNlSW50KGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNQTElUX1BBTkVfUE9TSVRJT04pLCAxMCkgfHwgJzUwJSd9XG4gICAgICAgICAgICBvbkNoYW5nZT17c2l6ZSA9PiBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShTUExJVF9QQU5FX1BPU0lUSU9OLCBzaXplKX1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0ZWQ9e3RoaXMuaGFuZGxlU3BsaXRQYW5lRHJhZ1N0YXJ0fVxuICAgICAgICAgICAgb25EcmFnRmluaXNoZWQ9e3RoaXMuaGFuZGxlU3BsaXRQYW5lRHJhZ0ZpbmlzaGVkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTY3JvbGxTeW5jUGFuZT57ZWRpdG9yfTwvU2Nyb2xsU3luY1BhbmU+XG4gICAgICAgICAgICA8U2Nyb2xsU3luY1BhbmU+e2VkaXRvcjJ9PC9TY3JvbGxTeW5jUGFuZT5cbiAgICAgICAgICA8L1N0eWxlZFNwbGl0UGFuZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1Njcm9sbFN5bmM+XG4gICAgKTtcblxuICAgIGNvbnN0IGkxOG5WaXNpYmxlID0gY29sbGVjdGlvbkkxOG5FbmFibGVkICYmIHRoaXMuc3RhdGUuaTE4blZpc2libGU7XG4gICAgY29uc3QgcHJldmlld1Zpc2libGUgPSBwcmV2aWV3RW5hYmxlZCAmJiB0aGlzLnN0YXRlLnByZXZpZXdWaXNpYmxlO1xuICAgIGNvbnN0IHNjcm9sbFN5bmNWaXNpYmxlID0gaTE4blZpc2libGUgfHwgcHJldmlld1Zpc2libGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEVkaXRvckNvbnRhaW5lcj5cbiAgICAgICAgPEVkaXRvclRvb2xiYXJcbiAgICAgICAgICBpc1BlcnNpc3Rpbmc9e2VudHJ5LmdldCgnaXNQZXJzaXN0aW5nJyl9XG4gICAgICAgICAgaXNQdWJsaXNoaW5nPXtlbnRyeS5nZXQoJ2lzUHVibGlzaGluZycpfVxuICAgICAgICAgIGlzVXBkYXRpbmdTdGF0dXM9e2VudHJ5LmdldCgnaXNVcGRhdGluZ1N0YXR1cycpfVxuICAgICAgICAgIGlzRGVsZXRpbmc9e2VudHJ5LmdldCgnaXNEZWxldGluZycpfVxuICAgICAgICAgIG9uUGVyc2lzdD17dGhpcy5oYW5kbGVPblBlcnNpc3R9XG4gICAgICAgICAgb25QZXJzaXN0QW5kTmV3PXsoKSA9PiB0aGlzLmhhbmRsZU9uUGVyc2lzdCh7IGNyZWF0ZU5ldzogdHJ1ZSB9KX1cbiAgICAgICAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU9eygpID0+IHRoaXMuaGFuZGxlT25QZXJzaXN0KHsgY3JlYXRlTmV3OiB0cnVlLCBkdXBsaWNhdGU6IHRydWUgfSl9XG4gICAgICAgICAgb25EZWxldGU9e29uRGVsZXRlfVxuICAgICAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzPXtvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlc31cbiAgICAgICAgICBvbkNoYW5nZVN0YXR1cz17b25DaGFuZ2VTdGF0dXN9XG4gICAgICAgICAgc2hvd0RlbGV0ZT17c2hvd0RlbGV0ZX1cbiAgICAgICAgICBvblB1Ymxpc2g9e29uUHVibGlzaH1cbiAgICAgICAgICB1blB1Ymxpc2g9e3VuUHVibGlzaH1cbiAgICAgICAgICBvbkR1cGxpY2F0ZT17b25EdXBsaWNhdGV9XG4gICAgICAgICAgb25QdWJsaXNoQW5kTmV3PXsoKSA9PiB0aGlzLmhhbmRsZU9uUHVibGlzaCh7IGNyZWF0ZU5ldzogdHJ1ZSB9KX1cbiAgICAgICAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU9eygpID0+IHRoaXMuaGFuZGxlT25QdWJsaXNoKHsgY3JlYXRlTmV3OiB0cnVlLCBkdXBsaWNhdGU6IHRydWUgfSl9XG4gICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICBoYXNDaGFuZ2VkPXtoYXNDaGFuZ2VkfVxuICAgICAgICAgIGRpc3BsYXlVcmw9e2Rpc3BsYXlVcmx9XG4gICAgICAgICAgY29sbGVjdGlvbj17Y29sbGVjdGlvbn1cbiAgICAgICAgICBoYXNXb3JrZmxvdz17aGFzV29ya2Zsb3d9XG4gICAgICAgICAgdXNlT3BlbkF1dGhvcmluZz17dXNlT3BlbkF1dGhvcmluZ31cbiAgICAgICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXM9e2hhc1VucHVibGlzaGVkQ2hhbmdlc31cbiAgICAgICAgICBpc05ld0VudHJ5PXtpc05ld0VudHJ5fVxuICAgICAgICAgIGlzTW9kaWZpY2F0aW9uPXtpc01vZGlmaWNhdGlvbn1cbiAgICAgICAgICBjdXJyZW50U3RhdHVzPXtjdXJyZW50U3RhdHVzfVxuICAgICAgICAgIG9uTG9nb3V0Q2xpY2s9e29uTG9nb3V0Q2xpY2t9XG4gICAgICAgICAgbG9hZERlcGxveVByZXZpZXc9e2xvYWREZXBsb3lQcmV2aWV3fVxuICAgICAgICAgIGRlcGxveVByZXZpZXc9e2RlcGxveVByZXZpZXd9XG4gICAgICAgICAgZWRpdG9yQmFja0xpbms9e2VkaXRvckJhY2tMaW5rfVxuICAgICAgICAvPlxuICAgICAgICA8RWRpdG9yIGtleT17ZHJhZnRLZXl9PlxuICAgICAgICAgIDxWaWV3Q29udHJvbHM+XG4gICAgICAgICAgICB7Y29sbGVjdGlvbkkxOG5FbmFibGVkICYmIChcbiAgICAgICAgICAgICAgPEVkaXRvclRvZ2dsZVxuICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtpMThuVmlzaWJsZX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVRvZ2dsZUkxOG59XG4gICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwicGFnZVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9e3QoJ2VkaXRvci5lZGl0b3JJbnRlcmZhY2UudG9nZ2xlSTE4bicpfVxuICAgICAgICAgICAgICAgIG1hcmdpblRvcD1cIjcwcHhcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtwcmV2aWV3RW5hYmxlZCAmJiAoXG4gICAgICAgICAgICAgIDxFZGl0b3JUb2dnbGVcbiAgICAgICAgICAgICAgICBpc0FjdGl2ZT17cHJldmlld1Zpc2libGV9XG4gICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVUb2dnbGVQcmV2aWV3fVxuICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImV5ZVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9e3QoJ2VkaXRvci5lZGl0b3JJbnRlcmZhY2UudG9nZ2xlUHJldmlldycpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtzY3JvbGxTeW5jVmlzaWJsZSAmJiAhY29sbGVjdGlvbi5nZXRJbihbJ2VkaXRvcicsICd2aXN1YWxFZGl0aW5nJ10pICYmIChcbiAgICAgICAgICAgICAgPEVkaXRvclRvZ2dsZVxuICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtzY3JvbGxTeW5jRW5hYmxlZH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVRvZ2dsZVNjcm9sbFN5bmN9XG4gICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwic2Nyb2xsXCJcbiAgICAgICAgICAgICAgICB0aXRsZT17dCgnZWRpdG9yLmVkaXRvckludGVyZmFjZS50b2dnbGVTY3JvbGxTeW5jJyl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvVmlld0NvbnRyb2xzPlxuICAgICAgICAgIDxFZGl0b3JDb250ZW50XG4gICAgICAgICAgICBpMThuVmlzaWJsZT17aTE4blZpc2libGV9XG4gICAgICAgICAgICBwcmV2aWV3VmlzaWJsZT17cHJldmlld1Zpc2libGV9XG4gICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgIGVkaXRvcldpdGhFZGl0b3I9e2VkaXRvcldpdGhFZGl0b3J9XG4gICAgICAgICAgICBlZGl0b3JXaXRoUHJldmlldz17ZWRpdG9yV2l0aFByZXZpZXd9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9FZGl0b3I+XG4gICAgICA8L0VkaXRvckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbkVkaXRvckludGVyZmFjZS5wcm9wVHlwZXMgPSB7XG4gIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgZW50cnk6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgZmllbGRzOiBJbW11dGFibGVQcm9wVHlwZXMubGlzdC5pc1JlcXVpcmVkLFxuICBmaWVsZHNNZXRhRGF0YTogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICBmaWVsZHNFcnJvcnM6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uVmFsaWRhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25EdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uQ2hhbmdlU3RhdHVzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB1c2VyOiBQcm9wVHlwZXMub2JqZWN0LFxuICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICB1c2VPcGVuQXV0aG9yaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gIGlzTW9kaWZpY2F0aW9uOiBQcm9wVHlwZXMuYm9vbCxcbiAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZGVwbG95UHJldmlldzogUHJvcFR5cGVzLm9iamVjdCxcbiAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGRyYWZ0S2V5OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBFZGl0b3JJbnRlcmZhY2U7XG4iXX0= */",
84
+ styles: "padding:0 16px;position:relative;overflow-x:hidden/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JJbnRlcmZhY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0h5RCIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9FZGl0b3IvRWRpdG9ySW50ZXJmYWNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgSW1tdXRhYmxlUHJvcFR5cGVzIGZyb20gJ3JlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXMnO1xuaW1wb3J0IHsgY3NzLCBHbG9iYWwgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgU3BsaXRQYW5lIGZyb20gJ3JlYWN0LXNwbGl0LXBhbmUnO1xuaW1wb3J0IHtcbiAgY29sb3JzLFxuICBjb2xvcnNSYXcsXG4gIGNvbXBvbmVudHMsXG4gIHRyYW5zaXRpb25zLFxuICBJY29uQnV0dG9uLFxuICB6SW5kZXgsXG59IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcbmltcG9ydCB7IFNjcm9sbFN5bmMsIFNjcm9sbFN5bmNQYW5lIH0gZnJvbSAncmVhY3Qtc2Nyb2xsLXN5bmMnO1xuXG5pbXBvcnQgRWRpdG9yQ29udHJvbFBhbmUgZnJvbSAnLi9FZGl0b3JDb250cm9sUGFuZS9FZGl0b3JDb250cm9sUGFuZSc7XG5pbXBvcnQgRWRpdG9yUHJldmlld1BhbmUgZnJvbSAnLi9FZGl0b3JQcmV2aWV3UGFuZS9FZGl0b3JQcmV2aWV3UGFuZSc7XG5pbXBvcnQgRWRpdG9yVG9vbGJhciBmcm9tICcuL0VkaXRvclRvb2xiYXInO1xuaW1wb3J0IHsgaGFzSTE4biwgZ2V0STE4bkluZm8sIGdldFByZXZpZXdFbnRyeSB9IGZyb20gJy4uLy4uL2xpYi9pMThuJztcbmltcG9ydCB7IEZJTEVTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbGxlY3Rpb25UeXBlcyc7XG5pbXBvcnQgeyBnZXRGaWxlRnJvbVNsdWcgfSBmcm9tICcuLi8uLi9yZWR1Y2Vycy9jb2xsZWN0aW9ucyc7XG5cbmNvbnN0IFBSRVZJRVdfVklTSUJMRSA9ICdjbXMucHJldmlldy12aXNpYmxlJztcbmNvbnN0IFNDUk9MTF9TWU5DX0VOQUJMRUQgPSAnY21zLnNjcm9sbC1zeW5jLWVuYWJsZWQnO1xuY29uc3QgU1BMSVRfUEFORV9QT1NJVElPTiA9ICdjbXMuc3BsaXQtcGFuZS1wb3NpdGlvbic7XG5jb25zdCBJMThOX1ZJU0lCTEUgPSAnY21zLmkxOG4tdmlzaWJsZSc7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgc3BsaXRQYW5lOiBjc3NgXG4gICAgJHtjb21wb25lbnRzLmNhcmR9O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICBgLFxuICBwYW5lOiBjc3NgXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIGAsXG59O1xuXG5jb25zdCBFZGl0b3JUb2dnbGUgPSBzdHlsZWQoSWNvbkJ1dHRvbilgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5mdW5jdGlvbiBSZWFjdFNwbGl0UGFuZUdsb2JhbFN0eWxlcygpIHtcbiAgcmV0dXJuIChcbiAgICA8R2xvYmFsXG4gICAgICBzdHlsZXM9e2Nzc2BcbiAgICAgICAgLlJlc2l6ZXIudmVydGljYWwge1xuICAgICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICB3aWR0aDogMnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICR7dHJhbnNpdGlvbnMubWFpbn07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgICAgICAgIGxlZnQ6IC0xcHg7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzUmF3LmJsdWV9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgYH1cbiAgICAvPlxuICApO1xufVxuXG5jb25zdCBTdHlsZWRTcGxpdFBhbmUgPSBzdHlsZWQoU3BsaXRQYW5lKWBcbiAgJHtzdHlsZXMuc3BsaXRQYW5lfTtcblxuICAvKipcbiAgICogUXVpY2sgZml4IGZvciBwcmV2aWV3IHBhbmUgbm90IGZ1bGx5IGRpc3BsYXlpbmcgaW4gU2FmYXJpXG4gICAqL1xuICAuUGFuZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5gO1xuXG5jb25zdCBOb1ByZXZpZXdDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICAke3N0eWxlcy5zcGxpdFBhbmV9O1xuYDtcblxuY29uc3QgRWRpdG9yQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctdG9wOiA2NnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9ycy5iYWNrZ3JvdW5kfTtcbmA7XG5cbmNvbnN0IEVkaXRvciA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IFByZXZpZXdQYW5lQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb2ludGVyLWV2ZW50czogJHtwcm9wcyA9PiAocHJvcHMuYmxvY2tFbnRyeSA/ICdub25lJyA6ICdhdXRvJyl9O1xuICBvdmVyZmxvdy15OiAke3Byb3BzID0+IChwcm9wcy5vdmVyRmxvdyA/ICdhdXRvJyA6ICdoaWRkZW4nKX07XG5gO1xuXG5jb25zdCBDb250cm9sUGFuZUNvbnRhaW5lciA9IHN0eWxlZChQcmV2aWV3UGFuZUNvbnRhaW5lcilgXG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG5gO1xuXG5jb25zdCBWaWV3Q29udHJvbHMgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDI5OX07XG5gO1xuXG5mdW5jdGlvbiBFZGl0b3JDb250ZW50KHtcbiAgaTE4blZpc2libGUsXG4gIHByZXZpZXdWaXNpYmxlLFxuICBlZGl0b3IsXG4gIGVkaXRvcldpdGhFZGl0b3IsXG4gIGVkaXRvcldpdGhQcmV2aWV3LFxufSkge1xuICBpZiAoaTE4blZpc2libGUpIHtcbiAgICByZXR1cm4gZWRpdG9yV2l0aEVkaXRvcjtcbiAgfSBlbHNlIGlmIChwcmV2aWV3VmlzaWJsZSkge1xuICAgIHJldHVybiBlZGl0b3JXaXRoUHJldmlldztcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gPE5vUHJldmlld0NvbnRhaW5lcj57ZWRpdG9yfTwvTm9QcmV2aWV3Q29udGFpbmVyPjtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1ByZXZpZXdFbmFibGVkKGNvbGxlY3Rpb24sIGVudHJ5KSB7XG4gIGlmIChjb2xsZWN0aW9uLmdldCgndHlwZScpID09PSBGSUxFUykge1xuICAgIGNvbnN0IGZpbGUgPSBnZXRGaWxlRnJvbVNsdWcoY29sbGVjdGlvbiwgZW50cnkuZ2V0KCdzbHVnJykpO1xuICAgIGNvbnN0IHByZXZpZXdFbmFibGVkID0gZmlsZT8uZ2V0SW4oWydlZGl0b3InLCAncHJldmlldyddKTtcbiAgICBpZiAocHJldmlld0VuYWJsZWQgIT0gbnVsbCkgcmV0dXJuIHByZXZpZXdFbmFibGVkO1xuICB9XG4gIHJldHVybiBjb2xsZWN0aW9uLmdldEluKFsnZWRpdG9yJywgJ3ByZXZpZXcnXSwgdHJ1ZSk7XG59XG5cbmNsYXNzIEVkaXRvckludGVyZmFjZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRlID0ge1xuICAgIHNob3dFdmVudEJsb2NrZXI6IGZhbHNlLFxuICAgIHByZXZpZXdWaXNpYmxlOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShQUkVWSUVXX1ZJU0lCTEUpICE9PSAnZmFsc2UnLFxuICAgIHNjcm9sbFN5bmNFbmFibGVkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTQ1JPTExfU1lOQ19FTkFCTEVEKSAhPT0gJ2ZhbHNlJyxcbiAgICBpMThuVmlzaWJsZTogbG9jYWxTdG9yYWdlLmdldEl0ZW0oSTE4Tl9WSVNJQkxFKSAhPT0gJ2ZhbHNlJyxcbiAgfTtcblxuICBoYW5kbGVGaWVsZENsaWNrID0gcGF0aCA9PiB7XG4gICAgdGhpcy5jb250cm9sUGFuZVJlZj8uZm9jdXMocGF0aCk7XG4gIH07XG5cbiAgaGFuZGxlU3BsaXRQYW5lRHJhZ1N0YXJ0ID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93RXZlbnRCbG9ja2VyOiB0cnVlIH0pO1xuICB9O1xuXG4gIGhhbmRsZVNwbGl0UGFuZURyYWdGaW5pc2hlZCA9ICgpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHsgc2hvd0V2ZW50QmxvY2tlcjogZmFsc2UgfSk7XG4gIH07XG5cbiAgaGFuZGxlT25QZXJzaXN0ID0gYXN5bmMgKG9wdHMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IHsgY3JlYXRlTmV3ID0gZmFsc2UsIGR1cGxpY2F0ZSA9IGZhbHNlIH0gPSBvcHRzO1xuICAgIGF3YWl0IHRoaXMuY29udHJvbFBhbmVSZWYuc3dpdGNoVG9EZWZhdWx0TG9jYWxlKCk7XG4gICAgdGhpcy5jb250cm9sUGFuZVJlZi52YWxpZGF0ZSgpO1xuICAgIHRoaXMucHJvcHMub25QZXJzaXN0KHsgY3JlYXRlTmV3LCBkdXBsaWNhdGUgfSk7XG4gIH07XG5cbiAgaGFuZGxlT25QdWJsaXNoID0gYXN5bmMgKG9wdHMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IHsgY3JlYXRlTmV3ID0gZmFsc2UsIGR1cGxpY2F0ZSA9IGZhbHNlIH0gPSBvcHRzO1xuICAgIGF3YWl0IHRoaXMuY29udHJvbFBhbmVSZWYuc3dpdGNoVG9EZWZhdWx0TG9jYWxlKCk7XG4gICAgdGhpcy5jb250cm9sUGFuZVJlZi52YWxpZGF0ZSgpO1xuICAgIHRoaXMucHJvcHMub25QdWJsaXNoKHsgY3JlYXRlTmV3LCBkdXBsaWNhdGUgfSk7XG4gIH07XG5cbiAgaGFuZGxlVG9nZ2xlUHJldmlldyA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdQcmV2aWV3VmlzaWJsZSA9ICF0aGlzLnN0YXRlLnByZXZpZXdWaXNpYmxlO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBwcmV2aWV3VmlzaWJsZTogbmV3UHJldmlld1Zpc2libGUgfSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oUFJFVklFV19WSVNJQkxFLCBuZXdQcmV2aWV3VmlzaWJsZSk7XG4gIH07XG5cbiAgaGFuZGxlVG9nZ2xlU2Nyb2xsU3luYyA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdTY3JvbGxTeW5jRW5hYmxlZCA9ICF0aGlzLnN0YXRlLnNjcm9sbFN5bmNFbmFibGVkO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBzY3JvbGxTeW5jRW5hYmxlZDogbmV3U2Nyb2xsU3luY0VuYWJsZWQgfSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oU0NST0xMX1NZTkNfRU5BQkxFRCwgbmV3U2Nyb2xsU3luY0VuYWJsZWQpO1xuICB9O1xuXG4gIGhhbmRsZVRvZ2dsZUkxOG4gPSAoKSA9PiB7XG4gICAgY29uc3QgbmV3STE4blZpc2libGUgPSAhdGhpcy5zdGF0ZS5pMThuVmlzaWJsZTtcbiAgICB0aGlzLnNldFN0YXRlKHsgaTE4blZpc2libGU6IG5ld0kxOG5WaXNpYmxlIH0pO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKEkxOE5fVklTSUJMRSwgbmV3STE4blZpc2libGUpO1xuICB9O1xuXG4gIGhhbmRsZUxlZnRQYW5lbExvY2FsZUNoYW5nZSA9IGxvY2FsZSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxlZnRQYW5lbExvY2FsZTogbG9jYWxlIH0pO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgZW50cnksXG4gICAgICBmaWVsZHMsXG4gICAgICBmaWVsZHNNZXRhRGF0YSxcbiAgICAgIGZpZWxkc0Vycm9ycyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgc2hvd0RlbGV0ZSxcbiAgICAgIG9uRGVsZXRlLFxuICAgICAgb25EZWxldGVVbnB1Ymxpc2hlZENoYW5nZXMsXG4gICAgICBvbkNoYW5nZVN0YXR1cyxcbiAgICAgIG9uUHVibGlzaCxcbiAgICAgIHVuUHVibGlzaCxcbiAgICAgIG9uRHVwbGljYXRlLFxuICAgICAgb25WYWxpZGF0ZSxcbiAgICAgIHVzZXIsXG4gICAgICBoYXNDaGFuZ2VkLFxuICAgICAgZGlzcGxheVVybCxcbiAgICAgIGhhc1dvcmtmbG93LFxuICAgICAgdXNlT3BlbkF1dGhvcmluZyxcbiAgICAgIGhhc1VucHVibGlzaGVkQ2hhbmdlcyxcbiAgICAgIGlzTmV3RW50cnksXG4gICAgICBpc01vZGlmaWNhdGlvbixcbiAgICAgIGN1cnJlbnRTdGF0dXMsXG4gICAgICBvbkxvZ291dENsaWNrLFxuICAgICAgbG9hZERlcGxveVByZXZpZXcsXG4gICAgICBkZXBsb3lQcmV2aWV3LFxuICAgICAgZHJhZnRLZXksXG4gICAgICBlZGl0b3JCYWNrTGluayxcbiAgICAgIHQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCB7IHNjcm9sbFN5bmNFbmFibGVkLCBzaG93RXZlbnRCbG9ja2VyIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgY29uc3QgcHJldmlld0VuYWJsZWQgPSBpc1ByZXZpZXdFbmFibGVkKGNvbGxlY3Rpb24sIGVudHJ5KTtcblxuICAgIGNvbnN0IHsgbG9jYWxlcywgZGVmYXVsdExvY2FsZSB9ID0gZ2V0STE4bkluZm8odGhpcy5wcm9wcy5jb2xsZWN0aW9uKTtcbiAgICBjb25zdCBjb2xsZWN0aW9uSTE4bkVuYWJsZWQgPSBoYXNJMThuKGNvbGxlY3Rpb24pICYmIGxvY2FsZXMubGVuZ3RoID4gMTtcbiAgICBjb25zdCBlZGl0b3JQcm9wcyA9IHtcbiAgICAgIGNvbGxlY3Rpb24sXG4gICAgICBlbnRyeSxcbiAgICAgIGZpZWxkcyxcbiAgICAgIGZpZWxkc01ldGFEYXRhLFxuICAgICAgZmllbGRzRXJyb3JzLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvblZhbGlkYXRlLFxuICAgIH07XG5cbiAgICBjb25zdCBsZWZ0UGFuZWxMb2NhbGUgPSB0aGlzLnN0YXRlLmxlZnRQYW5lbExvY2FsZSB8fCBsb2NhbGVzPy5bMF07XG4gICAgY29uc3QgZWRpdG9yID0gKFxuICAgICAgPENvbnRyb2xQYW5lQ29udGFpbmVyIG92ZXJGbG93IGJsb2NrRW50cnk9e3Nob3dFdmVudEJsb2NrZXJ9PlxuICAgICAgICA8RWRpdG9yQ29udHJvbFBhbmVcbiAgICAgICAgICB7Li4uZWRpdG9yUHJvcHN9XG4gICAgICAgICAgcmVmPXtjID0+ICh0aGlzLmNvbnRyb2xQYW5lUmVmID0gYyl9XG4gICAgICAgICAgbG9jYWxlPXtsZWZ0UGFuZWxMb2NhbGV9XG4gICAgICAgICAgdD17dH1cbiAgICAgICAgICBvbkxvY2FsZUNoYW5nZT17dGhpcy5oYW5kbGVMZWZ0UGFuZWxMb2NhbGVDaGFuZ2V9XG4gICAgICAgIC8+XG4gICAgICA8L0NvbnRyb2xQYW5lQ29udGFpbmVyPlxuICAgICk7XG5cbiAgICBjb25zdCBlZGl0b3IyID0gKFxuICAgICAgPENvbnRyb2xQYW5lQ29udGFpbmVyIG92ZXJGbG93PXshdGhpcy5zdGF0ZS5zY3JvbGxTeW5jRW5hYmxlZH0gYmxvY2tFbnRyeT17c2hvd0V2ZW50QmxvY2tlcn0+XG4gICAgICAgIDxFZGl0b3JDb250cm9sUGFuZSB7Li4uZWRpdG9yUHJvcHN9IGxvY2FsZT17bG9jYWxlcz8uWzFdfSB0PXt0fSAvPlxuICAgICAgPC9Db250cm9sUGFuZUNvbnRhaW5lcj5cbiAgICApO1xuXG4gICAgY29uc3QgcHJldmlld0VudHJ5ID0gY29sbGVjdGlvbkkxOG5FbmFibGVkXG4gICAgICA/IGdldFByZXZpZXdFbnRyeShlbnRyeSwgbGVmdFBhbmVsTG9jYWxlLCBkZWZhdWx0TG9jYWxlKVxuICAgICAgOiBlbnRyeTtcblxuICAgIGNvbnN0IGVkaXRvcldpdGhQcmV2aWV3ID0gKFxuICAgICAgPFNjcm9sbFN5bmMgZW5hYmxlZD17dGhpcy5zdGF0ZS5zY3JvbGxTeW5jRW5hYmxlZH0+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPFJlYWN0U3BsaXRQYW5lR2xvYmFsU3R5bGVzIC8+XG4gICAgICAgICAgPFN0eWxlZFNwbGl0UGFuZVxuICAgICAgICAgICAgbWF4U2l6ZT17LTEwMH1cbiAgICAgICAgICAgIG1pblNpemU9ezQwMH1cbiAgICAgICAgICAgIGRlZmF1bHRTaXplPXtwYXJzZUludChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTUExJVF9QQU5FX1BPU0lUSU9OKSwgMTApIHx8ICc1MCUnfVxuICAgICAgICAgICAgb25DaGFuZ2U9e3NpemUgPT4gbG9jYWxTdG9yYWdlLnNldEl0ZW0oU1BMSVRfUEFORV9QT1NJVElPTiwgc2l6ZSl9XG4gICAgICAgICAgICBvbkRyYWdTdGFydGVkPXt0aGlzLmhhbmRsZVNwbGl0UGFuZURyYWdTdGFydH1cbiAgICAgICAgICAgIG9uRHJhZ0ZpbmlzaGVkPXt0aGlzLmhhbmRsZVNwbGl0UGFuZURyYWdGaW5pc2hlZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U2Nyb2xsU3luY1BhbmU+e2VkaXRvcn08L1Njcm9sbFN5bmNQYW5lPlxuICAgICAgICAgICAgPFByZXZpZXdQYW5lQ29udGFpbmVyIGJsb2NrRW50cnk9e3Nob3dFdmVudEJsb2NrZXJ9PlxuICAgICAgICAgICAgICA8RWRpdG9yUHJldmlld1BhbmVcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uPXtjb2xsZWN0aW9ufVxuICAgICAgICAgICAgICAgIGVudHJ5PXtwcmV2aWV3RW50cnl9XG4gICAgICAgICAgICAgICAgZmllbGRzPXtmaWVsZHN9XG4gICAgICAgICAgICAgICAgZmllbGRzTWV0YURhdGE9e2ZpZWxkc01ldGFEYXRhfVxuICAgICAgICAgICAgICAgIGxvY2FsZT17bGVmdFBhbmVsTG9jYWxlfVxuICAgICAgICAgICAgICAgIG9uRmllbGRDbGljaz17dGhpcy5oYW5kbGVGaWVsZENsaWNrfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9QcmV2aWV3UGFuZUNvbnRhaW5lcj5cbiAgICAgICAgICA8L1N0eWxlZFNwbGl0UGFuZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1Njcm9sbFN5bmM+XG4gICAgKTtcblxuICAgIGNvbnN0IGVkaXRvcldpdGhFZGl0b3IgPSAoXG4gICAgICA8U2Nyb2xsU3luYyBlbmFibGVkPXt0aGlzLnN0YXRlLnNjcm9sbFN5bmNFbmFibGVkfT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8U3R5bGVkU3BsaXRQYW5lXG4gICAgICAgICAgICBtYXhTaXplPXstMTAwfVxuICAgICAgICAgICAgZGVmYXVsdFNpemU9e3BhcnNlSW50KGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNQTElUX1BBTkVfUE9TSVRJT04pLCAxMCkgfHwgJzUwJSd9XG4gICAgICAgICAgICBvbkNoYW5nZT17c2l6ZSA9PiBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShTUExJVF9QQU5FX1BPU0lUSU9OLCBzaXplKX1cbiAgICAgICAgICAgIG9uRHJhZ1N0YXJ0ZWQ9e3RoaXMuaGFuZGxlU3BsaXRQYW5lRHJhZ1N0YXJ0fVxuICAgICAgICAgICAgb25EcmFnRmluaXNoZWQ9e3RoaXMuaGFuZGxlU3BsaXRQYW5lRHJhZ0ZpbmlzaGVkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTY3JvbGxTeW5jUGFuZT57ZWRpdG9yfTwvU2Nyb2xsU3luY1BhbmU+XG4gICAgICAgICAgICA8U2Nyb2xsU3luY1BhbmU+e2VkaXRvcjJ9PC9TY3JvbGxTeW5jUGFuZT5cbiAgICAgICAgICA8L1N0eWxlZFNwbGl0UGFuZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1Njcm9sbFN5bmM+XG4gICAgKTtcblxuICAgIGNvbnN0IGkxOG5WaXNpYmxlID0gY29sbGVjdGlvbkkxOG5FbmFibGVkICYmIHRoaXMuc3RhdGUuaTE4blZpc2libGU7XG4gICAgY29uc3QgcHJldmlld1Zpc2libGUgPSBwcmV2aWV3RW5hYmxlZCAmJiB0aGlzLnN0YXRlLnByZXZpZXdWaXNpYmxlO1xuICAgIGNvbnN0IHNjcm9sbFN5bmNWaXNpYmxlID0gaTE4blZpc2libGUgfHwgcHJldmlld1Zpc2libGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEVkaXRvckNvbnRhaW5lcj5cbiAgICAgICAgPEVkaXRvclRvb2xiYXJcbiAgICAgICAgICBpc1BlcnNpc3Rpbmc9e2VudHJ5LmdldCgnaXNQZXJzaXN0aW5nJyl9XG4gICAgICAgICAgaXNQdWJsaXNoaW5nPXtlbnRyeS5nZXQoJ2lzUHVibGlzaGluZycpfVxuICAgICAgICAgIGlzVXBkYXRpbmdTdGF0dXM9e2VudHJ5LmdldCgnaXNVcGRhdGluZ1N0YXR1cycpfVxuICAgICAgICAgIGlzRGVsZXRpbmc9e2VudHJ5LmdldCgnaXNEZWxldGluZycpfVxuICAgICAgICAgIG9uUGVyc2lzdD17dGhpcy5oYW5kbGVPblBlcnNpc3R9XG4gICAgICAgICAgb25QZXJzaXN0QW5kTmV3PXsoKSA9PiB0aGlzLmhhbmRsZU9uUGVyc2lzdCh7IGNyZWF0ZU5ldzogdHJ1ZSB9KX1cbiAgICAgICAgICBvblBlcnNpc3RBbmREdXBsaWNhdGU9eygpID0+IHRoaXMuaGFuZGxlT25QZXJzaXN0KHsgY3JlYXRlTmV3OiB0cnVlLCBkdXBsaWNhdGU6IHRydWUgfSl9XG4gICAgICAgICAgb25EZWxldGU9e29uRGVsZXRlfVxuICAgICAgICAgIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzPXtvbkRlbGV0ZVVucHVibGlzaGVkQ2hhbmdlc31cbiAgICAgICAgICBvbkNoYW5nZVN0YXR1cz17b25DaGFuZ2VTdGF0dXN9XG4gICAgICAgICAgc2hvd0RlbGV0ZT17c2hvd0RlbGV0ZX1cbiAgICAgICAgICBvblB1Ymxpc2g9e29uUHVibGlzaH1cbiAgICAgICAgICB1blB1Ymxpc2g9e3VuUHVibGlzaH1cbiAgICAgICAgICBvbkR1cGxpY2F0ZT17b25EdXBsaWNhdGV9XG4gICAgICAgICAgb25QdWJsaXNoQW5kTmV3PXsoKSA9PiB0aGlzLmhhbmRsZU9uUHVibGlzaCh7IGNyZWF0ZU5ldzogdHJ1ZSB9KX1cbiAgICAgICAgICBvblB1Ymxpc2hBbmREdXBsaWNhdGU9eygpID0+IHRoaXMuaGFuZGxlT25QdWJsaXNoKHsgY3JlYXRlTmV3OiB0cnVlLCBkdXBsaWNhdGU6IHRydWUgfSl9XG4gICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICBoYXNDaGFuZ2VkPXtoYXNDaGFuZ2VkfVxuICAgICAgICAgIGRpc3BsYXlVcmw9e2Rpc3BsYXlVcmx9XG4gICAgICAgICAgY29sbGVjdGlvbj17Y29sbGVjdGlvbn1cbiAgICAgICAgICBoYXNXb3JrZmxvdz17aGFzV29ya2Zsb3d9XG4gICAgICAgICAgdXNlT3BlbkF1dGhvcmluZz17dXNlT3BlbkF1dGhvcmluZ31cbiAgICAgICAgICBoYXNVbnB1Ymxpc2hlZENoYW5nZXM9e2hhc1VucHVibGlzaGVkQ2hhbmdlc31cbiAgICAgICAgICBpc05ld0VudHJ5PXtpc05ld0VudHJ5fVxuICAgICAgICAgIGlzTW9kaWZpY2F0aW9uPXtpc01vZGlmaWNhdGlvbn1cbiAgICAgICAgICBjdXJyZW50U3RhdHVzPXtjdXJyZW50U3RhdHVzfVxuICAgICAgICAgIG9uTG9nb3V0Q2xpY2s9e29uTG9nb3V0Q2xpY2t9XG4gICAgICAgICAgbG9hZERlcGxveVByZXZpZXc9e2xvYWREZXBsb3lQcmV2aWV3fVxuICAgICAgICAgIGRlcGxveVByZXZpZXc9e2RlcGxveVByZXZpZXd9XG4gICAgICAgICAgZWRpdG9yQmFja0xpbms9e2VkaXRvckJhY2tMaW5rfVxuICAgICAgICAvPlxuICAgICAgICA8RWRpdG9yIGtleT17ZHJhZnRLZXl9PlxuICAgICAgICAgIDxWaWV3Q29udHJvbHM+XG4gICAgICAgICAgICB7Y29sbGVjdGlvbkkxOG5FbmFibGVkICYmIChcbiAgICAgICAgICAgICAgPEVkaXRvclRvZ2dsZVxuICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtpMThuVmlzaWJsZX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVRvZ2dsZUkxOG59XG4gICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwicGFnZVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9e3QoJ2VkaXRvci5lZGl0b3JJbnRlcmZhY2UudG9nZ2xlSTE4bicpfVxuICAgICAgICAgICAgICAgIG1hcmdpblRvcD1cIjcwcHhcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtwcmV2aWV3RW5hYmxlZCAmJiAoXG4gICAgICAgICAgICAgIDxFZGl0b3JUb2dnbGVcbiAgICAgICAgICAgICAgICBpc0FjdGl2ZT17cHJldmlld1Zpc2libGV9XG4gICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVUb2dnbGVQcmV2aWV3fVxuICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImV5ZVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9e3QoJ2VkaXRvci5lZGl0b3JJbnRlcmZhY2UudG9nZ2xlUHJldmlldycpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtzY3JvbGxTeW5jVmlzaWJsZSAmJiAhY29sbGVjdGlvbi5nZXRJbihbJ2VkaXRvcicsICd2aXN1YWxFZGl0aW5nJ10pICYmIChcbiAgICAgICAgICAgICAgPEVkaXRvclRvZ2dsZVxuICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtzY3JvbGxTeW5jRW5hYmxlZH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVRvZ2dsZVNjcm9sbFN5bmN9XG4gICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwic2Nyb2xsXCJcbiAgICAgICAgICAgICAgICB0aXRsZT17dCgnZWRpdG9yLmVkaXRvckludGVyZmFjZS50b2dnbGVTY3JvbGxTeW5jJyl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvVmlld0NvbnRyb2xzPlxuICAgICAgICAgIDxFZGl0b3JDb250ZW50XG4gICAgICAgICAgICBpMThuVmlzaWJsZT17aTE4blZpc2libGV9XG4gICAgICAgICAgICBwcmV2aWV3VmlzaWJsZT17cHJldmlld1Zpc2libGV9XG4gICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgIGVkaXRvcldpdGhFZGl0b3I9e2VkaXRvcldpdGhFZGl0b3J9XG4gICAgICAgICAgICBlZGl0b3JXaXRoUHJldmlldz17ZWRpdG9yV2l0aFByZXZpZXd9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9FZGl0b3I+XG4gICAgICA8L0VkaXRvckNvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cbkVkaXRvckludGVyZmFjZS5wcm9wVHlwZXMgPSB7XG4gIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgZW50cnk6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgZmllbGRzOiBJbW11dGFibGVQcm9wVHlwZXMubGlzdC5pc1JlcXVpcmVkLFxuICBmaWVsZHNNZXRhRGF0YTogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICBmaWVsZHNFcnJvcnM6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uVmFsaWRhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uUGVyc2lzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2hvd0RlbGV0ZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgb25EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uRGVsZXRlVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvblB1Ymxpc2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHVuUHVibGlzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25EdXBsaWNhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uQ2hhbmdlU3RhdHVzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB1c2VyOiBQcm9wVHlwZXMub2JqZWN0LFxuICBoYXNDaGFuZ2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaGFzV29ya2Zsb3c6IFByb3BUeXBlcy5ib29sLFxuICB1c2VPcGVuQXV0aG9yaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgaGFzVW5wdWJsaXNoZWRDaGFuZ2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgaXNOZXdFbnRyeTogUHJvcFR5cGVzLmJvb2wsXG4gIGlzTW9kaWZpY2F0aW9uOiBQcm9wVHlwZXMuYm9vbCxcbiAgY3VycmVudFN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgb25Mb2dvdXRDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZGVwbG95UHJldmlldzogUHJvcFR5cGVzLm9iamVjdCxcbiAgbG9hZERlcGxveVByZXZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGRyYWZ0S2V5OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBFZGl0b3JJbnRlcmZhY2U7XG4iXX0= */",
92
85
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
93
86
  });
94
87
  const ViewControls = /*#__PURE__*/_styled("div", {
@@ -113,85 +106,81 @@ function EditorContent({
113
106
  function isPreviewEnabled(collection, entry) {
114
107
  if (collection.get('type') === FILES) {
115
108
  const file = getFileFromSlug(collection, entry.get('slug'));
116
- const previewEnabled = file === null || file === void 0 ? void 0 : file.getIn(['editor', 'preview']);
109
+ const previewEnabled = file?.getIn(['editor', 'preview']);
117
110
  if (previewEnabled != null) return previewEnabled;
118
111
  }
119
112
  return collection.getIn(['editor', 'preview'], true);
120
113
  }
121
114
  class EditorInterface extends Component {
122
- constructor(...args) {
123
- super(...args);
124
- _defineProperty(this, "state", {
125
- showEventBlocker: false,
126
- previewVisible: localStorage.getItem(PREVIEW_VISIBLE) !== 'false',
127
- scrollSyncEnabled: localStorage.getItem(SCROLL_SYNC_ENABLED) !== 'false',
128
- i18nVisible: localStorage.getItem(I18N_VISIBLE) !== 'false'
115
+ state = {
116
+ showEventBlocker: false,
117
+ previewVisible: localStorage.getItem(PREVIEW_VISIBLE) !== 'false',
118
+ scrollSyncEnabled: localStorage.getItem(SCROLL_SYNC_ENABLED) !== 'false',
119
+ i18nVisible: localStorage.getItem(I18N_VISIBLE) !== 'false'
120
+ };
121
+ handleFieldClick = path => {
122
+ this.controlPaneRef?.focus(path);
123
+ };
124
+ handleSplitPaneDragStart = () => {
125
+ this.setState({
126
+ showEventBlocker: true
129
127
  });
130
- _defineProperty(this, "handleFieldClick", path => {
131
- var _this$controlPaneRef;
132
- (_this$controlPaneRef = this.controlPaneRef) === null || _this$controlPaneRef === void 0 ? void 0 : _this$controlPaneRef.focus(path);
128
+ };
129
+ handleSplitPaneDragFinished = () => {
130
+ this.setState({
131
+ showEventBlocker: false
133
132
  });
134
- _defineProperty(this, "handleSplitPaneDragStart", () => {
135
- this.setState({
136
- showEventBlocker: true
137
- });
138
- });
139
- _defineProperty(this, "handleSplitPaneDragFinished", () => {
140
- this.setState({
141
- showEventBlocker: false
142
- });
143
- });
144
- _defineProperty(this, "handleOnPersist", async (opts = {}) => {
145
- const {
146
- createNew = false,
147
- duplicate = false
148
- } = opts;
149
- await this.controlPaneRef.switchToDefaultLocale();
150
- this.controlPaneRef.validate();
151
- this.props.onPersist({
152
- createNew,
153
- duplicate
154
- });
133
+ };
134
+ handleOnPersist = async (opts = {}) => {
135
+ const {
136
+ createNew = false,
137
+ duplicate = false
138
+ } = opts;
139
+ await this.controlPaneRef.switchToDefaultLocale();
140
+ this.controlPaneRef.validate();
141
+ this.props.onPersist({
142
+ createNew,
143
+ duplicate
155
144
  });
156
- _defineProperty(this, "handleOnPublish", async (opts = {}) => {
157
- const {
158
- createNew = false,
159
- duplicate = false
160
- } = opts;
161
- await this.controlPaneRef.switchToDefaultLocale();
162
- this.controlPaneRef.validate();
163
- this.props.onPublish({
164
- createNew,
165
- duplicate
166
- });
145
+ };
146
+ handleOnPublish = async (opts = {}) => {
147
+ const {
148
+ createNew = false,
149
+ duplicate = false
150
+ } = opts;
151
+ await this.controlPaneRef.switchToDefaultLocale();
152
+ this.controlPaneRef.validate();
153
+ this.props.onPublish({
154
+ createNew,
155
+ duplicate
167
156
  });
168
- _defineProperty(this, "handleTogglePreview", () => {
169
- const newPreviewVisible = !this.state.previewVisible;
170
- this.setState({
171
- previewVisible: newPreviewVisible
172
- });
173
- localStorage.setItem(PREVIEW_VISIBLE, newPreviewVisible);
157
+ };
158
+ handleTogglePreview = () => {
159
+ const newPreviewVisible = !this.state.previewVisible;
160
+ this.setState({
161
+ previewVisible: newPreviewVisible
174
162
  });
175
- _defineProperty(this, "handleToggleScrollSync", () => {
176
- const newScrollSyncEnabled = !this.state.scrollSyncEnabled;
177
- this.setState({
178
- scrollSyncEnabled: newScrollSyncEnabled
179
- });
180
- localStorage.setItem(SCROLL_SYNC_ENABLED, newScrollSyncEnabled);
163
+ localStorage.setItem(PREVIEW_VISIBLE, newPreviewVisible);
164
+ };
165
+ handleToggleScrollSync = () => {
166
+ const newScrollSyncEnabled = !this.state.scrollSyncEnabled;
167
+ this.setState({
168
+ scrollSyncEnabled: newScrollSyncEnabled
181
169
  });
182
- _defineProperty(this, "handleToggleI18n", () => {
183
- const newI18nVisible = !this.state.i18nVisible;
184
- this.setState({
185
- i18nVisible: newI18nVisible
186
- });
187
- localStorage.setItem(I18N_VISIBLE, newI18nVisible);
170
+ localStorage.setItem(SCROLL_SYNC_ENABLED, newScrollSyncEnabled);
171
+ };
172
+ handleToggleI18n = () => {
173
+ const newI18nVisible = !this.state.i18nVisible;
174
+ this.setState({
175
+ i18nVisible: newI18nVisible
188
176
  });
189
- _defineProperty(this, "handleLeftPanelLocaleChange", locale => {
190
- this.setState({
191
- leftPanelLocale: locale
192
- });
177
+ localStorage.setItem(I18N_VISIBLE, newI18nVisible);
178
+ };
179
+ handleLeftPanelLocaleChange = locale => {
180
+ this.setState({
181
+ leftPanelLocale: locale
193
182
  });
194
- }
183
+ };
195
184
  render() {
196
185
  const {
197
186
  collection,
@@ -243,7 +232,7 @@ class EditorInterface extends Component {
243
232
  onChange,
244
233
  onValidate
245
234
  };
246
- const leftPanelLocale = this.state.leftPanelLocale || (locales === null || locales === void 0 ? void 0 : locales[0]);
235
+ const leftPanelLocale = this.state.leftPanelLocale || locales?.[0];
247
236
  const editor = ___EmotionJSX(ControlPaneContainer, {
248
237
  overFlow: true,
249
238
  blockEntry: showEventBlocker
@@ -257,7 +246,7 @@ class EditorInterface extends Component {
257
246
  overFlow: !this.state.scrollSyncEnabled,
258
247
  blockEntry: showEventBlocker
259
248
  }, ___EmotionJSX(EditorControlPane, _extends({}, editorProps, {
260
- locale: locales === null || locales === void 0 ? void 0 : locales[1],
249
+ locale: locales?.[1],
261
250
  t: t
262
251
  })));
263
252
  const previewEntry = collectionI18nEnabled ? getPreviewEntry(entry, leftPanelLocale, defaultLocale) : entry;
@@ -15,8 +15,7 @@ const PreviewContainer = /*#__PURE__*/_styled("div", {
15
15
  styles: "font-family:Roboto,'Helvetica Neue',HelveticaNeue,Helvetica,Arial,sans-serif"
16
16
  } : {
17
17
  name: "9bq7s9",
18
- styles: "font-family:Roboto,'Helvetica Neue',HelveticaNeue,Helvetica,Arial,sans-serif",
19
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JQcmV2aWV3UGFuZS9FZGl0b3JQcmV2aWV3LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNtQyIsImZpbGUiOiIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9FZGl0b3IvRWRpdG9yUHJldmlld1BhbmUvRWRpdG9yUHJldmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEltbXV0YWJsZVByb3BUeXBlcyBmcm9tICdyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuZnVuY3Rpb24gaXNWaXNpYmxlKGZpZWxkKSB7XG4gIHJldHVybiBmaWVsZC5nZXQoJ3dpZGdldCcpICE9PSAnaGlkZGVuJztcbn1cblxuY29uc3QgUHJldmlld0NvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYU5ldWUsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG5gO1xuXG4vKipcbiAqIFVzZSBhIHN0YXRlZnVsIGNvbXBvbmVudCBzbyB0aGF0IGNoaWxkIGNvbXBvbmVudHMgY2FuIGVmZmVjdGl2ZWx5IHV0aWxpemVcbiAqIGBzaG91bGRDb21wb25lbnRVcGRhdGVgLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcmV2aWV3IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY29sbGVjdGlvbiwgZmllbGRzLCB3aWRnZXRGb3IgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFjb2xsZWN0aW9uIHx8ICFmaWVsZHMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdDb250YWluZXI+XG4gICAgICAgIHtmaWVsZHMuZmlsdGVyKGlzVmlzaWJsZSkubWFwKGZpZWxkID0+IChcbiAgICAgICAgICA8ZGl2IGtleT17ZmllbGQuZ2V0KCduYW1lJyl9Pnt3aWRnZXRGb3IoZmllbGQuZ2V0KCduYW1lJykpfTwvZGl2PlxuICAgICAgICApKX1cbiAgICAgIDwvUHJldmlld0NvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cblByZXZpZXcucHJvcFR5cGVzID0ge1xuICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gIGVudHJ5OiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gIGZpZWxkczogSW1tdXRhYmxlUHJvcFR5cGVzLmxpc3QuaXNSZXF1aXJlZCxcbiAgZ2V0QXNzZXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHdpZGdldEZvcjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn07XG4iXX0= */",
18
+ styles: "font-family:Roboto,'Helvetica Neue',HelveticaNeue,Helvetica,Arial,sans-serif/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JQcmV2aWV3UGFuZS9FZGl0b3JQcmV2aWV3LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNtQyIsImZpbGUiOiIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9FZGl0b3IvRWRpdG9yUHJldmlld1BhbmUvRWRpdG9yUHJldmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEltbXV0YWJsZVByb3BUeXBlcyBmcm9tICdyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuZnVuY3Rpb24gaXNWaXNpYmxlKGZpZWxkKSB7XG4gIHJldHVybiBmaWVsZC5nZXQoJ3dpZGdldCcpICE9PSAnaGlkZGVuJztcbn1cblxuY29uc3QgUHJldmlld0NvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYU5ldWUsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG5gO1xuXG4vKipcbiAqIFVzZSBhIHN0YXRlZnVsIGNvbXBvbmVudCBzbyB0aGF0IGNoaWxkIGNvbXBvbmVudHMgY2FuIGVmZmVjdGl2ZWx5IHV0aWxpemVcbiAqIGBzaG91bGRDb21wb25lbnRVcGRhdGVgLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcmV2aWV3IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY29sbGVjdGlvbiwgZmllbGRzLCB3aWRnZXRGb3IgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFjb2xsZWN0aW9uIHx8ICFmaWVsZHMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdDb250YWluZXI+XG4gICAgICAgIHtmaWVsZHMuZmlsdGVyKGlzVmlzaWJsZSkubWFwKGZpZWxkID0+IChcbiAgICAgICAgICA8ZGl2IGtleT17ZmllbGQuZ2V0KCduYW1lJyl9Pnt3aWRnZXRGb3IoZmllbGQuZ2V0KCduYW1lJykpfTwvZGl2PlxuICAgICAgICApKX1cbiAgICAgIDwvUHJldmlld0NvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cblByZXZpZXcucHJvcFR5cGVzID0ge1xuICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gIGVudHJ5OiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gIGZpZWxkczogSW1tdXRhYmxlUHJvcFR5cGVzLmxpc3QuaXNSZXF1aXJlZCxcbiAgZ2V0QXNzZXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHdpZGdldEZvcjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn07XG4iXX0= */",
20
19
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
21
20
  });
22
21