@kubb/react-fabric 0.2.0 → 0.2.1

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 (76) hide show
  1. package/README.md +49 -78
  2. package/dist/{App-D7ehObix.d.ts → Fabric-nxgJyzWH.d.cts} +27 -27
  3. package/dist/{App-CbT7rbmH.d.cts → Fabric-tVWTpMR5.d.ts} +27 -27
  4. package/dist/{KubbFile-D4gyyfL-.d.ts → KubbFile-DFnA3mmn.d.ts} +1 -1
  5. package/dist/{KubbFile-FGXV713i.d.cts → KubbFile-DHCtBOpy.d.cts} +1 -1
  6. package/dist/chunk-CVmoYqME.js +27 -0
  7. package/dist/chunk-DWy1uDak.cjs +39 -0
  8. package/dist/devtools-DPye8o33.js +11448 -0
  9. package/dist/devtools-DPye8o33.js.map +1 -0
  10. package/dist/devtools-DnQsy6Us.cjs +11456 -0
  11. package/dist/devtools-DnQsy6Us.cjs.map +1 -0
  12. package/dist/devtools.cjs +2 -10885
  13. package/dist/devtools.d.cts +11 -1
  14. package/dist/devtools.d.ts +11 -1
  15. package/dist/devtools.js +2 -10885
  16. package/dist/{globals-BRG2DOJd.d.cts → globals-C7dPa-nz.d.cts} +3 -3
  17. package/dist/{globals-D_1Lfe9-.d.ts → globals-CxZEi_Pn.d.ts} +3 -3
  18. package/dist/globals.d.cts +3 -3
  19. package/dist/globals.d.ts +3 -3
  20. package/dist/index.cjs +34 -23
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.cts +16 -9
  23. package/dist/index.d.ts +16 -9
  24. package/dist/index.js +15 -5
  25. package/dist/index.js.map +1 -1
  26. package/dist/jsx-dev-runtime.cjs +8 -0
  27. package/dist/jsx-dev-runtime.js +5 -0
  28. package/dist/jsx-runtime-9ohe6OS2.cjs +36 -0
  29. package/dist/jsx-runtime-9ohe6OS2.cjs.map +1 -0
  30. package/dist/{react-BBkwFtZV.js → jsx-runtime-BOrVcbIT.cjs} +253 -42
  31. package/dist/jsx-runtime-BOrVcbIT.cjs.map +1 -0
  32. package/dist/{react-Bq0UOw6S.cjs → jsx-runtime-CFd_ktZn.js} +239 -57
  33. package/dist/jsx-runtime-CFd_ktZn.js.map +1 -0
  34. package/dist/jsx-runtime-CvGZkcTo.js +13 -0
  35. package/dist/jsx-runtime-CvGZkcTo.js.map +1 -0
  36. package/dist/jsx-runtime.cjs +6 -15
  37. package/dist/jsx-runtime.d.cts +3 -3
  38. package/dist/jsx-runtime.d.ts +3 -3
  39. package/dist/jsx-runtime.js +3 -12
  40. package/dist/parsers.d.cts +2 -2
  41. package/dist/parsers.d.ts +2 -2
  42. package/dist/{Runtime-DJ4dWT9w.cjs → plugins-CEGJdkpj.cjs} +110 -76
  43. package/dist/plugins-CEGJdkpj.cjs.map +1 -0
  44. package/dist/{Runtime-CatKeybQ.js → plugins-aZCNhIC8.js} +85 -58
  45. package/dist/plugins-aZCNhIC8.js.map +1 -0
  46. package/dist/plugins.cjs +4 -36
  47. package/dist/plugins.d.cts +16 -49
  48. package/dist/plugins.d.ts +16 -49
  49. package/dist/plugins.js +3 -34
  50. package/dist/reactPlugin-B47Guoya.d.ts +38 -0
  51. package/dist/reactPlugin-CLgWWifj.d.cts +38 -0
  52. package/dist/{types-C3p0Ljxf.d.cts → types-DoYRYV1C.d.cts} +1 -1
  53. package/dist/{types-Brnyan9B.d.ts → types-u_NEi07i.d.ts} +1 -1
  54. package/dist/types.d.cts +1 -1
  55. package/dist/types.d.ts +1 -1
  56. package/package.json +10 -6
  57. package/src/Renderer.ts +26 -22
  58. package/src/Runtime.tsx +2 -2
  59. package/src/createReactFabric.ts +17 -0
  60. package/src/devtools.ts +106 -111
  61. package/src/index.ts +2 -1
  62. package/src/plugins/reactPlugin.ts +3 -3
  63. package/dist/Runtime-CatKeybQ.js.map +0 -1
  64. package/dist/Runtime-DJ4dWT9w.cjs.map +0 -1
  65. package/dist/devtools.cjs.map +0 -1
  66. package/dist/devtools.js.map +0 -1
  67. package/dist/jsx-runtime-Dg-pJBHd.js +0 -228
  68. package/dist/jsx-runtime-Dg-pJBHd.js.map +0 -1
  69. package/dist/jsx-runtime-d2dmYscH.cjs +0 -233
  70. package/dist/jsx-runtime-d2dmYscH.cjs.map +0 -1
  71. package/dist/jsx-runtime.cjs.map +0 -1
  72. package/dist/jsx-runtime.js.map +0 -1
  73. package/dist/plugins.cjs.map +0 -1
  74. package/dist/plugins.js.map +0 -1
  75. package/dist/react-BBkwFtZV.js.map +0 -1
  76. package/dist/react-Bq0UOw6S.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools-DPye8o33.js","names":["_typeof","obj","__webpack_require__","self","exports","naiveLength","LRUCache","_get","isStale","trim","_del","Entry","forEachStep","e","i","Node","module","EventEmitter","compareVersions","validateAndParse","isWildcard","tryParse","forceType","compareStrings","compareSegments","_loop","isPlainObject","F","isReactNativeEnvironment","OverlayRect","OverlayTip","Overlay","agent","node","window","selectElementForNode","nodeToData","_getPrototypeOf","o","_setPrototypeOf","p","debug","Agent","Fake","j","formatPriorityLevel","isEnabled","getNearestMountedDOMNode","getElementIDForHostInstance","findHostInstanceForInternalID","getProfilingData","handleCommitFiberRoot","handleCommitFiberUnmount","handlePostCommitFiberRoot","overrideError","overrideSuspense","startProfiling","stopProfiling","global","uidCounter","_loop2","prefix","ws","initAfterTick","devtools"],"sources":["../../../node_modules/.pnpm/react-devtools-core@6.1.2/node_modules/react-devtools-core/dist/backend.js","../src/devtools.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDevToolsBackend\"] = factory();\n\telse\n\t\troot[\"ReactDevToolsBackend\"] = factory();\n})(self, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 786:\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\nvar __webpack_unused_export__;\n/**\n * @license React\n * react-debug-tools.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar ErrorStackParser = __webpack_require__(206),\n React = __webpack_require__(189),\n assign = Object.assign,\n ReactSharedInternals = React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\"),\n hasOwnProperty = Object.prototype.hasOwnProperty,\n hookLog = [],\n primitiveStackCache = null;\n\nfunction getPrimitiveStackCache() {\n if (null === primitiveStackCache) {\n var cache = new Map();\n\n try {\n Dispatcher.useContext({\n _currentValue: null\n });\n Dispatcher.useState(null);\n Dispatcher.useReducer(function (s) {\n return s;\n }, null);\n Dispatcher.useRef(null);\n \"function\" === typeof Dispatcher.useCacheRefresh && Dispatcher.useCacheRefresh();\n Dispatcher.useLayoutEffect(function () {});\n Dispatcher.useInsertionEffect(function () {});\n Dispatcher.useEffect(function () {});\n Dispatcher.useImperativeHandle(void 0, function () {\n return null;\n });\n Dispatcher.useDebugValue(null);\n Dispatcher.useCallback(function () {});\n Dispatcher.useTransition();\n Dispatcher.useSyncExternalStore(function () {\n return function () {};\n }, function () {\n return null;\n }, function () {\n return null;\n });\n Dispatcher.useDeferredValue(null);\n Dispatcher.useMemo(function () {\n return null;\n });\n Dispatcher.useOptimistic(null, function (s) {\n return s;\n });\n Dispatcher.useFormState(function (s) {\n return s;\n }, null);\n Dispatcher.useActionState(function (s) {\n return s;\n }, null);\n Dispatcher.useHostTransitionStatus();\n \"function\" === typeof Dispatcher.useMemoCache && Dispatcher.useMemoCache(0);\n\n if (\"function\" === typeof Dispatcher.use) {\n Dispatcher.use({\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: null\n });\n Dispatcher.use({\n then: function then() {},\n status: \"fulfilled\",\n value: null\n });\n\n try {\n Dispatcher.use({\n then: function then() {}\n });\n } catch (x) {}\n }\n\n Dispatcher.useId();\n \"function\" === typeof Dispatcher.useEffectEvent && Dispatcher.useEffectEvent(function () {});\n } finally {\n var readHookLog = hookLog;\n hookLog = [];\n }\n\n for (var i = 0; i < readHookLog.length; i++) {\n var hook = readHookLog[i];\n cache.set(hook.primitive, ErrorStackParser.parse(hook.stackError));\n }\n\n primitiveStackCache = cache;\n }\n\n return primitiveStackCache;\n}\n\nvar currentFiber = null,\n currentHook = null,\n currentContextDependency = null;\n\nfunction nextHook() {\n var hook = currentHook;\n null !== hook && (currentHook = hook.next);\n return hook;\n}\n\nfunction readContext(context) {\n if (null === currentFiber) return context._currentValue;\n if (null === currentContextDependency) throw Error(\"Context reads do not line up with context dependencies. This is a bug in React Debug Tools.\");\n hasOwnProperty.call(currentContextDependency, \"memoizedValue\") ? (context = currentContextDependency.memoizedValue, currentContextDependency = currentContextDependency.next) : context = context._currentValue;\n return context;\n}\n\nvar SuspenseException = Error(\"Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\\n\\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`.\"),\n Dispatcher = {\n readContext: readContext,\n use: function use(usable) {\n if (null !== usable && \"object\" === _typeof(usable)) {\n if (\"function\" === typeof usable.then) {\n switch (usable.status) {\n case \"fulfilled\":\n var fulfilledValue = usable.value;\n hookLog.push({\n displayName: null,\n primitive: \"Promise\",\n stackError: Error(),\n value: fulfilledValue,\n debugInfo: void 0 === usable._debugInfo ? null : usable._debugInfo,\n dispatcherHookName: \"Use\"\n });\n return fulfilledValue;\n\n case \"rejected\":\n throw usable.reason;\n }\n\n hookLog.push({\n displayName: null,\n primitive: \"Unresolved\",\n stackError: Error(),\n value: usable,\n debugInfo: void 0 === usable._debugInfo ? null : usable._debugInfo,\n dispatcherHookName: \"Use\"\n });\n throw SuspenseException;\n }\n\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return fulfilledValue = readContext(usable), hookLog.push({\n displayName: usable.displayName || \"Context\",\n primitive: \"Context (use)\",\n stackError: Error(),\n value: fulfilledValue,\n debugInfo: null,\n dispatcherHookName: \"Use\"\n }), fulfilledValue;\n }\n\n throw Error(\"An unsupported type was passed to use(): \" + String(usable));\n },\n useCallback: function useCallback(callback) {\n var hook = nextHook();\n hookLog.push({\n displayName: null,\n primitive: \"Callback\",\n stackError: Error(),\n value: null !== hook ? hook.memoizedState[0] : callback,\n debugInfo: null,\n dispatcherHookName: \"Callback\"\n });\n return callback;\n },\n useContext: function useContext(context) {\n var value = readContext(context);\n hookLog.push({\n displayName: context.displayName || null,\n primitive: \"Context\",\n stackError: Error(),\n value: value,\n debugInfo: null,\n dispatcherHookName: \"Context\"\n });\n return value;\n },\n useEffect: function useEffect(create) {\n nextHook();\n hookLog.push({\n displayName: null,\n primitive: \"Effect\",\n stackError: Error(),\n value: create,\n debugInfo: null,\n dispatcherHookName: \"Effect\"\n });\n },\n useImperativeHandle: function useImperativeHandle(ref) {\n nextHook();\n var instance = void 0;\n null !== ref && \"object\" === _typeof(ref) && (instance = ref.current);\n hookLog.push({\n displayName: null,\n primitive: \"ImperativeHandle\",\n stackError: Error(),\n value: instance,\n debugInfo: null,\n dispatcherHookName: \"ImperativeHandle\"\n });\n },\n useLayoutEffect: function useLayoutEffect(create) {\n nextHook();\n hookLog.push({\n displayName: null,\n primitive: \"LayoutEffect\",\n stackError: Error(),\n value: create,\n debugInfo: null,\n dispatcherHookName: \"LayoutEffect\"\n });\n },\n useInsertionEffect: function useInsertionEffect(create) {\n nextHook();\n hookLog.push({\n displayName: null,\n primitive: \"InsertionEffect\",\n stackError: Error(),\n value: create,\n debugInfo: null,\n dispatcherHookName: \"InsertionEffect\"\n });\n },\n useMemo: function useMemo(nextCreate) {\n var hook = nextHook();\n nextCreate = null !== hook ? hook.memoizedState[0] : nextCreate();\n hookLog.push({\n displayName: null,\n primitive: \"Memo\",\n stackError: Error(),\n value: nextCreate,\n debugInfo: null,\n dispatcherHookName: \"Memo\"\n });\n return nextCreate;\n },\n useReducer: function useReducer(reducer, initialArg, init) {\n reducer = nextHook();\n initialArg = null !== reducer ? reducer.memoizedState : void 0 !== init ? init(initialArg) : initialArg;\n hookLog.push({\n displayName: null,\n primitive: \"Reducer\",\n stackError: Error(),\n value: initialArg,\n debugInfo: null,\n dispatcherHookName: \"Reducer\"\n });\n return [initialArg, function () {}];\n },\n useRef: function useRef(initialValue) {\n var hook = nextHook();\n initialValue = null !== hook ? hook.memoizedState : {\n current: initialValue\n };\n hookLog.push({\n displayName: null,\n primitive: \"Ref\",\n stackError: Error(),\n value: initialValue.current,\n debugInfo: null,\n dispatcherHookName: \"Ref\"\n });\n return initialValue;\n },\n useState: function useState(initialState) {\n var hook = nextHook();\n initialState = null !== hook ? hook.memoizedState : \"function\" === typeof initialState ? initialState() : initialState;\n hookLog.push({\n displayName: null,\n primitive: \"State\",\n stackError: Error(),\n value: initialState,\n debugInfo: null,\n dispatcherHookName: \"State\"\n });\n return [initialState, function () {}];\n },\n useDebugValue: function useDebugValue(value, formatterFn) {\n hookLog.push({\n displayName: null,\n primitive: \"DebugValue\",\n stackError: Error(),\n value: \"function\" === typeof formatterFn ? formatterFn(value) : value,\n debugInfo: null,\n dispatcherHookName: \"DebugValue\"\n });\n },\n useDeferredValue: function useDeferredValue(value) {\n var hook = nextHook();\n value = null !== hook ? hook.memoizedState : value;\n hookLog.push({\n displayName: null,\n primitive: \"DeferredValue\",\n stackError: Error(),\n value: value,\n debugInfo: null,\n dispatcherHookName: \"DeferredValue\"\n });\n return value;\n },\n useTransition: function useTransition() {\n var stateHook = nextHook();\n nextHook();\n stateHook = null !== stateHook ? stateHook.memoizedState : !1;\n hookLog.push({\n displayName: null,\n primitive: \"Transition\",\n stackError: Error(),\n value: stateHook,\n debugInfo: null,\n dispatcherHookName: \"Transition\"\n });\n return [stateHook, function () {}];\n },\n useSyncExternalStore: function useSyncExternalStore(subscribe, getSnapshot) {\n nextHook();\n nextHook();\n subscribe = getSnapshot();\n hookLog.push({\n displayName: null,\n primitive: \"SyncExternalStore\",\n stackError: Error(),\n value: subscribe,\n debugInfo: null,\n dispatcherHookName: \"SyncExternalStore\"\n });\n return subscribe;\n },\n useId: function useId() {\n var hook = nextHook();\n hook = null !== hook ? hook.memoizedState : \"\";\n hookLog.push({\n displayName: null,\n primitive: \"Id\",\n stackError: Error(),\n value: hook,\n debugInfo: null,\n dispatcherHookName: \"Id\"\n });\n return hook;\n },\n useHostTransitionStatus: function useHostTransitionStatus() {\n var status = readContext({\n _currentValue: null\n });\n hookLog.push({\n displayName: null,\n primitive: \"HostTransitionStatus\",\n stackError: Error(),\n value: status,\n debugInfo: null,\n dispatcherHookName: \"HostTransitionStatus\"\n });\n return status;\n },\n useFormState: function useFormState(action, initialState) {\n var hook = nextHook();\n nextHook();\n nextHook();\n action = Error();\n var debugInfo = null,\n error = null;\n if (null !== hook) {\n if (initialState = hook.memoizedState, \"object\" === _typeof(initialState) && null !== initialState && \"function\" === typeof initialState.then) switch (initialState.status) {\n case \"fulfilled\":\n var value = initialState.value;\n debugInfo = void 0 === initialState._debugInfo ? null : initialState._debugInfo;\n break;\n\n case \"rejected\":\n error = initialState.reason;\n break;\n\n default:\n error = SuspenseException, debugInfo = void 0 === initialState._debugInfo ? null : initialState._debugInfo, value = initialState;\n } else value = initialState;\n } else value = initialState;\n hookLog.push({\n displayName: null,\n primitive: \"FormState\",\n stackError: action,\n value: value,\n debugInfo: debugInfo,\n dispatcherHookName: \"FormState\"\n });\n if (null !== error) throw error;\n return [value, function () {}, !1];\n },\n useActionState: function useActionState(action, initialState) {\n var hook = nextHook();\n nextHook();\n nextHook();\n action = Error();\n var debugInfo = null,\n error = null;\n if (null !== hook) {\n if (initialState = hook.memoizedState, \"object\" === _typeof(initialState) && null !== initialState && \"function\" === typeof initialState.then) switch (initialState.status) {\n case \"fulfilled\":\n var value = initialState.value;\n debugInfo = void 0 === initialState._debugInfo ? null : initialState._debugInfo;\n break;\n\n case \"rejected\":\n error = initialState.reason;\n break;\n\n default:\n error = SuspenseException, debugInfo = void 0 === initialState._debugInfo ? null : initialState._debugInfo, value = initialState;\n } else value = initialState;\n } else value = initialState;\n hookLog.push({\n displayName: null,\n primitive: \"ActionState\",\n stackError: action,\n value: value,\n debugInfo: debugInfo,\n dispatcherHookName: \"ActionState\"\n });\n if (null !== error) throw error;\n return [value, function () {}, !1];\n },\n useOptimistic: function useOptimistic(passthrough) {\n var hook = nextHook();\n passthrough = null !== hook ? hook.memoizedState : passthrough;\n hookLog.push({\n displayName: null,\n primitive: \"Optimistic\",\n stackError: Error(),\n value: passthrough,\n debugInfo: null,\n dispatcherHookName: \"Optimistic\"\n });\n return [passthrough, function () {}];\n },\n useMemoCache: function useMemoCache(size) {\n var fiber = currentFiber;\n if (null == fiber) return [];\n fiber = null != fiber.updateQueue ? fiber.updateQueue.memoCache : null;\n if (null == fiber) return [];\n var data = fiber.data[fiber.index];\n\n if (void 0 === data) {\n data = fiber.data[fiber.index] = Array(size);\n\n for (var i = 0; i < size; i++) {\n data[i] = REACT_MEMO_CACHE_SENTINEL;\n }\n }\n\n fiber.index++;\n return data;\n },\n useCacheRefresh: function useCacheRefresh() {\n var hook = nextHook();\n hookLog.push({\n displayName: null,\n primitive: \"CacheRefresh\",\n stackError: Error(),\n value: null !== hook ? hook.memoizedState : function () {},\n debugInfo: null,\n dispatcherHookName: \"CacheRefresh\"\n });\n return function () {};\n },\n useEffectEvent: function useEffectEvent(callback) {\n nextHook();\n hookLog.push({\n displayName: null,\n primitive: \"EffectEvent\",\n stackError: Error(),\n value: callback,\n debugInfo: null,\n dispatcherHookName: \"EffectEvent\"\n });\n return callback;\n }\n},\n DispatcherProxyHandler = {\n get: function get(target, prop) {\n if (target.hasOwnProperty(prop)) return target[prop];\n target = Error(\"Missing method in Dispatcher: \" + prop);\n target.name = \"ReactDebugToolsUnsupportedHookError\";\n throw target;\n }\n},\n DispatcherProxy = \"undefined\" === typeof Proxy ? Dispatcher : new Proxy(Dispatcher, DispatcherProxyHandler),\n mostLikelyAncestorIndex = 0;\n\nfunction findSharedIndex(hookStack, rootStack, rootIndex) {\n var source = rootStack[rootIndex].source,\n i = 0;\n\n a: for (; i < hookStack.length; i++) {\n if (hookStack[i].source === source) {\n for (var a = rootIndex + 1, b = i + 1; a < rootStack.length && b < hookStack.length; a++, b++) {\n if (hookStack[b].source !== rootStack[a].source) continue a;\n }\n\n return i;\n }\n }\n\n return -1;\n}\n\nfunction isReactWrapper(functionName, wrapperName) {\n functionName = parseHookName(functionName);\n return \"HostTransitionStatus\" === wrapperName ? functionName === wrapperName || \"FormStatus\" === functionName : functionName === wrapperName;\n}\n\nfunction parseHookName(functionName) {\n if (!functionName) return \"\";\n var startIndex = functionName.lastIndexOf(\"[as \");\n if (-1 !== startIndex) return parseHookName(functionName.slice(startIndex + 4, -1));\n startIndex = functionName.lastIndexOf(\".\");\n startIndex = -1 === startIndex ? 0 : startIndex + 1;\n functionName.slice(startIndex).startsWith(\"unstable_\") && (startIndex += 9);\n functionName.slice(startIndex).startsWith(\"experimental_\") && (startIndex += 13);\n\n if (\"use\" === functionName.slice(startIndex, startIndex + 3)) {\n if (3 === functionName.length - startIndex) return \"Use\";\n startIndex += 3;\n }\n\n return functionName.slice(startIndex);\n}\n\nfunction buildTree(rootStack$jscomp$0, readHookLog) {\n for (var rootChildren = [], prevStack = null, levelChildren = rootChildren, nativeHookID = 0, stackOfChildren = [], i = 0; i < readHookLog.length; i++) {\n var hook = readHookLog[i];\n var rootStack = rootStack$jscomp$0;\n var JSCompiler_inline_result = ErrorStackParser.parse(hook.stackError);\n\n b: {\n var hookStack = JSCompiler_inline_result,\n rootIndex = findSharedIndex(hookStack, rootStack, mostLikelyAncestorIndex);\n if (-1 !== rootIndex) rootStack = rootIndex;else {\n for (var i$jscomp$0 = 0; i$jscomp$0 < rootStack.length && 5 > i$jscomp$0; i$jscomp$0++) {\n if (rootIndex = findSharedIndex(hookStack, rootStack, i$jscomp$0), -1 !== rootIndex) {\n mostLikelyAncestorIndex = i$jscomp$0;\n rootStack = rootIndex;\n break b;\n }\n }\n\n rootStack = -1;\n }\n }\n\n b: {\n hookStack = JSCompiler_inline_result;\n rootIndex = getPrimitiveStackCache().get(hook.primitive);\n if (void 0 !== rootIndex) for (i$jscomp$0 = 0; i$jscomp$0 < rootIndex.length && i$jscomp$0 < hookStack.length; i$jscomp$0++) {\n if (rootIndex[i$jscomp$0].source !== hookStack[i$jscomp$0].source) {\n i$jscomp$0 < hookStack.length - 1 && isReactWrapper(hookStack[i$jscomp$0].functionName, hook.dispatcherHookName) && i$jscomp$0++;\n i$jscomp$0 < hookStack.length - 1 && isReactWrapper(hookStack[i$jscomp$0].functionName, hook.dispatcherHookName) && i$jscomp$0++;\n hookStack = i$jscomp$0;\n break b;\n }\n }\n hookStack = -1;\n }\n\n JSCompiler_inline_result = -1 === rootStack || -1 === hookStack || 2 > rootStack - hookStack ? -1 === hookStack ? [null, null] : [JSCompiler_inline_result[hookStack - 1], null] : [JSCompiler_inline_result[hookStack - 1], JSCompiler_inline_result.slice(hookStack, rootStack - 1)];\n hookStack = JSCompiler_inline_result[0];\n JSCompiler_inline_result = JSCompiler_inline_result[1];\n rootStack = hook.displayName;\n null === rootStack && null !== hookStack && (rootStack = parseHookName(hookStack.functionName) || parseHookName(hook.dispatcherHookName));\n\n if (null !== JSCompiler_inline_result) {\n hookStack = 0;\n\n if (null !== prevStack) {\n for (; hookStack < JSCompiler_inline_result.length && hookStack < prevStack.length && JSCompiler_inline_result[JSCompiler_inline_result.length - hookStack - 1].source === prevStack[prevStack.length - hookStack - 1].source;) {\n hookStack++;\n }\n\n for (prevStack = prevStack.length - 1; prevStack > hookStack; prevStack--) {\n levelChildren = stackOfChildren.pop();\n }\n }\n\n for (prevStack = JSCompiler_inline_result.length - hookStack - 1; 1 <= prevStack; prevStack--) {\n hookStack = [], rootIndex = JSCompiler_inline_result[prevStack], rootIndex = {\n id: null,\n isStateEditable: !1,\n name: parseHookName(JSCompiler_inline_result[prevStack - 1].functionName),\n value: void 0,\n subHooks: hookStack,\n debugInfo: null,\n hookSource: {\n lineNumber: rootIndex.lineNumber,\n columnNumber: rootIndex.columnNumber,\n functionName: rootIndex.functionName,\n fileName: rootIndex.fileName\n }\n }, levelChildren.push(rootIndex), stackOfChildren.push(levelChildren), levelChildren = hookStack;\n }\n\n prevStack = JSCompiler_inline_result;\n }\n\n hookStack = hook.primitive;\n rootIndex = hook.debugInfo;\n hook = {\n id: \"Context\" === hookStack || \"Context (use)\" === hookStack || \"DebugValue\" === hookStack || \"Promise\" === hookStack || \"Unresolved\" === hookStack || \"HostTransitionStatus\" === hookStack ? null : nativeHookID++,\n isStateEditable: \"Reducer\" === hookStack || \"State\" === hookStack,\n name: rootStack || hookStack,\n value: hook.value,\n subHooks: [],\n debugInfo: rootIndex,\n hookSource: null\n };\n rootStack = {\n lineNumber: null,\n functionName: null,\n fileName: null,\n columnNumber: null\n };\n JSCompiler_inline_result && 1 <= JSCompiler_inline_result.length && (JSCompiler_inline_result = JSCompiler_inline_result[0], rootStack.lineNumber = JSCompiler_inline_result.lineNumber, rootStack.functionName = JSCompiler_inline_result.functionName, rootStack.fileName = JSCompiler_inline_result.fileName, rootStack.columnNumber = JSCompiler_inline_result.columnNumber);\n hook.hookSource = rootStack;\n levelChildren.push(hook);\n }\n\n processDebugValues(rootChildren, null);\n return rootChildren;\n}\n\nfunction processDebugValues(hooksTree, parentHooksNode) {\n for (var debugValueHooksNodes = [], i = 0; i < hooksTree.length; i++) {\n var hooksNode = hooksTree[i];\n \"DebugValue\" === hooksNode.name && 0 === hooksNode.subHooks.length ? (hooksTree.splice(i, 1), i--, debugValueHooksNodes.push(hooksNode)) : processDebugValues(hooksNode.subHooks, hooksNode);\n }\n\n null !== parentHooksNode && (1 === debugValueHooksNodes.length ? parentHooksNode.value = debugValueHooksNodes[0].value : 1 < debugValueHooksNodes.length && (parentHooksNode.value = debugValueHooksNodes.map(function (_ref) {\n return _ref.value;\n })));\n}\n\nfunction handleRenderFunctionError(error) {\n if (error !== SuspenseException) {\n if (error instanceof Error && \"ReactDebugToolsUnsupportedHookError\" === error.name) throw error;\n var wrapperError = Error(\"Error rendering inspected component\", {\n cause: error\n });\n wrapperError.name = \"ReactDebugToolsRenderError\";\n wrapperError.cause = error;\n throw wrapperError;\n }\n}\n\nfunction inspectHooks(renderFunction, props, currentDispatcher) {\n null == currentDispatcher && (currentDispatcher = ReactSharedInternals);\n var previousDispatcher = currentDispatcher.H;\n currentDispatcher.H = DispatcherProxy;\n\n try {\n var ancestorStackError = Error();\n renderFunction(props);\n } catch (error) {\n handleRenderFunctionError(error);\n } finally {\n renderFunction = hookLog, hookLog = [], currentDispatcher.H = previousDispatcher;\n }\n\n currentDispatcher = ErrorStackParser.parse(ancestorStackError);\n return buildTree(currentDispatcher, renderFunction);\n}\n\nfunction restoreContexts(contextMap) {\n contextMap.forEach(function (value, context) {\n return context._currentValue = value;\n });\n}\n\n__webpack_unused_export__ = inspectHooks;\n\nexports.inspectHooksOfFiber = function (fiber, currentDispatcher) {\n null == currentDispatcher && (currentDispatcher = ReactSharedInternals);\n if (0 !== fiber.tag && 15 !== fiber.tag && 11 !== fiber.tag) throw Error(\"Unknown Fiber. Needs to be a function component to inspect hooks.\");\n getPrimitiveStackCache();\n currentHook = fiber.memoizedState;\n currentFiber = fiber;\n\n if (hasOwnProperty.call(currentFiber, \"dependencies\")) {\n var dependencies = currentFiber.dependencies;\n currentContextDependency = null !== dependencies ? dependencies.firstContext : null;\n } else if (hasOwnProperty.call(currentFiber, \"dependencies_old\")) dependencies = currentFiber.dependencies_old, currentContextDependency = null !== dependencies ? dependencies.firstContext : null;else if (hasOwnProperty.call(currentFiber, \"dependencies_new\")) dependencies = currentFiber.dependencies_new, currentContextDependency = null !== dependencies ? dependencies.firstContext : null;else if (hasOwnProperty.call(currentFiber, \"contextDependencies\")) dependencies = currentFiber.contextDependencies, currentContextDependency = null !== dependencies ? dependencies.first : null;else throw Error(\"Unsupported React version. This is a bug in React Debug Tools.\");\n\n dependencies = fiber.type;\n var props = fiber.memoizedProps;\n\n if (dependencies !== fiber.elementType && dependencies && dependencies.defaultProps) {\n props = assign({}, props);\n var defaultProps = dependencies.defaultProps;\n\n for (propName in defaultProps) {\n void 0 === props[propName] && (props[propName] = defaultProps[propName]);\n }\n }\n\n var propName = new Map();\n\n try {\n if (null !== currentContextDependency && !hasOwnProperty.call(currentContextDependency, \"memoizedValue\")) for (defaultProps = fiber; defaultProps;) {\n if (10 === defaultProps.tag) {\n var context = defaultProps.type;\n void 0 !== context._context && (context = context._context);\n propName.has(context) || (propName.set(context, context._currentValue), context._currentValue = defaultProps.memoizedProps.value);\n }\n\n defaultProps = defaultProps.return;\n }\n\n if (11 === fiber.tag) {\n var renderFunction = dependencies.render;\n context = props;\n var ref = fiber.ref;\n fiber = currentDispatcher;\n var previousDispatcher = fiber.H;\n fiber.H = DispatcherProxy;\n\n try {\n var ancestorStackError = Error();\n renderFunction(context, ref);\n } catch (error) {\n handleRenderFunctionError(error);\n } finally {\n var readHookLog = hookLog;\n hookLog = [];\n fiber.H = previousDispatcher;\n }\n\n var rootStack = ErrorStackParser.parse(ancestorStackError);\n return buildTree(rootStack, readHookLog);\n }\n\n return inspectHooks(dependencies, props, currentDispatcher);\n } finally {\n currentContextDependency = currentHook = currentFiber = null, restoreContexts(propName);\n }\n};\n\n/***/ }),\n\n/***/ 987:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nif (true) {\n module.exports = __webpack_require__(786);\n} else {}\n\n/***/ }),\n\n/***/ 126:\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\"use strict\";\n/* provided dependency */ var process = __webpack_require__(169);\n/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_POSTPONE_TYPE = Symbol.for(\"react.postpone\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\n\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== _typeof(maybeIterable)) return null;\n maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\n\nvar ReactNoopUpdateQueue = {\n isMounted: function isMounted() {\n return !1;\n },\n enqueueForceUpdate: function enqueueForceUpdate() {},\n enqueueReplaceState: function enqueueReplaceState() {},\n enqueueSetState: function enqueueSetState() {}\n},\n assign = Object.assign,\n emptyObject = {};\n\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n\nComponent.prototype.setState = function (partialState, callback) {\n if (\"object\" !== _typeof(partialState) && \"function\" !== typeof partialState && null != partialState) throw Error(\"takes an object of state variables to update or a function which returns an object of state variables.\");\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\n\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\n\nfunction ComponentDummy() {}\n\nComponentDummy.prototype = Component.prototype;\n\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals = {\n H: null,\n A: null,\n T: null,\n S: null,\n G: null\n},\n hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction ReactElement(type, key, self, source, owner, props) {\n self = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== self ? self : null,\n props: props\n };\n}\n\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, void 0, void 0, void 0, oldElement.props);\n}\n\nfunction isValidElement(object) {\n return \"object\" === _typeof(object) && null !== object && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nfunction escape(key) {\n var escaperLookup = {\n \"=\": \"=0\",\n \":\": \"=2\"\n };\n return \"$\" + key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n });\n}\n\nvar userProvidedKeyEscapeRegex = /\\/+/g;\n\nfunction getElementKey(element, index) {\n return \"object\" === _typeof(element) && null !== element && null != element.key ? escape(\"\" + element.key) : index.toString(36);\n}\n\nfunction noop$1() {}\n\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n\n case \"rejected\":\n throw thenable.reason;\n\n default:\n switch (\"string\" === typeof thenable.status ? thenable.then(noop$1, noop$1) : (thenable.status = \"pending\", thenable.then(function (fulfilledValue) {\n \"pending\" === thenable.status && (thenable.status = \"fulfilled\", thenable.value = fulfilledValue);\n }, function (error) {\n \"pending\" === thenable.status && (thenable.status = \"rejected\", thenable.reason = error);\n })), thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n\n case \"rejected\":\n throw thenable.reason;\n }\n\n }\n\n throw thenable;\n}\n\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = _typeof(children);\n\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;else switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n\n case REACT_LAZY_TYPE:\n return invokeCallback = children._init, mapIntoArray(invokeCallback(children._payload), array, escapedPrefix, nameSoFar, callback);\n }\n\n }\n if (invokeCallback) return callback = callback(children), invokeCallback = \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar, isArrayImpl(callback) ? (escapedPrefix = \"\", null != invokeCallback && (escapedPrefix = invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"), mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n })) : null != callback && (isValidElement(callback) && (callback = cloneAndReplaceKey(callback, escapedPrefix + (null == callback.key || children && children.key === callback.key ? \"\" : (\"\" + callback.key).replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\") + invokeCallback)), array.push(callback)), 1;\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children)) for (var i = 0; i < children.length; i++) {\n nameSoFar = children[i], type = nextNamePrefix + getElementKey(nameSoFar, i), invokeCallback += mapIntoArray(nameSoFar, array, escapedPrefix, type, callback);\n } else if (i = getIteratorFn(children), \"function\" === typeof i) for (children = i.call(children), i = 0; !(nameSoFar = children.next()).done;) {\n nameSoFar = nameSoFar.value, type = nextNamePrefix + getElementKey(nameSoFar, i++), invokeCallback += mapIntoArray(nameSoFar, array, escapedPrefix, type, callback);\n } else if (\"object\" === type) {\n if (\"function\" === typeof children.then) return mapIntoArray(resolveThenable(children), array, escapedPrefix, nameSoFar, callback);\n array = String(children);\n throw Error(\"Objects are not valid as a React child (found: \" + (\"[object Object]\" === array ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\" : array) + \"). If you meant to render a collection of children, use an array instead.\");\n }\n return invokeCallback;\n}\n\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\n\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(function (moduleObject) {\n if (0 === payload._status || -1 === payload._status) payload._status = 1, payload._result = moduleObject;\n }, function (error) {\n if (0 === payload._status || -1 === payload._status) payload._status = 2, payload._result = error;\n });\n -1 === payload._status && (payload._status = 0, payload._result = ctor);\n }\n\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\n\nfunction useOptimistic(passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n}\n\nvar reportGlobalError = \"function\" === typeof reportError ? reportError : function (error) {\n if (\"object\" === (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) && \"function\" === typeof window.ErrorEvent) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message: \"object\" === _typeof(error) && null !== error && \"string\" === typeof error.message ? String(error.message) : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\"object\" === (typeof process === \"undefined\" ? \"undefined\" : _typeof(process)) && \"function\" === typeof process.emit) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n\n console.error(error);\n};\n\nfunction startTransition(scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n currentTransition.types = null !== prevTransition ? prevTransition.types : null;\n currentTransition.gesture = null;\n ReactSharedInternals.T = currentTransition;\n\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish && onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === _typeof(returnValue) && null !== returnValue && \"function\" === typeof returnValue.then && returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition && null !== currentTransition.types && (prevTransition.types = currentTransition.types), ReactSharedInternals.T = prevTransition;\n }\n}\n\nfunction noop() {}\n\nfunction addTransitionType(type) {\n var transition = ReactSharedInternals.T;\n\n if (null !== transition) {\n var transitionTypes = transition.types;\n null === transitionTypes ? transition.types = [type] : -1 === transitionTypes.indexOf(type) && transitionTypes.push(type);\n } else startTransition(addTransitionType.bind(null, type));\n}\n\nexports.Children = {\n map: mapChildren,\n forEach: function forEach(children, forEachFunc, forEachContext) {\n mapChildren(children, function () {\n forEachFunc.apply(this, arguments);\n }, forEachContext);\n },\n count: function count(children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function toArray(children) {\n return mapChildren(children, function (child) {\n return child;\n }) || [];\n },\n only: function only(children) {\n if (!isValidElement(children)) throw Error(\"React.Children.only expected to receive a single React element child.\");\n return children;\n }\n};\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function c(size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\n\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\n\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element) throw Error(\"The argument must be a React element, but you passed \" + element + \".\");\n var props = assign({}, element.props),\n key = element.key,\n owner = void 0;\n if (null != config) for (propName in void 0 !== config.ref && (owner = void 0), void 0 !== config.key && (key = \"\" + config.key), config) {\n !hasOwnProperty.call(config, propName) || \"key\" === propName || \"__self\" === propName || \"__source\" === propName || \"ref\" === propName && void 0 === config.ref || (props[propName] = config[propName]);\n }\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n props.children = childArray;\n }\n return ReactElement(element.type, key, void 0, void 0, owner, props);\n};\n\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\n\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config) for (propName in void 0 !== config.key && (key = \"\" + config.key), config) {\n hasOwnProperty.call(config, propName) && \"key\" !== propName && \"__self\" !== propName && \"__source\" !== propName && (props[propName] = config[propName]);\n }\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n props.children = childArray;\n }\n if (type && type.defaultProps) for (propName in childrenLength = type.defaultProps, childrenLength) {\n void 0 === props[propName] && (props[propName] = childrenLength[propName]);\n }\n return ReactElement(type, key, void 0, void 0, null, props);\n};\n\nexports.createRef = function () {\n return {\n current: null\n };\n};\n\nexports.experimental_useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\n\nexports.experimental_useOptimistic = function (passthrough, reducer) {\n return useOptimistic(passthrough, reducer);\n};\n\nexports.forwardRef = function (render) {\n return {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: render\n };\n};\n\nexports.isValidElement = isValidElement;\n\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: {\n _status: -1,\n _result: ctor\n },\n _init: lazyInitializer\n };\n};\n\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\n\nexports.startTransition = startTransition;\nexports.unstable_Activity = REACT_ACTIVITY_TYPE;\nexports.unstable_SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nexports.unstable_ViewTransition = REACT_VIEW_TRANSITION_TYPE;\nexports.unstable_addTransitionType = addTransitionType;\n\nexports.unstable_getCacheForType = function (resourceType) {\n var dispatcher = ReactSharedInternals.A;\n return dispatcher ? dispatcher.getCacheForType(resourceType) : resourceType();\n};\n\nexports.unstable_postpone = function (reason) {\n reason = Error(reason);\n reason.$$typeof = REACT_POSTPONE_TYPE;\n throw reason;\n};\n\nexports.unstable_startGestureTransition = function (provider, scope, options) {\n if (null == provider) throw Error(\"A Timeline is required as the first argument to startGestureTransition.\");\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {\n types: null\n };\n currentTransition.gesture = provider;\n ReactSharedInternals.T = currentTransition;\n\n try {\n scope();\n var onStartGestureTransitionFinish = ReactSharedInternals.G;\n if (null !== onStartGestureTransitionFinish) return onStartGestureTransitionFinish(currentTransition, provider, options);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n ReactSharedInternals.T = prevTransition;\n }\n\n return function () {};\n};\n\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\n\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\n\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\n\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\n\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\n\nexports.useDebugValue = function () {};\n\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\n\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\n\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\n\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\n\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\n\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\n\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\n\nexports.useOptimistic = useOptimistic;\n\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\n\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\n\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\n\nexports.useSyncExternalStore = function (subscribe, getSnapshot, getServerSnapshot) {\n return ReactSharedInternals.H.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n};\n\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\n\nexports.version = \"19.2.0-experimental-8a8df5db-20250507\";\n\n/***/ }),\n\n/***/ 189:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nif (true) {\n module.exports = __webpack_require__(126);\n} else {}\n\n/***/ }),\n\n/***/ 206:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (root, factory) {\n 'use strict'; // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(430)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {}\n})(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code])?$/;\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n\n var regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[()]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n return filtered.map(function (line) {\n if (line.indexOf('(eval ') > -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^()]*)|(\\),.*$)/g, '');\n }\n\n var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '('); // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n // case it has spaces in it, as the string is split on \\s+ later on\n\n var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/); // remove the parenthesized location from the line, if it was matched\n\n sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n var tokens = sanitizedLine.split(/\\s+/).slice(1); // if a location was matched, pass it to extractLocation() otherwise pop the last token\n\n var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = ['eval', '<anonymous>'].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n return filtered.map(function (line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, ':$1');\n }\n\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || e.message.indexOf('\\n') > -1 && e.message.split('\\n').length > e.stacktrace.split('\\n').length) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n\n if (match) {\n result.push(new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n return filtered.map(function (line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = tokens.shift() || '';\n var functionName = functionCall.replace(/<anonymous function(: (\\w+))?>/, '$2').replace(/\\([^)]*\\)/g, '') || undefined;\n var argsRaw;\n\n if (functionCall.match(/\\(([^)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^(]+\\(([^)]*)\\)$/, '$1');\n }\n\n var args = argsRaw === undefined || argsRaw === '[arguments not available]' ? undefined : argsRaw.split(',');\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\n };\n});\n\n/***/ }),\n\n/***/ 730:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n // A linked list to keep track of recently-used-ness\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Yallist = __webpack_require__(695);\n\nvar MAX = Symbol('max');\nvar LENGTH = Symbol('length');\nvar LENGTH_CALCULATOR = Symbol('lengthCalculator');\nvar ALLOW_STALE = Symbol('allowStale');\nvar MAX_AGE = Symbol('maxAge');\nvar DISPOSE = Symbol('dispose');\nvar NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet');\nvar LRU_LIST = Symbol('lruList');\nvar CACHE = Symbol('cache');\nvar UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet');\n\nvar naiveLength = function naiveLength() {\n return 1;\n}; // lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\n\n\nvar LRUCache = /*#__PURE__*/function () {\n function LRUCache(options) {\n _classCallCheck(this, LRUCache);\n\n if (typeof options === 'number') options = {\n max: options\n };\n if (!options) options = {};\n if (options.max && (typeof options.max !== 'number' || options.max < 0)) throw new TypeError('max must be a non-negative number'); // Kind of weird to have a default max of Infinity, but oh well.\n\n var max = this[MAX] = options.max || Infinity;\n var lc = options.length || naiveLength;\n this[LENGTH_CALCULATOR] = typeof lc !== 'function' ? naiveLength : lc;\n this[ALLOW_STALE] = options.stale || false;\n if (options.maxAge && typeof options.maxAge !== 'number') throw new TypeError('maxAge must be a number');\n this[MAX_AGE] = options.maxAge || 0;\n this[DISPOSE] = options.dispose;\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false;\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false;\n this.reset();\n } // resize the cache when the max changes.\n\n\n return _createClass(LRUCache, [{\n key: \"max\",\n get: function get() {\n return this[MAX];\n },\n set: function set(mL) {\n if (typeof mL !== 'number' || mL < 0) throw new TypeError('max must be a non-negative number');\n this[MAX] = mL || Infinity;\n trim(this);\n }\n }, {\n key: \"allowStale\",\n get: function get() {\n return this[ALLOW_STALE];\n },\n set: function set(allowStale) {\n this[ALLOW_STALE] = !!allowStale;\n }\n }, {\n key: \"maxAge\",\n get: function get() {\n return this[MAX_AGE];\n } // resize the cache when the lengthCalculator changes.\n ,\n set: function set(mA) {\n if (typeof mA !== 'number') throw new TypeError('maxAge must be a non-negative number');\n this[MAX_AGE] = mA;\n trim(this);\n }\n }, {\n key: \"lengthCalculator\",\n get: function get() {\n return this[LENGTH_CALCULATOR];\n },\n set: function set(lC) {\n var _this = this;\n\n if (typeof lC !== 'function') lC = naiveLength;\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC;\n this[LENGTH] = 0;\n this[LRU_LIST].forEach(function (hit) {\n hit.length = _this[LENGTH_CALCULATOR](hit.value, hit.key);\n _this[LENGTH] += hit.length;\n });\n }\n\n trim(this);\n }\n }, {\n key: \"length\",\n get: function get() {\n return this[LENGTH];\n }\n }, {\n key: \"itemCount\",\n get: function get() {\n return this[LRU_LIST].length;\n }\n }, {\n key: \"rforEach\",\n value: function rforEach(fn, thisp) {\n thisp = thisp || this;\n\n for (var walker = this[LRU_LIST].tail; walker !== null;) {\n var prev = walker.prev;\n forEachStep(this, fn, walker, thisp);\n walker = prev;\n }\n }\n }, {\n key: \"forEach\",\n value: function forEach(fn, thisp) {\n thisp = thisp || this;\n\n for (var walker = this[LRU_LIST].head; walker !== null;) {\n var next = walker.next;\n forEachStep(this, fn, walker, thisp);\n walker = next;\n }\n }\n }, {\n key: \"keys\",\n value: function keys() {\n return this[LRU_LIST].toArray().map(function (k) {\n return k.key;\n });\n }\n }, {\n key: \"values\",\n value: function values() {\n return this[LRU_LIST].toArray().map(function (k) {\n return k.value;\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n var _this2 = this;\n\n if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) {\n this[LRU_LIST].forEach(function (hit) {\n return _this2[DISPOSE](hit.key, hit.value);\n });\n }\n\n this[CACHE] = new Map(); // hash of items by key\n\n this[LRU_LIST] = new Yallist(); // list of items in order of use recency\n\n this[LENGTH] = 0; // length of items in the list\n }\n }, {\n key: \"dump\",\n value: function dump() {\n var _this3 = this;\n\n return this[LRU_LIST].map(function (hit) {\n return isStale(_this3, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n };\n }).toArray().filter(function (h) {\n return h;\n });\n }\n }, {\n key: \"dumpLru\",\n value: function dumpLru() {\n return this[LRU_LIST];\n }\n }, {\n key: \"set\",\n value: function set(key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE];\n if (maxAge && typeof maxAge !== 'number') throw new TypeError('maxAge must be a number');\n var now = maxAge ? Date.now() : 0;\n var len = this[LENGTH_CALCULATOR](value, key);\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n _del(this, this[CACHE].get(key));\n\n return false;\n }\n\n var node = this[CACHE].get(key);\n var item = node.value; // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET]) this[DISPOSE](key, item.value);\n }\n\n item.now = now;\n item.maxAge = maxAge;\n item.value = value;\n this[LENGTH] += len - item.length;\n item.length = len;\n this.get(key);\n trim(this);\n return true;\n }\n\n var hit = new Entry(key, value, len, now, maxAge); // oversized objects fall out of cache automatically.\n\n if (hit.length > this[MAX]) {\n if (this[DISPOSE]) this[DISPOSE](key, value);\n return false;\n }\n\n this[LENGTH] += hit.length;\n this[LRU_LIST].unshift(hit);\n this[CACHE].set(key, this[LRU_LIST].head);\n trim(this);\n return true;\n }\n }, {\n key: \"has\",\n value: function has(key) {\n if (!this[CACHE].has(key)) return false;\n var hit = this[CACHE].get(key).value;\n return !isStale(this, hit);\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return _get(this, key, true);\n }\n }, {\n key: \"peek\",\n value: function peek(key) {\n return _get(this, key, false);\n }\n }, {\n key: \"pop\",\n value: function pop() {\n var node = this[LRU_LIST].tail;\n if (!node) return null;\n\n _del(this, node);\n\n return node.value;\n }\n }, {\n key: \"del\",\n value: function del(key) {\n _del(this, this[CACHE].get(key));\n }\n }, {\n key: \"load\",\n value: function load(arr) {\n // reset the cache\n this.reset();\n var now = Date.now(); // A previous serialized cache has the most recent items first\n\n for (var l = arr.length - 1; l >= 0; l--) {\n var hit = arr[l];\n var expiresAt = hit.e || 0;\n if (expiresAt === 0) // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v);else {\n var maxAge = expiresAt - now; // dont add already expired items\n\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge);\n }\n }\n }\n }\n }, {\n key: \"prune\",\n value: function prune() {\n var _this4 = this;\n\n this[CACHE].forEach(function (value, key) {\n return _get(_this4, key, false);\n });\n }\n }]);\n}();\n\nvar _get = function _get(self, key, doUse) {\n var node = self[CACHE].get(key);\n\n if (node) {\n var hit = node.value;\n\n if (isStale(self, hit)) {\n _del(self, node);\n\n if (!self[ALLOW_STALE]) return undefined;\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET]) node.value.now = Date.now();\n self[LRU_LIST].unshiftNode(node);\n }\n }\n\n return hit.value;\n }\n};\n\nvar isStale = function isStale(self, hit) {\n if (!hit || !hit.maxAge && !self[MAX_AGE]) return false;\n var diff = Date.now() - hit.now;\n return hit.maxAge ? diff > hit.maxAge : self[MAX_AGE] && diff > self[MAX_AGE];\n};\n\nvar trim = function trim(self) {\n if (self[LENGTH] > self[MAX]) {\n for (var walker = self[LRU_LIST].tail; self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n var prev = walker.prev;\n\n _del(self, walker);\n\n walker = prev;\n }\n }\n};\n\nvar _del = function _del(self, node) {\n if (node) {\n var hit = node.value;\n if (self[DISPOSE]) self[DISPOSE](hit.key, hit.value);\n self[LENGTH] -= hit.length;\n self[CACHE].delete(hit.key);\n self[LRU_LIST].removeNode(node);\n }\n};\n\nvar Entry = /*#__PURE__*/_createClass(function Entry(key, value, length, now, maxAge) {\n _classCallCheck(this, Entry);\n\n this.key = key;\n this.value = value;\n this.length = length;\n this.now = now;\n this.maxAge = maxAge || 0;\n});\n\nvar forEachStep = function forEachStep(self, fn, node, thisp) {\n var hit = node.value;\n\n if (isStale(self, hit)) {\n _del(self, node);\n\n if (!self[ALLOW_STALE]) hit = undefined;\n }\n\n if (hit) fn.call(thisp, hit.value, hit.key, self);\n};\n\nmodule.exports = LRUCache;\n\n/***/ }),\n\n/***/ 169:\n/***/ ((module) => {\n\n// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};\n\n/***/ }),\n\n/***/ 430:\n/***/ (function(module, exports) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (root, factory) {\n 'use strict'; // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {}\n})(this, function () {\n 'use strict';\n\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n }\n\n function _getter(p) {\n return function () {\n return this[p];\n };\n }\n\n var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n var numericProps = ['columnNumber', 'lineNumber'];\n var stringProps = ['fileName', 'functionName', 'source'];\n var arrayProps = ['args'];\n var props = booleanProps.concat(numericProps, stringProps, arrayProps);\n\n function StackFrame(obj) {\n if (!obj) return;\n\n for (var i = 0; i < props.length; i++) {\n if (obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\n }\n\n StackFrame.prototype = {\n getArgs: function getArgs() {\n return this.args;\n },\n setArgs: function setArgs(v) {\n if (Object.prototype.toString.call(v) !== '[object Array]') {\n throw new TypeError('Args must be an Array');\n }\n\n this.args = v;\n },\n getEvalOrigin: function getEvalOrigin() {\n return this.evalOrigin;\n },\n setEvalOrigin: function setEvalOrigin(v) {\n if (v instanceof StackFrame) {\n this.evalOrigin = v;\n } else if (v instanceof Object) {\n this.evalOrigin = new StackFrame(v);\n } else {\n throw new TypeError('Eval Origin must be an Object or StackFrame');\n }\n },\n toString: function toString() {\n var fileName = this.getFileName() || '';\n var lineNumber = this.getLineNumber() || '';\n var columnNumber = this.getColumnNumber() || '';\n var functionName = this.getFunctionName() || '';\n\n if (this.getIsEval()) {\n if (fileName) {\n return '[eval] (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n }\n\n return '[eval]:' + lineNumber + ':' + columnNumber;\n }\n\n if (functionName) {\n return functionName + ' (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n }\n\n return fileName + ':' + lineNumber + ':' + columnNumber;\n }\n };\n\n StackFrame.fromString = function StackFrame$$fromString(str) {\n var argsStartIndex = str.indexOf('(');\n var argsEndIndex = str.lastIndexOf(')');\n var functionName = str.substring(0, argsStartIndex);\n var args = str.substring(argsStartIndex + 1, argsEndIndex).split(',');\n var locationString = str.substring(argsEndIndex + 1);\n\n if (locationString.indexOf('@') === 0) {\n var parts = /@(.+?)(?::(\\d+))?(?::(\\d+))?$/.exec(locationString, '');\n var fileName = parts[1];\n var lineNumber = parts[2];\n var columnNumber = parts[3];\n }\n\n return new StackFrame({\n functionName: functionName,\n args: args || undefined,\n fileName: fileName,\n lineNumber: lineNumber || undefined,\n columnNumber: columnNumber || undefined\n });\n };\n\n for (var i = 0; i < booleanProps.length; i++) {\n StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n\n StackFrame.prototype['set' + _capitalize(booleanProps[i])] = function (p) {\n return function (v) {\n this[p] = Boolean(v);\n };\n }(booleanProps[i]);\n }\n\n for (var j = 0; j < numericProps.length; j++) {\n StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n\n StackFrame.prototype['set' + _capitalize(numericProps[j])] = function (p) {\n return function (v) {\n if (!_isNumber(v)) {\n throw new TypeError(p + ' must be a Number');\n }\n\n this[p] = Number(v);\n };\n }(numericProps[j]);\n }\n\n for (var k = 0; k < stringProps.length; k++) {\n StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n\n StackFrame.prototype['set' + _capitalize(stringProps[k])] = function (p) {\n return function (v) {\n this[p] = String(v);\n };\n }(stringProps[k]);\n }\n\n return StackFrame;\n});\n\n/***/ }),\n\n/***/ 476:\n/***/ ((module) => {\n\n\"use strict\";\n\n\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var walker;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n walker = this.head;\n\n case 1:\n if (!walker) {\n _context.next = 7;\n break;\n }\n\n _context.next = 4;\n return walker.value;\n\n case 4:\n walker = walker.next;\n _context.next = 1;\n break;\n\n case 7:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n });\n};\n\n/***/ }),\n\n/***/ 695:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\"use strict\";\n\n\nmodule.exports = Yallist;\nYallist.Node = Node;\nYallist.create = Yallist;\n\nfunction Yallist(list) {\n var self = this;\n\n if (!(self instanceof Yallist)) {\n self = new Yallist();\n }\n\n self.tail = null;\n self.head = null;\n self.length = 0;\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item);\n });\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i]);\n }\n }\n\n return self;\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list');\n }\n\n var next = node.next;\n var prev = node.prev;\n\n if (next) {\n next.prev = prev;\n }\n\n if (prev) {\n prev.next = next;\n }\n\n if (node === this.head) {\n this.head = next;\n }\n\n if (node === this.tail) {\n this.tail = prev;\n }\n\n node.list.length--;\n node.next = null;\n node.prev = null;\n node.list = null;\n return next;\n};\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return;\n }\n\n if (node.list) {\n node.list.removeNode(node);\n }\n\n var head = this.head;\n node.list = this;\n node.next = head;\n\n if (head) {\n head.prev = node;\n }\n\n this.head = node;\n\n if (!this.tail) {\n this.tail = node;\n }\n\n this.length++;\n};\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return;\n }\n\n if (node.list) {\n node.list.removeNode(node);\n }\n\n var tail = this.tail;\n node.list = this;\n node.prev = tail;\n\n if (tail) {\n tail.next = node;\n }\n\n this.tail = node;\n\n if (!this.head) {\n this.head = node;\n }\n\n this.length++;\n};\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i]);\n }\n\n return this.length;\n};\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i]);\n }\n\n return this.length;\n};\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined;\n }\n\n var res = this.tail.value;\n this.tail = this.tail.prev;\n\n if (this.tail) {\n this.tail.next = null;\n } else {\n this.head = null;\n }\n\n this.length--;\n return res;\n};\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined;\n }\n\n var res = this.head.value;\n this.head = this.head.next;\n\n if (this.head) {\n this.head.prev = null;\n } else {\n this.tail = null;\n }\n\n this.length--;\n return res;\n};\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this;\n\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this);\n walker = walker.next;\n }\n};\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this;\n\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this);\n walker = walker.prev;\n }\n};\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next;\n }\n\n if (i === n && walker !== null) {\n return walker.value;\n }\n};\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev;\n }\n\n if (i === n && walker !== null) {\n return walker.value;\n }\n};\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this;\n var res = new Yallist();\n\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.next;\n }\n\n return res;\n};\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this;\n var res = new Yallist();\n\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.prev;\n }\n\n return res;\n};\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc;\n var walker = this.head;\n\n if (arguments.length > 1) {\n acc = initial;\n } else if (this.head) {\n walker = this.head.next;\n acc = this.head.value;\n } else {\n throw new TypeError('Reduce of empty list with no initial value');\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i);\n walker = walker.next;\n }\n\n return acc;\n};\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc;\n var walker = this.tail;\n\n if (arguments.length > 1) {\n acc = initial;\n } else if (this.tail) {\n walker = this.tail.prev;\n acc = this.tail.value;\n } else {\n throw new TypeError('Reduce of empty list with no initial value');\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i);\n walker = walker.prev;\n }\n\n return acc;\n};\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length);\n\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value;\n walker = walker.next;\n }\n\n return arr;\n};\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length);\n\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value;\n walker = walker.prev;\n }\n\n return arr;\n};\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length;\n\n if (to < 0) {\n to += this.length;\n }\n\n from = from || 0;\n\n if (from < 0) {\n from += this.length;\n }\n\n var ret = new Yallist();\n\n if (to < from || to < 0) {\n return ret;\n }\n\n if (from < 0) {\n from = 0;\n }\n\n if (to > this.length) {\n to = this.length;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next;\n }\n\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value);\n }\n\n return ret;\n};\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length;\n\n if (to < 0) {\n to += this.length;\n }\n\n from = from || 0;\n\n if (from < 0) {\n from += this.length;\n }\n\n var ret = new Yallist();\n\n if (to < from || to < 0) {\n return ret;\n }\n\n if (from < 0) {\n from = 0;\n }\n\n if (to > this.length) {\n to = this.length;\n }\n\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev;\n }\n\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value);\n }\n\n return ret;\n};\n\nYallist.prototype.splice = function (start, deleteCount\n/*, ...nodes */\n) {\n if (start > this.length) {\n start = this.length - 1;\n }\n\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next;\n }\n\n var ret = [];\n\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value);\n walker = this.removeNode(walker);\n }\n\n if (walker === null) {\n walker = this.tail;\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev;\n }\n\n for (var i = 2; i < arguments.length; i++) {\n walker = insert(this, walker, arguments[i]);\n }\n\n return ret;\n};\n\nYallist.prototype.reverse = function () {\n var head = this.head;\n var tail = this.tail;\n\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev;\n walker.prev = walker.next;\n walker.next = p;\n }\n\n this.head = tail;\n this.tail = head;\n return this;\n};\n\nfunction insert(self, node, value) {\n var inserted = node === self.head ? new Node(value, null, node, self) : new Node(value, node, node.next, self);\n\n if (inserted.next === null) {\n self.tail = inserted;\n }\n\n if (inserted.prev === null) {\n self.head = inserted;\n }\n\n self.length++;\n return inserted;\n}\n\nfunction push(self, item) {\n self.tail = new Node(item, self.tail, null, self);\n\n if (!self.head) {\n self.head = self.tail;\n }\n\n self.length++;\n}\n\nfunction unshift(self, item) {\n self.head = new Node(item, null, self.head, self);\n\n if (!self.tail) {\n self.tail = self.head;\n }\n\n self.length++;\n}\n\nfunction Node(value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list);\n }\n\n this.list = list;\n this.value = value;\n\n if (prev) {\n prev.next = this;\n this.prev = prev;\n } else {\n this.prev = null;\n }\n\n if (next) {\n next.prev = this;\n this.next = next;\n } else {\n this.next = null;\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n __webpack_require__(476)(Yallist);\n} catch (er) {}\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t(() => {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = (module) => {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\t() => (module['default']) :\n/******/ \t\t\t\t() => (module);\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t(() => {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = (exports) => {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be in strict mode.\n(() => {\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"connectToDevTools\": () => (/* binding */ connectToDevTools),\n \"connectWithCustomMessagingProtocol\": () => (/* binding */ connectWithCustomMessagingProtocol),\n \"initialize\": () => (/* binding */ backend_initialize)\n});\n\n;// CONCATENATED MODULE: ../react-devtools-shared/src/events.js\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar EventEmitter = /*#__PURE__*/function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n _defineProperty(this, \"listenersMap\", new Map());\n }\n\n return _createClass(EventEmitter, [{\n key: \"addListener\",\n value: function addListener(event, listener) {\n var listeners = this.listenersMap.get(event);\n\n if (listeners === undefined) {\n this.listenersMap.set(event, [listener]);\n } else {\n var index = listeners.indexOf(listener);\n\n if (index < 0) {\n listeners.push(listener);\n }\n }\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n var listeners = this.listenersMap.get(event);\n\n if (listeners !== undefined) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (listeners.length === 1) {\n // No need to clone or try/catch\n var listener = listeners[0];\n listener.apply(null, args);\n } else {\n var didThrow = false;\n var caughtError = null;\n var clonedListeners = Array.from(listeners);\n\n for (var i = 0; i < clonedListeners.length; i++) {\n var _listener = clonedListeners[i];\n\n try {\n _listener.apply(null, args);\n } catch (error) {\n if (caughtError === null) {\n didThrow = true;\n caughtError = error;\n }\n }\n }\n\n if (didThrow) {\n throw caughtError;\n }\n }\n }\n }\n }, {\n key: \"removeAllListeners\",\n value: function removeAllListeners() {\n this.listenersMap.clear();\n }\n }, {\n key: \"removeListener\",\n value: function removeListener(event, listener) {\n var listeners = this.listenersMap.get(event);\n\n if (listeners !== undefined) {\n var index = listeners.indexOf(listener);\n\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n }\n }\n }]);\n}();\n\n\n;// CONCATENATED MODULE: ../react-devtools-shared/src/constants.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar CHROME_WEBSTORE_EXTENSION_ID = 'fmkadmapgofadopljbjfkapdkoienihi';\nvar INTERNAL_EXTENSION_ID = 'dnjnjgbfilfphmojnmhliehogmojhclc';\nvar LOCAL_EXTENSION_ID = 'ikiahnapldjmdmpkmfhjdjilojjhgcbf'; // Flip this flag to true to enable verbose console debug logging.\n\nvar __DEBUG__ = false; // Flip this flag to true to enable performance.mark() and performance.measure() timings.\n\nvar __PERFORMANCE_PROFILE__ = false;\nvar TREE_OPERATION_ADD = 1;\nvar TREE_OPERATION_REMOVE = 2;\nvar TREE_OPERATION_REORDER_CHILDREN = 3;\nvar TREE_OPERATION_UPDATE_TREE_BASE_DURATION = 4;\nvar TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS = 5;\nvar TREE_OPERATION_REMOVE_ROOT = 6;\nvar TREE_OPERATION_SET_SUBTREE_MODE = 7;\nvar PROFILING_FLAG_BASIC_SUPPORT = 1;\nvar PROFILING_FLAG_TIMELINE_SUPPORT = 2;\nvar LOCAL_STORAGE_DEFAULT_TAB_KEY = 'React::DevTools::defaultTab';\nvar constants_LOCAL_STORAGE_COMPONENT_FILTER_PREFERENCES_KEY = 'React::DevTools::componentFilters';\nvar SESSION_STORAGE_LAST_SELECTION_KEY = 'React::DevTools::lastSelection';\nvar constants_LOCAL_STORAGE_OPEN_IN_EDITOR_URL = 'React::DevTools::openInEditorUrl';\nvar LOCAL_STORAGE_OPEN_IN_EDITOR_URL_PRESET = 'React::DevTools::openInEditorUrlPreset';\nvar LOCAL_STORAGE_PARSE_HOOK_NAMES_KEY = 'React::DevTools::parseHookNames';\nvar constants_SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY = 'React::DevTools::recordChangeDescriptions';\nvar constants_SESSION_STORAGE_RECORD_TIMELINE_KEY = 'React::DevTools::recordTimeline';\nvar constants_SESSION_STORAGE_RELOAD_AND_PROFILE_KEY = 'React::DevTools::reloadAndProfile';\nvar LOCAL_STORAGE_BROWSER_THEME = 'React::DevTools::theme';\nvar LOCAL_STORAGE_TRACE_UPDATES_ENABLED_KEY = 'React::DevTools::traceUpdatesEnabled';\nvar LOCAL_STORAGE_SUPPORTS_PROFILING_KEY = 'React::DevTools::supportsProfiling';\nvar PROFILER_EXPORT_VERSION = 5;\nvar FIREFOX_CONSOLE_DIMMING_COLOR = 'color: rgba(124, 124, 124, 0.75)';\nvar ANSI_STYLE_DIMMING_TEMPLATE = '\\x1b[2;38;2;124;124;124m%s\\x1b[0m';\nvar ANSI_STYLE_DIMMING_TEMPLATE_WITH_COMPONENT_STACK = '\\x1b[2;38;2;124;124;124m%s %o\\x1b[0m';\n;// CONCATENATED MODULE: ../../node_modules/compare-versions/lib/esm/index.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser.\n * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`.\n * @param v1 - First version to compare\n * @param v2 - Second version to compare\n * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters).\n */\nvar compareVersions = function compareVersions(v1, v2) {\n // validate input and split into segments\n var n1 = validateAndParse(v1);\n var n2 = validateAndParse(v2); // pop off the patch\n\n var p1 = n1.pop();\n var p2 = n2.pop(); // validate numbers\n\n var r = compareSegments(n1, n2);\n if (r !== 0) return r; // validate pre-release\n\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n } else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n\n return 0;\n};\n/**\n * Validate [semver](https://semver.org/) version strings.\n *\n * @param version Version number to validate\n * @returns `true` if the version number is a valid semver version number, `false` otherwise.\n *\n * @example\n * ```\n * validate('1.0.0-rc.1'); // return true\n * validate('1.0-rc.1'); // return false\n * validate('foo'); // return false\n * ```\n */\n\nvar validate = function validate(version) {\n return typeof version === 'string' && /^[v\\d]/.test(version) && semver.test(version);\n};\n/**\n * Compare [semver](https://semver.org/) version strings using the specified operator.\n *\n * @param v1 First version to compare\n * @param v2 Second version to compare\n * @param operator Allowed arithmetic operator to use\n * @returns `true` if the comparison between the firstVersion and the secondVersion satisfies the operator, `false` otherwise.\n *\n * @example\n * ```\n * compare('10.1.8', '10.0.4', '>'); // return true\n * compare('10.0.1', '10.0.1', '='); // return true\n * compare('10.1.1', '10.2.2', '<'); // return true\n * compare('10.1.1', '10.2.2', '<='); // return true\n * compare('10.1.1', '10.2.2', '>='); // return false\n * ```\n */\n\nvar compare = function compare(v1, v2, operator) {\n // validate input operator\n assertValidOperator(operator); // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n\n var res = compareVersions(v1, v2);\n return operatorResMap[operator].includes(res);\n};\n/**\n * Match [npm semver](https://docs.npmjs.com/cli/v6/using-npm/semver) version range.\n *\n * @param version Version number to match\n * @param range Range pattern for version\n * @returns `true` if the version number is within the range, `false` otherwise.\n *\n * @example\n * ```\n * satisfies('1.1.0', '^1.0.0'); // return true\n * satisfies('1.1.0', '~1.0.0'); // return false\n * ```\n */\n\nvar satisfies = function satisfies(version, range) {\n // if no range operator then \"=\"\n var m = range.match(/^([<>=~^]+)/);\n var op = m ? m[1] : '='; // if gt/lt/eq then operator compare\n\n if (op !== '^' && op !== '~') return compare(version, range, op); // else range of either \"~\" or \"^\" is assumed\n\n var _validateAndParse = validateAndParse(version),\n _validateAndParse2 = _slicedToArray(_validateAndParse, 5),\n v1 = _validateAndParse2[0],\n v2 = _validateAndParse2[1],\n v3 = _validateAndParse2[2],\n vp = _validateAndParse2[4];\n\n var _validateAndParse3 = validateAndParse(range),\n _validateAndParse4 = _slicedToArray(_validateAndParse3, 5),\n r1 = _validateAndParse4[0],\n r2 = _validateAndParse4[1],\n r3 = _validateAndParse4[2],\n rp = _validateAndParse4[4];\n\n var v = [v1, v2, v3];\n var r = [r1, r2 !== null && r2 !== void 0 ? r2 : 'x', r3 !== null && r3 !== void 0 ? r3 : 'x']; // validate pre-release\n\n if (rp) {\n if (!vp) return false;\n if (compareSegments(v, r) !== 0) return false;\n if (compareSegments(vp.split('.'), rp.split('.')) === -1) return false;\n } // first non-zero number\n\n\n var nonZero = r.findIndex(function (v) {\n return v !== '0';\n }) + 1; // pointer to where segments can be >=\n\n var i = op === '~' ? 2 : nonZero > 1 ? nonZero : 1; // before pointer must be equal\n\n if (compareSegments(v.slice(0, i), r.slice(0, i)) !== 0) return false; // after pointer must be >=\n\n if (compareSegments(v.slice(i), r.slice(i)) === -1) return false;\n return true;\n};\nvar semver = /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\n\nvar validateAndParse = function validateAndParse(version) {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n\n var match = version.match(semver);\n\n if (!match) {\n throw new Error(\"Invalid argument not valid semver ('\".concat(version, \"' received)\"));\n }\n\n match.shift();\n return match;\n};\n\nvar isWildcard = function isWildcard(s) {\n return s === '*' || s === 'x' || s === 'X';\n};\n\nvar tryParse = function tryParse(v) {\n var n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\n\nvar forceType = function forceType(a, b) {\n return _typeof(a) !== _typeof(b) ? [String(a), String(b)] : [a, b];\n};\n\nvar compareStrings = function compareStrings(a, b) {\n if (isWildcard(a) || isWildcard(b)) return 0;\n\n var _forceType = forceType(tryParse(a), tryParse(b)),\n _forceType2 = _slicedToArray(_forceType, 2),\n ap = _forceType2[0],\n bp = _forceType2[1];\n\n if (ap > bp) return 1;\n if (ap < bp) return -1;\n return 0;\n};\n\nvar compareSegments = function compareSegments(a, b) {\n for (var i = 0; i < Math.max(a.length, b.length); i++) {\n var r = compareStrings(a[i] || '0', b[i] || '0');\n if (r !== 0) return r;\n }\n\n return 0;\n};\n\nvar operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1]\n};\nvar allowedOperators = Object.keys(operatorResMap);\n\nvar assertValidOperator = function assertValidOperator(op) {\n if (typeof op !== 'string') {\n throw new TypeError(\"Invalid operator type, expected string but got \".concat(_typeof(op)));\n }\n\n if (allowedOperators.indexOf(op) === -1) {\n throw new Error(\"Invalid operator, expected one of \".concat(allowedOperators.join('|')));\n }\n};\n// EXTERNAL MODULE: ../../node_modules/lru-cache/index.js\nvar lru_cache = __webpack_require__(730);\nvar lru_cache_default = /*#__PURE__*/__webpack_require__.n(lru_cache);\n;// CONCATENATED MODULE: ../shared/ReactFeatureFlags.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n// -----------------------------------------------------------------------------\n// Land or remove (zero effort)\n//\n// Flags that can likely be deleted or landed without consequences\n// -----------------------------------------------------------------------------\n// None\n// -----------------------------------------------------------------------------\n// Killswitch\n//\n// Flags that exist solely to turn off a change in case it causes a regression\n// when it rolls out to prod. We should remove these as soon as possible.\n// -----------------------------------------------------------------------------\nvar enableHydrationLaneScheduling = true; // -----------------------------------------------------------------------------\n// Land or remove (moderate effort)\n//\n// Flags that can be probably deleted or landed, but might require extra effort\n// like migrating internal callers or performance testing.\n// -----------------------------------------------------------------------------\n// TODO: Finish rolling out in www\n\nvar favorSafetyOverHydrationPerf = true; // Need to remove didTimeout argument from Scheduler before landing\n\nvar disableSchedulerTimeoutInWorkLoop = false; // TODO: Land at Meta before removing.\n\nvar disableDefaultPropsExceptForClasses = true; // -----------------------------------------------------------------------------\n// Slated for removal in the future (significant effort)\n//\n// These are experiments that didn't work out, and never shipped, but we can't\n// delete from the codebase until we migrate internal callers.\n// -----------------------------------------------------------------------------\n// Add a callback property to suspense to notify which promises are currently\n// in the update queue. This allows reporting and tracing of what is causing\n// the user to see a loading state.\n//\n// Also allows hydration callbacks to fire when a dehydrated boundary gets\n// hydrated or deleted.\n//\n// This will eventually be replaced by the Transition Tracing proposal.\n\nvar enableSuspenseCallback = false; // Experimental Scope support.\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\n\nvar enableCreateEventHandleAPI = false; // Support legacy Primer support on internal FB www\n\nvar enableLegacyFBSupport = false; // -----------------------------------------------------------------------------\n// Ongoing experiments\n//\n// These are features that we're either actively exploring or are reasonably\n// likely to include in an upcoming release.\n// -----------------------------------------------------------------------------\n// Yield to the browser event loop and not just the scheduler event loop before passive effects.\n// Fix gated tests that fail with this flag enabled before turning it back on.\n\nvar enableYieldingBeforePassive = false; // Experiment to intentionally yield less to block high framerate animations.\n\nvar enableThrottledScheduling = false;\nvar enableLegacyCache = (/* unused pure expression or super */ null && (true));\nvar enableAsyncIterableChildren = (/* unused pure expression or super */ null && (true));\nvar enableTaint = (/* unused pure expression or super */ null && (true));\nvar enablePostpone = (/* unused pure expression or super */ null && (true));\nvar enableHalt = (/* unused pure expression or super */ null && (true));\nvar enableViewTransition = (/* unused pure expression or super */ null && (true));\n/**\n * Switches the Fabric API from doing layout in commit work instead of complete work.\n */\n\nvar enableFabricCompleteRootInCommitPhase = false;\n/**\n * Switches Fiber creation to a simple object instead of a constructor.\n */\n\nvar enableObjectFiber = false;\nvar enableTransitionTracing = false; // FB-only usage. The new API has different semantics.\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n\nvar enableSuspenseAvoidThisFallback = false;\nvar enableCPUSuspense = (/* unused pure expression or super */ null && (true)); // Test this at Meta before enabling.\n\nvar enableNoCloningMemoCache = false;\nvar enableUseEffectEventHook = (/* unused pure expression or super */ null && (true)); // Test in www before enabling in open source.\n// Enables DOM-server to stream its instruction set as data-attributes\n// (handled with an MutationObserver) instead of inline-scripts\n\nvar enableFizzExternalRuntime = (/* unused pure expression or super */ null && (true));\nvar alwaysThrottleRetries = true;\nvar passChildrenWhenCloningPersistedNodes = false;\n/**\n * Enables a new Fiber flag used in persisted mode to reduce the number\n * of cloned host components.\n */\n\nvar enablePersistedModeClonedFlag = false;\nvar enableOwnerStacks = (/* unused pure expression or super */ null && (true));\nvar enableShallowPropDiffing = false;\nvar enableSiblingPrerendering = true;\n/**\n * Enables an expiration time for retry lanes to avoid starvation.\n */\n\nvar enableRetryLaneExpiration = false;\nvar retryLaneExpirationMs = 5000;\nvar syncLaneExpirationMs = 250;\nvar transitionLaneExpirationMs = 5000;\n/**\n * Enables a new error detection for infinite render loops from updates caused\n * by setState or similar outside of the component owning the state.\n */\n\nvar enableInfiniteRenderLoopDetection = false;\n/**\n * Experimental new hook for better managing resources in effects.\n */\n\nvar enableUseResourceEffectHook = false;\nvar enableFastAddPropertiesInDiffing = true; // -----------------------------------------------------------------------------\n// Ready for next major.\n//\n// Alias __NEXT_MAJOR__ to __EXPERIMENTAL__ for easier skimming.\n// -----------------------------------------------------------------------------\n// TODO: Anything that's set to `true` in this section should either be cleaned\n// up (if it's on everywhere, including Meta and RN builds) or moved to a\n// different section of this file.\n// const __NEXT_MAJOR__ = __EXPERIMENTAL__;\n// Renames the internal symbol for elements since they have changed signature/constructor\n\nvar renameElementSymbol = true;\n/**\n * Enables a fix to run insertion effect cleanup on hidden subtrees.\n */\n\nvar enableHiddenSubtreeInsertionEffectCleanup = false;\n/**\n * Removes legacy style context defined using static `contextTypes` and consumed with static `childContextTypes`.\n */\n\nvar disableLegacyContext = true;\n/**\n * Removes legacy style context just from function components.\n */\n\nvar disableLegacyContextForFunctionComponents = true; // Enable the moveBefore() alternative to insertBefore(). This preserves states of moves.\n\nvar enableMoveBefore = false; // Disabled caching behavior of `react/cache` in client runtimes.\n\nvar disableClientCache = true; // Warn on any usage of ReactTestRenderer\n\nvar enableReactTestRendererWarning = true; // Disables legacy mode\n// This allows us to land breaking changes to remove legacy mode APIs in experimental builds\n// before removing them in stable in the next Major\n\nvar disableLegacyMode = true; // Make <Context> equivalent to <Context.Provider> instead of <Context.Consumer>\n\nvar enableRenderableContext = true; // -----------------------------------------------------------------------------\n// Chopping Block\n//\n// Planned feature deprecations and breaking changes. Sorted roughly in order of\n// when we plan to enable them.\n// -----------------------------------------------------------------------------\n// -----------------------------------------------------------------------------\n// React DOM Chopping Block\n//\n// Similar to main Chopping Block but only flags related to React DOM. These are\n// grouped because we will likely batch all of them into a single major release.\n// -----------------------------------------------------------------------------\n// Disable support for comment nodes as React DOM containers. Already disabled\n// in open source, but www codebase still relies on it. Need to remove.\n\nvar disableCommentsAsDOMContainers = true;\nvar enableTrustedTypesIntegration = false; // Prevent the value and checked attributes from syncing with their related\n// DOM properties\n\nvar disableInputAttributeSyncing = false; // Disables children for <textarea> elements\n\nvar disableTextareaChildren = false; // -----------------------------------------------------------------------------\n// Debugging and DevTools\n// -----------------------------------------------------------------------------\n// Gather advanced timing metrics for Profiler subtrees.\n\nvar enableProfilerTimer = (/* unused pure expression or super */ null && (false)); // Adds performance.measure() marks using Chrome extensions to allow formatted\n// Component rendering tracks to show up in the Performance tab.\n// This flag will be used for both Server Component and Client Component tracks.\n// All calls should also be gated on enableProfilerTimer.\n\nvar enableComponentPerformanceTrack = true; // Adds user timing marks for e.g. state updates, suspense, and work loop stuff,\n// for an experimental timeline tool.\n\nvar enableSchedulingProfiler = !enableComponentPerformanceTrack && false; // Record durations for commit and passive effects phases.\n\nvar enableProfilerCommitHooks = (/* unused pure expression or super */ null && (false)); // Phase param passed to onRender callback differentiates between an \"update\" and a \"cascading-update\".\n\nvar enableProfilerNestedUpdatePhase = (/* unused pure expression or super */ null && (false));\nvar enableAsyncDebugInfo = (/* unused pure expression or super */ null && (true)); // Track which Fiber(s) schedule render work.\n\nvar enableUpdaterTracking = (/* unused pure expression or super */ null && (false)); // Internal only.\n\nvar enableDO_NOT_USE_disableStrictPassiveEffect = false;\nvar enableRemoveConsolePatches = true;\n;// CONCATENATED MODULE: ../shared/ReactSymbols.js\nfunction ReactSymbols_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { ReactSymbols_typeof = function _typeof(obj) { return typeof obj; }; } else { ReactSymbols_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return ReactSymbols_typeof(obj); }\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n // ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\n\nvar REACT_LEGACY_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_ELEMENT_TYPE = renameElementSymbol ? Symbol.for('react.transitional.element') : REACT_LEGACY_ELEMENT_TYPE;\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider'); // TODO: Delete with enableRenderableContext\n\nvar REACT_CONSUMER_TYPE = Symbol.for('react.consumer');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_SCOPE_TYPE = Symbol.for('react.scope');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar REACT_LEGACY_HIDDEN_TYPE = Symbol.for('react.legacy_hidden');\nvar REACT_TRACING_MARKER_TYPE = Symbol.for('react.tracing_marker');\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for('react.memo_cache_sentinel');\nvar REACT_POSTPONE_TYPE = Symbol.for('react.postpone');\nvar REACT_VIEW_TRANSITION_TYPE = Symbol.for('react.view_transition');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || ReactSymbols_typeof(maybeIterable) !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\nvar ASYNC_ITERATOR = Symbol.asyncIterator;\n;// CONCATENATED MODULE: ../react-devtools-shared/src/frontend/types.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * WARNING:\n * This file contains types that are designed for React DevTools UI and how it interacts with the backend.\n * They might be used in different versions of DevTools backends.\n * Be mindful of backwards compatibility when making changes.\n */\n// WARNING\n// The values below are referenced by ComponentFilters (which are saved via localStorage).\n// Do not change them or it will break previously saved user customizations.\n// If new element types are added, use new numbers rather than re-ordering existing ones.\n//\n// Changing these types is also a backwards breaking change for the standalone shell,\n// since the frontend and backend must share the same values-\n// and the backend is embedded in certain environments (like React Native).\nvar types_ElementTypeClass = 1;\nvar ElementTypeContext = 2;\nvar types_ElementTypeFunction = 5;\nvar types_ElementTypeForwardRef = 6;\nvar ElementTypeHostComponent = 7;\nvar types_ElementTypeMemo = 8;\nvar ElementTypeOtherOrUnknown = 9;\nvar ElementTypeProfiler = 10;\nvar ElementTypeRoot = 11;\nvar ElementTypeSuspense = 12;\nvar ElementTypeSuspenseList = 13;\nvar ElementTypeTracingMarker = 14;\nvar types_ElementTypeVirtual = 15;\nvar ElementTypeViewTransition = 16; // Different types of elements displayed in the Elements tree.\n// These types may be used to visually distinguish types,\n// or to enable/disable certain functionality.\n\n// WARNING\n// The values below are referenced by ComponentFilters (which are saved via localStorage).\n// Do not change them or it will break previously saved user customizations.\n// If new filter types are added, use new numbers rather than re-ordering existing ones.\nvar ComponentFilterElementType = 1;\nvar ComponentFilterDisplayName = 2;\nvar ComponentFilterLocation = 3;\nvar ComponentFilterHOC = 4;\nvar ComponentFilterEnvironmentName = 5; // Hide all elements of types in this Set.\n// We hide host components only by default.\n// Hide all elements with displayNames or paths matching one or more of the RegExps in this Set.\n// Path filters are only used when elements include debug source location.\n// Map of hook source (\"<filename>:<line-number>:<column-number>\") to name.\n// Hook source is used instead of the hook itself because the latter is not stable between element inspections.\n// We use a Map rather than an Array because of nested hooks and traversal ordering.\n\nvar StrictMode = 1; // Each element on the frontend corresponds to an ElementID (e.g. a Fiber) on the backend.\n// Some of its information (e.g. id, type, displayName) come from the backend.\n// Other bits (e.g. weight and depth) are computed on the frontend for windowing and display purposes.\n// Elements are updated on a push basis– meaning the backend pushes updates to the frontend when needed.\n// TODO: Add profiling type\n;// CONCATENATED MODULE: ../react-devtools-shared/src/isArray.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar isArray = Array.isArray;\n/* harmony default export */ const src_isArray = (isArray);\n;// CONCATENATED MODULE: ../react-devtools-shared/src/utils.js\n/* provided dependency */ var process = __webpack_require__(169);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { utils_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction utils_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction utils_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { utils_typeof = function _typeof(obj) { return typeof obj; }; } else { utils_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return utils_typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || utils_unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction utils_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return utils_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return utils_arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return utils_arrayLikeToArray(arr); }\n\nfunction utils_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\n\n\n\n\n\n\n\n // $FlowFixMe[method-unbinding]\n\nvar utils_hasOwnProperty = Object.prototype.hasOwnProperty;\nvar cachedDisplayNames = new WeakMap(); // On large trees, encoding takes significant time.\n// Try to reuse the already encoded strings.\n\nvar encodedStringCache = new (lru_cache_default())({\n max: 1000\n});\nfunction alphaSortKeys(a, b) {\n if (a.toString() > b.toString()) {\n return 1;\n } else if (b.toString() > a.toString()) {\n return -1;\n } else {\n return 0;\n }\n}\nfunction getAllEnumerableKeys(obj) {\n var keys = new Set();\n var current = obj;\n\n var _loop = function _loop() {\n var currentKeys = [].concat(_toConsumableArray(Object.keys(current)), _toConsumableArray(Object.getOwnPropertySymbols(current)));\n var descriptors = Object.getOwnPropertyDescriptors(current);\n currentKeys.forEach(function (key) {\n // $FlowFixMe[incompatible-type]: key can be a Symbol https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor\n if (descriptors[key].enumerable) {\n keys.add(key);\n }\n });\n current = Object.getPrototypeOf(current);\n };\n\n while (current != null) {\n _loop();\n }\n\n return keys;\n} // Mirror https://github.com/facebook/react/blob/7c21bf72ace77094fd1910cc350a548287ef8350/packages/shared/getComponentName.js#L27-L37\n\nfunction getWrappedDisplayName(outerType, innerType, wrapperName, fallbackName) {\n var displayName = outerType === null || outerType === void 0 ? void 0 : outerType.displayName;\n return displayName || \"\".concat(wrapperName, \"(\").concat(getDisplayName(innerType, fallbackName), \")\");\n}\nfunction getDisplayName(type) {\n var fallbackName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'Anonymous';\n var nameFromCache = cachedDisplayNames.get(type);\n\n if (nameFromCache != null) {\n return nameFromCache;\n }\n\n var displayName = fallbackName; // The displayName property is not guaranteed to be a string.\n // It's only safe to use for our purposes if it's a string.\n // github.com/facebook/react-devtools/issues/803\n\n if (typeof type.displayName === 'string') {\n displayName = type.displayName;\n } else if (typeof type.name === 'string' && type.name !== '') {\n displayName = type.name;\n }\n\n cachedDisplayNames.set(type, displayName);\n return displayName;\n}\nvar uidCounter = 0;\nfunction getUID() {\n return ++uidCounter;\n}\nfunction utfDecodeStringWithRanges(array, left, right) {\n var string = '';\n\n for (var i = left; i <= right; i++) {\n string += String.fromCodePoint(array[i]);\n }\n\n return string;\n}\n\nfunction surrogatePairToCodePoint(charCode1, charCode2) {\n return ((charCode1 & 0x3ff) << 10) + (charCode2 & 0x3ff) + 0x10000;\n} // Credit for this encoding approach goes to Tim Down:\n// https://stackoverflow.com/questions/4877326/how-can-i-tell-if-a-string-contains-multibyte-characters-in-javascript\n\n\nfunction utfEncodeString(string) {\n var cached = encodedStringCache.get(string);\n\n if (cached !== undefined) {\n return cached;\n }\n\n var encoded = [];\n var i = 0;\n var charCode;\n\n while (i < string.length) {\n charCode = string.charCodeAt(i); // Handle multibyte unicode characters (like emoji).\n\n if ((charCode & 0xf800) === 0xd800) {\n encoded.push(surrogatePairToCodePoint(charCode, string.charCodeAt(++i)));\n } else {\n encoded.push(charCode);\n }\n\n ++i;\n }\n\n encodedStringCache.set(string, encoded);\n return encoded;\n}\nfunction printOperationsArray(operations) {\n // The first two values are always rendererID and rootID\n var rendererID = operations[0];\n var rootID = operations[1];\n var logs = [\"operations for renderer:\".concat(rendererID, \" and root:\").concat(rootID)];\n var i = 2; // Reassemble the string table.\n\n var stringTable = [null // ID = 0 corresponds to the null string.\n ];\n var stringTableSize = operations[i++];\n var stringTableEnd = i + stringTableSize;\n\n while (i < stringTableEnd) {\n var nextLength = operations[i++];\n var nextString = utfDecodeStringWithRanges(operations, i, i + nextLength - 1);\n stringTable.push(nextString);\n i += nextLength;\n }\n\n while (i < operations.length) {\n var operation = operations[i];\n\n switch (operation) {\n case TREE_OPERATION_ADD:\n {\n var _id = operations[i + 1];\n var type = operations[i + 2];\n i += 3;\n\n if (type === ElementTypeRoot) {\n logs.push(\"Add new root node \".concat(_id));\n i++; // isStrictModeCompliant\n\n i++; // supportsProfiling\n\n i++; // supportsStrictMode\n\n i++; // hasOwnerMetadata\n } else {\n var parentID = operations[i];\n i++;\n i++; // ownerID\n\n var displayNameStringID = operations[i];\n var displayName = stringTable[displayNameStringID];\n i++;\n i++; // key\n\n logs.push(\"Add node \".concat(_id, \" (\").concat(displayName || 'null', \") as child of \").concat(parentID));\n }\n\n break;\n }\n\n case TREE_OPERATION_REMOVE:\n {\n var removeLength = operations[i + 1];\n i += 2;\n\n for (var removeIndex = 0; removeIndex < removeLength; removeIndex++) {\n var _id2 = operations[i];\n i += 1;\n logs.push(\"Remove node \".concat(_id2));\n }\n\n break;\n }\n\n case TREE_OPERATION_REMOVE_ROOT:\n {\n i += 1;\n logs.push(\"Remove root \".concat(rootID));\n break;\n }\n\n case TREE_OPERATION_SET_SUBTREE_MODE:\n {\n var _id3 = operations[i + 1];\n var mode = operations[i + 1];\n i += 3;\n logs.push(\"Mode \".concat(mode, \" set for subtree with root \").concat(_id3));\n break;\n }\n\n case TREE_OPERATION_REORDER_CHILDREN:\n {\n var _id4 = operations[i + 1];\n var numChildren = operations[i + 2];\n i += 3;\n var children = operations.slice(i, i + numChildren);\n i += numChildren;\n logs.push(\"Re-order node \".concat(_id4, \" children \").concat(children.join(',')));\n break;\n }\n\n case TREE_OPERATION_UPDATE_TREE_BASE_DURATION:\n // Base duration updates are only sent while profiling is in progress.\n // We can ignore them at this point.\n // The profiler UI uses them lazily in order to generate the tree.\n i += 3;\n break;\n\n case TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS:\n var id = operations[i + 1];\n var numErrors = operations[i + 2];\n var numWarnings = operations[i + 3];\n i += 4;\n logs.push(\"Node \".concat(id, \" has \").concat(numErrors, \" errors and \").concat(numWarnings, \" warnings\"));\n break;\n\n default:\n throw Error(\"Unsupported Bridge operation \\\"\".concat(operation, \"\\\"\"));\n }\n }\n\n console.log(logs.join('\\n '));\n}\nfunction getDefaultComponentFilters() {\n return [{\n type: ComponentFilterElementType,\n value: ElementTypeHostComponent,\n isEnabled: true\n }];\n}\nfunction getSavedComponentFilters() {\n try {\n var raw = localStorageGetItem(LOCAL_STORAGE_COMPONENT_FILTER_PREFERENCES_KEY);\n\n if (raw != null) {\n var parsedFilters = JSON.parse(raw);\n return filterOutLocationComponentFilters(parsedFilters);\n }\n } catch (error) {}\n\n return getDefaultComponentFilters();\n}\nfunction setSavedComponentFilters(componentFilters) {\n localStorageSetItem(LOCAL_STORAGE_COMPONENT_FILTER_PREFERENCES_KEY, JSON.stringify(filterOutLocationComponentFilters(componentFilters)));\n} // Following __debugSource removal from Fiber, the new approach for finding the source location\n// of a component, represented by the Fiber, is based on lazily generating and parsing component stack frames\n// To find the original location, React DevTools will perform symbolication, source maps are required for that.\n// In order to start filtering Fibers, we need to find location for all of them, which can't be done lazily.\n// Eager symbolication can become quite expensive for large applications.\n\nfunction filterOutLocationComponentFilters(componentFilters) {\n // This is just an additional check to preserve the previous state\n // Filters can be stored on the backend side or in user land (in a window object)\n if (!Array.isArray(componentFilters)) {\n return componentFilters;\n }\n\n return componentFilters.filter(function (f) {\n return f.type !== ComponentFilterLocation;\n });\n}\nfunction getDefaultOpenInEditorURL() {\n return typeof process.env.EDITOR_URL === 'string' ? process.env.EDITOR_URL : '';\n}\nfunction getOpenInEditorURL() {\n try {\n var raw = localStorageGetItem(LOCAL_STORAGE_OPEN_IN_EDITOR_URL);\n\n if (raw != null) {\n return JSON.parse(raw);\n }\n } catch (error) {}\n\n return getDefaultOpenInEditorURL();\n}\nfunction parseElementDisplayNameFromBackend(displayName, type) {\n if (displayName === null) {\n return {\n formattedDisplayName: null,\n hocDisplayNames: null,\n compiledWithForget: false\n };\n }\n\n if (displayName.startsWith('Forget(')) {\n var displayNameWithoutForgetWrapper = displayName.slice(7, displayName.length - 1);\n\n var _parseElementDisplayN = parseElementDisplayNameFromBackend(displayNameWithoutForgetWrapper, type),\n formattedDisplayName = _parseElementDisplayN.formattedDisplayName,\n _hocDisplayNames = _parseElementDisplayN.hocDisplayNames;\n\n return {\n formattedDisplayName: formattedDisplayName,\n hocDisplayNames: _hocDisplayNames,\n compiledWithForget: true\n };\n }\n\n var hocDisplayNames = null;\n\n switch (type) {\n case ElementTypeClass:\n case ElementTypeForwardRef:\n case ElementTypeFunction:\n case ElementTypeMemo:\n case ElementTypeVirtual:\n if (displayName.indexOf('(') >= 0) {\n var matches = displayName.match(/[^()]+/g);\n\n if (matches != null) {\n // $FlowFixMe[incompatible-type]\n displayName = matches.pop();\n hocDisplayNames = matches;\n }\n }\n\n break;\n\n default:\n break;\n }\n\n return {\n // $FlowFixMe[incompatible-return]\n formattedDisplayName: displayName,\n hocDisplayNames: hocDisplayNames,\n compiledWithForget: false\n };\n} // Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\n\nfunction shallowDiffers(prev, next) {\n for (var attribute in prev) {\n if (!(attribute in next)) {\n return true;\n }\n }\n\n for (var _attribute in next) {\n if (prev[_attribute] !== next[_attribute]) {\n return true;\n }\n }\n\n return false;\n}\nfunction utils_getInObject(object, path) {\n return path.reduce(function (reduced, attr) {\n if (reduced) {\n if (utils_hasOwnProperty.call(reduced, attr)) {\n return reduced[attr];\n }\n\n if (typeof reduced[Symbol.iterator] === 'function') {\n // Convert iterable to array and return array[index]\n //\n // TRICKY\n // Don't use [...spread] syntax for this purpose.\n // This project uses @babel/plugin-transform-spread in \"loose\" mode which only works with Array values.\n // Other types (e.g. typed arrays, Sets) will not spread correctly.\n return Array.from(reduced)[attr];\n }\n }\n\n return null;\n }, object);\n}\nfunction deletePathInObject(object, path) {\n var length = path.length;\n var last = path[length - 1];\n\n if (object != null) {\n var parent = utils_getInObject(object, path.slice(0, length - 1));\n\n if (parent) {\n if (src_isArray(parent)) {\n parent.splice(last, 1);\n } else {\n delete parent[last];\n }\n }\n }\n}\nfunction renamePathInObject(object, oldPath, newPath) {\n var length = oldPath.length;\n\n if (object != null) {\n var parent = utils_getInObject(object, oldPath.slice(0, length - 1));\n\n if (parent) {\n var lastOld = oldPath[length - 1];\n var lastNew = newPath[length - 1];\n parent[lastNew] = parent[lastOld];\n\n if (src_isArray(parent)) {\n parent.splice(lastOld, 1);\n } else {\n delete parent[lastOld];\n }\n }\n }\n}\nfunction utils_setInObject(object, path, value) {\n var length = path.length;\n var last = path[length - 1];\n\n if (object != null) {\n var parent = utils_getInObject(object, path.slice(0, length - 1));\n\n if (parent) {\n parent[last] = value;\n }\n }\n}\n\n/**\n * Get a enhanced/artificial type string based on the object instance\n */\nfunction getDataType(data) {\n if (data === null) {\n return 'null';\n } else if (data === undefined) {\n return 'undefined';\n }\n\n if (typeof HTMLElement !== 'undefined' && data instanceof HTMLElement) {\n return 'html_element';\n }\n\n var type = utils_typeof(data);\n\n switch (type) {\n case 'bigint':\n return 'bigint';\n\n case 'boolean':\n return 'boolean';\n\n case 'function':\n return 'function';\n\n case 'number':\n if (Number.isNaN(data)) {\n return 'nan';\n } else if (!Number.isFinite(data)) {\n return 'infinity';\n } else {\n return 'number';\n }\n\n case 'object':\n if (data.$$typeof === REACT_ELEMENT_TYPE || data.$$typeof === REACT_LEGACY_ELEMENT_TYPE) {\n return 'react_element';\n }\n\n if (src_isArray(data)) {\n return 'array';\n } else if (ArrayBuffer.isView(data)) {\n return utils_hasOwnProperty.call(data.constructor, 'BYTES_PER_ELEMENT') ? 'typed_array' : 'data_view';\n } else if (data.constructor && data.constructor.name === 'ArrayBuffer') {\n // HACK This ArrayBuffer check is gross; is there a better way?\n // We could try to create a new DataView with the value.\n // If it doesn't error, we know it's an ArrayBuffer,\n // but this seems kind of awkward and expensive.\n return 'array_buffer';\n } else if (typeof data[Symbol.iterator] === 'function') {\n var iterator = data[Symbol.iterator]();\n\n if (!iterator) {// Proxies might break assumptoins about iterators.\n // See github.com/facebook/react/issues/21654\n } else {\n return iterator === data ? 'opaque_iterator' : 'iterator';\n }\n } else if (data.constructor && data.constructor.name === 'RegExp') {\n return 'regexp';\n } else {\n // $FlowFixMe[method-unbinding]\n var toStringValue = Object.prototype.toString.call(data);\n\n if (toStringValue === '[object Date]') {\n return 'date';\n } else if (toStringValue === '[object HTMLAllCollection]') {\n return 'html_all_collection';\n }\n }\n\n if (!isPlainObject(data)) {\n return 'class_instance';\n }\n\n return 'object';\n\n case 'string':\n return 'string';\n\n case 'symbol':\n return 'symbol';\n\n case 'undefined':\n if ( // $FlowFixMe[method-unbinding]\n Object.prototype.toString.call(data) === '[object HTMLAllCollection]') {\n return 'html_all_collection';\n }\n\n return 'undefined';\n\n default:\n return 'unknown';\n }\n} // Fork of packages/react-is/src/ReactIs.js:30, but with legacy element type\n// Which has been changed in https://github.com/facebook/react/pull/28813\n\nfunction typeOfWithLegacyElementSymbol(object) {\n if (utils_typeof(object) === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_LEGACY_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return $$typeofType;\n\n case REACT_CONSUMER_TYPE:\n if (enableRenderableContext) {\n return $$typeofType;\n }\n\n // Fall through\n\n case REACT_PROVIDER_TYPE:\n if (!enableRenderableContext) {\n return $$typeofType;\n }\n\n // Fall through\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\nfunction getDisplayNameForReactElement(element) {\n var elementType = typeOfWithLegacyElementSymbol(element);\n\n switch (elementType) {\n case REACT_CONSUMER_TYPE:\n return 'ContextConsumer';\n\n case REACT_PROVIDER_TYPE:\n return 'ContextProvider';\n\n case REACT_CONTEXT_TYPE:\n return 'Context';\n\n case REACT_FORWARD_REF_TYPE:\n return 'ForwardRef';\n\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_LAZY_TYPE:\n return 'Lazy';\n\n case REACT_MEMO_TYPE:\n return 'Memo';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n case REACT_VIEW_TRANSITION_TYPE:\n return 'ViewTransition';\n\n case REACT_TRACING_MARKER_TYPE:\n return 'TracingMarker';\n\n default:\n var type = element.type;\n\n if (typeof type === 'string') {\n return type;\n } else if (typeof type === 'function') {\n return getDisplayName(type, 'Anonymous');\n } else if (type != null) {\n return 'NotImplementedInDevtools';\n } else {\n return 'Element';\n }\n\n }\n}\nvar MAX_PREVIEW_STRING_LENGTH = 50;\n\nfunction truncateForDisplay(string) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : MAX_PREVIEW_STRING_LENGTH;\n\n if (string.length > length) {\n return string.slice(0, length) + '…';\n } else {\n return string;\n }\n} // Attempts to mimic Chrome's inline preview for values.\n// For example, the following value...\n// {\n// foo: 123,\n// bar: \"abc\",\n// baz: [true, false],\n// qux: { ab: 1, cd: 2 }\n// };\n//\n// Would show a preview of...\n// {foo: 123, bar: \"abc\", baz: Array(2), qux: {…}}\n//\n// And the following value...\n// [\n// 123,\n// \"abc\",\n// [true, false],\n// { foo: 123, bar: \"abc\" }\n// ];\n//\n// Would show a preview of...\n// [123, \"abc\", Array(2), {…}]\n\n\nfunction formatDataForPreview(data, showFormattedValue) {\n if (data != null && utils_hasOwnProperty.call(data, meta.type)) {\n return showFormattedValue ? data[meta.preview_long] : data[meta.preview_short];\n }\n\n var type = getDataType(data);\n\n switch (type) {\n case 'html_element':\n return \"<\".concat(truncateForDisplay(data.tagName.toLowerCase()), \" />\");\n\n case 'function':\n if (typeof data.name === 'function' || data.name === '') {\n return '() => {}';\n }\n\n return \"\".concat(truncateForDisplay(data.name), \"() {}\");\n\n case 'string':\n return \"\\\"\".concat(data, \"\\\"\");\n\n case 'bigint':\n return truncateForDisplay(data.toString() + 'n');\n\n case 'regexp':\n return truncateForDisplay(data.toString());\n\n case 'symbol':\n return truncateForDisplay(data.toString());\n\n case 'react_element':\n return \"<\".concat(truncateForDisplay(getDisplayNameForReactElement(data) || 'Unknown'), \" />\");\n\n case 'array_buffer':\n return \"ArrayBuffer(\".concat(data.byteLength, \")\");\n\n case 'data_view':\n return \"DataView(\".concat(data.buffer.byteLength, \")\");\n\n case 'array':\n if (showFormattedValue) {\n var formatted = '';\n\n for (var i = 0; i < data.length; i++) {\n if (i > 0) {\n formatted += ', ';\n }\n\n formatted += formatDataForPreview(data[i], false);\n\n if (formatted.length > MAX_PREVIEW_STRING_LENGTH) {\n // Prevent doing a lot of unnecessary iteration...\n break;\n }\n }\n\n return \"[\".concat(truncateForDisplay(formatted), \"]\");\n } else {\n var length = utils_hasOwnProperty.call(data, meta.size) ? data[meta.size] : data.length;\n return \"Array(\".concat(length, \")\");\n }\n\n case 'typed_array':\n var shortName = \"\".concat(data.constructor.name, \"(\").concat(data.length, \")\");\n\n if (showFormattedValue) {\n var _formatted = '';\n\n for (var _i = 0; _i < data.length; _i++) {\n if (_i > 0) {\n _formatted += ', ';\n }\n\n _formatted += data[_i];\n\n if (_formatted.length > MAX_PREVIEW_STRING_LENGTH) {\n // Prevent doing a lot of unnecessary iteration...\n break;\n }\n }\n\n return \"\".concat(shortName, \" [\").concat(truncateForDisplay(_formatted), \"]\");\n } else {\n return shortName;\n }\n\n case 'iterator':\n var name = data.constructor.name;\n\n if (showFormattedValue) {\n // TRICKY\n // Don't use [...spread] syntax for this purpose.\n // This project uses @babel/plugin-transform-spread in \"loose\" mode which only works with Array values.\n // Other types (e.g. typed arrays, Sets) will not spread correctly.\n var array = Array.from(data);\n var _formatted2 = '';\n\n for (var _i2 = 0; _i2 < array.length; _i2++) {\n var entryOrEntries = array[_i2];\n\n if (_i2 > 0) {\n _formatted2 += ', ';\n } // TRICKY\n // Browsers display Maps and Sets differently.\n // To mimic their behavior, detect if we've been given an entries tuple.\n // Map(2) {\"abc\" => 123, \"def\" => 123}\n // Set(2) {\"abc\", 123}\n\n\n if (src_isArray(entryOrEntries)) {\n var key = formatDataForPreview(entryOrEntries[0], true);\n var value = formatDataForPreview(entryOrEntries[1], false);\n _formatted2 += \"\".concat(key, \" => \").concat(value);\n } else {\n _formatted2 += formatDataForPreview(entryOrEntries, false);\n }\n\n if (_formatted2.length > MAX_PREVIEW_STRING_LENGTH) {\n // Prevent doing a lot of unnecessary iteration...\n break;\n }\n }\n\n return \"\".concat(name, \"(\").concat(data.size, \") {\").concat(truncateForDisplay(_formatted2), \"}\");\n } else {\n return \"\".concat(name, \"(\").concat(data.size, \")\");\n }\n\n case 'opaque_iterator':\n {\n return data[Symbol.toStringTag];\n }\n\n case 'date':\n return data.toString();\n\n case 'class_instance':\n return data.constructor.name;\n\n case 'object':\n if (showFormattedValue) {\n var keys = Array.from(getAllEnumerableKeys(data)).sort(alphaSortKeys);\n var _formatted3 = '';\n\n for (var _i3 = 0; _i3 < keys.length; _i3++) {\n var _key = keys[_i3];\n\n if (_i3 > 0) {\n _formatted3 += ', ';\n }\n\n _formatted3 += \"\".concat(_key.toString(), \": \").concat(formatDataForPreview(data[_key], false));\n\n if (_formatted3.length > MAX_PREVIEW_STRING_LENGTH) {\n // Prevent doing a lot of unnecessary iteration...\n break;\n }\n }\n\n return \"{\".concat(truncateForDisplay(_formatted3), \"}\");\n } else {\n return '{…}';\n }\n\n case 'boolean':\n case 'number':\n case 'infinity':\n case 'nan':\n case 'null':\n case 'undefined':\n return data;\n\n default:\n try {\n return truncateForDisplay(String(data));\n } catch (error) {\n return 'unserializable';\n }\n\n }\n} // Basically checking that the object only has Object in its prototype chain\n\nvar isPlainObject = function isPlainObject(object) {\n var objectPrototype = Object.getPrototypeOf(object);\n if (!objectPrototype) return true;\n var objectParentPrototype = Object.getPrototypeOf(objectPrototype);\n return !objectParentPrototype;\n};\nfunction backendToFrontendSerializedElementMapper(element) {\n var _parseElementDisplayN2 = parseElementDisplayNameFromBackend(element.displayName, element.type),\n formattedDisplayName = _parseElementDisplayN2.formattedDisplayName,\n hocDisplayNames = _parseElementDisplayN2.hocDisplayNames,\n compiledWithForget = _parseElementDisplayN2.compiledWithForget;\n\n return _objectSpread(_objectSpread({}, element), {}, {\n displayName: formattedDisplayName,\n hocDisplayNames: hocDisplayNames,\n compiledWithForget: compiledWithForget\n });\n} // Chrome normalizes urls like webpack-internals:// but new URL don't, so cannot use new URL here.\n\nfunction normalizeUrl(url) {\n return url.replace('/./', '/');\n}\nfunction getIsReloadAndProfileSupported() {\n // Notify the frontend if the backend supports the Storage API (e.g. localStorage).\n // If not, features like reload-and-profile will not work correctly and must be disabled.\n var isBackendStorageAPISupported = false;\n\n try {\n localStorage.getItem('test');\n isBackendStorageAPISupported = true;\n } catch (error) {}\n\n return isBackendStorageAPISupported && isSynchronousXHRSupported();\n} // Expected to be used only by browser extension and react-devtools-inline\n\nfunction getIfReloadedAndProfiling() {\n return sessionStorageGetItem(SESSION_STORAGE_RELOAD_AND_PROFILE_KEY) === 'true';\n}\nfunction getProfilingSettings() {\n return {\n recordChangeDescriptions: sessionStorageGetItem(SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY) === 'true',\n recordTimeline: sessionStorageGetItem(SESSION_STORAGE_RECORD_TIMELINE_KEY) === 'true'\n };\n}\nfunction onReloadAndProfile(recordChangeDescriptions, recordTimeline) {\n sessionStorageSetItem(SESSION_STORAGE_RELOAD_AND_PROFILE_KEY, 'true');\n sessionStorageSetItem(SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY, recordChangeDescriptions ? 'true' : 'false');\n sessionStorageSetItem(SESSION_STORAGE_RECORD_TIMELINE_KEY, recordTimeline ? 'true' : 'false');\n}\nfunction onReloadAndProfileFlagsReset() {\n sessionStorageRemoveItem(SESSION_STORAGE_RELOAD_AND_PROFILE_KEY);\n sessionStorageRemoveItem(SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY);\n sessionStorageRemoveItem(SESSION_STORAGE_RECORD_TIMELINE_KEY);\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/hydration.js\nfunction hydration_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction hydration_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { hydration_ownKeys(Object(source), true).forEach(function (key) { hydration_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { hydration_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction hydration_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction hydration_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { hydration_typeof = function _typeof(obj) { return typeof obj; }; } else { hydration_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return hydration_typeof(obj); }\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar meta = {\n inspectable: Symbol('inspectable'),\n inspected: Symbol('inspected'),\n name: Symbol('name'),\n preview_long: Symbol('preview_long'),\n preview_short: Symbol('preview_short'),\n readonly: Symbol('readonly'),\n size: Symbol('size'),\n type: Symbol('type'),\n unserializable: Symbol('unserializable')\n}; // Typed arrays and other complex iteratable objects (e.g. Map, Set, ImmutableJS) need special handling.\n// These objects can't be serialized without losing type information,\n// so a \"Unserializable\" type wrapper is used (with meta-data keys) to send nested values-\n// while preserving the original type and name.\n\n// This threshold determines the depth at which the bridge \"dehydrates\" nested data.\n// Dehydration means that we don't serialize the data for e.g. postMessage or stringify,\n// unless the frontend explicitly requests it (e.g. a user clicks to expand a props object).\n//\n// Reducing this threshold will improve the speed of initial component inspection,\n// but may decrease the responsiveness of expanding objects/arrays to inspect further.\nvar LEVEL_THRESHOLD = 2;\n/**\n * Generate the dehydrated metadata for complex object instances\n */\n\nfunction createDehydrated(type, inspectable, data, cleaned, path) {\n cleaned.push(path);\n var dehydrated = {\n inspectable: inspectable,\n type: type,\n preview_long: formatDataForPreview(data, true),\n preview_short: formatDataForPreview(data, false),\n name: typeof data.constructor !== 'function' || typeof data.constructor.name !== 'string' || data.constructor.name === 'Object' ? '' : data.constructor.name\n };\n\n if (type === 'array' || type === 'typed_array') {\n dehydrated.size = data.length;\n } else if (type === 'object') {\n dehydrated.size = Object.keys(data).length;\n }\n\n if (type === 'iterator' || type === 'typed_array') {\n dehydrated.readonly = true;\n }\n\n return dehydrated;\n}\n/**\n * Strip out complex data (instances, functions, and data nested > LEVEL_THRESHOLD levels deep).\n * The paths of the stripped out objects are appended to the `cleaned` list.\n * On the other side of the barrier, the cleaned list is used to \"re-hydrate\" the cleaned representation into\n * an object with symbols as attributes, so that a sanitized object can be distinguished from a normal object.\n *\n * Input: {\"some\": {\"attr\": fn()}, \"other\": AnInstance}\n * Output: {\n * \"some\": {\n * \"attr\": {\"name\": the fn.name, type: \"function\"}\n * },\n * \"other\": {\n * \"name\": \"AnInstance\",\n * \"type\": \"object\",\n * },\n * }\n * and cleaned = [[\"some\", \"attr\"], [\"other\"]]\n */\n\n\nfunction dehydrate(data, cleaned, unserializable, path, isPathAllowed) {\n var level = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n var type = getDataType(data);\n var isPathAllowedCheck;\n\n switch (type) {\n case 'html_element':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data.tagName,\n type: type\n };\n\n case 'function':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: typeof data.name === 'function' || !data.name ? 'function' : data.name,\n type: type\n };\n\n case 'string':\n isPathAllowedCheck = isPathAllowed(path);\n\n if (isPathAllowedCheck) {\n return data;\n } else {\n return data.length <= 500 ? data : data.slice(0, 500) + '...';\n }\n\n case 'bigint':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data.toString(),\n type: type\n };\n\n case 'symbol':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data.toString(),\n type: type\n };\n // React Elements aren't very inspector-friendly,\n // and often contain private fields or circular references.\n\n case 'react_element':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: getDisplayNameForReactElement(data) || 'Unknown',\n type: type\n };\n // ArrayBuffers error if you try to inspect them.\n\n case 'array_buffer':\n case 'data_view':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: type === 'data_view' ? 'DataView' : 'ArrayBuffer',\n size: data.byteLength,\n type: type\n };\n\n case 'array':\n isPathAllowedCheck = isPathAllowed(path);\n\n if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {\n return createDehydrated(type, true, data, cleaned, path);\n }\n\n var arr = [];\n\n for (var i = 0; i < data.length; i++) {\n arr[i] = dehydrateKey(data, i, cleaned, unserializable, path.concat([i]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);\n }\n\n return arr;\n\n case 'html_all_collection':\n case 'typed_array':\n case 'iterator':\n isPathAllowedCheck = isPathAllowed(path);\n\n if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {\n return createDehydrated(type, true, data, cleaned, path);\n } else {\n var unserializableValue = {\n unserializable: true,\n type: type,\n readonly: true,\n size: type === 'typed_array' ? data.length : undefined,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: typeof data.constructor !== 'function' || typeof data.constructor.name !== 'string' || data.constructor.name === 'Object' ? '' : data.constructor.name\n }; // TRICKY\n // Don't use [...spread] syntax for this purpose.\n // This project uses @babel/plugin-transform-spread in \"loose\" mode which only works with Array values.\n // Other types (e.g. typed arrays, Sets) will not spread correctly.\n\n Array.from(data).forEach(function (item, i) {\n return unserializableValue[i] = dehydrate(item, cleaned, unserializable, path.concat([i]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);\n });\n unserializable.push(path);\n return unserializableValue;\n }\n\n case 'opaque_iterator':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data[Symbol.toStringTag],\n type: type\n };\n\n case 'date':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data.toString(),\n type: type\n };\n\n case 'regexp':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data.toString(),\n type: type\n };\n\n case 'object':\n isPathAllowedCheck = isPathAllowed(path);\n\n if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {\n return createDehydrated(type, true, data, cleaned, path);\n } else {\n var object = {};\n getAllEnumerableKeys(data).forEach(function (key) {\n var name = key.toString();\n object[name] = dehydrateKey(data, key, cleaned, unserializable, path.concat([name]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);\n });\n return object;\n }\n\n case 'class_instance':\n isPathAllowedCheck = isPathAllowed(path);\n\n if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {\n return createDehydrated(type, true, data, cleaned, path);\n }\n\n var value = {\n unserializable: true,\n type: type,\n readonly: true,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: typeof data.constructor !== 'function' || typeof data.constructor.name !== 'string' ? '' : data.constructor.name\n };\n getAllEnumerableKeys(data).forEach(function (key) {\n var keyAsString = key.toString();\n value[keyAsString] = dehydrate(data[key], cleaned, unserializable, path.concat([keyAsString]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);\n });\n unserializable.push(path);\n return value;\n\n case 'infinity':\n case 'nan':\n case 'undefined':\n // Some values are lossy when sent through a WebSocket.\n // We dehydrate+rehydrate them to preserve their type.\n cleaned.push(path);\n return {\n type: type\n };\n\n default:\n return data;\n }\n}\n\nfunction dehydrateKey(parent, key, cleaned, unserializable, path, isPathAllowed) {\n var level = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 0;\n\n try {\n return dehydrate(parent[key], cleaned, unserializable, path, isPathAllowed, level);\n } catch (error) {\n var preview = '';\n\n if (hydration_typeof(error) === 'object' && error !== null && typeof error.stack === 'string') {\n preview = error.stack;\n } else if (typeof error === 'string') {\n preview = error;\n }\n\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: '[Exception]',\n preview_long: preview ? '[Exception: ' + preview + ']' : '[Exception]',\n name: preview,\n type: 'unknown'\n };\n }\n}\n\nfunction fillInPath(object, data, path, value) {\n var target = getInObject(object, path);\n\n if (target != null) {\n if (!target[meta.unserializable]) {\n delete target[meta.inspectable];\n delete target[meta.inspected];\n delete target[meta.name];\n delete target[meta.preview_long];\n delete target[meta.preview_short];\n delete target[meta.readonly];\n delete target[meta.size];\n delete target[meta.type];\n }\n }\n\n if (value !== null && data.unserializable.length > 0) {\n var unserializablePath = data.unserializable[0];\n var isMatch = unserializablePath.length === path.length;\n\n for (var i = 0; i < path.length; i++) {\n if (path[i] !== unserializablePath[i]) {\n isMatch = false;\n break;\n }\n }\n\n if (isMatch) {\n upgradeUnserializable(value, value);\n }\n }\n\n setInObject(object, path, value);\n}\nfunction hydrate(object, cleaned, unserializable) {\n cleaned.forEach(function (path) {\n var length = path.length;\n var last = path[length - 1];\n var parent = getInObject(object, path.slice(0, length - 1));\n\n if (!parent || !parent.hasOwnProperty(last)) {\n return;\n }\n\n var value = parent[last];\n\n if (!value) {\n return;\n } else if (value.type === 'infinity') {\n parent[last] = Infinity;\n } else if (value.type === 'nan') {\n parent[last] = NaN;\n } else if (value.type === 'undefined') {\n parent[last] = undefined;\n } else {\n // Replace the string keys with Symbols so they're non-enumerable.\n var replaced = {};\n replaced[meta.inspectable] = !!value.inspectable;\n replaced[meta.inspected] = false;\n replaced[meta.name] = value.name;\n replaced[meta.preview_long] = value.preview_long;\n replaced[meta.preview_short] = value.preview_short;\n replaced[meta.size] = value.size;\n replaced[meta.readonly] = !!value.readonly;\n replaced[meta.type] = value.type;\n parent[last] = replaced;\n }\n });\n unserializable.forEach(function (path) {\n var length = path.length;\n var last = path[length - 1];\n var parent = getInObject(object, path.slice(0, length - 1));\n\n if (!parent || !parent.hasOwnProperty(last)) {\n return;\n }\n\n var node = parent[last];\n\n var replacement = hydration_objectSpread({}, node);\n\n upgradeUnserializable(replacement, node);\n parent[last] = replacement;\n });\n return object;\n}\n\nfunction upgradeUnserializable(destination, source) {\n var _Object$definePropert;\n\n Object.defineProperties(destination, (_Object$definePropert = {}, hydration_defineProperty(_Object$definePropert, meta.inspected, {\n configurable: true,\n enumerable: false,\n value: !!source.inspected\n }), hydration_defineProperty(_Object$definePropert, meta.name, {\n configurable: true,\n enumerable: false,\n value: source.name\n }), hydration_defineProperty(_Object$definePropert, meta.preview_long, {\n configurable: true,\n enumerable: false,\n value: source.preview_long\n }), hydration_defineProperty(_Object$definePropert, meta.preview_short, {\n configurable: true,\n enumerable: false,\n value: source.preview_short\n }), hydration_defineProperty(_Object$definePropert, meta.size, {\n configurable: true,\n enumerable: false,\n value: source.size\n }), hydration_defineProperty(_Object$definePropert, meta.readonly, {\n configurable: true,\n enumerable: false,\n value: !!source.readonly\n }), hydration_defineProperty(_Object$definePropert, meta.type, {\n configurable: true,\n enumerable: false,\n value: source.type\n }), hydration_defineProperty(_Object$definePropert, meta.unserializable, {\n configurable: true,\n enumerable: false,\n value: !!source.unserializable\n }), _Object$definePropert));\n delete destination.inspected;\n delete destination.name;\n delete destination.preview_long;\n delete destination.preview_short;\n delete destination.size;\n delete destination.readonly;\n delete destination.type;\n delete destination.unserializable;\n}\n;// CONCATENATED MODULE: ../shared/isArray.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar isArrayImpl = Array.isArray;\n\nfunction isArray_isArray(a) {\n return isArrayImpl(a);\n}\n\n/* harmony default export */ const shared_isArray = (isArray_isArray);\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/utils/index.js\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = backend_utils_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction utils_slicedToArray(arr, i) { return utils_arrayWithHoles(arr) || utils_iterableToArrayLimit(arr, i) || backend_utils_unsupportedIterableToArray(arr, i) || utils_nonIterableRest(); }\n\nfunction utils_nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction backend_utils_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return backend_utils_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return backend_utils_arrayLikeToArray(o, minLen); }\n\nfunction backend_utils_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction utils_iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction utils_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction backend_utils_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { backend_utils_typeof = function _typeof(obj) { return typeof obj; }; } else { backend_utils_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return backend_utils_typeof(obj); }\n\nfunction utils_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction utils_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { utils_ownKeys(Object(source), true).forEach(function (key) { backend_utils_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { utils_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction backend_utils_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\n\n\n // TODO: update this to the first React version that has a corresponding DevTools backend\n\nvar FIRST_DEVTOOLS_BACKEND_LOCKSTEP_VER = '999.9.9';\nfunction hasAssignedBackend(version) {\n if (version == null || version === '') {\n return false;\n }\n\n return gte(version, FIRST_DEVTOOLS_BACKEND_LOCKSTEP_VER);\n}\nfunction cleanForBridge(data, isPathAllowed) {\n var path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n if (data !== null) {\n var cleanedPaths = [];\n var unserializablePaths = [];\n var cleanedData = dehydrate(data, cleanedPaths, unserializablePaths, path, isPathAllowed);\n return {\n data: cleanedData,\n cleaned: cleanedPaths,\n unserializable: unserializablePaths\n };\n } else {\n return null;\n }\n}\nfunction copyWithDelete(obj, path) {\n var index = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var key = path[index];\n var updated = shared_isArray(obj) ? obj.slice() : utils_objectSpread({}, obj);\n\n if (index + 1 === path.length) {\n if (shared_isArray(updated)) {\n updated.splice(key, 1);\n } else {\n delete updated[key];\n }\n } else {\n // $FlowFixMe[incompatible-use] number or string is fine here\n updated[key] = copyWithDelete(obj[key], path, index + 1);\n }\n\n return updated;\n} // This function expects paths to be the same except for the final value.\n// e.g. ['path', 'to', 'foo'] and ['path', 'to', 'bar']\n\nfunction copyWithRename(obj, oldPath, newPath) {\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var oldKey = oldPath[index];\n var updated = shared_isArray(obj) ? obj.slice() : utils_objectSpread({}, obj);\n\n if (index + 1 === oldPath.length) {\n var newKey = newPath[index]; // $FlowFixMe[incompatible-use] number or string is fine here\n\n updated[newKey] = updated[oldKey];\n\n if (shared_isArray(updated)) {\n updated.splice(oldKey, 1);\n } else {\n delete updated[oldKey];\n }\n } else {\n // $FlowFixMe[incompatible-use] number or string is fine here\n updated[oldKey] = copyWithRename(obj[oldKey], oldPath, newPath, index + 1);\n }\n\n return updated;\n}\nfunction copyWithSet(obj, path, value) {\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n\n if (index >= path.length) {\n return value;\n }\n\n var key = path[index];\n var updated = shared_isArray(obj) ? obj.slice() : utils_objectSpread({}, obj); // $FlowFixMe[incompatible-use] number or string is fine here\n\n updated[key] = copyWithSet(obj[key], path, value, index + 1);\n return updated;\n}\nfunction getEffectDurations(root) {\n // Profiling durations are only available for certain builds.\n // If available, they'll be stored on the HostRoot.\n var effectDuration = null;\n var passiveEffectDuration = null;\n var hostRoot = root.current;\n\n if (hostRoot != null) {\n var stateNode = hostRoot.stateNode;\n\n if (stateNode != null) {\n effectDuration = stateNode.effectDuration != null ? stateNode.effectDuration : null;\n passiveEffectDuration = stateNode.passiveEffectDuration != null ? stateNode.passiveEffectDuration : null;\n }\n }\n\n return {\n effectDuration: effectDuration,\n passiveEffectDuration: passiveEffectDuration\n };\n}\nfunction serializeToString(data) {\n if (data === undefined) {\n return 'undefined';\n }\n\n if (typeof data === 'function') {\n return data.toString();\n }\n\n var cache = new Set(); // Use a custom replacer function to protect against circular references.\n\n return JSON.stringify(data, function (key, value) {\n if (backend_utils_typeof(value) === 'object' && value !== null) {\n if (cache.has(value)) {\n return;\n }\n\n cache.add(value);\n }\n\n if (typeof value === 'bigint') {\n return value.toString() + 'n';\n }\n\n return value;\n }, 2);\n}\n\nfunction safeToString(val) {\n try {\n return String(val);\n } catch (err) {\n if (backend_utils_typeof(val) === 'object') {\n // An object with no prototype and no `[Symbol.toPrimitive]()`, `toString()`, and `valueOf()` methods would throw.\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#string_coercion\n return '[object Object]';\n }\n\n throw err;\n }\n} // based on https://github.com/tmpfs/format-util/blob/0e62d430efb0a1c51448709abd3e2406c14d8401/format.js#L1\n// based on https://developer.mozilla.org/en-US/docs/Web/API/console#Using_string_substitutions\n// Implements s, d, i and f placeholders\n\n\nfunction formatConsoleArgumentsToSingleString(maybeMessage) {\n for (var _len = arguments.length, inputArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n inputArgs[_key - 1] = arguments[_key];\n }\n\n var args = inputArgs.slice();\n var formatted = safeToString(maybeMessage); // If the first argument is a string, check for substitutions.\n\n if (typeof maybeMessage === 'string') {\n if (args.length) {\n var REGEXP = /(%?)(%([jds]))/g; // $FlowFixMe[incompatible-call]\n\n formatted = formatted.replace(REGEXP, function (match, escaped, ptn, flag) {\n var arg = args.shift();\n\n switch (flag) {\n case 's':\n // $FlowFixMe[unsafe-addition]\n arg += '';\n break;\n\n case 'd':\n case 'i':\n arg = parseInt(arg, 10).toString();\n break;\n\n case 'f':\n arg = parseFloat(arg).toString();\n break;\n }\n\n if (!escaped) {\n return arg;\n }\n\n args.unshift(arg);\n return match;\n });\n }\n } // Arguments that remain after formatting.\n\n\n if (args.length) {\n for (var i = 0; i < args.length; i++) {\n formatted += ' ' + safeToString(args[i]);\n }\n } // Update escaped %% values.\n\n\n formatted = formatted.replace(/%{2,2}/g, '%');\n return String(formatted);\n}\nfunction isSynchronousXHRSupported() {\n return !!(window.document && window.document.featurePolicy && window.document.featurePolicy.allowsFeature('sync-xhr'));\n}\nfunction gt() {\n var a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return compareVersions(a, b) === 1;\n}\nfunction gte() {\n var a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return compareVersions(a, b) > -1;\n}\nvar isReactNativeEnvironment = function isReactNativeEnvironment() {\n // We've been relying on this for such a long time\n // We should probably define the client for DevTools on the backend side and share it with the frontend\n return window.document == null;\n};\n\nfunction extractLocation(url) {\n if (url.indexOf(':') === -1) {\n return null;\n } // remove any parentheses from start and end\n\n\n var withoutParentheses = url.replace(/^\\(+/, '').replace(/\\)+$/, '');\n var locationParts = /(at )?(.+?)(?::(\\d+))?(?::(\\d+))?$/.exec(withoutParentheses);\n\n if (locationParts == null) {\n return null;\n }\n\n var _locationParts = utils_slicedToArray(locationParts, 5),\n sourceURL = _locationParts[2],\n line = _locationParts[3],\n column = _locationParts[4];\n\n return {\n sourceURL: sourceURL,\n line: line,\n column: column\n };\n}\n\nvar CHROME_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\n\nfunction parseSourceFromChromeStack(stack) {\n var frames = stack.split('\\n'); // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n\n var _iterator = _createForOfIteratorHelper(frames),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var frame = _step.value;\n var sanitizedFrame = frame.trim();\n var locationInParenthesesMatch = sanitizedFrame.match(/ (\\(.+\\)$)/);\n var possibleLocation = locationInParenthesesMatch ? locationInParenthesesMatch[1] : sanitizedFrame;\n var location = extractLocation(possibleLocation); // Continue the search until at least sourceURL is found\n\n if (location == null) {\n continue;\n }\n\n var sourceURL = location.sourceURL,\n _location$line = location.line,\n line = _location$line === void 0 ? '1' : _location$line,\n _location$column = location.column,\n column = _location$column === void 0 ? '1' : _location$column;\n return {\n sourceURL: sourceURL,\n line: parseInt(line, 10),\n column: parseInt(column, 10)\n };\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return null;\n}\n\nfunction parseSourceFromFirefoxStack(stack) {\n var frames = stack.split('\\n'); // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n\n var _iterator2 = _createForOfIteratorHelper(frames),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var frame = _step2.value;\n var sanitizedFrame = frame.trim();\n var frameWithoutFunctionName = sanitizedFrame.replace(/((.*\".+\"[^@]*)?[^@]*)(?:@)/, '');\n var location = extractLocation(frameWithoutFunctionName); // Continue the search until at least sourceURL is found\n\n if (location == null) {\n continue;\n }\n\n var sourceURL = location.sourceURL,\n _location$line2 = location.line,\n line = _location$line2 === void 0 ? '1' : _location$line2,\n _location$column2 = location.column,\n column = _location$column2 === void 0 ? '1' : _location$column2;\n return {\n sourceURL: sourceURL,\n line: parseInt(line, 10),\n column: parseInt(column, 10)\n };\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return null;\n}\n\nfunction parseSourceFromComponentStack(componentStack) {\n if (componentStack.match(CHROME_STACK_REGEXP)) {\n return parseSourceFromChromeStack(componentStack);\n }\n\n return parseSourceFromFirefoxStack(componentStack);\n} // 0.123456789 => 0.123\n// Expects high-resolution timestamp in milliseconds, like from performance.now()\n// Mainly used for optimizing the size of serialized profiling payload\n\nfunction formatDurationToMicrosecondsGranularity(duration) {\n return Math.round(duration * 1000) / 1000;\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/views/utils.js\nfunction views_utils_slicedToArray(arr, i) { return views_utils_arrayWithHoles(arr) || views_utils_iterableToArrayLimit(arr, i) || views_utils_unsupportedIterableToArray(arr, i) || views_utils_nonIterableRest(); }\n\nfunction views_utils_nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction views_utils_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return views_utils_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return views_utils_arrayLikeToArray(o, minLen); }\n\nfunction views_utils_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction views_utils_iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction views_utils_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n// Get the window object for the document that a node belongs to,\n// or return null if it cannot be found (node not attached to DOM,\n// etc).\nfunction getOwnerWindow(node) {\n if (!node.ownerDocument) {\n return null;\n }\n\n return node.ownerDocument.defaultView;\n} // Get the iframe containing a node, or return null if it cannot\n// be found (node not within iframe, etc).\n\nfunction getOwnerIframe(node) {\n var nodeWindow = getOwnerWindow(node);\n\n if (nodeWindow) {\n return nodeWindow.frameElement;\n }\n\n return null;\n} // Get a bounding client rect for a node, with an\n// offset added to compensate for its border.\n\nfunction getBoundingClientRectWithBorderOffset(node) {\n var dimensions = getElementDimensions(node);\n return mergeRectOffsets([node.getBoundingClientRect(), {\n top: dimensions.borderTop,\n left: dimensions.borderLeft,\n bottom: dimensions.borderBottom,\n right: dimensions.borderRight,\n // This width and height won't get used by mergeRectOffsets (since this\n // is not the first rect in the array), but we set them so that this\n // object type checks as a ClientRect.\n width: 0,\n height: 0\n }]);\n} // Add together the top, left, bottom, and right properties of\n// each ClientRect, but keep the width and height of the first one.\n\nfunction mergeRectOffsets(rects) {\n return rects.reduce(function (previousRect, rect) {\n if (previousRect == null) {\n return rect;\n }\n\n return {\n top: previousRect.top + rect.top,\n left: previousRect.left + rect.left,\n width: previousRect.width,\n height: previousRect.height,\n bottom: previousRect.bottom + rect.bottom,\n right: previousRect.right + rect.right\n };\n });\n} // Calculate a boundingClientRect for a node relative to boundaryWindow,\n// taking into account any offsets caused by intermediate iframes.\n\nfunction getNestedBoundingClientRect(node, boundaryWindow) {\n var ownerIframe = getOwnerIframe(node);\n\n if (ownerIframe && ownerIframe !== boundaryWindow) {\n var rects = [node.getBoundingClientRect()];\n var currentIframe = ownerIframe;\n var onlyOneMore = false;\n\n while (currentIframe) {\n var rect = getBoundingClientRectWithBorderOffset(currentIframe);\n rects.push(rect);\n currentIframe = getOwnerIframe(currentIframe);\n\n if (onlyOneMore) {\n break;\n } // We don't want to calculate iframe offsets upwards beyond\n // the iframe containing the boundaryWindow, but we\n // need to calculate the offset relative to the boundaryWindow.\n\n\n if (currentIframe && getOwnerWindow(currentIframe) === boundaryWindow) {\n onlyOneMore = true;\n }\n }\n\n return mergeRectOffsets(rects);\n } else {\n return node.getBoundingClientRect();\n }\n}\nfunction getElementDimensions(domElement) {\n var calculatedStyle = window.getComputedStyle(domElement);\n return {\n borderLeft: parseInt(calculatedStyle.borderLeftWidth, 10),\n borderRight: parseInt(calculatedStyle.borderRightWidth, 10),\n borderTop: parseInt(calculatedStyle.borderTopWidth, 10),\n borderBottom: parseInt(calculatedStyle.borderBottomWidth, 10),\n marginLeft: parseInt(calculatedStyle.marginLeft, 10),\n marginRight: parseInt(calculatedStyle.marginRight, 10),\n marginTop: parseInt(calculatedStyle.marginTop, 10),\n marginBottom: parseInt(calculatedStyle.marginBottom, 10),\n paddingLeft: parseInt(calculatedStyle.paddingLeft, 10),\n paddingRight: parseInt(calculatedStyle.paddingRight, 10),\n paddingTop: parseInt(calculatedStyle.paddingTop, 10),\n paddingBottom: parseInt(calculatedStyle.paddingBottom, 10)\n };\n}\nfunction extractHOCNames(displayName) {\n if (!displayName) return {\n baseComponentName: '',\n hocNames: []\n };\n var hocRegex = /([A-Z][a-zA-Z0-9]*?)\\((.*)\\)/g;\n var hocNames = [];\n var baseComponentName = displayName;\n var match;\n\n while ((match = hocRegex.exec(baseComponentName)) != null) {\n if (Array.isArray(match)) {\n var _match = match,\n _match2 = views_utils_slicedToArray(_match, 3),\n hocName = _match2[1],\n inner = _match2[2];\n\n hocNames.push(hocName);\n baseComponentName = inner;\n }\n }\n\n return {\n baseComponentName: baseComponentName,\n hocNames: hocNames\n };\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/views/Highlighter/Overlay.js\nfunction Overlay_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction Overlay_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction Overlay_createClass(Constructor, protoProps, staticProps) { if (protoProps) Overlay_defineProperties(Constructor.prototype, protoProps); if (staticProps) Overlay_defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar Overlay_assign = Object.assign; // Note that the Overlay components are not affected by the active Theme,\n// because they highlight elements in the main Chrome window (outside of devtools).\n// The colors below were chosen to roughly match those used by Chrome devtools.\n\nvar OverlayRect = /*#__PURE__*/function () {\n function OverlayRect(doc, container) {\n Overlay_classCallCheck(this, OverlayRect);\n\n this.node = doc.createElement('div');\n this.border = doc.createElement('div');\n this.padding = doc.createElement('div');\n this.content = doc.createElement('div');\n this.border.style.borderColor = overlayStyles.border;\n this.padding.style.borderColor = overlayStyles.padding;\n this.content.style.backgroundColor = overlayStyles.background;\n Overlay_assign(this.node.style, {\n borderColor: overlayStyles.margin,\n pointerEvents: 'none',\n position: 'fixed'\n });\n this.node.style.zIndex = '10000000';\n this.node.appendChild(this.border);\n this.border.appendChild(this.padding);\n this.padding.appendChild(this.content);\n container.appendChild(this.node);\n }\n\n return Overlay_createClass(OverlayRect, [{\n key: \"remove\",\n value: function remove() {\n if (this.node.parentNode) {\n this.node.parentNode.removeChild(this.node);\n }\n }\n }, {\n key: \"update\",\n value: function update(box, dims) {\n boxWrap(dims, 'margin', this.node);\n boxWrap(dims, 'border', this.border);\n boxWrap(dims, 'padding', this.padding);\n Overlay_assign(this.content.style, {\n height: box.height - dims.borderTop - dims.borderBottom - dims.paddingTop - dims.paddingBottom + 'px',\n width: box.width - dims.borderLeft - dims.borderRight - dims.paddingLeft - dims.paddingRight + 'px'\n });\n Overlay_assign(this.node.style, {\n top: box.top - dims.marginTop + 'px',\n left: box.left - dims.marginLeft + 'px'\n });\n }\n }]);\n}();\n\nvar OverlayTip = /*#__PURE__*/function () {\n function OverlayTip(doc, container) {\n Overlay_classCallCheck(this, OverlayTip);\n\n this.tip = doc.createElement('div');\n Overlay_assign(this.tip.style, {\n display: 'flex',\n flexFlow: 'row nowrap',\n backgroundColor: '#333740',\n borderRadius: '2px',\n fontFamily: '\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, Courier, monospace',\n fontWeight: 'bold',\n padding: '3px 5px',\n pointerEvents: 'none',\n position: 'fixed',\n fontSize: '12px',\n whiteSpace: 'nowrap'\n });\n this.nameSpan = doc.createElement('span');\n this.tip.appendChild(this.nameSpan);\n Overlay_assign(this.nameSpan.style, {\n color: '#ee78e6',\n borderRight: '1px solid #aaaaaa',\n paddingRight: '0.5rem',\n marginRight: '0.5rem'\n });\n this.dimSpan = doc.createElement('span');\n this.tip.appendChild(this.dimSpan);\n Overlay_assign(this.dimSpan.style, {\n color: '#d7d7d7'\n });\n this.tip.style.zIndex = '10000000';\n container.appendChild(this.tip);\n }\n\n return Overlay_createClass(OverlayTip, [{\n key: \"remove\",\n value: function remove() {\n if (this.tip.parentNode) {\n this.tip.parentNode.removeChild(this.tip);\n }\n }\n }, {\n key: \"updateText\",\n value: function updateText(name, width, height) {\n this.nameSpan.textContent = name;\n this.dimSpan.textContent = Math.round(width) + 'px × ' + Math.round(height) + 'px';\n }\n }, {\n key: \"updatePosition\",\n value: function updatePosition(dims, bounds) {\n var tipRect = this.tip.getBoundingClientRect();\n var tipPos = findTipPos(dims, bounds, {\n width: tipRect.width,\n height: tipRect.height\n });\n Overlay_assign(this.tip.style, tipPos.style);\n }\n }]);\n}();\n\nvar Overlay = /*#__PURE__*/function () {\n function Overlay(agent) {\n Overlay_classCallCheck(this, Overlay);\n\n // Find the root window, because overlays are positioned relative to it.\n var currentWindow = window.__REACT_DEVTOOLS_TARGET_WINDOW__ || window;\n this.window = currentWindow; // When opened in shells/dev, the tooltip should be bound by the app iframe, not by the topmost window.\n\n var tipBoundsWindow = window.__REACT_DEVTOOLS_TARGET_WINDOW__ || window;\n this.tipBoundsWindow = tipBoundsWindow;\n var doc = currentWindow.document;\n this.container = doc.createElement('div');\n this.container.style.zIndex = '10000000';\n this.tip = new OverlayTip(doc, this.container);\n this.rects = [];\n this.agent = agent;\n doc.body.appendChild(this.container);\n }\n\n return Overlay_createClass(Overlay, [{\n key: \"remove\",\n value: function remove() {\n this.tip.remove();\n this.rects.forEach(function (rect) {\n rect.remove();\n });\n this.rects.length = 0;\n\n if (this.container.parentNode) {\n this.container.parentNode.removeChild(this.container);\n }\n }\n }, {\n key: \"inspect\",\n value: function inspect(nodes, name) {\n var _this = this;\n\n // We can't get the size of text nodes or comment nodes. React as of v15\n // heavily uses comment nodes to delimit text.\n var elements = nodes.filter(function (node) {\n return node.nodeType === Node.ELEMENT_NODE;\n });\n\n while (this.rects.length > elements.length) {\n var rect = this.rects.pop(); // $FlowFixMe[incompatible-use]\n\n rect.remove();\n }\n\n if (elements.length === 0) {\n return;\n }\n\n while (this.rects.length < elements.length) {\n this.rects.push(new OverlayRect(this.window.document, this.container));\n }\n\n var outerBox = {\n top: Number.POSITIVE_INFINITY,\n right: Number.NEGATIVE_INFINITY,\n bottom: Number.NEGATIVE_INFINITY,\n left: Number.POSITIVE_INFINITY\n };\n elements.forEach(function (element, index) {\n var box = getNestedBoundingClientRect(element, _this.window);\n var dims = getElementDimensions(element);\n outerBox.top = Math.min(outerBox.top, box.top - dims.marginTop);\n outerBox.right = Math.max(outerBox.right, box.left + box.width + dims.marginRight);\n outerBox.bottom = Math.max(outerBox.bottom, box.top + box.height + dims.marginBottom);\n outerBox.left = Math.min(outerBox.left, box.left - dims.marginLeft);\n var rect = _this.rects[index];\n rect.update(box, dims);\n });\n\n if (!name) {\n name = elements[0].nodeName.toLowerCase();\n var node = elements[0];\n var ownerName = this.agent.getComponentNameForHostInstance(node);\n\n if (ownerName) {\n name += ' (in ' + ownerName + ')';\n }\n }\n\n this.tip.updateText(name, outerBox.right - outerBox.left, outerBox.bottom - outerBox.top);\n var tipBounds = getNestedBoundingClientRect(this.tipBoundsWindow.document.documentElement, this.window);\n this.tip.updatePosition({\n top: outerBox.top,\n left: outerBox.left,\n height: outerBox.bottom - outerBox.top,\n width: outerBox.right - outerBox.left\n }, {\n top: tipBounds.top + this.tipBoundsWindow.scrollY,\n left: tipBounds.left + this.tipBoundsWindow.scrollX,\n height: this.tipBoundsWindow.innerHeight,\n width: this.tipBoundsWindow.innerWidth\n });\n }\n }]);\n}();\n\n\n\nfunction findTipPos(dims, bounds, tipSize) {\n var tipHeight = Math.max(tipSize.height, 20);\n var tipWidth = Math.max(tipSize.width, 60);\n var margin = 5;\n var top;\n\n if (dims.top + dims.height + tipHeight <= bounds.top + bounds.height) {\n if (dims.top + dims.height < bounds.top + 0) {\n top = bounds.top + margin;\n } else {\n top = dims.top + dims.height + margin;\n }\n } else if (dims.top - tipHeight <= bounds.top + bounds.height) {\n if (dims.top - tipHeight - margin < bounds.top + margin) {\n top = bounds.top + margin;\n } else {\n top = dims.top - tipHeight - margin;\n }\n } else {\n top = bounds.top + bounds.height - tipHeight - margin;\n }\n\n var left = dims.left + margin;\n\n if (dims.left < bounds.left) {\n left = bounds.left + margin;\n }\n\n if (dims.left + tipWidth > bounds.left + bounds.width) {\n left = bounds.left + bounds.width - tipWidth - margin;\n }\n\n top += 'px';\n left += 'px';\n return {\n style: {\n top: top,\n left: left\n }\n };\n}\n\nfunction boxWrap(dims, what, node) {\n Overlay_assign(node.style, {\n borderTopWidth: dims[what + 'Top'] + 'px',\n borderLeftWidth: dims[what + 'Left'] + 'px',\n borderRightWidth: dims[what + 'Right'] + 'px',\n borderBottomWidth: dims[what + 'Bottom'] + 'px',\n borderStyle: 'solid'\n });\n}\n\nvar overlayStyles = {\n background: 'rgba(120, 170, 210, 0.7)',\n padding: 'rgba(77, 200, 0, 0.3)',\n margin: 'rgba(255, 155, 0, 0.3)',\n border: 'rgba(255, 200, 50, 0.3)'\n};\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/views/Highlighter/Highlighter.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\nvar SHOW_DURATION = 2000;\nvar timeoutID = null;\nvar overlay = null;\n\nfunction hideOverlayNative(agent) {\n agent.emit('hideNativeHighlight');\n}\n\nfunction hideOverlayWeb() {\n timeoutID = null;\n\n if (overlay !== null) {\n overlay.remove();\n overlay = null;\n }\n}\n\nfunction hideOverlay(agent) {\n return isReactNativeEnvironment() ? hideOverlayNative(agent) : hideOverlayWeb();\n}\n\nfunction showOverlayNative(elements, agent) {\n agent.emit('showNativeHighlight', elements);\n}\n\nfunction showOverlayWeb(elements, componentName, agent, hideAfterTimeout) {\n if (timeoutID !== null) {\n clearTimeout(timeoutID);\n }\n\n if (overlay === null) {\n overlay = new Overlay(agent);\n }\n\n overlay.inspect(elements, componentName);\n\n if (hideAfterTimeout) {\n timeoutID = setTimeout(function () {\n return hideOverlay(agent);\n }, SHOW_DURATION);\n }\n}\n\nfunction showOverlay(elements, componentName, agent, hideAfterTimeout) {\n return isReactNativeEnvironment() ? showOverlayNative(elements, agent) : showOverlayWeb(elements, componentName, agent, hideAfterTimeout);\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/views/Highlighter/index.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\n// This plug-in provides in-page highlighting of the selected element.\n// It is used by the browser extension and the standalone DevTools shell (when connected to a browser).\n// It is not currently the mechanism used to highlight React Native views.\n// That is done by the React Native Inspector component.\nvar iframesListeningTo = new Set();\nfunction setupHighlighter(bridge, agent) {\n bridge.addListener('clearHostInstanceHighlight', clearHostInstanceHighlight);\n bridge.addListener('highlightHostInstance', highlightHostInstance);\n bridge.addListener('shutdown', stopInspectingHost);\n bridge.addListener('startInspectingHost', startInspectingHost);\n bridge.addListener('stopInspectingHost', stopInspectingHost);\n\n function startInspectingHost() {\n registerListenersOnWindow(window);\n }\n\n function registerListenersOnWindow(window) {\n // This plug-in may run in non-DOM environments (e.g. React Native).\n if (window && typeof window.addEventListener === 'function') {\n window.addEventListener('click', onClick, true);\n window.addEventListener('mousedown', onMouseEvent, true);\n window.addEventListener('mouseover', onMouseEvent, true);\n window.addEventListener('mouseup', onMouseEvent, true);\n window.addEventListener('pointerdown', onPointerDown, true);\n window.addEventListener('pointermove', onPointerMove, true);\n window.addEventListener('pointerup', onPointerUp, true);\n } else {\n agent.emit('startInspectingNative');\n }\n }\n\n function stopInspectingHost() {\n hideOverlay(agent);\n removeListenersOnWindow(window);\n iframesListeningTo.forEach(function (frame) {\n try {\n removeListenersOnWindow(frame.contentWindow);\n } catch (error) {// This can error when the iframe is on a cross-origin.\n }\n });\n iframesListeningTo = new Set();\n }\n\n function removeListenersOnWindow(window) {\n // This plug-in may run in non-DOM environments (e.g. React Native).\n if (window && typeof window.removeEventListener === 'function') {\n window.removeEventListener('click', onClick, true);\n window.removeEventListener('mousedown', onMouseEvent, true);\n window.removeEventListener('mouseover', onMouseEvent, true);\n window.removeEventListener('mouseup', onMouseEvent, true);\n window.removeEventListener('pointerdown', onPointerDown, true);\n window.removeEventListener('pointermove', onPointerMove, true);\n window.removeEventListener('pointerup', onPointerUp, true);\n } else {\n agent.emit('stopInspectingNative');\n }\n }\n\n function clearHostInstanceHighlight() {\n hideOverlay(agent);\n }\n\n function highlightHostInstance(_ref) {\n var displayName = _ref.displayName,\n hideAfterTimeout = _ref.hideAfterTimeout,\n id = _ref.id,\n openBuiltinElementsPanel = _ref.openBuiltinElementsPanel,\n rendererID = _ref.rendererID,\n scrollIntoView = _ref.scrollIntoView;\n var renderer = agent.rendererInterfaces[rendererID];\n\n if (renderer == null) {\n console.warn(\"Invalid renderer id \\\"\".concat(rendererID, \"\\\" for element \\\"\").concat(id, \"\\\"\"));\n hideOverlay(agent);\n return;\n } // In some cases fiber may already be unmounted\n\n\n if (!renderer.hasElementWithId(id)) {\n hideOverlay(agent);\n return;\n }\n\n var nodes = renderer.findHostInstancesForElementID(id);\n\n if (nodes != null && nodes[0] != null) {\n var node = nodes[0]; // $FlowFixMe[method-unbinding]\n\n if (scrollIntoView && typeof node.scrollIntoView === 'function') {\n // If the node isn't visible show it before highlighting it.\n // We may want to reconsider this; it might be a little disruptive.\n node.scrollIntoView({\n block: 'nearest',\n inline: 'nearest'\n });\n }\n\n showOverlay(nodes, displayName, agent, hideAfterTimeout);\n\n if (openBuiltinElementsPanel) {\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__.$0 = node;\n bridge.send('syncSelectionToBuiltinElementsPanel');\n }\n } else {\n hideOverlay(agent);\n }\n }\n\n function onClick(event) {\n event.preventDefault();\n event.stopPropagation();\n stopInspectingHost();\n bridge.send('stopInspectingHost', true);\n }\n\n function onMouseEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n function onPointerDown(event) {\n event.preventDefault();\n event.stopPropagation();\n selectElementForNode(getEventTarget(event));\n }\n\n var lastHoveredNode = null;\n\n function onPointerMove(event) {\n event.preventDefault();\n event.stopPropagation();\n var target = getEventTarget(event);\n if (lastHoveredNode === target) return;\n lastHoveredNode = target;\n\n if (target.tagName === 'IFRAME') {\n var iframe = target;\n\n try {\n if (!iframesListeningTo.has(iframe)) {\n var _window = iframe.contentWindow;\n registerListenersOnWindow(_window);\n iframesListeningTo.add(iframe);\n }\n } catch (error) {// This can error when the iframe is on a cross-origin.\n }\n } // Don't pass the name explicitly.\n // It will be inferred from DOM tag and Fiber owner.\n\n\n showOverlay([target], null, agent, false);\n selectElementForNode(target);\n }\n\n function onPointerUp(event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n var selectElementForNode = function selectElementForNode(node) {\n var id = agent.getIDForHostInstance(node);\n\n if (id !== null) {\n bridge.send('selectElement', id);\n }\n };\n\n function getEventTarget(event) {\n if (event.composed) {\n return event.composedPath()[0];\n }\n\n return event.target;\n }\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/views/TraceUpdates/canvas.js\nfunction canvas_toConsumableArray(arr) { return canvas_arrayWithoutHoles(arr) || canvas_iterableToArray(arr) || canvas_unsupportedIterableToArray(arr) || canvas_nonIterableSpread(); }\n\nfunction canvas_nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction canvas_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return canvas_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return canvas_arrayLikeToArray(o, minLen); }\n\nfunction canvas_iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction canvas_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return canvas_arrayLikeToArray(arr); }\n\nfunction canvas_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n // Note these colors are in sync with DevTools Profiler chart colors.\n\nvar COLORS = ['#37afa9', '#63b19e', '#80b393', '#97b488', '#abb67d', '#beb771', '#cfb965', '#dfba57', '#efbb49', '#febc38'];\nvar canvas = null;\n\nfunction drawNative(nodeToData, agent) {\n var nodesToDraw = [];\n iterateNodes(nodeToData, function (_ref) {\n var color = _ref.color,\n node = _ref.node;\n nodesToDraw.push({\n node: node,\n color: color\n });\n });\n agent.emit('drawTraceUpdates', nodesToDraw);\n var mergedNodes = groupAndSortNodes(nodeToData);\n agent.emit('drawGroupedTraceUpdatesWithNames', mergedNodes);\n}\n\nfunction drawWeb(nodeToData) {\n if (canvas === null) {\n initialize();\n }\n\n var dpr = window.devicePixelRatio || 1;\n var canvasFlow = canvas;\n canvasFlow.width = window.innerWidth * dpr;\n canvasFlow.height = window.innerHeight * dpr;\n canvasFlow.style.width = \"\".concat(window.innerWidth, \"px\");\n canvasFlow.style.height = \"\".concat(window.innerHeight, \"px\");\n var context = canvasFlow.getContext('2d');\n context.scale(dpr, dpr);\n context.clearRect(0, 0, canvasFlow.width / dpr, canvasFlow.height / dpr);\n var mergedNodes = groupAndSortNodes(nodeToData);\n mergedNodes.forEach(function (group) {\n drawGroupBorders(context, group);\n drawGroupLabel(context, group);\n });\n}\n\nfunction groupAndSortNodes(nodeToData) {\n var positionGroups = new Map();\n iterateNodes(nodeToData, function (_ref2) {\n var _positionGroups$get;\n\n var rect = _ref2.rect,\n color = _ref2.color,\n displayName = _ref2.displayName,\n count = _ref2.count;\n if (!rect) return;\n var key = \"\".concat(rect.left, \",\").concat(rect.top);\n if (!positionGroups.has(key)) positionGroups.set(key, []);\n (_positionGroups$get = positionGroups.get(key)) === null || _positionGroups$get === void 0 ? void 0 : _positionGroups$get.push({\n rect: rect,\n color: color,\n displayName: displayName,\n count: count\n });\n });\n return Array.from(positionGroups.values()).sort(function (groupA, groupB) {\n var maxCountA = Math.max.apply(Math, canvas_toConsumableArray(groupA.map(function (item) {\n return item.count;\n })));\n var maxCountB = Math.max.apply(Math, canvas_toConsumableArray(groupB.map(function (item) {\n return item.count;\n })));\n return maxCountA - maxCountB;\n });\n}\n\nfunction drawGroupBorders(context, group) {\n group.forEach(function (_ref3) {\n var color = _ref3.color,\n rect = _ref3.rect;\n context.beginPath();\n context.strokeStyle = color;\n context.rect(rect.left, rect.top, rect.width - 1, rect.height - 1);\n context.stroke();\n });\n}\n\nfunction drawGroupLabel(context, group) {\n var mergedName = group.map(function (_ref4) {\n var displayName = _ref4.displayName,\n count = _ref4.count;\n return displayName ? \"\".concat(displayName).concat(count > 1 ? \" x\".concat(count) : '') : '';\n }).filter(Boolean).join(', ');\n\n if (mergedName) {\n drawLabel(context, group[0].rect, mergedName, group[0].color);\n }\n}\n\nfunction draw(nodeToData, agent) {\n return isReactNativeEnvironment() ? drawNative(nodeToData, agent) : drawWeb(nodeToData);\n}\n\nfunction iterateNodes(nodeToData, execute) {\n nodeToData.forEach(function (data, node) {\n var colorIndex = Math.min(COLORS.length - 1, data.count - 1);\n var color = COLORS[colorIndex];\n execute({\n color: color,\n node: node,\n count: data.count,\n displayName: data.displayName,\n expirationTime: data.expirationTime,\n lastMeasuredAt: data.lastMeasuredAt,\n rect: data.rect\n });\n });\n}\n\nfunction drawLabel(context, rect, text, color) {\n var left = rect.left,\n top = rect.top;\n context.font = '10px monospace';\n context.textBaseline = 'middle';\n context.textAlign = 'center';\n var padding = 2;\n var textHeight = 14;\n var metrics = context.measureText(text);\n var backgroundWidth = metrics.width + padding * 2;\n var backgroundHeight = textHeight;\n var labelX = left;\n var labelY = top - backgroundHeight;\n context.fillStyle = color;\n context.fillRect(labelX, labelY, backgroundWidth, backgroundHeight);\n context.fillStyle = '#000000';\n context.fillText(text, labelX + backgroundWidth / 2, labelY + backgroundHeight / 2);\n}\n\nfunction destroyNative(agent) {\n agent.emit('disableTraceUpdates');\n}\n\nfunction destroyWeb() {\n if (canvas !== null) {\n if (canvas.parentNode != null) {\n canvas.parentNode.removeChild(canvas);\n }\n\n canvas = null;\n }\n}\n\nfunction destroy(agent) {\n return isReactNativeEnvironment() ? destroyNative(agent) : destroyWeb();\n}\n\nfunction initialize() {\n canvas = window.document.createElement('canvas');\n canvas.style.cssText = \"\\n xx-background-color: red;\\n xx-opacity: 0.5;\\n bottom: 0;\\n left: 0;\\n pointer-events: none;\\n position: fixed;\\n right: 0;\\n top: 0;\\n z-index: 1000000000;\\n \";\n var root = window.document.documentElement;\n root.insertBefore(canvas, root.firstChild);\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/views/TraceUpdates/index.js\nfunction TraceUpdates_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { TraceUpdates_typeof = function _typeof(obj) { return typeof obj; }; } else { TraceUpdates_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return TraceUpdates_typeof(obj); }\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\n\n// How long the rect should be shown for?\nvar DISPLAY_DURATION = 250; // What's the longest we are willing to show the overlay for?\n// This can be important if we're getting a flurry of events (e.g. scroll update).\n\nvar MAX_DISPLAY_DURATION = 3000; // How long should a rect be considered valid for?\n\nvar REMEASUREMENT_AFTER_DURATION = 250; // Markers for different types of HOCs\n\nvar HOC_MARKERS = new Map([['Forget', '✨'], ['Memo', '🧠']]); // Some environments (e.g. React Native / Hermes) don't support the performance API yet.\n\nvar getCurrentTime = // $FlowFixMe[method-unbinding]\n(typeof performance === \"undefined\" ? \"undefined\" : TraceUpdates_typeof(performance)) === 'object' && typeof performance.now === 'function' ? function () {\n return performance.now();\n} : function () {\n return Date.now();\n};\nvar nodeToData = new Map();\nvar agent = null;\nvar drawAnimationFrameID = null;\nvar isEnabled = false;\nvar redrawTimeoutID = null;\nfunction TraceUpdates_initialize(injectedAgent) {\n agent = injectedAgent;\n agent.addListener('traceUpdates', traceUpdates);\n}\nfunction toggleEnabled(value) {\n isEnabled = value;\n\n if (!isEnabled) {\n nodeToData.clear();\n\n if (drawAnimationFrameID !== null) {\n cancelAnimationFrame(drawAnimationFrameID);\n drawAnimationFrameID = null;\n }\n\n if (redrawTimeoutID !== null) {\n clearTimeout(redrawTimeoutID);\n redrawTimeoutID = null;\n }\n\n destroy(agent);\n }\n}\n\nfunction traceUpdates(nodes) {\n if (!isEnabled) return;\n nodes.forEach(function (node) {\n var data = nodeToData.get(node);\n var now = getCurrentTime();\n var lastMeasuredAt = data != null ? data.lastMeasuredAt : 0;\n var rect = data != null ? data.rect : null;\n\n if (rect === null || lastMeasuredAt + REMEASUREMENT_AFTER_DURATION < now) {\n lastMeasuredAt = now;\n rect = measureNode(node);\n }\n\n var displayName = agent.getComponentNameForHostInstance(node);\n\n if (displayName) {\n var _extractHOCNames = extractHOCNames(displayName),\n baseComponentName = _extractHOCNames.baseComponentName,\n hocNames = _extractHOCNames.hocNames;\n\n var markers = hocNames.map(function (hoc) {\n return HOC_MARKERS.get(hoc) || '';\n }).join('');\n var enhancedDisplayName = markers ? \"\".concat(markers).concat(baseComponentName) : baseComponentName;\n displayName = enhancedDisplayName;\n }\n\n nodeToData.set(node, {\n count: data != null ? data.count + 1 : 1,\n expirationTime: data != null ? Math.min(now + MAX_DISPLAY_DURATION, data.expirationTime + DISPLAY_DURATION) : now + DISPLAY_DURATION,\n lastMeasuredAt: lastMeasuredAt,\n rect: rect,\n displayName: displayName\n });\n });\n\n if (redrawTimeoutID !== null) {\n clearTimeout(redrawTimeoutID);\n redrawTimeoutID = null;\n }\n\n if (drawAnimationFrameID === null) {\n drawAnimationFrameID = requestAnimationFrame(prepareToDraw);\n }\n}\n\nfunction prepareToDraw() {\n drawAnimationFrameID = null;\n redrawTimeoutID = null;\n var now = getCurrentTime();\n var earliestExpiration = Number.MAX_VALUE; // Remove any items that have already expired.\n\n nodeToData.forEach(function (data, node) {\n if (data.expirationTime < now) {\n nodeToData.delete(node);\n } else {\n earliestExpiration = Math.min(earliestExpiration, data.expirationTime);\n }\n });\n draw(nodeToData, agent);\n\n if (earliestExpiration !== Number.MAX_VALUE) {\n redrawTimeoutID = setTimeout(prepareToDraw, earliestExpiration - now);\n }\n}\n\nfunction measureNode(node) {\n if (!node || typeof node.getBoundingClientRect !== 'function') {\n return null;\n }\n\n var currentWindow = window.__REACT_DEVTOOLS_TARGET_WINDOW__ || window;\n return getNestedBoundingClientRect(node, currentWindow);\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/bridge.js\nfunction bridge_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { bridge_typeof = function _typeof(obj) { return typeof obj; }; } else { bridge_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return bridge_typeof(obj); }\n\nfunction bridge_toConsumableArray(arr) { return bridge_arrayWithoutHoles(arr) || bridge_iterableToArray(arr) || bridge_unsupportedIterableToArray(arr) || bridge_nonIterableSpread(); }\n\nfunction bridge_nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction bridge_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return bridge_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return bridge_arrayLikeToArray(o, minLen); }\n\nfunction bridge_iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction bridge_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return bridge_arrayLikeToArray(arr); }\n\nfunction bridge_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction bridge_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction bridge_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction bridge_createClass(Constructor, protoProps, staticProps) { if (protoProps) bridge_defineProperties(Constructor.prototype, protoProps); if (staticProps) bridge_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _callSuper(_this, derived, args) {\n function isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n return !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (e) {\n return false;\n }\n }\n\n derived = _getPrototypeOf(derived);\n return _possibleConstructorReturn(_this, isNativeReflectConstruct() ? Reflect.construct(derived, args || [], _getPrototypeOf(_this).constructor) : derived.apply(_this, args));\n}\n\nfunction _possibleConstructorReturn(self, call) { if (call && (bridge_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction bridge_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n // This message specifies the version of the DevTools protocol currently supported by the backend,\n// as well as the earliest NPM version (e.g. \"4.13.0\") that protocol is supported by on the frontend.\n// This enables an older frontend to display an upgrade message to users for a newer, unsupported backend.\n\n// Bump protocol version whenever a backwards breaking change is made\n// in the messages sent between BackendBridge and FrontendBridge.\n// This mapping is embedded in both frontend and backend builds.\n//\n// The backend protocol will always be the latest entry in the BRIDGE_PROTOCOL array.\n//\n// When an older frontend connects to a newer backend,\n// the backend can send the minNpmVersion and the frontend can display an NPM upgrade prompt.\n//\n// When a newer frontend connects with an older protocol version,\n// the frontend can use the embedded minNpmVersion/maxNpmVersion values to display a downgrade prompt.\nvar BRIDGE_PROTOCOL = [// This version technically never existed,\n// but a backwards breaking change was added in 4.11,\n// so the safest guess to downgrade the frontend would be to version 4.10.\n{\n version: 0,\n minNpmVersion: '\"<4.11.0\"',\n maxNpmVersion: '\"<4.11.0\"'\n}, // Versions 4.11.x – 4.12.x contained the backwards breaking change,\n// but we didn't add the \"fix\" of checking the protocol version until 4.13,\n// so we don't recommend downgrading to 4.11 or 4.12.\n{\n version: 1,\n minNpmVersion: '4.13.0',\n maxNpmVersion: '4.21.0'\n}, // Version 2 adds a StrictMode-enabled and supports-StrictMode bits to add-root operation.\n{\n version: 2,\n minNpmVersion: '4.22.0',\n maxNpmVersion: null\n}];\nvar currentBridgeProtocol = BRIDGE_PROTOCOL[BRIDGE_PROTOCOL.length - 1];\n\nvar Bridge = /*#__PURE__*/function (_EventEmitter) {\n function Bridge(wall) {\n var _this2;\n\n bridge_classCallCheck(this, Bridge);\n\n _this2 = _callSuper(this, Bridge);\n\n bridge_defineProperty(_this2, \"_isShutdown\", false);\n\n bridge_defineProperty(_this2, \"_messageQueue\", []);\n\n bridge_defineProperty(_this2, \"_scheduledFlush\", false);\n\n bridge_defineProperty(_this2, \"_wallUnlisten\", null);\n\n bridge_defineProperty(_this2, \"_flush\", function () {\n // This method is used after the bridge is marked as destroyed in shutdown sequence,\n // so we do not bail out if the bridge marked as destroyed.\n // It is a private method that the bridge ensures is only called at the right times.\n try {\n if (_this2._messageQueue.length) {\n for (var i = 0; i < _this2._messageQueue.length; i += 2) {\n var _this2$_wall;\n\n (_this2$_wall = _this2._wall).send.apply(_this2$_wall, [_this2._messageQueue[i]].concat(bridge_toConsumableArray(_this2._messageQueue[i + 1])));\n }\n\n _this2._messageQueue.length = 0;\n }\n } finally {\n // We set this at the end in case new messages are added synchronously above.\n // They're already handled so they shouldn't queue more flushes.\n _this2._scheduledFlush = false;\n }\n });\n\n bridge_defineProperty(_this2, \"overrideValueAtPath\", function (_ref) {\n var id = _ref.id,\n path = _ref.path,\n rendererID = _ref.rendererID,\n type = _ref.type,\n value = _ref.value;\n\n switch (type) {\n case 'context':\n _this2.send('overrideContext', {\n id: id,\n path: path,\n rendererID: rendererID,\n wasForwarded: true,\n value: value\n });\n\n break;\n\n case 'hooks':\n _this2.send('overrideHookState', {\n id: id,\n path: path,\n rendererID: rendererID,\n wasForwarded: true,\n value: value\n });\n\n break;\n\n case 'props':\n _this2.send('overrideProps', {\n id: id,\n path: path,\n rendererID: rendererID,\n wasForwarded: true,\n value: value\n });\n\n break;\n\n case 'state':\n _this2.send('overrideState', {\n id: id,\n path: path,\n rendererID: rendererID,\n wasForwarded: true,\n value: value\n });\n\n break;\n }\n });\n\n _this2._wall = wall;\n _this2._wallUnlisten = wall.listen(function (message) {\n if (message && message.event) {\n _this2.emit(message.event, message.payload);\n }\n }) || null; // Temporarily support older standalone front-ends sending commands to newer embedded backends.\n // We do this because React Native embeds the React DevTools backend,\n // but cannot control which version of the frontend users use.\n\n _this2.addListener('overrideValueAtPath', _this2.overrideValueAtPath);\n\n return _this2;\n } // Listening directly to the wall isn't advised.\n // It can be used to listen for legacy (v3) messages (since they use a different format).\n\n\n _inherits(Bridge, _EventEmitter);\n\n return bridge_createClass(Bridge, [{\n key: \"wall\",\n get: function get() {\n return this._wall;\n }\n }, {\n key: \"send\",\n value: function send(event) {\n if (this._isShutdown) {\n console.warn(\"Cannot send message \\\"\".concat(event, \"\\\" through a Bridge that has been shutdown.\"));\n return;\n } // When we receive a message:\n // - we add it to our queue of messages to be sent\n // - if there hasn't been a message recently, we set a timer for 0 ms in\n // the future, allowing all messages created in the same tick to be sent\n // together\n // - if there *has* been a message flushed in the last BATCH_DURATION ms\n // (or we're waiting for our setTimeout-0 to fire), then _timeoutID will\n // be set, and we'll simply add to the queue and wait for that\n\n\n for (var _len = arguments.length, payload = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n payload[_key - 1] = arguments[_key];\n }\n\n this._messageQueue.push(event, payload);\n\n if (!this._scheduledFlush) {\n this._scheduledFlush = true; // $FlowFixMe\n\n if (typeof devtoolsJestTestScheduler === 'function') {\n // This exists just for our own jest tests.\n // They're written in such a way that we can neither mock queueMicrotask\n // because then we break React DOM and we can't not mock it because then\n // we can't synchronously flush it. So they need to be rewritten.\n // $FlowFixMe\n devtoolsJestTestScheduler(this._flush); // eslint-disable-line no-undef\n } else {\n queueMicrotask(this._flush);\n }\n }\n }\n }, {\n key: \"shutdown\",\n value: function shutdown() {\n if (this._isShutdown) {\n console.warn('Bridge was already shutdown.');\n return;\n } // Queue the shutdown outgoing message for subscribers.\n\n\n this.emit('shutdown');\n this.send('shutdown'); // Mark this bridge as destroyed, i.e. disable its public API.\n\n this._isShutdown = true; // Disable the API inherited from EventEmitter that can add more listeners and send more messages.\n // $FlowFixMe[cannot-write] This property is not writable.\n\n this.addListener = function () {}; // $FlowFixMe[cannot-write] This property is not writable.\n\n\n this.emit = function () {}; // NOTE: There's also EventEmitter API like `on` and `prependListener` that we didn't add to our Flow type of EventEmitter.\n // Unsubscribe this bridge incoming message listeners to be sure, and so they don't have to do that.\n\n\n this.removeAllListeners(); // Stop accepting and emitting incoming messages from the wall.\n\n var wallUnlisten = this._wallUnlisten;\n\n if (wallUnlisten) {\n wallUnlisten();\n } // Synchronously flush all queued outgoing messages.\n // At this step the subscribers' code may run in this call stack.\n\n\n do {\n this._flush();\n } while (this._messageQueue.length);\n } // Temporarily support older standalone backends by forwarding \"overrideValueAtPath\" commands\n // to the older message types they may be listening to.\n\n }]);\n}(EventEmitter);\n\n/* harmony default export */ const src_bridge = (Bridge);\n;// CONCATENATED MODULE: ../react-devtools-shared/src/storage.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nfunction storage_localStorageGetItem(key) {\n try {\n return localStorage.getItem(key);\n } catch (error) {\n return null;\n }\n}\nfunction localStorageRemoveItem(key) {\n try {\n localStorage.removeItem(key);\n } catch (error) {}\n}\nfunction storage_localStorageSetItem(key, value) {\n try {\n return localStorage.setItem(key, value);\n } catch (error) {}\n}\nfunction storage_sessionStorageGetItem(key) {\n try {\n return sessionStorage.getItem(key);\n } catch (error) {\n return null;\n }\n}\nfunction storage_sessionStorageRemoveItem(key) {\n try {\n sessionStorage.removeItem(key);\n } catch (error) {}\n}\nfunction storage_sessionStorageSetItem(key, value) {\n try {\n return sessionStorage.setItem(key, value);\n } catch (error) {}\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/agent.js\nfunction agent_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { agent_typeof = function _typeof(obj) { return typeof obj; }; } else { agent_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return agent_typeof(obj); }\n\nfunction agent_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction agent_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction agent_createClass(Constructor, protoProps, staticProps) { if (protoProps) agent_defineProperties(Constructor.prototype, protoProps); if (staticProps) agent_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction agent_callSuper(_this, derived, args) {\n function isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n return !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (e) {\n return false;\n }\n }\n\n derived = agent_getPrototypeOf(derived);\n return agent_possibleConstructorReturn(_this, isNativeReflectConstruct() ? Reflect.construct(derived, args || [], agent_getPrototypeOf(_this).constructor) : derived.apply(_this, args));\n}\n\nfunction agent_possibleConstructorReturn(self, call) { if (call && (agent_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return agent_assertThisInitialized(self); }\n\nfunction agent_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction agent_getPrototypeOf(o) { agent_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return agent_getPrototypeOf(o); }\n\nfunction agent_inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) agent_setPrototypeOf(subClass, superClass); }\n\nfunction agent_setPrototypeOf(o, p) { agent_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return agent_setPrototypeOf(o, p); }\n\nfunction agent_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\n\n\n\n\n\n\nvar debug = function debug(methodName) {\n if (__DEBUG__) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console).log.apply(_console, [\"%cAgent %c\".concat(methodName), 'color: purple; font-weight: bold;', 'font-weight: bold;'].concat(args));\n }\n};\n\nvar Agent = /*#__PURE__*/function (_EventEmitter) {\n function Agent(bridge) {\n var _this2;\n\n var isProfiling = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var onReloadAndProfile = arguments.length > 2 ? arguments[2] : undefined;\n\n agent_classCallCheck(this, Agent);\n\n _this2 = agent_callSuper(this, Agent);\n\n agent_defineProperty(_this2, \"_isProfiling\", false);\n\n agent_defineProperty(_this2, \"_rendererInterfaces\", {});\n\n agent_defineProperty(_this2, \"_persistedSelection\", null);\n\n agent_defineProperty(_this2, \"_persistedSelectionMatch\", null);\n\n agent_defineProperty(_this2, \"_traceUpdatesEnabled\", false);\n\n agent_defineProperty(_this2, \"clearErrorsAndWarnings\", function (_ref) {\n var rendererID = _ref.rendererID;\n var renderer = _this2._rendererInterfaces[rendererID];\n\n if (renderer == null) {\n console.warn(\"Invalid renderer id \\\"\".concat(rendererID, \"\\\"\"));\n } else {\n renderer.clearErrorsAndWarnings();\n }\n });\n\n agent_defineProperty(_this2, \"clearErrorsForElementID\", function (_ref2) {\n var id = _ref2.id,\n rendererID = _ref2.rendererID;\n var renderer = _this2._rendererInterfaces[rendererID];\n\n if (renderer == null) {\n console.warn(\"Invalid renderer id \\\"\".concat(rendererID, \"\\\"\"));\n } else {\n renderer.clearErrorsForElementID(id);\n }\n });\n\n agent_defineProperty(_this2, \"clearWarningsForElementID\", function (_ref3) {\n var id = _ref3.id,\n rendererID = _ref3.rendererID;\n var renderer = _this2._rendererInterfaces[rendererID];\n\n if (renderer == null) {\n console.warn(\"Invalid renderer id \\\"\".concat(rendererID, \"\\\"\"));\n } else {\n renderer.clearWarningsForElementID(id);\n }\n });\n\n agent_defineProperty(_this2, \"copyElementPath\", function (_ref4) {\n var id = _ref4.id,\n path = _ref4.path,\n rendererID = _ref4.rendererID;\n var renderer = _this2._rendererInterfaces[rendererID];\n\n if (renderer == null) {\n console.warn(\"Invalid renderer id \\\"\".concat(rendererID, \"\\\" for element \\\"\").concat(id, \"\\\"\"));\n } else {\n var value = renderer.getSerializedElementValueByPath(id, path);\n\n if (value != null) {\n _this2._bridge.send('saveToClipboard', value);\n } else {\n console.warn(\"Unable to obtain serialized value for element \\\"\".concat(id, \"\\\"\"));\n }\n }\n });\n\n agent_defineProperty(_this2, \"deletePath\", function (_ref5) {\n var hookID = _ref5.hookID,\n id = _ref5.id,\n path = _ref5.path,\n rendererID = _ref5.rendererID,\n type = _ref5.type;\n var renderer = _this2._rendererInterfaces[rendererID];\n\n if (renderer == null) {\n console.warn(\"Invalid renderer id \\\"\".concat(rendererID, \"\\\" for element \\\"\").concat(id, \"\\\"\"));\n } else {\n renderer.deletePath(type, id, hookID, path);\n }\n });\n\n agent_defineProperty(_this2, \"getBackendVersion\", function () {\n var version = \"6.1.2-4d6cf75921\";\n\n if (version) {\n _this2._bridge.send('backendVersion', version);\n }\n });\n\n agent_defineProperty(_this2, \"getBridgeProtocol\", function () {\n _this2._bridge.send('bridgeProtocol', currentBridgeProtocol);\n });\n\n agent_defineProperty(_this2, \"getProfilingData\", function (_ref6) {\n var rendererID = _ref6.rendererID;\n var renderer = _this2._rendererInterfaces[rendererID];\n\n if (renderer == null) {\n console.warn(\"Invalid renderer id \\\"\".concat(rendererID, \"\\\"\"));\n }\n\n _this2._bridge.send('profilingData', renderer.getProfilingData());\n });\n\n agent_defineProperty(_this2, \"getProfilingStatus\", function () {\n _this2._bridge.send('profilingStatus', _this2._isProfiling);\n });\n\n agent_defineProperty(_this2, \"getOwnersList\", function (_ref7) {\n var id = _ref7.id,\n rendererID = _ref7.rendererID;\n var renderer = _this2._rendererInterfaces[rendererID];\n\n if (renderer == null) {\n console.warn(\"Invalid renderer id \\\"\".concat(rendererID, \"\\\" for element \\\"\").concat(id, \"\\\"\"));\n } else {\n var owners = renderer.getOwnersList(id);\n\n _this2._bridge.send('ownersList', {\n id: id,\n owners: owners\n });\n }\n });\n\n agent_defineProperty(_this2, \"inspectElement\", function (_ref8) {\n var forceFullData = _ref8.forceFullData,\n id = _ref8.id,\n path = _ref8.path,\n rendererID = _ref8.rendererID,\n requestID = _ref8.requestID;\n var renderer = _this2._rendererInterfaces[rendererID];\n\n if (renderer == null) {\n console.warn(\"Invalid renderer id \\\"\".concat(rendererID, \"\\\" for element \\\"\").concat(id, \"\\\"\"));\n } else {\n _this2._bridge.send('inspectedElement', renderer.inspectElement(requestID, id, path, forceFullData)); // When user selects an element, stop trying to restore the selection,\n // and instead remember the current selection for the next reload.\n\n\n if (_this2._persistedSelectionMatch === null || _this2._persistedSelectionMatch.id !== id) {\n _this2._persistedSelection = null;\n _this2._persistedSelectionMatch = null;\n renderer.setTrackedPath(null); // Throttle persisting the selection.\n\n _this2._lastSelectedElementID = id;\n _this2._lastSelectedRendererID = rendererID;\n\n if (!_this2._persistSelectionTimerScheduled) {\n _this2._persistSelectionTimerScheduled = true;\n setTimeout(_this2._persistSelection, 1000);\n }\n } // TODO: If there was a way to change the selected DOM element\n // in built-in Elements tab without forcing a switch to it, we'd do it here.\n // For now, it doesn't seem like there is a way to do that:\n // https://github.com/bvaughn/react-devtools-experimental/issues/102\n // (Setting $0 doesn't work, and calling inspect() switches the tab.)\n\n }\n });\n\n agent_defineProperty(_this2, \"logElementToConsole\", function (_ref9) {\n var id = _ref9.id,\n rendererID = _ref9.rendererID;\n var renderer = _this2._rendererInterfaces[rendererID];\n\n if (renderer == null) {\n console.warn(\"Invalid renderer id \\\"\".concat(rendererID, \"\\\" for element \\\"\").concat(id, \"\\\"\"));\n } else {\n renderer.logElementToConsole(id);\n }\n });\n\n agent_defineProperty(_this2, \"overrideError\", function (_ref10) {\n var id = _ref10.id,\n rendererID = _ref10.rendererID,\n forceError = _ref10.forceError;\n var renderer = _this2._rendererInterfaces[rendererID];\n\n if (renderer == null) {\n console.warn(\"Invalid renderer id \\\"\".concat(rendererID, \"\\\" for element \\\"\").concat(id, \"\\\"\"));\n } else {\n renderer.overrideError(id, forceError);\n }\n });\n\n agent_defineProperty(_this2, \"overrideSuspense\", function (_ref11) {\n var id = _ref11.id,\n rendererID = _ref11.rendererID,\n forceFallback = _ref11.forceFallback;\n var renderer = _this2._rendererInterfaces[rendererID];\n\n if (renderer == null) {\n console.warn(\"Invalid renderer id \\\"\".concat(rendererID, \"\\\" for element \\\"\").concat(id, \"\\\"\"));\n } else {\n renderer.overrideSuspense(id, forceFallback);\n }\n });\n\n agent_defineProperty(_this2, \"overrideValueAtPath\", function (_ref12) {\n var hookID = _ref12.hookID,\n id = _ref12.id,\n path = _ref12.path,\n rendererID = _ref12.rendererID,\n type = _ref12.type,\n value = _ref12.value;\n var renderer = _this2._rendererInterfaces[rendererID];\n\n if (renderer == null) {\n console.warn(\"Invalid renderer id \\\"\".concat(rendererID, \"\\\" for element \\\"\").concat(id, \"\\\"\"));\n } else {\n renderer.overrideValueAtPath(type, id, hookID, path, value);\n }\n });\n\n agent_defineProperty(_this2, \"overrideContext\", function (_ref13) {\n var id = _ref13.id,\n path = _ref13.path,\n rendererID = _ref13.rendererID,\n wasForwarded = _ref13.wasForwarded,\n value = _ref13.value;\n\n // Don't forward a message that's already been forwarded by the front-end Bridge.\n // We only need to process the override command once!\n if (!wasForwarded) {\n _this2.overrideValueAtPath({\n id: id,\n path: path,\n rendererID: rendererID,\n type: 'context',\n value: value\n });\n }\n });\n\n agent_defineProperty(_this2, \"overrideHookState\", function (_ref14) {\n var id = _ref14.id,\n hookID = _ref14.hookID,\n path = _ref14.path,\n rendererID = _ref14.rendererID,\n wasForwarded = _ref14.wasForwarded,\n value = _ref14.value;\n\n // Don't forward a message that's already been forwarded by the front-end Bridge.\n // We only need to process the override command once!\n if (!wasForwarded) {\n _this2.overrideValueAtPath({\n id: id,\n path: path,\n rendererID: rendererID,\n type: 'hooks',\n value: value\n });\n }\n });\n\n agent_defineProperty(_this2, \"overrideProps\", function (_ref15) {\n var id = _ref15.id,\n path = _ref15.path,\n rendererID = _ref15.rendererID,\n wasForwarded = _ref15.wasForwarded,\n value = _ref15.value;\n\n // Don't forward a message that's already been forwarded by the front-end Bridge.\n // We only need to process the override command once!\n if (!wasForwarded) {\n _this2.overrideValueAtPath({\n id: id,\n path: path,\n rendererID: rendererID,\n type: 'props',\n value: value\n });\n }\n });\n\n agent_defineProperty(_this2, \"overrideState\", function (_ref16) {\n var id = _ref16.id,\n path = _ref16.path,\n rendererID = _ref16.rendererID,\n wasForwarded = _ref16.wasForwarded,\n value = _ref16.value;\n\n // Don't forward a message that's already been forwarded by the front-end Bridge.\n // We only need to process the override command once!\n if (!wasForwarded) {\n _this2.overrideValueAtPath({\n id: id,\n path: path,\n rendererID: rendererID,\n type: 'state',\n value: value\n });\n }\n });\n\n agent_defineProperty(_this2, \"onReloadAndProfileSupportedByHost\", function () {\n _this2._bridge.send('isReloadAndProfileSupportedByBackend', true);\n });\n\n agent_defineProperty(_this2, \"reloadAndProfile\", function (_ref17) {\n var recordChangeDescriptions = _ref17.recordChangeDescriptions,\n recordTimeline = _ref17.recordTimeline;\n\n if (typeof _this2._onReloadAndProfile === 'function') {\n _this2._onReloadAndProfile(recordChangeDescriptions, recordTimeline);\n } // This code path should only be hit if the shell has explicitly told the Store that it supports profiling.\n // In that case, the shell must also listen for this specific message to know when it needs to reload the app.\n // The agent can't do this in a way that is renderer agnostic.\n\n\n _this2._bridge.send('reloadAppForProfiling');\n });\n\n agent_defineProperty(_this2, \"renamePath\", function (_ref18) {\n var hookID = _ref18.hookID,\n id = _ref18.id,\n newPath = _ref18.newPath,\n oldPath = _ref18.oldPath,\n rendererID = _ref18.rendererID,\n type = _ref18.type;\n var renderer = _this2._rendererInterfaces[rendererID];\n\n if (renderer == null) {\n console.warn(\"Invalid renderer id \\\"\".concat(rendererID, \"\\\" for element \\\"\").concat(id, \"\\\"\"));\n } else {\n renderer.renamePath(type, id, hookID, oldPath, newPath);\n }\n });\n\n agent_defineProperty(_this2, \"setTraceUpdatesEnabled\", function (traceUpdatesEnabled) {\n _this2._traceUpdatesEnabled = traceUpdatesEnabled;\n toggleEnabled(traceUpdatesEnabled);\n\n for (var rendererID in _this2._rendererInterfaces) {\n var renderer = _this2._rendererInterfaces[rendererID];\n renderer.setTraceUpdatesEnabled(traceUpdatesEnabled);\n }\n });\n\n agent_defineProperty(_this2, \"syncSelectionFromBuiltinElementsPanel\", function () {\n var target = window.__REACT_DEVTOOLS_GLOBAL_HOOK__.$0;\n\n if (target == null) {\n return;\n }\n\n _this2.selectNode(target);\n });\n\n agent_defineProperty(_this2, \"shutdown\", function () {\n // Clean up the overlay if visible, and associated events.\n _this2.emit('shutdown');\n\n _this2._bridge.removeAllListeners();\n\n _this2.removeAllListeners();\n });\n\n agent_defineProperty(_this2, \"startProfiling\", function (_ref19) {\n var recordChangeDescriptions = _ref19.recordChangeDescriptions,\n recordTimeline = _ref19.recordTimeline;\n _this2._isProfiling = true;\n\n for (var rendererID in _this2._rendererInterfaces) {\n var renderer = _this2._rendererInterfaces[rendererID];\n renderer.startProfiling(recordChangeDescriptions, recordTimeline);\n }\n\n _this2._bridge.send('profilingStatus', _this2._isProfiling);\n });\n\n agent_defineProperty(_this2, \"stopProfiling\", function () {\n _this2._isProfiling = false;\n\n for (var rendererID in _this2._rendererInterfaces) {\n var renderer = _this2._rendererInterfaces[rendererID];\n renderer.stopProfiling();\n }\n\n _this2._bridge.send('profilingStatus', _this2._isProfiling);\n });\n\n agent_defineProperty(_this2, \"stopInspectingNative\", function (selected) {\n _this2._bridge.send('stopInspectingHost', selected);\n });\n\n agent_defineProperty(_this2, \"storeAsGlobal\", function (_ref20) {\n var count = _ref20.count,\n id = _ref20.id,\n path = _ref20.path,\n rendererID = _ref20.rendererID;\n var renderer = _this2._rendererInterfaces[rendererID];\n\n if (renderer == null) {\n console.warn(\"Invalid renderer id \\\"\".concat(rendererID, \"\\\" for element \\\"\").concat(id, \"\\\"\"));\n } else {\n renderer.storeAsGlobal(id, path, count);\n }\n });\n\n agent_defineProperty(_this2, \"updateHookSettings\", function (settings) {\n // Propagate the settings, so Backend can subscribe to it and modify hook\n _this2.emit('updateHookSettings', settings);\n });\n\n agent_defineProperty(_this2, \"getHookSettings\", function () {\n _this2.emit('getHookSettings');\n });\n\n agent_defineProperty(_this2, \"onHookSettings\", function (settings) {\n _this2._bridge.send('hookSettings', settings);\n });\n\n agent_defineProperty(_this2, \"updateComponentFilters\", function (componentFilters) {\n for (var rendererIDString in _this2._rendererInterfaces) {\n var rendererID = +rendererIDString;\n var renderer = _this2._rendererInterfaces[rendererID];\n\n if (_this2._lastSelectedRendererID === rendererID) {\n // Changing component filters will unmount and remount the DevTools tree.\n // Track the last selection's path so we can restore the selection.\n var path = renderer.getPathForElement(_this2._lastSelectedElementID);\n\n if (path !== null) {\n renderer.setTrackedPath(path);\n _this2._persistedSelection = {\n rendererID: rendererID,\n path: path\n };\n }\n }\n\n renderer.updateComponentFilters(componentFilters);\n }\n });\n\n agent_defineProperty(_this2, \"getEnvironmentNames\", function () {\n var accumulatedNames = null;\n\n for (var rendererID in _this2._rendererInterfaces) {\n var renderer = _this2._rendererInterfaces[+rendererID];\n var names = renderer.getEnvironmentNames();\n\n if (accumulatedNames === null) {\n accumulatedNames = names;\n } else {\n for (var i = 0; i < names.length; i++) {\n if (accumulatedNames.indexOf(names[i]) === -1) {\n accumulatedNames.push(names[i]);\n }\n }\n }\n }\n\n _this2._bridge.send('environmentNames', accumulatedNames || []);\n });\n\n agent_defineProperty(_this2, \"onTraceUpdates\", function (nodes) {\n _this2.emit('traceUpdates', nodes);\n });\n\n agent_defineProperty(_this2, \"onFastRefreshScheduled\", function () {\n if (__DEBUG__) {\n debug('onFastRefreshScheduled');\n }\n\n _this2._bridge.send('fastRefreshScheduled');\n });\n\n agent_defineProperty(_this2, \"onHookOperations\", function (operations) {\n if (__DEBUG__) {\n debug('onHookOperations', \"(\".concat(operations.length, \") [\").concat(operations.join(', '), \"]\"));\n } // TODO:\n // The chrome.runtime does not currently support transferables; it forces JSON serialization.\n // See bug https://bugs.chromium.org/p/chromium/issues/detail?id=927134\n //\n // Regarding transferables, the postMessage doc states:\n // If the ownership of an object is transferred, it becomes unusable (neutered)\n // in the context it was sent from and becomes available only to the worker it was sent to.\n //\n // Even though Chrome is eventually JSON serializing the array buffer,\n // using the transferable approach also sometimes causes it to throw:\n // DOMException: Failed to execute 'postMessage' on 'Window': ArrayBuffer at index 0 is already neutered.\n //\n // See bug https://github.com/bvaughn/react-devtools-experimental/issues/25\n //\n // The Store has a fallback in place that parses the message as JSON if the type isn't an array.\n // For now the simplest fix seems to be to not transfer the array.\n // This will negatively impact performance on Firefox so it's unfortunate,\n // but until we're able to fix the Chrome error mentioned above, it seems necessary.\n //\n // this._bridge.send('operations', operations, [operations.buffer]);\n\n\n _this2._bridge.send('operations', operations);\n\n if (_this2._persistedSelection !== null) {\n var rendererID = operations[0];\n\n if (_this2._persistedSelection.rendererID === rendererID) {\n // Check if we can select a deeper match for the persisted selection.\n var renderer = _this2._rendererInterfaces[rendererID];\n\n if (renderer == null) {\n console.warn(\"Invalid renderer id \\\"\".concat(rendererID, \"\\\"\"));\n } else {\n var prevMatch = _this2._persistedSelectionMatch;\n var nextMatch = renderer.getBestMatchForTrackedPath();\n _this2._persistedSelectionMatch = nextMatch;\n var prevMatchID = prevMatch !== null ? prevMatch.id : null;\n var nextMatchID = nextMatch !== null ? nextMatch.id : null;\n\n if (prevMatchID !== nextMatchID) {\n if (nextMatchID !== null) {\n // We moved forward, unlocking a deeper node.\n _this2._bridge.send('selectElement', nextMatchID);\n }\n }\n\n if (nextMatch !== null && nextMatch.isFullMatch) {\n // We've just unlocked the innermost selected node.\n // There's no point tracking it further.\n _this2._persistedSelection = null;\n _this2._persistedSelectionMatch = null;\n renderer.setTrackedPath(null);\n }\n }\n }\n }\n });\n\n agent_defineProperty(_this2, \"getIfHasUnsupportedRendererVersion\", function () {\n _this2.emit('getIfHasUnsupportedRendererVersion');\n });\n\n agent_defineProperty(_this2, \"_persistSelectionTimerScheduled\", false);\n\n agent_defineProperty(_this2, \"_lastSelectedRendererID\", -1);\n\n agent_defineProperty(_this2, \"_lastSelectedElementID\", -1);\n\n agent_defineProperty(_this2, \"_persistSelection\", function () {\n _this2._persistSelectionTimerScheduled = false;\n var rendererID = _this2._lastSelectedRendererID;\n var id = _this2._lastSelectedElementID; // This is throttled, so both renderer and selected ID\n // might not be available by the time we read them.\n // This is why we need the defensive checks here.\n\n var renderer = _this2._rendererInterfaces[rendererID];\n var path = renderer != null ? renderer.getPathForElement(id) : null;\n\n if (path !== null) {\n storage_sessionStorageSetItem(SESSION_STORAGE_LAST_SELECTION_KEY, JSON.stringify({\n rendererID: rendererID,\n path: path\n }));\n } else {\n storage_sessionStorageRemoveItem(SESSION_STORAGE_LAST_SELECTION_KEY);\n }\n });\n\n _this2._isProfiling = isProfiling;\n _this2._onReloadAndProfile = onReloadAndProfile;\n var persistedSelectionString = storage_sessionStorageGetItem(SESSION_STORAGE_LAST_SELECTION_KEY);\n\n if (persistedSelectionString != null) {\n _this2._persistedSelection = JSON.parse(persistedSelectionString);\n }\n\n _this2._bridge = bridge;\n bridge.addListener('clearErrorsAndWarnings', _this2.clearErrorsAndWarnings);\n bridge.addListener('clearErrorsForElementID', _this2.clearErrorsForElementID);\n bridge.addListener('clearWarningsForElementID', _this2.clearWarningsForElementID);\n bridge.addListener('copyElementPath', _this2.copyElementPath);\n bridge.addListener('deletePath', _this2.deletePath);\n bridge.addListener('getBackendVersion', _this2.getBackendVersion);\n bridge.addListener('getBridgeProtocol', _this2.getBridgeProtocol);\n bridge.addListener('getProfilingData', _this2.getProfilingData);\n bridge.addListener('getProfilingStatus', _this2.getProfilingStatus);\n bridge.addListener('getOwnersList', _this2.getOwnersList);\n bridge.addListener('inspectElement', _this2.inspectElement);\n bridge.addListener('logElementToConsole', _this2.logElementToConsole);\n bridge.addListener('overrideError', _this2.overrideError);\n bridge.addListener('overrideSuspense', _this2.overrideSuspense);\n bridge.addListener('overrideValueAtPath', _this2.overrideValueAtPath);\n bridge.addListener('reloadAndProfile', _this2.reloadAndProfile);\n bridge.addListener('renamePath', _this2.renamePath);\n bridge.addListener('setTraceUpdatesEnabled', _this2.setTraceUpdatesEnabled);\n bridge.addListener('startProfiling', _this2.startProfiling);\n bridge.addListener('stopProfiling', _this2.stopProfiling);\n bridge.addListener('storeAsGlobal', _this2.storeAsGlobal);\n bridge.addListener('syncSelectionFromBuiltinElementsPanel', _this2.syncSelectionFromBuiltinElementsPanel);\n bridge.addListener('shutdown', _this2.shutdown);\n bridge.addListener('updateHookSettings', _this2.updateHookSettings);\n bridge.addListener('getHookSettings', _this2.getHookSettings);\n bridge.addListener('updateComponentFilters', _this2.updateComponentFilters);\n bridge.addListener('getEnvironmentNames', _this2.getEnvironmentNames);\n bridge.addListener('getIfHasUnsupportedRendererVersion', _this2.getIfHasUnsupportedRendererVersion); // Temporarily support older standalone front-ends sending commands to newer embedded backends.\n // We do this because React Native embeds the React DevTools backend,\n // but cannot control which version of the frontend users use.\n\n bridge.addListener('overrideContext', _this2.overrideContext);\n bridge.addListener('overrideHookState', _this2.overrideHookState);\n bridge.addListener('overrideProps', _this2.overrideProps);\n bridge.addListener('overrideState', _this2.overrideState);\n setupHighlighter(bridge, _this2);\n TraceUpdates_initialize(_this2); // By this time, Store should already be initialized and intercept events\n\n bridge.send('backendInitialized');\n\n if (_this2._isProfiling) {\n bridge.send('profilingStatus', true);\n }\n\n return _this2;\n }\n\n agent_inherits(Agent, _EventEmitter);\n\n return agent_createClass(Agent, [{\n key: \"rendererInterfaces\",\n get: function get() {\n return this._rendererInterfaces;\n }\n }, {\n key: \"getInstanceAndStyle\",\n value: function getInstanceAndStyle(_ref21) {\n var id = _ref21.id,\n rendererID = _ref21.rendererID;\n var renderer = this._rendererInterfaces[rendererID];\n\n if (renderer == null) {\n console.warn(\"Invalid renderer id \\\"\".concat(rendererID, \"\\\"\"));\n return null;\n }\n\n return renderer.getInstanceAndStyle(id);\n }\n }, {\n key: \"getIDForHostInstance\",\n value: function getIDForHostInstance(target) {\n if (isReactNativeEnvironment() || typeof target.nodeType !== 'number') {\n // In React Native or non-DOM we simply pick any renderer that has a match.\n for (var rendererID in this._rendererInterfaces) {\n var renderer = this._rendererInterfaces[rendererID];\n\n try {\n var match = renderer.getElementIDForHostInstance(target);\n\n if (match != null) {\n return match;\n }\n } catch (error) {// Some old React versions might throw if they can't find a match.\n // If so we should ignore it...\n }\n }\n\n return null;\n } else {\n // In the DOM we use a smarter mechanism to find the deepest a DOM node\n // that is registered if there isn't an exact match.\n var bestMatch = null;\n var bestRenderer = null; // Find the nearest ancestor which is mounted by a React.\n\n for (var _rendererID in this._rendererInterfaces) {\n var _renderer = this._rendererInterfaces[_rendererID];\n\n var nearestNode = _renderer.getNearestMountedDOMNode(target);\n\n if (nearestNode !== null) {\n if (nearestNode === target) {\n // Exact match we can exit early.\n bestMatch = nearestNode;\n bestRenderer = _renderer;\n break;\n }\n\n if (bestMatch === null || bestMatch.contains(nearestNode)) {\n // If this is the first match or the previous match contains the new match,\n // so the new match is a deeper and therefore better match.\n bestMatch = nearestNode;\n bestRenderer = _renderer;\n }\n }\n }\n\n if (bestRenderer != null && bestMatch != null) {\n try {\n return bestRenderer.getElementIDForHostInstance(bestMatch);\n } catch (error) {// Some old React versions might throw if they can't find a match.\n // If so we should ignore it...\n }\n }\n\n return null;\n }\n }\n }, {\n key: \"getComponentNameForHostInstance\",\n value: function getComponentNameForHostInstance(target) {\n // We duplicate this code from getIDForHostInstance to avoid an object allocation.\n if (isReactNativeEnvironment() || typeof target.nodeType !== 'number') {\n // In React Native or non-DOM we simply pick any renderer that has a match.\n for (var rendererID in this._rendererInterfaces) {\n var renderer = this._rendererInterfaces[rendererID];\n\n try {\n var id = renderer.getElementIDForHostInstance(target);\n\n if (id) {\n return renderer.getDisplayNameForElementID(id);\n }\n } catch (error) {// Some old React versions might throw if they can't find a match.\n // If so we should ignore it...\n }\n }\n\n return null;\n } else {\n // In the DOM we use a smarter mechanism to find the deepest a DOM node\n // that is registered if there isn't an exact match.\n var bestMatch = null;\n var bestRenderer = null; // Find the nearest ancestor which is mounted by a React.\n\n for (var _rendererID2 in this._rendererInterfaces) {\n var _renderer2 = this._rendererInterfaces[_rendererID2];\n\n var nearestNode = _renderer2.getNearestMountedDOMNode(target);\n\n if (nearestNode !== null) {\n if (nearestNode === target) {\n // Exact match we can exit early.\n bestMatch = nearestNode;\n bestRenderer = _renderer2;\n break;\n }\n\n if (bestMatch === null || bestMatch.contains(nearestNode)) {\n // If this is the first match or the previous match contains the new match,\n // so the new match is a deeper and therefore better match.\n bestMatch = nearestNode;\n bestRenderer = _renderer2;\n }\n }\n }\n\n if (bestRenderer != null && bestMatch != null) {\n try {\n var _id = bestRenderer.getElementIDForHostInstance(bestMatch);\n\n if (_id) {\n return bestRenderer.getDisplayNameForElementID(_id);\n }\n } catch (error) {// Some old React versions might throw if they can't find a match.\n // If so we should ignore it...\n }\n }\n\n return null;\n }\n } // Temporarily support older standalone front-ends by forwarding the older message types\n // to the new \"overrideValueAtPath\" command the backend is now listening to.\n // Temporarily support older standalone front-ends by forwarding the older message types\n // to the new \"overrideValueAtPath\" command the backend is now listening to.\n // Temporarily support older standalone front-ends by forwarding the older message types\n // to the new \"overrideValueAtPath\" command the backend is now listening to.\n // Temporarily support older standalone front-ends by forwarding the older message types\n // to the new \"overrideValueAtPath\" command the backend is now listening to.\n\n }, {\n key: \"selectNode\",\n value: function selectNode(target) {\n var id = this.getIDForHostInstance(target);\n\n if (id !== null) {\n this._bridge.send('selectElement', id);\n }\n }\n }, {\n key: \"registerRendererInterface\",\n value: function registerRendererInterface(rendererID, rendererInterface) {\n this._rendererInterfaces[rendererID] = rendererInterface;\n rendererInterface.setTraceUpdatesEnabled(this._traceUpdatesEnabled); // When the renderer is attached, we need to tell it whether\n // we remember the previous selection that we'd like to restore.\n // It'll start tracking mounts for matches to the last selection path.\n\n var selection = this._persistedSelection;\n\n if (selection !== null && selection.rendererID === rendererID) {\n rendererInterface.setTrackedPath(selection.path);\n }\n }\n }, {\n key: \"onUnsupportedRenderer\",\n value: function onUnsupportedRenderer() {\n this._bridge.send('unsupportedRendererVersion');\n }\n }]);\n}(EventEmitter);\n\n\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/shared/DevToolsConsolePatching.js\nfunction DevToolsConsolePatching_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction DevToolsConsolePatching_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { DevToolsConsolePatching_ownKeys(Object(source), true).forEach(function (key) { DevToolsConsolePatching_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { DevToolsConsolePatching_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction DevToolsConsolePatching_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n// This is a DevTools fork of shared/ConsolePatchingDev.\n// The shared console patching code is DEV-only.\n// We can't use it since DevTools only ships production builds.\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n if (disabledDepth === 0) {\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n}\nfunction reenableLogs() {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: DevToolsConsolePatching_objectSpread(DevToolsConsolePatching_objectSpread({}, props), {}, {\n value: prevLog\n }),\n info: DevToolsConsolePatching_objectSpread(DevToolsConsolePatching_objectSpread({}, props), {}, {\n value: prevInfo\n }),\n warn: DevToolsConsolePatching_objectSpread(DevToolsConsolePatching_objectSpread({}, props), {}, {\n value: prevWarn\n }),\n error: DevToolsConsolePatching_objectSpread(DevToolsConsolePatching_objectSpread({}, props), {}, {\n value: prevError\n }),\n group: DevToolsConsolePatching_objectSpread(DevToolsConsolePatching_objectSpread({}, props), {}, {\n value: prevGroup\n }),\n groupCollapsed: DevToolsConsolePatching_objectSpread(DevToolsConsolePatching_objectSpread({}, props), {}, {\n value: prevGroupCollapsed\n }),\n groupEnd: DevToolsConsolePatching_objectSpread(DevToolsConsolePatching_objectSpread({}, props), {}, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n console.error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/shared/DevToolsComponentStackFrame.js\nfunction DevToolsComponentStackFrame_slicedToArray(arr, i) { return DevToolsComponentStackFrame_arrayWithHoles(arr) || DevToolsComponentStackFrame_iterableToArrayLimit(arr, i) || DevToolsComponentStackFrame_unsupportedIterableToArray(arr, i) || DevToolsComponentStackFrame_nonIterableRest(); }\n\nfunction DevToolsComponentStackFrame_nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction DevToolsComponentStackFrame_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return DevToolsComponentStackFrame_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return DevToolsComponentStackFrame_arrayLikeToArray(o, minLen); }\n\nfunction DevToolsComponentStackFrame_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction DevToolsComponentStackFrame_iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction DevToolsComponentStackFrame_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction DevToolsComponentStackFrame_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { DevToolsComponentStackFrame_typeof = function _typeof(obj) { return typeof obj; }; } else { DevToolsComponentStackFrame_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return DevToolsComponentStackFrame_typeof(obj); }\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n// This is a DevTools fork of ReactComponentStackFrame.\n// This fork enables DevTools to use the same \"native\" component stack format,\n// while still maintaining support for multiple renderer versions\n// (which use different values for ReactTypeOfWork).\n// The shared console patching code is DEV-only.\n// We can't use it since DevTools only ships production builds.\n\nvar prefix;\nfunction describeBuiltInComponentFrame(name) {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n }\n\n var suffix = '';\n\n if (true) {\n suffix = ' (<anonymous>)';\n } else {} // We use the prefix to ensure our stacks line up with native stack frames.\n // We use a suffix to ensure it gets parsed natively.\n\n\n return '\\n' + prefix + name + suffix;\n}\nfunction describeDebugInfoFrame(name, env) {\n return describeBuiltInComponentFrame(name + (env ? ' [' + env + ']' : ''));\n}\nvar reentry = false;\nvar componentFrameCache;\n\nif (false) { var PossiblyWeakMap; }\n\nfunction describeNativeComponentFrame(fn, construct, currentDispatcherRef) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n if (false) { var frame; }\n\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe[incompatible-type] It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n reentry = true; // Override the dispatcher so effects scheduled by this shallow render are thrown away.\n //\n // Note that unlike the code this was forked from (in ReactComponentStackFrame)\n // DevTools should override the dispatcher even when DevTools is compiled in production mode,\n // because the app itself may be in development mode and log errors/warnings.\n\n var previousDispatcher = currentDispatcherRef.H;\n currentDispatcherRef.H = null;\n disableLogs();\n\n try {\n // NOTE: keep in sync with the implementation in ReactComponentStackFrame\n\n /**\n * Finding a common stack frame between sample and control errors can be\n * tricky given the different types and levels of stack trace truncation from\n * different JS VMs. So instead we'll attempt to control what that common\n * frame should be through this object method:\n * Having both the sample and control errors be in the function under the\n * `DescribeNativeComponentFrameRoot` property, + setting the `name` and\n * `displayName` properties of the function ensures that a stack\n * frame exists that has the method name `DescribeNativeComponentFrameRoot` in\n * it for both control and sample stacks.\n */\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function DetermineComponentFrameRoot() {\n var control;\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function Fake() {\n throw Error();\n }; // $FlowFixMe[prop-missing]\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function set() {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : DevToolsComponentStackFrame_typeof(Reflect)) === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n } // $FlowFixMe[prop-missing] found when upgrading Flow\n\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n } // TODO(luna): This will currently only throw if the function component\n // tries to access React/ReactDOM/props. We should probably make this throw\n // in simple components too\n\n\n var maybePromise = fn(); // If the function component returns a promise, it's likely an async\n // component, which we don't yet support. Attach a noop catch handler to\n // silence the error.\n // TODO: Implement component stacks for async client components?\n\n if (maybePromise && typeof maybePromise.catch === 'function') {\n maybePromise.catch(function () {});\n }\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n return [sample.stack, control.stack];\n }\n }\n\n return [null, null];\n }\n }; // $FlowFixMe[prop-missing]\n\n RunInRootFrame.DetermineComponentFrameRoot.displayName = 'DetermineComponentFrameRoot';\n var namePropDescriptor = Object.getOwnPropertyDescriptor(RunInRootFrame.DetermineComponentFrameRoot, 'name'); // Before ES6, the `name` property was not configurable.\n\n if (namePropDescriptor && namePropDescriptor.configurable) {\n // V8 utilizes a function's `name` property when generating a stack trace.\n Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, // Configurable properties can be updated even if its writable descriptor\n // is set to `false`.\n // $FlowFixMe[cannot-write]\n 'name', {\n value: 'DetermineComponentFrameRoot'\n });\n }\n\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n _RunInRootFrame$Deter2 = DevToolsComponentStackFrame_slicedToArray(_RunInRootFrame$Deter, 2),\n sampleStack = _RunInRootFrame$Deter2[0],\n controlStack = _RunInRootFrame$Deter2[1];\n\n if (sampleStack && controlStack) {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sampleStack.split('\\n');\n var controlLines = controlStack.split('\\n');\n var s = 0;\n var c = 0;\n\n while (s < sampleLines.length && !sampleLines[s].includes('DetermineComponentFrameRoot')) {\n s++;\n }\n\n while (c < controlLines.length && !controlLines[c].includes('DetermineComponentFrameRoot')) {\n c++;\n } // We couldn't find our intentionally injected common root frame, attempt\n // to find another common root frame by search from the bottom of the\n // control stack...\n\n\n if (s === sampleLines.length || c === controlLines.length) {\n s = sampleLines.length - 1;\n c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n if (false) {} // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n Error.prepareStackTrace = previousPrepareStackTrace;\n currentDispatcherRef.H = previousDispatcher;\n reenableLogs();\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n if (false) {}\n\n return syntheticFrame;\n}\nfunction describeClassComponentFrame(ctor, currentDispatcherRef) {\n return describeNativeComponentFrame(ctor, true, currentDispatcherRef);\n}\nfunction describeFunctionComponentFrame(fn, currentDispatcherRef) {\n return describeNativeComponentFrame(fn, false, currentDispatcherRef);\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/shared/DevToolsOwnerStack.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n// This is a DevTools fork of shared/ReactOwnerStackFrames.\nfunction formatOwnerStack(error) {\n var prevPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe[incompatible-type] It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var stack = error.stack;\n Error.prepareStackTrace = prevPrepareStackTrace;\n\n if (stack.startsWith('Error: react-stack-top-frame\\n')) {\n // V8's default formatting prefixes with the error message which we\n // don't want/need.\n stack = stack.slice(29);\n }\n\n var idx = stack.indexOf('\\n');\n\n if (idx !== -1) {\n // Pop the JSX frame.\n stack = stack.slice(idx + 1);\n }\n\n idx = stack.indexOf('react-stack-bottom-frame');\n\n if (idx !== -1) {\n idx = stack.lastIndexOf('\\n', idx);\n }\n\n if (idx !== -1) {\n // Cut off everything after the bottom frame since it'll be internals.\n stack = stack.slice(0, idx);\n } else {\n // We didn't find any internal callsite out to user space.\n // This means that this was called outside an owner or the owner is fully internal.\n // To keep things light we exclude the entire trace in this case.\n return '';\n }\n\n return stack;\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/flight/DevToolsComponentInfoStack.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n// This is a DevTools fork of ReactComponentInfoStack.\n// This fork enables DevTools to use the same \"native\" component stack format,\n// while still maintaining support for multiple renderer versions\n// (which use different values for ReactTypeOfWork).\n\n\nfunction getOwnerStackByComponentInfoInDev(componentInfo) {\n try {\n var info = ''; // The owner stack of the current component will be where it was created, i.e. inside its owner.\n // There's no actual name of the currently executing component. Instead, that is available\n // on the regular stack that's currently executing. However, if there is no owner at all, then\n // there's no stack frame so we add the name of the root component to the stack to know which\n // component is currently executing.\n\n if (!componentInfo.owner && typeof componentInfo.name === 'string') {\n return describeBuiltInComponentFrame(componentInfo.name);\n }\n\n var owner = componentInfo;\n\n while (owner) {\n var ownerStack = owner.debugStack;\n\n if (ownerStack != null) {\n // Server Component\n owner = owner.owner;\n\n if (owner) {\n // TODO: Should we stash this somewhere for caching purposes?\n info += '\\n' + formatOwnerStack(ownerStack);\n }\n } else {\n break;\n }\n }\n\n return info;\n } catch (x) {\n return '\\nError generating stack: ' + x.message + '\\n' + x.stack;\n }\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/shared/DevToolsServerComponentLogs.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n// This keeps track of Server Component logs which may come from.\n// This is in a shared module because Server Component logs don't come from a specific renderer\n// but can become associated with a Virtual Instance of any renderer.\n// This keeps it around as long as the ComponentInfo is alive which\n// lets the Fiber get reparented/remounted and still observe the previous errors/warnings.\n// Unless we explicitly clear the logs from a Fiber.\nvar componentInfoToComponentLogsMap = new WeakMap();\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/flight/renderer.js\nfunction renderer_toConsumableArray(arr) { return renderer_arrayWithoutHoles(arr) || renderer_iterableToArray(arr) || renderer_unsupportedIterableToArray(arr) || renderer_nonIterableSpread(); }\n\nfunction renderer_nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction renderer_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return renderer_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return renderer_arrayLikeToArray(o, minLen); }\n\nfunction renderer_iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction renderer_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return renderer_arrayLikeToArray(arr); }\n\nfunction renderer_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\n\n\n\nfunction supportsConsoleTasks(componentInfo) {\n // If this ReactComponentInfo supports native console.createTask then we are already running\n // inside a native async stack trace if it's active - meaning the DevTools is open.\n // Ideally we'd detect if this task was created while the DevTools was open or not.\n return !!componentInfo.debugTask;\n}\n\nfunction attach(hook, rendererID, renderer, global) {\n var getCurrentComponentInfo = renderer.getCurrentComponentInfo;\n\n function getComponentStack(topFrame) {\n if (getCurrentComponentInfo === undefined) {\n // Expected this to be part of the renderer. Ignore.\n return null;\n }\n\n var current = getCurrentComponentInfo();\n\n if (current === null) {\n // Outside of our render scope.\n return null;\n }\n\n if (supportsConsoleTasks(current)) {\n // This will be handled natively by console.createTask. No need for\n // DevTools to add it.\n return null;\n }\n\n var enableOwnerStacks = current.debugStack != null;\n var componentStack = '';\n\n if (enableOwnerStacks) {\n // Prefix the owner stack with the current stack. I.e. what called\n // console.error. While this will also be part of the native stack,\n // it is hidden and not presented alongside this argument so we print\n // them all together.\n var topStackFrames = formatOwnerStack(topFrame);\n\n if (topStackFrames) {\n componentStack += '\\n' + topStackFrames;\n }\n\n componentStack += getOwnerStackByComponentInfoInDev(current);\n }\n\n return {\n enableOwnerStacks: enableOwnerStacks,\n componentStack: componentStack\n };\n } // Called when an error or warning is logged during render, commit, or passive (including unmount functions).\n\n\n function onErrorOrWarning(type, args) {\n if (getCurrentComponentInfo === undefined) {\n // Expected this to be part of the renderer. Ignore.\n return;\n }\n\n var componentInfo = getCurrentComponentInfo();\n\n if (componentInfo === null) {\n // Outside of our render scope.\n return;\n }\n\n if (args.length > 3 && typeof args[0] === 'string' && args[0].startsWith('%c%s%c ') && typeof args[1] === 'string' && typeof args[2] === 'string' && typeof args[3] === 'string') {\n // This looks like the badge we prefixed to the log. Our UI doesn't support formatted logs.\n // We remove the formatting. If the environment of the log is the same as the environment of\n // the component (the common case) we remove the badge completely otherwise leave it plain\n var format = args[0].slice(7);\n var env = args[2].trim();\n args = args.slice(4);\n\n if (env !== componentInfo.env) {\n args.unshift('[' + env + '] ' + format);\n } else {\n args.unshift(format);\n }\n } // We can't really use this message as a unique key, since we can't distinguish\n // different objects in this implementation. We have to delegate displaying of the objects\n // to the environment, the browser console, for example, so this is why this should be kept\n // as an array of arguments, instead of the plain string.\n // [Warning: %o, {...}] and [Warning: %o, {...}] will be considered as the same message,\n // even if objects are different\n\n\n var message = formatConsoleArgumentsToSingleString.apply(void 0, renderer_toConsumableArray(args)); // Track the warning/error for later.\n\n var componentLogsEntry = componentInfoToComponentLogsMap.get(componentInfo);\n\n if (componentLogsEntry === undefined) {\n componentLogsEntry = {\n errors: new Map(),\n errorsCount: 0,\n warnings: new Map(),\n warningsCount: 0\n };\n componentInfoToComponentLogsMap.set(componentInfo, componentLogsEntry);\n }\n\n var messageMap = type === 'error' ? componentLogsEntry.errors : componentLogsEntry.warnings;\n var count = messageMap.get(message) || 0;\n messageMap.set(message, count + 1);\n\n if (type === 'error') {\n componentLogsEntry.errorsCount++;\n } else {\n componentLogsEntry.warningsCount++;\n } // The changes will be flushed later when we commit this tree to Fiber.\n\n }\n\n return {\n cleanup: function cleanup() {},\n clearErrorsAndWarnings: function clearErrorsAndWarnings() {},\n clearErrorsForElementID: function clearErrorsForElementID() {},\n clearWarningsForElementID: function clearWarningsForElementID() {},\n getSerializedElementValueByPath: function getSerializedElementValueByPath() {},\n deletePath: function deletePath() {},\n findHostInstancesForElementID: function findHostInstancesForElementID() {\n return null;\n },\n flushInitialOperations: function flushInitialOperations() {},\n getBestMatchForTrackedPath: function getBestMatchForTrackedPath() {\n return null;\n },\n getComponentStack: getComponentStack,\n getDisplayNameForElementID: function getDisplayNameForElementID() {\n return null;\n },\n getNearestMountedDOMNode: function getNearestMountedDOMNode() {\n return null;\n },\n getElementIDForHostInstance: function getElementIDForHostInstance() {\n return null;\n },\n getInstanceAndStyle: function getInstanceAndStyle() {\n return {\n instance: null,\n style: null\n };\n },\n getOwnersList: function getOwnersList() {\n return null;\n },\n getPathForElement: function getPathForElement() {\n return null;\n },\n getProfilingData: function getProfilingData() {\n throw new Error('getProfilingData not supported by this renderer');\n },\n handleCommitFiberRoot: function handleCommitFiberRoot() {},\n handleCommitFiberUnmount: function handleCommitFiberUnmount() {},\n handlePostCommitFiberRoot: function handlePostCommitFiberRoot() {},\n hasElementWithId: function hasElementWithId() {\n return false;\n },\n inspectElement: function inspectElement(requestID, id, path) {\n return {\n id: id,\n responseID: requestID,\n type: 'not-found'\n };\n },\n logElementToConsole: function logElementToConsole() {},\n getElementAttributeByPath: function getElementAttributeByPath() {},\n getElementSourceFunctionById: function getElementSourceFunctionById() {},\n onErrorOrWarning: onErrorOrWarning,\n overrideError: function overrideError() {},\n overrideSuspense: function overrideSuspense() {},\n overrideValueAtPath: function overrideValueAtPath() {},\n renamePath: function renamePath() {},\n renderer: renderer,\n setTraceUpdatesEnabled: function setTraceUpdatesEnabled() {},\n setTrackedPath: function setTrackedPath() {},\n startProfiling: function startProfiling() {},\n stopProfiling: function stopProfiling() {},\n storeAsGlobal: function storeAsGlobal() {},\n updateComponentFilters: function updateComponentFilters() {},\n getEnvironmentNames: function getEnvironmentNames() {\n return [];\n }\n };\n}\n// EXTERNAL MODULE: ../../build/oss-experimental/react-debug-tools/index.js\nvar react_debug_tools = __webpack_require__(987);\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/shared/ReactSymbols.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n// This list should be kept updated to reflect additions to 'shared/ReactSymbols'.\n// DevTools can't import symbols from 'shared/ReactSymbols' directly for two reasons:\n// 1. DevTools requires symbols which may have been deleted in more recent versions (e.g. concurrent mode)\n// 2. DevTools must support both Symbol and numeric forms of each symbol;\n// Since e.g. standalone DevTools runs in a separate process, it can't rely on its own ES capabilities.\nvar CONCURRENT_MODE_NUMBER = 0xeacf;\nvar CONCURRENT_MODE_SYMBOL_STRING = 'Symbol(react.concurrent_mode)';\nvar CONTEXT_NUMBER = 0xeace;\nvar CONTEXT_SYMBOL_STRING = 'Symbol(react.context)';\nvar SERVER_CONTEXT_SYMBOL_STRING = 'Symbol(react.server_context)';\nvar DEPRECATED_ASYNC_MODE_SYMBOL_STRING = 'Symbol(react.async_mode)';\nvar ELEMENT_SYMBOL_STRING = 'Symbol(react.transitional.element)';\nvar LEGACY_ELEMENT_NUMBER = 0xeac7;\nvar LEGACY_ELEMENT_SYMBOL_STRING = 'Symbol(react.element)';\nvar DEBUG_TRACING_MODE_NUMBER = 0xeae1;\nvar DEBUG_TRACING_MODE_SYMBOL_STRING = 'Symbol(react.debug_trace_mode)';\nvar FORWARD_REF_NUMBER = 0xead0;\nvar FORWARD_REF_SYMBOL_STRING = 'Symbol(react.forward_ref)';\nvar FRAGMENT_NUMBER = 0xeacb;\nvar FRAGMENT_SYMBOL_STRING = 'Symbol(react.fragment)';\nvar LAZY_NUMBER = 0xead4;\nvar LAZY_SYMBOL_STRING = 'Symbol(react.lazy)';\nvar MEMO_NUMBER = 0xead3;\nvar MEMO_SYMBOL_STRING = 'Symbol(react.memo)';\nvar PORTAL_NUMBER = 0xeaca;\nvar PORTAL_SYMBOL_STRING = 'Symbol(react.portal)';\nvar PROFILER_NUMBER = 0xead2;\nvar PROFILER_SYMBOL_STRING = 'Symbol(react.profiler)';\nvar PROVIDER_NUMBER = 0xeacd;\nvar PROVIDER_SYMBOL_STRING = 'Symbol(react.provider)';\nvar CONSUMER_SYMBOL_STRING = 'Symbol(react.consumer)';\nvar SCOPE_NUMBER = 0xead7;\nvar SCOPE_SYMBOL_STRING = 'Symbol(react.scope)';\nvar STRICT_MODE_NUMBER = 0xeacc;\nvar STRICT_MODE_SYMBOL_STRING = 'Symbol(react.strict_mode)';\nvar SUSPENSE_NUMBER = 0xead1;\nvar SUSPENSE_SYMBOL_STRING = 'Symbol(react.suspense)';\nvar SUSPENSE_LIST_NUMBER = 0xead8;\nvar SUSPENSE_LIST_SYMBOL_STRING = 'Symbol(react.suspense_list)';\nvar SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED_SYMBOL_STRING = 'Symbol(react.server_context.defaultValue)';\nvar ReactSymbols_REACT_MEMO_CACHE_SENTINEL = Symbol.for('react.memo_cache_sentinel');\n;// CONCATENATED MODULE: ../react-devtools-shared/src/config/DevToolsFeatureFlags.core-oss.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/************************************************************************\n * This file is forked between different DevTools implementations.\n * It should never be imported directly!\n * It should always be imported from \"react-devtools-feature-flags\".\n ************************************************************************/\nvar enableLogger = false;\nvar enableStyleXFeatures = false;\nvar isInternalFacebookBuild = false;\n/************************************************************************\n * Do not edit the code below.\n * It ensures this fork exports the same types as the default flags file.\n ************************************************************************/\n\n// Flow magic to verify the exports of this file match the original version.\nnull;\n;// CONCATENATED MODULE: ../shared/objectIs.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n}\n\nvar objectIs = // $FlowFixMe[method-unbinding]\ntypeof Object.is === 'function' ? Object.is : is;\n/* harmony default export */ const shared_objectIs = (objectIs);\n;// CONCATENATED MODULE: ../shared/hasOwnProperty.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n// $FlowFixMe[method-unbinding]\nvar hasOwnProperty_hasOwnProperty = Object.prototype.hasOwnProperty;\n/* harmony default export */ const shared_hasOwnProperty = (hasOwnProperty_hasOwnProperty);\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/fiber/DevToolsFiberComponentStack.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n// This is a DevTools fork of ReactFiberComponentStack.\n// This fork enables DevTools to use the same \"native\" component stack format,\n// while still maintaining support for multiple renderer versions\n// (which use different values for ReactTypeOfWork).\n\n\nfunction describeFiber(workTagMap, workInProgress, currentDispatcherRef) {\n var HostHoistable = workTagMap.HostHoistable,\n HostSingleton = workTagMap.HostSingleton,\n HostComponent = workTagMap.HostComponent,\n LazyComponent = workTagMap.LazyComponent,\n SuspenseComponent = workTagMap.SuspenseComponent,\n SuspenseListComponent = workTagMap.SuspenseListComponent,\n FunctionComponent = workTagMap.FunctionComponent,\n IndeterminateComponent = workTagMap.IndeterminateComponent,\n SimpleMemoComponent = workTagMap.SimpleMemoComponent,\n ForwardRef = workTagMap.ForwardRef,\n ClassComponent = workTagMap.ClassComponent,\n ViewTransitionComponent = workTagMap.ViewTransitionComponent;\n\n switch (workInProgress.tag) {\n case HostHoistable:\n case HostSingleton:\n case HostComponent:\n return describeBuiltInComponentFrame(workInProgress.type);\n\n case LazyComponent:\n // TODO: When we support Thenables as component types we should rename this.\n return describeBuiltInComponentFrame('Lazy');\n\n case SuspenseComponent:\n return describeBuiltInComponentFrame('Suspense');\n\n case SuspenseListComponent:\n return describeBuiltInComponentFrame('SuspenseList');\n\n case ViewTransitionComponent:\n return describeBuiltInComponentFrame('ViewTransition');\n\n case FunctionComponent:\n case IndeterminateComponent:\n case SimpleMemoComponent:\n return describeFunctionComponentFrame(workInProgress.type, currentDispatcherRef);\n\n case ForwardRef:\n return describeFunctionComponentFrame(workInProgress.type.render, currentDispatcherRef);\n\n case ClassComponent:\n return describeClassComponentFrame(workInProgress.type, currentDispatcherRef);\n\n default:\n return '';\n }\n}\nfunction getStackByFiberInDevAndProd(workTagMap, workInProgress, currentDispatcherRef) {\n try {\n var info = '';\n var node = workInProgress;\n\n do {\n info += describeFiber(workTagMap, node, currentDispatcherRef); // Add any Server Component stack frames in reverse order.\n\n var debugInfo = node._debugInfo;\n\n if (debugInfo) {\n for (var i = debugInfo.length - 1; i >= 0; i--) {\n var entry = debugInfo[i];\n\n if (typeof entry.name === 'string') {\n info += describeDebugInfoFrame(entry.name, entry.env);\n }\n }\n } // $FlowFixMe[incompatible-type] we bail out when we get a null\n\n\n node = node.return;\n } while (node);\n\n return info;\n } catch (x) {\n return '\\nError generating stack: ' + x.message + '\\n' + x.stack;\n }\n}\nfunction getSourceLocationByFiber(workTagMap, fiber, currentDispatcherRef) {\n // This is like getStackByFiberInDevAndProd but just the first stack frame.\n try {\n var info = describeFiber(workTagMap, fiber, currentDispatcherRef);\n\n if (info !== '') {\n return info.slice(1); // skip the leading newline\n }\n } catch (x) {\n console.error(x);\n }\n\n return null;\n}\nfunction DevToolsFiberComponentStack_supportsConsoleTasks(fiber) {\n // If this Fiber supports native console.createTask then we are already running\n // inside a native async stack trace if it's active - meaning the DevTools is open.\n // Ideally we'd detect if this task was created while the DevTools was open or not.\n return !!fiber._debugTask;\n}\nfunction supportsOwnerStacks(fiber) {\n // If this Fiber supports owner stacks then it'll have the _debugStack field.\n // It might be null but that still means we should use the owner stack logic.\n return fiber._debugStack !== undefined;\n}\nfunction getOwnerStackByFiberInDev(workTagMap, workInProgress, currentDispatcherRef) {\n var HostHoistable = workTagMap.HostHoistable,\n HostSingleton = workTagMap.HostSingleton,\n HostText = workTagMap.HostText,\n HostComponent = workTagMap.HostComponent,\n SuspenseComponent = workTagMap.SuspenseComponent,\n SuspenseListComponent = workTagMap.SuspenseListComponent,\n ViewTransitionComponent = workTagMap.ViewTransitionComponent;\n\n try {\n var info = '';\n\n if (workInProgress.tag === HostText) {\n // Text nodes never have an owner/stack because they're not created through JSX.\n // We use the parent since text nodes are always created through a host parent.\n workInProgress = workInProgress.return;\n } // The owner stack of the current fiber will be where it was created, i.e. inside its owner.\n // There's no actual name of the currently executing component. Instead, that is available\n // on the regular stack that's currently executing. However, for built-ins there is no such\n // named stack frame and it would be ignored as being internal anyway. Therefore we add\n // add one extra frame just to describe the \"current\" built-in component by name.\n\n\n switch (workInProgress.tag) {\n case HostHoistable:\n case HostSingleton:\n case HostComponent:\n info += describeBuiltInComponentFrame(workInProgress.type);\n break;\n\n case SuspenseComponent:\n info += describeBuiltInComponentFrame('Suspense');\n break;\n\n case SuspenseListComponent:\n info += describeBuiltInComponentFrame('SuspenseList');\n break;\n\n case ViewTransitionComponent:\n info += describeBuiltInComponentFrame('ViewTransition');\n break;\n }\n\n var owner = workInProgress;\n\n while (owner) {\n if (typeof owner.tag === 'number') {\n var fiber = owner;\n owner = fiber._debugOwner;\n var debugStack = fiber._debugStack; // If we don't actually print the stack if there is no owner of this JSX element.\n // In a real app it's typically not useful since the root app is always controlled\n // by the framework. These also tend to have noisy stacks because they're not rooted\n // in a React render but in some imperative bootstrapping code. It could be useful\n // if the element was created in module scope. E.g. hoisted. We could add a a single\n // stack frame for context for example but it doesn't say much if that's a wrapper.\n\n if (owner && debugStack) {\n if (typeof debugStack !== 'string') {\n debugStack = formatOwnerStack(debugStack);\n }\n\n if (debugStack !== '') {\n info += '\\n' + debugStack;\n }\n }\n } else if (owner.debugStack != null) {\n // Server Component\n var ownerStack = owner.debugStack;\n owner = owner.owner;\n\n if (owner && ownerStack) {\n info += '\\n' + formatOwnerStack(ownerStack);\n }\n } else {\n break;\n }\n }\n\n return info;\n } catch (x) {\n return '\\nError generating stack: ' + x.message + '\\n' + x.stack;\n }\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/StyleX/utils.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar cachedStyleNameToValueMap = new Map();\nfunction getStyleXData(data) {\n var sources = new Set();\n var resolvedStyles = {};\n crawlData(data, sources, resolvedStyles);\n return {\n sources: Array.from(sources).sort(),\n resolvedStyles: resolvedStyles\n };\n}\nfunction crawlData(data, sources, resolvedStyles) {\n if (data == null) {\n return;\n }\n\n if (src_isArray(data)) {\n data.forEach(function (entry) {\n if (entry == null) {\n return;\n }\n\n if (src_isArray(entry)) {\n crawlData(entry, sources, resolvedStyles);\n } else {\n crawlObjectProperties(entry, sources, resolvedStyles);\n }\n });\n } else {\n crawlObjectProperties(data, sources, resolvedStyles);\n }\n\n resolvedStyles = Object.fromEntries(Object.entries(resolvedStyles).sort());\n}\n\nfunction crawlObjectProperties(entry, sources, resolvedStyles) {\n var keys = Object.keys(entry);\n keys.forEach(function (key) {\n var value = entry[key];\n\n if (typeof value === 'string') {\n if (key === value) {\n // Special case; this key is the name of the style's source/file/module.\n sources.add(key);\n } else {\n var propertyValue = getPropertyValueForStyleName(value);\n\n if (propertyValue != null) {\n resolvedStyles[key] = propertyValue;\n }\n }\n } else {\n var nestedStyle = {};\n resolvedStyles[key] = nestedStyle;\n crawlData([value], sources, nestedStyle);\n }\n });\n}\n\nfunction getPropertyValueForStyleName(styleName) {\n if (cachedStyleNameToValueMap.has(styleName)) {\n return cachedStyleNameToValueMap.get(styleName);\n }\n\n for (var styleSheetIndex = 0; styleSheetIndex < document.styleSheets.length; styleSheetIndex++) {\n var styleSheet = document.styleSheets[styleSheetIndex];\n var rules = null; // this might throw if CORS rules are enforced https://www.w3.org/TR/cssom-1/#the-cssstylesheet-interface\n\n try {\n rules = styleSheet.cssRules;\n } catch (_e) {\n continue;\n }\n\n for (var ruleIndex = 0; ruleIndex < rules.length; ruleIndex++) {\n if (!(rules[ruleIndex] instanceof CSSStyleRule)) {\n continue;\n }\n\n var rule = rules[ruleIndex];\n var cssText = rule.cssText,\n selectorText = rule.selectorText,\n style = rule.style;\n\n if (selectorText != null) {\n if (selectorText.startsWith(\".\".concat(styleName))) {\n var match = cssText.match(/{ *([a-z\\-]+):/);\n\n if (match !== null) {\n var property = match[1];\n var value = style.getPropertyValue(property);\n cachedStyleNameToValueMap.set(styleName, value);\n return value;\n } else {\n return null;\n }\n }\n }\n }\n }\n\n return null;\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/devtools/constants.js\nvar CHANGE_LOG_URL = 'https://github.com/facebook/react/blob/main/packages/react-devtools/CHANGELOG.md';\nvar UNSUPPORTED_VERSION_URL = 'https://reactjs.org/blog/2019/08/15/new-react-devtools.html#how-do-i-get-the-old-version-back';\nvar REACT_DEVTOOLS_WORKPLACE_URL = 'https://fburl.com/react-devtools-workplace-group';\nvar THEME_STYLES = {\n light: {\n '--color-attribute-name': '#ef6632',\n '--color-attribute-name-not-editable': '#23272f',\n '--color-attribute-name-inverted': 'rgba(255, 255, 255, 0.7)',\n '--color-attribute-value': '#1a1aa6',\n '--color-attribute-value-inverted': '#ffffff',\n '--color-attribute-editable-value': '#1a1aa6',\n '--color-background': '#ffffff',\n '--color-background-hover': 'rgba(0, 136, 250, 0.1)',\n '--color-background-inactive': '#e5e5e5',\n '--color-background-invalid': '#fff0f0',\n '--color-background-selected': '#0088fa',\n '--color-button-background': '#ffffff',\n '--color-button-background-focus': '#ededed',\n '--color-button': '#5f6673',\n '--color-button-disabled': '#cfd1d5',\n '--color-button-active': '#0088fa',\n '--color-button-focus': '#23272f',\n '--color-button-hover': '#23272f',\n '--color-border': '#eeeeee',\n '--color-commit-did-not-render-fill': '#cfd1d5',\n '--color-commit-did-not-render-fill-text': '#000000',\n '--color-commit-did-not-render-pattern': '#cfd1d5',\n '--color-commit-did-not-render-pattern-text': '#333333',\n '--color-commit-gradient-0': '#37afa9',\n '--color-commit-gradient-1': '#63b19e',\n '--color-commit-gradient-2': '#80b393',\n '--color-commit-gradient-3': '#97b488',\n '--color-commit-gradient-4': '#abb67d',\n '--color-commit-gradient-5': '#beb771',\n '--color-commit-gradient-6': '#cfb965',\n '--color-commit-gradient-7': '#dfba57',\n '--color-commit-gradient-8': '#efbb49',\n '--color-commit-gradient-9': '#febc38',\n '--color-commit-gradient-text': '#000000',\n '--color-component-name': '#6a51b2',\n '--color-component-name-inverted': '#ffffff',\n '--color-component-badge-background': '#e6e6e6',\n '--color-component-badge-background-inverted': 'rgba(255, 255, 255, 0.25)',\n '--color-component-badge-count': '#777d88',\n '--color-component-badge-count-inverted': 'rgba(255, 255, 255, 0.7)',\n '--color-console-error-badge-text': '#ffffff',\n '--color-console-error-background': '#fff0f0',\n '--color-console-error-border': '#ffd6d6',\n '--color-console-error-icon': '#eb3941',\n '--color-console-error-text': '#fe2e31',\n '--color-console-warning-badge-text': '#000000',\n '--color-console-warning-background': '#fffbe5',\n '--color-console-warning-border': '#fff5c1',\n '--color-console-warning-icon': '#f4bd00',\n '--color-console-warning-text': '#64460c',\n '--color-context-background': 'rgba(0,0,0,.9)',\n '--color-context-background-hover': 'rgba(255, 255, 255, 0.1)',\n '--color-context-background-selected': '#178fb9',\n '--color-context-border': '#3d424a',\n '--color-context-text': '#ffffff',\n '--color-context-text-selected': '#ffffff',\n '--color-dim': '#777d88',\n '--color-dimmer': '#cfd1d5',\n '--color-dimmest': '#eff0f1',\n '--color-error-background': 'hsl(0, 100%, 97%)',\n '--color-error-border': 'hsl(0, 100%, 92%)',\n '--color-error-text': '#ff0000',\n '--color-expand-collapse-toggle': '#777d88',\n '--color-forget-badge-background': '#2683e2',\n '--color-forget-badge-background-inverted': '#1a6bbc',\n '--color-forget-text': '#fff',\n '--color-link': '#0000ff',\n '--color-modal-background': 'rgba(255, 255, 255, 0.75)',\n '--color-bridge-version-npm-background': '#eff0f1',\n '--color-bridge-version-npm-text': '#000000',\n '--color-bridge-version-number': '#0088fa',\n '--color-primitive-hook-badge-background': '#e5e5e5',\n '--color-primitive-hook-badge-text': '#5f6673',\n '--color-record-active': '#fc3a4b',\n '--color-record-hover': '#3578e5',\n '--color-record-inactive': '#0088fa',\n '--color-resize-bar': '#eeeeee',\n '--color-resize-bar-active': '#dcdcdc',\n '--color-resize-bar-border': '#d1d1d1',\n '--color-resize-bar-dot': '#333333',\n '--color-timeline-internal-module': '#d1d1d1',\n '--color-timeline-internal-module-hover': '#c9c9c9',\n '--color-timeline-internal-module-text': '#444',\n '--color-timeline-native-event': '#ccc',\n '--color-timeline-native-event-hover': '#aaa',\n '--color-timeline-network-primary': '#fcf3dc',\n '--color-timeline-network-primary-hover': '#f0e7d1',\n '--color-timeline-network-secondary': '#efc457',\n '--color-timeline-network-secondary-hover': '#e3ba52',\n '--color-timeline-priority-background': '#f6f6f6',\n '--color-timeline-priority-border': '#eeeeee',\n '--color-timeline-user-timing': '#c9cacd',\n '--color-timeline-user-timing-hover': '#93959a',\n '--color-timeline-react-idle': '#d3e5f6',\n '--color-timeline-react-idle-hover': '#c3d9ef',\n '--color-timeline-react-render': '#9fc3f3',\n '--color-timeline-react-render-hover': '#83afe9',\n '--color-timeline-react-render-text': '#11365e',\n '--color-timeline-react-commit': '#c88ff0',\n '--color-timeline-react-commit-hover': '#b281d6',\n '--color-timeline-react-commit-text': '#3e2c4a',\n '--color-timeline-react-layout-effects': '#b281d6',\n '--color-timeline-react-layout-effects-hover': '#9d71bd',\n '--color-timeline-react-layout-effects-text': '#3e2c4a',\n '--color-timeline-react-passive-effects': '#b281d6',\n '--color-timeline-react-passive-effects-hover': '#9d71bd',\n '--color-timeline-react-passive-effects-text': '#3e2c4a',\n '--color-timeline-react-schedule': '#9fc3f3',\n '--color-timeline-react-schedule-hover': '#2683E2',\n '--color-timeline-react-suspense-rejected': '#f1cc14',\n '--color-timeline-react-suspense-rejected-hover': '#ffdf37',\n '--color-timeline-react-suspense-resolved': '#a6e59f',\n '--color-timeline-react-suspense-resolved-hover': '#89d281',\n '--color-timeline-react-suspense-unresolved': '#c9cacd',\n '--color-timeline-react-suspense-unresolved-hover': '#93959a',\n '--color-timeline-thrown-error': '#ee1638',\n '--color-timeline-thrown-error-hover': '#da1030',\n '--color-timeline-text-color': '#000000',\n '--color-timeline-text-dim-color': '#ccc',\n '--color-timeline-react-work-border': '#eeeeee',\n '--color-search-match': 'yellow',\n '--color-search-match-current': '#f7923b',\n '--color-selected-tree-highlight-active': 'rgba(0, 136, 250, 0.1)',\n '--color-selected-tree-highlight-inactive': 'rgba(0, 0, 0, 0.05)',\n '--color-scroll-caret': 'rgba(150, 150, 150, 0.5)',\n '--color-tab-selected-border': '#0088fa',\n '--color-text': '#000000',\n '--color-text-invalid': '#ff0000',\n '--color-text-selected': '#ffffff',\n '--color-toggle-background-invalid': '#fc3a4b',\n '--color-toggle-background-on': '#0088fa',\n '--color-toggle-background-off': '#cfd1d5',\n '--color-toggle-text': '#ffffff',\n '--color-warning-background': '#fb3655',\n '--color-warning-background-hover': '#f82042',\n '--color-warning-text-color': '#ffffff',\n '--color-warning-text-color-inverted': '#fd4d69',\n // The styles below should be kept in sync with 'root.css'\n // They are repeated there because they're used by e.g. tooltips or context menus\n // which get rendered outside of the DOM subtree (where normal theme/styles are written).\n '--color-scroll-thumb': '#c2c2c2',\n '--color-scroll-track': '#fafafa',\n '--color-tooltip-background': 'rgba(0, 0, 0, 0.9)',\n '--color-tooltip-text': '#ffffff'\n },\n dark: {\n '--color-attribute-name': '#9d87d2',\n '--color-attribute-name-not-editable': '#ededed',\n '--color-attribute-name-inverted': '#282828',\n '--color-attribute-value': '#cedae0',\n '--color-attribute-value-inverted': '#ffffff',\n '--color-attribute-editable-value': 'yellow',\n '--color-background': '#282c34',\n '--color-background-hover': 'rgba(255, 255, 255, 0.1)',\n '--color-background-inactive': '#3d424a',\n '--color-background-invalid': '#5c0000',\n '--color-background-selected': '#178fb9',\n '--color-button-background': '#282c34',\n '--color-button-background-focus': '#3d424a',\n '--color-button': '#afb3b9',\n '--color-button-active': '#61dafb',\n '--color-button-disabled': '#4f5766',\n '--color-button-focus': '#a2e9fc',\n '--color-button-hover': '#ededed',\n '--color-border': '#3d424a',\n '--color-commit-did-not-render-fill': '#777d88',\n '--color-commit-did-not-render-fill-text': '#000000',\n '--color-commit-did-not-render-pattern': '#666c77',\n '--color-commit-did-not-render-pattern-text': '#ffffff',\n '--color-commit-gradient-0': '#37afa9',\n '--color-commit-gradient-1': '#63b19e',\n '--color-commit-gradient-2': '#80b393',\n '--color-commit-gradient-3': '#97b488',\n '--color-commit-gradient-4': '#abb67d',\n '--color-commit-gradient-5': '#beb771',\n '--color-commit-gradient-6': '#cfb965',\n '--color-commit-gradient-7': '#dfba57',\n '--color-commit-gradient-8': '#efbb49',\n '--color-commit-gradient-9': '#febc38',\n '--color-commit-gradient-text': '#000000',\n '--color-component-name': '#61dafb',\n '--color-component-name-inverted': '#282828',\n '--color-component-badge-background': '#5e6167',\n '--color-component-badge-background-inverted': '#46494e',\n '--color-component-badge-count': '#8f949d',\n '--color-component-badge-count-inverted': 'rgba(255, 255, 255, 0.85)',\n '--color-console-error-badge-text': '#000000',\n '--color-console-error-background': '#290000',\n '--color-console-error-border': '#5c0000',\n '--color-console-error-icon': '#eb3941',\n '--color-console-error-text': '#fc7f7f',\n '--color-console-warning-badge-text': '#000000',\n '--color-console-warning-background': '#332b00',\n '--color-console-warning-border': '#665500',\n '--color-console-warning-icon': '#f4bd00',\n '--color-console-warning-text': '#f5f2ed',\n '--color-context-background': 'rgba(255,255,255,.95)',\n '--color-context-background-hover': 'rgba(0, 136, 250, 0.1)',\n '--color-context-background-selected': '#0088fa',\n '--color-context-border': '#eeeeee',\n '--color-context-text': '#000000',\n '--color-context-text-selected': '#ffffff',\n '--color-dim': '#8f949d',\n '--color-dimmer': '#777d88',\n '--color-dimmest': '#4f5766',\n '--color-error-background': '#200',\n '--color-error-border': '#900',\n '--color-error-text': '#f55',\n '--color-expand-collapse-toggle': '#8f949d',\n '--color-forget-badge-background': '#2683e2',\n '--color-forget-badge-background-inverted': '#1a6bbc',\n '--color-forget-text': '#fff',\n '--color-link': '#61dafb',\n '--color-modal-background': 'rgba(0, 0, 0, 0.75)',\n '--color-bridge-version-npm-background': 'rgba(0, 0, 0, 0.25)',\n '--color-bridge-version-npm-text': '#ffffff',\n '--color-bridge-version-number': 'yellow',\n '--color-primitive-hook-badge-background': 'rgba(0, 0, 0, 0.25)',\n '--color-primitive-hook-badge-text': 'rgba(255, 255, 255, 0.7)',\n '--color-record-active': '#fc3a4b',\n '--color-record-hover': '#a2e9fc',\n '--color-record-inactive': '#61dafb',\n '--color-resize-bar': '#282c34',\n '--color-resize-bar-active': '#31363f',\n '--color-resize-bar-border': '#3d424a',\n '--color-resize-bar-dot': '#cfd1d5',\n '--color-timeline-internal-module': '#303542',\n '--color-timeline-internal-module-hover': '#363b4a',\n '--color-timeline-internal-module-text': '#7f8899',\n '--color-timeline-native-event': '#b2b2b2',\n '--color-timeline-native-event-hover': '#949494',\n '--color-timeline-network-primary': '#fcf3dc',\n '--color-timeline-network-primary-hover': '#e3dbc5',\n '--color-timeline-network-secondary': '#efc457',\n '--color-timeline-network-secondary-hover': '#d6af4d',\n '--color-timeline-priority-background': '#1d2129',\n '--color-timeline-priority-border': '#282c34',\n '--color-timeline-user-timing': '#c9cacd',\n '--color-timeline-user-timing-hover': '#93959a',\n '--color-timeline-react-idle': '#3d485b',\n '--color-timeline-react-idle-hover': '#465269',\n '--color-timeline-react-render': '#2683E2',\n '--color-timeline-react-render-hover': '#1a76d4',\n '--color-timeline-react-render-text': '#11365e',\n '--color-timeline-react-commit': '#731fad',\n '--color-timeline-react-commit-hover': '#611b94',\n '--color-timeline-react-commit-text': '#e5c1ff',\n '--color-timeline-react-layout-effects': '#611b94',\n '--color-timeline-react-layout-effects-hover': '#51167a',\n '--color-timeline-react-layout-effects-text': '#e5c1ff',\n '--color-timeline-react-passive-effects': '#611b94',\n '--color-timeline-react-passive-effects-hover': '#51167a',\n '--color-timeline-react-passive-effects-text': '#e5c1ff',\n '--color-timeline-react-schedule': '#2683E2',\n '--color-timeline-react-schedule-hover': '#1a76d4',\n '--color-timeline-react-suspense-rejected': '#f1cc14',\n '--color-timeline-react-suspense-rejected-hover': '#e4c00f',\n '--color-timeline-react-suspense-resolved': '#a6e59f',\n '--color-timeline-react-suspense-resolved-hover': '#89d281',\n '--color-timeline-react-suspense-unresolved': '#c9cacd',\n '--color-timeline-react-suspense-unresolved-hover': '#93959a',\n '--color-timeline-thrown-error': '#fb3655',\n '--color-timeline-thrown-error-hover': '#f82042',\n '--color-timeline-text-color': '#282c34',\n '--color-timeline-text-dim-color': '#555b66',\n '--color-timeline-react-work-border': '#3d424a',\n '--color-search-match': 'yellow',\n '--color-search-match-current': '#f7923b',\n '--color-selected-tree-highlight-active': 'rgba(23, 143, 185, 0.15)',\n '--color-selected-tree-highlight-inactive': 'rgba(255, 255, 255, 0.05)',\n '--color-scroll-caret': '#4f5766',\n '--color-shadow': 'rgba(0, 0, 0, 0.5)',\n '--color-tab-selected-border': '#178fb9',\n '--color-text': '#ffffff',\n '--color-text-invalid': '#ff8080',\n '--color-text-selected': '#ffffff',\n '--color-toggle-background-invalid': '#fc3a4b',\n '--color-toggle-background-on': '#178fb9',\n '--color-toggle-background-off': '#777d88',\n '--color-toggle-text': '#ffffff',\n '--color-warning-background': '#ee1638',\n '--color-warning-background-hover': '#da1030',\n '--color-warning-text-color': '#ffffff',\n '--color-warning-text-color-inverted': '#ee1638',\n // The styles below should be kept in sync with 'root.css'\n // They are repeated there because they're used by e.g. tooltips or context menus\n // which get rendered outside of the DOM subtree (where normal theme/styles are written).\n '--color-scroll-thumb': '#afb3b9',\n '--color-scroll-track': '#313640',\n '--color-tooltip-background': 'rgba(255, 255, 255, 0.95)',\n '--color-tooltip-text': '#000000'\n },\n compact: {\n '--font-size-monospace-small': '9px',\n '--font-size-monospace-normal': '11px',\n '--font-size-monospace-large': '15px',\n '--font-size-sans-small': '10px',\n '--font-size-sans-normal': '12px',\n '--font-size-sans-large': '14px',\n '--line-height-data': '18px'\n },\n comfortable: {\n '--font-size-monospace-small': '10px',\n '--font-size-monospace-normal': '13px',\n '--font-size-monospace-large': '17px',\n '--font-size-sans-small': '12px',\n '--font-size-sans-normal': '14px',\n '--font-size-sans-large': '16px',\n '--line-height-data': '22px'\n }\n}; // HACK\n//\n// Sometimes the inline target is rendered before root styles are applied,\n// which would result in e.g. NaN itemSize being passed to react-window list.\n\nvar COMFORTABLE_LINE_HEIGHT = parseInt(THEME_STYLES.comfortable['--line-height-data'], 10);\nvar COMPACT_LINE_HEIGHT = parseInt(THEME_STYLES.compact['--line-height-data'], 10);\n\n;// CONCATENATED MODULE: ../react-devtools-timeline/src/constants.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar REACT_TOTAL_NUM_LANES = 31; // Increment this number any time a backwards breaking change is made to the profiler metadata.\n\nvar SCHEDULING_PROFILER_VERSION = 1;\nvar SNAPSHOT_MAX_HEIGHT = 60;\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/profilingHooks.js\nfunction profilingHooks_slicedToArray(arr, i) { return profilingHooks_arrayWithHoles(arr) || profilingHooks_iterableToArrayLimit(arr, i) || profilingHooks_unsupportedIterableToArray(arr, i) || profilingHooks_nonIterableRest(); }\n\nfunction profilingHooks_nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction profilingHooks_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return profilingHooks_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return profilingHooks_arrayLikeToArray(o, minLen); }\n\nfunction profilingHooks_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction profilingHooks_iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction profilingHooks_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction profilingHooks_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { profilingHooks_typeof = function _typeof(obj) { return typeof obj; }; } else { profilingHooks_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return profilingHooks_typeof(obj); }\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\n // Add padding to the start/stop time of the profile.\n// This makes the UI nicer to use.\n\nvar TIME_OFFSET = 10;\nvar performanceTarget = null; // If performance exists and supports the subset of the User Timing API that we require.\n\nvar supportsUserTiming = typeof performance !== 'undefined' && // $FlowFixMe[method-unbinding]\ntypeof performance.mark === 'function' && // $FlowFixMe[method-unbinding]\ntypeof performance.clearMarks === 'function';\nvar supportsUserTimingV3 = false;\n\nif (supportsUserTiming) {\n var CHECK_V3_MARK = '__v3';\n var markOptions = {};\n Object.defineProperty(markOptions, 'startTime', {\n get: function get() {\n supportsUserTimingV3 = true;\n return 0;\n },\n set: function set() {}\n });\n\n try {\n performance.mark(CHECK_V3_MARK, markOptions);\n } catch (error) {// Ignore\n } finally {\n performance.clearMarks(CHECK_V3_MARK);\n }\n}\n\nif (supportsUserTimingV3) {\n performanceTarget = performance;\n} // Some environments (e.g. React Native / Hermes) don't support the performance API yet.\n\n\nvar profilingHooks_getCurrentTime = // $FlowFixMe[method-unbinding]\n(typeof performance === \"undefined\" ? \"undefined\" : profilingHooks_typeof(performance)) === 'object' && typeof performance.now === 'function' ? function () {\n return performance.now();\n} : function () {\n return Date.now();\n}; // Mocking the Performance Object (and User Timing APIs) for testing is fragile.\n// This API allows tests to directly override the User Timing APIs.\n\nfunction setPerformanceMock_ONLY_FOR_TESTING(performanceMock) {\n performanceTarget = performanceMock;\n supportsUserTiming = performanceMock !== null;\n supportsUserTimingV3 = performanceMock !== null;\n}\nfunction createProfilingHooks(_ref) {\n var getDisplayNameForFiber = _ref.getDisplayNameForFiber,\n getIsProfiling = _ref.getIsProfiling,\n getLaneLabelMap = _ref.getLaneLabelMap,\n workTagMap = _ref.workTagMap,\n currentDispatcherRef = _ref.currentDispatcherRef,\n reactVersion = _ref.reactVersion;\n var currentBatchUID = 0;\n var currentReactComponentMeasure = null;\n var currentReactMeasuresStack = [];\n var currentTimelineData = null;\n var currentFiberStacks = new Map();\n var isProfiling = false;\n var nextRenderShouldStartNewBatch = false;\n\n function getRelativeTime() {\n var currentTime = profilingHooks_getCurrentTime();\n\n if (currentTimelineData) {\n if (currentTimelineData.startTime === 0) {\n currentTimelineData.startTime = currentTime - TIME_OFFSET;\n }\n\n return currentTime - currentTimelineData.startTime;\n }\n\n return 0;\n }\n\n function getInternalModuleRanges() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.getInternalModuleRanges === 'function') {\n // Ask the DevTools hook for module ranges that may have been reported by the current renderer(s).\n // Don't do this eagerly like the laneToLabelMap,\n // because some modules might not yet have registered their boundaries when the renderer is injected.\n var ranges = __REACT_DEVTOOLS_GLOBAL_HOOK__.getInternalModuleRanges(); // This check would not be required,\n // except that it's possible for things to override __REACT_DEVTOOLS_GLOBAL_HOOK__.\n\n\n if (shared_isArray(ranges)) {\n return ranges;\n }\n }\n\n return null;\n }\n\n function getTimelineData() {\n return currentTimelineData;\n }\n\n function laneToLanesArray(lanes) {\n var lanesArray = [];\n var lane = 1;\n\n for (var index = 0; index < REACT_TOTAL_NUM_LANES; index++) {\n if (lane & lanes) {\n lanesArray.push(lane);\n }\n\n lane *= 2;\n }\n\n return lanesArray;\n }\n\n var laneToLabelMap = typeof getLaneLabelMap === 'function' ? getLaneLabelMap() : null;\n\n function markMetadata() {\n markAndClear(\"--react-version-\".concat(reactVersion));\n markAndClear(\"--profiler-version-\".concat(SCHEDULING_PROFILER_VERSION));\n var ranges = getInternalModuleRanges();\n\n if (ranges) {\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n\n if (shared_isArray(range) && range.length === 2) {\n var _ranges$i = profilingHooks_slicedToArray(ranges[i], 2),\n startStackFrame = _ranges$i[0],\n stopStackFrame = _ranges$i[1];\n\n markAndClear(\"--react-internal-module-start-\".concat(startStackFrame));\n markAndClear(\"--react-internal-module-stop-\".concat(stopStackFrame));\n }\n }\n }\n\n if (laneToLabelMap != null) {\n var labels = Array.from(laneToLabelMap.values()).join(',');\n markAndClear(\"--react-lane-labels-\".concat(labels));\n }\n }\n\n function markAndClear(markName) {\n // This method won't be called unless these functions are defined, so we can skip the extra typeof check.\n performanceTarget.mark(markName);\n performanceTarget.clearMarks(markName);\n }\n\n function recordReactMeasureStarted(type, lanes) {\n // Decide what depth thi work should be rendered at, based on what's on the top of the stack.\n // It's okay to render over top of \"idle\" work but everything else should be on its own row.\n var depth = 0;\n\n if (currentReactMeasuresStack.length > 0) {\n var top = currentReactMeasuresStack[currentReactMeasuresStack.length - 1];\n depth = top.type === 'render-idle' ? top.depth : top.depth + 1;\n }\n\n var lanesArray = laneToLanesArray(lanes);\n var reactMeasure = {\n type: type,\n batchUID: currentBatchUID,\n depth: depth,\n lanes: lanesArray,\n timestamp: getRelativeTime(),\n duration: 0\n };\n currentReactMeasuresStack.push(reactMeasure);\n\n if (currentTimelineData) {\n var _currentTimelineData = currentTimelineData,\n batchUIDToMeasuresMap = _currentTimelineData.batchUIDToMeasuresMap,\n laneToReactMeasureMap = _currentTimelineData.laneToReactMeasureMap;\n var reactMeasures = batchUIDToMeasuresMap.get(currentBatchUID);\n\n if (reactMeasures != null) {\n reactMeasures.push(reactMeasure);\n } else {\n batchUIDToMeasuresMap.set(currentBatchUID, [reactMeasure]);\n }\n\n lanesArray.forEach(function (lane) {\n reactMeasures = laneToReactMeasureMap.get(lane);\n\n if (reactMeasures) {\n reactMeasures.push(reactMeasure);\n }\n });\n }\n }\n\n function recordReactMeasureCompleted(type) {\n var currentTime = getRelativeTime();\n\n if (currentReactMeasuresStack.length === 0) {\n console.error('Unexpected type \"%s\" completed at %sms while currentReactMeasuresStack is empty.', type, currentTime); // Ignore work \"completion\" user timing mark that doesn't complete anything\n\n return;\n }\n\n var top = currentReactMeasuresStack.pop(); // $FlowFixMe[incompatible-type]\n\n if (top.type !== type) {\n console.error('Unexpected type \"%s\" completed at %sms before \"%s\" completed.', type, currentTime, // $FlowFixMe[incompatible-use]\n top.type);\n } // $FlowFixMe[cannot-write] This property should not be writable outside of this function.\n // $FlowFixMe[incompatible-use]\n\n\n top.duration = currentTime - top.timestamp;\n\n if (currentTimelineData) {\n currentTimelineData.duration = getRelativeTime() + TIME_OFFSET;\n }\n }\n\n function markCommitStarted(lanes) {\n if (isProfiling) {\n recordReactMeasureStarted('commit', lanes); // TODO (timeline) Re-think this approach to \"batching\"; I don't think it works for Suspense or pre-rendering.\n // This issue applies to the User Timing data also.\n\n nextRenderShouldStartNewBatch = true;\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\"--commit-start-\".concat(lanes)); // Some metadata only needs to be logged once per session,\n // but if profiling information is being recorded via the Performance tab,\n // DevTools has no way of knowing when the recording starts.\n // Because of that, we log thie type of data periodically (once per commit).\n\n markMetadata();\n }\n }\n\n function markCommitStopped() {\n if (isProfiling) {\n recordReactMeasureCompleted('commit');\n recordReactMeasureCompleted('render-idle');\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--commit-stop');\n }\n }\n\n function markComponentRenderStarted(fiber) {\n if (isProfiling || supportsUserTimingV3) {\n var componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (isProfiling) {\n currentReactComponentMeasure = {\n componentName: componentName,\n duration: 0,\n timestamp: getRelativeTime(),\n type: 'render',\n warning: null\n };\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\"--component-render-start-\".concat(componentName));\n }\n }\n }\n\n function markComponentRenderStopped() {\n if (isProfiling) {\n if (currentReactComponentMeasure) {\n if (currentTimelineData) {\n currentTimelineData.componentMeasures.push(currentReactComponentMeasure);\n } // $FlowFixMe[incompatible-use] found when upgrading Flow\n\n\n currentReactComponentMeasure.duration = // $FlowFixMe[incompatible-use] found when upgrading Flow\n getRelativeTime() - currentReactComponentMeasure.timestamp;\n currentReactComponentMeasure = null;\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--component-render-stop');\n }\n }\n\n function markComponentLayoutEffectMountStarted(fiber) {\n if (isProfiling || supportsUserTimingV3) {\n var componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (isProfiling) {\n currentReactComponentMeasure = {\n componentName: componentName,\n duration: 0,\n timestamp: getRelativeTime(),\n type: 'layout-effect-mount',\n warning: null\n };\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\"--component-layout-effect-mount-start-\".concat(componentName));\n }\n }\n }\n\n function markComponentLayoutEffectMountStopped() {\n if (isProfiling) {\n if (currentReactComponentMeasure) {\n if (currentTimelineData) {\n currentTimelineData.componentMeasures.push(currentReactComponentMeasure);\n } // $FlowFixMe[incompatible-use] found when upgrading Flow\n\n\n currentReactComponentMeasure.duration = // $FlowFixMe[incompatible-use] found when upgrading Flow\n getRelativeTime() - currentReactComponentMeasure.timestamp;\n currentReactComponentMeasure = null;\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--component-layout-effect-mount-stop');\n }\n }\n\n function markComponentLayoutEffectUnmountStarted(fiber) {\n if (isProfiling || supportsUserTimingV3) {\n var componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (isProfiling) {\n currentReactComponentMeasure = {\n componentName: componentName,\n duration: 0,\n timestamp: getRelativeTime(),\n type: 'layout-effect-unmount',\n warning: null\n };\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\"--component-layout-effect-unmount-start-\".concat(componentName));\n }\n }\n }\n\n function markComponentLayoutEffectUnmountStopped() {\n if (isProfiling) {\n if (currentReactComponentMeasure) {\n if (currentTimelineData) {\n currentTimelineData.componentMeasures.push(currentReactComponentMeasure);\n } // $FlowFixMe[incompatible-use] found when upgrading Flow\n\n\n currentReactComponentMeasure.duration = // $FlowFixMe[incompatible-use] found when upgrading Flow\n getRelativeTime() - currentReactComponentMeasure.timestamp;\n currentReactComponentMeasure = null;\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--component-layout-effect-unmount-stop');\n }\n }\n\n function markComponentPassiveEffectMountStarted(fiber) {\n if (isProfiling || supportsUserTimingV3) {\n var componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (isProfiling) {\n currentReactComponentMeasure = {\n componentName: componentName,\n duration: 0,\n timestamp: getRelativeTime(),\n type: 'passive-effect-mount',\n warning: null\n };\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\"--component-passive-effect-mount-start-\".concat(componentName));\n }\n }\n }\n\n function markComponentPassiveEffectMountStopped() {\n if (isProfiling) {\n if (currentReactComponentMeasure) {\n if (currentTimelineData) {\n currentTimelineData.componentMeasures.push(currentReactComponentMeasure);\n } // $FlowFixMe[incompatible-use] found when upgrading Flow\n\n\n currentReactComponentMeasure.duration = // $FlowFixMe[incompatible-use] found when upgrading Flow\n getRelativeTime() - currentReactComponentMeasure.timestamp;\n currentReactComponentMeasure = null;\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--component-passive-effect-mount-stop');\n }\n }\n\n function markComponentPassiveEffectUnmountStarted(fiber) {\n if (isProfiling || supportsUserTimingV3) {\n var componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (isProfiling) {\n currentReactComponentMeasure = {\n componentName: componentName,\n duration: 0,\n timestamp: getRelativeTime(),\n type: 'passive-effect-unmount',\n warning: null\n };\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\"--component-passive-effect-unmount-start-\".concat(componentName));\n }\n }\n }\n\n function markComponentPassiveEffectUnmountStopped() {\n if (isProfiling) {\n if (currentReactComponentMeasure) {\n if (currentTimelineData) {\n currentTimelineData.componentMeasures.push(currentReactComponentMeasure);\n } // $FlowFixMe[incompatible-use] found when upgrading Flow\n\n\n currentReactComponentMeasure.duration = // $FlowFixMe[incompatible-use] found when upgrading Flow\n getRelativeTime() - currentReactComponentMeasure.timestamp;\n currentReactComponentMeasure = null;\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--component-passive-effect-unmount-stop');\n }\n }\n\n function markComponentErrored(fiber, thrownValue, lanes) {\n if (isProfiling || supportsUserTimingV3) {\n var componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n var phase = fiber.alternate === null ? 'mount' : 'update';\n var message = '';\n\n if (thrownValue !== null && profilingHooks_typeof(thrownValue) === 'object' && typeof thrownValue.message === 'string') {\n message = thrownValue.message;\n } else if (typeof thrownValue === 'string') {\n message = thrownValue;\n }\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (currentTimelineData) {\n currentTimelineData.thrownErrors.push({\n componentName: componentName,\n message: message,\n phase: phase,\n timestamp: getRelativeTime(),\n type: 'thrown-error'\n });\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\"--error-\".concat(componentName, \"-\").concat(phase, \"-\").concat(message));\n }\n }\n }\n\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map; // $FlowFixMe[incompatible-type]: Flow cannot handle polymorphic WeakMaps\n\n var wakeableIDs = new PossiblyWeakMap();\n var wakeableID = 0;\n\n function getWakeableID(wakeable) {\n if (!wakeableIDs.has(wakeable)) {\n wakeableIDs.set(wakeable, wakeableID++);\n }\n\n return wakeableIDs.get(wakeable);\n }\n\n function markComponentSuspended(fiber, wakeable, lanes) {\n if (isProfiling || supportsUserTimingV3) {\n var eventType = wakeableIDs.has(wakeable) ? 'resuspend' : 'suspend';\n var id = getWakeableID(wakeable);\n var componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n var phase = fiber.alternate === null ? 'mount' : 'update'; // Following the non-standard fn.displayName convention,\n // frameworks like Relay may also annotate Promises with a displayName,\n // describing what operation/data the thrown Promise is related to.\n // When this is available we should pass it along to the Timeline.\n\n var displayName = wakeable.displayName || '';\n var suspenseEvent = null;\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n suspenseEvent = {\n componentName: componentName,\n depth: 0,\n duration: 0,\n id: \"\".concat(id),\n phase: phase,\n promiseName: displayName,\n resolution: 'unresolved',\n timestamp: getRelativeTime(),\n type: 'suspense',\n warning: null\n };\n\n if (currentTimelineData) {\n currentTimelineData.suspenseEvents.push(suspenseEvent);\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\"--suspense-\".concat(eventType, \"-\").concat(id, \"-\").concat(componentName, \"-\").concat(phase, \"-\").concat(lanes, \"-\").concat(displayName));\n }\n\n wakeable.then(function () {\n if (suspenseEvent) {\n suspenseEvent.duration = getRelativeTime() - suspenseEvent.timestamp;\n suspenseEvent.resolution = 'resolved';\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\"--suspense-resolved-\".concat(id, \"-\").concat(componentName));\n }\n }, function () {\n if (suspenseEvent) {\n suspenseEvent.duration = getRelativeTime() - suspenseEvent.timestamp;\n suspenseEvent.resolution = 'rejected';\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\"--suspense-rejected-\".concat(id, \"-\").concat(componentName));\n }\n });\n }\n }\n\n function markLayoutEffectsStarted(lanes) {\n if (isProfiling) {\n recordReactMeasureStarted('layout-effects', lanes);\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\"--layout-effects-start-\".concat(lanes));\n }\n }\n\n function markLayoutEffectsStopped() {\n if (isProfiling) {\n recordReactMeasureCompleted('layout-effects');\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--layout-effects-stop');\n }\n }\n\n function markPassiveEffectsStarted(lanes) {\n if (isProfiling) {\n recordReactMeasureStarted('passive-effects', lanes);\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\"--passive-effects-start-\".concat(lanes));\n }\n }\n\n function markPassiveEffectsStopped() {\n if (isProfiling) {\n recordReactMeasureCompleted('passive-effects');\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--passive-effects-stop');\n }\n }\n\n function markRenderStarted(lanes) {\n if (isProfiling) {\n if (nextRenderShouldStartNewBatch) {\n nextRenderShouldStartNewBatch = false;\n currentBatchUID++;\n } // If this is a new batch of work, wrap an \"idle\" measure around it.\n // Log it before the \"render\" measure to preserve the stack ordering.\n\n\n if (currentReactMeasuresStack.length === 0 || currentReactMeasuresStack[currentReactMeasuresStack.length - 1].type !== 'render-idle') {\n recordReactMeasureStarted('render-idle', lanes);\n }\n\n recordReactMeasureStarted('render', lanes);\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\"--render-start-\".concat(lanes));\n }\n }\n\n function markRenderYielded() {\n if (isProfiling) {\n recordReactMeasureCompleted('render');\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--render-yield');\n }\n }\n\n function markRenderStopped() {\n if (isProfiling) {\n recordReactMeasureCompleted('render');\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--render-stop');\n }\n }\n\n function markRenderScheduled(lane) {\n if (isProfiling) {\n if (currentTimelineData) {\n currentTimelineData.schedulingEvents.push({\n lanes: laneToLanesArray(lane),\n timestamp: getRelativeTime(),\n type: 'schedule-render',\n warning: null\n });\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\"--schedule-render-\".concat(lane));\n }\n }\n\n function markForceUpdateScheduled(fiber, lane) {\n if (isProfiling || supportsUserTimingV3) {\n var componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (currentTimelineData) {\n currentTimelineData.schedulingEvents.push({\n componentName: componentName,\n lanes: laneToLanesArray(lane),\n timestamp: getRelativeTime(),\n type: 'schedule-force-update',\n warning: null\n });\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\"--schedule-forced-update-\".concat(lane, \"-\").concat(componentName));\n }\n }\n }\n\n function getParentFibers(fiber) {\n var parents = [];\n var parent = fiber;\n\n while (parent !== null) {\n parents.push(parent);\n parent = parent.return;\n }\n\n return parents;\n }\n\n function markStateUpdateScheduled(fiber, lane) {\n if (isProfiling || supportsUserTimingV3) {\n var componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (currentTimelineData) {\n var event = {\n componentName: componentName,\n // Store the parent fibers so we can post process\n // them after we finish profiling\n lanes: laneToLanesArray(lane),\n timestamp: getRelativeTime(),\n type: 'schedule-state-update',\n warning: null\n };\n currentFiberStacks.set(event, getParentFibers(fiber)); // $FlowFixMe[incompatible-use] found when upgrading Flow\n\n currentTimelineData.schedulingEvents.push(event);\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\"--schedule-state-update-\".concat(lane, \"-\").concat(componentName));\n }\n }\n }\n\n function toggleProfilingStatus(value) {\n var recordTimeline = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (isProfiling !== value) {\n isProfiling = value;\n\n if (isProfiling) {\n var internalModuleSourceToRanges = new Map();\n\n if (supportsUserTimingV3) {\n var ranges = getInternalModuleRanges();\n\n if (ranges) {\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n\n if (shared_isArray(range) && range.length === 2) {\n var _ranges$i2 = profilingHooks_slicedToArray(ranges[i], 2),\n startStackFrame = _ranges$i2[0],\n stopStackFrame = _ranges$i2[1];\n\n markAndClear(\"--react-internal-module-start-\".concat(startStackFrame));\n markAndClear(\"--react-internal-module-stop-\".concat(stopStackFrame));\n }\n }\n }\n }\n\n var laneToReactMeasureMap = new Map();\n var lane = 1;\n\n for (var index = 0; index < REACT_TOTAL_NUM_LANES; index++) {\n laneToReactMeasureMap.set(lane, []);\n lane *= 2;\n }\n\n currentBatchUID = 0;\n currentReactComponentMeasure = null;\n currentReactMeasuresStack = [];\n currentFiberStacks = new Map();\n\n if (recordTimeline) {\n currentTimelineData = {\n // Session wide metadata; only collected once.\n internalModuleSourceToRanges: internalModuleSourceToRanges,\n laneToLabelMap: laneToLabelMap || new Map(),\n reactVersion: reactVersion,\n // Data logged by React during profiling session.\n componentMeasures: [],\n schedulingEvents: [],\n suspenseEvents: [],\n thrownErrors: [],\n // Data inferred based on what React logs.\n batchUIDToMeasuresMap: new Map(),\n duration: 0,\n laneToReactMeasureMap: laneToReactMeasureMap,\n startTime: 0,\n // Data only available in Chrome profiles.\n flamechart: [],\n nativeEvents: [],\n networkMeasures: [],\n otherUserTimingMarks: [],\n snapshots: [],\n snapshotHeight: 0\n };\n }\n\n nextRenderShouldStartNewBatch = true;\n } else {\n // This is __EXPENSIVE__.\n // We could end up with hundreds of state updated, and for each one of them\n // would try to create a component stack with possibly hundreds of Fibers.\n // Creating a cache of component stacks won't help, generating a single stack is already expensive enough.\n // We should find a way to lazily generate component stacks on demand, when user inspects a specific event.\n // If we succeed with moving React DevTools Timeline Profiler to Performance panel, then Timeline Profiler would probably be removed.\n // If not, then once enableOwnerStacks is adopted, revisit this again and cache component stacks per Fiber,\n // but only return them when needed, sending hundreds of component stacks is beyond the Bridge's bandwidth.\n // Postprocess Profile data\n if (currentTimelineData !== null) {\n currentTimelineData.schedulingEvents.forEach(function (event) {\n if (event.type === 'schedule-state-update') {\n // TODO(luna): We can optimize this by creating a map of\n // fiber to component stack instead of generating the stack\n // for every fiber every time\n var fiberStack = currentFiberStacks.get(event);\n\n if (fiberStack && currentDispatcherRef != null) {\n event.componentStack = fiberStack.reduce(function (trace, fiber) {\n return trace + describeFiber(workTagMap, fiber, currentDispatcherRef);\n }, '');\n }\n }\n });\n } // Clear the current fiber stacks so we don't hold onto the fibers\n // in memory after profiling finishes\n\n\n currentFiberStacks.clear();\n }\n }\n }\n\n return {\n getTimelineData: getTimelineData,\n profilingHooks: {\n markCommitStarted: markCommitStarted,\n markCommitStopped: markCommitStopped,\n markComponentRenderStarted: markComponentRenderStarted,\n markComponentRenderStopped: markComponentRenderStopped,\n markComponentPassiveEffectMountStarted: markComponentPassiveEffectMountStarted,\n markComponentPassiveEffectMountStopped: markComponentPassiveEffectMountStopped,\n markComponentPassiveEffectUnmountStarted: markComponentPassiveEffectUnmountStarted,\n markComponentPassiveEffectUnmountStopped: markComponentPassiveEffectUnmountStopped,\n markComponentLayoutEffectMountStarted: markComponentLayoutEffectMountStarted,\n markComponentLayoutEffectMountStopped: markComponentLayoutEffectMountStopped,\n markComponentLayoutEffectUnmountStarted: markComponentLayoutEffectUnmountStarted,\n markComponentLayoutEffectUnmountStopped: markComponentLayoutEffectUnmountStopped,\n markComponentErrored: markComponentErrored,\n markComponentSuspended: markComponentSuspended,\n markLayoutEffectsStarted: markLayoutEffectsStarted,\n markLayoutEffectsStopped: markLayoutEffectsStopped,\n markPassiveEffectsStarted: markPassiveEffectsStarted,\n markPassiveEffectsStopped: markPassiveEffectsStopped,\n markRenderStarted: markRenderStarted,\n markRenderYielded: markRenderYielded,\n markRenderStopped: markRenderStopped,\n markRenderScheduled: markRenderScheduled,\n markForceUpdateScheduled: markForceUpdateScheduled,\n markStateUpdateScheduled: markStateUpdateScheduled\n },\n toggleProfilingStatus: toggleProfilingStatus\n };\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/fiber/renderer.js\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction renderer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction renderer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { renderer_ownKeys(Object(source), true).forEach(function (key) { renderer_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { renderer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction renderer_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction fiber_renderer_toConsumableArray(arr) { return fiber_renderer_arrayWithoutHoles(arr) || fiber_renderer_iterableToArray(arr) || fiber_renderer_unsupportedIterableToArray(arr) || fiber_renderer_nonIterableSpread(); }\n\nfunction fiber_renderer_nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction fiber_renderer_iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction fiber_renderer_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return fiber_renderer_arrayLikeToArray(arr); }\n\nfunction renderer_createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = fiber_renderer_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction fiber_renderer_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return fiber_renderer_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return fiber_renderer_arrayLikeToArray(o, minLen); }\n\nfunction fiber_renderer_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction renderer_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { renderer_typeof = function _typeof(obj) { return typeof obj; }; } else { renderer_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return renderer_typeof(obj); }\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\n\n\n\n\n\n\n\n\n\n // $FlowFixMe[method-unbinding]\n\nvar renderer_toString = Object.prototype.toString;\n\nfunction isError(object) {\n return renderer_toString.call(object) === '[object Error]';\n}\n\n\n\n\n // Kinds\n\nvar FIBER_INSTANCE = 0;\nvar VIRTUAL_INSTANCE = 1;\nvar FILTERED_FIBER_INSTANCE = 2; // This type represents a stateful instance of a Client Component i.e. a Fiber pair.\n// These instances also let us track stateful DevTools meta data like id and warnings.\n\nfunction createFiberInstance(fiber) {\n return {\n kind: FIBER_INSTANCE,\n id: getUID(),\n parent: null,\n firstChild: null,\n nextSibling: null,\n source: null,\n logCount: 0,\n treeBaseDuration: 0,\n data: fiber\n };\n}\n\n// This is used to represent a filtered Fiber but still lets us find its host instance.\nfunction createFilteredFiberInstance(fiber) {\n return {\n kind: FILTERED_FIBER_INSTANCE,\n id: 0,\n parent: null,\n firstChild: null,\n nextSibling: null,\n source: null,\n logCount: 0,\n treeBaseDuration: 0,\n data: fiber\n };\n} // This type represents a stateful instance of a Server Component or a Component\n// that gets optimized away - e.g. call-through without creating a Fiber.\n// It's basically a virtual Fiber. This is not a semantic concept in React.\n// It only exists as a virtual concept to let the same Element in the DevTools\n// persist. To be selectable separately from all ReactComponentInfo and overtime.\n\n\nfunction createVirtualInstance(debugEntry) {\n return {\n kind: VIRTUAL_INSTANCE,\n id: getUID(),\n parent: null,\n firstChild: null,\n nextSibling: null,\n source: null,\n logCount: 0,\n treeBaseDuration: 0,\n data: debugEntry\n };\n}\n\nfunction getDispatcherRef(renderer) {\n if (renderer.currentDispatcherRef === undefined) {\n return undefined;\n }\n\n var injectedRef = renderer.currentDispatcherRef;\n\n if (typeof injectedRef.H === 'undefined' && typeof injectedRef.current !== 'undefined') {\n // We got a legacy dispatcher injected, let's create a wrapper proxy to translate.\n return {\n get H() {\n return injectedRef.current;\n },\n\n set H(value) {\n injectedRef.current = value;\n }\n\n };\n }\n\n return injectedRef;\n}\n\nfunction getFiberFlags(fiber) {\n // The name of this field changed from \"effectTag\" to \"flags\"\n return fiber.flags !== undefined ? fiber.flags : fiber.effectTag;\n} // Some environments (e.g. React Native / Hermes) don't support the performance API yet.\n\n\nvar renderer_getCurrentTime = // $FlowFixMe[method-unbinding]\n(typeof performance === \"undefined\" ? \"undefined\" : renderer_typeof(performance)) === 'object' && typeof performance.now === 'function' ? function () {\n return performance.now();\n} : function () {\n return Date.now();\n};\nfunction getInternalReactConstants(version) {\n // **********************************************************\n // The section below is copied from files in React repo.\n // Keep it in sync, and add version guards if it changes.\n //\n // Technically these priority levels are invalid for versions before 16.9,\n // but 16.9 is the first version to report priority level to DevTools,\n // so we can avoid checking for earlier versions and support pre-16.9 canary releases in the process.\n var ReactPriorityLevels = {\n ImmediatePriority: 99,\n UserBlockingPriority: 98,\n NormalPriority: 97,\n LowPriority: 96,\n IdlePriority: 95,\n NoPriority: 90\n };\n\n if (gt(version, '17.0.2')) {\n ReactPriorityLevels = {\n ImmediatePriority: 1,\n UserBlockingPriority: 2,\n NormalPriority: 3,\n LowPriority: 4,\n IdlePriority: 5,\n NoPriority: 0\n };\n }\n\n var StrictModeBits = 0;\n\n if (gte(version, '18.0.0-alpha')) {\n // 18+\n StrictModeBits = 24;\n } else if (gte(version, '16.9.0')) {\n // 16.9 - 17\n StrictModeBits = 1;\n } else if (gte(version, '16.3.0')) {\n // 16.3 - 16.8\n StrictModeBits = 2;\n }\n\n var ReactTypeOfWork = null; // **********************************************************\n // The section below is copied from files in React repo.\n // Keep it in sync, and add version guards if it changes.\n //\n // TODO Update the gt() check below to be gte() whichever the next version number is.\n // Currently the version in Git is 17.0.2 (but that version has not been/may not end up being released).\n\n if (gt(version, '17.0.1')) {\n ReactTypeOfWork = {\n CacheComponent: 24,\n // Experimental\n ClassComponent: 1,\n ContextConsumer: 9,\n ContextProvider: 10,\n CoroutineComponent: -1,\n // Removed\n CoroutineHandlerPhase: -1,\n // Removed\n DehydratedSuspenseComponent: 18,\n // Behind a flag\n ForwardRef: 11,\n Fragment: 7,\n FunctionComponent: 0,\n HostComponent: 5,\n HostPortal: 4,\n HostRoot: 3,\n HostHoistable: 26,\n // In reality, 18.2+. But doesn't hurt to include it here\n HostSingleton: 27,\n // Same as above\n HostText: 6,\n IncompleteClassComponent: 17,\n IncompleteFunctionComponent: 28,\n IndeterminateComponent: 2,\n // removed in 19.0.0\n LazyComponent: 16,\n LegacyHiddenComponent: 23,\n MemoComponent: 14,\n Mode: 8,\n OffscreenComponent: 22,\n // Experimental\n Profiler: 12,\n ScopeComponent: 21,\n // Experimental\n SimpleMemoComponent: 15,\n SuspenseComponent: 13,\n SuspenseListComponent: 19,\n // Experimental\n TracingMarkerComponent: 25,\n // Experimental - This is technically in 18 but we don't\n // want to fork again so we're adding it here instead\n YieldComponent: -1,\n // Removed\n Throw: 29,\n ViewTransitionComponent: 30 // Experimental\n\n };\n } else if (gte(version, '17.0.0-alpha')) {\n ReactTypeOfWork = {\n CacheComponent: -1,\n // Doesn't exist yet\n ClassComponent: 1,\n ContextConsumer: 9,\n ContextProvider: 10,\n CoroutineComponent: -1,\n // Removed\n CoroutineHandlerPhase: -1,\n // Removed\n DehydratedSuspenseComponent: 18,\n // Behind a flag\n ForwardRef: 11,\n Fragment: 7,\n FunctionComponent: 0,\n HostComponent: 5,\n HostPortal: 4,\n HostRoot: 3,\n HostHoistable: -1,\n // Doesn't exist yet\n HostSingleton: -1,\n // Doesn't exist yet\n HostText: 6,\n IncompleteClassComponent: 17,\n IncompleteFunctionComponent: -1,\n // Doesn't exist yet\n IndeterminateComponent: 2,\n LazyComponent: 16,\n LegacyHiddenComponent: 24,\n MemoComponent: 14,\n Mode: 8,\n OffscreenComponent: 23,\n // Experimental\n Profiler: 12,\n ScopeComponent: 21,\n // Experimental\n SimpleMemoComponent: 15,\n SuspenseComponent: 13,\n SuspenseListComponent: 19,\n // Experimental\n TracingMarkerComponent: -1,\n // Doesn't exist yet\n YieldComponent: -1,\n // Removed\n Throw: -1,\n // Doesn't exist yet\n ViewTransitionComponent: -1 // Doesn't exist yet\n\n };\n } else if (gte(version, '16.6.0-beta.0')) {\n ReactTypeOfWork = {\n CacheComponent: -1,\n // Doesn't exist yet\n ClassComponent: 1,\n ContextConsumer: 9,\n ContextProvider: 10,\n CoroutineComponent: -1,\n // Removed\n CoroutineHandlerPhase: -1,\n // Removed\n DehydratedSuspenseComponent: 18,\n // Behind a flag\n ForwardRef: 11,\n Fragment: 7,\n FunctionComponent: 0,\n HostComponent: 5,\n HostPortal: 4,\n HostRoot: 3,\n HostHoistable: -1,\n // Doesn't exist yet\n HostSingleton: -1,\n // Doesn't exist yet\n HostText: 6,\n IncompleteClassComponent: 17,\n IncompleteFunctionComponent: -1,\n // Doesn't exist yet\n IndeterminateComponent: 2,\n LazyComponent: 16,\n LegacyHiddenComponent: -1,\n MemoComponent: 14,\n Mode: 8,\n OffscreenComponent: -1,\n // Experimental\n Profiler: 12,\n ScopeComponent: -1,\n // Experimental\n SimpleMemoComponent: 15,\n SuspenseComponent: 13,\n SuspenseListComponent: 19,\n // Experimental\n TracingMarkerComponent: -1,\n // Doesn't exist yet\n YieldComponent: -1,\n // Removed\n Throw: -1,\n // Doesn't exist yet\n ViewTransitionComponent: -1 // Doesn't exist yet\n\n };\n } else if (gte(version, '16.4.3-alpha')) {\n ReactTypeOfWork = {\n CacheComponent: -1,\n // Doesn't exist yet\n ClassComponent: 2,\n ContextConsumer: 11,\n ContextProvider: 12,\n CoroutineComponent: -1,\n // Removed\n CoroutineHandlerPhase: -1,\n // Removed\n DehydratedSuspenseComponent: -1,\n // Doesn't exist yet\n ForwardRef: 13,\n Fragment: 9,\n FunctionComponent: 0,\n HostComponent: 7,\n HostPortal: 6,\n HostRoot: 5,\n HostHoistable: -1,\n // Doesn't exist yet\n HostSingleton: -1,\n // Doesn't exist yet\n HostText: 8,\n IncompleteClassComponent: -1,\n // Doesn't exist yet\n IncompleteFunctionComponent: -1,\n // Doesn't exist yet\n IndeterminateComponent: 4,\n LazyComponent: -1,\n // Doesn't exist yet\n LegacyHiddenComponent: -1,\n MemoComponent: -1,\n // Doesn't exist yet\n Mode: 10,\n OffscreenComponent: -1,\n // Experimental\n Profiler: 15,\n ScopeComponent: -1,\n // Experimental\n SimpleMemoComponent: -1,\n // Doesn't exist yet\n SuspenseComponent: 16,\n SuspenseListComponent: -1,\n // Doesn't exist yet\n TracingMarkerComponent: -1,\n // Doesn't exist yet\n YieldComponent: -1,\n // Removed\n Throw: -1,\n // Doesn't exist yet\n ViewTransitionComponent: -1 // Doesn't exist yet\n\n };\n } else {\n ReactTypeOfWork = {\n CacheComponent: -1,\n // Doesn't exist yet\n ClassComponent: 2,\n ContextConsumer: 12,\n ContextProvider: 13,\n CoroutineComponent: 7,\n CoroutineHandlerPhase: 8,\n DehydratedSuspenseComponent: -1,\n // Doesn't exist yet\n ForwardRef: 14,\n Fragment: 10,\n FunctionComponent: 1,\n HostComponent: 5,\n HostPortal: 4,\n HostRoot: 3,\n HostHoistable: -1,\n // Doesn't exist yet\n HostSingleton: -1,\n // Doesn't exist yet\n HostText: 6,\n IncompleteClassComponent: -1,\n // Doesn't exist yet\n IncompleteFunctionComponent: -1,\n // Doesn't exist yet\n IndeterminateComponent: 0,\n LazyComponent: -1,\n // Doesn't exist yet\n LegacyHiddenComponent: -1,\n MemoComponent: -1,\n // Doesn't exist yet\n Mode: 11,\n OffscreenComponent: -1,\n // Experimental\n Profiler: 15,\n ScopeComponent: -1,\n // Experimental\n SimpleMemoComponent: -1,\n // Doesn't exist yet\n SuspenseComponent: 16,\n SuspenseListComponent: -1,\n // Doesn't exist yet\n TracingMarkerComponent: -1,\n // Doesn't exist yet\n YieldComponent: 9,\n Throw: -1,\n // Doesn't exist yet\n ViewTransitionComponent: -1 // Doesn't exist yet\n\n };\n } // **********************************************************\n // End of copied code.\n // **********************************************************\n\n\n function getTypeSymbol(type) {\n var symbolOrNumber = renderer_typeof(type) === 'object' && type !== null ? type.$$typeof : type;\n return renderer_typeof(symbolOrNumber) === 'symbol' ? // $FlowFixMe[incompatible-return] `toString()` doesn't match the type signature?\n symbolOrNumber.toString() : symbolOrNumber;\n }\n\n var _ReactTypeOfWork = ReactTypeOfWork,\n CacheComponent = _ReactTypeOfWork.CacheComponent,\n ClassComponent = _ReactTypeOfWork.ClassComponent,\n IncompleteClassComponent = _ReactTypeOfWork.IncompleteClassComponent,\n IncompleteFunctionComponent = _ReactTypeOfWork.IncompleteFunctionComponent,\n FunctionComponent = _ReactTypeOfWork.FunctionComponent,\n IndeterminateComponent = _ReactTypeOfWork.IndeterminateComponent,\n ForwardRef = _ReactTypeOfWork.ForwardRef,\n HostRoot = _ReactTypeOfWork.HostRoot,\n HostHoistable = _ReactTypeOfWork.HostHoistable,\n HostSingleton = _ReactTypeOfWork.HostSingleton,\n HostComponent = _ReactTypeOfWork.HostComponent,\n HostPortal = _ReactTypeOfWork.HostPortal,\n HostText = _ReactTypeOfWork.HostText,\n Fragment = _ReactTypeOfWork.Fragment,\n LazyComponent = _ReactTypeOfWork.LazyComponent,\n LegacyHiddenComponent = _ReactTypeOfWork.LegacyHiddenComponent,\n MemoComponent = _ReactTypeOfWork.MemoComponent,\n OffscreenComponent = _ReactTypeOfWork.OffscreenComponent,\n Profiler = _ReactTypeOfWork.Profiler,\n ScopeComponent = _ReactTypeOfWork.ScopeComponent,\n SimpleMemoComponent = _ReactTypeOfWork.SimpleMemoComponent,\n SuspenseComponent = _ReactTypeOfWork.SuspenseComponent,\n SuspenseListComponent = _ReactTypeOfWork.SuspenseListComponent,\n TracingMarkerComponent = _ReactTypeOfWork.TracingMarkerComponent,\n Throw = _ReactTypeOfWork.Throw,\n ViewTransitionComponent = _ReactTypeOfWork.ViewTransitionComponent;\n\n function resolveFiberType(type) {\n var typeSymbol = getTypeSymbol(type);\n\n switch (typeSymbol) {\n case MEMO_NUMBER:\n case MEMO_SYMBOL_STRING:\n // recursively resolving memo type in case of memo(forwardRef(Component))\n return resolveFiberType(type.type);\n\n case FORWARD_REF_NUMBER:\n case FORWARD_REF_SYMBOL_STRING:\n return type.render;\n\n default:\n return type;\n }\n } // NOTICE Keep in sync with shouldFilterFiber() and other get*ForFiber methods\n\n\n function getDisplayNameForFiber(fiber) {\n var _fiber$updateQueue, _fiber$memoizedState, _fiber$memoizedState$, _fiber$memoizedState2, _fiber$memoizedState3;\n\n var shouldSkipForgetCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var elementType = fiber.elementType,\n type = fiber.type,\n tag = fiber.tag;\n var resolvedType = type;\n\n if (renderer_typeof(type) === 'object' && type !== null) {\n resolvedType = resolveFiberType(type);\n }\n\n var resolvedContext = null;\n\n if (!shouldSkipForgetCheck && ( // $FlowFixMe[incompatible-type] fiber.updateQueue is mixed\n ((_fiber$updateQueue = fiber.updateQueue) === null || _fiber$updateQueue === void 0 ? void 0 : _fiber$updateQueue.memoCache) != null || Array.isArray((_fiber$memoizedState = fiber.memoizedState) === null || _fiber$memoizedState === void 0 ? void 0 : _fiber$memoizedState.memoizedState) && ((_fiber$memoizedState$ = fiber.memoizedState.memoizedState[0]) === null || _fiber$memoizedState$ === void 0 ? void 0 : _fiber$memoizedState$[ReactSymbols_REACT_MEMO_CACHE_SENTINEL]) || ((_fiber$memoizedState2 = fiber.memoizedState) === null || _fiber$memoizedState2 === void 0 ? void 0 : (_fiber$memoizedState3 = _fiber$memoizedState2.memoizedState) === null || _fiber$memoizedState3 === void 0 ? void 0 : _fiber$memoizedState3[ReactSymbols_REACT_MEMO_CACHE_SENTINEL]))) {\n var displayNameWithoutForgetWrapper = getDisplayNameForFiber(fiber, true);\n\n if (displayNameWithoutForgetWrapper == null) {\n return null;\n }\n\n return \"Forget(\".concat(displayNameWithoutForgetWrapper, \")\");\n }\n\n switch (tag) {\n case CacheComponent:\n return 'Cache';\n\n case ClassComponent:\n case IncompleteClassComponent:\n case IncompleteFunctionComponent:\n case FunctionComponent:\n case IndeterminateComponent:\n return getDisplayName(resolvedType);\n\n case ForwardRef:\n return getWrappedDisplayName(elementType, resolvedType, 'ForwardRef', 'Anonymous');\n\n case HostRoot:\n var fiberRoot = fiber.stateNode;\n\n if (fiberRoot != null && fiberRoot._debugRootType !== null) {\n return fiberRoot._debugRootType;\n }\n\n return null;\n\n case HostComponent:\n case HostSingleton:\n case HostHoistable:\n return type;\n\n case HostPortal:\n case HostText:\n return null;\n\n case Fragment:\n return 'Fragment';\n\n case LazyComponent:\n // This display name will not be user visible.\n // Once a Lazy component loads its inner component, React replaces the tag and type.\n // This display name will only show up in console logs when DevTools DEBUG mode is on.\n return 'Lazy';\n\n case MemoComponent:\n case SimpleMemoComponent:\n // Display name in React does not use `Memo` as a wrapper but fallback name.\n return getWrappedDisplayName(elementType, resolvedType, 'Memo', 'Anonymous');\n\n case SuspenseComponent:\n return 'Suspense';\n\n case LegacyHiddenComponent:\n return 'LegacyHidden';\n\n case OffscreenComponent:\n return 'Offscreen';\n\n case ScopeComponent:\n return 'Scope';\n\n case SuspenseListComponent:\n return 'SuspenseList';\n\n case Profiler:\n return 'Profiler';\n\n case TracingMarkerComponent:\n return 'TracingMarker';\n\n case ViewTransitionComponent:\n return 'ViewTransition';\n\n case Throw:\n // This should really never be visible.\n return 'Error';\n\n default:\n var typeSymbol = getTypeSymbol(type);\n\n switch (typeSymbol) {\n case CONCURRENT_MODE_NUMBER:\n case CONCURRENT_MODE_SYMBOL_STRING:\n case DEPRECATED_ASYNC_MODE_SYMBOL_STRING:\n return null;\n\n case PROVIDER_NUMBER:\n case PROVIDER_SYMBOL_STRING:\n // 16.3.0 exposed the context object as \"context\"\n // PR #12501 changed it to \"_context\" for 16.3.1+\n // NOTE Keep in sync with inspectElementRaw()\n resolvedContext = fiber.type._context || fiber.type.context;\n return \"\".concat(resolvedContext.displayName || 'Context', \".Provider\");\n\n case CONTEXT_NUMBER:\n case CONTEXT_SYMBOL_STRING:\n case SERVER_CONTEXT_SYMBOL_STRING:\n if (fiber.type._context === undefined && fiber.type.Provider === fiber.type) {\n // In 19+, Context.Provider === Context, so this is a provider.\n resolvedContext = fiber.type;\n return \"\".concat(resolvedContext.displayName || 'Context', \".Provider\");\n } // 16.3-16.5 read from \"type\" because the Consumer is the actual context object.\n // 16.6+ should read from \"type._context\" because Consumer can be different (in DEV).\n // NOTE Keep in sync with inspectElementRaw()\n\n\n resolvedContext = fiber.type._context || fiber.type; // NOTE: TraceUpdatesBackendManager depends on the name ending in '.Consumer'\n // If you change the name, figure out a more resilient way to detect it.\n\n return \"\".concat(resolvedContext.displayName || 'Context', \".Consumer\");\n\n case CONSUMER_SYMBOL_STRING:\n // 19+\n resolvedContext = fiber.type._context;\n return \"\".concat(resolvedContext.displayName || 'Context', \".Consumer\");\n\n case STRICT_MODE_NUMBER:\n case STRICT_MODE_SYMBOL_STRING:\n return null;\n\n case PROFILER_NUMBER:\n case PROFILER_SYMBOL_STRING:\n return \"Profiler(\".concat(fiber.memoizedProps.id, \")\");\n\n case SCOPE_NUMBER:\n case SCOPE_SYMBOL_STRING:\n return 'Scope';\n\n default:\n // Unknown element type.\n // This may mean a new element type that has not yet been added to DevTools.\n return null;\n }\n\n }\n }\n\n return {\n getDisplayNameForFiber: getDisplayNameForFiber,\n getTypeSymbol: getTypeSymbol,\n ReactPriorityLevels: ReactPriorityLevels,\n ReactTypeOfWork: ReactTypeOfWork,\n StrictModeBits: StrictModeBits\n };\n} // All environment names we've seen so far. This lets us create a list of filters to apply.\n// This should ideally include env of filtered Components too so that you can add those as\n// filters at the same time as removing some other filter.\n\nvar knownEnvironmentNames = new Set(); // Map of FiberRoot to their root FiberInstance.\n\nvar rootToFiberInstanceMap = new Map(); // Map of id to FiberInstance or VirtualInstance.\n// This Map is used to e.g. get the display name for a Fiber or schedule an update,\n// operations that should be the same whether the current and work-in-progress Fiber is used.\n\nvar idToDevToolsInstanceMap = new Map(); // Map of canonical HostInstances to the nearest parent DevToolsInstance.\n\nvar publicInstanceToDevToolsInstanceMap = new Map(); // Map of resource DOM nodes to all the nearest DevToolsInstances that depend on it.\n\nvar hostResourceToDevToolsInstanceMap = new Map(); // Ideally, this should be injected from Reconciler config\n\nfunction getPublicInstance(instance) {\n // Typically the PublicInstance and HostInstance is the same thing but not in Fabric.\n // So we need to detect this and use that as the public instance.\n // React Native. Modern. Fabric.\n if (renderer_typeof(instance) === 'object' && instance !== null) {\n if (renderer_typeof(instance.canonical) === 'object' && instance.canonical !== null) {\n if (renderer_typeof(instance.canonical.publicInstance) === 'object' && instance.canonical.publicInstance !== null) {\n return instance.canonical.publicInstance;\n }\n } // React Native. Legacy. Paper.\n\n\n if (typeof instance._nativeTag === 'number') {\n return instance._nativeTag;\n }\n } // React Web. Usually a DOM element.\n\n\n return instance;\n}\n\nfunction aquireHostInstance(nearestInstance, hostInstance) {\n var publicInstance = getPublicInstance(hostInstance);\n publicInstanceToDevToolsInstanceMap.set(publicInstance, nearestInstance);\n}\n\nfunction releaseHostInstance(nearestInstance, hostInstance) {\n var publicInstance = getPublicInstance(hostInstance);\n\n if (publicInstanceToDevToolsInstanceMap.get(publicInstance) === nearestInstance) {\n publicInstanceToDevToolsInstanceMap.delete(publicInstance);\n }\n}\n\nfunction aquireHostResource(nearestInstance, resource) {\n var hostInstance = resource && resource.instance;\n\n if (hostInstance) {\n var publicInstance = getPublicInstance(hostInstance);\n var resourceInstances = hostResourceToDevToolsInstanceMap.get(publicInstance);\n\n if (resourceInstances === undefined) {\n resourceInstances = new Set();\n hostResourceToDevToolsInstanceMap.set(publicInstance, resourceInstances); // Store the first match in the main map for quick access when selecting DOM node.\n\n publicInstanceToDevToolsInstanceMap.set(publicInstance, nearestInstance);\n }\n\n resourceInstances.add(nearestInstance);\n }\n}\n\nfunction releaseHostResource(nearestInstance, resource) {\n var hostInstance = resource && resource.instance;\n\n if (hostInstance) {\n var publicInstance = getPublicInstance(hostInstance);\n var resourceInstances = hostResourceToDevToolsInstanceMap.get(publicInstance);\n\n if (resourceInstances !== undefined) {\n resourceInstances.delete(nearestInstance);\n\n if (resourceInstances.size === 0) {\n hostResourceToDevToolsInstanceMap.delete(publicInstance);\n publicInstanceToDevToolsInstanceMap.delete(publicInstance);\n } else if (publicInstanceToDevToolsInstanceMap.get(publicInstance) === nearestInstance) {\n // This was the first one. Store the next first one in the main map for easy access.\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n var _iterator = renderer_createForOfIteratorHelper(resourceInstances),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var firstInstance = _step.value;\n publicInstanceToDevToolsInstanceMap.set(firstInstance, nearestInstance);\n break;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }\n }\n}\n\nfunction renderer_attach(hook, rendererID, renderer, global, shouldStartProfilingNow, profilingSettings) {\n // Newer versions of the reconciler package also specific reconciler version.\n // If that version number is present, use it.\n // Third party renderer versions may not match the reconciler version,\n // and the latter is what's important in terms of tags and symbols.\n var version = renderer.reconcilerVersion || renderer.version;\n\n var _getInternalReactCons = getInternalReactConstants(version),\n getDisplayNameForFiber = _getInternalReactCons.getDisplayNameForFiber,\n getTypeSymbol = _getInternalReactCons.getTypeSymbol,\n ReactPriorityLevels = _getInternalReactCons.ReactPriorityLevels,\n ReactTypeOfWork = _getInternalReactCons.ReactTypeOfWork,\n StrictModeBits = _getInternalReactCons.StrictModeBits;\n\n var CacheComponent = ReactTypeOfWork.CacheComponent,\n ClassComponent = ReactTypeOfWork.ClassComponent,\n ContextConsumer = ReactTypeOfWork.ContextConsumer,\n DehydratedSuspenseComponent = ReactTypeOfWork.DehydratedSuspenseComponent,\n ForwardRef = ReactTypeOfWork.ForwardRef,\n Fragment = ReactTypeOfWork.Fragment,\n FunctionComponent = ReactTypeOfWork.FunctionComponent,\n HostRoot = ReactTypeOfWork.HostRoot,\n HostHoistable = ReactTypeOfWork.HostHoistable,\n HostSingleton = ReactTypeOfWork.HostSingleton,\n HostPortal = ReactTypeOfWork.HostPortal,\n HostComponent = ReactTypeOfWork.HostComponent,\n HostText = ReactTypeOfWork.HostText,\n IncompleteClassComponent = ReactTypeOfWork.IncompleteClassComponent,\n IncompleteFunctionComponent = ReactTypeOfWork.IncompleteFunctionComponent,\n IndeterminateComponent = ReactTypeOfWork.IndeterminateComponent,\n LegacyHiddenComponent = ReactTypeOfWork.LegacyHiddenComponent,\n MemoComponent = ReactTypeOfWork.MemoComponent,\n OffscreenComponent = ReactTypeOfWork.OffscreenComponent,\n SimpleMemoComponent = ReactTypeOfWork.SimpleMemoComponent,\n SuspenseComponent = ReactTypeOfWork.SuspenseComponent,\n SuspenseListComponent = ReactTypeOfWork.SuspenseListComponent,\n TracingMarkerComponent = ReactTypeOfWork.TracingMarkerComponent,\n Throw = ReactTypeOfWork.Throw,\n ViewTransitionComponent = ReactTypeOfWork.ViewTransitionComponent;\n var ImmediatePriority = ReactPriorityLevels.ImmediatePriority,\n UserBlockingPriority = ReactPriorityLevels.UserBlockingPriority,\n NormalPriority = ReactPriorityLevels.NormalPriority,\n LowPriority = ReactPriorityLevels.LowPriority,\n IdlePriority = ReactPriorityLevels.IdlePriority,\n NoPriority = ReactPriorityLevels.NoPriority;\n var getLaneLabelMap = renderer.getLaneLabelMap,\n injectProfilingHooks = renderer.injectProfilingHooks,\n overrideHookState = renderer.overrideHookState,\n overrideHookStateDeletePath = renderer.overrideHookStateDeletePath,\n overrideHookStateRenamePath = renderer.overrideHookStateRenamePath,\n overrideProps = renderer.overrideProps,\n overridePropsDeletePath = renderer.overridePropsDeletePath,\n overridePropsRenamePath = renderer.overridePropsRenamePath,\n scheduleRefresh = renderer.scheduleRefresh,\n setErrorHandler = renderer.setErrorHandler,\n setSuspenseHandler = renderer.setSuspenseHandler,\n scheduleUpdate = renderer.scheduleUpdate,\n getCurrentFiber = renderer.getCurrentFiber;\n var supportsTogglingError = typeof setErrorHandler === 'function' && typeof scheduleUpdate === 'function';\n var supportsTogglingSuspense = typeof setSuspenseHandler === 'function' && typeof scheduleUpdate === 'function';\n\n if (typeof scheduleRefresh === 'function') {\n // When Fast Refresh updates a component, the frontend may need to purge cached information.\n // For example, ASTs cached for the component (for named hooks) may no longer be valid.\n // Send a signal to the frontend to purge this cached information.\n // The \"fastRefreshScheduled\" dispatched is global (not Fiber or even Renderer specific).\n // This is less effecient since it means the front-end will need to purge the entire cache,\n // but this is probably an okay trade off in order to reduce coupling between the DevTools and Fast Refresh.\n renderer.scheduleRefresh = function () {\n try {\n hook.emit('fastRefreshScheduled');\n } finally {\n return scheduleRefresh.apply(void 0, arguments);\n }\n };\n }\n\n var getTimelineData = null;\n var toggleProfilingStatus = null;\n\n if (typeof injectProfilingHooks === 'function') {\n var response = createProfilingHooks({\n getDisplayNameForFiber: getDisplayNameForFiber,\n getIsProfiling: function getIsProfiling() {\n return isProfiling;\n },\n getLaneLabelMap: getLaneLabelMap,\n currentDispatcherRef: getDispatcherRef(renderer),\n workTagMap: ReactTypeOfWork,\n reactVersion: version\n }); // Pass the Profiling hooks to the reconciler for it to call during render.\n\n injectProfilingHooks(response.profilingHooks); // Hang onto this toggle so we can notify the external methods of profiling status changes.\n\n getTimelineData = response.getTimelineData;\n toggleProfilingStatus = response.toggleProfilingStatus;\n }\n\n // Tracks Errors/Warnings logs added to a Fiber. They are added before the commit and get\n // picked up a FiberInstance. This keeps it around as long as the Fiber is alive which\n // lets the Fiber get reparented/remounted and still observe the previous errors/warnings.\n // Unless we explicitly clear the logs from a Fiber.\n var fiberToComponentLogsMap = new WeakMap(); // Tracks whether we've performed a commit since the last log. This is used to know\n // whether we received any new logs between the commit and post commit phases. I.e.\n // if any passive effects called console.warn / console.error.\n\n var needsToFlushComponentLogs = false;\n\n function bruteForceFlushErrorsAndWarnings() {\n // Refresh error/warning count for all mounted unfiltered Fibers.\n var hasChanges = false; // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n\n var _iterator2 = renderer_createForOfIteratorHelper(idToDevToolsInstanceMap.values()),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var devtoolsInstance = _step2.value;\n\n if (devtoolsInstance.kind === FIBER_INSTANCE) {\n var _fiber = devtoolsInstance.data;\n var componentLogsEntry = fiberToComponentLogsMap.get(_fiber);\n var changed = recordConsoleLogs(devtoolsInstance, componentLogsEntry);\n\n if (changed) {\n hasChanges = true;\n updateMostRecentlyInspectedElementIfNecessary(devtoolsInstance.id);\n }\n } else {// Virtual Instances cannot log in passive effects and so never appear here.\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n if (hasChanges) {\n flushPendingEvents();\n }\n }\n\n function clearErrorsAndWarnings() {\n // Note, this only clears logs for Fibers that have instances. If they're filtered\n // and then mount, the logs are there. Ensuring we only clear what you've seen.\n // If we wanted to clear the whole set, we'd replace fiberToComponentLogsMap with a\n // new WeakMap. It's unclear whether we should clear componentInfoToComponentLogsMap\n // since it's shared by other renderers but presumably it would.\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n var _iterator3 = renderer_createForOfIteratorHelper(idToDevToolsInstanceMap.values()),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var devtoolsInstance = _step3.value;\n\n if (devtoolsInstance.kind === FIBER_INSTANCE) {\n var _fiber2 = devtoolsInstance.data;\n fiberToComponentLogsMap.delete(_fiber2);\n\n if (_fiber2.alternate) {\n fiberToComponentLogsMap.delete(_fiber2.alternate);\n }\n } else {\n componentInfoToComponentLogsMap[\"delete\"](devtoolsInstance.data);\n }\n\n var changed = recordConsoleLogs(devtoolsInstance, undefined);\n\n if (changed) {\n updateMostRecentlyInspectedElementIfNecessary(devtoolsInstance.id);\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n flushPendingEvents();\n }\n\n function clearConsoleLogsHelper(instanceID, type) {\n var devtoolsInstance = idToDevToolsInstanceMap.get(instanceID);\n\n if (devtoolsInstance !== undefined) {\n var componentLogsEntry;\n\n if (devtoolsInstance.kind === FIBER_INSTANCE) {\n var _fiber3 = devtoolsInstance.data;\n componentLogsEntry = fiberToComponentLogsMap.get(_fiber3);\n\n if (componentLogsEntry === undefined && _fiber3.alternate !== null) {\n componentLogsEntry = fiberToComponentLogsMap.get(_fiber3.alternate);\n }\n } else {\n var componentInfo = devtoolsInstance.data;\n componentLogsEntry = componentInfoToComponentLogsMap.get(componentInfo);\n }\n\n if (componentLogsEntry !== undefined) {\n if (type === 'error') {\n componentLogsEntry.errors.clear();\n componentLogsEntry.errorsCount = 0;\n } else {\n componentLogsEntry.warnings.clear();\n componentLogsEntry.warningsCount = 0;\n }\n\n var changed = recordConsoleLogs(devtoolsInstance, componentLogsEntry);\n\n if (changed) {\n flushPendingEvents();\n updateMostRecentlyInspectedElementIfNecessary(devtoolsInstance.id);\n }\n }\n }\n }\n\n function clearErrorsForElementID(instanceID) {\n clearConsoleLogsHelper(instanceID, 'error');\n }\n\n function clearWarningsForElementID(instanceID) {\n clearConsoleLogsHelper(instanceID, 'warn');\n }\n\n function updateMostRecentlyInspectedElementIfNecessary(fiberID) {\n if (mostRecentlyInspectedElement !== null && mostRecentlyInspectedElement.id === fiberID) {\n hasElementUpdatedSinceLastInspected = true;\n }\n }\n\n function getComponentStack(topFrame) {\n if (getCurrentFiber == null) {\n // Expected this to be part of the renderer. Ignore.\n return null;\n }\n\n var current = getCurrentFiber();\n\n if (current === null) {\n // Outside of our render scope.\n return null;\n }\n\n if (DevToolsFiberComponentStack_supportsConsoleTasks(current)) {\n // This will be handled natively by console.createTask. No need for\n // DevTools to add it.\n return null;\n }\n\n var dispatcherRef = getDispatcherRef(renderer);\n\n if (dispatcherRef === undefined) {\n return null;\n }\n\n var enableOwnerStacks = supportsOwnerStacks(current);\n var componentStack = '';\n\n if (enableOwnerStacks) {\n // Prefix the owner stack with the current stack. I.e. what called\n // console.error. While this will also be part of the native stack,\n // it is hidden and not presented alongside this argument so we print\n // them all together.\n var topStackFrames = formatOwnerStack(topFrame);\n\n if (topStackFrames) {\n componentStack += '\\n' + topStackFrames;\n }\n\n componentStack += getOwnerStackByFiberInDev(ReactTypeOfWork, current, dispatcherRef);\n } else {\n componentStack = getStackByFiberInDevAndProd(ReactTypeOfWork, current, dispatcherRef);\n }\n\n return {\n enableOwnerStacks: enableOwnerStacks,\n componentStack: componentStack\n };\n } // Called when an error or warning is logged during render, commit, or passive (including unmount functions).\n\n\n function onErrorOrWarning(type, args) {\n if (getCurrentFiber == null) {\n // Expected this to be part of the renderer. Ignore.\n return;\n }\n\n var fiber = getCurrentFiber();\n\n if (fiber === null) {\n // Outside of our render scope.\n return;\n }\n\n if (type === 'error') {\n // if this is an error simulated by us to trigger error boundary, ignore\n if (forceErrorForFibers.get(fiber) === true || fiber.alternate !== null && forceErrorForFibers.get(fiber.alternate) === true) {\n return;\n }\n } // We can't really use this message as a unique key, since we can't distinguish\n // different objects in this implementation. We have to delegate displaying of the objects\n // to the environment, the browser console, for example, so this is why this should be kept\n // as an array of arguments, instead of the plain string.\n // [Warning: %o, {...}] and [Warning: %o, {...}] will be considered as the same message,\n // even if objects are different\n\n\n var message = formatConsoleArgumentsToSingleString.apply(void 0, fiber_renderer_toConsumableArray(args)); // Track the warning/error for later.\n\n var componentLogsEntry = fiberToComponentLogsMap.get(fiber);\n\n if (componentLogsEntry === undefined && fiber.alternate !== null) {\n componentLogsEntry = fiberToComponentLogsMap.get(fiber.alternate);\n\n if (componentLogsEntry !== undefined) {\n // Use the same set for both Fibers.\n fiberToComponentLogsMap.set(fiber, componentLogsEntry);\n }\n }\n\n if (componentLogsEntry === undefined) {\n componentLogsEntry = {\n errors: new Map(),\n errorsCount: 0,\n warnings: new Map(),\n warningsCount: 0\n };\n fiberToComponentLogsMap.set(fiber, componentLogsEntry);\n }\n\n var messageMap = type === 'error' ? componentLogsEntry.errors : componentLogsEntry.warnings;\n var count = messageMap.get(message) || 0;\n messageMap.set(message, count + 1);\n\n if (type === 'error') {\n componentLogsEntry.errorsCount++;\n } else {\n componentLogsEntry.warningsCount++;\n } // The changes will be flushed later when we commit.\n // If the log happened in a passive effect, then this happens after we've\n // already committed the new tree so the change won't show up until we rerender\n // that component again. We need to visit a Component with passive effects in\n // handlePostCommitFiberRoot again to ensure that we flush the changes after passive.\n\n\n needsToFlushComponentLogs = true;\n }\n\n function debug(name, instance, parentInstance) {\n var extraString = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n\n if (__DEBUG__) {\n var displayName = instance.kind === VIRTUAL_INSTANCE ? instance.data.name || 'null' : instance.data.tag + ':' + (getDisplayNameForFiber(instance.data) || 'null');\n var maybeID = instance.kind === FILTERED_FIBER_INSTANCE ? '<no id>' : instance.id;\n var parentDisplayName = parentInstance === null ? '' : parentInstance.kind === VIRTUAL_INSTANCE ? parentInstance.data.name || 'null' : parentInstance.data.tag + ':' + (getDisplayNameForFiber(parentInstance.data) || 'null');\n var maybeParentID = parentInstance === null || parentInstance.kind === FILTERED_FIBER_INSTANCE ? '<no id>' : parentInstance.id;\n console.groupCollapsed(\"[renderer] %c\".concat(name, \" %c\").concat(displayName, \" (\").concat(maybeID, \") %c\").concat(parentInstance ? \"\".concat(parentDisplayName, \" (\").concat(maybeParentID, \")\") : '', \" %c\").concat(extraString), 'color: red; font-weight: bold;', 'color: blue;', 'color: purple;', 'color: black;');\n console.log(new Error().stack.split('\\n').slice(1).join('\\n'));\n console.groupEnd();\n }\n } // eslint-disable-next-line no-unused-vars\n\n\n function debugTree(instance) {\n var indent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (__DEBUG__) {\n var name = (instance.kind !== VIRTUAL_INSTANCE ? getDisplayNameForFiber(instance.data) : instance.data.name) || '';\n console.log(' '.repeat(indent) + '- ' + (instance.kind === FILTERED_FIBER_INSTANCE ? 0 : instance.id) + ' (' + name + ')', 'parent', instance.parent === null ? ' ' : instance.parent.kind === FILTERED_FIBER_INSTANCE ? 0 : instance.parent.id, 'next', instance.nextSibling === null ? ' ' : instance.nextSibling.id);\n var child = instance.firstChild;\n\n while (child !== null) {\n debugTree(child, indent + 1);\n child = child.nextSibling;\n }\n }\n } // Configurable Components tree filters.\n\n\n var hideElementsWithDisplayNames = new Set();\n var hideElementsWithPaths = new Set();\n var hideElementsWithTypes = new Set();\n var hideElementsWithEnvs = new Set(); // Highlight updates\n\n var traceUpdatesEnabled = false;\n var traceUpdatesForNodes = new Set();\n\n function applyComponentFilters(componentFilters) {\n hideElementsWithTypes.clear();\n hideElementsWithDisplayNames.clear();\n hideElementsWithPaths.clear();\n hideElementsWithEnvs.clear();\n componentFilters.forEach(function (componentFilter) {\n if (!componentFilter.isEnabled) {\n return;\n }\n\n switch (componentFilter.type) {\n case ComponentFilterDisplayName:\n if (componentFilter.isValid && componentFilter.value !== '') {\n hideElementsWithDisplayNames.add(new RegExp(componentFilter.value, 'i'));\n }\n\n break;\n\n case ComponentFilterElementType:\n hideElementsWithTypes.add(componentFilter.value);\n break;\n\n case ComponentFilterLocation:\n if (componentFilter.isValid && componentFilter.value !== '') {\n hideElementsWithPaths.add(new RegExp(componentFilter.value, 'i'));\n }\n\n break;\n\n case ComponentFilterHOC:\n hideElementsWithDisplayNames.add(new RegExp('\\\\('));\n break;\n\n case ComponentFilterEnvironmentName:\n hideElementsWithEnvs.add(componentFilter.value);\n break;\n\n default:\n console.warn(\"Invalid component filter type \\\"\".concat(componentFilter.type, \"\\\"\"));\n break;\n }\n });\n } // The renderer interface can't read saved component filters directly,\n // because they are stored in localStorage within the context of the extension.\n // Instead it relies on the extension to pass filters through.\n\n\n if (window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ != null) {\n var componentFiltersWithoutLocationBasedOnes = filterOutLocationComponentFilters(window.__REACT_DEVTOOLS_COMPONENT_FILTERS__);\n applyComponentFilters(componentFiltersWithoutLocationBasedOnes);\n } else {\n // Unfortunately this feature is not expected to work for React Native for now.\n // It would be annoying for us to spam YellowBox warnings with unactionable stuff,\n // so for now just skip this message...\n //console.warn('⚛ DevTools: Could not locate saved component filters');\n // Fallback to assuming the default filters in this case.\n applyComponentFilters(getDefaultComponentFilters());\n } // If necessary, we can revisit optimizing this operation.\n // For example, we could add a new recursive unmount tree operation.\n // The unmount operations are already significantly smaller than mount operations though.\n // This is something to keep in mind for later.\n\n\n function updateComponentFilters(componentFilters) {\n if (isProfiling) {\n // Re-mounting a tree while profiling is in progress might break a lot of assumptions.\n // If necessary, we could support this- but it doesn't seem like a necessary use case.\n throw Error('Cannot modify filter preferences while profiling');\n } // Recursively unmount all roots.\n\n\n hook.getFiberRoots(rendererID).forEach(function (root) {\n var rootInstance = rootToFiberInstanceMap.get(root);\n\n if (rootInstance === undefined) {\n throw new Error('Expected the root instance to already exist when applying filters');\n }\n\n currentRoot = rootInstance;\n unmountInstanceRecursively(rootInstance);\n rootToFiberInstanceMap.delete(root);\n flushPendingEvents(root);\n currentRoot = null;\n });\n applyComponentFilters(componentFilters); // Reset pseudo counters so that new path selections will be persisted.\n\n rootDisplayNameCounter.clear(); // Recursively re-mount all roots with new filter criteria applied.\n\n hook.getFiberRoots(rendererID).forEach(function (root) {\n var current = root.current;\n var newRoot = createFiberInstance(current);\n rootToFiberInstanceMap.set(root, newRoot);\n idToDevToolsInstanceMap.set(newRoot.id, newRoot); // Before the traversals, remember to start tracking\n // our path in case we have selection to restore.\n\n if (trackedPath !== null) {\n mightBeOnTrackedPath = true;\n }\n\n currentRoot = newRoot;\n setRootPseudoKey(currentRoot.id, root.current);\n mountFiberRecursively(root.current, false);\n flushPendingEvents(root);\n currentRoot = null;\n });\n flushPendingEvents();\n needsToFlushComponentLogs = false;\n }\n\n function getEnvironmentNames() {\n return Array.from(knownEnvironmentNames);\n }\n\n function shouldFilterVirtual(data, secondaryEnv) {\n // For purposes of filtering Server Components are always Function Components.\n // Environment will be used to filter Server vs Client.\n // Technically they can be forwardRef and memo too but those filters will go away\n // as those become just plain user space function components like any HoC.\n if (hideElementsWithTypes.has(types_ElementTypeFunction)) {\n return true;\n }\n\n if (hideElementsWithDisplayNames.size > 0) {\n var displayName = data.name;\n\n if (displayName != null) {\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n var _iterator4 = renderer_createForOfIteratorHelper(hideElementsWithDisplayNames),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var displayNameRegExp = _step4.value;\n\n if (displayNameRegExp.test(displayName)) {\n return true;\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n }\n\n if ((data.env == null || hideElementsWithEnvs.has(data.env)) && (secondaryEnv === null || hideElementsWithEnvs.has(secondaryEnv))) {\n // If a Component has two environments, you have to filter both for it not to appear.\n return true;\n }\n\n return false;\n } // NOTICE Keep in sync with get*ForFiber methods\n\n\n function shouldFilterFiber(fiber) {\n var tag = fiber.tag,\n type = fiber.type,\n key = fiber.key;\n\n switch (tag) {\n case DehydratedSuspenseComponent:\n // TODO: ideally we would show dehydrated Suspense immediately.\n // However, it has some special behavior (like disconnecting\n // an alternate and turning into real Suspense) which breaks DevTools.\n // For now, ignore it, and only show it once it gets hydrated.\n // https://github.com/bvaughn/react-devtools-experimental/issues/197\n return true;\n\n case HostPortal:\n case HostText:\n case LegacyHiddenComponent:\n case OffscreenComponent:\n case Throw:\n return true;\n\n case HostRoot:\n // It is never valid to filter the root element.\n return false;\n\n case Fragment:\n return key === null;\n\n default:\n var typeSymbol = getTypeSymbol(type);\n\n switch (typeSymbol) {\n case CONCURRENT_MODE_NUMBER:\n case CONCURRENT_MODE_SYMBOL_STRING:\n case DEPRECATED_ASYNC_MODE_SYMBOL_STRING:\n case STRICT_MODE_NUMBER:\n case STRICT_MODE_SYMBOL_STRING:\n return true;\n\n default:\n break;\n }\n\n }\n\n var elementType = getElementTypeForFiber(fiber);\n\n if (hideElementsWithTypes.has(elementType)) {\n return true;\n }\n\n if (hideElementsWithDisplayNames.size > 0) {\n var displayName = getDisplayNameForFiber(fiber);\n\n if (displayName != null) {\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n var _iterator5 = renderer_createForOfIteratorHelper(hideElementsWithDisplayNames),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var displayNameRegExp = _step5.value;\n\n if (displayNameRegExp.test(displayName)) {\n return true;\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n }\n }\n\n if (hideElementsWithEnvs.has('Client')) {\n // If we're filtering out the Client environment we should filter out all\n // \"Client Components\". Technically that also includes the built-ins but\n // since that doesn't actually include any additional code loading it's\n // useful to not filter out the built-ins. Those can be filtered separately.\n // There's no other way to filter out just Function components on the Client.\n // Therefore, this only filters Class and Function components.\n switch (tag) {\n case ClassComponent:\n case IncompleteClassComponent:\n case IncompleteFunctionComponent:\n case FunctionComponent:\n case IndeterminateComponent:\n case ForwardRef:\n case MemoComponent:\n case SimpleMemoComponent:\n return true;\n }\n }\n /* DISABLED: https://github.com/facebook/react/pull/28417\n if (hideElementsWithPaths.size > 0) {\n const source = getSourceForFiber(fiber);\n if (source != null) {\n const {fileName} = source;\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n for (const pathRegExp of hideElementsWithPaths) {\n if (pathRegExp.test(fileName)) {\n return true;\n }\n }\n }\n }\n */\n\n\n return false;\n } // NOTICE Keep in sync with shouldFilterFiber() and other get*ForFiber methods\n\n\n function getElementTypeForFiber(fiber) {\n var type = fiber.type,\n tag = fiber.tag;\n\n switch (tag) {\n case ClassComponent:\n case IncompleteClassComponent:\n return types_ElementTypeClass;\n\n case IncompleteFunctionComponent:\n case FunctionComponent:\n case IndeterminateComponent:\n return types_ElementTypeFunction;\n\n case ForwardRef:\n return types_ElementTypeForwardRef;\n\n case HostRoot:\n return ElementTypeRoot;\n\n case HostComponent:\n case HostHoistable:\n case HostSingleton:\n return ElementTypeHostComponent;\n\n case HostPortal:\n case HostText:\n case Fragment:\n return ElementTypeOtherOrUnknown;\n\n case MemoComponent:\n case SimpleMemoComponent:\n return types_ElementTypeMemo;\n\n case SuspenseComponent:\n return ElementTypeSuspense;\n\n case SuspenseListComponent:\n return ElementTypeSuspenseList;\n\n case TracingMarkerComponent:\n return ElementTypeTracingMarker;\n\n case ViewTransitionComponent:\n return ElementTypeViewTransition;\n\n default:\n var typeSymbol = getTypeSymbol(type);\n\n switch (typeSymbol) {\n case CONCURRENT_MODE_NUMBER:\n case CONCURRENT_MODE_SYMBOL_STRING:\n case DEPRECATED_ASYNC_MODE_SYMBOL_STRING:\n return ElementTypeOtherOrUnknown;\n\n case PROVIDER_NUMBER:\n case PROVIDER_SYMBOL_STRING:\n return ElementTypeContext;\n\n case CONTEXT_NUMBER:\n case CONTEXT_SYMBOL_STRING:\n return ElementTypeContext;\n\n case STRICT_MODE_NUMBER:\n case STRICT_MODE_SYMBOL_STRING:\n return ElementTypeOtherOrUnknown;\n\n case PROFILER_NUMBER:\n case PROFILER_SYMBOL_STRING:\n return ElementTypeProfiler;\n\n default:\n return ElementTypeOtherOrUnknown;\n }\n\n }\n } // When a mount or update is in progress, this value tracks the root that is being operated on.\n\n\n var currentRoot = null; // Removes a Fiber (and its alternate) from the Maps used to track their id.\n // This method should always be called when a Fiber is unmounting.\n\n function untrackFiber(nearestInstance, fiber) {\n if (forceErrorForFibers.size > 0) {\n forceErrorForFibers.delete(fiber);\n\n if (fiber.alternate) {\n forceErrorForFibers.delete(fiber.alternate);\n }\n\n if (forceErrorForFibers.size === 0 && setErrorHandler != null) {\n setErrorHandler(shouldErrorFiberAlwaysNull);\n }\n }\n\n if (forceFallbackForFibers.size > 0) {\n forceFallbackForFibers.delete(fiber);\n\n if (fiber.alternate) {\n forceFallbackForFibers.delete(fiber.alternate);\n }\n\n if (forceFallbackForFibers.size === 0 && setSuspenseHandler != null) {\n setSuspenseHandler(shouldSuspendFiberAlwaysFalse);\n }\n } // TODO: Consider using a WeakMap instead. The only thing where that doesn't work\n // is React Native Paper which tracks tags but that support is eventually going away\n // and can use the old findFiberByHostInstance strategy.\n\n\n if (fiber.tag === HostHoistable) {\n releaseHostResource(nearestInstance, fiber.memoizedState);\n } else if (fiber.tag === HostComponent || fiber.tag === HostText || fiber.tag === HostSingleton) {\n releaseHostInstance(nearestInstance, fiber.stateNode);\n } // Recursively clean up any filtered Fibers below this one as well since\n // we won't recordUnmount on those.\n\n\n for (var child = fiber.child; child !== null; child = child.sibling) {\n if (shouldFilterFiber(child)) {\n untrackFiber(nearestInstance, child);\n }\n }\n }\n\n function getChangeDescription(prevFiber, nextFiber) {\n switch (nextFiber.tag) {\n case ClassComponent:\n if (prevFiber === null) {\n return {\n context: null,\n didHooksChange: false,\n isFirstMount: true,\n props: null,\n state: null\n };\n } else {\n var data = {\n context: getContextChanged(prevFiber, nextFiber),\n didHooksChange: false,\n isFirstMount: false,\n props: getChangedKeys(prevFiber.memoizedProps, nextFiber.memoizedProps),\n state: getChangedKeys(prevFiber.memoizedState, nextFiber.memoizedState)\n };\n return data;\n }\n\n case IncompleteFunctionComponent:\n case FunctionComponent:\n case IndeterminateComponent:\n case ForwardRef:\n case MemoComponent:\n case SimpleMemoComponent:\n if (prevFiber === null) {\n return {\n context: null,\n didHooksChange: false,\n isFirstMount: true,\n props: null,\n state: null\n };\n } else {\n var indices = getChangedHooksIndices(prevFiber.memoizedState, nextFiber.memoizedState);\n var _data = {\n context: getContextChanged(prevFiber, nextFiber),\n didHooksChange: indices !== null && indices.length > 0,\n isFirstMount: false,\n props: getChangedKeys(prevFiber.memoizedProps, nextFiber.memoizedProps),\n state: null,\n hooks: indices\n }; // Only traverse the hooks list once, depending on what info we're returning.\n\n return _data;\n }\n\n default:\n return null;\n }\n }\n\n function getContextChanged(prevFiber, nextFiber) {\n var prevContext = prevFiber.dependencies && prevFiber.dependencies.firstContext;\n var nextContext = nextFiber.dependencies && nextFiber.dependencies.firstContext;\n\n while (prevContext && nextContext) {\n // Note this only works for versions of React that support this key (e.v. 18+)\n // For older versions, there's no good way to read the current context value after render has completed.\n // This is because React maintains a stack of context values during render,\n // but by the time DevTools is called, render has finished and the stack is empty.\n if (prevContext.context !== nextContext.context) {\n // If the order of context has changed, then the later context values might have\n // changed too but the main reason it rerendered was earlier. Either an earlier\n // context changed value but then we would have exited already. If we end up here\n // it's because a state or props change caused the order of contexts used to change.\n // So the main cause is not the contexts themselves.\n return false;\n }\n\n if (!shared_objectIs(prevContext.memoizedValue, nextContext.memoizedValue)) {\n return true;\n }\n\n prevContext = prevContext.next;\n nextContext = nextContext.next;\n }\n\n return false;\n }\n\n function isHookThatCanScheduleUpdate(hookObject) {\n var queue = hookObject.queue;\n\n if (!queue) {\n return false;\n }\n\n var boundHasOwnProperty = shared_hasOwnProperty.bind(queue); // Detect the shape of useState() / useReducer() / useTransition()\n // using the attributes that are unique to these hooks\n // but also stable (e.g. not tied to current Lanes implementation)\n // We don't check for dispatch property, because useTransition doesn't have it\n\n if (boundHasOwnProperty('pending')) {\n return true;\n } // Detect useSyncExternalStore()\n\n\n return boundHasOwnProperty('value') && boundHasOwnProperty('getSnapshot') && typeof queue.getSnapshot === 'function';\n }\n\n function didStatefulHookChange(prev, next) {\n var prevMemoizedState = prev.memoizedState;\n var nextMemoizedState = next.memoizedState;\n\n if (isHookThatCanScheduleUpdate(prev)) {\n return prevMemoizedState !== nextMemoizedState;\n }\n\n return false;\n }\n\n function getChangedHooksIndices(prev, next) {\n if (prev == null || next == null) {\n return null;\n }\n\n var indices = [];\n var index = 0;\n\n while (next !== null) {\n if (didStatefulHookChange(prev, next)) {\n indices.push(index);\n }\n\n next = next.next;\n prev = prev.next;\n index++;\n }\n\n return indices;\n }\n\n function getChangedKeys(prev, next) {\n if (prev == null || next == null) {\n return null;\n }\n\n var keys = new Set([].concat(fiber_renderer_toConsumableArray(Object.keys(prev)), fiber_renderer_toConsumableArray(Object.keys(next))));\n var changedKeys = []; // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n\n var _iterator6 = renderer_createForOfIteratorHelper(keys),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var key = _step6.value;\n\n if (prev[key] !== next[key]) {\n changedKeys.push(key);\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n return changedKeys;\n }\n\n function didFiberRender(prevFiber, nextFiber) {\n switch (nextFiber.tag) {\n case ClassComponent:\n case FunctionComponent:\n case ContextConsumer:\n case MemoComponent:\n case SimpleMemoComponent:\n case ForwardRef:\n // For types that execute user code, we check PerformedWork effect.\n // We don't reflect bailouts (either referential or sCU) in DevTools.\n // TODO: This flag is a leaked implementation detail. Once we start\n // releasing DevTools in lockstep with React, we should import a\n // function from the reconciler instead.\n var PerformedWork = 1;\n return (getFiberFlags(nextFiber) & PerformedWork) === PerformedWork;\n // Note: ContextConsumer only gets PerformedWork effect in 16.3.3+\n // so it won't get highlighted with React 16.3.0 to 16.3.2.\n\n default:\n // For host components and other types, we compare inputs\n // to determine whether something is an update.\n return prevFiber.memoizedProps !== nextFiber.memoizedProps || prevFiber.memoizedState !== nextFiber.memoizedState || prevFiber.ref !== nextFiber.ref;\n }\n }\n\n var pendingOperations = [];\n var pendingRealUnmountedIDs = [];\n var pendingOperationsQueue = [];\n var pendingStringTable = new Map();\n var pendingStringTableLength = 0;\n var pendingUnmountedRootID = null;\n\n function pushOperation(op) {\n if (false) {}\n\n pendingOperations.push(op);\n }\n\n function shouldBailoutWithPendingOperations() {\n if (isProfiling) {\n if (currentCommitProfilingMetadata != null && currentCommitProfilingMetadata.durations.length > 0) {\n return false;\n }\n }\n\n return pendingOperations.length === 0 && pendingRealUnmountedIDs.length === 0 && pendingUnmountedRootID === null;\n }\n\n function flushOrQueueOperations(operations) {\n if (shouldBailoutWithPendingOperations()) {\n return;\n }\n\n if (pendingOperationsQueue !== null) {\n pendingOperationsQueue.push(operations);\n } else {\n hook.emit('operations', operations);\n }\n }\n\n function recordConsoleLogs(instance, componentLogsEntry) {\n if (componentLogsEntry === undefined) {\n if (instance.logCount === 0) {\n // Nothing has changed.\n return false;\n } // Reset to zero.\n\n\n instance.logCount = 0;\n pushOperation(TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS);\n pushOperation(instance.id);\n pushOperation(0);\n pushOperation(0);\n return true;\n } else {\n var totalCount = componentLogsEntry.errorsCount + componentLogsEntry.warningsCount;\n\n if (instance.logCount === totalCount) {\n // Nothing has changed.\n return false;\n } // Update counts.\n\n\n instance.logCount = totalCount;\n pushOperation(TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS);\n pushOperation(instance.id);\n pushOperation(componentLogsEntry.errorsCount);\n pushOperation(componentLogsEntry.warningsCount);\n return true;\n }\n }\n\n function flushPendingEvents(root) {\n if (shouldBailoutWithPendingOperations()) {\n // If we aren't profiling, we can just bail out here.\n // No use sending an empty update over the bridge.\n //\n // The Profiler stores metadata for each commit and reconstructs the app tree per commit using:\n // (1) an initial tree snapshot and\n // (2) the operations array for each commit\n // Because of this, it's important that the operations and metadata arrays align,\n // So it's important not to omit even empty operations while profiling is active.\n return;\n }\n\n var numUnmountIDs = pendingRealUnmountedIDs.length + (pendingUnmountedRootID === null ? 0 : 1);\n var operations = new Array( // Identify which renderer this update is coming from.\n 2 + // [rendererID, rootFiberID]\n // How big is the string table?\n 1 + // [stringTableLength]\n // Then goes the actual string table.\n pendingStringTableLength + ( // All unmounts are batched in a single message.\n // [TREE_OPERATION_REMOVE, removedIDLength, ...ids]\n numUnmountIDs > 0 ? 2 + numUnmountIDs : 0) + // Regular operations\n pendingOperations.length); // Identify which renderer this update is coming from.\n // This enables roots to be mapped to renderers,\n // Which in turn enables fiber props, states, and hooks to be inspected.\n\n var i = 0;\n operations[i++] = rendererID;\n\n if (currentRoot === null) {\n // TODO: This is not always safe so this field is probably not needed.\n operations[i++] = -1;\n } else {\n operations[i++] = currentRoot.id;\n } // Now fill in the string table.\n // [stringTableLength, str1Length, ...str1, str2Length, ...str2, ...]\n\n\n operations[i++] = pendingStringTableLength;\n pendingStringTable.forEach(function (entry, stringKey) {\n var encodedString = entry.encodedString; // Don't use the string length.\n // It won't work for multibyte characters (like emoji).\n\n var length = encodedString.length;\n operations[i++] = length;\n\n for (var j = 0; j < length; j++) {\n operations[i + j] = encodedString[j];\n }\n\n i += length;\n });\n\n if (numUnmountIDs > 0) {\n // All unmounts except roots are batched in a single message.\n operations[i++] = TREE_OPERATION_REMOVE; // The first number is how many unmounted IDs we're gonna send.\n\n operations[i++] = numUnmountIDs; // Fill in the real unmounts in the reverse order.\n // They were inserted parents-first by React, but we want children-first.\n // So we traverse our array backwards.\n\n for (var j = 0; j < pendingRealUnmountedIDs.length; j++) {\n operations[i++] = pendingRealUnmountedIDs[j];\n } // The root ID should always be unmounted last.\n\n\n if (pendingUnmountedRootID !== null) {\n operations[i] = pendingUnmountedRootID;\n i++;\n }\n } // Fill in the rest of the operations.\n\n\n for (var _j = 0; _j < pendingOperations.length; _j++) {\n operations[i + _j] = pendingOperations[_j];\n }\n\n i += pendingOperations.length; // Let the frontend know about tree operations.\n\n flushOrQueueOperations(operations); // Reset all of the pending state now that we've told the frontend about it.\n\n pendingOperations.length = 0;\n pendingRealUnmountedIDs.length = 0;\n pendingUnmountedRootID = null;\n pendingStringTable.clear();\n pendingStringTableLength = 0;\n }\n\n function getStringID(string) {\n if (string === null) {\n return 0;\n }\n\n var existingEntry = pendingStringTable.get(string);\n\n if (existingEntry !== undefined) {\n return existingEntry.id;\n }\n\n var id = pendingStringTable.size + 1;\n var encodedString = utfEncodeString(string);\n pendingStringTable.set(string, {\n encodedString: encodedString,\n id: id\n }); // The string table total length needs to account both for the string length,\n // and for the array item that contains the length itself.\n //\n // Don't use string length for this table.\n // It won't work for multibyte characters (like emoji).\n\n pendingStringTableLength += encodedString.length + 1;\n return id;\n }\n\n function recordMount(fiber, parentInstance) {\n var isRoot = fiber.tag === HostRoot;\n var fiberInstance;\n\n if (isRoot) {\n var entry = rootToFiberInstanceMap.get(fiber.stateNode);\n\n if (entry === undefined) {\n throw new Error('The root should have been registered at this point');\n }\n\n fiberInstance = entry;\n } else {\n fiberInstance = createFiberInstance(fiber);\n }\n\n idToDevToolsInstanceMap.set(fiberInstance.id, fiberInstance);\n var id = fiberInstance.id;\n\n if (__DEBUG__) {\n debug('recordMount()', fiberInstance, parentInstance);\n }\n\n var isProfilingSupported = fiber.hasOwnProperty('treeBaseDuration');\n\n if (isRoot) {\n var hasOwnerMetadata = fiber.hasOwnProperty('_debugOwner'); // Adding a new field here would require a bridge protocol version bump (a backwads breaking change).\n // Instead let's re-purpose a pre-existing field to carry more information.\n\n var profilingFlags = 0;\n\n if (isProfilingSupported) {\n profilingFlags = PROFILING_FLAG_BASIC_SUPPORT;\n\n if (typeof injectProfilingHooks === 'function') {\n profilingFlags |= PROFILING_FLAG_TIMELINE_SUPPORT;\n }\n } // Set supportsStrictMode to false for production renderer builds\n\n\n var isProductionBuildOfRenderer = renderer.bundleType === 0;\n pushOperation(TREE_OPERATION_ADD);\n pushOperation(id);\n pushOperation(ElementTypeRoot);\n pushOperation((fiber.mode & StrictModeBits) !== 0 ? 1 : 0);\n pushOperation(profilingFlags);\n pushOperation(!isProductionBuildOfRenderer && StrictModeBits !== 0 ? 1 : 0);\n pushOperation(hasOwnerMetadata ? 1 : 0);\n\n if (isProfiling) {\n if (displayNamesByRootID !== null) {\n displayNamesByRootID.set(id, getDisplayNameForRoot(fiber));\n }\n }\n } else {\n var key = fiber.key;\n var displayName = getDisplayNameForFiber(fiber);\n var elementType = getElementTypeForFiber(fiber); // Finding the owner instance might require traversing the whole parent path which\n // doesn't have great big O notation. Ideally we'd lazily fetch the owner when we\n // need it but we have some synchronous operations in the front end like Alt+Left\n // which selects the owner immediately. Typically most owners are only a few parents\n // away so maybe it's not so bad.\n\n var debugOwner = getUnfilteredOwner(fiber);\n var ownerInstance = findNearestOwnerInstance(parentInstance, debugOwner);\n\n if (ownerInstance !== null && debugOwner === fiber._debugOwner && fiber._debugStack != null && ownerInstance.source === null) {\n // The new Fiber is directly owned by the ownerInstance. Therefore somewhere on\n // the debugStack will be a stack frame inside the ownerInstance's source.\n ownerInstance.source = fiber._debugStack;\n }\n\n var ownerID = ownerInstance === null ? 0 : ownerInstance.id;\n var parentID = parentInstance ? parentInstance.kind === FILTERED_FIBER_INSTANCE ? // A Filtered Fiber Instance will always have a Virtual Instance as a parent.\n parentInstance.parent.id : parentInstance.id : 0;\n var displayNameStringID = getStringID(displayName); // This check is a guard to handle a React element that has been modified\n // in such a way as to bypass the default stringification of the \"key\" property.\n\n var keyString = key === null ? null : String(key);\n var keyStringID = getStringID(keyString);\n pushOperation(TREE_OPERATION_ADD);\n pushOperation(id);\n pushOperation(elementType);\n pushOperation(parentID);\n pushOperation(ownerID);\n pushOperation(displayNameStringID);\n pushOperation(keyStringID); // If this subtree has a new mode, let the frontend know.\n\n if ((fiber.mode & StrictModeBits) !== 0) {\n var parentFiber = null;\n var parentFiberInstance = parentInstance;\n\n while (parentFiberInstance !== null) {\n if (parentFiberInstance.kind === FIBER_INSTANCE) {\n parentFiber = parentFiberInstance.data;\n break;\n }\n\n parentFiberInstance = parentFiberInstance.parent;\n }\n\n if (parentFiber === null || (parentFiber.mode & StrictModeBits) === 0) {\n pushOperation(TREE_OPERATION_SET_SUBTREE_MODE);\n pushOperation(id);\n pushOperation(StrictMode);\n }\n }\n }\n\n var componentLogsEntry = fiberToComponentLogsMap.get(fiber);\n\n if (componentLogsEntry === undefined && fiber.alternate !== null) {\n componentLogsEntry = fiberToComponentLogsMap.get(fiber.alternate);\n }\n\n recordConsoleLogs(fiberInstance, componentLogsEntry);\n\n if (isProfilingSupported) {\n recordProfilingDurations(fiberInstance, null);\n }\n\n return fiberInstance;\n }\n\n function recordVirtualMount(instance, parentInstance, secondaryEnv) {\n var id = instance.id;\n idToDevToolsInstanceMap.set(id, instance);\n var componentInfo = instance.data;\n var key = typeof componentInfo.key === 'string' ? componentInfo.key : null;\n var env = componentInfo.env;\n var displayName = componentInfo.name || '';\n\n if (typeof env === 'string') {\n // We model environment as an HoC name for now.\n if (secondaryEnv !== null) {\n displayName = secondaryEnv + '(' + displayName + ')';\n }\n\n displayName = env + '(' + displayName + ')';\n }\n\n var elementType = types_ElementTypeVirtual; // Finding the owner instance might require traversing the whole parent path which\n // doesn't have great big O notation. Ideally we'd lazily fetch the owner when we\n // need it but we have some synchronous operations in the front end like Alt+Left\n // which selects the owner immediately. Typically most owners are only a few parents\n // away so maybe it's not so bad.\n\n var debugOwner = getUnfilteredOwner(componentInfo);\n var ownerInstance = findNearestOwnerInstance(parentInstance, debugOwner);\n\n if (ownerInstance !== null && debugOwner === componentInfo.owner && componentInfo.debugStack != null && ownerInstance.source === null) {\n // The new Fiber is directly owned by the ownerInstance. Therefore somewhere on\n // the debugStack will be a stack frame inside the ownerInstance's source.\n ownerInstance.source = componentInfo.debugStack;\n }\n\n var ownerID = ownerInstance === null ? 0 : ownerInstance.id;\n var parentID = parentInstance ? parentInstance.kind === FILTERED_FIBER_INSTANCE ? // A Filtered Fiber Instance will always have a Virtual Instance as a parent.\n parentInstance.parent.id : parentInstance.id : 0;\n var displayNameStringID = getStringID(displayName); // This check is a guard to handle a React element that has been modified\n // in such a way as to bypass the default stringification of the \"key\" property.\n\n var keyString = key === null ? null : String(key);\n var keyStringID = getStringID(keyString);\n pushOperation(TREE_OPERATION_ADD);\n pushOperation(id);\n pushOperation(elementType);\n pushOperation(parentID);\n pushOperation(ownerID);\n pushOperation(displayNameStringID);\n pushOperation(keyStringID);\n var componentLogsEntry = componentInfoToComponentLogsMap.get(componentInfo);\n recordConsoleLogs(instance, componentLogsEntry);\n }\n\n function recordUnmount(fiberInstance) {\n var fiber = fiberInstance.data;\n\n if (__DEBUG__) {\n debug('recordUnmount()', fiberInstance, reconcilingParent);\n }\n\n if (trackedPathMatchInstance === fiberInstance) {\n // We're in the process of trying to restore previous selection.\n // If this fiber matched but is being unmounted, there's no use trying.\n // Reset the state so we don't keep holding onto it.\n setTrackedPath(null);\n }\n\n var id = fiberInstance.id;\n var isRoot = fiber.tag === HostRoot;\n\n if (isRoot) {\n // Roots must be removed only after all children have been removed.\n // So we track it separately.\n pendingUnmountedRootID = id;\n } else {\n // To maintain child-first ordering,\n // we'll push it into one of these queues,\n // and later arrange them in the correct order.\n pendingRealUnmountedIDs.push(id);\n }\n\n idToDevToolsInstanceMap.delete(fiberInstance.id);\n untrackFiber(fiberInstance, fiber);\n } // Running state of the remaining children from the previous version of this parent that\n // we haven't yet added back. This should be reset anytime we change parent.\n // Any remaining ones at the end will be deleted.\n\n\n var remainingReconcilingChildren = null; // The previously placed child.\n\n var previouslyReconciledSibling = null; // To save on stack allocation and ensure that they are updated as a pair, we also store\n // the current parent here as well.\n\n var reconcilingParent = null;\n\n function insertChild(instance) {\n var parentInstance = reconcilingParent;\n\n if (parentInstance === null) {\n // This instance is at the root.\n return;\n } // Place it in the parent.\n\n\n instance.parent = parentInstance;\n\n if (previouslyReconciledSibling === null) {\n previouslyReconciledSibling = instance;\n parentInstance.firstChild = instance;\n } else {\n previouslyReconciledSibling.nextSibling = instance;\n previouslyReconciledSibling = instance;\n }\n\n instance.nextSibling = null;\n }\n\n function moveChild(instance, previousSibling) {\n removeChild(instance, previousSibling);\n insertChild(instance);\n }\n\n function removeChild(instance, previousSibling) {\n if (instance.parent === null) {\n if (remainingReconcilingChildren === instance) {\n throw new Error('Remaining children should not have items with no parent');\n } else if (instance.nextSibling !== null) {\n throw new Error('A deleted instance should not have next siblings');\n } // Already deleted.\n\n\n return;\n }\n\n var parentInstance = reconcilingParent;\n\n if (parentInstance === null) {\n throw new Error('Should not have a parent if we are at the root');\n }\n\n if (instance.parent !== parentInstance) {\n throw new Error('Cannot remove a node from a different parent than is being reconciled.');\n } // Remove an existing child from its current position, which we assume is in the\n // remainingReconcilingChildren set.\n\n\n if (previousSibling === null) {\n // We're first in the remaining set. Remove us.\n if (remainingReconcilingChildren !== instance) {\n throw new Error('Expected a placed child to be moved from the remaining set.');\n }\n\n remainingReconcilingChildren = instance.nextSibling;\n } else {\n previousSibling.nextSibling = instance.nextSibling;\n }\n\n instance.nextSibling = null;\n instance.parent = null;\n }\n\n function unmountRemainingChildren() {\n var child = remainingReconcilingChildren;\n\n while (child !== null) {\n unmountInstanceRecursively(child);\n child = remainingReconcilingChildren;\n }\n }\n\n function mountVirtualInstanceRecursively(virtualInstance, firstChild, lastChild, // non-inclusive\n traceNearestHostComponentUpdate, virtualLevel // the nth level of virtual instances\n ) {\n // If we have the tree selection from previous reload, try to match this Instance.\n // Also remember whether to do the same for siblings.\n var mightSiblingsBeOnTrackedPath = updateVirtualTrackedPathStateBeforeMount(virtualInstance, reconcilingParent);\n var stashedParent = reconcilingParent;\n var stashedPrevious = previouslyReconciledSibling;\n var stashedRemaining = remainingReconcilingChildren; // Push a new DevTools instance parent while reconciling this subtree.\n\n reconcilingParent = virtualInstance;\n previouslyReconciledSibling = null;\n remainingReconcilingChildren = null;\n\n try {\n mountVirtualChildrenRecursively(firstChild, lastChild, traceNearestHostComponentUpdate, virtualLevel + 1); // Must be called after all children have been appended.\n\n recordVirtualProfilingDurations(virtualInstance);\n } finally {\n reconcilingParent = stashedParent;\n previouslyReconciledSibling = stashedPrevious;\n remainingReconcilingChildren = stashedRemaining;\n updateTrackedPathStateAfterMount(mightSiblingsBeOnTrackedPath);\n }\n }\n\n function recordVirtualUnmount(instance) {\n if (trackedPathMatchInstance === instance) {\n // We're in the process of trying to restore previous selection.\n // If this fiber matched but is being unmounted, there's no use trying.\n // Reset the state so we don't keep holding onto it.\n setTrackedPath(null);\n }\n\n var id = instance.id;\n pendingRealUnmountedIDs.push(id);\n }\n\n function getSecondaryEnvironmentName(debugInfo, index) {\n if (debugInfo != null) {\n var componentInfo = debugInfo[index];\n\n for (var i = index + 1; i < debugInfo.length; i++) {\n var debugEntry = debugInfo[i];\n\n if (typeof debugEntry.env === 'string') {\n // If the next environment is different then this component was the boundary\n // and it changed before entering the next component. So we assign this\n // component a secondary environment.\n return componentInfo.env !== debugEntry.env ? debugEntry.env : null;\n }\n }\n }\n\n return null;\n }\n\n function mountVirtualChildrenRecursively(firstChild, lastChild, // non-inclusive\n traceNearestHostComponentUpdate, virtualLevel // the nth level of virtual instances\n ) {\n // Iterate over siblings rather than recursing.\n // This reduces the chance of stack overflow for wide trees (e.g. lists with many items).\n var fiber = firstChild;\n var previousVirtualInstance = null;\n var previousVirtualInstanceFirstFiber = firstChild;\n\n while (fiber !== null && fiber !== lastChild) {\n var level = 0;\n\n if (fiber._debugInfo) {\n for (var i = 0; i < fiber._debugInfo.length; i++) {\n var debugEntry = fiber._debugInfo[i];\n\n if (typeof debugEntry.name !== 'string') {\n // Not a Component. Some other Debug Info.\n continue;\n } // Scan up until the next Component to see if this component changed environment.\n\n\n var componentInfo = debugEntry;\n var secondaryEnv = getSecondaryEnvironmentName(fiber._debugInfo, i);\n\n if (componentInfo.env != null) {\n knownEnvironmentNames.add(componentInfo.env);\n }\n\n if (secondaryEnv !== null) {\n knownEnvironmentNames.add(secondaryEnv);\n }\n\n if (shouldFilterVirtual(componentInfo, secondaryEnv)) {\n // Skip.\n continue;\n }\n\n if (level === virtualLevel) {\n if (previousVirtualInstance === null || // Consecutive children with the same debug entry as a parent gets\n // treated as if they share the same virtual instance.\n previousVirtualInstance.data !== debugEntry) {\n if (previousVirtualInstance !== null) {\n // Mount any previous children that should go into the previous parent.\n mountVirtualInstanceRecursively(previousVirtualInstance, previousVirtualInstanceFirstFiber, fiber, traceNearestHostComponentUpdate, virtualLevel);\n }\n\n previousVirtualInstance = createVirtualInstance(componentInfo);\n recordVirtualMount(previousVirtualInstance, reconcilingParent, secondaryEnv);\n insertChild(previousVirtualInstance);\n previousVirtualInstanceFirstFiber = fiber;\n }\n\n level++;\n break;\n } else {\n level++;\n }\n }\n }\n\n if (level === virtualLevel) {\n if (previousVirtualInstance !== null) {\n // If we were working on a virtual instance and this is not a virtual\n // instance, then we end the sequence and mount any previous children\n // that should go into the previous virtual instance.\n mountVirtualInstanceRecursively(previousVirtualInstance, previousVirtualInstanceFirstFiber, fiber, traceNearestHostComponentUpdate, virtualLevel);\n previousVirtualInstance = null;\n } // We've reached the end of the virtual levels, but not beyond,\n // and now continue with the regular fiber.\n\n\n mountFiberRecursively(fiber, traceNearestHostComponentUpdate);\n }\n\n fiber = fiber.sibling;\n }\n\n if (previousVirtualInstance !== null) {\n // Mount any previous children that should go into the previous parent.\n mountVirtualInstanceRecursively(previousVirtualInstance, previousVirtualInstanceFirstFiber, null, traceNearestHostComponentUpdate, virtualLevel);\n }\n }\n\n function mountChildrenRecursively(firstChild, traceNearestHostComponentUpdate) {\n mountVirtualChildrenRecursively(firstChild, null, traceNearestHostComponentUpdate, 0 // first level\n );\n }\n\n function mountFiberRecursively(fiber, traceNearestHostComponentUpdate) {\n var shouldIncludeInTree = !shouldFilterFiber(fiber);\n var newInstance = null;\n\n if (shouldIncludeInTree) {\n newInstance = recordMount(fiber, reconcilingParent);\n insertChild(newInstance);\n\n if (__DEBUG__) {\n debug('mountFiberRecursively()', newInstance, reconcilingParent);\n }\n } else if (reconcilingParent !== null && reconcilingParent.kind === VIRTUAL_INSTANCE) {\n // If the parent is a Virtual Instance and we filtered this Fiber we include a\n // hidden node.\n if (reconcilingParent.data === fiber._debugOwner && fiber._debugStack != null && reconcilingParent.source === null) {\n // The new Fiber is directly owned by the parent. Therefore somewhere on the\n // debugStack will be a stack frame inside parent that we can use as its soruce.\n reconcilingParent.source = fiber._debugStack;\n }\n\n newInstance = createFilteredFiberInstance(fiber);\n insertChild(newInstance);\n\n if (__DEBUG__) {\n debug('mountFiberRecursively()', newInstance, reconcilingParent);\n }\n } // If we have the tree selection from previous reload, try to match this Fiber.\n // Also remember whether to do the same for siblings.\n\n\n var mightSiblingsBeOnTrackedPath = updateTrackedPathStateBeforeMount(fiber, newInstance);\n var stashedParent = reconcilingParent;\n var stashedPrevious = previouslyReconciledSibling;\n var stashedRemaining = remainingReconcilingChildren;\n\n if (newInstance !== null) {\n // Push a new DevTools instance parent while reconciling this subtree.\n reconcilingParent = newInstance;\n previouslyReconciledSibling = null;\n remainingReconcilingChildren = null;\n }\n\n try {\n if (traceUpdatesEnabled) {\n if (traceNearestHostComponentUpdate) {\n var elementType = getElementTypeForFiber(fiber); // If an ancestor updated, we should mark the nearest host nodes for highlighting.\n\n if (elementType === ElementTypeHostComponent) {\n traceUpdatesForNodes.add(fiber.stateNode);\n traceNearestHostComponentUpdate = false;\n }\n } // We intentionally do not re-enable the traceNearestHostComponentUpdate flag in this branch,\n // because we don't want to highlight every host node inside of a newly mounted subtree.\n\n }\n\n if (fiber.tag === HostHoistable) {\n var nearestInstance = reconcilingParent;\n\n if (nearestInstance === null) {\n throw new Error('Did not expect a host hoistable to be the root');\n }\n\n aquireHostResource(nearestInstance, fiber.memoizedState);\n } else if (fiber.tag === HostComponent || fiber.tag === HostText || fiber.tag === HostSingleton) {\n var _nearestInstance = reconcilingParent;\n\n if (_nearestInstance === null) {\n throw new Error('Did not expect a host hoistable to be the root');\n }\n\n aquireHostInstance(_nearestInstance, fiber.stateNode);\n }\n\n if (fiber.tag === SuspenseComponent) {\n var isTimedOut = fiber.memoizedState !== null;\n\n if (isTimedOut) {\n // Special case: if Suspense mounts in a timed-out state,\n // get the fallback child from the inner fragment and mount\n // it as if it was our own child. Updates handle this too.\n var primaryChildFragment = fiber.child;\n var fallbackChildFragment = primaryChildFragment ? primaryChildFragment.sibling : null;\n\n if (fallbackChildFragment) {\n var fallbackChild = fallbackChildFragment.child;\n\n if (fallbackChild !== null) {\n updateTrackedPathStateBeforeMount(fallbackChildFragment, null);\n mountChildrenRecursively(fallbackChild, traceNearestHostComponentUpdate);\n }\n }\n } else {\n var primaryChild = null;\n var areSuspenseChildrenConditionallyWrapped = OffscreenComponent === -1;\n\n if (areSuspenseChildrenConditionallyWrapped) {\n primaryChild = fiber.child;\n } else if (fiber.child !== null) {\n primaryChild = fiber.child.child;\n updateTrackedPathStateBeforeMount(fiber.child, null);\n }\n\n if (primaryChild !== null) {\n mountChildrenRecursively(primaryChild, traceNearestHostComponentUpdate);\n }\n }\n } else {\n if (fiber.child !== null) {\n mountChildrenRecursively(fiber.child, traceNearestHostComponentUpdate);\n }\n }\n } finally {\n if (newInstance !== null) {\n reconcilingParent = stashedParent;\n previouslyReconciledSibling = stashedPrevious;\n remainingReconcilingChildren = stashedRemaining;\n }\n } // We're exiting this Fiber now, and entering its siblings.\n // If we have selection to restore, we might need to re-activate tracking.\n\n\n updateTrackedPathStateAfterMount(mightSiblingsBeOnTrackedPath);\n } // We use this to simulate unmounting for Suspense trees\n // when we switch from primary to fallback, or deleting a subtree.\n\n\n function unmountInstanceRecursively(instance) {\n if (__DEBUG__) {\n debug('unmountInstanceRecursively()', instance, reconcilingParent);\n }\n\n var stashedParent = reconcilingParent;\n var stashedPrevious = previouslyReconciledSibling;\n var stashedRemaining = remainingReconcilingChildren; // Push a new DevTools instance parent while reconciling this subtree.\n\n reconcilingParent = instance;\n previouslyReconciledSibling = null; // Move all the children of this instance to the remaining set.\n\n remainingReconcilingChildren = instance.firstChild;\n instance.firstChild = null;\n\n try {\n // Unmount the remaining set.\n unmountRemainingChildren();\n } finally {\n reconcilingParent = stashedParent;\n previouslyReconciledSibling = stashedPrevious;\n remainingReconcilingChildren = stashedRemaining;\n }\n\n if (instance.kind === FIBER_INSTANCE) {\n recordUnmount(instance);\n } else if (instance.kind === VIRTUAL_INSTANCE) {\n recordVirtualUnmount(instance);\n } else {\n untrackFiber(instance, instance.data);\n }\n\n removeChild(instance, null);\n }\n\n function recordProfilingDurations(fiberInstance, prevFiber) {\n var id = fiberInstance.id;\n var fiber = fiberInstance.data;\n var actualDuration = fiber.actualDuration,\n treeBaseDuration = fiber.treeBaseDuration;\n fiberInstance.treeBaseDuration = treeBaseDuration || 0;\n\n if (isProfiling) {\n // It's important to update treeBaseDuration even if the current Fiber did not render,\n // because it's possible that one of its descendants did.\n if (prevFiber == null || treeBaseDuration !== prevFiber.treeBaseDuration) {\n // Tree base duration updates are included in the operations typed array.\n // So we have to convert them from milliseconds to microseconds so we can send them as ints.\n var convertedTreeBaseDuration = Math.floor((treeBaseDuration || 0) * 1000);\n pushOperation(TREE_OPERATION_UPDATE_TREE_BASE_DURATION);\n pushOperation(id);\n pushOperation(convertedTreeBaseDuration);\n }\n\n if (prevFiber == null || didFiberRender(prevFiber, fiber)) {\n if (actualDuration != null) {\n // The actual duration reported by React includes time spent working on children.\n // This is useful information, but it's also useful to be able to exclude child durations.\n // The frontend can't compute this, since the immediate children may have been filtered out.\n // So we need to do this on the backend.\n // Note that this calculated self duration is not the same thing as the base duration.\n // The two are calculated differently (tree duration does not accumulate).\n var selfDuration = actualDuration;\n var child = fiber.child;\n\n while (child !== null) {\n selfDuration -= child.actualDuration || 0;\n child = child.sibling;\n } // If profiling is active, store durations for elements that were rendered during the commit.\n // Note that we should do this for any fiber we performed work on, regardless of its actualDuration value.\n // In some cases actualDuration might be 0 for fibers we worked on (particularly if we're using Date.now)\n // In other cases (e.g. Memo) actualDuration might be greater than 0 even if we \"bailed out\".\n\n\n var metadata = currentCommitProfilingMetadata;\n metadata.durations.push(id, actualDuration, selfDuration);\n metadata.maxActualDuration = Math.max(metadata.maxActualDuration, actualDuration);\n\n if (recordChangeDescriptions) {\n var changeDescription = getChangeDescription(prevFiber, fiber);\n\n if (changeDescription !== null) {\n if (metadata.changeDescriptions !== null) {\n metadata.changeDescriptions.set(id, changeDescription);\n }\n }\n }\n }\n } // If this Fiber was in the set of memoizedUpdaters we need to record\n // it to be included in the description of the commit.\n\n\n var fiberRoot = currentRoot.data.stateNode;\n var updaters = fiberRoot.memoizedUpdaters;\n\n if (updaters != null && (updaters.has(fiber) || // We check the alternate here because we're matching identity and\n // prevFiber might be same as fiber.\n fiber.alternate !== null && updaters.has(fiber.alternate))) {\n var _metadata = currentCommitProfilingMetadata;\n\n if (_metadata.updaters === null) {\n _metadata.updaters = [];\n }\n\n _metadata.updaters.push(instanceToSerializedElement(fiberInstance));\n }\n }\n }\n\n function recordVirtualProfilingDurations(virtualInstance) {\n var id = virtualInstance.id;\n var treeBaseDuration = 0; // Add up the base duration of the child instances. The virtual base duration\n // will be the same as children's duration since we don't take up any render\n // time in the virtual instance.\n\n for (var child = virtualInstance.firstChild; child !== null; child = child.nextSibling) {\n treeBaseDuration += child.treeBaseDuration;\n }\n\n if (isProfiling) {\n var previousTreeBaseDuration = virtualInstance.treeBaseDuration;\n\n if (treeBaseDuration !== previousTreeBaseDuration) {\n // Tree base duration updates are included in the operations typed array.\n // So we have to convert them from milliseconds to microseconds so we can send them as ints.\n var convertedTreeBaseDuration = Math.floor((treeBaseDuration || 0) * 1000);\n pushOperation(TREE_OPERATION_UPDATE_TREE_BASE_DURATION);\n pushOperation(id);\n pushOperation(convertedTreeBaseDuration);\n }\n }\n\n virtualInstance.treeBaseDuration = treeBaseDuration;\n }\n\n function recordResetChildren(parentInstance) {\n if (__DEBUG__) {\n if (parentInstance.firstChild !== null) {\n debug('recordResetChildren()', parentInstance.firstChild, parentInstance);\n }\n } // The frontend only really cares about the displayName, key, and children.\n // The first two don't really change, so we are only concerned with the order of children here.\n // This is trickier than a simple comparison though, since certain types of fibers are filtered.\n\n\n var nextChildren = [];\n var child = parentInstance.firstChild;\n\n while (child !== null) {\n if (child.kind === FILTERED_FIBER_INSTANCE) {\n for (var innerChild = parentInstance.firstChild; innerChild !== null; innerChild = innerChild.nextSibling) {\n nextChildren.push(innerChild.id);\n }\n } else {\n nextChildren.push(child.id);\n }\n\n child = child.nextSibling;\n }\n\n var numChildren = nextChildren.length;\n\n if (numChildren < 2) {\n // No need to reorder.\n return;\n }\n\n pushOperation(TREE_OPERATION_REORDER_CHILDREN);\n pushOperation(parentInstance.id);\n pushOperation(numChildren);\n\n for (var i = 0; i < nextChildren.length; i++) {\n pushOperation(nextChildren[i]);\n }\n }\n\n function updateVirtualInstanceRecursively(virtualInstance, nextFirstChild, nextLastChild, // non-inclusive\n prevFirstChild, traceNearestHostComponentUpdate, virtualLevel // the nth level of virtual instances\n ) {\n var stashedParent = reconcilingParent;\n var stashedPrevious = previouslyReconciledSibling;\n var stashedRemaining = remainingReconcilingChildren; // Push a new DevTools instance parent while reconciling this subtree.\n\n reconcilingParent = virtualInstance;\n previouslyReconciledSibling = null; // Move all the children of this instance to the remaining set.\n // We'll move them back one by one, and anything that remains is deleted.\n\n remainingReconcilingChildren = virtualInstance.firstChild;\n virtualInstance.firstChild = null;\n\n try {\n if (updateVirtualChildrenRecursively(nextFirstChild, nextLastChild, prevFirstChild, traceNearestHostComponentUpdate, virtualLevel + 1)) {\n recordResetChildren(virtualInstance);\n } // Update the errors/warnings count. If this Instance has switched to a different\n // ReactComponentInfo instance, such as when refreshing Server Components, then\n // we replace all the previous logs with the ones associated with the new ones rather\n // than merging. Because deduping is expected to happen at the request level.\n\n\n var componentLogsEntry = componentInfoToComponentLogsMap.get(virtualInstance.data);\n recordConsoleLogs(virtualInstance, componentLogsEntry); // Must be called after all children have been appended.\n\n recordVirtualProfilingDurations(virtualInstance);\n } finally {\n unmountRemainingChildren();\n reconcilingParent = stashedParent;\n previouslyReconciledSibling = stashedPrevious;\n remainingReconcilingChildren = stashedRemaining;\n }\n }\n\n function updateVirtualChildrenRecursively(nextFirstChild, nextLastChild, // non-inclusive\n prevFirstChild, traceNearestHostComponentUpdate, virtualLevel // the nth level of virtual instances\n ) {\n var shouldResetChildren = false; // If the first child is different, we need to traverse them.\n // Each next child will be either a new child (mount) or an alternate (update).\n\n var nextChild = nextFirstChild;\n var prevChildAtSameIndex = prevFirstChild;\n var previousVirtualInstance = null;\n var previousVirtualInstanceWasMount = false;\n var previousVirtualInstanceNextFirstFiber = nextFirstChild;\n var previousVirtualInstancePrevFirstFiber = prevFirstChild;\n\n while (nextChild !== null && nextChild !== nextLastChild) {\n var level = 0;\n\n if (nextChild._debugInfo) {\n for (var i = 0; i < nextChild._debugInfo.length; i++) {\n var debugEntry = nextChild._debugInfo[i];\n\n if (typeof debugEntry.name !== 'string') {\n // Not a Component. Some other Debug Info.\n continue;\n }\n\n var componentInfo = debugEntry;\n var secondaryEnv = getSecondaryEnvironmentName(nextChild._debugInfo, i);\n\n if (componentInfo.env != null) {\n knownEnvironmentNames.add(componentInfo.env);\n }\n\n if (secondaryEnv !== null) {\n knownEnvironmentNames.add(secondaryEnv);\n }\n\n if (shouldFilterVirtual(componentInfo, secondaryEnv)) {\n continue;\n }\n\n if (level === virtualLevel) {\n if (previousVirtualInstance === null || // Consecutive children with the same debug entry as a parent gets\n // treated as if they share the same virtual instance.\n previousVirtualInstance.data !== componentInfo) {\n if (previousVirtualInstance !== null) {\n // Mount any previous children that should go into the previous parent.\n if (previousVirtualInstanceWasMount) {\n mountVirtualInstanceRecursively(previousVirtualInstance, previousVirtualInstanceNextFirstFiber, nextChild, traceNearestHostComponentUpdate, virtualLevel);\n } else {\n updateVirtualInstanceRecursively(previousVirtualInstance, previousVirtualInstanceNextFirstFiber, nextChild, previousVirtualInstancePrevFirstFiber, traceNearestHostComponentUpdate, virtualLevel);\n }\n }\n\n var previousSiblingOfBestMatch = null;\n var bestMatch = remainingReconcilingChildren;\n\n if (componentInfo.key != null) {\n // If there is a key try to find a matching key in the set.\n bestMatch = remainingReconcilingChildren;\n\n while (bestMatch !== null) {\n if (bestMatch.kind === VIRTUAL_INSTANCE && bestMatch.data.key === componentInfo.key) {\n break;\n }\n\n previousSiblingOfBestMatch = bestMatch;\n bestMatch = bestMatch.nextSibling;\n }\n }\n\n if (bestMatch !== null && bestMatch.kind === VIRTUAL_INSTANCE && bestMatch.data.name === componentInfo.name && bestMatch.data.env === componentInfo.env && bestMatch.data.key === componentInfo.key) {\n // If the previous children had a virtual instance in the same slot\n // with the same name, then we claim it and reuse it for this update.\n // Update it with the latest entry.\n bestMatch.data = componentInfo;\n moveChild(bestMatch, previousSiblingOfBestMatch);\n previousVirtualInstance = bestMatch;\n previousVirtualInstanceWasMount = false;\n } else {\n // Otherwise we create a new instance.\n var newVirtualInstance = createVirtualInstance(componentInfo);\n recordVirtualMount(newVirtualInstance, reconcilingParent, secondaryEnv);\n insertChild(newVirtualInstance);\n previousVirtualInstance = newVirtualInstance;\n previousVirtualInstanceWasMount = true;\n shouldResetChildren = true;\n } // Existing children might be reparented into this new virtual instance.\n // TODO: This will cause the front end to error which needs to be fixed.\n\n\n previousVirtualInstanceNextFirstFiber = nextChild;\n previousVirtualInstancePrevFirstFiber = prevChildAtSameIndex;\n }\n\n level++;\n break;\n } else {\n level++;\n }\n }\n }\n\n if (level === virtualLevel) {\n if (previousVirtualInstance !== null) {\n // If we were working on a virtual instance and this is not a virtual\n // instance, then we end the sequence and update any previous children\n // that should go into the previous virtual instance.\n if (previousVirtualInstanceWasMount) {\n mountVirtualInstanceRecursively(previousVirtualInstance, previousVirtualInstanceNextFirstFiber, nextChild, traceNearestHostComponentUpdate, virtualLevel);\n } else {\n updateVirtualInstanceRecursively(previousVirtualInstance, previousVirtualInstanceNextFirstFiber, nextChild, previousVirtualInstancePrevFirstFiber, traceNearestHostComponentUpdate, virtualLevel);\n }\n\n previousVirtualInstance = null;\n } // We've reached the end of the virtual levels, but not beyond,\n // and now continue with the regular fiber.\n // Do a fast pass over the remaining children to find the previous instance.\n // TODO: This doesn't have the best O(n) for a large set of children that are\n // reordered. Consider using a temporary map if it's not the very next one.\n\n\n var prevChild = void 0;\n\n if (prevChildAtSameIndex === nextChild) {\n // This set is unchanged. We're just going through it to place all the\n // children again.\n prevChild = nextChild;\n } else {\n // We don't actually need to rely on the alternate here. We could also\n // reconcile against stateNode, key or whatever. Doesn't have to be same\n // Fiber pair.\n prevChild = nextChild.alternate;\n }\n\n var previousSiblingOfExistingInstance = null;\n var existingInstance = null;\n\n if (prevChild !== null) {\n existingInstance = remainingReconcilingChildren;\n\n while (existingInstance !== null) {\n if (existingInstance.data === prevChild) {\n break;\n }\n\n previousSiblingOfExistingInstance = existingInstance;\n existingInstance = existingInstance.nextSibling;\n }\n }\n\n if (existingInstance !== null) {\n // Common case. Match in the same parent.\n var fiberInstance = existingInstance; // Only matches if it's a Fiber.\n // We keep track if the order of the children matches the previous order.\n // They are always different referentially, but if the instances line up\n // conceptually we'll want to know that.\n\n if (prevChild !== prevChildAtSameIndex) {\n shouldResetChildren = true;\n }\n\n moveChild(fiberInstance, previousSiblingOfExistingInstance);\n\n if (updateFiberRecursively(fiberInstance, nextChild, prevChild, traceNearestHostComponentUpdate)) {\n // If a nested tree child order changed but it can't handle its own\n // child order invalidation (e.g. because it's filtered out like host nodes),\n // propagate the need to reset child order upwards to this Fiber.\n shouldResetChildren = true;\n }\n } else if (prevChild !== null && shouldFilterFiber(nextChild)) {\n // If this Fiber should be filtered, we need to still update its children.\n // This relies on an alternate since we don't have an Instance with the previous\n // child on it. Ideally, the reconciliation wouldn't need previous Fibers that\n // are filtered from the tree.\n if (updateFiberRecursively(null, nextChild, prevChild, traceNearestHostComponentUpdate)) {\n shouldResetChildren = true;\n }\n } else {\n // It's possible for a FiberInstance to be reparented when virtual parents\n // get their sequence split or change structure with the same render result.\n // In this case we unmount the and remount the FiberInstances.\n // This might cause us to lose the selection but it's an edge case.\n // We let the previous instance remain in the \"remaining queue\" it is\n // in to be deleted at the end since it'll have no match.\n mountFiberRecursively(nextChild, traceNearestHostComponentUpdate); // Need to mark the parent set to remount the new instance.\n\n shouldResetChildren = true;\n }\n } // Try the next child.\n\n\n nextChild = nextChild.sibling; // Advance the pointer in the previous list so that we can\n // keep comparing if they line up.\n\n if (!shouldResetChildren && prevChildAtSameIndex !== null) {\n prevChildAtSameIndex = prevChildAtSameIndex.sibling;\n }\n }\n\n if (previousVirtualInstance !== null) {\n if (previousVirtualInstanceWasMount) {\n mountVirtualInstanceRecursively(previousVirtualInstance, previousVirtualInstanceNextFirstFiber, null, traceNearestHostComponentUpdate, virtualLevel);\n } else {\n updateVirtualInstanceRecursively(previousVirtualInstance, previousVirtualInstanceNextFirstFiber, null, previousVirtualInstancePrevFirstFiber, traceNearestHostComponentUpdate, virtualLevel);\n }\n } // If we have no more children, but used to, they don't line up.\n\n\n if (prevChildAtSameIndex !== null) {\n shouldResetChildren = true;\n }\n\n return shouldResetChildren;\n } // Returns whether closest unfiltered fiber parent needs to reset its child list.\n\n\n function updateChildrenRecursively(nextFirstChild, prevFirstChild, traceNearestHostComponentUpdate) {\n if (nextFirstChild === null) {\n return prevFirstChild !== null;\n }\n\n return updateVirtualChildrenRecursively(nextFirstChild, null, prevFirstChild, traceNearestHostComponentUpdate, 0);\n } // Returns whether closest unfiltered fiber parent needs to reset its child list.\n\n\n function updateFiberRecursively(fiberInstance, // null if this should be filtered\n nextFiber, prevFiber, traceNearestHostComponentUpdate) {\n if (__DEBUG__) {\n if (fiberInstance !== null) {\n debug('updateFiberRecursively()', fiberInstance, reconcilingParent);\n }\n }\n\n if (traceUpdatesEnabled) {\n var elementType = getElementTypeForFiber(nextFiber);\n\n if (traceNearestHostComponentUpdate) {\n // If an ancestor updated, we should mark the nearest host nodes for highlighting.\n if (elementType === ElementTypeHostComponent) {\n traceUpdatesForNodes.add(nextFiber.stateNode);\n traceNearestHostComponentUpdate = false;\n }\n } else {\n if (elementType === types_ElementTypeFunction || elementType === types_ElementTypeClass || elementType === ElementTypeContext || elementType === types_ElementTypeMemo || elementType === types_ElementTypeForwardRef) {\n // Otherwise if this is a traced ancestor, flag for the nearest host descendant(s).\n traceNearestHostComponentUpdate = didFiberRender(prevFiber, nextFiber);\n }\n }\n }\n\n var stashedParent = reconcilingParent;\n var stashedPrevious = previouslyReconciledSibling;\n var stashedRemaining = remainingReconcilingChildren;\n\n if (fiberInstance !== null) {\n // Update the Fiber so we that we always keep the current Fiber on the data.\n fiberInstance.data = nextFiber;\n\n if (mostRecentlyInspectedElement !== null && mostRecentlyInspectedElement.id === fiberInstance.id && didFiberRender(prevFiber, nextFiber)) {\n // If this Fiber has updated, clear cached inspected data.\n // If it is inspected again, it may need to be re-run to obtain updated hooks values.\n hasElementUpdatedSinceLastInspected = true;\n } // Push a new DevTools instance parent while reconciling this subtree.\n\n\n reconcilingParent = fiberInstance;\n previouslyReconciledSibling = null; // Move all the children of this instance to the remaining set.\n // We'll move them back one by one, and anything that remains is deleted.\n\n remainingReconcilingChildren = fiberInstance.firstChild;\n fiberInstance.firstChild = null;\n }\n\n try {\n if (nextFiber.tag === HostHoistable) {\n var nearestInstance = reconcilingParent;\n\n if (nearestInstance === null) {\n throw new Error('Did not expect a host hoistable to be the root');\n }\n\n releaseHostResource(nearestInstance, prevFiber.memoizedState);\n aquireHostResource(nearestInstance, nextFiber.memoizedState);\n }\n\n var isSuspense = nextFiber.tag === SuspenseComponent;\n var shouldResetChildren = false; // The behavior of timed-out Suspense trees is unique.\n // Rather than unmount the timed out content (and possibly lose important state),\n // React re-parents this content within a hidden Fragment while the fallback is showing.\n // This behavior doesn't need to be observable in the DevTools though.\n // It might even result in a bad user experience for e.g. node selection in the Elements panel.\n // The easiest fix is to strip out the intermediate Fragment fibers,\n // so the Elements panel and Profiler don't need to special case them.\n // Suspense components only have a non-null memoizedState if they're timed-out.\n\n var prevDidTimeout = isSuspense && prevFiber.memoizedState !== null;\n var nextDidTimeOut = isSuspense && nextFiber.memoizedState !== null; // The logic below is inspired by the code paths in updateSuspenseComponent()\n // inside ReactFiberBeginWork in the React source code.\n\n if (prevDidTimeout && nextDidTimeOut) {\n // Fallback -> Fallback:\n // 1. Reconcile fallback set.\n var nextFiberChild = nextFiber.child;\n var nextFallbackChildSet = nextFiberChild ? nextFiberChild.sibling : null; // Note: We can't use nextFiber.child.sibling.alternate\n // because the set is special and alternate may not exist.\n\n var prevFiberChild = prevFiber.child;\n var prevFallbackChildSet = prevFiberChild ? prevFiberChild.sibling : null;\n\n if (prevFallbackChildSet == null && nextFallbackChildSet != null) {\n mountChildrenRecursively(nextFallbackChildSet, traceNearestHostComponentUpdate);\n shouldResetChildren = true;\n }\n\n if (nextFallbackChildSet != null && prevFallbackChildSet != null && updateChildrenRecursively(nextFallbackChildSet, prevFallbackChildSet, traceNearestHostComponentUpdate)) {\n shouldResetChildren = true;\n }\n } else if (prevDidTimeout && !nextDidTimeOut) {\n // Fallback -> Primary:\n // 1. Unmount fallback set\n // Note: don't emulate fallback unmount because React actually did it.\n // 2. Mount primary set\n var nextPrimaryChildSet = nextFiber.child;\n\n if (nextPrimaryChildSet !== null) {\n mountChildrenRecursively(nextPrimaryChildSet, traceNearestHostComponentUpdate);\n }\n\n shouldResetChildren = true;\n } else if (!prevDidTimeout && nextDidTimeOut) {\n // Primary -> Fallback:\n // 1. Hide primary set\n // We simply don't re-add the fallback children and let\n // unmountRemainingChildren() handle it.\n // 2. Mount fallback set\n var _nextFiberChild = nextFiber.child;\n\n var _nextFallbackChildSet = _nextFiberChild ? _nextFiberChild.sibling : null;\n\n if (_nextFallbackChildSet != null) {\n mountChildrenRecursively(_nextFallbackChildSet, traceNearestHostComponentUpdate);\n shouldResetChildren = true;\n }\n } else {\n // Common case: Primary -> Primary.\n // This is the same code path as for non-Suspense fibers.\n if (nextFiber.child !== prevFiber.child) {\n if (updateChildrenRecursively(nextFiber.child, prevFiber.child, traceNearestHostComponentUpdate)) {\n shouldResetChildren = true;\n }\n } else {\n // Children are unchanged.\n if (fiberInstance !== null) {\n // All the remaining children will be children of this same fiber so we can just reuse them.\n // I.e. we just restore them by undoing what we did above.\n fiberInstance.firstChild = remainingReconcilingChildren;\n remainingReconcilingChildren = null;\n\n if (traceUpdatesEnabled) {\n // If we're tracing updates and we've bailed out before reaching a host node,\n // we should fall back to recursively marking the nearest host descendants for highlight.\n if (traceNearestHostComponentUpdate) {\n var hostInstances = findAllCurrentHostInstances(fiberInstance);\n hostInstances.forEach(function (hostInstance) {\n traceUpdatesForNodes.add(hostInstance);\n });\n }\n }\n } else {\n // If this fiber is filtered there might be changes to this set elsewhere so we have\n // to visit each child to place it back in the set. We let the child bail out instead.\n if (updateChildrenRecursively(nextFiber.child, prevFiber.child, false)) {\n throw new Error('The children should not have changed if we pass in the same set.');\n }\n }\n }\n }\n\n if (fiberInstance !== null) {\n var componentLogsEntry = fiberToComponentLogsMap.get(fiberInstance.data);\n\n if (componentLogsEntry === undefined && fiberInstance.data.alternate) {\n componentLogsEntry = fiberToComponentLogsMap.get(fiberInstance.data.alternate);\n }\n\n recordConsoleLogs(fiberInstance, componentLogsEntry);\n var isProfilingSupported = nextFiber.hasOwnProperty('treeBaseDuration');\n\n if (isProfilingSupported) {\n recordProfilingDurations(fiberInstance, prevFiber);\n }\n }\n\n if (shouldResetChildren) {\n // We need to crawl the subtree for closest non-filtered Fibers\n // so that we can display them in a flat children set.\n if (fiberInstance !== null) {\n recordResetChildren(fiberInstance); // We've handled the child order change for this Fiber.\n // Since it's included, there's no need to invalidate parent child order.\n\n return false;\n } else {\n // Let the closest unfiltered parent Fiber reset its child order instead.\n return true;\n }\n } else {\n return false;\n }\n } finally {\n if (fiberInstance !== null) {\n unmountRemainingChildren();\n reconcilingParent = stashedParent;\n previouslyReconciledSibling = stashedPrevious;\n remainingReconcilingChildren = stashedRemaining;\n }\n }\n }\n\n function cleanup() {\n isProfiling = false;\n }\n\n function rootSupportsProfiling(root) {\n if (root.memoizedInteractions != null) {\n // v16 builds include this field for the scheduler/tracing API.\n return true;\n } else if (root.current != null && root.current.hasOwnProperty('treeBaseDuration')) {\n // The scheduler/tracing API was removed in v17 though\n // so we need to check a non-root Fiber.\n return true;\n } else {\n return false;\n }\n }\n\n function flushInitialOperations() {\n var localPendingOperationsQueue = pendingOperationsQueue;\n pendingOperationsQueue = null;\n\n if (localPendingOperationsQueue !== null && localPendingOperationsQueue.length > 0) {\n // We may have already queued up some operations before the frontend connected\n // If so, let the frontend know about them.\n localPendingOperationsQueue.forEach(function (operations) {\n hook.emit('operations', operations);\n });\n } else {\n // Before the traversals, remember to start tracking\n // our path in case we have selection to restore.\n if (trackedPath !== null) {\n mightBeOnTrackedPath = true;\n } // If we have not been profiling, then we can just walk the tree and build up its current state as-is.\n\n\n hook.getFiberRoots(rendererID).forEach(function (root) {\n var current = root.current;\n var newRoot = createFiberInstance(current);\n rootToFiberInstanceMap.set(root, newRoot);\n idToDevToolsInstanceMap.set(newRoot.id, newRoot);\n currentRoot = newRoot;\n setRootPseudoKey(currentRoot.id, root.current); // Handle multi-renderer edge-case where only some v16 renderers support profiling.\n\n if (isProfiling && rootSupportsProfiling(root)) {\n // If profiling is active, store commit time and duration.\n // The frontend may request this information after profiling has stopped.\n currentCommitProfilingMetadata = {\n changeDescriptions: recordChangeDescriptions ? new Map() : null,\n durations: [],\n commitTime: renderer_getCurrentTime() - profilingStartTime,\n maxActualDuration: 0,\n priorityLevel: null,\n updaters: null,\n effectDuration: null,\n passiveEffectDuration: null\n };\n }\n\n mountFiberRecursively(root.current, false);\n flushPendingEvents(root);\n needsToFlushComponentLogs = false;\n currentRoot = null;\n });\n }\n }\n\n function handleCommitFiberUnmount(fiber) {// This Hook is no longer used. After having shipped DevTools everywhere it is\n // safe to stop calling it from Fiber.\n }\n\n function handlePostCommitFiberRoot(root) {\n if (isProfiling && rootSupportsProfiling(root)) {\n if (currentCommitProfilingMetadata !== null) {\n var _getEffectDurations = getEffectDurations(root),\n effectDuration = _getEffectDurations.effectDuration,\n passiveEffectDuration = _getEffectDurations.passiveEffectDuration; // $FlowFixMe[incompatible-use] found when upgrading Flow\n\n\n currentCommitProfilingMetadata.effectDuration = effectDuration; // $FlowFixMe[incompatible-use] found when upgrading Flow\n\n currentCommitProfilingMetadata.passiveEffectDuration = passiveEffectDuration;\n }\n }\n\n if (needsToFlushComponentLogs) {\n // We received new logs after commit. I.e. in a passive effect. We need to\n // traverse the tree to find the affected ones. If we just moved the whole\n // tree traversal from handleCommitFiberRoot to handlePostCommitFiberRoot\n // this wouldn't be needed. For now we just brute force check all instances.\n // This is not that common of a case.\n bruteForceFlushErrorsAndWarnings();\n }\n }\n\n function handleCommitFiberRoot(root, priorityLevel) {\n var current = root.current;\n var prevFiber = null;\n var rootInstance = rootToFiberInstanceMap.get(root);\n\n if (!rootInstance) {\n rootInstance = createFiberInstance(current);\n rootToFiberInstanceMap.set(root, rootInstance);\n idToDevToolsInstanceMap.set(rootInstance.id, rootInstance);\n } else {\n prevFiber = rootInstance.data;\n }\n\n currentRoot = rootInstance; // Before the traversals, remember to start tracking\n // our path in case we have selection to restore.\n\n if (trackedPath !== null) {\n mightBeOnTrackedPath = true;\n }\n\n if (traceUpdatesEnabled) {\n traceUpdatesForNodes.clear();\n } // Handle multi-renderer edge-case where only some v16 renderers support profiling.\n\n\n var isProfilingSupported = rootSupportsProfiling(root);\n\n if (isProfiling && isProfilingSupported) {\n // If profiling is active, store commit time and duration.\n // The frontend may request this information after profiling has stopped.\n currentCommitProfilingMetadata = {\n changeDescriptions: recordChangeDescriptions ? new Map() : null,\n durations: [],\n commitTime: renderer_getCurrentTime() - profilingStartTime,\n maxActualDuration: 0,\n priorityLevel: priorityLevel == null ? null : formatPriorityLevel(priorityLevel),\n updaters: null,\n // Initialize to null; if new enough React version is running,\n // these values will be read during separate handlePostCommitFiberRoot() call.\n effectDuration: null,\n passiveEffectDuration: null\n };\n }\n\n if (prevFiber !== null) {\n // TODO: relying on this seems a bit fishy.\n var wasMounted = prevFiber.memoizedState != null && prevFiber.memoizedState.element != null && // A dehydrated root is not considered mounted\n prevFiber.memoizedState.isDehydrated !== true;\n var isMounted = current.memoizedState != null && current.memoizedState.element != null && // A dehydrated root is not considered mounted\n current.memoizedState.isDehydrated !== true;\n\n if (!wasMounted && isMounted) {\n // Mount a new root.\n setRootPseudoKey(currentRoot.id, current);\n mountFiberRecursively(current, false);\n } else if (wasMounted && isMounted) {\n // Update an existing root.\n updateFiberRecursively(rootInstance, current, prevFiber, false);\n } else if (wasMounted && !isMounted) {\n // Unmount an existing root.\n unmountInstanceRecursively(rootInstance);\n removeRootPseudoKey(currentRoot.id);\n rootToFiberInstanceMap.delete(root);\n }\n } else {\n // Mount a new root.\n setRootPseudoKey(currentRoot.id, current);\n mountFiberRecursively(current, false);\n }\n\n if (isProfiling && isProfilingSupported) {\n if (!shouldBailoutWithPendingOperations()) {\n var commitProfilingMetadata = rootToCommitProfilingMetadataMap.get(currentRoot.id);\n\n if (commitProfilingMetadata != null) {\n commitProfilingMetadata.push(currentCommitProfilingMetadata);\n } else {\n rootToCommitProfilingMetadataMap.set(currentRoot.id, [currentCommitProfilingMetadata]);\n }\n }\n } // We're done here.\n\n\n flushPendingEvents(root);\n needsToFlushComponentLogs = false;\n\n if (traceUpdatesEnabled) {\n hook.emit('traceUpdates', traceUpdatesForNodes);\n }\n\n currentRoot = null;\n }\n\n function getResourceInstance(fiber) {\n if (fiber.tag === HostHoistable) {\n var resource = fiber.memoizedState; // Feature Detect a DOM Specific Instance of a Resource\n\n if (renderer_typeof(resource) === 'object' && resource !== null && resource.instance != null) {\n return resource.instance;\n }\n }\n\n return null;\n }\n\n function appendHostInstancesByDevToolsInstance(devtoolsInstance, hostInstances) {\n if (devtoolsInstance.kind !== VIRTUAL_INSTANCE) {\n var _fiber4 = devtoolsInstance.data;\n appendHostInstancesByFiber(_fiber4, hostInstances);\n return;\n } // Search the tree for the nearest child Fiber and add all its host instances.\n // TODO: If the true nearest Fiber is filtered, we might skip it and instead include all\n // the children below it. In the extreme case, searching the whole tree.\n\n\n for (var child = devtoolsInstance.firstChild; child !== null; child = child.nextSibling) {\n appendHostInstancesByDevToolsInstance(child, hostInstances);\n }\n }\n\n function appendHostInstancesByFiber(fiber, hostInstances) {\n // Next we'll drill down this component to find all HostComponent/Text.\n var node = fiber;\n\n while (true) {\n if (node.tag === HostComponent || node.tag === HostText || node.tag === HostSingleton || node.tag === HostHoistable) {\n var hostInstance = node.stateNode || getResourceInstance(node);\n\n if (hostInstance) {\n hostInstances.push(hostInstance);\n }\n } else if (node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === fiber) {\n return;\n }\n\n while (!node.sibling) {\n if (!node.return || node.return === fiber) {\n return;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n\n function findAllCurrentHostInstances(devtoolsInstance) {\n var hostInstances = [];\n appendHostInstancesByDevToolsInstance(devtoolsInstance, hostInstances);\n return hostInstances;\n }\n\n function findHostInstancesForElementID(id) {\n try {\n var devtoolsInstance = idToDevToolsInstanceMap.get(id);\n\n if (devtoolsInstance === undefined) {\n console.warn(\"Could not find DevToolsInstance with id \\\"\".concat(id, \"\\\"\"));\n return null;\n }\n\n return findAllCurrentHostInstances(devtoolsInstance);\n } catch (err) {\n // The fiber might have unmounted by now.\n return null;\n }\n }\n\n function getDisplayNameForElementID(id) {\n var devtoolsInstance = idToDevToolsInstanceMap.get(id);\n\n if (devtoolsInstance === undefined) {\n return null;\n }\n\n if (devtoolsInstance.kind === FIBER_INSTANCE) {\n return getDisplayNameForFiber(devtoolsInstance.data);\n } else {\n return devtoolsInstance.data.name || '';\n }\n }\n\n function getNearestMountedDOMNode(publicInstance) {\n var domNode = publicInstance;\n\n while (domNode && !publicInstanceToDevToolsInstanceMap.has(domNode)) {\n // $FlowFixMe: In practice this is either null or Element.\n domNode = domNode.parentNode;\n }\n\n return domNode;\n }\n\n function getElementIDForHostInstance(publicInstance) {\n var instance = publicInstanceToDevToolsInstanceMap.get(publicInstance);\n\n if (instance !== undefined) {\n if (instance.kind === FILTERED_FIBER_INSTANCE) {\n // A Filtered Fiber Instance will always have a Virtual Instance as a parent.\n return instance.parent.id;\n }\n\n return instance.id;\n }\n\n return null;\n }\n\n function getElementAttributeByPath(id, path) {\n if (isMostRecentlyInspectedElement(id)) {\n return utils_getInObject(mostRecentlyInspectedElement, path);\n }\n\n return undefined;\n }\n\n function getElementSourceFunctionById(id) {\n var devtoolsInstance = idToDevToolsInstanceMap.get(id);\n\n if (devtoolsInstance === undefined) {\n console.warn(\"Could not find DevToolsInstance with id \\\"\".concat(id, \"\\\"\"));\n return null;\n }\n\n if (devtoolsInstance.kind !== FIBER_INSTANCE) {\n // TODO: Handle VirtualInstance.\n return null;\n }\n\n var fiber = devtoolsInstance.data;\n var elementType = fiber.elementType,\n tag = fiber.tag,\n type = fiber.type;\n\n switch (tag) {\n case ClassComponent:\n case IncompleteClassComponent:\n case IncompleteFunctionComponent:\n case IndeterminateComponent:\n case FunctionComponent:\n return type;\n\n case ForwardRef:\n return type.render;\n\n case MemoComponent:\n case SimpleMemoComponent:\n return elementType != null && elementType.type != null ? elementType.type : type;\n\n default:\n return null;\n }\n }\n\n function instanceToSerializedElement(instance) {\n if (instance.kind === FIBER_INSTANCE) {\n var _fiber5 = instance.data;\n return {\n displayName: getDisplayNameForFiber(_fiber5) || 'Anonymous',\n id: instance.id,\n key: _fiber5.key,\n type: getElementTypeForFiber(_fiber5)\n };\n } else {\n var componentInfo = instance.data;\n return {\n displayName: componentInfo.name || 'Anonymous',\n id: instance.id,\n key: componentInfo.key == null ? null : componentInfo.key,\n type: types_ElementTypeVirtual\n };\n }\n }\n\n function getOwnersList(id) {\n var devtoolsInstance = idToDevToolsInstanceMap.get(id);\n\n if (devtoolsInstance === undefined) {\n console.warn(\"Could not find DevToolsInstance with id \\\"\".concat(id, \"\\\"\"));\n return null;\n }\n\n var self = instanceToSerializedElement(devtoolsInstance);\n var owners = getOwnersListFromInstance(devtoolsInstance); // This is particular API is prefixed with the current instance too for some reason.\n\n if (owners === null) {\n return [self];\n }\n\n owners.unshift(self);\n owners.reverse();\n return owners;\n }\n\n function getOwnersListFromInstance(instance) {\n var owner = getUnfilteredOwner(instance.data);\n\n if (owner === null) {\n return null;\n }\n\n var owners = [];\n var parentInstance = instance.parent;\n\n while (parentInstance !== null && owner !== null) {\n var ownerInstance = findNearestOwnerInstance(parentInstance, owner);\n\n if (ownerInstance !== null) {\n owners.push(instanceToSerializedElement(ownerInstance)); // Get the next owner and keep searching from the previous match.\n\n owner = getUnfilteredOwner(owner);\n parentInstance = ownerInstance.parent;\n } else {\n break;\n }\n }\n\n return owners;\n }\n\n function getUnfilteredOwner(owner) {\n if (owner == null) {\n return null;\n }\n\n if (typeof owner.tag === 'number') {\n var ownerFiber = owner; // Refined\n\n owner = ownerFiber._debugOwner;\n } else {\n var ownerInfo = owner; // Refined\n\n owner = ownerInfo.owner;\n }\n\n while (owner) {\n if (typeof owner.tag === 'number') {\n var _ownerFiber = owner; // Refined\n\n if (!shouldFilterFiber(_ownerFiber)) {\n return _ownerFiber;\n }\n\n owner = _ownerFiber._debugOwner;\n } else {\n var _ownerInfo = owner; // Refined\n\n if (!shouldFilterVirtual(_ownerInfo, null)) {\n return _ownerInfo;\n }\n\n owner = _ownerInfo.owner;\n }\n }\n\n return null;\n }\n\n function findNearestOwnerInstance(parentInstance, owner) {\n if (owner == null) {\n return null;\n } // Search the parent path for any instance that matches this kind of owner.\n\n\n while (parentInstance !== null) {\n if (parentInstance.data === owner || // Typically both owner and instance.data would refer to the current version of a Fiber\n // but it is possible for memoization to ignore the owner on the JSX. Then the new Fiber\n // isn't propagated down as the new owner. In that case we might match the alternate\n // instead. This is a bit hacky but the fastest check since type casting owner to a Fiber\n // needs a duck type check anyway.\n parentInstance.data === owner.alternate) {\n if (parentInstance.kind === FILTERED_FIBER_INSTANCE) {\n return null;\n }\n\n return parentInstance;\n }\n\n parentInstance = parentInstance.parent;\n } // It is technically possible to create an element and render it in a different parent\n // but this is a weird edge case and it is worth not having to scan the tree or keep\n // a register for every fiber/component info.\n\n\n return null;\n } // Fast path props lookup for React Native style editor.\n // Could use inspectElementRaw() but that would require shallow rendering hooks components,\n // and could also mess with memoization.\n\n\n function getInstanceAndStyle(id) {\n var instance = null;\n var style = null;\n var devtoolsInstance = idToDevToolsInstanceMap.get(id);\n\n if (devtoolsInstance === undefined) {\n console.warn(\"Could not find DevToolsInstance with id \\\"\".concat(id, \"\\\"\"));\n return {\n instance: instance,\n style: style\n };\n }\n\n if (devtoolsInstance.kind !== FIBER_INSTANCE) {\n // TODO: Handle VirtualInstance.\n return {\n instance: instance,\n style: style\n };\n }\n\n var fiber = devtoolsInstance.data;\n\n if (fiber !== null) {\n instance = fiber.stateNode;\n\n if (fiber.memoizedProps !== null) {\n style = fiber.memoizedProps.style;\n }\n }\n\n return {\n instance: instance,\n style: style\n };\n }\n\n function isErrorBoundary(fiber) {\n var tag = fiber.tag,\n type = fiber.type;\n\n switch (tag) {\n case ClassComponent:\n case IncompleteClassComponent:\n var instance = fiber.stateNode;\n return typeof type.getDerivedStateFromError === 'function' || instance !== null && typeof instance.componentDidCatch === 'function';\n\n default:\n return false;\n }\n }\n\n function inspectElementRaw(id) {\n var devtoolsInstance = idToDevToolsInstanceMap.get(id);\n\n if (devtoolsInstance === undefined) {\n console.warn(\"Could not find DevToolsInstance with id \\\"\".concat(id, \"\\\"\"));\n return null;\n }\n\n if (devtoolsInstance.kind === VIRTUAL_INSTANCE) {\n return inspectVirtualInstanceRaw(devtoolsInstance);\n }\n\n if (devtoolsInstance.kind === FIBER_INSTANCE) {\n return inspectFiberInstanceRaw(devtoolsInstance);\n }\n\n devtoolsInstance; // assert exhaustive\n\n throw new Error('Unsupported instance kind');\n }\n\n function inspectFiberInstanceRaw(fiberInstance) {\n var fiber = fiberInstance.data;\n\n if (fiber == null) {\n return null;\n }\n\n var stateNode = fiber.stateNode,\n key = fiber.key,\n memoizedProps = fiber.memoizedProps,\n memoizedState = fiber.memoizedState,\n dependencies = fiber.dependencies,\n tag = fiber.tag,\n type = fiber.type;\n var elementType = getElementTypeForFiber(fiber);\n var usesHooks = (tag === FunctionComponent || tag === SimpleMemoComponent || tag === ForwardRef) && (!!memoizedState || !!dependencies); // TODO Show custom UI for Cache like we do for Suspense\n // For now, just hide state data entirely since it's not meant to be inspected.\n\n var showState = !usesHooks && tag !== CacheComponent;\n var typeSymbol = getTypeSymbol(type);\n var canViewSource = false;\n var context = null;\n\n if (tag === ClassComponent || tag === FunctionComponent || tag === IncompleteClassComponent || tag === IncompleteFunctionComponent || tag === IndeterminateComponent || tag === MemoComponent || tag === ForwardRef || tag === SimpleMemoComponent) {\n canViewSource = true;\n\n if (stateNode && stateNode.context != null) {\n // Don't show an empty context object for class components that don't use the context API.\n var shouldHideContext = elementType === types_ElementTypeClass && !(type.contextTypes || type.contextType);\n\n if (!shouldHideContext) {\n context = stateNode.context;\n }\n }\n } else if ( // Detect pre-19 Context Consumers\n (typeSymbol === CONTEXT_NUMBER || typeSymbol === CONTEXT_SYMBOL_STRING) && !( // In 19+, CONTEXT_SYMBOL_STRING means a Provider instead.\n // It will be handled in a different branch below.\n // Eventually, this entire branch can be removed.\n type._context === undefined && type.Provider === type)) {\n // 16.3-16.5 read from \"type\" because the Consumer is the actual context object.\n // 16.6+ should read from \"type._context\" because Consumer can be different (in DEV).\n // NOTE Keep in sync with getDisplayNameForFiber()\n var consumerResolvedContext = type._context || type; // Global context value.\n\n context = consumerResolvedContext._currentValue || null; // Look for overridden value.\n\n var _current = fiber.return;\n\n while (_current !== null) {\n var currentType = _current.type;\n var currentTypeSymbol = getTypeSymbol(currentType);\n\n if (currentTypeSymbol === PROVIDER_NUMBER || currentTypeSymbol === PROVIDER_SYMBOL_STRING) {\n // 16.3.0 exposed the context object as \"context\"\n // PR #12501 changed it to \"_context\" for 16.3.1+\n // NOTE Keep in sync with getDisplayNameForFiber()\n var providerResolvedContext = currentType._context || currentType.context;\n\n if (providerResolvedContext === consumerResolvedContext) {\n context = _current.memoizedProps.value;\n break;\n }\n }\n\n _current = _current.return;\n }\n } else if ( // Detect 19+ Context Consumers\n typeSymbol === CONSUMER_SYMBOL_STRING) {\n // This branch is 19+ only, where Context.Provider === Context.\n // NOTE Keep in sync with getDisplayNameForFiber()\n var _consumerResolvedContext = type._context; // Global context value.\n\n context = _consumerResolvedContext._currentValue || null; // Look for overridden value.\n\n var _current2 = fiber.return;\n\n while (_current2 !== null) {\n var _currentType = _current2.type;\n\n var _currentTypeSymbol = getTypeSymbol(_currentType);\n\n if ( // In 19+, these are Context Providers\n _currentTypeSymbol === CONTEXT_SYMBOL_STRING) {\n var _providerResolvedContext = _currentType;\n\n if (_providerResolvedContext === _consumerResolvedContext) {\n context = _current2.memoizedProps.value;\n break;\n }\n }\n\n _current2 = _current2.return;\n }\n }\n\n var hasLegacyContext = false;\n\n if (context !== null) {\n hasLegacyContext = !!type.contextTypes; // To simplify hydration and display logic for context, wrap in a value object.\n // Otherwise simple values (e.g. strings, booleans) become harder to handle.\n\n context = {\n value: context\n };\n }\n\n var owners = getOwnersListFromInstance(fiberInstance);\n var hooks = null;\n\n if (usesHooks) {\n var originalConsoleMethods = {}; // Temporarily disable all console logging before re-running the hook.\n\n for (var method in console) {\n try {\n // $FlowFixMe[invalid-computed-prop]\n originalConsoleMethods[method] = console[method]; // $FlowFixMe[prop-missing]\n\n console[method] = function () {};\n } catch (error) {}\n }\n\n try {\n hooks = (0,react_debug_tools.inspectHooksOfFiber)(fiber, getDispatcherRef(renderer));\n } finally {\n // Restore original console functionality.\n for (var _method in originalConsoleMethods) {\n try {\n // $FlowFixMe[prop-missing]\n console[_method] = originalConsoleMethods[_method];\n } catch (error) {}\n }\n }\n }\n\n var rootType = null;\n var current = fiber;\n var hasErrorBoundary = false;\n var hasSuspenseBoundary = false;\n\n while (current.return !== null) {\n var temp = current;\n current = current.return;\n\n if (temp.tag === SuspenseComponent) {\n hasSuspenseBoundary = true;\n } else if (isErrorBoundary(temp)) {\n hasErrorBoundary = true;\n }\n }\n\n var fiberRoot = current.stateNode;\n\n if (fiberRoot != null && fiberRoot._debugRootType !== null) {\n rootType = fiberRoot._debugRootType;\n }\n\n var isTimedOutSuspense = tag === SuspenseComponent && memoizedState !== null;\n var isErrored = false;\n\n if (isErrorBoundary(fiber)) {\n // if the current inspected element is an error boundary,\n // either that we want to use it to toggle off error state\n // or that we allow to force error state on it if it's within another\n // error boundary\n //\n // TODO: This flag is a leaked implementation detail. Once we start\n // releasing DevTools in lockstep with React, we should import a function\n // from the reconciler instead.\n var DidCapture = 128;\n isErrored = (fiber.flags & DidCapture) !== 0 || forceErrorForFibers.get(fiber) === true || fiber.alternate !== null && forceErrorForFibers.get(fiber.alternate) === true;\n }\n\n var plugins = {\n stylex: null\n };\n\n if (enableStyleXFeatures) {\n if (memoizedProps != null && memoizedProps.hasOwnProperty('xstyle')) {\n plugins.stylex = getStyleXData(memoizedProps.xstyle);\n }\n }\n\n var source = null;\n\n if (canViewSource) {\n source = getSourceForFiberInstance(fiberInstance);\n }\n\n var componentLogsEntry = fiberToComponentLogsMap.get(fiber);\n\n if (componentLogsEntry === undefined && fiber.alternate !== null) {\n componentLogsEntry = fiberToComponentLogsMap.get(fiber.alternate);\n }\n\n return {\n id: fiberInstance.id,\n // Does the current renderer support editable hooks and function props?\n canEditHooks: typeof overrideHookState === 'function',\n canEditFunctionProps: typeof overrideProps === 'function',\n // Does the current renderer support advanced editing interface?\n canEditHooksAndDeletePaths: typeof overrideHookStateDeletePath === 'function',\n canEditHooksAndRenamePaths: typeof overrideHookStateRenamePath === 'function',\n canEditFunctionPropsDeletePaths: typeof overridePropsDeletePath === 'function',\n canEditFunctionPropsRenamePaths: typeof overridePropsRenamePath === 'function',\n canToggleError: supportsTogglingError && hasErrorBoundary,\n // Is this error boundary in error state.\n isErrored: isErrored,\n canToggleSuspense: supportsTogglingSuspense && hasSuspenseBoundary && ( // If it's showing the real content, we can always flip fallback.\n !isTimedOutSuspense || // If it's showing fallback because we previously forced it to,\n // allow toggling it back to remove the fallback override.\n forceFallbackForFibers.has(fiber) || fiber.alternate !== null && forceFallbackForFibers.has(fiber.alternate)),\n // Can view component source location.\n canViewSource: canViewSource,\n source: source,\n // Does the component have legacy context attached to it.\n hasLegacyContext: hasLegacyContext,\n key: key != null ? key : null,\n type: elementType,\n // Inspectable properties.\n // TODO Review sanitization approach for the below inspectable values.\n context: context,\n hooks: hooks,\n props: memoizedProps,\n state: showState ? memoizedState : null,\n errors: componentLogsEntry === undefined ? [] : Array.from(componentLogsEntry.errors.entries()),\n warnings: componentLogsEntry === undefined ? [] : Array.from(componentLogsEntry.warnings.entries()),\n // List of owners\n owners: owners,\n rootType: rootType,\n rendererPackageName: renderer.rendererPackageName,\n rendererVersion: renderer.version,\n plugins: plugins\n };\n }\n\n function inspectVirtualInstanceRaw(virtualInstance) {\n var canViewSource = true;\n var source = getSourceForInstance(virtualInstance);\n var componentInfo = virtualInstance.data;\n var key = typeof componentInfo.key === 'string' ? componentInfo.key : null;\n var props = componentInfo.props == null ? null : componentInfo.props;\n var owners = getOwnersListFromInstance(virtualInstance);\n var rootType = null;\n var hasErrorBoundary = false;\n var hasSuspenseBoundary = false;\n var nearestFiber = getNearestFiber(virtualInstance);\n\n if (nearestFiber !== null) {\n var current = nearestFiber;\n\n while (current.return !== null) {\n var temp = current;\n current = current.return;\n\n if (temp.tag === SuspenseComponent) {\n hasSuspenseBoundary = true;\n } else if (isErrorBoundary(temp)) {\n hasErrorBoundary = true;\n }\n }\n\n var fiberRoot = current.stateNode;\n\n if (fiberRoot != null && fiberRoot._debugRootType !== null) {\n rootType = fiberRoot._debugRootType;\n }\n }\n\n var plugins = {\n stylex: null\n };\n var componentLogsEntry = componentInfoToComponentLogsMap.get(componentInfo);\n return {\n id: virtualInstance.id,\n canEditHooks: false,\n canEditFunctionProps: false,\n canEditHooksAndDeletePaths: false,\n canEditHooksAndRenamePaths: false,\n canEditFunctionPropsDeletePaths: false,\n canEditFunctionPropsRenamePaths: false,\n canToggleError: supportsTogglingError && hasErrorBoundary,\n isErrored: false,\n canToggleSuspense: supportsTogglingSuspense && hasSuspenseBoundary,\n // Can view component source location.\n canViewSource: canViewSource,\n source: source,\n // Does the component have legacy context attached to it.\n hasLegacyContext: false,\n key: key,\n type: types_ElementTypeVirtual,\n // Inspectable properties.\n // TODO Review sanitization approach for the below inspectable values.\n context: null,\n hooks: null,\n props: props,\n state: null,\n errors: componentLogsEntry === undefined ? [] : Array.from(componentLogsEntry.errors.entries()),\n warnings: componentLogsEntry === undefined ? [] : Array.from(componentLogsEntry.warnings.entries()),\n // List of owners\n owners: owners,\n rootType: rootType,\n rendererPackageName: renderer.rendererPackageName,\n rendererVersion: renderer.version,\n plugins: plugins\n };\n }\n\n var mostRecentlyInspectedElement = null;\n var hasElementUpdatedSinceLastInspected = false;\n var currentlyInspectedPaths = {};\n\n function isMostRecentlyInspectedElement(id) {\n return mostRecentlyInspectedElement !== null && mostRecentlyInspectedElement.id === id;\n }\n\n function isMostRecentlyInspectedElementCurrent(id) {\n return isMostRecentlyInspectedElement(id) && !hasElementUpdatedSinceLastInspected;\n } // Track the intersection of currently inspected paths,\n // so that we can send their data along if the element is re-rendered.\n\n\n function mergeInspectedPaths(path) {\n var current = currentlyInspectedPaths;\n path.forEach(function (key) {\n if (!current[key]) {\n current[key] = {};\n }\n\n current = current[key];\n });\n }\n\n function createIsPathAllowed(key, secondaryCategory) {\n // This function helps prevent previously-inspected paths from being dehydrated in updates.\n // This is important to avoid a bad user experience where expanded toggles collapse on update.\n return function isPathAllowed(path) {\n switch (secondaryCategory) {\n case 'hooks':\n if (path.length === 1) {\n // Never dehydrate the \"hooks\" object at the top levels.\n return true;\n }\n\n if (path[path.length - 2] === 'hookSource' && path[path.length - 1] === 'fileName') {\n // It's important to preserve the full file name (URL) for hook sources\n // in case the user has enabled the named hooks feature.\n // Otherwise the frontend may end up with a partial URL which it can't load.\n return true;\n }\n\n if (path[path.length - 1] === 'subHooks' || path[path.length - 2] === 'subHooks') {\n // Dehydrating the 'subHooks' property makes the HooksTree UI a lot more complicated,\n // so it's easiest for now if we just don't break on this boundary.\n // We can always dehydrate a level deeper (in the value object).\n return true;\n }\n\n break;\n\n default:\n break;\n }\n\n var current = key === null ? currentlyInspectedPaths : currentlyInspectedPaths[key];\n\n if (!current) {\n return false;\n }\n\n for (var i = 0; i < path.length; i++) {\n current = current[path[i]];\n\n if (!current) {\n return false;\n }\n }\n\n return true;\n };\n }\n\n function updateSelectedElement(inspectedElement) {\n var hooks = inspectedElement.hooks,\n id = inspectedElement.id,\n props = inspectedElement.props;\n var devtoolsInstance = idToDevToolsInstanceMap.get(id);\n\n if (devtoolsInstance === undefined) {\n console.warn(\"Could not find DevToolsInstance with id \\\"\".concat(id, \"\\\"\"));\n return;\n }\n\n if (devtoolsInstance.kind !== FIBER_INSTANCE) {\n // TODO: Handle VirtualInstance.\n return;\n }\n\n var fiber = devtoolsInstance.data;\n var elementType = fiber.elementType,\n stateNode = fiber.stateNode,\n tag = fiber.tag,\n type = fiber.type;\n\n switch (tag) {\n case ClassComponent:\n case IncompleteClassComponent:\n case IndeterminateComponent:\n global.$r = stateNode;\n break;\n\n case IncompleteFunctionComponent:\n case FunctionComponent:\n global.$r = {\n hooks: hooks,\n props: props,\n type: type\n };\n break;\n\n case ForwardRef:\n global.$r = {\n hooks: hooks,\n props: props,\n type: type.render\n };\n break;\n\n case MemoComponent:\n case SimpleMemoComponent:\n global.$r = {\n hooks: hooks,\n props: props,\n type: elementType != null && elementType.type != null ? elementType.type : type\n };\n break;\n\n default:\n global.$r = null;\n break;\n }\n }\n\n function storeAsGlobal(id, path, count) {\n if (isMostRecentlyInspectedElement(id)) {\n var value = utils_getInObject(mostRecentlyInspectedElement, path);\n var key = \"$reactTemp\".concat(count);\n window[key] = value;\n console.log(key);\n console.log(value);\n }\n }\n\n function getSerializedElementValueByPath(id, path) {\n if (isMostRecentlyInspectedElement(id)) {\n var valueToCopy = utils_getInObject(mostRecentlyInspectedElement, path);\n return serializeToString(valueToCopy);\n }\n }\n\n function inspectElement(requestID, id, path, forceFullData) {\n if (path !== null) {\n mergeInspectedPaths(path);\n }\n\n if (isMostRecentlyInspectedElement(id) && !forceFullData) {\n if (!hasElementUpdatedSinceLastInspected) {\n if (path !== null) {\n var secondaryCategory = null;\n\n if (path[0] === 'hooks') {\n secondaryCategory = 'hooks';\n } // If this element has not been updated since it was last inspected,\n // we can just return the subset of data in the newly-inspected path.\n\n\n return {\n id: id,\n responseID: requestID,\n type: 'hydrated-path',\n path: path,\n value: cleanForBridge(utils_getInObject(mostRecentlyInspectedElement, path), createIsPathAllowed(null, secondaryCategory), path)\n };\n } else {\n // If this element has not been updated since it was last inspected, we don't need to return it.\n // Instead we can just return the ID to indicate that it has not changed.\n return {\n id: id,\n responseID: requestID,\n type: 'no-change'\n };\n }\n }\n } else {\n currentlyInspectedPaths = {};\n }\n\n hasElementUpdatedSinceLastInspected = false;\n\n try {\n mostRecentlyInspectedElement = inspectElementRaw(id);\n } catch (error) {\n // the error name is synced with ReactDebugHooks\n if (error.name === 'ReactDebugToolsRenderError') {\n var message = 'Error rendering inspected element.';\n var stack; // Log error & cause for user to debug\n\n console.error(message + '\\n\\n', error);\n\n if (error.cause != null) {\n var componentName = getDisplayNameForElementID(id);\n console.error('React DevTools encountered an error while trying to inspect hooks. ' + 'This is most likely caused by an error in current inspected component' + (componentName != null ? \": \\\"\".concat(componentName, \"\\\".\") : '.') + '\\nThe error thrown in the component is: \\n\\n', error.cause);\n\n if (error.cause instanceof Error) {\n message = error.cause.message || message;\n stack = error.cause.stack;\n }\n }\n\n return {\n type: 'error',\n errorType: 'user',\n id: id,\n responseID: requestID,\n message: message,\n stack: stack\n };\n } // the error name is synced with ReactDebugHooks\n\n\n if (error.name === 'ReactDebugToolsUnsupportedHookError') {\n return {\n type: 'error',\n errorType: 'unknown-hook',\n id: id,\n responseID: requestID,\n message: 'Unsupported hook in the react-debug-tools package: ' + error.message\n };\n } // Log Uncaught Error\n\n\n console.error('Error inspecting element.\\n\\n', error);\n return {\n type: 'error',\n errorType: 'uncaught',\n id: id,\n responseID: requestID,\n message: error.message,\n stack: error.stack\n };\n }\n\n if (mostRecentlyInspectedElement === null) {\n return {\n id: id,\n responseID: requestID,\n type: 'not-found'\n };\n } // Any time an inspected element has an update,\n // we should update the selected $r value as wel.\n // Do this before dehydration (cleanForBridge).\n\n\n updateSelectedElement(mostRecentlyInspectedElement); // Clone before cleaning so that we preserve the full data.\n // This will enable us to send patches without re-inspecting if hydrated paths are requested.\n // (Reducing how often we shallow-render is a better DX for function components that use hooks.)\n\n var cleanedInspectedElement = renderer_objectSpread({}, mostRecentlyInspectedElement); // $FlowFixMe[prop-missing] found when upgrading Flow\n\n\n cleanedInspectedElement.context = cleanForBridge(cleanedInspectedElement.context, createIsPathAllowed('context', null)); // $FlowFixMe[prop-missing] found when upgrading Flow\n\n cleanedInspectedElement.hooks = cleanForBridge(cleanedInspectedElement.hooks, createIsPathAllowed('hooks', 'hooks')); // $FlowFixMe[prop-missing] found when upgrading Flow\n\n cleanedInspectedElement.props = cleanForBridge(cleanedInspectedElement.props, createIsPathAllowed('props', null)); // $FlowFixMe[prop-missing] found when upgrading Flow\n\n cleanedInspectedElement.state = cleanForBridge(cleanedInspectedElement.state, createIsPathAllowed('state', null));\n return {\n id: id,\n responseID: requestID,\n type: 'full-data',\n // $FlowFixMe[prop-missing] found when upgrading Flow\n value: cleanedInspectedElement\n };\n }\n\n function logElementToConsole(id) {\n var result = isMostRecentlyInspectedElementCurrent(id) ? mostRecentlyInspectedElement : inspectElementRaw(id);\n\n if (result === null) {\n console.warn(\"Could not find DevToolsInstance with id \\\"\".concat(id, \"\\\"\"));\n return;\n }\n\n var displayName = getDisplayNameForElementID(id);\n var supportsGroup = typeof console.groupCollapsed === 'function';\n\n if (supportsGroup) {\n console.groupCollapsed(\"[Click to expand] %c<\".concat(displayName || 'Component', \" />\"), // --dom-tag-name-color is the CSS variable Chrome styles HTML elements with in the console.\n 'color: var(--dom-tag-name-color); font-weight: normal;');\n }\n\n if (result.props !== null) {\n console.log('Props:', result.props);\n }\n\n if (result.state !== null) {\n console.log('State:', result.state);\n }\n\n if (result.hooks !== null) {\n console.log('Hooks:', result.hooks);\n }\n\n var hostInstances = findHostInstancesForElementID(id);\n\n if (hostInstances !== null) {\n console.log('Nodes:', hostInstances);\n }\n\n if (window.chrome || /firefox/i.test(navigator.userAgent)) {\n console.log('Right-click any value to save it as a global variable for further inspection.');\n }\n\n if (supportsGroup) {\n console.groupEnd();\n }\n }\n\n function deletePath(type, id, hookID, path) {\n var devtoolsInstance = idToDevToolsInstanceMap.get(id);\n\n if (devtoolsInstance === undefined) {\n console.warn(\"Could not find DevToolsInstance with id \\\"\".concat(id, \"\\\"\"));\n return;\n }\n\n if (devtoolsInstance.kind !== FIBER_INSTANCE) {\n // TODO: Handle VirtualInstance.\n return;\n }\n\n var fiber = devtoolsInstance.data;\n\n if (fiber !== null) {\n var instance = fiber.stateNode;\n\n switch (type) {\n case 'context':\n // To simplify hydration and display of primitive context values (e.g. number, string)\n // the inspectElement() method wraps context in a {value: ...} object.\n // We need to remove the first part of the path (the \"value\") before continuing.\n path = path.slice(1);\n\n switch (fiber.tag) {\n case ClassComponent:\n if (path.length === 0) {// Simple context value (noop)\n } else {\n deletePathInObject(instance.context, path);\n }\n\n instance.forceUpdate();\n break;\n\n case FunctionComponent:\n // Function components using legacy context are not editable\n // because there's no instance on which to create a cloned, mutated context.\n break;\n }\n\n break;\n\n case 'hooks':\n if (typeof overrideHookStateDeletePath === 'function') {\n overrideHookStateDeletePath(fiber, hookID, path);\n }\n\n break;\n\n case 'props':\n if (instance === null) {\n if (typeof overridePropsDeletePath === 'function') {\n overridePropsDeletePath(fiber, path);\n }\n } else {\n fiber.pendingProps = copyWithDelete(instance.props, path);\n instance.forceUpdate();\n }\n\n break;\n\n case 'state':\n deletePathInObject(instance.state, path);\n instance.forceUpdate();\n break;\n }\n }\n }\n\n function renamePath(type, id, hookID, oldPath, newPath) {\n var devtoolsInstance = idToDevToolsInstanceMap.get(id);\n\n if (devtoolsInstance === undefined) {\n console.warn(\"Could not find DevToolsInstance with id \\\"\".concat(id, \"\\\"\"));\n return;\n }\n\n if (devtoolsInstance.kind !== FIBER_INSTANCE) {\n // TODO: Handle VirtualInstance.\n return;\n }\n\n var fiber = devtoolsInstance.data;\n\n if (fiber !== null) {\n var instance = fiber.stateNode;\n\n switch (type) {\n case 'context':\n // To simplify hydration and display of primitive context values (e.g. number, string)\n // the inspectElement() method wraps context in a {value: ...} object.\n // We need to remove the first part of the path (the \"value\") before continuing.\n oldPath = oldPath.slice(1);\n newPath = newPath.slice(1);\n\n switch (fiber.tag) {\n case ClassComponent:\n if (oldPath.length === 0) {// Simple context value (noop)\n } else {\n renamePathInObject(instance.context, oldPath, newPath);\n }\n\n instance.forceUpdate();\n break;\n\n case FunctionComponent:\n // Function components using legacy context are not editable\n // because there's no instance on which to create a cloned, mutated context.\n break;\n }\n\n break;\n\n case 'hooks':\n if (typeof overrideHookStateRenamePath === 'function') {\n overrideHookStateRenamePath(fiber, hookID, oldPath, newPath);\n }\n\n break;\n\n case 'props':\n if (instance === null) {\n if (typeof overridePropsRenamePath === 'function') {\n overridePropsRenamePath(fiber, oldPath, newPath);\n }\n } else {\n fiber.pendingProps = copyWithRename(instance.props, oldPath, newPath);\n instance.forceUpdate();\n }\n\n break;\n\n case 'state':\n renamePathInObject(instance.state, oldPath, newPath);\n instance.forceUpdate();\n break;\n }\n }\n }\n\n function overrideValueAtPath(type, id, hookID, path, value) {\n var devtoolsInstance = idToDevToolsInstanceMap.get(id);\n\n if (devtoolsInstance === undefined) {\n console.warn(\"Could not find DevToolsInstance with id \\\"\".concat(id, \"\\\"\"));\n return;\n }\n\n if (devtoolsInstance.kind !== FIBER_INSTANCE) {\n // TODO: Handle VirtualInstance.\n return;\n }\n\n var fiber = devtoolsInstance.data;\n\n if (fiber !== null) {\n var instance = fiber.stateNode;\n\n switch (type) {\n case 'context':\n // To simplify hydration and display of primitive context values (e.g. number, string)\n // the inspectElement() method wraps context in a {value: ...} object.\n // We need to remove the first part of the path (the \"value\") before continuing.\n path = path.slice(1);\n\n switch (fiber.tag) {\n case ClassComponent:\n if (path.length === 0) {\n // Simple context value\n instance.context = value;\n } else {\n utils_setInObject(instance.context, path, value);\n }\n\n instance.forceUpdate();\n break;\n\n case FunctionComponent:\n // Function components using legacy context are not editable\n // because there's no instance on which to create a cloned, mutated context.\n break;\n }\n\n break;\n\n case 'hooks':\n if (typeof overrideHookState === 'function') {\n overrideHookState(fiber, hookID, path, value);\n }\n\n break;\n\n case 'props':\n switch (fiber.tag) {\n case ClassComponent:\n fiber.pendingProps = copyWithSet(instance.props, path, value);\n instance.forceUpdate();\n break;\n\n default:\n if (typeof overrideProps === 'function') {\n overrideProps(fiber, path, value);\n }\n\n break;\n }\n\n break;\n\n case 'state':\n switch (fiber.tag) {\n case ClassComponent:\n utils_setInObject(instance.state, path, value);\n instance.forceUpdate();\n break;\n }\n\n break;\n }\n }\n }\n\n var currentCommitProfilingMetadata = null;\n var displayNamesByRootID = null;\n var initialTreeBaseDurationsMap = null;\n var isProfiling = false;\n var profilingStartTime = 0;\n var recordChangeDescriptions = false;\n var recordTimeline = false;\n var rootToCommitProfilingMetadataMap = null;\n\n function getProfilingData() {\n var dataForRoots = [];\n\n if (rootToCommitProfilingMetadataMap === null) {\n throw Error('getProfilingData() called before any profiling data was recorded');\n }\n\n rootToCommitProfilingMetadataMap.forEach(function (commitProfilingMetadata, rootID) {\n var commitData = [];\n var displayName = displayNamesByRootID !== null && displayNamesByRootID.get(rootID) || 'Unknown';\n var initialTreeBaseDurations = initialTreeBaseDurationsMap !== null && initialTreeBaseDurationsMap.get(rootID) || [];\n commitProfilingMetadata.forEach(function (commitProfilingData, commitIndex) {\n var changeDescriptions = commitProfilingData.changeDescriptions,\n durations = commitProfilingData.durations,\n effectDuration = commitProfilingData.effectDuration,\n maxActualDuration = commitProfilingData.maxActualDuration,\n passiveEffectDuration = commitProfilingData.passiveEffectDuration,\n priorityLevel = commitProfilingData.priorityLevel,\n commitTime = commitProfilingData.commitTime,\n updaters = commitProfilingData.updaters;\n var fiberActualDurations = [];\n var fiberSelfDurations = [];\n\n for (var i = 0; i < durations.length; i += 3) {\n var fiberID = durations[i];\n fiberActualDurations.push([fiberID, formatDurationToMicrosecondsGranularity(durations[i + 1])]);\n fiberSelfDurations.push([fiberID, formatDurationToMicrosecondsGranularity(durations[i + 2])]);\n }\n\n commitData.push({\n changeDescriptions: changeDescriptions !== null ? Array.from(changeDescriptions.entries()) : null,\n duration: formatDurationToMicrosecondsGranularity(maxActualDuration),\n effectDuration: effectDuration !== null ? formatDurationToMicrosecondsGranularity(effectDuration) : null,\n fiberActualDurations: fiberActualDurations,\n fiberSelfDurations: fiberSelfDurations,\n passiveEffectDuration: passiveEffectDuration !== null ? formatDurationToMicrosecondsGranularity(passiveEffectDuration) : null,\n priorityLevel: priorityLevel,\n timestamp: commitTime,\n updaters: updaters\n });\n });\n dataForRoots.push({\n commitData: commitData,\n displayName: displayName,\n initialTreeBaseDurations: initialTreeBaseDurations,\n rootID: rootID\n });\n });\n var timelineData = null;\n\n if (typeof getTimelineData === 'function') {\n var currentTimelineData = getTimelineData();\n\n if (currentTimelineData) {\n var batchUIDToMeasuresMap = currentTimelineData.batchUIDToMeasuresMap,\n internalModuleSourceToRanges = currentTimelineData.internalModuleSourceToRanges,\n laneToLabelMap = currentTimelineData.laneToLabelMap,\n laneToReactMeasureMap = currentTimelineData.laneToReactMeasureMap,\n rest = _objectWithoutProperties(currentTimelineData, [\"batchUIDToMeasuresMap\", \"internalModuleSourceToRanges\", \"laneToLabelMap\", \"laneToReactMeasureMap\"]);\n\n timelineData = renderer_objectSpread(renderer_objectSpread({}, rest), {}, {\n // Most of the data is safe to parse as-is,\n // but we need to convert the nested Arrays back to Maps.\n // Most of the data is safe to serialize as-is,\n // but we need to convert the Maps to nested Arrays.\n batchUIDToMeasuresKeyValueArray: Array.from(batchUIDToMeasuresMap.entries()),\n internalModuleSourceToRanges: Array.from(internalModuleSourceToRanges.entries()),\n laneToLabelKeyValueArray: Array.from(laneToLabelMap.entries()),\n laneToReactMeasureKeyValueArray: Array.from(laneToReactMeasureMap.entries())\n });\n }\n }\n\n return {\n dataForRoots: dataForRoots,\n rendererID: rendererID,\n timelineData: timelineData\n };\n }\n\n function snapshotTreeBaseDurations(instance, target) {\n // We don't need to convert milliseconds to microseconds in this case,\n // because the profiling summary is JSON serialized.\n if (instance.kind !== FILTERED_FIBER_INSTANCE) {\n target.push([instance.id, instance.treeBaseDuration]);\n }\n\n for (var child = instance.firstChild; child !== null; child = child.nextSibling) {\n snapshotTreeBaseDurations(child, target);\n }\n }\n\n function startProfiling(shouldRecordChangeDescriptions, shouldRecordTimeline) {\n if (isProfiling) {\n return;\n }\n\n recordChangeDescriptions = shouldRecordChangeDescriptions;\n recordTimeline = shouldRecordTimeline; // Capture initial values as of the time profiling starts.\n // It's important we snapshot both the durations and the id-to-root map,\n // since either of these may change during the profiling session\n // (e.g. when a fiber is re-rendered or when a fiber gets removed).\n\n displayNamesByRootID = new Map();\n initialTreeBaseDurationsMap = new Map();\n hook.getFiberRoots(rendererID).forEach(function (root) {\n var rootInstance = rootToFiberInstanceMap.get(root);\n\n if (rootInstance === undefined) {\n throw new Error('Expected the root instance to already exist when starting profiling');\n }\n\n var rootID = rootInstance.id;\n displayNamesByRootID.set(rootID, getDisplayNameForRoot(root.current));\n var initialTreeBaseDurations = [];\n snapshotTreeBaseDurations(rootInstance, initialTreeBaseDurations);\n initialTreeBaseDurationsMap.set(rootID, initialTreeBaseDurations);\n });\n isProfiling = true;\n profilingStartTime = renderer_getCurrentTime();\n rootToCommitProfilingMetadataMap = new Map();\n\n if (toggleProfilingStatus !== null) {\n toggleProfilingStatus(true, recordTimeline);\n }\n }\n\n function stopProfiling() {\n isProfiling = false;\n recordChangeDescriptions = false;\n\n if (toggleProfilingStatus !== null) {\n toggleProfilingStatus(false, recordTimeline);\n }\n\n recordTimeline = false;\n } // Automatically start profiling so that we don't miss timing info from initial \"mount\".\n\n\n if (shouldStartProfilingNow) {\n startProfiling(profilingSettings.recordChangeDescriptions, profilingSettings.recordTimeline);\n }\n\n function getNearestFiber(devtoolsInstance) {\n if (devtoolsInstance.kind === VIRTUAL_INSTANCE) {\n var inst = devtoolsInstance;\n\n while (inst.kind === VIRTUAL_INSTANCE) {\n // For virtual instances, we search deeper until we find a Fiber instance.\n // Then we search upwards from that Fiber. That's because Virtual Instances\n // will always have an Fiber child filtered or not. If we searched its parents\n // we might skip through a filtered Error Boundary before we hit a FiberInstance.\n if (inst.firstChild === null) {\n return null;\n }\n\n inst = inst.firstChild;\n }\n\n return inst.data.return;\n } else {\n return devtoolsInstance.data;\n }\n } // React will switch between these implementations depending on whether\n // we have any manually suspended/errored-out Fibers or not.\n\n\n function shouldErrorFiberAlwaysNull() {\n return null;\n } // Map of Fiber and its force error status: true (error), false (toggled off)\n\n\n var forceErrorForFibers = new Map();\n\n function shouldErrorFiberAccordingToMap(fiber) {\n if (typeof setErrorHandler !== 'function') {\n throw new Error('Expected overrideError() to not get called for earlier React versions.');\n }\n\n var status = forceErrorForFibers.get(fiber);\n\n if (status === false) {\n // TRICKY overrideError adds entries to this Map,\n // so ideally it would be the method that clears them too,\n // but that would break the functionality of the feature,\n // since DevTools needs to tell React to act differently than it normally would\n // (don't just re-render the failed boundary, but reset its errored state too).\n // So we can only clear it after telling React to reset the state.\n // Technically this is premature and we should schedule it for later,\n // since the render could always fail without committing the updated error boundary,\n // but since this is a DEV-only feature, the simplicity is worth the trade off.\n forceErrorForFibers.delete(fiber);\n\n if (forceErrorForFibers.size === 0) {\n // Last override is gone. Switch React back to fast path.\n setErrorHandler(shouldErrorFiberAlwaysNull);\n }\n\n return false;\n }\n\n if (status === undefined && fiber.alternate !== null) {\n status = forceErrorForFibers.get(fiber.alternate);\n\n if (status === false) {\n forceErrorForFibers.delete(fiber.alternate);\n\n if (forceErrorForFibers.size === 0) {\n // Last override is gone. Switch React back to fast path.\n setErrorHandler(shouldErrorFiberAlwaysNull);\n }\n }\n }\n\n if (status === undefined) {\n return false;\n }\n\n return status;\n }\n\n function overrideError(id, forceError) {\n if (typeof setErrorHandler !== 'function' || typeof scheduleUpdate !== 'function') {\n throw new Error('Expected overrideError() to not get called for earlier React versions.');\n }\n\n var devtoolsInstance = idToDevToolsInstanceMap.get(id);\n\n if (devtoolsInstance === undefined) {\n return;\n }\n\n var nearestFiber = getNearestFiber(devtoolsInstance);\n\n if (nearestFiber === null) {\n return;\n }\n\n var fiber = nearestFiber;\n\n while (!isErrorBoundary(fiber)) {\n if (fiber.return === null) {\n return;\n }\n\n fiber = fiber.return;\n }\n\n forceErrorForFibers.set(fiber, forceError);\n\n if (fiber.alternate !== null) {\n // We only need one of the Fibers in the set.\n forceErrorForFibers.delete(fiber.alternate);\n }\n\n if (forceErrorForFibers.size === 1) {\n // First override is added. Switch React to slower path.\n setErrorHandler(shouldErrorFiberAccordingToMap);\n }\n\n scheduleUpdate(fiber);\n }\n\n function shouldSuspendFiberAlwaysFalse() {\n return false;\n }\n\n var forceFallbackForFibers = new Set();\n\n function shouldSuspendFiberAccordingToSet(fiber) {\n return forceFallbackForFibers.has(fiber) || fiber.alternate !== null && forceFallbackForFibers.has(fiber.alternate);\n }\n\n function overrideSuspense(id, forceFallback) {\n if (typeof setSuspenseHandler !== 'function' || typeof scheduleUpdate !== 'function') {\n throw new Error('Expected overrideSuspense() to not get called for earlier React versions.');\n }\n\n var devtoolsInstance = idToDevToolsInstanceMap.get(id);\n\n if (devtoolsInstance === undefined) {\n return;\n }\n\n var nearestFiber = getNearestFiber(devtoolsInstance);\n\n if (nearestFiber === null) {\n return;\n }\n\n var fiber = nearestFiber;\n\n while (fiber.tag !== SuspenseComponent) {\n if (fiber.return === null) {\n return;\n }\n\n fiber = fiber.return;\n }\n\n if (fiber.alternate !== null) {\n // We only need one of the Fibers in the set.\n forceFallbackForFibers.delete(fiber.alternate);\n }\n\n if (forceFallback) {\n forceFallbackForFibers.add(fiber);\n\n if (forceFallbackForFibers.size === 1) {\n // First override is added. Switch React to slower path.\n setSuspenseHandler(shouldSuspendFiberAccordingToSet);\n }\n } else {\n forceFallbackForFibers.delete(fiber);\n\n if (forceFallbackForFibers.size === 0) {\n // Last override is gone. Switch React back to fast path.\n setSuspenseHandler(shouldSuspendFiberAlwaysFalse);\n }\n }\n\n scheduleUpdate(fiber);\n } // Remember if we're trying to restore the selection after reload.\n // In that case, we'll do some extra checks for matching mounts.\n\n\n var trackedPath = null;\n var trackedPathMatchFiber = null; // This is the deepest unfiltered match of a Fiber.\n\n var trackedPathMatchInstance = null; // This is the deepest matched filtered Instance.\n\n var trackedPathMatchDepth = -1;\n var mightBeOnTrackedPath = false;\n\n function setTrackedPath(path) {\n if (path === null) {\n trackedPathMatchFiber = null;\n trackedPathMatchInstance = null;\n trackedPathMatchDepth = -1;\n mightBeOnTrackedPath = false;\n }\n\n trackedPath = path;\n } // We call this before traversing a new mount.\n // It remembers whether this Fiber is the next best match for tracked path.\n // The return value signals whether we should keep matching siblings or not.\n\n\n function updateTrackedPathStateBeforeMount(fiber, fiberInstance) {\n if (trackedPath === null || !mightBeOnTrackedPath) {\n // Fast path: there's nothing to track so do nothing and ignore siblings.\n return false;\n }\n\n var returnFiber = fiber.return;\n var returnAlternate = returnFiber !== null ? returnFiber.alternate : null; // By now we know there's some selection to restore, and this is a new Fiber.\n // Is this newly mounted Fiber a direct child of the current best match?\n // (This will also be true for new roots if we haven't matched anything yet.)\n\n if (trackedPathMatchFiber === returnFiber || trackedPathMatchFiber === returnAlternate && returnAlternate !== null) {\n // Is this the next Fiber we should select? Let's compare the frames.\n var actualFrame = getPathFrame(fiber); // $FlowFixMe[incompatible-use] found when upgrading Flow\n\n var expectedFrame = trackedPath[trackedPathMatchDepth + 1];\n\n if (expectedFrame === undefined) {\n throw new Error('Expected to see a frame at the next depth.');\n }\n\n if (actualFrame.index === expectedFrame.index && actualFrame.key === expectedFrame.key && actualFrame.displayName === expectedFrame.displayName) {\n // We have our next match.\n trackedPathMatchFiber = fiber;\n\n if (fiberInstance !== null && fiberInstance.kind === FIBER_INSTANCE) {\n trackedPathMatchInstance = fiberInstance;\n }\n\n trackedPathMatchDepth++; // Are we out of frames to match?\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n\n if (trackedPathMatchDepth === trackedPath.length - 1) {\n // There's nothing that can possibly match afterwards.\n // Don't check the children.\n mightBeOnTrackedPath = false;\n } else {\n // Check the children, as they might reveal the next match.\n mightBeOnTrackedPath = true;\n } // In either case, since we have a match, we don't need\n // to check the siblings. They'll never match.\n\n\n return false;\n }\n }\n\n if (trackedPathMatchFiber === null && fiberInstance === null) {\n // We're now looking for a Virtual Instance. It might be inside filtered Fibers\n // so we keep looking below.\n return true;\n } // This Fiber's parent is on the path, but this Fiber itself isn't.\n // There's no need to check its children--they won't be on the path either.\n\n\n mightBeOnTrackedPath = false; // However, one of its siblings may be on the path so keep searching.\n\n return true;\n }\n\n function updateVirtualTrackedPathStateBeforeMount(virtualInstance, parentInstance) {\n if (trackedPath === null || !mightBeOnTrackedPath) {\n // Fast path: there's nothing to track so do nothing and ignore siblings.\n return false;\n } // Check if we've matched our nearest unfiltered parent so far.\n\n\n if (trackedPathMatchInstance === parentInstance) {\n var actualFrame = getVirtualPathFrame(virtualInstance); // $FlowFixMe[incompatible-use] found when upgrading Flow\n\n var expectedFrame = trackedPath[trackedPathMatchDepth + 1];\n\n if (expectedFrame === undefined) {\n throw new Error('Expected to see a frame at the next depth.');\n }\n\n if (actualFrame.index === expectedFrame.index && actualFrame.key === expectedFrame.key && actualFrame.displayName === expectedFrame.displayName) {\n // We have our next match.\n trackedPathMatchFiber = null; // Don't bother looking in Fibers anymore. We're deeper now.\n\n trackedPathMatchInstance = virtualInstance;\n trackedPathMatchDepth++; // Are we out of frames to match?\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n\n if (trackedPathMatchDepth === trackedPath.length - 1) {\n // There's nothing that can possibly match afterwards.\n // Don't check the children.\n mightBeOnTrackedPath = false;\n } else {\n // Check the children, as they might reveal the next match.\n mightBeOnTrackedPath = true;\n } // In either case, since we have a match, we don't need\n // to check the siblings. They'll never match.\n\n\n return false;\n }\n }\n\n if (trackedPathMatchFiber !== null) {\n // We're still looking for a Fiber which might be underneath this instance.\n return true;\n } // This Instance's parent is on the path, but this Instance itself isn't.\n // There's no need to check its children--they won't be on the path either.\n\n\n mightBeOnTrackedPath = false; // However, one of its siblings may be on the path so keep searching.\n\n return true;\n }\n\n function updateTrackedPathStateAfterMount(mightSiblingsBeOnTrackedPath) {\n // updateTrackedPathStateBeforeMount() told us whether to match siblings.\n // Now that we're entering siblings, let's use that information.\n mightBeOnTrackedPath = mightSiblingsBeOnTrackedPath;\n } // Roots don't have a real persistent identity.\n // A root's \"pseudo key\" is \"childDisplayName:indexWithThatName\".\n // For example, \"App:0\" or, in case of similar roots, \"Story:0\", \"Story:1\", etc.\n // We will use this to try to disambiguate roots when restoring selection between reloads.\n\n\n var rootPseudoKeys = new Map();\n var rootDisplayNameCounter = new Map();\n\n function setRootPseudoKey(id, fiber) {\n var name = getDisplayNameForRoot(fiber);\n var counter = rootDisplayNameCounter.get(name) || 0;\n rootDisplayNameCounter.set(name, counter + 1);\n var pseudoKey = \"\".concat(name, \":\").concat(counter);\n rootPseudoKeys.set(id, pseudoKey);\n }\n\n function removeRootPseudoKey(id) {\n var pseudoKey = rootPseudoKeys.get(id);\n\n if (pseudoKey === undefined) {\n throw new Error('Expected root pseudo key to be known.');\n }\n\n var name = pseudoKey.slice(0, pseudoKey.lastIndexOf(':'));\n var counter = rootDisplayNameCounter.get(name);\n\n if (counter === undefined) {\n throw new Error('Expected counter to be known.');\n }\n\n if (counter > 1) {\n rootDisplayNameCounter.set(name, counter - 1);\n } else {\n rootDisplayNameCounter.delete(name);\n }\n\n rootPseudoKeys.delete(id);\n }\n\n function getDisplayNameForRoot(fiber) {\n var preferredDisplayName = null;\n var fallbackDisplayName = null;\n var child = fiber.child; // Go at most three levels deep into direct children\n // while searching for a child that has a displayName.\n\n for (var i = 0; i < 3; i++) {\n if (child === null) {\n break;\n }\n\n var displayName = getDisplayNameForFiber(child);\n\n if (displayName !== null) {\n // Prefer display names that we get from user-defined components.\n // We want to avoid using e.g. 'Suspense' unless we find nothing else.\n if (typeof child.type === 'function') {\n // There's a few user-defined tags, but we'll prefer the ones\n // that are usually explicitly named (function or class components).\n preferredDisplayName = displayName;\n } else if (fallbackDisplayName === null) {\n fallbackDisplayName = displayName;\n }\n }\n\n if (preferredDisplayName !== null) {\n break;\n }\n\n child = child.child;\n }\n\n return preferredDisplayName || fallbackDisplayName || 'Anonymous';\n }\n\n function getPathFrame(fiber) {\n var key = fiber.key;\n var displayName = getDisplayNameForFiber(fiber);\n var index = fiber.index;\n\n switch (fiber.tag) {\n case HostRoot:\n // Roots don't have a real displayName, index, or key.\n // Instead, we'll use the pseudo key (childDisplayName:indexWithThatName).\n var rootInstance = rootToFiberInstanceMap.get(fiber.stateNode);\n\n if (rootInstance === undefined) {\n throw new Error('Expected the root instance to exist when computing a path');\n }\n\n var pseudoKey = rootPseudoKeys.get(rootInstance.id);\n\n if (pseudoKey === undefined) {\n throw new Error('Expected mounted root to have known pseudo key.');\n }\n\n displayName = pseudoKey;\n break;\n\n case HostComponent:\n displayName = fiber.type;\n break;\n\n default:\n break;\n }\n\n return {\n displayName: displayName,\n key: key,\n index: index\n };\n }\n\n function getVirtualPathFrame(virtualInstance) {\n return {\n displayName: virtualInstance.data.name || '',\n key: virtualInstance.data.key == null ? null : virtualInstance.data.key,\n index: -1 // We use -1 to indicate that this is a virtual path frame.\n\n };\n } // Produces a serializable representation that does a best effort\n // of identifying a particular Fiber between page reloads.\n // The return path will contain Fibers that are \"invisible\" to the store\n // because their keys and indexes are important to restoring the selection.\n\n\n function getPathForElement(id) {\n var devtoolsInstance = idToDevToolsInstanceMap.get(id);\n\n if (devtoolsInstance === undefined) {\n return null;\n }\n\n var keyPath = [];\n var inst = devtoolsInstance;\n\n while (inst.kind === VIRTUAL_INSTANCE) {\n keyPath.push(getVirtualPathFrame(inst));\n\n if (inst.parent === null) {\n // This is a bug but non-essential. We should've found a root instance.\n return null;\n }\n\n inst = inst.parent;\n }\n\n var fiber = inst.data;\n\n while (fiber !== null) {\n // $FlowFixMe[incompatible-call] found when upgrading Flow\n keyPath.push(getPathFrame(fiber)); // $FlowFixMe[incompatible-use] found when upgrading Flow\n\n fiber = fiber.return;\n }\n\n keyPath.reverse();\n return keyPath;\n }\n\n function getBestMatchForTrackedPath() {\n if (trackedPath === null) {\n // Nothing to match.\n return null;\n }\n\n if (trackedPathMatchInstance === null) {\n // We didn't find anything.\n return null;\n }\n\n return {\n id: trackedPathMatchInstance.id,\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n isFullMatch: trackedPathMatchDepth === trackedPath.length - 1\n };\n }\n\n var formatPriorityLevel = function formatPriorityLevel(priorityLevel) {\n if (priorityLevel == null) {\n return 'Unknown';\n }\n\n switch (priorityLevel) {\n case ImmediatePriority:\n return 'Immediate';\n\n case UserBlockingPriority:\n return 'User-Blocking';\n\n case NormalPriority:\n return 'Normal';\n\n case LowPriority:\n return 'Low';\n\n case IdlePriority:\n return 'Idle';\n\n case NoPriority:\n default:\n return 'Unknown';\n }\n };\n\n function setTraceUpdatesEnabled(isEnabled) {\n traceUpdatesEnabled = isEnabled;\n }\n\n function hasElementWithId(id) {\n return idToDevToolsInstanceMap.has(id);\n }\n\n function getSourceForFiberInstance(fiberInstance) {\n var unresolvedSource = fiberInstance.source;\n\n if (unresolvedSource !== null && renderer_typeof(unresolvedSource) === 'object' && !isError(unresolvedSource)) {\n // $FlowFixMe: isError should have refined it.\n return unresolvedSource;\n }\n\n var dispatcherRef = getDispatcherRef(renderer);\n var stackFrame = dispatcherRef == null ? null : getSourceLocationByFiber(ReactTypeOfWork, fiberInstance.data, dispatcherRef);\n\n if (stackFrame === null) {\n // If we don't find a source location by throwing, try to get one\n // from an owned child if possible. This is the same branch as\n // for virtual instances.\n return getSourceForInstance(fiberInstance);\n }\n\n var source = parseSourceFromComponentStack(stackFrame);\n fiberInstance.source = source;\n return source;\n }\n\n function getSourceForInstance(instance) {\n var unresolvedSource = instance.source;\n\n if (unresolvedSource === null) {\n // We don't have any source yet. We can try again later in case an owned child mounts later.\n // TODO: We won't have any information here if the child is filtered.\n return null;\n } // If we have the debug stack (the creation stack of the JSX) for any owned child of this\n // component, then at the bottom of that stack will be a stack frame that is somewhere within\n // the component's function body. Typically it would be the callsite of the JSX unless there's\n // any intermediate utility functions. This won't point to the top of the component function\n // but it's at least somewhere within it.\n\n\n if (isError(unresolvedSource)) {\n unresolvedSource = formatOwnerStack(unresolvedSource);\n }\n\n if (typeof unresolvedSource === 'string') {\n var idx = unresolvedSource.lastIndexOf('\\n');\n var lastLine = idx === -1 ? unresolvedSource : unresolvedSource.slice(idx + 1);\n return instance.source = parseSourceFromComponentStack(lastLine);\n } // $FlowFixMe: refined.\n\n\n return unresolvedSource;\n }\n\n return {\n cleanup: cleanup,\n clearErrorsAndWarnings: clearErrorsAndWarnings,\n clearErrorsForElementID: clearErrorsForElementID,\n clearWarningsForElementID: clearWarningsForElementID,\n getSerializedElementValueByPath: getSerializedElementValueByPath,\n deletePath: deletePath,\n findHostInstancesForElementID: findHostInstancesForElementID,\n flushInitialOperations: flushInitialOperations,\n getBestMatchForTrackedPath: getBestMatchForTrackedPath,\n getDisplayNameForElementID: getDisplayNameForElementID,\n getNearestMountedDOMNode: getNearestMountedDOMNode,\n getElementIDForHostInstance: getElementIDForHostInstance,\n getInstanceAndStyle: getInstanceAndStyle,\n getOwnersList: getOwnersList,\n getPathForElement: getPathForElement,\n getProfilingData: getProfilingData,\n handleCommitFiberRoot: handleCommitFiberRoot,\n handleCommitFiberUnmount: handleCommitFiberUnmount,\n handlePostCommitFiberRoot: handlePostCommitFiberRoot,\n hasElementWithId: hasElementWithId,\n inspectElement: inspectElement,\n logElementToConsole: logElementToConsole,\n getComponentStack: getComponentStack,\n getElementAttributeByPath: getElementAttributeByPath,\n getElementSourceFunctionById: getElementSourceFunctionById,\n onErrorOrWarning: onErrorOrWarning,\n overrideError: overrideError,\n overrideSuspense: overrideSuspense,\n overrideValueAtPath: overrideValueAtPath,\n renamePath: renamePath,\n renderer: renderer,\n setTraceUpdatesEnabled: setTraceUpdatesEnabled,\n setTrackedPath: setTrackedPath,\n startProfiling: startProfiling,\n stopProfiling: stopProfiling,\n storeAsGlobal: storeAsGlobal,\n updateComponentFilters: updateComponentFilters,\n getEnvironmentNames: getEnvironmentNames\n };\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/legacy/utils.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nfunction decorate(object, attr, fn) {\n var old = object[attr]; // $FlowFixMe[missing-this-annot] webpack config needs to be updated to allow `this` type annotations\n\n object[attr] = function (instance) {\n return fn.call(this, old, arguments);\n };\n\n return old;\n}\nfunction decorateMany(source, fns) {\n var olds = {};\n\n for (var name in fns) {\n olds[name] = decorate(source, name, fns[name]);\n }\n\n return olds;\n}\nfunction restoreMany(source, olds) {\n for (var name in olds) {\n source[name] = olds[name];\n }\n} // $FlowFixMe[missing-this-annot] webpack config needs to be updated to allow `this` type annotations\n\nfunction forceUpdate(instance) {\n if (typeof instance.forceUpdate === 'function') {\n instance.forceUpdate();\n } else if (instance.updater != null && typeof instance.updater.enqueueForceUpdate === 'function') {\n instance.updater.enqueueForceUpdate(this, function () {}, 'forceUpdate');\n }\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/legacy/renderer.js\nfunction legacy_renderer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction legacy_renderer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { legacy_renderer_ownKeys(Object(source), true).forEach(function (key) { legacy_renderer_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { legacy_renderer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction legacy_renderer_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction legacy_renderer_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { legacy_renderer_typeof = function _typeof(obj) { return typeof obj; }; } else { legacy_renderer_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return legacy_renderer_typeof(obj); }\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\n\n\n\n\n\nfunction getData(internalInstance) {\n var displayName = null;\n var key = null; // != used deliberately here to catch undefined and null\n\n if (internalInstance._currentElement != null) {\n if (internalInstance._currentElement.key) {\n key = String(internalInstance._currentElement.key);\n }\n\n var elementType = internalInstance._currentElement.type;\n\n if (typeof elementType === 'string') {\n displayName = elementType;\n } else if (typeof elementType === 'function') {\n displayName = getDisplayName(elementType);\n }\n }\n\n return {\n displayName: displayName,\n key: key\n };\n}\n\nfunction getElementType(internalInstance) {\n // != used deliberately here to catch undefined and null\n if (internalInstance._currentElement != null) {\n var elementType = internalInstance._currentElement.type;\n\n if (typeof elementType === 'function') {\n var publicInstance = internalInstance.getPublicInstance();\n\n if (publicInstance !== null) {\n return types_ElementTypeClass;\n } else {\n return types_ElementTypeFunction;\n }\n } else if (typeof elementType === 'string') {\n return ElementTypeHostComponent;\n }\n }\n\n return ElementTypeOtherOrUnknown;\n}\n\nfunction getChildren(internalInstance) {\n var children = []; // If the parent is a native node without rendered children, but with\n // multiple string children, then the `element` that gets passed in here is\n // a plain value -- a string or number.\n\n if (legacy_renderer_typeof(internalInstance) !== 'object') {// No children\n } else if (internalInstance._currentElement === null || internalInstance._currentElement === false) {// No children\n } else if (internalInstance._renderedComponent) {\n var child = internalInstance._renderedComponent;\n\n if (getElementType(child) !== ElementTypeOtherOrUnknown) {\n children.push(child);\n }\n } else if (internalInstance._renderedChildren) {\n var renderedChildren = internalInstance._renderedChildren;\n\n for (var name in renderedChildren) {\n var _child = renderedChildren[name];\n\n if (getElementType(_child) !== ElementTypeOtherOrUnknown) {\n children.push(_child);\n }\n }\n } // Note: we skip the case where children are just strings or numbers\n // because the new DevTools skips over host text nodes anyway.\n\n\n return children;\n}\n\nfunction legacy_renderer_attach(hook, rendererID, renderer, global) {\n var idToInternalInstanceMap = new Map();\n var internalInstanceToIDMap = new WeakMap();\n var internalInstanceToRootIDMap = new WeakMap();\n var getElementIDForHostInstance = null;\n var findHostInstanceForInternalID;\n\n var getNearestMountedDOMNode = function getNearestMountedDOMNode(node) {\n // Not implemented.\n return null;\n };\n\n if (renderer.ComponentTree) {\n getElementIDForHostInstance = function getElementIDForHostInstance(node) {\n var internalInstance = renderer.ComponentTree.getClosestInstanceFromNode(node);\n return internalInstanceToIDMap.get(internalInstance) || null;\n };\n\n findHostInstanceForInternalID = function findHostInstanceForInternalID(id) {\n var internalInstance = idToInternalInstanceMap.get(id);\n return renderer.ComponentTree.getNodeFromInstance(internalInstance);\n };\n\n getNearestMountedDOMNode = function getNearestMountedDOMNode(node) {\n var internalInstance = renderer.ComponentTree.getClosestInstanceFromNode(node);\n\n if (internalInstance != null) {\n return renderer.ComponentTree.getNodeFromInstance(internalInstance);\n }\n\n return null;\n };\n } else if (renderer.Mount.getID && renderer.Mount.getNode) {\n getElementIDForHostInstance = function getElementIDForHostInstance(node) {\n // Not implemented.\n return null;\n };\n\n findHostInstanceForInternalID = function findHostInstanceForInternalID(id) {\n // Not implemented.\n return null;\n };\n }\n\n function getDisplayNameForElementID(id) {\n var internalInstance = idToInternalInstanceMap.get(id);\n return internalInstance ? getData(internalInstance).displayName : null;\n }\n\n function getID(internalInstance) {\n if (legacy_renderer_typeof(internalInstance) !== 'object' || internalInstance === null) {\n throw new Error('Invalid internal instance: ' + internalInstance);\n }\n\n if (!internalInstanceToIDMap.has(internalInstance)) {\n var _id = getUID();\n\n internalInstanceToIDMap.set(internalInstance, _id);\n idToInternalInstanceMap.set(_id, internalInstance);\n }\n\n return internalInstanceToIDMap.get(internalInstance);\n }\n\n function areEqualArrays(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n\n for (var i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n } // This is shared mutable state that lets us keep track of where we are.\n\n\n var parentIDStack = [];\n var oldReconcilerMethods = null;\n\n if (renderer.Reconciler) {\n // React 15\n oldReconcilerMethods = decorateMany(renderer.Reconciler, {\n mountComponent: function mountComponent(fn, args) {\n var internalInstance = args[0];\n var hostContainerInfo = args[3];\n\n if (getElementType(internalInstance) === ElementTypeOtherOrUnknown) {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n return fn.apply(this, args);\n }\n\n if (hostContainerInfo._topLevelWrapper === undefined) {\n // SSR\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n return fn.apply(this, args);\n }\n\n var id = getID(internalInstance); // Push the operation.\n\n var parentID = parentIDStack.length > 0 ? parentIDStack[parentIDStack.length - 1] : 0;\n recordMount(internalInstance, id, parentID);\n parentIDStack.push(id); // Remember the root.\n\n internalInstanceToRootIDMap.set(internalInstance, getID(hostContainerInfo._topLevelWrapper));\n\n try {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n var result = fn.apply(this, args);\n parentIDStack.pop();\n return result;\n } catch (err) {\n parentIDStack = [];\n throw err;\n } finally {\n if (parentIDStack.length === 0) {\n var rootID = internalInstanceToRootIDMap.get(internalInstance);\n\n if (rootID === undefined) {\n throw new Error('Expected to find root ID.');\n }\n\n flushPendingEvents(rootID);\n }\n }\n },\n performUpdateIfNecessary: function performUpdateIfNecessary(fn, args) {\n var internalInstance = args[0];\n\n if (getElementType(internalInstance) === ElementTypeOtherOrUnknown) {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n return fn.apply(this, args);\n }\n\n var id = getID(internalInstance);\n parentIDStack.push(id);\n var prevChildren = getChildren(internalInstance);\n\n try {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n var result = fn.apply(this, args);\n var nextChildren = getChildren(internalInstance);\n\n if (!areEqualArrays(prevChildren, nextChildren)) {\n // Push the operation\n recordReorder(internalInstance, id, nextChildren);\n }\n\n parentIDStack.pop();\n return result;\n } catch (err) {\n parentIDStack = [];\n throw err;\n } finally {\n if (parentIDStack.length === 0) {\n var rootID = internalInstanceToRootIDMap.get(internalInstance);\n\n if (rootID === undefined) {\n throw new Error('Expected to find root ID.');\n }\n\n flushPendingEvents(rootID);\n }\n }\n },\n receiveComponent: function receiveComponent(fn, args) {\n var internalInstance = args[0];\n\n if (getElementType(internalInstance) === ElementTypeOtherOrUnknown) {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n return fn.apply(this, args);\n }\n\n var id = getID(internalInstance);\n parentIDStack.push(id);\n var prevChildren = getChildren(internalInstance);\n\n try {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n var result = fn.apply(this, args);\n var nextChildren = getChildren(internalInstance);\n\n if (!areEqualArrays(prevChildren, nextChildren)) {\n // Push the operation\n recordReorder(internalInstance, id, nextChildren);\n }\n\n parentIDStack.pop();\n return result;\n } catch (err) {\n parentIDStack = [];\n throw err;\n } finally {\n if (parentIDStack.length === 0) {\n var rootID = internalInstanceToRootIDMap.get(internalInstance);\n\n if (rootID === undefined) {\n throw new Error('Expected to find root ID.');\n }\n\n flushPendingEvents(rootID);\n }\n }\n },\n unmountComponent: function unmountComponent(fn, args) {\n var internalInstance = args[0];\n\n if (getElementType(internalInstance) === ElementTypeOtherOrUnknown) {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n return fn.apply(this, args);\n }\n\n var id = getID(internalInstance);\n parentIDStack.push(id);\n\n try {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n var result = fn.apply(this, args);\n parentIDStack.pop(); // Push the operation.\n\n recordUnmount(internalInstance, id);\n return result;\n } catch (err) {\n parentIDStack = [];\n throw err;\n } finally {\n if (parentIDStack.length === 0) {\n var rootID = internalInstanceToRootIDMap.get(internalInstance);\n\n if (rootID === undefined) {\n throw new Error('Expected to find root ID.');\n }\n\n flushPendingEvents(rootID);\n }\n }\n }\n });\n }\n\n function cleanup() {\n if (oldReconcilerMethods !== null) {\n if (renderer.Component) {\n restoreMany(renderer.Component.Mixin, oldReconcilerMethods);\n } else {\n restoreMany(renderer.Reconciler, oldReconcilerMethods);\n }\n }\n\n oldReconcilerMethods = null;\n }\n\n function recordMount(internalInstance, id, parentID) {\n var isRoot = parentID === 0;\n\n if (__DEBUG__) {\n console.log('%crecordMount()', 'color: green; font-weight: bold;', id, getData(internalInstance).displayName);\n }\n\n if (isRoot) {\n // TODO Is this right? For all versions?\n var hasOwnerMetadata = internalInstance._currentElement != null && internalInstance._currentElement._owner != null;\n pushOperation(TREE_OPERATION_ADD);\n pushOperation(id);\n pushOperation(ElementTypeRoot);\n pushOperation(0); // StrictMode compliant?\n\n pushOperation(0); // Profiling flag\n\n pushOperation(0); // StrictMode supported?\n\n pushOperation(hasOwnerMetadata ? 1 : 0);\n } else {\n var type = getElementType(internalInstance);\n\n var _getData = getData(internalInstance),\n displayName = _getData.displayName,\n key = _getData.key;\n\n var ownerID = internalInstance._currentElement != null && internalInstance._currentElement._owner != null ? getID(internalInstance._currentElement._owner) : 0;\n var displayNameStringID = getStringID(displayName);\n var keyStringID = getStringID(key);\n pushOperation(TREE_OPERATION_ADD);\n pushOperation(id);\n pushOperation(type);\n pushOperation(parentID);\n pushOperation(ownerID);\n pushOperation(displayNameStringID);\n pushOperation(keyStringID);\n }\n }\n\n function recordReorder(internalInstance, id, nextChildren) {\n pushOperation(TREE_OPERATION_REORDER_CHILDREN);\n pushOperation(id);\n var nextChildIDs = nextChildren.map(getID);\n pushOperation(nextChildIDs.length);\n\n for (var i = 0; i < nextChildIDs.length; i++) {\n pushOperation(nextChildIDs[i]);\n }\n }\n\n function recordUnmount(internalInstance, id) {\n pendingUnmountedIDs.push(id);\n idToInternalInstanceMap.delete(id);\n }\n\n function crawlAndRecordInitialMounts(id, parentID, rootID) {\n if (__DEBUG__) {\n console.group('crawlAndRecordInitialMounts() id:', id);\n }\n\n var internalInstance = idToInternalInstanceMap.get(id);\n\n if (internalInstance != null) {\n internalInstanceToRootIDMap.set(internalInstance, rootID);\n recordMount(internalInstance, id, parentID);\n getChildren(internalInstance).forEach(function (child) {\n return crawlAndRecordInitialMounts(getID(child), id, rootID);\n });\n }\n\n if (__DEBUG__) {\n console.groupEnd();\n }\n }\n\n function flushInitialOperations() {\n // Crawl roots though and register any nodes that mounted before we were injected.\n var roots = renderer.Mount._instancesByReactRootID || renderer.Mount._instancesByContainerID;\n\n for (var key in roots) {\n var internalInstance = roots[key];\n\n var _id2 = getID(internalInstance);\n\n crawlAndRecordInitialMounts(_id2, 0, _id2);\n flushPendingEvents(_id2);\n }\n }\n\n var pendingOperations = [];\n var pendingStringTable = new Map();\n var pendingUnmountedIDs = [];\n var pendingStringTableLength = 0;\n var pendingUnmountedRootID = null;\n\n function flushPendingEvents(rootID) {\n if (pendingOperations.length === 0 && pendingUnmountedIDs.length === 0 && pendingUnmountedRootID === null) {\n return;\n }\n\n var numUnmountIDs = pendingUnmountedIDs.length + (pendingUnmountedRootID === null ? 0 : 1);\n var operations = new Array( // Identify which renderer this update is coming from.\n 2 + // [rendererID, rootFiberID]\n // How big is the string table?\n 1 + // [stringTableLength]\n // Then goes the actual string table.\n pendingStringTableLength + ( // All unmounts are batched in a single message.\n // [TREE_OPERATION_REMOVE, removedIDLength, ...ids]\n numUnmountIDs > 0 ? 2 + numUnmountIDs : 0) + // Mount operations\n pendingOperations.length); // Identify which renderer this update is coming from.\n // This enables roots to be mapped to renderers,\n // Which in turn enables fiber properations, states, and hooks to be inspected.\n\n var i = 0;\n operations[i++] = rendererID;\n operations[i++] = rootID; // Now fill in the string table.\n // [stringTableLength, str1Length, ...str1, str2Length, ...str2, ...]\n\n operations[i++] = pendingStringTableLength;\n pendingStringTable.forEach(function (value, key) {\n operations[i++] = key.length;\n var encodedKey = utfEncodeString(key);\n\n for (var j = 0; j < encodedKey.length; j++) {\n operations[i + j] = encodedKey[j];\n }\n\n i += key.length;\n });\n\n if (numUnmountIDs > 0) {\n // All unmounts except roots are batched in a single message.\n operations[i++] = TREE_OPERATION_REMOVE; // The first number is how many unmounted IDs we're gonna send.\n\n operations[i++] = numUnmountIDs; // Fill in the unmounts\n\n for (var j = 0; j < pendingUnmountedIDs.length; j++) {\n operations[i++] = pendingUnmountedIDs[j];\n } // The root ID should always be unmounted last.\n\n\n if (pendingUnmountedRootID !== null) {\n operations[i] = pendingUnmountedRootID;\n i++;\n }\n } // Fill in the rest of the operations.\n\n\n for (var _j = 0; _j < pendingOperations.length; _j++) {\n operations[i + _j] = pendingOperations[_j];\n }\n\n i += pendingOperations.length;\n\n if (__DEBUG__) {\n printOperationsArray(operations);\n } // If we've already connected to the frontend, just pass the operations through.\n\n\n hook.emit('operations', operations);\n pendingOperations.length = 0;\n pendingUnmountedIDs = [];\n pendingUnmountedRootID = null;\n pendingStringTable.clear();\n pendingStringTableLength = 0;\n }\n\n function pushOperation(op) {\n if (false) {}\n\n pendingOperations.push(op);\n }\n\n function getStringID(str) {\n if (str === null) {\n return 0;\n }\n\n var existingID = pendingStringTable.get(str);\n\n if (existingID !== undefined) {\n return existingID;\n }\n\n var stringID = pendingStringTable.size + 1;\n pendingStringTable.set(str, stringID); // The string table total length needs to account\n // both for the string length, and for the array item\n // that contains the length itself. Hence + 1.\n\n pendingStringTableLength += str.length + 1;\n return stringID;\n }\n\n var currentlyInspectedElementID = null;\n var currentlyInspectedPaths = {}; // Track the intersection of currently inspected paths,\n // so that we can send their data along if the element is re-rendered.\n\n function mergeInspectedPaths(path) {\n var current = currentlyInspectedPaths;\n path.forEach(function (key) {\n if (!current[key]) {\n current[key] = {};\n }\n\n current = current[key];\n });\n }\n\n function createIsPathAllowed(key) {\n // This function helps prevent previously-inspected paths from being dehydrated in updates.\n // This is important to avoid a bad user experience where expanded toggles collapse on update.\n return function isPathAllowed(path) {\n var current = currentlyInspectedPaths[key];\n\n if (!current) {\n return false;\n }\n\n for (var i = 0; i < path.length; i++) {\n current = current[path[i]];\n\n if (!current) {\n return false;\n }\n }\n\n return true;\n };\n } // Fast path props lookup for React Native style editor.\n\n\n function getInstanceAndStyle(id) {\n var instance = null;\n var style = null;\n var internalInstance = idToInternalInstanceMap.get(id);\n\n if (internalInstance != null) {\n instance = internalInstance._instance || null;\n var element = internalInstance._currentElement;\n\n if (element != null && element.props != null) {\n style = element.props.style || null;\n }\n }\n\n return {\n instance: instance,\n style: style\n };\n }\n\n function updateSelectedElement(id) {\n var internalInstance = idToInternalInstanceMap.get(id);\n\n if (internalInstance == null) {\n console.warn(\"Could not find instance with id \\\"\".concat(id, \"\\\"\"));\n return;\n }\n\n switch (getElementType(internalInstance)) {\n case types_ElementTypeClass:\n global.$r = internalInstance._instance;\n break;\n\n case types_ElementTypeFunction:\n var element = internalInstance._currentElement;\n\n if (element == null) {\n console.warn(\"Could not find element with id \\\"\".concat(id, \"\\\"\"));\n return;\n }\n\n global.$r = {\n props: element.props,\n type: element.type\n };\n break;\n\n default:\n global.$r = null;\n break;\n }\n }\n\n function storeAsGlobal(id, path, count) {\n var inspectedElement = inspectElementRaw(id);\n\n if (inspectedElement !== null) {\n var value = utils_getInObject(inspectedElement, path);\n var key = \"$reactTemp\".concat(count);\n window[key] = value;\n console.log(key);\n console.log(value);\n }\n }\n\n function getSerializedElementValueByPath(id, path) {\n var inspectedElement = inspectElementRaw(id);\n\n if (inspectedElement !== null) {\n var valueToCopy = utils_getInObject(inspectedElement, path);\n return serializeToString(valueToCopy);\n }\n }\n\n function inspectElement(requestID, id, path, forceFullData) {\n if (forceFullData || currentlyInspectedElementID !== id) {\n currentlyInspectedElementID = id;\n currentlyInspectedPaths = {};\n }\n\n var inspectedElement = inspectElementRaw(id);\n\n if (inspectedElement === null) {\n return {\n id: id,\n responseID: requestID,\n type: 'not-found'\n };\n }\n\n if (path !== null) {\n mergeInspectedPaths(path);\n } // Any time an inspected element has an update,\n // we should update the selected $r value as wel.\n // Do this before dehydration (cleanForBridge).\n\n\n updateSelectedElement(id);\n inspectedElement.context = cleanForBridge(inspectedElement.context, createIsPathAllowed('context'));\n inspectedElement.props = cleanForBridge(inspectedElement.props, createIsPathAllowed('props'));\n inspectedElement.state = cleanForBridge(inspectedElement.state, createIsPathAllowed('state'));\n return {\n id: id,\n responseID: requestID,\n type: 'full-data',\n value: inspectedElement\n };\n }\n\n function inspectElementRaw(id) {\n var internalInstance = idToInternalInstanceMap.get(id);\n\n if (internalInstance == null) {\n return null;\n }\n\n var _getData2 = getData(internalInstance),\n key = _getData2.key;\n\n var type = getElementType(internalInstance);\n var context = null;\n var owners = null;\n var props = null;\n var state = null;\n var element = internalInstance._currentElement;\n\n if (element !== null) {\n props = element.props;\n var owner = element._owner;\n\n if (owner) {\n owners = [];\n\n while (owner != null) {\n owners.push({\n displayName: getData(owner).displayName || 'Unknown',\n id: getID(owner),\n key: element.key,\n type: getElementType(owner)\n });\n\n if (owner._currentElement) {\n owner = owner._currentElement._owner;\n }\n }\n }\n }\n\n var publicInstance = internalInstance._instance;\n\n if (publicInstance != null) {\n context = publicInstance.context || null;\n state = publicInstance.state || null;\n } // Not implemented\n\n\n var errors = [];\n var warnings = [];\n return {\n id: id,\n // Does the current renderer support editable hooks and function props?\n canEditHooks: false,\n canEditFunctionProps: false,\n // Does the current renderer support advanced editing interface?\n canEditHooksAndDeletePaths: false,\n canEditHooksAndRenamePaths: false,\n canEditFunctionPropsDeletePaths: false,\n canEditFunctionPropsRenamePaths: false,\n // Toggle error boundary did not exist in legacy versions\n canToggleError: false,\n isErrored: false,\n // Suspense did not exist in legacy versions\n canToggleSuspense: false,\n // Can view component source location.\n canViewSource: type === types_ElementTypeClass || type === types_ElementTypeFunction,\n source: null,\n // Only legacy context exists in legacy versions.\n hasLegacyContext: true,\n type: type,\n key: key != null ? key : null,\n // Inspectable properties.\n context: context,\n hooks: null,\n props: props,\n state: state,\n errors: errors,\n warnings: warnings,\n // List of owners\n owners: owners,\n rootType: null,\n rendererPackageName: null,\n rendererVersion: null,\n plugins: {\n stylex: null\n }\n };\n }\n\n function logElementToConsole(id) {\n var result = inspectElementRaw(id);\n\n if (result === null) {\n console.warn(\"Could not find element with id \\\"\".concat(id, \"\\\"\"));\n return;\n }\n\n var displayName = getDisplayNameForElementID(id);\n var supportsGroup = typeof console.groupCollapsed === 'function';\n\n if (supportsGroup) {\n console.groupCollapsed(\"[Click to expand] %c<\".concat(displayName || 'Component', \" />\"), // --dom-tag-name-color is the CSS variable Chrome styles HTML elements with in the console.\n 'color: var(--dom-tag-name-color); font-weight: normal;');\n }\n\n if (result.props !== null) {\n console.log('Props:', result.props);\n }\n\n if (result.state !== null) {\n console.log('State:', result.state);\n }\n\n if (result.context !== null) {\n console.log('Context:', result.context);\n }\n\n var hostInstance = findHostInstanceForInternalID(id);\n\n if (hostInstance !== null) {\n console.log('Node:', hostInstance);\n }\n\n if (window.chrome || /firefox/i.test(navigator.userAgent)) {\n console.log('Right-click any value to save it as a global variable for further inspection.');\n }\n\n if (supportsGroup) {\n console.groupEnd();\n }\n }\n\n function getElementAttributeByPath(id, path) {\n var inspectedElement = inspectElementRaw(id);\n\n if (inspectedElement !== null) {\n return utils_getInObject(inspectedElement, path);\n }\n\n return undefined;\n }\n\n function getElementSourceFunctionById(id) {\n var internalInstance = idToInternalInstanceMap.get(id);\n\n if (internalInstance == null) {\n console.warn(\"Could not find instance with id \\\"\".concat(id, \"\\\"\"));\n return null;\n }\n\n var element = internalInstance._currentElement;\n\n if (element == null) {\n console.warn(\"Could not find element with id \\\"\".concat(id, \"\\\"\"));\n return null;\n }\n\n return element.type;\n }\n\n function deletePath(type, id, hookID, path) {\n var internalInstance = idToInternalInstanceMap.get(id);\n\n if (internalInstance != null) {\n var publicInstance = internalInstance._instance;\n\n if (publicInstance != null) {\n switch (type) {\n case 'context':\n deletePathInObject(publicInstance.context, path);\n forceUpdate(publicInstance);\n break;\n\n case 'hooks':\n throw new Error('Hooks not supported by this renderer');\n\n case 'props':\n var element = internalInstance._currentElement;\n internalInstance._currentElement = legacy_renderer_objectSpread(legacy_renderer_objectSpread({}, element), {}, {\n props: copyWithDelete(element.props, path)\n });\n forceUpdate(publicInstance);\n break;\n\n case 'state':\n deletePathInObject(publicInstance.state, path);\n forceUpdate(publicInstance);\n break;\n }\n }\n }\n }\n\n function renamePath(type, id, hookID, oldPath, newPath) {\n var internalInstance = idToInternalInstanceMap.get(id);\n\n if (internalInstance != null) {\n var publicInstance = internalInstance._instance;\n\n if (publicInstance != null) {\n switch (type) {\n case 'context':\n renamePathInObject(publicInstance.context, oldPath, newPath);\n forceUpdate(publicInstance);\n break;\n\n case 'hooks':\n throw new Error('Hooks not supported by this renderer');\n\n case 'props':\n var element = internalInstance._currentElement;\n internalInstance._currentElement = legacy_renderer_objectSpread(legacy_renderer_objectSpread({}, element), {}, {\n props: copyWithRename(element.props, oldPath, newPath)\n });\n forceUpdate(publicInstance);\n break;\n\n case 'state':\n renamePathInObject(publicInstance.state, oldPath, newPath);\n forceUpdate(publicInstance);\n break;\n }\n }\n }\n }\n\n function overrideValueAtPath(type, id, hookID, path, value) {\n var internalInstance = idToInternalInstanceMap.get(id);\n\n if (internalInstance != null) {\n var publicInstance = internalInstance._instance;\n\n if (publicInstance != null) {\n switch (type) {\n case 'context':\n utils_setInObject(publicInstance.context, path, value);\n forceUpdate(publicInstance);\n break;\n\n case 'hooks':\n throw new Error('Hooks not supported by this renderer');\n\n case 'props':\n var element = internalInstance._currentElement;\n internalInstance._currentElement = legacy_renderer_objectSpread(legacy_renderer_objectSpread({}, element), {}, {\n props: copyWithSet(element.props, path, value)\n });\n forceUpdate(publicInstance);\n break;\n\n case 'state':\n utils_setInObject(publicInstance.state, path, value);\n forceUpdate(publicInstance);\n break;\n }\n }\n }\n } // v16+ only features\n\n\n var getProfilingData = function getProfilingData() {\n throw new Error('getProfilingData not supported by this renderer');\n };\n\n var handleCommitFiberRoot = function handleCommitFiberRoot() {\n throw new Error('handleCommitFiberRoot not supported by this renderer');\n };\n\n var handleCommitFiberUnmount = function handleCommitFiberUnmount() {\n throw new Error('handleCommitFiberUnmount not supported by this renderer');\n };\n\n var handlePostCommitFiberRoot = function handlePostCommitFiberRoot() {\n throw new Error('handlePostCommitFiberRoot not supported by this renderer');\n };\n\n var overrideError = function overrideError() {\n throw new Error('overrideError not supported by this renderer');\n };\n\n var overrideSuspense = function overrideSuspense() {\n throw new Error('overrideSuspense not supported by this renderer');\n };\n\n var startProfiling = function startProfiling() {// Do not throw, since this would break a multi-root scenario where v15 and v16 were both present.\n };\n\n var stopProfiling = function stopProfiling() {// Do not throw, since this would break a multi-root scenario where v15 and v16 were both present.\n };\n\n function getBestMatchForTrackedPath() {\n // Not implemented.\n return null;\n }\n\n function getPathForElement(id) {\n // Not implemented.\n return null;\n }\n\n function updateComponentFilters(componentFilters) {// Not implemented.\n }\n\n function getEnvironmentNames() {\n // No RSC support.\n return [];\n }\n\n function setTraceUpdatesEnabled(enabled) {// Not implemented.\n }\n\n function setTrackedPath(path) {// Not implemented.\n }\n\n function getOwnersList(id) {\n // Not implemented.\n return null;\n }\n\n function clearErrorsAndWarnings() {// Not implemented\n }\n\n function clearErrorsForElementID(id) {// Not implemented\n }\n\n function clearWarningsForElementID(id) {// Not implemented\n }\n\n function hasElementWithId(id) {\n return idToInternalInstanceMap.has(id);\n }\n\n return {\n clearErrorsAndWarnings: clearErrorsAndWarnings,\n clearErrorsForElementID: clearErrorsForElementID,\n clearWarningsForElementID: clearWarningsForElementID,\n cleanup: cleanup,\n getSerializedElementValueByPath: getSerializedElementValueByPath,\n deletePath: deletePath,\n flushInitialOperations: flushInitialOperations,\n getBestMatchForTrackedPath: getBestMatchForTrackedPath,\n getDisplayNameForElementID: getDisplayNameForElementID,\n getNearestMountedDOMNode: getNearestMountedDOMNode,\n getElementIDForHostInstance: getElementIDForHostInstance,\n getInstanceAndStyle: getInstanceAndStyle,\n findHostInstancesForElementID: function findHostInstancesForElementID(id) {\n var hostInstance = findHostInstanceForInternalID(id);\n return hostInstance == null ? null : [hostInstance];\n },\n getOwnersList: getOwnersList,\n getPathForElement: getPathForElement,\n getProfilingData: getProfilingData,\n handleCommitFiberRoot: handleCommitFiberRoot,\n handleCommitFiberUnmount: handleCommitFiberUnmount,\n handlePostCommitFiberRoot: handlePostCommitFiberRoot,\n hasElementWithId: hasElementWithId,\n inspectElement: inspectElement,\n logElementToConsole: logElementToConsole,\n overrideError: overrideError,\n overrideSuspense: overrideSuspense,\n overrideValueAtPath: overrideValueAtPath,\n renamePath: renamePath,\n getElementAttributeByPath: getElementAttributeByPath,\n getElementSourceFunctionById: getElementSourceFunctionById,\n renderer: renderer,\n setTraceUpdatesEnabled: setTraceUpdatesEnabled,\n setTrackedPath: setTrackedPath,\n startProfiling: startProfiling,\n stopProfiling: stopProfiling,\n storeAsGlobal: storeAsGlobal,\n updateComponentFilters: updateComponentFilters,\n getEnvironmentNames: getEnvironmentNames\n };\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/attachRenderer.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\n\n // this is the backend that is compatible with all older React versions\n\nfunction isMatchingRender(version) {\n return !hasAssignedBackend(version);\n}\n\nfunction attachRenderer(hook, id, renderer, global, shouldStartProfilingNow, profilingSettings) {\n // only attach if the renderer is compatible with the current version of the backend\n if (!isMatchingRender(renderer.reconcilerVersion || renderer.version)) {\n return;\n }\n\n var rendererInterface = hook.rendererInterfaces.get(id); // Inject any not-yet-injected renderers (if we didn't reload-and-profile)\n\n if (rendererInterface == null) {\n if (typeof renderer.getCurrentComponentInfo === 'function') {\n // react-flight/client\n rendererInterface = attach(hook, id, renderer, global);\n } else if ( // v16-19\n typeof renderer.findFiberByHostInstance === 'function' || // v16.8+\n renderer.currentDispatcherRef != null) {\n // react-reconciler v16+\n rendererInterface = renderer_attach(hook, id, renderer, global, shouldStartProfilingNow, profilingSettings);\n } else if (renderer.ComponentTree) {\n // react-dom v15\n rendererInterface = legacy_renderer_attach(hook, id, renderer, global);\n } else {// Older react-dom or other unsupported renderer version\n }\n }\n\n return rendererInterface;\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/utils/formatConsoleArguments.js\nfunction formatConsoleArguments_toConsumableArray(arr) { return formatConsoleArguments_arrayWithoutHoles(arr) || formatConsoleArguments_iterableToArray(arr) || formatConsoleArguments_unsupportedIterableToArray(arr) || formatConsoleArguments_nonIterableSpread(); }\n\nfunction formatConsoleArguments_nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction formatConsoleArguments_iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction formatConsoleArguments_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return formatConsoleArguments_arrayLikeToArray(arr); }\n\nfunction formatConsoleArguments_slicedToArray(arr, i) { return formatConsoleArguments_arrayWithHoles(arr) || formatConsoleArguments_iterableToArrayLimit(arr, i) || formatConsoleArguments_unsupportedIterableToArray(arr, i) || formatConsoleArguments_nonIterableRest(); }\n\nfunction formatConsoleArguments_nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction formatConsoleArguments_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return formatConsoleArguments_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return formatConsoleArguments_arrayLikeToArray(o, minLen); }\n\nfunction formatConsoleArguments_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction formatConsoleArguments_iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction formatConsoleArguments_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n// Do not add / import anything to this file.\n// This function could be used from multiple places, including hook.\n// Skips CSS and object arguments, inlines other in the first argument as a template string\nfunction formatConsoleArguments(maybeMessage) {\n for (var _len = arguments.length, inputArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n inputArgs[_key - 1] = arguments[_key];\n }\n\n if (inputArgs.length === 0 || typeof maybeMessage !== 'string') {\n return [maybeMessage].concat(inputArgs);\n }\n\n var args = inputArgs.slice();\n var template = '';\n var argumentsPointer = 0;\n\n for (var i = 0; i < maybeMessage.length; ++i) {\n var currentChar = maybeMessage[i];\n\n if (currentChar !== '%') {\n template += currentChar;\n continue;\n }\n\n var nextChar = maybeMessage[i + 1];\n ++i; // Only keep CSS and objects, inline other arguments\n\n switch (nextChar) {\n case 'c':\n case 'O':\n case 'o':\n {\n ++argumentsPointer;\n template += \"%\".concat(nextChar);\n break;\n }\n\n case 'd':\n case 'i':\n {\n var _args$splice = args.splice(argumentsPointer, 1),\n _args$splice2 = formatConsoleArguments_slicedToArray(_args$splice, 1),\n arg = _args$splice2[0];\n\n template += parseInt(arg, 10).toString();\n break;\n }\n\n case 'f':\n {\n var _args$splice3 = args.splice(argumentsPointer, 1),\n _args$splice4 = formatConsoleArguments_slicedToArray(_args$splice3, 1),\n _arg = _args$splice4[0];\n\n template += parseFloat(_arg).toString();\n break;\n }\n\n case 's':\n {\n var _args$splice5 = args.splice(argumentsPointer, 1),\n _args$splice6 = formatConsoleArguments_slicedToArray(_args$splice5, 1),\n _arg2 = _args$splice6[0];\n\n template += _arg2.toString();\n break;\n }\n\n default:\n template += \"%\".concat(nextChar);\n }\n }\n\n return [template].concat(formatConsoleArguments_toConsumableArray(args));\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/hook.js\nfunction hook_createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = hook_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction hook_toConsumableArray(arr) { return hook_arrayWithoutHoles(arr) || hook_iterableToArray(arr) || hook_unsupportedIterableToArray(arr) || hook_nonIterableSpread(); }\n\nfunction hook_nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction hook_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return hook_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return hook_arrayLikeToArray(o, minLen); }\n\nfunction hook_iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction hook_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return hook_arrayLikeToArray(arr); }\n\nfunction hook_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Install the hook on window, which is an event emitter.\n * Note: this global hook __REACT_DEVTOOLS_GLOBAL_HOOK__ is a de facto public API.\n * It's especially important to avoid creating direct dependency on the DevTools Backend.\n * That's why we still inline the whole event emitter implementation,\n * the string format implementation, and part of the console implementation here.\n *\n * \n */\n\n\n\n // React's custom built component stack strings match \"\\s{4}in\"\n// Chrome's prefix matches \"\\s{4}at\"\n\nvar PREFIX_REGEX = /\\s{4}(in|at)\\s{1}/; // Firefox and Safari have no prefix (\"\")\n// but we can fallback to looking for location info (e.g. \"foo.js:12:345\")\n\nvar ROW_COLUMN_NUMBER_REGEX = /:\\d+:\\d+(\\n|$)/;\n\nfunction isStringComponentStack(text) {\n return PREFIX_REGEX.test(text) || ROW_COLUMN_NUMBER_REGEX.test(text);\n} // We add a suffix to some frames that older versions of React didn't do.\n// To compare if it's equivalent we strip out the suffix to see if they're\n// still equivalent. Similarly, we sometimes use [] and sometimes () so we\n// strip them to for the comparison.\n\n\nvar frameDiffs = / \\(\\<anonymous\\>\\)$|\\@unknown\\:0\\:0$|\\(|\\)|\\[|\\]/gm;\n\nfunction areStackTracesEqual(a, b) {\n return a.replace(frameDiffs, '') === b.replace(frameDiffs, '');\n}\n\nvar targetConsole = console;\nvar defaultProfilingSettings = {\n recordChangeDescriptions: false,\n recordTimeline: false\n};\nfunction installHook(target, maybeSettingsOrSettingsPromise) {\n var shouldStartProfilingNow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var profilingSettings = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : defaultProfilingSettings;\n\n if (target.hasOwnProperty('__REACT_DEVTOOLS_GLOBAL_HOOK__')) {\n return null;\n }\n\n function detectReactBuildType(renderer) {\n try {\n if (typeof renderer.version === 'string') {\n // React DOM Fiber (16+)\n if (renderer.bundleType > 0) {\n // This is not a production build.\n // We are currently only using 0 (PROD) and 1 (DEV)\n // but might add 2 (PROFILE) in the future.\n return 'development';\n } // React 16 uses flat bundles. If we report the bundle as production\n // version, it means we also minified and envified it ourselves.\n\n\n return 'production'; // Note: There is still a risk that the CommonJS entry point has not\n // been envified or uglified. In this case the user would have *both*\n // development and production bundle, but only the prod one would run.\n // This would be really bad. We have a separate check for this because\n // it happens *outside* of the renderer injection. See `checkDCE` below.\n } // $FlowFixMe[method-unbinding]\n\n\n var _toString = Function.prototype.toString;\n\n if (renderer.Mount && renderer.Mount._renderNewRootComponent) {\n // React DOM Stack\n var renderRootCode = _toString.call(renderer.Mount._renderNewRootComponent); // Filter out bad results (if that is even possible):\n\n\n if (renderRootCode.indexOf('function') !== 0) {\n // Hope for the best if we're not sure.\n return 'production';\n } // Check for React DOM Stack < 15.1.0 in development.\n // If it contains \"storedMeasure\" call, it's wrapped in ReactPerf (DEV only).\n // This would be true even if it's minified, as method name still matches.\n\n\n if (renderRootCode.indexOf('storedMeasure') !== -1) {\n return 'development';\n } // For other versions (and configurations) it's not so easy.\n // Let's quickly exclude proper production builds.\n // If it contains a warning message, it's either a DEV build,\n // or an PROD build without proper dead code elimination.\n\n\n if (renderRootCode.indexOf('should be a pure function') !== -1) {\n // Now how do we tell a DEV build from a bad PROD build?\n // If we see NODE_ENV, we're going to assume this is a dev build\n // because most likely it is referring to an empty shim.\n if (renderRootCode.indexOf('NODE_ENV') !== -1) {\n return 'development';\n } // If we see \"development\", we're dealing with an envified DEV build\n // (such as the official React DEV UMD).\n\n\n if (renderRootCode.indexOf('development') !== -1) {\n return 'development';\n } // I've seen process.env.NODE_ENV !== 'production' being smartly\n // replaced by `true` in DEV by Webpack. I don't know how that\n // works but we can safely guard against it because `true` was\n // never used in the function source since it was written.\n\n\n if (renderRootCode.indexOf('true') !== -1) {\n return 'development';\n } // By now either it is a production build that has not been minified,\n // or (worse) this is a minified development build using non-standard\n // environment (e.g. \"staging\"). We're going to look at whether\n // the function argument name is mangled:\n\n\n if ( // 0.13 to 15\n renderRootCode.indexOf('nextElement') !== -1 || // 0.12\n renderRootCode.indexOf('nextComponent') !== -1) {\n // We can't be certain whether this is a development build or not,\n // but it is definitely unminified.\n return 'unminified';\n } else {\n // This is likely a minified development build.\n return 'development';\n }\n } // By now we know that it's envified and dead code elimination worked,\n // but what if it's still not minified? (Is this even possible?)\n // Let's check matches for the first argument name.\n\n\n if ( // 0.13 to 15\n renderRootCode.indexOf('nextElement') !== -1 || // 0.12\n renderRootCode.indexOf('nextComponent') !== -1) {\n return 'unminified';\n } // Seems like we're using the production version.\n // However, the branch above is Stack-only so this is 15 or earlier.\n\n\n return 'outdated';\n }\n } catch (err) {// Weird environments may exist.\n // This code needs a higher fault tolerance\n // because it runs even with closed DevTools.\n // TODO: should we catch errors in all injected code, and not just this part?\n }\n\n return 'production';\n }\n\n function checkDCE(fn) {\n // This runs for production versions of React.\n // Needs to be super safe.\n try {\n // $FlowFixMe[method-unbinding]\n var _toString2 = Function.prototype.toString;\n\n var code = _toString2.call(fn); // This is a string embedded in the passed function under DEV-only\n // condition. However the function executes only in PROD. Therefore,\n // if we see it, dead code elimination did not work.\n\n\n if (code.indexOf('^_^') > -1) {\n // Remember to report during next injection.\n hasDetectedBadDCE = true; // Bonus: throw an exception hoping that it gets picked up by a reporting system.\n // Not synchronously so that it doesn't break the calling code.\n\n setTimeout(function () {\n throw new Error('React is running in production mode, but dead code ' + 'elimination has not been applied. Read how to correctly ' + 'configure React for production: ' + 'https://react.dev/link/perf-use-production-build');\n });\n }\n } catch (err) {}\n } // TODO: isProfiling should be stateful, and we should update it once profiling is finished\n\n\n var isProfiling = shouldStartProfilingNow;\n var uidCounter = 0;\n\n function inject(renderer) {\n var id = ++uidCounter;\n renderers.set(id, renderer);\n var reactBuildType = hasDetectedBadDCE ? 'deadcode' : detectReactBuildType(renderer);\n hook.emit('renderer', {\n id: id,\n renderer: renderer,\n reactBuildType: reactBuildType\n });\n var rendererInterface = attachRenderer(hook, id, renderer, target, isProfiling, profilingSettings);\n\n if (rendererInterface != null) {\n hook.rendererInterfaces.set(id, rendererInterface);\n hook.emit('renderer-attached', {\n id: id,\n rendererInterface: rendererInterface\n });\n } else {\n hook.hasUnsupportedRendererAttached = true;\n hook.emit('unsupported-renderer-version');\n }\n\n return id;\n }\n\n var hasDetectedBadDCE = false;\n\n function sub(event, fn) {\n hook.on(event, fn);\n return function () {\n return hook.off(event, fn);\n };\n }\n\n function on(event, fn) {\n if (!listeners[event]) {\n listeners[event] = [];\n }\n\n listeners[event].push(fn);\n }\n\n function off(event, fn) {\n if (!listeners[event]) {\n return;\n }\n\n var index = listeners[event].indexOf(fn);\n\n if (index !== -1) {\n listeners[event].splice(index, 1);\n }\n\n if (!listeners[event].length) {\n delete listeners[event];\n }\n }\n\n function emit(event, data) {\n if (listeners[event]) {\n listeners[event].map(function (fn) {\n return fn(data);\n });\n }\n }\n\n function getFiberRoots(rendererID) {\n var roots = fiberRoots;\n\n if (!roots[rendererID]) {\n roots[rendererID] = new Set();\n }\n\n return roots[rendererID];\n }\n\n function onCommitFiberUnmount(rendererID, fiber) {\n var rendererInterface = rendererInterfaces.get(rendererID);\n\n if (rendererInterface != null) {\n rendererInterface.handleCommitFiberUnmount(fiber);\n }\n }\n\n function onCommitFiberRoot(rendererID, root, priorityLevel) {\n var mountedRoots = hook.getFiberRoots(rendererID);\n var current = root.current;\n var isKnownRoot = mountedRoots.has(root);\n var isUnmounting = current.memoizedState == null || current.memoizedState.element == null; // Keep track of mounted roots so we can hydrate when DevTools connect.\n\n if (!isKnownRoot && !isUnmounting) {\n mountedRoots.add(root);\n } else if (isKnownRoot && isUnmounting) {\n mountedRoots.delete(root);\n }\n\n var rendererInterface = rendererInterfaces.get(rendererID);\n\n if (rendererInterface != null) {\n rendererInterface.handleCommitFiberRoot(root, priorityLevel);\n }\n }\n\n function onPostCommitFiberRoot(rendererID, root) {\n var rendererInterface = rendererInterfaces.get(rendererID);\n\n if (rendererInterface != null) {\n rendererInterface.handlePostCommitFiberRoot(root);\n }\n }\n\n var isRunningDuringStrictModeInvocation = false;\n\n function setStrictMode(rendererID, isStrictMode) {\n isRunningDuringStrictModeInvocation = isStrictMode;\n\n if (isStrictMode) {\n patchConsoleForStrictMode();\n } else {\n unpatchConsoleForStrictMode();\n }\n }\n\n var unpatchConsoleCallbacks = []; // For StrictMode we patch console once we are running in StrictMode and unpatch right after it\n // So patching could happen multiple times during the runtime\n // Notice how we don't patch error or warn methods, because they are already patched in patchConsoleForErrorsAndWarnings\n // This will only happen once, when hook is installed\n\n function patchConsoleForStrictMode() {\n // Don't patch console in case settings were not injected\n if (!hook.settings) {\n return;\n } // Don't patch twice\n\n\n if (unpatchConsoleCallbacks.length > 0) {\n return;\n } // At this point 'error', 'warn', and 'trace' methods are already patched\n // by React DevTools hook to append component stacks and other possible features.\n\n\n var consoleMethodsToOverrideForStrictMode = ['group', 'groupCollapsed', 'info', 'log']; // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n\n var _loop = function _loop() {\n var method = _consoleMethodsToOver[_i];\n var originalMethod = targetConsole[method];\n\n var overrideMethod = function overrideMethod() {\n var settings = hook.settings; // Something unexpected happened, fallback to just printing the console message.\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (settings == null) {\n originalMethod.apply(void 0, args);\n return;\n }\n\n if (settings.hideConsoleLogsInStrictMode) {\n return;\n } // Dim the text color of the double logs if we're not hiding them.\n // Firefox doesn't support ANSI escape sequences\n\n\n if (false) {} else {\n originalMethod.apply(void 0, [ANSI_STYLE_DIMMING_TEMPLATE].concat(hook_toConsumableArray(formatConsoleArguments.apply(void 0, args))));\n }\n };\n\n targetConsole[method] = overrideMethod;\n unpatchConsoleCallbacks.push(function () {\n targetConsole[method] = originalMethod;\n });\n };\n\n for (var _i = 0, _consoleMethodsToOver = consoleMethodsToOverrideForStrictMode; _i < _consoleMethodsToOver.length; _i++) {\n _loop();\n }\n }\n\n function unpatchConsoleForStrictMode() {\n unpatchConsoleCallbacks.forEach(function (callback) {\n return callback();\n });\n unpatchConsoleCallbacks.length = 0;\n }\n\n var openModuleRangesStack = [];\n var moduleRanges = [];\n\n function getTopStackFrameString(error) {\n var frames = error.stack.split('\\n');\n var frame = frames.length > 1 ? frames[1] : null;\n return frame;\n }\n\n function getInternalModuleRanges() {\n return moduleRanges;\n }\n\n function registerInternalModuleStart(error) {\n var startStackFrame = getTopStackFrameString(error);\n\n if (startStackFrame !== null) {\n openModuleRangesStack.push(startStackFrame);\n }\n }\n\n function registerInternalModuleStop(error) {\n if (openModuleRangesStack.length > 0) {\n var startStackFrame = openModuleRangesStack.pop();\n var stopStackFrame = getTopStackFrameString(error);\n\n if (stopStackFrame !== null) {\n // $FlowFixMe[incompatible-call]\n moduleRanges.push([startStackFrame, stopStackFrame]);\n }\n }\n } // For Errors and Warnings we only patch console once\n\n\n function patchConsoleForErrorsAndWarnings() {\n // Don't patch console in case settings were not injected\n if (!hook.settings) {\n return;\n }\n\n var consoleMethodsToOverrideForErrorsAndWarnings = ['error', 'trace', 'warn']; // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n\n var _loop2 = function _loop2() {\n var method = _consoleMethodsToOver2[_i2];\n var originalMethod = targetConsole[method];\n\n var overrideMethod = function overrideMethod() {\n var settings = hook.settings; // Something unexpected happened, fallback to just printing the console message.\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (settings == null) {\n originalMethod.apply(void 0, args);\n return;\n }\n\n if (isRunningDuringStrictModeInvocation && settings.hideConsoleLogsInStrictMode) {\n return;\n }\n\n var injectedComponentStackAsFakeError = false;\n var alreadyHasComponentStack = false;\n\n if (settings.appendComponentStack) {\n var lastArg = args.length > 0 ? args[args.length - 1] : null;\n alreadyHasComponentStack = typeof lastArg === 'string' && isStringComponentStack(lastArg); // The last argument should be a component stack.\n }\n\n var shouldShowInlineWarningsAndErrors = settings.showInlineWarningsAndErrors && (method === 'error' || method === 'warn'); // Search for the first renderer that has a current Fiber.\n // We don't handle the edge case of stacks for more than one (e.g. interleaved renderers?)\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n\n var _iterator = hook_createForOfIteratorHelper(hook.rendererInterfaces.values()),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var rendererInterface = _step.value;\n var onErrorOrWarning = rendererInterface.onErrorOrWarning,\n getComponentStack = rendererInterface.getComponentStack;\n\n try {\n if (shouldShowInlineWarningsAndErrors) {\n // patch() is called by two places: (1) the hook and (2) the renderer backend.\n // The backend is what implements a message queue, so it's the only one that injects onErrorOrWarning.\n if (onErrorOrWarning != null) {\n onErrorOrWarning(method, args.slice());\n }\n }\n } catch (error) {\n // Don't let a DevTools or React internal error interfere with logging.\n setTimeout(function () {\n throw error;\n }, 0);\n }\n\n try {\n if (settings.appendComponentStack && getComponentStack != null) {\n // This needs to be directly in the wrapper so we can pop exactly one frame.\n var topFrame = Error('react-stack-top-frame');\n var match = getComponentStack(topFrame);\n\n if (match !== null) {\n var enableOwnerStacks = match.enableOwnerStacks,\n componentStack = match.componentStack; // Empty string means we have a match but no component stack.\n // We don't need to look in other renderers but we also don't add anything.\n\n if (componentStack !== '') {\n // Create a fake Error so that when we print it we get native source maps. Every\n // browser will print the .stack property of the error and then parse it back for source\n // mapping. Rather than print the internal slot. So it doesn't matter that the internal\n // slot doesn't line up.\n var fakeError = new Error(''); // In Chromium, only the stack property is printed but in Firefox the <name>:<message>\n // gets printed so to make the colon make sense, we name it so we print Stack:\n // and similarly Safari leave an expandable slot.\n\n if (false) {} else {\n fakeError.name = enableOwnerStacks ? 'Stack' : 'Component Stack'; // This gets printed\n } // In Chromium, the stack property needs to start with ^[\\w.]*Error\\b to trigger stack\n // formatting. Otherwise it is left alone. So we prefix it. Otherwise we just override it\n // to our own stack.\n\n\n fakeError.stack = true ? (enableOwnerStacks ? 'Error Stack:' : 'Error Component Stack:') + componentStack : 0;\n\n if (alreadyHasComponentStack) {\n // Only modify the component stack if it matches what we would've added anyway.\n // Otherwise we assume it was a non-React stack.\n if (areStackTracesEqual(args[args.length - 1], componentStack)) {\n var firstArg = args[0];\n\n if (args.length > 1 && typeof firstArg === 'string' && firstArg.endsWith('%s')) {\n args[0] = firstArg.slice(0, firstArg.length - 2); // Strip the %s param\n }\n\n args[args.length - 1] = fakeError;\n injectedComponentStackAsFakeError = true;\n }\n } else {\n args.push(fakeError);\n injectedComponentStackAsFakeError = true;\n }\n } // Don't add stacks from other renderers.\n\n\n break;\n }\n }\n } catch (error) {\n // Don't let a DevTools or React internal error interfere with logging.\n setTimeout(function () {\n throw error;\n }, 0);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (settings.breakOnConsoleErrors) {\n // --- Welcome to debugging with React DevTools ---\n // This debugger statement means that you've enabled the \"break on warnings\" feature.\n // Use the browser's Call Stack panel to step out of this override function\n // to where the original warning or error was logged.\n // eslint-disable-next-line no-debugger\n debugger;\n }\n\n if (isRunningDuringStrictModeInvocation) {\n // Dim the text color of the double logs if we're not hiding them.\n // Firefox doesn't support ANSI escape sequences\n if (false) { var argsWithCSSStyles; } else {\n originalMethod.apply(void 0, [injectedComponentStackAsFakeError ? ANSI_STYLE_DIMMING_TEMPLATE_WITH_COMPONENT_STACK : ANSI_STYLE_DIMMING_TEMPLATE].concat(hook_toConsumableArray(formatConsoleArguments.apply(void 0, args))));\n }\n } else {\n originalMethod.apply(void 0, args);\n }\n };\n\n targetConsole[method] = overrideMethod;\n };\n\n for (var _i2 = 0, _consoleMethodsToOver2 = consoleMethodsToOverrideForErrorsAndWarnings; _i2 < _consoleMethodsToOver2.length; _i2++) {\n _loop2();\n }\n } // TODO: More meaningful names for \"rendererInterfaces\" and \"renderers\".\n\n\n var fiberRoots = {};\n var rendererInterfaces = new Map();\n var listeners = {};\n var renderers = new Map();\n var backends = new Map();\n var hook = {\n rendererInterfaces: rendererInterfaces,\n listeners: listeners,\n backends: backends,\n // Fast Refresh for web relies on this.\n renderers: renderers,\n hasUnsupportedRendererAttached: false,\n emit: emit,\n getFiberRoots: getFiberRoots,\n inject: inject,\n on: on,\n off: off,\n sub: sub,\n // This is a legacy flag.\n // React v16 checks the hook for this to ensure DevTools is new enough.\n supportsFiber: true,\n // React Flight Client checks the hook for this to ensure DevTools is new enough.\n supportsFlight: true,\n // React calls these methods.\n checkDCE: checkDCE,\n onCommitFiberUnmount: onCommitFiberUnmount,\n onCommitFiberRoot: onCommitFiberRoot,\n // React v18.0+\n onPostCommitFiberRoot: onPostCommitFiberRoot,\n setStrictMode: setStrictMode,\n // Schedule Profiler runtime helpers.\n // These internal React modules to report their own boundaries\n // which in turn enables the profiler to dim or filter internal frames.\n getInternalModuleRanges: getInternalModuleRanges,\n registerInternalModuleStart: registerInternalModuleStart,\n registerInternalModuleStop: registerInternalModuleStop\n };\n\n if (maybeSettingsOrSettingsPromise == null) {\n // Set default settings\n hook.settings = {\n appendComponentStack: true,\n breakOnConsoleErrors: false,\n showInlineWarningsAndErrors: true,\n hideConsoleLogsInStrictMode: false\n };\n patchConsoleForErrorsAndWarnings();\n } else {\n Promise.resolve(maybeSettingsOrSettingsPromise).then(function (settings) {\n hook.settings = settings;\n hook.emit('settingsInitialized', settings);\n patchConsoleForErrorsAndWarnings();\n }).catch(function () {\n targetConsole.error(\"React DevTools failed to get Console Patching settings. Console won't be patched and some console features will not work.\");\n });\n }\n\n Object.defineProperty(target, '__REACT_DEVTOOLS_GLOBAL_HOOK__', {\n // This property needs to be configurable for the test environment,\n // else we won't be able to delete and recreate it between tests.\n configurable: false,\n enumerable: false,\n get: function get() {\n return hook;\n }\n });\n return hook;\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/index.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction initBackend(hook, agent, global, isReloadAndProfileSupported) {\n if (hook == null) {\n // DevTools didn't get injected into this page (maybe b'c of the contentType).\n return function () {};\n }\n\n function registerRendererInterface(id, rendererInterface) {\n agent.registerRendererInterface(id, rendererInterface); // Now that the Store and the renderer interface are connected,\n // it's time to flush the pending operation codes to the frontend.\n\n rendererInterface.flushInitialOperations();\n }\n\n var subs = [hook.sub('renderer-attached', function (_ref) {\n var id = _ref.id,\n rendererInterface = _ref.rendererInterface;\n registerRendererInterface(id, rendererInterface);\n }), hook.sub('unsupported-renderer-version', function () {\n agent.onUnsupportedRenderer();\n }), hook.sub('fastRefreshScheduled', agent.onFastRefreshScheduled), hook.sub('operations', agent.onHookOperations), hook.sub('traceUpdates', agent.onTraceUpdates), hook.sub('settingsInitialized', agent.onHookSettings) // TODO Add additional subscriptions required for profiling mode\n ];\n agent.addListener('getIfHasUnsupportedRendererVersion', function () {\n if (hook.hasUnsupportedRendererAttached) {\n agent.onUnsupportedRenderer();\n }\n });\n hook.rendererInterfaces.forEach(function (rendererInterface, id) {\n registerRendererInterface(id, rendererInterface);\n });\n hook.emit('react-devtools', agent);\n hook.reactDevtoolsAgent = agent;\n\n var onAgentShutdown = function onAgentShutdown() {\n subs.forEach(function (fn) {\n return fn();\n });\n hook.rendererInterfaces.forEach(function (rendererInterface) {\n rendererInterface.cleanup();\n });\n hook.reactDevtoolsAgent = null;\n }; // Agent's event listeners are cleaned up by Agent in `shutdown` implementation.\n\n\n agent.addListener('shutdown', onAgentShutdown);\n agent.addListener('updateHookSettings', function (settings) {\n hook.settings = settings;\n });\n agent.addListener('getHookSettings', function () {\n if (hook.settings != null) {\n agent.onHookSettings(hook.settings);\n }\n });\n\n if (isReloadAndProfileSupported) {\n agent.onReloadAndProfileSupportedByHost();\n }\n\n return function () {\n subs.forEach(function (fn) {\n return fn();\n });\n };\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/NativeStyleEditor/resolveBoxStyle.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * This mirrors react-native/Libraries/Inspector/resolveBoxStyle.js (but without RTL support).\n *\n * Resolve a style property into it's component parts, e.g.\n *\n * resolveBoxStyle('margin', {margin: 5, marginBottom: 10})\n * -> {top: 5, left: 5, right: 5, bottom: 10}\n */\nfunction resolveBoxStyle(prefix, style) {\n var hasParts = false;\n var result = {\n bottom: 0,\n left: 0,\n right: 0,\n top: 0\n };\n var styleForAll = style[prefix];\n\n if (styleForAll != null) {\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n for (var _i = 0, _Object$keys = Object.keys(result); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n result[key] = styleForAll;\n }\n\n hasParts = true;\n }\n\n var styleForHorizontal = style[prefix + 'Horizontal'];\n\n if (styleForHorizontal != null) {\n result.left = styleForHorizontal;\n result.right = styleForHorizontal;\n hasParts = true;\n } else {\n var styleForLeft = style[prefix + 'Left'];\n\n if (styleForLeft != null) {\n result.left = styleForLeft;\n hasParts = true;\n }\n\n var styleForRight = style[prefix + 'Right'];\n\n if (styleForRight != null) {\n result.right = styleForRight;\n hasParts = true;\n }\n\n var styleForEnd = style[prefix + 'End'];\n\n if (styleForEnd != null) {\n // TODO RTL support\n result.right = styleForEnd;\n hasParts = true;\n }\n\n var styleForStart = style[prefix + 'Start'];\n\n if (styleForStart != null) {\n // TODO RTL support\n result.left = styleForStart;\n hasParts = true;\n }\n }\n\n var styleForVertical = style[prefix + 'Vertical'];\n\n if (styleForVertical != null) {\n result.bottom = styleForVertical;\n result.top = styleForVertical;\n hasParts = true;\n } else {\n var styleForBottom = style[prefix + 'Bottom'];\n\n if (styleForBottom != null) {\n result.bottom = styleForBottom;\n hasParts = true;\n }\n\n var styleForTop = style[prefix + 'Top'];\n\n if (styleForTop != null) {\n result.top = styleForTop;\n hasParts = true;\n }\n }\n\n return hasParts ? result : null;\n}\n;// CONCATENATED MODULE: ../react-devtools-shared/src/backend/NativeStyleEditor/setupNativeStyleEditor.js\nfunction setupNativeStyleEditor_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { setupNativeStyleEditor_typeof = function _typeof(obj) { return typeof obj; }; } else { setupNativeStyleEditor_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return setupNativeStyleEditor_typeof(obj); }\n\nfunction setupNativeStyleEditor_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\n\nfunction setupNativeStyleEditor(bridge, agent, resolveNativeStyle, validAttributes) {\n bridge.addListener('NativeStyleEditor_measure', function (_ref) {\n var id = _ref.id,\n rendererID = _ref.rendererID;\n measureStyle(agent, bridge, resolveNativeStyle, id, rendererID);\n });\n bridge.addListener('NativeStyleEditor_renameAttribute', function (_ref2) {\n var id = _ref2.id,\n rendererID = _ref2.rendererID,\n oldName = _ref2.oldName,\n newName = _ref2.newName,\n value = _ref2.value;\n renameStyle(agent, id, rendererID, oldName, newName, value);\n setTimeout(function () {\n return measureStyle(agent, bridge, resolveNativeStyle, id, rendererID);\n });\n });\n bridge.addListener('NativeStyleEditor_setValue', function (_ref3) {\n var id = _ref3.id,\n rendererID = _ref3.rendererID,\n name = _ref3.name,\n value = _ref3.value;\n setStyle(agent, id, rendererID, name, value);\n setTimeout(function () {\n return measureStyle(agent, bridge, resolveNativeStyle, id, rendererID);\n });\n });\n bridge.send('isNativeStyleEditorSupported', {\n isSupported: true,\n validAttributes: validAttributes\n });\n}\nvar EMPTY_BOX_STYLE = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n};\nvar componentIDToStyleOverrides = new Map();\n\nfunction measureStyle(agent, bridge, resolveNativeStyle, id, rendererID) {\n var data = agent.getInstanceAndStyle({\n id: id,\n rendererID: rendererID\n });\n\n if (!data || !data.style) {\n bridge.send('NativeStyleEditor_styleAndLayout', {\n id: id,\n layout: null,\n style: null\n });\n return;\n }\n\n var instance = data.instance,\n style = data.style;\n var resolvedStyle = resolveNativeStyle(style); // If it's a host component we edited before, amend styles.\n\n var styleOverrides = componentIDToStyleOverrides.get(id);\n\n if (styleOverrides != null) {\n resolvedStyle = Object.assign({}, resolvedStyle, styleOverrides);\n }\n\n if (!instance || typeof instance.measure !== 'function') {\n bridge.send('NativeStyleEditor_styleAndLayout', {\n id: id,\n layout: null,\n style: resolvedStyle || null\n });\n return;\n }\n\n instance.measure(function (x, y, width, height, left, top) {\n // RN Android sometimes returns undefined here. Don't send measurements in this case.\n // https://github.com/jhen0409/react-native-debugger/issues/84#issuecomment-304611817\n if (typeof x !== 'number') {\n bridge.send('NativeStyleEditor_styleAndLayout', {\n id: id,\n layout: null,\n style: resolvedStyle || null\n });\n return;\n }\n\n var margin = resolvedStyle != null && resolveBoxStyle('margin', resolvedStyle) || EMPTY_BOX_STYLE;\n var padding = resolvedStyle != null && resolveBoxStyle('padding', resolvedStyle) || EMPTY_BOX_STYLE;\n bridge.send('NativeStyleEditor_styleAndLayout', {\n id: id,\n layout: {\n x: x,\n y: y,\n width: width,\n height: height,\n left: left,\n top: top,\n margin: margin,\n padding: padding\n },\n style: resolvedStyle || null\n });\n });\n}\n\nfunction shallowClone(object) {\n var cloned = {};\n\n for (var n in object) {\n cloned[n] = object[n];\n }\n\n return cloned;\n}\n\nfunction renameStyle(agent, id, rendererID, oldName, newName, value) {\n var _ref4;\n\n var data = agent.getInstanceAndStyle({\n id: id,\n rendererID: rendererID\n });\n\n if (!data || !data.style) {\n return;\n }\n\n var instance = data.instance,\n style = data.style;\n var newStyle = newName ? (_ref4 = {}, setupNativeStyleEditor_defineProperty(_ref4, oldName, undefined), setupNativeStyleEditor_defineProperty(_ref4, newName, value), _ref4) : setupNativeStyleEditor_defineProperty({}, oldName, undefined);\n var customStyle; // TODO It would be nice if the renderer interface abstracted this away somehow.\n\n if (instance !== null && typeof instance.setNativeProps === 'function') {\n // In the case of a host component, we need to use setNativeProps().\n // Remember to \"correct\" resolved styles when we read them next time.\n var styleOverrides = componentIDToStyleOverrides.get(id);\n\n if (!styleOverrides) {\n componentIDToStyleOverrides.set(id, newStyle);\n } else {\n Object.assign(styleOverrides, newStyle);\n } // TODO Fabric does not support setNativeProps; chat with Sebastian or Eli\n\n\n instance.setNativeProps({\n style: newStyle\n });\n } else if (src_isArray(style)) {\n var lastIndex = style.length - 1;\n\n if (setupNativeStyleEditor_typeof(style[lastIndex]) === 'object' && !src_isArray(style[lastIndex])) {\n customStyle = shallowClone(style[lastIndex]);\n delete customStyle[oldName];\n\n if (newName) {\n customStyle[newName] = value;\n } else {\n customStyle[oldName] = undefined;\n }\n\n agent.overrideValueAtPath({\n type: 'props',\n id: id,\n rendererID: rendererID,\n path: ['style', lastIndex],\n value: customStyle\n });\n } else {\n agent.overrideValueAtPath({\n type: 'props',\n id: id,\n rendererID: rendererID,\n path: ['style'],\n value: style.concat([newStyle])\n });\n }\n } else if (setupNativeStyleEditor_typeof(style) === 'object') {\n customStyle = shallowClone(style);\n delete customStyle[oldName];\n\n if (newName) {\n customStyle[newName] = value;\n } else {\n customStyle[oldName] = undefined;\n }\n\n agent.overrideValueAtPath({\n type: 'props',\n id: id,\n rendererID: rendererID,\n path: ['style'],\n value: customStyle\n });\n } else {\n agent.overrideValueAtPath({\n type: 'props',\n id: id,\n rendererID: rendererID,\n path: ['style'],\n value: [style, newStyle]\n });\n }\n\n agent.emit('hideNativeHighlight');\n}\n\nfunction setStyle(agent, id, rendererID, name, value) {\n var data = agent.getInstanceAndStyle({\n id: id,\n rendererID: rendererID\n });\n\n if (!data || !data.style) {\n return;\n }\n\n var instance = data.instance,\n style = data.style;\n\n var newStyle = setupNativeStyleEditor_defineProperty({}, name, value); // TODO It would be nice if the renderer interface abstracted this away somehow.\n\n\n if (instance !== null && typeof instance.setNativeProps === 'function') {\n // In the case of a host component, we need to use setNativeProps().\n // Remember to \"correct\" resolved styles when we read them next time.\n var styleOverrides = componentIDToStyleOverrides.get(id);\n\n if (!styleOverrides) {\n componentIDToStyleOverrides.set(id, newStyle);\n } else {\n Object.assign(styleOverrides, newStyle);\n } // TODO Fabric does not support setNativeProps; chat with Sebastian or Eli\n\n\n instance.setNativeProps({\n style: newStyle\n });\n } else if (src_isArray(style)) {\n var lastLength = style.length - 1;\n\n if (setupNativeStyleEditor_typeof(style[lastLength]) === 'object' && !src_isArray(style[lastLength])) {\n agent.overrideValueAtPath({\n type: 'props',\n id: id,\n rendererID: rendererID,\n path: ['style', lastLength, name],\n value: value\n });\n } else {\n agent.overrideValueAtPath({\n type: 'props',\n id: id,\n rendererID: rendererID,\n path: ['style'],\n value: style.concat([newStyle])\n });\n }\n } else {\n agent.overrideValueAtPath({\n type: 'props',\n id: id,\n rendererID: rendererID,\n path: ['style'],\n value: [style, newStyle]\n });\n }\n\n agent.emit('hideNativeHighlight');\n}\n;// CONCATENATED MODULE: ./src/backend.js\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\n\n\n\n\n\nvar savedComponentFilters = getDefaultComponentFilters();\n\nfunction backend_debug(methodName) {\n if (__DEBUG__) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console).log.apply(_console, [\"%c[core/backend] %c\".concat(methodName), 'color: teal; font-weight: bold;', 'font-weight: bold;'].concat(args));\n }\n}\n\nfunction backend_initialize(maybeSettingsOrSettingsPromise) {\n var shouldStartProfilingNow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var profilingSettings = arguments.length > 2 ? arguments[2] : undefined;\n installHook(window, maybeSettingsOrSettingsPromise, shouldStartProfilingNow, profilingSettings);\n}\nfunction connectToDevTools(options) {\n var hook = window.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\n if (hook == null) {\n // DevTools didn't get injected into this page (maybe b'c of the contentType).\n return;\n }\n\n var _ref = options || {},\n _ref$host = _ref.host,\n host = _ref$host === void 0 ? 'localhost' : _ref$host,\n nativeStyleEditorValidAttributes = _ref.nativeStyleEditorValidAttributes,\n _ref$useHttps = _ref.useHttps,\n useHttps = _ref$useHttps === void 0 ? false : _ref$useHttps,\n _ref$port = _ref.port,\n port = _ref$port === void 0 ? 8097 : _ref$port,\n websocket = _ref.websocket,\n _ref$resolveRNStyle = _ref.resolveRNStyle,\n resolveRNStyle = _ref$resolveRNStyle === void 0 ? null : _ref$resolveRNStyle,\n _ref$retryConnectionD = _ref.retryConnectionDelay,\n retryConnectionDelay = _ref$retryConnectionD === void 0 ? 2000 : _ref$retryConnectionD,\n _ref$isAppActive = _ref.isAppActive,\n isAppActive = _ref$isAppActive === void 0 ? function () {\n return true;\n } : _ref$isAppActive,\n onSettingsUpdated = _ref.onSettingsUpdated,\n _ref$isReloadAndProfi = _ref.isReloadAndProfileSupported,\n isReloadAndProfileSupported = _ref$isReloadAndProfi === void 0 ? getIsReloadAndProfileSupported() : _ref$isReloadAndProfi,\n isProfiling = _ref.isProfiling,\n onReloadAndProfile = _ref.onReloadAndProfile,\n onReloadAndProfileFlagsReset = _ref.onReloadAndProfileFlagsReset;\n\n var protocol = useHttps ? 'wss' : 'ws';\n var retryTimeoutID = null;\n\n function scheduleRetry() {\n if (retryTimeoutID === null) {\n // Two seconds because RN had issues with quick retries.\n retryTimeoutID = setTimeout(function () {\n return connectToDevTools(options);\n }, retryConnectionDelay);\n }\n }\n\n if (!isAppActive()) {\n // If the app is in background, maybe retry later.\n // Don't actually attempt to connect until we're in foreground.\n scheduleRetry();\n return;\n }\n\n var bridge = null;\n var messageListeners = [];\n var uri = protocol + '://' + host + ':' + port; // If existing websocket is passed, use it.\n // This is necessary to support our custom integrations.\n // See D6251744.\n\n var ws = websocket ? websocket : new window.WebSocket(uri);\n ws.onclose = handleClose;\n ws.onerror = handleFailed;\n ws.onmessage = handleMessage;\n\n ws.onopen = function () {\n bridge = new src_bridge({\n listen: function listen(fn) {\n messageListeners.push(fn);\n return function () {\n var index = messageListeners.indexOf(fn);\n\n if (index >= 0) {\n messageListeners.splice(index, 1);\n }\n };\n },\n send: function send(event, payload, transferable) {\n if (ws.readyState === ws.OPEN) {\n if (__DEBUG__) {\n backend_debug('wall.send()', event, payload);\n }\n\n ws.send(JSON.stringify({\n event: event,\n payload: payload\n }));\n } else {\n if (__DEBUG__) {\n backend_debug('wall.send()', 'Shutting down bridge because of closed WebSocket connection');\n }\n\n if (bridge !== null) {\n bridge.shutdown();\n }\n\n scheduleRetry();\n }\n }\n });\n bridge.addListener('updateComponentFilters', function (componentFilters) {\n // Save filter changes in memory, in case DevTools is reloaded.\n // In that case, the renderer will already be using the updated values.\n // We'll lose these in between backend reloads but that can't be helped.\n savedComponentFilters = componentFilters;\n }); // The renderer interface doesn't read saved component filters directly,\n // because they are generally stored in localStorage within the context of the extension.\n // Because of this it relies on the extension to pass filters.\n // In the case of the standalone DevTools being used with a website,\n // saved filters are injected along with the backend script tag so we shouldn't override them here.\n // This injection strategy doesn't work for React Native though.\n // Ideally the backend would save the filters itself, but RN doesn't provide a sync storage solution.\n // So for now we just fall back to using the default filters...\n\n if (window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ == null) {\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n bridge.send('overrideComponentFilters', savedComponentFilters);\n } // TODO (npm-packages) Warn if \"isBackendStorageAPISupported\"\n // $FlowFixMe[incompatible-call] found when upgrading Flow\n\n\n var agent = new Agent(bridge, isProfiling, onReloadAndProfile);\n\n if (typeof onReloadAndProfileFlagsReset === 'function') {\n onReloadAndProfileFlagsReset();\n }\n\n if (onSettingsUpdated != null) {\n agent.addListener('updateHookSettings', onSettingsUpdated);\n }\n\n agent.addListener('shutdown', function () {\n if (onSettingsUpdated != null) {\n agent.removeListener('updateHookSettings', onSettingsUpdated);\n } // If we received 'shutdown' from `agent`, we assume the `bridge` is already shutting down,\n // and that caused the 'shutdown' event on the `agent`, so we don't need to call `bridge.shutdown()` here.\n\n\n hook.emit('shutdown');\n });\n initBackend(hook, agent, window, isReloadAndProfileSupported); // Setup React Native style editor if the environment supports it.\n\n if (resolveRNStyle != null || hook.resolveRNStyle != null) {\n setupNativeStyleEditor( // $FlowFixMe[incompatible-call] found when upgrading Flow\n bridge, agent, resolveRNStyle || hook.resolveRNStyle, nativeStyleEditorValidAttributes || hook.nativeStyleEditorValidAttributes || null);\n } else {\n // Otherwise listen to detect if the environment later supports it.\n // For example, Flipper does not eagerly inject these values.\n // Instead it relies on the React Native Inspector to lazily inject them.\n var lazyResolveRNStyle;\n var lazyNativeStyleEditorValidAttributes;\n\n var initAfterTick = function initAfterTick() {\n if (bridge !== null) {\n setupNativeStyleEditor(bridge, agent, lazyResolveRNStyle, lazyNativeStyleEditorValidAttributes);\n }\n };\n\n if (!hook.hasOwnProperty('resolveRNStyle')) {\n Object.defineProperty(hook, 'resolveRNStyle', {\n enumerable: false,\n get: function get() {\n return lazyResolveRNStyle;\n },\n set: function set(value) {\n lazyResolveRNStyle = value;\n initAfterTick();\n }\n });\n }\n\n if (!hook.hasOwnProperty('nativeStyleEditorValidAttributes')) {\n Object.defineProperty(hook, 'nativeStyleEditorValidAttributes', {\n enumerable: false,\n get: function get() {\n return lazyNativeStyleEditorValidAttributes;\n },\n set: function set(value) {\n lazyNativeStyleEditorValidAttributes = value;\n initAfterTick();\n }\n });\n }\n }\n };\n\n function handleClose() {\n if (__DEBUG__) {\n backend_debug('WebSocket.onclose');\n }\n\n if (bridge !== null) {\n bridge.emit('shutdown');\n }\n\n scheduleRetry();\n }\n\n function handleFailed() {\n if (__DEBUG__) {\n backend_debug('WebSocket.onerror');\n }\n\n scheduleRetry();\n }\n\n function handleMessage(event) {\n var data;\n\n try {\n if (typeof event.data === 'string') {\n data = JSON.parse(event.data);\n\n if (__DEBUG__) {\n backend_debug('WebSocket.onmessage', data);\n }\n } else {\n throw Error();\n }\n } catch (e) {\n console.error('[React DevTools] Failed to parse JSON: ' + event.data);\n return;\n }\n\n messageListeners.forEach(function (fn) {\n try {\n fn(data);\n } catch (error) {\n // jsc doesn't play so well with tracebacks that go into eval'd code,\n // so the stack trace here will stop at the `eval()` call. Getting the\n // message that caused the error is the best we can do for now.\n console.log('[React DevTools] Error calling listener', data);\n console.log('error:', error);\n throw error;\n }\n });\n }\n}\nfunction connectWithCustomMessagingProtocol(_ref2) {\n var onSubscribe = _ref2.onSubscribe,\n onUnsubscribe = _ref2.onUnsubscribe,\n onMessage = _ref2.onMessage,\n nativeStyleEditorValidAttributes = _ref2.nativeStyleEditorValidAttributes,\n resolveRNStyle = _ref2.resolveRNStyle,\n onSettingsUpdated = _ref2.onSettingsUpdated,\n _ref2$isReloadAndProf = _ref2.isReloadAndProfileSupported,\n isReloadAndProfileSupported = _ref2$isReloadAndProf === void 0 ? getIsReloadAndProfileSupported() : _ref2$isReloadAndProf,\n isProfiling = _ref2.isProfiling,\n onReloadAndProfile = _ref2.onReloadAndProfile,\n onReloadAndProfileFlagsReset = _ref2.onReloadAndProfileFlagsReset;\n var hook = window.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\n if (hook == null) {\n // DevTools didn't get injected into this page (maybe b'c of the contentType).\n return;\n }\n\n var wall = {\n listen: function listen(fn) {\n onSubscribe(fn);\n return function () {\n onUnsubscribe(fn);\n };\n },\n send: function send(event, payload) {\n onMessage(event, payload);\n }\n };\n var bridge = new src_bridge(wall);\n bridge.addListener('updateComponentFilters', function (componentFilters) {\n // Save filter changes in memory, in case DevTools is reloaded.\n // In that case, the renderer will already be using the updated values.\n // We'll lose these in between backend reloads but that can't be helped.\n savedComponentFilters = componentFilters;\n });\n\n if (window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ == null) {\n bridge.send('overrideComponentFilters', savedComponentFilters);\n }\n\n var agent = new Agent(bridge, isProfiling, onReloadAndProfile);\n\n if (typeof onReloadAndProfileFlagsReset === 'function') {\n onReloadAndProfileFlagsReset();\n }\n\n if (onSettingsUpdated != null) {\n agent.addListener('updateHookSettings', onSettingsUpdated);\n }\n\n agent.addListener('shutdown', function () {\n if (onSettingsUpdated != null) {\n agent.removeListener('updateHookSettings', onSettingsUpdated);\n } // If we received 'shutdown' from `agent`, we assume the `bridge` is already shutting down,\n // and that caused the 'shutdown' event on the `agent`, so we don't need to call `bridge.shutdown()` here.\n\n\n hook.emit('shutdown');\n });\n var unsubscribeBackend = initBackend(hook, agent, window, isReloadAndProfileSupported);\n var nativeStyleResolver = resolveRNStyle || hook.resolveRNStyle;\n\n if (nativeStyleResolver != null) {\n var validAttributes = nativeStyleEditorValidAttributes || hook.nativeStyleEditorValidAttributes || null;\n setupNativeStyleEditor(bridge, agent, nativeStyleResolver, validAttributes);\n }\n\n return unsubscribeBackend;\n}\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=backend.js.map","import { onExit } from 'signal-exit'\n// biome-ignore lint/suspicious/noTsIgnore: cannot find types\n// @ts-ignore\nimport devtools from 'react-devtools-core'\nimport ws from 'ws'\nimport { execa } from 'execa'\n\ndeclare global {\n var WebSocket: typeof WebSocket\n var self: any\n var window: any\n var isDevtoolsEnabled: any\n}\n\nexport function open() {\n // Filter out Kubbs's internal components from devtools for a cleaner view.\n // See https://github.com/facebook/react/blob/edf6eac8a181860fd8a2d076a43806f1237495a1/packages/react-devtools-shared/src/types.js#L24\n const customGlobal = global as any\n customGlobal.WebSocket ||= ws\n customGlobal.window ||= global\n customGlobal.self ||= global\n customGlobal.isDevtoolsEnabled = true\n customGlobal.window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ = [\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'Context.Provider',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'KubbRoot',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'KubbErrorBoundary',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-file',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-text',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-import',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-export',\n isEnabled: true,\n isValid: true,\n },\n {\n // ComponentFilterDisplayName\n type: 2,\n value: 'kubb-source',\n isEnabled: true,\n isValid: true,\n },\n ]\n\n console.info('Opening devtools')\n const controller = new AbortController()\n execa({\n stdio: 'pipe',\n preferLocal: true,\n cancelSignal: controller.signal,\n gracefulCancel: true,\n })`npx react-devtools`\n\n ;(devtools as any).initialize()\n console.info('Connecting devtools')\n\n try {\n ;(devtools as any).connectToDevTools({\n host: 'localhost',\n port: 8097,\n useHttps: false,\n isAppActive: () => true,\n })\n } catch (e) {\n console.error(e)\n console.info('Error when connecting the devtools')\n }\n\n onExit(\n () => {\n console.info('Disconnecting devtools')\n controller.abort()\n },\n { alwaysLast: false },\n )\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}