@workflow/web-shared 5.0.0-beta.7 → 5.0.0-beta.9

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 (211) hide show
  1. package/dist/components/error-boundary.js +1 -1
  2. package/dist/components/event-list-view.d.ts +12 -0
  3. package/dist/components/event-list-view.d.ts.map +1 -1
  4. package/dist/components/event-list-view.js +26 -13
  5. package/dist/components/hook-actions.js +1 -1
  6. package/dist/components/index.d.ts +1 -0
  7. package/dist/components/index.d.ts.map +1 -1
  8. package/dist/components/index.js +2 -1
  9. package/dist/components/new-trace-viewer/components/copy-button.js +2 -2
  10. package/dist/components/new-trace-viewer/components/event-list.d.ts +3 -1
  11. package/dist/components/new-trace-viewer/components/event-list.d.ts.map +1 -1
  12. package/dist/components/new-trace-viewer/components/event-list.js +8 -7
  13. package/dist/components/new-trace-viewer/components/middle-truncate/copy-selection.js +1 -1
  14. package/dist/components/new-trace-viewer/components/middle-truncate/middle-truncate.js +1 -1
  15. package/dist/components/new-trace-viewer/components/middle-truncate/truncate.js +1 -1
  16. package/dist/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.js +1 -1
  17. package/dist/components/new-trace-viewer/components/split-pane.js +1 -1
  18. package/dist/components/new-trace-viewer/components/timeline.d.ts +4 -1
  19. package/dist/components/new-trace-viewer/components/timeline.d.ts.map +1 -1
  20. package/dist/components/new-trace-viewer/components/timeline.js +6 -5
  21. package/dist/components/new-trace-viewer/context.js +1 -1
  22. package/dist/components/new-trace-viewer/detail-panel.d.ts.map +1 -1
  23. package/dist/components/new-trace-viewer/detail-panel.js +3 -2
  24. package/dist/components/new-trace-viewer/icons.js +1 -1
  25. package/dist/components/new-trace-viewer/search.d.ts +19 -0
  26. package/dist/components/new-trace-viewer/search.d.ts.map +1 -0
  27. package/dist/components/new-trace-viewer/search.js +134 -0
  28. package/dist/components/new-trace-viewer/trace-viewer.d.ts.map +1 -1
  29. package/dist/components/new-trace-viewer/trace-viewer.js +62 -35
  30. package/dist/components/new-trace-viewer/types.js +1 -1
  31. package/dist/components/new-trace-viewer/util/constants.js +1 -1
  32. package/dist/components/new-trace-viewer/utils.js +1 -1
  33. package/dist/components/run-trace-view.js +1 -1
  34. package/dist/components/sidebar/attribute-panel.d.ts.map +1 -1
  35. package/dist/components/sidebar/attribute-panel.js +99 -73
  36. package/dist/components/sidebar/conversation-view.js +1 -1
  37. package/dist/components/sidebar/copyable-data-block.d.ts +1 -0
  38. package/dist/components/sidebar/copyable-data-block.d.ts.map +1 -1
  39. package/dist/components/sidebar/copyable-data-block.js +16 -15
  40. package/dist/components/sidebar/detail-card.d.ts +5 -6
  41. package/dist/components/sidebar/detail-card.d.ts.map +1 -1
  42. package/dist/components/sidebar/detail-card.js +32 -16
  43. package/dist/components/sidebar/entity-detail-panel.d.ts.map +1 -1
  44. package/dist/components/sidebar/entity-detail-panel.js +6 -3
  45. package/dist/components/sidebar/events-list.d.ts.map +1 -1
  46. package/dist/components/sidebar/events-list.js +21 -15
  47. package/dist/components/sidebar/resolve-hook-modal.js +1 -1
  48. package/dist/components/sidebar/sidebar-data-context.js +1 -1
  49. package/dist/components/stream-viewer.js +1 -1
  50. package/dist/components/trace-viewer/components/map.js +1 -1
  51. package/dist/components/trace-viewer/components/markers.js +1 -1
  52. package/dist/components/trace-viewer/components/node.js +1 -1
  53. package/dist/components/trace-viewer/components/search-input.js +1 -1
  54. package/dist/components/trace-viewer/components/search.js +1 -1
  55. package/dist/components/trace-viewer/components/span-content.js +1 -1
  56. package/dist/components/trace-viewer/components/span-detail-panel.js +1 -1
  57. package/dist/components/trace-viewer/components/span-segments.js +1 -1
  58. package/dist/components/trace-viewer/components/span-strategies.js +1 -1
  59. package/dist/components/trace-viewer/components/ui.js +1 -1
  60. package/dist/components/trace-viewer/components/zoom-button.js +1 -1
  61. package/dist/components/trace-viewer/components/zoom-icons.js +1 -1
  62. package/dist/components/trace-viewer/context.js +1 -1
  63. package/dist/components/trace-viewer/index.js +1 -1
  64. package/dist/components/trace-viewer/trace-viewer.js +1 -1
  65. package/dist/components/trace-viewer/types.js +1 -1
  66. package/dist/components/trace-viewer/util/constants.js +1 -1
  67. package/dist/components/trace-viewer/util/scrollbar-width.js +1 -1
  68. package/dist/components/trace-viewer/util/timing.js +1 -1
  69. package/dist/components/trace-viewer/util/tree.js +1 -1
  70. package/dist/components/trace-viewer/util/use-immediate-style.js +1 -1
  71. package/dist/components/trace-viewer/util/use-streaming-spans.js +1 -1
  72. package/dist/components/trace-viewer/util/use-trackpad-zoom.js +1 -1
  73. package/dist/components/trace-viewer/worker.js +1 -1
  74. package/dist/components/trace-viewer-new.js +1 -1
  75. package/dist/components/ui/alert.js +1 -1
  76. package/dist/components/ui/button.d.ts +10 -0
  77. package/dist/components/ui/button.d.ts.map +1 -0
  78. package/dist/components/ui/button.js +46 -0
  79. package/dist/components/ui/card.js +1 -1
  80. package/dist/components/ui/data-inspector.d.ts +1 -0
  81. package/dist/components/ui/data-inspector.d.ts.map +1 -1
  82. package/dist/components/ui/data-inspector.js +4 -9
  83. package/dist/components/ui/decrypt-button.js +1 -1
  84. package/dist/components/ui/error-card.js +1 -1
  85. package/dist/components/ui/error-stack-block.d.ts.map +1 -1
  86. package/dist/components/ui/error-stack-block.js +4 -18
  87. package/dist/components/ui/icon-button.d.ts +13 -0
  88. package/dist/components/ui/icon-button.d.ts.map +1 -0
  89. package/dist/components/ui/icon-button.js +29 -0
  90. package/dist/components/ui/inspector-theme.js +1 -1
  91. package/dist/components/ui/load-more-button.js +1 -1
  92. package/dist/components/ui/menu-dropdown.js +1 -1
  93. package/dist/components/ui/skeleton.js +1 -1
  94. package/dist/components/ui/spinner.js +1 -1
  95. package/dist/components/ui/timestamp-tooltip.js +1 -1
  96. package/dist/components/workflow-trace-view.js +1 -1
  97. package/dist/components/workflow-traces/event-colors.js +1 -1
  98. package/dist/components/workflow-traces/trace-colors.js +1 -1
  99. package/dist/components/workflow-traces/trace-span-construction.js +1 -1
  100. package/dist/components/workflow-traces/trace-time-utils.js +1 -1
  101. package/dist/hooks/use-dark-mode.js +1 -1
  102. package/dist/hooks/use-reduced-motion.js +1 -1
  103. package/dist/index.js +1 -1
  104. package/dist/lib/event-analysis.js +1 -1
  105. package/dist/lib/event-materialization.js +1 -1
  106. package/dist/lib/hydration.js +1 -1
  107. package/dist/lib/stream-display.js +1 -1
  108. package/dist/lib/toast.js +1 -1
  109. package/dist/lib/trace-builder.js +1 -1
  110. package/dist/lib/utils.js +1 -1
  111. package/dist/styles.css +5 -0
  112. package/package.json +5 -5
  113. package/src/components/event-list-view.tsx +29 -13
  114. package/src/components/index.ts +1 -0
  115. package/src/components/new-trace-viewer/components/copy-button.tsx +1 -1
  116. package/src/components/new-trace-viewer/components/event-list.tsx +17 -6
  117. package/src/components/new-trace-viewer/components/timeline.tsx +11 -2
  118. package/src/components/new-trace-viewer/detail-panel.tsx +3 -6
  119. package/src/components/new-trace-viewer/search.ts +178 -0
  120. package/src/components/new-trace-viewer/trace-viewer.tsx +123 -89
  121. package/src/components/sidebar/attribute-panel.tsx +212 -235
  122. package/src/components/sidebar/copyable-data-block.tsx +49 -27
  123. package/src/components/sidebar/detail-card.tsx +119 -41
  124. package/src/components/sidebar/entity-detail-panel.tsx +28 -28
  125. package/src/components/sidebar/events-list.tsx +51 -79
  126. package/src/components/ui/button.tsx +68 -0
  127. package/src/components/ui/data-inspector.tsx +9 -18
  128. package/src/components/ui/error-stack-block.tsx +7 -26
  129. package/src/components/ui/icon-button.tsx +57 -0
  130. package/src/styles.css +5 -0
  131. package/dist/components/error-boundary.js.map +0 -1
  132. package/dist/components/event-list-view.js.map +0 -1
  133. package/dist/components/hook-actions.js.map +0 -1
  134. package/dist/components/index.js.map +0 -1
  135. package/dist/components/new-trace-viewer/components/copy-button.js.map +0 -1
  136. package/dist/components/new-trace-viewer/components/event-list.js.map +0 -1
  137. package/dist/components/new-trace-viewer/components/middle-truncate/copy-selection.js.map +0 -1
  138. package/dist/components/new-trace-viewer/components/middle-truncate/middle-truncate.js.map +0 -1
  139. package/dist/components/new-trace-viewer/components/middle-truncate/truncate.js.map +0 -1
  140. package/dist/components/new-trace-viewer/components/middle-truncate/use-middle-truncate.js.map +0 -1
  141. package/dist/components/new-trace-viewer/components/split-pane.js.map +0 -1
  142. package/dist/components/new-trace-viewer/components/timeline.js.map +0 -1
  143. package/dist/components/new-trace-viewer/context.js.map +0 -1
  144. package/dist/components/new-trace-viewer/detail-panel.js.map +0 -1
  145. package/dist/components/new-trace-viewer/icons.js.map +0 -1
  146. package/dist/components/new-trace-viewer/trace-viewer.js.map +0 -1
  147. package/dist/components/new-trace-viewer/types.js.map +0 -1
  148. package/dist/components/new-trace-viewer/util/constants.js.map +0 -1
  149. package/dist/components/new-trace-viewer/utils.js.map +0 -1
  150. package/dist/components/run-trace-view.js.map +0 -1
  151. package/dist/components/sidebar/attribute-panel.js.map +0 -1
  152. package/dist/components/sidebar/conversation-view.js.map +0 -1
  153. package/dist/components/sidebar/copyable-data-block.js.map +0 -1
  154. package/dist/components/sidebar/detail-card.js.map +0 -1
  155. package/dist/components/sidebar/entity-detail-panel.js.map +0 -1
  156. package/dist/components/sidebar/events-list.js.map +0 -1
  157. package/dist/components/sidebar/resolve-hook-modal.js.map +0 -1
  158. package/dist/components/sidebar/sidebar-data-context.js.map +0 -1
  159. package/dist/components/stream-viewer.js.map +0 -1
  160. package/dist/components/trace-viewer/components/map.js.map +0 -1
  161. package/dist/components/trace-viewer/components/markers.js.map +0 -1
  162. package/dist/components/trace-viewer/components/node.js.map +0 -1
  163. package/dist/components/trace-viewer/components/search-input.js.map +0 -1
  164. package/dist/components/trace-viewer/components/search.js.map +0 -1
  165. package/dist/components/trace-viewer/components/span-content.js.map +0 -1
  166. package/dist/components/trace-viewer/components/span-detail-panel.js.map +0 -1
  167. package/dist/components/trace-viewer/components/span-segments.js.map +0 -1
  168. package/dist/components/trace-viewer/components/span-strategies.js.map +0 -1
  169. package/dist/components/trace-viewer/components/ui.js.map +0 -1
  170. package/dist/components/trace-viewer/components/zoom-button.js.map +0 -1
  171. package/dist/components/trace-viewer/components/zoom-icons.js.map +0 -1
  172. package/dist/components/trace-viewer/context.js.map +0 -1
  173. package/dist/components/trace-viewer/index.js.map +0 -1
  174. package/dist/components/trace-viewer/trace-viewer.js.map +0 -1
  175. package/dist/components/trace-viewer/types.js.map +0 -1
  176. package/dist/components/trace-viewer/util/constants.js.map +0 -1
  177. package/dist/components/trace-viewer/util/scrollbar-width.js.map +0 -1
  178. package/dist/components/trace-viewer/util/timing.js.map +0 -1
  179. package/dist/components/trace-viewer/util/tree.js.map +0 -1
  180. package/dist/components/trace-viewer/util/use-immediate-style.js.map +0 -1
  181. package/dist/components/trace-viewer/util/use-streaming-spans.js.map +0 -1
  182. package/dist/components/trace-viewer/util/use-trackpad-zoom.js.map +0 -1
  183. package/dist/components/trace-viewer/worker.js.map +0 -1
  184. package/dist/components/trace-viewer-new.js.map +0 -1
  185. package/dist/components/ui/alert.js.map +0 -1
  186. package/dist/components/ui/card.js.map +0 -1
  187. package/dist/components/ui/data-inspector.js.map +0 -1
  188. package/dist/components/ui/decrypt-button.js.map +0 -1
  189. package/dist/components/ui/error-card.js.map +0 -1
  190. package/dist/components/ui/error-stack-block.js.map +0 -1
  191. package/dist/components/ui/inspector-theme.js.map +0 -1
  192. package/dist/components/ui/load-more-button.js.map +0 -1
  193. package/dist/components/ui/menu-dropdown.js.map +0 -1
  194. package/dist/components/ui/skeleton.js.map +0 -1
  195. package/dist/components/ui/spinner.js.map +0 -1
  196. package/dist/components/ui/timestamp-tooltip.js.map +0 -1
  197. package/dist/components/workflow-trace-view.js.map +0 -1
  198. package/dist/components/workflow-traces/event-colors.js.map +0 -1
  199. package/dist/components/workflow-traces/trace-colors.js.map +0 -1
  200. package/dist/components/workflow-traces/trace-span-construction.js.map +0 -1
  201. package/dist/components/workflow-traces/trace-time-utils.js.map +0 -1
  202. package/dist/hooks/use-dark-mode.js.map +0 -1
  203. package/dist/hooks/use-reduced-motion.js.map +0 -1
  204. package/dist/index.js.map +0 -1
  205. package/dist/lib/event-analysis.js.map +0 -1
  206. package/dist/lib/event-materialization.js.map +0 -1
  207. package/dist/lib/hydration.js.map +0 -1
  208. package/dist/lib/stream-display.js.map +0 -1
  209. package/dist/lib/toast.js.map +0 -1
  210. package/dist/lib/trace-builder.js.map +0 -1
  211. package/dist/lib/utils.js.map +0 -1
@@ -692,4 +692,4 @@ export const WorkflowTraceViewer = ({ run, events, isLoading, error, spanDetailD
692
692
  e.currentTarget.style.background = 'transparent';
693
693
  }, children: _jsx(X, { size: 16 }) }) })] }), _jsx("div", { className: "flex-1 overflow-y-auto", children: _jsx(ErrorBoundary, { title: "Failed to load entity details", children: _jsx(EntityDetailPanel, { run: run, onStreamClick: onStreamClick, onRunClick: onRunClick, spanDetailData: spanDetailData ?? null, spanDetailError: spanDetailError, spanDetailLoading: spanDetailLoading, onSpanSelect: handleSpanSelect, onWakeUpSleep: onWakeUpSleep, onLoadEventData: onLoadEventData, onResolveHook: onResolveHook, encryptionKey: encryptionKey, onDecrypt: onDecrypt, isDecrypting: isDecrypting, selectedSpan: selectedSpan }) }) })] }))] }));
694
694
  };
695
- //# sourceMappingURL=workflow-trace-view.js.map
695
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctdHJhY2Utdmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3dvcmtmbG93LXRyYWNlLXZpZXcudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7QUFFYixPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFOUUsT0FBTyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsS0FBSyxFQUNMLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksRUFDSixDQUFDLEVBQ0QsT0FBTyxHQUNSLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsVUFBVSxFQUFzQixNQUFNLHNCQUFzQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsaUJBQWlCLEdBR2xCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3ZDLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsMkJBQTJCLEdBQzVCLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEM7Ozs7R0FJRztB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VUFBVSxFQUFFLGtCQUFrQjtxQ0FDL0IsRUFDRCxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTt3Q0FDbEIsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLDBCQUEwQixDQUFDO29DQUNoRSxDQUFDLEVBQ0QsWUFBWSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0NBQ2xCLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUM7b0NBQ25ELENBQUMsWUFFRCxLQUFDLENBQUMsSUFBQyxJQUFJLEVBQUUsRUFBRSxHQUFJLEdBQ1IsR0FDTCxJQUNGLEVBRU4sY0FBSyxTQUFTLEVBQUMsd0JBQXdCLFlBQ3JDLEtBQUMsYUFBYSxJQUFDLEtBQUssRUFBQywrQkFBK0IsWUFDbEQsS0FBQyxpQkFBaUIsSUFDaEIsR0FBRyxFQUFFLEdBQUcsRUFDUixhQUFhLEVBQUUsYUFBYSxFQUM1QixVQUFVLEVBQUUsVUFBVSxFQUN0QixjQUFjLEVBQUUsY0FBYyxJQUFJLElBQUksRUFDdEMsZUFBZSxFQUFFLGVBQWUsRUFDaEMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQ3BDLFlBQVksRUFBRSxnQkFBZ0IsRUFDOUIsYUFBYSxFQUFFLGFBQWEsRUFDNUIsZUFBZSxFQUFFLGVBQWUsRUFDaEMsYUFBYSxFQUFFLGFBQWEsRUFDNUIsYUFBYSxFQUFFLGFBQWEsRUFDNUIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsWUFBWSxFQUFFLFlBQVksRUFDMUIsWUFBWSxFQUFFLFlBQVksR0FDMUIsR0FDWSxHQUNaLElBQ0YsQ0FDUCxJQUNHLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHsgcGFyc2VTdGVwTmFtZSwgcGFyc2VXb3JrZmxvd05hbWUgfSBmcm9tICdAd29ya2Zsb3cvdXRpbHMvcGFyc2UtbmFtZSc7XG5pbXBvcnQgdHlwZSB7IEV2ZW50LCBIb29rLCBTdGVwLCBXb3JrZmxvd1J1biB9IGZyb20gJ0B3b3JrZmxvdy93b3JsZCc7XG5pbXBvcnQge1xuICBDaGV2cm9uRG93bixcbiAgQ2hldnJvblVwLFxuICBDbG9jayxcbiAgQ29weSxcbiAgSW5mbyxcbiAgU2VuZCxcbiAgVHlwZSxcbiAgWCxcbiAgWENpcmNsZSxcbn0gZnJvbSAnbHVjaWRlLXJlYWN0JztcbmltcG9ydCB0eXBlIHsgTW91c2VFdmVudCBhcyBSZWFjdE1vdXNlRXZlbnQsIFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgdXNlVG9hc3QgfSBmcm9tICcuLi9saWIvdG9hc3QnO1xuaW1wb3J0IHsgYnVpbGRUcmFjZSwgdHlwZSBUcmFjZVdpdGhNZXRhIH0gZnJvbSAnLi4vbGliL3RyYWNlLWJ1aWxkZXInO1xuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeSB9IGZyb20gJy4vZXJyb3ItYm91bmRhcnknO1xuaW1wb3J0IHtcbiAgRW50aXR5RGV0YWlsUGFuZWwsXG4gIHR5cGUgU2VsZWN0ZWRTcGFuSW5mbyxcbiAgdHlwZSBTcGFuU2VsZWN0aW9uSW5mbyxcbn0gZnJvbSAnLi9zaWRlYmFyL2VudGl0eS1kZXRhaWwtcGFuZWwnO1xuaW1wb3J0IHsgUmVzb2x2ZUhvb2tNb2RhbCB9IGZyb20gJy4vc2lkZWJhci9yZXNvbHZlLWhvb2stbW9kYWwnO1xuaW1wb3J0IHtcbiAgVHJhY2VWaWV3ZXJDb250ZXh0UHJvdmlkZXIsXG4gIFRyYWNlVmlld2VyVGltZWxpbmUsXG4gIHVzZVRyYWNlVmlld2VyLFxufSBmcm9tICcuL3RyYWNlLXZpZXdlcic7XG5pbXBvcnQgdHlwZSB7IFNwYW4gfSBmcm9tICcuL3RyYWNlLXZpZXdlci90eXBlcyc7XG5pbXBvcnQgeyBTa2VsZXRvbiB9IGZyb20gJy4vdWkvc2tlbGV0b24nO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJy4vdWkvc3Bpbm5lcic7XG5pbXBvcnQge1xuICBnZXRDdXN0b21TcGFuQ2xhc3NOYW1lLFxuICBnZXRDdXN0b21TcGFuRXZlbnRDbGFzc05hbWUsXG59IGZyb20gJy4vd29ya2Zsb3ctdHJhY2VzL3RyYWNlLWNvbG9ycyc7XG5cbi8qKlxuICogV2hpbGUgYSBydW4gaXMgbGl2ZSwgY29udGludW91c2x5IGdyb3cgcm9vdC5kdXJhdGlvbiBhbmQgcmVzY2FsZSBzbyB0aGVcbiAqIHRyYWNlIGFsd2F5cyBmaXRzIHdpdGhpbiB0aGUgdmlld3BvcnQuIEluZGl2aWR1YWwgc3BhbiB3aWR0aHMgYXJlIGdyb3duXG4gKiBieSBlYWNoIFNwYW5Db21wb25lbnQncyBvd24gdXNlRWZmZWN0IChzZWUgbm9kZS50c3gpLlxuICovXG5mdW5jdGlvbiB1c2VMaXZlVGljayhpc0xpdmU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgY29uc3QgeyBzdGF0ZSwgZGlzcGF0Y2ggfSA9IHVzZVRyYWNlVmlld2VyKCk7XG4gIGNvbnN0IHN0YXRlUmVmID0gdXNlUmVmKHN0YXRlKTtcbiAgc3RhdGVSZWYuY3VycmVudCA9IHN0YXRlO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc0xpdmUpIHJldHVybjtcblxuICAgIC8vIEdyb3cgcm9vdC5kdXJhdGlvbiBvbiBldmVyeSBmcmFtZSBzbyBzcGFuIHJBRnMgc2VlIHRoZSBsYXRlc3QgdGltZVxuICAgIGxldCByYWZJZCA9IDA7XG4gICAgY29uc3QgdGljayA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IHsgcm9vdCB9ID0gc3RhdGVSZWYuY3VycmVudDtcbiAgICAgIGlmIChyb290LnN0YXJ0VGltZSkge1xuICAgICAgICBjb25zdCBub3dNcyA9IERhdGUubm93KCk7XG4gICAgICAgIGlmIChub3dNcyA+IHJvb3QuZW5kVGltZSkge1xuICAgICAgICAgIHJvb3QuZW5kVGltZSA9IG5vd01zO1xuICAgICAgICAgIHJvb3QuZHVyYXRpb24gPSByb290LmVuZFRpbWUgLSByb290LnN0YXJ0VGltZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmFmSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljayk7XG4gICAgfTtcbiAgICByYWZJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aWNrKTtcblxuICAgIC8vIFJlLXNjYWxlIHNtb290aGx5IHNvIHRoZSB0cmFjZSBmaXRzIHRoZSB2aWV3cG9ydCBhcyBpdCBncm93cy5cbiAgICAvLyBXZSBkaXNwYXRjaCBkZXRlY3RCYXNlU2NhbGUgb25seSB3aGVuIHRoZSBjb21wdXRlZCBiYXNlU2NhbGUgaGFzXG4gICAgLy8gY2hhbmdlZCBlbm91Z2ggdG8gbWF0dGVyIHZpc3VhbGx5ICg+MC4xJSBzaGlmdCksIGF2b2lkaW5nXG4gICAgLy8gdW5uZWNlc3NhcnkgUmVhY3QgcmUtcmVuZGVycyB3aGlsZSBrZWVwaW5nIHRoaW5ncyBzbW9vdGguXG4gICAgbGV0IHNjYWxlUmFmSWQgPSAwO1xuICAgIGxldCBsYXN0QmFzZVNjYWxlID0gMDtcbiAgICBjb25zdCBzY2FsZVRpY2sgPSAoKTogdm9pZCA9PiB7XG4gICAgICBjb25zdCBzID0gc3RhdGVSZWYuY3VycmVudDtcbiAgICAgIGlmIChzLnJvb3QuZHVyYXRpb24gPiAwKSB7XG4gICAgICAgIGNvbnN0IG5ld0Jhc2VTY2FsZSA9IChzLndpZHRoIC0gcy5zY3JvbGxiYXJXaWR0aCkgLyBzLnJvb3QuZHVyYXRpb247XG4gICAgICAgIGNvbnN0IGRlbHRhID0gTWF0aC5hYnMobmV3QmFzZVNjYWxlIC0gbGFzdEJhc2VTY2FsZSk7XG4gICAgICAgIGlmIChkZWx0YSA+IGxhc3RCYXNlU2NhbGUgKiAwLjAwMSB8fCBsYXN0QmFzZVNjYWxlID09PSAwKSB7XG4gICAgICAgICAgbGFzdEJhc2VTY2FsZSA9IG5ld0Jhc2VTY2FsZTtcbiAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdkZXRlY3RCYXNlU2NhbGUnIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzY2FsZVJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHNjYWxlVGljayk7XG4gICAgfTtcbiAgICBzY2FsZVJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHNjYWxlVGljayk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmSWQpO1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUoc2NhbGVSYWZJZCk7XG4gICAgfTtcbiAgfSwgW2lzTGl2ZSwgZGlzcGF0Y2hdKTtcbn1cblxuY29uc3QgREVGQVVMVF9QQU5FTF9XSURUSCA9IDQ1MDtcbmNvbnN0IE1JTl9QQU5FTF9XSURUSCA9IDI0MDtcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBSaWdodC1jbGljayBjb250ZXh0IG1lbnUgZm9yIHNwYW5zXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxudHlwZSBSZXNvdXJjZVR5cGUgPSAnc2xlZXAnIHwgJ3N0ZXAnIHwgJ2hvb2snIHwgJ3J1bicgfCAndW5rbm93bic7XG5cbmludGVyZmFjZSBDb250ZXh0TWVudVN0YXRlIHtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHNwYW5JZDogc3RyaW5nO1xuICBzcGFuTmFtZTogc3RyaW5nO1xuICByZXNvdXJjZVR5cGU6IFJlc291cmNlVHlwZTtcbiAgLyoqIFdoZXRoZXIgdGhlIHNwYW4gcmVwcmVzZW50cyBhbiBhY3RpdmUvcGVuZGluZyByZXNvdXJjZSAobm90IHlldCBjb21wbGV0ZWQpICovXG4gIGlzQWN0aXZlOiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgQ29udGV4dE1lbnVJdGVtIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgaWNvbj86IFJlYWN0Tm9kZTtcbiAgYWN0aW9uOiAoKSA9PiB2b2lkO1xuICBkZXN0cnVjdGl2ZT86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuZnVuY3Rpb24gU3BhbkNvbnRleHRNZW51KHtcbiAgbWVudSxcbiAgaXRlbXMsXG4gIG9uQ2xvc2UsXG59OiB7XG4gIG1lbnU6IENvbnRleHRNZW51U3RhdGU7XG4gIGl0ZW1zOiBDb250ZXh0TWVudUl0ZW1bXTtcbiAgb25DbG9zZTogKCkgPT4gdm9pZDtcbn0pOiBSZWFjdE5vZGUge1xuICBjb25zdCBtZW51UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICAvLyBDbG9zZSBvbiBvdXRzaWRlIGNsaWNrXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZTogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgaWYgKG1lbnVSZWYuY3VycmVudCAmJiAhbWVudVJlZi5jdXJyZW50LmNvbnRhaW5zKGUudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgIG9uQ2xvc2UoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgaWYgKGUua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICBvbkNsb3NlKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKTogdm9pZCA9PiB7XG4gICAgICBvbkNsb3NlKCk7XG4gICAgfTtcbiAgICAvLyBVc2UgYSB0aW1lb3V0IHNvIHdlIGRvbid0IGNsb3NlIGltbWVkaWF0ZWx5IGZyb20gdGhlIHNhbWUgZXZlbnRcbiAgICBjb25zdCB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2spO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwsIHRydWUpO1xuICAgIH0sIDApO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2spO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwsIHRydWUpO1xuICAgIH07XG4gIH0sIFtvbkNsb3NlXSk7XG5cbiAgLy8gQWRqdXN0IHBvc2l0aW9uIGlmIG1lbnUgd291bGQgb3ZlcmZsb3cgdmlld3BvcnRcbiAgY29uc3QgW2FkanVzdGVkUG9zLCBzZXRBZGp1c3RlZFBvc10gPSB1c2VTdGF0ZSh7IHg6IG1lbnUueCwgeTogbWVudS55IH0pO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVsID0gbWVudVJlZi5jdXJyZW50O1xuICAgIGlmICghZWwpIHJldHVybjtcbiAgICBjb25zdCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgbGV0IHsgeCwgeSB9ID0gbWVudTtcbiAgICBpZiAocmVjdC5yaWdodCA+IHdpbmRvdy5pbm5lcldpZHRoKSB7XG4gICAgICB4ID0gd2luZG93LmlubmVyV2lkdGggLSByZWN0LndpZHRoIC0gODtcbiAgICB9XG4gICAgaWYgKHJlY3QuYm90dG9tID4gd2luZG93LmlubmVySGVpZ2h0KSB7XG4gICAgICB5ID0gd2luZG93LmlubmVySGVpZ2h0IC0gcmVjdC5oZWlnaHQgLSA4O1xuICAgIH1cbiAgICBpZiAoeCAhPT0gbWVudS54IHx8IHkgIT09IG1lbnUueSkge1xuICAgICAgc2V0QWRqdXN0ZWRQb3MoeyB4LCB5IH0pO1xuICAgIH1cbiAgfSwgW21lbnVdKTtcblxuICBpZiAoaXRlbXMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcblxuICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgIDxkaXZcbiAgICAgIHJlZj17bWVudVJlZn1cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgICBsZWZ0OiBhZGp1c3RlZFBvcy54LFxuICAgICAgICB0b3A6IGFkanVzdGVkUG9zLnksXG4gICAgICAgIHpJbmRleDogOTk5OTksXG4gICAgICAgIGJveFNoYWRvdzogJ3ZhcigtLWRzLXNoYWRvdy1tZW51KScsXG4gICAgICAgIGJvcmRlclJhZGl1czogMTIsXG4gICAgICAgIGJhY2tncm91bmQ6ICd2YXIoLS1kcy1iYWNrZ3JvdW5kLTEwMCknLFxuICAgICAgICBwYWRkaW5nOiAndmFyKC0tZ2Vpc3Qtc3BhY2UtZ2FwLXF1YXJ0ZXIsIDRweCknLFxuICAgICAgICBmb250U2l6ZTogMTQsXG4gICAgICAgIG1pbldpZHRoOiAxODAsXG4gICAgICAgIG92ZXJmbG93WDogJ2hpZGRlbicsXG4gICAgICAgIG92ZXJmbG93WTogJ2F1dG8nLFxuICAgICAgfX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2Jsb2NrJyxcbiAgICAgICAgICBjb2xvcjogJ3ZhcigtLWRzLWdyYXktOTAwKScsXG4gICAgICAgICAgZm9udFNpemU6ICcwLjc1cmVtJyxcbiAgICAgICAgICBwYWRkaW5nOiAndmFyKC0tZ2Vpc3QtZ2FwLXF1YXJ0ZXIsIDRweCkgdmFyKC0tZ2Vpc3Qtc3BhY2UtMngsIDhweCknLFxuICAgICAgICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnLFxuICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgICAgICAgIG1heFdpZHRoOiAyNDAsXG4gICAgICAgICAgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkIHZhcigtLWRzLWdyYXktYWxwaGEtNDAwKScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiA0LFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7bWVudS5zcGFuTmFtZX1cbiAgICAgIDwvZGl2PlxuICAgICAge2l0ZW1zLm1hcCgoaXRlbSkgPT4gKFxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAga2V5PXtpdGVtLmxhYmVsfVxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBvdXRsaW5lOiAnbm9uZScsXG4gICAgICAgICAgICBjdXJzb3I6IGl0ZW0uZGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogJ3BvaW50ZXInLFxuICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBnYXA6IDgsXG4gICAgICAgICAgICBwYWRkaW5nOiAnMCB2YXIoLS1nZWlzdC1zcGFjZS0yeCwgOHB4KScsXG4gICAgICAgICAgICBoZWlnaHQ6IDQwLFxuICAgICAgICAgICAgdGV4dERlY29yYXRpb246ICdub25lJyxcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogNixcbiAgICAgICAgICAgIGNvbG9yOiBpdGVtLmRlc3RydWN0aXZlXG4gICAgICAgICAgICAgID8gJ3ZhcigtLWRzLXJlZC05MDApJ1xuICAgICAgICAgICAgICA6ICd2YXIoLS1kcy1ncmF5LTEwMDApJyxcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICBmb250U2l6ZTogMTQsXG4gICAgICAgICAgICB0ZXh0QWxpZ246ICdsZWZ0JyxcbiAgICAgICAgICAgIG9wYWNpdHk6IGl0ZW0uZGlzYWJsZWQgPyAwLjQgOiAxLFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogJ2JhY2tncm91bmQgMC4xNXMnLFxuICAgICAgICAgIH19XG4gICAgICAgICAgZGlzYWJsZWQ9e2l0ZW0uZGlzYWJsZWR9XG4gICAgICAgICAgb25Nb3VzZUVudGVyPXsoZSkgPT4ge1xuICAgICAgICAgICAgKGUuY3VycmVudFRhcmdldCBhcyBIVE1MQnV0dG9uRWxlbWVudCkuc3R5bGUuYmFja2dyb3VuZCA9XG4gICAgICAgICAgICAgICd2YXIoLS1kcy1ncmF5LWFscGhhLTEwMCknO1xuICAgICAgICAgIH19XG4gICAgICAgICAgb25Nb3VzZUxlYXZlPXsoZSkgPT4ge1xuICAgICAgICAgICAgKGUuY3VycmVudFRhcmdldCBhcyBIVE1MQnV0dG9uRWxlbWVudCkuc3R5bGUuYmFja2dyb3VuZCA9XG4gICAgICAgICAgICAgICd0cmFuc3BhcmVudCc7XG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmFjdGlvbigpO1xuICAgICAgICAgICAgb25DbG9zZSgpO1xuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICB7aXRlbS5pY29uID8/IG51bGx9XG4gICAgICAgICAge2l0ZW0ubGFiZWx9XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgKSl9XG4gICAgPC9kaXY+LFxuICAgIGRvY3VtZW50LmJvZHlcbiAgKTtcbn1cblxuLyoqIElubmVyIHdyYXBwZXIgdGhhdCBoYXMgYWNjZXNzIHRvIHRoZSBUcmFjZVZpZXdlciBjb250ZXh0ICovXG5mdW5jdGlvbiBUcmFjZVZpZXdlcldpdGhDb250ZXh0TWVudSh7XG4gIHRyYWNlLFxuICBydW4sXG4gIGlzTGl2ZSxcbiAgb25XYWtlVXBTbGVlcCxcbiAgb25DYW5jZWxSdW4sXG4gIG9uUmVzb2x2ZUhvb2ssXG4gIG9uTG9hZE1vcmVTcGFucyxcbiAgaGFzTW9yZVNwYW5zID0gZmFsc2UsXG4gIGlzTG9hZGluZ01vcmVTcGFucyA9IGZhbHNlLFxuICBjaGlsZHJlbixcbn06IHtcbiAgdHJhY2U6IHsgc3BhbnM6IFNwYW5bXSB9O1xuICBydW46IFdvcmtmbG93UnVuO1xuICBpc0xpdmU6IGJvb2xlYW47XG4gIG9uV2FrZVVwU2xlZXA/OiAoXG4gICAgcnVuSWQ6IHN0cmluZyxcbiAgICBjb3JyZWxhdGlvbklkOiBzdHJpbmdcbiAgKSA9PiBQcm9taXNlPHsgc3RvcHBlZENvdW50OiBudW1iZXIgfT47XG4gIG9uQ2FuY2VsUnVuPzogKHJ1bklkOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIG9uUmVzb2x2ZUhvb2s/OiAoXG4gICAgaG9va1Rva2VuOiBzdHJpbmcsXG4gICAgcGF5bG9hZDogdW5rbm93bixcbiAgICBob29rPzogSG9va1xuICApID0+IFByb21pc2U8dm9pZD47XG4gIG9uTG9hZE1vcmVTcGFucz86ICgpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuICBoYXNNb3JlU3BhbnM/OiBib29sZWFuO1xuICBpc0xvYWRpbmdNb3JlU3BhbnM/OiBib29sZWFuO1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufSk6IFJlYWN0Tm9kZSB7XG4gIGNvbnN0IHRvYXN0ID0gdXNlVG9hc3QoKTtcbiAgY29uc3QgeyBzdGF0ZSwgZGlzcGF0Y2ggfSA9IHVzZVRyYWNlVmlld2VyKCk7XG5cbiAgLy8gRHJpdmUgYWN0aXZlIHNwYW4gd2lkdGhzIGF0IDYwZnBzIHdpdGhvdXQgUmVhY3QgcmUtcmVuZGVyc1xuICB1c2VMaXZlVGljayhpc0xpdmUpO1xuICBjb25zdCBbY29udGV4dE1lbnUsIHNldENvbnRleHRNZW51XSA9IHVzZVN0YXRlPENvbnRleHRNZW51U3RhdGUgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW3Jlc29sdmVIb29rVGFyZ2V0LCBzZXRSZXNvbHZlSG9va1RhcmdldF0gPSB1c2VTdGF0ZTx7XG4gICAgaG9va0lkOiBzdHJpbmc7XG4gICAgdG9rZW46IHN0cmluZztcbiAgfSB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbcmVzb2x2aW5nSG9vaywgc2V0UmVzb2x2aW5nSG9va10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIC8vIFRyYWNrIGhvb2tzIHJlc29sdmVkIGluIHRoaXMgc2Vzc2lvbiBzbyB0aGUgY29udGV4dCBtZW51IGl0ZW0gaGlkZXMgaW1tZWRpYXRlbHlcbiAgY29uc3QgW3Jlc29sdmVkSG9va0lkcywgc2V0UmVzb2x2ZWRIb29rSWRzXSA9IHVzZVN0YXRlPFNldDxzdHJpbmc+PihcbiAgICBuZXcgU2V0KClcbiAgKTtcblxuICAvLyBCdWlsZCBhIGxvb2t1cCBtYXA6IHNwYW5JZCAtPiBzcGFuXG4gIGNvbnN0IHNwYW5Mb29rdXAgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPHN0cmluZywgU3Bhbj4oKTtcbiAgICBmb3IgKGNvbnN0IHNwYW4gb2YgdHJhY2Uuc3BhbnMpIHtcbiAgICAgIG1hcC5zZXQoc3Bhbi5zcGFuSWQsIHNwYW4pO1xuICAgIH1cbiAgICByZXR1cm4gbWFwO1xuICB9LCBbdHJhY2Uuc3BhbnNdKTtcblxuICBjb25zdCBoYW5kbGVSZXNvbHZlSG9vayA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChwYXlsb2FkOiB1bmtub3duKSA9PiB7XG4gICAgICBpZiAocmVzb2x2aW5nSG9vayB8fCAhcmVzb2x2ZUhvb2tUYXJnZXQgfHwgIW9uUmVzb2x2ZUhvb2spIHJldHVybjtcbiAgICAgIGlmICghcmVzb2x2ZUhvb2tUYXJnZXQudG9rZW4pIHtcbiAgICAgICAgdG9hc3QuZXJyb3IoJ1VuYWJsZSB0byByZXNvbHZlIGhvb2snLCB7XG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAnTWlzc2luZyBob29rIHRva2VuLiBUcnkgcmVmcmVzaGluZyB0aGUgcnVuIGRhdGEgYW5kIHJldHJ5LicsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBzZXRSZXNvbHZpbmdIb29rKHRydWUpO1xuICAgICAgICBhd2FpdCBvblJlc29sdmVIb29rKHJlc29sdmVIb29rVGFyZ2V0LnRva2VuLCBwYXlsb2FkKTtcbiAgICAgICAgdG9hc3Quc3VjY2VzcygnSG9vayByZXNvbHZlZCcsIHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBwYXlsb2FkIGhhcyBiZWVuIHNlbnQgYW5kIHRoZSBob29rIHJlc29sdmVkLicsXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBNYXJrIHRoaXMgaG9vayBhcyByZXNvbHZlZCBsb2NhbGx5IHNvIHRoZSBtZW51IGl0ZW0gaGlkZXMgaW1tZWRpYXRlbHlcbiAgICAgICAgc2V0UmVzb2x2ZWRIb29rSWRzKChwcmV2KSA9PlxuICAgICAgICAgIG5ldyBTZXQocHJldikuYWRkKHJlc29sdmVIb29rVGFyZ2V0Lmhvb2tJZClcbiAgICAgICAgKTtcbiAgICAgICAgc2V0UmVzb2x2ZUhvb2tUYXJnZXQobnVsbCk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHJlc29sdmUgaG9vazonLCBlcnIpO1xuICAgICAgICB0b2FzdC5lcnJvcignRmFpbGVkIHRvIHJlc29sdmUgaG9vaycsIHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgIGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCcsXG4gICAgICAgIH0pO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2V0UmVzb2x2aW5nSG9vayhmYWxzZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbb25SZXNvbHZlSG9vaywgcmVzb2x2ZUhvb2tUYXJnZXQsIHJlc29sdmluZ0hvb2tdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlQ29udGV4dE1lbnUgPSB1c2VDYWxsYmFjayhcbiAgICAoZTogUmVhY3RNb3VzZUV2ZW50IHwgTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCAkYnV0dG9uID0gdGFyZ2V0LmNsb3Nlc3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+KCdbZGF0YS1zcGFuLWlkXScpO1xuICAgICAgaWYgKCEkYnV0dG9uKSByZXR1cm47XG5cbiAgICAgIGNvbnN0IHNwYW5JZCA9ICRidXR0b24uZGF0YXNldC5zcGFuSWQ7XG4gICAgICBpZiAoIXNwYW5JZCkgcmV0dXJuO1xuXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICBjb25zdCBzcGFuID0gc3Bhbkxvb2t1cC5nZXQoc3BhbklkKTtcbiAgICAgIGlmICghc3BhbikgcmV0dXJuO1xuXG4gICAgICBjb25zdCByZXNvdXJjZVR5cGUgPVxuICAgICAgICAoc3Bhbi5hdHRyaWJ1dGVzLnJlc291cmNlIGFzIFJlc291cmNlVHlwZSkgPz8gJ3Vua25vd24nO1xuICAgICAgY29uc3Qgc3BhbkRhdGEgPSBzcGFuLmF0dHJpYnV0ZXMuZGF0YSBhc1xuICAgICAgICB8IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICAgIHwgdW5kZWZpbmVkO1xuICAgICAgY29uc3QgaXNBY3RpdmUgPSAhc3BhbkRhdGE/LmNvbXBsZXRlZEF0ICYmICFzcGFuRGF0YT8uZGlzcG9zZWRBdDtcblxuICAgICAgc2V0Q29udGV4dE1lbnUoe1xuICAgICAgICB4OiBlLmNsaWVudFgsXG4gICAgICAgIHk6IGUuY2xpZW50WSxcbiAgICAgICAgc3BhbklkLFxuICAgICAgICBzcGFuTmFtZTogc3Bhbi5uYW1lLFxuICAgICAgICByZXNvdXJjZVR5cGUsXG4gICAgICAgIGlzQWN0aXZlLFxuICAgICAgfSk7XG4gICAgfSxcbiAgICBbc3Bhbkxvb2t1cF1cbiAgKTtcblxuICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0ICRjb250YWluZXIgPSBjb250YWluZXJSZWYuY3VycmVudDtcbiAgICBpZiAoISRjb250YWluZXIpIHJldHVybjtcblxuICAgIGNvbnN0IG9uQ29udGV4dE1lbnUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIGhhbmRsZUNvbnRleHRNZW51KGV2ZW50KTtcbiAgICB9O1xuICAgICRjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCBvbkNvbnRleHRNZW51KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAkY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NvbnRleHRtZW51Jywgb25Db250ZXh0TWVudSk7XG4gICAgfTtcbiAgfSwgW2hhbmRsZUNvbnRleHRNZW51XSk7XG5cbiAgY29uc3QgbG9hZGluZ01vcmVSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHRpbWVsaW5lID0gc3RhdGUudGltZWxpbmVSZWYuY3VycmVudDtcbiAgICBpZiAoIXRpbWVsaW5lIHx8ICFvbkxvYWRNb3JlU3BhbnMgfHwgIWhhc01vcmVTcGFucykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRocmVzaG9sZFB4ID0gMjAwO1xuICAgIGNvbnN0IG1heWJlTG9hZE1vcmUgPSAoKSA9PiB7XG4gICAgICBpZiAobG9hZGluZ01vcmVSZWYuY3VycmVudCB8fCBpc0xvYWRpbmdNb3JlU3BhbnMgfHwgIWhhc01vcmVTcGFucykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCByZW1haW5pbmcgPVxuICAgICAgICB0aW1lbGluZS5zY3JvbGxIZWlnaHQgLSB0aW1lbGluZS5zY3JvbGxUb3AgLSB0aW1lbGluZS5jbGllbnRIZWlnaHQ7XG4gICAgICBpZiAocmVtYWluaW5nID4gdGhyZXNob2xkUHgpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBsb2FkaW5nTW9yZVJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIFByb21pc2UucmVzb2x2ZShvbkxvYWRNb3JlU3BhbnMoKSkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIGxvYWRpbmdNb3JlUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICB0aW1lbGluZS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBtYXliZUxvYWRNb3JlKTtcbiAgICBtYXliZUxvYWRNb3JlKCk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHRpbWVsaW5lLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG1heWJlTG9hZE1vcmUpO1xuICAgIH07XG4gIH0sIFtzdGF0ZS50aW1lbGluZVJlZiwgb25Mb2FkTW9yZVNwYW5zLCBoYXNNb3JlU3BhbnMsIGlzTG9hZGluZ01vcmVTcGFuc10pO1xuXG4gIGNvbnN0IGNsb3NlTWVudSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRDb250ZXh0TWVudShudWxsKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGdldE1lbnVJdGVtcyA9IHVzZUNhbGxiYWNrKFxuICAgIChtZW51OiBDb250ZXh0TWVudVN0YXRlKTogQ29udGV4dE1lbnVJdGVtW10gPT4ge1xuICAgICAgY29uc3QgaXRlbXM6IENvbnRleHRNZW51SXRlbVtdID0gW107XG5cbiAgICAgIC8vIFNsZWVwLXNwZWNpZmljOiBXYWtlIFVwIChvbmx5IG9uIGFjdGl2ZSBydW5zKVxuICAgICAgY29uc3QgaXNSdW5BY3RpdmUgPSAhcnVuLmNvbXBsZXRlZEF0O1xuICAgICAgaWYgKFxuICAgICAgICBtZW51LnJlc291cmNlVHlwZSA9PT0gJ3NsZWVwJyAmJlxuICAgICAgICBtZW51LmlzQWN0aXZlICYmXG4gICAgICAgIGlzUnVuQWN0aXZlICYmXG4gICAgICAgIG9uV2FrZVVwU2xlZXBcbiAgICAgICkge1xuICAgICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgICBsYWJlbDogJ1dha2UgVXAgU2xlZXAnLFxuICAgICAgICAgIGljb246IDxDbG9jayBjbGFzc05hbWU9XCJoLTMuNSB3LTMuNVwiIC8+LFxuICAgICAgICAgIGFjdGlvbjogKCkgPT4ge1xuICAgICAgICAgICAgb25XYWtlVXBTbGVlcChydW4ucnVuSWQsIG1lbnUuc3BhbklkKVxuICAgICAgICAgICAgICAudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdG9wcGVkQ291bnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgICB0b2FzdC5zdWNjZXNzKCdTbGVlcCB3b2tlbiB1cCcsIHtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBXb2tlIHVwICR7U3RyaW5nKHJlc3VsdC5zdG9wcGVkQ291bnQpfSBzbGVlcCR7cmVzdWx0LnN0b3BwZWRDb3VudCA+IDEgPyAncycgOiAnJ31gLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHRvYXN0LmluZm8oJ05vIGFjdGl2ZSBzbGVlcHMgZm91bmQnLCB7XG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIHNsZWVwIG1heSBoYXZlIGFscmVhZHkgY29tcGxldGVkLicsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5jYXRjaCgoZXJyOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgICAgdG9hc3QuZXJyb3IoJ0ZhaWxlZCB0byB3YWtlIHVwIHNsZWVwJywge1xuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgICAgICAgIGVyciBpbnN0YW5jZW9mIEVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgPyBlcnIubWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgIDogJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gSG9vay1zcGVjaWZpYzogUmVzb2x2ZSBIb29rIChvbmx5IG9uIGFjdGl2ZSwgdW5yZXNvbHZlZCBob29rcylcbiAgICAgIGlmIChtZW51LnJlc291cmNlVHlwZSA9PT0gJ2hvb2snICYmIGlzUnVuQWN0aXZlICYmIG9uUmVzb2x2ZUhvb2spIHtcbiAgICAgICAgY29uc3Qgc3BhbiA9IHNwYW5Mb29rdXAuZ2V0KG1lbnUuc3BhbklkKTtcbiAgICAgICAgY29uc3QgaG9va0RhdGEgPSBzcGFuPy5hdHRyaWJ1dGVzPy5kYXRhIGFzXG4gICAgICAgICAgfCB7IHRva2VuPzogc3RyaW5nOyBkaXNwb3NlZEF0PzogdW5rbm93biB9XG4gICAgICAgICAgfCB1bmRlZmluZWQ7XG4gICAgICAgIC8vIENoZWNrIGRhdGEtbGV2ZWwgZGlzcG9zZWRBdCwgc3BhbiBldmVudHMsIEFORCBsb2NhbCByZXNvbHZlZCBzdGF0ZVxuICAgICAgICBjb25zdCBpc0Rpc3Bvc2VkID1cbiAgICAgICAgICBCb29sZWFuKGhvb2tEYXRhPy5kaXNwb3NlZEF0KSB8fFxuICAgICAgICAgIEJvb2xlYW4oc3Bhbj8uZXZlbnRzPy5zb21lKChlKSA9PiBlLm5hbWUgPT09ICdob29rX2Rpc3Bvc2VkJykpIHx8XG4gICAgICAgICAgcmVzb2x2ZWRIb29rSWRzLmhhcyhtZW51LnNwYW5JZCk7XG4gICAgICAgIGlmIChob29rRGF0YT8udG9rZW4gJiYgIWlzRGlzcG9zZWQpIHtcbiAgICAgICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgICAgIGxhYmVsOiAnUmVzb2x2ZSBIb29rJyxcbiAgICAgICAgICAgIGljb246IDxTZW5kIGNsYXNzTmFtZT1cImgtMy41IHctMy41XCIgLz4sXG4gICAgICAgICAgICBhY3Rpb246ICgpID0+IHtcbiAgICAgICAgICAgICAgc2V0UmVzb2x2ZUhvb2tUYXJnZXQoe1xuICAgICAgICAgICAgICAgIGhvb2tJZDogbWVudS5zcGFuSWQsXG4gICAgICAgICAgICAgICAgdG9rZW46IGhvb2tEYXRhLnRva2VuISxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFJ1bi1zcGVjaWZpYzogQ2FuY2VsIChvbmx5IG9uIGFjdGl2ZSBydW5zKVxuICAgICAgaWYgKG1lbnUucmVzb3VyY2VUeXBlID09PSAncnVuJyAmJiBpc1J1bkFjdGl2ZSAmJiBvbkNhbmNlbFJ1bikge1xuICAgICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgICBsYWJlbDogJ0NhbmNlbCBSdW4nLFxuICAgICAgICAgIGljb246IDxYQ2lyY2xlIGNsYXNzTmFtZT1cImgtMy41IHctMy41XCIgLz4sXG4gICAgICAgICAgZGVzdHJ1Y3RpdmU6IHRydWUsXG4gICAgICAgICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgICBvbkNhbmNlbFJ1bihydW4ucnVuSWQpLmNhdGNoKChlcnI6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgdG9hc3QuZXJyb3IoJ0ZhaWxlZCB0byBjYW5jZWwgcnVuJywge1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgICAgZXJyIGluc3RhbmNlb2YgRXJyb3JcbiAgICAgICAgICAgICAgICAgICAgPyBlcnIubWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICA6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkJyxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gQ29tbW9uIGFjdGlvbnNcbiAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICBsYWJlbDogJ1ZpZXcgRGV0YWlscycsXG4gICAgICAgIGljb246IDxJbmZvIGNsYXNzTmFtZT1cImgtMy41IHctMy41XCIgLz4sXG4gICAgICAgIGFjdGlvbjogKCkgPT4ge1xuICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ3NlbGVjdCcsIGlkOiBtZW51LnNwYW5JZCB9KTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgbGFiZWw6ICdDb3B5IE5hbWUnLFxuICAgICAgICBpY29uOiA8VHlwZSBjbGFzc05hbWU9XCJoLTMuNSB3LTMuNVwiIC8+LFxuICAgICAgICBhY3Rpb246ICgpID0+IHtcbiAgICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkXG4gICAgICAgICAgICAud3JpdGVUZXh0KG1lbnUuc3Bhbk5hbWUpXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgIHRvYXN0LnN1Y2Nlc3MoJ05hbWUgY29waWVkIHRvIGNsaXBib2FyZCcpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRvYXN0LmVycm9yKCdGYWlsZWQgdG8gY29weSBuYW1lJyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgbGFiZWw6ICdDb3B5IElEJyxcbiAgICAgICAgaWNvbjogPENvcHkgY2xhc3NOYW1lPVwiaC0zLjUgdy0zLjVcIiAvPixcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZFxuICAgICAgICAgICAgLndyaXRlVGV4dChtZW51LnNwYW5JZClcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgdG9hc3Quc3VjY2VzcygnSUQgY29waWVkIHRvIGNsaXBib2FyZCcpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRvYXN0LmVycm9yKCdGYWlsZWQgdG8gY29weSBJRCcpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH0sXG4gICAgW1xuICAgICAgZGlzcGF0Y2gsXG4gICAgICBvbldha2VVcFNsZWVwLFxuICAgICAgb25DYW5jZWxSdW4sXG4gICAgICBvblJlc29sdmVIb29rLFxuICAgICAgc3Bhbkxvb2t1cCxcbiAgICAgIHJlc29sdmVkSG9va0lkcyxcbiAgICAgIHJ1bi5ydW5JZCxcbiAgICAgIHJ1bi5jb21wbGV0ZWRBdCxcbiAgICBdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIHctZnVsbCBoLWZ1bGxcIiByZWY9e2NvbnRhaW5lclJlZn0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICB7Y29udGV4dE1lbnUgPyAoXG4gICAgICAgIDxTcGFuQ29udGV4dE1lbnVcbiAgICAgICAgICBtZW51PXtjb250ZXh0TWVudX1cbiAgICAgICAgICBpdGVtcz17Z2V0TWVudUl0ZW1zKGNvbnRleHRNZW51KX1cbiAgICAgICAgICBvbkNsb3NlPXtjbG9zZU1lbnV9XG4gICAgICAgIC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIDxSZXNvbHZlSG9va01vZGFsXG4gICAgICAgIGlzT3Blbj17cmVzb2x2ZUhvb2tUYXJnZXQgIT09IG51bGx9XG4gICAgICAgIG9uQ2xvc2U9eygpID0+IHNldFJlc29sdmVIb29rVGFyZ2V0KG51bGwpfVxuICAgICAgICBvblN1Ym1pdD17aGFuZGxlUmVzb2x2ZUhvb2t9XG4gICAgICAgIGlzU3VibWl0dGluZz17cmVzb2x2aW5nSG9va31cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbi8qKiBSZS1leHBvcnQgU3BhblNlbGVjdGlvbkluZm8gZm9yIGNvbnN1bWVycyAqL1xuZXhwb3J0IHR5cGUgeyBTcGFuU2VsZWN0aW9uSW5mbyB9O1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEJyaWRnZTogcmVhZHMgc2VsZWN0ZWQgc3BhbiBmcm9tIHRyYWNlIHZpZXdlciBjb250ZXh0IGFuZCBub3RpZmllcyBwYXJlbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIEJyaWRnZSBjb21wb25lbnQgdGhhdCBsaXZlcyBJTlNJREUgdGhlIFRyYWNlVmlld2VyQ29udGV4dFByb3ZpZGVyIGFuZFxuICogcmVhZHMgdGhlIHNlbGVjdGVkIHNwYW4gaW5mbywgcGFzc2luZyBpdCB1cCB0byB0aGUgcGFyZW50IHZpYSBjYWxsYmFjay5cbiAqIFRoaXMgYWxsb3dzIHRoZSBwYXJlbnQgdG8gcmVuZGVyIHRoZSBkZXRhaWwgcGFuZWwgT1VUU0lERSB0aGUgY29udGV4dC5cbiAqL1xuZnVuY3Rpb24gU2VsZWN0aW9uQnJpZGdlKHtcbiAgb25TZWxlY3Rpb25DaGFuZ2UsXG59OiB7XG4gIG9uU2VsZWN0aW9uQ2hhbmdlOiAoaW5mbzogU2VsZWN0ZWRTcGFuSW5mbyB8IG51bGwpID0+IHZvaWQ7XG59KSB7XG4gIGNvbnN0IHsgc3RhdGUgfSA9IHVzZVRyYWNlVmlld2VyKCk7XG4gIGNvbnN0IHsgc2VsZWN0ZWQgfSA9IHN0YXRlO1xuICBjb25zdCBvblNlbGVjdGlvbkNoYW5nZVJlZiA9IHVzZVJlZihvblNlbGVjdGlvbkNoYW5nZSk7XG4gIG9uU2VsZWN0aW9uQ2hhbmdlUmVmLmN1cnJlbnQgPSBvblNlbGVjdGlvbkNoYW5nZTtcbiAgY29uc3QgcHJldlNwYW5JZFJlZiA9IHVzZVJlZjxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBjdXJyZW50U3BhbklkID0gc2VsZWN0ZWQ/LnNwYW4uc3BhbklkO1xuICAgIGlmIChjdXJyZW50U3BhbklkID09PSBwcmV2U3BhbklkUmVmLmN1cnJlbnQpIHJldHVybjtcbiAgICBwcmV2U3BhbklkUmVmLmN1cnJlbnQgPSBjdXJyZW50U3BhbklkO1xuXG4gICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICBvblNlbGVjdGlvbkNoYW5nZVJlZi5jdXJyZW50KHtcbiAgICAgICAgZGF0YTogc2VsZWN0ZWQuc3Bhbi5hdHRyaWJ1dGVzPy5kYXRhLFxuICAgICAgICByZXNvdXJjZTogc2VsZWN0ZWQuc3Bhbi5hdHRyaWJ1dGVzPy5yZXNvdXJjZSBhcyBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgICAgIHNwYW5JZDogc2VsZWN0ZWQuc3Bhbi5zcGFuSWQsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgb25TZWxlY3Rpb25DaGFuZ2VSZWYuY3VycmVudChudWxsKTtcbiAgICB9XG4gIH0sIFtzZWxlY3RlZF0pO1xuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIEJyaWRnZSBjb21wb25lbnQgdG8gZGVzZWxlY3QgZnJvbSBvdXRzaWRlIHRoZSBjb250ZXh0LlxuICovXG5mdW5jdGlvbiBEZXNlbGVjdEJyaWRnZSh7IHRyaWdnZXJEZXNlbGVjdCB9OiB7IHRyaWdnZXJEZXNlbGVjdDogbnVtYmVyIH0pIHtcbiAgY29uc3QgeyBkaXNwYXRjaCB9ID0gdXNlVHJhY2VWaWV3ZXIoKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0cmlnZ2VyRGVzZWxlY3QgPiAwKSB7XG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdkZXNlbGVjdCcgfSk7XG4gICAgfVxuICB9LCBbdHJpZ2dlckRlc2VsZWN0LCBkaXNwYXRjaF0pO1xuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIEJyaWRnZSBjb21wb25lbnQgdG8gc2VsZWN0IGEgc3BhbiBmcm9tIG91dHNpZGUgdGhlIGNvbnRleHQuXG4gKi9cbmZ1bmN0aW9uIFNlbGVjdEJyaWRnZSh7XG4gIHNlbGVjdFJlcXVlc3QsXG59OiB7XG4gIHNlbGVjdFJlcXVlc3Q6IHsgaWQ6IHN0cmluZzsgdG9rZW46IG51bWJlciB9IHwgbnVsbDtcbn0pIHtcbiAgY29uc3QgeyBkaXNwYXRjaCB9ID0gdXNlVHJhY2VWaWV3ZXIoKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzZWxlY3RSZXF1ZXN0Py5pZCkge1xuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnc2VsZWN0JywgaWQ6IHNlbGVjdFJlcXVlc3QuaWQgfSk7XG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIHNlbGVjdFJlcXVlc3RdKTtcblxuICByZXR1cm4gbnVsbDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQYW5lbCBjaHJvbWUgKGhlYWRlciB3aXRoIG5hbWUvZHVyYXRpb24sIGNsb3NlIGJ1dHRvbilcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBQYW5lbFJlc2l6ZUhhbmRsZSh7XG4gIG9uUmVzaXplLFxufToge1xuICBvblJlc2l6ZTogKGRlbHRhWDogbnVtYmVyKSA9PiB2b2lkO1xufSkge1xuICBjb25zdCBoYW5kbGVQb2ludGVyRG93biA9IHVzZUNhbGxiYWNrKFxuICAgIChlOiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGxldCBsYXN0WCA9IGUuY2xpZW50WDtcbiAgICAgIGNvbnN0IG9uUG9pbnRlck1vdmUgPSAobW92ZUV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgZGVsdGFYID0gbGFzdFggLSBtb3ZlRXZlbnQuY2xpZW50WDtcbiAgICAgICAgbGFzdFggPSBtb3ZlRXZlbnQuY2xpZW50WDtcbiAgICAgICAgb25SZXNpemUoZGVsdGFYKTtcbiAgICAgIH07XG4gICAgICBjb25zdCBvblBvaW50ZXJVcCA9ICgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcm1vdmUnLCBvblBvaW50ZXJNb3ZlKTtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgb25Qb2ludGVyVXApO1xuICAgICAgfTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgb25Qb2ludGVyTW92ZSk7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCBvblBvaW50ZXJVcCk7XG4gICAgfSxcbiAgICBbb25SZXNpemVdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBsZWZ0LTAgdG9wLTAgYm90dG9tLTAgdy0xIGN1cnNvci1jb2wtcmVzaXplIGhvdmVyOmJnLWJsdWUtNDAwLzUwIHotMTBcIlxuICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUG9pbnRlckRvd259XG4gICAgLz5cbiAgKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUcmFjZSB2aWV3ZXIgZm9vdGVyIOKAlCBsb2FkaW5nIC8gd2FpdGluZyBpbmRpY2F0b3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBUcmFjZVZpZXdlckZvb3Rlcih7XG4gIGhhc01vcmUsXG4gIGlzTGl2ZSxcbiAgaXNJbml0aWFsTG9hZGluZyxcbn06IHtcbiAgaGFzTW9yZTogYm9vbGVhbjtcbiAgaXNMaXZlOiBib29sZWFuO1xuICBpc0luaXRpYWxMb2FkaW5nOiBib29sZWFuO1xufSk6IFJlYWN0Tm9kZSB7XG4gIGNvbnN0IHN0eWxlID0geyBjb2xvcjogJ3ZhcigtLWRzLWdyYXktOTAwKScgfTtcbiAgaWYgKGhhc01vcmUgfHwgaXNJbml0aWFsTG9hZGluZykge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0yIHB5LTMgdGV4dC14c1wiXG4gICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgID5cbiAgICAgICAgPFNwaW5uZXIgc2l6ZT17MTR9IC8+XG4gICAgICAgIExvYWRpbmcgbW9yZSBldmVudHPigKZcbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbiAgaWYgKGlzTGl2ZSkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB5LTMgdGV4dC14c1wiXG4gICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgID5cbiAgICAgICAgV2FpdGluZyBmb3IgbW9yZSBldmVudHPigKZcbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweS0zIHRleHQteHNcIlxuICAgICAgc3R5bGU9e3N0eWxlfVxuICAgID5cbiAgICAgIEVuZCBvZiBydW5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBNYWluIGNvbXBvbmVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBjb25zdCBXb3JrZmxvd1RyYWNlVmlld2VyID0gKHtcbiAgcnVuLFxuICBldmVudHMsXG4gIGlzTG9hZGluZyxcbiAgZXJyb3IsXG4gIHNwYW5EZXRhaWxEYXRhLFxuICBzcGFuRGV0YWlsTG9hZGluZyxcbiAgc3BhbkRldGFpbEVycm9yLFxuICBvbldha2VVcFNsZWVwLFxuICBvblJlc29sdmVIb29rLFxuICBvbkNhbmNlbFJ1bixcbiAgb25TdHJlYW1DbGljayxcbiAgb25SdW5DbGljayxcbiAgb25TcGFuU2VsZWN0LFxuICBvbkxvYWRFdmVudERhdGEsXG4gIG9uTG9hZE1vcmVTcGFucyxcbiAgaGFzTW9yZVNwYW5zID0gZmFsc2UsXG4gIGlzTG9hZGluZ01vcmVTcGFucyA9IGZhbHNlLFxuICBlbmNyeXB0aW9uS2V5LFxuICBvbkRlY3J5cHQsXG4gIGlzRGVjcnlwdGluZyA9IGZhbHNlLFxufToge1xuICBydW46IFdvcmtmbG93UnVuO1xuICBldmVudHM6IEV2ZW50W107XG4gIGlzTG9hZGluZz86IGJvb2xlYW47XG4gIGVycm9yPzogRXJyb3IgfCBudWxsO1xuICBzcGFuRGV0YWlsRGF0YT86IFdvcmtmbG93UnVuIHwgU3RlcCB8IEhvb2sgfCBFdmVudCB8IG51bGw7XG4gIHNwYW5EZXRhaWxMb2FkaW5nPzogYm9vbGVhbjtcbiAgc3BhbkRldGFpbEVycm9yPzogRXJyb3IgfCBudWxsO1xuICBvbldha2VVcFNsZWVwPzogKFxuICAgIHJ1bklkOiBzdHJpbmcsXG4gICAgY29ycmVsYXRpb25JZDogc3RyaW5nXG4gICkgPT4gUHJvbWlzZTx7IHN0b3BwZWRDb3VudDogbnVtYmVyIH0+O1xuICBvblJlc29sdmVIb29rPzogKFxuICAgIGhvb2tUb2tlbjogc3RyaW5nLFxuICAgIHBheWxvYWQ6IHVua25vd24sXG4gICAgaG9vaz86IEhvb2tcbiAgKSA9PiBQcm9taXNlPHZvaWQ+O1xuICAvKiogQ2FsbGJhY2sgdG8gY2FuY2VsIHRoZSBjdXJyZW50IHJ1biAqL1xuICBvbkNhbmNlbFJ1bj86IChydW5JZDogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICAvKiogQ2FsbGJhY2sgd2hlbiBhIHN0cmVhbSByZWZlcmVuY2UgaXMgY2xpY2tlZCBpbiB0aGUgZGV0YWlsIHBhbmVsICovXG4gIG9uU3RyZWFtQ2xpY2s/OiAoc3RyZWFtSWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgLyoqIENhbGxiYWNrIHdoZW4gYSBydW4gcmVmZXJlbmNlIGlzIGNsaWNrZWQgaW4gdGhlIGRldGFpbCBwYW5lbCAqL1xuICBvblJ1bkNsaWNrPzogKHJ1bklkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIC8qKiBDYWxsYmFjayB3aGVuIGEgc3BhbiBpcyBzZWxlY3RlZC4gKi9cbiAgb25TcGFuU2VsZWN0PzogKGluZm86IFNwYW5TZWxlY3Rpb25JbmZvKSA9PiB2b2lkO1xuICAvKiogQ2FsbGJhY2sgdG8gbG9hZCBldmVudCBkYXRhIGZvciBhIHNwZWNpZmljIGV2ZW50IChsYXp5IGxvYWRpbmcgaW4gc2lkZWJhcikgKi9cbiAgb25Mb2FkRXZlbnREYXRhPzogKFxuICAgIGNvcnJlbGF0aW9uSWQ6IHN0cmluZyxcbiAgICBldmVudElkOiBzdHJpbmdcbiAgKSA9PiBQcm9taXNlPHVua25vd24gfCBudWxsPjtcbiAgLyoqIExvYWQgbmV4dCB0cmFjZSBwYWdlIHdoZW4gdmVydGljYWwgc2Nyb2xsIHJlYWNoZXMgYm90dG9tLiAqL1xuICBvbkxvYWRNb3JlU3BhbnM/OiAoKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbiAgLyoqIFdoZXRoZXIgdHJhY2UgcGFnaW5hdGlvbiBoYXMgbW9yZSBkYXRhIHRvIGxvYWQuICovXG4gIGhhc01vcmVTcGFucz86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRyYWNlIHBhZ2luYXRpb24gaXMgY3VycmVudGx5IGZldGNoaW5nIGFub3RoZXIgcGFnZS4gKi9cbiAgaXNMb2FkaW5nTW9yZVNwYW5zPzogYm9vbGVhbjtcbiAgLyoqIEVuY3J5cHRpb24ga2V5IChhdmFpbGFibGUgYWZ0ZXIgRGVjcnlwdCksIHRocmVhZGVkIHRvIGV2ZW50IGxpc3QgZm9yIHJlLWxvYWRpbmcgKi9cbiAgZW5jcnlwdGlvbktleT86IFVpbnQ4QXJyYXk7XG4gIC8qKiBDYWxsYmFjayB0byBpbml0aWF0ZSBkZWNyeXB0aW9uIG9mIGVuY3J5cHRlZCBydW4gZGF0YSAqL1xuICBvbkRlY3J5cHQ/OiAoKSA9PiB2b2lkO1xuICAvKiogV2hldGhlciB0aGUgZW5jcnlwdGlvbiBrZXkgaXMgY3VycmVudGx5IGJlaW5nIGZldGNoZWQgKi9cbiAgaXNEZWNyeXB0aW5nPzogYm9vbGVhbjtcbn0pID0+IHtcbiAgY29uc3QgdG9hc3QgPSB1c2VUb2FzdCgpO1xuICBjb25zdCBbc2VsZWN0ZWRTcGFuLCBzZXRTZWxlY3RlZFNwYW5dID0gdXNlU3RhdGU8U2VsZWN0ZWRTcGFuSW5mbyB8IG51bGw+KFxuICAgIG51bGxcbiAgKTtcbiAgY29uc3QgW3BhbmVsV2lkdGgsIHNldFBhbmVsV2lkdGhdID0gdXNlU3RhdGUoREVGQVVMVF9QQU5FTF9XSURUSCk7XG4gIGNvbnN0IFtkZXNlbGVjdFRyaWdnZXIsIHNldERlc2VsZWN0VHJpZ2dlcl0gPSB1c2VTdGF0ZSgwKTtcbiAgY29uc3QgW3NlbGVjdFJlcXVlc3QsIHNldFNlbGVjdFJlcXVlc3RdID0gdXNlU3RhdGU8e1xuICAgIGlkOiBzdHJpbmc7XG4gICAgdG9rZW46IG51bWJlcjtcbiAgfSB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IGlzTGl2ZSA9IEJvb2xlYW4ocnVuICYmICFydW4uY29tcGxldGVkQXQpO1xuXG4gIC8vIEJ1aWxkIHRyYWNlIG9ubHkgd2hlbiBhY3R1YWwgZGF0YSBjaGFuZ2VzIOKAlCBubyB0aW1lci1kcml2ZW4gcmVidWlsZHMuXG4gIC8vIEFjdGl2ZSBzcGFuIHdpZHRocyBhcmUgYW5pbWF0ZWQgaW1wZXJhdGl2ZWx5IGJ5IHVzZUxpdmVUaWNrIGF0IDYwZnBzLlxuICBjb25zdCB0cmFjZVdpdGhNZXRhOiBUcmFjZVdpdGhNZXRhIHwgdW5kZWZpbmVkID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFydW4/LnJ1bklkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gYnVpbGRUcmFjZShydW4sIGV2ZW50cywgbmV3IERhdGUoKSk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwcyAtLSBgbmV3IERhdGUoKWAgaXMgaW50ZW50aW9uYWxseSBub3QgYSBkZXA7IHVzZUxpdmVUaWNrIGhhbmRsZXMgbGl2ZSBncm93dGhcbiAgfSwgW3J1biwgZXZlbnRzXSk7XG4gIGNvbnN0IHRyYWNlID0gdHJhY2VXaXRoTWV0YTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChlcnJvciAmJiAhaXNMb2FkaW5nKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIHRvYXN0LmVycm9yKCdFcnJvciBsb2FkaW5nIHdvcmtmbG93IHRyYWNlIGRhdGEnLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBlcnJvci5tZXNzYWdlLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbZXJyb3IsIGlzTG9hZGluZ10pO1xuXG4gIGNvbnN0IGhhbmRsZVNwYW5TZWxlY3QgPSB1c2VDYWxsYmFjayhcbiAgICAoaW5mbzogU3BhblNlbGVjdGlvbkluZm8pID0+IHtcbiAgICAgIG9uU3BhblNlbGVjdD8uKGluZm8pO1xuICAgIH0sXG4gICAgW29uU3BhblNlbGVjdF1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVTZWxlY3Rpb25DaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoaW5mbzogU2VsZWN0ZWRTcGFuSW5mbyB8IG51bGwpID0+IHtcbiAgICAgIGlmIChpbmZvKSB7XG4gICAgICAgIC8vIEZpbHRlciByYXcgZXZlbnRzIGJ5IHRoZSBzZWxlY3RlZCBzcGFuJ3MgY29ycmVsYXRpb25JZCAoc3RlcElkL2hvb2tJZClcbiAgICAgICAgLy8gVGhpcyBieXBhc3NlcyB0aGUgdHJhY2Ugd29ya2VyIHBpcGVsaW5lIGVudGlyZWx5LlxuICAgICAgICBjb25zdCBjb3JyZWxhdGlvbklkID0gaW5mby5zcGFuSWQ7XG4gICAgICAgIGNvbnN0IHJhd0V2ZW50cyA9IGNvcnJlbGF0aW9uSWRcbiAgICAgICAgICA/IGV2ZW50cy5maWx0ZXIoKGUpID0+IGUuY29ycmVsYXRpb25JZCA9PT0gY29ycmVsYXRpb25JZClcbiAgICAgICAgICA6IFtdO1xuICAgICAgICBzZXRTZWxlY3RlZFNwYW4oeyAuLi5pbmZvLCByYXdFdmVudHMgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRTZWxlY3RlZFNwYW4obnVsbCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbZXZlbnRzXVxuICApO1xuXG4gIC8vIEtlZXAgc2VsZWN0ZWQgc3BhbiByYXcgZXZlbnRzIGxpdmUgYXMgcG9sbGluZyB1cGRhdGVzIGFycml2ZS5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBjb3JyZWxhdGlvbklkID0gc2VsZWN0ZWRTcGFuPy5zcGFuSWQ7XG4gICAgaWYgKCFjb3JyZWxhdGlvbklkKSByZXR1cm47XG5cbiAgICBjb25zdCBuZXh0UmF3RXZlbnRzID0gZXZlbnRzLmZpbHRlcihcbiAgICAgIChlKSA9PiBlLmNvcnJlbGF0aW9uSWQgPT09IGNvcnJlbGF0aW9uSWRcbiAgICApO1xuICAgIHNldFNlbGVjdGVkU3BhbigocHJldikgPT4ge1xuICAgICAgaWYgKCFwcmV2IHx8IHByZXYuc3BhbklkICE9PSBjb3JyZWxhdGlvbklkKSB7XG4gICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwcmV2UmF3RXZlbnRzID0gcHJldi5yYXdFdmVudHMgPz8gW107XG4gICAgICBjb25zdCBpc1NhbWUgPVxuICAgICAgICBwcmV2UmF3RXZlbnRzLmxlbmd0aCA9PT0gbmV4dFJhd0V2ZW50cy5sZW5ndGggJiZcbiAgICAgICAgcHJldlJhd0V2ZW50cy5ldmVyeShcbiAgICAgICAgICAoZXZlbnQsIGluZGV4KSA9PiBldmVudC5ldmVudElkID09PSBuZXh0UmF3RXZlbnRzW2luZGV4XT8uZXZlbnRJZFxuICAgICAgICApO1xuICAgICAgaWYgKGlzU2FtZSkge1xuICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgcmF3RXZlbnRzOiBuZXh0UmF3RXZlbnRzLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfSwgW2V2ZW50cywgc2VsZWN0ZWRTcGFuPy5zcGFuSWRdKTtcblxuICAvLyBSZXNldCBzZWxlY3RlZCBzcGFuIHdoZW4gbmF2aWdhdGluZyB0byBhIGRpZmZlcmVudCBydW5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRTZWxlY3RlZFNwYW4obnVsbCk7XG4gICAgc2V0RGVzZWxlY3RUcmlnZ2VyKChuKSA9PiBuICsgMSk7XG4gIH0sIFtydW4/LnJ1bklkXSk7XG5cbiAgY29uc3QgaGFuZGxlQ2xvc2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0U2VsZWN0ZWRTcGFuKG51bGwpO1xuICAgIHNldERlc2VsZWN0VHJpZ2dlcigobikgPT4gbiArIDEpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaGFuZGxlUmVzaXplID0gdXNlQ2FsbGJhY2soKGRlbHRhWDogbnVtYmVyKSA9PiB7XG4gICAgc2V0UGFuZWxXaWR0aCgodykgPT4gTWF0aC5tYXgoTUlOX1BBTkVMX1dJRFRILCB3ICsgZGVsdGFYKSk7XG4gIH0sIFtdKTtcbiAgY29uc3Qgc2VsZWN0ZWRTcGFuSW5kZXggPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIXNlbGVjdGVkU3Bhbj8uc3BhbklkIHx8ICF0cmFjZSkgcmV0dXJuIC0xO1xuICAgIHJldHVybiB0cmFjZS5zcGFucy5maW5kSW5kZXgoKHNwYW4pID0+IHNwYW4uc3BhbklkID09PSBzZWxlY3RlZFNwYW4uc3BhbklkKTtcbiAgfSwgW3NlbGVjdGVkU3Bhbj8uc3BhbklkLCB0cmFjZV0pO1xuICBjb25zdCBjYW5TZWxlY3RQcmV2U3BhbiA9IHNlbGVjdGVkU3BhbkluZGV4ID4gMDtcbiAgY29uc3QgY2FuU2VsZWN0TmV4dFNwYW4gPVxuICAgIHNlbGVjdGVkU3BhbkluZGV4ID49IDAgJiZcbiAgICB0cmFjZSAhPSBudWxsICYmXG4gICAgc2VsZWN0ZWRTcGFuSW5kZXggPCB0cmFjZS5zcGFucy5sZW5ndGggLSAxO1xuICBjb25zdCBoYW5kbGVTZWxlY3RQcmV2U3BhbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoIXRyYWNlIHx8IHNlbGVjdGVkU3BhbkluZGV4IDw9IDApIHJldHVybjtcbiAgICBjb25zdCB0YXJnZXRJZCA9IHRyYWNlLnNwYW5zW3NlbGVjdGVkU3BhbkluZGV4IC0gMV0/LnNwYW5JZDtcbiAgICBpZiAoIXRhcmdldElkKSByZXR1cm47XG4gICAgc2V0U2VsZWN0UmVxdWVzdCh7IGlkOiB0YXJnZXRJZCwgdG9rZW46IERhdGUubm93KCkgfSk7XG4gIH0sIFtzZWxlY3RlZFNwYW5JbmRleCwgdHJhY2VdKTtcbiAgY29uc3QgaGFuZGxlU2VsZWN0TmV4dFNwYW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKCF0cmFjZSB8fCBzZWxlY3RlZFNwYW5JbmRleCA8IDApIHJldHVybjtcbiAgICBjb25zdCB0YXJnZXRJZCA9IHRyYWNlLnNwYW5zW3NlbGVjdGVkU3BhbkluZGV4ICsgMV0/LnNwYW5JZDtcbiAgICBpZiAoIXRhcmdldElkKSByZXR1cm47XG4gICAgc2V0U2VsZWN0UmVxdWVzdCh7IGlkOiB0YXJnZXRJZCwgdG9rZW46IERhdGUubm93KCkgfSk7XG4gIH0sIFtzZWxlY3RlZFNwYW5JbmRleCwgdHJhY2VdKTtcblxuICAvLyBHZXQgdGhlIHNlbGVjdGVkIHNwYW4gbmFtZSBmb3IgdGhlIHBhbmVsIGhlYWRlclxuICBjb25zdCBzZWxlY3RlZFNwYW5OYW1lID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFzZWxlY3RlZFNwYW4/LmRhdGEpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZGF0YSA9IHNlbGVjdGVkU3Bhbi5kYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGNvbnN0IHN0ZXBOYW1lID0gZGF0YS5zdGVwTmFtZSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgY29uc3Qgd29ya2Zsb3dOYW1lID0gZGF0YS53b3JrZmxvd05hbWUgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiAoXG4gICAgICAoc3RlcE5hbWUgPyBwYXJzZVN0ZXBOYW1lKHN0ZXBOYW1lKT8uc2hvcnROYW1lIDogdW5kZWZpbmVkKSA/P1xuICAgICAgKHdvcmtmbG93TmFtZSA/IHBhcnNlV29ya2Zsb3dOYW1lKHdvcmtmbG93TmFtZSk/LnNob3J0TmFtZSA6IHVuZGVmaW5lZCkgPz9cbiAgICAgIHN0ZXBOYW1lID8/XG4gICAgICB3b3JrZmxvd05hbWUgPz9cbiAgICAgIChkYXRhLmhvb2tJZCBhcyBzdHJpbmcpID8/XG4gICAgICAnRGV0YWlscydcbiAgICApO1xuICB9LCBbc2VsZWN0ZWRTcGFuPy5kYXRhXSk7XG5cbiAgaWYgKCF0cmFjZSkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIHctZnVsbCBoLWZ1bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJib3JkZXItYiBib3JkZXItZ3JheS1hbHBoYS00MDAgdy1mdWxsXCIgLz5cbiAgICAgICAgPFNrZWxldG9uIGNsYXNzTmFtZT1cInctZnVsbCBtbC0yIG10LTEgbWItMSBoLVs1NnB4XVwiIC8+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC0yIHJlbGF0aXZlIHctZnVsbFwiPlxuICAgICAgICAgIDxTa2VsZXRvbiBjbGFzc05hbWU9XCJ3LWZ1bGwgbXQtNiBoLVsyMHB4XVwiIC8+XG4gICAgICAgICAgPFNrZWxldG9uIGNsYXNzTmFtZT1cInctWzEwJV0gbXQtMiBtbC02IGgtWzIwcHhdXCIgLz5cbiAgICAgICAgICA8U2tlbGV0b24gY2xhc3NOYW1lPVwidy1bMTAlXSBtdC0yIG1sLTEyIGgtWzIwcHhdXCIgLz5cbiAgICAgICAgICA8U2tlbGV0b24gY2xhc3NOYW1lPVwidy1bMjAlXSBtdC0yIG1sLTE2IGgtWzIwcHhdXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIHctZnVsbCBoLWZ1bGwgZmxleCBmbGV4LXJvd1wiPlxuICAgICAgey8qIFRpbWVsaW5lICh0YWtlcyByZW1haW5pbmcgc3BhY2UpICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgbWluLXctMCByZWxhdGl2ZVwiPlxuICAgICAgICA8VHJhY2VWaWV3ZXJDb250ZXh0UHJvdmlkZXJcbiAgICAgICAgICBjdXN0b21TcGFuQ2xhc3NOYW1lRnVuYz17Z2V0Q3VzdG9tU3BhbkNsYXNzTmFtZX1cbiAgICAgICAgICBjdXN0b21TcGFuRXZlbnRDbGFzc05hbWVGdW5jPXtnZXRDdXN0b21TcGFuRXZlbnRDbGFzc05hbWV9XG4gICAgICAgID5cbiAgICAgICAgICA8U2VsZWN0aW9uQnJpZGdlIG9uU2VsZWN0aW9uQ2hhbmdlPXtoYW5kbGVTZWxlY3Rpb25DaGFuZ2V9IC8+XG4gICAgICAgICAgPERlc2VsZWN0QnJpZGdlIHRyaWdnZXJEZXNlbGVjdD17ZGVzZWxlY3RUcmlnZ2VyfSAvPlxuICAgICAgICAgIDxTZWxlY3RCcmlkZ2Ugc2VsZWN0UmVxdWVzdD17c2VsZWN0UmVxdWVzdH0gLz5cbiAgICAgICAgICA8VHJhY2VWaWV3ZXJXaXRoQ29udGV4dE1lbnVcbiAgICAgICAgICAgIHRyYWNlPXt0cmFjZX1cbiAgICAgICAgICAgIHJ1bj17cnVufVxuICAgICAgICAgICAgaXNMaXZlPXtpc0xpdmV9XG4gICAgICAgICAgICBvbldha2VVcFNsZWVwPXtvbldha2VVcFNsZWVwfVxuICAgICAgICAgICAgb25DYW5jZWxSdW49e29uQ2FuY2VsUnVufVxuICAgICAgICAgICAgb25SZXNvbHZlSG9vaz17b25SZXNvbHZlSG9va31cbiAgICAgICAgICAgIG9uTG9hZE1vcmVTcGFucz17b25Mb2FkTW9yZVNwYW5zfVxuICAgICAgICAgICAgaGFzTW9yZVNwYW5zPXtoYXNNb3JlU3BhbnN9XG4gICAgICAgICAgICBpc0xvYWRpbmdNb3JlU3BhbnM9e2lzTG9hZGluZ01vcmVTcGFuc31cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VHJhY2VWaWV3ZXJUaW1lbGluZVxuICAgICAgICAgICAgICBlYWdlclJlbmRlclxuICAgICAgICAgICAgICBoZWlnaHQ9XCIxMDAlXCJcbiAgICAgICAgICAgICAgaXNMaXZlPXtpc0xpdmV9XG4gICAgICAgICAgICAgIHRyYWNlPXt0cmFjZX1cbiAgICAgICAgICAgICAga25vd25EdXJhdGlvbk1zPXt0cmFjZVdpdGhNZXRhPy5rbm93bkR1cmF0aW9uTXN9XG4gICAgICAgICAgICAgIGhhc01vcmVEYXRhPXtoYXNNb3JlU3BhbnMgfHwgQm9vbGVhbihpc0xvYWRpbmcpfVxuICAgICAgICAgICAgICBmb290ZXI9e1xuICAgICAgICAgICAgICAgIDxUcmFjZVZpZXdlckZvb3RlclxuICAgICAgICAgICAgICAgICAgaGFzTW9yZT17aGFzTW9yZVNwYW5zfVxuICAgICAgICAgICAgICAgICAgaXNMaXZlPXtpc0xpdmV9XG4gICAgICAgICAgICAgICAgICBpc0luaXRpYWxMb2FkaW5nPXtCb29sZWFuKGlzTG9hZGluZyl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1RyYWNlVmlld2VyV2l0aENvbnRleHRNZW51PlxuICAgICAgICA8L1RyYWNlVmlld2VyQ29udGV4dFByb3ZpZGVyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBEZXRhaWwgcGFuZWwgKHJlbmRlcmVkIG91dHNpZGUgdGhlIGNvbnRleHQsIGFzIGEgc2libGluZykgKi99XG4gICAgICB7c2VsZWN0ZWRTcGFuICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT1cInJlbGF0aXZlIGJvcmRlci1sIGZsZXgtc2hyaW5rLTAgZmxleCBmbGV4LWNvbFwiXG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIHdpZHRoOiBwYW5lbFdpZHRoLFxuICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICd2YXIoLS1kcy1ncmF5LTIwMCknLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndmFyKC0tZHMtYmFja2dyb3VuZC0xMDApJyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPFBhbmVsUmVzaXplSGFuZGxlIG9uUmVzaXplPXtoYW5kbGVSZXNpemV9IC8+XG4gICAgICAgICAgey8qIFBhbmVsIGhlYWRlciAqL31cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcHgtMyBweS0yIGJvcmRlci15IGZsZXgtc2hyaW5rLTBcIlxuICAgICAgICAgICAgc3R5bGU9e3sgYm9yZGVyQ29sb3I6ICd2YXIoLS1kcy1ncmF5LTIwMCknIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtaW4tdy0wIGZsZXgtMVwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LW1lZGl1bSB0cnVuY2F0ZVwiXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6ICd2YXIoLS1kcy1ncmF5LTEwMDApJyB9fVxuICAgICAgICAgICAgICAgIHRpdGxlPXtzZWxlY3RlZFNwYW5OYW1lfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3NlbGVjdGVkU3Bhbk5hbWV9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiUHJldmlvdXMgc3BhblwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VsZWN0UHJldlNwYW59XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFjYW5TZWxlY3RQcmV2U3Bhbn1cbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiA2LFxuICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0LFxuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNCxcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDYsXG4gICAgICAgICAgICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJ3ZhcigtLWRzLWdyYXktNzAwKScsXG4gICAgICAgICAgICAgICAgICBjdXJzb3I6IGNhblNlbGVjdFByZXZTcGFuID8gJ3BvaW50ZXInIDogJ25vdC1hbGxvd2VkJyxcbiAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IGNhblNlbGVjdFByZXZTcGFuID8gMSA6IDAuNDUsXG4gICAgICAgICAgICAgICAgICBmbGV4U2hyaW5rOiAwLFxuICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogJ2JhY2tncm91bmQgMC4xNXMnLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKCFjYW5TZWxlY3RQcmV2U3BhbikgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgZS5jdXJyZW50VGFyZ2V0LnN0eWxlLmJhY2tncm91bmQgPSAndmFyKC0tZHMtZ3JheS1hbHBoYS0xMDApJztcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgIGUuY3VycmVudFRhcmdldC5zdHlsZS5iYWNrZ3JvdW5kID0gJ3RyYW5zcGFyZW50JztcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENoZXZyb25VcCBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiTmV4dCBzcGFuXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVTZWxlY3ROZXh0U3Bhbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWNhblNlbGVjdE5leHRTcGFufVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IDIsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogMjQsXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0LFxuICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogNixcbiAgICAgICAgICAgICAgICAgIGJvcmRlcjogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAndmFyKC0tZHMtZ3JheS03MDApJyxcbiAgICAgICAgICAgICAgICAgIGN1cnNvcjogY2FuU2VsZWN0TmV4dFNwYW4gPyAncG9pbnRlcicgOiAnbm90LWFsbG93ZWQnLFxuICAgICAgICAgICAgICAgICAgb3BhY2l0eTogY2FuU2VsZWN0TmV4dFNwYW4gPyAxIDogMC40NSxcbiAgICAgICAgICAgICAgICAgIGZsZXhTaHJpbms6IDAsXG4gICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAnYmFja2dyb3VuZCAwLjE1cycsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoIWNhblNlbGVjdE5leHRTcGFuKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICBlLmN1cnJlbnRUYXJnZXQuc3R5bGUuYmFja2dyb3VuZCA9ICd2YXIoLS1kcy1ncmF5LWFscGhhLTEwMCknO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgZS5jdXJyZW50VGFyZ2V0LnN0eWxlLmJhY2tncm91bmQgPSAndHJhbnNwYXJlbnQnO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q2hldnJvbkRvd24gc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBib3JkZXJMZWZ0OiAnMXB4IHNvbGlkIHZhcigtLWRzLWdyYXktMzAwKScsXG4gICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogNixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZSBwYW5lbFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlQ2xvc2V9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogNixcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNCxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogMjQsXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA2LFxuICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1kcy1ncmF5LTcwMCknLFxuICAgICAgICAgICAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICBmbGV4U2hyaW5rOiAwLFxuICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogJ2JhY2tncm91bmQgMC4xNXMnLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgZS5jdXJyZW50VGFyZ2V0LnN0eWxlLmJhY2tncm91bmQgPSAndmFyKC0tZHMtZ3JheS1hbHBoYS0xMDApJztcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgIGUuY3VycmVudFRhcmdldC5zdHlsZS5iYWNrZ3JvdW5kID0gJ3RyYW5zcGFyZW50JztcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFggc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgey8qIFBhbmVsIGJvZHkgKi99XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgb3ZlcmZsb3cteS1hdXRvXCI+XG4gICAgICAgICAgICA8RXJyb3JCb3VuZGFyeSB0aXRsZT1cIkZhaWxlZCB0byBsb2FkIGVudGl0eSBkZXRhaWxzXCI+XG4gICAgICAgICAgICAgIDxFbnRpdHlEZXRhaWxQYW5lbFxuICAgICAgICAgICAgICAgIHJ1bj17cnVufVxuICAgICAgICAgICAgICAgIG9uU3RyZWFtQ2xpY2s9e29uU3RyZWFtQ2xpY2t9XG4gICAgICAgICAgICAgICAgb25SdW5DbGljaz17b25SdW5DbGlja31cbiAgICAgICAgICAgICAgICBzcGFuRGV0YWlsRGF0YT17c3BhbkRldGFpbERhdGEgPz8gbnVsbH1cbiAgICAgICAgICAgICAgICBzcGFuRGV0YWlsRXJyb3I9e3NwYW5EZXRhaWxFcnJvcn1cbiAgICAgICAgICAgICAgICBzcGFuRGV0YWlsTG9hZGluZz17c3BhbkRldGFpbExvYWRpbmd9XG4gICAgICAgICAgICAgICAgb25TcGFuU2VsZWN0PXtoYW5kbGVTcGFuU2VsZWN0fVxuICAgICAgICAgICAgICAgIG9uV2FrZVVwU2xlZXA9e29uV2FrZVVwU2xlZXB9XG4gICAgICAgICAgICAgICAgb25Mb2FkRXZlbnREYXRhPXtvbkxvYWRFdmVudERhdGF9XG4gICAgICAgICAgICAgICAgb25SZXNvbHZlSG9vaz17b25SZXNvbHZlSG9va31cbiAgICAgICAgICAgICAgICBlbmNyeXB0aW9uS2V5PXtlbmNyeXB0aW9uS2V5fVxuICAgICAgICAgICAgICAgIG9uRGVjcnlwdD17b25EZWNyeXB0fVxuICAgICAgICAgICAgICAgIGlzRGVjcnlwdGluZz17aXNEZWNyeXB0aW5nfVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkU3Bhbj17c2VsZWN0ZWRTcGFufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19
@@ -65,4 +65,4 @@ export function shouldShowVerticalLine(eventType) {
65
65
  // Hide vertical lines for all other workflow events
66
66
  return false;
67
67
  }
68
- //# sourceMappingURL=event-colors.js.map
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvd29ya2Zsb3ctdHJhY2VzL2V2ZW50LWNvbG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQWlCSDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUMzQixTQUE2QjtJQUU3QixpQkFBaUI7SUFDakIsSUFBSSxTQUFTLEtBQUssYUFBYSxJQUFJLFNBQVMsS0FBSyxZQUFZLEVBQUUsQ0FBQztRQUM5RCxPQUFPO1lBQ0wsS0FBSyxFQUFFLG1CQUFtQjtZQUMxQixVQUFVLEVBQUUsbUJBQW1CO1lBQy9CLE1BQU0sRUFBRSxtQkFBbUI7WUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtZQUN6QixTQUFTLEVBQUUsbUJBQW1CO1NBQy9CLENBQUM7SUFDSixDQUFDO0lBRUQsMEJBQTBCO0lBQzFCLElBQUksU0FBUyxLQUFLLGVBQWUsRUFBRSxDQUFDO1FBQ2xDLE9BQU87WUFDTCxLQUFLLEVBQUUscUJBQXFCO1lBQzVCLFVBQVUsRUFBRSxxQkFBcUI7WUFDakMsTUFBTSxFQUFFLHFCQUFxQjtZQUM3QixJQUFJLEVBQUUscUJBQXFCO1lBQzNCLFNBQVMsRUFBRSxxQkFBcUI7U0FDakMsQ0FBQztJQUNKLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsSUFDRSxTQUFTLEtBQUssY0FBYztRQUM1QixTQUFTLEtBQUssZUFBZTtRQUM3QixTQUFTLEtBQUssZUFBZSxFQUM3QixDQUFDO1FBQ0QsT0FBTztZQUNMLEtBQUssRUFBRSxzQkFBc0I7WUFDN0IsVUFBVSxFQUFFLHNCQUFzQjtZQUNsQyxNQUFNLEVBQUUsc0JBQXNCO1lBQzlCLElBQUksRUFBRSxzQkFBc0I7WUFDNUIsU0FBUyxFQUFFLHNCQUFzQjtTQUNsQyxDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQjtJQUNqQixPQUFPO1FBQ0wsS0FBSyxFQUFFLG9CQUFvQjtRQUMzQixVQUFVLEVBQUUsb0JBQW9CO1FBQ2hDLE1BQU0sRUFBRSxvQkFBb0I7UUFDNUIsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixTQUFTLEVBQUUsb0JBQW9CO0tBQ2hDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxTQUE2QjtJQUNsRSw4Q0FBOEM7SUFDOUMsSUFDRSxTQUFTLEtBQUssY0FBYztRQUM1QixTQUFTLEtBQUssZUFBZTtRQUM3QixTQUFTLEtBQUssZUFBZSxFQUM3QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29sb3IgdXRpbGl0aWVzIGZvciB3b3JrZmxvdyBldmVudCBtYXJrZXJzXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBFdmVudCB9IGZyb20gJ0B3b3JrZmxvdy93b3JsZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRDb2xvclBhbGV0dGUge1xuICAvKiogQ29sb3Igb2YgdGhlIGRpYW1vbmQvbWFya2VyIGl0c2VsZiAqL1xuICBjb2xvcjogc3RyaW5nO1xuICAvKiogQmFja2dyb3VuZCBjb2xvciBmb3IgaG92ZXIgaW5mbyBwb3B1cCAqL1xuICBiYWNrZ3JvdW5kOiBzdHJpbmc7XG4gIC8qKiBCb3JkZXIgY29sb3IgZm9yIGhvdmVyIGluZm8gcG9wdXAgKi9cbiAgYm9yZGVyOiBzdHJpbmc7XG4gIC8qKiBUZXh0IGNvbG9yIGZvciBldmVudCBuYW1lIGluIGhvdmVyIHBvcHVwICovXG4gIHRleHQ6IHN0cmluZztcbiAgLyoqIFNlY29uZGFyeSB0ZXh0IGNvbG9yIGZvciB0aW1lc3RhbXAgaW4gaG92ZXIgcG9wdXAgKi9cbiAgc2Vjb25kYXJ5OiBzdHJpbmc7XG59XG5cbi8qKlxuICogR2V0IHRoZSBjb2xvciBwYWxldHRlIGZvciBhbiBldmVudCBiYXNlZCBvbiBpdHMgdHlwZVxuICogLSBSZWQgZm9yIGZhaWx1cmVzIChzdGVwX2ZhaWxlZCwgcnVuX2ZhaWxlZClcbiAqIC0gT3JhbmdlL3llbGxvdyBmb3IgcmV0cmllcyAoc3RlcF9yZXRyeWluZylcbiAqIC0gUHVycGxlIGZvciB3ZWJob29rLXJlbGF0ZWQgZXZlbnRzXG4gKiAtIEJsdWUgb3RoZXJ3aXNlIChkZWZhdWx0KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXZlbnRDb2xvcihcbiAgZXZlbnRUeXBlOiBFdmVudFsnZXZlbnRUeXBlJ11cbik6IEV2ZW50Q29sb3JQYWxldHRlIHtcbiAgLy8gRmFpbHVyZXMgLSBSZWRcbiAgaWYgKGV2ZW50VHlwZSA9PT0gJ3N0ZXBfZmFpbGVkJyB8fCBldmVudFR5cGUgPT09ICdydW5fZmFpbGVkJykge1xuICAgIHJldHVybiB7XG4gICAgICBjb2xvcjogJ3ZhcigtLWRzLXJlZC02MDApJyxcbiAgICAgIGJhY2tncm91bmQ6ICd2YXIoLS1kcy1yZWQtMTAwKScsXG4gICAgICBib3JkZXI6ICd2YXIoLS1kcy1yZWQtNTAwKScsXG4gICAgICB0ZXh0OiAndmFyKC0tZHMtcmVkLTkwMCknLFxuICAgICAgc2Vjb25kYXJ5OiAndmFyKC0tZHMtcmVkLTcwMCknLFxuICAgIH07XG4gIH1cblxuICAvLyBSZXRyaWVzIC0gT3JhbmdlL1llbGxvd1xuICBpZiAoZXZlbnRUeXBlID09PSAnc3RlcF9yZXRyeWluZycpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6ICd2YXIoLS1kcy1hbWJlci02MDApJyxcbiAgICAgIGJhY2tncm91bmQ6ICd2YXIoLS1kcy1hbWJlci0xMDApJyxcbiAgICAgIGJvcmRlcjogJ3ZhcigtLWRzLWFtYmVyLTUwMCknLFxuICAgICAgdGV4dDogJ3ZhcigtLWRzLWFtYmVyLTkwMCknLFxuICAgICAgc2Vjb25kYXJ5OiAndmFyKC0tZHMtYW1iZXItNzAwKScsXG4gICAgfTtcbiAgfVxuXG4gIC8vIFdlYmhvb2stcmVsYXRlZCAtIFB1cnBsZVxuICBpZiAoXG4gICAgZXZlbnRUeXBlID09PSAnaG9va19jcmVhdGVkJyB8fFxuICAgIGV2ZW50VHlwZSA9PT0gJ2hvb2tfcmVjZWl2ZWQnIHx8XG4gICAgZXZlbnRUeXBlID09PSAnaG9va19kaXNwb3NlZCdcbiAgKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiAndmFyKC0tZHMtcHVycGxlLTYwMCknLFxuICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLWRzLXB1cnBsZS0xMDApJyxcbiAgICAgIGJvcmRlcjogJ3ZhcigtLWRzLXB1cnBsZS01MDApJyxcbiAgICAgIHRleHQ6ICd2YXIoLS1kcy1wdXJwbGUtOTAwKScsXG4gICAgICBzZWNvbmRhcnk6ICd2YXIoLS1kcy1wdXJwbGUtNzAwKScsXG4gICAgfTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgLSBCbHVlXG4gIHJldHVybiB7XG4gICAgY29sb3I6ICd2YXIoLS1kcy1ibHVlLTYwMCknLFxuICAgIGJhY2tncm91bmQ6ICd2YXIoLS1kcy1ibHVlLTEwMCknLFxuICAgIGJvcmRlcjogJ3ZhcigtLWRzLWJsdWUtNTAwKScsXG4gICAgdGV4dDogJ3ZhcigtLWRzLWJsdWUtOTAwKScsXG4gICAgc2Vjb25kYXJ5OiAndmFyKC0tZHMtYmx1ZS03MDApJyxcbiAgfTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgd2hldGhlciB0byBzaG93IGEgdmVydGljYWwgbGluZSBmb3IgYW4gZXZlbnRcbiAqIC0gU2hvdyB2ZXJ0aWNhbCBsaW5lcyBmb3IgaG9vay1yZWxhdGVkIGV2ZW50c1xuICogLSBIaWRlIHZlcnRpY2FsIGxpbmVzIGZvciBhbGwgb3RoZXIgd29ya2Zsb3cgZXZlbnRzIGJ5IGRlZmF1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZFNob3dWZXJ0aWNhbExpbmUoZXZlbnRUeXBlOiBFdmVudFsnZXZlbnRUeXBlJ10pOiBib29sZWFuIHtcbiAgLy8gU2hvdyB2ZXJ0aWNhbCBsaW5lcyBmb3IgaG9vay1yZWxhdGVkIGV2ZW50c1xuICBpZiAoXG4gICAgZXZlbnRUeXBlID09PSAnaG9va19jcmVhdGVkJyB8fFxuICAgIGV2ZW50VHlwZSA9PT0gJ2hvb2tfcmVjZWl2ZWQnIHx8XG4gICAgZXZlbnRUeXBlID09PSAnaG9va19kaXNwb3NlZCdcbiAgKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyBIaWRlIHZlcnRpY2FsIGxpbmVzIGZvciBhbGwgb3RoZXIgd29ya2Zsb3cgZXZlbnRzXG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
@@ -84,4 +84,4 @@ export const getCustomSpanEventClassName = (spanEvent) => {
84
84
  // Default - Blue
85
85
  return styles.eventDefault;
86
86
  };
87
- //# sourceMappingURL=trace-colors.js.map
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UtY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvd29ya2Zsb3ctdHJhY2VzL3RyYWNlLWNvbG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUdILE9BQU8sTUFBTSxNQUFNLHlDQUF5QyxDQUFDO0FBRzdEOztHQUVHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FDekIsTUFBOEMsRUFDOUMsVUFBVSxHQUFHLEtBQUs7SUFFbEIsSUFBSSxVQUFVLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sTUFBTSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFFRCxRQUFRLE1BQU0sRUFBRSxDQUFDO1FBQ2YsS0FBSyxTQUFTO1lBQ1osT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQzVCLEtBQUssU0FBUztZQUNaLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUM1QixLQUFLLFdBQVc7WUFDZCxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDOUIsS0FBSyxXQUFXO1lBQ2QsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDO1FBQzlCLEtBQUssUUFBUTtZQUNYLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUMzQjtZQUNFLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsV0FBVyxDQUFDLFFBQWdCO0lBQ25DLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxJQUFjLEVBQVUsRUFBRTtJQUMvRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN4QyxNQUFNLFFBQVEsR0FBRyxVQUFVLEVBQUUsUUFBUSxDQUFDO0lBRXRDLElBQUksUUFBUSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ3hCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFZLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsUUFBUSxFQUFFLFFBQVEsQ0FBQztRQUVwQyx5Q0FBeUM7UUFDekMsSUFBSSxRQUFRLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdEMsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQzFCLENBQUM7UUFFRCxtQ0FBbUM7UUFDbkMsTUFBTSxVQUFVLEdBQUcsUUFBUSxFQUFFLE1BQU0sS0FBSyxTQUFTLENBQUM7UUFDbEQsT0FBTyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLFFBQVEsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUN2QixNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsSUFBbUIsQ0FBQztRQUMvQyxPQUFPLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksUUFBUSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ3hCLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxRQUFRLEtBQUssT0FBTyxFQUFFLENBQUM7UUFDekIsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUN6QyxTQUF3QixFQUNoQixFQUFFO0lBQ1YsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFFdkMsdUJBQXVCO0lBQ3ZCLElBQUksU0FBUyxLQUFLLGFBQWEsSUFBSSxTQUFTLEtBQUssWUFBWSxFQUFFLENBQUM7UUFDOUQsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCwrQkFBK0I7SUFDL0IsSUFBSSxTQUFTLEtBQUssZUFBZSxFQUFFLENBQUM7UUFDbEMsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxrQ0FBa0M7SUFDbEMsSUFDRSxTQUFTLEtBQUssY0FBYztRQUM1QixTQUFTLEtBQUssZUFBZTtRQUM3QixTQUFTLEtBQUssZUFBZSxFQUM3QixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxpQkFBaUI7SUFDakIsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDO0FBQzdCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29sb3IgdXRpbGl0aWVzIGZvciB3b3JrZmxvdyB0cmFjZXNcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFN0ZXAsIFdvcmtmbG93UnVuIH0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi4vdHJhY2Utdmlld2VyL3RyYWNlLXZpZXdlci5tb2R1bGUuY3NzJztcbmltcG9ydCB0eXBlIHsgU3Bhbk5vZGUsIFNwYW5Ob2RlRXZlbnQgfSBmcm9tICcuLi90cmFjZS12aWV3ZXIvdHlwZXMnO1xuXG4vKipcbiAqIEdldCB0aGUgQ1NTIGNsYXNzIG5hbWUgZm9yIGEgd29ya2Zsb3cgZW50aXR5IGJhc2VkIG9uIGl0cyBzdGF0dXNcbiAqL1xuZnVuY3Rpb24gZ2V0U3RhdHVzQ2xhc3NOYW1lKFxuICBzdGF0dXM6IFN0ZXBbJ3N0YXR1cyddIHwgV29ya2Zsb3dSdW5bJ3N0YXR1cyddLFxuICBpc1N0cmlwcGVkID0gZmFsc2Vcbik6IHN0cmluZyB7XG4gIGlmIChpc1N0cmlwcGVkICYmIHN0YXR1cyA9PT0gJ3BlbmRpbmcnKSB7XG4gICAgcmV0dXJuIHN0eWxlcy5zcGFuUGVuZGluZ1N0cmlwZWQ7XG4gIH1cblxuICBzd2l0Y2ggKHN0YXR1cykge1xuICAgIGNhc2UgJ3J1bm5pbmcnOlxuICAgICAgcmV0dXJuIHN0eWxlcy5zcGFuUnVubmluZztcbiAgICBjYXNlICdwZW5kaW5nJzpcbiAgICAgIHJldHVybiBzdHlsZXMuc3BhblBlbmRpbmc7XG4gICAgY2FzZSAnY29tcGxldGVkJzpcbiAgICAgIHJldHVybiBzdHlsZXMuc3BhbkNvbXBsZXRlZDtcbiAgICBjYXNlICdjYW5jZWxsZWQnOlxuICAgICAgcmV0dXJuIHN0eWxlcy5zcGFuQ2FuY2VsbGVkO1xuICAgIGNhc2UgJ2ZhaWxlZCc6XG4gICAgICByZXR1cm4gc3R5bGVzLnNwYW5GYWlsZWQ7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAnJztcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgc3RlcCBuYW1lIGluZGljYXRlcyBpdCdzIGEgc2xlZXAgc3RlcFxuICovXG5mdW5jdGlvbiBpc1NsZWVwU3RlcChzdGVwTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBTdHJpbmcoc3RlcE5hbWUpLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoJ3NsZWVwJyk7XG59XG5cbi8qKlxuICogR2V0IGN1c3RvbSBDU1MgY2xhc3MgbmFtZSBmb3IgYSBzcGFuIGJhc2VkIG9uIGl0cyBhdHRyaWJ1dGVzXG4gKiBUaGlzIGlzIGNhbGxlZCBkeW5hbWljYWxseSBieSB0aGUgdHJhY2Ugdmlld2VyIHRvIHN0eWxlIHNwYW5zXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDdXN0b21TcGFuQ2xhc3NOYW1lID0gKHNwYW46IFNwYW5Ob2RlKTogc3RyaW5nID0+IHtcbiAgY29uc3QgYXR0cmlidXRlcyA9IHNwYW4uc3Bhbi5hdHRyaWJ1dGVzO1xuICBjb25zdCByZXNvdXJjZSA9IGF0dHJpYnV0ZXM/LnJlc291cmNlO1xuXG4gIGlmIChyZXNvdXJjZSA9PT0gJ3N0ZXAnKSB7XG4gICAgY29uc3Qgc3RlcERhdGEgPSBhdHRyaWJ1dGVzLmRhdGEgYXMgU3RlcDtcbiAgICBjb25zdCBzdGVwTmFtZSA9IHN0ZXBEYXRhPy5zdGVwTmFtZTtcblxuICAgIC8vIERFUFJFQ0FURUQ6IENoZWNrIGlmIGl0J3MgYSBzbGVlcCBzdGVwXG4gICAgaWYgKHN0ZXBOYW1lICYmIGlzU2xlZXBTdGVwKHN0ZXBOYW1lKSkge1xuICAgICAgcmV0dXJuIHN0eWxlcy5zcGFuU2xlZXA7XG4gICAgfVxuXG4gICAgLy8gUmVndWxhciBzdGVwIC0gdXNlIHN0YXR1cyBjb2xvcnNcbiAgICBjb25zdCBpc1N0cmlwcGVkID0gc3RlcERhdGE/LnN0YXR1cyA9PT0gJ3BlbmRpbmcnO1xuICAgIHJldHVybiBnZXRTdGF0dXNDbGFzc05hbWUoc3RlcERhdGE/LnN0YXR1cywgaXNTdHJpcHBlZCk7XG4gIH1cblxuICBpZiAocmVzb3VyY2UgPT09ICdydW4nKSB7XG4gICAgY29uc3QgcnVuRGF0YSA9IGF0dHJpYnV0ZXMuZGF0YSBhcyBXb3JrZmxvd1J1bjtcbiAgICByZXR1cm4gZ2V0U3RhdHVzQ2xhc3NOYW1lKHJ1bkRhdGE/LnN0YXR1cywgZmFsc2UpO1xuICB9XG5cbiAgaWYgKHJlc291cmNlID09PSAnaG9vaycpIHtcbiAgICByZXR1cm4gc3R5bGVzLnNwYW5Ib29rO1xuICB9XG5cbiAgaWYgKHJlc291cmNlID09PSAnc2xlZXAnKSB7XG4gICAgcmV0dXJuIHN0eWxlcy5zcGFuU2xlZXA7XG4gIH1cblxuICAvLyBEZWZhdWx0OiBubyBjdXN0b20gY2xhc3NcbiAgcmV0dXJuICcnO1xufTtcblxuLyoqXG4gKiBHZXQgY3VzdG9tIENTUyBjbGFzcyBuYW1lIGZvciBhIHNwYW4gZXZlbnQgYmFzZWQgb24gaXRzIHR5cGVcbiAqIFRoaXMgaXMgY2FsbGVkIGR5bmFtaWNhbGx5IGJ5IHRoZSB0cmFjZSB2aWV3ZXIgdG8gc3R5bGUgZXZlbnQgbWFya2Vyc1xuICovXG5leHBvcnQgY29uc3QgZ2V0Q3VzdG9tU3BhbkV2ZW50Q2xhc3NOYW1lID0gKFxuICBzcGFuRXZlbnQ6IFNwYW5Ob2RlRXZlbnRcbik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGV2ZW50TmFtZSA9IHNwYW5FdmVudC5ldmVudC5uYW1lO1xuXG4gIC8vIEZhaWx1cmUgZXZlbnRzIC0gUmVkXG4gIGlmIChldmVudE5hbWUgPT09ICdzdGVwX2ZhaWxlZCcgfHwgZXZlbnROYW1lID09PSAncnVuX2ZhaWxlZCcpIHtcbiAgICByZXR1cm4gc3R5bGVzLmV2ZW50RmFpbGVkO1xuICB9XG5cbiAgLy8gUmV0cnkgZXZlbnRzIC0gT3JhbmdlL1llbGxvd1xuICBpZiAoZXZlbnROYW1lID09PSAnc3RlcF9yZXRyeWluZycpIHtcbiAgICByZXR1cm4gc3R5bGVzLmV2ZW50UmV0cnlpbmc7XG4gIH1cblxuICAvLyBXZWJob29rLXJlbGF0ZWQgZXZlbnRzIC0gUHVycGxlXG4gIGlmIChcbiAgICBldmVudE5hbWUgPT09ICdob29rX2NyZWF0ZWQnIHx8XG4gICAgZXZlbnROYW1lID09PSAnaG9va19yZWNlaXZlZCcgfHxcbiAgICBldmVudE5hbWUgPT09ICdob29rX2Rpc3Bvc2VkJ1xuICApIHtcbiAgICByZXR1cm4gc3R5bGVzLmV2ZW50SG9vaztcbiAgfVxuXG4gIC8vIERlZmF1bHQgLSBCbHVlXG4gIHJldHVybiBzdHlsZXMuZXZlbnREZWZhdWx0O1xufTtcbiJdfQ==
@@ -291,4 +291,4 @@ export function runToSpan(run, runEvents, nowTime) {
291
291
  : undefined,
292
292
  };
293
293
  }
294
- //# sourceMappingURL=trace-span-construction.js.map
294
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2Utc3Bhbi1jb25zdHJ1Y3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy93b3JrZmxvdy10cmFjZXMvdHJhY2Utc3Bhbi1jb25zdHJ1Y3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLElBQUksRUFBRSwwQkFBMEI7SUFDaEMsT0FBTyxFQUFFLE9BQU87Q0FDakIsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBNEIsSUFBSSxHQUFHLENBQUM7SUFDMUQsY0FBYztJQUNkLGVBQWU7SUFDZixlQUFlO0lBQ2YsY0FBYztJQUNkLGVBQWU7SUFDZixhQUFhO0lBQ2IsWUFBWTtJQUNaLGNBQWM7SUFDZCxnQkFBZ0I7Q0FDakIsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxNQUFlLEVBQ2YsV0FBVyxHQUFHLElBQUk7SUFFbEIsT0FBTyxNQUFNO1NBQ1YsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDaEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzdEO1NBQ0EsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQ3JCLFNBQVMsRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFD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eUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFM0QsT0FBTztRQUNMLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUN6QixJQUFJLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxTQUFTLElBQUksR0FBRyxDQUFDO1FBQ25FLElBQUksRUFBRSxDQUFDLEVBQUUscUJBQXFCO1FBQzlCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsT0FBTyxFQUFFLGdCQUFnQjtRQUN6QixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1FBQ25CLFVBQVUsRUFBRSxDQUFDO1FBQ2IsVUFBVTtRQUNWLEtBQUssRUFBRSxFQUFFO1FBQ1QsTUFBTTtRQUNOLFNBQVMsRUFBRSxjQUFjLENBQUMsYUFBYSxDQUFDO1FBQ3hDLE9BQU8sRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDO1FBQ2hDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDO1FBQ25ELDBGQUEwRjtRQUMxRixlQUFlLEVBQ2IsZUFBZSxJQUFJLGVBQWUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFO1lBQ3BFLENBQUMsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxTQUFTO0tBQ2hCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGdW5jdGlvbnMgZm9yIGNvbnN0cnVjdGluZyBPcGVuVGVsZW1ldHJ5IHNwYW5zIGZyb20gd29ya2Zsb3cgZW50aXRpZXNcbiAqL1xuXG5pbXBvcnQgeyBwYXJzZVN0ZXBOYW1lLCBwYXJzZVdvcmtmbG93TmFtZSB9IGZyb20gJ0B3b3JrZmxvdy91dGlscy9wYXJzZS1uYW1lJztcbmltcG9ydCB0eXBlIHsgRXZlbnQsIFdvcmtmbG93UnVuIH0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcbmltcG9ydCB0eXBlIHsgU3BhbiwgU3BhbkV2ZW50IH0gZnJvbSAnLi4vdHJhY2Utdmlld2VyL3R5cGVzJztcbmltcG9ydCB7IHNob3VsZFNob3dWZXJ0aWNhbExpbmUgfSBmcm9tICcuL2V2ZW50LWNvbG9ycyc7XG5pbXBvcnQgeyBjYWxjdWxhdGVEdXJhdGlvbiwgZGF0ZVRvT3RlbFRpbWUgfSBmcm9tICcuL3RyYWNlLXRpbWUtdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgV09SS0ZMT1dfTElCUkFSWSA9IHtcbiAgbmFtZTogJ3dvcmtmbG93LWRldmVsb3BtZW50LWtpdCcsXG4gIHZlcnNpb246ICc0LjAuMCcsXG59O1xuXG4vKipcbiAqIEV2ZW50IHR5cGVzIHRoYXQgc2hvdWxkIGJlIGRpc3BsYXllZCBhcyB2aXN1YWwgbWFya2VycyBpbiB0aGUgdHJhY2Ugdmlld2VyXG4gKi9cbmNvbnN0IE1BUktFUl9FVkVOVF9UWVBFUzogU2V0PEV2ZW50WydldmVudFR5cGUnXT4gPSBuZXcgU2V0KFtcbiAgJ2hvb2tfY3JlYXRlZCcsXG4gICdob29rX3JlY2VpdmVkJyxcbiAgJ2hvb2tfZGlzcG9zZWQnLFxuICAnc3RlcF9zdGFydGVkJyxcbiAgJ3N0ZXBfcmV0cnlpbmcnLFxuICAnc3RlcF9mYWlsZWQnLFxuICAncnVuX2ZhaWxlZCcsXG4gICd3YWl0X2NyZWF0ZWQnLFxuICAnd2FpdF9jb21wbGV0ZWQnLFxuXSk7XG5cbi8qKlxuICogQ29udmVydCB3b3JrZmxvdyBldmVudHMgdG8gc3BhbiBldmVudHNcbiAqIE9ubHkgaW5jbHVkZXMgZXZlbnRzIHRoYXQgc2hvdWxkIGJlIGRpc3BsYXllZCBhcyBtYXJrZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RXZlbnRzVG9TcGFuRXZlbnRzKFxuICBldmVudHM6IEV2ZW50W10sXG4gIGZpbHRlclR5cGVzID0gdHJ1ZVxuKTogU3BhbkV2ZW50W10ge1xuICByZXR1cm4gZXZlbnRzXG4gICAgLmZpbHRlcigoZXZlbnQpID0+XG4gICAgICBmaWx0ZXJUeXBlcyA/IE1BUktFUl9FVkVOVF9UWVBFUy5oYXMoZXZlbnQuZXZlbnRUeXBlKSA6IHRydWVcbiAgICApXG4gICAgLm1hcCgoZXZlbnQpID0+ICh7XG4gICAgICBuYW1lOiBldmVudC5ldmVudFR5cGUsXG4gICAgICB0aW1lc3RhbXA6IGRhdGVUb090ZWxUaW1lKGV2ZW50LmNyZWF0ZWRBdCksXG4gICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgIGV2ZW50SWQ6IGV2ZW50LmV2ZW50SWQsXG4gICAgICAgIGNvcnJlbGF0aW9uSWQ6IGV2ZW50LmNvcnJlbGF0aW9uSWQsXG4gICAgICAgIGV2ZW50RGF0YTogJ2V2ZW50RGF0YScgaW4gZXZlbnQgPyBldmVudC5ldmVudERhdGEgOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAgLy8gQ29udHJvbCB3aGV0aGVyIHRvIHNob3cgdmVydGljYWwgbGluZSBpbiB0aW1lbGluZVxuICAgICAgc2hvd1ZlcnRpY2FsTGluZTogc2hvdWxkU2hvd1ZlcnRpY2FsTGluZShldmVudC5ldmVudFR5cGUpLFxuICAgIH0pKTtcbn1cblxuZXhwb3J0IGNvbnN0IHdhaXRFdmVudHNUb1dhaXRFbnRpdHkgPSAoXG4gIGV2ZW50czogRXZlbnRbXVxuKToge1xuICB3YWl0SWQ6IHN0cmluZztcbiAgcnVuSWQ6IHN0cmluZztcbiAgY3JlYXRlZEF0OiBEYXRlO1xuICByZXN1bWVBdD86IERhdGU7XG4gIGNvbXBsZXRlZEF0PzogRGF0ZTtcbn0gfCBudWxsID0+IHtcbiAgY29uc3Qgc3RhcnRFdmVudCA9IGV2ZW50cy5maW5kKChldmVudCkgPT4gZXZlbnQuZXZlbnRUeXBlID09PSAnd2FpdF9jcmVhdGVkJyk7XG4gIGlmICghc3RhcnRFdmVudCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IGNvbXBsZXRlZEV2ZW50ID0gZXZlbnRzLmZpbmQoXG4gICAgKGV2ZW50KSA9PiBldmVudC5ldmVudFR5cGUgPT09ICd3YWl0X2NvbXBsZXRlZCdcbiAgKTtcbiAgcmV0dXJuIHtcbiAgICB3YWl0SWQ6IHN0YXJ0RXZlbnQuY29ycmVsYXRpb25JZCxcbiAgICBydW5JZDogc3RhcnRFdmVudC5ydW5JZCxcbiAgICBjcmVhdGVkQXQ6IHN0YXJ0RXZlbnQuY3JlYXRlZEF0LFxuICAgIHJlc3VtZUF0OiBzdGFydEV2ZW50LmV2ZW50RGF0YT8ucmVzdW1lQXRcbiAgICAgID8gbmV3IERhdGUoc3RhcnRFdmVudC5ldmVudERhdGEucmVzdW1lQXQpXG4gICAgICA6IHVuZGVmaW5lZCxcbiAgICBjb21wbGV0ZWRBdDogY29tcGxldGVkRXZlbnQ/LmNyZWF0ZWRBdCxcbiAgfTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgYSB3b3JrZmxvdyBXYWl0IHRvIGFuIE9wZW5UZWxlbWV0cnkgU3BhblxuICovXG5leHBvcnQgZnVuY3Rpb24gd2FpdFRvU3BhbihcbiAgZXZlbnRzOiBFdmVudFtdLFxuICBtYXhFbmRUaW1lOiBEYXRlLFxuICBmYWxsYmFja0VuZFRpbWUgPSBtYXhFbmRUaW1lXG4pOiBTcGFuIHwgbnVsbCB7XG4gIGNvbnN0IHdhaXQgPSB3YWl0RXZlbnRzVG9XYWl0RW50aXR5KGV2ZW50cyk7XG4gIGlmICghd2FpdCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IHN0YXJ0VGltZSA9IHdhaXQuY3JlYXRlZEF0O1xuICBjb25zdCBzdGFydE1zID0gc3RhcnRUaW1lLmdldFRpbWUoKTtcbiAgbGV0IGVuZFRpbWUgPSB3YWl0LmNvbXBsZXRlZEF0O1xuICBpZiAoIWVuZFRpbWUpIHtcbiAgICBjb25zdCBmYWxsYmFja0NhcCA9XG4gICAgICB3YWl0LnJlc3VtZUF0ICYmIHdhaXQucmVzdW1lQXQuZ2V0VGltZSgpIDwgZmFsbGJhY2tFbmRUaW1lLmdldFRpbWUoKVxuICAgICAgICA/IHdhaXQucmVzdW1lQXRcbiAgICAgICAgOiBmYWxsYmFja0VuZFRpbWU7XG4gICAgZW5kVGltZSA9XG4gICAgICBtYXhFbmRUaW1lLmdldFRpbWUoKSA+IHN0YXJ0TXMgJiZcbiAgICAgIG1heEVuZFRpbWUuZ2V0VGltZSgpIDwgZmFsbGJhY2tDYXAuZ2V0VGltZSgpXG4gICAgICAgID8gbWF4RW5kVGltZVxuICAgICAgICA6IGZhbGxiYWNrQ2FwO1xuICB9XG4gIGNvbnN0IHN0YXJ0ID0gZGF0ZVRvT3RlbFRpbWUoc3RhcnRUaW1lKTtcbiAgY29uc3QgZW5kID0gZGF0ZVRvT3RlbFRpbWUoZW5kVGltZSk7XG4gIGNvbnN0IGR1cmF0aW9uID0gY2FsY3VsYXRlRHVyYXRpb24oc3RhcnRUaW1lLCBlbmRUaW1lKTtcbiAgY29uc3Qgc3BhbkV2ZW50cyA9IGNvbnZlcnRFdmVudHNUb1NwYW5FdmVudHMoZXZlbnRzLCBmYWxzZSk7XG4gIHJldHVybiB7XG4gICAgc3BhbklkOiB3YWl0LndhaXRJZCxcbiAgICBuYW1lOiAnc2xlZXAnLFxuICAgIGtpbmQ6IDEsIC8vIElOVEVSTkFMIHNwYW4ga2luZFxuICAgIHJlc291cmNlOiAnc2xlZXAnLFxuICAgIGxpYnJhcnk6IFdPUktGTE9XX0xJQlJBUlksXG4gICAgc3RhdHVzOiB7IGNvZGU6IDAgfSxcbiAgICB0cmFjZUZsYWdzOiAxLFxuICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgIHJlc291cmNlOiAnc2xlZXAnIGFzIGNvbnN0LFxuICAgICAgZGF0YTogd2FpdCwgLy8gd2FpdCBpcyBhIHBsYWluIG9iamVjdCBidWlsdCBmcm9tIGV2ZW50cywgbm8gbm9uLWNsb25lYWJsZSB0eXBlc1xuICAgIH0sXG4gICAgbGlua3M6IFtdLFxuICAgIGV2ZW50czogc3BhbkV2ZW50cyxcbiAgICBkdXJhdGlvbixcbiAgICBzdGFydFRpbWU6IHN0YXJ0LFxuICAgIGVuZFRpbWU6IGVuZCxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IHN0ZXBFdmVudHNUb1N0ZXBFbnRpdHkgPSAoXG4gIGV2ZW50czogRXZlbnRbXVxuKToge1xuICBzdGVwSWQ6IHN0cmluZztcbiAgcnVuSWQ6IHN0cmluZztcbiAgc3RlcE5hbWU6IHN0cmluZztcbiAgc3RhdHVzOiAncGVuZGluZycgfCAncnVubmluZycgfCAnY29tcGxldGVkJyB8ICdmYWlsZWQnIHwgJ2NhbmNlbGxlZCc7XG4gIGF0dGVtcHQ6IG51bWJlcjtcbiAgY3JlYXRlZEF0OiBEYXRlO1xuICB1cGRhdGVkQXQ6IERhdGU7XG4gIHN0YXJ0ZWRBdD86IERhdGU7XG4gIGNvbXBsZXRlZEF0PzogRGF0ZTtcbiAgc3BlY1ZlcnNpb24/OiBudW1iZXI7XG59IHwgbnVsbCA9PiB7XG4gIGNvbnN0IGNyZWF0ZWRFdmVudCA9IGV2ZW50cy5maW5kKFxuICAgIChldmVudCkgPT4gZXZlbnQuZXZlbnRUeXBlID09PSAnc3RlcF9jcmVhdGVkJ1xuICApO1xuXG4gIC8vIFYxIHJ1bnMgZG9uJ3QgZW1pdCBzdGVwX2NyZWF0ZWQgZXZlbnRzLiBGYWxsIGJhY2sgdG8gdGhlIGVhcmxpZXN0IGV2ZW50XG4gIC8vIGluIHRoZSBncm91cCBzbyB3ZSBjYW4gc3RpbGwgYnVpbGQgYSBzdGVwIHNwYW4uXG4gIGNvbnN0IGFuY2hvckV2ZW50ID0gY3JlYXRlZEV2ZW50ID8/IGV2ZW50c1swXTtcbiAgaWYgKCFhbmNob3JFdmVudCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gV2FsayBldmVudHMgaW4gb3JkZXIgdG8gZGVyaXZlIHN0YXR1cywgYXR0ZW1wdCBjb3VudCwgYW5kIHRpbWVzdGFtcHMuXG4gIC8vIEhhbmRsZXMgYm90aCBzdGVwX3JldHJ5aW5nIGFuZCBjb25zZWN1dGl2ZSBzdGVwX3N0YXJ0ZWQgYXMgcmV0cnkgc2lnbmFscy5cbiAgbGV0IHN0YXR1czogJ3BlbmRpbmcnIHwgJ3J1bm5pbmcnIHwgJ2NvbXBsZXRlZCcgfCAnZmFpbGVkJyB8ICdjYW5jZWxsZWQnID1cbiAgICAncGVuZGluZyc7XG4gIGxldCBhdHRlbXB0ID0gMDtcbiAgbGV0IHN0YXJ0ZWRBdDogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgbGV0IGNvbXBsZXRlZEF0OiBEYXRlIHwgdW5kZWZpbmVkO1xuXG4gIGZvciAoY29uc3QgZSBvZiBldmVudHMpIHtcbiAgICBzd2l0Y2ggKGUuZXZlbnRUeXBlKSB7XG4gICAgICBjYXNlICdzdGVwX3N0YXJ0ZWQnOlxuICAgICAgICBzdGF0dXMgPSAncnVubmluZyc7XG4gICAgICAgIGF0dGVtcHQgKz0gMTtcbiAgICAgICAgaWYgKCFzdGFydGVkQXQpIHN0YXJ0ZWRBdCA9IGUuY3JlYXRlZEF0O1xuICAgICAgICBjb21wbGV0ZWRBdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdGVwX2NvbXBsZXRlZCc6XG4gICAgICAgIHN0YXR1cyA9ICdjb21wbGV0ZWQnO1xuICAgICAgICBjb21wbGV0ZWRBdCA9IGUuY3JlYXRlZEF0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3N0ZXBfZmFpbGVkJzpcbiAgICAgICAgc3RhdHVzID0gJ2ZhaWxlZCc7XG4gICAgICAgIGNvbXBsZXRlZEF0ID0gZS5jcmVhdGVkQXQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3RlcF9yZXRyeWluZyc6XG4gICAgICAgIHN0YXR1cyA9ICdwZW5kaW5nJztcbiAgICAgICAgY29tcGxldGVkQXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vIEVuc3VyZSBhdCBsZWFzdCBhdHRlbXB0IDEgaWYgd2UgbmV2ZXIgc2F3IHN0ZXBfc3RhcnRlZFxuICBpZiAoYXR0ZW1wdCA9PT0gMCkgYXR0ZW1wdCA9IDE7XG5cbiAgY29uc3QgbGFzdEV2ZW50ID0gZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXTtcbiAgcmV0dXJuIHtcbiAgICBzdGVwSWQ6IGFuY2hvckV2ZW50LmNvcnJlbGF0aW9uSWQgPz8gJycsXG4gICAgcnVuSWQ6IGFuY2hvckV2ZW50LnJ1bklkLFxuICAgIHN0ZXBOYW1lOiBjcmVhdGVkRXZlbnQ/LmV2ZW50RGF0YT8uc3RlcE5hbWUgPz8gJycsXG4gICAgc3RhdHVzLFxuICAgIGF0dGVtcHQsXG4gICAgY3JlYXRlZEF0OiBhbmNob3JFdmVudC5jcmVhdGVkQXQsXG4gICAgdXBkYXRlZEF0OiBsYXN0RXZlbnQ/LmNyZWF0ZWRBdCA/PyBhbmNob3JFdmVudC5jcmVhdGVkQXQsXG4gICAgc3RhcnRlZEF0LFxuICAgIGNvbXBsZXRlZEF0LFxuICAgIHNwZWNWZXJzaW9uOiBhbmNob3JFdmVudC5zcGVjVmVyc2lvbixcbiAgfTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgc3RlcCBldmVudHMgdG8gYW4gT3BlblRlbGVtZXRyeSBTcGFuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGVwVG9TcGFuKHN0ZXBFdmVudHM6IEV2ZW50W10sIG1heEVuZFRpbWU6IERhdGUpOiBTcGFuIHwgbnVsbCB7XG4gIGNvbnN0IHN0ZXAgPSBzdGVwRXZlbnRzVG9TdGVwRW50aXR5KHN0ZXBFdmVudHMpO1xuICBpZiAoIXN0ZXApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBwYXJzZWROYW1lID0gcGFyc2VTdGVwTmFtZShTdHJpbmcoc3RlcC5zdGVwTmFtZSkpO1xuXG4gIGNvbnN0IGF0dHJpYnV0ZXMgPSB7XG4gICAgcmVzb3VyY2U6ICdzdGVwJyBhcyBjb25zdCxcbiAgICBkYXRhOiBzdGVwLFxuICB9O1xuXG4gIGNvbnN0IHJlc291cmNlID0gJ3N0ZXAnO1xuICBjb25zdCBlbmRUaW1lID0gbmV3IERhdGUoc3RlcC5jb21wbGV0ZWRBdCA/PyBtYXhFbmRUaW1lKTtcblxuICAvLyBJbmNsdWRlIEFMTCBjb3JyZWxhdGVkIGV2ZW50cyBvbiB0aGUgc3BhbiBzbyB0aGUgc2lkZWJhciBkZXRhaWwgdmlld1xuICAvLyBjYW4gZGlzcGxheSB0aGVtLiBUaGUgdGltZWxpbmUgdXNlcyB0aGUgYHNob3dWZXJ0aWNhbExpbmVgIGZsYWcgdG9cbiAgLy8gZGV0ZXJtaW5lIHdoaWNoIGV2ZW50cyBhcHBlYXIgYXMgbWFya2Vycy5cbiAgY29uc3QgZXZlbnRzID0gY29udmVydEV2ZW50c1RvU3BhbkV2ZW50cyhzdGVwRXZlbnRzLCBmYWxzZSk7XG5cbiAgLy8gVXNlIGNyZWF0ZWRBdCBhcyBzcGFuIHN0YXJ0IHRpbWUsIHdpdGggYWN0aXZlU3RhcnRUaW1lIGZvciB3aGVuIGV4ZWN1dGlvbiBiZWdhblxuICAvLyBUaGlzIGFsbG93cyB2aXN1YWxpemF0aW9uIG9mIHRoZSBcInF1ZXVlZFwiIHBlcmlvZCBiZWZvcmUgZXhlY3V0aW9uXG4gIGNvbnN0IHNwYW5TdGFydFRpbWUgPSBuZXcgRGF0ZShzdGVwLmNyZWF0ZWRBdCk7XG4gIGxldCBhY3RpdmVTdGFydFRpbWUgPSBzdGVwLnN0YXJ0ZWRBdCA/IG5ldyBEYXRlKHN0ZXAuc3RhcnRlZEF0KSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZmlyc3RTdGFydEV2ZW50ID0gc3RlcEV2ZW50cy5maW5kKFxuICAgIChldmVudCkgPT4gZXZlbnQuZXZlbnRUeXBlID09PSAnc3RlcF9zdGFydGVkJ1xuICApO1xuICBpZiAoZmlyc3RTdGFydEV2ZW50KSB7XG4gICAgLy8gYHN0ZXAuc3RhcnRlZEF0YCBpcyB0aGUgc2VydmVyLXNpZGUgY3JlYXRpb24gdGltZXN0YW1wLCBhbmQgYGV2ZW50LmNyZWF0ZWRBdGAgaXNcbiAgICAvLyB0aGUgY2xpZW50LXNpZGUgY3JlYXRpb24gdGltZXN0YW1wLiBGb3Igbm93LCB0byBhbGlnbiB0aGUgZXZlbnQgbWFya2VyIHdpdGggdGhlXG4gICAgLy8gbGluZSB3ZSBzaG93IGZvciBzdGVwLnN0YXJ0ZWRBdCwgd2Ugb3ZlcndyaXRlIGhlcmUgdG8gYWx3YXlzIHVzZSBjbGllbnQtc2lkZSB0aW1lLlxuICAgIGFjdGl2ZVN0YXJ0VGltZSA9IG5ldyBEYXRlKGZpcnN0U3RhcnRFdmVudC5jcmVhdGVkQXQpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzcGFuSWQ6IFN0cmluZyhzdGVwLnN0ZXBJZCksXG4gICAgbmFtZTogcGFyc2VkTmFtZT8uc2hvcnROYW1lID8/IFN0cmluZyhzdGVwLnN0ZXBOYW1lKSxcbiAgICBraW5kOiAxLCAvLyBJTlRFUk5BTCBzcGFuIGtpbmRcbiAgICByZXNvdXJjZSxcbiAgICBsaWJyYXJ5OiBXT1JLRkxPV19MSUJSQVJZLFxuICAgIHN0YXR1czogeyBjb2RlOiAwIH0sXG4gICAgdHJhY2VGbGFnczogMSxcbiAgICBhdHRyaWJ1dGVzLFxuICAgIGxpbmtzOiBbXSxcbiAgICBldmVudHMsXG4gICAgc3RhcnRUaW1lOiBkYXRlVG9PdGVsVGltZShzcGFuU3RhcnRUaW1lKSxcbiAgICBlbmRUaW1lOiBkYXRlVG9PdGVsVGltZShlbmRUaW1lKSxcbiAgICBkdXJhdGlvbjogY2FsY3VsYXRlRHVyYXRpb24oc3BhblN0YXJ0VGltZSwgZW5kVGltZSksXG4gICAgLy8gT25seSBzZXQgYWN0aXZlU3RhcnRUaW1lIGlmIGl0IGRpZmZlcnMgZnJvbSBzdGFydFRpbWUgKGkuZS4sIHRoZXJlIHdhcyBhIHF1ZXVlZCBwZXJpb2QpXG4gICAgYWN0aXZlU3RhcnRUaW1lOlxuICAgICAgYWN0aXZlU3RhcnRUaW1lICYmIGFjdGl2ZVN0YXJ0VGltZS5nZXRUaW1lKCkgPiBzcGFuU3RhcnRUaW1lLmdldFRpbWUoKVxuICAgICAgICA/IGRhdGVUb090ZWxUaW1lKGFjdGl2ZVN0YXJ0VGltZSlcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBob29rRXZlbnRzVG9Ib29rRW50aXR5ID0gKFxuICBldmVudHM6IEV2ZW50W11cbik6IHtcbiAgaG9va0lkOiBzdHJpbmc7XG4gIHJ1bklkOiBzdHJpbmc7XG4gIHRva2VuPzogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IERhdGU7XG4gIHJlY2VpdmVkQ291bnQ6IG51bWJlcjtcbiAgbGFzdFJlY2VpdmVkQXQ/OiBEYXRlO1xuICBkaXNwb3NlZEF0PzogRGF0ZTtcbn0gfCBudWxsID0+IHtcbiAgY29uc3QgY3JlYXRlZEV2ZW50ID0gZXZlbnRzLmZpbmQoXG4gICAgKGV2ZW50KSA9PiBldmVudC5ldmVudFR5cGUgPT09ICdob29rX2NyZWF0ZWQnXG4gICk7XG4gIGlmICghY3JlYXRlZEV2ZW50KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgcmVjZWl2ZWRFdmVudHMgPSBldmVudHMuZmlsdGVyKFxuICAgIChldmVudCkgPT4gZXZlbnQuZXZlbnRUeXBlID09PSAnaG9va19yZWNlaXZlZCdcbiAgKTtcbiAgY29uc3QgZGlzcG9zZWRFdmVudHMgPSBldmVudHMuZmlsdGVyKFxuICAgIChldmVudCkgPT4gZXZlbnQuZXZlbnRUeXBlID09PSAnaG9va19kaXNwb3NlZCdcbiAgKTtcbiAgY29uc3QgbGFzdFJlY2VpdmVkRXZlbnQgPSByZWNlaXZlZEV2ZW50cy5hdCgtMSk7XG4gIHJldHVybiB7XG4gICAgaG9va0lkOiBjcmVhdGVkRXZlbnQuY29ycmVsYXRpb25JZCxcbiAgICBydW5JZDogY3JlYXRlZEV2ZW50LnJ1bklkLFxuICAgIHRva2VuOiBjcmVhdGVkRXZlbnQuZXZlbnREYXRhPy50b2tlbixcbiAgICBjcmVhdGVkQXQ6IGNyZWF0ZWRFdmVudC5jcmVhdGVkQXQsXG4gICAgcmVjZWl2ZWRDb3VudDogcmVjZWl2ZWRFdmVudHMubGVuZ3RoLFxuICAgIGxhc3RSZWNlaXZlZEF0OiBsYXN0UmVjZWl2ZWRFdmVudD8uY3JlYXRlZEF0IHx8IHVuZGVmaW5lZCxcbiAgICBkaXNwb3NlZEF0OiBkaXNwb3NlZEV2ZW50cy5hdCgtMSk/LmNyZWF0ZWRBdCB8fCB1bmRlZmluZWQsXG4gIH07XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgd29ya2Zsb3cgSG9vayB0byBhbiBPcGVuVGVsZW1ldHJ5IFNwYW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhvb2tUb1NwYW4oaG9va0V2ZW50czogRXZlbnRbXSwgbWF4RW5kVGltZTogRGF0ZSk6IFNwYW4gfCBudWxsIHtcbiAgY29uc3QgaG9vayA9IGhvb2tFdmVudHNUb0hvb2tFbnRpdHkoaG9va0V2ZW50cyk7XG4gIGlmICghaG9vaykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gQ29udmVydCBob29rLXJlbGF0ZWQgZXZlbnRzIHRvIHNwYW4gZXZlbnRzXG4gIGNvbnN0IGV2ZW50cyA9IGNvbnZlcnRFdmVudHNUb1NwYW5FdmVudHMoaG9va0V2ZW50cywgZmFsc2UpO1xuXG4gIGNvbnN0IGVuZFRpbWUgPSBob29rLmRpc3Bvc2VkQXQgfHwgbWF4RW5kVGltZTtcblxuICByZXR1cm4ge1xuICAgIHNwYW5JZDogU3RyaW5nKGhvb2suaG9va0lkKSxcbiAgICBuYW1lOiBob29rLnRva2VuID8/IFN0cmluZyhob29rLmhvb2tJZCksXG4gICAga2luZDogMSwgLy8gSU5URVJOQUwgc3BhbiBraW5kXG4gICAgcmVzb3VyY2U6ICdob29rJyxcbiAgICBsaWJyYXJ5OiBXT1JLRkxPV19MSUJSQVJZLFxuICAgIHN0YXR1czogeyBjb2RlOiAxIH0sXG4gICAgdHJhY2VGbGFnczogMSxcbiAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICByZXNvdXJjZTogJ2hvb2snIGFzIGNvbnN0LFxuICAgICAgZGF0YTogaG9vayxcbiAgICB9LFxuICAgIGxpbmtzOiBbXSxcbiAgICBldmVudHMsXG4gICAgc3RhcnRUaW1lOiBkYXRlVG9PdGVsVGltZShob29rLmNyZWF0ZWRBdCksXG4gICAgZW5kVGltZTogZGF0ZVRvT3RlbFRpbWUoZW5kVGltZSksXG4gICAgZHVyYXRpb246IGNhbGN1bGF0ZUR1cmF0aW9uKGhvb2suY3JlYXRlZEF0LCBlbmRUaW1lKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgcm9vdCBzcGFuIGZvciB0aGUgd29ya2Zsb3cgcnVuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5Ub1NwYW4oXG4gIHJ1bjogV29ya2Zsb3dSdW4sXG4gIHJ1bkV2ZW50czogRXZlbnRbXSxcbiAgbm93VGltZT86IERhdGVcbik6IFNwYW4ge1xuICBjb25zdCBub3cgPSBub3dUaW1lID8/IG5ldyBEYXRlKCk7XG5cbiAgLy8gT25seSBlbWJlZCBpZGVudGlmaWNhdGlvbiBmaWVsZHMg4oCUIG5vdCB0aGUgZnVsbCBvYmplY3Qgd2l0aFxuICAvLyBpbnB1dC9vdXRwdXQvZXJyb3Igd2hpY2ggbWF5IGNvbnRhaW4gbm9uLWNsb25lYWJsZSB0eXBlcy5cbiAgY29uc3QgeyBpbnB1dDogX2ksIG91dHB1dDogX28sIGVycm9yOiBfZSwgLi4ucnVuSWRlbnRpdHkgfSA9IHJ1bjtcbiAgY29uc3QgYXR0cmlidXRlcyA9IHtcbiAgICByZXNvdXJjZTogJ3J1bicgYXMgY29uc3QsXG4gICAgZGF0YTogcnVuSWRlbnRpdHksXG4gIH07XG5cbiAgLy8gVXNlIGNyZWF0ZWRBdCBhcyBzcGFuIHN0YXJ0IHRpbWUsIHdpdGggYWN0aXZlU3RhcnRUaW1lIGZvciB3aGVuIGV4ZWN1dGlvbiBiZWdhblxuICBjb25zdCBzcGFuU3RhcnRUaW1lID0gbmV3IERhdGUocnVuLmNyZWF0ZWRBdCk7XG4gIGNvbnN0IGFjdGl2ZVN0YXJ0VGltZSA9IHJ1bi5zdGFydGVkQXQgPyBuZXcgRGF0ZShydW4uc3RhcnRlZEF0KSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZW5kVGltZSA9IHJ1bi5jb21wbGV0ZWRBdCA/PyBub3c7XG5cbiAgLy8gQ29udmVydCBydW4tbGV2ZWwgZXZlbnRzIHRvIHNwYW4gZXZlbnRzXG4gIGNvbnN0IGV2ZW50cyA9IGNvbnZlcnRFdmVudHNUb1NwYW5FdmVudHMocnVuRXZlbnRzLCBmYWxzZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBzcGFuSWQ6IFN0cmluZyhydW4ucnVuSWQpLFxuICAgIG5hbWU6IFN0cmluZyhwYXJzZVdvcmtmbG93TmFtZShydW4ud29ya2Zsb3dOYW1lKT8uc2hvcnROYW1lID8/ICc/JyksXG4gICAga2luZDogMSwgLy8gSU5URVJOQUwgc3BhbiBraW5kXG4gICAgcmVzb3VyY2U6ICdydW4nLFxuICAgIGxpYnJhcnk6IFdPUktGTE9XX0xJQlJBUlksXG4gICAgc3RhdHVzOiB7IGNvZGU6IDAgfSxcbiAgICB0cmFjZUZsYWdzOiAxLFxuICAgIGF0dHJpYnV0ZXMsXG4gICAgbGlua3M6IFtdLFxuICAgIGV2ZW50cyxcbiAgICBzdGFydFRpbWU6IGRhdGVUb090ZWxUaW1lKHNwYW5TdGFydFRpbWUpLFxuICAgIGVuZFRpbWU6IGRhdGVUb090ZWxUaW1lKGVuZFRpbWUpLFxuICAgIGR1cmF0aW9uOiBjYWxjdWxhdGVEdXJhdGlvbihzcGFuU3RhcnRUaW1lLCBlbmRUaW1lKSxcbiAgICAvLyBPbmx5IHNldCBhY3RpdmVTdGFydFRpbWUgaWYgaXQgZGlmZmVycyBmcm9tIHN0YXJ0VGltZSAoaS5lLiwgdGhlcmUgd2FzIGEgcXVldWVkIHBlcmlvZClcbiAgICBhY3RpdmVTdGFydFRpbWU6XG4gICAgICBhY3RpdmVTdGFydFRpbWUgJiYgYWN0aXZlU3RhcnRUaW1lLmdldFRpbWUoKSA+IHNwYW5TdGFydFRpbWUuZ2V0VGltZSgpXG4gICAgICAgID8gZGF0ZVRvT3RlbFRpbWUoYWN0aXZlU3RhcnRUaW1lKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cbiJdfQ==
@@ -40,4 +40,4 @@ export function calculateDuration(start, end) {
40
40
  const nanoseconds = (durationMs % 1000) * 1_000_000;
41
41
  return [seconds, nanoseconds];
42
42
  }
43
- //# sourceMappingURL=trace-time-utils.js.map
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UtdGltZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3dvcmtmbG93LXRyYWNlcy90cmFjZS10aW1lLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUg7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUM1QixJQUE2QjtJQUU3QixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxZQUFZLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDckMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBQ0QsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sV0FBVyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUM1QyxPQUFPLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLElBQXNCO0lBQ2pELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDcEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUM1QyxPQUFPLFdBQVcsR0FBRyxlQUFlLENBQUM7QUFDdkMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixLQUE4QixFQUM5QixHQUE0QjtJQUU1QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM1QixHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssWUFBWSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLEdBQUcsSUFBSSxHQUFHLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7SUFDOUQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN2RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUM5QyxNQUFNLFdBQVcsR0FBRyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUM7SUFDcEQsT0FBTyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaW1lIGNvbnZlcnNpb24gdXRpbGl0aWVzIGZvciB3b3JrZmxvdyB0cmFjZSBjb25zdHJ1Y3Rpb25cbiAqL1xuXG4vKipcbiAqIENvbnZlcnRzIGEgRGF0ZSB0byBPcGVuVGVsZW1ldHJ5IHRpbWUgZm9ybWF0IFtzZWNvbmRzLCBuYW5vc2Vjb25kc11cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGVUb090ZWxUaW1lKFxuICBkYXRlOiBEYXRlIHwgc3RyaW5nIHwgdW5rbm93blxuKTogW251bWJlciwgbnVtYmVyXSB7XG4gIGlmICh0eXBlb2YgZGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBkYXRlID0gbmV3IERhdGUoZGF0ZSk7XG4gIH1cbiAgaWYgKCFkYXRlIHx8ICEoZGF0ZSBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgcmV0dXJuIFswLCAwXTtcbiAgfVxuICBjb25zdCBtcyA9IGRhdGUuZ2V0VGltZSgpO1xuICBjb25zdCBzZWNvbmRzID0gTWF0aC5mbG9vcihtcyAvIDEwMDApO1xuICBjb25zdCBuYW5vc2Vjb25kcyA9IChtcyAlIDEwMDApICogMV8wMDBfMDAwO1xuICByZXR1cm4gW3NlY29uZHMsIG5hbm9zZWNvbmRzXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG90ZWxUaW1lVG9Ncyh0aW1lOiBbbnVtYmVyLCBudW1iZXJdKTogbnVtYmVyIHtcbiAgY29uc3Qgc2Vjb25kc1RvTXMgPSB0aW1lWzBdICogMV8wMDA7XG4gIGNvbnN0IG5hbm9zZWNvbmRzVG9NcyA9IHRpbWVbMV0gLyAxXzAwMF8wMDA7XG4gIHJldHVybiBzZWNvbmRzVG9NcyArIG5hbm9zZWNvbmRzVG9Ncztcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGVzIGR1cmF0aW9uIGluIFtzZWNvbmRzLCBuYW5vc2Vjb25kc10gZm9ybWF0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVEdXJhdGlvbihcbiAgc3RhcnQ6IERhdGUgfCBzdHJpbmcgfCB1bmtub3duLFxuICBlbmQ6IERhdGUgfCBzdHJpbmcgfCB1bmtub3duXG4pOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgaWYgKHR5cGVvZiBzdGFydCA9PT0gJ3N0cmluZycpIHtcbiAgICBzdGFydCA9IG5ldyBEYXRlKHN0YXJ0KTtcbiAgfVxuICBpZiAodHlwZW9mIGVuZCA9PT0gJ3N0cmluZycpIHtcbiAgICBlbmQgPSBuZXcgRGF0ZShlbmQpO1xuICB9XG4gIGlmICghc3RhcnQgfHwgIShzdGFydCBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgcmV0dXJuIFswLCAwXTtcbiAgfVxuICBjb25zdCBlbmRUaW1lID0gZW5kICYmIGVuZCBpbnN0YW5jZW9mIERhdGUgPyBlbmQgOiBuZXcgRGF0ZSgpO1xuICBjb25zdCBkdXJhdGlvbk1zID0gZW5kVGltZS5nZXRUaW1lKCkgLSBzdGFydC5nZXRUaW1lKCk7XG4gIGNvbnN0IHNlY29uZHMgPSBNYXRoLmZsb29yKGR1cmF0aW9uTXMgLyAxMDAwKTtcbiAgY29uc3QgbmFub3NlY29uZHMgPSAoZHVyYXRpb25NcyAlIDEwMDApICogMV8wMDBfMDAwO1xuICByZXR1cm4gW3NlY29uZHMsIG5hbm9zZWNvbmRzXTtcbn1cbiJdfQ==
@@ -27,4 +27,4 @@ export const useDarkMode = () => {
27
27
  }, []);
28
28
  return isDark;
29
29
  };
30
- //# sourceMappingURL=use-dark-mode.js.map
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWRhcmstbW9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2UtZGFyay1tb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQztBQUViLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTVDOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxHQUFZLEVBQUU7SUFDdkMsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ3hDLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2xELE9BQU8sUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdELENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVztZQUFFLE9BQU87UUFFNUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7WUFDekMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFO1lBQ3pDLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGVBQWUsRUFBRSxDQUFDLE9BQU8sQ0FBQztTQUMzQixDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNyQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFUCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbi8qKlxuICogSG9vayB0aGF0IGRldGVjdHMgaWYgZGFyayBtb2RlIGlzIGFjdGl2ZSBhbmQgcmVhY3RzIHRvIHRoZW1lIGNoYW5nZXMuXG4gKiBPYnNlcnZlcyB0aGUgJ2RhcmsnIGNsYXNzIG9uIHRoZSBkb2N1bWVudCBlbGVtZW50LCB3aGljaCBpcyBob3dcbiAqIG5leHQtdGhlbWVzIGFuZCBzaW1pbGFyIGxpYnJhcmllcyBhcHBseSB0aGUgdGhlbWUuXG4gKlxuICogQHJldHVybnMgYHRydWVgIGlmIGRhcmsgbW9kZSBpcyBhY3RpdmUsIGBmYWxzZWAgb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VEYXJrTW9kZSA9ICgpOiBib29sZWFuID0+IHtcbiAgY29uc3QgW2lzRGFyaywgc2V0SXNEYXJrXSA9IHVzZVN0YXRlKCgpID0+IHtcbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdkYXJrJyk7XG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybjtcblxuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgc2V0SXNEYXJrKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2RhcmsnKSk7XG4gICAgfSk7XG5cbiAgICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwge1xuICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydjbGFzcyddLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiBpc0Rhcms7XG59O1xuIl19
@@ -26,4 +26,4 @@ export const useReducedMotion = () => {
26
26
  }, []);
27
27
  return reduced;
28
28
  };
29
- //# sourceMappingURL=use-reduced-motion.js.map
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXJlZHVjZWQtbW90aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZS1yZWR1Y2VkLW1vdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7QUFFYixPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUU1QyxNQUFNLEtBQUssR0FBRyxrQ0FBa0MsQ0FBQztBQUVqRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsR0FBWSxFQUFFO0lBQzVDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUMxQyxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDdEUsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUMxQyxDQUFDLENBQUMsQ0FBQztJQUVILFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUVoRSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sUUFBUSxHQUFHLEdBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzQyxRQUFRLEVBQUUsQ0FBQztRQUVYLE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3RCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFUCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IFFVRVJZID0gJyhwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpJztcblxuLyoqXG4gKiBIb29rIHRoYXQgZGV0ZWN0cyB3aGV0aGVyIHRoZSB1c2VyIGhhcyByZXF1ZXN0ZWQgcmVkdWNlZCBtb3Rpb24gYW5kIHJlYWN0c1xuICogdG8gY2hhbmdlcy4gTWlycm9ycyB0aGUgYHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZWAgbWVkaWEgcXVlcnkgc29cbiAqIGNvbXBvbmVudHMgY2FuIHNraXAgb3Igc2hvcnRlbiBhbmltYXRpb25zIGZvciB1c2VycyB3aXRoIG1vdGlvblxuICogc2Vuc2l0aXZpdGllcyAoZS5nLiB2ZXN0aWJ1bGFyIGRpc29yZGVycykuXG4gKlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSB1c2VyIHByZWZlcnMgcmVkdWNlZCBtb3Rpb24sIGBmYWxzZWAgb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VSZWR1Y2VkTW90aW9uID0gKCk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBbcmVkdWNlZCwgc2V0UmVkdWNlZF0gPSB1c2VTdGF0ZSgoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF3aW5kb3cubWF0Y2hNZWRpYSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB3aW5kb3cubWF0Y2hNZWRpYShRVUVSWSkubWF0Y2hlcztcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgIXdpbmRvdy5tYXRjaE1lZGlhKSByZXR1cm47XG5cbiAgICBjb25zdCBtZWRpYSA9IHdpbmRvdy5tYXRjaE1lZGlhKFFVRVJZKTtcbiAgICBjb25zdCBvbkNoYW5nZSA9ICgpOiB2b2lkID0+IHNldFJlZHVjZWQobWVkaWEubWF0Y2hlcyk7XG5cbiAgICBtZWRpYS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBvbkNoYW5nZSk7XG4gICAgb25DaGFuZ2UoKTtcblxuICAgIHJldHVybiAoKSA9PiBtZWRpYS5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBvbkNoYW5nZSk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gcmVkdWNlZDtcbn07XG4iXX0=
package/dist/index.js CHANGED
@@ -6,4 +6,4 @@ export { materializeAll, materializeHooks, materializeSteps, materializeWaits, }
6
6
  export { CLASS_INSTANCE_REF_TYPE, ClassInstanceRef, ENCRYPTED_PLACEHOLDER, extractStreamIds, getWebRevivers, hasEncryptedFields, hydrateResourceIO, hydrateResourceIOWithKey, isClassInstanceRef, isEncryptedMarker, isStreamId, isStreamRef, STREAM_REF_TYPE, truncateId, } from './lib/hydration';
7
7
  export { ToastProvider, useToast } from './lib/toast';
8
8
  export { extractConversation, formatDuration, identifyStreamSteps, isDoStreamStep, } from './lib/utils';
9
- //# sourceMappingURL=index.js.map
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUNMLGFBQWEsRUFDYixpQkFBaUIsR0FDbEIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixzQkFBc0IsR0FDdkIsTUFBTSxzREFBc0QsQ0FBQztBQUU5RCxPQUFPLEVBQ0wsYUFBYSxFQUNiLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsZ0JBQWdCLEVBQ2hCLHlCQUF5QixHQUMxQixNQUFNLHNCQUFzQixDQUFDO0FBTzlCLE9BQU8sRUFDTCxjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixnQkFBZ0IsR0FDakIsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixXQUFXLEVBQ1gsZUFBZSxFQUNmLFVBQVUsR0FDWCxNQUFNLGlCQUFpQixDQUFDO0FBR3pCLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXRELE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixjQUFjLEdBQ2YsTUFBTSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSB7XG4gIEhlYWx0aENoZWNrRW5kcG9pbnQsXG4gIEhlYWx0aENoZWNrUmVzdWx0LFxufSBmcm9tICdAd29ya2Zsb3cvY29yZS9ydW50aW1lJztcbmV4cG9ydCB7XG4gIHBhcnNlU3RlcE5hbWUsXG4gIHBhcnNlV29ya2Zsb3dOYW1lLFxufSBmcm9tICdAd29ya2Zsb3cvdXRpbHMvcGFyc2UtbmFtZSc7XG5leHBvcnQgdHlwZSB7IEV2ZW50LCBIb29rLCBTdGVwLCBXb3JrZmxvd1J1biB9IGZyb20gJ0B3b3JrZmxvdy93b3JsZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMnO1xuZXhwb3J0IHtcbiAgaG9va0V2ZW50c1RvSG9va0VudGl0eSxcbiAgc3RlcEV2ZW50c1RvU3RlcEVudGl0eSxcbiAgd2FpdEV2ZW50c1RvV2FpdEVudGl0eSxcbn0gZnJvbSAnLi9jb21wb25lbnRzL3dvcmtmbG93LXRyYWNlcy90cmFjZS1zcGFuLWNvbnN0cnVjdGlvbic7XG5leHBvcnQgdHlwZSB7IEV2ZW50QW5hbHlzaXMgfSBmcm9tICcuL2xpYi9ldmVudC1hbmFseXNpcyc7XG5leHBvcnQge1xuICBhbmFseXplRXZlbnRzLFxuICBoYXNQZW5kaW5nSG9va3NGcm9tRXZlbnRzLFxuICBoYXNQZW5kaW5nU3RlcHNGcm9tRXZlbnRzLFxuICBpc1Rlcm1pbmFsU3RhdHVzLFxuICBzaG91bGRTaG93UmVlbnF1ZXVlQnV0dG9uLFxufSBmcm9tICcuL2xpYi9ldmVudC1hbmFseXNpcyc7XG5leHBvcnQgdHlwZSB7XG4gIE1hdGVyaWFsaXplZEVudGl0aWVzLFxuICBNYXRlcmlhbGl6ZWRIb29rLFxuICBNYXRlcmlhbGl6ZWRTdGVwLFxuICBNYXRlcmlhbGl6ZWRXYWl0LFxufSBmcm9tICcuL2xpYi9ldmVudC1tYXRlcmlhbGl6YXRpb24nO1xuZXhwb3J0IHtcbiAgbWF0ZXJpYWxpemVBbGwsXG4gIG1hdGVyaWFsaXplSG9va3MsXG4gIG1hdGVyaWFsaXplU3RlcHMsXG4gIG1hdGVyaWFsaXplV2FpdHMsXG59IGZyb20gJy4vbGliL2V2ZW50LW1hdGVyaWFsaXphdGlvbic7XG5leHBvcnQgdHlwZSB7IFJldml2ZXJzLCBTdHJlYW1SZWYgfSBmcm9tICcuL2xpYi9oeWRyYXRpb24nO1xuZXhwb3J0IHtcbiAgQ0xBU1NfSU5TVEFOQ0VfUkVGX1RZUEUsXG4gIENsYXNzSW5zdGFuY2VSZWYsXG4gIEVOQ1JZUFRFRF9QTEFDRUhPTERFUixcbiAgZXh0cmFjdFN0cmVhbUlkcyxcbiAgZ2V0V2ViUmV2aXZlcnMsXG4gIGhhc0VuY3J5cHRlZEZpZWxkcyxcbiAgaHlkcmF0ZVJlc291cmNlSU8sXG4gIGh5ZHJhdGVSZXNvdXJjZUlPV2l0aEtleSxcbiAgaXNDbGFzc0luc3RhbmNlUmVmLFxuICBpc0VuY3J5cHRlZE1hcmtlcixcbiAgaXNTdHJlYW1JZCxcbiAgaXNTdHJlYW1SZWYsXG4gIFNUUkVBTV9SRUZfVFlQRSxcbiAgdHJ1bmNhdGVJZCxcbn0gZnJvbSAnLi9saWIvaHlkcmF0aW9uJztcbmV4cG9ydCB0eXBlIHsgRGVjb2RlZFN0cmVhbUNodW5rU291cmNlIH0gZnJvbSAnLi9saWIvc3RyZWFtLWRpc3BsYXknO1xuZXhwb3J0IHR5cGUgeyBUb2FzdEFkYXB0ZXIgfSBmcm9tICcuL2xpYi90b2FzdCc7XG5leHBvcnQgeyBUb2FzdFByb3ZpZGVyLCB1c2VUb2FzdCB9IGZyb20gJy4vbGliL3RvYXN0JztcbmV4cG9ydCB0eXBlIHsgU3RyZWFtU3RlcCB9IGZyb20gJy4vbGliL3V0aWxzJztcbmV4cG9ydCB7XG4gIGV4dHJhY3RDb252ZXJzYXRpb24sXG4gIGZvcm1hdER1cmF0aW9uLFxuICBpZGVudGlmeVN0cmVhbVN0ZXBzLFxuICBpc0RvU3RyZWFtU3RlcCxcbn0gZnJvbSAnLi9saWIvdXRpbHMnO1xuIl19
@@ -158,4 +158,4 @@ export function hasPendingStepsFromEvents(events) {
158
158
  export function hasPendingHooksFromEvents(events) {
159
159
  return analyzeEvents(events).hasPendingHooks;
160
160
  }
161
- //# sourceMappingURL=event-analysis.js.map
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtYW5hbHlzaXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2V2ZW50LWFuYWx5c2lzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUlILG1EQUFtRDtBQUNuRCxNQUFNLHdCQUF3QixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsYUFBYTtBQUM5RCxNQUFNLG9CQUFvQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsWUFBWTtBQXdCeEQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLE1BQTJCO0lBQ3ZELElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxPQUFPO1lBQ0wsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixlQUFlLEVBQUUsS0FBSztZQUN0QixlQUFlLEVBQUUsS0FBSztZQUN0QixlQUFlLEVBQUUsRUFBRTtZQUNuQixjQUFjLEVBQUUsRUFBRTtZQUNsQixjQUFjLEVBQUUsRUFBRTtZQUNsQixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLG9CQUFvQixFQUFFLElBQUk7U0FDM0IsQ0FBQztJQUNKLENBQUM7SUFFRCwrQ0FBK0M7SUFDL0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQWlCLENBQUM7SUFDN0MsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUN4QyxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBaUIsQ0FBQztJQUM3QyxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBQ3hDLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFpQixDQUFDO0lBQzdDLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFFdkMsSUFBSSxrQkFBa0IsR0FBZ0IsSUFBSSxDQUFDO0lBQzNDLElBQUksb0JBQW9CLEdB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QUMzQixHQUFHLEdBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hELElBQUksdUJBQXVCLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQztZQUNuRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsa0VBQWtFO0lBQ2xFLHNEQUFzRDtJQUN0RCxJQUNFLENBQUMsUUFBUSxDQUFDLGtCQUFrQjtRQUM1QixDQUFDLFFBQVEsQ0FBQyxlQUFlO1FBQ3pCLENBQUMsUUFBUSxDQUFDLGdCQUFnQjtRQUMxQixDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQ3pCLENBQUM7UUFDRCw0REFBNEQ7UUFDNUQsdURBQXVEO1FBQ3ZELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxNQUEyQjtJQUUzQixPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLENBQUM7QUFDL0MsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxNQUEyQjtJQUUzQixPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2hhcmVkIHV0aWxpdGllcyBmb3IgYW5hbHl6aW5nIHdvcmtmbG93IGV2ZW50cy5cbiAqIFVzZWQgYnkgcnVuLWFjdGlvbnMgYW5kIHRyYWNlIHZpZXdlciBjb21wb25lbnRzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgRXZlbnQsIFdvcmtmbG93UnVuU3RhdHVzIH0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcblxuLy8gVGltZSB0aHJlc2hvbGRzIGZvciBSZS1lbnF1ZXVlIGJ1dHRvbiB2aXNpYmlsaXR5XG5jb25zdCBTVEVQX0FDVElWSVRZX1RJTUVPVVRfTVMgPSAzMCAqIDYwICogMTAwMDsgLy8gMzAgbWludXRlc1xuY29uc3QgU1RFUF9JRExFX1RJTUVPVVRfTVMgPSA1ICogNjAgKiAxMDAwOyAvLyA1IG1pbnV0ZXNcblxuLyoqXG4gKiBSZXN1bHQgb2YgYW5hbHl6aW5nIGV2ZW50cyBmb3IgYSB3b3JrZmxvdyBydW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmVudEFuYWx5c2lzIHtcbiAgLyoqIFdoZXRoZXIgdGhlcmUgYXJlIHBlbmRpbmcgc2xlZXAvd2FpdCBjYWxscyAqL1xuICBoYXNQZW5kaW5nU2xlZXBzOiBib29sZWFuO1xuICAvKiogV2hldGhlciB0aGVyZSBhcmUgcGVuZGluZyBzdGVwcyAoc3RhcnRlZCBidXQgbm90IGNvbXBsZXRlZC9mYWlsZWQpICovXG4gIGhhc1BlbmRpbmdTdGVwczogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdGhlcmUgYXJlIHBlbmRpbmcgaG9va3MgKGNyZWF0ZWQgYnV0IG5vdCBkaXNwb3NlZCkgKi9cbiAgaGFzUGVuZGluZ0hvb2tzOiBib29sZWFuO1xuICAvKiogQ29ycmVsYXRpb24gSURzIG9mIHBlbmRpbmcgc2xlZXBzICovXG4gIHBlbmRpbmdTbGVlcElkczogc3RyaW5nW107XG4gIC8qKiBDb3JyZWxhdGlvbiBJRHMgb2YgcGVuZGluZyBzdGVwcyAqL1xuICBwZW5kaW5nU3RlcElkczogc3RyaW5nW107XG4gIC8qKiBDb3JyZWxhdGlvbiBJRHMgb2YgcGVuZGluZyBob29rcyAqL1xuICBwZW5kaW5nSG9va0lkczogc3RyaW5nW107XG4gIC8qKiBUaW1lc3RhbXAgb2YgdGhlIGxhc3Qgc3RlcF9zdGFydGVkIG9yIHN0ZXBfcmV0cnlpbmcgZXZlbnQgKi9cbiAgbGFzdFN0ZXBBY3Rpdml0eUF0OiBEYXRlIHwgbnVsbDtcbiAgLyoqIFRpbWVzdGFtcCBvZiB0aGUgbGFzdCBzdGVwIGNvbXBsZXRpb24gKHN0ZXBfY29tcGxldGVkIG9yIHN0ZXBfZmFpbGVkKSAqL1xuICBsYXN0U3RlcENvbXBsZXRpb25BdDogRGF0ZSB8IG51bGw7XG59XG5cbi8qKlxuICogQW5hbHl6ZSBldmVudHMgdG8gZGV0ZXJtaW5lIHBlbmRpbmcgc2xlZXBzLCBzdGVwcywgYW5kIGhvb2tzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYW5hbHl6ZUV2ZW50cyhldmVudHM6IEV2ZW50W10gfCB1bmRlZmluZWQpOiBFdmVudEFuYWx5c2lzIHtcbiAgaWYgKCFldmVudHMgfHwgZXZlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7XG4gICAgICBoYXNQZW5kaW5nU2xlZXBzOiBmYWxzZSxcbiAgICAgIGhhc1BlbmRpbmdTdGVwczogZmFsc2UsXG4gICAgICBoYXNQZW5kaW5nSG9va3M6IGZhbHNlLFxuICAgICAgcGVuZGluZ1NsZWVwSWRzOiBbXSxcbiAgICAgIHBlbmRpbmdTdGVwSWRzOiBbXSxcbiAgICAgIHBlbmRpbmdIb29rSWRzOiBbXSxcbiAgICAgIGxhc3RTdGVwQWN0aXZpdHlBdDogbnVsbCxcbiAgICAgIGxhc3RTdGVwQ29tcGxldGlvbkF0OiBudWxsLFxuICAgIH07XG4gIH1cblxuICAvLyBHcm91cCBldmVudHMgYnkgY29ycmVsYXRpb24gSUQgZm9yIGVhY2ggdHlwZVxuICBjb25zdCB3YWl0Q3JlYXRlZCA9IG5ldyBNYXA8c3RyaW5nLCBFdmVudD4oKTtcbiAgY29uc3Qgd2FpdENvbXBsZXRlZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCBzdGVwU3RhcnRlZCA9IG5ldyBNYXA8c3RyaW5nLCBFdmVudD4oKTtcbiAgY29uc3Qgc3RlcENvbXBsZXRlZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCBob29rQ3JlYXRlZCA9IG5ldyBNYXA8c3RyaW5nLCBFdmVudD4oKTtcbiAgY29uc3QgaG9va0Rpc3Bvc2VkID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgbGV0IGxhc3RTdGVwQWN0aXZpdHlBdDogRGF0ZSB8IG51bGwgPSBudWxsO1xuICBsZXQgbGFzdFN0ZXBDb21wbGV0aW9uQXQ6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICBmb3IgKGNvbnN0IGV2ZW50IG9mIGV2ZW50cykge1xuICAgIGNvbnN0IGNvcnJlbGF0aW9uSWQgPSBldmVudC5jb3JyZWxhdGlvbklkO1xuICAgIGlmICghY29ycmVsYXRpb25JZCkgY29udGludWU7XG5cbiAgICBzd2l0Y2ggKGV2ZW50LmV2ZW50VHlwZSkge1xuICAgICAgLy8gU2xlZXBzL1dhaXRzXG4gICAgICBjYXNlICd3YWl0X2NyZWF0ZWQnOlxuICAgICAgICB3YWl0Q3JlYXRlZC5zZXQoY29ycmVsYXRpb25JZCwgZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3dhaXRfY29tcGxldGVkJzpcbiAgICAgICAgd2FpdENvbXBsZXRlZC5hZGQoY29ycmVsYXRpb25JZCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICAvLyBTdGVwc1xuICAgICAgY2FzZSAnc3RlcF9zdGFydGVkJzpcbiAgICAgICAgc3RlcFN0YXJ0ZWQuc2V0KGNvcnJlbGF0aW9uSWQsIGV2ZW50KTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFsYXN0U3RlcEFjdGl2aXR5QXQgfHxcbiAgICAgICAgICBuZXcgRGF0ZShldmVudC5jcmVhdGVkQXQpID4gbGFzdFN0ZXBBY3Rpdml0eUF0XG4gICAgICAgICkge1xuICAgICAgICAgIGxhc3RTdGVwQWN0aXZpdHlBdCA9IG5ldyBEYXRlKGV2ZW50LmNyZWF0ZWRBdCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdGVwX3JldHJ5aW5nJzpcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFsYXN0U3RlcEFjdGl2aXR5QXQgfHxcbiAgICAgICAgICBuZXcgRGF0ZShldmVudC5jcmVhdGVkQXQpID4gbGFzdFN0ZXBBY3Rpdml0eUF0XG4gICAgICAgICkge1xuICAgICAgICAgIGxhc3RTdGVwQWN0aXZpdHlBdCA9IG5ldyBEYXRlKGV2ZW50LmNyZWF0ZWRBdCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdGVwX2NvbXBsZXRlZCc6XG4gICAgICBjYXNlICdzdGVwX2ZhaWxlZCc6XG4gICAgICAgIHN0ZXBDb21wbGV0ZWQuYWRkKGNvcnJlbGF0aW9uSWQpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWxhc3RTdGVwQ29tcGxldGlvbkF0IHx8XG4gICAgICAgICAgbmV3IERhdGUoZXZlbnQuY3JlYXRlZEF0KSA+IGxhc3RTdGVwQ29tcGxldGlvbkF0XG4gICAgICAgICkge1xuICAgICAgICAgIGxhc3RTdGVwQ29tcGxldGlvbkF0ID0gbmV3IERhdGUoZXZlbnQuY3JlYXRlZEF0KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgLy8gSG9va3NcbiAgICAgIGNhc2UgJ2hvb2tfY3JlYXRlZCc6XG4gICAgICAgIGhvb2tDcmVhdGVkLnNldChjb3JyZWxhdGlvbklkLCBldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaG9va19kaXNwb3NlZCc6XG4gICAgICAgIGhvb2tEaXNwb3NlZC5hZGQoY29ycmVsYXRpb25JZCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZpbmQgcGVuZGluZyBpdGVtcyAoY3JlYXRlZCBidXQgbm90IGNvbXBsZXRlZClcbiAgY29uc3QgcGVuZGluZ1NsZWVwSWRzID0gQXJyYXkuZnJvbSh3YWl0Q3JlYXRlZC5rZXlzKCkpLmZpbHRlcihcbiAgICAoaWQpID0+ICF3YWl0Q29tcGxldGVkLmhhcyhpZClcbiAgKTtcbiAgY29uc3QgcGVuZGluZ1N0ZXBJZHMgPSBBcnJheS5mcm9tKHN0ZXBTdGFydGVkLmtleXMoKSkuZmlsdGVyKFxuICAgIChpZCkgPT4gIXN0ZXBDb21wbGV0ZWQuaGFzKGlkKVxuICApO1xuICBjb25zdCBwZW5kaW5nSG9va0lkcyA9IEFycmF5LmZyb20oaG9va0NyZWF0ZWQua2V5cygpKS5maWx0ZXIoXG4gICAgKGlkKSA9PiAhaG9va0Rpc3Bvc2VkLmhhcyhpZClcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIGhhc1BlbmRpbmdTbGVlcHM6IHBlbmRpbmdTbGVlcElkcy5sZW5ndGggPiAwLFxuICAgIGhhc1BlbmRpbmdTdGVwczogcGVuZGluZ1N0ZXBJZHMubGVuZ3RoID4gMCxcbiAgICBoYXNQZW5kaW5nSG9va3M6IHBlbmRpbmdIb29rSWRzLmxlbmd0aCA+IDAsXG4gICAgcGVuZGluZ1NsZWVwSWRzLFxuICAgIHBlbmRpbmdTdGVwSWRzLFxuICAgIHBlbmRpbmdIb29rSWRzLFxuICAgIGxhc3RTdGVwQWN0aXZpdHlBdCxcbiAgICBsYXN0U3RlcENvbXBsZXRpb25BdCxcbiAgfTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIHdvcmtmbG93IHJ1biBzdGF0dXMgaXMgdGVybWluYWwgKGNvbXBsZXRlZCwgZmFpbGVkLCBvciBjYW5jZWxsZWQpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Rlcm1pbmFsU3RhdHVzKFxuICBzdGF0dXM6IFdvcmtmbG93UnVuU3RhdHVzIHwgdW5kZWZpbmVkXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBzdGF0dXMgPT09ICdjb21wbGV0ZWQnIHx8IHN0YXR1cyA9PT0gJ2ZhaWxlZCcgfHwgc3RhdHVzID09PSAnY2FuY2VsbGVkJ1xuICApO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiB0aGUgUmUtZW5xdWV1ZSBidXR0b24gc2hvdWxkIGJlIHNob3duIHdpdGhvdXQgdGhlIGRlYnVnIGZsYWcuXG4gKlxuICogVGhlIFJlLWVucXVldWUgYnV0dG9uIGlzIHNob3duIHdoZW4gdGhlIHdvcmtmbG93IGFwcGVhcnMgdG8gYmUgc3R1Y2s6XG4gKiAtIFRoZSB3b3JrZmxvdyBpcyBub3QgaW4gYSB0ZXJtaW5hbCBzdGF0ZVxuICogLSBUaGVyZSBhcmUgbm8gcGVuZGluZyBzbGVlcHMgKHdoaWNoIHdvdWxkIHNob3cgdGhlIFdha2UgdXAgYnV0dG9uIGluc3RlYWQpXG4gKiAtIFRoZXJlIGFyZSBubyBwZW5kaW5nIGhvb2tzICh3aGljaCBhcmUgd2FpdGluZyBmb3IgZXh0ZXJuYWwgaW5wdXQpXG4gKiAtIEVpdGhlcjpcbiAqICAgLSBUaGUgbGFzdCBzdGVwX3N0YXJ0ZWQgb3Igc3RlcF9yZXRyeWluZyBldmVudCB3YXMgPjMwIG1pbnV0ZXMgYWdvLCBPUlxuICogICAtIFRoZXJlIGhhdmUgYmVlbiBubyBwZW5kaW5nIHN0ZXBzIGZvciA+NSBtaW51dGVzIChhbGwgc3RlcHMgY29tcGxldGVkL2ZhaWxlZClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZFNob3dSZWVucXVldWVCdXR0b24oXG4gIGV2ZW50czogRXZlbnRbXSB8IHVuZGVmaW5lZCxcbiAgc3RhdHVzOiBXb3JrZmxvd1J1blN0YXR1cyB8IHVuZGVmaW5lZFxuKTogYm9vbGVhbiB7XG4gIC8vIE5ldmVyIHNob3cgaWYgaW4gdGVybWluYWwgc3RhdGVcbiAgaWYgKGlzVGVybWluYWxTdGF0dXMoc3RhdHVzKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGFuYWx5c2lzID0gYW5hbHl6ZUV2ZW50cyhldmVudHMpO1xuXG4gIC8vIERvbid0IHNob3cgaWYgdGhlcmUgYXJlIHBlbmRpbmcgc2xlZXBzIChXYWtlIHVwIGJ1dHRvbiBoYW5kbGVzIHRoaXMpXG4gIGlmIChhbmFseXNpcy5oYXNQZW5kaW5nU2xlZXBzKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gRG9uJ3Qgc2hvdyBpZiB0aGVyZSBhcmUgcGVuZGluZyBob29rcyAod2FpdGluZyBmb3IgZXh0ZXJuYWwgaW5wdXQpXG4gIGlmIChhbmFseXNpcy5oYXNQZW5kaW5nSG9va3MpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuXG4gIC8vIENoZWNrIGlmIGxhc3Qgc3RlcCBhY3Rpdml0eSB3YXMgPjMwIG1pbnV0ZXMgYWdvXG4gIGlmIChhbmFseXNpcy5sYXN0U3RlcEFjdGl2aXR5QXQpIHtcbiAgICBjb25zdCB0aW1lU2luY2VMYXN0QWN0aXZpdHkgPSBub3cgLSBhbmFseXNpcy5sYXN0U3RlcEFjdGl2aXR5QXQuZ2V0VGltZSgpO1xuICAgIGlmICh0aW1lU2luY2VMYXN0QWN0aXZpdHkgPiBTVEVQX0FDVElWSVRZX1RJTUVPVVRfTVMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZXJlIGFyZSBubyBwZW5kaW5nIHN0ZXBzIGFuZCBsYXN0IGNvbXBsZXRpb24gd2FzID41IG1pbnV0ZXMgYWdvXG4gIGlmICghYW5hbHlzaXMuaGFzUGVuZGluZ1N0ZXBzICYmIGFuYWx5c2lzLmxhc3RTdGVwQ29tcGxldGlvbkF0KSB7XG4gICAgY29uc3QgdGltZVNpbmNlTGFzdENvbXBsZXRpb24gPVxuICAgICAgbm93IC0gYW5hbHlzaXMubGFzdFN0ZXBDb21wbGV0aW9uQXQuZ2V0VGltZSgpO1xuICAgIGlmICh0aW1lU2luY2VMYXN0Q29tcGxldGlvbiA+IFNURVBfSURMRV9USU1FT1VUX01TKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiB0aGVyZSdzIG5vIHN0ZXAgYWN0aXZpdHkgYXQgYWxsIGJ1dCB0aGUgcnVuIGlzIG5vdCB0ZXJtaW5hbCxcbiAgLy8gYW5kIHdlJ3ZlIGJlZW4gd2FpdGluZyBmb3IgYSB3aGlsZSwgc2hvdyB0aGUgYnV0dG9uXG4gIGlmIChcbiAgICAhYW5hbHlzaXMubGFzdFN0ZXBBY3Rpdml0eUF0ICYmXG4gICAgIWFuYWx5c2lzLmhhc1BlbmRpbmdTdGVwcyAmJlxuICAgICFhbmFseXNpcy5oYXNQZW5kaW5nU2xlZXBzICYmXG4gICAgIWFuYWx5c2lzLmhhc1BlbmRpbmdIb29rc1xuICApIHtcbiAgICAvLyBUaGlzIGNhc2UgaGFuZGxlcyBydW5zIHRoYXQgaGF2ZW4ndCBzdGFydGVkIGFueSBzdGVwcyB5ZXRcbiAgICAvLyBidXQgYXJlbid0IGluIGEgdGVybWluYWwgc3RhdGUgLSB0aGV5IG1pZ2h0IGJlIHN0dWNrXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlcmUgYXJlIHBlbmRpbmcgc3RlcHMgZnJvbSBhbiBldmVudHMgbGlzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1BlbmRpbmdTdGVwc0Zyb21FdmVudHMoXG4gIGV2ZW50czogRXZlbnRbXSB8IHVuZGVmaW5lZFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiBhbmFseXplRXZlbnRzKGV2ZW50cykuaGFzUGVuZGluZ1N0ZXBzO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZXJlIGFyZSBwZW5kaW5nIGhvb2tzIGZyb20gYW4gZXZlbnRzIGxpc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNQZW5kaW5nSG9va3NGcm9tRXZlbnRzKFxuICBldmVudHM6IEV2ZW50W10gfCB1bmRlZmluZWRcbik6IGJvb2xlYW4ge1xuICByZXR1cm4gYW5hbHl6ZUV2ZW50cyhldmVudHMpLmhhc1BlbmRpbmdIb29rcztcbn1cbiJdfQ==
@@ -168,4 +168,4 @@ export function materializeAll(events) {
168
168
  waits: materializeWaits(events),
169
169
  };
170
170
  }
171
- //# sourceMappingURL=event-materialization.js.map
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbWF0ZXJpYWxpemF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9ldmVudC1tYXRlcmlhbGl6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQW1ESCw4RUFBOEU7QUFDOUUsK0NBQStDO0FBQy9DLDhFQUE4RTtBQUU5RSxTQUFTLG9CQUFvQixDQUMzQixNQUFlLEVBQ2YsUUFBa0I7SUFFbEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7SUFDMUMsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMzQixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxHQUFHO1lBQUUsU0FBUztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFFLFNBQVM7UUFDdkQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCw4RUFBOEU7QUFDOUUsbUJBQW1CO0FBQ25CLDhFQUE4RTtBQUU5RTs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFlO0lBQzlDLE1BQU0sTUFBTSxHQUFHLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFD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RyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxPQUFPO1lBQUUsU0FBUztRQUV2QixNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLGdCQUFnQixDQUFDLENBQUM7UUFFM0UsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNULE1BQU0sRUFBRSxhQUFhO1lBQ3JCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztZQUNwQixNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDM0MsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1lBQzVCLFFBQVEsRUFDTixPQUFPLENBQUMsU0FBUyxLQUFLLGNBQWM7Z0JBQ2xDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFFBQVE7Z0JBQzdCLENBQUMsQ0FBQyxTQUFTO1lBQ2YsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxVQUFVO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCw4RUFBOEU7QUFDOUUsaUJBQWlCO0FBQ2pCLDhFQUE4RTtBQUU5RTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQWU7SUFDNUMsT0FBTztRQUNMLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7UUFDL0IsS0FBSyxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztRQUMvQixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0tBQ2hDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFdmVudCBtYXRlcmlhbGl6YXRpb24gaGVscGVycy5cbiAqXG4gKiBUaGVzZSBmdW5jdGlvbnMgY29udmVydCBhIGZsYXQgbGlzdCBvZiB3b3JrZmxvdyBldmVudHMgaW50byBlbnRpdHktbGlrZVxuICogb2JqZWN0cyAoc3RlcHMsIGhvb2tzLCB3YWl0cykgYnkgZ3JvdXBpbmcgZXZlbnRzIGJ5IGNvcnJlbGF0aW9uSWQgYW5kXG4gKiBzdGl0Y2hpbmcgdG9nZXRoZXIgbGlmZWN5Y2xlIGV2ZW50cy5cbiAqXG4gKiBUaGlzIGVuYWJsZXMgYSBcInRvcC1kb3duXCIgZGF0YSBmZXRjaGluZyBwYXR0ZXJuIHdoZXJlIHRoZSBjbGllbnQgZmV0Y2hlc1xuICogYWxsIGV2ZW50cyBmb3IgYSBydW4gb25jZSwgdGhlbiBtYXRlcmlhbGl6ZXMgZW50aXRpZXMgY2xpZW50LXNpZGUgaW5zdGVhZFxuICogb2YgbWFraW5nIHNlcGFyYXRlIEFQSSBjYWxscyBmb3IgZWFjaCBlbnRpdHkgdHlwZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEV2ZW50LCBTdGVwU3RhdHVzIH0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBNYXRlcmlhbGl6ZWQgZW50aXR5IHR5cGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGludGVyZmFjZSBNYXRlcmlhbGl6ZWRTdGVwIHtcbiAgc3RlcElkOiBzdHJpbmc7XG4gIHJ1bklkOiBzdHJpbmc7XG4gIHN0ZXBOYW1lOiBzdHJpbmc7XG4gIHN0YXR1czogU3RlcFN0YXR1cztcbiAgYXR0ZW1wdDogbnVtYmVyO1xuICBjcmVhdGVkQXQ6IERhdGU7XG4gIHN0YXJ0ZWRBdD86IERhdGU7XG4gIGNvbXBsZXRlZEF0PzogRGF0ZTtcbiAgdXBkYXRlZEF0OiBEYXRlO1xuICAvKiogQWxsIGV2ZW50cyBmb3IgdGhpcyBzdGVwLCBpbiBpbnNlcnRpb24gb3JkZXIgKi9cbiAgZXZlbnRzOiBFdmVudFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hdGVyaWFsaXplZEhvb2sge1xuICBob29rSWQ6IHN0cmluZztcbiAgcnVuSWQ6IHN0cmluZztcbiAgdG9rZW4/OiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogRGF0ZTtcbiAgcmVjZWl2ZWRDb3VudDogbnVtYmVyO1xuICBsYXN0UmVjZWl2ZWRBdD86IERhdGU7XG4gIGRpc3Bvc2VkQXQ/OiBEYXRlO1xuICAvKiogQWxsIGV2ZW50cyBmb3IgdGhpcyBob29rLCBpbiBpbnNlcnRpb24gb3JkZXIgKi9cbiAgZXZlbnRzOiBFdmVudFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hdGVyaWFsaXplZFdhaXQge1xuICB3YWl0SWQ6IHN0cmluZztcbiAgcnVuSWQ6IHN0cmluZztcbiAgc3RhdHVzOiAnd2FpdGluZycgfCAnY29tcGxldGVkJztcbiAgY3JlYXRlZEF0OiBEYXRlO1xuICByZXN1bWVBdD86IERhdGU7XG4gIGNvbXBsZXRlZEF0PzogRGF0ZTtcbiAgLyoqIEFsbCBldmVudHMgZm9yIHRoaXMgd2FpdCwgaW4gaW5zZXJ0aW9uIG9yZGVyICovXG4gIGV2ZW50czogRXZlbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXRlcmlhbGl6ZWRFbnRpdGllcyB7XG4gIHN0ZXBzOiBNYXRlcmlhbGl6ZWRTdGVwW107XG4gIGhvb2tzOiBNYXRlcmlhbGl6ZWRIb29rW107XG4gIHdhaXRzOiBNYXRlcmlhbGl6ZWRXYWl0W107XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gSGVscGVyOiBncm91cCBldmVudHMgYnkgY29ycmVsYXRpb25JZCBwcmVmaXhcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBncm91cEJ5Q29ycmVsYXRpb25JZChcbiAgZXZlbnRzOiBFdmVudFtdLFxuICBwcmVmaXhlczogc3RyaW5nW11cbik6IE1hcDxzdHJpbmcsIEV2ZW50W10+IHtcbiAgY29uc3QgZ3JvdXBzID0gbmV3IE1hcDxzdHJpbmcsIEV2ZW50W10+KCk7XG4gIGZvciAoY29uc3QgZXZlbnQgb2YgZXZlbnRzKSB7XG4gICAgY29uc3QgY2lkID0gZXZlbnQuY29ycmVsYXRpb25JZDtcbiAgICBpZiAoIWNpZCkgY29udGludWU7XG4gICAgaWYgKCFwcmVmaXhlcy5zb21lKChwKSA9PiBjaWQuc3RhcnRzV2l0aChwKSkpIGNvbnRpbnVlO1xuICAgIGNvbnN0IGV4aXN0aW5nID0gZ3JvdXBzLmdldChjaWQpO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgZXhpc3RpbmcucHVzaChldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGdyb3Vwcy5zZXQoY2lkLCBbZXZlbnRdKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGdyb3Vwcztcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBtYXRlcmlhbGl6ZVN0ZXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBHcm91cCBzdGVwXyogZXZlbnRzIGJ5IGNvcnJlbGF0aW9uSWQgYW5kIGJ1aWxkIFN0ZXAtbGlrZSBlbnRpdGllcy5cbiAqXG4gKiBIYW5kbGVzIHBhcnRpYWwgZXZlbnQgbGlzdHMgZ3JhY2VmdWxseTogYSBzdGVwIG1heSBvbmx5IGhhdmUgYVxuICogc3RlcF9jcmVhdGVkIGV2ZW50IHdpdGggbm8gY29tcGxldGlvbiB5ZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRlcmlhbGl6ZVN0ZXBzKGV2ZW50czogRXZlbnRbXSk6IE1hdGVyaWFsaXplZFN0ZXBbXSB7XG4gIGNvbnN0IGdyb3VwcyA9IGdyb3VwQnlDb3JyZWxhdGlvbklkKGV2ZW50cywgWydzdGVwXyddKTtcbiAgY29uc3Qgc3RlcHM6IE1hdGVyaWFsaXplZFN0ZXBbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgW2NvcnJlbGF0aW9uSWQsIHN0ZXBFdmVudHNdIG9mIGdyb3Vwcykge1xuICAgIGNvbnN0IGNyZWF0ZWQgPSBzdGVwRXZlbnRzLmZpbmQoKGUpID0+IGUuZXZlbnRUeXBlID09PSAnc3RlcF9jcmVhdGVkJyk7XG4gICAgaWYgKCFjcmVhdGVkKSBjb250aW51ZTtcblxuICAgIGxldCBzdGF0dXM6IFN0ZXBTdGF0dXMgPSAncGVuZGluZyc7XG4gICAgbGV0IGF0dGVtcHQgPSAwO1xuICAgIGxldCBzdGFydGVkQXQ6IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgbGV0IGNvbXBsZXRlZEF0OiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgIGxldCB1cGRhdGVkQXQgPSBjcmVhdGVkLmNyZWF0ZWRBdDtcblxuICAgIGZvciAoY29uc3QgZSBvZiBzdGVwRXZlbnRzKSB7XG4gICAgICBzd2l0Y2ggKGUuZXZlbnRUeXBlKSB7XG4gICAgICAgIGNhc2UgJ3N0ZXBfc3RhcnRlZCc6XG4gICAgICAgICAgc3RhdHVzID0gJ3J1bm5pbmcnO1xuICAgICAgICAgIGF0dGVtcHQgKz0gMTtcbiAgICAgICAgICBpZiAoIXN0YXJ0ZWRBdCkgc3RhcnRlZEF0ID0gZS5jcmVhdGVkQXQ7XG4gICAgICAgICAgY29tcGxldGVkQXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgdXBkYXRlZEF0ID0gZS5jcmVhdGVkQXQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3N0ZXBfY29tcGxldGVkJzpcbiAgICAgICAgICBzdGF0dXMgPSAnY29tcGxldGVkJztcbiAgICAgICAgICBjb21wbGV0ZWRBdCA9IGUuY3JlYXRlZEF0O1xuICAgICAgICAgIHVwZGF0ZWRBdCA9IGUuY3JlYXRlZEF0O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzdGVwX2ZhaWxlZCc6XG4gICAgICAgICAgc3RhdHVzID0gJ2ZhaWxlZCc7XG4gICAgICAgICAgY29tcGxldGVkQXQgPSBlLmNyZWF0ZWRBdDtcbiAgICAgICAgICB1cGRhdGVkQXQgPSBlLmNyZWF0ZWRBdDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnc3RlcF9yZXRyeWluZyc6XG4gICAgICAgICAgc3RhdHVzID0gJ3BlbmRpbmcnO1xuICAgICAgICAgIGNvbXBsZXRlZEF0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgIHVwZGF0ZWRBdCA9IGUuY3JlYXRlZEF0O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN0ZXBzLnB1c2goe1xuICAgICAgc3RlcElkOiBjb3JyZWxhdGlvbklkLFxuICAgICAgcnVuSWQ6IGNyZWF0ZWQucnVuSWQsXG4gICAgICBzdGVwTmFtZTpcbiAgICAgICAgY3JlYXRlZC5ldmVudFR5cGUgPT09ICdzdGVwX2NyZWF0ZWQnXG4gICAgICAgICAgPyAoY3JlYXRlZC5ldmVudERhdGE/LnN0ZXBOYW1lID8/IGNvcnJlbGF0aW9uSWQpXG4gICAgICAgICAgOiBjb3JyZWxhdGlvbklkLFxuICAgICAgc3RhdHVzLFxuICAgICAgYXR0ZW1wdCxcbiAgICAgIGNyZWF0ZWRBdDogY3JlYXRlZC5jcmVhdGVkQXQsXG4gICAgICBzdGFydGVkQXQsXG4gICAgICBjb21wbGV0ZWRBdCxcbiAgICAgIHVwZGF0ZWRBdCxcbiAgICAgIGV2ZW50czogc3RlcEV2ZW50cyxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBzdGVwcztcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBtYXRlcmlhbGl6ZUhvb2tzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBHcm91cCBob29rXyogZXZlbnRzIGJ5IGNvcnJlbGF0aW9uSWQgYW5kIGJ1aWxkIEhvb2stbGlrZSBlbnRpdGllcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGVyaWFsaXplSG9va3MoZXZlbnRzOiBFdmVudFtdKTogTWF0ZXJpYWxpemVkSG9va1tdIHtcbiAgY29uc3QgZ3JvdXBzID0gZ3JvdXBCeUNvcnJlbGF0aW9uSWQoZXZlbnRzLCBbJ2hvb2tfJ10pO1xuICBjb25zdCBob29rczogTWF0ZXJpYWxpemVkSG9va1tdID0gW107XG5cbiAgZm9yIChjb25zdCBbY29ycmVsYXRpb25JZCwgaG9va0V2ZW50c10gb2YgZ3JvdXBzKSB7XG4gICAgY29uc3QgY3JlYXRlZCA9IGhvb2tFdmVudHMuZmluZCgoZSkgPT4gZS5ldmVudFR5cGUgPT09ICdob29rX2NyZWF0ZWQnKTtcbiAgICBpZiAoIWNyZWF0ZWQpIGNvbnRpbnVlO1xuXG4gICAgY29uc3QgcmVjZWl2ZWRFdmVudHMgPSBob29rRXZlbnRzLmZpbHRlcihcbiAgICAgIChlKSA9PiBlLmV2ZW50VHlwZSA9PT0gJ2hvb2tfcmVjZWl2ZWQnXG4gICAgKTtcbiAgICBjb25zdCBkaXNwb3NlZCA9IGhvb2tFdmVudHMuZmluZCgoZSkgPT4gZS5ldmVudFR5cGUgPT09ICdob29rX2Rpc3Bvc2VkJyk7XG4gICAgY29uc3QgbGFzdFJlY2VpdmVkID0gcmVjZWl2ZWRFdmVudHMuYXQoLTEpO1xuXG4gICAgaG9va3MucHVzaCh7XG4gICAgICBob29rSWQ6IGNvcnJlbGF0aW9uSWQsXG4gICAgICBydW5JZDogY3JlYXRlZC5ydW5JZCxcbiAgICAgIHRva2VuOlxuICAgICAgICBjcmVhdGVkLmV2ZW50VHlwZSA9PT0gJ2hvb2tfY3JlYXRlZCdcbiAgICAgICAgICA/IGNyZWF0ZWQuZXZlbnREYXRhPy50b2tlblxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgY3JlYXRlZEF0OiBjcmVhdGVkLmNyZWF0ZWRBdCxcbiAgICAgIHJlY2VpdmVkQ291bnQ6IHJlY2VpdmVkRXZlbnRzLmxlbmd0aCxcbiAgICAgIGxhc3RSZWNlaXZlZEF0OiBsYXN0UmVjZWl2ZWQ/LmNyZWF0ZWRBdCxcbiAgICAgIGRpc3Bvc2VkQXQ6IGRpc3Bvc2VkPy5jcmVhdGVkQXQsXG4gICAgICBldmVudHM6IGhvb2tFdmVudHMsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gaG9va3M7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gbWF0ZXJpYWxpemVXYWl0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogR3JvdXAgd2FpdF8qIGV2ZW50cyBieSBjb3JyZWxhdGlvbklkIGFuZCBidWlsZCBXYWl0LWxpa2UgZW50aXRpZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRlcmlhbGl6ZVdhaXRzKGV2ZW50czogRXZlbnRbXSk6IE1hdGVyaWFsaXplZFdhaXRbXSB7XG4gIGNvbnN0IGdyb3VwcyA9IGdyb3VwQnlDb3JyZWxhdGlvbklkKGV2ZW50cywgWyd3YWl0XyddKTtcbiAgY29uc3Qgd2FpdHM6IE1hdGVyaWFsaXplZFdhaXRbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgW2NvcnJlbGF0aW9uSWQsIHdhaXRFdmVudHNdIG9mIGdyb3Vwcykge1xuICAgIGNvbnN0IGNyZWF0ZWQgPSB3YWl0RXZlbnRzLmZpbmQoKGUpID0+IGUuZXZlbnRUeXBlID09PSAnd2FpdF9jcmVhdGVkJyk7XG4gICAgaWYgKCFjcmVhdGVkKSBjb250aW51ZTtcblxuICAgIGNvbnN0IGNvbXBsZXRlZCA9IHdhaXRFdmVudHMuZmluZCgoZSkgPT4gZS5ldmVudFR5cGUgPT09ICd3YWl0X2NvbXBsZXRlZCcpO1xuXG4gICAgd2FpdHMucHVzaCh7XG4gICAgICB3YWl0SWQ6IGNvcnJlbGF0aW9uSWQsXG4gICAgICBydW5JZDogY3JlYXRlZC5ydW5JZCxcbiAgICAgIHN0YXR1czogY29tcGxldGVkID8gJ2NvbXBsZXRlZCcgOiAnd2FpdGluZycsXG4gICAgICBjcmVhdGVkQXQ6IGNyZWF0ZWQuY3JlYXRlZEF0LFxuICAgICAgcmVzdW1lQXQ6XG4gICAgICAgIGNyZWF0ZWQuZXZlbnRUeXBlID09PSAnd2FpdF9jcmVhdGVkJ1xuICAgICAgICAgID8gY3JlYXRlZC5ldmVudERhdGE/LnJlc3VtZUF0XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBjb21wbGV0ZWRBdDogY29tcGxldGVkPy5jcmVhdGVkQXQsXG4gICAgICBldmVudHM6IHdhaXRFdmVudHMsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gd2FpdHM7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gbWF0ZXJpYWxpemVBbGxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQgbWF0ZXJpYWxpemVzIGFsbCBlbnRpdHkgdHlwZXMgZnJvbSBhIGZsYXRcbiAqIGV2ZW50IGxpc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRlcmlhbGl6ZUFsbChldmVudHM6IEV2ZW50W10pOiBNYXRlcmlhbGl6ZWRFbnRpdGllcyB7XG4gIHJldHVybiB7XG4gICAgc3RlcHM6IG1hdGVyaWFsaXplU3RlcHMoZXZlbnRzKSxcbiAgICBob29rczogbWF0ZXJpYWxpemVIb29rcyhldmVudHMpLFxuICAgIHdhaXRzOiBtYXRlcmlhbGl6ZVdhaXRzKGV2ZW50cyksXG4gIH07XG59XG4iXX0=
@@ -431,4 +431,4 @@ export function hasEncryptedFields(resource) {
431
431
  }
432
432
  return false;
433
433
  }
434
- //# sourceMappingURL=hydration.js.map
434
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlkcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9oeWRyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixpQkFBaUIsSUFBSSx3QkFBd0IsRUFDN0MsZUFBZSxFQUNmLGFBQWEsRUFDYixRQUFRLEVBQ1IscUJBQXFCLEVBRXJCLHVCQUF1QixHQUN4QixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELG9EQUFvRDtBQUNwRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsUUFBUSxFQUNSLFVBQVUsRUFDVixXQUFXLEVBRVgsWUFBWSxFQUVaLGVBQWUsRUFFZix1QkFBdUIsRUFDdkIsVUFBVSxHQUNYLE1BQU0scUNBQXFDLENBQUM7QUFFN0MsOEVBQThFO0FBQzlFLDZCQUE2QjtBQUM3Qiw4RUFBOEU7QUFFOUUsU0FBUyxtQkFBbUIsQ0FBQyxNQUFjO0lBQ3pDLElBQUksTUFBTSxLQUFLLEVBQUUsSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDcEMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzdDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLENB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QVE7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUM1RCxNQUFNLENBQUMsR0FBRyxRQUFtQyxDQUFDO0lBRTlDLEtBQUssTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzNELElBQUksaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksQ0FBQyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsQ0FBQyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDbkQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsU0FBUyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JFLE1BQU0sT0FBTyxHQUFHLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2RCxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsU0FBb0MsQ0FBQztRQUNsRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzFCLElBQUksR0FBRyxJQUFJLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUM7UUFDM0QsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFdlYi1zcGVjaWZpYyBoeWRyYXRpb24gZm9yIG8xMXkgZGlzcGxheS5cbiAqXG4gKiBCcm93c2VyLXNhZmUgcmV2aXZlcnMgdGhhdCB1c2UgYGF0b2IoKWAgZm9yIGJhc2U2NCBkZWNvZGluZyAobm8gTm9kZS5qc1xuICogYEJ1ZmZlcmAgZGVwZW5kZW5jeSkuIFByb2R1Y2VzIGBDbGFzc0luc3RhbmNlUmVmYCBvYmplY3RzIGFuZCBgU3RyZWFtUmVmYFxuICogb2JqZWN0cyBmb3IgVUkgcmVuZGVyaW5nLlxuICovXG5cbmltcG9ydCB7XG4gIGV4dHJhY3RDbGFzc05hbWUsXG4gIGh5ZHJhdGVSZXNvdXJjZUlPIGFzIGh5ZHJhdGVSZXNvdXJjZUlPR2VuZXJpYyxcbiAgaXNFbmNyeXB0ZWREYXRhLFxuICBpc0V4cGlyZWRTdHViLFxuICBpc1J1blJlZixcbiAgb2JzZXJ2YWJpbGl0eVJldml2ZXJzLFxuICB0eXBlIFJldml2ZXJzLFxuICBzZXJpYWxpemVkSW5zdGFuY2VUb1JlZixcbn0gZnJvbSAnQHdvcmtmbG93L2NvcmUvc2VyaWFsaXphdGlvbi1mb3JtYXQnO1xuaW1wb3J0IHsgRVZFTlRfREFUQV9SRUZfRklFTERTIH0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcblxuLy8gUmUtZXhwb3J0IHR5cGVzIGFuZCB1dGlsaXRpZXMgdGhhdCBjb25zdW1lcnMgbmVlZFxuZXhwb3J0IHtcbiAgQ0xBU1NfSU5TVEFOQ0VfUkVGX1RZUEUsXG4gIENsYXNzSW5zdGFuY2VSZWYsXG4gIEVOQ1JZUFRFRF9QTEFDRUhPTERFUixcbiAgZXh0cmFjdFN0cmVhbUlkcyxcbiAgaXNDbGFzc0luc3RhbmNlUmVmLFxuICBpc0VuY3J5cHRlZERhdGEsXG4gIGlzUnVuUmVmLFxuICBpc1N0cmVhbUlkLFxuICBpc1N0cmVhbVJlZixcbiAgdHlwZSBSZXZpdmVycyxcbiAgUlVOX1JFRl9UWVBFLFxuICB0eXBlIFJ1blJlZixcbiAgU1RSRUFNX1JFRl9UWVBFLFxuICB0eXBlIFN0cmVhbVJlZixcbiAgc2VyaWFsaXplZEluc3RhbmNlVG9SZWYsXG4gIHRydW5jYXRlSWQsXG59IGZyb20gJ0B3b3JrZmxvdy9jb3JlL3NlcmlhbGl6YXRpb24tZm9ybWF0JztcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBCcm93c2VyLXNhZmUgYmFzZTY0IGRlY29kZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIGJhc2U2NFRvQXJyYXlCdWZmZXIoYmFzZTY0OiBzdHJpbmcpOiBBcnJheUJ1ZmZlciB7XG4gIGlmIChiYXNlNjQgPT09ICcnIHx8IGJhc2U2NCA9PT0gJy4nKSB7XG4gICAgcmV0dXJuIG5ldyBBcnJheUJ1ZmZlcigwKTtcbiAgfVxuICBjb25zdCBiaW5hcnlTdHJpbmcgPSBhdG9iKGJhc2U2NCk7XG4gIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYmluYXJ5U3RyaW5nLmxlbmd0aCk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYmluYXJ5U3RyaW5nLmxlbmd0aDsgaSsrKSB7XG4gICAgYnl0ZXNbaV0gPSBiaW5hcnlTdHJpbmcuY2hhckNvZGVBdChpKTtcbiAgfVxuICByZXR1cm4gYnl0ZXMuYnVmZmVyO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFdlYiByZXZpdmVycyAoYnJvd3Nlci1zYWZlLCBubyBCdWZmZXIgZGVwZW5kZW5jeSlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIEJ1aWxkIGEgcmV2aXZlciBmb3Igb25lIG9mIHRoZSBidWlsdC1pbiBgRXJyb3JgIHN1YmNsYXNzZXMgKGUuZy5cbiAqIGBUeXBlRXJyb3JgLCBgUmFuZ2VFcnJvcmApLiBUaGUgY29uc3RydWN0b3IgZm9yIHRoZSBuYW1lZCBzdWJjbGFzcyBpc1xuICogcmVzb2x2ZWQgb2ZmIGBnbG9iYWxUaGlzYCBhdCBjYWxsIHRpbWUgc28gdGhlIHByb2R1Y2VkIGluc3RhbmNlIGhhcyB0aGVcbiAqIGNvcnJlY3QgcHJvdG90eXBlIGNoYWluIGluIHRoZSBjb25zdW1lciByZWFsbS4gRmFsbHMgYmFjayB0byBhIGdlbmVyaWNcbiAqIGBFcnJvcmAgKHdpdGggYG5hbWVgIHNldCkgaWYgdGhlIGdsb2JhbCBpc24ndCBhdmFpbGFibGUsIHdoaWNoIGtlZXBzIHRoZVxuICogbzExeSBVSSByZW5kZXJpbmcgZXZlbiBvbiBleG90aWMgYnJvd3NlcnMuXG4gKlxuICogYGNhdXNlYCBpcyBwYXNzZWQgdGhyb3VnaCBgRXJyb3JPcHRpb25zYCB0byB0aGUgY29uc3RydWN0b3Igd2hlbiBwcmVzZW50LFxuICogbWF0Y2hpbmcgYGdldENvbW1vblJldml2ZXJzYCBpbiBgQHdvcmtmbG93L2NvcmVgIHNvIHRoZSByZXN1bHRpbmcgYGNhdXNlYFxuICogcHJvcGVydHkgaGFzIHRoZSBzYW1lIHNlbWFudGljcyAobm9uLWVudW1lcmFibGUsIHNldCBieSB0aGUgZW5naW5lKSBhcyBhXG4gKiBmcmVzaGx5IHRocm93biBFcnJvciBpbiB0aGUgY29uc3VtZXIgcmVhbG0uIFRoZSBgJ2NhdXNlJyBpbiB2YWx1ZWAgY2hlY2tcbiAqIHByZXNlcnZlcyB0aGUgZGlzdGluY3Rpb24gYmV0d2VlbiBcIm5vIGNhdXNlXCIgYW5kIFwiY2F1c2UgaXMgdW5kZWZpbmVkXCIuXG4gKi9cbmZ1bmN0aW9uIG1ha2VXZWJFcnJvclN1YmNsYXNzUmV2aXZlcihcbiAgbmFtZTpcbiAgICB8ICdFdmFsRXJyb3InXG4gICAgfCAnUmFuZ2VFcnJvcidcbiAgICB8ICdSZWZlcmVuY2VFcnJvcidcbiAgICB8ICdTeW50YXhFcnJvcidcbiAgICB8ICdUeXBlRXJyb3InXG4gICAgfCAnVVJJRXJyb3InXG4pIHtcbiAgcmV0dXJuICh2YWx1ZTogeyBtZXNzYWdlOiBzdHJpbmc7IHN0YWNrPzogc3RyaW5nOyBjYXVzZT86IHVua25vd24gfSkgPT4ge1xuICAgIGNvbnN0IG9wdHMgPSAnY2F1c2UnIGluIHZhbHVlID8geyBjYXVzZTogdmFsdWUuY2F1c2UgfSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBDdG9yID0gKGdsb2JhbFRoaXMgYXMgUmVjb3JkPHN0cmluZywgYW55PilbbmFtZV0gYXNcbiAgICAgIHwgRXJyb3JDb25zdHJ1Y3RvclxuICAgICAgfCB1bmRlZmluZWQ7XG4gICAgbGV0IGVycm9yOiBFcnJvcjtcbiAgICBpZiAodHlwZW9mIEN0b3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yID0gbmV3IEN0b3IodmFsdWUubWVzc2FnZSwgb3B0cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZhbGxiYWNrIHBhdGg6IG5vIGJ1aWx0LWluIHN1YmNsYXNzIGF2YWlsYWJsZSAoZXhvdGljIGVudikuIENvbnN0cnVjdFxuICAgICAgLy8gYSBwbGFpbiBFcnJvciB3aXRoIHRoZSByaWdodCBgbmFtZWAgYW5kIGNvcHkgYGNhdXNlYCBtYW51YWxseSBzaW5jZVxuICAgICAgLy8gdGhlIGJhc2UgRXJyb3IgY29uc3RydWN0b3IgaXMgd2hhdCB3ZSBhY3R1YWxseSBjYWxsZWQuXG4gICAgICBlcnJvciA9IE9iamVjdC5hc3NpZ24obmV3IEVycm9yKHZhbHVlLm1lc3NhZ2UsIG9wdHMpLCB7IG5hbWUgfSk7XG4gICAgfVxuICAgIGlmICh2YWx1ZS5zdGFjayAhPT0gdW5kZWZpbmVkKSBlcnJvci5zdGFjayA9IHZhbHVlLnN0YWNrO1xuICAgIHJldHVybiBlcnJvcjtcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHdlYi1zcGVjaWZpYyByZXZpdmVycyBmb3IgaHlkcmF0aW5nIHNlcmlhbGl6ZWQgZGF0YS5cbiAqXG4gKiBVc2VzIGBhdG9iKClgIGZvciBiYXNlNjQgZGVjb2RpbmcgKG5vIE5vZGUuanMgQnVmZmVyIGRlcGVuZGVuY3kpLlxuICogQWxsIHR5cGVzIGFyZSByZXZpdmVkIGFzIHJlYWwgaW5zdGFuY2VzIChEYXRlLCBNYXAsIFNldCwgVVJMLFxuICogVVJMU2VhcmNoUGFyYW1zLCBIZWFkZXJzLCBFcnJvciwgZXRjLikuXG4gKlxuICogTk9URTogdGhpcyBzZXQgbXVzdCBtaXJyb3IgdGhlIGtleXMgaW4gYFNlcmlhbGl6YWJsZVNwZWNpYWxgIChzZWVcbiAqIGBAd29ya2Zsb3cvY29yZS9zZXJpYWxpemF0aW9uL3R5cGVzYCkuIEFueSByZWR1Y2VyIGtleSBhZGRlZCBvbiB0aGVcbiAqIHNlcmlhbGl6YXRpb24gc2lkZSB0aGF0IGlzbid0IGNvdmVyZWQgaGVyZSB3aWxsIGNhdXNlIGBkZXZhbHVlLnVuZmxhdHRlbmBcbiAqIHRvIHRocm93IGBVbmtub3duIHR5cGUgWGAsIHdoaWNoIGBoeWRyYXRlUmVzb3VyY2VJT2Agc3dhbGxvd3MgYW5kXG4gKiBzdXJmYWNlcyBhcyBhIFwiRmFpbGVkIHRvIGxvYWQgcmVzb3VyY2UgZGV0YWlsc1wiIGJhbm5lciBpbiB0aGUgbzExeSBVSS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFdlYlJldml2ZXJzKCk6IFJldml2ZXJzIHtcbiAgZnVuY3Rpb24gcmV2aXZlQXJyYXlCdWZmZXIodmFsdWU6IHN0cmluZyk6IEFycmF5QnVmZmVyIHtcbiAgICByZXR1cm4gYmFzZTY0VG9BcnJheUJ1ZmZlcih2YWx1ZSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC8vIE8xMXktc3BlY2lmaWMgcmV2aXZlcnMgKHN0cmVhbXMsIHN0ZXAgZnVuY3Rpb25zIOKGkiBkaXNwbGF5IG9iamVjdHMpLlxuICAgIC8vIFNwcmVhZCBGSVJTVCBzbyB3ZWItc3BlY2lmaWMgb3ZlcnJpZGVzIGJlbG93IHRha2UgcHJlY2VkZW5jZS5cbiAgICAuLi5vYnNlcnZhYmlsaXR5UmV2aXZlcnMsXG5cbiAgICAvLyBCaW5hcnkgdHlwZXNcbiAgICBBcnJheUJ1ZmZlcjogcmV2aXZlQXJyYXlCdWZmZXIsXG4gICAgQmlnSW50OiAodmFsdWU6IHN0cmluZykgPT4gQmlnSW50KHZhbHVlKSxcbiAgICBCaWdJbnQ2NEFycmF5OiAodmFsdWU6IHN0cmluZykgPT5cbiAgICAgIG5ldyBCaWdJbnQ2NEFycmF5KHJldml2ZUFycmF5QnVmZmVyKHZhbHVlKSksXG4gICAgQmlnVWludDY0QXJyYXk6ICh2YWx1ZTogc3RyaW5nKSA9PlxuICAgICAgbmV3IEJpZ1VpbnQ2NEFycmF5KHJldml2ZUFycmF5QnVmZmVyKHZhbHVlKSksXG4gICAgRGF0ZTogKHZhbHVlKSA9PiBuZXcgRGF0ZSh2YWx1ZSksXG5cbiAgICAvLyBFcnJvciBmYW1pbHkuIFRoZSByZWR1Y2VyIHNpZGUgKHNlZVxuICAgIC8vIGBwYWNrYWdlcy9jb3JlL3NyYy9zZXJpYWxpemF0aW9uL3JlZHVjZXJzL2NvbW1vbi50c2ApIGVtaXRzIGEgdGFnZ2VkXG4gICAgLy8gZW50cnkgZm9yIGVhY2ggYnVpbHQtaW4gRXJyb3Igc3ViY2xhc3MgcGx1cyB0aGUgd29ya2Zsb3ctc3BlY2lmaWNcbiAgICAvLyBgRmF0YWxFcnJvcmAgLyBgUmV0cnlhYmxlRXJyb3JgIGFuZCBgQWdncmVnYXRlRXJyb3JgLiBXaXRob3V0XG4gICAgLy8gbWF0Y2hpbmcgcmV2aXZlcnMgaGVyZSwgYGRldmFsdWUudW5mbGF0dGVuYCB0aHJvd3MgXCJVbmtub3duIHR5cGUgWFwiXG4gICAgLy8g4oCUIHdoaWNoIHN1cmZhY2VzIGluIHRoZSB3ZWIgbzExeSBVSSBhcyBcIkZhaWxlZCB0byBsb2FkIHJlc291cmNlXG4gICAgLy8gZGV0YWlsczogVW5rbm93biB0eXBlIEZhdGFsRXJyb3JcIi5cbiAgICBFcnJvcjogKHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCBvcHRzID0gJ2NhdXNlJyBpbiB2YWx1ZSA/IHsgY2F1c2U6IHZhbHVlLmNhdXNlIH0gOiB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcih2YWx1ZS5tZXNzYWdlLCBvcHRzKTtcbiAgICAgIGVycm9yLm5hbWUgPSB2YWx1ZS5uYW1lO1xuICAgICAgaWYgKHZhbHVlLnN0YWNrICE9PSB1bmRlZmluZWQpIGVycm9yLnN0YWNrID0gdmFsdWUuc3RhY2s7XG4gICAgICByZXR1cm4gZXJyb3I7XG4gICAgfSxcbiAgICBFdmFsRXJyb3I6IG1ha2VXZWJFcnJvclN1YmNsYXNzUmV2aXZlcignRXZhbEVycm9yJyksXG4gICAgUmFuZ2VFcnJvcjogbWFrZVdlYkVycm9yU3ViY2xhc3NSZXZpdmVyKCdSYW5nZUVycm9yJyksXG4gICAgUmVmZXJlbmNlRXJyb3I6IG1ha2VXZWJFcnJvclN1YmNsYXNzUmV2aXZlcignUmVmZXJlbmNlRXJyb3InKSxcbiAgICBTeW50YXhFcnJvcjogbWFrZVdlYkVycm9yU3ViY2xhc3NSZXZpdmVyKCdTeW50YXhFcnJvcicpLFxuICAgIFR5cGVFcnJvcjogbWFrZVdlYkVycm9yU3ViY2xhc3NSZXZpdmVyKCdUeXBlRXJyb3InKSxcbiAgICBVUklFcnJvcjogbWFrZVdlYkVycm9yU3ViY2xhc3NSZXZpdmVyKCdVUklFcnJvcicpLFxuICAgIEFnZ3JlZ2F0ZUVycm9yOiAodmFsdWUpID0+IHtcbiAgICAgIGNvbnN0IG9wdHMgPSAnY2F1c2UnIGluIHZhbHVlID8geyBjYXVzZTogdmFsdWUuY2F1c2UgfSA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IEN0b3IgPSAoXG4gICAgICAgIGdsb2JhbFRoaXMgYXMgeyBBZ2dyZWdhdGVFcnJvcj86IEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IgfVxuICAgICAgKS5BZ2dyZWdhdGVFcnJvcjtcbiAgICAgIGNvbnN0IGVycm9yID1cbiAgICAgICAgdHlwZW9mIEN0b3IgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICA/IG5ldyBDdG9yKHZhbHVlLmVycm9ycywgdmFsdWUubWVzc2FnZSwgb3B0cylcbiAgICAgICAgICA6IE9iamVjdC5hc3NpZ24obmV3IEVycm9yKHZhbHVlLm1lc3NhZ2UsIG9wdHMpLCB7XG4gICAgICAgICAgICAgIG5hbWU6ICdBZ2dyZWdhdGVFcnJvcicsXG4gICAgICAgICAgICAgIGVycm9yczogdmFsdWUuZXJyb3JzLFxuICAgICAgICAgICAgfSk7XG4gICAgICBpZiAodmFsdWUuc3RhY2sgIT09IHVuZGVmaW5lZCkgZXJyb3Iuc3RhY2sgPSB2YWx1ZS5zdGFjaztcbiAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9LFxuICAgIC8vIGBGYXRhbEVycm9yYCBhbmQgYFJldHJ5YWJsZUVycm9yYCBhcmUgbm90IGJ1aWx0LWluIGJyb3dzZXIgZ2xvYmFscyxcbiAgICAvLyBzbyB3ZSBjYW4ndCByZXNvbHZlIGEgY29uc3RydWN0b3IgZnJvbSBnbG9iYWxUaGlzLiBUaGUgd2ViIG8xMXkgVUlcbiAgICAvLyBkb2Vzbid0IG5lZWQgYGluc3RhbmNlb2YgRmF0YWxFcnJvcmAgdG8gcGFzcyAobm8gdXNlciBjb2RlIHJ1bnNcbiAgICAvLyBoZXJlKSDigJQgaXQganVzdCBuZWVkcyBgbmFtZWAsIGBtZXNzYWdlYCwgYHN0YWNrYCwgYW5kIGFueSBleHRyYVxuICAgIC8vIGVudW1lcmFibGUgZmllbGRzIHRvIHJlbmRlci4gQ29uc3RydWN0IGEgcGxhaW4gYEVycm9yYCB3aXRoIGBuYW1lYFxuICAgIC8vIHNldDsgT2JqZWN0SW5zcGVjdG9yIHJlYWRzIGBjb25zdHJ1Y3Rvci5uYW1lYCBmb3IgdGhlIGRpc3BsYXllZFxuICAgIC8vIGNsYXNzIGxhYmVsLCBidXQgd2UgZG9uJ3QgaGF2ZSB0aGUgcmVhbCBjbGFzcywgc28gd2UgZW1pdCBhIHRhZ2dlZFxuICAgIC8vIEVycm9yIHdob3NlIGBuYW1lYCBmaWVsZCBjYXJyaWVzIHRoZSBjbGFzcyBpZGVudGl0eS4gVGhpcyBtYXRjaGVzXG4gICAgLy8gaG93IHRoZSBleGlzdGluZyBiYXNlIGBFcnJvcmAgcmV2aXZlciBwcmVzZW50cyB1bmtub3duIHN1YmNsYXNzZXMuXG4gICAgRmF0YWxFcnJvcjogKHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCBvcHRzID0gJ2NhdXNlJyBpbiB2YWx1ZSA/IHsgY2F1c2U6IHZhbHVlLmNhdXNlIH0gOiB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcih2YWx1ZS5tZXNzYWdlLCBvcHRzKTtcbiAgICAgIGVycm9yLm5hbWUgPSAnRmF0YWxFcnJvcic7XG4gICAgICBpZiAodmFsdWUuc3RhY2sgIT09IHVuZGVmaW5lZCkgZXJyb3Iuc3RhY2sgPSB2YWx1ZS5zdGFjaztcbiAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9LFxuICAgIFJldHJ5YWJsZUVycm9yOiAodmFsdWUpID0+IHtcbiAgICAgIGNvbnN0IG9wdHMgPSAnY2F1c2UnIGluIHZhbHVlID8geyBjYXVzZTogdmFsdWUuY2F1c2UgfSA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKHZhbHVlLm1lc3NhZ2UsIG9wdHMpIGFzIEVycm9yICYge1xuICAgICAgICByZXRyeUFmdGVyPzogRGF0ZTtcbiAgICAgIH07XG4gICAgICBlcnJvci5uYW1lID0gJ1JldHJ5YWJsZUVycm9yJztcbiAgICAgIGlmICh2YWx1ZS5zdGFjayAhPT0gdW5kZWZpbmVkKSBlcnJvci5zdGFjayA9IHZhbHVlLnN0YWNrO1xuICAgICAgLy8gYHJldHJ5QWZ0ZXJgIGlzIHNlcmlhbGl6ZWQgYXMgYW4gZXBvY2ggbXMgbnVtYmVyIChzZWUgdGhlIHJ1bnRpbWVcbiAgICAgIC8vIFJldHJ5YWJsZUVycm9yIHJlZHVjZXIgZm9yIHRoZSByYXRpb25hbGUgYXJvdW5kIHJlYWxtLXNhZmV0eSkuXG4gICAgICAvLyBSZWh5ZHJhdGUgYXMgYSBEYXRlIHNvIG8xMXkgY29uc3VtZXJzIGNhbiByZW5kZXIgaXQgZGlyZWN0bHkuXG4gICAgICAvLyBHdWFyZCBhZ2FpbnN0IHBheWxvYWRzIGZyb20gb2xkZXIgcnVudGltZSB2ZXJzaW9ucyB0aGF0IHByZWRhdGVcbiAgICAgIC8vIHRoZSBmaWVsZCDigJQgd2l0aG91dCB0aGlzIGNoZWNrLCBgbmV3IERhdGUodW5kZWZpbmVkKWAgd291bGRcbiAgICAgIC8vIHByb2R1Y2UgYW4gSW52YWxpZCBEYXRlIHJhdGhlciB0aGFuIG9taXR0aW5nIHRoZSBwcm9wZXJ0eS5cbiAgICAgIGlmICh2YWx1ZS5yZXRyeUFmdGVyICE9IG51bGwpIHtcbiAgICAgICAgZXJyb3IucmV0cnlBZnRlciA9IG5ldyBEYXRlKHZhbHVlLnJldHJ5QWZ0ZXIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH0sXG4gICAgRE9NRXhjZXB0aW9uOiAodmFsdWUpID0+IHtcbiAgICAgIC8vIE1vZGVybiBicm93c2VycyBhbmQgTm9kZSAxOCsgZXhwb3NlIGBET01FeGNlcHRpb25gIG9uIGdsb2JhbFRoaXMuXG4gICAgICAvLyBgQWJvcnRDb250cm9sbGVyLmFib3J0KClgIHdpdGggbm8gYXJndW1lbnQgc3ludGhlc2l6ZXMgb25lIGFzIHRoZVxuICAgICAgLy8gc2lnbmFsJ3MgcmVhc29uLCBzbyB0aGlzIGlzIGEgY29tbW9uIHBheWxvYWQgZm9yIGFueSBhYm9ydGVkIHN0ZXAuXG4gICAgICBjb25zdCBHID0gZ2xvYmFsVGhpcyBhcyB7IERPTUV4Y2VwdGlvbj86IHR5cGVvZiBET01FeGNlcHRpb24gfTtcbiAgICAgIGlmICh0eXBlb2YgRy5ET01FeGNlcHRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgZSA9IG5ldyBHLkRPTUV4Y2VwdGlvbih2YWx1ZS5tZXNzYWdlLCB2YWx1ZS5uYW1lKTtcbiAgICAgICAgaWYgKHZhbHVlLnN0YWNrICE9PSB1bmRlZmluZWQpIGUuc3RhY2sgPSB2YWx1ZS5zdGFjaztcbiAgICAgICAgaWYgKCdjYXVzZScgaW4gdmFsdWUpIChlIGFzIHsgY2F1c2U/OiB1bmtub3duIH0pLmNhdXNlID0gdmFsdWUuY2F1c2U7XG4gICAgICAgIHJldHVybiBlO1xuICAgICAgfVxuICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IodmFsdWUubWVzc2FnZSk7XG4gICAgICBlcnJvci5uYW1lID0gdmFsdWUubmFtZTtcbiAgICAgIGlmICh2YWx1ZS5zdGFjayAhPT0gdW5kZWZpbmVkKSBlcnJvci5zdGFjayA9IHZhbHVlLnN0YWNrO1xuICAgICAgaWYgKCdjYXVzZScgaW4gdmFsdWUpIHtcbiAgICAgICAgKGVycm9yIGFzIEVycm9yICYgeyBjYXVzZT86IHVua25vd24gfSkuY2F1c2UgPSB2YWx1ZS5jYXVzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9LFxuICAgIEZsb2F0MzJBcnJheTogKHZhbHVlOiBzdHJpbmcpID0+IG5ldyBGbG9hdDMyQXJyYXkocmV2aXZlQXJyYXlCdWZmZXIodmFsdWUpKSxcbiAgICBGbG9hdDY0QXJyYXk6ICh2YWx1ZTogc3RyaW5nKSA9PiBuZXcgRmxvYXQ2NEFycmF5KHJldml2ZUFycmF5QnVmZmVyKHZhbHVlKSksXG4gICAgSW50OEFycmF5OiAodmFsdWU6IHN0cmluZykgPT4gbmV3IEludDhBcnJheShyZXZpdmVBcnJheUJ1ZmZlcih2YWx1ZSkpLFxuICAgIEludDE2QXJyYXk6ICh2YWx1ZTogc3RyaW5nKSA9PiBuZXcgSW50MTZBcnJheShyZXZpdmVBcnJheUJ1ZmZlcih2YWx1ZSkpLFxuICAgIEludDMyQXJyYXk6ICh2YWx1ZTogc3RyaW5nKSA9PiBuZXcgSW50MzJBcnJheShyZXZpdmVBcnJheUJ1ZmZlcih2YWx1ZSkpLFxuICAgIE1hcDogKHZhbHVlKSA9PiBuZXcgTWFwKHZhbHVlKSxcbiAgICBSZWdFeHA6ICh2YWx1ZSkgPT4gbmV3IFJlZ0V4cCh2YWx1ZS5zb3VyY2UsIHZhbHVlLmZsYWdzKSxcbiAgICBTZXQ6ICh2YWx1ZSkgPT4gbmV3IFNldCh2YWx1ZSksXG4gICAgVWludDhBcnJheTogKHZhbHVlOiBzdHJpbmcpID0+IG5ldyBVaW50OEFycmF5KHJldml2ZUFycmF5QnVmZmVyKHZhbHVlKSksXG4gICAgVWludDhDbGFtcGVkQXJyYXk6ICh2YWx1ZTogc3RyaW5nKSA9PlxuICAgICAgbmV3IFVpbnQ4Q2xhbXBlZEFycmF5KHJldml2ZUFycmF5QnVmZmVyKHZhbHVlKSksXG4gICAgVWludDE2QXJyYXk6ICh2YWx1ZTogc3RyaW5nKSA9PiBuZXcgVWludDE2QXJyYXkocmV2aXZlQXJyYXlCdWZmZXIodmFsdWUpKSxcbiAgICBVaW50MzJBcnJheTogKHZhbHVlOiBzdHJpbmcpID0+IG5ldyBVaW50MzJBcnJheShyZXZpdmVBcnJheUJ1ZmZlcih2YWx1ZSkpLFxuXG4gICAgSGVhZGVyczogKHZhbHVlKSA9PiBuZXcgSGVhZGVycyh2YWx1ZSksXG4gICAgUmVxdWVzdDogKHZhbHVlKSA9PiB7XG4gICAgICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb21wbGV4aXR5L3VzZUFycm93RnVuY3Rpb246IGFycm93IGZ1bmN0aW9ucyBoYXZlIG5vIC5wcm90b3R5cGVcbiAgICAgIGNvbnN0IGN0b3IgPSB7IFJlcXVlc3Q6IGZ1bmN0aW9uICgpIHt9IH0uUmVxdWVzdCE7XG4gICAgICBjb25zdCBvYmogPSBPYmplY3QuY3JlYXRlKGN0b3IucHJvdG90eXBlKTtcbiAgICAgIE9iamVjdC5hc3NpZ24ob2JqLCB7XG4gICAgICAgIG1ldGhvZDogdmFsdWUubWV0aG9kLFxuICAgICAgICB1cmw6IHZhbHVlLnVybCxcbiAgICAgICAgaGVhZGVyczogbmV3IEhlYWRlcnModmFsdWUuaGVhZGVycyksXG4gICAgICAgIGJvZHk6IHZhbHVlLmJvZHksXG4gICAgICAgIGR1cGxleDogdmFsdWUuZHVwbGV4LFxuICAgICAgICAuLi4odmFsdWUucmVzcG9uc2VXcml0YWJsZVxuICAgICAgICAgID8geyByZXNwb25zZVdyaXRhYmxlOiB2YWx1ZS5yZXNwb25zZVdyaXRhYmxlIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG9iajtcbiAgICB9LFxuICAgIFJlc3BvbnNlOiAodmFsdWUpID0+IHtcbiAgICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvbXBsZXhpdHkvdXNlQXJyb3dGdW5jdGlvbjogYXJyb3cgZnVuY3Rpb25zIGhhdmUgbm8gLnByb3RvdHlwZVxuICAgICAgY29uc3QgY3RvciA9IHsgUmVzcG9uc2U6IGZ1bmN0aW9uICgpIHt9IH0uUmVzcG9uc2UhO1xuICAgICAgY29uc3Qgb2JqID0gT2JqZWN0LmNyZWF0ZShjdG9yLnByb3RvdHlwZSk7XG4gICAgICBPYmplY3QuYXNzaWduKG9iaiwge1xuICAgICAgICBzdGF0dXM6IHZhbHVlLnN0YXR1cyxcbiAgICAgICAgc3RhdHVzVGV4dDogdmFsdWUuc3RhdHVzVGV4dCxcbiAgICAgICAgdXJsOiB2YWx1ZS51cmwsXG4gICAgICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHZhbHVlLmhlYWRlcnMpLFxuICAgICAgICBib2R5OiB2YWx1ZS5ib2R5LFxuICAgICAgICByZWRpcmVjdGVkOiB2YWx1ZS5yZWRpcmVjdGVkLFxuICAgICAgICB0eXBlOiB2YWx1ZS50eXBlLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gb2JqO1xuICAgIH0sXG4gICAgVVJMOiAodmFsdWUpID0+IG5ldyBVUkwodmFsdWUpLFxuICAgIFVSTFNlYXJjaFBhcmFtczogKHZhbHVlKSA9PiBuZXcgVVJMU2VhcmNoUGFyYW1zKHZhbHVlID09PSAnLicgPyAnJyA6IHZhbHVlKSxcblxuICAgIC8vIFdlYi1zcGVjaWZpYyBvdmVycmlkZXMgZm9yIGNsYXNzIGluc3RhbmNlcy5cbiAgICAvLyBDcmVhdGUgb2JqZWN0cyB3aXRoIGEgZHluYW1pY2FsbHktbmFtZWQgY29uc3RydWN0b3Igc28gdGhhdFxuICAgIC8vIHJlYWN0LWluc3BlY3RvciBzaG93cyB0aGUgY2xhc3MgbmFtZSAoaXQgcmVhZHMgY29uc3RydWN0b3IubmFtZSkuXG4gICAgQ2xhc3M6ICh2YWx1ZSkgPT4gYDxjbGFzczoke2V4dHJhY3RDbGFzc05hbWUodmFsdWUuY2xhc3NJZCl9PmAsXG4gICAgSW5zdGFuY2U6ICh2YWx1ZSkgPT4ge1xuICAgICAgLy8gUnVuIGluc3RhbmNlcyBhcmUgcmVuZGVyZWQgYXMgY2xpY2thYmxlIFJ1blJlZiBiYWRnZXNcbiAgICAgIGNvbnN0IHJ1blJlZiA9IHNlcmlhbGl6ZWRJbnN0YW5jZVRvUmVmKHZhbHVlKTtcbiAgICAgIGlmIChpc1J1blJlZihydW5SZWYpKSB7XG4gICAgICAgIHJldHVybiBydW5SZWY7XG4gICAgICB9XG4gICAgICBjb25zdCBjbGFzc05hbWUgPSBleHRyYWN0Q2xhc3NOYW1lKHZhbHVlLmNsYXNzSWQpO1xuICAgICAgY29uc3QgZGF0YSA9IHZhbHVlLmRhdGE7XG4gICAgICBjb25zdCBwcm9wcyA9XG4gICAgICAgIGRhdGEgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnID8geyAuLi5kYXRhIH0gOiB7IHZhbHVlOiBkYXRhIH07XG4gICAgICAvLyBDcmVhdGUgYSBjb25zdHJ1Y3RvciB3aXRoIHRoZSByaWdodCBuYW1lIHVzaW5nIGNvbXB1dGVkIHByb3BlcnR5XG4gICAgICAvLyBzbyByZWFjdC1pbnNwZWN0b3IncyBgb2JqZWN0LmNvbnN0cnVjdG9yLm5hbWVgIHNob3dzIHRoZSBjbGFzcyBuYW1lLlxuICAgICAgLy8gTXVzdCB1c2UgYGZ1bmN0aW9uYCAobm90IGFycm93KSBiZWNhdXNlIGFycm93IGZ1bmN0aW9ucyBoYXZlIG5vIC5wcm90b3R5cGUuXG4gICAgICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb21wbGV4aXR5L3VzZUFycm93RnVuY3Rpb246IGFycm93IGZ1bmN0aW9ucyBoYXZlIG5vIC5wcm90b3R5cGVcbiAgICAgIGNvbnN0IGN0b3IgPSB7IFtjbGFzc05hbWVdOiBmdW5jdGlvbiAoKSB7fSB9W2NsYXNzTmFtZV0hO1xuICAgICAgY29uc3Qgb2JqID0gT2JqZWN0LmNyZWF0ZShjdG9yLnByb3RvdHlwZSk7XG4gICAgICBPYmplY3QuYXNzaWduKG9iaiwgcHJvcHMpO1xuICAgICAgcmV0dXJuIG9iajtcbiAgICB9LFxuICB9O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFByZS1idWlsdCB3ZWIgcmV2aXZlcnMgKGNhY2hlZCBmb3IgcGVyZm9ybWFuY2UpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxubGV0IGNhY2hlZFJldml2ZXJzOiBSZXZpdmVycyB8IG51bGwgPSBudWxsO1xuXG5mdW5jdGlvbiBnZXRSZXZpdmVycygpOiBSZXZpdmVycyB7XG4gIGlmICghY2FjaGVkUmV2aXZlcnMpIHtcbiAgICBjYWNoZWRSZXZpdmVycyA9IGdldFdlYlJldml2ZXJzKCk7XG4gIH1cbiAgcmV0dXJuIGNhY2hlZFJldml2ZXJzO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFB1YmxpYyBBUElcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIEh5ZHJhdGUgdGhlIHNlcmlhbGl6ZWQgZGF0YSBmaWVsZHMgb2YgYSByZXNvdXJjZSBmb3Igd2ViIGRpc3BsYXkuXG4gKlxuICogVXNlcyBicm93c2VyLXNhZmUgcmV2aXZlcnMgKGF0b2IgZm9yIGJhc2U2NCwgQ2xhc3NJbnN0YW5jZVJlZiBmb3JcbiAqIGN1c3RvbSBjbGFzc2VzLCBTdHJlYW1SZWYgZm9yIHN0cmVhbXMpLiBDYWxsIHRoaXMgb24gZGF0YSByZWNlaXZlZFxuICogZnJvbSB0aGUgc2VydmVyIGJlZm9yZSBwYXNzaW5nIGl0IHRvIFVJIGNvbXBvbmVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoeWRyYXRlUmVzb3VyY2VJTzxUPihyZXNvdXJjZTogVCk6IFQge1xuICBjb25zdCBoeWRyYXRlZCA9IGh5ZHJhdGVSZXNvdXJjZUlPR2VuZXJpYyhcbiAgICByZXNvdXJjZSBhcyBhbnksXG4gICAgZ2V0UmV2aXZlcnMoKVxuICApIGFzIFQ7XG4gIHJldHVybiByZXBsYWNlRW5jcnlwdGVkQW5kRXhwaXJlZFdpdGhNYXJrZXJzKGh5ZHJhdGVkKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFbmNyeXB0ZWQgZGF0YSBkaXNwbGF5IG1hcmtlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgY29uc3QgRU5DUllQVEVEX0RJU1BMQVlfTkFNRSA9ICdFbmNyeXB0ZWQnO1xuXG4vKipcbiAqIENyZWF0ZSBhIGRpc3BsYXktZnJpZW5kbHkgb2JqZWN0IGZvciBlbmNyeXB0ZWQgZGF0YS5cbiAqXG4gKiBVc2VzIHRoZSBzYW1lIG5hbWVkLWNvbnN0cnVjdG9yIHRyaWNrIGFzIHRoZSBJbnN0YW5jZSByZXZpdmVyIHNvIHRoYXRcbiAqIE9iamVjdEluc3BlY3RvciByZW5kZXJzIHRoZSBjb25zdHJ1Y3RvciBuYW1lIChcIvCflJIgRW5jcnlwdGVkXCIpIHdpdGggbm9cbiAqIGV4cGFuZGFibGUgY2hpbGRyZW4uIFRoZSBvcmlnaW5hbCBlbmNyeXB0ZWQgYnl0ZXMgYXJlIHN0b3JlZCBpbiBhXG4gKiBub24tZW51bWVyYWJsZSBwcm9wZXJ0eSBmb3IgbGF0ZXIgZGVjcnlwdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlRW5jcnlwdGVkTWFya2VyKGRhdGE6IFVpbnQ4QXJyYXkpOiBvYmplY3Qge1xuICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb21wbGV4aXR5L3VzZUFycm93RnVuY3Rpb246IGFycm93IGZ1bmN0aW9ucyBoYXZlIG5vIC5wcm90b3R5cGVcbiAgY29uc3QgY3RvciA9IHsgW0VOQ1JZUFRFRF9ESVNQTEFZX05BTUVdOiBmdW5jdGlvbiAoKSB7fSB9W1xuICAgIEVOQ1JZUFRFRF9ESVNQTEFZX05BTUVcbiAgXSE7XG4gIGNvbnN0IG9iaiA9IE9iamVjdC5jcmVhdGUoY3Rvci5wcm90b3R5cGUpO1xuICAvLyBTdG9yZSBvcmlnaW5hbCBieXRlcyBmb3IgZGVjcnlwdGlvbiwgYnV0IG5vbi1lbnVtZXJhYmxlIHNvXG4gIC8vIE9iamVjdEluc3BlY3RvciBkb2Vzbid0IHNob3cgdGhlbSBhcyBjaGlsZHJlblxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAnX19lbmNyeXB0ZWREYXRhJywge1xuICAgIHZhbHVlOiBkYXRhLFxuICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gIH0pO1xuICByZXR1cm4gb2JqO1xufVxuXG4vKiogQ2hlY2sgaWYgYSB2YWx1ZSBpcyBhbiBlbmNyeXB0ZWQgZGlzcGxheSBtYXJrZXIgKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0VuY3J5cHRlZE1hcmtlcih2YWx1ZTogdW5rbm93bik6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgIHZhbHVlLmNvbnN0cnVjdG9yPy5uYW1lID09PSBFTkNSWVBURURfRElTUExBWV9OQU1FXG4gICk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRXhwaXJlZCBkYXRhIGRpc3BsYXkgbWFya2Vyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBjb25zdCBFWFBJUkVEX0RJU1BMQVlfTkFNRSA9ICdFeHBpcmVkIERhdGEnO1xuXG4vKipcbiAqIENyZWF0ZSBhIGRpc3BsYXktZnJpZW5kbHkgb2JqZWN0IGZvciBleHBpcmVkIGRhdGEuXG4gKlxuICogVXNlcyB0aGUgc2FtZSBuYW1lZC1jb25zdHJ1Y3RvciB0cmljayBhcyB0aGUgZW5jcnlwdGVkIG1hcmtlciBzbyB0aGF0XG4gKiBPYmplY3RJbnNwZWN0b3IgcmVuZGVycyB0aGUgY29uc3RydWN0b3IgbmFtZSAoXCJFeHBpcmVkIERhdGFcIikgd2l0aCBub1xuICogZXhwYW5kYWJsZSBjaGlsZHJlbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlRXhwaXJlZE1hcmtlcigpOiBvYmplY3Qge1xuICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb21wbGV4aXR5L3VzZUFycm93RnVuY3Rpb246IGFycm93IGZ1bmN0aW9ucyBoYXZlIG5vIC5wcm90b3R5cGVcbiAgY29uc3QgY3RvciA9IHsgW0VYUElSRURfRElTUExBWV9OQU1FXTogZnVuY3Rpb24gKCkge30gfVtcbiAgICBFWFBJUkVEX0RJU1BMQVlfTkFNRVxuICBdITtcbiAgcmV0dXJuIE9iamVjdC5jcmVhdGUoY3Rvci5wcm90b3R5cGUpO1xufVxuXG4vKiogQ2hlY2sgaWYgYSB2YWx1ZSBpcyBhbiBleHBpcmVkIGRhdGEgZGlzcGxheSBtYXJrZXIgKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0V4cGlyZWRNYXJrZXIodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICB2YWx1ZSAhPT0gbnVsbCAmJlxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICB2YWx1ZS5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gRVhQSVJFRF9ESVNQTEFZX05BTUVcbiAgKTtcbn1cblxuLyoqIFJlcGxhY2UgYSBzaW5nbGUgZmllbGQgdmFsdWUgd2l0aCBhIGRpc3BsYXkgbWFya2VyIGlmIGl0J3MgZW5jcnlwdGVkIG9yIGV4cGlyZWQuICovXG5mdW5jdGlvbiB0b0Rpc3BsYXlNYXJrZXIodmFsdWU6IHVua25vd24pOiB1bmtub3duIHtcbiAgaWYgKGlzRW5jcnlwdGVkRGF0YSh2YWx1ZSkpIHJldHVybiBjcmVhdGVFbmNyeXB0ZWRNYXJrZXIodmFsdWUgYXMgVWludDhBcnJheSk7XG4gIGlmIChpc0V4cGlyZWRTdHViKHZhbHVlKSkgcmV0dXJuIGNyZWF0ZUV4cGlyZWRNYXJrZXIoKTtcbiAgcmV0dXJuIHZhbHVlO1xufVxuXG4vKipcbiAqIFBvc3QtcHJvY2VzcyBoeWRyYXRlZCByZXNvdXJjZSBkYXRhOiByZXBsYWNlIGVuY3J5cHRlZCBVaW50OEFycmF5IHZhbHVlc1xuICogYW5kIGV4cGlyZWQgc3R1YnMgd2l0aCBkaXNwbGF5LWZyaWVuZGx5IG1hcmtlciBvYmplY3RzIGluIGtub3duIGRhdGEgZmllbGRzLlxuICovXG5mdW5jdGlvbiByZXBsYWNlRW5jcnlwdGVkQW5kRXhwaXJlZFdpdGhNYXJrZXJzPFQ+KHJlc291cmNlOiBUKTogVCB7XG4gIGlmICghcmVzb3VyY2UgfHwgdHlwZW9mIHJlc291cmNlICE9PSAnb2JqZWN0JykgcmV0dXJuIHJlc291cmNlO1xuICBjb25zdCByID0gcmVzb3VyY2UgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IHJlc3VsdCA9IHsgLi4uciB9O1xuXG4gIGZvciAoY29uc3Qga2V5IG9mIFsnaW5wdXQnLCAnb3V0cHV0JywgJ21ldGFkYXRhJywgJ2Vycm9yJ10pIHtcbiAgICByZXN1bHRba2V5XSA9IHRvRGlzcGxheU1hcmtlcihyZXN1bHRba2V5XSk7XG4gIH1cblxuICBpZiAocmVzdWx0LmV2ZW50RGF0YSAmJiB0eXBlb2YgcmVzdWx0LmV2ZW50RGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCBldmVudFR5cGUgPVxuICAgICAgdHlwZW9mIHJlc3VsdC5ldmVudFR5cGUgPT09ICdzdHJpbmcnID8gcmVzdWx0LmV2ZW50VHlwZSA6ICcnO1xuICAgIGNvbnN0IHJlZktleXMgPSBFVkVOVF9EQVRBX1JFRl9GSUVMRFNbZXZlbnRUeXBlXSA/PyBbXTtcbiAgICBjb25zdCBlZCA9IHsgLi4uKHJlc3VsdC5ldmVudERhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIH07XG4gICAgZm9yIChjb25zdCBrZXkgb2YgcmVmS2V5cykge1xuICAgICAgaWYgKGtleSBpbiBlZCkge1xuICAgICAgICBlZFtrZXldID0gdG9EaXNwbGF5TWFya2VyKGVkW2tleV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXN1bHQuZXZlbnREYXRhID0gZWQ7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0IGFzIFQ7XG59XG5cbi8qKlxuICogSHlkcmF0ZSByZXNvdXJjZSBkYXRhIHdpdGggZGVjcnlwdGlvbiBzdXBwb3J0LlxuICpcbiAqIFdoZW4gYSBrZXkgaXMgcHJvdmlkZWQsIGVuY3J5cHRlZCBmaWVsZHMgYXJlIGRlY3J5cHRlZCBiZWZvcmUgaHlkcmF0aW9uLlxuICogVGhpcyBpcyB0aGUgYXN5bmMgdmVyc2lvbiB1c2VkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIFwiRGVjcnlwdFwiIGluIHRoZSB3ZWIgVUkuXG4gKlxuICogSGFuZGxlcyBib3RoIHRvcC1sZXZlbCBmaWVsZHMgKGlucHV0LCBvdXRwdXQsIG1ldGFkYXRhKSBhbmQgbmVzdGVkXG4gKiBldmVudERhdGEgc3ViZmllbGRzIHBlciBgRVZFTlRfREFUQV9SRUZfRklFTERTYCBmcm9tIGBAd29ya2Zsb3cvd29ybGRgIGZvciB0aGF0IGV2ZW50IHR5cGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoeWRyYXRlUmVzb3VyY2VJT1dpdGhLZXk8VD4oXG4gIHJlc291cmNlOiBULFxuICBrZXk6IFVpbnQ4QXJyYXlcbik6IFByb21pc2U8VD4ge1xuICBjb25zdCB7IGh5ZHJhdGVEYXRhV2l0aEtleSB9ID0gYXdhaXQgaW1wb3J0KFxuICAgICdAd29ya2Zsb3cvY29yZS9zZXJpYWxpemF0aW9uLWZvcm1hdCdcbiAgKTtcbiAgY29uc3QgeyBpbXBvcnRLZXkgfSA9IGF3YWl0IGltcG9ydCgnQHdvcmtmbG93L2NvcmUvZW5jcnlwdGlvbicpO1xuICBjb25zdCBjcnlwdG9LZXkgPSBhd2FpdCBpbXBvcnRLZXkoa2V5KTtcbiAgY29uc3QgcmV2aXZlcnMgPSBnZXRSZXZpdmVycygpO1xuXG4gIC8qKiBFeHRyYWN0IG9yaWdpbmFsIGVuY3J5cHRlZCBieXRlcyBmcm9tIGEgbWFya2VyIG9yIHJhdyBVaW50OEFycmF5LCB0aGVuIGRlY3J5cHQgKyBoeWRyYXRlICovXG4gIGFzeW5jIGZ1bmN0aW9uIGRlY3J5cHRGaWVsZChcbiAgICB2YWx1ZTogdW5rbm93bixcbiAgICByZXY6IFJldml2ZXJzLFxuICAgIGs6IEF3YWl0ZWQ8UmV0dXJuVHlwZTx0eXBlb2YgaW1wb3J0S2V5Pj5cbiAgKTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgLy8gQWxyZWFkeS1oeWRyYXRlZDogZW5jcnlwdGVkIG1hcmtlciB3aXRoIHN0b3JlZCBieXRlc1xuICAgIGlmIChpc0VuY3J5cHRlZE1hcmtlcih2YWx1ZSkpIHtcbiAgICAgIGNvbnN0IHJhdyA9ICh2YWx1ZSBhcyBhbnkpLl9fZW5jcnlwdGVkRGF0YSBhcyBVaW50OEFycmF5O1xuICAgICAgcmV0dXJuIGh5ZHJhdGVEYXRhV2l0aEtleShyYXcsIHJldiwgayk7XG4gICAgfVxuICAgIC8vIFJhdyBlbmNyeXB0ZWQgVWludDhBcnJheSAobm90IHlldCBoeWRyYXRlZClcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICByZXR1cm4gaHlkcmF0ZURhdGFXaXRoS2V5KHZhbHVlLCByZXYsIGspO1xuICAgIH1cbiAgICAvLyBOb3QgZW5jcnlwdGVkIOKAlCByZXR1cm4gYXMtaXNcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBjb25zdCByID0gcmVzb3VyY2UgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IHJlc3VsdCA9IHsgLi4uciB9O1xuXG4gIC8vIERlY3J5cHQgKyBoeWRyYXRlIHRvcC1sZXZlbCBzZXJpYWxpemVkIGZpZWxkcyAocnVucywgc3RlcHMsIGhvb2tzKVxuICBmb3IgKGNvbnN0IGZpZWxkIG9mIFsnaW5wdXQnLCAnb3V0cHV0JywgJ21ldGFkYXRhJywgJ2Vycm9yJ10pIHtcbiAgICBpZiAoZmllbGQgaW4gcmVzdWx0KSB7XG4gICAgICByZXN1bHRbZmllbGRdID0gYXdhaXQgZGVjcnlwdEZpZWxkKHJlc3VsdFtmaWVsZF0sIHJldml2ZXJzLCBjcnlwdG9LZXkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlY3J5cHQgKyBoeWRyYXRlIGV2ZW50RGF0YSBzdWJmaWVsZHMgKGV2ZW50cylcbiAgaWYgKHJlc3VsdC5ldmVudERhdGEgJiYgdHlwZW9mIHJlc3VsdC5ldmVudERhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgY29uc3QgZXZlbnRUeXBlID1cbiAgICAgIHR5cGVvZiByZXN1bHQuZXZlbnRUeXBlID09PSAnc3RyaW5nJyA/IHJlc3VsdC5ldmVudFR5cGUgOiAnJztcbiAgICBjb25zdCByZWZLZXlzID0gRVZFTlRfREFUQV9SRUZfRklFTERTW2V2ZW50VHlwZV0gPz8gW107XG4gICAgY29uc3QgZXZlbnREYXRhID0geyAuLi4ocmVzdWx0LmV2ZW50RGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgfTtcbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHJlZktleXMpIHtcbiAgICAgIGlmIChmaWVsZCBpbiBldmVudERhdGEpIHtcbiAgICAgICAgZXZlbnREYXRhW2ZpZWxkXSA9IGF3YWl0IGRlY3J5cHRGaWVsZChcbiAgICAgICAgICBldmVudERhdGFbZmllbGRdLFxuICAgICAgICAgIHJldml2ZXJzLFxuICAgICAgICAgIGNyeXB0b0tleVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXN1bHQuZXZlbnREYXRhID0gZXZlbnREYXRhO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdCBhcyBUO1xufVxuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgYSBoeWRyYXRlZCByZXNvdXJjZSAoZXZlbnQsIHN0ZXAsIHJ1biwgZXRjLikgY29udGFpbnMgYW55XG4gKiBlbmNyeXB0ZWQgZGlzcGxheSBtYXJrZXJzLiBJbnNwZWN0cyB0aGUgc3RhbmRhcmQgdG9wLWxldmVsIGZpZWxkc1xuICogKGBpbnB1dGAsIGBvdXRwdXRgLCBgZXJyb3JgLCBgbWV0YWRhdGFgKSBhcyB3ZWxsIGFzIHRoZSBldmVudC10eXBlLXNwZWNpZmljXG4gKiBgZXZlbnREYXRhYCByZWYgZmllbGRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzRW5jcnlwdGVkRmllbGRzKHJlc291cmNlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIGlmICghcmVzb3VyY2UgfHwgdHlwZW9mIHJlc291cmNlICE9PSAnb2JqZWN0JykgcmV0dXJuIGZhbHNlO1xuICBjb25zdCByID0gcmVzb3VyY2UgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgWydpbnB1dCcsICdvdXRwdXQnLCAnbWV0YWRhdGEnLCAnZXJyb3InXSkge1xuICAgIGlmIChpc0VuY3J5cHRlZE1hcmtlcihyW2tleV0pKSByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChyLmV2ZW50RGF0YSAmJiB0eXBlb2Ygci5ldmVudERhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgY29uc3QgZXZlbnRUeXBlID0gdHlwZW9mIHIuZXZlbnRUeXBlID09PSAnc3RyaW5nJyA/IHIuZXZlbnRUeXBlIDogJyc7XG4gICAgY29uc3QgcmVmS2V5cyA9IEVWRU5UX0RBVEFfUkVGX0ZJRUxEU1tldmVudFR5cGVdID8/IFtdO1xuICAgIGNvbnN0IGVkID0gci5ldmVudERhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgZm9yIChjb25zdCBrZXkgb2YgcmVmS2V5cykge1xuICAgICAgaWYgKGtleSBpbiBlZCAmJiBpc0VuY3J5cHRlZE1hcmtlcihlZFtrZXldKSkgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuIl19
@@ -27,4 +27,4 @@ export function formatArrayBufferViewForDisplay(value) {
27
27
  return { text: summarizeArrayBufferView(value) };
28
28
  }
29
29
  }
30
- //# sourceMappingURL=stream-display.js.map
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLWRpc3BsYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3N0cmVhbS1kaXNwbGF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxLQUFzQjtJQUM3RCxNQUFNLEVBQUUsR0FBRyxLQUdVLENBQUM7SUFDdEIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDakMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDeEIsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQ2xDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUNoQixDQUFDO0lBQ0YsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzFDLE9BQU8sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE1BQU0sTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDO0FBQ2xFLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSwrQkFBK0IsQ0FDN0MsS0FBc0I7SUFFdEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JFLE9BQU87WUFDTCxJQUFJO1lBQ0osV0FBVyxFQUFFO2dCQUNYLElBQUksRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUk7Z0JBQzVCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixVQUFVLEVBQUUsd0JBQXdCLENBQUMsS0FBSyxDQUFDO2FBQzVDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDbkQsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIERlY29kZWRTdHJlYW1DaHVua1NvdXJjZSB7XG4gIHR5cGU6IHN0cmluZztcbiAgZW5jb2Rpbmc6ICd1dGYtOCc7XG4gIHJhd1N1bW1hcnk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtYXR0ZWRTdHJlYW1DaHVua0Rpc3BsYXkge1xuICB0ZXh0OiBzdHJpbmc7XG4gIGRlY29kZWRGcm9tPzogRGVjb2RlZFN0cmVhbUNodW5rU291cmNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VtbWFyaXplQXJyYXlCdWZmZXJWaWV3KHZhbHVlOiBBcnJheUJ1ZmZlclZpZXcpOiBzdHJpbmcge1xuICBjb25zdCB0YSA9IHZhbHVlIGFzIHVua25vd24gYXMge1xuICAgIGxlbmd0aDogbnVtYmVyO1xuICAgIGNvbnN0cnVjdG9yOiB7IG5hbWU6IHN0cmluZyB9O1xuICB9ICYgQXJyYXlMaWtlPG51bWJlcj47XG4gIGNvbnN0IG5hbWUgPSB0YS5jb25zdHJ1Y3Rvci5uYW1lO1xuICBjb25zdCBwcmV2aWV3ID0gQXJyYXkuZnJvbShcbiAgICB7IGxlbmd0aDogTWF0aC5taW4odGEubGVuZ3RoLCA4KSB9LFxuICAgIChfLCBpKSA9PiB0YVtpXVxuICApO1xuICBjb25zdCBzdWZmaXggPSB0YS5sZW5ndGggPiA4ID8gJywg4oCmJyA6ICcnO1xuICByZXR1cm4gYCR7bmFtZX0oJHt0YS5sZW5ndGh9KSBbJHtwcmV2aWV3LmpvaW4oJywgJyl9JHtzdWZmaXh9XWA7XG59XG5cbi8qKlxuICogRGVjb2RlIGEgdHlwZWQgYXJyYXkgYXMgVVRGLTggdGV4dCB3aGVuIHZhbGlkLCBvdGhlcndpc2UgcmV0dXJuIGEgY29tcGFjdFxuICogcmF3LWJ5dGUgc3VtbWFyeS4gVXNlZCBieSBgRGF0YUluc3BlY3RvcmAncyBgY29sbGFwc2VSZWZzYCBwaXBlbGluZSBzb1xuICogaHlkcmF0ZWQgYFVpbnQ4QXJyYXlgIGNodW5rcyAoZS5nLiBBSSBTREsgdGV4dCBkZWx0YXMpIHJlbmRlciBhcyByZWFkYWJsZVxuICogdGV4dCB3aGlsZSBzdGlsbCBleHBvc2luZyB0aGUgdW5kZXJseWluZyBieXRlIGxheW91dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEFycmF5QnVmZmVyVmlld0ZvckRpc3BsYXkoXG4gIHZhbHVlOiBBcnJheUJ1ZmZlclZpZXdcbik6IEZvcm1hdHRlZFN0cmVhbUNodW5rRGlzcGxheSB7XG4gIHRyeSB7XG4gICAgY29uc3QgdGV4dCA9IG5ldyBUZXh0RGVjb2RlcigndXRmLTgnLCB7IGZhdGFsOiB0cnVlIH0pLmRlY29kZSh2YWx1ZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRleHQsXG4gICAgICBkZWNvZGVkRnJvbToge1xuICAgICAgICB0eXBlOiB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lLFxuICAgICAgICBlbmNvZGluZzogJ3V0Zi04JyxcbiAgICAgICAgcmF3U3VtbWFyeTogc3VtbWFyaXplQXJyYXlCdWZmZXJWaWV3KHZhbHVlKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHsgdGV4dDogc3VtbWFyaXplQXJyYXlCdWZmZXJWaWV3KHZhbHVlKSB9O1xuICB9XG59XG4iXX0=
package/dist/lib/toast.js CHANGED
@@ -21,4 +21,4 @@ export function ToastProvider({ toast, children, }) {
21
21
  export function useToast() {
22
22
  return useContext(ToastContext);
23
23
  }
24
- //# sourceMappingURL=toast.js.map
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3RvYXN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7O0FBR2IsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssSUFBSSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFROUMsTUFBTSxjQUFjLEdBQWlCO0lBQ25DLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQztJQUN0RCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUM7SUFDbEQsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDO0NBQ2pELENBQUM7QUFFRixNQUFNLFlBQVksR0FBRyxhQUFhLENBQWUsY0FBYyxDQUFDLENBQUM7QUFFakU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxFQUM1QixLQUFLLEVBQ0wsUUFBUSxHQUlUO0lBQ0MsT0FBTyxDQUNMLEtBQUMsWUFBWSxDQUFDLFFBQVEsSUFBQyxLQUFLLEVBQUUsS0FBSyxZQUFHLFFBQVEsR0FBeUIsQ0FDeEUsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUTtJQUN0QixPQUFPLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuXG5pbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0b2FzdCBhcyBzb25uZXJUb2FzdCB9IGZyb20gJ3Nvbm5lcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9hc3RBZGFwdGVyIHtcbiAgc3VjY2VzczogKG1lc3NhZ2U6IHN0cmluZywgb3B0cz86IHsgZGVzY3JpcHRpb24/OiBzdHJpbmcgfSkgPT4gdm9pZDtcbiAgZXJyb3I6IChtZXNzYWdlOiBzdHJpbmcsIG9wdHM/OiB7IGRlc2NyaXB0aW9uPzogc3RyaW5nIH0pID0+IHZvaWQ7XG4gIGluZm86IChtZXNzYWdlOiBzdHJpbmcsIG9wdHM/OiB7IGRlc2NyaXB0aW9uPzogc3RyaW5nIH0pID0+IHZvaWQ7XG59XG5cbmNvbnN0IGRlZmF1bHRBZGFwdGVyOiBUb2FzdEFkYXB0ZXIgPSB7XG4gIHN1Y2Nlc3M6IChtc2csIG9wdHMpID0+IHNvbm5lclRvYXN0LnN1Y2Nlc3MobXNnLCBvcHRzKSxcbiAgZXJyb3I6IChtc2csIG9wdHMpID0+IHNvbm5lclRvYXN0LmVycm9yKG1zZywgb3B0cyksXG4gIGluZm86IChtc2csIG9wdHMpID0+IHNvbm5lclRvYXN0LmluZm8obXNnLCBvcHRzKSxcbn07XG5cbmNvbnN0IFRvYXN0Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8VG9hc3RBZGFwdGVyPihkZWZhdWx0QWRhcHRlcik7XG5cbi8qKlxuICogUHJvdmlkZSBhIGN1c3RvbSB0b2FzdCBpbXBsZW1lbnRhdGlvbiB0byB3ZWItc2hhcmVkIGNvbXBvbmVudHMuXG4gKlxuICogV2hlbiBub3QgcHJvdmlkZWQsIGZhbGxzIGJhY2sgdG8gc29ubmVyICh3b3JrcyBpbiBwYWNrYWdlcy93ZWIpLlxuICogSG9zdCBhcHBzIGxpa2UgdmVyY2VsLXNpdGUgY2FuIHN1cHBseSB0aGVpciBvd24gYWRhcHRlclxuICogKGUuZy4gR2Vpc3QgdXNlVG9hc3RzKSBzbyB0b2FzdHMgcmVuZGVyIGluIHRoZSBob3N0J3MgdG9hc3Qgc3lzdGVtLlxuICovXG5leHBvcnQgZnVuY3Rpb24gVG9hc3RQcm92aWRlcih7XG4gIHRvYXN0LFxuICBjaGlsZHJlbixcbn06IHtcbiAgdG9hc3Q6IFRvYXN0QWRhcHRlcjtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn0pOiBSZWFjdE5vZGUge1xuICByZXR1cm4gKFxuICAgIDxUb2FzdENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3RvYXN0fT57Y2hpbGRyZW59PC9Ub2FzdENvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VUb2FzdCgpOiBUb2FzdEFkYXB0ZXIge1xuICByZXR1cm4gdXNlQ29udGV4dChUb2FzdENvbnRleHQpO1xufVxuIl19