@signalcore/ui 0.1.0 → 1.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +896 -513
- package/dist/AgentAbout.d.ts +186 -0
- package/dist/AgentAbout.js +1020 -0
- package/dist/AgentAbout.js.map +1 -0
- package/dist/AgentCard.d.ts +49 -0
- package/dist/AgentCard.js +77 -0
- package/dist/AgentCard.js.map +1 -0
- package/dist/AgentChat.d.ts +233 -0
- package/dist/AgentChat.js +1119 -0
- package/dist/AgentChat.js.map +1 -0
- package/dist/AgentSpace.d.ts +112 -0
- package/dist/AgentSpace.js +339 -0
- package/dist/AgentSpace.js.map +1 -0
- package/dist/AgentTasks.d.ts +48 -0
- package/dist/AgentTasks.js +120 -0
- package/dist/AgentTasks.js.map +1 -0
- package/dist/BrowserView.d.ts +52 -0
- package/dist/BrowserView.js +328 -0
- package/dist/BrowserView.js.map +1 -0
- package/dist/FileView.d.ts +63 -0
- package/dist/FileView.js +449 -0
- package/dist/FileView.js.map +1 -0
- package/dist/Modes.d.ts +13 -0
- package/dist/Modes.js +75 -0
- package/dist/Modes.js.map +1 -0
- package/dist/VoiceCall.d.ts +91 -0
- package/dist/VoiceCall.js +302 -0
- package/dist/VoiceCall.js.map +1 -0
- package/dist/about.d.ts +212 -0
- package/dist/about.js +136 -0
- package/dist/about.js.map +1 -0
- package/dist/agentIcons.d.ts +33 -0
- package/dist/agentIcons.js +36 -0
- package/dist/agentIcons.js.map +1 -0
- package/dist/automation/Automation.d.ts +35 -0
- package/dist/automation/Automation.js +268 -0
- package/dist/automation/Automation.js.map +1 -0
- package/dist/automation/RunView.d.ts +25 -0
- package/dist/automation/RunView.js +187 -0
- package/dist/automation/RunView.js.map +1 -0
- package/dist/automation/cron.d.ts +41 -0
- package/dist/automation/cron.js +169 -0
- package/dist/automation/cron.js.map +1 -0
- package/dist/automation/marks.js +121 -0
- package/dist/automation/marks.js.map +1 -0
- package/dist/automation/messages.d.ts +113 -0
- package/dist/automation/messages.js +113 -0
- package/dist/automation/messages.js.map +1 -0
- package/dist/automation/record.d.ts +47 -0
- package/dist/automation/record.js +177 -0
- package/dist/automation/record.js.map +1 -0
- package/dist/automation/types.d.ts +143 -0
- package/dist/automation/when.d.ts +36 -0
- package/dist/automation/when.js +168 -0
- package/dist/automation/when.js.map +1 -0
- package/dist/blocks.d.ts +185 -0
- package/dist/browser.js +292 -0
- package/dist/browser.js.map +1 -0
- package/dist/call.d.ts +89 -0
- package/dist/call.js +218 -0
- package/dist/call.js.map +1 -0
- package/dist/channelParts.js +26 -0
- package/dist/channelParts.js.map +1 -0
- package/dist/classes.js +8 -3
- package/dist/classes.js.map +1 -0
- package/dist/client.d.ts +146 -54
- package/dist/client.js +204 -1
- package/dist/client.js.map +1 -0
- package/dist/conversationFiles.js +46 -0
- package/dist/conversationFiles.js.map +1 -0
- package/dist/credentials.d.ts +45 -0
- package/dist/credentials.js +98 -0
- package/dist/credentials.js.map +1 -0
- package/dist/dev.js +17 -0
- package/dist/dev.js.map +1 -0
- package/dist/es.d.ts +17 -0
- package/dist/es.js +382 -0
- package/dist/es.js.map +1 -0
- package/dist/files.d.ts +21 -0
- package/dist/files.js +214 -0
- package/dist/files.js.map +1 -0
- package/dist/frames.d.ts +115 -0
- package/dist/frames.js +219 -0
- package/dist/frames.js.map +1 -0
- package/dist/icons.js +29 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.d.ts +63 -60
- package/dist/index.js +59 -45
- package/dist/kit/AudioPlayer.d.ts +20 -0
- package/dist/kit/AudioPlayer.js +116 -0
- package/dist/kit/AudioPlayer.js.map +1 -0
- package/dist/kit/Button.d.ts +29 -0
- package/dist/kit/Button.js +59 -0
- package/dist/kit/Button.js.map +1 -0
- package/dist/kit/Card.d.ts +16 -0
- package/dist/kit/Card.js +36 -0
- package/dist/kit/Card.js.map +1 -0
- package/dist/kit/Chart.js +152 -0
- package/dist/kit/Chart.js.map +1 -0
- package/dist/kit/Choices.d.ts +21 -0
- package/dist/kit/Choices.js +99 -0
- package/dist/kit/Choices.js.map +1 -0
- package/dist/kit/Combobox.d.ts +26 -0
- package/dist/kit/Combobox.js +190 -0
- package/dist/kit/Combobox.js.map +1 -0
- package/dist/kit/DateField.d.ts +17 -0
- package/dist/kit/DateField.js +133 -0
- package/dist/kit/DateField.js.map +1 -0
- package/dist/kit/Field.d.ts +40 -0
- package/dist/kit/Field.js +98 -0
- package/dist/kit/Field.js.map +1 -0
- package/dist/kit/FileField.d.ts +113 -0
- package/dist/kit/FileField.js +341 -0
- package/dist/kit/FileField.js.map +1 -0
- package/dist/kit/FileMark.d.ts +15 -0
- package/dist/kit/FileMark.js +39 -0
- package/dist/kit/FileMark.js.map +1 -0
- package/dist/kit/Inputs.d.ts +59 -0
- package/dist/kit/Inputs.js +205 -0
- package/dist/kit/Inputs.js.map +1 -0
- package/dist/kit/List.d.ts +47 -0
- package/dist/kit/List.js +85 -0
- package/dist/kit/List.js.map +1 -0
- package/dist/kit/Mark.d.ts +30 -0
- package/dist/kit/Mark.js +27 -0
- package/dist/kit/Mark.js.map +1 -0
- package/dist/kit/MarkStack.d.ts +15 -0
- package/dist/kit/MarkStack.js +26 -0
- package/dist/kit/MarkStack.js.map +1 -0
- package/dist/kit/Note.d.ts +11 -0
- package/dist/kit/Note.js +31 -0
- package/dist/kit/Note.js.map +1 -0
- package/dist/kit/Popover.js +90 -0
- package/dist/kit/Popover.js.map +1 -0
- package/dist/kit/RangeField.d.ts +14 -0
- package/dist/kit/RangeField.js +47 -0
- package/dist/kit/RangeField.js.map +1 -0
- package/dist/kit/RatingField.d.ts +14 -0
- package/dist/kit/RatingField.js +50 -0
- package/dist/kit/RatingField.js.map +1 -0
- package/dist/kit/Stat.d.ts +26 -0
- package/dist/kit/Stat.js +46 -0
- package/dist/kit/Stat.js.map +1 -0
- package/dist/kit/Switch.d.ts +14 -0
- package/dist/kit/Switch.js +21 -0
- package/dist/kit/Switch.js.map +1 -0
- package/dist/kit/Tag.d.ts +16 -0
- package/dist/kit/Tag.js +20 -0
- package/dist/kit/Tag.js.map +1 -0
- package/dist/kit/Tile.d.ts +34 -0
- package/dist/kit/Tile.js +52 -0
- package/dist/kit/Tile.js.map +1 -0
- package/dist/kit/TimeField.d.ts +31 -0
- package/dist/kit/TimeField.js +109 -0
- package/dist/kit/TimeField.js.map +1 -0
- package/dist/kit/context.d.ts +22 -0
- package/dist/kit/context.js +46 -0
- package/dist/kit/context.js.map +1 -0
- package/dist/kit/dates.d.ts +14 -0
- package/dist/kit/dates.js +129 -0
- package/dist/kit/dates.js.map +1 -0
- package/dist/kit/messages.d.ts +99 -0
- package/dist/kit/messages.js +66 -0
- package/dist/kit/messages.js.map +1 -0
- package/dist/kit/numbers.d.ts +12 -0
- package/dist/kit/numbers.js +40 -0
- package/dist/kit/numbers.js.map +1 -0
- package/dist/kit/options.d.ts +10 -0
- package/dist/kit/options.js +23 -0
- package/dist/kit/options.js.map +1 -0
- package/dist/kit/uploads.d.ts +42 -0
- package/dist/kit/uploads.js +165 -0
- package/dist/kit/uploads.js.map +1 -0
- package/dist/kit/waveform.js +76 -0
- package/dist/kit/waveform.js.map +1 -0
- package/dist/locale.d.ts +1 -0
- package/dist/locale.js +1 -0
- package/dist/markdown.js +84 -0
- package/dist/markdown.js.map +1 -0
- package/dist/marks.js +217 -0
- package/dist/marks.js.map +1 -0
- package/dist/reveal.js +48 -0
- package/dist/reveal.js.map +1 -0
- package/dist/stepGlyphs.js +62 -0
- package/dist/stepGlyphs.js.map +1 -0
- package/dist/surface/Form.js +264 -0
- package/dist/surface/Form.js.map +1 -0
- package/dist/surface/Markdown.js +42 -0
- package/dist/surface/Markdown.js.map +1 -0
- package/dist/surface/Surface.d.ts +31 -17
- package/dist/surface/Surface.js +480 -57
- package/dist/surface/Surface.js.map +1 -0
- package/dist/surface/scope.d.ts +32 -0
- package/dist/surface/scope.js +23 -0
- package/dist/surface/scope.js.map +1 -0
- package/dist/surface/values.d.ts +44 -0
- package/dist/surface/values.js +237 -0
- package/dist/surface/values.js.map +1 -0
- package/dist/tint.d.ts +10 -0
- package/dist/tint.js +19 -0
- package/dist/tint.js.map +1 -0
- package/dist/types.d.ts +534 -0
- package/dist/types.js +16 -0
- package/dist/types.js.map +1 -0
- package/dist/useAgentFace.d.ts +18 -0
- package/dist/useAgentFace.js +45 -0
- package/dist/useAgentFace.js.map +1 -0
- package/dist/useCall.d.ts +39 -0
- package/dist/useCall.js +273 -0
- package/dist/useCall.js.map +1 -0
- package/dist/useConversation.d.ts +77 -0
- package/dist/useConversation.js +523 -0
- package/dist/useConversation.js.map +1 -0
- package/dist/useDictation.d.ts +17 -0
- package/dist/useDictation.js +68 -0
- package/dist/useDictation.js.map +1 -0
- package/dist/useLive.d.ts +26 -0
- package/dist/useLive.js +88 -0
- package/dist/useLive.js.map +1 -0
- package/dist/usePolled.js +68 -0
- package/dist/usePolled.js.map +1 -0
- package/dist/voice/Orb.d.ts +10 -9
- package/dist/voice/Orb.js +43 -39
- package/dist/voice/Orb.js.map +1 -0
- package/dist/voice/StillOrb.js +33 -0
- package/dist/voice/StillOrb.js.map +1 -0
- package/dist/voice/WebGLOrb.js +98 -0
- package/dist/voice/WebGLOrb.js.map +1 -0
- package/dist/voice/fluidDots.js +161 -0
- package/dist/voice/fluidDots.js.map +1 -0
- package/dist/voice/motion.js +84 -0
- package/dist/voice/motion.js.map +1 -0
- package/dist/voice/orbs.d.ts +32 -0
- package/dist/voice/orbs.js +16 -0
- package/dist/voice/orbs.js.map +1 -0
- package/dist/voice/useReducedMotion.js +16 -16
- package/dist/voice/useReducedMotion.js.map +1 -0
- package/dist/voice/wave.js +116 -0
- package/dist/voice/wave.js.map +1 -0
- package/dist/voice/webgl.js +177 -0
- package/dist/voice/webgl.js.map +1 -0
- package/dist/widget.js +284 -8
- package/package.json +49 -39
- package/src/AgentAbout.tsx +1621 -0
- package/src/AgentCard.tsx +123 -0
- package/src/AgentChat.tsx +1795 -0
- package/src/AgentSpace.tsx +540 -0
- package/src/AgentTasks.tsx +163 -0
- package/src/BrowserView.tsx +442 -0
- package/src/FileView.tsx +620 -0
- package/src/Modes.tsx +112 -0
- package/src/VoiceCall.tsx +411 -0
- package/src/about.ts +355 -0
- package/src/agentIcons.ts +56 -0
- package/src/automation/Automation.tsx +308 -0
- package/src/automation/RunView.tsx +213 -0
- package/src/automation/cron.ts +196 -0
- package/src/automation/marks.tsx +144 -0
- package/src/automation/messages.ts +231 -0
- package/src/automation/record.ts +206 -0
- package/src/automation/types.ts +146 -0
- package/src/automation/when.ts +195 -0
- package/src/blocks.ts +249 -0
- package/src/browser.ts +334 -0
- package/src/call.ts +300 -0
- package/src/channelParts.ts +17 -0
- package/src/classes.ts +10 -0
- package/src/client.ts +397 -0
- package/src/conversationFiles.ts +54 -0
- package/src/credentials.ts +158 -0
- package/src/dev.ts +20 -0
- package/src/es.ts +423 -0
- package/src/files.ts +238 -0
- package/src/frames.ts +291 -0
- package/src/icons.tsx +49 -0
- package/src/index.ts +270 -0
- package/src/kit/AudioPlayer.tsx +129 -0
- package/src/kit/Button.tsx +97 -0
- package/src/kit/Card.tsx +47 -0
- package/src/kit/Chart.tsx +129 -0
- package/src/kit/Choices.tsx +131 -0
- package/src/kit/Combobox.tsx +247 -0
- package/src/kit/DateField.tsx +156 -0
- package/src/kit/Field.tsx +137 -0
- package/src/kit/FileField.tsx +492 -0
- package/src/kit/FileMark.tsx +56 -0
- package/src/kit/Inputs.tsx +250 -0
- package/src/kit/List.tsx +135 -0
- package/src/kit/Mark.tsx +64 -0
- package/src/kit/MarkStack.tsx +29 -0
- package/src/kit/Note.tsx +42 -0
- package/src/kit/Popover.tsx +121 -0
- package/src/kit/RangeField.tsx +53 -0
- package/src/kit/RatingField.tsx +62 -0
- package/src/kit/Stat.tsx +60 -0
- package/src/kit/Switch.tsx +28 -0
- package/src/kit/Tag.tsx +32 -0
- package/src/kit/Tile.tsx +74 -0
- package/src/kit/TimeField.tsx +157 -0
- package/src/kit/context.tsx +246 -0
- package/src/kit/dates.ts +150 -0
- package/src/kit/messages.ts +160 -0
- package/src/kit/numbers.ts +44 -0
- package/src/kit/options.ts +30 -0
- package/src/kit/uploads.ts +244 -0
- package/src/kit/waveform.ts +84 -0
- package/src/locale.ts +6 -0
- package/src/markdown.ts +69 -0
- package/src/marks.tsx +328 -0
- package/src/reveal.ts +52 -0
- package/src/stepGlyphs.ts +83 -0
- package/src/styles.css +6961 -0
- package/src/surface/Form.tsx +299 -0
- package/src/surface/Markdown.tsx +55 -0
- package/src/surface/Surface.tsx +605 -0
- package/src/surface/scope.ts +82 -0
- package/src/surface/values.ts +361 -0
- package/src/tint.ts +14 -0
- package/src/types.ts +596 -0
- package/src/useAgentFace.ts +47 -0
- package/src/useCall.ts +292 -0
- package/src/useConversation.ts +627 -0
- package/src/useDictation.ts +83 -0
- package/src/useLive.ts +115 -0
- package/src/usePolled.ts +60 -0
- package/src/voice/Orb.tsx +45 -0
- package/src/voice/StillOrb.tsx +29 -0
- package/src/voice/WebGLOrb.tsx +98 -0
- package/src/voice/fluidDots.tsx +171 -0
- package/src/voice/motion.ts +112 -0
- package/src/voice/orbs.ts +39 -0
- package/src/voice/useReducedMotion.ts +24 -0
- package/src/voice/wave.tsx +129 -0
- package/src/voice/webgl.ts +209 -0
- package/src/widget/css.d.ts +5 -0
- package/src/widget/element.tsx +535 -0
- package/src/widget/index.ts +10 -0
- package/src/widget/mount.ts +27 -0
- package/src/widget/widget.css +253 -0
- package/dist/SignalcoreProvider.d.ts +0 -113
- package/dist/SignalcoreProvider.js +0 -84
- package/dist/automations/AppMarks.d.ts +0 -11
- package/dist/automations/AppMarks.js +0 -18
- package/dist/automations/AutomationCard.d.ts +0 -27
- package/dist/automations/AutomationCard.js +0 -53
- package/dist/automations/AutomationsWindow.d.ts +0 -38
- package/dist/automations/AutomationsWindow.js +0 -57
- package/dist/automations/Card.d.ts +0 -46
- package/dist/automations/Card.js +0 -45
- package/dist/automations/ScheduleMarks.d.ts +0 -13
- package/dist/automations/ScheduleMarks.js +0 -24
- package/dist/automations/presentationIcons.d.ts +0 -7
- package/dist/automations/presentationIcons.js +0 -67
- package/dist/automations/schedule.d.ts +0 -25
- package/dist/automations/schedule.js +0 -59
- package/dist/automations/time.d.ts +0 -3
- package/dist/automations/time.js +0 -25
- package/dist/browser/BrowserView.d.ts +0 -43
- package/dist/browser/BrowserView.js +0 -94
- package/dist/browser/room.d.ts +0 -21
- package/dist/browser/room.js +0 -33
- package/dist/browser/useBrowserSession.d.ts +0 -17
- package/dist/browser/useBrowserSession.js +0 -67
- package/dist/builder/BuilderChat.d.ts +0 -32
- package/dist/builder/BuilderChat.js +0 -41
- package/dist/builder/BuilderTranscript.d.ts +0 -49
- package/dist/builder/BuilderTranscript.js +0 -62
- package/dist/builder/StatusLine.d.ts +0 -8
- package/dist/builder/StatusLine.js +0 -17
- package/dist/builder/answer.d.ts +0 -7
- package/dist/builder/answer.js +0 -8
- package/dist/builder/blocks.d.ts +0 -31
- package/dist/builder/blocks.js +0 -74
- package/dist/builder/items.d.ts +0 -15
- package/dist/builder/items.js +0 -21
- package/dist/builder/steps.d.ts +0 -20
- package/dist/builder/steps.js +0 -120
- package/dist/builder/time.d.ts +0 -4
- package/dist/builder/time.js +0 -24
- package/dist/builder/useBuildSession.d.ts +0 -36
- package/dist/builder/useBuildSession.js +0 -130
- package/dist/builder/workingOn.d.ts +0 -7
- package/dist/builder/workingOn.js +0 -15
- package/dist/chat/AgentChat.d.ts +0 -37
- package/dist/chat/AgentChat.js +0 -21
- package/dist/chat/ChatView.d.ts +0 -25
- package/dist/chat/ChatView.js +0 -34
- package/dist/chat/Composer.d.ts +0 -20
- package/dist/chat/Composer.js +0 -22
- package/dist/chat/MessageRow.d.ts +0 -22
- package/dist/chat/MessageRow.js +0 -32
- package/dist/chat/arrival.d.ts +0 -15
- package/dist/chat/arrival.js +0 -25
- package/dist/chat/history.d.ts +0 -24
- package/dist/chat/history.js +0 -45
- package/dist/chat/moments.d.ts +0 -25
- package/dist/chat/moments.js +0 -72
- package/dist/chat/types.d.ts +0 -12
- package/dist/chat/types.js +0 -1
- package/dist/chat/useComposer.d.ts +0 -46
- package/dist/chat/useComposer.js +0 -62
- package/dist/chat/useConversation.d.ts +0 -35
- package/dist/chat/useConversation.js +0 -71
- package/dist/chat/useStickToBottom.d.ts +0 -9
- package/dist/chat/useStickToBottom.js +0 -33
- package/dist/chat/useTurns.d.ts +0 -49
- package/dist/chat/useTurns.js +0 -111
- package/dist/classes.d.ts +0 -2
- package/dist/development.d.ts +0 -5
- package/dist/development.js +0 -8
- package/dist/flow/FlowWindow.d.ts +0 -42
- package/dist/flow/FlowWindow.js +0 -126
- package/dist/flow/index.d.ts +0 -16
- package/dist/flow/index.js +0 -16
- package/dist/flow/kinds.d.ts +0 -23
- package/dist/flow/kinds.js +0 -48
- package/dist/flow/map.d.ts +0 -44
- package/dist/flow/map.js +0 -225
- package/dist/flow/nodePaths.d.ts +0 -7
- package/dist/flow/nodePaths.js +0 -17
- package/dist/flow/relations.d.ts +0 -42
- package/dist/flow/relations.js +0 -174
- package/dist/host.d.ts +0 -124
- package/dist/host.js +0 -1
- package/dist/live/LiveView.d.ts +0 -28
- package/dist/live/LiveView.js +0 -55
- package/dist/live/capture.d.ts +0 -20
- package/dist/live/capture.js +0 -100
- package/dist/live/follow.d.ts +0 -26
- package/dist/live/follow.js +0 -72
- package/dist/live/paint.d.ts +0 -13
- package/dist/live/paint.js +0 -77
- package/dist/live/useLiveStream.d.ts +0 -16
- package/dist/live/useLiveStream.js +0 -57
- package/dist/look.d.ts +0 -33
- package/dist/look.js +0 -241
- package/dist/messages/en.d.ts +0 -3
- package/dist/messages/en.js +0 -251
- package/dist/messages/es.d.ts +0 -3
- package/dist/messages/es.js +0 -251
- package/dist/messages/index.d.ts +0 -16
- package/dist/messages/index.js +0 -33
- package/dist/messages/types.d.ts +0 -246
- package/dist/messages/types.js +0 -1
- package/dist/parts/Button.d.ts +0 -18
- package/dist/parts/Button.js +0 -17
- package/dist/parts/Icon.d.ts +0 -39
- package/dist/parts/Icon.js +0 -37
- package/dist/parts/Input.d.ts +0 -6
- package/dist/parts/Input.js +0 -11
- package/dist/parts/Spinner.d.ts +0 -2
- package/dist/parts/Spinner.js +0 -7
- package/dist/patterns.d.ts +0 -15
- package/dist/patterns.js +0 -5
- package/dist/presets.d.ts +0 -82
- package/dist/presets.js +0 -81
- package/dist/primitives.d.ts +0 -22
- package/dist/primitives.js +0 -58
- package/dist/request/RequestCard.d.ts +0 -34
- package/dist/request/RequestCard.js +0 -101
- package/dist/request/approval/ApprovalPreview.d.ts +0 -5
- package/dist/request/approval/ApprovalPreview.js +0 -27
- package/dist/request/approval/shapes.d.ts +0 -32
- package/dist/request/approval/shapes.js +0 -68
- package/dist/request/apps.d.ts +0 -11
- package/dist/request/apps.js +0 -27
- package/dist/request/cards.d.ts +0 -12
- package/dist/request/cards.js +0 -24
- package/dist/request/deliver.d.ts +0 -12
- package/dist/request/deliver.js +0 -21
- package/dist/request/handOver.d.ts +0 -18
- package/dist/request/handOver.js +0 -33
- package/dist/request/kinds/Approval.d.ts +0 -3
- package/dist/request/kinds/Approval.js +0 -9
- package/dist/request/kinds/Choice.d.ts +0 -3
- package/dist/request/kinds/Choice.js +0 -8
- package/dist/request/kinds/Connect.d.ts +0 -9
- package/dist/request/kinds/Connect.js +0 -119
- package/dist/request/kinds/FreeText.d.ts +0 -3
- package/dist/request/kinds/FreeText.js +0 -20
- package/dist/request/kinds/HandOver.d.ts +0 -13
- package/dist/request/kinds/HandOver.js +0 -20
- package/dist/request/kinds/Secret.d.ts +0 -7
- package/dist/request/kinds/Secret.js +0 -49
- package/dist/request/kinds/Upload.d.ts +0 -6
- package/dist/request/kinds/Upload.js +0 -47
- package/dist/request/types.d.ts +0 -83
- package/dist/request/types.js +0 -1
- package/dist/safeUrl.d.ts +0 -6
- package/dist/safeUrl.js +0 -8
- package/dist/stream/builder.d.ts +0 -176
- package/dist/stream/builder.js +0 -202
- package/dist/stream/reduce.d.ts +0 -51
- package/dist/stream/reduce.js +0 -58
- package/dist/stream/untilAborted.d.ts +0 -7
- package/dist/stream/untilAborted.js +0 -32
- package/dist/stream/useRunStream.d.ts +0 -26
- package/dist/stream/useRunStream.js +0 -137
- package/dist/styles.css +0 -2318
- package/dist/surface/HostNode.d.ts +0 -14
- package/dist/surface/HostNode.js +0 -30
- package/dist/surface/Node.d.ts +0 -7
- package/dist/surface/Node.js +0 -49
- package/dist/surface/SurfaceBoundary.d.ts +0 -26
- package/dist/surface/SurfaceBoundary.js +0 -20
- package/dist/surface/bindings.d.ts +0 -14
- package/dist/surface/bindings.js +0 -37
- package/dist/surface/check.d.ts +0 -27
- package/dist/surface/check.js +0 -102
- package/dist/surface/format.d.ts +0 -10
- package/dist/surface/format.js +0 -32
- package/dist/surface/hosts.d.ts +0 -6
- package/dist/surface/hosts.js +0 -11
- package/dist/surface/scene.d.ts +0 -21
- package/dist/surface/scene.js +0 -8
- package/dist/surface/templates/Browser.d.ts +0 -6
- package/dist/surface/templates/Browser.js +0 -11
- package/dist/surface/templates/Chart.d.ts +0 -6
- package/dist/surface/templates/Chart.js +0 -13
- package/dist/surface/templates/Choices.d.ts +0 -3
- package/dist/surface/templates/Choices.js +0 -12
- package/dist/surface/templates/Form.d.ts +0 -3
- package/dist/surface/templates/Form.js +0 -44
- package/dist/surface/templates/KeyValue.d.ts +0 -3
- package/dist/surface/templates/KeyValue.js +0 -7
- package/dist/surface/templates/Layout.d.ts +0 -5
- package/dist/surface/templates/Layout.js +0 -16
- package/dist/surface/templates/Live.d.ts +0 -6
- package/dist/surface/templates/Live.js +0 -9
- package/dist/surface/templates/Media.d.ts +0 -5
- package/dist/surface/templates/Media.js +0 -13
- package/dist/surface/templates/Slots.d.ts +0 -3
- package/dist/surface/templates/Slots.js +0 -19
- package/dist/surface/templates/Table.d.ts +0 -3
- package/dist/surface/templates/Table.js +0 -12
- package/dist/surface/templates/Text.d.ts +0 -4
- package/dist/surface/templates/Text.js +0 -15
- package/dist/surface/templates/index.d.ts +0 -7
- package/dist/surface/templates/index.js +0 -32
- package/dist/surface/types.d.ts +0 -68
- package/dist/surface/types.js +0 -6
- package/dist/theme.d.ts +0 -62
- package/dist/theme.js +0 -9
- package/dist/useTokens.d.ts +0 -7
- package/dist/useTokens.js +0 -41
- package/dist/voice/VoiceWindow.d.ts +0 -18
- package/dist/voice/VoiceWindow.js +0 -35
- package/dist/voice/index.d.ts +0 -13
- package/dist/voice/index.js +0 -12
- package/dist/voice/meter.d.ts +0 -16
- package/dist/voice/meter.js +0 -52
- package/dist/voice/orbColors.d.ts +0 -16
- package/dist/voice/orbColors.js +0 -75
- package/dist/voice/pushable.d.ts +0 -16
- package/dist/voice/pushable.js +0 -56
- package/dist/voice/useDictation.d.ts +0 -24
- package/dist/voice/useDictation.js +0 -60
- package/dist/voice/useReducedMotion.d.ts +0 -5
- package/dist/voice/useVoice.d.ts +0 -70
- package/dist/voice/useVoice.js +0 -197
- package/dist/voice/useVoicePrimitives.d.ts +0 -7
- package/dist/voice/useVoicePrimitives.js +0 -11
- package/dist/voice/voice.d.ts +0 -55
- package/dist/voice/voice.js +0 -9
- package/dist/voice/webSpeech.d.ts +0 -33
- package/dist/voice/webSpeech.js +0 -258
- package/dist/widget.js.map +0 -1
- package/dist/windows/AgentSpace.d.ts +0 -78
- package/dist/windows/AgentSpace.js +0 -135
- package/dist/windows/Captions.d.ts +0 -13
- package/dist/windows/Captions.js +0 -22
- package/dist/windows/Dock.d.ts +0 -37
- package/dist/windows/Dock.js +0 -22
- package/dist/windows/Journal.d.ts +0 -15
- package/dist/windows/Journal.js +0 -19
- package/dist/windows/KindMark.d.ts +0 -7
- package/dist/windows/KindMark.js +0 -31
- package/dist/windows/Pending.d.ts +0 -8
- package/dist/windows/Pending.js +0 -17
- package/dist/windows/Stage.d.ts +0 -18
- package/dist/windows/Stage.js +0 -21
- package/dist/windows/StatusLabel.d.ts +0 -9
- package/dist/windows/StatusLabel.js +0 -7
- package/dist/windows/Strip.d.ts +0 -17
- package/dist/windows/Strip.js +0 -42
- package/dist/windows/SurfaceWindow.d.ts +0 -20
- package/dist/windows/SurfaceWindow.js +0 -12
- package/dist/windows/WindowFrame.d.ts +0 -23
- package/dist/windows/WindowFrame.js +0 -22
- package/dist/windows/hearing.d.ts +0 -11
- package/dist/windows/hearing.js +0 -26
- package/dist/windows/kinds.d.ts +0 -47
- package/dist/windows/kinds.js +0 -28
- package/dist/windows/reduce.d.ts +0 -98
- package/dist/windows/reduce.js +0 -151
- package/dist/windows/registry.d.ts +0 -18
- package/dist/windows/registry.js +0 -61
- package/dist/windows/reveal.d.ts +0 -9
- package/dist/windows/reveal.js +0 -6
- package/dist/windows/space.d.ts +0 -21
- package/dist/windows/space.js +0 -6
- package/dist/windows/status.d.ts +0 -11
- package/dist/windows/status.js +0 -30
- package/dist/windows/types.d.ts +0 -15
- package/dist/windows/types.js +0 -1
- package/dist/windows/useLoaded.d.ts +0 -44
- package/dist/windows/useLoaded.js +0 -58
- package/dist/windows/useUnread.d.ts +0 -7
- package/dist/windows/useUnread.js +0 -21
- package/dist/windows/useWindows.d.ts +0 -70
- package/dist/windows/useWindows.js +0 -60
package/dist/widget.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"widget.js","names":["WINDOW_TITLES","Browser","Live","Browser","Live","host","createRoot","styles","useSyncExternalStore","Context","createContext","useMemo","useContext","Input","useState","useRef","Card","TextInput","useMemo","createContext","useContext","follow","begin","useState","useRef","follow","useCallback","useRef","createContext","useContext","useState","useState","_Fragment","useState","Image","Image","Node","Component","useMemo","Node","begin","reduce","createContext","useContext","memo","useRef","useState","useMemo","_Fragment","useReducer","useState","useRef","useCallback","useState","useRef","useCallback","useMemo","Unavailable","HOST_STYLE","_Fragment","createContext","useContext","useMemo","useId","useRef","_Fragment","useState","useReducer","reduce","begin","useCallback","useMemo","useState","useMemo","useCallback","useRef","__commonJSMin","mod","cb","require_scheduler_production","push","index","heap","node","parentIndex","parent","compare","peek","pop","first","last","length","halfLength","leftIndex","left","rightIndex","right","diff","a","b","localPerformance","localDate","initialTime","taskQueue","timerQueue","taskIdCounter","currentTask","currentPriorityLevel","isPerformingWork","isHostCallbackScheduled","isHostTimeoutScheduled","needsPaint","localSetTimeout","localClearTimeout","localSetImmediate","advanceTimers","timer","currentTime","handleTimeout","isMessageLoopRunning","schedulePerformWorkUntilDeadline","firstTimer","requestHostTimeout","taskTimeoutID","frameInterval","startTime","shouldYieldToHost","performWorkUntilDeadline","exports","hasMoreWork","previousPriorityLevel","callback","continuationCallback","channel","port","ms","fps","priorityLevel","eventHandler","options","timeout","parentPriorityLevel","require_scheduler","require_react_production","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_ACTIVITY_TYPE","REACT_VIEW_TRANSITION_TYPE","MAYBE_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","ReactNoopUpdateQueue","assign","emptyObject","Component","props","context","updater","partialState","ComponentDummy","PureComponent","pureComponentPrototype","isArrayImpl","noop","ReactSharedInternals","hasOwnProperty","ReactElement","refProp","cloneAndReplaceKey","oldElement","newKey","isValidElement","object","escape","escaperLookup","key","match","userProvidedKeyEscapeRegex","getElementKey","element","resolveThenable","thenable","fulfilledValue","error","mapIntoArray","type","children","invokeCallback","array","escapedPrefix","nameSoFar","c","nextNamePrefix","i","mapChildren","result","count","func","child","lazyInitializer","payload","ctor","moduleObject","reportGlobalError","event","startTransition","prevTransition","currentTransition","returnValue","scope","onStartTransitionFinish","addTransitionType","transition","transitionTypes","Children","forEachFunc","forEachContext","n","size","fn","config","propName","childArray","defaultValue","childrenLength","usable","action","initialState","permalink","deps","Context","value","initialValue","create","ref","passthrough","reducer","initialArg","init","subscribe","getSnapshot","getServerSnapshot","require_react","require_react_dom_production","React","formatProdErrorMessage","url","code","Internals","REACT_RECOVERABLE_TYPE","REACT_OPTIMISTIC_KEY","createPortal$1","getCrossOriginStringAs","as","input","reason","container","previousTransition","previousUpdatePriority","href","crossOrigin","integrity","fetchPriority","form","require_react_dom","checkDCE","err","require_react_dom_client_production","Scheduler","ReactDOM","isValidContainer","getNearestMountedFiber","fiber","nextNode","getSuspenseInstanceFromFiber","suspenseState","getActivityInstanceFromFiber","activityState","assertIsMounted","findCurrentFiberUsingSlowPath","alternate","parentA","parentB","didFindChild","child$0","findCurrentHostFiberImpl","tag","traverseVisibleInstancesAndTextInstances","searchWithinHosts","getFragmentParentInstanceOrContainerFiber","fiberIsPortaledIntoHost","foundPortalParent","getFragmentInstanceOrTextInstanceSiblings","parentHostFiber","findFragmentInstanceOrTextInstanceSiblings","self","state","getInstanceFromHostFiber","searchTarget","searchBoundary","isFiberPrecedingCheck","boundary","target","isFiberFollowingCheck","getParentForFragmentAncestors","inst","getLowestCommonAncestor","depthA","tempA","instA","getParent","tempB","instB","REACT_LEGACY_ELEMENT_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_LEGACY_HIDDEN_TYPE","REACT_MEMO_CACHE_SENTINEL","REACT_CLIENT_REFERENCE","getComponentNameFromType","innerType","ReactDOMSharedInternals","sharedNotPendingObject","valueStack","createCursor","cursor","contextStackCursor","contextFiberStackCursor","rootInstanceStackCursor","hostTransitionProviderCursor","pushHostContainer","nextRootInstance","getOwnHostContext","getChildHostContextProd","popHostContainer","pushHostContext","stateHook","JSCompiler_inline_result","popHostContext","prefix","suffix","describeBuiltInComponentFrame","x","name","reentry","describeNativeComponentFrame","previousPrepareStackTrace","RunInRootFrame","construct","Fake","control","x$1","prevProps","x$2","sample","namePropDescriptor","_RunInRootFrame$Deter","sampleStack","controlStack","sampleLines","controlLines","frame","describeFiber","childFiber","getStackByFiberInDevAndProd","info","previous","workInProgress","scheduleCallback$3","cancelCallback$1","shouldYield","requestPaint","now","getCurrentPriorityLevel","ImmediatePriority","UserBlockingPriority","NormalPriority$1","LowPriority","IdlePriority","log$1","unstable_setDisableYieldValue","rendererID","injectedHook","setIsStrictModeForDevtools","newIsStrictMode","clz32","clz32Fallback","log","LN2","nextTransitionUpdateLane","nextTransitionDeferredLane","nextRetryLane","getHighestPriorityLanes","pendingSyncLanes","lanes","getNextLanes","pendingLanes","root","nextLanes","suspendedLanes","pingedLanes","nonIdlePendingLanes","rootHasPendingCommit","wipLanes","checkIfRootIsPrerendering","renderLanes","getEntangledLanes","allEntangledLanes","index$4","lane","computeExpirationTime","claimNextRetryLane","createLaneMap","laneMap","initial","markRootUpdated$1","updateLane","markRootFinished","previouslyPendingLanes","remainingLanes","entanglements","expirationTimes","hiddenUpdates","index$7","hiddenUpdatesForLane","update","spawnedLane","markSpawnedDeferredLane","suspendedRetryLanes","updatedLanes","finishedLanes","spawnedLaneIndex","entangledLanes","markRootEntangled","rootEntangledLanes","index$8","getBumpedLaneForHydration","renderLane","getBumpedLaneForHydrationByLane","lanesToEventPriority","resolveUpdatePriority","updatePriority","getEventPriority","runWithPriority","previousPriority","priority","randomKey","internalInstanceKey","internalPropsKey","internalContainerInstanceKey","internalEventHandlersKey","internalEventHandlerListenersKey","internalEventHandlesSetKey","internalRootNodeResourcesKey","internalHoistableMarker","internalLoadPendingKey","detachDeletedInstance","getClosestInstanceFromNode","targetInst","targetNode","parentNode","getParentHydrationBoundary","getInstanceFromNode","getNodeFromInstance","getResourcesFromRoot","resources","markNodeAsHoistable","clearPendingLoadOnNode","allNativeEvents","registrationNameDependencies","registerTwoPhaseEvent","registerDirectEvent","registrationName","dependencies","VALID_ATTRIBUTE_NAME_REGEX","illegalAttributeNameCache","validatedAttributeNameCache","isAttributeNameSafe","attributeName","viewTransitionMutationContext","pushMutationContext","prev","setValueForAttribute","prefix$10","setValueForKnownAttribute","setValueForNamespacedAttribute","namespace","getToStringValue","isCheckable","elem","trackValueOnNode","descriptor","valueField","get","set","currentValue","track","updateValueIfChanged","tracker","lastValue","escapeSelectorAttributeValueInsideDoubleQuotesRegex","escapeSelectorAttributeValueInsideDoubleQuotes","ch","updateInput","lastDefaultValue","setDefaultValue","checked","defaultChecked","initInput","isHydrating","updateOptions","multiple","propValue","setDefaultSelected","updateTextarea","initTextarea","setTextContent","text","firstChild","unitlessNumbers","setValueForStyle","isCustomProperty","styleName","style","setValueForStyles","styles","prevStyles","styleName$16","styleName$17","isCustomElement","tagName","aliases","isJavaScriptProtocol","sanitizeURL","noop$1","currentReplayingEvent","getEventTarget","nativeEvent","restoreTarget","restoreQueue","restoreStateOfTarget","internalInstance","otherNode","otherProps","isInsideEventHandler","batchedUpdates$1","flushSyncWork$1","getListener","stateNode","canUseDOM","passiveBrowserEventsSupported","startText","fallbackText","getData","start","startValue","startLength","end","endValue","endLength","minEnd","getEventCharCode","keyCode","functionThatReturnsTrue","functionThatReturnsFalse","createSyntheticEvent","SyntheticBaseEvent","reactName","reactEventType","nativeEventTarget","Interface","EventInterface","SyntheticEvent","UIEventInterface","SyntheticUIEvent","lastMovementX","lastMovementY","lastMouseEvent","MouseEventInterface","getEventModifierState","SyntheticMouseEvent","SyntheticDragEvent","SyntheticFocusEvent","SyntheticAnimationEvent","SyntheticClipboardEvent","SyntheticCompositionEvent","normalizeKey","translateToKey","modifierKeyToProp","modifierStateGetter","keyArg","SyntheticKeyboardEvent","SyntheticPointerEvent","SyntheticSubmitEvent","SyntheticTouchEvent","SyntheticTransitionEvent","SyntheticWheelEvent","SyntheticToggleEvent","END_KEYCODES","canUseCompositionEvent","documentMode","canUseTextInputEvent","useFallbackCompositionData","SPACEBAR_CHAR","hasSpaceKeypress","isFallbackCompositionEnd","domEventName","getDataFromCustomEvent","isComposing","getNativeBeforeInputChars","getFallbackBeforeInputChars","supportedInputTypes","isTextInputElement","nodeName","createAndAccumulateChangeEvent","accumulateTwoPhaseListeners","dispatchQueue","activeElement$1","activeElementInst$1","runEventInBatch","processDispatchQueue","getInstIfValueChanged","getTargetInstForChangeEvent","isInputEventSupported","JSCompiler_inline_result$jscomp$318","isSupported$jscomp$inline_474","element$jscomp$inline_475","stopWatchingForValueChange","handlePropertyChange","handleEventsForInputEventPolyfill","getTargetInstForInputEventPolyfill","getTargetInstForClickEvent","getTargetInstForInputOrChangeEvent","is","y","objectIs","shallowEqual","objA","objB","keysA","keysB","currentKey","getActiveElement","doc","getLeafNode","getNodeForCharacterOffset","nodeEnd","offset","containsNode","outerNode","innerNode","getActiveElementDeep","containerInfo","hasSelectionCapabilities","skipSelectionChangeEvent","activeElement","activeElementInst","lastSelection","mouseDown","constructSelectEvent","makePrefixMap","prefixes","styleProp","eventName","vendorPrefixes","prefixedEventNames","getVendorPrefixedEventName","prefixMap","ANIMATION_END","ANIMATION_ITERATION","ANIMATION_START","TRANSITION_RUN","TRANSITION_START","TRANSITION_CANCEL","TRANSITION_END","topLevelEventsToReactNames","simpleEventPluginEvents","registerSimpleEvent","globalClientIdCounter$1","getViewTransitionName","instance","pendingEffectsRoot","globalClientId","getClassNameByType","classByType","className","activeTypes","pendingTransitionTypes","getViewTransitionClassName","defaultClass","eventClass","concurrentQueues","concurrentQueuesIndex","concurrentlyUpdatedLanes","finishQueueingConcurrentUpdates","endIndex","queue","pending","markUpdateLaneFromFiberToRoot","enqueueUpdate$1","enqueueConcurrentHookUpdate","getRootForUpdatedFiber","enqueueConcurrentRenderForLane","sourceFiber","isHidden","nestedUpdateCount","emptyContextObject","FiberNode","pendingProps","mode","createFiberImplClass","shouldConstruct","createWorkInProgress","current","resetWorkInProgress","createFiberFromTypeAndProps","fiberTag","owner","isHostHoistableType","createFiberFromFragment","elements","createFiberFromText","content","createFiberFromDehydratedFragment","dehydratedNode","createFiberFromPortal","portal","CapturedStacks","createCapturedValueAtFiber","existing","source","forkStack","forkStackIndex","treeForkProvider","treeForkCount","idStack","idStackIndex","treeContextProvider","treeContextId","treeContextOverflow","pushTreeFork","totalChildren","pushTreeId","baseIdWithLeadingBit","baseLength","numberOfOverflowBits","pushMaterializedTreeId","popTreeContext","restoreSuspendedTreeContext","suspendedContext","hydrationParentFiber","nextHydratableInstance","hydrationErrors","rootOrSingletonContext","HydrationMismatchException","throwOnHydrationMismatch","queueHydrationError","prepareToHydrateHostInstance","listenToNonDelegatedEvent","mediaEventTypes","checkForUnmatchedText","popToNextHostParent","popHydrationState","JSCompiler_temp","shouldSetTextContent","getNextHydratableInstanceAfterHydrationBoundary","isSingletonScope","previousHydratableOnEnteringScopedSingleton","getNextHydratable","resetHydrationState","upgradeHydrationErrorsToRecoverable","queuedErrors","workInProgressRootRecoverableErrors","valueCursor","currentlyRenderingFiber$1","lastContextDependency","pushProvider","nextValue","popProvider","scheduleContextWorkOnParentPath","propagationRoot","propagateContextChanges","list","nextFiber","dependency","contexts","forcePropagateEntireTree","propagateParentContextChanges","isInsidePropagationBailout","currentParent","HostTransitionContext","checkIfContextChanged","currentDependencies","prepareToReadContext","readContext","readContextForConsumer","readContextDuringReconciliation","consumer","AbortControllerLocal","listeners","signal","listener","scheduleCallback$2","NormalPriority","CacheContext","createCache","releaseCache","cache","queueTransitionTypes","queued","transitionType","entangledTransitionTypes","claimQueuedTransitionTypes","claimed","currentEntangledListeners","currentEntangledPendingCount","currentEntangledLane","currentEntangledActionThenable","entangleAsyncAction","entangledListeners","requestTransitionLane","resolve","pingEngtangledActionScope","chainThenableValue","thenableWithOverride","prevOnStartTransitionFinish","root$28","firstScheduledRoot","root$29","resumedCache","peekCacheFromPool","cacheResumedFromPreviousRender","workInProgressRoot","pushTransition","prevCachePool","getSuspendedCache","cacheFromPool","SuspenseException","SuspenseyCommitException","SuspenseActionException","noopSuspenseyCommitThenable","isThenableResolved","trackUsedThenable","thenableState","checkIfUseWrappedInAsyncCatch","fulfilledThenable","rejectedThenable","resolveLazy","lazyType","suspendedThenable","getSuspendedThenable","rejectedReason","thenableState$1","thenableIndexCounter$1","unwrapThenable","coerceRef","throwOnInvalidObjectTypeImpl","newChild","returnFiber","createChildReconciler","deleteChild","shouldTrackSideEffects","deletions","childToDelete","deleteRemainingChildren","currentFirstChild","mapRemainingChildren","existingChildren","useFiber","placeChild","newIndex","newFiber","lastPlacedIndex","placeSingleChild","updateTextNode","textContent","updateElement","elementType","updateFragment","updatePortal","fragment","createChild","updateSlot","oldFiber","updateFromMap","newIdx","reconcileChildrenArray","resultingFirstChild","previousNewFiber","nextOldFiber","newChildren","reconcileChildrenIterator","step","reconcileChildFibersImpl","firstChildFiber","reconcileChildFibers","mountChildFibers","hasForceUpdate","initializeUpdateQueue","cloneUpdateQueue","createUpdate","enqueueUpdate","updateQueue","executionContext","entangleTransitions","queueLanes","enqueueCapturedUpdate","newFirst","newLast","clone","capturedUpdate","didReadFromEntangledAsyncAction","suspendIfUpdateReadFromEntangledAsyncAction","entangledActionThenable","processUpdateQueue","workInProgress$jscomp$0","firstBaseUpdate","lastBaseUpdate","pendingQueue","lastPendingUpdate","firstPendingUpdate","newState","isHiddenUpdate","workInProgressRootRenderLanes","instance$jscomp$0","callCallback","commitCallbacks","callbacks","currentTreeHiddenStackCursor","prevEntangledRenderLanesCursor","pushHiddenContext","entangledRenderLanes","reuseHiddenContextOnStack","popHiddenContext","suspenseHandlerStackCursor","shellBoundary","pushPrimaryTreeSuspenseHandler","handler","suspenseStackCursor","pushDehydratedActivitySuspenseHandler","pushOffscreenSuspenseHandler","reuseSuspenseHandlerOnStack","popSuspenseHandler","pushSuspenseListContext","newContext","popSuspenseListContext","findFirstSuspended","row","isSuspenseInstancePending","isSuspenseInstanceFallback","currentlyRenderingFiber","currentHook","workInProgressHook","didScheduleRenderPhaseUpdate","didScheduleRenderPhaseUpdateDuringThisPass","shouldDoubleInvokeUserFnsInHooksDEV","localIdCounter","thenableIndexCounter","globalClientIdCounter","throwInvalidHookError","areHookInputsEqual","prevDeps","nextDeps","renderWithHooks","nextRenderLanes","HooksDispatcherOnMount","HooksDispatcherOnUpdate","secondArg","renderWithHooksAgain","finishRenderingHooks","ContextOnlyDispatcher","didRenderTooFewHooks","didReceiveUpdate","numberOfReRenders","HooksDispatcherOnRerender","TransitionAwareHostComponent","dispatcher","maybeThenable","useThenable","checkDidRenderIdHook","didRenderIdHook","bailoutHooks","resetHooksOnUnwind","mountWorkInProgressHook","hook","updateWorkInProgressHook","nextCurrentHook","nextWorkInProgressHook","createFunctionComponentUpdateQueue","use","useMemoCache","memoCache","basicStateReducer","updateReducer","updateReducerImpl","baseQueue","baseFirst","newBaseQueueFirst","newBaseQueueLast","didReadFromEntangledAsyncAction$64","revertLane","rerenderReducer","dispatch","lastRenderPhaseUpdate","updateSyncExternalStore","isHydrating$jscomp$0","snapshotChanged","updateEffect","subscribeToStore","pushSimpleEffect","updateStoreInstance","pushStoreConsistencyCheck","renderedSnapshot","nextSnapshot","checkIfSnapshotChanged","forceStoreRerender","latestGetSnapshot","scheduleUpdateOnFiber","mountStateImpl","initialStateInitializer","updateOptimisticImpl","dispatchActionState","isRenderPhaseUpdate","actionQueue","actionNode","setPendingState","setState","runActionStateAction","prevState","handleActionReturnValue","onActionError","error$70","onActionSuccess","nextState","notifyActionListeners","actionStateReducer","mountActionState","ssrFormState","JSCompiler_inline_result$jscomp$0","inRootOrSingleton","initialStateProp","dispatchSetState","dispatchOptimisticSetState","updateActionState","updateActionStateImpl","currentStateHook","actionStateActionEffect","rerenderActionState","updateRef","mountEffectImpl","fiberFlags","hookFlags","updateEffectImpl","mountEffect","useEffectEventImpl","componentUpdateQueue","events","updateEvent","updateInsertionEffect","updateLayoutEffect","imperativeHandleEffect","refCleanup","updateImperativeHandle","mountDebugValue","updateCallback","updateMemo","nextCreate","mountDeferredValueImpl","requestDeferredLane","updateDeferredValueImpl","prevValue","pendingState","dispatchSetStateInternal","finishedState","requestUpdateLane","startHostTransition","formFiber","ensureFormComponentIsStateful","requestFormReset$1","formData","existingStateHook","initialResetState","useHostTransitionStatus","updateId","updateRefresh","refreshCache","provider","root$73","dispatchReducerAction","enqueueRenderPhaseUpdate","entangleTransitionUpdate","currentState","eagerState","throwIfDuringRender","identifierPrefix","idWithLeadingBit","booleanOrThenable","applyDerivedStateFromProps","getDerivedStateFromProps","nextProps","classComponentUpdater","checkShouldComponentUpdate","newProps","nextContext","oldProps","oldState","callComponentWillReceiveProps","resolveClassComponentProps","baseProps","propName$77","defaultOnUncaughtError","defaultOnCaughtError","defaultOnRecoverableError","logUncaughtError","onUncaughtError","errorInfo","e$78","logCaughtError","onCaughtError","e$79","createRootErrorUpdate","createClassErrorUpdate","initializeClassErrorUpdate","getDerivedStateFromError","legacyErrorBoundariesThatAlreadyFailed","stack","throwException","rootRenderLanes","renderDidSuspendDelayIfPossible","workInProgressRootExitStatus","attachPingListener","wrapperError","workInProgressRootConcurrentErrors","SelectiveHydrationException","reconcileChildren","nextChildren","updateForwardRef","propsWithoutRef","bailoutOnAlreadyFinishedWork","updateMemoComponent","updateSimpleMemoComponent","checkScheduledUpdateOrContext","updateFunctionComponent","updateOffscreenComponent","deferHiddenOffscreenComponent","bailoutOffscreenComponent","nextBaseLanes","remainingChildLanes","mountActivityChildren","mountWorkInProgressOffscreenFiber","retryActivityComponentWithoutHydrating","updateActivityComponent","didSuspend","canHydrateHydrationBoundary","dehydrated","markRef","replayFunctionComponent","updateClassComponent","contextType","unresolvedOldProps","oldContext","contextType$jscomp$0","mountHostRootWithoutHydrating","SUSPENDED_MARKER","mountSuspenseOffscreenState","getRemainingWorkInPrimaryTree","primaryTreeDidDefer","workInProgressDeferredLane","updateSuspenseComponent","showFallback","mountSuspensePrimaryChildren","dehydrated$96","updateDehydratedSuspenseComponent","primaryChildren","offscreenProps","retrySuspenseComponentWithoutHydrating","suspenseInstance","didPrimaryChildrenDefer","digest","scheduleSuspenseWorkOnFiber","findLastContentRow","lastContentRow","currentRow","initSuspenseListRenderState","renderState","isBackwards","tail","tailMode","reverseChildren","nextRow","updateSuspenseListComponent","revealOrder","suspenseContext","shouldForceFallback","updateContextProvider","attemptEarlyBailoutIfNoScheduledUpdate","state$108","primaryChildLanes","beginWork","$$typeof","getResource","createHoistableInstance","resolveSingletonInstance","canHydrateInstance","canHydrateTextInstance","markUpdate","preloadInstanceAndSuspendIfNeeded","maySuspendCommit","shouldRemainOnPreviousScreen","preloadResourceAndSuspendIfNeeded","resource","preloadResource","scheduleRetryEffect","retryQueue","cutOffTailIfNeeded","tailNode","lastTailNode","hasRenderedATailFallback","bubbleProperties","didBailout","completedWork","newChildLanes","subtreeFlags","child$113","completeWork","nextResource","ownerDocument","getOwnerDocumentFromRootContainer","setInitialProperties","listenToAllSupportedEvents","workInProgressRootRenderTargetTime","unwindWork","unwindInterruptedWork","interruptedWork","commitHookEffectListMount","finishedWork","lastEffect","firstEffect","flags","captureCommitPhaseError","commitHookEffectListUnmount","destroy","nearestMountedAncestor","nearestMountedAncestor$jscomp$0","destroy_","commitClassCallbacks","safelyCallComponentWillUnmount","safelyAttachRef","instanceToUse","createViewTransitionInstance","fragmentInstance","FragmentInstance","addFragmentHandleToFiber","safelyDetachRef","error$148","commitNewChildToFragmentInstances","parentFragmentInstances","commitNewChildToFragmentInstance","commitFragmentInstanceInsertionEffects","isFragmentInstanceParent","commitFragmentInstanceDeletionEffects","deleteChildFromFragmentInstance","isFragmentInstanceHostBoundary","commitHostMount","commitHostUpdate","domElement","updateProperties","isHostParent","getHostSibling","insertOrAppendPlacementNodeIntoContainer","before","insertOrAppendPlacementNode","commitHostSingletonAcquisition","singleton","attributes","shouldStartViewTransition","appearingViewTransitions","trackEnterViewTransitions","placement","viewTransitionCancelableChildren","pushViewTransitionCancelableScope","prevChildren","viewTransitionHostInstanceIdx","applyViewTransitionToHostInstances","applyViewTransitionToHostInstancesRecursive","collectMeasurements","stopAtNestedViewTransitions","inViewport","measurement","measureInstance","applyViewTransitionName","restoreViewTransitionOnHostInstances","restoreViewTransitionName","commitAppearingPairViewTransitions","commitEnterViewTransitions","gesture","scheduleViewTransitionEvent","commitDeletedPairViewTransitions","pairs","deletion","pair","commitExitViewTransitions","commitNestedViewTransitions","changedParent","restorePairedViewTransitions","restoreEnterOrExitViewTransitions","restoreNestedViewTransitions","measureViewTransitionHostInstancesRecursive","previousMeasurements","previousMeasurement","nextMeasurement","parentViewTransition","newRect","newName","oldName","measureNestedViewTransitions","measureClonedInstance","offscreenSubtreeIsHidden","offscreenSubtreeWasHidden","offscreenDirectParentIsHidden","needsFormReset","PossiblyWeakSet","nextEffect","viewTransitionContextChanged","inUpdateViewTransition","rootViewTransitionAffected","rootViewTransitionNameCanceled","commitBeforeMutationEffects","_enabled","selection","anchorOffset","focusNode","indexWithinAnchor","indexWithinFocus","next","committedLanes","commitBeforeMutationEffects_complete","isViewTransitionEligible","isViewTransitionEligible$jscomp$0","resolvedPrevProps","clearContainerSparingly","commitLayoutEffectOnFiber","recursivelyTraverseLayoutEffects","finishedRoot","error$146","commitActivityHydrationCallbacks","commitSuspenseHydrationCallbacks","retryDehydratedSuspenseBoundary","registerSuspenseInstanceRetry","newOffscreenSubtreeWasHidden","recursivelyTraverseReappearLayoutEffects","hideOrUnhideAllChildren","parentFiber","hideOrUnhideAllChildrenOnFiber","display","hideOrUnhideNearestPortals","instance$jscomp$1","hideOrUnhideDehydratedBoundary","isHidden$jscomp$0","detachFiberAfterEffects","hostParent","hostParentIsContainer","recursivelyTraverseDeletionEffects","commitDeletionEffectsOnFiber","deletedFiber","prevHostParent","prevHostParentIsContainer","releaseSingletonInstance","clearHydrationBoundary","retryIfBlockedOn","getRetryCache","retryCache","attachSuspenseRetryListeners","wakeables","wakeable","retry","resolveRetryWakeable","recursivelyTraverseMutationEffects","root$jscomp$0","commitMutationEffectsOnFiber","currentHoistableRoot","ii","_eventPayloads$ii2","commitReconciliationEffects","getHydratableHoistableCache","mountHoistable","acquireResource","getHoistableRoot","recursivelyResetForms","prevOffscreenSubtreeIsHidden","prevOffscreenSubtreeWasHidden","prevOffscreenDirectParentIsHidden$166","recursivelyTraverseDisappearLayoutEffects","hostParentFiber","parent$jscomp$0","parent$149","parent$151","recursivelyTraverseAfterMutationEffects","commitAfterMutationEffectsOnFiber","layoutEffectTraversalFlags","layoutEffectTraversalFlags$jscomp$0","finishedRoot$jscomp$0","includeWorkInProgressEffects","hiddenCallbacks","commitOffscreenPassiveMountEffects","previousCache","commitCachePassiveMountEffect","recursivelyTraversePassiveMountEffects","commitPassiveMountOnFiber","committedTransitions","_finishedWork$memoize2","id","onPostCommit","recursivelyTraverseReconnectPassiveEffects","recursivelyTraverseAtomicPassiveEffects","committedLanes$jscomp$0","committedTransitions$jscomp$0","suspenseyCommitFlag","recursivelyAccumulateSuspenseyCommit","accumulateSuspenseyCommitOnFiber","suspendedState","suspendInstance","suspendResource","previousHoistableRoot","detachAlternateSiblings","previousFiber","recursivelyTraversePassiveUnmountEffects","commitPassiveUnmountEffectsInsideOfDeletedTree_begin","commitPassiveUnmountOnFiber","recursivelyTraverseDisconnectPassiveEffects","deletedSubtreeRoot","sibling","DefaultAsyncDispatcher","cacheForType","resourceType","PossiblyWeakMap","workInProgressSuspendedReason","workInProgressThrownValue","workInProgressRootDidSkipSuspendedSiblings","workInProgressRootIsPrerendering","workInProgressRootDidAttachPingListener","workInProgressRootSkippedLanes","workInProgressRootInterleavedUpdatedLanes","workInProgressRootPingedLanes","workInProgressSuspendedRetryLanes","workInProgressRootDidIncludeRecursiveRenderUpdate","globalMostRecentFallbackTime","globalMostRecentTransitionTime","workInProgressTransitions","pendingEffectsStatus","pendingFinishedWork","pendingEffectsLanes","pendingEffectsRemainingLanes","pendingPassiveTransitions","pendingRecoverableErrors","pendingViewTransition","pendingViewTransitionEvents","rootWithNestedUpdates","prepareFreshStack","markRootSuspended","ensureRootIsScheduled","performWorkOnRoot","shouldTimeSlice","forceSync","exitStatus","renderRootConcurrent","renderRootSync","renderWasConcurrent","isRenderConsistentWithExternalStores","wasRootDehydrated","scheduleTimeout","completeRootWhenReady","suspendedCommitReason","onUnsuspend","waitForCommitToBeReady","completeRoot","recoverableErrors","transitions","didIncludeRenderPhaseUpdate","didSkipSuspendedSiblings","completedRenderStartTime","completedRenderEndTime","check","didAttemptEntireTree","index$6","flushSyncWorkAcrossRoots_impl","resetWorkInProgressStack","timeoutHandle","cancelTimeout","handleThrow","thrownValue","pushDispatcher","prevDispatcher","pushAsyncDispatcher","prevAsyncDispatcher","prevExecutionContext","unitOfWork","throwAndUnwindWorkLoop","shouldYieldForPrerendering","workLoopSync","thrownValue$184","performUnitOfWork","replaySuspendedUnitOfWork","hostFiber","completeUnitOfWork","workLoopConcurrentByScheduler","thrownValue$186","suspendedReason","unwindUnitOfWork","skipSiblings","flushPendingEffects","commitRoot","scheduleCallback$1","flushPassiveEffects","startViewTransition","flushMutationEffects","flushLayoutEffects","flushAfterMutationEffects","flushSpawnedWork","reportViewTransitionError","onRecoverableError","rootMutationHasEffect","selectionInformation","curFocusedElem","priorFocusedElem","priorSelectionRange","win","start$jscomp$0","end$jscomp$0","startMarker","endMarker","range","eventsEnabled","rootHasLayoutEffect","committedViewTransition","passiveSubtreeMask","releaseRootPooledCache","recoverableError","renderPriority","captureCommitPhaseErrorOnRoot","rootFiber","pingCache","threadIDs","pingSuspendedRoot","retryTimedOutBoundary","retryLane","boundaryFiber","lastScheduledRoot","didScheduleMicrotask","mightHavePendingSyncWork","isFlushingWork","currentEventTransitionLane","scheduleImmediateRootScheduleTask","didPerformSomeWork","root$190","onlyLegacy","syncTransitionLanes","performSyncWorkOnRoot","processRootScheduleInImmediateTask","processRootScheduleInMicrotask","shouldAttemptEagerTransition","scheduleTaskForRootDuringMicrotask","index$5","expirationTime","performWorkOnRootViaSchedulerTask","originalCallbackNode","workInProgressRootRenderLanes$jscomp$0","didTimeout","scheduleMicrotask","actionScopeLane","coerceFormActionProp","actionProp","extractEvents$1","maybeTargetInst","submitter","i$jscomp$inline_1667","eventName$jscomp$inline_1668","nonDelegatedEvents","eventSystemFlags","_dispatchQueue$i","previousInstance","i$jscomp$0","_dispatchListeners$i","currentTarget","targetElement","listenerSetKey","addTrappedEventListener","listenToNativeEvent","isCapturePhaseListener","listeningMarker","rootContainerElement","listenerWrapper","dispatchDiscreteEvent","dispatchContinuousEvent","dispatchEvent","targetContainer","dispatchEventForPluginEventSystem","ancestorInst","targetInst$jscomp$0","nodeTag","grandTag","SyntheticEventCtor","inCapturePhase","accumulateTargetOnly","reactEventName","lastHostComponent","_instance","createDispatchListener","accumulateEnterLeaveListenersForEvent","getTargetInstFunc","handleEventFunc","fallbackData","eventType","captureName","targetFiber","_instance2","common","_instance3","NORMALIZE_NEWLINES_REGEX","NORMALIZE_NULL_AND_REPLACEMENT_REGEX","normalizeMarkupForTextOrAttribute","markup","clientText","serverText","setProp","setPropOnCustomElement","hasSrc","hasSrcSet","propKey","propValue$204","emptyProps","lastProps","lastProp","propKey$221","propKey$237","propKey$242","propKey$247","propKey$252","isLikelyStaticResource","initiatorType","estimateBandwidth","bits","resourceEntries","entry","transferSize","duration","overlapEntry","overlapStartTime","overlapTransferSize","overlapInitiatorType","namespaceURI","parentNamespace","rootContainerInstance","internalInstanceHandle","currentPopstateTransitionEvent","localPromise","localRequestAnimationFrame","handleErrorInNextTick","hydrationInstance","depth","parentInstance","clearSingletonPreambleContribution","node$jscomp$0","nextNode$jscomp$0","rect","viewTransitionName","createMeasurement","computedStyle","measuredRect","forceLayout","waitForImageToLoad","rootContainer","ownerWindow","pendingNavigation","previousFontLoadingStatus","mutationCallback","blockingPromises","suspenseyImages","imgBytes","suspenseyImage","estimateImageBytes","estimatedBytesWithinLimit","layoutCallback","afterMutationCallback","viewTransitionAnimations","animations","animation","effect","pseudoElement","height","unchangedDimensions","j","keyframe","w","spawnedWorkCallback","errorCallback","passiveCallback","ViewTransitionPseudoElement","pseudo","keyframes","selector","fragmentFiber","cleanup","optionsOrUseCapture","indexOfEventListener","attachedListener","getAttachOptions","addEventListenerToChild","_listeners$index","removeEventListenerFromChild","opts","normalizeListenerOptions","eventListeners","item","temp","_eventListeners$i","setFocusOnFiberIfFocusable","focusOptions","setFocusIfFocusable","collectChildren","collection","blurActiveElementWithinFragment","observer","observeChild","observers","unobserveChild","pendingIntersectionUnobserves","intersectionUnobserveScheduled","schedulePendingIntersectionUnobserve","requestPostPaintCallback","rects","collectClientRects","getRootNodeOptions","parentHostInstance","parentHostInstanceFromDOM","firstResult","lastResult","otherNodeIsWithinFirstOrLastChild","validateDocumentPositionWithFiberTree","otherFiber","documentPosition","precedingBoundaryFiber","followingBoundaryFiber","scrollTextNodeIntoView","textNode","resolvedAlignToTop","alignToTop","hostSiblings","addFragmentHandleToInstance","_eventListeners$i3","childInstance","writeIdx","_eventListeners$i4","anyProps","nodeType","data","targetInstance","handleFocus","didFocus","time","preloadPropsMap","preconnectsSet","rootNode","previousDispatcher","flushSyncWork","requestFormReset","prefetchDNS","preconnect","preload","preloadModule","preinitScript","preinitStyle","preinitModuleScript","previousWasRendering","wasRendering","formInst","globalDocument","preconnectAs","limitedEscapedHref","rel","preloadSelector","getStyleKey","getScriptKey","getStylesheetSelectorFromKey","getScriptSelectorFromKey","precedence","adoptPreloadPropsForStylesheet","link","reject","insertStylesheet","src","scripts","adoptPreloadPropsForScript","currentProps","currentResource","styles$268","resource$269","preloadStylesheet","stylesheetPropsFromRawProps","rawProps","preloadProps","hoistableRoot","styleProps","instance$274","linkInstance","nodes","prior","tagCaches","caches","nodeKey","keyAttribute","hostContext","onUnsuspendImg","insertSuspendedStylesheets","stylesheetTimer","unsuspend","timeoutOffset","imgTimer","commit","checkIfFullyUnsuspended","precedencesByRoot","insertStylesheetIntoRoot","precedences","FiberRootNode","formState","createFiberRoot","hydrate","onDefaultTransitionIndicator","isStrictMode","initialChildren","getContextForSubtree","parentComponent","updateContainerImpl","markRetryLaneImpl","markRetryLaneIfNotHydrated","attemptContinuousHydration","attemptHydrationAtCurrentPriority","blockedOn","findInstanceBlockingEvent","return_targetInst","clearIfContinuousEvent","queueIfContinuousEvent","discreteReplayableEvents","findInstanceBlockingTarget","nearestMounted","hasScheduledReplayAttempt","queuedFocus","queuedDrag","queuedMouse","queuedPointers","queuedPointerCaptures","queuedExplicitHydrationTargets","accumulateOrCreateContinuousQueuedReplayableEvent","existingQueuedEvent","pointerId","attemptExplicitHydrationTarget","queuedTarget","attemptReplayContinuousQueuedEvent","queuedEvent","targetContainers","nextBlockedOn","nativeEventClone","attemptReplayContinuousQueuedEventInMap","map","replayUnblockedEvents","scheduleCallbackIfUnblocked","unblocked","lastScheduledReplayQueue","scheduleReplayQueueIfNeeded","formReplayingQueue","submitterOrAction","unblock","formProps","defaultOnDefaultTransitionIndicator","handleNavigate","handleNavigateComplete","pendingResolve","isCancelled","startFakeNavigation","currentEntry","ReactDOMRoot","internalRoot","ReactDOMHydrationRoot","isomorphicReactPackageVersion$jscomp$inline_2043","componentOrElement","internals$jscomp$inline_2586","hook$jscomp$inline_2587","import_client","WINDOW_TITLES$1","en","page","app","title","version","ok","usd","ago","times","failed","days","kind","WINDOW_TITLES","DICTIONARIES","DEFAULT_LOCALE","isLocale","languageOf","known","locale","base","overrides","layer","isGroup","words","merged","word","styles_default","SignalcoreError","details","UnauthenticatedError","ForbiddenError","NotFoundError","ConflictError","InvalidError","RateLimitedError","ServerError","BY_CODE","BY_STATUS","fromResponse","problem","problemOf","response","status","body","ServerSentEvent","Decoder","line","colon","readEvents","decoder","readLines","reader","done","lines","rest","takeLines","held","final","path","parts","literals","literal","search","params","query","ORG_HEADER","VISITOR_HEADER","Http","method","attempt","orThrow","hangUp","headers","answer","credentialOf","passed","names","visitorId","publishableKey","endUserToken","apiKey","apiKeyFromEnvironment","queryOf","credential","headersOf","following","iterate","fetch","Agents","http","agentId","definition","changeId","ApiKeys","keyId","Billing","Browser$1","sessionId","BuildSessions","builderEvents","Build","frames","Channels","connectionId","settings","Connections","Contacts","contactId","Conversations","conversationId","Documents","documentsPath","agent_id","file","filename","shared","documentId","EndUsers","thread","Files","filePath","location","asBody","contentTypeOf","CLOSED","UNAUTHENTICATED","FORBIDDEN","NOT_FOUND","ConnectionLostError","closeCode","failureOf","HEADER_BYTES","decodeFrame","header","decodeInfo","message","isSize","width","FINISHED","Latest","ending","globalSocket","found","NORMAL_CLOSE","ABNORMAL_CLOSE","LiveStream","socket","reveal","refuse","failure","Live$1","endpoint","streamId","Memories","memoryId","Org","Orgs","orgId","Playground","requestId","PublishableKeys","Records","filters","recordId","Requests","Runs","runId","Skills","slug","UiComponents","Ui","Usage","Vault","VERSION","DEFAULT_BASE_URL","API_KEY_VARIABLE","BASE_URL_VARIABLE","DEFAULT_TIMEOUT_MS","Signalcore","fromEnvironment","baseUrl","createSdkClient","schemeOf","host","watchScheme","apply","KEY","freshId","bytes","byte","keptVisitorId","kept","fresh","SHARED_ATTRIBUTES","defineWidget","spec","Widget","#override","client","#draw","#messages","messages","#frame","#build","#root","#stopWatching","#syncScheme","shadow","scheme","#clientFromAttributes","agent","#locale","credentials","#credentials","#made","#make","attribute","createClient","import_react","classes","partsOf","mods","modifiers","modifier","slot","classNames","extra","DEFAULT_PATTERNS","variableOf","token","letter","themeStyle","entries","tokens","SYSTEMS","detectPreset","variable","WATCHED","watchRoot","changed","probeRoot","never","nothing","useDetected","browser","wanted","useTokens","own","option","system","choose","preset","detected","require_react_jsx_runtime_production","jsxProd","maybeKey","import_jsx_runtime","NO_COMPONENTS","NO_WINDOWS","NOTHING","Context$1","SignalcoreProvider","theme","components","patterns","windows","viewer","part","unstyled","useSignalcore","useMessages","useLanguage","useParts","Scoped","WithClient","Input$1","ErrorText","Spinner","PATHS","Mark","Icon","MAX_HEIGHT_PX","useComposer","setOwn","canSend","ready","blocked","live","disabled","change","onValueChange","send","onSend","el","focusSignal","escapeStops","onStop","Composer","stoppable","focus","label","tools","isRecord","isHostNode","\"type\"","problemWith","surface","byId","\"id\"","\"component\"","seen","hostProblem","\"props\"","hosts","\"children\"","unregisteredHosts","\"components\"","surfaceOf","twin","twinOf","\"fallback_text\"","none","Button","loading","variant","IconButton","PRIMITIVE_ONLY","PRIMITIVE_NAMES","Card$1","subtitle","Table","columns","column","rows","Input","onChange","Select","DEFAULTS","usePrimitives","replaced","registeredHosts","hostComponent","bound","pointer","raw","readerOf","prop","SceneContext","useScene","scene","HostNode","Host","act","BUTTONS","MOVE_EVERY_MS","LINE_PX","MAX_DELTA","pointOf","box","canvas","along","shown","at","from","real","clamp","limit","capture","lastMove","clicks","release","button","press","move","wheel","unit","keyed","letGo","keyDown","keyUp","noMenu","decode","blob","bitmap","decodeInImage","image","painterOn","decoding","waiting","disposed","run","picture","jpeg","GIVE_UP_AFTER","FIRST_DELAY_MS","LONGEST_DELAY_MS","follow$1","drops","answered","stopped","watcher","stream","pause","begin$2","useLiveStream","connector","connection","onFrame","stop","patch","old","SHAPE","DEFAULT_SHAPE","LiveView","Viewer","shape","aspect","painter","reported","onStatus","drawing","interactive","safeUrl","useBrowserFocus","useBrowserRoom","register","POLL_MS","UNKNOWN","useBrowserSession","look","setLook","isStopped","screenshot","forget","follow","session","streamed","knownLiveUrl","latest","VIEWPORT","BrowserView","Session","unwatchable","setUnwatchable","liveUrl","expanded","setExpanded","taken","setTaken","closed","yours","large","covered","wantsRoom","active","spacious","pageUrl","pageTitle","watch","site","siteOf","Controls","Ended","summary","Caption","caption","onToggle","canTake","onTake","protocol","Browser","read","Chart","series","top","point","ChoiceList","when","date","summarize","values","Form","setValues","field","Control","KeyValue","Column","Row","Card","Box","Live","Image$1","Link","SlotPicker","DataTable","VARIANTS","Text","TONES","Callout","tone","TEMPLATES","Node$1","Catalog","ids","hostProps","Template","SurfaceBoundary","Surface","Checked","missing","TextTwin","Drawn","component","onAction","DEFAULT_WINDOW_KINDS","END_USER_WINDOW_KINDS","isDefaultWindowKind","kindsFor","CHAT_ID","MAX_CLOSED","isDefault","window","begin$1","permitted","allowed","opened","open","listed","reduce$1","place","hear","close","each","placementOf","withWindow","quiet","remembering","heard","opening","named","RevealContext","useReveal","MessageRow","joined","WindowNote","MOMENT_GAP_MS","FORMATS","formatsOf","formats","startOfDay","momentLabel","timeOf","sameDay","rowsOf","startsMoment","language","NEAR_BOTTOM_PX","useStickToBottom","scroller","pinned","inner","onScroll","ChatView","copy","conversation","answering","docked","placeholder","DEFAULT_THREAD","historyOf","mine","messagesFromConversation","isNotFound","surfaces","ANSWERABLE","isAnswerable","begin","reduce","withSurface","withRequest","card","requests","RESUME_POLL_MS","RETRY_MS","MAX_SILENT_DROPS","useRunStream","lastEventId","cards","runs","lastId","startAt","silentDrops","eventOf","fillIn","untilResumed","sleep","arrivalOf","paused","after","IDLE","useTurns","invoke","said","setSaid","phase","setPhase","setProblem","announcement","setAnnouncement","counter","arrival","announce","ask","person","turn","modality","reply","replyOf","useConversation","turns","past","setPast","cannotLoad","setCannotLoad","loader","reading","setReading","load","say","AgentChat","Chat","WidgetChat","unavailable","Unavailable$1","TAG","HOST_STYLE$1","defineSignalcoreChat","has","emit","Dock","dock","toggle","hearingRuns","onRun","Journal","onEvents","onEnd","SpaceChatContext","useSpaceChat","Captions","chat","lastTurn","asked","m","WindowTwin","ChatWindow","BrowserWindow","\"sessionId\"","\"streamId\"","\"url\"","\"title\"","LiveWindow","\"aspect\"","\"input\"","CORE_WINDOWS","useWindowComponents","DRAWINGS","KindMark","WindowFrame","Framed","headingId","onClose","SurfaceWindow","Stage","Strip","onStage","tab","showInBar","focusedId","unread","reopen","bar","useUnread","setRead","settled","setSettled","looking","useWindows","restore","observe","ANSWER_SLOT","AgentSpace","Hearing","stage","setRuns","ended","Space","chosen","stageBox","restored","canSpeak","renderVoice","setMode","onModeChange","spoken","setSpoken","voice","strip","busy","closeOnEscape","renderStrip","focused","renderDock","WidgetSpace","Unavailable","SPACE_TAG","HOST_STYLE","defineSignalcoreSpace","windowsOf","modeOf","viewerOf","reflect"],"sources":["../../../node_modules/.pnpm/scheduler@0.28.0/node_modules/scheduler/cjs/scheduler.production.js","../../../node_modules/.pnpm/scheduler@0.28.0/node_modules/scheduler/index.js","../../../node_modules/.pnpm/react@19.3.0/node_modules/react/cjs/react.production.js","../../../node_modules/.pnpm/react@19.3.0/node_modules/react/index.js","../../../node_modules/.pnpm/react-dom@19.3.0_react@19.3.0/node_modules/react-dom/cjs/react-dom.production.js","../../../node_modules/.pnpm/react-dom@19.3.0_react@19.3.0/node_modules/react-dom/index.js","../../../node_modules/.pnpm/react-dom@19.3.0_react@19.3.0/node_modules/react-dom/cjs/react-dom-client.production.js","../../../node_modules/.pnpm/react-dom@19.3.0_react@19.3.0/node_modules/react-dom/client.js","../src/messages/en.ts","../src/messages/es.ts","../src/messages/index.ts","../src/styles.css?inline","../../typescript/src/errors.ts","../../typescript/src/sse.ts","../../typescript/src/url.ts","../../typescript/src/http.ts","../../typescript/src/credential.ts","../../typescript/src/pages.ts","../../typescript/src/resources/agents.ts","../../typescript/src/resources/apiKeys.ts","../../typescript/src/resources/billing.ts","../../typescript/src/resources/browser.ts","../../typescript/src/resources/build.ts","../../typescript/src/resources/channels.ts","../../typescript/src/resources/connections.ts","../../typescript/src/resources/contacts.ts","../../typescript/src/resources/conversations.ts","../../typescript/src/resources/documents.ts","../../typescript/src/resources/endUsers.ts","../../typescript/src/resources/files.ts","../../typescript/src/live/closure.ts","../../typescript/src/live/frame.ts","../../typescript/src/live/latest.ts","../../typescript/src/live/socket.ts","../../typescript/src/live/stream.ts","../../typescript/src/resources/live.ts","../../typescript/src/resources/memories.ts","../../typescript/src/resources/org.ts","../../typescript/src/resources/orgs.ts","../../typescript/src/resources/playground.ts","../../typescript/src/resources/publishableKeys.ts","../../typescript/src/resources/records.ts","../../typescript/src/resources/requests.ts","../../typescript/src/resources/runs.ts","../../typescript/src/resources/skills.ts","../../typescript/src/resources/ui.ts","../../typescript/src/resources/usage.ts","../../typescript/src/resources/vault.ts","../../typescript/src/version.ts","../../typescript/src/client.ts","../src/widget/credentials.ts","../src/widget/scheme.ts","../src/widget/visitor.ts","../src/widget/define.tsx","../src/classes.ts","../src/look.ts","../src/patterns.ts","../src/theme.ts","../src/presets.ts","../src/useTokens.ts","../../../node_modules/.pnpm/react@19.3.0/node_modules/react/cjs/react-jsx-runtime.production.js","../../../node_modules/.pnpm/react@19.3.0/node_modules/react/jsx-runtime.js","../src/SignalcoreProvider.tsx","../src/parts/Input.tsx","../src/parts/Spinner.tsx","../src/parts/Icon.tsx","../src/chat/useComposer.ts","../src/chat/Composer.tsx","../src/development.ts","../src/surface/check.ts","../src/parts/Button.tsx","../src/primitives.tsx","../src/surface/hosts.ts","../src/surface/bindings.ts","../src/surface/scene.ts","../src/surface/HostNode.tsx","../src/live/capture.ts","../src/live/paint.ts","../src/live/follow.ts","../src/live/useLiveStream.ts","../src/live/LiveView.tsx","../src/safeUrl.ts","../src/browser/room.tsx","../src/browser/useBrowserSession.ts","../src/browser/BrowserView.tsx","../src/surface/templates/Browser.tsx","../src/surface/templates/Chart.tsx","../src/surface/templates/Choices.tsx","../src/surface/format.ts","../src/surface/templates/Form.tsx","../src/surface/templates/KeyValue.tsx","../src/surface/templates/Layout.tsx","../src/surface/templates/Live.tsx","../src/surface/templates/Media.tsx","../src/surface/templates/Slots.tsx","../src/surface/templates/Table.tsx","../src/surface/templates/Text.tsx","../src/surface/templates/index.ts","../src/surface/Node.tsx","../src/surface/SurfaceBoundary.tsx","../src/surface/Surface.tsx","../src/windows/kinds.ts","../src/windows/reduce.ts","../src/windows/reveal.ts","../src/chat/MessageRow.tsx","../src/chat/moments.ts","../src/chat/useStickToBottom.ts","../src/chat/ChatView.tsx","../src/chat/history.ts","../src/request/cards.ts","../src/stream/reduce.ts","../src/stream/useRunStream.ts","../src/chat/arrival.ts","../src/chat/useTurns.ts","../src/chat/useConversation.ts","../src/chat/AgentChat.tsx","../src/widget/WidgetChat.tsx","../src/widget/element.tsx","../src/windows/Dock.tsx","../src/windows/hearing.ts","../src/windows/Journal.tsx","../src/windows/space.ts","../src/windows/Captions.tsx","../src/windows/registry.tsx","../src/windows/KindMark.tsx","../src/windows/WindowFrame.tsx","../src/windows/SurfaceWindow.tsx","../src/windows/Stage.tsx","../src/windows/Strip.tsx","../src/windows/useUnread.ts","../src/windows/useWindows.ts","../src/windows/AgentSpace.tsx","../src/widget/WidgetSpace.tsx","../src/widget/space.tsx","../src/widget/entry.ts"],"sourcesContent":["/**\n * @license React\n * scheduler.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\"use strict\";\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);\n else break a;\n }\n}\nfunction peek(heap) {\n return 0 === heap.length ? null : heap[0];\n}\nfunction pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);\n else break a;\n }\n }\n return first;\n}\nfunction compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n}\nexports.unstable_now = void 0;\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\nvar taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout = \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate = \"undefined\" !== typeof setImmediate ? setImmediate : null;\nfunction advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n}\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n}\nvar isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\nfunction shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n}\nfunction performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime && shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n}\nvar schedulePerformWorkUntilDeadline;\nif (\"function\" === typeof localSetImmediate)\n schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\nelse if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n} else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (task) {\n task.callback = null;\n};\nexports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n};\nexports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_requestPaint = function () {\n needsPaint = !0;\n};\nexports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n};\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\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\"use strict\";\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_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\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}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result,\n thenable = ctor();\n thenable.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1),\n (payload._result = moduleObject),\n void 0 === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = moduleObject));\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2),\n (payload._result = error),\n void 0 === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n );\n -1 === payload._status &&\n ((payload._status = 0), (payload._result = thenable));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n };\nfunction startTransition(scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n currentTransition.types =\n null !== prevTransition ? prevTransition.types : null;\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction addTransitionType(type) {\n var transition = ReactSharedInternals.T;\n if (null !== transition) {\n var transitionTypes = transition.types;\n null === transitionTypes\n ? (transition.types = [type])\n : -1 === transitionTypes.indexOf(type) && transitionTypes.push(type);\n } else startTransition(addTransitionType.bind(null, type));\n}\nvar Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n};\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\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.ViewTransition = REACT_VIEW_TRANSITION_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.addTransitionType = addTransitionType;\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\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};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\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};\nexports.startTransition = startTransition;\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.3.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * react-dom.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\"use strict\";\nvar React = require(\"react\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction noop() {}\nvar Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(formatProdErrorMessage(522));\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_RECOVERABLE_TYPE = Symbol.for(\"react.recoverable\"),\n REACT_OPTIMISTIC_KEY = Symbol.for(\"react.optimistic_key\");\nfunction createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key:\n null == key\n ? null\n : key === REACT_OPTIMISTIC_KEY\n ? REACT_OPTIMISTIC_KEY\n : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nfunction getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n}\nexports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\nexports.browser = function (reason) {\n return { $$typeof: REACT_RECOVERABLE_TYPE, _reason: reason };\n};\nexports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(formatProdErrorMessage(299));\n return createPortal$1(children, container, null, key);\n};\nexports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f();\n }\n};\nexports.preconnect = function (href, options) {\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n};\nexports.prefetchDNS = function (href) {\n \"string\" === typeof href && Internals.d.D(href);\n};\nexports.preinit = function (href, options) {\n if (\"string\" === typeof href && options && \"string\" === typeof options.as) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence ? options.precedence : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n};\nexports.preinitModule = function (href, options) {\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as) {\n var crossOrigin = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n );\n Internals.d.M(href, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0\n });\n }\n } else null == options && Internals.d.M(href);\n};\nexports.preload = function (href, options) {\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n Internals.d.L(href, as, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes ? options.imageSizes : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n};\nexports.preloadModule = function (href, options) {\n if (\"string\" === typeof href)\n if (options) {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0\n });\n } else Internals.d.m(href);\n};\nexports.requestFormReset = function (form) {\n Internals.d.r(form);\n};\nexports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n};\nexports.useFormState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useFormState(action, initialState, permalink);\n};\nexports.useFormStatus = function () {\n return ReactSharedInternals.H.useHostTransitionStatus();\n};\nexports.version = \"19.3.0\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * @license React\n * react-dom-client.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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nfunction getNearestMountedFiber(fiber) {\n for (var node = fiber, nextNode = node; nextNode && !nextNode.alternate; )\n (node = nextNode),\n 0 !== (node.flags & 4098) && (fiber = node.return),\n (nextNode = node.return);\n for (; node.return; ) node = node.return;\n return 3 === node.tag ? fiber : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction getActivityInstanceFromFiber(fiber) {\n if (31 === fiber.tag) {\n var activityState = fiber.memoizedState;\n null === activityState &&\n ((fiber = fiber.alternate),\n null !== fiber && (activityState = fiber.memoizedState));\n if (null !== activityState) return activityState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nfunction traverseVisibleInstancesAndTextInstances(\n child,\n searchWithinHosts,\n fn,\n a,\n b,\n c\n) {\n for (; null !== child; ) {\n if (\n ((5 === child.tag || 27 === child.tag || 6 === child.tag) &&\n fn(child, a, b, c)) ||\n ((22 !== child.tag || null === child.memoizedState) &&\n (searchWithinHosts || (5 !== child.tag && 27 !== child.tag)) &&\n traverseVisibleInstancesAndTextInstances(\n child.child,\n searchWithinHosts,\n fn,\n a,\n b,\n c\n ))\n )\n return !0;\n child = child.sibling;\n }\n return !1;\n}\nfunction getFragmentParentInstanceOrContainerFiber(fiber) {\n for (fiber = fiber.return; null !== fiber; ) {\n if (3 === fiber.tag || 5 === fiber.tag || 27 === fiber.tag) return fiber;\n fiber = fiber.return;\n }\n return null;\n}\nfunction fiberIsPortaledIntoHost(fiber) {\n var foundPortalParent = !1;\n for (fiber = fiber.return; null !== fiber; ) {\n 4 === fiber.tag && (foundPortalParent = !0);\n if (3 === fiber.tag || 5 === fiber.tag || 27 === fiber.tag) break;\n fiber = fiber.return;\n }\n return foundPortalParent;\n}\nfunction getFragmentInstanceOrTextInstanceSiblings(fiber) {\n var result = [null, null],\n parentHostFiber = getFragmentParentInstanceOrContainerFiber(fiber);\n if (null === parentHostFiber) return result;\n findFragmentInstanceOrTextInstanceSiblings(\n result,\n fiber,\n parentHostFiber.child,\n { foundSelf: !1 }\n );\n return result;\n}\nfunction findFragmentInstanceOrTextInstanceSiblings(\n result,\n self,\n child,\n state\n) {\n for (; null !== child; ) {\n if (child === self) state.foundSelf = !0;\n else if (5 === child.tag || 27 === child.tag || 6 === child.tag) {\n if (state.foundSelf) return (result[1] = child), !0;\n result[0] = child;\n } else if (\n (22 !== child.tag || null === child.memoizedState) &&\n findFragmentInstanceOrTextInstanceSiblings(\n result,\n self,\n child.child,\n state\n )\n )\n return !0;\n child = child.sibling;\n }\n return !1;\n}\nfunction getInstanceFromHostFiber(fiber) {\n switch (fiber.tag) {\n case 5:\n case 27:\n case 6:\n return fiber.stateNode;\n case 3:\n return fiber.stateNode.containerInfo;\n default:\n throw Error(formatProdErrorMessage(559));\n }\n}\nvar searchTarget = null,\n searchBoundary = null;\nfunction isFiberPrecedingCheck(child, target, boundary) {\n return child === boundary\n ? !0\n : child === target\n ? ((searchTarget = child), !0)\n : !1;\n}\nfunction isFiberFollowingCheck(child, target, boundary) {\n return child === boundary\n ? ((searchBoundary = child), !1)\n : child === target\n ? (null !== searchBoundary && (searchTarget = child), !0)\n : !1;\n}\nfunction getParentForFragmentAncestors(inst) {\n if (null === inst) return null;\n do inst = null === inst ? null : inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag && 3 !== inst.tag);\n return inst ? inst : null;\n}\nfunction getLowestCommonAncestor(instA, instB, getParent) {\n for (var depthA = 0, tempA = instA; tempA; tempA = getParent(tempA)) depthA++;\n tempA = 0;\n for (var tempB = instB; tempB; tempB = getParent(tempB)) tempA++;\n for (; 0 < depthA - tempA; ) (instA = getParent(instA)), depthA--;\n for (; 0 < tempA - depthA; ) (instB = getParent(instB)), tempA--;\n for (; depthA--; ) {\n if (instA === instB || (null !== instB && instA === instB.alternate))\n return instA;\n instA = getParent(instA);\n instB = getParent(instB);\n }\n return null;\n}\nvar assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n 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\");\nSymbol.for(\"react.scope\");\nvar REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_LEGACY_HIDDEN_TYPE = Symbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n REACT_RECOVERABLE_TYPE = Symbol.for(\"react.recoverable\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n case REACT_VIEW_TRANSITION_TYPE:\n return \"ViewTransition\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n switch (nextRootInstance.nodeType) {\n case 9:\n case 11:\n fiber = (fiber = nextRootInstance.documentElement)\n ? (fiber = fiber.namespaceURI)\n ? getOwnHostContext(fiber)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (fiber = getChildHostContextProd(nextRootInstance, fiber));\n else\n switch (fiber) {\n case \"svg\":\n fiber = 1;\n break;\n case \"math\":\n fiber = 2;\n break;\n default:\n fiber = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, fiber);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n var stateHook = fiber.memoizedState;\n null !== stateHook &&\n ((HostTransitionContext._currentValue = stateHook.memoizedState),\n push(hostTransitionProviderCursor, fiber));\n stateHook = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(stateHook, fiber.type);\n stateHook !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar prefix, suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" (<anonymous>)\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$1) {\n control = x$1;\n }\n Fake = !1;\n try {\n var prevProps = Object.getOwnPropertyDescriptor(\n fn.prototype,\n \"props\"\n );\n Object.defineProperty(fn.prototype, \"props\", {\n configurable: !0,\n set: function () {\n throw Error();\n }\n });\n Fake = !0;\n new fn();\n } finally {\n Fake &&\n (void 0 !== prevProps\n ? Object.defineProperty(fn.prototype, \"props\", prevProps)\n : delete fn.prototype.props);\n }\n }\n } else {\n try {\n throw Error();\n } catch (x$2) {\n control = x$2;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"<anonymous>\") &&\n (frame = frame.replace(\"<anonymous>\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber, childFiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return fiber.child !== childFiber && null !== childFiber\n ? describeBuiltInComponentFrame(\"Suspense Fallback\")\n : describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n case 30:\n return describeBuiltInComponentFrame(\"ViewTransition\");\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\",\n previous = null;\n do\n (info += describeFiber(workInProgress, previous)),\n (previous = workInProgress),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionUpdateLane = 256,\n nextTransitionDeferredLane = 262144,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n return lanes & -lanes;\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 3932160;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction getEntangledLanes(root, renderLanes) {\n 0 !== (renderLanes & 8) && (renderLanes |= renderLanes & 32);\n var allEntangledLanes = root.entangledLanes;\n if (0 !== allEntangledLanes)\n for (\n root = root.entanglements, allEntangledLanes &= renderLanes;\n 0 < allEntangledLanes;\n\n ) {\n var index$4 = 31 - clz32(allEntangledLanes),\n lane = 1 << index$4;\n renderLanes |= root[index$4];\n allEntangledLanes &= ~lane;\n }\n return renderLanes;\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 261930);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydration(root, renderLanes) {\n var renderLane = renderLanes & -renderLanes;\n renderLane =\n 0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane);\n return 0 !== (renderLane & (root.suspendedLanes | renderLanes))\n ? 0\n : renderLane;\n}\nfunction getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey,\n internalLoadPendingKey = \"__reactLoad$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst;\n if ((targetInst = targetNode[internalInstanceKey])) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentHydrationBoundary(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentHydrationBoundary(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 31 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nfunction clearPendingLoadOnNode(node) {\n node[internalLoadPendingKey] = void 0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nvar viewTransitionMutationContext = !1;\nfunction pushMutationContext() {\n var prev = viewTransitionMutationContext;\n viewTransitionMutationContext = !1;\n return prev;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node, valueField, currentValue) {\n var descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n );\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n if (!node._valueTracker) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\";\n node._valueTracker = trackValueOnNode(\n node,\n valueField,\n \"\" + node[valueField]\n );\n }\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? \"number\" === type && element.value == value\n ? setDefaultValue(element, getToStringValue(element.value))\n : setDefaultValue(element, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n ) {\n track(element);\n return;\n }\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n track(element);\n}\nfunction setDefaultValue(node, value) {\n node.defaultValue !== \"\" + value && (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n track(element);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"),\n (viewTransitionMutationContext = !0));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n (setValueForStyle(node, styleName$16, styleName),\n (viewTransitionMutationContext = !0));\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"maskType\", \"mask-type\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nfunction noop$1() {}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n SubmitEventInterface = assign({}, EventInterface, { submitter: 0 }),\n SyntheticSubmitEvent = createSyntheticEvent(SubmitEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0,\n source: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$318;\n if (canUseDOM) {\n var isSupported$jscomp$inline_474 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_474) {\n var element$jscomp$inline_475 = document.createElement(\"div\");\n element$jscomp$inline_475.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_474 =\n \"function\" === typeof element$jscomp$inline_475.oninput;\n }\n JSCompiler_inline_result$jscomp$318 = isSupported$jscomp$inline_474;\n } else JSCompiler_inline_result$jscomp$318 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$318 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e$20) {\n return doc.body;\n }\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error fullscreenChange fullscreenError gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\nsimpleEventPluginEvents.push(\"scrollEnd\");\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar globalClientIdCounter$1 = 0;\nfunction getViewTransitionName(props, instance) {\n if (null != props.name && \"auto\" !== props.name) return props.name;\n if (null !== instance.autoName) return instance.autoName;\n props = pendingEffectsRoot.identifierPrefix;\n var globalClientId = globalClientIdCounter$1++;\n props = \"_\" + props + \"t_\" + globalClientId.toString(32) + \"_\";\n return (instance.autoName = props);\n}\nfunction getClassNameByType(classByType) {\n if (null == classByType || \"string\" === typeof classByType)\n return classByType;\n var className = null,\n activeTypes = pendingTransitionTypes;\n if (null !== activeTypes)\n for (var i = 0; i < activeTypes.length; i++) {\n var match = classByType[activeTypes[i]];\n if (null != match) {\n if (\"none\" === match) return \"none\";\n className = null == className ? match : className + (\" \" + match);\n }\n }\n return null == className ? classByType.default : className;\n}\nfunction getViewTransitionClassName(defaultClass, eventClass) {\n defaultClass = getClassNameByType(defaultClass);\n eventClass = getClassNameByType(eventClass);\n return null == eventClass\n ? \"auto\" === defaultClass\n ? null\n : defaultClass\n : \"auto\" === eventClass\n ? null\n : eventClass;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {};\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 1206910976;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 1206910978;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof owner) shouldConstruct(owner) && (fiberTag = 1);\n else if (\"string\" === typeof owner)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (owner) {\n case REACT_ACTIVITY_TYPE:\n return (\n (type = createFiberImplClass(31, pendingProps, key, mode)),\n (type.elementType = REACT_ACTIVITY_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_LEGACY_HIDDEN_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return (\n (type = mode | 32),\n (type = createFiberImplClass(30, pendingProps, key, type)),\n (type.elementType = REACT_VIEW_TRANSITION_TYPE),\n (type.lanes = lanes),\n (type.stateNode = {\n autoName: null,\n paired: null,\n clones: null,\n ref: null\n }),\n type\n );\n default:\n if (\"object\" === typeof owner && null !== owner)\n switch (owner.$$typeof) {\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromDehydratedFragment(dehydratedNode) {\n var fiber = createFiberImplClass(18, null, null, 0);\n fiber.stateNode = dehydratedNode;\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nvar CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nfunction restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextId = suspendedContext.id;\n treeContextOverflow = suspendedContext.overflow;\n treeContextProvider = workInProgress;\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(\n formatProdErrorMessage(\n 418,\n 1 < arguments.length && void 0 !== arguments[1] && arguments[1]\n ? \"text\"\n : \"HTML\",\n \"\"\n )\n );\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber, !0);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 31:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else if (31 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber$1 = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else\n 13 === fiber.tag &&\n null !== fiber.memoizedState &&\n null === fiber.memoizedState.dehydrated\n ? ((fiber.lanes |= renderLanes),\n (nextFiber = fiber.alternate),\n null !== nextFiber && (nextFiber.lanes |= renderLanes),\n scheduleContextWorkOnParentPath(\n fiber.return,\n renderLanes,\n workInProgress\n ),\n (nextFiber = fiber.child),\n (nextFiber = null !== nextFiber ? nextFiber.sibling : null))\n : (nextFiber = fiber.child);\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n return null !== current;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nfunction queueTransitionTypes(root, transitionTypes) {\n if (0 !== (root.pendingLanes & 4194048)) {\n var queued = root.transitionTypes;\n null === queued && (queued = root.transitionTypes = []);\n for (root = 0; root < transitionTypes.length; root++) {\n var transitionType = transitionTypes[root];\n -1 === queued.indexOf(transitionType) && queued.push(transitionType);\n }\n }\n}\nvar entangledTransitionTypes = null;\nfunction claimQueuedTransitionTypes(root) {\n var claimed = root.transitionTypes;\n root.transitionTypes = null;\n return claimed;\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n ((entangledTransitionTypes = null), null !== currentEntangledListeners)\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n globalMostRecentTransitionTime = now();\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n if (null !== entangledTransitionTypes)\n for (var root$28 = firstScheduledRoot; null !== root$28; )\n queueTransitionTypes(root$28, entangledTransitionTypes),\n (root$28 = root$28.next);\n root$28 = transition.types;\n if (null !== root$28) {\n for (var root$29 = firstScheduledRoot; null !== root$29; )\n queueTransitionTypes(root$29, root$28), (root$29 = root$29.next);\n if (0 !== currentEntangledLane) {\n root$29 = entangledTransitionTypes;\n null === root$29 && (root$29 = entangledTransitionTypes = []);\n for (var i = 0; i < root$28.length; i++) {\n var transitionType = root$28[i];\n -1 === root$29.indexOf(transitionType) && root$29.push(transitionType);\n }\n }\n }\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n SuspenseActionException = Error(formatProdErrorMessage(542)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$1, noop$1), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n thenableState = thenable.reason;\n checkIfUseWrappedInAsyncCatch(thenableState);\n if (void 0 === thenableState && !(\"reason\" in thenable))\n throw Error(formatProdErrorMessage(600));\n throw thenableState;\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$1, noop$1);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nfunction resolveLazy(lazyType) {\n try {\n var init = lazyType._init;\n return init(lazyType._payload);\n } catch (x) {\n if (null !== x && \"object\" === typeof x && \"function\" === typeof x.then)\n throw ((suspendedThenable = x), SuspenseException);\n throw x;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nfunction checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(formatProdErrorMessage(483));\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectTypeImpl(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null === currentFirstChild.key\n ? existingChildren.set(currentFirstChild.index, currentFirstChild)\n : existingChildren.set(currentFirstChild.key, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 2), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 134217730;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 134217730);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return (\n (returnFiber = updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n )),\n coerceRef(returnFiber, element),\n returnFiber\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n createChild(returnFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n ((newFiber = nextOldFiber.alternate),\n null !== newFiber &&\n oldFiber.delete(null === newFiber.key ? newIdx : newFiber.key)),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n ((nextOldFiber = step.alternate),\n null !== nextOldFiber &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n )),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n void 0 === newChild.props.ref &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nvar currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushDehydratedActivitySuspenseHandler(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, fiber);\n null === shellBoundary && (shellBoundary = fiber);\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n 22 === fiber.tag\n ? (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary && (shellBoundary = fiber))\n : reuseSuspenseHandlerOnStack();\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction pushSuspenseListContext(fiber, newContext) {\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n push(suspenseStackCursor, newContext);\n}\nfunction popSuspenseListContext(fiber) {\n pop(suspenseStackCursor);\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n}\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n isSuspenseInstancePending(state) ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (\n 19 === node.tag &&\n \"independent\" !== node.memoizedProps.revealOrder\n ) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n}\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_RECOVERABLE_TYPE) return;\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$64 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$64 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$64 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n gesture: update.gesture,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$64 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n subscribe =\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook &&\n 0 !== (workInProgressHook.memoizedState.tag & 1));\n pushSimpleEffect(\n subscribe ? 9 : 8,\n { destroy: void 0 },\n updateStoreInstance.bind(null, fiber, hook, getServerSnapshot, getSnapshot),\n null\n );\n if (subscribe) {\n fiber.flags |= 2048;\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n currentTransition.types =\n null !== prevTransition ? prevTransition.types : null;\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$70) {\n onActionError(actionQueue, node, error$70);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushSimpleEffect(tag, inst, create, deps) {\n tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((deps = create.next),\n (create.next = tag),\n (tag.next = deps),\n (inst.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n { destroy: void 0 },\n create,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n inst,\n create,\n deps\n )));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction useEffectEventImpl(payload) {\n currentlyRenderingFiber.flags |= 4;\n var componentUpdateQueue = currentlyRenderingFiber.updateQueue;\n if (null === componentUpdateQueue)\n (componentUpdateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = componentUpdateQueue),\n (componentUpdateQueue.events = [payload]);\n else {\n var events = componentUpdateQueue.events;\n null === events\n ? (componentUpdateQueue.events = [payload])\n : events.push(payload);\n }\n}\nfunction updateEvent(callback) {\n var ref = updateWorkInProgressHook().memoizedState;\n useEffectEventImpl({ ref: ref, nextImpl: callback });\n return function () {\n if (0 !== (executionContext & 2)) throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (\n void 0 === initialValue ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (\n 0 === (renderLanes & 106) ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n currentTransition.types =\n null !== prevTransition ? prevTransition.types : null;\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var stateHook = ensureFormComponentIsStateful(formFiber);\n null === stateHook.next && (stateHook = formFiber.alternate.memoizedState);\n dispatchSetStateInternal(\n formFiber,\n stateHook.next.queue,\n {},\n requestUpdateLane()\n );\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$73 = enqueueUpdate(provider, fiber, lane);\n null !== root$73 &&\n (scheduleUpdateOnFiber(root$73, provider, lane),\n entangleTransitions(root$73, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError,\n useEffectEvent: throwInvalidHookError\n },\n HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \"_\" + identifierPrefix + \"R_\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \"_\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \"_\" +\n identifierPrefix +\n \"r_\" +\n JSCompiler_inline_result.toString(32) +\n \"_\");\n return (hook.memoizedState = identifierPrefix);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: mountActionState,\n useActionState: mountActionState,\n useOptimistic: function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n },\n useEffectEvent: function (callback) {\n var hook = mountWorkInProgressHook(),\n ref = { impl: callback };\n hook.memoizedState = ref;\n return function () {\n if (0 !== (executionContext & 2))\n throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n }\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: updateActionState,\n useActionState: updateActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh,\n useEffectEvent: updateEvent\n },\n HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: rerenderActionState,\n useActionState: rerenderActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh,\n useEffectEvent: updateEvent\n };\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$77 in Component)\n void 0 === newProps[propName$77] &&\n (newProps[propName$77] = Component[propName$77]);\n }\n return newProps;\n}\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$78) {\n setTimeout(function () {\n throw e$78;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$79) {\n setTimeout(function () {\n throw e$79;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 31:\n case 13:\n case 19:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n returnFiber = sourceFiber.type;\n wrapperError = sourceFiber.stateNode;\n if (\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n break;\n case 22:\n if (null !== sourceFiber.memoizedState)\n return (sourceFiber.flags |= 65536), !1;\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n nextProps\n) {\n var nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n null === current &&\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n prevState =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextProps = workInProgress.child = current.child;\n for (nextChildren = 0; null !== nextProps; )\n (nextChildren =\n nextChildren | nextProps.lanes | nextProps.childLanes),\n (nextProps = nextProps.sibling);\n nextProps = nextChildren & ~prevState;\n } else (nextProps = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n prevState,\n renderLanes,\n nextProps\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (nextProps = workInProgress.lanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes,\n nextProps\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack());\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction bailoutOffscreenComponent(current, workInProgress) {\n (null !== current && 22 === current.tag) ||\n null !== workInProgress.stateNode ||\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n return workInProgress.sibling;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes,\n remainingChildLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n workInProgress.childLanes = remainingChildLanes;\n return null;\n}\nfunction mountActivityChildren(workInProgress, nextProps) {\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: nextProps.mode, children: nextProps.children },\n workInProgress.mode\n );\n nextProps.ref = workInProgress.ref;\n workInProgress.child = nextProps;\n nextProps.return = workInProgress;\n return nextProps;\n}\nfunction retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountActivityChildren(workInProgress, workInProgress.pendingProps);\n current.flags |= 2;\n popSuspenseHandler(workInProgress);\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateActivityComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n didSuspend = 0 !== (workInProgress.flags & 128);\n workInProgress.flags &= -129;\n if (null === current) {\n if (isHydrating) {\n if (\"hidden\" === nextProps.mode)\n return (\n (current = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.lanes = 536870912),\n (current.memoizedState = { baseLanes: 0, cachePool: null }),\n bailoutOffscreenComponent(null, current)\n );\n pushDehydratedActivitySuspenseHandler(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" === current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n workInProgress.lanes = 536870912;\n return null;\n }\n return mountActivityChildren(workInProgress, nextProps);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var dehydrated = prevState.dehydrated;\n pushDehydratedActivitySuspenseHandler(workInProgress);\n if (didSuspend)\n if (workInProgress.flags & 256)\n (workInProgress.flags &= -257),\n (workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ));\n else if (null !== workInProgress.memoizedState)\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null);\n else throw Error(formatProdErrorMessage(558));\n else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (didSuspend = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || didSuspend)\n ) {\n if (null === currentTreeHiddenStackCursor.current) {\n nextProps = workInProgressRoot;\n if (\n null !== nextProps &&\n ((dehydrated = getBumpedLaneForHydration(nextProps, renderLanes)),\n 0 !== dehydrated && dehydrated !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = dehydrated),\n enqueueConcurrentRenderForLane(current, dehydrated),\n scheduleUpdateOnFiber(nextProps, current, dehydrated),\n SelectiveHydrationException)\n );\n renderDidSuspendDelayIfPossible();\n }\n workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n (current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(dehydrated.nextSibling)),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.flags |= 134221824);\n return workInProgress;\n }\n current = createWorkInProgress(current.child, {\n mode: nextProps.mode,\n children: nextProps.children\n });\n current.ref = workInProgress.ref;\n workInProgress.child = current;\n current.return = workInProgress;\n return current;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n};\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack();\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" !== current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n isSuspenseInstanceFallback(current)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912);\n return null;\n }\n didSuspend = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(),\n (showFallback = workInProgress.mode),\n (didSuspend = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: didSuspend },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (didSuspend.return = workInProgress),\n (nextProps.return = workInProgress),\n (didSuspend.sibling = nextProps),\n (workInProgress.child = didSuspend),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(null, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, didSuspend);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var dehydrated$96 = prevState.dehydrated;\n if (null !== dehydrated$96)\n return updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n JSCompiler_temp,\n nextProps,\n dehydrated$96,\n prevState,\n renderLanes\n );\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(),\n (showFallback = nextProps.fallback),\n (didSuspend = workInProgress.mode),\n (prevState = current.child),\n (dehydrated$96 = prevState.sibling),\n (nextProps = createWorkInProgress(prevState, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags = prevState.subtreeFlags & 1206910976),\n null !== dehydrated$96\n ? (showFallback = createWorkInProgress(dehydrated$96, showFallback))\n : ((showFallback = createFiberFromFragment(\n showFallback,\n didSuspend,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2)),\n (showFallback.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = showFallback),\n (workInProgress.child = nextProps),\n bailoutOffscreenComponent(null, nextProps),\n (nextProps = workInProgress.child),\n (showFallback = current.child.memoizedState),\n null === showFallback\n ? (showFallback = mountSuspenseOffscreenState(renderLanes))\n : ((didSuspend = showFallback.cachePool),\n null !== didSuspend\n ? ((prevState = CacheContext._currentValue),\n (didSuspend =\n didSuspend.parent !== prevState\n ? { parent: prevState, pool: prevState }\n : didSuspend))\n : (didSuspend = getSuspendedCache()),\n (showFallback = {\n baseLanes: showFallback.baseLanes | renderLanes,\n cachePool: didSuspend\n })),\n (nextProps.memoizedState = showFallback),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(current.child, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n return offscreenProps;\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n didPrimaryChildrenDefer,\n nextProps,\n suspenseInstance,\n suspenseState,\n renderLanes\n) {\n if (didSuspend) {\n if (workInProgress.flags & 256)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )\n );\n if (null !== workInProgress.memoizedState)\n return (\n reuseSuspenseHandlerOnStack(),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n null\n );\n reuseSuspenseHandlerOnStack();\n suspenseInstance = nextProps.fallback;\n suspenseState = workInProgress.mode;\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n suspenseState\n );\n suspenseInstance = createFiberFromFragment(\n suspenseInstance,\n suspenseState,\n renderLanes,\n null\n );\n suspenseInstance.flags |= 2;\n nextProps.return = workInProgress;\n suspenseInstance.return = workInProgress;\n nextProps.sibling = suspenseInstance;\n workInProgress.child = nextProps;\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n nextProps = workInProgress.child;\n nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes);\n nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n didPrimaryChildrenDefer,\n renderLanes\n );\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return bailoutOffscreenComponent(null, nextProps);\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n if (isSuspenseInstanceFallback(suspenseInstance)) {\n didPrimaryChildrenDefer =\n suspenseInstance.nextSibling && suspenseInstance.nextSibling.dataset;\n if (didPrimaryChildrenDefer) var digest = didPrimaryChildrenDefer.dgst;\n didPrimaryChildrenDefer = digest;\n \"\" !== didPrimaryChildrenDefer &&\n ((nextProps = Error(formatProdErrorMessage(419))),\n (nextProps.stack = \"\"),\n (nextProps.digest = didPrimaryChildrenDefer),\n queueHydrationError({ value: nextProps, source: null, stack: null }));\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n }\n didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1);\n didPrimaryChildrenDefer = 0 !== (renderLanes & current.childLanes);\n if (didReceiveUpdate || didPrimaryChildrenDefer) {\n if (null !== currentTreeHiddenStackCursor.current)\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n didPrimaryChildrenDefer = workInProgressRoot;\n if (\n null !== didPrimaryChildrenDefer &&\n ((nextProps = getBumpedLaneForHydration(\n didPrimaryChildrenDefer,\n renderLanes\n )),\n 0 !== nextProps && nextProps !== suspenseState.retryLane)\n )\n throw (\n ((suspenseState.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(didPrimaryChildrenDefer, current, nextProps),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(suspenseInstance) ||\n renderDidSuspendDelayIfPossible();\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n }\n if (isSuspenseInstancePending(suspenseInstance))\n return (\n (workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n null\n );\n current = suspenseState.treeContext;\n nextHydratableInstance = getNextHydratable(suspenseInstance.nextSibling);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !1;\n null !== current && restoreSuspendedTreeContext(workInProgress, current);\n workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n );\n workInProgress.flags |= 134221824;\n return workInProgress;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction findLastContentRow(firstChild) {\n for (var lastContentRow = null; null !== firstChild; ) {\n var currentRow = firstChild.alternate;\n null !== currentRow &&\n null === findFirstSuspended(currentRow) &&\n (lastContentRow = firstChild);\n firstChild = firstChild.sibling;\n }\n return lastContentRow;\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode,\n treeForkCount\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n treeForkCount: treeForkCount\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode),\n (renderState.treeForkCount = treeForkCount));\n}\nfunction reverseChildren(fiber) {\n var row = fiber.child;\n for (fiber.child = null; null !== row; ) {\n var nextRow = row.sibling;\n row.sibling = fiber.child;\n fiber.child = row;\n row = nextRow;\n }\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n nextProps = nextProps.children;\n var suspenseContext = suspenseStackCursor.current;\n if (workInProgress.flags & 128)\n return pushSuspenseListContext(workInProgress, suspenseContext), null;\n var shouldForceFallback = 0 !== (suspenseContext & 2);\n shouldForceFallback\n ? ((suspenseContext = (suspenseContext & 1) | 2),\n (workInProgress.flags |= 128))\n : (suspenseContext &= 1);\n pushSuspenseListContext(workInProgress, suspenseContext);\n \"backwards\" === revealOrder && null !== current\n ? (reverseChildren(current),\n reconcileChildren(current, workInProgress, nextProps, renderLanes),\n reverseChildren(current))\n : reconcileChildren(current, workInProgress, nextProps, renderLanes);\n nextProps = isHydrating ? treeForkCount : 0;\n if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n switch (revealOrder) {\n case \"backwards\":\n renderLanes = findLastContentRow(workInProgress.child);\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling),\n (renderLanes.sibling = null),\n reverseChildren(workInProgress));\n initSuspenseListRenderState(\n workInProgress,\n !0,\n revealOrder,\n null,\n tailMode,\n nextProps\n );\n break;\n case \"unstable_legacy-backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode,\n nextProps\n );\n break;\n case \"together\":\n initSuspenseListRenderState(\n workInProgress,\n !1,\n null,\n null,\n void 0,\n nextProps\n );\n break;\n case \"independent\":\n workInProgress.memoizedState = null;\n break;\n default:\n (renderLanes = findLastContentRow(workInProgress.child)),\n null === renderLanes\n ? ((revealOrder = workInProgress.child),\n (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null)),\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode,\n nextProps\n );\n }\n return workInProgress.child;\n}\nfunction updateContextProvider(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n pushProvider(workInProgress, workInProgress.type, newProps.value);\n reconcileChildren(current, workInProgress, newProps.children, renderLanes);\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 31:\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.flags |= 128),\n pushDehydratedActivitySuspenseHandler(workInProgress),\n null\n );\n break;\n case 13:\n var state$108 = workInProgress.memoizedState;\n if (null !== state$108) {\n if (null !== state$108.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n state$108 = propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n );\n var primaryChildLanes = workInProgress.child.childLanes;\n if (state$108 || 0 !== (renderLanes & primaryChildLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n if (workInProgress.flags & 128)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n primaryChildLanes = 0 !== (current.flags & 128);\n state$108 = 0 !== (renderLanes & workInProgress.childLanes);\n state$108 ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state$108 = 0 !== (renderLanes & workInProgress.childLanes)));\n if (primaryChildLanes) {\n if (state$108)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n primaryChildLanes = workInProgress.memoizedState;\n null !== primaryChildLanes &&\n ((primaryChildLanes.rendering = null),\n (primaryChildLanes.tail = null),\n (primaryChildLanes.lastEffect = null));\n pushSuspenseListContext(workInProgress, suspenseStackCursor.current);\n if (state$108) break;\n else return null;\n case 22:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n )\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n var props = workInProgress.pendingProps;\n current = resolveLazy(workInProgress.elementType);\n workInProgress.type = current;\n if (\"function\" === typeof current)\n shouldConstruct(current)\n ? ((props = resolveClassComponentProps(current, props)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )));\n else {\n if (void 0 !== current && null !== current) {\n var $$typeof = current.$$typeof;\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n } else if ($$typeof === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n } else if ($$typeof === REACT_CONTEXT_TYPE) {\n workInProgress.tag = 10;\n workInProgress.type = current;\n workInProgress = updateContextProvider(\n null,\n workInProgress,\n renderLanes\n );\n break a;\n }\n }\n workInProgress = getComponentNameFromType(current) || current;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (props = workInProgress.type),\n ($$typeof = resolveClassComponentProps(\n props,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n props,\n $$typeof,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n props = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n $$typeof = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, props, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n props = nextState.cache;\n pushProvider(workInProgress, CacheContext, props);\n props !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n props = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: props,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else if (props !== $$typeof) {\n $$typeof = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError($$typeof);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 134221824),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (props === $$typeof) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(current, workInProgress, props, renderLanes);\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n (workInProgress.stateNode = createHoistableInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current,\n workInProgress\n ))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((props = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n ($$typeof = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = $$typeof),\n (nextHydratableInstance = getNextHydratable(props.firstChild)))\n : (nextHydratableInstance = $$typeof)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if (($$typeof = props = nextHydratableInstance))\n (props = canHydrateInstance(\n props,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== props\n ? ((workInProgress.stateNode = props),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(props.firstChild)),\n (rootOrSingletonContext = !1),\n ($$typeof = !0))\n : ($$typeof = !1);\n $$typeof || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n $$typeof = workInProgress.type;\n prevState = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n props = prevState.children;\n shouldSetTextContent($$typeof, prevState)\n ? (props = null)\n : null !== nextState &&\n shouldSetTextContent($$typeof, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n (($$typeof = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = $$typeof));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, props, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (props = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n (props = workInProgress.pendingProps),\n markRef(current, workInProgress),\n reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return updateContextProvider(current, workInProgress, renderLanes);\n case 9:\n return (\n ($$typeof = workInProgress.type._context),\n (props = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n ($$typeof = readContext($$typeof)),\n (props = props($$typeof)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 31:\n return updateActivityComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n );\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (props = readContext(CacheContext)),\n null === current\n ? (($$typeof = peekCacheFromPool()),\n null === $$typeof &&\n (($$typeof = workInProgressRoot),\n (prevState = createCache()),\n ($$typeof.pooledCache = prevState),\n prevState.refCount++,\n null !== prevState && ($$typeof.pooledCacheLanes |= renderLanes),\n ($$typeof = prevState)),\n (workInProgress.memoizedState = { parent: props, cache: $$typeof }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, $$typeof))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n ($$typeof = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n $$typeof.parent !== props\n ? (($$typeof = { parent: props, cache: props }),\n (workInProgress.memoizedState = $$typeof),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n $$typeof),\n pushProvider(workInProgress, CacheContext, props))\n : ((props = prevState.cache),\n pushProvider(workInProgress, CacheContext, props),\n props !== $$typeof.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 30:\n return (\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n autoName: null,\n paired: null,\n clones: null,\n ref: null\n }),\n (props = workInProgress.pendingProps),\n null != props.name && \"auto\" !== props.name\n ? (workInProgress.flags |= null === current ? 18882560 : 18874368)\n : isHydrating && pushMaterializedTreeId(workInProgress),\n null !== current && current.memoizedProps.name !== props.name\n ? (workInProgress.flags |= 4194816)\n : markRef(current, workInProgress),\n reconcileChildren(current, workInProgress, props.children, renderLanes),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n oldProps,\n newProps,\n renderLanes\n) {\n var JSCompiler_temp;\n if ((JSCompiler_temp = 0 !== (workInProgress.mode & 32)))\n JSCompiler_temp =\n null === oldProps\n ? maySuspendCommit(type, newProps)\n : maySuspendCommit(type, newProps) &&\n (newProps.src !== oldProps.src ||\n newProps.srcSet !== oldProps.srcSet);\n if (JSCompiler_temp) {\n if (\n ((workInProgress.flags |= 16777216),\n (renderLanes & 335544128) === renderLanes)\n )\n if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;\n else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n } else workInProgress.flags &= -16777217;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))\n if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"visible\":\n break;\n case \"collapsed\":\n for (\n var tailNode = renderState.tail, lastTailNode = null;\n null !== tailNode;\n\n )\n null !== tailNode.alternate && (lastTailNode = tailNode),\n (tailNode = tailNode.sibling);\n null === lastTailNode\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode.sibling = null);\n break;\n default:\n hasRenderedATailFallback = renderState.tail;\n for (tailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (tailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === tailNode\n ? (renderState.tail = null)\n : (tailNode.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$113 = completedWork.child; null !== child$113; )\n (newChildLanes |= child$113.lanes | child$113.childLanes),\n (subtreeFlags |= child$113.subtreeFlags & 1206910976),\n (subtreeFlags |= child$113.flags & 1206910976),\n (child$113.return = completedWork),\n (child$113 = child$113.sibling);\n else\n for (child$113 = completedWork.child; null !== child$113; )\n (newChildLanes |= child$113.lanes | child$113.childLanes),\n (subtreeFlags |= child$113.subtreeFlags),\n (subtreeFlags |= child$113.flags),\n (child$113.return = completedWork),\n (child$113 = child$113.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n var type = workInProgress.type,\n nextResource = workInProgress.memoizedState;\n null === current\n ? (markUpdate(workInProgress),\n null !== nextResource\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n null,\n newProps,\n renderLanes\n )))\n : nextResource\n ? nextResource !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : ((current = current.memoizedProps),\n current !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n current,\n newProps,\n renderLanes\n ));\n return null;\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n workInProgress.subtreeFlags &= -33554433;\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n workInProgress.subtreeFlags &= -33554433;\n return null;\n case 5:\n popHostContext(workInProgress);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n workInProgress.subtreeFlags &= -33554433;\n return null;\n }\n nextResource = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, nextResource);\n else {\n var ownerDocument = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (nextResource) {\n case 1:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case 2:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n default:\n switch (type) {\n case \"svg\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case \"math\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n case \"script\":\n nextResource = ownerDocument.createElement(\"div\");\n nextResource.innerHTML = \"<script>\\x3c/script>\";\n nextResource = nextResource.removeChild(\n nextResource.firstChild\n );\n break;\n case \"select\":\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(\"select\", {\n is: newProps.is\n })\n : ownerDocument.createElement(\"select\");\n newProps.multiple\n ? (nextResource.multiple = !0)\n : newProps.size && (nextResource.size = newProps.size);\n break;\n default:\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(type, { is: newProps.is })\n : ownerDocument.createElement(type);\n }\n }\n nextResource[internalInstanceKey] = workInProgress;\n nextResource[internalPropsKey] = newProps;\n a: for (\n ownerDocument = workInProgress.child;\n null !== ownerDocument;\n\n ) {\n if (5 === ownerDocument.tag || 6 === ownerDocument.tag)\n nextResource.appendChild(ownerDocument.stateNode);\n else if (\n 4 !== ownerDocument.tag &&\n 27 !== ownerDocument.tag &&\n null !== ownerDocument.child\n ) {\n ownerDocument.child.return = ownerDocument;\n ownerDocument = ownerDocument.child;\n continue;\n }\n if (ownerDocument === workInProgress) break a;\n for (; null === ownerDocument.sibling; ) {\n if (\n null === ownerDocument.return ||\n ownerDocument.return === workInProgress\n )\n break a;\n ownerDocument = ownerDocument.return;\n }\n ownerDocument.sibling.return = ownerDocument.return;\n ownerDocument = ownerDocument.sibling;\n }\n workInProgress.stateNode = nextResource;\n a: switch (\n (setInitialProperties(nextResource, type, newProps), type)\n ) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n newProps = !!newProps.autoFocus;\n break a;\n case \"img\":\n newProps = !0;\n break a;\n default:\n newProps = !1;\n }\n newProps && markUpdate(workInProgress);\n }\n }\n bubbleProperties(workInProgress);\n workInProgress.subtreeFlags &= -33554433;\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n workInProgress.type,\n null === current ? null : current.memoizedProps,\n workInProgress.pendingProps,\n renderLanes\n );\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n current = rootInstanceStackCursor.current;\n if (popHydrationState(workInProgress)) {\n current = workInProgress.stateNode;\n renderLanes = workInProgress.memoizedProps;\n newProps = null;\n type = hydrationParentFiber;\n if (null !== type)\n switch (type.tag) {\n case 27:\n case 5:\n newProps = type.memoizedProps;\n }\n current[internalInstanceKey] = workInProgress;\n current =\n current.nodeValue === renderLanes ||\n (null !== newProps && !0 === newProps.suppressHydrationWarning) ||\n checkForUnmatchedText(current.nodeValue, renderLanes)\n ? !0\n : !1;\n current || throwOnHydrationMismatch(workInProgress, !0);\n } else\n (current =\n getOwnerDocumentFromRootContainer(current).createTextNode(\n newProps\n )),\n (current[internalInstanceKey] = workInProgress),\n (workInProgress.stateNode = current);\n }\n bubbleProperties(workInProgress);\n return null;\n case 31:\n renderLanes = workInProgress.memoizedState;\n if (null === current || null !== current.memoizedState) {\n newProps = popHydrationState(workInProgress);\n if (null !== renderLanes) {\n if (null === current) {\n if (!newProps) throw Error(formatProdErrorMessage(318));\n current = workInProgress.memoizedState;\n current = null !== current ? current.dehydrated : null;\n if (!current) throw Error(formatProdErrorMessage(557));\n current[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n current = !1;\n } else\n (renderLanes = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = renderLanes),\n (current = !0);\n if (!current) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n if (0 !== (workInProgress.flags & 128))\n throw Error(formatProdErrorMessage(558));\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n type = popHydrationState(workInProgress);\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n if (!type) throw Error(formatProdErrorMessage(318));\n type = workInProgress.memoizedState;\n type = null !== type ? type.dehydrated : null;\n if (!type) throw Error(formatProdErrorMessage(317));\n type[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n type = !1;\n } else\n (type = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = type),\n (type = !0);\n if (!type) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n }\n popSuspenseHandler(workInProgress);\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n current = null !== current && null !== current.memoizedState;\n renderLanes &&\n ((newProps = workInProgress.child),\n (type = null),\n null !== newProps.alternate &&\n null !== newProps.alternate.memoizedState &&\n null !== newProps.alternate.memoizedState.cachePool &&\n (type = newProps.alternate.memoizedState.cachePool.pool),\n (nextResource = null),\n null !== newProps.memoizedState &&\n null !== newProps.memoizedState.cachePool &&\n (nextResource = newProps.memoizedState.cachePool.pool),\n nextResource !== type && (newProps.flags |= 2048));\n renderLanes !== current &&\n renderLanes &&\n (workInProgress.child.flags |= 8192);\n scheduleRetryEffect(workInProgress, workInProgress.updateQueue);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n null === current &&\n listenToAllSupportedEvents(workInProgress.stateNode.containerInfo),\n (workInProgress.flags |= 67108864),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type), bubbleProperties(workInProgress), null\n );\n case 19:\n popSuspenseListContext(workInProgress);\n newProps = workInProgress.memoizedState;\n if (null === newProps) return bubbleProperties(workInProgress), null;\n type = 0 !== (workInProgress.flags & 128);\n nextResource = newProps.rendering;\n if (null === nextResource)\n if (type) cutOffTailIfNeeded(newProps, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n nextResource = findFirstSuspended(current);\n if (null !== nextResource) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(newProps, !1);\n current = nextResource.updateQueue;\n workInProgress.updateQueue = current;\n scheduleRetryEffect(workInProgress, current);\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n resetWorkInProgress(renderLanes, current),\n (renderLanes = renderLanes.sibling);\n pushSuspenseListContext(\n workInProgress,\n (suspenseStackCursor.current & 1) | 2\n );\n isHydrating &&\n pushTreeFork(workInProgress, newProps.treeForkCount);\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== newProps.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!type)\n if (\n ((current = findFirstSuspended(nextResource)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (type = !0),\n (current = current.updateQueue),\n (workInProgress.updateQueue = current),\n scheduleRetryEffect(workInProgress, current),\n cutOffTailIfNeeded(newProps, !0),\n null === newProps.tail &&\n \"collapsed\" !== newProps.tailMode &&\n \"visible\" !== newProps.tailMode &&\n !nextResource.alternate &&\n !isHydrating)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - newProps.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 536870912 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n newProps.isBackwards\n ? ((nextResource.sibling = workInProgress.child),\n (workInProgress.child = nextResource))\n : ((current = newProps.last),\n null !== current\n ? (current.sibling = nextResource)\n : (workInProgress.child = nextResource),\n (newProps.last = nextResource));\n }\n if (null !== newProps.tail) {\n current = newProps.tail;\n a: {\n for (renderLanes = current; null !== renderLanes; ) {\n if (null !== renderLanes.alternate) {\n renderLanes = !1;\n break a;\n }\n renderLanes = renderLanes.sibling;\n }\n renderLanes = !0;\n }\n newProps.rendering = current;\n newProps.tail = current.sibling;\n newProps.renderingStartTime = now();\n current.sibling = null;\n nextResource = suspenseStackCursor.current;\n nextResource = type ? (nextResource & 1) | 2 : nextResource & 1;\n \"visible\" === newProps.tailMode ||\n \"collapsed\" === newProps.tailMode ||\n !renderLanes ||\n isHydrating\n ? pushSuspenseListContext(workInProgress, nextResource)\n : ((renderLanes = nextResource),\n push(suspenseHandlerStackCursor, workInProgress),\n push(suspenseStackCursor, renderLanes),\n null === shellBoundary && (shellBoundary = workInProgress));\n isHydrating && pushTreeFork(workInProgress, newProps.treeForkCount);\n return current;\n }\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n (newProps = null !== workInProgress.memoizedState),\n null !== current\n ? (null !== current.memoizedState) !== newProps &&\n (workInProgress.flags |= 8192)\n : newProps && (workInProgress.flags |= 8192),\n newProps\n ? 0 !== (renderLanes & 536870912) &&\n 0 === (workInProgress.flags & 128) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n (renderLanes = workInProgress.updateQueue),\n null !== renderLanes &&\n scheduleRetryEffect(workInProgress, renderLanes.retryQueue),\n (renderLanes = null),\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (renderLanes = current.memoizedState.cachePool.pool),\n (newProps = null),\n null !== workInProgress.memoizedState &&\n null !== workInProgress.memoizedState.cachePool &&\n (newProps = workInProgress.memoizedState.cachePool.pool),\n newProps !== renderLanes && (workInProgress.flags |= 2048),\n null !== current && pop(resumedCache),\n null\n );\n case 24:\n return (\n (renderLanes = null),\n null !== current && (renderLanes = current.memoizedState.cache),\n workInProgress.memoizedState.cache !== renderLanes &&\n (workInProgress.flags |= 2048),\n popProvider(CacheContext),\n bubbleProperties(workInProgress),\n null\n );\n case 25:\n return null;\n case 30:\n return (\n (workInProgress.flags |= 33554432),\n bubbleProperties(workInProgress),\n null\n );\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popProvider(CacheContext),\n popHostContainer(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 26:\n case 27:\n case 5:\n return popHostContext(workInProgress), null;\n case 31:\n if (null !== workInProgress.memoizedState) {\n popSuspenseHandler(workInProgress);\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 13:\n popSuspenseHandler(workInProgress);\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated) {\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return (\n popSuspenseListContext(workInProgress),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128),\n (current = workInProgress.memoizedState),\n null !== current &&\n ((current.rendering = null), (current.tail = null)),\n (workInProgress.flags |= 4),\n workInProgress)\n : null\n );\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type), null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n null !== current && pop(resumedCache),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 24:\n return popProvider(CacheContext), null;\n case 25:\n return null;\n default:\n return null;\n }\n}\nfunction unwindInterruptedWork(current, interruptedWork) {\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 3:\n popProvider(CacheContext);\n popHostContainer();\n break;\n case 26:\n case 27:\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 31:\n null !== interruptedWork.memoizedState &&\n popSuspenseHandler(interruptedWork);\n break;\n case 13:\n popSuspenseHandler(interruptedWork);\n break;\n case 19:\n popSuspenseListContext(interruptedWork);\n break;\n case 10:\n popProvider(interruptedWork.type);\n break;\n case 22:\n case 23:\n popSuspenseHandler(interruptedWork);\n popHiddenContext();\n null !== current && pop(resumedCache);\n break;\n case 24:\n popProvider(CacheContext);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n lastEffect = void 0;\n var create = updateQueue.create,\n inst = updateQueue.inst;\n lastEffect = create();\n inst.destroy = lastEffect;\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor$jscomp$0\n) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n if (void 0 !== destroy) {\n inst.destroy = void 0;\n lastEffect = finishedWork;\n var nearestMountedAncestor = nearestMountedAncestor$jscomp$0,\n destroy_ = destroy;\n try {\n destroy_();\n } catch (error) {\n captureCommitPhaseError(\n lastEffect,\n nearestMountedAncestor,\n error\n );\n }\n }\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n try {\n commitCallbacks(updateQueue, instance);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n try {\n var ref = current.ref;\n if (null !== ref) {\n switch (current.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = current.stateNode;\n break;\n case 30:\n var instance = current.stateNode,\n name = getViewTransitionName(current.memoizedProps, instance);\n if (null === instance.ref || instance.ref.name !== name)\n instance.ref = createViewTransitionInstance(name);\n instanceToUse = instance.ref;\n break;\n case 7:\n if (null === current.stateNode) {\n var fragmentInstance = new FragmentInstance(current);\n traverseVisibleInstancesAndTextInstances(\n current.child,\n !1,\n addFragmentHandleToFiber,\n fragmentInstance,\n void 0,\n void 0\n );\n current.stateNode = fragmentInstance;\n }\n instanceToUse = current.stateNode;\n break;\n default:\n instanceToUse = current.stateNode;\n }\n \"function\" === typeof ref\n ? (current.refCleanup = ref(instanceToUse))\n : (ref.current = instanceToUse);\n }\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n refCleanup();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error$148) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$148);\n }\n else ref.current = null;\n}\nfunction commitNewChildToFragmentInstances(fiber, parentFragmentInstances) {\n if (\n (5 === fiber.tag || 27 === fiber.tag || 6 === fiber.tag) &&\n null === fiber.alternate &&\n null !== parentFragmentInstances\n )\n for (var i = 0; i < parentFragmentInstances.length; i++)\n commitNewChildToFragmentInstance(\n fiber.stateNode,\n parentFragmentInstances[i]\n );\n}\nfunction commitFragmentInstanceInsertionEffects(fiber) {\n for (var parent = fiber.return; null !== parent; ) {\n isFragmentInstanceParent(parent) &&\n commitNewChildToFragmentInstance(fiber.stateNode, parent.stateNode);\n if (isFragmentInstanceHostBoundary(parent)) break;\n parent = parent.return;\n }\n}\nfunction commitFragmentInstanceDeletionEffects(fiber) {\n for (var parent = fiber.return; null !== parent; ) {\n isFragmentInstanceParent(parent) &&\n deleteChildFromFragmentInstance(fiber.stateNode, parent.stateNode);\n if (isFragmentInstanceHostBoundary(parent)) break;\n parent = parent.return;\n }\n}\nfunction isFragmentInstanceHostBoundary(fiber) {\n return 5 === fiber.tag || 3 === fiber.tag || 27 === fiber.tag;\n}\nfunction isFragmentInstanceParent(fiber) {\n return fiber && 7 === fiber.tag && null !== fiber.stateNode;\n}\nfunction commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n a: switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n props.autoFocus && instance.focus();\n break a;\n case \"img\":\n props.src\n ? (instance.src = props.src)\n : props.srcSet && (instance.srcset = props.srcSet);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n var domElement = finishedWork.stateNode;\n updateProperties(domElement, finishedWork.type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n (27 === fiber.tag && isSingletonScope(fiber.type)) ||\n 4 === fiber.tag\n );\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(\n node,\n before,\n parent,\n parentFragmentInstances\n) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (tag = node.stateNode),\n before\n ? (9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent\n ).insertBefore(tag, before)\n : ((before =\n 9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent),\n before.appendChild(tag),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1)),\n commitNewChildToFragmentInstances(node, parentFragmentInstances),\n (viewTransitionMutationContext = !0);\n else if (\n 4 !== tag &&\n (27 === tag &&\n (commitNewChildToFragmentInstances(node, parentFragmentInstances),\n (parentFragmentInstances = null),\n isSingletonScope(node.type) &&\n ((parent = node.stateNode), (before = null))),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNodeIntoContainer(\n node,\n before,\n parent,\n parentFragmentInstances\n ),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(\n node,\n before,\n parent,\n parentFragmentInstances\n ),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(\n node,\n before,\n parent,\n parentFragmentInstances\n) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (tag = node.stateNode),\n before ? parent.insertBefore(tag, before) : parent.appendChild(tag),\n commitNewChildToFragmentInstances(node, parentFragmentInstances),\n (viewTransitionMutationContext = !0);\n else if (\n 4 !== tag &&\n (27 === tag &&\n (commitNewChildToFragmentInstances(node, parentFragmentInstances),\n (parentFragmentInstances = null),\n isSingletonScope(node.type) && (parent = node.stateNode)),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNode(\n node,\n before,\n parent,\n parentFragmentInstances\n ),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(\n node,\n before,\n parent,\n parentFragmentInstances\n ),\n (node = node.sibling);\n}\nfunction commitHostSingletonAcquisition(finishedWork) {\n var singleton = finishedWork.stateNode,\n props = finishedWork.memoizedProps;\n try {\n for (\n var type = finishedWork.type, attributes = singleton.attributes;\n attributes.length;\n\n )\n singleton.removeAttributeNode(attributes[0]);\n setInitialProperties(singleton, type, props);\n singleton[internalInstanceKey] = finishedWork;\n singleton[internalPropsKey] = props;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nvar shouldStartViewTransition = !1,\n appearingViewTransitions = null;\nfunction trackEnterViewTransitions(placement) {\n if (30 === placement.tag || 0 !== (placement.subtreeFlags & 33554432))\n shouldStartViewTransition = !0;\n}\nvar viewTransitionCancelableChildren = null;\nfunction pushViewTransitionCancelableScope() {\n var prevChildren = viewTransitionCancelableChildren;\n viewTransitionCancelableChildren = null;\n return prevChildren;\n}\nvar viewTransitionHostInstanceIdx = 0;\nfunction applyViewTransitionToHostInstances(\n fiber,\n name,\n className,\n collectMeasurements,\n stopAtNestedViewTransitions\n) {\n viewTransitionHostInstanceIdx = 0;\n return applyViewTransitionToHostInstancesRecursive(\n fiber.child,\n name,\n className,\n collectMeasurements,\n stopAtNestedViewTransitions\n );\n}\nfunction applyViewTransitionToHostInstancesRecursive(\n child,\n name,\n className,\n collectMeasurements,\n stopAtNestedViewTransitions\n) {\n for (var inViewport = !1; null !== child; ) {\n if (5 === child.tag) {\n var instance = child.stateNode;\n if (null !== collectMeasurements) {\n var measurement = measureInstance(instance);\n collectMeasurements.push(measurement);\n measurement.view && (inViewport = !0);\n } else\n inViewport || (measureInstance(instance).view && (inViewport = !0));\n shouldStartViewTransition = !0;\n applyViewTransitionName(\n instance,\n 0 === viewTransitionHostInstanceIdx\n ? name\n : name + \"_\" + viewTransitionHostInstanceIdx,\n className\n );\n viewTransitionHostInstanceIdx++;\n } else if (22 !== child.tag || null === child.memoizedState)\n (30 === child.tag && stopAtNestedViewTransitions) ||\n (applyViewTransitionToHostInstancesRecursive(\n child.child,\n name,\n className,\n collectMeasurements,\n stopAtNestedViewTransitions\n ) &&\n (inViewport = !0));\n child = child.sibling;\n }\n return inViewport;\n}\nfunction restoreViewTransitionOnHostInstances(\n child,\n stopAtNestedViewTransitions\n) {\n for (; null !== child; ) {\n if (5 === child.tag)\n restoreViewTransitionName(child.stateNode, child.memoizedProps);\n else if (22 !== child.tag || null === child.memoizedState)\n (30 === child.tag && stopAtNestedViewTransitions) ||\n restoreViewTransitionOnHostInstances(\n child.child,\n stopAtNestedViewTransitions\n );\n child = child.sibling;\n }\n}\nfunction commitAppearingPairViewTransitions(placement) {\n if (0 !== (placement.subtreeFlags & 18874368))\n for (placement = placement.child; null !== placement; ) {\n if (22 !== placement.tag || null === placement.memoizedState)\n if (\n (commitAppearingPairViewTransitions(placement),\n 30 === placement.tag &&\n 0 !== (placement.flags & 18874368) &&\n placement.stateNode.paired)\n ) {\n var props = placement.memoizedProps;\n if (null == props.name || \"auto\" === props.name)\n throw Error(formatProdErrorMessage(544));\n var name = props.name;\n props = getViewTransitionClassName(props.default, props.share);\n \"none\" !== props &&\n (applyViewTransitionToHostInstances(\n placement,\n name,\n props,\n null,\n !1\n ) ||\n restoreViewTransitionOnHostInstances(placement.child, !1));\n }\n placement = placement.sibling;\n }\n}\nfunction commitEnterViewTransitions(placement, gesture) {\n if (30 === placement.tag) {\n var state = placement.stateNode,\n props = placement.memoizedProps,\n name = getViewTransitionName(props, state),\n className = getViewTransitionClassName(\n props.default,\n state.paired ? props.share : props.enter\n );\n \"none\" !== className\n ? applyViewTransitionToHostInstances(placement, name, className, null, !1)\n ? (commitAppearingPairViewTransitions(placement),\n state.paired ||\n gesture ||\n scheduleViewTransitionEvent(placement, props.onEnter))\n : restoreViewTransitionOnHostInstances(placement.child, !1)\n : commitAppearingPairViewTransitions(placement);\n } else if (0 !== (placement.subtreeFlags & 33554432))\n for (placement = placement.child; null !== placement; )\n commitEnterViewTransitions(placement, gesture),\n (placement = placement.sibling);\n else commitAppearingPairViewTransitions(placement);\n}\nfunction commitDeletedPairViewTransitions(deletion) {\n if (\n null !== appearingViewTransitions &&\n 0 !== appearingViewTransitions.size\n ) {\n var pairs = appearingViewTransitions;\n if (0 !== (deletion.subtreeFlags & 18874368))\n for (deletion = deletion.child; null !== deletion; ) {\n if (22 !== deletion.tag || null === deletion.memoizedState) {\n if (30 === deletion.tag && 0 !== (deletion.flags & 18874368)) {\n var props = deletion.memoizedProps,\n name = props.name;\n if (null != name && \"auto\" !== name) {\n var pair = pairs.get(name);\n if (void 0 !== pair) {\n var className = getViewTransitionClassName(\n props.default,\n props.share\n );\n \"none\" !== className &&\n (applyViewTransitionToHostInstances(\n deletion,\n name,\n className,\n null,\n !1\n )\n ? ((className = deletion.stateNode),\n (pair.paired = className),\n (className.paired = pair),\n scheduleViewTransitionEvent(deletion, props.onShare))\n : restoreViewTransitionOnHostInstances(deletion.child, !1));\n pairs.delete(name);\n if (0 === pairs.size) break;\n }\n }\n }\n commitDeletedPairViewTransitions(deletion);\n }\n deletion = deletion.sibling;\n }\n }\n}\nfunction commitExitViewTransitions(deletion) {\n if (30 === deletion.tag) {\n var props = deletion.memoizedProps,\n name = getViewTransitionName(props, deletion.stateNode),\n pair =\n null !== appearingViewTransitions\n ? appearingViewTransitions.get(name)\n : void 0,\n className = getViewTransitionClassName(\n props.default,\n void 0 !== pair ? props.share : props.exit\n );\n \"none\" !== className &&\n (applyViewTransitionToHostInstances(deletion, name, className, null, !1)\n ? void 0 !== pair\n ? ((className = deletion.stateNode),\n (pair.paired = className),\n (className.paired = pair),\n appearingViewTransitions.delete(name),\n scheduleViewTransitionEvent(deletion, props.onShare))\n : scheduleViewTransitionEvent(deletion, props.onExit)\n : restoreViewTransitionOnHostInstances(deletion.child, !1));\n null !== appearingViewTransitions &&\n commitDeletedPairViewTransitions(deletion);\n } else if (0 !== (deletion.subtreeFlags & 33554432))\n for (deletion = deletion.child; null !== deletion; )\n commitExitViewTransitions(deletion), (deletion = deletion.sibling);\n else\n null !== appearingViewTransitions &&\n commitDeletedPairViewTransitions(deletion);\n}\nfunction commitNestedViewTransitions(changedParent) {\n for (changedParent = changedParent.child; null !== changedParent; ) {\n if (30 === changedParent.tag) {\n var props = changedParent.memoizedProps,\n name = getViewTransitionName(props, changedParent.stateNode);\n props = getViewTransitionClassName(props.default, props.update);\n changedParent.flags &= -5;\n \"none\" !== props &&\n applyViewTransitionToHostInstances(\n changedParent,\n name,\n props,\n (changedParent.memoizedState = []),\n !1\n );\n } else\n 0 !== (changedParent.subtreeFlags & 33554432) &&\n commitNestedViewTransitions(changedParent);\n changedParent = changedParent.sibling;\n }\n}\nfunction restorePairedViewTransitions(parent) {\n if (0 !== (parent.subtreeFlags & 18874368))\n for (parent = parent.child; null !== parent; ) {\n if (22 !== parent.tag || null === parent.memoizedState) {\n if (30 === parent.tag && 0 !== (parent.flags & 18874368)) {\n var instance = parent.stateNode;\n null !== instance.paired &&\n ((instance.paired = null),\n restoreViewTransitionOnHostInstances(parent.child, !1));\n }\n restorePairedViewTransitions(parent);\n }\n parent = parent.sibling;\n }\n}\nfunction restoreEnterOrExitViewTransitions(fiber) {\n if (30 === fiber.tag)\n (fiber.stateNode.paired = null),\n restoreViewTransitionOnHostInstances(fiber.child, !1),\n restorePairedViewTransitions(fiber);\n else if (0 !== (fiber.subtreeFlags & 33554432))\n for (fiber = fiber.child; null !== fiber; )\n restoreEnterOrExitViewTransitions(fiber), (fiber = fiber.sibling);\n else restorePairedViewTransitions(fiber);\n}\nfunction restoreNestedViewTransitions(changedParent) {\n for (changedParent = changedParent.child; null !== changedParent; )\n 30 === changedParent.tag\n ? restoreViewTransitionOnHostInstances(changedParent.child, !1)\n : 0 !== (changedParent.subtreeFlags & 33554432) &&\n restoreNestedViewTransitions(changedParent),\n (changedParent = changedParent.sibling);\n}\nfunction measureViewTransitionHostInstancesRecursive(\n parentViewTransition,\n child,\n newName,\n oldName,\n className,\n previousMeasurements,\n stopAtNestedViewTransitions\n) {\n for (var inViewport = !1; null !== child; ) {\n if (5 === child.tag) {\n var instance = child.stateNode;\n if (\n null !== previousMeasurements &&\n viewTransitionHostInstanceIdx < previousMeasurements.length\n ) {\n var previousMeasurement =\n previousMeasurements[viewTransitionHostInstanceIdx],\n nextMeasurement = measureInstance(instance);\n if (previousMeasurement.view || nextMeasurement.view) inViewport = !0;\n var JSCompiler_temp;\n if ((JSCompiler_temp = 0 === (parentViewTransition.flags & 4)))\n if (nextMeasurement.clip) JSCompiler_temp = !0;\n else {\n JSCompiler_temp = previousMeasurement.rect;\n var newRect = nextMeasurement.rect;\n JSCompiler_temp =\n JSCompiler_temp.y !== newRect.y ||\n JSCompiler_temp.x !== newRect.x ||\n JSCompiler_temp.height !== newRect.height ||\n JSCompiler_temp.width !== newRect.width;\n }\n JSCompiler_temp && (parentViewTransition.flags |= 4);\n nextMeasurement.abs\n ? (nextMeasurement = !previousMeasurement.abs)\n : ((previousMeasurement = previousMeasurement.rect),\n (nextMeasurement = nextMeasurement.rect),\n (nextMeasurement =\n previousMeasurement.height !== nextMeasurement.height ||\n previousMeasurement.width !== nextMeasurement.width));\n nextMeasurement && (parentViewTransition.flags |= 32);\n } else parentViewTransition.flags |= 32;\n 0 !== (parentViewTransition.flags & 4) &&\n applyViewTransitionName(\n instance,\n 0 === viewTransitionHostInstanceIdx\n ? newName\n : newName + \"_\" + viewTransitionHostInstanceIdx,\n className\n );\n (inViewport && 0 !== (parentViewTransition.flags & 4)) ||\n (null === viewTransitionCancelableChildren &&\n (viewTransitionCancelableChildren = []),\n viewTransitionCancelableChildren.push(\n instance,\n 0 === viewTransitionHostInstanceIdx\n ? oldName\n : oldName + \"_\" + viewTransitionHostInstanceIdx,\n child.memoizedProps\n ));\n viewTransitionHostInstanceIdx++;\n } else if (22 !== child.tag || null === child.memoizedState)\n 30 === child.tag && stopAtNestedViewTransitions\n ? (parentViewTransition.flags |= child.flags & 32)\n : measureViewTransitionHostInstancesRecursive(\n parentViewTransition,\n child.child,\n newName,\n oldName,\n className,\n previousMeasurements,\n stopAtNestedViewTransitions\n ) && (inViewport = !0);\n child = child.sibling;\n }\n return inViewport;\n}\nfunction measureNestedViewTransitions(changedParent, gesture) {\n for (changedParent = changedParent.child; null !== changedParent; ) {\n if (30 === changedParent.tag) {\n var props = changedParent.memoizedProps,\n state = changedParent.stateNode,\n name = getViewTransitionName(props, state),\n className = getViewTransitionClassName(props.default, props.update);\n if (gesture) {\n state = state.clones;\n var previousMeasurements =\n null === state ? null : state.map(measureClonedInstance);\n } else\n (previousMeasurements = changedParent.memoizedState),\n (changedParent.memoizedState = null);\n state = changedParent;\n var child = changedParent.child;\n viewTransitionHostInstanceIdx = 0;\n name = measureViewTransitionHostInstancesRecursive(\n state,\n child,\n name,\n name,\n className,\n previousMeasurements,\n !1\n );\n 0 !== (changedParent.flags & 4) &&\n name &&\n (gesture || scheduleViewTransitionEvent(changedParent, props.onUpdate));\n } else\n 0 !== (changedParent.subtreeFlags & 33554432) &&\n measureNestedViewTransitions(changedParent, gesture);\n changedParent = changedParent.sibling;\n }\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n offscreenDirectParentIsHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null,\n viewTransitionContextChanged = !1,\n inUpdateViewTransition = !1,\n rootViewTransitionAffected = !1,\n rootViewTransitionNameCanceled = !1;\nfunction commitBeforeMutationEffects(root, firstChild, committedLanes) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$21) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };\n _enabled = !1;\n committedLanes = (committedLanes & 335544064) === committedLanes;\n nextEffect = firstChild;\n for (firstChild = committedLanes ? 9270 : 1024; null !== nextEffect; ) {\n root = nextEffect;\n if (\n committedLanes &&\n ((JSCompiler_temp = root.deletions), null !== JSCompiler_temp)\n )\n for (\n anchorOffset = 0;\n anchorOffset < JSCompiler_temp.length;\n anchorOffset++\n )\n committedLanes &&\n commitExitViewTransitions(JSCompiler_temp[anchorOffset]);\n if (null === root.alternate && 0 !== (root.flags & 2))\n committedLanes && trackEnterViewTransitions(root),\n commitBeforeMutationEffects_complete(committedLanes);\n else {\n if (22 === root.tag)\n if (((JSCompiler_temp = root.alternate), null !== root.memoizedState)) {\n null !== JSCompiler_temp &&\n null === JSCompiler_temp.memoizedState &&\n committedLanes &&\n commitExitViewTransitions(JSCompiler_temp);\n commitBeforeMutationEffects_complete(committedLanes);\n continue;\n } else if (\n null !== JSCompiler_temp &&\n null !== JSCompiler_temp.memoizedState\n ) {\n committedLanes && trackEnterViewTransitions(root);\n commitBeforeMutationEffects_complete(committedLanes);\n continue;\n }\n JSCompiler_temp = root.child;\n 0 !== (root.subtreeFlags & firstChild) && null !== JSCompiler_temp\n ? ((JSCompiler_temp.return = root), (nextEffect = JSCompiler_temp))\n : (committedLanes && commitNestedViewTransitions(root),\n commitBeforeMutationEffects_complete(committedLanes));\n }\n }\n appearingViewTransitions = null;\n}\nfunction commitBeforeMutationEffects_complete(\n isViewTransitionEligible$jscomp$0\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect,\n isViewTransitionEligible = isViewTransitionEligible$jscomp$0,\n current = fiber.alternate,\n flags = fiber.flags;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (flags & 1024) && null !== current) {\n isViewTransitionEligible = void 0;\n flags = current.memoizedProps;\n current = current.memoizedState;\n var instance = fiber.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n fiber.type,\n flags\n );\n isViewTransitionEligible = instance.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n current\n );\n instance.__reactInternalSnapshotBeforeUpdate =\n isViewTransitionEligible;\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n }\n break;\n case 3:\n if (0 !== (flags & 1024))\n if (\n ((current = fiber.stateNode.containerInfo),\n (isViewTransitionEligible = current.nodeType),\n 9 === isViewTransitionEligible)\n )\n clearContainerSparingly(current);\n else if (1 === isViewTransitionEligible)\n switch (current.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(current);\n break;\n default:\n current.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n case 30:\n isViewTransitionEligible &&\n null !== current &&\n ((isViewTransitionEligible = getViewTransitionName(\n current.memoizedProps,\n current.stateNode\n )),\n (flags = fiber.memoizedProps),\n (flags = getViewTransitionClassName(flags.default, flags.update)),\n \"none\" !== flags &&\n applyViewTransitionToHostInstances(\n current,\n isViewTransitionEligible,\n flags,\n (current.memoizedState = []),\n !0\n ));\n break;\n default:\n if (0 !== (flags & 1024)) throw Error(formatProdErrorMessage(163));\n }\n current = fiber.sibling;\n if (null !== current) {\n current.return = fiber.return;\n nextEffect = current;\n break;\n }\n nextEffect = fiber.return;\n }\n}\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitHookEffectListMount(5, finishedWork);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n try {\n finishedRoot.componentDidUpdate(\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n } catch (error$146) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$146\n );\n }\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (\n flags & 64 &&\n ((finishedRoot = finishedWork.updateQueue), null !== finishedRoot)\n ) {\n current = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n current = finishedWork.child.stateNode;\n break;\n case 1:\n current = finishedWork.child.stateNode;\n }\n try {\n commitCallbacks(finishedRoot, current);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 27:\n null === current &&\n flags & 4 &&\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n null === current && flags & 4 && commitHostMount(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 31:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n flags & 64 &&\n ((finishedRoot = finishedWork.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated),\n null !== finishedRoot &&\n ((finishedWork = retryDehydratedSuspenseBoundary.bind(\n null,\n finishedWork\n )),\n registerSuspenseInstanceRetry(finishedRoot, finishedWork))));\n break;\n case 22:\n flags = null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!flags) {\n var newOffscreenSubtreeWasHidden =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n current = offscreenSubtreeIsHidden;\n prevProps = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = flags;\n (offscreenSubtreeWasHidden = newOffscreenSubtreeWasHidden) && !prevProps\n ? ((flags = 2),\n 0 !== (finishedWork.subtreeFlags & 8772) && (flags |= 1),\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n flags\n ))\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = current;\n offscreenSubtreeWasHidden = prevProps;\n }\n break;\n case 30:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 7:\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction hideOrUnhideAllChildren(parentFiber, isHidden) {\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n hideOrUnhideAllChildrenOnFiber(parentFiber, isHidden),\n (parentFiber = parentFiber.sibling);\n}\nfunction hideOrUnhideAllChildrenOnFiber(fiber, isHidden) {\n switch (fiber.tag) {\n case 5:\n case 26:\n try {\n var instance = fiber.stateNode;\n if (isHidden) {\n var style = instance.style;\n \"function\" === typeof style.setProperty\n ? style.setProperty(\"display\", \"none\", \"important\")\n : (style.display = \"none\");\n } else {\n var instance$jscomp$0 = fiber.stateNode,\n styleProp = fiber.memoizedProps.style,\n display =\n void 0 !== styleProp &&\n null !== styleProp &&\n styleProp.hasOwnProperty(\"display\")\n ? styleProp.display\n : null;\n instance$jscomp$0.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n hideOrUnhideNearestPortals(fiber, isHidden);\n break;\n case 6:\n try {\n (fiber.stateNode.nodeValue = isHidden ? \"\" : fiber.memoizedProps),\n (viewTransitionMutationContext = !0);\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n break;\n case 18:\n try {\n var instance$jscomp$1 = fiber.stateNode;\n isHidden\n ? hideOrUnhideDehydratedBoundary(instance$jscomp$1, !0)\n : hideOrUnhideDehydratedBoundary(fiber.stateNode, !1);\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n break;\n case 22:\n case 23:\n null === fiber.memoizedState && hideOrUnhideAllChildren(fiber, isHidden);\n break;\n default:\n hideOrUnhideAllChildren(fiber, isHidden);\n }\n}\nfunction hideOrUnhideNearestPortals(parentFiber, isHidden$jscomp$0) {\n if (parentFiber.subtreeFlags & 67108864)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n a: {\n var fiber = parentFiber,\n isHidden = isHidden$jscomp$0;\n switch (fiber.tag) {\n case 4:\n hideOrUnhideAllChildrenOnFiber(fiber, isHidden);\n break a;\n case 22:\n null === fiber.memoizedState &&\n hideOrUnhideNearestPortals(fiber, isHidden);\n break a;\n default:\n hideOrUnhideNearestPortals(fiber, isHidden);\n }\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n !offscreenSubtreeWasHidden &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n commitFragmentInstanceDeletionEffects(deletedFiber);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n isSingletonScope(deletedFiber.type) &&\n ((hostParent = deletedFiber.stateNode), (hostParentIsContainer = !1));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n releaseSingletonInstance(\n deletedFiber.stateNode,\n deletedFiber.type,\n deletedFiber.memoizedProps\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor),\n commitFragmentInstanceDeletionEffects(deletedFiber);\n case 6:\n 6 === deletedFiber.tag &&\n commitFragmentInstanceDeletionEffects(deletedFiber);\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n (9 === hostParent.nodeType\n ? hostParent.body\n : \"HTML\" === hostParent.nodeName\n ? hostParent.ownerDocument.body\n : hostParent\n ).removeChild(deletedFiber.stateNode),\n (viewTransitionMutationContext = !0);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode),\n (viewTransitionMutationContext = !0);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n clearHydrationBoundary(\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot,\n deletedFiber.stateNode\n ),\n retryIfBlockedOn(finishedRoot))\n : clearHydrationBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n case 30:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 7:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction commitActivityHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))\n ) {\n finishedRoot = finishedRoot.dehydrated;\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 31:\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(formatProdErrorMessage(435, finishedWork.tag));\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n if (!retryCache.has(wakeable)) {\n retryCache.add(wakeable);\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n wakeable.then(retry, retry);\n }\n });\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber, lanes) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n if (isSingletonScope(parent.type)) {\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n }\n break;\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent) throw Error(formatProdErrorMessage(160));\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n root = childToDelete.alternate;\n null !== root && (root.return = null);\n childToDelete.return = null;\n }\n if (parentFiber.subtreeFlags & 13886)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0, lanes),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root, lanes) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n if (\n flags & 4 &&\n ((current = finishedWork.updateQueue),\n (current = null !== current ? current.events : null),\n null !== current)\n )\n for (var ii = 0; ii < current.length; ii++) {\n var _eventPayloads$ii2 = current[ii];\n _eventPayloads$ii2.ref.impl = _eventPayloads$ii2.nextImpl;\n }\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork),\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((finishedWork = finishedWork.updateQueue),\n null !== finishedWork &&\n ((root = finishedWork.callbacks),\n null !== root &&\n ((lanes = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === lanes ? root : lanes.concat(root)))));\n break;\n case 26:\n ii = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4)\n if (\n ((flags = null !== current ? current.memoizedState : null),\n (lanes = finishedWork.memoizedState),\n null === current)\n )\n if (null === lanes)\n if (null === finishedWork.stateNode)\n if (offscreenSubtreeIsHidden)\n finishedWork.stateNode = createHoistableInstance(\n finishedWork.type,\n finishedWork.memoizedProps,\n root.containerInfo,\n finishedWork\n );\n else {\n a: {\n root = finishedWork.type;\n lanes = finishedWork.memoizedProps;\n flags = ii.ownerDocument || ii;\n b: switch (root) {\n case \"title\":\n current = flags.getElementsByTagName(\"title\")[0];\n if (\n !current ||\n current[internalHoistableMarker] ||\n current[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" === current.namespaceURI ||\n current.hasAttribute(\"itemprop\")\n )\n (current = flags.createElement(root)),\n flags.head.insertBefore(\n current,\n flags.querySelector(\"head > title\")\n );\n setInitialProperties(current, root, lanes);\n current[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(current);\n root = current;\n break a;\n case \"link\":\n if (\n (ii = getHydratableHoistableCache(\n \"link\",\n \"href\",\n flags\n ).get(root + (lanes.href || \"\")))\n )\n for (\n _eventPayloads$ii2 = 0;\n _eventPayloads$ii2 < ii.length;\n _eventPayloads$ii2++\n )\n if (\n ((current = ii[_eventPayloads$ii2]),\n current.getAttribute(\"href\") ===\n (null == lanes.href || \"\" === lanes.href\n ? null\n : lanes.href) &&\n current.getAttribute(\"rel\") ===\n (null == lanes.rel ? null : lanes.rel) &&\n current.getAttribute(\"title\") ===\n (null == lanes.title ? null : lanes.title) &&\n current.getAttribute(\"crossorigin\") ===\n (null == lanes.crossOrigin\n ? null\n : lanes.crossOrigin))\n ) {\n ii.splice(_eventPayloads$ii2, 1);\n break b;\n }\n current = flags.createElement(root);\n setInitialProperties(current, root, lanes);\n flags.head.appendChild(current);\n break;\n case \"meta\":\n if (\n (ii = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n flags\n ).get(root + (lanes.content || \"\")))\n )\n for (\n _eventPayloads$ii2 = 0;\n _eventPayloads$ii2 < ii.length;\n _eventPayloads$ii2++\n )\n if (\n ((current = ii[_eventPayloads$ii2]),\n current.getAttribute(\"content\") ===\n (null == lanes.content\n ? null\n : \"\" + lanes.content) &&\n current.getAttribute(\"name\") ===\n (null == lanes.name ? null : lanes.name) &&\n current.getAttribute(\"property\") ===\n (null == lanes.property\n ? null\n : lanes.property) &&\n current.getAttribute(\"http-equiv\") ===\n (null == lanes.httpEquiv\n ? null\n : lanes.httpEquiv) &&\n current.getAttribute(\"charset\") ===\n (null == lanes.charSet ? null : lanes.charSet))\n ) {\n ii.splice(_eventPayloads$ii2, 1);\n break b;\n }\n current = flags.createElement(root);\n setInitialProperties(current, root, lanes);\n flags.head.appendChild(current);\n break;\n default:\n throw Error(formatProdErrorMessage(468, root));\n }\n current[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(current);\n root = current;\n }\n finishedWork.stateNode = root;\n }\n else\n offscreenSubtreeIsHidden ||\n mountHoistable(ii, finishedWork.type, finishedWork.stateNode);\n else\n finishedWork.stateNode = acquireResource(\n ii,\n lanes,\n finishedWork.memoizedProps\n );\n else\n flags !== lanes\n ? (null === flags\n ? ((root = current.stateNode),\n null === root ||\n offscreenSubtreeWasHidden ||\n root.parentNode.removeChild(root))\n : flags.count--,\n null === lanes\n ? offscreenSubtreeIsHidden ||\n mountHoistable(ii, finishedWork.type, finishedWork.stateNode)\n : acquireResource(ii, lanes, finishedWork.memoizedProps))\n : null === lanes &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 27:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n null !== current &&\n flags & 4 &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 5:\n ii = offscreenDirectParentIsHidden;\n offscreenDirectParentIsHidden = !1;\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n offscreenDirectParentIsHidden = ii;\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n root = finishedWork.stateNode;\n try {\n setTextContent(root, \"\"), (viewTransitionMutationContext = !0);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((root = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n root,\n null !== current ? current.memoizedProps : root\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n root = finishedWork.memoizedProps;\n lanes = finishedWork.stateNode;\n try {\n (lanes.nodeValue = root), (viewTransitionMutationContext = !0);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n viewTransitionMutationContext = !1;\n tagCaches = null;\n ii = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n currentHoistableRoot = ii;\n commitReconciliationEffects(finishedWork);\n if (flags & 4 && null !== current && current.memoizedState.isDehydrated)\n try {\n retryIfBlockedOn(root.containerInfo);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n viewTransitionMutationContext = !1;\n break;\n case 4:\n flags = offscreenDirectParentIsHidden;\n offscreenDirectParentIsHidden = offscreenSubtreeIsHidden;\n current = pushMutationContext();\n ii = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = ii;\n viewTransitionMutationContext &&\n inUpdateViewTransition &&\n (rootViewTransitionAffected = !0);\n viewTransitionMutationContext = current;\n offscreenDirectParentIsHidden = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n break;\n case 31:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((root = finishedWork.updateQueue),\n null !== root &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, root)));\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now());\n flags & 4 &&\n ((root = finishedWork.updateQueue),\n null !== root &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, root)));\n break;\n case 22:\n ii = null !== finishedWork.memoizedState;\n _eventPayloads$ii2 = null !== current && null !== current.memoizedState;\n var prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden,\n prevOffscreenDirectParentIsHidden$166 = offscreenDirectParentIsHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || ii;\n offscreenDirectParentIsHidden =\n prevOffscreenDirectParentIsHidden$166 || ii;\n offscreenSubtreeWasHidden =\n prevOffscreenSubtreeWasHidden || _eventPayloads$ii2;\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n offscreenDirectParentIsHidden = prevOffscreenDirectParentIsHidden$166;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n commitReconciliationEffects(finishedWork);\n flags & 8192 &&\n ((root = finishedWork.stateNode),\n (root._visibility = ii ? root._visibility & -2 : root._visibility | 1),\n !ii ||\n null === current ||\n _eventPayloads$ii2 ||\n offscreenSubtreeIsHidden ||\n offscreenSubtreeWasHidden ||\n ((root = _eventPayloads$ii2 || offscreenSubtreeWasHidden),\n (lanes = offscreenSubtreeIsHidden),\n (current = offscreenSubtreeWasHidden),\n (offscreenSubtreeIsHidden = ii || offscreenSubtreeIsHidden),\n (offscreenSubtreeWasHidden = root),\n recursivelyTraverseDisappearLayoutEffects(finishedWork, 2),\n (offscreenSubtreeIsHidden = lanes),\n (offscreenSubtreeWasHidden = current)),\n (!ii && offscreenDirectParentIsHidden) ||\n hideOrUnhideAllChildren(finishedWork, ii));\n flags & 4 &&\n ((root = finishedWork.updateQueue),\n null !== root &&\n ((lanes = root.retryQueue),\n null !== lanes &&\n ((root.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, lanes))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((root = finishedWork.updateQueue),\n null !== root &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, root)));\n break;\n case 30:\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags = pushMutationContext();\n ii = inUpdateViewTransition;\n _eventPayloads$ii2 = (lanes & 335544064) === lanes;\n prevOffscreenSubtreeIsHidden = finishedWork.memoizedProps;\n inUpdateViewTransition =\n _eventPayloads$ii2 &&\n \"none\" !==\n getViewTransitionClassName(\n prevOffscreenSubtreeIsHidden.default,\n prevOffscreenSubtreeIsHidden.update\n );\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n _eventPayloads$ii2 &&\n null !== current &&\n viewTransitionMutationContext &&\n (finishedWork.flags |= 4);\n inUpdateViewTransition = ii;\n viewTransitionMutationContext = flags;\n break;\n case 21:\n break;\n case 7:\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return)),\n current &&\n null !== current.stateNode &&\n (current.stateNode._fragmentFiber = finishedWork);\n default:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n for (\n var hostParentFiber, parentFiber = finishedWork.return;\n null !== parentFiber;\n\n ) {\n if (isHostParent(parentFiber)) {\n hostParentFiber = parentFiber;\n break;\n }\n parentFiber = parentFiber.return;\n }\n parentFiber = null;\n for (var parent = finishedWork.return; null !== parent; ) {\n if (isFragmentInstanceParent(parent)) {\n var fragmentInstance = parent.stateNode;\n null === parentFiber\n ? (parentFiber = [fragmentInstance])\n : parentFiber.push(fragmentInstance);\n }\n if (isFragmentInstanceHostBoundary(parent)) break;\n parent = parent.return;\n }\n var JSCompiler_inline_result = parentFiber;\n if (null == hostParentFiber) throw Error(formatProdErrorMessage(160));\n switch (hostParentFiber.tag) {\n case 27:\n var parent$jscomp$0 = hostParentFiber.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(\n finishedWork,\n before,\n parent$jscomp$0,\n JSCompiler_inline_result\n );\n break;\n case 5:\n var parent$149 = hostParentFiber.stateNode;\n hostParentFiber.flags & 32 &&\n (setTextContent(parent$149, \"\"), (hostParentFiber.flags &= -33));\n var before$150 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(\n finishedWork,\n before$150,\n parent$149,\n JSCompiler_inline_result\n );\n break;\n case 3:\n case 4:\n var parent$151 = hostParentFiber.stateNode.containerInfo,\n before$152 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$152,\n parent$151,\n JSCompiler_inline_result\n );\n break;\n default:\n throw Error(formatProdErrorMessage(161));\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag &&\n fiber.flags & 1024 &&\n ((fiber = fiber.stateNode),\n (_enabled = !0),\n fiber.reset(),\n (_enabled = !1));\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAfterMutationEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 9270)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitAfterMutationEffectsOnFiber(parentFiber, root),\n (parentFiber = parentFiber.sibling);\n else measureNestedViewTransitions(parentFiber, !1);\n}\nfunction commitAfterMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate;\n if (null === current) commitEnterViewTransitions(finishedWork, !1);\n else\n switch (finishedWork.tag) {\n case 3:\n rootViewTransitionNameCanceled = viewTransitionContextChanged = !1;\n pushViewTransitionCancelableScope();\n recursivelyTraverseAfterMutationEffects(root, finishedWork);\n if (!viewTransitionContextChanged && !rootViewTransitionAffected) {\n finishedWork = viewTransitionCancelableChildren;\n if (null !== finishedWork)\n for (var i = 0; i < finishedWork.length; i += 3) {\n current = finishedWork[i];\n var oldName = finishedWork[i + 1];\n restoreViewTransitionName(current, finishedWork[i + 2]);\n current = current.ownerDocument.documentElement;\n null !== current &&\n current.animate(\n { opacity: [0, 0], pointerEvents: [\"none\", \"none\"] },\n {\n duration: 0,\n fill: \"forwards\",\n pseudoElement: \"::view-transition-group(\" + oldName + \")\"\n }\n );\n }\n finishedWork = root.containerInfo;\n finishedWork =\n 9 === finishedWork.nodeType\n ? finishedWork.documentElement\n : finishedWork.ownerDocument.documentElement;\n null !== finishedWork &&\n \"\" === finishedWork.style.viewTransitionName &&\n ((finishedWork.style.viewTransitionName = \"none\"),\n finishedWork.animate(\n { opacity: [0, 0], pointerEvents: [\"none\", \"none\"] },\n {\n duration: 0,\n fill: \"forwards\",\n pseudoElement: \"::view-transition-group(root)\"\n }\n ),\n finishedWork.animate(\n { width: [0, 0], height: [0, 0] },\n {\n duration: 0,\n fill: \"forwards\",\n pseudoElement: \"::view-transition\"\n }\n ));\n rootViewTransitionNameCanceled = !0;\n }\n viewTransitionCancelableChildren = null;\n break;\n case 5:\n recursivelyTraverseAfterMutationEffects(root, finishedWork);\n break;\n case 4:\n i = viewTransitionContextChanged;\n viewTransitionContextChanged = !1;\n recursivelyTraverseAfterMutationEffects(root, finishedWork);\n viewTransitionContextChanged && (rootViewTransitionAffected = !0);\n viewTransitionContextChanged = i;\n break;\n case 22:\n null === finishedWork.memoizedState &&\n (null !== current.memoizedState\n ? commitEnterViewTransitions(finishedWork, !1)\n : recursivelyTraverseAfterMutationEffects(root, finishedWork));\n break;\n case 30:\n i = viewTransitionContextChanged;\n oldName = pushViewTransitionCancelableScope();\n viewTransitionContextChanged = !1;\n recursivelyTraverseAfterMutationEffects(root, finishedWork);\n viewTransitionContextChanged && (finishedWork.flags |= 4);\n var props = finishedWork.memoizedProps,\n state = finishedWork.stateNode;\n root = getViewTransitionName(props, state);\n state = getViewTransitionName(current.memoizedProps, state);\n var className = getViewTransitionClassName(props.default, props.update);\n \"none\" === className\n ? (root = !1)\n : ((props = current.memoizedState),\n (current.memoizedState = null),\n (current = finishedWork.child),\n (viewTransitionHostInstanceIdx = 0),\n (root = measureViewTransitionHostInstancesRecursive(\n finishedWork,\n current,\n root,\n state,\n className,\n props,\n !0\n )),\n viewTransitionHostInstanceIdx !==\n (null === props ? 0 : props.length) &&\n (finishedWork.flags |= 32));\n 0 !== (finishedWork.flags & 4) && root\n ? (scheduleViewTransitionEvent(\n finishedWork,\n finishedWork.memoizedProps.onUpdate\n ),\n (viewTransitionCancelableChildren = oldName))\n : null !== oldName &&\n (oldName.push.apply(oldName, viewTransitionCancelableChildren),\n (viewTransitionCancelableChildren = oldName));\n viewTransitionContextChanged = 0 !== (finishedWork.flags & 32) ? !0 : i;\n break;\n default:\n recursivelyTraverseAfterMutationEffects(root, finishedWork);\n }\n}\nfunction recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction recursivelyTraverseDisappearLayoutEffects(\n parentFiber,\n layoutEffectTraversalFlags$jscomp$0\n) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber,\n layoutEffectTraversalFlags = layoutEffectTraversalFlags$jscomp$0;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\n break;\n case 27:\n 0 !== (layoutEffectTraversalFlags & 2) &&\n releaseSingletonInstance(\n finishedWork.stateNode,\n finishedWork.type,\n finishedWork.memoizedProps\n );\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n (5 !== finishedWork.tag && 27 !== finishedWork.tag) ||\n commitFragmentInstanceDeletionEffects(finishedWork);\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\n break;\n case 6:\n commitFragmentInstanceDeletionEffects(finishedWork);\n break;\n case 26:\n safelyDetachRef(finishedWork, finishedWork.return);\n instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState ||\n null === instance ||\n offscreenSubtreeWasHidden ||\n instance.parentNode.removeChild(instance);\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\n break;\n case 30:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\n break;\n case 7:\n safelyDetachRef(finishedWork, finishedWork.return);\n default:\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n layoutEffectTraversalFlags\n) {\n layoutEffectTraversalFlags =\n 0 !== (parentFiber.subtreeFlags & 8772)\n ? layoutEffectTraversalFlags\n : layoutEffectTraversalFlags & -2;\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var current = parentFiber.alternate,\n finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags,\n includeWorkInProgressEffects = 0 !== (layoutEffectTraversalFlags & 1);\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\n );\n current = finishedWork;\n finishedRoot = current.stateNode;\n if (\"function\" === typeof finishedRoot.componentDidMount)\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n current = finishedWork;\n finishedRoot = current.updateQueue;\n if (null !== finishedRoot) {\n var instance = current.stateNode;\n try {\n var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;\n finishedRoot < hiddenCallbacks.length;\n finishedRoot++\n )\n callCallback(hiddenCallbacks[finishedRoot], instance);\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n 0 !== (layoutEffectTraversalFlags & 2) &&\n commitHostSingletonAcquisition(finishedWork);\n case 5:\n (5 !== finishedWork.tag && 27 !== finishedWork.tag) ||\n commitFragmentInstanceInsertionEffects(finishedWork);\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 6:\n commitFragmentInstanceInsertionEffects(finishedWork);\n break;\n case 26:\n instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState ||\n null === instance ||\n offscreenSubtreeIsHidden ||\n mountHoistable(\n getHoistableRoot(instance.ownerDocument),\n finishedWork.type,\n instance\n );\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\n );\n break;\n case 31:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 30:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 7:\n safelyAttachRef(finishedWork, finishedWork.return);\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && current.refCount++,\n null != previousCache && releaseCache(previousCache));\n}\nfunction commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (finishedWork.refCount++, null != current && releaseCache(current));\n}\nfunction recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n) {\n var isViewTransitionEligible =\n (committedLanes & 335544064) === committedLanes;\n if (parentFiber.subtreeFlags & (isViewTransitionEligible ? 10262 : 10256))\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n else isViewTransitionEligible && restoreNestedViewTransitions(parentFiber);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var isViewTransitionEligible =\n (committedLanes & 335544064) === committedLanes;\n isViewTransitionEligible &&\n null === finishedWork.alternate &&\n null !== finishedWork.return &&\n null !== finishedWork.return.alternate &&\n restoreEnterOrExitViewTransitions(finishedWork);\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 && commitHookEffectListMount(9, finishedWork);\n break;\n case 1:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 3:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n isViewTransitionEligible &&\n rootViewTransitionNameCanceled &&\n ((finishedRoot = finishedRoot.containerInfo),\n (finishedRoot =\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot),\n \"root\" === finishedRoot.style.viewTransitionName &&\n (finishedRoot.style.viewTransitionName = \"\"),\n (finishedRoot = finishedRoot.ownerDocument.documentElement),\n null !== finishedRoot &&\n \"none\" === finishedRoot.style.viewTransitionName &&\n (finishedRoot.style.viewTransitionName = \"\"));\n flags & 2048 &&\n ((flags = null),\n null !== finishedWork.alternate &&\n (flags = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== flags &&\n (finishedWork.refCount++, null != flags && releaseCache(flags)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags = finishedWork.stateNode;\n try {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n id = _finishedWork$memoize2.id,\n onPostCommit = _finishedWork$memoize2.onPostCommit;\n \"function\" === typeof onPostCommit &&\n onPostCommit(\n id,\n null === finishedWork.alternate ? \"mount\" : \"update\",\n flags.passiveEffectDuration,\n -0\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 31:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 13:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 23:\n break;\n case 22:\n _finishedWork$memoize2 = finishedWork.stateNode;\n id = finishedWork.alternate;\n null !== finishedWork.memoizedState\n ? (isViewTransitionEligible &&\n null !== id &&\n null === id.memoizedState &&\n restoreEnterOrExitViewTransitions(id),\n _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n ))\n : (isViewTransitionEligible &&\n null !== id &&\n null !== id.memoizedState &&\n restoreEnterOrExitViewTransitions(finishedWork),\n _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : ((_finishedWork$memoize2._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256) || !1\n )));\n flags & 2048 && commitOffscreenPassiveMountEffects(id, finishedWork);\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n case 30:\n isViewTransitionEligible &&\n ((flags = finishedWork.alternate),\n null !== flags &&\n (restoreViewTransitionOnHostInstances(flags.child, !0),\n restoreViewTransitionOnHostInstances(finishedWork.child, !0)));\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n }\n}\nfunction recursivelyTraverseReconnectPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n committedLanes$jscomp$0,\n committedTransitions$jscomp$0,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects &&\n (0 !== (parentFiber.subtreeFlags & 10256) || !1);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n committedLanes = committedLanes$jscomp$0,\n committedTransitions = committedTransitions$jscomp$0,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(8, finishedWork);\n break;\n case 23:\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? instance._visibility & 2\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : ((instance._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nvar suspenseyCommitFlag = 8192;\nfunction recursivelyAccumulateSuspenseyCommit(\n parentFiber,\n committedLanes,\n suspendedState\n) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(\n parentFiber,\n committedLanes,\n suspendedState\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction accumulateSuspenseyCommitOnFiber(\n fiber,\n committedLanes,\n suspendedState\n) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n fiber.flags & suspenseyCommitFlag &&\n (null !== fiber.memoizedState\n ? suspendResource(\n suspendedState,\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n )\n : ((fiber = fiber.stateNode),\n (committedLanes & 335544128) === committedLanes &&\n suspendInstance(suspendedState, fiber)));\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n fiber.flags & suspenseyCommitFlag &&\n ((fiber = fiber.stateNode),\n (committedLanes & 335544128) === committedLanes &&\n suspendInstance(suspendedState, fiber));\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ));\n break;\n case 30:\n if (\n 0 !== (fiber.flags & suspenseyCommitFlag) &&\n ((previousHoistableRoot = fiber.memoizedProps.name),\n null != previousHoistableRoot && \"auto\" !== previousHoistableRoot)\n ) {\n var state = fiber.stateNode;\n state.paired = null;\n null === appearingViewTransitions &&\n (appearingViewTransitions = new Map());\n appearingViewTransitions.set(previousHoistableRoot, state);\n }\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n }\n}\nfunction detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n}\nfunction recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookEffectListUnmount(9, finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 12:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n instance._visibility & 2 &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((instance._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n}\nfunction recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n deletions = parentFiber;\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, deletions, deletions.return);\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n break;\n case 22:\n i = deletions.stateNode;\n i._visibility & 2 &&\n ((i._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(deletions));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);\n break;\n case 23:\n case 22:\n if (\n null !== fiber.memoizedState &&\n null !== fiber.memoizedState.cachePool\n ) {\n var cache = fiber.memoizedState.cachePool.pool;\n null != cache && cache.refCount++;\n }\n break;\n case 24:\n releaseCache(fiber.memoizedState.cache);\n }\n cache = fiber.child;\n if (null !== cache) (cache.return = fiber), (nextEffect = cache);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n cache = nextEffect;\n var sibling = cache.sibling,\n returnFiber = cache.return;\n detachFiberAfterEffects(cache);\n if (cache === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break a;\n }\n nextEffect = returnFiber;\n }\n }\n}\nvar DefaultAsyncDispatcher = {\n getCacheForType: function (resourceType) {\n var cache = readContext(CacheContext),\n cacheForType = cache.data.get(resourceType);\n void 0 === cacheForType &&\n ((cacheForType = resourceType()),\n cache.data.set(resourceType, cacheForType));\n return cacheForType;\n },\n cacheSignal: function () {\n return readContext(CacheContext).controller.signal;\n }\n },\n PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n workInProgressSuspendedReason = 0,\n workInProgressThrownValue = null,\n workInProgressRootDidSkipSuspendedSiblings = !1,\n workInProgressRootIsPrerendering = !1,\n workInProgressRootDidAttachPingListener = !1,\n entangledRenderLanes = 0,\n workInProgressRootExitStatus = 0,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressDeferredLane = 0,\n workInProgressSuspendedRetryLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1,\n globalMostRecentFallbackTime = 0,\n globalMostRecentTransitionTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n pendingEffectsStatus = 0,\n pendingEffectsRoot = null,\n pendingFinishedWork = null,\n pendingEffectsLanes = 0,\n pendingEffectsRemainingLanes = 0,\n pendingPassiveTransitions = null,\n pendingRecoverableErrors = null,\n pendingViewTransition = null,\n pendingViewTransitionEvents = null,\n pendingTransitionTypes = null,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null;\nfunction requestUpdateLane() {\n return 0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes\n ? workInProgressRootRenderLanes & -workInProgressRootRenderLanes\n : null !== ReactSharedInternals.T\n ? requestTransitionLane()\n : resolveUpdatePriority();\n}\nfunction requestDeferredLane() {\n if (0 === workInProgressDeferredLane)\n if (0 === (workInProgressRootRenderLanes & 536870912) || isHydrating) {\n var lane = nextTransitionDeferredLane;\n nextTransitionDeferredLane <<= 1;\n 0 === (nextTransitionDeferredLane & 3932160) &&\n (nextTransitionDeferredLane = 262144);\n workInProgressDeferredLane = lane;\n } else workInProgressDeferredLane = 536870912;\n lane = suspenseHandlerStackCursor.current;\n null !== lane && (lane.flags |= 32);\n return workInProgressDeferredLane;\n}\nfunction scheduleViewTransitionEvent(fiber, callback) {\n if (null != callback) {\n var state = fiber.stateNode,\n instance = state.ref;\n null === instance &&\n (instance = state.ref =\n createViewTransitionInstance(\n getViewTransitionName(fiber.memoizedProps, state)\n ));\n null === pendingViewTransitionEvents && (pendingViewTransitionEvents = []);\n pendingViewTransitionEvents.push(callback.bind(null, instance));\n }\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane) {\n if (\n (root === workInProgressRoot &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n prepareFreshStack(root, 0),\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n markRootUpdated$1(root, lane);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n )),\n ensureRootIsScheduled(root);\n}\nfunction performWorkOnRoot(root$jscomp$0, lanes, forceSync) {\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n var shouldTimeSlice =\n (!forceSync &&\n 0 === (lanes & 127) &&\n 0 === (lanes & root$jscomp$0.expiredLanes)) ||\n checkIfRootIsPrerendering(root$jscomp$0, lanes),\n exitStatus = shouldTimeSlice\n ? renderRootConcurrent(root$jscomp$0, lanes)\n : renderRootSync(root$jscomp$0, lanes, !0),\n renderWasConcurrent = shouldTimeSlice;\n do {\n if (0 === exitStatus) {\n workInProgressRootIsPrerendering &&\n !shouldTimeSlice &&\n markRootSuspended(root$jscomp$0, lanes, 0, !1);\n break;\n } else {\n forceSync = root$jscomp$0.current.alternate;\n if (\n renderWasConcurrent &&\n !isRenderConsistentWithExternalStores(forceSync)\n ) {\n exitStatus = renderRootSync(root$jscomp$0, lanes, !1);\n renderWasConcurrent = !1;\n continue;\n }\n if (2 === exitStatus) {\n renderWasConcurrent = lanes;\n if (root$jscomp$0.errorRecoveryDisabledLanes & renderWasConcurrent)\n var JSCompiler_inline_result = 0;\n else\n (JSCompiler_inline_result = root$jscomp$0.pendingLanes & -536870913),\n (JSCompiler_inline_result =\n 0 !== JSCompiler_inline_result\n ? JSCompiler_inline_result\n : JSCompiler_inline_result & 536870912\n ? 536870912\n : 0);\n if (0 !== JSCompiler_inline_result) {\n lanes = JSCompiler_inline_result;\n a: {\n var root = root$jscomp$0;\n exitStatus = workInProgressRootConcurrentErrors;\n var wasRootDehydrated = root.current.memoizedState.isDehydrated;\n wasRootDehydrated &&\n (prepareFreshStack(root, JSCompiler_inline_result).flags |= 256);\n JSCompiler_inline_result = renderRootSync(\n root,\n JSCompiler_inline_result,\n !1\n );\n if (\n 2 !== JSCompiler_inline_result &&\n 6 !== JSCompiler_inline_result\n ) {\n if (\n workInProgressRootDidAttachPingListener &&\n !wasRootDehydrated\n ) {\n root.errorRecoveryDisabledLanes |= renderWasConcurrent;\n workInProgressRootInterleavedUpdatedLanes |=\n renderWasConcurrent;\n exitStatus = 4;\n break a;\n }\n renderWasConcurrent = workInProgressRootRecoverableErrors;\n workInProgressRootRecoverableErrors = exitStatus;\n null !== renderWasConcurrent &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = renderWasConcurrent)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n renderWasConcurrent\n ));\n }\n exitStatus = JSCompiler_inline_result;\n }\n renderWasConcurrent = !1;\n if (2 !== exitStatus) continue;\n }\n }\n if (1 === exitStatus) {\n prepareFreshStack(root$jscomp$0, 0);\n markRootSuspended(root$jscomp$0, lanes, 0, !0);\n break;\n }\n a: {\n shouldTimeSlice = root$jscomp$0;\n renderWasConcurrent = exitStatus;\n switch (renderWasConcurrent) {\n case 0:\n case 1:\n throw Error(formatProdErrorMessage(345));\n case 4:\n if ((lanes & 4194048) !== lanes && (lanes & 62914560) !== lanes)\n break;\n case 6:\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n break a;\n case 2:\n workInProgressRootRecoverableErrors = null;\n break;\n case 3:\n case 5:\n break;\n default:\n throw Error(formatProdErrorMessage(329));\n }\n if (\n (lanes & 62914560) === lanes &&\n ((exitStatus = globalMostRecentFallbackTime + 300 - now()),\n 10 < exitStatus)\n ) {\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n if (0 !== getNextLanes(shouldTimeSlice, 0, !0)) break a;\n pendingEffectsLanes = lanes;\n shouldTimeSlice.timeoutHandle = scheduleTimeout(\n completeRootWhenReady.bind(\n null,\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n \"Throttled\",\n -0,\n 0\n ),\n exitStatus\n );\n break a;\n }\n completeRootWhenReady(\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n null,\n -0,\n 0\n );\n }\n }\n break;\n } while (1);\n ensureRootIsScheduled(root$jscomp$0);\n}\nfunction completeRootWhenReady(\n root,\n finishedWork,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n completedRenderStartTime,\n completedRenderEndTime\n) {\n root.timeoutHandle = -1;\n var subtreeFlags = finishedWork.subtreeFlags,\n isViewTransitionEligible = (lanes & 335544064) === lanes;\n suspendedCommitReason = null;\n if (\n isViewTransitionEligible ||\n subtreeFlags & 8192 ||\n 16785408 === (subtreeFlags & 16785408)\n )\n if (\n ((suspendedCommitReason = {\n stylesheets: null,\n count: 0,\n imgCount: 0,\n imgBytes: 0,\n suspenseyImages: [],\n waitingForImages: !0,\n waitingForViewTransition: !1,\n unsuspend: noop$1\n }),\n (appearingViewTransitions = null),\n accumulateSuspenseyCommitOnFiber(\n finishedWork,\n lanes,\n suspendedCommitReason\n ),\n isViewTransitionEligible &&\n ((subtreeFlags = suspendedCommitReason),\n (isViewTransitionEligible = root.containerInfo),\n (isViewTransitionEligible = (\n 9 === isViewTransitionEligible.nodeType\n ? isViewTransitionEligible\n : isViewTransitionEligible.ownerDocument\n ).__reactViewTransition),\n null != isViewTransitionEligible &&\n (subtreeFlags.count++,\n (subtreeFlags.waitingForViewTransition = !0),\n (subtreeFlags = onUnsuspend.bind(subtreeFlags)),\n isViewTransitionEligible.finished.then(subtreeFlags, subtreeFlags))),\n (subtreeFlags =\n (lanes & 62914560) === lanes\n ? globalMostRecentFallbackTime - now()\n : (lanes & 4194048) === lanes\n ? globalMostRecentTransitionTime - now()\n : 0),\n (subtreeFlags = waitForCommitToBeReady(\n suspendedCommitReason,\n subtreeFlags\n )),\n null !== subtreeFlags)\n ) {\n pendingEffectsLanes = lanes;\n root.cancelPendingCommit = subtreeFlags(\n completeRoot.bind(\n null,\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n null,\n completedRenderStartTime,\n completedRenderEndTime\n )\n );\n markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);\n return;\n }\n completeRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n var tag = node.tag;\n if (\n (0 === tag || 11 === tag || 15 === tag) &&\n node.flags & 16384 &&\n ((tag = node.updateQueue),\n null !== tag && ((tag = tag.stores), null !== tag))\n )\n for (var i = 0; i < tag.length; i++) {\n var check = tag[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n tag = node.child;\n if (node.subtreeFlags & 16384 && null !== tag)\n (tag.return = node), (node = tag);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended(\n root,\n suspendedLanes,\n spawnedLane,\n didAttemptEntireTree\n) {\n suspendedLanes = getEntangledLanes(root, suspendedLanes);\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n didAttemptEntireTree && (root.warmLanes |= suspendedLanes);\n didAttemptEntireTree = root.expirationTimes;\n for (var lanes = suspendedLanes; 0 < lanes; ) {\n var index$6 = 31 - clz32(lanes),\n lane = 1 << index$6;\n didAttemptEntireTree[index$6] = -1;\n lanes &= ~lane;\n }\n 0 !== spawnedLane &&\n markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);\n}\nfunction flushSyncWork$1() {\n return 0 === (executionContext & 6)\n ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)\n : !0;\n}\nfunction resetWorkInProgressStack() {\n if (null !== workInProgress) {\n if (0 === workInProgressSuspendedReason)\n var interruptedWork = workInProgress.return;\n else\n (interruptedWork = workInProgress),\n (lastContextDependency = currentlyRenderingFiber$1 = null),\n resetHooksOnUnwind(interruptedWork),\n (thenableState$1 = null),\n (thenableIndexCounter$1 = 0),\n (interruptedWork = workInProgress);\n for (; null !== interruptedWork; )\n unwindInterruptedWork(interruptedWork.alternate, interruptedWork),\n (interruptedWork = interruptedWork.return);\n workInProgress = null;\n }\n}\nfunction prepareFreshStack(root, lanes) {\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n timeoutHandle = root.cancelPendingCommit;\n null !== timeoutHandle &&\n ((root.cancelPendingCommit = null), timeoutHandle());\n pendingEffectsLanes = 0;\n resetWorkInProgressStack();\n workInProgressRoot = root;\n workInProgress = timeoutHandle = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = lanes;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n workInProgressRootDidSkipSuspendedSiblings = !1;\n workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);\n workInProgressRootDidAttachPingListener = !1;\n workInProgressSuspendedRetryLanes =\n workInProgressDeferredLane =\n workInProgressRootPingedLanes =\n workInProgressRootInterleavedUpdatedLanes =\n workInProgressRootSkippedLanes =\n workInProgressRootExitStatus =\n 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =\n null;\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1;\n entangledRenderLanes = getEntangledLanes(root, lanes);\n finishQueueingConcurrentUpdates();\n return timeoutHandle;\n}\nfunction handleThrow(root, thrownValue) {\n currentlyRenderingFiber = null;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n thrownValue === SuspenseException || thrownValue === SuspenseActionException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 3))\n : thrownValue === SuspenseyCommitException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 4))\n : (workInProgressSuspendedReason =\n thrownValue === SelectiveHydrationException\n ? 8\n : null !== thrownValue &&\n \"object\" === typeof thrownValue &&\n \"function\" === typeof thrownValue.then\n ? 6\n : 1);\n workInProgressThrownValue = thrownValue;\n null === workInProgress &&\n ((workInProgressRootExitStatus = 1),\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n ));\n}\nfunction shouldRemainOnPreviousScreen() {\n var handler = suspenseHandlerStackCursor.current;\n return null === handler\n ? !0\n : (workInProgressRootRenderLanes & 4194048) ===\n workInProgressRootRenderLanes\n ? null === shellBoundary\n ? !0\n : !1\n : (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n ? handler === shellBoundary\n : !1;\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction pushAsyncDispatcher() {\n var prevAsyncDispatcher = ReactSharedInternals.A;\n ReactSharedInternals.A = DefaultAsyncDispatcher;\n return prevAsyncDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n workInProgressRootExitStatus = 4;\n workInProgressRootDidSkipSuspendedSiblings ||\n ((workInProgressRootRenderLanes & 4194048) !==\n workInProgressRootRenderLanes &&\n null !== suspenseHandlerStackCursor.current) ||\n (workInProgressRootIsPrerendering = !0);\n (0 === (workInProgressRootSkippedLanes & 134217727) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||\n null === workInProgressRoot ||\n markRootSuspended(\n workInProgressRoot,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n}\nfunction renderRootSync(root, lanes, shouldYieldForPrerendering) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n lanes = !1;\n var exitStatus = workInProgressRootExitStatus;\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n var unitOfWork = workInProgress,\n thrownValue = workInProgressThrownValue;\n switch (workInProgressSuspendedReason) {\n case 8:\n resetWorkInProgressStack();\n exitStatus = 6;\n break a;\n case 3:\n case 2:\n case 9:\n case 6:\n null === suspenseHandlerStackCursor.current && (lanes = !0);\n var reason = workInProgressSuspendedReason;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n if (\n shouldYieldForPrerendering &&\n workInProgressRootIsPrerendering\n ) {\n exitStatus = 0;\n break a;\n }\n break;\n default:\n (reason = workInProgressSuspendedReason),\n (workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n }\n }\n workLoopSync();\n exitStatus = workInProgressRootExitStatus;\n break;\n } catch (thrownValue$184) {\n handleThrow(root, thrownValue$184);\n }\n while (1);\n lanes && root.shellSuspendCounter++;\n lastContextDependency = currentlyRenderingFiber$1 = null;\n executionContext = prevExecutionContext;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n null === workInProgress &&\n ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n finishQueueingConcurrentUpdates());\n return exitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes\n ? ((workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, lanes))\n : (workInProgressRootIsPrerendering = checkIfRootIsPrerendering(\n root,\n lanes\n ));\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n lanes = workInProgress;\n var thrownValue = workInProgressThrownValue;\n b: switch (workInProgressSuspendedReason) {\n case 1:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 1);\n break;\n case 2:\n case 9:\n if (isThenableResolved(thrownValue)) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n replaySuspendedUnitOfWork(lanes);\n break;\n }\n lanes = function () {\n (2 !== workInProgressSuspendedReason &&\n 9 !== workInProgressSuspendedReason) ||\n workInProgressRoot !== root ||\n (workInProgressSuspendedReason = 7);\n ensureRootIsScheduled(root);\n };\n thrownValue.then(lanes, lanes);\n break a;\n case 3:\n workInProgressSuspendedReason = 7;\n break a;\n case 4:\n workInProgressSuspendedReason = 5;\n break a;\n case 7:\n isThenableResolved(thrownValue)\n ? ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n replaySuspendedUnitOfWork(lanes))\n : ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 7));\n break;\n case 5:\n var resource = null;\n switch (workInProgress.tag) {\n case 26:\n resource = workInProgress.memoizedState;\n case 5:\n case 27:\n var hostFiber = workInProgress;\n if (\n resource\n ? preloadResource(resource)\n : hostFiber.stateNode.complete\n ) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n var sibling = hostFiber.sibling;\n if (null !== sibling) workInProgress = sibling;\n else {\n var returnFiber = hostFiber.return;\n null !== returnFiber\n ? ((workInProgress = returnFiber),\n completeUnitOfWork(returnFiber))\n : (workInProgress = null);\n }\n break b;\n }\n }\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 5);\n break;\n case 6:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 6);\n break;\n case 8:\n resetWorkInProgressStack();\n workInProgressRootExitStatus = 6;\n break a;\n default:\n throw Error(formatProdErrorMessage(462));\n }\n }\n workLoopConcurrentByScheduler();\n break;\n } catch (thrownValue$186) {\n handleThrow(root, thrownValue$186);\n }\n while (1);\n lastContextDependency = currentlyRenderingFiber$1 = null;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n executionContext = prevExecutionContext;\n if (null !== workInProgress) return 0;\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n finishQueueingConcurrentUpdates();\n return workInProgressRootExitStatus;\n}\nfunction workLoopConcurrentByScheduler() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork(unitOfWork.alternate, unitOfWork, entangledRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction replaySuspendedUnitOfWork(unitOfWork) {\n var next = unitOfWork;\n var current = next.alternate;\n switch (next.tag) {\n case 15:\n case 0:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type,\n void 0,\n workInProgressRootRenderLanes\n );\n break;\n case 11:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type.render,\n next.ref,\n workInProgressRootRenderLanes\n );\n break;\n case 5:\n resetHooksOnUnwind(next);\n var fiber = next;\n fiber === hydrationParentFiber &&\n (isHydrating\n ? (popToNextHostParent(fiber),\n 5 === fiber.tag &&\n null != fiber.stateNode &&\n (nextHydratableInstance = fiber.stateNode))\n : (popToNextHostParent(fiber), (isHydrating = !0)));\n default:\n unwindInterruptedWork(current, next),\n (next = workInProgress =\n resetWorkInProgress(next, entangledRenderLanes)),\n (next = beginWork(current, next, entangledRenderLanes));\n }\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction throwAndUnwindWorkLoop(\n root,\n unitOfWork,\n thrownValue,\n suspendedReason\n) {\n lastContextDependency = currentlyRenderingFiber$1 = null;\n resetHooksOnUnwind(unitOfWork);\n thenableState$1 = null;\n thenableIndexCounter$1 = 0;\n var returnFiber = unitOfWork.return;\n try {\n if (\n throwException(\n root,\n returnFiber,\n unitOfWork,\n thrownValue,\n workInProgressRootRenderLanes\n )\n ) {\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n } catch (error) {\n if (null !== returnFiber) throw ((workInProgress = returnFiber), error);\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n if (unitOfWork.flags & 32768) {\n if (isHydrating || 1 === suspendedReason) root = !0;\n else if (\n workInProgressRootIsPrerendering ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n )\n root = !1;\n else if (\n ((workInProgressRootDidSkipSuspendedSiblings = root = !0),\n 2 === suspendedReason ||\n 9 === suspendedReason ||\n 3 === suspendedReason ||\n 6 === suspendedReason)\n )\n (suspendedReason = suspenseHandlerStackCursor.current),\n null !== suspendedReason &&\n 13 === suspendedReason.tag &&\n (suspendedReason.flags |= 16384);\n unwindUnitOfWork(unitOfWork, root);\n } else completeUnitOfWork(unitOfWork);\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n if (0 !== (completedWork.flags & 32768)) {\n unwindUnitOfWork(\n completedWork,\n workInProgressRootDidSkipSuspendedSiblings\n );\n return;\n }\n unitOfWork = completedWork.return;\n var next = completeWork(\n completedWork.alternate,\n completedWork,\n entangledRenderLanes\n );\n if (null !== next) {\n workInProgress = next;\n return;\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction unwindUnitOfWork(unitOfWork, skipSiblings) {\n do {\n var next = unwindWork(unitOfWork.alternate, unitOfWork);\n if (null !== next) {\n next.flags &= 32767;\n workInProgress = next;\n return;\n }\n next = unitOfWork.return;\n null !== next &&\n ((next.flags |= 32768), (next.subtreeFlags = 0), (next.deletions = null));\n if (\n !skipSiblings &&\n ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)\n ) {\n workInProgress = unitOfWork;\n return;\n }\n workInProgress = unitOfWork = next;\n } while (null !== unitOfWork);\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n}\nfunction completeRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedState\n) {\n root.cancelPendingCommit = null;\n do flushPendingEffects();\n while (0 !== pendingEffectsStatus);\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n if (null !== finishedWork) {\n if (finishedWork === root.current) throw Error(formatProdErrorMessage(177));\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n pendingFinishedWork = finishedWork;\n pendingEffectsRoot = root;\n pendingEffectsLanes = lanes;\n pendingPassiveTransitions = transitions;\n pendingRecoverableErrors = recoverableErrors;\n commitRoot(\n root,\n finishedWork,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n suspendedState\n );\n }\n}\nfunction commitRoot(\n root,\n finishedWork,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n suspendedState\n) {\n var remainingLanes = finishedWork.lanes | finishedWork.childLanes;\n pendingEffectsRemainingLanes = remainingLanes;\n remainingLanes |= concurrentlyUpdatedLanes;\n markRootFinished(\n root,\n lanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n pendingViewTransitionEvents = null;\n (lanes & 335544064) === lanes\n ? ((pendingTransitionTypes = claimQueuedTransitionTypes(root)),\n (spawnedLane = 10262))\n : ((pendingTransitionTypes = null), (spawnedLane = 10256));\n 0 !== (finishedWork.subtreeFlags & spawnedLane) ||\n 0 !== (finishedWork.flags & spawnedLane)\n ? ((root.callbackNode = null),\n (root.callbackPriority = 0),\n scheduleCallback$1(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n }))\n : ((root.callbackNode = null), (root.callbackPriority = 0));\n shouldStartViewTransition = !1;\n spawnedLane = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || spawnedLane) {\n spawnedLane = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n updatedLanes = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n suspendedRetryLanes = executionContext;\n executionContext |= 4;\n try {\n commitBeforeMutationEffects(root, finishedWork, lanes);\n } finally {\n (executionContext = suspendedRetryLanes),\n (ReactDOMSharedInternals.p = updatedLanes),\n (ReactSharedInternals.T = spawnedLane);\n }\n }\n pendingEffectsStatus = 1;\n shouldStartViewTransition\n ? (pendingViewTransition = startViewTransition(\n suspendedState,\n root.containerInfo,\n pendingTransitionTypes,\n flushMutationEffects,\n flushLayoutEffects,\n flushAfterMutationEffects,\n flushSpawnedWork,\n flushPassiveEffects,\n reportViewTransitionError,\n null,\n null\n ))\n : (flushMutationEffects(), flushLayoutEffects(), flushSpawnedWork());\n}\nfunction reportViewTransitionError(error) {\n if (0 !== pendingEffectsStatus) {\n var onRecoverableError = pendingEffectsRoot.onRecoverableError;\n onRecoverableError(error, { componentStack: null });\n }\n}\nfunction flushAfterMutationEffects() {\n 3 === pendingEffectsStatus &&\n ((pendingEffectsStatus = 0),\n commitAfterMutationEffectsOnFiber(pendingFinishedWork, pendingEffectsRoot),\n (pendingEffectsStatus = 4));\n}\nfunction flushMutationEffects() {\n if (1 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || rootMutationHasEffect) {\n rootMutationHasEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n inUpdateViewTransition = rootViewTransitionAffected = !1;\n commitMutationEffectsOnFiber(finishedWork, root, lanes);\n lanes = selectionInformation;\n var curFocusedElem = getActiveElementDeep(root.containerInfo),\n priorFocusedElem = lanes.focusedElem,\n priorSelectionRange = lanes.selectionRange;\n if (\n curFocusedElem !== priorFocusedElem &&\n priorFocusedElem &&\n priorFocusedElem.ownerDocument &&\n containsNode(\n priorFocusedElem.ownerDocument.documentElement,\n priorFocusedElem\n )\n ) {\n if (\n null !== priorSelectionRange &&\n hasSelectionCapabilities(priorFocusedElem)\n ) {\n var start = priorSelectionRange.start,\n end = priorSelectionRange.end;\n void 0 === end && (end = start);\n if (\"selectionStart\" in priorFocusedElem)\n (priorFocusedElem.selectionStart = start),\n (priorFocusedElem.selectionEnd = Math.min(\n end,\n priorFocusedElem.value.length\n ));\n else {\n var doc = priorFocusedElem.ownerDocument || document,\n win = (doc && doc.defaultView) || window;\n if (win.getSelection) {\n var selection = win.getSelection(),\n length = priorFocusedElem.textContent.length,\n start$jscomp$0 = Math.min(priorSelectionRange.start, length),\n end$jscomp$0 =\n void 0 === priorSelectionRange.end\n ? start$jscomp$0\n : Math.min(priorSelectionRange.end, length);\n !selection.extend &&\n start$jscomp$0 > end$jscomp$0 &&\n ((curFocusedElem = end$jscomp$0),\n (end$jscomp$0 = start$jscomp$0),\n (start$jscomp$0 = curFocusedElem));\n var startMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n start$jscomp$0\n ),\n endMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n end$jscomp$0\n );\n if (\n startMarker &&\n endMarker &&\n (1 !== selection.rangeCount ||\n selection.anchorNode !== startMarker.node ||\n selection.anchorOffset !== startMarker.offset ||\n selection.focusNode !== endMarker.node ||\n selection.focusOffset !== endMarker.offset)\n ) {\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n start$jscomp$0 > end$jscomp$0\n ? (selection.addRange(range),\n selection.extend(endMarker.node, endMarker.offset))\n : (range.setEnd(endMarker.node, endMarker.offset),\n selection.addRange(range));\n }\n }\n }\n }\n doc = [];\n for (\n selection = priorFocusedElem;\n (selection = selection.parentNode);\n\n )\n 1 === selection.nodeType &&\n doc.push({\n element: selection,\n left: selection.scrollLeft,\n top: selection.scrollTop\n });\n \"function\" === typeof priorFocusedElem.focus &&\n priorFocusedElem.focus();\n for (\n priorFocusedElem = 0;\n priorFocusedElem < doc.length;\n priorFocusedElem++\n ) {\n var info = doc[priorFocusedElem];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n _enabled = !!eventsEnabled;\n selectionInformation = eventsEnabled = null;\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootMutationHasEffect);\n }\n }\n root.current = finishedWork;\n pendingEffectsStatus = 2;\n }\n}\nfunction flushLayoutEffects() {\n if (2 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootHasLayoutEffect = 0 !== (finishedWork.flags & 8772);\n if (0 !== (finishedWork.subtreeFlags & 8772) || rootHasLayoutEffect) {\n rootHasLayoutEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitLayoutEffectOnFiber(root, finishedWork.alternate, finishedWork);\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootHasLayoutEffect);\n }\n }\n pendingEffectsStatus = 3;\n }\n}\nfunction flushSpawnedWork() {\n if (4 === pendingEffectsStatus || 3 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var committedViewTransition = pendingViewTransition;\n pendingViewTransition = null;\n requestPaint();\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n recoverableErrors = pendingRecoverableErrors,\n passiveSubtreeMask = (lanes & 335544064) === lanes ? 10262 : 10256;\n 0 !== (finishedWork.subtreeFlags & passiveSubtreeMask) ||\n 0 !== (finishedWork.flags & passiveSubtreeMask)\n ? (pendingEffectsStatus = 5)\n : ((pendingEffectsStatus = 0),\n (pendingFinishedWork = pendingEffectsRoot = null),\n releaseRootPooledCache(root, root.pendingLanes));\n passiveSubtreeMask = root.pendingLanes;\n 0 === passiveSubtreeMask && (legacyErrorBoundariesThatAlreadyFailed = null);\n lanesToEventPriority(lanes);\n finishedWork = finishedWork.stateNode;\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n finishedWork,\n void 0,\n 128 === (finishedWork.current.flags & 128)\n );\n } catch (err) {}\n if (null !== recoverableErrors) {\n finishedWork = ReactSharedInternals.T;\n passiveSubtreeMask = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n ReactSharedInternals.T = null;\n try {\n for (\n var onRecoverableError = root.onRecoverableError, i = 0;\n i < recoverableErrors.length;\n i++\n ) {\n var recoverableError = recoverableErrors[i];\n onRecoverableError(recoverableError.value, {\n componentStack: recoverableError.stack\n });\n }\n } finally {\n (ReactSharedInternals.T = finishedWork),\n (ReactDOMSharedInternals.p = passiveSubtreeMask);\n }\n }\n recoverableErrors = pendingViewTransitionEvents;\n onRecoverableError = pendingTransitionTypes;\n pendingTransitionTypes = null;\n if (\n null !== recoverableErrors &&\n ((pendingViewTransitionEvents = null),\n null === onRecoverableError && (onRecoverableError = []),\n null !== committedViewTransition)\n )\n for (\n recoverableError = 0;\n recoverableError < recoverableErrors.length;\n recoverableError++\n )\n (finishedWork = (0, recoverableErrors[recoverableError])(\n onRecoverableError\n )),\n void 0 !== finishedWork &&\n committedViewTransition.finished.finally(finishedWork);\n 0 !== (pendingEffectsLanes & 3) && flushPendingEffects();\n ensureRootIsScheduled(root);\n passiveSubtreeMask = root.pendingLanes;\n 0 !== (lanes & 261930) && 0 !== (passiveSubtreeMask & 42)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = null));\n flushSyncWorkAcrossRoots_impl(0, !1);\n }\n}\nfunction releaseRootPooledCache(root, remainingLanes) {\n 0 === (root.pooledCacheLanes &= remainingLanes) &&\n ((remainingLanes = root.pooledCache),\n null != remainingLanes &&\n ((root.pooledCache = null), releaseCache(remainingLanes)));\n}\nfunction flushPendingEffects() {\n null !== pendingViewTransition &&\n (pendingViewTransition.skipTransition(), (pendingViewTransition = null));\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n return flushPassiveEffects();\n}\nfunction flushPassiveEffects() {\n if (5 !== pendingEffectsStatus) return !1;\n var root = pendingEffectsRoot,\n remainingLanes = pendingEffectsRemainingLanes;\n pendingEffectsRemainingLanes = 0;\n var renderPriority = lanesToEventPriority(pendingEffectsLanes),\n prevTransition = ReactSharedInternals.T,\n previousPriority = ReactDOMSharedInternals.p;\n try {\n ReactDOMSharedInternals.p = 32 > renderPriority ? 32 : renderPriority;\n ReactSharedInternals.T = null;\n renderPriority = pendingPassiveTransitions;\n pendingPassiveTransitions = null;\n var root$jscomp$0 = pendingEffectsRoot,\n lanes = pendingEffectsLanes;\n pendingEffectsStatus = 0;\n pendingFinishedWork = pendingEffectsRoot = null;\n pendingEffectsLanes = 0;\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(331));\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n commitPassiveUnmountOnFiber(root$jscomp$0.current);\n commitPassiveMountOnFiber(\n root$jscomp$0,\n root$jscomp$0.current,\n lanes,\n renderPriority\n );\n executionContext = prevExecutionContext;\n flushSyncWorkAcrossRoots_impl(0, !1);\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, root$jscomp$0);\n } catch (err) {}\n return !0;\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition),\n releaseRootPooledCache(root, remainingLanes);\n }\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);\n null !== rootFiber &&\n (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (; null !== nearestMountedAncestor; ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n error = createClassErrorUpdate(2);\n instance = enqueueUpdate(nearestMountedAncestor, error, 2);\n null !== instance &&\n (initializeClassErrorUpdate(\n error,\n instance,\n nearestMountedAncestor,\n sourceFiber\n ),\n markRootUpdated$1(instance, 2),\n ensureRootIsScheduled(instance));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n ((workInProgressRootDidAttachPingListener = !0),\n threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n root.warmLanes &= ~pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes &&\n 300 > now() - globalMostRecentFallbackTime)\n ? 0 === (executionContext & 2)\n ? prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes)\n : (workInProgressRootPingedLanes |= pingedLanes),\n workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&\n (workInProgressSuspendedRetryLanes = 0));\n ensureRootIsScheduled(root);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane && (retryLane = claimNextRetryLane());\n boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated$1(boundaryFiber, retryLane),\n ensureRootIsScheduled(boundaryFiber));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 31:\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n case 22:\n retryCache = boundaryFiber.stateNode._retryCache;\n break;\n default:\n throw Error(formatProdErrorMessage(314));\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback$3(priorityLevel, callback);\n}\nvar firstScheduledRoot = null,\n lastScheduledRoot = null,\n didScheduleMicrotask = !1,\n mightHavePendingSyncWork = !1,\n isFlushingWork = !1,\n currentEventTransitionLane = 0;\nfunction ensureRootIsScheduled(root) {\n root !== lastScheduledRoot &&\n null === root.next &&\n (null === lastScheduledRoot\n ? (firstScheduledRoot = lastScheduledRoot = root)\n : (lastScheduledRoot = lastScheduledRoot.next = root));\n mightHavePendingSyncWork = !0;\n didScheduleMicrotask ||\n ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());\n}\nfunction flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {\n if (!isFlushingWork && mightHavePendingSyncWork) {\n isFlushingWork = !0;\n do {\n var didPerformSomeWork = !1;\n for (var root$190 = firstScheduledRoot; null !== root$190; ) {\n if (!onlyLegacy)\n if (0 !== syncTransitionLanes) {\n var pendingLanes = root$190.pendingLanes;\n if (0 === pendingLanes) var JSCompiler_inline_result = 0;\n else {\n var suspendedLanes = root$190.suspendedLanes,\n pingedLanes = root$190.pingedLanes;\n JSCompiler_inline_result =\n (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;\n JSCompiler_inline_result &=\n pendingLanes & ~(suspendedLanes & ~pingedLanes);\n JSCompiler_inline_result =\n JSCompiler_inline_result & 201326741\n ? (JSCompiler_inline_result & 201326741) | 1\n : JSCompiler_inline_result\n ? JSCompiler_inline_result | 2\n : 0;\n }\n 0 !== JSCompiler_inline_result &&\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$190, JSCompiler_inline_result));\n } else\n (JSCompiler_inline_result = workInProgressRootRenderLanes),\n (JSCompiler_inline_result = getNextLanes(\n root$190,\n root$190 === workInProgressRoot ? JSCompiler_inline_result : 0,\n null !== root$190.cancelPendingCommit ||\n -1 !== root$190.timeoutHandle\n )),\n 0 === (JSCompiler_inline_result & 3) ||\n checkIfRootIsPrerendering(root$190, JSCompiler_inline_result) ||\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$190, JSCompiler_inline_result));\n root$190 = root$190.next;\n }\n } while (didPerformSomeWork);\n isFlushingWork = !1;\n }\n}\nfunction processRootScheduleInImmediateTask() {\n processRootScheduleInMicrotask();\n}\nfunction processRootScheduleInMicrotask() {\n mightHavePendingSyncWork = didScheduleMicrotask = !1;\n var syncTransitionLanes = 0;\n 0 !== currentEventTransitionLane &&\n shouldAttemptEagerTransition() &&\n (syncTransitionLanes = currentEventTransitionLane);\n for (\n var currentTime = now(), prev = null, root = firstScheduledRoot;\n null !== root;\n\n ) {\n var next = root.next,\n nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);\n if (0 === nextLanes)\n (root.next = null),\n null === prev ? (firstScheduledRoot = next) : (prev.next = next),\n null === next && (lastScheduledRoot = prev);\n else if (\n ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))\n )\n mightHavePendingSyncWork = !0;\n root = next;\n }\n (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus) ||\n flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);\n 0 !== currentEventTransitionLane && (currentEventTransitionLane = 0);\n}\nfunction scheduleTaskForRootDuringMicrotask(root, currentTime) {\n for (\n var suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes & -62914561;\n 0 < lanes;\n\n ) {\n var index$5 = 31 - clz32(lanes),\n lane = 1 << index$5,\n expirationTime = expirationTimes[index$5];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n currentTime = workInProgressRoot;\n suspendedLanes = workInProgressRootRenderLanes;\n suspendedLanes = getNextLanes(\n root,\n root === currentTime ? suspendedLanes : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n pingedLanes = root.callbackNode;\n if (\n 0 === suspendedLanes ||\n (root === currentTime &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n return (\n null !== pingedLanes &&\n null !== pingedLanes &&\n cancelCallback$1(pingedLanes),\n (root.callbackNode = null),\n (root.callbackPriority = 0)\n );\n if (\n 0 === (suspendedLanes & 3) ||\n checkIfRootIsPrerendering(root, suspendedLanes)\n ) {\n currentTime = suspendedLanes & -suspendedLanes;\n if (currentTime === root.callbackPriority) return currentTime;\n null !== pingedLanes && cancelCallback$1(pingedLanes);\n switch (lanesToEventPriority(suspendedLanes)) {\n case 2:\n case 8:\n suspendedLanes = UserBlockingPriority;\n break;\n case 32:\n suspendedLanes = NormalPriority$1;\n break;\n case 268435456:\n suspendedLanes = IdlePriority;\n break;\n default:\n suspendedLanes = NormalPriority$1;\n }\n pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);\n suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes);\n root.callbackPriority = currentTime;\n root.callbackNode = suspendedLanes;\n return currentTime;\n }\n null !== pingedLanes && null !== pingedLanes && cancelCallback$1(pingedLanes);\n root.callbackPriority = 2;\n root.callbackNode = null;\n return 2;\n}\nfunction performWorkOnRootViaSchedulerTask(root, didTimeout) {\n if (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus)\n return (root.callbackNode = null), (root.callbackPriority = 0), null;\n var originalCallbackNode = root.callbackNode;\n if (flushPendingEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var workInProgressRootRenderLanes$jscomp$0 = workInProgressRootRenderLanes;\n workInProgressRootRenderLanes$jscomp$0 = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes$jscomp$0 : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n if (0 === workInProgressRootRenderLanes$jscomp$0) return null;\n performWorkOnRoot(root, workInProgressRootRenderLanes$jscomp$0, didTimeout);\n scheduleTaskForRootDuringMicrotask(root, now());\n return null != root.callbackNode && root.callbackNode === originalCallbackNode\n ? performWorkOnRootViaSchedulerTask.bind(null, root)\n : null;\n}\nfunction performSyncWorkOnRoot(root, lanes) {\n if (flushPendingEffects()) return null;\n performWorkOnRoot(root, lanes, !0);\n}\nfunction scheduleImmediateRootScheduleTask() {\n scheduleMicrotask(function () {\n 0 !== (executionContext & 6)\n ? scheduleCallback$3(\n ImmediatePriority,\n processRootScheduleInImmediateTask\n )\n : processRootScheduleInMicrotask();\n });\n}\nfunction requestTransitionLane() {\n if (0 === currentEventTransitionLane) {\n var actionScopeLane = currentEntangledLane;\n 0 === actionScopeLane &&\n ((actionScopeLane = nextTransitionUpdateLane),\n (nextTransitionUpdateLane <<= 1),\n 0 === (nextTransitionUpdateLane & 261888) &&\n (nextTransitionUpdateLane = 256));\n currentEventTransitionLane = actionScopeLane;\n }\n return currentEventTransitionLane;\n}\nfunction coerceFormActionProp(actionProp) {\n return null == actionProp ||\n \"symbol\" === typeof actionProp ||\n \"boolean\" === typeof actionProp\n ? null\n : \"function\" === typeof actionProp\n ? actionProp\n : sanitizeURL(actionProp);\n}\nfunction extractEvents$1(\n dispatchQueue,\n domEventName,\n maybeTargetInst,\n nativeEvent,\n nativeEventTarget\n) {\n if (\n \"submit\" === domEventName &&\n maybeTargetInst &&\n maybeTargetInst.stateNode === nativeEventTarget\n ) {\n var action = coerceFormActionProp(\n (nativeEventTarget[internalPropsKey] || null).action\n ),\n submitter = nativeEvent.submitter;\n submitter &&\n ((domEventName = (domEventName = submitter[internalPropsKey] || null)\n ? coerceFormActionProp(domEventName.formAction)\n : submitter.getAttribute(\"formAction\")),\n null !== domEventName && ((action = domEventName), (submitter = null)));\n var event = new SyntheticEvent(\n \"action\",\n \"action\",\n null,\n nativeEvent,\n nativeEventTarget\n );\n dispatchQueue.push({\n event: event,\n listeners: [\n {\n instance: null,\n listener: function () {\n if (nativeEvent.defaultPrevented) {\n if (0 !== currentEventTransitionLane) {\n var formData = new FormData(nativeEventTarget, submitter);\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n null,\n formData\n );\n }\n } else\n \"function\" === typeof action &&\n (event.preventDefault(),\n (formData = new FormData(nativeEventTarget, submitter)),\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n action,\n formData\n ));\n },\n currentTarget: nativeEventTarget\n }\n ]\n });\n }\n}\nfor (\n var i$jscomp$inline_1667 = 0;\n i$jscomp$inline_1667 < simpleEventPluginEvents.length;\n i$jscomp$inline_1667++\n) {\n var eventName$jscomp$inline_1668 =\n simpleEventPluginEvents[i$jscomp$inline_1667],\n domEventName$jscomp$inline_1669 =\n eventName$jscomp$inline_1668.toLowerCase(),\n capitalizedEvent$jscomp$inline_1670 =\n eventName$jscomp$inline_1668[0].toUpperCase() +\n eventName$jscomp$inline_1668.slice(1);\n registerSimpleEvent(\n domEventName$jscomp$inline_1669,\n \"on\" + capitalizedEvent$jscomp$inline_1670\n );\n}\nregisterSimpleEvent(ANIMATION_END, \"onAnimationEnd\");\nregisterSimpleEvent(ANIMATION_ITERATION, \"onAnimationIteration\");\nregisterSimpleEvent(ANIMATION_START, \"onAnimationStart\");\nregisterSimpleEvent(\"dblclick\", \"onDoubleClick\");\nregisterSimpleEvent(\"focusin\", \"onFocus\");\nregisterSimpleEvent(\"focusout\", \"onBlur\");\nregisterSimpleEvent(TRANSITION_RUN, \"onTransitionRun\");\nregisterSimpleEvent(TRANSITION_START, \"onTransitionStart\");\nregisterSimpleEvent(TRANSITION_CANCEL, \"onTransitionCancel\");\nregisterSimpleEvent(TRANSITION_END, \"onTransitionEnd\");\nregisterDirectEvent(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nregisterDirectEvent(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nregisterTwoPhaseEvent(\n \"onChange\",\n \"change click focusin focusout input keydown keyup selectionchange\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onSelect\",\n \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\n \" \"\n )\n);\nregisterTwoPhaseEvent(\"onBeforeInput\", [\n \"compositionend\",\n \"keypress\",\n \"textInput\",\n \"paste\"\n]);\nregisterTwoPhaseEvent(\n \"onCompositionEnd\",\n \"compositionend focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionStart\",\n \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionUpdate\",\n \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \")\n);\nvar mediaEventTypes =\n \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\n \" \"\n ),\n nonDelegatedEvents = new Set(\n \"beforetoggle cancel close invalid load scroll scrollend toggle\"\n .split(\" \")\n .concat(mediaEventTypes)\n );\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n eventSystemFlags = 0 !== (eventSystemFlags & 4);\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i],\n event = _dispatchQueue$i.event;\n _dispatchQueue$i = _dispatchQueue$i.listeners;\n a: {\n var previousInstance = void 0;\n if (eventSystemFlags)\n for (\n var i$jscomp$0 = _dispatchQueue$i.length - 1;\n 0 <= i$jscomp$0;\n i$jscomp$0--\n ) {\n var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n else\n for (\n i$jscomp$0 = 0;\n i$jscomp$0 < _dispatchQueue$i.length;\n i$jscomp$0++\n ) {\n _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];\n instance = _dispatchListeners$i.instance;\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n }\n }\n}\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n var JSCompiler_inline_result = targetElement[internalEventHandlersKey];\n void 0 === JSCompiler_inline_result &&\n (JSCompiler_inline_result = targetElement[internalEventHandlersKey] =\n new Set());\n var listenerSetKey = domEventName + \"__bubble\";\n JSCompiler_inline_result.has(listenerSetKey) ||\n (addTrappedEventListener(targetElement, domEventName, 2, !1),\n JSCompiler_inline_result.add(listenerSetKey));\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n var eventSystemFlags = 0;\n isCapturePhaseListener && (eventSystemFlags |= 4);\n addTrappedEventListener(\n target,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n );\n}\nvar listeningMarker = \"_reactListening\" + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n if (!rootContainerElement[listeningMarker]) {\n rootContainerElement[listeningMarker] = !0;\n allNativeEvents.forEach(function (domEventName) {\n \"selectionchange\" !== domEventName &&\n (nonDelegatedEvents.has(domEventName) ||\n listenToNativeEvent(domEventName, !1, rootContainerElement),\n listenToNativeEvent(domEventName, !0, rootContainerElement));\n });\n var ownerDocument =\n 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n null === ownerDocument ||\n ownerDocument[listeningMarker] ||\n ((ownerDocument[listeningMarker] = !0),\n listenToNativeEvent(\"selectionchange\", !1, ownerDocument));\n }\n}\nfunction addTrappedEventListener(\n targetContainer,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n) {\n switch (getEventPriority(domEventName)) {\n case 2:\n var listenerWrapper = dispatchDiscreteEvent;\n break;\n case 8:\n listenerWrapper = dispatchContinuousEvent;\n break;\n default:\n listenerWrapper = dispatchEvent;\n }\n eventSystemFlags = listenerWrapper.bind(\n null,\n domEventName,\n eventSystemFlags,\n targetContainer\n );\n listenerWrapper = void 0;\n !passiveBrowserEventsSupported ||\n (\"touchstart\" !== domEventName &&\n \"touchmove\" !== domEventName &&\n \"wheel\" !== domEventName) ||\n (listenerWrapper = !0);\n isCapturePhaseListener\n ? void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n capture: !0,\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)\n : void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !1);\n}\nfunction dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n targetInst$jscomp$0,\n targetContainer\n) {\n var ancestorInst = targetInst$jscomp$0;\n if (\n 0 === (eventSystemFlags & 1) &&\n 0 === (eventSystemFlags & 2) &&\n null !== targetInst$jscomp$0\n )\n a: for (;;) {\n if (null === targetInst$jscomp$0) return;\n var nodeTag = targetInst$jscomp$0.tag;\n if (3 === nodeTag || 4 === nodeTag) {\n var container = targetInst$jscomp$0.stateNode.containerInfo;\n if (container === targetContainer) break;\n if (4 === nodeTag)\n for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {\n var grandTag = nodeTag.tag;\n if (\n (3 === grandTag || 4 === grandTag) &&\n nodeTag.stateNode.containerInfo === targetContainer\n )\n return;\n nodeTag = nodeTag.return;\n }\n for (; null !== container; ) {\n nodeTag = getClosestInstanceFromNode(container);\n if (null === nodeTag) return;\n grandTag = nodeTag.tag;\n if (\n 5 === grandTag ||\n 6 === grandTag ||\n 26 === grandTag ||\n 27 === grandTag\n ) {\n targetInst$jscomp$0 = ancestorInst = nodeTag;\n continue a;\n }\n container = container.parentNode;\n }\n }\n targetInst$jscomp$0 = targetInst$jscomp$0.return;\n }\n batchedUpdates$1(function () {\n var targetInst = ancestorInst,\n nativeEventTarget = getEventTarget(nativeEvent),\n dispatchQueue = [];\n a: {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n if (void 0 !== reactName) {\n var SyntheticEventCtor = SyntheticEvent,\n reactEventType = domEventName;\n switch (domEventName) {\n case \"keypress\":\n if (0 === getEventCharCode(nativeEvent)) break a;\n case \"keydown\":\n case \"keyup\":\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n case \"focusin\":\n reactEventType = \"focus\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"focusout\":\n reactEventType = \"blur\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"beforeblur\":\n case \"afterblur\":\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"click\":\n if (2 === nativeEvent.button) break a;\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n case \"scroll\":\n case \"scrollend\":\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n case \"wheel\":\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n case \"copy\":\n case \"cut\":\n case \"paste\":\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n case \"submit\":\n SyntheticEventCtor = SyntheticSubmitEvent;\n break;\n case \"toggle\":\n case \"beforetoggle\":\n SyntheticEventCtor = SyntheticToggleEvent;\n }\n var inCapturePhase = 0 !== (eventSystemFlags & 4),\n accumulateTargetOnly =\n !inCapturePhase &&\n (\"scroll\" === domEventName || \"scrollend\" === domEventName),\n reactEventName = inCapturePhase\n ? null !== reactName\n ? reactName + \"Capture\"\n : null\n : reactName;\n inCapturePhase = [];\n for (\n var instance = targetInst, lastHostComponent;\n null !== instance;\n\n ) {\n var _instance = instance;\n lastHostComponent = _instance.stateNode;\n _instance = _instance.tag;\n (5 !== _instance && 26 !== _instance && 27 !== _instance) ||\n null === lastHostComponent ||\n null === reactEventName ||\n ((_instance = getListener(instance, reactEventName)),\n null != _instance &&\n inCapturePhase.push(\n createDispatchListener(instance, _instance, lastHostComponent)\n ));\n if (accumulateTargetOnly) break;\n instance = instance.return;\n }\n 0 < inCapturePhase.length &&\n ((reactName = new SyntheticEventCtor(\n reactName,\n reactEventType,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: reactName, listeners: inCapturePhase }));\n }\n }\n if (0 === (eventSystemFlags & 7)) {\n a: {\n SyntheticEventCtor =\n \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n reactName =\n \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n if (\n SyntheticEventCtor &&\n nativeEvent !== currentReplayingEvent &&\n (reactEventType =\n nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n (getClosestInstanceFromNode(reactEventType) ||\n reactEventType[internalContainerInstanceKey])\n )\n break a;\n if (reactName || SyntheticEventCtor) {\n reactEventType =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget\n : (SyntheticEventCtor = nativeEventTarget.ownerDocument)\n ? SyntheticEventCtor.defaultView ||\n SyntheticEventCtor.parentWindow\n : window;\n if (reactName) {\n if (\n ((SyntheticEventCtor =\n nativeEvent.relatedTarget || nativeEvent.toElement),\n (reactName = targetInst),\n (SyntheticEventCtor = SyntheticEventCtor\n ? getClosestInstanceFromNode(SyntheticEventCtor)\n : null),\n null !== SyntheticEventCtor &&\n ((accumulateTargetOnly =\n getNearestMountedFiber(SyntheticEventCtor)),\n (inCapturePhase = SyntheticEventCtor.tag),\n SyntheticEventCtor !== accumulateTargetOnly ||\n (5 !== inCapturePhase &&\n 27 !== inCapturePhase &&\n 6 !== inCapturePhase)))\n )\n SyntheticEventCtor = null;\n } else (reactName = null), (SyntheticEventCtor = targetInst);\n if (reactName !== SyntheticEventCtor) {\n inCapturePhase = SyntheticMouseEvent;\n _instance = \"onMouseLeave\";\n reactEventName = \"onMouseEnter\";\n instance = \"mouse\";\n if (\"pointerout\" === domEventName || \"pointerover\" === domEventName)\n (inCapturePhase = SyntheticPointerEvent),\n (_instance = \"onPointerLeave\"),\n (reactEventName = \"onPointerEnter\"),\n (instance = \"pointer\");\n accumulateTargetOnly =\n null == reactName\n ? reactEventType\n : getNodeFromInstance(reactName);\n lastHostComponent =\n null == SyntheticEventCtor\n ? reactEventType\n : getNodeFromInstance(SyntheticEventCtor);\n reactEventType = new inCapturePhase(\n _instance,\n instance + \"leave\",\n reactName,\n nativeEvent,\n nativeEventTarget\n );\n reactEventType.target = accumulateTargetOnly;\n reactEventType.relatedTarget = lastHostComponent;\n _instance = null;\n getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n ((inCapturePhase = new inCapturePhase(\n reactEventName,\n instance + \"enter\",\n SyntheticEventCtor,\n nativeEvent,\n nativeEventTarget\n )),\n (inCapturePhase.target = lastHostComponent),\n (inCapturePhase.relatedTarget = accumulateTargetOnly),\n (_instance = inCapturePhase));\n accumulateTargetOnly = _instance;\n inCapturePhase =\n reactName && SyntheticEventCtor\n ? getLowestCommonAncestor(\n reactName,\n SyntheticEventCtor,\n getParent\n )\n : null;\n null !== reactName &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n reactEventType,\n reactName,\n inCapturePhase,\n !1\n );\n null !== SyntheticEventCtor &&\n null !== accumulateTargetOnly &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n accumulateTargetOnly,\n SyntheticEventCtor,\n inCapturePhase,\n !0\n );\n }\n }\n }\n a: {\n reactName = targetInst ? getNodeFromInstance(targetInst) : window;\n SyntheticEventCtor =\n reactName.nodeName && reactName.nodeName.toLowerCase();\n if (\n \"select\" === SyntheticEventCtor ||\n (\"input\" === SyntheticEventCtor && \"file\" === reactName.type)\n )\n var getTargetInstFunc = getTargetInstForChangeEvent;\n else if (isTextInputElement(reactName))\n if (isInputEventSupported)\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n var handleEventFunc = handleEventsForInputEventPolyfill;\n }\n else\n (SyntheticEventCtor = reactName.nodeName),\n !SyntheticEventCtor ||\n \"input\" !== SyntheticEventCtor.toLowerCase() ||\n (\"checkbox\" !== reactName.type && \"radio\" !== reactName.type)\n ? targetInst &&\n isCustomElement(targetInst.elementType) &&\n (getTargetInstFunc = getTargetInstForChangeEvent)\n : (getTargetInstFunc = getTargetInstForClickEvent);\n if (\n getTargetInstFunc &&\n (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))\n ) {\n createAndAccumulateChangeEvent(\n dispatchQueue,\n getTargetInstFunc,\n nativeEvent,\n nativeEventTarget\n );\n break a;\n }\n handleEventFunc && handleEventFunc(domEventName, reactName, targetInst);\n }\n handleEventFunc = targetInst ? getNodeFromInstance(targetInst) : window;\n switch (domEventName) {\n case \"focusin\":\n if (\n isTextInputElement(handleEventFunc) ||\n \"true\" === handleEventFunc.contentEditable\n )\n (activeElement = handleEventFunc),\n (activeElementInst = targetInst),\n (lastSelection = null);\n break;\n case \"focusout\":\n lastSelection = activeElementInst = activeElement = null;\n break;\n case \"mousedown\":\n mouseDown = !0;\n break;\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n mouseDown = !1;\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n break;\n case \"selectionchange\":\n if (skipSelectionChangeEvent) break;\n case \"keydown\":\n case \"keyup\":\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n }\n var fallbackData;\n if (canUseCompositionEvent)\n b: {\n switch (domEventName) {\n case \"compositionstart\":\n var eventType = \"onCompositionStart\";\n break b;\n case \"compositionend\":\n eventType = \"onCompositionEnd\";\n break b;\n case \"compositionupdate\":\n eventType = \"onCompositionUpdate\";\n break b;\n }\n eventType = void 0;\n }\n else\n isComposing\n ? isFallbackCompositionEnd(domEventName, nativeEvent) &&\n (eventType = \"onCompositionEnd\")\n : \"keydown\" === domEventName &&\n 229 === nativeEvent.keyCode &&\n (eventType = \"onCompositionStart\");\n eventType &&\n (useFallbackCompositionData &&\n \"ko\" !== nativeEvent.locale &&\n (isComposing || \"onCompositionStart\" !== eventType\n ? \"onCompositionEnd\" === eventType &&\n isComposing &&\n (fallbackData = getData())\n : ((root = nativeEventTarget),\n (startText = \"value\" in root ? root.value : root.textContent),\n (isComposing = !0))),\n (handleEventFunc = accumulateTwoPhaseListeners(targetInst, eventType)),\n 0 < handleEventFunc.length &&\n ((eventType = new SyntheticCompositionEvent(\n eventType,\n domEventName,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: eventType, listeners: handleEventFunc }),\n fallbackData\n ? (eventType.data = fallbackData)\n : ((fallbackData = getDataFromCustomEvent(nativeEvent)),\n null !== fallbackData && (eventType.data = fallbackData))));\n if (\n (fallbackData = canUseTextInputEvent\n ? getNativeBeforeInputChars(domEventName, nativeEvent)\n : getFallbackBeforeInputChars(domEventName, nativeEvent))\n )\n (eventType = accumulateTwoPhaseListeners(targetInst, \"onBeforeInput\")),\n 0 < eventType.length &&\n ((handleEventFunc = new SyntheticCompositionEvent(\n \"onBeforeInput\",\n \"beforeinput\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: handleEventFunc,\n listeners: eventType\n }),\n (handleEventFunc.data = fallbackData));\n extractEvents$1(\n dispatchQueue,\n domEventName,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n }\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n });\n}\nfunction createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n}\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n for (\n var captureName = reactName + \"Capture\", listeners = [];\n null !== targetFiber;\n\n ) {\n var _instance2 = targetFiber,\n stateNode = _instance2.stateNode;\n _instance2 = _instance2.tag;\n (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||\n null === stateNode ||\n ((_instance2 = getListener(targetFiber, captureName)),\n null != _instance2 &&\n listeners.unshift(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ),\n (_instance2 = getListener(targetFiber, reactName)),\n null != _instance2 &&\n listeners.push(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ));\n if (3 === targetFiber.tag) return listeners;\n targetFiber = targetFiber.return;\n }\n return [];\n}\nfunction getParent(inst) {\n if (null === inst) return null;\n do inst = inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag);\n return inst ? inst : null;\n}\nfunction accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n event,\n target,\n common,\n inCapturePhase\n) {\n for (\n var registrationName = event._reactName, listeners = [];\n null !== target && target !== common;\n\n ) {\n var _instance3 = target,\n alternate = _instance3.alternate,\n stateNode = _instance3.stateNode;\n _instance3 = _instance3.tag;\n if (null !== alternate && alternate === common) break;\n (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||\n null === stateNode ||\n ((alternate = stateNode),\n inCapturePhase\n ? ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.unshift(\n createDispatchListener(target, stateNode, alternate)\n ))\n : inCapturePhase ||\n ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.push(\n createDispatchListener(target, stateNode, alternate)\n )));\n target = target.return;\n }\n 0 !== listeners.length &&\n dispatchQueue.push({ event: event, listeners: listeners });\n}\nvar NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g,\n NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\nfunction normalizeMarkupForTextOrAttribute(markup) {\n return (\"string\" === typeof markup ? markup : \"\" + markup)\n .replace(NORMALIZE_NEWLINES_REGEX, \"\\n\")\n .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, \"\");\n}\nfunction checkForUnmatchedText(serverText, clientText) {\n clientText = normalizeMarkupForTextOrAttribute(clientText);\n return normalizeMarkupForTextOrAttribute(serverText) === clientText ? !0 : !1;\n}\nfunction setProp(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"children\":\n if (\"string\" === typeof value)\n \"body\" === tag ||\n (\"textarea\" === tag && \"\" === value) ||\n setTextContent(domElement, value);\n else if (\"number\" === typeof value || \"bigint\" === typeof value)\n \"body\" !== tag && setTextContent(domElement, \"\" + value);\n else return;\n break;\n case \"className\":\n setValueForKnownAttribute(domElement, \"class\", value);\n break;\n case \"tabIndex\":\n setValueForKnownAttribute(domElement, \"tabindex\", value);\n break;\n case \"dir\":\n case \"role\":\n case \"viewBox\":\n case \"width\":\n case \"height\":\n setValueForKnownAttribute(domElement, key, value);\n break;\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n return;\n case \"data\":\n if (\"object\" !== tag) {\n setValueForKnownAttribute(domElement, \"data\", value);\n break;\n }\n case \"src\":\n case \"href\":\n if (\"\" === value && (\"a\" !== tag || \"href\" !== key)) {\n domElement.removeAttribute(key);\n break;\n }\n if (\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(value);\n domElement.setAttribute(key, value);\n break;\n case \"action\":\n case \"formAction\":\n if (\"function\" === typeof value) {\n domElement.setAttribute(\n key,\n \"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\"\n );\n break;\n } else\n \"function\" === typeof prevValue &&\n (\"formAction\" === key\n ? (\"input\" !== tag &&\n setProp(domElement, tag, \"name\", props.name, props, null),\n setProp(\n domElement,\n tag,\n \"formEncType\",\n props.formEncType,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formMethod\",\n props.formMethod,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formTarget\",\n props.formTarget,\n props,\n null\n ))\n : (setProp(domElement, tag, \"encType\", props.encType, props, null),\n setProp(domElement, tag, \"method\", props.method, props, null),\n setProp(domElement, tag, \"target\", props.target, props, null)));\n if (\n null == value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(value);\n domElement.setAttribute(key, value);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n return;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n return;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n return;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n (null != prevValue ? prevValue.__html : void 0) !== key &&\n (domElement.innerHTML = key);\n }\n }\n break;\n case \"multiple\":\n domElement.multiple =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"muted\":\n domElement.muted =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"autoFocus\":\n break;\n case \"xlinkHref\":\n if (\n null == value ||\n \"function\" === typeof value ||\n \"boolean\" === typeof value ||\n \"symbol\" === typeof value\n ) {\n domElement.removeAttribute(\"xlink:href\");\n break;\n }\n key = sanitizeURL(value);\n domElement.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n \"xlink:href\",\n key\n );\n break;\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n null != value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"inert\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"credentialless\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\")\n : domElement.removeAttribute(key);\n break;\n case \"capture\":\n case \"download\":\n !0 === value\n ? domElement.setAttribute(key, \"\")\n : !1 !== value &&\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value &&\n !isNaN(value) &&\n 1 <= value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"rowSpan\":\n case \"start\":\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n isNaN(value)\n ? domElement.removeAttribute(key)\n : domElement.setAttribute(key, value);\n break;\n case \"popover\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n setValueForAttribute(domElement, \"popover\", value);\n break;\n case \"xlinkActuate\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:actuate\",\n value\n );\n break;\n case \"xlinkArcrole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:arcrole\",\n value\n );\n break;\n case \"xlinkRole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:role\",\n value\n );\n break;\n case \"xlinkShow\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:show\",\n value\n );\n break;\n case \"xlinkTitle\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:title\",\n value\n );\n break;\n case \"xlinkType\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:type\",\n value\n );\n break;\n case \"xmlBase\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:base\",\n value\n );\n break;\n case \"xmlLang\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:lang\",\n value\n );\n break;\n case \"xmlSpace\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:space\",\n value\n );\n break;\n case \"is\":\n setValueForAttribute(domElement, \"is\", value);\n break;\n case \"innerText\":\n case \"textContent\":\n return;\n default:\n if (\n !(2 < key.length) ||\n (\"o\" !== key[0] && \"O\" !== key[0]) ||\n (\"n\" !== key[1] && \"N\" !== key[1])\n )\n (key = aliases.get(key) || key),\n setValueForAttribute(domElement, key, value);\n else return;\n }\n viewTransitionMutationContext = !0;\n}\nfunction setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n return;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n (null != prevValue ? prevValue.__html : void 0) !== key &&\n (domElement.innerHTML = key);\n }\n }\n break;\n case \"children\":\n if (\"string\" === typeof value) setTextContent(domElement, value);\n else if (\"number\" === typeof value || \"bigint\" === typeof value)\n setTextContent(domElement, \"\" + value);\n else return;\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n return;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n return;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n return;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"innerHTML\":\n case \"ref\":\n return;\n case \"innerText\":\n case \"textContent\":\n return;\n default:\n if (!registrationNameDependencies.hasOwnProperty(key))\n a: {\n if (\n \"o\" === key[0] &&\n \"n\" === key[1] &&\n ((props = key.endsWith(\"Capture\")),\n (prevValue = key.slice(2, props ? key.length - 7 : void 0)),\n (tag = domElement[internalPropsKey] || null),\n (tag = null != tag ? tag[key] : null),\n \"function\" === typeof tag &&\n domElement.removeEventListener(prevValue, tag, props),\n \"function\" === typeof value)\n ) {\n \"function\" !== typeof tag &&\n null !== tag &&\n (key in domElement\n ? (domElement[key] = null)\n : domElement.hasAttribute(key) &&\n domElement.removeAttribute(key));\n domElement.addEventListener(prevValue, value, props);\n break a;\n }\n viewTransitionMutationContext = !0;\n key in domElement\n ? (domElement[key] = value)\n : !0 === value\n ? domElement.setAttribute(key, \"\")\n : setValueForAttribute(domElement, key, value);\n }\n return;\n }\n viewTransitionMutationContext = !0;\n}\nfunction setInitialProperties(domElement, tag, props) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"img\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n var hasSrc = !1,\n hasSrcSet = !1,\n propKey;\n for (propKey in props)\n if (props.hasOwnProperty(propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"src\":\n hasSrc = !0;\n break;\n case \"srcSet\":\n hasSrcSet = !0;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, propKey, propValue, props, null);\n }\n }\n hasSrcSet &&\n setProp(domElement, tag, \"srcSet\", props.srcSet, props, null);\n hasSrc && setProp(domElement, tag, \"src\", props.src, props, null);\n return;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n var defaultValue = (propKey = propValue = hasSrcSet = null),\n checked = null,\n defaultChecked = null;\n for (hasSrc in props)\n if (props.hasOwnProperty(hasSrc)) {\n var propValue$204 = props[hasSrc];\n if (null != propValue$204)\n switch (hasSrc) {\n case \"name\":\n hasSrcSet = propValue$204;\n break;\n case \"type\":\n propValue = propValue$204;\n break;\n case \"checked\":\n checked = propValue$204;\n break;\n case \"defaultChecked\":\n defaultChecked = propValue$204;\n break;\n case \"value\":\n propKey = propValue$204;\n break;\n case \"defaultValue\":\n defaultValue = propValue$204;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propValue$204)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(domElement, tag, hasSrc, propValue$204, props, null);\n }\n }\n initInput(\n domElement,\n propKey,\n defaultValue,\n checked,\n defaultChecked,\n propValue,\n hasSrcSet,\n !1\n );\n return;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n hasSrc = propValue = propKey = null;\n for (hasSrcSet in props)\n if (\n props.hasOwnProperty(hasSrcSet) &&\n ((defaultValue = props[hasSrcSet]), null != defaultValue)\n )\n switch (hasSrcSet) {\n case \"value\":\n propKey = defaultValue;\n break;\n case \"defaultValue\":\n propValue = defaultValue;\n break;\n case \"multiple\":\n hasSrc = defaultValue;\n default:\n setProp(domElement, tag, hasSrcSet, defaultValue, props, null);\n }\n tag = propKey;\n props = propValue;\n domElement.multiple = !!hasSrc;\n null != tag\n ? updateOptions(domElement, !!hasSrc, tag, !1)\n : null != props && updateOptions(domElement, !!hasSrc, props, !0);\n return;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n propKey = hasSrcSet = hasSrc = null;\n for (propValue in props)\n if (\n props.hasOwnProperty(propValue) &&\n ((defaultValue = props[propValue]), null != defaultValue)\n )\n switch (propValue) {\n case \"value\":\n hasSrc = defaultValue;\n break;\n case \"defaultValue\":\n hasSrcSet = defaultValue;\n break;\n case \"children\":\n propKey = defaultValue;\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != defaultValue) throw Error(formatProdErrorMessage(91));\n break;\n default:\n setProp(domElement, tag, propValue, defaultValue, props, null);\n }\n initTextarea(domElement, hasSrc, hasSrcSet, propKey);\n return;\n case \"option\":\n for (checked in props)\n if (\n props.hasOwnProperty(checked) &&\n ((hasSrc = props[checked]), null != hasSrc)\n )\n switch (checked) {\n case \"selected\":\n domElement.selected =\n hasSrc &&\n \"function\" !== typeof hasSrc &&\n \"symbol\" !== typeof hasSrc;\n break;\n default:\n setProp(domElement, tag, checked, hasSrc, props, null);\n }\n return;\n case \"dialog\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n listenToNonDelegatedEvent(\"cancel\", domElement);\n listenToNonDelegatedEvent(\"close\", domElement);\n break;\n case \"iframe\":\n case \"object\":\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"video\":\n case \"audio\":\n for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)\n listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);\n break;\n case \"image\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", domElement);\n break;\n case \"embed\":\n case \"source\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", domElement),\n listenToNonDelegatedEvent(\"load\", domElement);\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (defaultChecked in props)\n if (\n props.hasOwnProperty(defaultChecked) &&\n ((hasSrc = props[defaultChecked]), null != hasSrc)\n )\n switch (defaultChecked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, defaultChecked, hasSrc, props, null);\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (propValue$204 in props)\n props.hasOwnProperty(propValue$204) &&\n ((hasSrc = props[propValue$204]),\n void 0 !== hasSrc &&\n setPropOnCustomElement(\n domElement,\n tag,\n propValue$204,\n hasSrc,\n props,\n void 0\n ));\n return;\n }\n }\n for (defaultValue in props)\n props.hasOwnProperty(defaultValue) &&\n ((hasSrc = props[defaultValue]),\n null != hasSrc &&\n setProp(domElement, tag, defaultValue, hasSrc, props, null));\n}\nvar emptyProps = {};\nfunction updateProperties(domElement, tag, lastProps, nextProps) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"input\":\n var name = null,\n type = null,\n value = null,\n defaultValue = null,\n lastDefaultValue = null,\n checked = null,\n defaultChecked = null;\n for (propKey in lastProps) {\n var lastProp = lastProps[propKey];\n if (lastProps.hasOwnProperty(propKey) && null != lastProp)\n switch (propKey) {\n case \"checked\":\n break;\n case \"value\":\n break;\n case \"defaultValue\":\n lastDefaultValue = lastProp;\n default:\n nextProps.hasOwnProperty(propKey) ||\n setProp(domElement, tag, propKey, null, nextProps, lastProp);\n }\n }\n for (var propKey$221 in nextProps) {\n var propKey = nextProps[propKey$221];\n lastProp = lastProps[propKey$221];\n if (\n nextProps.hasOwnProperty(propKey$221) &&\n (null != propKey || null != lastProp)\n )\n switch (propKey$221) {\n case \"type\":\n propKey !== lastProp && (viewTransitionMutationContext = !0);\n type = propKey;\n break;\n case \"name\":\n propKey !== lastProp && (viewTransitionMutationContext = !0);\n name = propKey;\n break;\n case \"checked\":\n propKey !== lastProp && (viewTransitionMutationContext = !0);\n checked = propKey;\n break;\n case \"defaultChecked\":\n propKey !== lastProp && (viewTransitionMutationContext = !0);\n defaultChecked = propKey;\n break;\n case \"value\":\n propKey !== lastProp && (viewTransitionMutationContext = !0);\n value = propKey;\n break;\n case \"defaultValue\":\n propKey !== lastProp && (viewTransitionMutationContext = !0);\n defaultValue = propKey;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n propKey !== lastProp &&\n setProp(\n domElement,\n tag,\n propKey$221,\n propKey,\n nextProps,\n lastProp\n );\n }\n }\n updateInput(\n domElement,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n );\n return;\n case \"select\":\n propKey = value = defaultValue = propKey$221 = null;\n for (type in lastProps)\n if (\n ((lastDefaultValue = lastProps[type]),\n lastProps.hasOwnProperty(type) && null != lastDefaultValue)\n )\n switch (type) {\n case \"value\":\n break;\n case \"multiple\":\n propKey = lastDefaultValue;\n default:\n nextProps.hasOwnProperty(type) ||\n setProp(\n domElement,\n tag,\n type,\n null,\n nextProps,\n lastDefaultValue\n );\n }\n for (name in nextProps)\n if (\n ((type = nextProps[name]),\n (lastDefaultValue = lastProps[name]),\n nextProps.hasOwnProperty(name) &&\n (null != type || null != lastDefaultValue))\n )\n switch (name) {\n case \"value\":\n type !== lastDefaultValue && (viewTransitionMutationContext = !0);\n propKey$221 = type;\n break;\n case \"defaultValue\":\n type !== lastDefaultValue && (viewTransitionMutationContext = !0);\n defaultValue = type;\n break;\n case \"multiple\":\n type !== lastDefaultValue && (viewTransitionMutationContext = !0),\n (value = type);\n default:\n type !== lastDefaultValue &&\n setProp(\n domElement,\n tag,\n name,\n type,\n nextProps,\n lastDefaultValue\n );\n }\n tag = defaultValue;\n lastProps = value;\n nextProps = propKey;\n null != propKey$221\n ? updateOptions(domElement, !!lastProps, propKey$221, !1)\n : !!nextProps !== !!lastProps &&\n (null != tag\n ? updateOptions(domElement, !!lastProps, tag, !0)\n : updateOptions(domElement, !!lastProps, lastProps ? [] : \"\", !1));\n return;\n case \"textarea\":\n propKey = propKey$221 = null;\n for (defaultValue in lastProps)\n if (\n ((name = lastProps[defaultValue]),\n lastProps.hasOwnProperty(defaultValue) &&\n null != name &&\n !nextProps.hasOwnProperty(defaultValue))\n )\n switch (defaultValue) {\n case \"value\":\n break;\n case \"children\":\n break;\n default:\n setProp(domElement, tag, defaultValue, null, nextProps, name);\n }\n for (value in nextProps)\n if (\n ((name = nextProps[value]),\n (type = lastProps[value]),\n nextProps.hasOwnProperty(value) && (null != name || null != type))\n )\n switch (value) {\n case \"value\":\n name !== type && (viewTransitionMutationContext = !0);\n propKey$221 = name;\n break;\n case \"defaultValue\":\n name !== type && (viewTransitionMutationContext = !0);\n propKey = name;\n break;\n case \"children\":\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != name) throw Error(formatProdErrorMessage(91));\n break;\n default:\n name !== type &&\n setProp(domElement, tag, value, name, nextProps, type);\n }\n updateTextarea(domElement, propKey$221, propKey);\n return;\n case \"option\":\n for (var propKey$237 in lastProps)\n if (\n ((propKey$221 = lastProps[propKey$237]),\n lastProps.hasOwnProperty(propKey$237) &&\n null != propKey$221 &&\n !nextProps.hasOwnProperty(propKey$237))\n )\n switch (propKey$237) {\n case \"selected\":\n domElement.selected = !1;\n break;\n default:\n setProp(\n domElement,\n tag,\n propKey$237,\n null,\n nextProps,\n propKey$221\n );\n }\n for (lastDefaultValue in nextProps)\n if (\n ((propKey$221 = nextProps[lastDefaultValue]),\n (propKey = lastProps[lastDefaultValue]),\n nextProps.hasOwnProperty(lastDefaultValue) &&\n propKey$221 !== propKey &&\n (null != propKey$221 || null != propKey))\n )\n switch (lastDefaultValue) {\n case \"selected\":\n propKey$221 !== propKey && (viewTransitionMutationContext = !0);\n domElement.selected =\n propKey$221 &&\n \"function\" !== typeof propKey$221 &&\n \"symbol\" !== typeof propKey$221;\n break;\n default:\n setProp(\n domElement,\n tag,\n lastDefaultValue,\n propKey$221,\n nextProps,\n propKey\n );\n }\n return;\n case \"img\":\n case \"link\":\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (var propKey$242 in lastProps)\n (propKey$221 = lastProps[propKey$242]),\n lastProps.hasOwnProperty(propKey$242) &&\n null != propKey$221 &&\n !nextProps.hasOwnProperty(propKey$242) &&\n setProp(domElement, tag, propKey$242, null, nextProps, propKey$221);\n for (checked in nextProps)\n if (\n ((propKey$221 = nextProps[checked]),\n (propKey = lastProps[checked]),\n nextProps.hasOwnProperty(checked) &&\n propKey$221 !== propKey &&\n (null != propKey$221 || null != propKey))\n )\n switch (checked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey$221)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(\n domElement,\n tag,\n checked,\n propKey$221,\n nextProps,\n propKey\n );\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (var propKey$247 in lastProps)\n (propKey$221 = lastProps[propKey$247]),\n lastProps.hasOwnProperty(propKey$247) &&\n void 0 !== propKey$221 &&\n !nextProps.hasOwnProperty(propKey$247) &&\n setPropOnCustomElement(\n domElement,\n tag,\n propKey$247,\n void 0,\n nextProps,\n propKey$221\n );\n for (defaultChecked in nextProps)\n (propKey$221 = nextProps[defaultChecked]),\n (propKey = lastProps[defaultChecked]),\n !nextProps.hasOwnProperty(defaultChecked) ||\n propKey$221 === propKey ||\n (void 0 === propKey$221 && void 0 === propKey) ||\n setPropOnCustomElement(\n domElement,\n tag,\n defaultChecked,\n propKey$221,\n nextProps,\n propKey\n );\n return;\n }\n }\n for (var propKey$252 in lastProps)\n (propKey$221 = lastProps[propKey$252]),\n lastProps.hasOwnProperty(propKey$252) &&\n null != propKey$221 &&\n !nextProps.hasOwnProperty(propKey$252) &&\n setProp(domElement, tag, propKey$252, null, nextProps, propKey$221);\n for (lastProp in nextProps)\n (propKey$221 = nextProps[lastProp]),\n (propKey = lastProps[lastProp]),\n !nextProps.hasOwnProperty(lastProp) ||\n propKey$221 === propKey ||\n (null == propKey$221 && null == propKey) ||\n setProp(domElement, tag, lastProp, propKey$221, nextProps, propKey);\n}\nfunction isLikelyStaticResource(initiatorType) {\n switch (initiatorType) {\n case \"css\":\n case \"script\":\n case \"font\":\n case \"img\":\n case \"image\":\n case \"input\":\n case \"link\":\n return !0;\n default:\n return !1;\n }\n}\nfunction estimateBandwidth() {\n if (\"function\" === typeof performance.getEntriesByType) {\n for (\n var count = 0,\n bits = 0,\n resourceEntries = performance.getEntriesByType(\"resource\"),\n i = 0;\n i < resourceEntries.length;\n i++\n ) {\n var entry = resourceEntries[i],\n transferSize = entry.transferSize,\n initiatorType = entry.initiatorType,\n duration = entry.duration;\n if (transferSize && duration && isLikelyStaticResource(initiatorType)) {\n initiatorType = 0;\n duration = entry.responseEnd;\n for (i += 1; i < resourceEntries.length; i++) {\n var overlapEntry = resourceEntries[i],\n overlapStartTime = overlapEntry.startTime;\n if (overlapStartTime > duration) break;\n var overlapTransferSize = overlapEntry.transferSize,\n overlapInitiatorType = overlapEntry.initiatorType;\n overlapTransferSize &&\n isLikelyStaticResource(overlapInitiatorType) &&\n ((overlapEntry = overlapEntry.responseEnd),\n (initiatorType +=\n overlapTransferSize *\n (overlapEntry < duration\n ? 1\n : (duration - overlapStartTime) /\n (overlapEntry - overlapStartTime))));\n }\n --i;\n bits += (8 * (transferSize + initiatorType)) / (entry.duration / 1e3);\n count++;\n if (10 < count) break;\n }\n }\n if (0 < count) return bits / count / 1e6;\n }\n return navigator.connection &&\n ((count = navigator.connection.downlink), \"number\" === typeof count)\n ? count\n : 5;\n}\nvar eventsEnabled = null,\n selectionInformation = null;\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n}\nfunction getOwnHostContext(namespaceURI) {\n switch (namespaceURI) {\n case \"http://www.w3.org/2000/svg\":\n return 1;\n case \"http://www.w3.org/1998/Math/MathML\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getChildHostContextProd(parentNamespace, type) {\n if (0 === parentNamespace)\n switch (type) {\n case \"svg\":\n return 1;\n case \"math\":\n return 2;\n default:\n return 0;\n }\n return 1 === parentNamespace && \"foreignObject\" === type\n ? 0\n : parentNamespace;\n}\nfunction createHoistableInstance(\n type,\n props,\n rootContainerInstance,\n internalInstanceHandle\n) {\n rootContainerInstance = getOwnerDocumentFromRootContainer(\n rootContainerInstance\n ).createElement(type);\n rootContainerInstance[internalInstanceKey] = internalInstanceHandle;\n rootContainerInstance[internalPropsKey] = props;\n setInitialProperties(rootContainerInstance, type, props);\n markNodeAsHoistable(rootContainerInstance);\n return rootContainerInstance;\n}\nfunction shouldSetTextContent(type, props) {\n return (\n \"textarea\" === type ||\n \"noscript\" === type ||\n \"string\" === typeof props.children ||\n \"number\" === typeof props.children ||\n \"bigint\" === typeof props.children ||\n (\"object\" === typeof props.dangerouslySetInnerHTML &&\n null !== props.dangerouslySetInnerHTML &&\n null != props.dangerouslySetInnerHTML.__html)\n );\n}\nvar currentPopstateTransitionEvent = null;\nfunction shouldAttemptEagerTransition() {\n var event = window.event;\n if (event && \"popstate\" === event.type) {\n if (event === currentPopstateTransitionEvent) return !1;\n currentPopstateTransitionEvent = event;\n return !0;\n }\n currentPopstateTransitionEvent = null;\n return !1;\n}\nvar scheduleTimeout = \"function\" === typeof setTimeout ? setTimeout : void 0,\n cancelTimeout = \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n localPromise = \"function\" === typeof Promise ? Promise : void 0,\n localRequestAnimationFrame =\n \"function\" === typeof requestAnimationFrame\n ? requestAnimationFrame\n : scheduleTimeout,\n scheduleMicrotask =\n \"function\" === typeof queueMicrotask\n ? queueMicrotask\n : \"undefined\" !== typeof localPromise\n ? function (callback) {\n return localPromise\n .resolve(null)\n .then(callback)\n .catch(handleErrorInNextTick);\n }\n : scheduleTimeout;\nfunction handleErrorInNextTick(error) {\n setTimeout(function () {\n throw error;\n });\n}\nfunction isSingletonScope(type) {\n return \"head\" === type;\n}\nfunction clearHydrationBoundary(parentInstance, hydrationInstance) {\n var node = hydrationInstance,\n depth = 0;\n do {\n var nextNode = node.nextSibling;\n parentInstance.removeChild(node);\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node || \"/&\" === node)) {\n if (0 === depth) {\n parentInstance.removeChild(nextNode);\n retryIfBlockedOn(hydrationInstance);\n return;\n }\n depth--;\n } else if (\n \"$\" === node ||\n \"$?\" === node ||\n \"$~\" === node ||\n \"$!\" === node ||\n \"&\" === node\n )\n depth++;\n else if (\"html\" === node)\n clearSingletonPreambleContribution(\n parentInstance.ownerDocument.documentElement\n );\n else if (\"head\" === node) {\n node = parentInstance.ownerDocument.head;\n clearSingletonPreambleContribution(node);\n for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {\n var nextNode$jscomp$0 = node$jscomp$0.nextSibling,\n nodeName = node$jscomp$0.nodeName;\n node$jscomp$0[internalHoistableMarker] ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === node$jscomp$0.rel.toLowerCase()) ||\n node.removeChild(node$jscomp$0);\n node$jscomp$0 = nextNode$jscomp$0;\n }\n } else\n \"body\" === node &&\n clearSingletonPreambleContribution(parentInstance.ownerDocument.body);\n node = nextNode;\n } while (node);\n retryIfBlockedOn(hydrationInstance);\n}\nfunction hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {\n var node = suspenseInstance;\n suspenseInstance = 0;\n do {\n var nextNode = node.nextSibling;\n 1 === node.nodeType\n ? isHidden\n ? ((node._stashedDisplay = node.style.display),\n (node.style.display = \"none\"))\n : ((node.style.display = node._stashedDisplay || \"\"),\n \"\" === node.getAttribute(\"style\") && node.removeAttribute(\"style\"))\n : 3 === node.nodeType &&\n (isHidden\n ? ((node._stashedText = node.nodeValue), (node.nodeValue = \"\"))\n : (node.nodeValue = node._stashedText || \"\"));\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node))\n if (0 === suspenseInstance) break;\n else suspenseInstance--;\n else\n (\"$\" !== node && \"$?\" !== node && \"$~\" !== node && \"$!\" !== node) ||\n suspenseInstance++;\n node = nextNode;\n } while (node);\n}\nfunction applyViewTransitionName(instance, name, className) {\n name = CSS.escape(name) !== name ? \"r-\" + btoa(name).replace(/=/g, \"\") : name;\n instance.style.viewTransitionName = name;\n null != className && (instance.style.viewTransitionClass = className);\n className = getComputedStyle(instance);\n if (\"inline\" === className.display) {\n name = instance.getClientRects();\n if (1 === name.length) var JSCompiler_inline_result = 1;\n else\n for (var i = (JSCompiler_inline_result = 0); i < name.length; i++) {\n var rect = name[i];\n 0 < rect.width && 0 < rect.height && JSCompiler_inline_result++;\n }\n 1 === JSCompiler_inline_result &&\n ((instance = instance.style),\n (instance.display = 1 === name.length ? \"inline-block\" : \"block\"),\n (instance.marginTop = \"-\" + className.paddingTop),\n (instance.marginBottom = \"-\" + className.paddingBottom));\n }\n}\nfunction restoreViewTransitionName(instance, props) {\n instance = instance.style;\n props = props.style;\n var viewTransitionName =\n null != props\n ? props.hasOwnProperty(\"viewTransitionName\")\n ? props.viewTransitionName\n : props.hasOwnProperty(\"view-transition-name\")\n ? props[\"view-transition-name\"]\n : null\n : null;\n instance.viewTransitionName =\n null == viewTransitionName || \"boolean\" === typeof viewTransitionName\n ? \"\"\n : (\"\" + viewTransitionName).trim();\n viewTransitionName =\n null != props\n ? props.hasOwnProperty(\"viewTransitionClass\")\n ? props.viewTransitionClass\n : props.hasOwnProperty(\"view-transition-class\")\n ? props[\"view-transition-class\"]\n : null\n : null;\n instance.viewTransitionClass =\n null == viewTransitionName || \"boolean\" === typeof viewTransitionName\n ? \"\"\n : (\"\" + viewTransitionName).trim();\n \"inline-block\" === instance.display &&\n (null == props\n ? (instance.display = instance.margin = \"\")\n : ((viewTransitionName = props.display),\n (instance.display =\n null == viewTransitionName || \"boolean\" === typeof viewTransitionName\n ? \"\"\n : viewTransitionName),\n (viewTransitionName = props.margin),\n null != viewTransitionName\n ? (instance.margin = viewTransitionName)\n : ((viewTransitionName = props.hasOwnProperty(\"marginTop\")\n ? props.marginTop\n : props[\"margin-top\"]),\n (instance.marginTop =\n null == viewTransitionName ||\n \"boolean\" === typeof viewTransitionName\n ? \"\"\n : viewTransitionName),\n (props = props.hasOwnProperty(\"marginBottom\")\n ? props.marginBottom\n : props[\"margin-bottom\"]),\n (instance.marginBottom =\n null == props || \"boolean\" === typeof props ? \"\" : props))));\n}\nfunction createMeasurement(rect, computedStyle, element) {\n element = element.ownerDocument.defaultView;\n return {\n rect: rect,\n abs:\n \"absolute\" === computedStyle.position ||\n \"fixed\" === computedStyle.position,\n clip:\n \"none\" !== computedStyle.clipPath ||\n \"visible\" !== computedStyle.overflow ||\n \"none\" !== computedStyle.filter ||\n \"none\" !== computedStyle.mask ||\n \"none\" !== computedStyle.mask ||\n \"0px\" !== computedStyle.borderRadius,\n view:\n 0 <= rect.bottom &&\n 0 <= rect.right &&\n rect.top <= element.innerHeight &&\n rect.left <= element.innerWidth\n };\n}\nfunction measureInstance(instance) {\n var rect = instance.getBoundingClientRect(),\n computedStyle = getComputedStyle(instance);\n return createMeasurement(rect, computedStyle, instance);\n}\nfunction measureClonedInstance(instance) {\n var measuredRect = instance.getBoundingClientRect();\n measuredRect = new DOMRect(\n measuredRect.x + 2e4,\n measuredRect.y + 2e4,\n measuredRect.width,\n measuredRect.height\n );\n var computedStyle = getComputedStyle(instance);\n return createMeasurement(measuredRect, computedStyle, instance);\n}\nfunction forceLayout(ownerDocument) {\n return ownerDocument.documentElement.clientHeight;\n}\nfunction waitForImageToLoad(resolve) {\n this.addEventListener(\"load\", resolve);\n this.addEventListener(\"error\", resolve);\n}\nfunction startViewTransition(\n suspendedState,\n rootContainer,\n transitionTypes,\n mutationCallback,\n layoutCallback,\n afterMutationCallback,\n spawnedWorkCallback,\n passiveCallback,\n errorCallback\n) {\n var ownerDocument =\n 9 === rootContainer.nodeType ? rootContainer : rootContainer.ownerDocument;\n try {\n var transition = ownerDocument.startViewTransition({\n update: function () {\n var ownerWindow = ownerDocument.defaultView,\n pendingNavigation =\n ownerWindow.navigation && ownerWindow.navigation.transition,\n previousFontLoadingStatus = ownerDocument.fonts.status;\n mutationCallback();\n var blockingPromises = [];\n \"loaded\" === previousFontLoadingStatus &&\n (forceLayout(ownerDocument),\n \"loading\" === ownerDocument.fonts.status &&\n blockingPromises.push(ownerDocument.fonts.ready));\n previousFontLoadingStatus = blockingPromises.length;\n if (null !== suspendedState)\n for (\n var suspenseyImages = suspendedState.suspenseyImages,\n imgBytes = 0,\n i = 0;\n i < suspenseyImages.length;\n i++\n ) {\n var suspenseyImage = suspenseyImages[i];\n if (!suspenseyImage.complete) {\n var rect = suspenseyImage.getBoundingClientRect();\n if (\n 0 < rect.bottom &&\n 0 < rect.right &&\n rect.top < ownerWindow.innerHeight &&\n rect.left < ownerWindow.innerWidth\n ) {\n imgBytes += estimateImageBytes(suspenseyImage);\n if (imgBytes > estimatedBytesWithinLimit) {\n blockingPromises.length = previousFontLoadingStatus;\n break;\n }\n suspenseyImage = new Promise(\n waitForImageToLoad.bind(suspenseyImage)\n );\n blockingPromises.push(suspenseyImage);\n }\n }\n }\n if (0 < blockingPromises.length)\n return (\n (ownerWindow = Promise.race([\n Promise.all(blockingPromises),\n new Promise(function (resolve) {\n return setTimeout(resolve, 500);\n })\n ]).then(layoutCallback, layoutCallback)),\n (pendingNavigation\n ? Promise.allSettled([pendingNavigation.finished, ownerWindow])\n : ownerWindow\n ).then(afterMutationCallback, afterMutationCallback)\n );\n layoutCallback();\n if (pendingNavigation)\n return pendingNavigation.finished.then(\n afterMutationCallback,\n afterMutationCallback\n );\n afterMutationCallback();\n },\n types: transitionTypes\n });\n ownerDocument.__reactViewTransition = transition;\n var viewTransitionAnimations = [];\n transition.ready.then(\n function () {\n for (\n var animations = ownerDocument.documentElement.getAnimations({\n subtree: !0\n }),\n i = 0;\n i < animations.length;\n i++\n ) {\n var animation = animations[i],\n effect = animation.effect,\n pseudoElement = effect.pseudoElement;\n if (\n null != pseudoElement &&\n pseudoElement.startsWith(\"::view-transition\")\n ) {\n viewTransitionAnimations.push(animation);\n animation = effect.getKeyframes();\n for (\n var height = (pseudoElement = void 0),\n unchangedDimensions = !0,\n j = 0;\n j < animation.length;\n j++\n ) {\n var keyframe = animation[j],\n w = keyframe.width;\n if (void 0 === pseudoElement) pseudoElement = w;\n else if (pseudoElement !== w) {\n unchangedDimensions = !1;\n break;\n }\n w = keyframe.height;\n if (void 0 === height) height = w;\n else if (height !== w) {\n unchangedDimensions = !1;\n break;\n }\n delete keyframe.width;\n delete keyframe.height;\n \"none\" === keyframe.transform && delete keyframe.transform;\n }\n unchangedDimensions &&\n void 0 !== pseudoElement &&\n void 0 !== height &&\n (effect.setKeyframes(animation),\n (unchangedDimensions = getComputedStyle(\n effect.target,\n effect.pseudoElement\n )),\n unchangedDimensions.width !== pseudoElement ||\n unchangedDimensions.height !== height) &&\n ((unchangedDimensions = animation[0]),\n (unchangedDimensions.width = pseudoElement),\n (unchangedDimensions.height = height),\n (unchangedDimensions = animation[animation.length - 1]),\n (unchangedDimensions.width = pseudoElement),\n (unchangedDimensions.height = height),\n effect.setKeyframes(animation));\n }\n }\n spawnedWorkCallback();\n },\n function (error) {\n ownerDocument.__reactViewTransition === transition &&\n (ownerDocument.__reactViewTransition = null);\n try {\n if (\"object\" === typeof error && null !== error)\n switch (error.name) {\n case \"InvalidStateError\":\n if (\n \"View transition was skipped because document visibility state is hidden.\" ===\n error.message ||\n \"Skipping view transition because document visibility state has become hidden.\" ===\n error.message ||\n \"Skipping view transition because viewport size changed.\" ===\n error.message ||\n \"Transition was aborted because of invalid state\" ===\n error.message\n )\n error = null;\n }\n null !== error && errorCallback(error);\n } finally {\n mutationCallback(), layoutCallback(), spawnedWorkCallback();\n }\n }\n );\n transition.finished.finally(function () {\n for (var i = 0; i < viewTransitionAnimations.length; i++)\n viewTransitionAnimations[i].cancel();\n ownerDocument.__reactViewTransition === transition &&\n (ownerDocument.__reactViewTransition = null);\n passiveCallback();\n });\n return transition;\n } catch (x) {\n return mutationCallback(), layoutCallback(), spawnedWorkCallback(), null;\n }\n}\nfunction ViewTransitionPseudoElement(pseudo, name) {\n this._scope = document.documentElement;\n this._selector = \"::view-transition-\" + pseudo + \"(\" + name + \")\";\n}\nViewTransitionPseudoElement.prototype.animate = function (keyframes, options) {\n options =\n \"number\" === typeof options ? { duration: options } : assign({}, options);\n options.pseudoElement = this._selector;\n return this._scope.animate(keyframes, options);\n};\nViewTransitionPseudoElement.prototype.getAnimations = function () {\n for (\n var scope = this._scope,\n selector = this._selector,\n animations = scope.getAnimations({ subtree: !0 }),\n result = [],\n i = 0;\n i < animations.length;\n i++\n ) {\n var effect = animations[i].effect;\n null !== effect &&\n effect.target === scope &&\n effect.pseudoElement === selector &&\n result.push(animations[i]);\n }\n return result;\n};\nViewTransitionPseudoElement.prototype.getComputedStyle = function () {\n return getComputedStyle(this._scope, this._selector);\n};\nfunction createViewTransitionInstance(name) {\n return {\n name: name,\n group: new ViewTransitionPseudoElement(\"group\", name),\n imagePair: new ViewTransitionPseudoElement(\"image-pair\", name),\n old: new ViewTransitionPseudoElement(\"old\", name),\n new: new ViewTransitionPseudoElement(\"new\", name)\n };\n}\nfunction FragmentInstance(fragmentFiber) {\n this._fragmentFiber = fragmentFiber;\n this._observers = this._eventListeners = null;\n}\nFragmentInstance.prototype.addEventListener = function (\n type,\n listener,\n optionsOrUseCapture\n) {\n var signal = null,\n cleanup = null;\n if (\n null != optionsOrUseCapture &&\n \"boolean\" !== typeof optionsOrUseCapture &&\n ((signal = optionsOrUseCapture.signal || null),\n null !== signal && signal.aborted)\n )\n return;\n null === this._eventListeners && (this._eventListeners = []);\n var listeners = this._eventListeners;\n if (\n -1 === indexOfEventListener(listeners, type, listener, optionsOrUseCapture)\n ) {\n var fragmentInstance = this,\n attachedListener = listener;\n null != optionsOrUseCapture &&\n \"boolean\" !== typeof optionsOrUseCapture &&\n !0 === optionsOrUseCapture.once &&\n (attachedListener = function (event) {\n fragmentInstance.removeEventListener(\n type,\n listener,\n optionsOrUseCapture\n );\n \"function\" === typeof listener\n ? listener.call(this, event)\n : listener.handleEvent(event);\n });\n null !== signal &&\n ((cleanup = fragmentInstance.removeEventListener.bind(\n fragmentInstance,\n type,\n listener,\n optionsOrUseCapture\n )),\n signal.addEventListener(\"abort\", cleanup, { once: !0 }),\n (cleanup = signal.removeEventListener.bind(signal, \"abort\", cleanup)));\n signal = getAttachOptions(optionsOrUseCapture);\n listeners.push({\n type: type,\n listener: listener,\n optionsOrUseCapture: optionsOrUseCapture,\n attachedListener: attachedListener,\n cleanup: cleanup\n });\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n addEventListenerToChild,\n type,\n attachedListener,\n signal\n );\n }\n this._eventListeners = listeners;\n};\nfunction addEventListenerToChild(child, type, listener, optionsOrUseCapture) {\n getInstanceFromHostFiber(child).addEventListener(\n type,\n listener,\n optionsOrUseCapture\n );\n return !1;\n}\nFragmentInstance.prototype.removeEventListener = function (\n type,\n listener,\n optionsOrUseCapture\n) {\n var listeners = this._eventListeners;\n if (\n null !== listeners &&\n ((listener = indexOfEventListener(\n listeners,\n type,\n listener,\n optionsOrUseCapture\n )),\n -1 !== listener)\n ) {\n var _listeners$index = listeners[listener];\n optionsOrUseCapture = _listeners$index.attachedListener;\n var cleanup = _listeners$index.cleanup;\n _listeners$index = getAttachOptions(_listeners$index.optionsOrUseCapture);\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n removeEventListenerFromChild,\n type,\n optionsOrUseCapture,\n _listeners$index\n );\n listeners.splice(listener, 1);\n null !== cleanup && cleanup();\n }\n};\nfunction removeEventListenerFromChild(\n child,\n type,\n listener,\n optionsOrUseCapture\n) {\n getInstanceFromHostFiber(child).removeEventListener(\n type,\n listener,\n optionsOrUseCapture\n );\n return !1;\n}\nfunction getAttachOptions(opts) {\n return null != opts &&\n \"boolean\" !== typeof opts &&\n (!0 === opts.once || opts.signal instanceof AbortSignal)\n ? { capture: opts.capture, passive: opts.passive }\n : opts;\n}\nfunction normalizeListenerOptions(opts) {\n return null == opts\n ? \"c=0\"\n : \"boolean\" === typeof opts\n ? \"c=\" + (opts ? \"1\" : \"0\")\n : \"c=\" + (opts.capture ? \"1\" : \"0\");\n}\nfunction indexOfEventListener(\n eventListeners,\n type,\n listener,\n optionsOrUseCapture\n) {\n if (0 === eventListeners.length) return -1;\n optionsOrUseCapture = normalizeListenerOptions(optionsOrUseCapture);\n for (var i = 0; i < eventListeners.length; i++) {\n var item = eventListeners[i];\n if (\n item.type === type &&\n item.listener === listener &&\n normalizeListenerOptions(item.optionsOrUseCapture) === optionsOrUseCapture\n )\n return i;\n }\n return -1;\n}\nFragmentInstance.prototype.dispatchEvent = function (event) {\n var parentHostFiber = getFragmentParentInstanceOrContainerFiber(\n this._fragmentFiber\n );\n if (null === parentHostFiber) return !0;\n parentHostFiber = getInstanceFromHostFiber(parentHostFiber);\n var eventListeners = this._eventListeners;\n if (\n (null !== eventListeners && 0 < eventListeners.length) ||\n !event.bubbles\n ) {\n var temp =\n 9 === parentHostFiber.nodeType\n ? parentHostFiber.createComment(\"\")\n : document.createTextNode(\"\");\n if (eventListeners)\n for (var i = 0; i < eventListeners.length; i++) {\n var _eventListeners$i = eventListeners[i];\n temp.addEventListener(\n _eventListeners$i.type,\n _eventListeners$i.attachedListener,\n getAttachOptions(_eventListeners$i.optionsOrUseCapture)\n );\n }\n parentHostFiber.appendChild(temp);\n event = temp.dispatchEvent(event);\n if (eventListeners)\n for (i = 0; i < eventListeners.length; i++)\n (_eventListeners$i = eventListeners[i]),\n temp.removeEventListener(\n _eventListeners$i.type,\n _eventListeners$i.attachedListener,\n getAttachOptions(_eventListeners$i.optionsOrUseCapture)\n );\n parentHostFiber.removeChild(temp);\n return event;\n }\n return parentHostFiber.dispatchEvent(event);\n};\nFragmentInstance.prototype.focus = function (focusOptions) {\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !0,\n setFocusOnFiberIfFocusable,\n focusOptions,\n void 0,\n void 0\n );\n};\nfunction setFocusOnFiberIfFocusable(fiber, focusOptions) {\n if (6 === fiber.tag) return !1;\n fiber = getInstanceFromHostFiber(fiber);\n return setFocusIfFocusable(fiber, focusOptions);\n}\nFragmentInstance.prototype.focusLast = function (focusOptions) {\n var children = [];\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !0,\n collectChildren,\n children,\n void 0,\n void 0\n );\n for (\n var i = children.length - 1;\n 0 <= i && !setFocusOnFiberIfFocusable(children[i], focusOptions);\n i--\n );\n};\nfunction collectChildren(child, collection) {\n collection.push(child);\n return !1;\n}\nFragmentInstance.prototype.blur = function () {\n var parentHostFiber = getFragmentParentInstanceOrContainerFiber(\n this._fragmentFiber\n );\n null !== parentHostFiber &&\n ((parentHostFiber = getInstanceFromHostFiber(parentHostFiber)),\n (parentHostFiber =\n getOwnerDocumentFromRootContainer(parentHostFiber).activeElement),\n null !== parentHostFiber &&\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n blurActiveElementWithinFragment,\n parentHostFiber,\n void 0,\n void 0\n ));\n};\nfunction blurActiveElementWithinFragment(child, activeElement) {\n if (6 === child.tag) return !1;\n child = getInstanceFromHostFiber(child);\n return child === activeElement || child.contains(activeElement)\n ? (activeElement.blur(), !0)\n : !1;\n}\nFragmentInstance.prototype.observeUsing = function (observer) {\n null === this._observers && (this._observers = new Set());\n this._observers.add(observer);\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n observeChild,\n observer,\n void 0,\n void 0\n );\n};\nfunction observeChild(child, observer) {\n if (6 === child.tag) return !1;\n child = getInstanceFromHostFiber(child);\n observer.observe(child);\n return !1;\n}\nFragmentInstance.prototype.unobserveUsing = function (observer) {\n var observers = this._observers;\n if (null !== observers && observers.has(observer)) {\n observers.delete(observer);\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n unobserveChild,\n observer,\n void 0,\n void 0\n );\n for (\n var i = (observers = 0);\n i < pendingIntersectionUnobserves.length;\n i++\n ) {\n var pending = pendingIntersectionUnobserves[i];\n pending.fragmentInstance === this && pending.observer === observer\n ? observer.unobserve(pending.instance)\n : (pendingIntersectionUnobserves[observers++] = pending);\n }\n pendingIntersectionUnobserves.length = observers;\n }\n};\nfunction unobserveChild(child, observer) {\n if (6 === child.tag) return !1;\n child = getInstanceFromHostFiber(child);\n observer.unobserve(child);\n return !1;\n}\nvar pendingIntersectionUnobserves = [],\n intersectionUnobserveScheduled = !1;\nfunction schedulePendingIntersectionUnobserve(\n fragmentInstance,\n observer,\n instance\n) {\n pendingIntersectionUnobserves.push({\n fragmentInstance: fragmentInstance,\n observer: observer,\n instance: instance\n });\n intersectionUnobserveScheduled ||\n ((intersectionUnobserveScheduled = !0),\n requestPostPaintCallback(function () {\n intersectionUnobserveScheduled = !1;\n var pending = pendingIntersectionUnobserves;\n pendingIntersectionUnobserves = [];\n for (var i = 0; i < pending.length; i++) {\n var item = pending[i];\n item.observer.unobserve(item.instance);\n }\n }));\n}\nFragmentInstance.prototype.getClientRects = function () {\n var rects = [];\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n collectClientRects,\n rects,\n void 0,\n void 0\n );\n return rects;\n};\nfunction collectClientRects(child, rects) {\n if (6 === child.tag) {\n child = child.stateNode;\n var range = child.ownerDocument.createRange();\n range.selectNodeContents(child);\n rects.push.apply(rects, range.getClientRects());\n } else\n (child = getInstanceFromHostFiber(child)),\n rects.push.apply(rects, child.getClientRects());\n return !1;\n}\nFragmentInstance.prototype.getRootNode = function (getRootNodeOptions) {\n var parentHostFiber = getFragmentParentInstanceOrContainerFiber(\n this._fragmentFiber\n );\n return null === parentHostFiber\n ? this\n : getInstanceFromHostFiber(parentHostFiber).getRootNode(getRootNodeOptions);\n};\nFragmentInstance.prototype.compareDocumentPosition = function (otherNode) {\n var parentHostFiber = getFragmentParentInstanceOrContainerFiber(\n this._fragmentFiber\n );\n if (null === parentHostFiber) return Node.DOCUMENT_POSITION_DISCONNECTED;\n var children = [];\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n collectChildren,\n children,\n void 0,\n void 0\n );\n var parentHostInstance = getInstanceFromHostFiber(parentHostFiber);\n if (0 === children.length) {\n children = parentHostInstance;\n if (fiberIsPortaledIntoHost(this._fragmentFiber)) {\n a: {\n for (\n parentHostFiber = this._fragmentFiber.return;\n null !== parentHostFiber;\n\n ) {\n if (4 === parentHostFiber.tag) {\n parentHostFiber = parentHostFiber.stateNode.containerInfo;\n break a;\n }\n if (\n 3 === parentHostFiber.tag ||\n 5 === parentHostFiber.tag ||\n 27 === parentHostFiber.tag\n )\n break;\n parentHostFiber = parentHostFiber.return;\n }\n parentHostFiber = null;\n }\n null != parentHostFiber && (children = parentHostFiber);\n }\n parentHostFiber = this._fragmentFiber;\n var result = (parentHostInstance =\n children.compareDocumentPosition(otherNode));\n children === otherNode\n ? (result = Node.DOCUMENT_POSITION_CONTAINS)\n : parentHostInstance & Node.DOCUMENT_POSITION_CONTAINED_BY &&\n ((children =\n getFragmentInstanceOrTextInstanceSiblings(parentHostFiber)[1]),\n null === children\n ? (result = Node.DOCUMENT_POSITION_PRECEDING)\n : ((otherNode =\n getInstanceFromHostFiber(children).compareDocumentPosition(\n otherNode\n )),\n (result =\n 0 === otherNode || otherNode & Node.DOCUMENT_POSITION_FOLLOWING\n ? Node.DOCUMENT_POSITION_FOLLOWING\n : Node.DOCUMENT_POSITION_PRECEDING)));\n return (result |= Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC);\n }\n parentHostFiber = getInstanceFromHostFiber(children[0]);\n result = getInstanceFromHostFiber(children[children.length - 1]);\n var parentHostInstanceFromDOM = fiberIsPortaledIntoHost(this._fragmentFiber)\n ? parentHostFiber.parentElement\n : parentHostInstance;\n if (null == parentHostInstanceFromDOM)\n return Node.DOCUMENT_POSITION_DISCONNECTED;\n parentHostInstance =\n parentHostInstanceFromDOM.compareDocumentPosition(parentHostFiber) &\n Node.DOCUMENT_POSITION_CONTAINED_BY;\n parentHostInstanceFromDOM =\n parentHostInstanceFromDOM.compareDocumentPosition(result) &\n Node.DOCUMENT_POSITION_CONTAINED_BY;\n var firstResult = parentHostFiber.compareDocumentPosition(otherNode),\n lastResult = result.compareDocumentPosition(otherNode),\n otherNodeIsWithinFirstOrLastChild =\n firstResult & Node.DOCUMENT_POSITION_CONTAINED_BY ||\n lastResult & Node.DOCUMENT_POSITION_CONTAINED_BY;\n lastResult =\n parentHostInstance &&\n parentHostInstanceFromDOM &&\n firstResult & Node.DOCUMENT_POSITION_FOLLOWING &&\n lastResult & Node.DOCUMENT_POSITION_PRECEDING;\n parentHostFiber =\n (parentHostInstance && parentHostFiber === otherNode) ||\n (parentHostInstanceFromDOM && result === otherNode) ||\n otherNodeIsWithinFirstOrLastChild ||\n lastResult\n ? Node.DOCUMENT_POSITION_CONTAINED_BY\n : (!parentHostInstance && parentHostFiber === otherNode) ||\n (!parentHostInstanceFromDOM && result === otherNode)\n ? Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC\n : firstResult;\n return parentHostFiber & Node.DOCUMENT_POSITION_DISCONNECTED ||\n parentHostFiber & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC ||\n validateDocumentPositionWithFiberTree(\n parentHostFiber,\n this._fragmentFiber,\n children[0],\n children[children.length - 1],\n otherNode\n )\n ? parentHostFiber\n : Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC;\n};\nfunction validateDocumentPositionWithFiberTree(\n documentPosition,\n fragmentFiber,\n precedingBoundaryFiber,\n followingBoundaryFiber,\n otherNode\n) {\n var otherFiber = getClosestInstanceFromNode(otherNode);\n if (documentPosition & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n if ((precedingBoundaryFiber = !!otherFiber))\n a: {\n for (; null !== otherFiber; ) {\n if (\n 7 === otherFiber.tag &&\n (otherFiber === fragmentFiber ||\n otherFiber.alternate === fragmentFiber)\n ) {\n precedingBoundaryFiber = !0;\n break a;\n }\n otherFiber = otherFiber.return;\n }\n precedingBoundaryFiber = !1;\n }\n return precedingBoundaryFiber;\n }\n if (documentPosition & Node.DOCUMENT_POSITION_CONTAINS) {\n if (null === otherFiber)\n return (\n (otherFiber = otherNode.ownerDocument),\n otherNode === otherFiber ||\n otherNode === otherFiber.documentElement ||\n otherNode === otherFiber.body\n );\n a: {\n otherFiber = fragmentFiber;\n for (\n fragmentFiber =\n getFragmentParentInstanceOrContainerFiber(fragmentFiber);\n null !== otherFiber;\n\n ) {\n if (\n !(\n (5 !== otherFiber.tag &&\n 3 !== otherFiber.tag &&\n 27 !== otherFiber.tag) ||\n (otherFiber !== fragmentFiber &&\n otherFiber.alternate !== fragmentFiber)\n )\n ) {\n otherFiber = !0;\n break a;\n }\n otherFiber = otherFiber.return;\n }\n otherFiber = !1;\n }\n return otherFiber;\n }\n return documentPosition & Node.DOCUMENT_POSITION_PRECEDING\n ? ((fragmentFiber = !!otherFiber) &&\n !(fragmentFiber = otherFiber === precedingBoundaryFiber) &&\n ((fragmentFiber = getLowestCommonAncestor(\n precedingBoundaryFiber,\n otherFiber,\n getParentForFragmentAncestors\n )),\n null === fragmentFiber\n ? (fragmentFiber = !1)\n : (traverseVisibleInstancesAndTextInstances(\n fragmentFiber,\n !0,\n isFiberPrecedingCheck,\n otherFiber,\n precedingBoundaryFiber\n ),\n (otherFiber = searchTarget),\n (searchTarget = null),\n (fragmentFiber = null !== otherFiber))),\n fragmentFiber)\n : documentPosition & Node.DOCUMENT_POSITION_FOLLOWING\n ? ((fragmentFiber = !!otherFiber) &&\n !(fragmentFiber = otherFiber === followingBoundaryFiber) &&\n ((fragmentFiber = getLowestCommonAncestor(\n followingBoundaryFiber,\n otherFiber,\n getParentForFragmentAncestors\n )),\n null === fragmentFiber\n ? (fragmentFiber = !1)\n : (traverseVisibleInstancesAndTextInstances(\n fragmentFiber,\n !0,\n isFiberFollowingCheck,\n otherFiber,\n followingBoundaryFiber\n ),\n (otherFiber = searchTarget),\n (searchBoundary = searchTarget = null),\n (fragmentFiber = null !== otherFiber))),\n fragmentFiber)\n : !1;\n}\nfunction scrollTextNodeIntoView(textNode, resolvedAlignToTop) {\n var range = textNode.ownerDocument.createRange();\n range.selectNodeContents(textNode);\n textNode = range.getBoundingClientRect();\n window.scrollTo(\n window.scrollX + textNode.left,\n resolvedAlignToTop\n ? window.scrollY + textNode.top\n : window.scrollY + textNode.bottom - window.innerHeight\n );\n}\nFragmentInstance.prototype.scrollIntoView = function (alignToTop) {\n if (\"object\" === typeof alignToTop) throw Error(formatProdErrorMessage(566));\n var children = [];\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n collectChildren,\n children,\n void 0,\n void 0\n );\n var resolvedAlignToTop = !1 !== alignToTop;\n if (0 === children.length) {\n var hostSiblings = getFragmentInstanceOrTextInstanceSiblings(\n this._fragmentFiber\n );\n hostSiblings = resolvedAlignToTop\n ? hostSiblings[1] ||\n hostSiblings[0] ||\n getFragmentParentInstanceOrContainerFiber(this._fragmentFiber)\n : hostSiblings[0] || hostSiblings[1];\n if (null === hostSiblings) return;\n if (6 === hostSiblings.tag) {\n alignToTop = getInstanceFromHostFiber(hostSiblings);\n scrollTextNodeIntoView(alignToTop, resolvedAlignToTop);\n return;\n }\n hostSiblings = getInstanceFromHostFiber(hostSiblings);\n if (9 !== hostSiblings.nodeType) {\n if (11 === hostSiblings.nodeType) {\n resolvedAlignToTop = \"host\" in hostSiblings ? hostSiblings.host : null;\n null !== resolvedAlignToTop &&\n resolvedAlignToTop.scrollIntoView(alignToTop);\n return;\n }\n hostSiblings.scrollIntoView(alignToTop);\n }\n }\n for (\n hostSiblings = resolvedAlignToTop ? children.length - 1 : 0;\n hostSiblings !== (resolvedAlignToTop ? -1 : children.length);\n\n ) {\n var child = children[hostSiblings];\n 6 === child.tag\n ? ((child = getInstanceFromHostFiber(child)),\n scrollTextNodeIntoView(child, resolvedAlignToTop))\n : getInstanceFromHostFiber(child).scrollIntoView(alignToTop);\n hostSiblings += resolvedAlignToTop ? -1 : 1;\n }\n};\nfunction addFragmentHandleToFiber(child, fragmentInstance) {\n child = getInstanceFromHostFiber(child);\n addFragmentHandleToInstance(child, fragmentInstance);\n return !1;\n}\nfunction addFragmentHandleToInstance(instance, fragmentInstance) {\n null == instance.reactFragments && (instance.reactFragments = new Set());\n instance.reactFragments.add(fragmentInstance);\n}\nfunction commitNewChildToFragmentInstance(childInstance, fragmentInstance) {\n var eventListeners = fragmentInstance._eventListeners;\n if (null !== eventListeners)\n for (var i$jscomp$0 = 0; i$jscomp$0 < eventListeners.length; i$jscomp$0++) {\n var _eventListeners$i3 = eventListeners[i$jscomp$0];\n childInstance.addEventListener(\n _eventListeners$i3.type,\n _eventListeners$i3.attachedListener,\n getAttachOptions(_eventListeners$i3.optionsOrUseCapture)\n );\n }\n 3 !== childInstance.nodeType &&\n ((eventListeners = fragmentInstance._observers),\n null !== eventListeners &&\n eventListeners.forEach(function (observer) {\n for (\n var writeIdx = 0, i = 0;\n i < pendingIntersectionUnobserves.length;\n i++\n ) {\n var pending = pendingIntersectionUnobserves[i];\n if (\n pending.fragmentInstance !== fragmentInstance ||\n pending.observer !== observer ||\n pending.instance !== childInstance\n )\n pendingIntersectionUnobserves[writeIdx++] = pending;\n }\n pendingIntersectionUnobserves.length = writeIdx;\n observer.observe(childInstance);\n }),\n addFragmentHandleToInstance(childInstance, fragmentInstance));\n}\nfunction deleteChildFromFragmentInstance(childInstance, fragmentInstance) {\n var eventListeners = fragmentInstance._eventListeners;\n if (null !== eventListeners)\n for (var i = 0; i < eventListeners.length; i++) {\n var _eventListeners$i4 = eventListeners[i];\n childInstance.removeEventListener(\n _eventListeners$i4.type,\n _eventListeners$i4.attachedListener,\n getAttachOptions(_eventListeners$i4.optionsOrUseCapture)\n );\n }\n 3 !== childInstance.nodeType &&\n ((eventListeners = fragmentInstance._observers),\n null !== eventListeners &&\n eventListeners.forEach(function (observer) {\n \"string\" === typeof observer.rootMargin\n ? schedulePendingIntersectionUnobserve(\n fragmentInstance,\n observer,\n childInstance\n )\n : observer.unobserve(childInstance);\n }),\n null != childInstance.reactFragments &&\n childInstance.reactFragments.delete(fragmentInstance));\n}\nfunction clearContainerSparingly(container) {\n var nextNode = container.firstChild;\n nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);\n for (; nextNode; ) {\n var node = nextNode;\n nextNode = nextNode.nextSibling;\n switch (node.nodeName) {\n case \"HTML\":\n case \"HEAD\":\n case \"BODY\":\n clearContainerSparingly(node);\n detachDeletedInstance(node);\n continue;\n case \"SCRIPT\":\n case \"STYLE\":\n continue;\n case \"LINK\":\n if (\"stylesheet\" === node.rel.toLowerCase()) continue;\n }\n container.removeChild(node);\n }\n}\nfunction canHydrateInstance(instance, type, props, inRootOrSingleton) {\n for (; 1 === instance.nodeType; ) {\n var anyProps = props;\n if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {\n if (\n !inRootOrSingleton &&\n (\"INPUT\" !== instance.nodeName || \"hidden\" !== instance.type)\n )\n break;\n } else if (!inRootOrSingleton)\n if (\"input\" === type && \"hidden\" === instance.type) {\n var name = null == anyProps.name ? null : \"\" + anyProps.name;\n if (\n \"hidden\" === anyProps.type &&\n instance.getAttribute(\"name\") === name\n )\n return instance;\n } else return instance;\n else if (!instance[internalHoistableMarker])\n switch (type) {\n case \"meta\":\n if (!instance.hasAttribute(\"itemprop\")) break;\n return instance;\n case \"link\":\n name = instance.getAttribute(\"rel\");\n if (\"stylesheet\" === name && instance.hasAttribute(\"data-precedence\"))\n break;\n else if (\n name !== anyProps.rel ||\n instance.getAttribute(\"href\") !==\n (null == anyProps.href || \"\" === anyProps.href\n ? null\n : anyProps.href) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin) ||\n instance.getAttribute(\"title\") !==\n (null == anyProps.title ? null : anyProps.title)\n )\n break;\n return instance;\n case \"style\":\n if (instance.hasAttribute(\"data-precedence\")) break;\n return instance;\n case \"script\":\n name = instance.getAttribute(\"src\");\n if (\n (name !== (null == anyProps.src ? null : anyProps.src) ||\n instance.getAttribute(\"type\") !==\n (null == anyProps.type ? null : anyProps.type) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin)) &&\n name &&\n instance.hasAttribute(\"async\") &&\n !instance.hasAttribute(\"itemprop\")\n )\n break;\n return instance;\n default:\n return instance;\n }\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) break;\n }\n return null;\n}\nfunction canHydrateTextInstance(instance, text, inRootOrSingleton) {\n if (\"\" === text) return null;\n for (; 3 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction canHydrateHydrationBoundary(instance, inRootOrSingleton) {\n for (; 8 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n return \"$?\" === instance.data || \"$~\" === instance.data;\n}\nfunction isSuspenseInstanceFallback(instance) {\n return (\n \"$!\" === instance.data ||\n (\"$?\" === instance.data && \"loading\" !== instance.ownerDocument.readyState)\n );\n}\nfunction registerSuspenseInstanceRetry(instance, callback) {\n var ownerDocument = instance.ownerDocument;\n if (\"$~\" === instance.data) instance._reactRetry = callback;\n else if (\"$?\" !== instance.data || \"loading\" !== ownerDocument.readyState)\n callback();\n else {\n var listener = function () {\n callback();\n ownerDocument.removeEventListener(\"DOMContentLoaded\", listener);\n };\n ownerDocument.addEventListener(\"DOMContentLoaded\", listener);\n instance._reactRetry = listener;\n }\n}\nfunction getNextHydratable(node) {\n for (; null != node; node = node.nextSibling) {\n var nodeType = node.nodeType;\n if (1 === nodeType || 3 === nodeType) break;\n if (8 === nodeType) {\n nodeType = node.data;\n if (\n \"$\" === nodeType ||\n \"$!\" === nodeType ||\n \"$?\" === nodeType ||\n \"$~\" === nodeType ||\n \"&\" === nodeType ||\n \"F!\" === nodeType ||\n \"F\" === nodeType\n )\n break;\n if (\"/$\" === nodeType || \"/&\" === nodeType) return null;\n }\n }\n return node;\n}\nvar previousHydratableOnEnteringScopedSingleton = null;\nfunction getNextHydratableInstanceAfterHydrationBoundary(hydrationInstance) {\n hydrationInstance = hydrationInstance.nextSibling;\n for (var depth = 0; hydrationInstance; ) {\n if (8 === hydrationInstance.nodeType) {\n var data = hydrationInstance.data;\n if (\"/$\" === data || \"/&\" === data) {\n if (0 === depth)\n return getNextHydratable(hydrationInstance.nextSibling);\n depth--;\n } else\n (\"$\" !== data &&\n \"$!\" !== data &&\n \"$?\" !== data &&\n \"$~\" !== data &&\n \"&\" !== data) ||\n depth++;\n }\n hydrationInstance = hydrationInstance.nextSibling;\n }\n return null;\n}\nfunction getParentHydrationBoundary(targetInstance) {\n targetInstance = targetInstance.previousSibling;\n for (var depth = 0; targetInstance; ) {\n if (8 === targetInstance.nodeType) {\n var data = targetInstance.data;\n if (\n \"$\" === data ||\n \"$!\" === data ||\n \"$?\" === data ||\n \"$~\" === data ||\n \"&\" === data\n ) {\n if (0 === depth) return targetInstance;\n depth--;\n } else (\"/$\" !== data && \"/&\" !== data) || depth++;\n }\n targetInstance = targetInstance.previousSibling;\n }\n return null;\n}\nfunction setFocusIfFocusable(node, focusOptions) {\n function handleFocus() {\n didFocus = !0;\n }\n if (node.ownerDocument.activeElement === node) return !0;\n var didFocus = !1;\n try {\n node.ownerDocument.addEventListener(\"focus\", handleFocus, !0),\n (node.focus || HTMLElement.prototype.focus).call(node, focusOptions);\n } finally {\n node.ownerDocument.removeEventListener(\"focus\", handleFocus, !0);\n }\n return didFocus;\n}\nfunction requestPostPaintCallback(callback) {\n localRequestAnimationFrame(function () {\n localRequestAnimationFrame(function (time) {\n return callback(time);\n });\n });\n}\nfunction resolveSingletonInstance(type, props, rootContainerInstance) {\n props = getOwnerDocumentFromRootContainer(rootContainerInstance);\n switch (type) {\n case \"html\":\n type = props.documentElement;\n if (!type) throw Error(formatProdErrorMessage(452));\n return type;\n case \"head\":\n type = props.head;\n if (!type) throw Error(formatProdErrorMessage(453));\n return type;\n case \"body\":\n type = props.body;\n if (!type) throw Error(formatProdErrorMessage(454));\n return type;\n default:\n throw Error(formatProdErrorMessage(451));\n }\n}\nfunction releaseSingletonInstance(instance, type, props) {\n for (var propKey in props) {\n var propValue = props[propKey];\n props.hasOwnProperty(propKey) &&\n null != propValue &&\n setProp(instance, type, propKey, null, emptyProps, propValue);\n }\n null != props.dangerouslySetInnerHTML && (instance.textContent = \"\");\n instance.onclick === noop$1 && (instance.onclick = null);\n detachDeletedInstance(instance);\n}\nfunction clearSingletonPreambleContribution(instance) {\n for (var attributes = instance.attributes; attributes.length; )\n instance.removeAttributeNode(attributes[0]);\n detachDeletedInstance(instance);\n}\nvar preloadPropsMap = new Map(),\n preconnectsSet = new Set();\nfunction getHoistableRoot(container) {\n if (\"function\" === typeof container.getRootNode) {\n var rootNode = container.getRootNode();\n if (9 === rootNode.nodeType || 11 === rootNode.nodeType) return rootNode;\n }\n return 9 === container.nodeType ? container : container.ownerDocument;\n}\nvar previousDispatcher = ReactDOMSharedInternals.d;\nReactDOMSharedInternals.d = {\n f: flushSyncWork,\n r: requestFormReset,\n D: prefetchDNS,\n C: preconnect,\n L: preload,\n m: preloadModule,\n X: preinitScript,\n S: preinitStyle,\n M: preinitModuleScript\n};\nfunction flushSyncWork() {\n var previousWasRendering = previousDispatcher.f(),\n wasRendering = flushSyncWork$1();\n return previousWasRendering || wasRendering;\n}\nfunction requestFormReset(form) {\n var formInst = getInstanceFromNode(form);\n null !== formInst && 5 === formInst.tag && \"form\" === formInst.type\n ? requestFormReset$1(formInst)\n : previousDispatcher.r(form);\n}\nvar globalDocument = \"undefined\" === typeof document ? null : document;\nfunction preconnectAs(rel, href, crossOrigin) {\n var ownerDocument = globalDocument;\n if (ownerDocument && \"string\" === typeof href && href) {\n var limitedEscapedHref =\n escapeSelectorAttributeValueInsideDoubleQuotes(href);\n limitedEscapedHref =\n 'link[rel=\"' + rel + '\"][href=\"' + limitedEscapedHref + '\"]';\n \"string\" === typeof crossOrigin &&\n (limitedEscapedHref += '[crossorigin=\"' + crossOrigin + '\"]');\n preconnectsSet.has(limitedEscapedHref) ||\n (preconnectsSet.add(limitedEscapedHref),\n (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),\n null === ownerDocument.querySelector(limitedEscapedHref) &&\n ((href = ownerDocument.createElement(\"link\")),\n setInitialProperties(href, \"link\", rel),\n markNodeAsHoistable(href),\n ownerDocument.head.appendChild(href)));\n }\n}\nfunction prefetchDNS(href) {\n previousDispatcher.D(href);\n preconnectAs(\"dns-prefetch\", href, null);\n}\nfunction preconnect(href, crossOrigin) {\n previousDispatcher.C(href, crossOrigin);\n preconnectAs(\"preconnect\", href, crossOrigin);\n}\nfunction preload(href, as, options) {\n previousDispatcher.L(href, as, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href && as) {\n var preloadSelector =\n 'link[rel=\"preload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"]';\n \"image\" === as\n ? options && options.imageSrcSet\n ? ((preloadSelector +=\n '[imagesrcset=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSrcSet\n ) +\n '\"]'),\n \"string\" === typeof options.imageSizes &&\n (preloadSelector +=\n '[imagesizes=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSizes\n ) +\n '\"]'))\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]')\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]');\n var key = preloadSelector;\n switch (as) {\n case \"style\":\n key = getStyleKey(href);\n break;\n case \"script\":\n key = getScriptKey(href);\n }\n if (\n !(\n preloadPropsMap.has(key) ||\n ((href = assign(\n {\n rel: \"preload\",\n href:\n \"image\" === as && options && options.imageSrcSet ? void 0 : href,\n as: as\n },\n options\n )),\n preloadPropsMap.set(key, href),\n null !== ownerDocument.querySelector(preloadSelector) ||\n (\"style\" === as &&\n ownerDocument.querySelector(getStylesheetSelectorFromKey(key))) ||\n (\"script\" === as &&\n ownerDocument.querySelector(getScriptSelectorFromKey(key))))\n )\n ) {\n var instance = ownerDocument.createElement(\"link\");\n setInitialProperties(instance, \"link\", href);\n \"style\" === as &&\n ((instance[internalLoadPendingKey] = !0),\n (instance.onload = instance.onerror =\n function () {\n clearPendingLoadOnNode(instance);\n }));\n markNodeAsHoistable(instance);\n ownerDocument.head.appendChild(instance);\n }\n }\n}\nfunction preloadModule(href, options) {\n previousDispatcher.m(href, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var as = options && \"string\" === typeof options.as ? options.as : \"script\",\n preloadSelector =\n 'link[rel=\"modulepreload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"][href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]',\n key = preloadSelector;\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n key = getScriptKey(href);\n }\n if (\n !preloadPropsMap.has(key) &&\n ((href = assign({ rel: \"modulepreload\", href: href }, options)),\n preloadPropsMap.set(key, href),\n null === ownerDocument.querySelector(preloadSelector))\n ) {\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))\n return;\n }\n as = ownerDocument.createElement(\"link\");\n setInitialProperties(as, \"link\", href);\n markNodeAsHoistable(as);\n ownerDocument.head.appendChild(as);\n }\n }\n}\nfunction preinitStyle(href, precedence, options) {\n previousDispatcher.S(href, precedence, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,\n key = getStyleKey(href);\n precedence = precedence || \"default\";\n var resource = styles.get(key);\n if (!resource) {\n var state = { loading: 0, preload: null };\n if (\n (resource = ownerDocument.querySelector(\n getStylesheetSelectorFromKey(key)\n ))\n )\n state.loading = 5;\n else {\n href = assign(\n { rel: \"stylesheet\", href: href, \"data-precedence\": precedence },\n options\n );\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(href, options);\n var link = (resource = ownerDocument.createElement(\"link\"));\n markNodeAsHoistable(link);\n setInitialProperties(link, \"link\", href);\n link._p = new Promise(function (resolve, reject) {\n link.onload = resolve;\n link.onerror = reject;\n });\n link.addEventListener(\"load\", function () {\n state.loading |= 1;\n });\n link.addEventListener(\"error\", function () {\n state.loading |= 2;\n });\n state.loading |= 4;\n insertStylesheet(resource, precedence, ownerDocument);\n }\n resource = {\n type: \"stylesheet\",\n instance: resource,\n count: 1,\n state: state\n };\n styles.set(key, resource);\n }\n }\n}\nfunction preinitScript(src, options) {\n previousDispatcher.X(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0 }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction preinitModuleScript(src, options) {\n previousDispatcher.M(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0, type: \"module\" }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction getResource(type, currentProps, pendingProps, currentResource) {\n var JSCompiler_inline_result = (JSCompiler_inline_result =\n rootInstanceStackCursor.current)\n ? getHoistableRoot(JSCompiler_inline_result)\n : null;\n if (!JSCompiler_inline_result) throw Error(formatProdErrorMessage(446));\n switch (type) {\n case \"meta\":\n case \"title\":\n return null;\n case \"style\":\n return \"string\" === typeof pendingProps.precedence &&\n \"string\" === typeof pendingProps.href\n ? ((pendingProps = getStyleKey(pendingProps.href)),\n (currentProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles),\n (currentResource = currentProps.get(pendingProps)),\n currentResource ||\n ((currentResource = {\n type: \"style\",\n instance: null,\n count: 0,\n state: null\n }),\n currentProps.set(pendingProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null };\n case \"link\":\n if (\n \"stylesheet\" === pendingProps.rel &&\n \"string\" === typeof pendingProps.href &&\n \"string\" === typeof pendingProps.precedence\n ) {\n type = getStyleKey(pendingProps.href);\n var styles$268 = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles,\n resource$269 = styles$268.get(type);\n resource$269 ||\n ((JSCompiler_inline_result =\n JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),\n (resource$269 = {\n type: \"stylesheet\",\n instance: null,\n count: 0,\n state: { loading: 0, preload: null }\n }),\n styles$268.set(type, resource$269),\n (styles$268 = JSCompiler_inline_result.querySelector(\n getStylesheetSelectorFromKey(type)\n ))\n ? styles$268._p ||\n ((resource$269.instance = styles$268),\n (resource$269.state.loading = 5))\n : ((styles$268 = preloadPropsMap.get(type)),\n styles$268 ||\n ((styles$268 = {\n rel: \"preload\",\n as: \"style\",\n href: pendingProps.href,\n crossOrigin: pendingProps.crossOrigin,\n integrity: pendingProps.integrity,\n media: pendingProps.media,\n hrefLang: pendingProps.hrefLang,\n referrerPolicy: pendingProps.referrerPolicy\n }),\n preloadPropsMap.set(type, styles$268)),\n preloadStylesheet(\n JSCompiler_inline_result,\n type,\n styles$268,\n resource$269.state\n )));\n if (currentProps && null === currentResource)\n throw Error(formatProdErrorMessage(528, \"\"));\n return resource$269;\n }\n if (currentProps && null !== currentResource)\n throw Error(formatProdErrorMessage(529, \"\"));\n return null;\n case \"script\":\n return (\n (currentProps = pendingProps.async),\n (pendingProps = pendingProps.src),\n \"string\" === typeof pendingProps &&\n currentProps &&\n \"function\" !== typeof currentProps &&\n \"symbol\" !== typeof currentProps\n ? ((pendingProps = getScriptKey(pendingProps)),\n (currentProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableScripts),\n (currentResource = currentProps.get(pendingProps)),\n currentResource ||\n ((currentResource = {\n type: \"script\",\n instance: null,\n count: 0,\n state: null\n }),\n currentProps.set(pendingProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null }\n );\n default:\n throw Error(formatProdErrorMessage(444, type));\n }\n}\nfunction getStyleKey(href) {\n return 'href=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '\"';\n}\nfunction getStylesheetSelectorFromKey(key) {\n return 'link[rel=\"stylesheet\"][' + key + \"]\";\n}\nfunction stylesheetPropsFromRawProps(rawProps) {\n return assign({}, rawProps, {\n \"data-precedence\": rawProps.precedence,\n precedence: null\n });\n}\nfunction preloadStylesheet(ownerDocument, key, preloadProps, state) {\n if (\n (key = ownerDocument.querySelector(\n 'link[rel=\"preload\"][as=\"style\"][' + key + \"]\"\n ))\n ) {\n if (!0 !== key[internalLoadPendingKey]) {\n state.loading = 1;\n return;\n }\n } else\n (key = ownerDocument.createElement(\"link\")),\n (key[internalLoadPendingKey] = !0),\n (key.onload = key.onerror = clearPendingLoadOnNode.bind(null, key)),\n setInitialProperties(key, \"link\", preloadProps),\n markNodeAsHoistable(key),\n ownerDocument.head.appendChild(key);\n state.preload = key;\n key.addEventListener(\"load\", function () {\n return (state.loading |= 1);\n });\n key.addEventListener(\"error\", function () {\n return (state.loading |= 2);\n });\n}\nfunction getScriptKey(src) {\n return '[src=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '\"]';\n}\nfunction getScriptSelectorFromKey(key) {\n return \"script[async]\" + key;\n}\nfunction acquireResource(hoistableRoot, resource, props) {\n resource.count++;\n if (null === resource.instance)\n switch (resource.type) {\n case \"style\":\n var instance = hoistableRoot.querySelector(\n 'style[data-href~=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +\n '\"]'\n );\n if (instance)\n return (\n (resource.instance = instance),\n markNodeAsHoistable(instance),\n instance\n );\n var styleProps = assign({}, props, {\n \"data-href\": props.href,\n \"data-precedence\": props.precedence,\n href: null,\n precedence: null\n });\n instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement(\n \"style\"\n );\n markNodeAsHoistable(instance);\n setInitialProperties(instance, \"style\", styleProps);\n insertStylesheet(instance, props.precedence, hoistableRoot);\n return (resource.instance = instance);\n case \"stylesheet\":\n styleProps = getStyleKey(props.href);\n var instance$274 = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(styleProps)\n );\n if (instance$274)\n return (\n (resource.state.loading |= 4),\n (resource.instance = instance$274),\n markNodeAsHoistable(instance$274),\n instance$274\n );\n instance = stylesheetPropsFromRawProps(props);\n (styleProps = preloadPropsMap.get(styleProps)) &&\n adoptPreloadPropsForStylesheet(instance, styleProps);\n instance$274 = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"link\");\n markNodeAsHoistable(instance$274);\n var linkInstance = instance$274;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance$274, \"link\", instance);\n resource.state.loading |= 4;\n insertStylesheet(instance$274, props.precedence, hoistableRoot);\n return (resource.instance = instance$274);\n case \"script\":\n instance$274 = getScriptKey(props.src);\n if (\n (styleProps = hoistableRoot.querySelector(\n getScriptSelectorFromKey(instance$274)\n ))\n )\n return (\n (resource.instance = styleProps),\n markNodeAsHoistable(styleProps),\n styleProps\n );\n instance = props;\n if ((styleProps = preloadPropsMap.get(instance$274)))\n (instance = assign({}, props)),\n adoptPreloadPropsForScript(instance, styleProps);\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n styleProps = hoistableRoot.createElement(\"script\");\n markNodeAsHoistable(styleProps);\n setInitialProperties(styleProps, \"link\", instance);\n hoistableRoot.head.appendChild(styleProps);\n return (resource.instance = styleProps);\n case \"void\":\n return null;\n default:\n throw Error(formatProdErrorMessage(443, resource.type));\n }\n else\n \"stylesheet\" === resource.type &&\n 0 === (resource.state.loading & 4) &&\n ((instance = resource.instance),\n (resource.state.loading |= 4),\n insertStylesheet(instance, props.precedence, hoistableRoot));\n return resource.instance;\n}\nfunction insertStylesheet(instance, precedence, root) {\n for (\n var nodes = root.querySelectorAll(\n 'link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'\n ),\n last = nodes.length ? nodes[nodes.length - 1] : null,\n prior = last,\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (node.dataset.precedence === precedence) prior = node;\n else if (prior !== last) break;\n }\n prior\n ? prior.parentNode.insertBefore(instance, prior.nextSibling)\n : ((precedence = 9 === root.nodeType ? root.head : root),\n precedence.insertBefore(instance, precedence.firstChild));\n}\nfunction adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {\n null == stylesheetProps.crossOrigin &&\n (stylesheetProps.crossOrigin = preloadProps.crossOrigin);\n null == stylesheetProps.referrerPolicy &&\n (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);\n null == stylesheetProps.title && (stylesheetProps.title = preloadProps.title);\n}\nfunction adoptPreloadPropsForScript(scriptProps, preloadProps) {\n null == scriptProps.crossOrigin &&\n (scriptProps.crossOrigin = preloadProps.crossOrigin);\n null == scriptProps.referrerPolicy &&\n (scriptProps.referrerPolicy = preloadProps.referrerPolicy);\n null == scriptProps.integrity &&\n (scriptProps.integrity = preloadProps.integrity);\n}\nvar tagCaches = null;\nfunction getHydratableHoistableCache(type, keyAttribute, ownerDocument) {\n if (null === tagCaches) {\n var cache = new Map();\n var caches = (tagCaches = new Map());\n caches.set(ownerDocument, cache);\n } else\n (caches = tagCaches),\n (cache = caches.get(ownerDocument)),\n cache || ((cache = new Map()), caches.set(ownerDocument, cache));\n if (cache.has(type)) return cache;\n cache.set(type, null);\n ownerDocument = ownerDocument.getElementsByTagName(type);\n for (caches = 0; caches < ownerDocument.length; caches++) {\n var node = ownerDocument[caches];\n if (\n !(\n node[internalHoistableMarker] ||\n node[internalInstanceKey] ||\n (\"link\" === type && \"stylesheet\" === node.getAttribute(\"rel\"))\n ) &&\n \"http://www.w3.org/2000/svg\" !== node.namespaceURI\n ) {\n var nodeKey = node.getAttribute(keyAttribute) || \"\";\n nodeKey = type + nodeKey;\n var existing = cache.get(nodeKey);\n existing ? existing.push(node) : cache.set(nodeKey, [node]);\n }\n }\n return cache;\n}\nfunction mountHoistable(hoistableRoot, type, instance) {\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n hoistableRoot.head.insertBefore(\n instance,\n \"title\" === type ? hoistableRoot.querySelector(\"head > title\") : null\n );\n}\nfunction isHostHoistableType(type, props, hostContext) {\n if (1 === hostContext || null != props.itemProp) return !1;\n switch (type) {\n case \"meta\":\n case \"title\":\n return !0;\n case \"style\":\n if (\n \"string\" !== typeof props.precedence ||\n \"string\" !== typeof props.href ||\n \"\" === props.href\n )\n break;\n return !0;\n case \"link\":\n if (\n \"string\" !== typeof props.rel ||\n \"string\" !== typeof props.href ||\n \"\" === props.href ||\n props.onLoad ||\n props.onError\n )\n break;\n switch (props.rel) {\n case \"stylesheet\":\n return (\n (type = props.disabled),\n \"string\" === typeof props.precedence && null == type\n );\n default:\n return !0;\n }\n case \"script\":\n if (\n props.async &&\n \"function\" !== typeof props.async &&\n \"symbol\" !== typeof props.async &&\n !props.onLoad &&\n !props.onError &&\n props.src &&\n \"string\" === typeof props.src\n )\n return !0;\n }\n return !1;\n}\nfunction maySuspendCommit(type, props) {\n return (\n \"img\" === type &&\n null != props.src &&\n \"\" !== props.src &&\n null == props.onLoad &&\n \"lazy\" !== props.loading\n );\n}\nfunction preloadResource(resource) {\n return \"stylesheet\" === resource.type && 0 === (resource.state.loading & 3)\n ? !1\n : !0;\n}\nfunction estimateImageBytes(instance) {\n return (\n (instance.width || 100) *\n (instance.height || 100) *\n (\"number\" === typeof devicePixelRatio ? devicePixelRatio : 1) *\n 0.25\n );\n}\nfunction suspendInstance(state, instance) {\n \"function\" === typeof instance.decode &&\n (state.imgCount++,\n instance.complete ||\n ((state.imgBytes += estimateImageBytes(instance)),\n state.suspenseyImages.push(instance)),\n (state = onUnsuspendImg.bind(state)),\n instance.decode().then(state, state));\n}\nfunction suspendResource(state, hoistableRoot, resource, props) {\n if (\n \"stylesheet\" === resource.type &&\n (\"string\" !== typeof props.media ||\n !1 !== matchMedia(props.media).matches) &&\n 0 === (resource.state.loading & 4)\n ) {\n if (null === resource.instance) {\n var key = getStyleKey(props.href),\n instance = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(key)\n );\n if (instance) {\n hoistableRoot = instance._p;\n null !== hoistableRoot &&\n \"object\" === typeof hoistableRoot &&\n \"function\" === typeof hoistableRoot.then &&\n (state.count++,\n (state = onUnsuspend.bind(state)),\n hoistableRoot.then(state, state));\n resource.state.loading |= 4;\n resource.instance = instance;\n markNodeAsHoistable(instance);\n return;\n }\n instance = hoistableRoot.ownerDocument || hoistableRoot;\n props = stylesheetPropsFromRawProps(props);\n (key = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(props, key);\n instance = instance.createElement(\"link\");\n markNodeAsHoistable(instance);\n var linkInstance = instance;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance, \"link\", props);\n resource.instance = instance;\n }\n null === state.stylesheets && (state.stylesheets = new Map());\n state.stylesheets.set(resource, hoistableRoot);\n (hoistableRoot = resource.state.preload) &&\n 0 === (resource.state.loading & 3) &&\n (state.count++,\n (resource = onUnsuspend.bind(state)),\n hoistableRoot.addEventListener(\"load\", resource),\n hoistableRoot.addEventListener(\"error\", resource));\n }\n}\nvar estimatedBytesWithinLimit = 0;\nfunction waitForCommitToBeReady(state, timeoutOffset) {\n state.stylesheets &&\n 0 === state.count &&\n insertSuspendedStylesheets(state, state.stylesheets);\n return 0 < state.count || 0 < state.imgCount\n ? function (commit) {\n var stylesheetTimer = setTimeout(function () {\n state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets);\n if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n }, 6e4 + timeoutOffset);\n 0 < state.imgBytes &&\n 0 === estimatedBytesWithinLimit &&\n (estimatedBytesWithinLimit = 62500 * estimateBandwidth());\n var imgTimer = setTimeout(\n function () {\n state.waitingForImages = !1;\n if (\n 0 === state.count &&\n (state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets),\n state.unsuspend)\n ) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n },\n (state.imgBytes > estimatedBytesWithinLimit ? 50 : 800) +\n timeoutOffset\n );\n state.unsuspend = commit;\n return function () {\n state.unsuspend = null;\n clearTimeout(stylesheetTimer);\n clearTimeout(imgTimer);\n };\n }\n : null;\n}\nfunction checkIfFullyUnsuspended(state) {\n if (0 === state.count && (0 === state.imgCount || !state.waitingForImages))\n if (state.stylesheets) insertSuspendedStylesheets(state, state.stylesheets);\n else if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n}\nfunction onUnsuspend() {\n this.count--;\n checkIfFullyUnsuspended(this);\n}\nfunction onUnsuspendImg() {\n this.imgCount--;\n checkIfFullyUnsuspended(this);\n}\nvar precedencesByRoot = null;\nfunction insertSuspendedStylesheets(state, resources) {\n state.stylesheets = null;\n null !== state.unsuspend &&\n (state.count++,\n (precedencesByRoot = new Map()),\n resources.forEach(insertStylesheetIntoRoot, state),\n (precedencesByRoot = null),\n onUnsuspend.call(state));\n}\nfunction insertStylesheetIntoRoot(root, resource) {\n if (!(resource.state.loading & 4)) {\n var precedences = precedencesByRoot.get(root);\n if (precedences) var last = precedences.get(null);\n else {\n precedences = new Map();\n precedencesByRoot.set(root, precedences);\n for (\n var nodes = root.querySelectorAll(\n \"link[data-precedence],style[data-precedence]\"\n ),\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (\n \"LINK\" === node.nodeName ||\n \"not all\" !== node.getAttribute(\"media\")\n )\n precedences.set(node.dataset.precedence, node), (last = node);\n }\n last && precedences.set(null, last);\n }\n nodes = resource.instance;\n node = nodes.getAttribute(\"data-precedence\");\n i = precedences.get(node) || last;\n i === last && precedences.set(null, nodes);\n precedences.set(node, nodes);\n this.count++;\n last = onUnsuspend.bind(this);\n nodes.addEventListener(\"load\", last);\n nodes.addEventListener(\"error\", last);\n i\n ? i.parentNode.insertBefore(nodes, i.nextSibling)\n : ((root = 9 === root.nodeType ? root.head : root),\n root.insertBefore(nodes, root.firstChild));\n resource.state.loading |= 4;\n }\n}\nvar HostTransitionContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Provider: null,\n Consumer: null,\n _currentValue: sharedNotPendingObject,\n _currentValue2: sharedNotPendingObject,\n _threadCount: 0\n};\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n) {\n this.tag = 1;\n this.containerInfo = containerInfo;\n this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode =\n this.next =\n this.pendingContext =\n this.context =\n this.cancelPendingCommit =\n null;\n this.callbackPriority = 0;\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes =\n this.shellSuspendCounter =\n this.errorRecoveryDisabledLanes =\n this.expiredLanes =\n this.warmLanes =\n this.pingedLanes =\n this.suspendedLanes =\n this.pendingLanes =\n 0;\n this.entanglements = createLaneMap(0);\n this.hiddenUpdates = createLaneMap(null);\n this.identifierPrefix = identifierPrefix;\n this.onUncaughtError = onUncaughtError;\n this.onCaughtError = onCaughtError;\n this.onRecoverableError = onRecoverableError;\n this.pooledCache = null;\n this.pooledCacheLanes = 0;\n this.formState = formState;\n this.transitionTypes = null;\n this.incompleteTransitions = new Map();\n}\nfunction createFiberRoot(\n containerInfo,\n tag,\n hydrate,\n initialChildren,\n hydrationCallbacks,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator\n) {\n containerInfo = new FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n );\n tag = 1;\n !0 === isStrictMode && (tag |= 24);\n isStrictMode = createFiberImplClass(3, null, null, tag);\n containerInfo.current = isStrictMode;\n isStrictMode.stateNode = containerInfo;\n tag = createCache();\n tag.refCount++;\n containerInfo.pooledCache = tag;\n tag.refCount++;\n isStrictMode.memoizedState = {\n element: initialChildren,\n isDehydrated: hydrate,\n cache: tag\n };\n initializeUpdateQueue(isStrictMode);\n return containerInfo;\n}\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) return emptyContextObject;\n parentComponent = emptyContextObject;\n return parentComponent;\n}\nfunction updateContainerImpl(\n rootFiber,\n lane,\n element,\n container,\n parentComponent,\n callback\n) {\n parentComponent = getContextForSubtree(parentComponent);\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(rootFiber, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, rootFiber, lane),\n entangleTransitions(element, rootFiber, lane));\n}\nfunction markRetryLaneImpl(fiber, retryLane) {\n fiber = fiber.memoizedState;\n if (null !== fiber && null !== fiber.dehydrated) {\n var a = fiber.retryLane;\n fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;\n }\n}\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);\n}\nfunction attemptContinuousHydration(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var root = enqueueConcurrentRenderForLane(fiber, 67108864);\n null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);\n markRetryLaneIfNotHydrated(fiber, 67108864);\n }\n}\nfunction attemptHydrationAtCurrentPriority(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var lane = requestUpdateLane();\n lane = getBumpedLaneForHydrationByLane(lane);\n var root = enqueueConcurrentRenderForLane(fiber, lane);\n null !== root && scheduleUpdateOnFiber(root, fiber, lane);\n markRetryLaneIfNotHydrated(fiber, lane);\n }\n}\nvar _enabled = !0;\nfunction dispatchDiscreteEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 2),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchContinuousEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 8),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchEvent(\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (_enabled) {\n var blockedOn = findInstanceBlockingEvent(nativeEvent);\n if (null === blockedOn)\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n ),\n clearIfContinuousEvent(domEventName, nativeEvent);\n else if (\n queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n )\n nativeEvent.stopPropagation();\n else if (\n (clearIfContinuousEvent(domEventName, nativeEvent),\n eventSystemFlags & 4 &&\n -1 < discreteReplayableEvents.indexOf(domEventName))\n ) {\n for (; null !== blockedOn; ) {\n var fiber = getInstanceFromNode(blockedOn);\n if (null !== fiber)\n switch (fiber.tag) {\n case 3:\n fiber = fiber.stateNode;\n if (fiber.current.memoizedState.isDehydrated) {\n var lanes = getHighestPriorityLanes(fiber.pendingLanes);\n if (0 !== lanes) {\n var root = fiber;\n root.pendingLanes |= 2;\n for (root.entangledLanes |= 2; lanes; ) {\n var lane = 1 << (31 - clz32(lanes));\n root.entanglements[1] |= lane;\n lanes &= ~lane;\n }\n ensureRootIsScheduled(fiber);\n 0 === (executionContext & 6) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n flushSyncWorkAcrossRoots_impl(0, !1));\n }\n }\n break;\n case 31:\n case 13:\n (root = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== root && scheduleUpdateOnFiber(root, fiber, 2),\n flushSyncWork$1(),\n markRetryLaneIfNotHydrated(fiber, 2);\n }\n fiber = findInstanceBlockingEvent(nativeEvent);\n null === fiber &&\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n );\n if (fiber === blockedOn) break;\n blockedOn = fiber;\n }\n null !== blockedOn && nativeEvent.stopPropagation();\n } else\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n null,\n targetContainer\n );\n }\n}\nfunction findInstanceBlockingEvent(nativeEvent) {\n nativeEvent = getEventTarget(nativeEvent);\n return findInstanceBlockingTarget(nativeEvent);\n}\nvar return_targetInst = null;\nfunction findInstanceBlockingTarget(targetNode) {\n return_targetInst = null;\n targetNode = getClosestInstanceFromNode(targetNode);\n if (null !== targetNode) {\n var nearestMounted = getNearestMountedFiber(targetNode);\n if (null === nearestMounted) targetNode = null;\n else {\n var tag = nearestMounted.tag;\n if (13 === tag) {\n targetNode = getSuspenseInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (31 === tag) {\n targetNode = getActivityInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (3 === tag) {\n if (nearestMounted.stateNode.current.memoizedState.isDehydrated)\n return 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n targetNode = null;\n } else nearestMounted !== targetNode && (targetNode = null);\n }\n }\n return_targetInst = targetNode;\n return null;\n}\nfunction getEventPriority(domEventName) {\n switch (domEventName) {\n case \"beforetoggle\":\n case \"cancel\":\n case \"click\":\n case \"close\":\n case \"contextmenu\":\n case \"copy\":\n case \"cut\":\n case \"auxclick\":\n case \"dblclick\":\n case \"dragend\":\n case \"dragstart\":\n case \"drop\":\n case \"focusin\":\n case \"focusout\":\n case \"input\":\n case \"invalid\":\n case \"keydown\":\n case \"keypress\":\n case \"keyup\":\n case \"mousedown\":\n case \"mouseup\":\n case \"paste\":\n case \"pause\":\n case \"play\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointerup\":\n case \"ratechange\":\n case \"reset\":\n case \"seeked\":\n case \"submit\":\n case \"toggle\":\n case \"touchcancel\":\n case \"touchend\":\n case \"touchstart\":\n case \"volumechange\":\n case \"change\":\n case \"selectionchange\":\n case \"textInput\":\n case \"compositionstart\":\n case \"compositionend\":\n case \"compositionupdate\":\n case \"beforeblur\":\n case \"afterblur\":\n case \"beforeinput\":\n case \"blur\":\n case \"fullscreenchange\":\n case \"fullscreenerror\":\n case \"focus\":\n case \"hashchange\":\n case \"popstate\":\n case \"select\":\n case \"selectstart\":\n return 2;\n case \"drag\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"mousemove\":\n case \"mouseout\":\n case \"mouseover\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"resize\":\n case \"scroll\":\n case \"touchmove\":\n case \"wheel\":\n case \"mouseenter\":\n case \"mouseleave\":\n case \"pointerenter\":\n case \"pointerleave\":\n return 8;\n case \"message\":\n switch (getCurrentPriorityLevel()) {\n case ImmediatePriority:\n return 2;\n case UserBlockingPriority:\n return 8;\n case NormalPriority$1:\n case LowPriority:\n return 32;\n case IdlePriority:\n return 268435456;\n default:\n return 32;\n }\n default:\n return 32;\n }\n}\nvar hasScheduledReplayAttempt = !1,\n queuedFocus = null,\n queuedDrag = null,\n queuedMouse = null,\n queuedPointers = new Map(),\n queuedPointerCaptures = new Map(),\n queuedExplicitHydrationTargets = [],\n discreteReplayableEvents =\n \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\n \" \"\n );\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"focusin\":\n case \"focusout\":\n queuedFocus = null;\n break;\n case \"dragenter\":\n case \"dragleave\":\n queuedDrag = null;\n break;\n case \"mouseover\":\n case \"mouseout\":\n queuedMouse = null;\n break;\n case \"pointerover\":\n case \"pointerout\":\n queuedPointers.delete(nativeEvent.pointerId);\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n queuedPointerCaptures.delete(nativeEvent.pointerId);\n }\n}\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(\n existingQueuedEvent,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (\n null === existingQueuedEvent ||\n existingQueuedEvent.nativeEvent !== nativeEvent\n )\n return (\n (existingQueuedEvent = {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n }),\n null !== blockedOn &&\n ((blockedOn = getInstanceFromNode(blockedOn)),\n null !== blockedOn && attemptContinuousHydration(blockedOn)),\n existingQueuedEvent\n );\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n blockedOn = existingQueuedEvent.targetContainers;\n null !== targetContainer &&\n -1 === blockedOn.indexOf(targetContainer) &&\n blockedOn.push(targetContainer);\n return existingQueuedEvent;\n}\nfunction queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n switch (domEventName) {\n case \"focusin\":\n return (\n (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedFocus,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"dragenter\":\n return (\n (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedDrag,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"mouseover\":\n return (\n (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedMouse,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"pointerover\":\n var pointerId = nativeEvent.pointerId;\n queuedPointers.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointers.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n );\n return !0;\n case \"gotpointercapture\":\n return (\n (pointerId = nativeEvent.pointerId),\n queuedPointerCaptures.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointerCaptures.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n ),\n !0\n );\n }\n return !1;\n}\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n if (null !== targetInst) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n if (null !== nearestMounted)\n if (((targetInst = nearestMounted.tag), 13 === targetInst)) {\n if (\n ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (31 === targetInst) {\n if (\n ((targetInst = getActivityInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (\n 3 === targetInst &&\n nearestMounted.stateNode.current.memoizedState.isDehydrated\n ) {\n queuedTarget.blockedOn =\n 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n return;\n }\n }\n queuedTarget.blockedOn = null;\n}\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (null !== queuedEvent.blockedOn) return !1;\n for (\n var targetContainers = queuedEvent.targetContainers;\n 0 < targetContainers.length;\n\n ) {\n var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);\n if (null === nextBlockedOn) {\n nextBlockedOn = queuedEvent.nativeEvent;\n var nativeEventClone = new nextBlockedOn.constructor(\n nextBlockedOn.type,\n nextBlockedOn\n );\n currentReplayingEvent = nativeEventClone;\n nextBlockedOn.target.dispatchEvent(nativeEventClone);\n currentReplayingEvent = null;\n } else\n return (\n (targetContainers = getInstanceFromNode(nextBlockedOn)),\n null !== targetContainers &&\n attemptContinuousHydration(targetContainers),\n (queuedEvent.blockedOn = nextBlockedOn),\n !1\n );\n targetContainers.shift();\n }\n return !0;\n}\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);\n}\nfunction replayUnblockedEvents() {\n hasScheduledReplayAttempt = !1;\n null !== queuedFocus &&\n attemptReplayContinuousQueuedEvent(queuedFocus) &&\n (queuedFocus = null);\n null !== queuedDrag &&\n attemptReplayContinuousQueuedEvent(queuedDrag) &&\n (queuedDrag = null);\n null !== queuedMouse &&\n attemptReplayContinuousQueuedEvent(queuedMouse) &&\n (queuedMouse = null);\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n queuedEvent.blockedOn === unblocked &&\n ((queuedEvent.blockedOn = null),\n hasScheduledReplayAttempt ||\n ((hasScheduledReplayAttempt = !0),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n replayUnblockedEvents\n )));\n}\nvar lastScheduledReplayQueue = null;\nfunction scheduleReplayQueueIfNeeded(formReplayingQueue) {\n lastScheduledReplayQueue !== formReplayingQueue &&\n ((lastScheduledReplayQueue = formReplayingQueue),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n function () {\n lastScheduledReplayQueue === formReplayingQueue &&\n (lastScheduledReplayQueue = null);\n for (var i = 0; i < formReplayingQueue.length; i += 3) {\n var form = formReplayingQueue[i],\n submitterOrAction = formReplayingQueue[i + 1],\n formData = formReplayingQueue[i + 2];\n if (\"function\" !== typeof submitterOrAction)\n if (null === findInstanceBlockingTarget(submitterOrAction || form))\n continue;\n else break;\n var formInst = getInstanceFromNode(form);\n null !== formInst &&\n (formReplayingQueue.splice(i, 3),\n (i -= 3),\n startHostTransition(\n formInst,\n {\n pending: !0,\n data: formData,\n method: form.method,\n action: submitterOrAction\n },\n submitterOrAction,\n formData\n ));\n }\n }\n ));\n}\nfunction retryIfBlockedOn(unblocked) {\n function unblock(queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n }\n null !== queuedFocus && scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n null !== queuedMouse && scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {\n var queuedTarget = queuedExplicitHydrationTargets[i];\n queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);\n }\n for (\n ;\n 0 < queuedExplicitHydrationTargets.length &&\n ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);\n\n )\n attemptExplicitHydrationTarget(i),\n null === i.blockedOn && queuedExplicitHydrationTargets.shift();\n i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;\n if (null != i)\n for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {\n var form = i[queuedTarget],\n submitterOrAction = i[queuedTarget + 1],\n formProps = form[internalPropsKey] || null;\n if (\"function\" === typeof submitterOrAction)\n formProps || scheduleReplayQueueIfNeeded(i);\n else if (formProps) {\n var action = null;\n if (submitterOrAction && submitterOrAction.hasAttribute(\"formAction\"))\n if (\n ((form = submitterOrAction),\n (formProps = submitterOrAction[internalPropsKey] || null))\n )\n action = formProps.formAction;\n else {\n if (null !== findInstanceBlockingTarget(form)) continue;\n }\n else action = formProps.action;\n \"function\" === typeof action\n ? (i[queuedTarget + 1] = action)\n : (i.splice(queuedTarget, 3), (queuedTarget -= 3));\n scheduleReplayQueueIfNeeded(i);\n }\n }\n}\nfunction defaultOnDefaultTransitionIndicator() {\n function handleNavigate(event) {\n event.canIntercept &&\n \"react-transition\" === event.info &&\n event.intercept({\n handler: function () {\n return new Promise(function (resolve) {\n return (pendingResolve = resolve);\n });\n },\n focusReset: \"manual\",\n scroll: \"manual\"\n });\n }\n function handleNavigateComplete() {\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n isCancelled || setTimeout(startFakeNavigation, 20);\n }\n function startFakeNavigation() {\n if (!isCancelled && !navigation.transition) {\n var currentEntry = navigation.currentEntry;\n currentEntry &&\n null != currentEntry.url &&\n navigation.navigate(currentEntry.url, {\n state: currentEntry.getState(),\n info: \"react-transition\",\n history: \"replace\"\n });\n }\n }\n if (\"object\" === typeof navigation) {\n var isCancelled = !1,\n pendingResolve = null;\n navigation.addEventListener(\"navigate\", handleNavigate);\n navigation.addEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.addEventListener(\"navigateerror\", handleNavigateComplete);\n setTimeout(startFakeNavigation, 100);\n return function () {\n isCancelled = !0;\n navigation.removeEventListener(\"navigate\", handleNavigate);\n navigation.removeEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.removeEventListener(\"navigateerror\", handleNavigateComplete);\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n };\n }\n}\nfunction ReactDOMRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =\n function (children) {\n var root = this._internalRoot;\n if (null === root) throw Error(formatProdErrorMessage(409));\n var current = root.current,\n lane = requestUpdateLane();\n updateContainerImpl(current, lane, children, root, null, null);\n };\nReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =\n function () {\n var root = this._internalRoot;\n if (null !== root) {\n this._internalRoot = null;\n var container = root.containerInfo;\n updateContainerImpl(root.current, 2, null, root, null, null);\n flushSyncWork$1();\n container[internalContainerInstanceKey] = null;\n }\n };\nfunction ReactDOMHydrationRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {\n if (target) {\n var updatePriority = resolveUpdatePriority();\n target = { blockedOn: null, target: target, priority: updatePriority };\n for (\n var i = 0;\n i < queuedExplicitHydrationTargets.length &&\n 0 !== updatePriority &&\n updatePriority < queuedExplicitHydrationTargets[i].priority;\n i++\n );\n queuedExplicitHydrationTargets.splice(i, 0, target);\n 0 === i && attemptExplicitHydrationTarget(target);\n }\n};\nvar isomorphicReactPackageVersion$jscomp$inline_2043 = React.version;\nif (\n \"19.3.0\" !==\n isomorphicReactPackageVersion$jscomp$inline_2043\n)\n throw Error(\n formatProdErrorMessage(\n 527,\n isomorphicReactPackageVersion$jscomp$inline_2043,\n \"19.3.0\"\n )\n );\nReactDOMSharedInternals.findDOMNode = function (componentOrElement) {\n var fiber = componentOrElement._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof componentOrElement.render)\n throw Error(formatProdErrorMessage(188));\n componentOrElement = Object.keys(componentOrElement).join(\",\");\n throw Error(formatProdErrorMessage(268, componentOrElement));\n }\n componentOrElement = findCurrentFiberUsingSlowPath(fiber);\n componentOrElement =\n null !== componentOrElement\n ? findCurrentHostFiberImpl(componentOrElement)\n : null;\n componentOrElement =\n null === componentOrElement ? null : componentOrElement.stateNode;\n return componentOrElement;\n};\nvar internals$jscomp$inline_2586 = {\n bundleType: 0,\n version: \"19.3.0\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.3.0\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_2587 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_2587.isDisabled &&\n hook$jscomp$inline_2587.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_2587.inject(\n internals$jscomp$inline_2586\n )),\n (injectedHook = hook$jscomp$inline_2587);\n } catch (err) {}\n}\nexports.createRoot = function (container, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError));\n options = createFiberRoot(\n container,\n 1,\n !1,\n null,\n null,\n isStrictMode,\n identifierPrefix,\n null,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n container[internalContainerInstanceKey] = options.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMRoot(options);\n};\nexports.hydrateRoot = function (container, initialChildren, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError,\n formState = null;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError),\n void 0 !== options.formState && (formState = options.formState));\n initialChildren = createFiberRoot(\n container,\n 1,\n !0,\n initialChildren,\n null != options ? options : null,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n initialChildren.context = getContextForSubtree(null);\n options = initialChildren.current;\n isStrictMode = requestUpdateLane();\n isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);\n identifierPrefix = createUpdate(isStrictMode);\n identifierPrefix.callback = null;\n enqueueUpdate(options, identifierPrefix, isStrictMode);\n options = isStrictMode;\n initialChildren.current.lanes = options;\n markRootUpdated$1(initialChildren, options);\n ensureRootIsScheduled(initialChildren);\n container[internalContainerInstanceKey] = initialChildren.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMHydrationRoot(initialChildren);\n};\nexports.version = \"19.3.0\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom-client.production.js');\n} else {\n module.exports = require('./cjs/react-dom-client.development.js');\n}\n","import type { DefaultWindowKind } from \"../windows/kinds.js\";\nimport type { Messages } from \"./types.js\";\n\n/** What each default window is called. */\nconst WINDOW_TITLES: Record<DefaultWindowKind, string> = {\n chat: \"Conversation\",\n automations: \"What it does\",\n flow: \"Map\",\n voice: \"Voice\",\n browser: \"Browser\",\n live: \"Live\",\n};\n\n/** The words in English: the same keys as `es`, in the same order. */\nexport const en: Messages = {\n // Surfaces\n cannotShow: \"This can't be shown.\",\n send: \"Send\",\n sent: \"Sent\",\n blankPage: \"Blank page\",\n\n // The browser the agent drives\n agentBrowses: \"The agent is browsing\",\n agentBrowsing: \"The agent is browsing…\",\n youHaveControl: \"You have control\",\n shrink: \"Shrink\",\n enlarge: \"Enlarge\",\n openInTab: \"Open in a new tab\",\n takeControl: \"Take control\",\n sessionEnded: \"Session ended\",\n step: \"Step \",\n browserTitle: (page: string) => `Browser: ${page}`,\n pageOf: (page: string) => `Page ${page}`,\n\n // A live stream\n liveView: \"Live view\",\n liveStatus: {\n connecting: \"connecting\",\n live: \"live\",\n reconnecting: \"reconnecting\",\n ended: \"ended\",\n unavailable: \"unavailable\",\n },\n\n // Requests: the card's heading by kind\n question: \"Question\",\n choice: \"Choose an option\",\n connect: \"Connect an app\",\n upload: \"Share a document\",\n approval: \"Needs your approval\",\n secret: \"Needs a key\",\n handOver: \"Your turn\",\n\n // Requests: what the owner can do\n approve: \"Approve\",\n reject: \"Reject\",\n approved: \"Approved\",\n rejected: \"Rejected\",\n reply: \"Reply\",\n yourAnswer: \"Your answer\",\n moreRows: (count: number) => `and ${count} more`,\n steps: \"What you need to do\",\n doItInTheBrowser:\n \"Do it yourself in the browser: your passwords stay there and the agent never receives them. Finish the step (submit the form), then tell it to carry on.\",\n done: \"Done, carry on\",\n theApp: \"the app\",\n alreadyConnected: (app: string) => `${app} is already connected. There is nothing to authorize.`,\n continue: \"Continue\",\n waitingFor: (app: string) => `Waiting for ${app}…`,\n connectWith: (app: string) => `Connect with ${app}`,\n iConnectedIt: \"I've connected it\",\n notNow: \"Not now\",\n connected: (app: string) => `${app} connected`,\n notConnectedYet: \"It isn't connected yet. Finish the authorization in the window that opened.\",\n unsafeAddress: \"That address isn't safe and can't be opened.\",\n pasteTheKey: \"Paste the key here\",\n secretValue: (name: string) => `Value of ${name}`,\n storedEncrypted:\n \"It is stored encrypted. Neither the builder nor the agent can read it; they only use it when calling that service.\",\n onlySentTo: \"It is only sent to \",\n saveInVault: \"Save to the vault\",\n savedInVault: \"Saved to the vault\",\n chooseAFile: \"Choose a PDF or a text file\",\n uploading: \"Uploading…\",\n uploaded: (title: string) => `Uploaded: ${title}`,\n cannotReadFile: \"The file could not be read\",\n cannotUpload: \"The upload failed\",\n cannotSend: \"It could not be sent\",\n cannotAnswerHere: \"This question can't be answered from here.\",\n cannotStoreHere: \"It can't be saved here. Do it from the SignalCore app.\",\n\n // The message box both chats share\n message: \"Message\",\n stop: \"Stop\",\n stopWithKey: \"Stop (Esc)\",\n\n // The chat with an agent, as the person it serves sees it\n agentChat: \"Conversation with the agent\",\n today: \"Today\",\n yesterday: \"Yesterday\",\n you: \"You\",\n theAgent: \"Agent\",\n writing: \"Writing…\",\n waitingForConfirmation: \"Waiting for a confirmation…\",\n handedToPerson: \"Someone on the team will reply to you.\",\n cannotSendMessage: \"The message could not be sent. Please try again.\",\n cannotFinishAnswer: \"The answer could not be completed. Please try again.\",\n loadingConversation: \"Loading the conversation…\",\n cannotLoadConversation: \"The conversation could not be loaded.\",\n chatUnavailable: \"The chat isn't available right now.\",\n defaultPlaceholder: \"Write a message…\",\n\n // The voice window: talking to the agent, as the person it serves sees it\n voiceWindow: \"Voice conversation with the agent\",\n voiceStates: {\n idle: \"Press to talk\",\n listening: \"Listening…\",\n thinking: \"Thinking…\",\n speaking: \"Speaking…\",\n },\n voiceMuted: \"Microphone muted\",\n startVoice: \"Start talking\",\n stopVoice: \"End the conversation\",\n muteVoice: \"Mute the microphone\",\n unmuteVoice: \"Turn the microphone on\",\n voiceUnsupported:\n \"This browser can't listen or speak. Use Chrome, Edge or Safari, or write to the agent instead.\",\n voiceDenied: \"The microphone is blocked. Allow it in your browser's settings to talk.\",\n voiceFailed: \"The voice stopped working. Please try again.\",\n\n // The chat with the builder, as the owner sees it\n builderChat: \"Conversation with the builder\",\n builderEmptyTitle: \"What do you want your agent to do?\",\n builderEmptyBody:\n \"Explain it as you would to someone new on your team. It will ask you questions, connect your tools and get it running.\",\n describeYourAgent: \"Describe what you want your agent to do…\",\n replyOrAskForChange: \"Reply or ask for a change…\",\n working: \"Working\",\n writingReply: \"Writing\",\n stepFailed: \"failed\",\n stepStopped: \"stopped\",\n stepDetail: \"See the details\",\n published: (version: number) => `Published · version ${version}`,\n whatChanged: \"What changed\",\n newAutomation: \"New automation\",\n newSkill: \"New skill\",\n changedPart: \"Changed\",\n removedPart: \"Removed\",\n learned: \"Learned:\",\n turnDone: (ok: boolean, duration: string) =>\n `${ok ? \"Done\" : \"Finished with problems\"} in ${duration}`,\n turnCost: (usd: string) => `Cost: ${usd}`,\n escToStop: \"to stop\",\n\n // What the builder is doing, a verb for each kind of step\n verbs: {\n read: \"Read\",\n write: \"Write\",\n edit: \"Edit\",\n run: \"Run\",\n findFiles: \"Find files\",\n searchCode: \"Search the code\",\n searchWeb: \"Search the web\",\n readAgentCode: \"Read the agent's code\",\n save: \"Save\",\n checkAgent: \"Check the agent\",\n browse: \"Browse\",\n saveSettings: \"Save the settings\",\n askYou: \"Ask you\",\n remember: \"Remember\",\n checkApps: \"Check your connected apps\",\n searchApps: \"Search apps\",\n connect: \"Connect\",\n explore: \"Explore\",\n useApp: \"Use app\",\n giveAccess: \"Give access to\",\n workOnAgent: \"Work on the agent\",\n },\n connectionLost: \"The connection was lost\",\n files: (count: number) => `${count} files`,\n\n windows: {\n loading: \"Loading…\",\n unavailable: \"This view is not available right now.\",\n },\n\n automations: {\n label: \"What the agent does\",\n cannotLoad: \"What the agent does could not be loaded.\",\n withCustomers: \"With your customers\",\n onItsOwn: \"On its own\",\n noChannelTitle: \"Answers with what it knows\",\n noChannelTagline:\n \"It is not on any channel yet. Ask in the chat to connect WhatsApp or Instagram.\",\n noChannelBody:\n \"It answers whoever writes to it with its instructions and what it knows about the business. When it does not know something, it hands the conversation over to you.\",\n noAutomations:\n \"Nothing yet. Ask in the chat for what it should do on its own: a summary every morning, a heads-up when something arrives.\",\n channelStatus: {\n active: \"Connected\",\n pending: \"Waiting for the first message\",\n error: \"With errors\",\n disconnected: \"Disconnected\",\n },\n status: { active: \"Active\", draft: \"Not activated\", changed: \"Changes not activated\" },\n building: \"Building\",\n when: \"When\",\n needsApproval: \"Asks your permission\",\n approvalIn: (action: string, app: string) => `${action} in ${app}`,\n neverRan: \"It has not started yet\",\n ranLast: (ago: string) => `Last ran ${ago}`,\n failedLast: (ago: string, error: string | null) => `Failed ${ago}${error ? `: ${error}` : \"\"}`,\n thisWeek: (times: number, failed: number) =>\n `This week, ${times} ${times === 1 ? \"time\" : \"times\"}${failed ? `, ${failed} failed` : \"\"}`,\n notConnected: \"not connected\",\n everyDayAt: (time: string) => `Every day at ${time}`,\n daysAt: (days: string, time: string) => `${days} at ${time}`,\n never: \"Never\",\n },\n\n flow: {\n label: \"The agent's map\",\n cannotLoad: \"The agent's map could not be loaded.\",\n empty:\n \"There is nothing to draw yet. Once the agent has automations, actions or records, you will see how they connect here.\",\n kinds: {\n conduct: \"How it works\",\n channels: \"Channels\",\n automations: \"What it does\",\n actions: \"Actions\",\n records: \"Records\",\n apps: \"Connected apps\",\n tests: \"Tests\",\n dependencies: \"Libraries\",\n other: \"Other files\",\n readme: \"Read me\",\n },\n conductFiles: { instructions: \"Instructions\", settings: \"Settings\" },\n outside: {\n owner: { label: \"You\", detail: \"alerts and permissions\" },\n browser: { label: \"Browser\", detail: \"a window it drives\" },\n files: { label: \"Files\", detail: \"what it keeps\" },\n store: { label: \"Data\", detail: \"what it writes down\" },\n },\n detail: {\n action: \"action\",\n record: \"record\",\n channel: \"channel\",\n connected: \"connected\",\n notConnected: \"not connected\",\n },\n verbs: {\n calls: \"calls\",\n writes: \"saves\",\n reads: \"reads\",\n \"uses-app\": \"uses\",\n reaches: \"notifies\",\n \"starts-from\": \"triggers\",\n sends: \"sends\",\n canUse: \"can use\",\n },\n },\n\n space: {\n label: \"Agent space\",\n windows: \"Windows\",\n titleOf: (kind) => WINDOW_TITLES[kind],\n close: (title: string) => `Close ${title}`,\n reopen: (title: string) => `Reopen ${title}`,\n openedIn: \"Opened in\",\n newMessage: \"New message\",\n noComponent: \"This window is not available here.\",\n speak: \"Speak\",\n write: \"Write\",\n captions: \"Captions\",\n answer: \"Answer\",\n },\n};\n","import type { DefaultWindowKind } from \"../windows/kinds.js\";\nimport type { Messages } from \"./types.js\";\n\n/** What each default window is called, in the words the product uses for the owner's pages. */\nconst WINDOW_TITLES: Record<DefaultWindowKind, string> = {\n chat: \"Conversación\",\n automations: \"Qué hace\",\n flow: \"Mapa\",\n voice: \"Voz\",\n browser: \"Navegador\",\n live: \"En directo\",\n};\n\n/** The words as the product says them to a business owner: the default language. */\nexport const es: Messages = {\n // Surfaces\n cannotShow: \"No se puede mostrar esto.\",\n send: \"Enviar\",\n sent: \"Enviado\",\n blankPage: \"Página en blanco\",\n\n // The browser the agent drives\n agentBrowses: \"El agente navega\",\n agentBrowsing: \"El agente navega…\",\n youHaveControl: \"Tienes el control\",\n shrink: \"Reducir\",\n enlarge: \"Ampliar\",\n openInTab: \"Abrir en una pestaña\",\n takeControl: \"Tomar el control\",\n sessionEnded: \"Sesión terminada\",\n step: \"Paso \",\n browserTitle: (page: string) => `Navegador: ${page}`,\n pageOf: (page: string) => `Página ${page}`,\n\n // A live stream\n liveView: \"Vista en directo\",\n liveStatus: {\n connecting: \"conectando\",\n live: \"en directo\",\n reconnecting: \"reconectando\",\n ended: \"terminado\",\n unavailable: \"no disponible\",\n },\n\n // Requests: the card's heading by kind\n question: \"Pregunta\",\n choice: \"Elige una opción\",\n connect: \"Conectar una app\",\n upload: \"Compartir un documento\",\n approval: \"Necesita tu aprobación\",\n secret: \"Necesita una clave\",\n handOver: \"Te toca a ti\",\n\n // Requests: what the owner can do\n approve: \"Aprobar\",\n reject: \"Rechazar\",\n approved: \"Aprobado\",\n rejected: \"Rechazado\",\n reply: \"Responder\",\n yourAnswer: \"Tu respuesta\",\n moreRows: (count: number) => `y ${count} más`,\n steps: \"Lo que tienes que hacer\",\n doItInTheBrowser:\n \"Hazlo tú en el navegador: tus claves se quedan ahí, el agente no las recibe. Termina el paso (envía el formulario) y luego dile que siga.\",\n done: \"Listo, sigue\",\n theApp: \"la app\",\n alreadyConnected: (app: string) => `${app} ya está conectado. No hace falta autorizar nada.`,\n continue: \"Continuar\",\n waitingFor: (app: string) => `Esperando a ${app}…`,\n connectWith: (app: string) => `Conectar con ${app}`,\n iConnectedIt: \"Ya lo he conectado\",\n notNow: \"Ahora no\",\n connected: (app: string) => `${app} conectado`,\n notConnectedYet: \"Aún no está conectado. Termina la autorización en la ventana que se abrió.\",\n unsafeAddress: \"Esa dirección no es segura y no se puede abrir.\",\n pasteTheKey: \"Pega aquí la clave\",\n secretValue: (name: string) => `Valor de ${name}`,\n storedEncrypted:\n \"Se guarda cifrada. Ni el builder ni el agente pueden leerla; solo la usan al llamar a ese servicio.\",\n onlySentTo: \"Solo se envía a \",\n saveInVault: \"Guardar en el vault\",\n savedInVault: \"Guardada en el vault\",\n chooseAFile: \"Elegir un PDF o un texto\",\n uploading: \"Subiendo…\",\n uploaded: (title: string) => `Subido: ${title}`,\n cannotReadFile: \"No se pudo leer el archivo\",\n cannotUpload: \"No se pudo subir\",\n cannotSend: \"No se pudo enviar\",\n cannotAnswerHere: \"Esta pregunta no se puede responder desde aquí.\",\n cannotStoreHere: \"Aquí no se puede guardar. Hazlo desde la app de SignalCore.\",\n\n // The message box both chats share\n message: \"Mensaje\",\n stop: \"Detener\",\n stopWithKey: \"Detener (Esc)\",\n\n // The chat with an agent, as the person it serves sees it\n agentChat: \"Conversación con el agente\",\n today: \"Hoy\",\n yesterday: \"Ayer\",\n you: \"Tú\",\n theAgent: \"Agente\",\n writing: \"Escribiendo…\",\n waitingForConfirmation: \"Esperando una confirmación…\",\n handedToPerson: \"Una persona del equipo te responderá.\",\n cannotSendMessage: \"No se pudo enviar el mensaje. Inténtalo de nuevo.\",\n cannotFinishAnswer: \"No se pudo completar la respuesta. Inténtalo de nuevo.\",\n loadingConversation: \"Cargando la conversación…\",\n cannotLoadConversation: \"No se pudo cargar la conversación.\",\n chatUnavailable: \"El chat no está disponible en este momento.\",\n defaultPlaceholder: \"Escribe un mensaje…\",\n\n // La ventana de voz: hablar con el agente, como lo ve la persona a la que atiende\n voiceWindow: \"Conversación de voz con el agente\",\n voiceStates: {\n idle: \"Pulsa para hablar\",\n listening: \"Te escucho…\",\n thinking: \"Pensando…\",\n speaking: \"Hablando…\",\n },\n voiceMuted: \"Micrófono silenciado\",\n startVoice: \"Empezar a hablar\",\n stopVoice: \"Terminar la conversación\",\n muteVoice: \"Silenciar el micrófono\",\n unmuteVoice: \"Activar el micrófono\",\n voiceUnsupported:\n \"Este navegador no puede escuchar ni hablar. Usa Chrome, Edge o Safari, o escribe al agente.\",\n voiceDenied:\n \"El micrófono está bloqueado. Permítelo en los ajustes del navegador para poder hablar.\",\n voiceFailed: \"La voz ha dejado de funcionar. Inténtalo de nuevo.\",\n\n // The chat with the builder, as the owner sees it\n builderChat: \"Conversación con el builder\",\n builderEmptyTitle: \"¿Qué quieres que haga tu agente?\",\n builderEmptyBody:\n \"Cuéntaselo como a alguien nuevo en tu equipo. Te hará preguntas, conectará tus herramientas y lo dejará funcionando.\",\n describeYourAgent: \"Describe qué quieres que haga tu agente…\",\n replyOrAskForChange: \"Responde o pide un cambio…\",\n working: \"Trabajando\",\n writingReply: \"Escribiendo\",\n stepFailed: \"falló\",\n stepStopped: \"detenido\",\n stepDetail: \"Ver el detalle\",\n published: (version: number) => `Publicado · versión ${version}`,\n whatChanged: \"Qué ha cambiado\",\n newAutomation: \"Nueva automatización\",\n newSkill: \"Nueva habilidad\",\n changedPart: \"Cambiada\",\n removedPart: \"Quitada\",\n learned: \"Aprendió:\",\n turnDone: (ok: boolean, duration: string) =>\n `${ok ? \"Listo\" : \"Terminado con problemas\"} en ${duration}`,\n turnCost: (usd: string) => `Coste: ${usd}`,\n escToStop: \"para detener\",\n\n // What the builder is doing, a verb for each kind of step\n verbs: {\n read: \"Leer\",\n write: \"Escribir\",\n edit: \"Editar\",\n run: \"Ejecutar\",\n findFiles: \"Buscar archivos\",\n searchCode: \"Buscar en el código\",\n searchWeb: \"Buscar en la web\",\n readAgentCode: \"Leer el código del agente\",\n save: \"Guardar\",\n checkAgent: \"Revisar el agente\",\n browse: \"Navegar\",\n saveSettings: \"Guardar la configuración\",\n askYou: \"Preguntarte\",\n remember: \"Recordar\",\n checkApps: \"Revisar tus apps conectadas\",\n searchApps: \"Buscar apps\",\n connect: \"Conectar\",\n explore: \"Explorar\",\n useApp: \"Usar app\",\n giveAccess: \"Dar acceso a\",\n workOnAgent: \"Trabajar en el agente\",\n },\n connectionLost: \"Se perdió la conexión\",\n files: (count: number) => `${count} archivos`,\n\n windows: {\n loading: \"Cargando…\",\n unavailable: \"Esta vista no está disponible en este momento.\",\n },\n\n automations: {\n label: \"Lo que hace el agente\",\n cannotLoad: \"No se pudo cargar lo que hace el agente.\",\n withCustomers: \"Con tus clientes\",\n onItsOwn: \"Por su cuenta\",\n noChannelTitle: \"Contesta con lo que sabe\",\n noChannelTagline:\n \"Aún no está en ningún canal. Pídele en el chat que conecte WhatsApp o Instagram.\",\n noChannelBody:\n \"Responde a quien le escriba con sus instrucciones y lo que sabe del negocio. Cuando no sabe algo, te pasa la conversación.\",\n noAutomations:\n \"Todavía nada. Pídele en el chat lo que debe hacer solo: un resumen cada mañana, un aviso cuando llegue algo.\",\n channelStatus: {\n active: \"Conectado\",\n pending: \"Esperando el primer mensaje\",\n error: \"Con errores\",\n disconnected: \"Desconectado\",\n },\n status: { active: \"Activa\", draft: \"Sin activar\", changed: \"Cambios sin activar\" },\n building: \"Construyendo\",\n when: \"Cuándo\",\n needsApproval: \"Te pide permiso\",\n approvalIn: (action: string, app: string) => `${action} en ${app}`,\n neverRan: \"Todavía no se ha puesto en marcha\",\n ranLast: (ago: string) => `Última vez ${ago}`,\n failedLast: (ago: string, error: string | null) => `Falló ${ago}${error ? `: ${error}` : \"\"}`,\n thisWeek: (times: number, failed: number) =>\n `Esta semana, ${times} ${times === 1 ? \"vez\" : \"veces\"}${failed ? `, ${failed} con error` : \"\"}`,\n notConnected: \"sin conectar\",\n everyDayAt: (time: string) => `Cada día a las ${time}`,\n daysAt: (days: string, time: string) => `${days} a las ${time}`,\n never: \"Nunca\",\n },\n\n flow: {\n label: \"Mapa del agente\",\n cannotLoad: \"No se pudo cargar el mapa del agente.\",\n empty:\n \"Todavía no hay partes que dibujar. Cuando el agente tenga automatizaciones, acciones o registros, aquí verás cómo se conectan.\",\n kinds: {\n conduct: \"Cómo trabaja\",\n channels: \"Canales\",\n automations: \"Qué hace\",\n actions: \"Acciones\",\n records: \"Registros\",\n apps: \"Apps\",\n tests: \"Pruebas\",\n dependencies: \"Librerías\",\n other: \"Otros archivos\",\n readme: \"Léeme\",\n },\n conductFiles: { instructions: \"Instrucciones\", settings: \"Ajustes\" },\n outside: {\n owner: { label: \"Tú\", detail: \"avisos y permisos\" },\n browser: { label: \"Navegador\", detail: \"una ventana que maneja\" },\n files: { label: \"Archivos\", detail: \"lo que guarda\" },\n store: { label: \"Datos\", detail: \"lo que apunta\" },\n },\n detail: {\n action: \"acción\",\n record: \"registro\",\n channel: \"canal\",\n connected: \"conectada\",\n notConnected: \"sin conectar\",\n },\n verbs: {\n calls: \"llama\",\n writes: \"guarda\",\n reads: \"lee\",\n \"uses-app\": \"usa\",\n reaches: \"avisa\",\n \"starts-from\": \"dispara\",\n sends: \"envía\",\n canUse: \"puede usar\",\n },\n },\n\n space: {\n label: \"Espacio del agente\",\n windows: \"Ventanas\",\n titleOf: (kind) => WINDOW_TITLES[kind],\n close: (title: string) => `Cerrar ${title}`,\n reopen: (title: string) => `Reabrir ${title}`,\n openedIn: \"Abierto en\",\n newMessage: \"Mensaje nuevo\",\n noComponent: \"Esta ventana no está disponible aquí.\",\n speak: \"Hablar\",\n write: \"Escribir\",\n captions: \"Subtítulos\",\n answer: \"Respuesta\",\n },\n};\n","import { en } from \"./en.js\";\nimport { es } from \"./es.js\";\nimport type { MessageOverrides, Messages } from \"./types.js\";\n\nexport type { MessageOverrides, Messages } from \"./types.js\";\n\n/** The languages that ship with the package: their words, and how their dates are written. */\nexport type Locale = \"es\" | \"en\";\n\nconst DICTIONARIES: Readonly<Record<Locale, Messages>> = { es, en };\n\nconst DEFAULT_LOCALE: Locale = \"es\";\n\nexport function isLocale(value: unknown): value is Locale {\n return typeof value === \"string\" && Object.hasOwn(DICTIONARIES, value);\n}\n\n/** The words and the locale that dates are written in: what a component speaks. */\nexport interface Language {\n locale: Locale;\n messages: Messages;\n}\n\n/**\n * The language a provider speaks: the locale's dictionary with the host's words laid over it.\n * A word the host leaves out (or gives as `undefined`) stays the dictionary's, and a locale the\n * package does not know is the default one, Spanish.\n */\nexport function languageOf(locale?: Locale, overrides?: MessageOverrides): Language {\n const known = isLocale(locale) ? locale : DEFAULT_LOCALE;\n const base = DICTIONARIES[known];\n return { locale: known, messages: overrides ? layer(base, overrides) : base };\n}\n\nconst isGroup = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null;\n\n/**\n * `words` laid over `base`, one entry at a time through the groups (`verbs`, `flow.kinds`…),\n * so changing a single verb leaves the others. A word that is a function is replaced whole, and\n * an entry that holds nothing (`{ send: undefined }`) says nothing.\n */\nfunction layer<T>(base: T, words: unknown): T {\n if (words === undefined) return base;\n if (!isGroup(base) || !isGroup(words)) return words as T;\n const merged: Record<string, unknown> = { ...base };\n for (const [key, word] of Object.entries(words)) merged[key] = layer(base[key], word);\n return merged as T;\n}\n","/*\n * @signalcore/ui: the shipped styles.\n *\n * Dropped into a page they use the page's own font, text color and color scheme; everything else\n * is a --sc-* token with a default here, so a host changes only what it wants different (in CSS,\n * or through the provider's `theme`). The tokens are listed in src/theme.ts; `density` scales\n * the room things take, `radius` the corners, `font-size` the type.\n *\n * Nothing here leaks: every rule sits in the `signalcore` layer (a host's own CSS wins without a\n * specificity fight) and under the provider's wrapper, and a wrapper marked `data-sc-unstyled`\n * (the provider's `unstyled`) is skipped, so a host that styles through `classNames` alone loses\n * none of the classes and none of this.\n *\n * Classes are BEM, one per slot (`sc-card`, `sc-card__title`, `sc-button--primary`); see\n * src/look.ts for the list.\n */\n@layer signalcore {\n :where(.sc-ui:not([data-sc-unstyled])) {\n /* The wrapper takes no room of its own. */\n display: contents;\n\n /*\n * Working copies of the tokens: the host's, else the default. Colors that are not set derive\n * from the page's text color (tints of `currentColor`), so any page, light or dark, gets\n * readable lines and muted text without saying anything.\n */\n --_fs: var(--sc-font-size, 14px);\n --_fs-xs: calc(var(--_fs) * 12 / 14);\n --_fs-ui: calc(var(--_fs) * 13 / 14);\n --_fs-md: calc(var(--_fs) * 15 / 14);\n --_density: var(--sc-density, 1);\n --_s2: calc(2px * var(--_density));\n --_s4: calc(4px * var(--_density));\n --_s6: calc(6px * var(--_density));\n --_s8: calc(8px * var(--_density));\n --_s10: calc(10px * var(--_density));\n --_s12: calc(12px * var(--_density));\n --_s14: calc(14px * var(--_density));\n --_s16: calc(16px * var(--_density));\n --_s20: calc(20px * var(--_density));\n --_radius: var(--sc-radius, 12px);\n --_radius-md: calc(var(--_radius) * 2 / 3);\n --_radius-sm: calc(var(--_radius) / 2);\n --_mono: var(\n --sc-font-mono,\n ui-monospace,\n \"SF Mono\",\n \"Cascadia Mono\",\n \"Roboto Mono\",\n Menlo,\n monospace\n );\n\n --_text: var(--sc-text, currentColor);\n --_muted: var(--sc-muted, color-mix(in srgb, currentColor 68%, transparent));\n --_subtle: var(--sc-subtle, color-mix(in srgb, currentColor 52%, transparent));\n --_surface: var(--sc-surface, var(--sc-bg, transparent));\n --_sunken: var(--sc-sunken, color-mix(in srgb, currentColor 5%, transparent));\n --_line: var(--sc-line, color-mix(in srgb, currentColor 13%, transparent));\n --_line-strong: var(--sc-line-strong, color-mix(in srgb, currentColor 24%, transparent));\n --_accent: var(\n --sc-accent,\n light-dark(color-mix(in oklch, #9932cc 86%, black), color-mix(in oklch, #9932cc 62%, white))\n );\n --_accent-fg: var(--sc-accent-fg, light-dark(#ffffff, #120c24));\n --_accent-soft: var(--sc-accent-soft, color-mix(in srgb, var(--_accent) 12%, transparent));\n --_signal: var(\n --sc-signal,\n light-dark(color-mix(in oklch, #ff8c00 80%, black), color-mix(in oklch, #ff8c00 82%, white))\n );\n --_signal-soft: var(--sc-signal-soft, color-mix(in srgb, var(--_signal) 14%, transparent));\n --_ok: var(--sc-ok, light-dark(#1f7a4d, #5dbb88));\n --_ok-soft: var(--sc-ok-soft, color-mix(in srgb, var(--_ok) 14%, transparent));\n --_danger: var(--sc-danger, light-dark(#c0392b, #ef7a6a));\n --_danger-soft: var(--sc-danger-soft, color-mix(in srgb, var(--_danger) 13%, transparent));\n --_focus: var(--sc-focus, color-mix(in srgb, var(--_accent) 40%, transparent));\n --_face: var(--sc-face, var(--_surface));\n --_face-hover: var(--sc-face-hover, var(--_sunken));\n /* A button has a little body: a lit upper edge, and a shadow that closes the lower one. */\n --_shadow-button:\n inset 0 1px 0 light-dark(rgb(255 255 255 / 0.6), rgb(255 255 255 / 0.06)),\n 0 1px 1px light-dark(rgb(0 0 0 / 0.05), rgb(0 0 0 / 0.3));\n --_shadow-button-primary: inset 0 1px 0 rgb(255 255 255 / 0.18), 0 1px 1px rgb(0 0 0 / 0.08);\n --_shadow-raised: 0 1px 2px rgb(0 0 0 / 0.04);\n --_shadow-float: 0 1px 2px rgb(0 0 0 / 0.04), 0 8px 24px -12px rgb(0 0 0 / 0.12);\n --_ease: cubic-bezier(0.22, 1, 0.36, 1);\n }\n\n /*\n * The three things the package draws on a page. The font and the color are the page's own\n * (`inherit`), the size is the reading size, and the color scheme follows the reader's\n * preference, unless an ancestor says otherwise (see below). Zero specificity: a host's rule on\n * any of them wins.\n */\n :where(.sc-ui:not([data-sc-unstyled]))\n :where(\n .sc-surface,\n .sc-request,\n .sc-browser,\n .sc-live,\n .sc-chat,\n .sc-voice,\n .sc-composer,\n .sc-transcript,\n .sc-status-line,\n .sc-automations,\n .sc-automation,\n .sc-flow,\n .sc-window,\n .sc-space\n ) {\n color-scheme: light dark;\n color: inherit;\n font-family: var(--sc-font, inherit);\n font-size: var(--_fs);\n line-height: 1.55;\n }\n\n /*\n * A `data-theme` of \"light\" or \"dark\" on <html>, on the provider, or on anything between it and\n * what we draw, decides the scheme; of those, the one written last here wins a disagreement.\n */\n :where(\n [data-theme=\"light\"] .sc-ui:not([data-sc-unstyled]),\n .sc-ui:not([data-sc-unstyled])[data-theme=\"light\"],\n .sc-ui:not([data-sc-unstyled]) [data-theme=\"light\"]\n )\n :is(\n .sc-surface,\n .sc-request,\n .sc-browser,\n .sc-live,\n .sc-chat,\n .sc-voice,\n .sc-composer,\n .sc-transcript,\n .sc-status-line,\n .sc-automations,\n .sc-automation,\n .sc-flow,\n .sc-window,\n .sc-space\n ),\n :where(.sc-ui:not([data-sc-unstyled]))\n :is(\n .sc-surface,\n .sc-request,\n .sc-browser,\n .sc-live,\n .sc-chat,\n .sc-voice,\n .sc-composer,\n .sc-transcript,\n .sc-status-line,\n .sc-automations,\n .sc-automation,\n .sc-flow,\n .sc-window,\n .sc-space\n )[data-theme=\"light\"] {\n color-scheme: light;\n }\n\n :where(\n [data-theme=\"dark\"] .sc-ui:not([data-sc-unstyled]),\n .sc-ui:not([data-sc-unstyled])[data-theme=\"dark\"],\n .sc-ui:not([data-sc-unstyled]) [data-theme=\"dark\"]\n )\n :is(\n .sc-surface,\n .sc-request,\n .sc-browser,\n .sc-live,\n .sc-chat,\n .sc-voice,\n .sc-composer,\n .sc-transcript,\n .sc-status-line,\n .sc-automations,\n .sc-automation,\n .sc-flow,\n .sc-window,\n .sc-space\n ),\n :where(.sc-ui:not([data-sc-unstyled]))\n :is(\n .sc-surface,\n .sc-request,\n .sc-browser,\n .sc-live,\n .sc-chat,\n .sc-voice,\n .sc-composer,\n .sc-transcript,\n .sc-status-line,\n .sc-automations,\n .sc-automation,\n .sc-flow,\n .sc-window,\n .sc-space\n )[data-theme=\"dark\"] {\n color-scheme: dark;\n }\n\n /* A small reset, scoped to what we draw and weaker than any class a host adds to it. */\n :where(.sc-ui:not([data-sc-unstyled]))\n :where(\n .sc-surface,\n .sc-request,\n .sc-browser,\n .sc-live,\n .sc-chat,\n .sc-voice,\n .sc-composer,\n .sc-transcript,\n .sc-status-line,\n .sc-automations,\n .sc-automation,\n .sc-flow,\n .sc-window,\n .sc-space\n ) {\n :where(*, *::before, *::after) {\n box-sizing: border-box;\n }\n :where(h3, p, dl, dd, figure, ol, ul, pre) {\n margin: 0;\n }\n :where(ol, ul) {\n padding: 0;\n list-style: none;\n }\n :where(table) {\n border-collapse: collapse;\n }\n :where(img) {\n display: block;\n max-width: 100%;\n }\n :where(button, input, select, textarea) {\n font: inherit;\n color: inherit;\n }\n :where(button) {\n padding: 0;\n border: 0;\n background: none;\n cursor: pointer;\n }\n :where(:focus-visible) {\n outline: 2px solid var(--_focus);\n outline-offset: 2px;\n }\n }\n\n :where(.sc-ui:not([data-sc-unstyled])) {\n /* --- A surface ------------------------------------------------------------------------ */\n\n .sc-surface {\n width: 100%;\n }\n .sc-surface--text {\n white-space: pre-wrap;\n color: var(--_muted);\n }\n\n .sc-column {\n display: flex;\n flex-direction: column;\n gap: var(--_s8);\n }\n .sc-row {\n display: flex;\n flex-wrap: wrap;\n gap: var(--_s8);\n }\n\n .sc-card {\n display: flex;\n flex-direction: column;\n gap: var(--_s10);\n padding: var(--_s14);\n border: 1px solid var(--_line);\n border-radius: var(--_radius);\n background: var(--_surface);\n }\n /* The pattern `card: \"raised\"`: the card lifts a hair off the page. */\n .sc-card--raised {\n box-shadow: var(--_shadow-raised);\n }\n .sc-card__title {\n font-size: var(--_fs);\n font-weight: 500;\n }\n .sc-card__subtitle {\n font-size: var(--_fs-xs);\n color: var(--_subtle);\n }\n\n .sc-text {\n line-height: 1.625;\n }\n .sc-text--heading {\n font-size: var(--_fs-md);\n font-weight: 500;\n line-height: 1.5;\n }\n .sc-text--caption {\n font-size: var(--_fs-xs);\n line-height: 1.5;\n color: var(--_subtle);\n }\n\n .sc-callout {\n padding: var(--_s8) var(--_s12);\n border-radius: var(--_radius-md);\n font-size: var(--_fs-ui);\n line-height: 1.5;\n }\n .sc-callout--info {\n background: var(--_accent-soft);\n }\n .sc-callout--success {\n background: var(--_ok-soft);\n }\n .sc-callout--warning {\n background: var(--_signal-soft);\n }\n .sc-callout--error {\n background: var(--_danger-soft);\n }\n\n .sc-image {\n max-height: 16rem;\n border-radius: var(--_radius-md);\n object-fit: cover;\n }\n .sc-link {\n font-size: var(--_fs-ui);\n color: var(--_accent);\n text-decoration: none;\n text-underline-offset: 2px;\n }\n .sc-link:hover {\n text-decoration: underline;\n }\n\n .sc-pairs {\n display: grid;\n grid-template-columns: auto 1fr;\n gap: var(--_s4) var(--_s16);\n font-size: var(--_fs-ui);\n line-height: 1.5;\n }\n .sc-pairs__row {\n display: contents;\n }\n .sc-pairs__label {\n color: var(--_subtle);\n }\n .sc-pairs__value {\n font-weight: 500;\n text-align: right;\n }\n\n .sc-table-wrap {\n overflow-x: auto;\n }\n .sc-table {\n width: 100%;\n font-size: var(--_fs-ui);\n line-height: 1.5;\n text-align: left;\n }\n .sc-table__row {\n border-bottom: 1px solid color-mix(in srgb, var(--_line) 60%, transparent);\n }\n .sc-table tbody .sc-table__row:last-child {\n border-bottom: 0;\n }\n .sc-table__row--head {\n border-bottom-color: var(--_line);\n color: var(--_subtle);\n }\n .sc-table__head,\n .sc-table__cell {\n padding: var(--_s6) var(--_s12) var(--_s6) 0;\n }\n .sc-table__head {\n font-weight: 400;\n text-align: left;\n }\n /* The pattern `table: \"compact\"`: rows close together, for a lot of records. */\n .sc-table--compact {\n font-size: var(--_fs-xs);\n }\n .sc-table--compact .sc-table__head,\n .sc-table--compact .sc-table__cell {\n padding-block: var(--_s2);\n }\n\n .sc-chart {\n display: flex;\n flex-direction: column;\n gap: var(--_s6);\n }\n .sc-chart__title {\n font-size: var(--_fs-xs);\n color: var(--_subtle);\n }\n .sc-chart__row {\n display: grid;\n grid-template-columns: 6rem 1fr auto;\n align-items: center;\n gap: var(--_s8);\n font-size: var(--_fs-xs);\n }\n .sc-chart__label {\n overflow: hidden;\n color: var(--_subtle);\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .sc-chart__bar {\n height: calc(8px * var(--_density));\n border-radius: 9999px;\n background: var(--_accent);\n }\n .sc-chart__value {\n font-family: var(--_mono);\n }\n\n .sc-choices {\n display: flex;\n flex-direction: column;\n gap: var(--_s6);\n }\n .sc-choice {\n padding: var(--_s8) var(--_s12);\n border: 1px solid var(--_line-strong);\n border-radius: var(--_radius-md);\n background: var(--_surface);\n font-size: var(--_fs-ui);\n line-height: 1.5;\n text-align: left;\n }\n .sc-choice:hover {\n background: var(--_sunken);\n }\n .sc-choice:disabled {\n cursor: default;\n opacity: 0.6;\n }\n .sc-choice__label {\n font-weight: 500;\n }\n .sc-choice__description {\n display: block;\n font-size: var(--_fs-xs);\n color: var(--_subtle);\n }\n\n .sc-slots {\n display: flex;\n flex-wrap: wrap;\n gap: var(--_s6);\n }\n\n .sc-form {\n display: flex;\n flex-direction: column;\n gap: var(--_s10);\n }\n /* The pattern `actions: \"footer\"`: the button is set apart below the fields, on a line. */\n .sc-form__actions--footer {\n display: flex;\n justify-content: flex-end;\n padding-top: var(--_s10);\n border-top: 1px solid var(--_line);\n }\n .sc-field {\n display: flex;\n flex-direction: column;\n gap: var(--_s4);\n font-size: var(--_fs-xs);\n color: var(--_subtle);\n }\n .sc-input,\n .sc-select {\n width: 100%;\n height: calc(36px * var(--_density));\n padding: 0 var(--_s12);\n border: 1px solid var(--_line-strong);\n border-radius: var(--_radius-md);\n background: var(--_surface);\n box-shadow: inset 0 1px 0 rgb(0 0 0 / 0.02);\n font-size: var(--_fs-ui);\n line-height: 1.5;\n color: var(--_text);\n transition:\n border-color 0.15s,\n box-shadow 0.15s;\n }\n .sc-select {\n padding: 0 var(--_s8);\n }\n .sc-input::placeholder {\n color: var(--_subtle);\n }\n .sc-input:hover,\n .sc-select:hover {\n border-color: color-mix(in srgb, var(--_subtle) 60%, transparent);\n }\n .sc-input:focus,\n .sc-select:focus {\n border-color: var(--_accent);\n box-shadow:\n inset 0 1px 0 rgb(0 0 0 / 0.02),\n 0 0 0 2px var(--_focus);\n outline: none;\n }\n .sc-input:disabled,\n .sc-select:disabled {\n opacity: 0.6;\n }\n .sc-checkbox {\n align-self: flex-start;\n width: 16px;\n height: 16px;\n accent-color: var(--_accent);\n }\n\n /* --- Buttons and small parts -------------------------------------------------------------- */\n\n .sc-button {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n font-size: var(--_fs-ui);\n font-weight: 500;\n line-height: 1.5;\n letter-spacing: -0.01em;\n white-space: nowrap;\n user-select: none;\n transition:\n background-color 0.15s,\n opacity 0.15s,\n transform 0.15s;\n }\n .sc-button:active:not(:disabled) {\n transform: scale(0.985);\n }\n .sc-button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n .sc-button--sm {\n height: calc(28px * var(--_density));\n gap: var(--_s6);\n padding: 0 var(--_s12);\n border-radius: var(--_radius-sm);\n }\n .sc-button--md {\n height: calc(36px * var(--_density));\n gap: var(--_s8);\n padding: 0 var(--_s16);\n border-radius: var(--_radius-md);\n }\n .sc-button--primary {\n background: var(--_accent);\n box-shadow: var(--_shadow-button-primary);\n color: var(--_accent-fg);\n }\n .sc-button--primary:hover:not(:disabled) {\n background: color-mix(in srgb, var(--_accent) 92%, transparent);\n }\n .sc-button--secondary {\n border: 1px solid var(--_line-strong);\n background: var(--_face);\n box-shadow: var(--_shadow-button);\n }\n .sc-button--secondary:hover:not(:disabled) {\n background: var(--_face-hover);\n }\n .sc-button--ghost {\n color: var(--_muted);\n }\n .sc-button--ghost:hover:not(:disabled) {\n background: var(--_sunken);\n color: var(--_text);\n }\n\n .sc-icon-button {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: calc(32px * var(--_density));\n height: calc(32px * var(--_density));\n border-radius: var(--_radius-md);\n color: var(--_muted);\n transition:\n background-color 0.15s,\n color 0.15s;\n }\n .sc-icon-button:hover:not(:disabled) {\n background: var(--_sunken);\n color: var(--_text);\n }\n .sc-icon-button:disabled {\n opacity: 0.4;\n }\n /* On a phone the small tile already fills the screen: there is nothing to enlarge. */\n @media (max-width: 639px) {\n .sc-icon-button--enlarge {\n display: none;\n }\n }\n\n .sc-icon,\n .sc-request__icon,\n .sc-drop__icon {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n }\n .sc-spinner {\n flex-shrink: 0;\n width: 14px;\n height: 14px;\n animation: sc-spin 0.8s linear infinite;\n }\n .sc-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n border: 0;\n clip-path: inset(50%);\n white-space: nowrap;\n }\n .sc-error {\n font-size: var(--_fs-xs);\n color: var(--_danger);\n }\n\n /* --- The browser the agent drives --------------------------------------------------------- */\n\n .sc-browser {\n width: 100%;\n max-width: 26.25rem;\n overflow: hidden;\n border: 1px solid var(--_line);\n border-radius: var(--_radius);\n background: var(--_surface);\n transition: max-width 0.5s var(--_ease);\n }\n /* As big as the window allows while keeping the page's 4:3 shape: 86% of its height for the\n whole tile, the header and caption (8.5rem) included, and never smaller than the small one. */\n .sc-browser--large {\n max-width: max(26.25rem, calc((86vh - 8.5rem) * 4 / 3));\n }\n .sc-browser--spacious {\n margin-inline: auto;\n box-shadow: var(--_shadow-float);\n }\n .sc-browser__header {\n display: flex;\n flex-direction: column;\n gap: var(--_s6);\n padding: var(--_s8) var(--_s12);\n border-bottom: 1px solid var(--_line);\n }\n .sc-browser__driver {\n display: flex;\n min-width: 0;\n align-items: center;\n gap: var(--_s8);\n }\n .sc-browser__dot {\n flex-shrink: 0;\n width: 8px;\n height: 8px;\n border-radius: 9999px;\n }\n .sc-browser__dot--agent {\n background: var(--_signal);\n }\n .sc-browser__dot--owner {\n background: var(--_accent);\n }\n .sc-browser__dot--live {\n animation: sc-pulse 1.4s ease-in-out infinite;\n }\n .sc-browser__who {\n min-width: 0;\n overflow: hidden;\n font-size: var(--_fs-xs);\n font-weight: 500;\n color: var(--_muted);\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .sc-browser__controls {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: var(--_s4);\n margin-left: auto;\n }\n .sc-browser__site {\n overflow: hidden;\n padding: var(--_s4) var(--_s8);\n border-radius: var(--_radius-sm);\n background: var(--_sunken);\n font-size: var(--_fs-xs);\n color: var(--_subtle);\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .sc-browser__site-name {\n font-weight: 500;\n color: var(--_text);\n }\n .sc-browser__screen {\n position: relative;\n width: 100%;\n aspect-ratio: 4 / 3;\n background: var(--_sunken);\n }\n .sc-browser__frame {\n width: 100%;\n height: 100%;\n border: 0;\n }\n .sc-browser__shot {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n /* Only watched: the cover keeps the pointer out of the live view. */\n .sc-browser__cover {\n position: absolute;\n inset: 0;\n }\n .sc-browser__caption {\n display: flex;\n min-height: calc(56px * var(--_density));\n align-items: center;\n gap: var(--_s8);\n padding: var(--_s8) var(--_s12);\n border-top: 1px solid var(--_line);\n font-size: var(--_fs-ui);\n line-height: 1.5;\n }\n .sc-browser__step {\n flex-shrink: 0;\n width: 16px;\n color: var(--_subtle);\n font-variant-numeric: tabular-nums;\n }\n .sc-browser__line {\n display: -webkit-box;\n min-width: 0;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n animation: sc-fade-in 0.16s var(--_ease);\n }\n .sc-browser__ended {\n display: flex;\n width: 100%;\n height: 100%;\n overflow-y: auto;\n padding: var(--_s16) calc(24px * var(--_density));\n text-align: center;\n }\n .sc-browser__ended > div {\n margin: auto;\n }\n .sc-browser__ended-title {\n font-size: var(--_fs-ui);\n font-weight: 500;\n }\n .sc-browser__ended-summary {\n margin-top: var(--_s4);\n font-size: var(--_fs-ui);\n line-height: 1.625;\n color: var(--_muted);\n }\n\n /* --- A live stream ------------------------------------------------------------------------ */\n\n .sc-live {\n position: relative;\n width: 100%;\n overflow: hidden;\n border-radius: var(--_radius-md);\n background: var(--_sunken);\n }\n /* Sized by the stream's own shape (the canvas has its width and height), whatever the room. */\n .sc-live__canvas {\n display: block;\n width: 100%;\n height: auto;\n transition: opacity 0.3s var(--_ease);\n }\n .sc-live--input .sc-live__canvas {\n cursor: crosshair;\n }\n .sc-live--input .sc-live__canvas:focus-visible {\n outline-offset: -2px;\n }\n .sc-live--ended .sc-live__canvas,\n .sc-live--unavailable .sc-live__canvas {\n opacity: 0.5;\n }\n /* A word over a picture: its own dark ground, so it reads on whatever the stream shows. */\n .sc-live__status {\n position: absolute;\n bottom: var(--_s8);\n left: var(--_s8);\n display: flex;\n align-items: center;\n gap: var(--_s6);\n padding: var(--_s2) var(--_s8);\n border-radius: 9999px;\n background: rgb(0 0 0 / 0.6);\n color: rgb(255 255 255 / 0.9);\n font-size: var(--_fs-xs);\n line-height: 1.5;\n pointer-events: none;\n }\n .sc-live__dot {\n flex-shrink: 0;\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: rgb(255 255 255 / 0.55);\n }\n .sc-live--live .sc-live__dot {\n background: var(--_ok);\n animation: sc-pulse 1.4s ease-in-out infinite;\n }\n .sc-live--connecting .sc-live__dot,\n .sc-live--reconnecting .sc-live__dot {\n background: var(--_signal);\n animation: sc-pulse 1.1s ease-in-out infinite;\n }\n /* In the browser's tile the stream sits in the page's 4:3 window, centred if its shape differs. */\n .sc-browser__screen > .sc-live {\n display: grid;\n height: 100%;\n place-items: center;\n border-radius: 0;\n }\n\n /* --- Requests: what the agent needs from the owner ------------------------------------------ */\n\n .sc-request {\n max-width: 35rem;\n container-type: inline-size;\n border: 1px solid var(--_line);\n border-radius: var(--_radius);\n background: var(--_surface);\n box-shadow: var(--_shadow-raised);\n transition: max-width 0.5s var(--_ease);\n animation: sc-rise 0.25s var(--_ease);\n }\n .sc-request--wide {\n max-width: 100%;\n }\n .sc-request__heading {\n display: flex;\n align-items: center;\n gap: var(--_s8);\n padding: var(--_s8) var(--_s16);\n border-bottom: 1px solid var(--_line);\n font-size: var(--_fs-xs);\n font-weight: 500;\n color: var(--_muted);\n }\n .sc-request__icon {\n color: var(--_accent);\n }\n .sc-request__body {\n display: flex;\n flex-direction: column;\n gap: var(--_s12);\n padding: var(--_s14) var(--_s16);\n }\n .sc-request__title {\n font-size: var(--_fs);\n font-weight: 500;\n line-height: 1.375;\n }\n .sc-request__details {\n font-size: var(--_fs-ui);\n line-height: 1.625;\n color: var(--_muted);\n }\n .sc-request__done {\n display: flex;\n align-items: center;\n gap: var(--_s6);\n font-size: var(--_fs-ui);\n color: var(--_ok);\n }\n .sc-request__check {\n width: 14px;\n height: 14px;\n }\n .sc-request__actions {\n display: flex;\n flex-wrap: wrap;\n gap: var(--_s8);\n }\n .sc-request__actions--center {\n align-items: center;\n }\n .sc-request__form {\n display: flex;\n flex-direction: column;\n gap: var(--_s8);\n }\n .sc-request__hint {\n font-size: var(--_fs-xs);\n color: var(--_subtle);\n }\n .sc-request__name {\n font-family: var(--_mono);\n font-size: var(--_fs-xs);\n color: var(--_subtle);\n }\n\n .sc-approval {\n display: flex;\n flex-direction: column;\n gap: var(--_s8);\n }\n .sc-calls {\n display: flex;\n flex-direction: column;\n gap: var(--_s4);\n font-size: var(--_fs-ui);\n }\n .sc-calls__item {\n display: flex;\n min-width: 0;\n gap: var(--_s8);\n }\n .sc-calls__label {\n flex-shrink: 0;\n font-weight: 500;\n }\n .sc-calls__summary {\n min-width: 0;\n overflow-wrap: break-word;\n color: var(--_muted);\n }\n .sc-preview-pairs {\n display: grid;\n grid-template-columns: auto 1fr;\n gap: var(--_s4) var(--_s12);\n font-size: var(--_fs-ui);\n }\n .sc-preview-pairs__row {\n display: contents;\n }\n .sc-preview-pairs__label {\n color: var(--_subtle);\n }\n .sc-preview-pairs__value {\n min-width: 0;\n overflow-wrap: break-word;\n }\n .sc-preview-table {\n overflow-x: auto;\n border: 1px solid var(--_line);\n border-radius: var(--_radius-md);\n }\n .sc-preview-table__table {\n width: 100%;\n font-size: var(--_fs-ui);\n }\n .sc-preview-table__table tr {\n border-bottom: 1px solid var(--_line);\n }\n .sc-preview-table__table tbody tr:last-child {\n border-bottom: 0;\n }\n .sc-preview-table__head,\n .sc-preview-table__cell {\n padding: var(--_s6) calc(10px * var(--_density));\n text-align: left;\n }\n .sc-preview-table__head {\n font-weight: 500;\n color: var(--_subtle);\n }\n .sc-preview-table__cell {\n font-variant-numeric: tabular-nums;\n }\n .sc-preview-table__more {\n padding: var(--_s6) calc(10px * var(--_density));\n font-size: var(--_fs-xs);\n color: var(--_subtle);\n }\n .sc-preview-json {\n overflow-x: auto;\n padding: var(--_s8) var(--_s12);\n border-radius: var(--_radius-md);\n background: var(--_sunken);\n font-family: var(--_mono);\n font-size: var(--_fs-xs);\n }\n\n /* A hand-over: the browser, and what to do in it, side by side once the card is wide enough. */\n .sc-handover {\n display: grid;\n gap: var(--_s12);\n }\n @container (min-width: 48rem) {\n .sc-handover--steps {\n grid-template-columns: minmax(0, 1fr) 18rem;\n gap: var(--_s20);\n }\n }\n .sc-handover__side {\n display: flex;\n flex-direction: column;\n gap: var(--_s12);\n }\n .sc-steps {\n display: flex;\n flex-direction: column;\n gap: var(--_s10);\n }\n .sc-steps__item {\n display: flex;\n align-items: flex-start;\n gap: var(--_s10);\n font-size: var(--_fs-ui);\n line-height: 1.375;\n }\n .sc-steps__number {\n display: grid;\n flex-shrink: 0;\n place-items: center;\n width: 24px;\n height: 24px;\n border-radius: 9999px;\n background: var(--_accent);\n font-size: var(--_fs-xs);\n font-weight: 500;\n color: var(--_accent-fg);\n font-variant-numeric: tabular-nums;\n }\n .sc-steps__text {\n padding-top: var(--_s2);\n }\n\n .sc-drop {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--_s4);\n padding: var(--_s16) var(--_s12);\n border: 1px dashed var(--_line-strong);\n border-radius: var(--_radius);\n font-size: var(--_fs-ui);\n color: var(--_muted);\n text-align: center;\n cursor: pointer;\n transition: border-color 0.15s;\n }\n .sc-drop:hover {\n border-color: color-mix(in srgb, var(--_text) 30%, transparent);\n }\n .sc-drop--busy {\n opacity: 0.6;\n pointer-events: none;\n }\n .sc-drop__icon {\n color: var(--_subtle);\n }\n\n .sc-app-button {\n display: inline-flex;\n align-items: center;\n gap: var(--_s10);\n height: calc(36px * var(--_density));\n padding: 0 var(--_s12);\n border-radius: var(--_radius);\n background: var(--_surface);\n box-shadow:\n var(--_shadow-button),\n 0 0 0 1px var(--_line);\n font-size: var(--_fs-ui);\n font-weight: 500;\n line-height: 1.5;\n letter-spacing: -0.01em;\n white-space: nowrap;\n user-select: none;\n transition:\n background-color 0.15s,\n transform 0.15s;\n }\n .sc-app-button:hover:not(:disabled) {\n background: var(--_sunken);\n }\n .sc-app-button:active:not(:disabled) {\n transform: scale(0.985);\n }\n .sc-app-button:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n }\n .sc-app-button__logo {\n position: relative;\n display: grid;\n flex-shrink: 0;\n place-items: center;\n }\n .sc-app-button__ping {\n position: absolute;\n top: -2px;\n right: -2px;\n width: 10px;\n height: 10px;\n border-radius: 9999px;\n background: var(--_ok);\n box-shadow: 0 0 0 2px var(--_surface);\n animation: sc-ping 1.4s cubic-bezier(0, 0, 0.2, 1) infinite;\n }\n .sc-app-logo {\n display: grid;\n flex-shrink: 0;\n place-items: center;\n overflow: hidden;\n border-radius: 28%;\n background: var(--_sunken);\n font-weight: 600;\n color: var(--_muted);\n }\n .sc-app-logo:has(img) {\n background: #ffffff;\n }\n .sc-app-logo img {\n width: 72%;\n height: 72%;\n object-fit: contain;\n }\n\n /* --- The chat: messages, and the box to write in --------------------------------------- */\n\n .sc-chat {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n }\n .sc-chat__scroll {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n }\n .sc-chat__content {\n display: flex;\n flex-direction: column;\n gap: var(--_s8);\n padding: var(--_s16) var(--_s16) var(--_s12);\n }\n .sc-chat__note,\n .sc-chat__status {\n display: flex;\n align-items: center;\n gap: var(--_s8);\n font-size: var(--_fs-xs);\n color: var(--_subtle);\n }\n .sc-chat__status:empty {\n display: none;\n }\n .sc-messages {\n display: flex;\n flex-direction: column;\n gap: var(--_s10);\n }\n /* The time a stretch of the conversation began: quiet, in the middle. */\n .sc-moment {\n align-self: center;\n font-size: var(--_fs-xs);\n color: var(--_subtle);\n font-variant-numeric: tabular-nums;\n }\n .sc-message {\n display: flex;\n flex-direction: column;\n gap: var(--_s8);\n max-width: 88%;\n animation: sc-rise 0.2s var(--_ease);\n }\n /* The same side again: close to the message before it. */\n .sc-message--joined {\n margin-top: calc(var(--_s2) - var(--_s10));\n }\n .sc-message--person {\n align-self: flex-end;\n align-items: flex-end;\n }\n .sc-message--agent {\n align-self: flex-start;\n align-items: flex-start;\n }\n /* What the agent drew needs the room: it takes the whole line. */\n .sc-message--agent:has(.sc-message__surface) {\n align-self: stretch;\n max-width: 100%;\n }\n .sc-message__text {\n padding: var(--_s8) var(--_s12);\n border-radius: var(--_radius);\n line-height: 1.5;\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n }\n .sc-message--person .sc-message__text {\n border-bottom-right-radius: var(--_radius-sm);\n background: var(--_accent);\n color: var(--_accent-fg);\n }\n .sc-message--agent .sc-message__text {\n border-bottom-left-radius: var(--_radius-sm);\n background: var(--_sunken);\n }\n .sc-message__surface {\n width: 100%;\n }\n /* Where a surface went, when the agent placed it in a window of the shell instead. */\n .sc-message__window {\n font-size: var(--_fs-ui);\n line-height: 1.5;\n color: var(--_muted);\n }\n .sc-message__open {\n font-weight: 500;\n color: var(--_accent);\n text-underline-offset: 2px;\n }\n .sc-message__open:hover {\n text-decoration: underline;\n }\n\n .sc-composer {\n flex-shrink: 0;\n padding: var(--_s8) var(--_s12) var(--_s12);\n }\n .sc-composer__context {\n margin-bottom: var(--_s6);\n }\n .sc-composer__box {\n display: flex;\n flex-direction: column;\n gap: var(--_s4);\n padding: var(--_s8) var(--_s8) var(--_s8) var(--_s12);\n border: 1px solid var(--_line-strong);\n border-radius: var(--_radius);\n background: var(--_surface);\n box-shadow: var(--_shadow-raised);\n cursor: text;\n transition:\n border-color 0.15s,\n box-shadow 0.15s;\n }\n .sc-composer__box:focus-within {\n border-color: var(--_accent);\n box-shadow:\n var(--_shadow-raised),\n 0 0 0 2px var(--_focus);\n }\n .sc-composer__input {\n width: 100%;\n min-height: calc(24px * var(--_density));\n max-height: 200px;\n padding: 0;\n border: 0;\n background: transparent;\n line-height: 1.5;\n color: var(--_text);\n resize: none;\n }\n .sc-composer__input::placeholder {\n color: var(--_subtle);\n }\n .sc-composer__input:focus {\n outline: none;\n }\n .sc-composer__bar {\n display: flex;\n align-items: center;\n gap: var(--_s4);\n }\n .sc-composer__tools {\n display: flex;\n min-width: 0;\n flex: 1;\n align-items: center;\n gap: var(--_s2);\n }\n .sc-composer__send {\n display: grid;\n flex-shrink: 0;\n place-items: center;\n width: calc(28px * var(--_density));\n height: calc(28px * var(--_density));\n border-radius: 9999px;\n background: var(--_accent);\n color: var(--_accent-fg);\n transition:\n background-color 0.15s,\n opacity 0.15s;\n }\n .sc-composer__send:hover:not(:disabled) {\n background: color-mix(in srgb, var(--_accent) 92%, transparent);\n }\n .sc-composer__send:disabled {\n background: var(--_sunken);\n color: var(--_subtle);\n cursor: not-allowed;\n }\n\n /* --- The chat with the builder: what it says, does and changed --------------------------- */\n\n .sc-chat__note--invitation {\n flex-direction: column;\n align-items: flex-start;\n gap: var(--_s6);\n padding-block: var(--_s20) var(--_s8);\n font-size: var(--_fs-ui);\n line-height: 1.5;\n color: var(--_muted);\n }\n .sc-chat__note--invitation strong {\n font-size: var(--_fs-md);\n font-weight: 600;\n color: var(--_text);\n }\n\n .sc-transcript {\n display: flex;\n flex-direction: column;\n gap: var(--_s16);\n }\n .sc-reply {\n line-height: 1.625;\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n }\n .sc-reply__cursor {\n display: inline-block;\n width: 2px;\n height: 1.05em;\n margin-left: 2px;\n vertical-align: -0.15em;\n background: var(--_signal);\n animation: sc-pulse 1.1s ease-in-out infinite;\n }\n\n .sc-activity {\n display: flex;\n flex-direction: column;\n }\n .sc-activity__toggle {\n display: flex;\n width: 100%;\n min-width: 0;\n align-items: center;\n gap: var(--_s10);\n padding: var(--_s4) 0;\n border-radius: var(--_radius-sm);\n font-size: var(--_fs-ui);\n text-align: left;\n }\n .sc-activity__toggle:is(button) {\n cursor: pointer;\n }\n .sc-activity__toggle:is(button):hover {\n background: var(--_sunken);\n }\n .sc-activity__mark {\n display: grid;\n flex-shrink: 0;\n place-items: center;\n width: 20px;\n height: 20px;\n color: var(--_subtle);\n }\n .sc-activity__mark--running {\n color: var(--_signal);\n }\n .sc-activity__mark--error {\n color: var(--_danger);\n }\n .sc-activity__verb {\n flex-shrink: 0;\n font-weight: 500;\n }\n .sc-activity__step--error .sc-activity__verb {\n color: var(--_danger);\n }\n .sc-activity__target {\n min-width: 0;\n overflow: hidden;\n color: var(--_muted);\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .sc-activity__target--code {\n font-family: var(--_mono);\n font-size: var(--_fs-xs);\n }\n .sc-activity__target--struck {\n text-decoration: line-through;\n }\n .sc-activity__note {\n flex-shrink: 0;\n font-size: var(--_fs-xs);\n color: var(--_subtle);\n }\n .sc-activity__note--danger {\n color: var(--_danger);\n }\n .sc-activity__summary {\n max-height: 14rem;\n margin: var(--_s4) 0 var(--_s8) 30px;\n padding: var(--_s8) var(--_s12);\n overflow: auto;\n border: 1px solid var(--_line);\n border-radius: var(--_radius-md);\n background: var(--_sunken);\n font-family: var(--_mono);\n font-size: var(--_fs-xs);\n line-height: 1.5;\n color: var(--_muted);\n white-space: pre-wrap;\n }\n\n .sc-note {\n display: flex;\n align-items: center;\n gap: var(--_s8);\n font-size: var(--_fs-ui);\n color: var(--_muted);\n }\n .sc-note strong {\n font-weight: 500;\n color: var(--_text);\n }\n .sc-note--ok .sc-icon {\n color: var(--_ok);\n }\n\n .sc-changes {\n padding: var(--_s10) var(--_s14);\n border: 1px solid var(--_line);\n border-radius: var(--_radius);\n background: var(--_surface);\n }\n .sc-changes__title {\n font-size: var(--_fs-xs);\n font-weight: 500;\n color: var(--_subtle);\n }\n .sc-changes__list {\n display: flex;\n flex-direction: column;\n gap: var(--_s4);\n margin-top: var(--_s6);\n }\n .sc-changes__item {\n font-size: var(--_fs-ui);\n }\n .sc-changes__label {\n color: var(--_muted);\n }\n .sc-changes__item--added .sc-changes__label {\n color: var(--_ok);\n }\n .sc-changes__item--removed .sc-changes__label {\n color: var(--_danger);\n }\n .sc-changes__item--changed .sc-changes__label,\n .sc-changes__item--learned .sc-changes__label {\n color: var(--_accent);\n }\n .sc-changes__more {\n margin-top: var(--_s4);\n font-size: var(--_fs-xs);\n color: var(--_subtle);\n }\n .sc-changes__more:hover {\n color: var(--_text);\n }\n\n .sc-status-line {\n display: flex;\n align-items: center;\n gap: var(--_s8);\n padding: 0 var(--_s16) var(--_s4);\n font-size: var(--_fs-xs);\n font-variant-numeric: tabular-nums;\n color: var(--_subtle);\n }\n .sc-status-line:empty {\n display: none;\n }\n .sc-status-line__dot {\n flex-shrink: 0;\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: var(--_signal);\n animation: sc-pulse 1.4s ease-in-out infinite;\n }\n .sc-status-line__hint {\n margin-left: auto;\n }\n .sc-status-line kbd {\n font: inherit;\n }\n @media (max-width: 639px) {\n .sc-status-line__hint {\n display: none;\n }\n }\n\n /* --- The windows of an agent: a state in words, and the map -------------------------------- */\n\n /* A state: a dot of its color and the word, so the color is never the whole message. */\n .sc-status {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n gap: var(--_s6);\n font-size: var(--_fs-xs);\n white-space: nowrap;\n color: var(--_muted);\n }\n .sc-status--signal {\n color: var(--_signal);\n }\n .sc-status--danger {\n color: var(--_danger);\n }\n .sc-status--neutral {\n color: var(--_subtle);\n }\n .sc-status__dot {\n flex-shrink: 0;\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: var(--_line-strong);\n }\n .sc-status__dot--ok {\n background: var(--_ok);\n }\n .sc-status__dot--signal {\n background: var(--_signal);\n }\n .sc-status__dot--danger {\n background: var(--_danger);\n }\n /* Something is happening right now. */\n .sc-status--live .sc-status__dot {\n animation: sc-pulse 1.4s ease-in-out infinite;\n }\n\n /* What the agent does: its channels and automations, as rows that open. */\n .sc-automations {\n display: flex;\n flex-direction: column;\n gap: calc(24px * var(--_density));\n }\n .sc-automations__title {\n padding: 0 var(--_s8) var(--_s4);\n font-size: calc(var(--_fs) * 11 / 14);\n font-weight: 500;\n color: var(--_subtle);\n }\n .sc-automations__item + .sc-automations__item {\n border-top: 1px solid var(--_line);\n }\n .sc-automations__empty {\n padding: var(--_s8);\n font-size: var(--_fs-xs);\n line-height: 1.5;\n color: var(--_muted);\n }\n /* What a window says instead of itself: that it is loading, or could not be. */\n .sc-automations > .sc-note,\n .sc-automations > .sc-error,\n .sc-flow > .sc-note,\n .sc-flow > .sc-error {\n padding: var(--_s16);\n }\n\n .sc-automation {\n position: relative;\n }\n /* The part the builder just touched: a wash of the signal color that fades, once. */\n .sc-automation__wash {\n position: absolute;\n inset: 0;\n border-radius: var(--_radius-md);\n pointer-events: none;\n animation: sc-wash 1.8s var(--_ease) both;\n }\n .sc-automation__head {\n display: flex;\n align-items: flex-start;\n gap: var(--_s12);\n width: 100%;\n min-height: calc(44px * var(--_density));\n padding: var(--_s8);\n border-radius: var(--_radius-md);\n text-align: left;\n transition: background-color 0.15s;\n }\n .sc-automation__head:hover {\n background: var(--_sunken);\n }\n .sc-automation__head:focus-visible {\n outline-offset: -2px;\n }\n .sc-automation__tile {\n display: grid;\n flex-shrink: 0;\n place-items: center;\n width: 26px;\n height: 26px;\n border-radius: var(--_radius-sm);\n background: var(--_accent-soft);\n color: var(--_accent);\n }\n .sc-automation__tile--signal {\n background: var(--_signal-soft);\n color: var(--_signal);\n }\n /* A logo has its own ground. */\n .sc-automation__tile--mark {\n background: none;\n }\n .sc-automation__tile--building {\n animation: sc-pulse 1.4s ease-in-out infinite;\n }\n .sc-automation__glyph {\n width: 14px;\n height: 14px;\n }\n .sc-automation__text {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-width: 0;\n }\n .sc-automation__line {\n display: flex;\n align-items: center;\n gap: var(--_s12);\n min-height: 26px;\n }\n .sc-automation__title {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--_fs-ui);\n font-weight: 500;\n line-height: 1.375;\n }\n .sc-automation__status {\n flex-shrink: 0;\n margin-left: auto;\n }\n .sc-automation__tagline {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--_s4) var(--_s8);\n margin-top: -2px;\n font-size: var(--_fs-xs);\n color: var(--_muted);\n }\n .sc-automation__meta {\n margin-top: var(--_s4);\n font-size: var(--_fs-xs);\n }\n .sc-automation__chevron {\n flex-shrink: 0;\n width: 14px;\n height: 14px;\n margin-top: 6px;\n color: var(--_subtle);\n opacity: 0;\n transition:\n opacity 0.15s,\n transform 0.15s;\n }\n .sc-automation__head:hover .sc-automation__chevron,\n .sc-automation__head:focus-visible .sc-automation__chevron,\n .sc-automation--open .sc-automation__chevron {\n opacity: 1;\n }\n .sc-automation--open .sc-automation__chevron {\n transform: rotate(180deg);\n }\n /* Under the tile and the text, aligned with the title. */\n .sc-automation__body {\n display: flex;\n flex-direction: column;\n gap: var(--_s12);\n padding: 0 var(--_s8) var(--_s12) calc(var(--_s8) + 26px + var(--_s12));\n font-size: var(--_fs-xs);\n line-height: 1.5;\n animation: sc-fade-in 0.2s var(--_ease);\n }\n .sc-automation__description {\n max-width: 65ch;\n color: var(--_muted);\n }\n .sc-automation__facts {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr);\n gap: var(--_s4) var(--_s16);\n }\n .sc-automation__fact {\n display: contents;\n }\n .sc-automation__label {\n color: var(--_subtle);\n }\n .sc-automation__activity {\n color: var(--_subtle);\n }\n .sc-automation__activity--failed {\n color: var(--_danger);\n }\n .sc-automation__tips {\n display: flex;\n flex-direction: column;\n gap: var(--_s2);\n color: var(--_subtle);\n }\n .sc-automation__actions {\n display: flex;\n flex-wrap: wrap;\n gap: var(--_s6);\n }\n\n /* When it runs: the days of the week with the ones it works on marked, and the time. */\n .sc-schedule {\n display: inline-flex;\n align-items: center;\n gap: var(--_s8);\n }\n .sc-schedule__days {\n display: inline-flex;\n align-items: center;\n gap: var(--_s2);\n }\n .sc-schedule__day {\n display: grid;\n place-items: center;\n width: 18px;\n height: 18px;\n border-radius: 9999px;\n font-size: calc(var(--_fs) * 11 / 14);\n font-weight: 500;\n line-height: 1;\n color: color-mix(in srgb, var(--_subtle) 70%, transparent);\n }\n .sc-schedule__day--on {\n background: var(--_accent-soft);\n color: var(--_accent);\n }\n .sc-schedule--signal .sc-schedule__day--on {\n background: var(--_signal-soft);\n color: var(--_signal);\n }\n .sc-schedule__day--today {\n box-shadow: 0 0 0 1px color-mix(in srgb, currentColor 30%, transparent);\n }\n .sc-schedule__time {\n font-size: var(--_fs-xs);\n font-weight: 500;\n font-variant-numeric: tabular-nums;\n }\n\n /* The apps a part uses; dimmed until they are connected. */\n .sc-app-marks {\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--_s4) var(--_s8);\n }\n .sc-app-marks__item {\n display: inline-flex;\n align-items: center;\n gap: var(--_s4);\n }\n .sc-app-marks__item--off {\n color: var(--_subtle);\n }\n\n /*\n * The agent as a map. The graph library sets what it needs to work in its own stylesheet and\n * reads its look from custom properties, which are set here from the tokens (the names without\n * \"-default\" are the ones a host may set).\n */\n .sc-flow {\n position: relative;\n width: 100%;\n height: 100%;\n min-height: 20rem;\n }\n .sc-flow .react-flow {\n --xy-background-color: transparent;\n --xy-background-pattern-color: var(--_line-strong);\n --xy-edge-stroke: var(--_line-strong);\n --xy-edge-stroke-width: 1.25;\n --xy-edge-stroke-selected: var(--_muted);\n }\n .sc-flow .react-flow__edge-textbg {\n fill: var(--_surface);\n stroke: var(--_line);\n rx: 6;\n }\n .sc-flow .react-flow__edge-text {\n fill: var(--_muted);\n font-size: calc(var(--_fs) * 11 / 14);\n }\n .sc-flow .react-flow__controls {\n overflow: hidden;\n border: 1px solid var(--_line);\n border-radius: var(--_radius-md);\n box-shadow: var(--_shadow-raised);\n }\n .sc-flow .react-flow__controls-button {\n border-bottom: 1px solid var(--_line);\n background: var(--_face);\n color: var(--_muted);\n cursor: pointer;\n }\n .sc-flow .react-flow__controls-button:last-child {\n border-bottom: 0;\n }\n .sc-flow .react-flow__controls-button:hover {\n background: var(--_face-hover);\n color: var(--_text);\n }\n .sc-flow__empty {\n padding: calc(64px * var(--_density)) calc(24px * var(--_density));\n font-size: var(--_fs-ui);\n line-height: 1.625;\n text-align: center;\n color: var(--_muted);\n }\n /* Its width and height are the layout's (NODE_W, NODE_H), set on the element itself. */\n .sc-flow__node {\n display: flex;\n align-items: center;\n gap: var(--_s10);\n padding: 0 var(--_s12);\n border: 1px solid var(--_line);\n border-radius: var(--_radius);\n background: var(--_surface);\n box-shadow: var(--_shadow-raised);\n color: var(--_text);\n }\n .sc-flow__node--strong {\n border-color: var(--_line-strong);\n }\n .sc-flow__node--selected {\n outline: 2px solid var(--_accent);\n outline-offset: 2px;\n }\n .sc-flow__handle {\n opacity: 0;\n }\n .sc-flow__mark {\n display: grid;\n flex-shrink: 0;\n place-items: center;\n width: 32px;\n height: 32px;\n border-radius: var(--_radius-md);\n background: var(--_sunken);\n color: var(--_muted);\n }\n .sc-flow__mark--strong {\n background: var(--_signal-soft);\n color: var(--_signal);\n }\n .sc-flow__glyph {\n width: 16px;\n height: 16px;\n }\n .sc-flow__text {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-width: 0;\n }\n .sc-flow__name,\n .sc-flow__detail {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .sc-flow__name {\n font-size: var(--_fs-xs);\n font-weight: 500;\n line-height: 1.375;\n }\n .sc-flow__detail {\n font-size: calc(var(--_fs) * 11 / 14);\n color: var(--_subtle);\n }\n .sc-flow__trigger {\n font-family: var(--_mono);\n color: var(--_muted);\n }\n\n /* --- The orb: the voice window's shape, still when the person asked for less motion -------- */\n\n .sc-orb {\n /* At rest the accent worn down to gray; the person is the accent, the agent the signal. */\n --_orb: color-mix(in srgb, var(--_accent) 40%, rgb(150 150 150));\n position: relative;\n display: grid;\n flex-shrink: 0;\n place-items: center;\n }\n .sc-orb--listening {\n --_orb: var(--_accent);\n }\n .sc-orb--thinking,\n .sc-orb--speaking {\n --_orb: var(--_signal);\n }\n /* Not drawn by the library: a disc in a ring, and the ring's outline tells the state. */\n .sc-orb__core,\n .sc-orb__ring {\n grid-area: 1 / 1;\n aspect-ratio: 1;\n border-radius: 9999px;\n }\n .sc-orb__core {\n width: 55%;\n background: var(--_orb);\n }\n .sc-orb__ring {\n width: 80%;\n border: 1px solid color-mix(in srgb, var(--_orb) 45%, transparent);\n }\n .sc-orb--listening .sc-orb__ring {\n border: 3px solid var(--_orb);\n }\n .sc-orb--thinking .sc-orb__ring {\n border: 3px dashed var(--_orb);\n }\n .sc-orb--speaking .sc-orb__ring {\n border: 3px solid var(--_orb);\n outline: 2px solid var(--_orb);\n outline-offset: 6px;\n }\n\n /* --- The voice window: the orb, what it is doing in words, and what was said ---------------- */\n\n .sc-voice {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--_s12);\n min-height: 100%;\n padding: var(--_s20) var(--_s16);\n text-align: center;\n }\n .sc-voice__stage {\n display: grid;\n place-items: center;\n }\n .sc-voice__state {\n font-size: var(--_fs-md);\n font-weight: 500;\n }\n .sc-voice--idle .sc-voice__state,\n .sc-voice--muted .sc-voice__state {\n color: var(--_muted);\n }\n .sc-voice__captions {\n display: flex;\n flex-direction: column;\n gap: var(--_s10);\n width: 100%;\n max-width: 34rem;\n }\n .sc-voice__captions:empty {\n display: none;\n }\n .sc-voice__line {\n line-height: 1.5;\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n }\n .sc-voice__line--person {\n font-size: var(--_fs-ui);\n color: var(--_muted);\n }\n .sc-voice__line--agent {\n font-size: var(--_fs-md);\n animation: sc-rise 0.2s var(--_ease);\n }\n .sc-voice__who {\n display: block;\n font-size: var(--_fs-xs);\n color: var(--_subtle);\n }\n .sc-voice__note {\n max-width: 28rem;\n font-size: var(--_fs-ui);\n line-height: 1.5;\n color: var(--_muted);\n }\n .sc-voice__controls {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--_s8);\n }\n\n /* --- A window of the shell: its bar, and the room for what it holds ---------------------- */\n\n .sc-window {\n display: flex;\n flex-direction: column;\n min-width: 0;\n height: 100%;\n min-height: 0;\n }\n .sc-window__bar {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: var(--_s8);\n min-height: calc(40px * var(--_density));\n padding: 0 var(--_s8) 0 var(--_s14);\n border-bottom: 1px solid var(--_line);\n }\n .sc-window__mark {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n color: var(--_subtle);\n }\n .sc-window__title {\n min-width: 0;\n flex: 1;\n margin: 0;\n overflow: hidden;\n font-size: var(--_fs);\n font-weight: 500;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n /* The window scrolls inside; the bar stays. */\n .sc-window__body {\n min-height: 0;\n flex: 1;\n overflow: auto;\n overscroll-behavior: contain;\n }\n /* A surface in a window has a page to itself: it gets the room, not a card's width. */\n .sc-window--surface > .sc-window__body {\n padding: var(--_s16);\n }\n /* What a window says when nothing here draws it: its words. */\n .sc-window__twin {\n max-width: 40rem;\n padding: var(--_s16);\n line-height: 1.625;\n white-space: pre-wrap;\n color: var(--_muted);\n }\n\n /* The conversation when the person listens: only the last words, quiet and in the middle. */\n .sc-captions {\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: var(--_s12);\n height: 100%;\n padding: var(--_s20) var(--_s16);\n text-align: center;\n }\n .sc-captions__line {\n line-height: 1.5;\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n }\n .sc-captions__line--person {\n font-size: var(--_fs-ui);\n color: var(--_muted);\n }\n .sc-captions__line--agent {\n font-size: var(--_fs-md);\n animation: sc-rise 0.2s var(--_ease);\n }\n\n /* --- The shell: the strip of open windows, the stage, and the dock to talk from ---------- */\n\n /*\n * The shell answers to its own width, not the page's: a widget in a narrow column of a wide\n * page is narrow. Under 720px the strip becomes tabs and the stage takes the width.\n */\n .sc-space {\n container-type: inline-size;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 0;\n }\n .sc-space__main {\n display: grid;\n grid-template-columns: minmax(10rem, 13rem) minmax(0, 1fr);\n flex: 1;\n min-height: 0;\n }\n /* The window on the stage scrolls inside its frame; the stage itself only holds it. */\n .sc-space__stage {\n min-width: 0;\n min-height: 0;\n overflow: hidden;\n }\n .sc-space__stage:focus {\n outline: none;\n }\n\n .sc-strip {\n display: flex;\n flex-direction: column;\n gap: var(--_s2);\n padding: var(--_s8);\n overflow-y: auto;\n border-right: 1px solid var(--_line);\n }\n .sc-strip__tab {\n display: flex;\n min-width: 0;\n flex-shrink: 0;\n align-items: center;\n gap: var(--_s8);\n padding: var(--_s8) var(--_s10);\n border-radius: var(--_radius-md);\n font-size: var(--_fs-ui);\n text-align: left;\n color: var(--_muted);\n transition:\n background-color 0.15s,\n color 0.15s;\n }\n .sc-strip__tab:hover {\n background: var(--_sunken);\n color: var(--_text);\n }\n /* The window on the stage. */\n .sc-strip__tab--current,\n .sc-strip__tab--current:hover {\n background: var(--_accent-soft);\n font-weight: 500;\n color: var(--_text);\n }\n /* A window the person closed: still there to open, but quiet. */\n .sc-strip__tab--closed {\n opacity: 0.6;\n }\n .sc-strip__mark {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n }\n .sc-strip__title {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n /* The agent said something while another window was on the stage. */\n .sc-strip__dot {\n flex-shrink: 0;\n width: 8px;\n height: 8px;\n margin-left: auto;\n border-radius: 9999px;\n background: var(--_signal);\n }\n\n .sc-dock {\n flex-shrink: 0;\n border-top: 1px solid var(--_line);\n }\n .sc-dock__status {\n display: flex;\n align-items: center;\n gap: var(--_s8);\n padding: var(--_s6) var(--_s16) 0;\n font-size: var(--_fs-xs);\n color: var(--_subtle);\n }\n .sc-dock__status:empty {\n display: none;\n }\n .sc-dock .sc-error {\n padding: var(--_s6) var(--_s16) 0;\n }\n .sc-dock__voice {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--_s8);\n padding: var(--_s8) var(--_s12) var(--_s12);\n }\n\n @container (max-width: 719px) {\n .sc-space__main {\n grid-template-columns: minmax(0, 1fr);\n grid-template-rows: auto minmax(0, 1fr);\n }\n .sc-strip {\n flex-direction: row;\n gap: 0;\n padding: 0 var(--_s8);\n overflow: auto hidden;\n scrollbar-width: none;\n border-right: 0;\n border-bottom: 1px solid var(--_line);\n }\n .sc-strip__tab,\n .sc-strip__tab:hover {\n border-radius: 0;\n background: none;\n box-shadow: inset 0 -2px 0 transparent;\n }\n .sc-strip__tab--current,\n .sc-strip__tab--current:hover {\n background: none;\n box-shadow: inset 0 -2px 0 var(--_accent);\n }\n }\n }\n\n @keyframes sc-rise {\n from {\n opacity: 0;\n transform: translateY(6px);\n }\n }\n @keyframes sc-fade-in {\n from {\n opacity: 0;\n transform: translateY(3px);\n }\n }\n @keyframes sc-spin {\n to {\n transform: rotate(360deg);\n }\n }\n @keyframes sc-pulse {\n 0%,\n 100% {\n opacity: 0.35;\n }\n 50% {\n opacity: 1;\n }\n }\n @keyframes sc-wash {\n from {\n background-color: var(--_signal-soft);\n }\n to {\n background-color: transparent;\n }\n }\n @keyframes sc-ping {\n 75%,\n 100% {\n opacity: 0;\n transform: scale(2);\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n :where(.sc-ui:not([data-sc-unstyled])) * {\n animation: none !important;\n transition: none !important;\n }\n }\n}\n","/**\n * Every failure the API reports is thrown as one of these: the problem's fields, a class per kind.\n *\n * The API answers errors as RFC 9457 problems. `code` is stable and meant for branching, `detail`\n * is written for people. Catch the class that fits, or `SignalcoreError` for any.\n */\n\nimport type { Schemas } from \"./contract.js\";\n\ntype Problem = Schemas[\"Problem\"];\n\n/** What was wrong, field by field (`loc`, `msg`, `type`). */\nexport type FieldErrors = NonNullable<Problem[\"errors\"]>;\n\nexport interface ErrorDetails {\n status: number;\n code: string;\n detail: string;\n errors?: Problem[\"errors\"];\n response?: Response;\n}\n\n/** An error response. `message` is its `detail`. */\nexport class SignalcoreError extends Error {\n readonly status: number;\n readonly code: string;\n readonly detail: string;\n /** Validation failures only. */\n readonly errors: FieldErrors | undefined;\n /** The raw response, for headers such as `Retry-After`. */\n readonly response: Response | undefined;\n\n constructor(details: ErrorDetails) {\n super(details.detail);\n this.name = \"SignalcoreError\";\n this.status = details.status;\n this.code = details.code;\n this.detail = details.detail;\n this.errors = details.errors ?? undefined;\n this.response = details.response;\n }\n}\n\n/** 401: no API key, or one that is not valid. */\nexport class UnauthenticatedError extends SignalcoreError {\n override readonly name = \"UnauthenticatedError\";\n}\n\n/** 403: the key may not do this, for instance it lacks a scope. */\nexport class ForbiddenError extends SignalcoreError {\n override readonly name = \"ForbiddenError\";\n}\n\n/** 404: nothing by that id in this business. */\nexport class NotFoundError extends SignalcoreError {\n override readonly name = \"NotFoundError\";\n}\n\n/** 409: it already exists or is in the way. */\nexport class ConflictError extends SignalcoreError {\n override readonly name = \"ConflictError\";\n}\n\n/** 422: the request does not pass a rule (`invalid`) or fit its shape (`validation`). */\nexport class InvalidError extends SignalcoreError {\n override readonly name = \"InvalidError\";\n}\n\n/** 429: slow down; `response.headers.get(\"Retry-After\")` says for how long. */\nexport class RateLimitedError extends SignalcoreError {\n override readonly name = \"RateLimitedError\";\n}\n\n/** 5xx: something went wrong on SignalCore's side. */\nexport class ServerError extends SignalcoreError {\n override readonly name = \"ServerError\";\n}\n\ntype ErrorClass = new (details: ErrorDetails) => SignalcoreError;\n\nconst BY_CODE = new Map<string, ErrorClass>([\n [\"unauthenticated\", UnauthenticatedError],\n [\"forbidden\", ForbiddenError],\n [\"not_found\", NotFoundError],\n [\"conflict\", ConflictError],\n [\"invalid\", InvalidError],\n [\"validation\", InvalidError],\n [\"rate_limited\", RateLimitedError],\n]);\n\nconst BY_STATUS = new Map<number, ErrorClass>([\n [401, UnauthenticatedError],\n [403, ForbiddenError],\n [404, NotFoundError],\n [409, ConflictError],\n [422, InvalidError],\n [429, RateLimitedError],\n]);\n\n/** The error for a failed response: its class by `code`, else by status. */\nexport async function fromResponse(response: Response): Promise<SignalcoreError> {\n const problem = await problemOf(response);\n const { status } = response;\n const code = typeof problem.code === \"string\" && problem.code !== \"\" ? problem.code : \"error\";\n const kind =\n BY_CODE.get(code) ?? BY_STATUS.get(status) ?? (status >= 500 ? ServerError : SignalcoreError);\n const detail =\n typeof problem.detail === \"string\" && problem.detail !== \"\"\n ? problem.detail\n : response.statusText || String(status);\n return new kind({ status, code, detail, errors: problem.errors, response });\n}\n\n/** The body as a problem; empty when it is not one (a proxy's page, say). */\nasync function problemOf(response: Response): Promise<Partial<Problem>> {\n try {\n const body: unknown = JSON.parse(await response.text());\n return typeof body === \"object\" && body !== null ? body : {};\n } catch {\n return {};\n }\n}\n","/**\n * Server-Sent Events: bytes in, events out. No network here, so it is tested on its own.\n *\n * The format is a handful of `field: value` lines ended by a blank line; a line starting with a\n * colon is a comment (the API pings with them to keep quiet streams open).\n */\n\n/** One frame of a stream. `id` is the frame's own: the ones that end a stream have none. */\nexport class ServerSentEvent {\n constructor(\n readonly data: string,\n readonly event = \"message\",\n readonly id?: string,\n ) {}\n\n /** `data` parsed as JSON, which is how the API always sends it. */\n json(): unknown {\n return JSON.parse(this.data);\n }\n}\n\n/** Turns the lines of a stream into events, one line at a time. */\nclass Decoder {\n private data: string[] = [];\n private event = \"\";\n private id: string | undefined;\n\n /** Take the next line (without its line break); give back an event when it completes one. */\n feed(line: string): ServerSentEvent | undefined {\n if (line === \"\") return this.dispatch();\n if (line.startsWith(\":\")) return undefined;\n const colon = line.indexOf(\":\");\n const name = colon < 0 ? line : line.slice(0, colon);\n const value = colon < 0 ? \"\" : line.slice(colon + 1).replace(/^ /, \"\");\n if (name === \"data\") this.data.push(value);\n else if (name === \"event\") this.event = value;\n else if (name === \"id\") this.id = value;\n // Other fields (`retry`) tell a browser when to reconnect: not our job.\n return undefined;\n }\n\n private dispatch(): ServerSentEvent | undefined {\n // A frame without data says nothing, by the standard's own rule: drop it, start over.\n const event =\n this.data.length > 0\n ? new ServerSentEvent(this.data.join(\"\\n\"), this.event || \"message\", this.id)\n : undefined;\n this.data = [];\n this.event = \"\";\n this.id = undefined;\n return event;\n }\n}\n\n/** The events of a stream as they complete, until it ends. Cancels the stream if stopped early. */\nexport async function* readEvents(\n body: ReadableStream<Uint8Array>,\n): AsyncGenerator<ServerSentEvent, void> {\n const decoder = new Decoder();\n for await (const line of readLines(body)) {\n const event = decoder.feed(line);\n if (event !== undefined) yield event;\n }\n}\n\nasync function* readLines(body: ReadableStream<Uint8Array>): AsyncGenerator<string, void> {\n const reader = body.getReader();\n const text = new TextDecoder();\n let pending = \"\";\n try {\n for (;;) {\n const { done, value } = await reader.read();\n pending += text.decode(value, { stream: !done });\n const [lines, rest] = takeLines(pending, done);\n yield* lines;\n pending = rest;\n if (done) return;\n }\n } finally {\n await reader.cancel().catch(() => undefined);\n }\n}\n\n/**\n * The complete lines in `text` and what follows the last line break. A line ends with `\\n`,\n * `\\r` or `\\r\\n`; a `\\r` at the very end waits for the chunk that may start with its `\\n`.\n */\nfunction takeLines(text: string, final: boolean): [lines: string[], rest: string] {\n const held = !final && text.endsWith(\"\\r\") ? \"\\r\" : \"\";\n const lines = text.slice(0, text.length - held.length).split(/\\r\\n|\\r|\\n/);\n return [lines.slice(0, -1), (lines.at(-1) ?? \"\") + held];\n}\n","/** Addresses: a path with its parts escaped, and a query string. */\n\n/** A path with every interpolated part escaped: `` path`/v1/agents/${agentId}` ``. */\nexport function path(literals: TemplateStringsArray, ...parts: readonly string[]): string {\n return literals.reduce(\n (url, literal, index) => `${url}${encodeURIComponent(parts[index - 1] ?? \"\")}${literal}`,\n );\n}\n\n/** What a query parameter can be. A list repeats the parameter; null and undefined leave it out. */\nexport type QueryValue = string | number | boolean | readonly string[] | null | undefined;\n\nexport type QueryParams = Readonly<Record<string, QueryValue>>;\n\n/** The query string for `query`, with its `?`; empty when there is nothing to say. */\nexport function search(query: QueryParams | undefined): string {\n const params = new URLSearchParams();\n for (const [name, value] of Object.entries(query ?? {})) {\n if (value === undefined || value === null) continue;\n for (const item of typeof value === \"object\" ? value : [value]) {\n params.append(name, String(item));\n }\n }\n const text = params.toString();\n return text === \"\" ? \"\" : `?${text}`;\n}\n","/** The one place requests are made: credentials, errors as exceptions, one retry, streams. */\n\nimport { fromResponse } from \"./errors.js\";\nimport { readEvents, type ServerSentEvent } from \"./sse.js\";\nimport { search, type QueryParams } from \"./url.js\";\n\nexport const ORG_HEADER = \"SignalCore-Org\";\nexport const VISITOR_HEADER = \"SignalCore-Visitor\";\n\nexport type Fetch = typeof globalThis.fetch;\n\nexport interface HttpOptions {\n baseUrl: string;\n /** Sent with every request: the key, who is calling, which business to act as. */\n headers: Readonly<Record<string, string>>;\n timeoutMs: number;\n /** Replaces the network, to run against a fake in tests. */\n fetch?: Fetch | undefined;\n}\n\nexport interface RequestOptions {\n query?: QueryParams | undefined;\n /** Sent as JSON. */\n body?: unknown;\n /** Sent as multipart, which sets its own content type. */\n form?: FormData | undefined;\n /** Sent as it is: a file, with the content type it has. */\n file?: { data: BodyInit; contentType: string } | undefined;\n headers?: Readonly<Record<string, string>> | undefined;\n redirect?: RequestRedirect | undefined;\n /** Streams only: aborting it hangs up on the server and ends the stream with its reason. */\n signal?: AbortSignal | undefined;\n}\n\n/** Sends requests for every resource. */\nexport class Http {\n private readonly baseUrl: string;\n private readonly fetch: Fetch;\n\n constructor(private readonly options: HttpOptions) {\n this.baseUrl = options.baseUrl.replace(/\\/+$/, \"\");\n // Looked up at each call, so a fetch installed later is the one used.\n this.fetch = options.fetch ?? ((input, init) => globalThis.fetch(input, init));\n }\n\n /**\n * The JSON the API answers with; undefined when it answers with nothing (204). The caller\n * names the shape: the contract types it.\n */\n async request<T>(method: string, path: string, options: RequestOptions = {}): Promise<T> {\n const text = await (await this.send(method, path, options)).text();\n return (text === \"\" ? undefined : JSON.parse(text)) as T;\n }\n\n /**\n * The response of a request that succeeded; an error response is thrown.\n *\n * A GET is sent again once when the network failed: nothing reached the server, and reading\n * twice changes nothing. Nothing else is ever retried, nor is a slow answer.\n */\n async send(method: string, path: string, options: RequestOptions = {}): Promise<Response> {\n const attempt = () =>\n this.dispatch(method, path, options, AbortSignal.timeout(this.options.timeoutMs));\n let response: Response;\n try {\n response = await attempt();\n } catch (error) {\n if (method !== \"GET\" || !(error instanceof TypeError)) throw error;\n response = await attempt();\n }\n return await orThrow(response);\n }\n\n /**\n * The events of a Server-Sent Events response, as they arrive.\n *\n * The timeout is for the server to start answering: a stream may then stay quiet while the\n * server works. Stop iterating to hang up early, or abort `options.signal` to hang up at once:\n * the stream then throws the signal's reason (an `AbortError`).\n */\n async *stream(\n method: string,\n path: string,\n options: RequestOptions = {},\n ): AsyncGenerator<ServerSentEvent, void> {\n const hangUp = new AbortController();\n const signal =\n options.signal === undefined\n ? hangUp.signal\n : AbortSignal.any([hangUp.signal, options.signal]);\n const timer = setTimeout(() => {\n hangUp.abort(new DOMException(\"The server did not answer in time\", \"TimeoutError\"));\n }, this.options.timeoutMs);\n try {\n const headers = {\n Accept: \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n ...options.headers,\n };\n const answer = await this.dispatch(method, path, { ...options, headers }, signal);\n clearTimeout(timer);\n const { body } = await orThrow(answer);\n if (body === null) throw new Error(\"The server answered a stream with no body\");\n yield* readEvents(body);\n } finally {\n clearTimeout(timer);\n hangUp.abort();\n }\n }\n\n private dispatch(\n method: string,\n path: string,\n options: RequestOptions,\n signal: AbortSignal,\n ): Promise<Response> {\n const headers = { Accept: \"application/json\", ...this.options.headers, ...options.headers };\n const init: RequestInit = { method, headers, signal };\n if (options.body !== undefined) {\n init.body = JSON.stringify(options.body);\n init.headers = { ...headers, \"Content-Type\": \"application/json\" };\n } else if (options.form !== undefined) {\n init.body = options.form;\n } else if (options.file !== undefined) {\n init.body = options.file.data;\n init.headers = { ...headers, \"Content-Type\": options.file.contentType };\n }\n if (options.redirect !== undefined) init.redirect = options.redirect;\n return this.fetch(`${this.baseUrl}${path}${search(options.query)}`, init);\n }\n}\n\n/** The response, unless it is an error: then the error it describes, thrown. */\nasync function orThrow(response: Response): Promise<Response> {\n if (response.status >= 400) throw await fromResponse(response);\n return response;\n}\n","/** Who the client acts as, and the headers that say so. */\n\nimport { VISITOR_HEADER } from \"./http.js\";\n\n/**\n * Exactly one of: a secret key (your servers), a token minted for a person of your product, or\n * a publishable key with the id the visitor's browser keeps (the last two are for browsers).\n */\nexport type Credential =\n { apiKey: string } | { endUserToken: string } | { publishableKey: string; visitorId: string };\n\n/** The credential fields of the client's options, as the caller wrote them. */\nexport interface CredentialOptions {\n /** A secret key (`sk_live_...`). Else `SIGNALCORE_API_KEY`, where there is one. */\n apiKey?: string;\n /** A token your backend minted with `endUsers.mintToken`, for one person. */\n endUserToken?: string;\n /** A key made with `publishableKeys.create`, which works only from the pages it lists. */\n publishableKey?: string;\n /** With `publishableKey`: the id the visitor's browser keeps, 8 to 128 characters. */\n visitorId?: string;\n}\n\n/** The one credential the options name, or else the key the environment has. */\nexport function credentialOf(\n options: CredentialOptions,\n apiKeyFromEnvironment?: string,\n): Credential {\n const passed = (\n [\n [\"apiKey\", options.apiKey],\n [\"endUserToken\", options.endUserToken],\n [\"publishableKey\", options.publishableKey],\n ] as const\n ).filter(([, value]) => value !== undefined && value !== \"\");\n if (passed.length > 1) {\n const names = passed.map(([name]) => name).join(\", \");\n throw new Error(`Pass one of apiKey, endUserToken or publishableKey, not ${names}`);\n }\n const { endUserToken, publishableKey, visitorId } = options;\n if (visitorId !== undefined && visitorId !== \"\" && !publishableKey) {\n throw new Error(\"visitorId goes with publishableKey\");\n }\n if (publishableKey) {\n if (visitorId === undefined || visitorId === \"\") {\n throw new Error(\"A publishableKey needs the visitorId the browser keeps\");\n }\n return { publishableKey, visitorId };\n }\n if (endUserToken) return { endUserToken };\n const apiKey = options.apiKey || apiKeyFromEnvironment;\n if (apiKey === undefined || apiKey === \"\") {\n throw new Error(\"Pass apiKey, endUserToken or publishableKey, or set SIGNALCORE_API_KEY\");\n }\n return { apiKey };\n}\n\n/** A socket carries no headers from a browser: the credential travels in its query instead. */\nexport function queryOf(credential: Credential): Record<string, string> {\n if (\"endUserToken\" in credential) return { token: credential.endUserToken };\n if (\"publishableKey\" in credential) {\n return { token: credential.publishableKey, visitor: credential.visitorId };\n }\n return { token: credential.apiKey };\n}\n\nexport function headersOf(credential: Credential): Record<string, string> {\n if (\"endUserToken\" in credential) return { Authorization: `Bearer ${credential.endUserToken}` };\n if (\"publishableKey\" in credential) {\n return {\n Authorization: `Bearer ${credential.publishableKey}`,\n [VISITOR_HEADER]: credential.visitorId,\n };\n }\n return { Authorization: `Bearer ${credential.apiKey}` };\n}\n","/**\n * Pages: every list the API returns is `items` and a `next_cursor`.\n *\n * Lists that can grow without bound page by cursor, the small ones come back whole with a null\n * cursor. Either way the generated page types fit `Page`, and `iterate` reads through them.\n */\n\n/** What a list answers with: one page of `items`, and where the next one starts. */\nexport interface Page<Item> {\n readonly items: readonly Item[];\n readonly next_cursor?: string | null;\n}\n\n/**\n * Where the page after this one starts; undefined when this was the last.\n *\n * An empty page is the last too: a run's journal always names a next cursor, to poll from.\n */\nexport function following(page: Page<unknown>): string | undefined {\n return page.items.length > 0 ? (page.next_cursor ?? undefined) : undefined;\n}\n\n/**\n * Every item of a list, fetching page after page with `fetch({ ...query, cursor })`.\n *\n * `client.iterate(client.conversations.list, { status: \"open\" })`\n */\nexport async function* iterate<Item, Query>(\n fetch: (query: Query) => Promise<Page<Item>>,\n query?: NoInfer<Omit<NonNullable<Query>, \"cursor\">>,\n): AsyncGenerator<Item, void> {\n let cursor: string | undefined;\n do {\n // A method that pages declares `cursor` in its query, and that is all added to the caller's.\n const page = await fetch({ ...query, ...(cursor === undefined ? {} : { cursor }) } as Query);\n yield* page.items;\n cursor = following(page);\n } while (cursor !== undefined);\n}\n","/** Agents: create them, edit their draft, publish, and talk to the live version. */\n\nimport type { Body, Query, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport { path } from \"../url.js\";\n\nexport class Agents {\n constructor(private readonly http: Http) {}\n\n /** The business's agents. `agents_list_agents` */\n list = (): Promise<Result<\"agents_list_agents\">> => this.http.request(\"GET\", \"/v1/agents\");\n\n /** A new agent with a draft of its own. `agents_create_agent` */\n create = (body: Body<\"agents_create_agent\">): Promise<Result<\"agents_create_agent\">> =>\n this.http.request(\"POST\", \"/v1/agents\", { body });\n\n /** An agent with its draft: the definition, files and settings in effect. `agents_get_agent` */\n get = (agentId: string): Promise<Result<\"agents_get_agent\">> =>\n this.http.request(\"GET\", path`/v1/agents/${agentId}`);\n\n /** Change what is passed and leave the rest. `agents_update_agent` */\n update = (\n agentId: string,\n body: Body<\"agents_update_agent\">,\n ): Promise<Result<\"agents_update_agent\">> =>\n this.http.request(\"PATCH\", path`/v1/agents/${agentId}`, { body });\n\n /** Merge a partial definition into the draft, recursively. `agents_update_definition` */\n updateDefinition = (\n agentId: string,\n definition: Body<\"agents_update_definition\">,\n ): Promise<Result<\"agents_update_definition\">> =>\n this.http.request(\"PATCH\", path`/v1/agents/${agentId}/definition`, { body: definition });\n\n /** The versions the agent has been through, live one included. `agents_list_versions` */\n versions = (agentId: string): Promise<Result<\"agents_list_versions\">> =>\n this.http.request(\"GET\", path`/v1/agents/${agentId}/versions`);\n\n /** How the live version's automations start. `agents_list_triggers` */\n triggers = (agentId: string): Promise<Result<\"agents_list_triggers\">> =>\n this.http.request(\"GET\", path`/v1/agents/${agentId}/triggers`);\n\n /** Make the draft live. `agents_publish` */\n publish = (agentId: string, body?: Body<\"agents_publish\">): Promise<Result<\"agents_publish\">> =>\n this.http.request(\"POST\", path`/v1/agents/${agentId}/publish`, { body });\n\n /** Every change made to the agent, newest first. `agents_list_changes` */\n changes = (agentId: string): Promise<Result<\"agents_list_changes\">> =>\n this.http.request(\"GET\", path`/v1/agents/${agentId}/changes`);\n\n /** Edit files as one change in testing; a file set to null is removed. `agents_write_change` */\n writeChange = (\n agentId: string,\n body: Body<\"agents_write_change\">,\n ): Promise<Result<\"agents_write_change\">> =>\n this.http.request(\"POST\", path`/v1/agents/${agentId}/changes`, { body });\n\n /** Make live exactly the parts this change touched. `agents_activate_change` */\n activateChange = (agentId: string, changeId: string): Promise<Result<\"agents_activate_change\">> =>\n this.http.request(\"POST\", path`/v1/agents/${agentId}/changes/${changeId}/activate`);\n\n /** Drop a change that never went live. `agents_discard_change` */\n discardChange = (agentId: string, changeId: string): Promise<Result<\"agents_discard_change\">> =>\n this.http.request(\"POST\", path`/v1/agents/${agentId}/changes/${changeId}/discard`);\n\n /** Put the parts a change touched back to what they were. `agents_undo_change` */\n undoChange = (agentId: string, changeId: string): Promise<Result<\"agents_undo_change\">> =>\n this.http.request(\"POST\", path`/v1/agents/${agentId}/changes/${changeId}/undo`);\n\n /**\n * Change one setting of a flow by hand, given where it is and what it was now.\n * `agents_change_flow_value`\n */\n changeFlowValue = (\n agentId: string,\n body: Body<\"agents_change_flow_value\">,\n ): Promise<Result<\"agents_change_flow_value\">> =>\n this.http.request(\"PATCH\", path`/v1/agents/${agentId}/flows/value`, { body });\n\n /**\n * The agent as its owner sees it: automations, skills, apps and what it knows.\n * `agents_get_overview`\n */\n overview = (agentId: string): Promise<Result<\"agents_get_overview\">> =>\n this.http.request(\"GET\", path`/v1/agents/${agentId}/overview`);\n\n /** What the agent's automations showed the owner, newest first. `agents_get_feed` */\n feed = (agentId: string, query?: Query<\"agents_get_feed\">): Promise<Result<\"agents_get_feed\">> =>\n this.http.request(\"GET\", path`/v1/agents/${agentId}/feed`, { query });\n\n /** Everything that happened to the agent, newest first. `agents_get_history` */\n history = (\n agentId: string,\n query?: Query<\"agents_get_history\">,\n ): Promise<Result<\"agents_get_history\">> =>\n this.http.request(\"GET\", path`/v1/agents/${agentId}/history`, { query });\n\n /**\n * Talk to the live agent. Pass `input`, or the `action` a user took on a surface.\n *\n * A `thread` is a conversation you name: the agent remembers it across calls. The answer's\n * `status` is `answered`, `waiting` (the run paused for the owner: resolve `waiting_for` and\n * follow the run), `retrying` (the attempt failed and goes on in the background: follow\n * `run_id`) or `taken_over` (a person holds the conversation). `invoke_invoke`\n */\n invoke = (agentId: string, body: Body<\"invoke_invoke\">): Promise<Result<\"invoke_invoke\">> =>\n this.http.request(\"POST\", path`/v1/agents/${agentId}/invoke`, { body });\n}\n","/** API keys: how software calls SignalCore as the business. */\n\nimport type { Body, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport { path } from \"../url.js\";\n\n/**\n * Keys are made and revoked by a person: an API key calling `create` or `revoke` is refused\n * (403), so use the web app for those.\n */\nexport class ApiKeys {\n constructor(private readonly http: Http) {}\n\n /** The business's keys, without their secrets. `api_keys_keys` */\n list = (): Promise<Result<\"api_keys_keys\">> => this.http.request(\"GET\", \"/v1/api-keys\");\n\n /**\n * A new key; its secret is in the answer and never shown again.\n *\n * `scopes` are `<family>:read` or `<family>:write` (writing includes reading), like\n * `agents:read`, or `admin` for everything, which is also what none means. `api_keys_create`\n */\n create = (body: Body<\"api_keys_create\">): Promise<Result<\"api_keys_create\">> =>\n this.http.request(\"POST\", \"/v1/api-keys\", { body });\n\n /** Stop a key from working. `api_keys_revoke` */\n revoke = (keyId: string): Promise<Result<\"api_keys_revoke\">> =>\n this.http.request(\"DELETE\", path`/v1/api-keys/${keyId}`);\n}\n","/** The business's plan: the one it is on, and how much of it is used. */\n\nimport type { Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\n\nexport class Billing {\n constructor(private readonly http: Http) {}\n\n /** The subscription, its plan, and how many agents are in use. `billing_get_billing` */\n get = (): Promise<Result<\"billing_get_billing\">> => this.http.request(\"GET\", \"/v1/billing\");\n}\n","/** The browser sessions agents drive, as their owner watches them. */\n\nimport type { Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport { path } from \"../url.js\";\n\nexport class Browser {\n constructor(private readonly http: Http) {}\n\n /** Where a session is: its page, title and live view. `browser_get_session` */\n get = (sessionId: string): Promise<Result<\"browser_get_session\">> =>\n this.http.request(\"GET\", path`/v1/browser/sessions/${sessionId}`);\n\n /** The page right now, as PNG bytes. `browser_screenshot` */\n screenshot = async (sessionId: string): Promise<Uint8Array> => {\n const response = await this.http.send(\n \"GET\",\n path`/v1/browser/sessions/${sessionId}/screenshot`,\n );\n return new Uint8Array(await response.arrayBuffer());\n };\n\n /** Close a session. `browser_close` */\n close = (sessionId: string): Promise<Result<\"browser_close\">> =>\n this.http.request(\"POST\", path`/v1/browser/sessions/${sessionId}/close`);\n}\n","/** The builder: chat with the assistant that writes an agent's code, a session at a time. */\n\nimport type { Body, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport type { ServerSentEvent } from \"../sse.js\";\nimport { path } from \"../url.js\";\n\n/**\n * One step of a builder turn (text, tool use, cards, and a last `done`). The turns are free-form\n * events, so only their `type` is known.\n */\nexport interface BuilderEvent {\n type: string;\n [field: string]: unknown;\n}\n\nexport class BuildSessions {\n constructor(private readonly http: Http) {}\n\n /** Start a conversation, on `model` or the default one. `builder_start_session` */\n create = (\n agentId: string,\n body?: Body<\"builder_start_session\">,\n ): Promise<Result<\"builder_start_session\">> =>\n this.http.request(\"POST\", path`/v1/agents/${agentId}/build/sessions`, { body });\n\n /** The agent's build conversations, newest first. `builder_list_sessions` */\n list = (agentId: string): Promise<Result<\"builder_list_sessions\">> =>\n this.http.request(\"GET\", path`/v1/agents/${agentId}/build/sessions`);\n\n /** A conversation replayed in the vocabulary `say` streams. `builder_history` */\n history = (agentId: string, sessionId: string): Promise<Result<\"builder_history\">> =>\n this.http.request(\"GET\", path`/v1/agents/${agentId}/build/sessions/${sessionId}/history`);\n\n /**\n * One turn, as its events arrive: text, tool use, cards, and a last `done`.\n *\n * A turn can take minutes. To interrupt it, `break` out of the loop, or pass a `signal` and\n * abort it: the connection closes at once, even while nothing is arriving, and the iterator\n * throws the signal's reason. `builder_say`\n */\n say = (\n agentId: string,\n sessionId: string,\n message: string,\n options: { signal?: AbortSignal } = {},\n ): AsyncGenerator<BuilderEvent, void> =>\n builderEvents(\n this.http.stream(\"POST\", path`/v1/agents/${agentId}/build/sessions/${sessionId}/messages`, {\n body: { message },\n signal: options.signal,\n }),\n );\n}\n\nexport class Build {\n readonly sessions: BuildSessions;\n\n constructor(private readonly http: Http) {\n this.sessions = new BuildSessions(http);\n }\n\n /** The models a conversation may run on, the default first. `builder_list_models` */\n models = (agentId: string): Promise<Result<\"builder_list_models\">> =>\n this.http.request(\"GET\", path`/v1/agents/${agentId}/build/models`);\n}\n\nasync function* builderEvents(\n frames: AsyncIterable<ServerSentEvent>,\n): AsyncGenerator<BuilderEvent, void> {\n for await (const frame of frames) yield frame.json() as BuilderEvent;\n}\n","/** Channels: where an agent talks to customers (WhatsApp, Instagram, phone, SMS, email). */\n\nimport type { Body, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport { path } from \"../url.js\";\n\nexport class Channels {\n constructor(private readonly http: Http) {}\n\n /** The channels connected to the agent. `channels_list_channels` */\n list = (agentId: string): Promise<Result<\"channels_list_channels\">> =>\n this.http.request(\"GET\", path`/v1/agents/${agentId}/channels`);\n\n /** Change a channel's settings, such as `reply_delay_s`. `channels_tune_channel` */\n tune = (\n agentId: string,\n connectionId: string,\n settings: Body<\"channels_tune_channel\">,\n ): Promise<Result<\"channels_tune_channel\">> =>\n this.http.request(\"PATCH\", path`/v1/agents/${agentId}/channels/${connectionId}`, {\n body: settings,\n });\n\n /** Take a channel away from the agent. `channels_disconnect_channel` */\n disconnect = (\n agentId: string,\n connectionId: string,\n ): Promise<Result<\"channels_disconnect_channel\">> =>\n this.http.request(\"DELETE\", path`/v1/agents/${agentId}/channels/${connectionId}`);\n\n /** Connect a WhatsApp Cloud API number. `channels_connect_whatsapp` */\n connectWhatsapp = (\n agentId: string,\n body: Body<\"channels_connect_whatsapp\">,\n ): Promise<Result<\"channels_connect_whatsapp\">> =>\n this.http.request(\"POST\", path`/v1/agents/${agentId}/channels/whatsapp`, { body });\n\n /** What the browser needs to open Meta's Embedded Signup. `channels_signup_config` */\n whatsappSignupConfig = (): Promise<Result<\"channels_signup_config\">> =>\n this.http.request(\"GET\", \"/v1/channels/whatsapp/signup-config\");\n\n /**\n * Finish the signup Meta's dialog started: the number joins the agent.\n * `channels_embedded_signup`\n */\n whatsappEmbeddedSignup = (\n body: Body<\"channels_embedded_signup\">,\n ): Promise<Result<\"channels_embedded_signup\">> =>\n this.http.request(\"POST\", \"/v1/channels/whatsapp/embedded-signup\", { body });\n\n /** The approved message templates known for a channel. `channels_list_templates` */\n templates = (connectionId: string): Promise<Result<\"channels_list_templates\">> =>\n this.http.request(\"GET\", path`/v1/channels/${connectionId}/templates`);\n\n /** Fetch the provider's approved templates again. `channels_refresh_templates` */\n refreshTemplates = (connectionId: string): Promise<Result<\"channels_refresh_templates\">> =>\n this.http.request(\"POST\", path`/v1/channels/${connectionId}/templates/refresh`);\n\n /** Connect an Instagram account. `channels_connect_instagram` */\n connectInstagram = (\n agentId: string,\n body: Body<\"channels_connect_instagram\">,\n ): Promise<Result<\"channels_connect_instagram\">> =>\n this.http.request(\"POST\", path`/v1/agents/${agentId}/channels/instagram`, { body });\n\n /** Connect a Twilio number; paste the answer's `webhook_url` into Twilio. `sms_connect_twilio` */\n connectSms = (body: Body<\"sms_connect_twilio\">): Promise<Result<\"sms_connect_twilio\">> =>\n this.http.request(\"POST\", \"/v1/sms/twilio/connections\", { body });\n\n /** A phone line (Vapi) for the agent; attach numbers to it next. `voice_connect_vapi` */\n connectVoice = (body: Body<\"voice_connect_vapi\">): Promise<Result<\"voice_connect_vapi\">> =>\n this.http.request(\"POST\", \"/v1/voice/vapi/connections\", { body });\n\n /** The numbers attached to a phone line. `voice_list_numbers` */\n voiceNumbers = (connectionId: string): Promise<Result<\"voice_list_numbers\">> =>\n this.http.request(\"GET\", path`/v1/voice/vapi/connections/${connectionId}/numbers`);\n\n /**\n * Attach a number already in the Vapi account (`phone_number_id`), or bring one from a SIP\n * provider (`number` in E.164, with its `sip` trunk). `voice_attach_number`\n */\n attachNumber = (\n connectionId: string,\n body: Body<\"voice_attach_number\">,\n ): Promise<Result<\"voice_attach_number\">> =>\n this.http.request(\"POST\", path`/v1/voice/vapi/connections/${connectionId}/numbers`, { body });\n\n /**\n * Connect a mailbox: one login proves the credentials, then polling starts.\n * `email_connect_mailbox`\n */\n connectEmail = (body: Body<\"email_connect_mailbox\">): Promise<Result<\"email_connect_mailbox\">> =>\n this.http.request(\"POST\", \"/v1/email/connections\", { body });\n\n /** Fetch what is new in a mailbox right now. `email_poll_mailbox` */\n pollEmail = (connectionId: string): Promise<Result<\"email_poll_mailbox\">> =>\n this.http.request(\"POST\", path`/v1/email/connections/${connectionId}/poll`);\n}\n","/** Connected accounts: the apps and channels the business has linked. */\n\nimport type { Body, Query, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport { path } from \"../url.js\";\n\nexport class Connections {\n constructor(private readonly http: Http) {}\n\n /**\n * Everything linked, apps and channels, with the agents using each.\n * `connections_list_connections`\n */\n list = (): Promise<Result<\"connections_list_connections\">> =>\n this.http.request(\"GET\", \"/v1/connections\");\n\n /** One connection: where its authorization stands, who uses it. `connections_get_connection` */\n get = (connectionId: string): Promise<Result<\"connections_get_connection\">> =>\n this.http.request(\"GET\", path`/v1/connections/${connectionId}`);\n\n /**\n * Apps the owner can connect, the popular first or those matching `q`, of one `kind`\n * (`email`, `crm`...). `connections_search_apps`\n */\n searchApps = (\n query?: Query<\"connections_search_apps\">,\n ): Promise<Result<\"connections_search_apps\">> =>\n this.http.request(\"GET\", \"/v1/apps/search\", { query });\n\n /**\n * Start connecting an app. The owner authorizes it at the answer's `url`; then call\n * `refresh`. `connections_connect_app`\n */\n connectApp = (\n body: Body<\"connections_connect_app\">,\n ): Promise<Result<\"connections_connect_app\">> =>\n this.http.request(\"POST\", \"/v1/connections/apps\", { body });\n\n /**\n * Connect the business's own MCP server; its tools become an app agents can use.\n * `connections_connect_mcp`\n */\n connectMcp = (\n body: Body<\"connections_connect_mcp\">,\n ): Promise<Result<\"connections_connect_mcp\">> =>\n this.http.request(\"POST\", \"/v1/connections/mcp\", { body });\n\n /**\n * A fresh `url` where the owner authorizes an app that is still pending: a consent link is\n * good for one attempt and expires. Empty once the app is active. `connections_authorize`\n */\n authorize = (connectionId: string): Promise<Result<\"connections_authorize\">> =>\n this.http.request(\"POST\", path`/v1/connections/${connectionId}/authorize`);\n\n /** Ask the provider whether the owner finished authorizing. `connections_refresh` */\n refresh = (connectionId: string): Promise<Result<\"connections_refresh\">> =>\n this.http.request(\"POST\", path`/v1/connections/${connectionId}/refresh`);\n\n /** List the connection's actions at the provider again. `connections_refresh_actions` */\n refreshActions = (connectionId: string): Promise<Result<\"connections_refresh_actions\">> =>\n this.http.request(\"POST\", path`/v1/connections/${connectionId}/actions/refresh`);\n}\n","/** The business's people: who they are, how they are reached, what happened with them. */\n\nimport type { Body, Query, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport { path } from \"../url.js\";\n\nexport class Contacts {\n constructor(private readonly http: Http) {}\n\n /**\n * Contacts by most recent activity. `q` matches a name, a phone or an email, and `tags` keeps\n * those carrying all of them. `contacts_list_contacts`\n */\n list = (query?: Query<\"contacts_list_contacts\">): Promise<Result<\"contacts_list_contacts\">> =>\n this.http.request(\"GET\", \"/v1/contacts\", { query });\n\n /**\n * Everything known about one person: identities, conversations, timeline, records.\n * `contacts_read_contact`\n */\n get = (contactId: string): Promise<Result<\"contacts_read_contact\">> =>\n this.http.request(\"GET\", path`/v1/contacts/${contactId}`);\n\n /** Change what is passed and leave the rest. `contacts_update_contact` */\n update = (\n contactId: string,\n body: Body<\"contacts_update_contact\">,\n ): Promise<Result<\"contacts_update_contact\">> =>\n this.http.request(\"PATCH\", path`/v1/contacts/${contactId}`, { body });\n}\n","/** Conversations as the team reads and takes them: list, read, answer, take over, close. */\n\nimport type { Body, Query, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport { path } from \"../url.js\";\n\nexport class Conversations {\n constructor(private readonly http: Http) {}\n\n /**\n * The business's conversations, most recent first; `next_cursor` pages further back.\n * `conversations_list_conversations`\n */\n list = (\n query?: Query<\"conversations_list_conversations\">,\n ): Promise<Result<\"conversations_list_conversations\">> =>\n this.http.request(\"GET\", \"/v1/conversations\", { query });\n\n /** A conversation with its latest messages, oldest first. `conversations_read_conversation` */\n get = (\n conversationId: string,\n query?: Query<\"conversations_read_conversation\">,\n ): Promise<Result<\"conversations_read_conversation\">> =>\n this.http.request(\"GET\", path`/v1/conversations/${conversationId}`, { query });\n\n /**\n * Older messages: pass the previous page's `next_cursor` as `cursor`.\n * `conversations_read_messages`\n */\n messages = (\n conversationId: string,\n query?: Query<\"conversations_read_messages\">,\n ): Promise<Result<\"conversations_read_messages\">> =>\n this.http.request(\"GET\", path`/v1/conversations/${conversationId}/messages`, { query });\n\n /**\n * A person answers: it goes out through the channel, and the agent steps back.\n * `conversations_reply`\n */\n reply = (\n conversationId: string,\n body: Body<\"conversations_reply\">,\n ): Promise<Result<\"conversations_reply\">> =>\n this.http.request(\"POST\", path`/v1/conversations/${conversationId}/messages`, { body });\n\n /** The team takes the conversation from the agent. `conversations_take_over` */\n takeover = (conversationId: string): Promise<Result<\"conversations_take_over\">> =>\n this.http.request(\"POST\", path`/v1/conversations/${conversationId}/takeover`);\n\n /** Hand the conversation back to the agent. `conversations_release` */\n release = (conversationId: string): Promise<Result<\"conversations_release\">> =>\n this.http.request(\"POST\", path`/v1/conversations/${conversationId}/release`);\n\n /** Close the conversation. `conversations_close` */\n close = (conversationId: string): Promise<Result<\"conversations_close\">> =>\n this.http.request(\"POST\", path`/v1/conversations/${conversationId}/close`);\n}\n","/** The knowledge base: documents the agents consult while answering. */\n\nimport type { Body, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport { path } from \"../url.js\";\n\n/** Whose documents: with an `agent_id`, that agent's view; without, the business's own. */\nexport interface Scope {\n agent_id?: string;\n}\n\nexport interface FileOptions extends Scope {\n /** For a Blob that is not a File, which has a name of its own. */\n filename?: string;\n /** Whether other agents may consult it too (an agent's documents only); the default is yes. */\n shared?: boolean;\n}\n\n/**\n * Documents belong to the business, shared with every agent. With an `agent_id` they are the\n * agent's view instead: what it may consult, and where to add for it alone (`shared: false`). A\n * new document reads `processing` until its vectors are written.\n */\nexport class Documents {\n constructor(private readonly http: Http) {}\n\n /**\n * The business's documents, or those an agent may consult.\n * `knowledge_list_business_documents`, `knowledge_list_documents`\n */\n list = (\n scope: Scope = {},\n ): Promise<Result<\"knowledge_list_business_documents\" | \"knowledge_list_documents\">> =>\n this.http.request(\"GET\", documentsPath(scope.agent_id));\n\n /** Add text as a document. `knowledge_add_business_text`, `knowledge_add_text` */\n addText = ({\n agent_id,\n ...body\n }: Body<\"knowledge_add_text\"> & Scope): Promise<\n Result<\"knowledge_add_business_text\" | \"knowledge_add_text\">\n > => this.http.request(\"POST\", documentsPath(agent_id, \"text\"), { body });\n\n /** Read a page as a document. `knowledge_add_business_url`, `knowledge_add_url` */\n addUrl = ({\n agent_id,\n ...body\n }: Body<\"knowledge_add_url\"> & Scope): Promise<\n Result<\"knowledge_add_business_url\" | \"knowledge_add_url\">\n > => this.http.request(\"POST\", documentsPath(agent_id, \"url\"), { body });\n\n /**\n * Upload a file: a `File` from a form, or a `Blob` of bytes (in Node, `fs.openAsBlob(path)`).\n * `knowledge_upload_to_business`, `knowledge_upload`\n */\n addFile = (\n file: Blob,\n { agent_id, filename, shared }: FileOptions = {},\n ): Promise<Result<\"knowledge_upload_to_business\" | \"knowledge_upload\">> => {\n const form = new FormData();\n form.append(\"file\", file, filename);\n if (shared !== undefined) form.append(\"shared\", String(shared));\n return this.http.request(\"POST\", documentsPath(agent_id, \"file\"), { form });\n };\n\n /** Remove a document. `knowledge_remove_from_business`, `knowledge_remove` */\n delete = (\n documentId: string,\n scope: Scope = {},\n ): Promise<Result<\"knowledge_remove_from_business\" | \"knowledge_remove\">> =>\n this.http.request(\"DELETE\", documentsPath(scope.agent_id, documentId));\n\n /** What the agent made of a long document, as Markdown. `knowledge_get_reading` */\n reading = async (documentId: string): Promise<string> => {\n const response = await this.http.send(\"GET\", path`/v1/documents/${documentId}/reading`);\n return await response.text();\n };\n}\n\nfunction documentsPath(agentId: string | undefined, ...tail: string[]): string {\n const base = agentId === undefined ? \"/v1/documents\" : path`/v1/agents/${agentId}/documents`;\n return [base, ...tail.map(encodeURIComponent)].join(\"/\");\n}\n","/** End users: let the people who use your product talk to your agents from their browser. */\n\nimport type { Body, Query, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport { path } from \"../url.js\";\n\n/**\n * Your backend asks for a token for a person it knows and gives it to their browser, which\n * builds its client with `endUserToken`. Your secret key never leaves your servers.\n */\nexport class EndUsers {\n constructor(private readonly http: Http) {}\n\n /**\n * A token for one of your people, with the contact the business keeps about them.\n *\n * `external_id` is your id for the person: the same id is the same contact, and the name,\n * email and phone you pass update it. `agent_ids` limits the token to those agents (none:\n * every live one). `ttl_seconds` is how long it works: an hour, at most a day.\n * `end_users_mint_token`\n */\n mintToken = (body: Body<\"end_users_mint_token\">): Promise<Result<\"end_users_mint_token\">> =>\n this.http.request(\"POST\", \"/v1/end-users/tokens\", { body });\n\n /**\n * The caller's own conversation in `thread`, for a chat to draw: the latest messages, oldest\n * first. Older ones come from `conversations.messages` with the answer's `next_cursor`. Only a\n * client holding an end user's token or a publishable key has one (anyone else is refused);\n * until they have spoken it is not found. Pass `agent_id` when the thread is with several.\n * `end_users_my_conversation`\n */\n myConversation = (\n thread: string,\n query?: Query<\"end_users_my_conversation\">,\n ): Promise<Result<\"end_users_my_conversation\">> =>\n this.http.request(\"GET\", path`/v1/end-users/me/conversations/${thread}`, { query });\n}\n","/** The business's files in object storage: invoices agents generate, images customers sent. */\n\nimport type { Query, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\n\nexport interface PutOptions {\n /**\n * Else the type the `Blob` has, `text/plain; charset=utf-8` for a string, and\n * `application/octet-stream` for bytes.\n */\n contentType?: string;\n}\n\n/**\n * Agents write files with `sc.files`; the API lets the business list, read, write and delete\n * them too.\n */\nexport class Files {\n constructor(private readonly http: Http) {}\n\n /** The files whose name starts with `prefix`. `files_list_files` */\n list = (query?: Query<\"files_list_files\">): Promise<Result<\"files_list_files\">> =>\n this.http.request(\"GET\", \"/v1/files\", { query });\n\n /** A file's content. `files_open_file` */\n read = async (name: string): Promise<Uint8Array> => {\n const response = await this.http.send(\"GET\", filePath(name));\n return new Uint8Array(await response.arrayBuffer());\n };\n\n /**\n * A signed link to a file, good for five minutes, to hand to someone else. Browsers hide where\n * a redirect goes, so there it cannot be read: use `read`. `files_open_file`\n */\n link = async (name: string): Promise<string> => {\n const response = await this.http.send(\"GET\", filePath(name), { redirect: \"manual\" });\n const location = response.headers.get(\"location\");\n if (location === null) {\n throw new Error(\"The server gave no link, or this runtime hides redirects (browsers do)\");\n }\n return location;\n };\n\n /**\n * Write a file, or replace it. At most 25 MB. `name` is a path (`facturas/2026/enero.pdf`).\n * `files_put_file`\n */\n put = (\n name: string,\n body: Blob | Uint8Array | string,\n options: PutOptions = {},\n ): Promise<Result<\"files_put_file\">> =>\n this.http.request(\"PUT\", filePath(name), {\n file: { data: asBody(body), contentType: options.contentType ?? contentTypeOf(body) },\n });\n\n /** Remove a file. One that is not there is already gone: no error. `files_delete_file` */\n delete = (name: string): Promise<Result<\"files_delete_file\">> =>\n this.http.request(\"DELETE\", filePath(name));\n}\n\n/** Bytes go as a copy: `fetch` refuses a view over a shared buffer, which a `Buffer` may be. */\nfunction asBody(body: Blob | Uint8Array | string): BodyInit {\n return body instanceof Uint8Array ? new Uint8Array(body) : body;\n}\n\nfunction contentTypeOf(body: Blob | Uint8Array | string): string {\n if (typeof body === \"string\") return \"text/plain; charset=utf-8\";\n return body instanceof Blob && body.type !== \"\" ? body.type : \"application/octet-stream\";\n}\n\n/** Names may hold slashes, which stay; every part is escaped. */\nfunction filePath(name: string): string {\n return `/v1/files/${name.replace(/^\\/+/, \"\").split(\"/\").map(encodeURIComponent).join(\"/\")}`;\n}\n","/** How a live socket ends: the close code says whether it was the stream's end, a refusal or a drop. */\n\nimport { ForbiddenError, NotFoundError, UnauthenticatedError } from \"../errors.js\";\n\nconst CLOSED = 1000; // the stream ended\nconst UNAUTHENTICATED = 4401;\nconst FORBIDDEN = 4403;\nconst NOT_FOUND = 4404;\n\n/**\n * The connection ended, and the stream did not: the network dropped, a proxy cut it, the server\n * restarted. Connecting again may well work, unlike after a refusal.\n */\nexport class ConnectionLostError extends Error {\n override readonly name = \"ConnectionLostError\";\n /** What the socket closed with; 1006 is a drop without a word. */\n readonly closeCode: number;\n\n constructor(closeCode: number) {\n super(`The live connection closed (${closeCode})`);\n this.closeCode = closeCode;\n }\n}\n\n/** Why a socket that closed with `code` ended badly; undefined when the stream simply ended. */\nexport function failureOf(code: number): Error | undefined {\n switch (code) {\n case CLOSED:\n return undefined;\n case UNAUTHENTICATED:\n return new UnauthenticatedError({\n status: 401,\n code: \"unauthenticated\",\n detail: \"Sign in required\",\n });\n case FORBIDDEN:\n return new ForbiddenError({\n status: 403,\n code: \"forbidden\",\n detail: \"This credential lacks the runs:read scope that watching a stream takes\",\n });\n case NOT_FOUND:\n return new NotFoundError({\n status: 404,\n code: \"not_found\",\n detail: \"There is no such live stream\",\n });\n default:\n return new ConnectionLostError(code);\n }\n}\n","/** What the socket says: the stream's first frame, and the pictures that follow. */\n\n/** What a stream is, told once as its first frame. */\nexport interface LiveInfo {\n /** `frames` today: JPEG stills. */\n kind: string;\n width: number;\n height: number;\n /** Whether the stream takes input at all; whether it does right now is the producer's call. */\n input: boolean;\n}\n\n/** One picture. `bytes` is the JPEG. */\nexport interface LiveFrame {\n /** Counts up; a gap means the stream skipped pictures for a slow reader. */\n sequence: number;\n bytes: Uint8Array;\n}\n\nconst HEADER_BYTES = 8; // uint32 sequence, uint32 length, big endian\n\n/** The picture in a binary message, or undefined when the message is not one. */\nexport function decodeFrame(data: ArrayBuffer): LiveFrame | undefined {\n if (data.byteLength < HEADER_BYTES) return undefined;\n const header = new DataView(data);\n const length = header.getUint32(4);\n if (length !== data.byteLength - HEADER_BYTES) return undefined;\n return { sequence: header.getUint32(0), bytes: new Uint8Array(data, HEADER_BYTES, length) };\n}\n\n/** The stream's first frame in a text message, or undefined for any other (a `{\"ping\": true}`). */\nexport function decodeInfo(text: string): LiveInfo | undefined {\n let message: unknown;\n try {\n message = JSON.parse(text);\n } catch {\n return undefined;\n }\n if (typeof message !== \"object\" || message === null) return undefined;\n const { kind, width, height, input } = message as Record<string, unknown>;\n if (typeof kind !== \"string\" || !isSize(width) || !isSize(height)) return undefined;\n return { kind, width, height, input: input === true };\n}\n\nfunction isSize(value: unknown): value is number {\n return typeof value === \"number\" && Number.isFinite(value) && value > 0;\n}\n","/** A slot for the newest thing, for a reader that may be slower than the writer. */\n\nconst FINISHED = Symbol(\"finished\");\n\ntype Ending = typeof FINISHED | { error: unknown };\n\n/**\n * Holds the newest item and nothing else: an item that arrives while another is still unread\n * replaces it, so a slow reader skips to the present instead of falling behind. One reader.\n * After `finish` or `fail`, the reader still gets the item it has not read, then the end.\n */\nexport class Latest<Item extends object> {\n private held: Item | undefined;\n private ending: Ending | undefined;\n private wake: (() => void) | undefined;\n\n put(item: Item): void {\n if (this.ending !== undefined) return;\n this.held = item;\n this.wake?.();\n }\n\n /** No more items: the reader is done after the one it has not read. */\n finish(): void {\n this.end(FINISHED);\n }\n\n /** No more items: the reader throws `error` after the one it has not read. */\n fail(error: unknown): void {\n this.end({ error });\n }\n\n /** The newest unread item; waits for one. Done when the writer finished, else throws. */\n async read(): Promise<IteratorResult<Item, undefined>> {\n for (;;) {\n if (this.held !== undefined) {\n const value = this.held;\n this.held = undefined;\n return { done: false, value };\n }\n const { ending } = this;\n if (ending !== undefined) {\n this.ending = FINISHED; // an error is told once\n if (ending === FINISHED) return { done: true, value: undefined };\n throw ending.error;\n }\n await new Promise<void>((resolve) => {\n this.wake = resolve;\n });\n this.wake = undefined;\n }\n }\n\n private end(ending: Ending): void {\n if (this.ending !== undefined) return;\n this.ending = ending;\n this.wake?.();\n }\n}\n","/** The part of a WebSocket the client uses, so any class that has it can stand in for the global one. */\n\n// WebSocket.readyState\nexport const CONNECTING = 0;\nexport const OPEN = 1;\n\nexport interface LiveSocket {\n binaryType: string;\n readonly readyState: number;\n send: (data: string) => void;\n close: (code?: number) => void;\n addEventListener(type: \"message\", listener: (event: { data: unknown }) => void): void;\n addEventListener(type: \"close\", listener: (event: { code: number }) => void): void;\n addEventListener(type: \"error\", listener: (event: unknown) => void): void;\n}\n\n/** What opens a connection: the browser's or Node's `WebSocket`, the `ws` package's class, a fake. */\nexport type SocketConstructor = new (url: string) => LiveSocket;\n\n/** The runtime's own WebSocket; Node has one from version 22. */\nexport function globalSocket(): SocketConstructor {\n const found = (globalThis as { WebSocket?: SocketConstructor }).WebSocket;\n if (found === undefined) {\n throw new Error(\n \"This runtime has no WebSocket: use Node 22 or newer, or pass `webSocket` \" +\n \"(the class of the `ws` package works)\",\n );\n }\n return found;\n}\n","/** A live stream, watched over its socket: the first frame, the pictures and the input back. */\n\nimport { ConnectionLostError, failureOf } from \"./closure.js\";\nimport { decodeFrame, decodeInfo, type LiveFrame, type LiveInfo } from \"./frame.js\";\nimport type { LiveInput } from \"./input.js\";\nimport { Latest } from \"./latest.js\";\nimport { CONNECTING, OPEN, type LiveSocket } from \"./socket.js\";\n\nconst NORMAL_CLOSE = 1000;\nconst ABNORMAL_CLOSE = 1006; // what a browser reports when the connection was never made\n\n/**\n * What a run shows as it happens (the browser it drives, a preview its code renders), watched.\n *\n * const stream = client.live.connect(\"liv_...\");\n * const { width, height } = await stream.info;\n * for await (const { bytes } of stream) draw(bytes); // JPEGs\n *\n * Iterating gives the newest picture each time: a reader slower than the stream skips the ones\n * in between, never queues them. The iteration ends when the stream does; it throws\n * `UnauthenticatedError`, `ForbiddenError` or `NotFoundError` when the server refuses the\n * connection, and `ConnectionLostError` when it drops. Leave the loop to hang up. One reader.\n */\nexport class LiveStream implements AsyncIterable<LiveFrame> {\n /**\n * What the stream is: size, kind and whether it takes input. Settles with the first frame, or\n * rejects with what ended the stream before it came.\n */\n readonly info: Promise<LiveInfo>;\n\n private readonly frames = new Latest<LiveFrame>();\n private readonly reveal: (info: LiveInfo) => void;\n private readonly refuse: (reason: unknown) => void;\n private told = false;\n\n constructor(\n private readonly socket: LiveSocket,\n signal?: AbortSignal,\n ) {\n let reveal: (info: LiveInfo) => void = () => undefined;\n let refuse: (reason: unknown) => void = () => undefined;\n this.info = new Promise((resolve, reject) => {\n reveal = resolve;\n refuse = reject;\n });\n this.reveal = reveal;\n this.refuse = refuse;\n this.info.catch(() => undefined); // read by whoever asks; unread, it is not an unhandled error\n\n socket.binaryType = \"arraybuffer\";\n socket.addEventListener(\"message\", ({ data }) => {\n this.receive(data);\n });\n socket.addEventListener(\"close\", ({ code }) => {\n this.ended(failureOf(code));\n });\n socket.addEventListener(\"error\", () => {\n // Once open, the close that follows says why. A connection that could not be made is\n // followed by one in browsers, but not in Node's own WebSocket, which only reports the error.\n if (socket.readyState === CONNECTING) this.ended(new ConnectionLostError(ABNORMAL_CLOSE));\n });\n signal?.addEventListener(\n \"abort\",\n () => {\n this.stop(signal.reason);\n },\n { once: true },\n );\n }\n\n /**\n * Act on the stream: a click, a key, the wheel (`LiveInput`). Whether it is the person's turn\n * is for the stream's producer to say, and it drops what arrives out of turn; an event sent\n * before the stream is open or after it closed is dropped here.\n */\n send(input: LiveInput): void {\n if (this.socket.readyState === OPEN) this.socket.send(JSON.stringify(input));\n }\n\n /** Hang up. The iteration ends without an error. */\n close(): void {\n this.frames.finish();\n this.refuse(new DOMException(\"The live stream was closed\", \"AbortError\"));\n this.hangUp();\n }\n\n async *[Symbol.asyncIterator](): AsyncGenerator<LiveFrame, void> {\n try {\n for (;;) {\n const next = await this.frames.read();\n if (next.done) return;\n yield next.value;\n }\n } finally {\n this.close();\n }\n }\n\n private receive(data: unknown): void {\n if (typeof data === \"string\") {\n const info = this.told ? undefined : decodeInfo(data);\n if (info === undefined) return; // a ping, or something a newer server says\n this.told = true;\n this.reveal(info);\n } else if (data instanceof ArrayBuffer) {\n const frame = decodeFrame(data);\n if (frame !== undefined) this.frames.put(frame);\n }\n }\n\n private ended(failure: Error | undefined): void {\n if (failure === undefined) this.frames.finish();\n else this.frames.fail(failure);\n this.refuse(failure ?? new ConnectionLostError(NORMAL_CLOSE));\n }\n\n private stop(reason: unknown): void {\n this.frames.fail(reason);\n this.refuse(reason);\n this.hangUp();\n }\n\n private hangUp(): void {\n this.socket.close(NORMAL_CLOSE);\n }\n}\n","/** What a run shows as it happens, watched over a WebSocket. */\n\nimport { LiveStream } from \"../live/stream.js\";\nimport { globalSocket, type SocketConstructor } from \"../live/socket.js\";\nimport { path, search, type QueryParams } from \"../url.js\";\n\nexport interface ConnectOptions {\n /** Aborting it hangs up at once; the stream's iteration (and `info`, if pending) then throws the signal's reason. */\n signal?: AbortSignal;\n}\n\n/** Where streams are watched, and who is watching. */\nexport interface LiveEndpoint {\n /** The API's address, as the client has it (`https://signalcore.ai`). */\n baseUrl: string;\n /**\n * Sent on the connection's query, since a browser cannot set headers on a socket: the\n * credential as `token` (and `visitor`, for a publishable key). Nothing for a page the person\n * is signed in to: the browser sends its cookie by itself.\n */\n query?: QueryParams | undefined;\n /** Replaces the global `WebSocket`. */\n webSocket?: SocketConstructor | undefined;\n}\n\nexport class Live {\n private readonly baseUrl: string;\n\n constructor(private readonly endpoint: LiveEndpoint) {\n this.baseUrl = endpoint.baseUrl.replace(/\\/+$/, \"\");\n }\n\n /**\n * Watch a live stream (the `stream_id` a `live` surface or a browser session names). It opens\n * `wss://<api>/v1/live/<id>` with the client's credential as `?token=`, or with none when the\n * client has none (a signed-in page, where the cookie speaks for the person). A key needs the\n * `runs:read` scope; an end user watches only streams of their own runs, and never drives\n * them. See `LiveStream` for what comes back.\n */\n connect = (streamId: string, options: ConnectOptions = {}): LiveStream => {\n options.signal?.throwIfAborted();\n const Socket = this.endpoint.webSocket ?? globalSocket();\n const address = `${this.baseUrl}${path`/v1/live/${streamId}`}${search(this.endpoint.query)}`;\n return new LiveStream(new Socket(address.replace(/^http/i, \"ws\")), options.signal);\n };\n}\n","/** What an agent knows about the business, as the owner reads and corrects it. */\n\nimport type { Body, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport { path } from \"../url.js\";\n\n/**\n * Facts the agent answers from, kept in the sheet the owner reads (the API calls this family\n * `knowledge`).\n */\nexport class Memories {\n constructor(private readonly http: Http) {}\n\n /**\n * Teach the agent a fact. `topic` is where it sits in the owner's sheet: business, hours,\n * prices, services, policies, tone or other. `knowledge_add`\n */\n add = (agentId: string, body: Body<\"knowledge_add\">): Promise<Result<\"knowledge_add\">> =>\n this.http.request(\"POST\", path`/v1/agents/${agentId}/knowledge`, { body });\n\n /** Correct a fact, or move it to another topic. `knowledge_revise` */\n revise = (\n agentId: string,\n memoryId: string,\n body: Body<\"knowledge_revise\">,\n ): Promise<Result<\"knowledge_revise\">> =>\n this.http.request(\"PATCH\", path`/v1/agents/${agentId}/knowledge/${memoryId}`, { body });\n\n /** Make the agent forget a fact. `knowledge_forget` */\n forget = (agentId: string, memoryId: string): Promise<Result<\"knowledge_forget\">> =>\n this.http.request(\"DELETE\", path`/v1/agents/${agentId}/knowledge/${memoryId}`);\n}\n","/** The business the key belongs to. */\n\nimport type { Body, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\n\nexport class Org {\n constructor(private readonly http: Http) {}\n\n /** The business, with who has access. `org_get_business` */\n get = (): Promise<Result<\"org_get_business\">> => this.http.request(\"GET\", \"/v1/org\");\n\n /**\n * Change the business's name. Only a person who owns or administers the business may: an API\n * key is refused (403). `org_rename`\n */\n rename = (body: Body<\"org_rename\">): Promise<Result<\"org_rename\">> =>\n this.http.request(\"PATCH\", \"/v1/org\", { body });\n}\n","/** The businesses the caller manages: an agency's clients, an app's workspaces. */\n\nimport type { Body, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport { path } from \"../url.js\";\n\n/** Each is a full business of its own. Act as one with `client.forOrg(orgId)`. */\nexport class Orgs {\n constructor(private readonly http: Http) {}\n\n /** The businesses this one manages, oldest first. `orgs_list_orgs` */\n list = (): Promise<Result<\"orgs_list_orgs\">> => this.http.request(\"GET\", \"/v1/orgs\");\n\n /** A new business managed by this one. `orgs_create_org` */\n create = (body: Body<\"orgs_create_org\">): Promise<Result<\"orgs_create_org\">> =>\n this.http.request(\"POST\", \"/v1/orgs\", { body });\n\n /** One managed business. `orgs_get_org` */\n get = (orgId: string): Promise<Result<\"orgs_get_org\">> =>\n this.http.request(\"GET\", path`/v1/orgs/${orgId}`);\n}\n","/** The playground: try the draft as a customer would, with no customer involved. */\n\nimport type { Body, Query, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport { path } from \"../url.js\";\n\nexport class Playground {\n constructor(private readonly http: Http) {}\n\n /**\n * Send a message, or the `action` taken on a surface, to the agent's draft.\n * `playground_say`\n */\n say = (agentId: string, body: Body<\"playground_say\">): Promise<Result<\"playground_say\">> =>\n this.http.request(\"POST\", path`/v1/agents/${agentId}/playground/messages`, { body });\n\n /** The thread so far, oldest first. `playground_transcript` */\n transcript = (\n agentId: string,\n query?: Query<\"playground_transcript\">,\n ): Promise<Result<\"playground_transcript\">> =>\n this.http.request(\"GET\", path`/v1/agents/${agentId}/playground/messages`, { query });\n\n /**\n * Answer what the draft asked the tester (approve, choose, reply); the turn goes on.\n * `playground_answer`\n */\n answer = (\n agentId: string,\n requestId: string,\n body: Body<\"playground_answer\">,\n ): Promise<Result<\"playground_answer\">> =>\n this.http.request(\"POST\", path`/v1/agents/${agentId}/playground/requests/${requestId}`, {\n body,\n });\n}\n","/** Publishable keys: let visitors who are not signed in talk to your agents from your pages. */\n\nimport type { Body, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport { path } from \"../url.js\";\n\n/**\n * A key that goes in the page. It works only from the origins you list, for a visitor\n * identified by the id their browser keeps: `new Signalcore({ publishableKey, visitorId })`.\n */\nexport class PublishableKeys {\n constructor(private readonly http: Http) {}\n\n /** The keys that still work, newest first. `publishable_keys_list_keys` */\n list = (): Promise<Result<\"publishable_keys_list_keys\">> =>\n this.http.request(\"GET\", \"/v1/publishable-keys\");\n\n /**\n * A key for the pages at `allowed_origins`: exactly those, like `https://example.com` (the\n * port too when it is not the default), no wildcards. `publishable_keys_create_key`\n */\n create = (\n body: Body<\"publishable_keys_create_key\">,\n ): Promise<Result<\"publishable_keys_create_key\">> =>\n this.http.request(\"POST\", \"/v1/publishable-keys\", { body });\n\n /** Stop a key from working; pages that still use it are refused. `publishable_keys_revoke_key` */\n revoke = (keyId: string): Promise<Result<\"publishable_keys_revoke_key\">> =>\n this.http.request(\"DELETE\", path`/v1/publishable-keys/${keyId}`);\n}\n","/** Records: the business's own tables, whose kinds the agents' code declares. */\n\nimport type { Query, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport type { QueryValue } from \"../url.js\";\nimport { path } from \"../url.js\";\n\n/** `limit` and `contact_id`, and any field of the kind's schema: rows are dynamic. */\nexport type RecordFilters = Query<\"records_list_records\"> & Record<string, QueryValue>;\n\nexport class Records {\n constructor(private readonly http: Http) {}\n\n /**\n * Every kind of record the business keeps, with its schema and row count. `records_list_types`\n */\n kinds = (): Promise<Result<\"records_list_types\">> =>\n this.http.request(\"GET\", \"/v1/records/types\");\n\n /**\n * Rows of one kind, newest first. Any field of the schema filters:\n * `records.list(\"quotes\", { status: \"pending\" })`. `records_list_records`\n */\n list = (kind: string, filters?: RecordFilters): Promise<Result<\"records_list_records\">> =>\n this.http.request(\"GET\", path`/v1/records/${kind}`, { query: filters });\n\n /** Add a row, checked against the kind's schema. `records_add_record` */\n create = (kind: string, fields: Record<string, unknown>): Promise<Result<\"records_add_record\">> =>\n this.http.request(\"POST\", path`/v1/records/${kind}`, { body: { fields } });\n\n /** Change fields of a row. `records_update_record` */\n update = (\n kind: string,\n recordId: string,\n fields: Record<string, unknown>,\n ): Promise<Result<\"records_update_record\">> =>\n this.http.request(\"PATCH\", path`/v1/records/${kind}/${recordId}`, { body: { fields } });\n\n /** Remove a row. `records_remove_record` */\n delete = (kind: string, recordId: string): Promise<Result<\"records_remove_record\">> =>\n this.http.request(\"DELETE\", path`/v1/records/${kind}/${recordId}`);\n}\n","/** What agents ask of the owner: approvals, choices, questions. */\n\nimport type { Body, Query, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport { path } from \"../url.js\";\n\nexport class Requests {\n constructor(private readonly http: Http) {}\n\n /** The requests waiting for an answer. `requests_pending` */\n pending = (query?: Query<\"requests_pending\">): Promise<Result<\"requests_pending\">> =>\n this.http.request(\"GET\", \"/v1/requests\", { query });\n\n /** What the live agents need from the owner, and what they told them lately. `requests_inbox` */\n inbox = (): Promise<Result<\"requests_inbox\">> => this.http.request(\"GET\", \"/v1/requests/inbox\");\n\n /** Mark everything in the inbox as seen. `requests_seen` */\n markSeen = (): Promise<Result<\"requests_seen\">> =>\n this.http.request(\"POST\", \"/v1/requests/inbox/seen\");\n\n /**\n * Answer a request with `value` (`true` approves), or turn it down with `reject`. A run\n * waiting on it goes on. `requests_resolve`\n */\n resolve = (\n requestId: string,\n body: Body<\"requests_resolve\">,\n ): Promise<Result<\"requests_resolve\">> =>\n this.http.request(\"POST\", path`/v1/requests/${requestId}/resolve`, { body });\n}\n","/** Runs and their journals: what an agent did, in order. */\n\nimport type { Query, Result, Schemas } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport type { ServerSentEvent } from \"../sse.js\";\nimport { path } from \"../url.js\";\n\nexport interface StreamOptions {\n /** The `id` of the last event seen, to go on from there after a drop. */\n lastEventId?: string;\n /** Aborting it closes the connection at once; the iterator then throws the signal's reason. */\n signal?: AbortSignal;\n}\n\n/** An event of the journal, of a type the contract lists. */\nexport type RunEvent = Schemas[\"RunEventPage\"][\"items\"][number];\n\n/**\n * An event of a type this version of the client does not list. The journal only ever adds, so\n * a server newer than the client may record events it has no type for: this is what they are,\n * as the server sent them.\n */\nexport interface UnknownRunEvent {\n type: string;\n [field: string]: unknown;\n}\n\n/**\n * A page of a run's journal. Its events are `RunEvent | UnknownRunEvent`: telling which is\n * `isKnownRunEvent`, after which `event.type` narrows to one event as usual.\n */\nexport interface RunEventPage {\n items: (RunEvent | UnknownRunEvent)[];\n /** Where to poll from next, even on the last page. */\n next_cursor?: string | null;\n}\n\n// Every type of the contract: when it gains one, this stops compiling until it is listed.\nconst KNOWN_TYPES: Record<RunEvent[\"type\"], true> = {\n \"run.started\": true,\n \"run.waiting\": true,\n \"run.retrying\": true,\n \"run.finished\": true,\n \"message.finished\": true,\n \"tool.started\": true,\n \"tool.finished\": true,\n \"request.created\": true,\n \"ui.surface\": true,\n \"ui.window\": true,\n \"live.opened\": true,\n \"live.closed\": true,\n custom: true,\n};\n\n/** Whether the event is of a type this client lists, so that its other fields are typed. */\nexport function isKnownRunEvent(event: RunEvent | UnknownRunEvent): event is RunEvent {\n return Object.hasOwn(KNOWN_TYPES, event.type);\n}\n\nexport class Runs {\n constructor(private readonly http: Http) {}\n\n /**\n * A run: its status, and its output once it finished.\n *\n * A key gets the whole run (`RunOut`). An end user's credential (a token, or a publishable key\n * with its visitor) gets the public view of its own runs (`EndUserRun`): the status and times,\n * and `waiting_for` while it waits, without the error, usage or output; their answer is in\n * their conversation. Tell them apart with `\"output\" in run`. `runs_get_run`\n */\n get = (runId: string): Promise<Result<\"runs_get_run\">> =>\n this.http.request(\"GET\", path`/v1/runs/${runId}`);\n\n /**\n * The run's journal after `cursor`, up to `limit` (500) events.\n *\n * `next_cursor` always names where to poll from next, even on the last page, so keep it and\n * ask again later for what a running run records. An event of a type this client does not\n * list is an `UnknownRunEvent`, not an error: check with `isKnownRunEvent`. `runs_events`\n */\n events = (runId: string, query?: Query<\"runs_events\">): Promise<RunEventPage> =>\n this.http.request(\"GET\", path`/v1/runs/${runId}/events`, { query });\n\n /**\n * The journal live, as Server-Sent Events: one per event (its `id` is the sequence number,\n * `event` the type, `data` the event as JSON).\n *\n * It ends with an `event: done` once the run finished, or `event: paused` while it waits for\n * an answer. To resume after a drop, pass the last `id` seen as `lastEventId`. To stop, `break`\n * out of the loop, or pass a `signal` and abort it: the connection closes at once, even while\n * nothing is arriving. `runs_events`\n */\n stream = (runId: string, options: StreamOptions = {}): AsyncGenerator<ServerSentEvent, void> =>\n this.http.stream(\"GET\", path`/v1/runs/${runId}/events`, {\n headers:\n options.lastEventId === undefined ? undefined : { \"Last-Event-ID\": options.lastEventId },\n signal: options.signal,\n });\n}\n","/** The business's skill library: SKILL.md packages agents can be given. */\n\nimport type { Body, Query, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport { path } from \"../url.js\";\n\nexport class Skills {\n constructor(private readonly http: Http) {}\n\n /** The library's skills. `skills_list_skills` */\n list = (): Promise<Result<\"skills_list_skills\">> => this.http.request(\"GET\", \"/v1/skills\");\n\n /** A skill with its files, at `version` or the latest. `skills_get_skill` */\n get = (slug: string, query?: Query<\"skills_get_skill\">): Promise<Result<\"skills_get_skill\">> =>\n this.http.request(\"GET\", path`/v1/skills/${slug}`, { query });\n\n /**\n * A new skill: the whole package as `files`, or a `name`, `description` and `body` from which\n * SKILL.md is written. `skills_create_skill`\n */\n create = (body: Body<\"skills_create_skill\">): Promise<Result<\"skills_create_skill\">> =>\n this.http.request(\"POST\", \"/v1/skills\", { body });\n\n /** A new version of the skill. `skills_add_version` */\n addVersion = (\n slug: string,\n body: Body<\"skills_add_version\">,\n ): Promise<Result<\"skills_add_version\">> =>\n this.http.request(\"POST\", path`/v1/skills/${slug}/versions`, { body });\n\n /**\n * Import a skill from a GitHub repository (`owner/name`) and a path in it.\n * `skills_import_skill`\n */\n importSkill = (body: Body<\"skills_import_skill\">): Promise<Result<\"skills_import_skill\">> =>\n this.http.request(\"POST\", \"/v1/skills/import\", { body });\n\n /** Pull the source repository's current files as a new version. `skills_refresh` */\n refresh = (slug: string): Promise<Result<\"skills_refresh\">> =>\n this.http.request(\"POST\", path`/v1/skills/${slug}/refresh`);\n}\n","/** What renderers need to draw what agents show, and the components your product adds. */\n\nimport type { Body, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport { path } from \"../url.js\";\n\n/**\n * Your own components: what your product draws that the catalog cannot know (a property card, a\n * boarding pass). Register each with the props it takes and a text twin, and agents can show it;\n * your app draws it.\n */\nexport class UiComponents {\n constructor(private readonly http: Http) {}\n\n /** The components registered for this business, by name. `ui_list_components` */\n list = (): Promise<Result<\"ui_list_components\">> => this.http.request(\"GET\", \"/v1/ui/components\");\n\n /**\n * Register a component, or replace it; agents may show it from their next turn. `name` is\n * PascalCase (`PropertyCard`) and is what your app registers its component under.\n * `description` says what the agent should use it for. `schema` is the props it takes, a small\n * subset of JSON Schema: `string`, `number`, `integer`, `boolean`, an array of those, or an\n * object of them one level deep, with `required` listing the props that must be given;\n * anything else is refused. `text` is the twin for doors that cannot draw it, with `{prop}`\n * placeholders (`{address.city}` for part of an object). `ui_put_component`\n */\n put = (name: string, body: Body<\"ui_put_component\">): Promise<Result<\"ui_put_component\">> =>\n this.http.request(\"PUT\", path`/v1/ui/components/${name}`, { body });\n\n /** Unregister a component. Surfaces already shown keep their props and their text. `ui_delete_component` */\n delete = (name: string): Promise<Result<\"ui_delete_component\">> =>\n this.http.request(\"DELETE\", path`/v1/ui/components/${name}`);\n}\n\nexport class Ui {\n readonly components: UiComponents;\n\n constructor(private readonly http: Http) {\n this.components = new UiComponents(http);\n }\n\n /**\n * The surface format and its components as JSON Schema, the templates, and the whole\n * vocabulary in `components`: the built-in ones, then your own. `ui_catalog`\n */\n catalog = (): Promise<Result<\"ui_catalog\">> => this.http.request(\"GET\", \"/v1/ui/catalog\");\n}\n","/** What the agents used lately. */\n\nimport type { Query, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\n\nexport class Usage {\n constructor(private readonly http: Http) {}\n\n /** Runs and tokens over the last `days` (30), in total, by agent and by day. `usage_get_usage` */\n get = (query?: Query<\"usage_get_usage\">): Promise<Result<\"usage_get_usage\">> =>\n this.http.request(\"GET\", \"/v1/usage\", { query });\n}\n","/** The vault: an agent's API keys and passwords. Values go in; they never come back out. */\n\nimport type { Body, Query, Result } from \"../contract.js\";\nimport type { Http } from \"../http.js\";\nimport { path } from \"../url.js\";\n\nexport class Vault {\n constructor(private readonly http: Http) {}\n\n /** The secrets' names and hints, never their values. `vault_list_secrets` */\n list = (query?: Query<\"vault_list_secrets\">): Promise<Result<\"vault_list_secrets\">> =>\n this.http.request(\"GET\", \"/v1/vault\", { query });\n\n /**\n * Store a secret, or replace it. Agent code can send it only to `hosts` (`api.stripe.com`,\n * `*.myshopify.com`); left out on a replacement, the hosts it had stay. Without an `agent_id`\n * every agent of the business may use it. `vault_put_secret`\n */\n put = (name: string, body: Body<\"vault_put_secret\">): Promise<Result<\"vault_put_secret\">> =>\n this.http.request(\"PUT\", path`/v1/vault/${name}`, { body });\n\n /** Remove a secret. `vault_delete_secret` */\n delete = (\n name: string,\n query?: Query<\"vault_delete_secret\">,\n ): Promise<Result<\"vault_delete_secret\">> =>\n this.http.request(\"DELETE\", path`/v1/vault/${name}`, { query });\n}\n","/** The installed version; a test keeps it equal to package.json's. */\nexport const VERSION = \"0.1.0\";\n","/** The client: credentials and a connection, with the API's families mounted on it. */\n\nimport {\n credentialOf,\n headersOf,\n queryOf,\n type Credential,\n type CredentialOptions,\n} from \"./credential.js\";\nimport { Http, ORG_HEADER, type Fetch } from \"./http.js\";\nimport type { SocketConstructor } from \"./live/socket.js\";\nimport { iterate } from \"./pages.js\";\nimport { Agents } from \"./resources/agents.js\";\nimport { ApiKeys } from \"./resources/apiKeys.js\";\nimport { Billing } from \"./resources/billing.js\";\nimport { Browser } from \"./resources/browser.js\";\nimport { Build } from \"./resources/build.js\";\nimport { Channels } from \"./resources/channels.js\";\nimport { Connections } from \"./resources/connections.js\";\nimport { Contacts } from \"./resources/contacts.js\";\nimport { Conversations } from \"./resources/conversations.js\";\nimport { Documents } from \"./resources/documents.js\";\nimport { EndUsers } from \"./resources/endUsers.js\";\nimport { Files } from \"./resources/files.js\";\nimport { Live } from \"./resources/live.js\";\nimport { Memories } from \"./resources/memories.js\";\nimport { Org } from \"./resources/org.js\";\nimport { Orgs } from \"./resources/orgs.js\";\nimport { Playground } from \"./resources/playground.js\";\nimport { PublishableKeys } from \"./resources/publishableKeys.js\";\nimport { Records } from \"./resources/records.js\";\nimport { Requests } from \"./resources/requests.js\";\nimport { Runs } from \"./resources/runs.js\";\nimport { Skills } from \"./resources/skills.js\";\nimport { Ui } from \"./resources/ui.js\";\nimport { Usage } from \"./resources/usage.js\";\nimport { Vault } from \"./resources/vault.js\";\nimport { VERSION } from \"./version.js\";\n\nconst DEFAULT_BASE_URL = \"https://signalcore.ai\";\nconst API_KEY_VARIABLE = \"SIGNALCORE_API_KEY\";\nconst BASE_URL_VARIABLE = \"SIGNALCORE_BASE_URL\";\nconst DEFAULT_TIMEOUT_MS = 30_000;\n\n/**\n * The client acts with one credential: `apiKey`, `endUserToken`, or `publishableKey` with its\n * `visitorId` (see `CredentialOptions`). Naming two, or a key without its visitor, is an error.\n */\nexport interface SignalcoreOptions extends CredentialOptions {\n /** Else `SIGNALCORE_BASE_URL`, else `https://signalcore.ai`. */\n baseUrl?: string;\n /** Act as a business this key manages (`forOrg` does it for a few). */\n org?: string;\n /** Replaces the global `fetch`, for a proxy, a polyfill or tests. */\n fetch?: Fetch;\n /** How long the server has to answer; a stream may then go on for longer. 30 seconds. */\n timeoutMs?: number;\n /** Replaces the global `WebSocket` that `live.connect` opens: Node before 22, or tests. */\n webSocket?: SocketConstructor;\n}\n\n/**\n * A client for the SignalCore API.\n *\n * Browsers have no environment to read, so pass the credential there. Never ship a secret key\n * (`apiKey`) to a browser: give it an `endUserToken` your backend minted for that person, or a\n * `publishableKey` with a `visitorId`. Those can talk to agents and read their own runs, nothing\n * more.\n *\n * const client = new Signalcore({ apiKey: \"sk_live_...\" });\n * const agent = await client.agents.create({ name: \"Reception\" });\n */\nexport class Signalcore {\n readonly orgs: Orgs;\n readonly apiKeys: ApiKeys;\n readonly org: Org;\n readonly agents: Agents;\n readonly build: Build;\n readonly runs: Runs;\n readonly playground: Playground;\n readonly conversations: Conversations;\n readonly contacts: Contacts;\n readonly requests: Requests;\n readonly documents: Documents;\n readonly endUsers: EndUsers;\n readonly publishableKeys: PublishableKeys;\n readonly memories: Memories;\n readonly records: Records;\n readonly files: Files;\n readonly vault: Vault;\n readonly connections: Connections;\n readonly channels: Channels;\n readonly skills: Skills;\n readonly usage: Usage;\n readonly billing: Billing;\n readonly ui: Ui;\n readonly browser: Browser;\n readonly live: Live;\n\n /**\n * Every item of a paged list, page after page:\n * `for await (const c of client.iterate(client.conversations.list, { status: \"open\" }))`.\n */\n readonly iterate = iterate;\n\n private readonly options: SignalcoreOptions;\n private readonly credential: Credential;\n\n constructor(options: SignalcoreOptions = {}) {\n this.credential = credentialOf(options, fromEnvironment(API_KEY_VARIABLE));\n this.options = options;\n const baseUrl = options.baseUrl ?? fromEnvironment(BASE_URL_VARIABLE) ?? DEFAULT_BASE_URL;\n const http = new Http({\n baseUrl,\n headers: {\n ...headersOf(this.credential),\n \"User-Agent\": `signalcore-typescript/${VERSION}`,\n ...(options.org === undefined ? {} : { [ORG_HEADER]: options.org }),\n },\n timeoutMs: options.timeoutMs ?? DEFAULT_TIMEOUT_MS,\n fetch: options.fetch,\n });\n this.orgs = new Orgs(http);\n this.apiKeys = new ApiKeys(http);\n this.org = new Org(http);\n this.agents = new Agents(http);\n this.build = new Build(http);\n this.runs = new Runs(http);\n this.playground = new Playground(http);\n this.conversations = new Conversations(http);\n this.contacts = new Contacts(http);\n this.requests = new Requests(http);\n this.documents = new Documents(http);\n this.endUsers = new EndUsers(http);\n this.publishableKeys = new PublishableKeys(http);\n this.memories = new Memories(http);\n this.records = new Records(http);\n this.files = new Files(http);\n this.vault = new Vault(http);\n this.connections = new Connections(http);\n this.channels = new Channels(http);\n this.skills = new Skills(http);\n this.usage = new Usage(http);\n this.billing = new Billing(http);\n this.ui = new Ui(http);\n this.browser = new Browser(http);\n this.live = new Live({\n baseUrl,\n query: {\n ...queryOf(this.credential),\n ...(options.org === undefined ? {} : { org: options.org }),\n },\n webSocket: options.webSocket,\n });\n }\n\n /** A client acting as a business this one manages (`orgs.create`), with the same key. */\n forOrg(orgId: string): Signalcore {\n return new Signalcore({ ...this.options, ...this.credential, org: orgId });\n }\n}\n\n/** A variable of the environment, where there is one: browsers have no `process`. */\nfunction fromEnvironment(name: string): string | undefined {\n const host = globalThis as { process?: { env?: Record<string, string | undefined> } };\n return host.process?.env?.[name];\n}\n","import { Signalcore } from \"@signalcore/sdk\";\n\nimport type { UiClient } from \"../client.js\";\n\n/**\n * What the page gives the widget to act as someone, from its attributes. Exactly one of a token\n * minted for the person by the host's backend (`endUserToken`), or a publishable key with the\n * visitor's id (`publishableKey` and `visitorId`). A secret key is not among them: it must\n * never reach a browser.\n */\nexport interface WidgetCredentials {\n baseUrl?: string | undefined;\n endUserToken?: string | undefined;\n publishableKey?: string | undefined;\n visitorId?: string | undefined;\n}\n\n/** How the widget gets its client: the SDK's by default, the host's own where it supplies one. */\nexport type CreateClient = (credentials: WidgetCredentials) => UiClient;\n\n/** The SDK's client for these credentials; it refuses a combination that makes no sense. */\nexport const createSdkClient: CreateClient = ({\n baseUrl,\n endUserToken,\n publishableKey,\n visitorId,\n}) =>\n new Signalcore({\n ...(baseUrl ? { baseUrl } : {}),\n ...(endUserToken ? { endUserToken } : {}),\n ...(publishableKey ? { publishableKey } : {}),\n ...(visitorId ? { visitorId } : {}),\n });\n","/**\n * The page's chosen color scheme (`data-theme=\"dark\"` on the widget or the nearest element that\n * has one, usually <html>). The stylesheet reads it from an ancestor of what it styles, which\n * the shadow root hides, so the widget copies it onto an element inside.\n */\nexport function schemeOf(host: Element): string | undefined {\n return host.closest(\"[data-theme]\")?.getAttribute(\"data-theme\") ?? undefined;\n}\n\n/** Calls `apply` when the scheme of the page or of the widget changes; returns how to stop. */\nexport function watchScheme(host: Element, apply: () => void): () => void {\n const observer = new MutationObserver(apply);\n const options = { attributes: true, attributeFilter: [\"data-theme\"] };\n observer.observe(document.documentElement, options);\n observer.observe(host, options);\n return () => {\n observer.disconnect();\n };\n}\n","const KEY = \"signalcore:visitor-id\";\n\n/** 32 random hex characters: more than the 8 an id needs, and no secure context required. */\nfunction freshId(): string {\n const bytes = crypto.getRandomValues(new Uint8Array(16));\n return Array.from(bytes, (byte) => byte.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\n/**\n * The id this browser answers to as an anonymous visitor: made once, kept, and the same on the\n * next visit, so the conversation is too. Where the browser will not keep anything (a private\n * window), it lasts until the page is closed.\n */\nexport function keptVisitorId(): string {\n try {\n const kept = localStorage.getItem(KEY);\n if (kept) return kept;\n } catch {\n // Storage is blocked: a fresh id is still an id.\n }\n const fresh = freshId();\n try {\n localStorage.setItem(KEY, fresh);\n } catch {\n // Not kept; it lives as long as the widget does.\n }\n return fresh;\n}\n","import type { ReactNode } from \"react\";\nimport { createRoot, type Root } from \"react-dom/client\";\n\nimport type { UiClient } from \"../client.js\";\nimport { isLocale, type Locale, type MessageOverrides } from \"../messages/index.js\";\nimport styles from \"../styles.css?inline\";\nimport { createSdkClient, type CreateClient, type WidgetCredentials } from \"./credentials.js\";\nimport { schemeOf, watchScheme } from \"./scheme.js\";\nimport { keptVisitorId } from \"./visitor.js\";\n\n/** What every widget reads: who it talks to, as whom, in which language. */\nconst SHARED_ATTRIBUTES = [\n \"agent\",\n \"thread\",\n \"base-url\",\n \"end-user-token\",\n \"publishable-key\",\n \"visitor-id\",\n \"locale\",\n];\n\nexport interface WidgetOptions {\n /** The tag to register; the widget's own unless a page needs another. */\n tag?: string | undefined;\n /**\n * How the element makes its client from its credentials attributes: the SDK's by default.\n * A host that reaches the API another way passes its own; one that sets the element's\n * `client` from JS does not need it.\n */\n createClient?: CreateClient | undefined;\n}\n\n/** What a widget is drawn from, once the element has read its attributes and properties. */\nexport interface Drawing {\n /** The tag the element is registered under, for the words it says to a developer. */\n tag: string;\n /** The `client` property if the page set one, else one made from the credentials. */\n client: UiClient | undefined;\n agent: string | null;\n thread: string | undefined;\n locale: Locale | undefined;\n messages: MessageOverrides | undefined;\n /** An attribute of the element, when it has it. */\n attribute: (name: string) => string | undefined;\n has: (name: string) => boolean;\n /** Tells the page something happened: an event that bubbles and crosses the shadow root. */\n emit: (type: string, detail: unknown) => void;\n /** Writes an attribute, which draws the element again: what the widget chose reads back. */\n reflect: (name: string, value: string) => void;\n}\n\nexport interface WidgetSpec {\n /** The tag, unless the page registers the widget under another. */\n tag: string;\n /** The attributes this widget reads besides the shared ones; a change to any draws it again. */\n attributes: readonly string[];\n /** Where it sits by default; the page's own CSS on the element wins over `:host`. */\n host: string;\n /** What it draws from what the page gave it. */\n draw: (drawing: Drawing) => ReactNode;\n}\n\n/** What the attributes made: a client, or the reason there is none. */\ninterface Made {\n key: string;\n client: UiClient | undefined;\n}\n\n/**\n * Registers a widget as a web component: an element that draws React in a shadow root with the\n * package's styles inside, takes its credentials from attributes (or a `client` property), and\n * follows the page's color scheme. What differs from one widget to the next, the attributes it\n * reads and what it draws from them, is its `spec`. See `defineSignalcoreChat`.\n */\nexport function defineWidget(\n spec: WidgetSpec,\n { tag = spec.tag, createClient = createSdkClient }: WidgetOptions = {},\n): CustomElementConstructor {\n const known = customElements.get(tag);\n if (known) return known;\n\n class Widget extends HTMLElement {\n static observedAttributes = [...SHARED_ATTRIBUTES, ...spec.attributes];\n\n #override: UiClient | undefined;\n #messages: MessageOverrides | undefined;\n #made: Made | undefined;\n #frame: HTMLElement | undefined;\n #root: Root | undefined;\n #stopWatching: (() => void) | undefined;\n\n /** The client to use instead of one made from the attributes. */\n get client(): UiClient | undefined {\n return this.#override;\n }\n set client(client: UiClient | undefined) {\n this.#override = client;\n this.#draw();\n }\n\n /** Words to change over the locale's dictionary (see `MessageOverrides`). */\n get messages(): MessageOverrides | undefined {\n return this.#messages;\n }\n set messages(messages: MessageOverrides | undefined) {\n this.#messages = messages;\n this.#draw();\n }\n\n connectedCallback() {\n const frame = (this.#frame ??= this.#build());\n this.#root = createRoot(frame);\n this.#stopWatching = watchScheme(this, () => {\n this.#syncScheme();\n });\n this.#syncScheme();\n this.#draw();\n }\n\n disconnectedCallback() {\n this.#stopWatching?.();\n this.#root?.unmount();\n this.#root = undefined;\n }\n\n attributeChangedCallback() {\n this.#draw();\n }\n\n /** The shadow root: the styles, and the element the widget is drawn into. */\n #build(): HTMLElement {\n const shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = styles + spec.host;\n const frame = document.createElement(\"div\");\n frame.setAttribute(\"part\", \"root\");\n shadow.append(style, frame);\n return frame;\n }\n\n #syncScheme() {\n const scheme = schemeOf(this);\n if (scheme === undefined) this.#frame?.removeAttribute(\"data-theme\");\n else this.#frame?.setAttribute(\"data-theme\", scheme);\n }\n\n #draw() {\n if (!this.#root) return;\n const client = this.#override ?? this.#clientFromAttributes();\n const agent = this.getAttribute(\"agent\");\n if (!agent) console.warn(`<${tag}> needs an agent=\"agt_…\" attribute`);\n this.#root.render(\n spec.draw({\n tag,\n client,\n agent,\n thread: this.getAttribute(\"thread\") ?? undefined,\n locale: this.#locale(),\n messages: this.#messages,\n attribute: (name) => this.getAttribute(name) ?? undefined,\n has: (name) => this.hasAttribute(name),\n emit: (type, detail) => {\n this.dispatchEvent(new CustomEvent(type, { detail, bubbles: true, composed: true }));\n },\n reflect: (name, value) => {\n this.setAttribute(name, value);\n },\n }),\n );\n }\n\n /** The `locale` attribute, when it names a language the package has. */\n #locale(): Locale | undefined {\n const locale = this.getAttribute(\"locale\");\n if (locale === null) return undefined;\n if (isLocale(locale)) return locale;\n console.warn(`<${tag}> knows locale=\"es\" and locale=\"en\", not locale=\"${locale}\"`);\n return undefined;\n }\n\n /** A client for the credentials the attributes give, made once for as long as they hold. */\n #clientFromAttributes(): UiClient | undefined {\n const credentials = this.#credentials();\n const key = JSON.stringify(credentials);\n if (this.#made?.key !== key) this.#made = { key, client: this.#make(credentials) };\n return this.#made.client;\n }\n\n #credentials(): WidgetCredentials {\n const attribute = (name: string) => this.getAttribute(name) ?? undefined;\n const publishableKey = attribute(\"publishable-key\");\n return {\n baseUrl: attribute(\"base-url\"),\n endUserToken: attribute(\"end-user-token\"),\n publishableKey,\n // An anonymous visitor is the browser they come from.\n visitorId: attribute(\"visitor-id\") ?? (publishableKey ? keptVisitorId() : undefined),\n };\n }\n\n #make(credentials: WidgetCredentials): UiClient | undefined {\n if (!credentials.endUserToken && !credentials.publishableKey) {\n console.warn(`<${tag}> needs end-user-token, or publishable-key (or a client property)`);\n return undefined;\n }\n try {\n return createClient(credentials);\n } catch (reason) {\n console.error(`<${tag}> cannot start:`, reason);\n return undefined;\n }\n }\n }\n\n customElements.define(tag, Widget);\n return Widget;\n}\n","/** A class attribute from the parts that apply: falsy ones are skipped. */\nexport function classes(...parts: (string | false | null | undefined)[]): string {\n return parts.filter(Boolean).join(\" \");\n}\n","import { classes } from \"./classes.js\";\n\n/**\n * Every element the package draws is a named slot. It carries the class `sc-<slot>` (BEM: a\n * block, `card`, or one of its elements, `card__title`), the attribute `data-sc=\"<slot>\"`, and\n * `data-sc-mod=\"primary sm\"` for its modifiers, which are also classes (`sc-button--primary`).\n * They are the stable hooks for a host's CSS, and the names `classNames` is keyed by. The same names\n * are the element's `part`s (`message message--person`), so a chat inside a shadow root, as the\n * widget is, is styled from outside with `::part(message)`.\n */\nexport const SLOTS = [\n \"ui\",\n \"surface\",\n \"column\",\n \"row\",\n \"card\",\n \"card__title\",\n \"card__subtitle\",\n \"text\",\n \"callout\",\n \"image\",\n \"link\",\n \"pairs\",\n \"pairs__row\",\n \"pairs__label\",\n \"pairs__value\",\n \"table-wrap\",\n \"table\",\n \"table__row\",\n \"table__head\",\n \"table__cell\",\n \"chart\",\n \"chart__title\",\n \"chart__row\",\n \"chart__label\",\n \"chart__bar\",\n \"chart__value\",\n \"choices\",\n \"choice\",\n \"choice__label\",\n \"choice__description\",\n \"slots\",\n \"form\",\n \"form__actions\",\n \"field\",\n \"input\",\n \"select\",\n \"checkbox\",\n \"button\",\n \"icon-button\",\n \"icon\",\n \"spinner\",\n \"sr-only\",\n \"error\",\n \"browser\",\n \"browser__header\",\n \"browser__driver\",\n \"browser__dot\",\n \"browser__who\",\n \"browser__controls\",\n \"browser__site\",\n \"browser__site-name\",\n \"browser__screen\",\n \"browser__frame\",\n \"browser__shot\",\n \"browser__cover\",\n \"browser__caption\",\n \"browser__step\",\n \"browser__line\",\n \"browser__ended\",\n \"browser__ended-title\",\n \"browser__ended-summary\",\n \"live\",\n \"live__canvas\",\n \"live__status\",\n \"live__dot\",\n \"request\",\n \"request__heading\",\n \"request__icon\",\n \"request__body\",\n \"request__title\",\n \"request__details\",\n \"request__done\",\n \"request__check\",\n \"request__actions\",\n \"request__form\",\n \"request__hint\",\n \"request__name\",\n \"approval\",\n \"calls\",\n \"calls__item\",\n \"calls__label\",\n \"calls__summary\",\n \"preview-pairs\",\n \"preview-pairs__row\",\n \"preview-pairs__label\",\n \"preview-pairs__value\",\n \"preview-table\",\n \"preview-table__table\",\n \"preview-table__head\",\n \"preview-table__cell\",\n \"preview-table__more\",\n \"preview-json\",\n \"handover\",\n \"handover__side\",\n \"steps\",\n \"steps__item\",\n \"steps__number\",\n \"steps__text\",\n \"drop\",\n \"drop__icon\",\n \"app-button\",\n \"app-button__logo\",\n \"app-button__ping\",\n \"app-logo\",\n \"chat\",\n \"chat__scroll\",\n \"chat__content\",\n \"chat__note\",\n \"chat__status\",\n \"messages\",\n \"moment\",\n \"message\",\n \"message__text\",\n \"message__surface\",\n \"message__window\",\n \"message__open\",\n \"composer\",\n \"composer__context\",\n \"composer__box\",\n \"composer__input\",\n \"composer__bar\",\n \"composer__tools\",\n \"composer__send\",\n \"transcript\",\n \"reply\",\n \"reply__cursor\",\n \"activity\",\n \"activity__step\",\n \"activity__toggle\",\n \"activity__mark\",\n \"activity__verb\",\n \"activity__target\",\n \"activity__note\",\n \"activity__summary\",\n \"note\",\n \"changes\",\n \"changes__title\",\n \"changes__list\",\n \"changes__item\",\n \"changes__label\",\n \"changes__more\",\n \"status-line\",\n \"status-line__dot\",\n \"status-line__hint\",\n \"status\",\n \"status__dot\",\n \"automations\",\n \"automations__group\",\n \"automations__title\",\n \"automations__list\",\n \"automations__item\",\n \"automations__empty\",\n \"automation\",\n \"automation__wash\",\n \"automation__head\",\n \"automation__tile\",\n \"automation__glyph\",\n \"automation__text\",\n \"automation__line\",\n \"automation__title\",\n \"automation__status\",\n \"automation__tagline\",\n \"automation__meta\",\n \"automation__chevron\",\n \"automation__body\",\n \"automation__description\",\n \"automation__facts\",\n \"automation__fact\",\n \"automation__label\",\n \"automation__value\",\n \"automation__activity\",\n \"automation__tips\",\n \"automation__actions\",\n \"schedule\",\n \"schedule__days\",\n \"schedule__day\",\n \"schedule__time\",\n \"app-marks\",\n \"app-marks__item\",\n \"flow\",\n \"flow__empty\",\n \"flow__node\",\n \"flow__handle\",\n \"flow__mark\",\n \"flow__glyph\",\n \"flow__text\",\n \"flow__name\",\n \"flow__detail\",\n \"flow__trigger\",\n \"orb\",\n \"orb__ring\",\n \"orb__core\",\n \"voice\",\n \"voice__stage\",\n \"voice__state\",\n \"voice__captions\",\n \"voice__line\",\n \"voice__who\",\n \"voice__note\",\n \"voice__controls\",\n \"window\",\n \"window__bar\",\n \"window__mark\",\n \"window__title\",\n \"window__body\",\n \"window__twin\",\n \"captions\",\n \"captions__line\",\n \"space\",\n \"space__main\",\n \"space__stage\",\n \"strip\",\n \"strip__tab\",\n \"strip__mark\",\n \"strip__title\",\n \"strip__dot\",\n \"dock\",\n \"dock__status\",\n \"dock__voice\",\n] as const;\n\nexport type Slot = (typeof SLOTS)[number];\n\n/**\n * Classes a host adds to the package's elements, by slot (`card`, `card__title`) or by slot and\n * modifier (`button--primary`). They are added to ours, so they work with the shipped stylesheet\n * (they come later in the cascade) and, with the provider's `unstyled`, instead of it.\n */\nexport type ClassNames = { [S in Slot]?: string } & {\n [variant: `${Slot}--${string}`]: string | undefined;\n};\n\ntype Modifier = string | false | null | undefined;\n\n/** What to spread onto an element to make it the slot. */\nexport interface PartProps {\n className: string;\n \"data-sc\": Slot;\n \"data-sc-mod\": string | undefined;\n /** The shadow part: the slot, and the slot with each modifier. Inert outside a shadow root. */\n part: string;\n}\n\n/** The props of a slot, with the modifiers that apply and any class the caller adds. */\nexport type Part = (slot: Slot, modifiers?: Modifier[], extra?: string) => PartProps;\n\nexport function partsOf(classNames: ClassNames | undefined): Part {\n return (slot, modifiers = [], extra) => {\n const mods = modifiers.filter((modifier): modifier is string => !!modifier);\n return {\n className: classes(\n `sc-${slot}`,\n ...mods.map((mod) => `sc-${slot}--${mod}`),\n classNames?.[slot],\n ...mods.map((mod) => classNames?.[`${slot}--${mod}`]),\n extra,\n ),\n \"data-sc\": slot,\n \"data-sc-mod\": mods.length > 0 ? mods.join(\" \") : undefined,\n part: [slot, ...mods.map((mod) => `${slot}--${mod}`)].join(\" \"),\n };\n };\n}\n","/**\n * The few places where our own components have two layouts, and the host chooses. Each is a\n * modifier of the slot (`sc-table--compact`) with its styles in styles.css, so a host can restyle\n * a pattern like anything else. They apply to what we draw: a primitive the host replaces\n * (`Table`, `Card`) draws itself. The defaults are the product's.\n */\nexport interface Patterns {\n /** `comfortable`: a row has room. `compact`: rows close together, for a lot of records. */\n table: \"comfortable\" | \"compact\";\n /** `inline`: a form's button sits under its fields. `footer`: set apart below, on a line. */\n actions: \"inline\" | \"footer\";\n /** `flat`: a card is a bordered area. `raised`: it also lifts a hair off the page. */\n card: \"flat\" | \"raised\";\n}\n\nexport const DEFAULT_PATTERNS: Patterns = {\n table: \"comfortable\",\n actions: \"inline\",\n card: \"flat\",\n};\n","import type { CSSProperties } from \"react\";\n\nimport type { PresetChoice } from \"./presets.js\";\n\n/**\n * The tokens the components are drawn with. Each is the CSS custom property `--sc-<name>`\n * (`accentFg` is `--sc-accent-fg`), and every one has a default in styles.css, so a host sets\n * only what it wants different: in its own CSS (`:root { --sc-accent: var(--primary) }`), or\n * through the provider's `theme`, which writes them as inline custom properties on its wrapper.\n *\n * Unset, the type, the text color and the color scheme are the host page's own; the neutrals\n * (lines, muted text, sunken areas) are tints of the text color; the accent is SignalCore's.\n */\nexport interface Theme {\n /** Ink. Default: the text color of the page the surface is in. */\n text: string;\n muted: string;\n subtle: string;\n /** What the surfaces sit on. `surface` falls back to it. */\n bg: string;\n /** The face of a card. Default: none, so a card is a bordered area of the page. */\n surface: string;\n /** A recessed or hovered area. */\n sunken: string;\n line: string;\n lineStrong: string;\n /** The owner acting: primary buttons, selection, links. */\n accent: string;\n accentFg: string;\n accentSoft: string;\n /** The agent at work. */\n signal: string;\n signalSoft: string;\n ok: string;\n okSoft: string;\n danger: string;\n dangerSoft: string;\n /** The ring around a focused control. */\n focus: string;\n /** The face of a button, and under the pointer. */\n face: string;\n faceHover: string;\n /** The corner of a card; buttons and fields take smaller ones in proportion. */\n radius: string;\n /** How much room things take, as a multiplier: 1 is the product's, 0.8 tighter, 1.25 looser. */\n density: string | number;\n /** Default: the page's own font. */\n font: string;\n fontMono: string;\n /** The reading size; the interface sizes derive from it. Default 14px. */\n fontSize: string;\n}\n\n/**\n * What a host passes as `theme`: a design system by name (`\"shadcn\"`), `\"auto\"` (the default:\n * the system the page turns out to use, if any), `\"none\"`, or tokens, which are laid over the\n * detected system, or over the one named in `preset`.\n */\nexport type ThemeOption = PresetChoice | (Partial<Theme> & { preset?: PresetChoice });\n\n/** `lineStrong` → `--sc-line-strong`. */\nexport function variableOf(token: keyof Theme): string {\n return `--sc-${token.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`)}`;\n}\n\n/** Tokens as the inline style of the element carrying them; nothing when there are none. */\nexport function themeStyle(tokens: Partial<Theme>): CSSProperties | undefined {\n const entries = (Object.entries(tokens) as [keyof Theme, string | number][]).map(\n ([token, value]) => [variableOf(token), String(value)] as const,\n );\n return entries.length > 0 ? Object.fromEntries(entries) : undefined;\n}\n","import type { Theme } from \"./theme.js\";\n\n/**\n * A design system the tokens are already mapped to. `probe` is what it always defines on the\n * page's root (all of them there means it is in use); `tokens` says which of its variables each\n * of ours reads. The mapping only names variables (`var(--primary)`), so the surfaces follow the\n * system's own light and dark without being told. One entry per system; to add one, add its table.\n *\n * A variable the system lacks leaves our default in its place, so a partial theme degrades well.\n */\ninterface System {\n probe: readonly string[];\n tokens: Partial<Theme>;\n}\n\nexport const SYSTEMS = {\n /** shadcn/ui on Tailwind v4, whose variables hold whole colors (older ones hold bare HSL). */\n shadcn: {\n probe: [\"--primary\", \"--background\", \"--foreground\", \"--card\", \"--border\"],\n tokens: {\n bg: \"var(--background)\",\n surface: \"var(--card)\",\n sunken: \"var(--muted)\",\n line: \"var(--border)\",\n lineStrong: \"var(--input)\",\n text: \"var(--foreground)\",\n muted: \"var(--muted-foreground)\",\n accent: \"var(--primary)\",\n accentFg: \"var(--primary-foreground)\",\n danger: \"var(--destructive)\",\n focus: \"var(--ring)\",\n radius: \"var(--radius)\",\n },\n },\n /**\n * Radix Themes. Its variables live on the `.radix-themes` element, so it is found on the page's\n * root only when the theme is applied there; inside one, name it: `theme=\"radix\"`.\n */\n radix: {\n probe: [\"--accent-9\", \"--color-background\", \"--gray-6\"],\n tokens: {\n bg: \"var(--color-background)\",\n surface: \"var(--color-panel-solid)\",\n sunken: \"var(--gray-3)\",\n line: \"var(--gray-6)\",\n lineStrong: \"var(--gray-7)\",\n text: \"var(--gray-12)\",\n muted: \"var(--gray-11)\",\n subtle: \"var(--gray-10)\",\n accent: \"var(--accent-9)\",\n accentFg: \"var(--accent-contrast)\",\n accentSoft: \"var(--accent-3)\",\n signal: \"var(--orange-9)\",\n signalSoft: \"var(--orange-3)\",\n ok: \"var(--green-9)\",\n okSoft: \"var(--green-3)\",\n danger: \"var(--red-9)\",\n dangerSoft: \"var(--red-3)\",\n focus: \"var(--focus-8)\",\n radius: \"var(--radius-3)\",\n font: \"var(--default-font-family)\",\n fontMono: \"var(--code-font-family)\",\n },\n },\n /** Material Design 3 (`--md-sys-*` tokens, as Material Web and MUI's CSS variables write them). */\n material: {\n probe: [\"--md-sys-color-primary\", \"--md-sys-color-surface\", \"--md-sys-color-outline\"],\n tokens: {\n bg: \"var(--md-sys-color-background)\",\n surface: \"var(--md-sys-color-surface)\",\n sunken: \"var(--md-sys-color-surface-container)\",\n line: \"var(--md-sys-color-outline-variant)\",\n lineStrong: \"var(--md-sys-color-outline)\",\n text: \"var(--md-sys-color-on-surface)\",\n muted: \"var(--md-sys-color-on-surface-variant)\",\n subtle: \"var(--md-sys-color-outline)\",\n accent: \"var(--md-sys-color-primary)\",\n accentFg: \"var(--md-sys-color-on-primary)\",\n accentSoft: \"var(--md-sys-color-primary-container)\",\n signal: \"var(--md-sys-color-tertiary)\",\n signalSoft: \"var(--md-sys-color-tertiary-container)\",\n danger: \"var(--md-sys-color-error)\",\n dangerSoft: \"var(--md-sys-color-error-container)\",\n radius: \"var(--md-sys-shape-corner-medium)\",\n },\n },\n} as const satisfies Record<string, System>;\n\nexport type PresetName = keyof typeof SYSTEMS;\n\n/**\n * Which system to use: one by name, `\"auto\"` for the first the page turns out to use (none:\n * the page's own look and ours), or `\"none\"` to map nothing.\n */\nexport type PresetChoice = \"auto\" | \"none\" | PresetName;\n\n/** The first system whose variables are all defined, in the order above; null when none is. */\nexport function detectPreset(style: {\n getPropertyValue: (name: string) => string;\n}): PresetName | null {\n for (const name of Object.keys(SYSTEMS) as PresetName[]) {\n if (SYSTEMS[name].probe.every((variable) => style.getPropertyValue(variable).trim() !== \"\")) {\n return name;\n }\n }\n return null;\n}\n","import { useSyncExternalStore } from \"react\";\n\nimport { detectPreset, SYSTEMS, type PresetChoice, type PresetName } from \"./presets.js\";\nimport type { Theme, ThemeOption } from \"./theme.js\";\n\n// What changes on <html> when a page changes theme: the attribute, or the class that dark mode\n// toggles (shadcn). The system's variables may only exist, or change, in one of them.\nconst WATCHED = [\"data-theme\", \"class\"];\n\nfunction watchRoot(changed: () => void): () => void {\n const observer = new MutationObserver(changed);\n observer.observe(document.documentElement, { attributes: true, attributeFilter: WATCHED });\n return () => {\n observer.disconnect();\n };\n}\n\nconst probeRoot = (): PresetName | null => detectPreset(getComputedStyle(document.documentElement));\n\nconst never = (): (() => void) => () => undefined;\nconst nothing = (): null => null;\n\n/**\n * The design system the page uses, found by asking its root for the variables each system always\n * defines, again whenever its theme changes. Nothing is asked without a `document` (a server\n * renders as if the page used none, then the client finds out), and nothing at all when the host\n * named its system or wants none.\n */\nfunction useDetected(wanted: boolean): PresetName | null {\n const browser = wanted && typeof document !== \"undefined\";\n return useSyncExternalStore(browser ? watchRoot : never, browser ? probeRoot : nothing, nothing);\n}\n\n/**\n * The tokens to write on the provider's wrapper: the chosen system's (found, for `\"auto\"`), under\n * whatever tokens the host gave. They are only ever written on the wrapper, never on the page's\n * root, so the host's own variables are read and never changed.\n */\nexport function useTokens(option: ThemeOption = \"auto\"): Partial<Theme> {\n const { preset = \"auto\", ...own } = typeof option === \"string\" ? { preset: option } : option;\n const detected = useDetected(preset === \"auto\");\n const system = choose(preset, detected);\n return { ...(system ? SYSTEMS[system].tokens : {}), ...own };\n}\n\nfunction choose(preset: PresetChoice, detected: PresetName | null): PresetName | null {\n if (preset === \"auto\") return detected;\n return preset === \"none\" ? null : preset;\n}\n","/**\n * @license React\n * react-jsx-runtime.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\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import { createContext, useContext, useMemo, type ReactNode } from \"react\";\n\nimport type { UiClient } from \"./client.js\";\nimport type { HostComponents } from \"./host.js\";\nimport { partsOf, type ClassNames, type Part } from \"./look.js\";\nimport {\n languageOf,\n type Language,\n type Locale,\n type MessageOverrides,\n type Messages,\n} from \"./messages/index.js\";\nimport { DEFAULT_PATTERNS, type Patterns } from \"./patterns.js\";\nimport { themeStyle, type ThemeOption } from \"./theme.js\";\nimport { useTokens } from \"./useTokens.js\";\nimport type { DefaultWindowComponents, Viewer } from \"./windows/kinds.js\";\n\n/** What every component below the provider can use. */\nexport interface Scope {\n client: UiClient | undefined;\n components: HostComponents;\n classNames: ClassNames | undefined;\n patterns: Patterns;\n language: Language;\n /** The host's components for the default windows, laid over the package's own. */\n windows: DefaultWindowComponents;\n viewer: Viewer;\n}\n\nconst NO_COMPONENTS: HostComponents = {};\nconst NO_WINDOWS: DefaultWindowComponents = {};\nconst NOTHING: Scope = {\n client: undefined,\n components: NO_COMPONENTS,\n classNames: undefined,\n patterns: DEFAULT_PATTERNS,\n language: languageOf(),\n windows: NO_WINDOWS,\n viewer: \"owner\",\n};\nconst Context = createContext<Scope | null>(null);\n\nexport interface SignalcoreProviderProps {\n /** The API, for what the user does on a card and for streams. Without one, hosts answer. */\n client?: UiClient | undefined;\n /**\n * The host's own components by name: the primitives surfaces are built from (`Button`, `Card`,\n * `Table`, `Input`, `Select`) and the catalog's components (see `HostComponents`). Never the\n * cards that ask the owner to decide (`RequestCard`).\n */\n components?: HostComponents | undefined;\n /**\n * How it looks. By default (`\"auto\"`) the design system the page uses is found and followed\n * (shadcn, Radix Themes, Material), and a page that uses none keeps its own font, color and\n * scheme with our defaults. Name a system (`\"shadcn\"`) to skip the search, or pass tokens to\n * lay over whichever system there is (`{ accent: \"var(--brand)\" }`; `preset` picks the system).\n * Written as custom properties on the wrapper element, never on the page's root.\n */\n theme?: ThemeOption | undefined;\n /** Classes to add to the package's elements, by slot. */\n classNames?: ClassNames | undefined;\n /** Which layout our components take where they have two (see `Patterns`). */\n patterns?: Partial<Patterns> | undefined;\n /**\n * The language of the words the components say, and of the dates they write: `\"es\"` (the\n * default) or `\"en\"`.\n */\n locale?: Locale | undefined;\n /**\n * Words to change, laid over the locale's dictionary: `{ send: \"Post\", verbs: { read: \"Open\" } }`.\n * Hoist the object (or memoize it), so the components are not drawn again for nothing.\n */\n messages?: MessageOverrides | undefined;\n /**\n * Leave out the shipped styles: the elements and their classes are the same, but the\n * stylesheet does not apply to them, so a host styles them through `classNames` alone.\n */\n unstyled?: boolean | undefined;\n /**\n * The components that draw the app's default windows (ADR 0011), by kind: `chat`,\n * `automations`, `flow`, `voice`, `browser` and `live`. They are laid over the package's own\n * (the chat, the browser and the live stream), so a host replaces one by naming its kind, and\n * adds the ones that live in other entries (`FlowWindow` from `@signalcore/ui/flow`,\n * `VoiceWindow` from `@signalcore/ui/voice`). A kind with no component shows its text twin.\n * Hoist the object (or memoize it), so the shell is not drawn again for nothing.\n */\n windows?: DefaultWindowComponents | undefined;\n /**\n * Who is looking: `\"owner\"` (the default) for the business's owner and team, `\"end_user\"` for\n * a person the business serves (ADR 0009). The shell only opens the windows that viewer may\n * see: an end user gets `chat` and `voice`, never `automations`, `flow` or the browser. The\n * client does not say which credential it holds, so the host does; the API refuses an end\n * user's credential the owner's calls whatever this says.\n */\n viewer?: Viewer | undefined;\n children: ReactNode;\n}\n\n/**\n * The one place a host says how SignalCore is reached and how it looks. It wraps its children in\n * an element that carries the tokens (`display: contents` in styles.css, so it takes no room),\n * which is why the styles reach everything below it and nothing else.\n */\nexport function SignalcoreProvider({\n client,\n components,\n theme,\n classNames,\n patterns,\n locale,\n messages,\n unstyled = false,\n windows,\n viewer = \"owner\",\n children,\n}: SignalcoreProviderProps) {\n const tokens = useTokens(theme);\n const scope = useMemo<Scope>(\n () => ({\n client,\n components: components ?? NO_COMPONENTS,\n classNames,\n patterns: { ...DEFAULT_PATTERNS, ...patterns },\n language: languageOf(locale, messages),\n windows: windows ?? NO_WINDOWS,\n viewer,\n }),\n [client, components, classNames, patterns, locale, messages, windows, viewer],\n );\n const part = partsOf(classNames);\n return (\n <Context value={scope}>\n <div {...part(\"ui\")} data-sc-unstyled={unstyled ? \"\" : undefined} style={themeStyle(tokens)}>\n {children}\n </div>\n </Context>\n );\n}\n\n/** The client, components and classes of the nearest provider; nothing set when there is none. */\nexport function useSignalcore(): Scope {\n return useContext(Context) ?? NOTHING;\n}\n\n/** The words the components say, in the provider's language, with the host's own laid over. */\nexport function useMessages(): Messages {\n return useSignalcore().language.messages;\n}\n\n/** The provider's language: its words, and the locale that dates are written in. */\nexport function useLanguage(): Language {\n return useSignalcore().language;\n}\n\n/** The props of the slots, with the host's classes: spread them onto the elements. */\nexport function useParts(): Part {\n const { classNames } = useSignalcore();\n return useMemo(() => partsOf(classNames), [classNames]);\n}\n\n/**\n * A component used outside any provider still gets the tokens: it brings a default one of its\n * own. Inside a provider it adds nothing, so a host's theme is never overridden by a nested one.\n */\nexport function Scoped({ children }: { children: ReactNode }) {\n const inside = useContext(Context) !== null;\n return inside ? children : <SignalcoreProvider>{children}</SignalcoreProvider>;\n}\n\n/**\n * What the platform draws itself. The host's components do not reach below it: the cards that\n * ask the owner to decide (approve, connect, enter a secret, take the controls) are built from\n * our own primitives only, so no replacement can change what an \"Aprobar\" button does or says.\n * The host's tokens and classes still apply.\n */\nexport function Platform({ children }: { children: ReactNode }) {\n const scope = useSignalcore();\n const platform = useMemo(() => ({ ...scope, components: NO_COMPONENTS }), [scope]);\n return <Context value={platform}>{children}</Context>;\n}\n\n/**\n * The same scope with another client, for what is drawn below it. A shell uses it to hear the\n * answers its windows get, wherever a turn is sent from (the chat, a voice window), without any\n * of them knowing it is there.\n */\nexport function WithClient({\n client,\n children,\n}: {\n client: UiClient | undefined;\n children: ReactNode;\n}) {\n const scope = useSignalcore();\n const next = useMemo(() => ({ ...scope, client }), [scope, client]);\n return <Context value={next}>{children}</Context>;\n}\n","import type { InputHTMLAttributes } from \"react\";\n\nimport { useParts } from \"../SignalcoreProvider.js\";\n\nexport function Input({ className, ...props }: InputHTMLAttributes<HTMLInputElement>) {\n const part = useParts();\n return <input {...part(\"input\", [], className)} {...props} />;\n}\n\n/** What went wrong with something the user just did, right where they did it. */\nexport function ErrorText({ children }: { children: string }) {\n const part = useParts();\n return (\n <p role=\"alert\" {...part(\"error\")}>\n {children}\n </p>\n );\n}\n","import { useParts } from \"../SignalcoreProvider.js\";\n\n/** A thin arc, quieter than a full ring. */\nexport function Spinner() {\n const part = useParts();\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden {...part(\"spinner\")}>\n <circle cx=\"8\" cy=\"8\" r=\"6.25\" stroke=\"currentColor\" strokeOpacity=\".18\" strokeWidth=\"1.5\" />\n <path d=\"M14.25 8A6.25 6.25 0 0 0 8 1.75\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </svg>\n );\n}\n","import type { Slot } from \"../look.js\";\nimport { useParts } from \"../SignalcoreProvider.js\";\n\n/**\n * The few marks the cards and the browser need, drawn from Phosphor Icons (MIT, phosphoricons.com;\n * the regular weight, as the web app draws them) so the package carries no icon dependency.\n */\nconst PATHS = {\n check:\n \"M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z\",\n question:\n \"M140,180a12,12,0,1,1-12-12A12,12,0,0,1,140,180ZM128,72c-22.06,0-40,16.15-40,36v4a8,8,0,0,0,16,0v-4c0-11,10.77-20,24-20s24,9,24,20-10.77,20-24,20a8,8,0,0,0-8,8v8a8,8,0,0,0,16,0v-.72c18.24-3.35,32-17.9,32-35.28C168,88.15,150.06,72,128,72Zm104,56A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z\",\n listChecks:\n \"M224,128a8,8,0,0,1-8,8H128a8,8,0,0,1,0-16h88A8,8,0,0,1,224,128ZM128,72h88a8,8,0,0,0,0-16H128a8,8,0,0,0,0,16Zm88,112H128a8,8,0,0,0,0,16h88a8,8,0,0,0,0-16ZM82.34,42.34,56,68.69,45.66,58.34A8,8,0,0,0,34.34,69.66l16,16a8,8,0,0,0,11.32,0l32-32A8,8,0,0,0,82.34,42.34Zm0,64L56,132.69,45.66,122.34a8,8,0,0,0-11.32,11.32l16,16a8,8,0,0,0,11.32,0l32-32a8,8,0,0,0-11.32-11.32Zm0,64L56,196.69,45.66,186.34a8,8,0,0,0-11.32,11.32l16,16a8,8,0,0,0,11.32,0l32-32a8,8,0,0,0-11.32-11.32Z\",\n plug: \"M237.66,66.34a8,8,0,0,0-11.32,0L192,100.69,155.31,64l34.35-34.34a8,8,0,1,0-11.32-11.32L144,52.69,117.66,26.34a8,8,0,0,0-11.32,11.32L112.69,44l-53,53a40,40,0,0,0,0,56.57l15.71,15.71L26.34,218.34a8,8,0,0,0,11.32,11.32l49.09-49.09,15.71,15.71a40,40,0,0,0,56.57,0l53-53,6.34,6.35a8,8,0,0,0,11.32-11.32L203.31,112l34.35-34.34A8,8,0,0,0,237.66,66.34ZM147.72,185a24,24,0,0,1-33.95,0L71,142.23a24,24,0,0,1,0-33.95l53-53L200.69,132Z\",\n upload:\n \"M224,144v64a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v56H208V144a8,8,0,0,1,16,0ZM93.66,77.66,120,51.31V144a8,8,0,0,0,16,0V51.31l26.34,26.35a8,8,0,0,0,11.32-11.32l-40-40a8,8,0,0,0-11.32,0l-40,40A8,8,0,0,0,93.66,77.66Z\",\n shieldWarning:\n \"M120,136V96a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm8,48a12,12,0,1,0-12-12A12,12,0,0,0,128,184ZM224,56v56c0,52.72-25.52,84.67-46.93,102.19-23.06,18.86-46,25.27-47,25.53a8,8,0,0,1-4.2,0c-1-.26-23.91-6.67-47-25.53C57.52,196.67,32,164.72,32,112V56A16,16,0,0,1,48,40H208A16,16,0,0,1,224,56Zm-16,0L48,56l0,56c0,37.3,13.82,67.51,41.07,89.81A128.25,128.25,0,0,0,128,223.62a129.3,129.3,0,0,0,39.41-22.2C194.34,179.16,208,149.07,208,112Z\",\n key: \"M216.57,39.43A80,80,0,0,0,83.91,120.78L28.69,176A15.86,15.86,0,0,0,24,187.31V216a16,16,0,0,0,16,16H72a8,8,0,0,0,8-8V208H96a8,8,0,0,0,8-8V184h16a8,8,0,0,0,5.66-2.34l9.56-9.57A79.73,79.73,0,0,0,160,176h.1A80,80,0,0,0,216.57,39.43ZM224,98.1c-1.09,34.09-29.75,61.86-63.89,61.9H160a63.7,63.7,0,0,1-23.65-4.51,8,8,0,0,0-8.84,1.68L116.69,168H96a8,8,0,0,0-8,8v16H72a8,8,0,0,0-8,8v16H40V187.31l58.83-58.82a8,8,0,0,0,1.68-8.84A63.72,63.72,0,0,1,96,95.92c0-34.14,27.81-62.8,61.9-63.89A64,64,0,0,1,224,98.1ZM192,76a12,12,0,1,1-12-12A12,12,0,0,1,192,76Z\",\n cursorClick:\n \"M88,24V16a8,8,0,0,1,16,0v8a8,8,0,0,1-16,0ZM16,104h8a8,8,0,0,0,0-16H16a8,8,0,0,0,0,16ZM124.42,39.16a8,8,0,0,0,10.74-3.58l8-16a8,8,0,0,0-14.31-7.16l-8,16A8,8,0,0,0,124.42,39.16Zm-96,81.69-16,8a8,8,0,0,0,7.16,14.31l16-8a8,8,0,1,0-7.16-14.31ZM219.31,184a16,16,0,0,1,0,22.63l-12.68,12.68a16,16,0,0,1-22.63,0L132.7,168,115,214.09c0,.1-.08.21-.13.32a15.83,15.83,0,0,1-14.6,9.59l-.79,0a15.83,15.83,0,0,1-14.41-11L32.8,52.92A16,16,0,0,1,52.92,32.8L213,85.07a16,16,0,0,1,1.41,29.8l-.32.13L168,132.69ZM208,195.31,156.69,144h0a16,16,0,0,1,4.93-26l.32-.14,45.95-17.64L48,48l52.2,159.86,17.65-46c0-.11.08-.22.13-.33a16,16,0,0,1,11.69-9.34,16.72,16.72,0,0,1,3-.28,16,16,0,0,1,11.3,4.69L195.31,208Z\",\n arrowsIn:\n \"M144,104V64a8,8,0,0,1,16,0V84.69l42.34-42.35a8,8,0,0,1,11.32,11.32L171.31,96H192a8,8,0,0,1,0,16H152A8,8,0,0,1,144,104Zm-40,40H64a8,8,0,0,0,0,16H84.69L42.34,202.34a8,8,0,0,0,11.32,11.32L96,171.31V192a8,8,0,0,0,16,0V152A8,8,0,0,0,104,144Zm67.31,16H192a8,8,0,0,0,0-16H152a8,8,0,0,0-8,8v40a8,8,0,0,0,16,0V171.31l42.34,42.35a8,8,0,0,0,11.32-11.32ZM104,56a8,8,0,0,0-8,8V84.69L53.66,42.34A8,8,0,0,0,42.34,53.66L84.69,96H64a8,8,0,0,0,0,16h40a8,8,0,0,0,8-8V64A8,8,0,0,0,104,56Z\",\n arrowsOut:\n \"M216,48V96a8,8,0,0,1-16,0V67.31l-42.34,42.35a8,8,0,0,1-11.32-11.32L188.69,56H160a8,8,0,0,1,0-16h48A8,8,0,0,1,216,48ZM98.34,146.34,56,188.69V160a8,8,0,0,0-16,0v48a8,8,0,0,0,8,8H96a8,8,0,0,0,0-16H67.31l42.35-42.34a8,8,0,0,0-11.32-11.32ZM208,152a8,8,0,0,0-8,8v28.69l-42.34-42.35a8,8,0,0,0-11.32,11.32L188.69,200H160a8,8,0,0,0,0,16h48a8,8,0,0,0,8-8V160A8,8,0,0,0,208,152ZM67.31,56H96a8,8,0,0,0,0-16H48a8,8,0,0,0-8,8V96a8,8,0,0,0,16,0V67.31l42.34,42.35a8,8,0,0,0,11.32-11.32Z\",\n squareOut:\n \"M224,104a8,8,0,0,1-16,0V59.32l-66.33,66.34a8,8,0,0,1-11.32-11.32L196.68,48H152a8,8,0,0,1,0-16h64a8,8,0,0,1,8,8Zm-40,24a8,8,0,0,0-8,8v72H48V80h72a8,8,0,0,0,0-16H48A16,16,0,0,0,32,80V208a16,16,0,0,0,16,16H176a16,16,0,0,0,16-16V136A8,8,0,0,0,184,128Z\",\n arrowUp:\n \"M205.66,117.66a8,8,0,0,1-11.32,0L136,59.31V216a8,8,0,0,1-16,0V59.31L61.66,117.66a8,8,0,0,1-11.32-11.32l72-72a8,8,0,0,1,11.32,0l72,72A8,8,0,0,1,205.66,117.66Z\",\n stop: \"M200,40H56A16,16,0,0,0,40,56V200a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V56A16,16,0,0,0,200,40Z\",\n caretDown:\n \"M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z\",\n x: \"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z\",\n microphone:\n \"M128,176a48.05,48.05,0,0,0,48-48V64a48,48,0,0,0-96,0v64A48.05,48.05,0,0,0,128,176ZM96,64a32,32,0,0,1,64,0v64a32,32,0,0,1-64,0Zm40,143.6V240a8,8,0,0,1-16,0V207.6A80.11,80.11,0,0,1,48,128a8,8,0,0,1,16,0,64,64,0,0,0,128,0,8,8,0,0,1,16,0A80.11,80.11,0,0,1,136,207.6Z\",\n microphoneSlash:\n \"M213.92,218.62l-160-176A8,8,0,0,0,42.08,53.38L80,95.09V128a48,48,0,0,0,69.11,43.12l11.1,12.2A63.41,63.41,0,0,1,128,192a64.07,64.07,0,0,1-64-64,8,8,0,0,0-16,0,80.11,80.11,0,0,0,72,79.6V240a8,8,0,0,0,16,0V207.59a78.83,78.83,0,0,0,35.16-12.22l30.92,34a8,8,0,1,0,11.84-10.76ZM128,160a32,32,0,0,1-32-32V112.69l41.66,45.82A32,32,0,0,1,128,160Zm57.52-3.91A63.32,63.32,0,0,0,192,128a8,8,0,0,1,16,0,79.16,79.16,0,0,1-8.11,35.12,8,8,0,0,1-7.19,4.49,7.88,7.88,0,0,1-3.51-.82A8,8,0,0,1,185.52,156.09ZM84,44.87A48,48,0,0,1,176,64v64a49.19,49.19,0,0,1-.26,5,8,8,0,0,1-8,7.17,8.13,8.13,0,0,1-.84,0,8,8,0,0,1-7.12-8.79c.11-1.1.17-2.24.17-3.36V64A32,32,0,0,0,98.64,51.25,8,8,0,1,1,84,44.87Z\",\n} as const;\n\nexport type IconName = keyof typeof PATHS;\n\n/**\n * A mark drawn from a Phosphor path (its 256-unit box), for the windows that carry their own\n * tables of them. As large as the text around it; `slot` names it for the places that size it.\n */\nexport function Mark({ path, slot = \"icon\" }: { path: string; slot?: Slot }) {\n const part = useParts();\n return (\n <svg viewBox=\"0 0 256 256\" fill=\"currentColor\" aria-hidden {...part(slot)}>\n <path d={path} />\n </svg>\n );\n}\n\n/** One of the marks above, as large as the text around it. */\nexport function Icon({ name, slot = \"icon\" }: { name: IconName; slot?: Slot }) {\n return <Mark path={PATHS[name]} slot={slot} />;\n}\n","import {\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n type ChangeEvent,\n type KeyboardEvent,\n type RefObject,\n} from \"react\";\n\n/** How tall the box may grow with what is written before it scrolls. */\nconst MAX_HEIGHT_PX = 200;\n\nexport interface ComposerOptions {\n /** The person sent what is written (not trimmed: the one who receives it decides). */\n onSend: (text: string) => void;\n /** A turn is running and can be stopped: Esc in the box stops it. */\n onStop?: (() => void) | undefined;\n /** A turn is running: nothing more can be sent. */\n live?: boolean | undefined;\n /** Nothing can be sent for now (the history is being read). The box stays free to write in. */\n disabled?: boolean | undefined;\n /** The text, when the host holds it (to add dictated words); else the hook keeps it. */\n value?: string | undefined;\n onValueChange?: ((value: string) => void) | undefined;\n /** Something other than text is ready to go (a file attached), so an empty message may be sent. */\n ready?: boolean | undefined;\n /** Sending must wait for something (a file still uploading). */\n blocked?: boolean | undefined;\n /** Take the focus whenever this changes. */\n focusSignal?: number | undefined;\n /** Whether Esc in the box stops a running turn (default). A host that listens to Esc itself turns it off. */\n escapeStops?: boolean | undefined;\n}\n\nexport interface Composer {\n text: string;\n /** There is something to send, and nothing in the way. */\n canSend: boolean;\n /** Sends what is written, and empties the box. Nothing when it cannot be sent. */\n send: () => void;\n focus: () => void;\n /** What to spread onto the `<textarea>`: it grows with the text, Enter sends, Shift+Enter breaks the line. */\n input: {\n ref: RefObject<HTMLTextAreaElement | null>;\n rows: 1;\n value: string;\n onChange: (event: ChangeEvent<HTMLTextAreaElement>) => void;\n onKeyDown: (event: KeyboardEvent<HTMLTextAreaElement>) => void;\n };\n}\n\n/**\n * The behavior of the message box, without its look: what is written (held here or by the host),\n * when it can be sent, a box that grows with its text and takes the focus when asked, Enter to\n * send (never in the middle of an IME composition), Shift+Enter for a new line, and Esc to stop a\n * running turn. `Composer` is this with the package's markup; a host with its own look uses it\n * with its own.\n */\nexport function useComposer({\n onSend,\n onStop,\n live = false,\n disabled = false,\n value,\n onValueChange,\n ready = false,\n blocked = false,\n focusSignal,\n escapeStops = true,\n}: ComposerOptions): Composer {\n const [own, setOwn] = useState(\"\");\n const input = useRef<HTMLTextAreaElement>(null);\n const text = value ?? own;\n const canSend = (text.trim() !== \"\" || ready) && !blocked && !live && !disabled;\n\n const change = (next: string) => {\n setOwn(next);\n onValueChange?.(next);\n };\n const send = () => {\n if (!canSend) return;\n onSend(text);\n change(\"\");\n };\n\n useLayoutEffect(() => {\n const el = input.current;\n if (!el) return;\n el.style.height = \"auto\";\n el.style.height = `${Math.min(el.scrollHeight, MAX_HEIGHT_PX)}px`;\n }, [text]);\n\n useEffect(() => {\n if (focusSignal) input.current?.focus();\n }, [focusSignal]);\n\n return {\n text,\n canSend,\n send,\n focus: () => {\n input.current?.focus();\n },\n input: {\n ref: input,\n rows: 1,\n value: text,\n onChange: (event) => {\n change(event.target.value);\n },\n onKeyDown: (event) => {\n if (event.key === \"Enter\" && !event.shiftKey && !event.nativeEvent.isComposing) {\n event.preventDefault();\n send();\n } else if (event.key === \"Escape\" && live && escapeStops) {\n onStop?.();\n }\n },\n },\n };\n}\n","import { type ReactNode, type SubmitEvent } from \"react\";\n\nimport { Icon } from \"../parts/Icon.js\";\nimport { useMessages, useParts } from \"../SignalcoreProvider.js\";\nimport { useComposer, type ComposerOptions } from \"./useComposer.js\";\n\nexport interface ComposerProps extends ComposerOptions {\n /** What the box is called to someone who cannot see it. */\n label?: string | undefined;\n placeholder?: string | undefined;\n autoFocus?: boolean | undefined;\n /** Above the box: what the message is about. */\n context?: ReactNode;\n /** In the box, beside the send button: the host's own tools (a model, a file, a microphone). */\n tools?: ReactNode;\n className?: string | undefined;\n}\n\n/**\n * The message box of both chats: grows with the text, Enter sends, Shift+Enter breaks the line\n * and Esc stops a running turn. While a turn runs the button becomes a stop button; while the\n * history loads it cannot send, but the box stays free to write in, so the person is never\n * dropped out of it. The behavior is `useComposer`'s.\n */\nexport function Composer({\n label,\n placeholder,\n autoFocus,\n context,\n tools,\n className,\n ...options\n}: ComposerProps) {\n const part = useParts();\n const messages = useMessages();\n const { input, canSend, send, focus } = useComposer(options);\n const { live, onStop } = options;\n const stoppable = live === true && onStop !== undefined;\n\n return (\n <form\n {...part(\"composer\", [], className)}\n onSubmit={(event: SubmitEvent) => {\n event.preventDefault();\n send();\n }}\n >\n {context && <div {...part(\"composer__context\")}>{context}</div>}\n <div {...part(\"composer__box\")} onClick={focus}>\n <textarea\n {...input}\n autoFocus={autoFocus}\n placeholder={placeholder}\n aria-label={label ?? messages.message}\n {...part(\"composer__input\")}\n />\n <div {...part(\"composer__bar\")}>\n <div {...part(\"composer__tools\")}>{tools}</div>\n {stoppable ? (\n <button\n type=\"button\"\n onClick={onStop}\n aria-label={messages.stop}\n title={messages.stopWithKey}\n {...part(\"composer__send\", [\"stop\"])}\n >\n <Icon name=\"stop\" />\n </button>\n ) : (\n <button\n type=\"submit\"\n disabled={!canSend}\n aria-label={messages.send}\n {...part(\"composer__send\")}\n >\n <Icon name=\"arrowUp\" />\n </button>\n )}\n </div>\n </div>\n </form>\n );\n}\n","// Bundlers replace `process.env.NODE_ENV` with the build's mode, as React itself relies on; the\n// package's own build has no Node types, so it says what it reads.\ndeclare const process: { env: { NODE_ENV?: string | undefined } };\n\n/**\n * Tells the developer something the people using their page must never see: it is said in a\n * development build and kept quiet in a production one.\n */\nexport function warnInDevelopment(message: string): void {\n if (process.env.NODE_ENV !== \"production\") console.warn(message);\n}\n","import type { SurfaceData } from \"./types.js\";\n\nexport const isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\n/**\n * A node the host draws with a component of its own: `{ id, type: \"host\", component, props }`.\n * The API validated its props against the schema the host registered for the name.\n */\nexport const isHostNode = (node: Record<string, unknown>): boolean => node[\"type\"] === \"host\";\n\n/**\n * Why a surface cannot be drawn, or null when it can. The API checks every surface before it\n * sends it, so this is for what the API did not promise: a payload that arrived damaged, a\n * newer catalog than this renderer knows (a component it has no way to draw), or a host\n * component this page has not registered (`hosts`). A surface that cannot be drawn whole is not\n * drawn in part: it shows its text twin.\n */\nexport function problemWith(\n surface: unknown,\n known: ReadonlySet<string>,\n hosts: ReadonlySet<string>,\n): string | null {\n if (!isRecord(surface)) return \"the surface is not an object\";\n const { root, components, data } = surface;\n if (typeof root !== \"string\") return \"the surface has no root\";\n if (!Array.isArray(components)) return \"the surface has no list of components\";\n if (data !== undefined && !isRecord(data)) return \"the surface's data is not an object\";\n\n const byId = new Map<string, Record<string, unknown>>();\n for (const item of components as unknown[]) {\n if (\n !isRecord(item) ||\n typeof item[\"id\"] !== \"string\" ||\n typeof item[\"component\"] !== \"string\"\n ) {\n return \"a component has no id or no type\";\n }\n byId.set(item[\"id\"], item);\n }\n\n const seen = new Set<string>();\n const pending = [root];\n while (pending.length > 0) {\n const id = pending.pop() as string;\n const node = byId.get(id);\n if (!node) return `${id} is a child but not one of the components`;\n if (seen.has(id)) return `${id} appears twice in the tree`;\n seen.add(id);\n const kind = node[\"component\"] as string;\n if (isHostNode(node)) {\n // A host component is a leaf: what it shows is its own.\n const problem = hostProblem(id, kind, node[\"props\"], hosts);\n if (problem !== null) return problem;\n continue;\n }\n if (!known.has(kind)) return `${kind} is not in the catalog`;\n const children = node[\"children\"];\n if (children === undefined) continue;\n if (!Array.isArray(children) || !children.every((child) => typeof child === \"string\")) {\n return `${id} has children that are not ids`;\n }\n pending.push(...children);\n }\n return null;\n}\n\nfunction hostProblem(\n id: string,\n name: string,\n props: unknown,\n hosts: ReadonlySet<string>,\n): string | null {\n if (!hosts.has(name)) return `${name} is not a host component this page has registered`;\n if (props !== undefined && !isRecord(props)) return `${id} has props that are not an object`;\n return null;\n}\n\n/**\n * The host components a surface names that the page has not registered, for the developer: the\n * surface shows its text twin until they are. Reads any payload, damaged or not.\n */\nexport function unregisteredHosts(surface: unknown, hosts: ReadonlySet<string>): string[] {\n const nodes = isRecord(surface) ? surface[\"components\"] : undefined;\n if (!Array.isArray(nodes)) return [];\n const names = (nodes as unknown[]).flatMap((node) => {\n const name = isRecord(node) && isHostNode(node) ? node[\"component\"] : undefined;\n return typeof name === \"string\" && !hosts.has(name) ? [name] : [];\n });\n return [...new Set(names)];\n}\n\n/**\n * A surface from a payload of unknown shape, if it has the shape of one (a journal event carries\n * it as loose JSON). `Surface` checks the rest when it draws.\n */\nexport function surfaceOf(value: unknown): SurfaceData | undefined {\n if (!isRecord(value)) return undefined;\n const { id, root, components, fallback_text: twin } = value;\n const shaped =\n typeof id === \"string\" &&\n typeof root === \"string\" &&\n Array.isArray(components) &&\n typeof twin === \"string\";\n return shaped ? (value as unknown as SurfaceData) : undefined;\n}\n\n/** What a surface says when it cannot be drawn: its text twin, if it came with one, else `none`. */\nexport function twinOf(surface: unknown, none: string): string {\n const text = isRecord(surface) ? surface[\"fallback_text\"] : undefined;\n return typeof text === \"string\" && text.trim() ? text : none;\n}\n","import type { ButtonHTMLAttributes } from \"react\";\n\nimport { useParts } from \"../SignalcoreProvider.js\";\nimport { Spinner } from \"./Spinner.js\";\n\nexport interface PushButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: \"primary\" | \"secondary\" | \"ghost\" | undefined;\n size?: \"sm\" | \"md\" | undefined;\n /** A spinner takes the label's place beside it, and the button cannot be pressed. */\n loading?: boolean | undefined;\n}\n\n/**\n * Our push button: a secondary one has a little body, the primary one is the accent. The look\n * is all in styles.css (`.sc-button--primary`…). This is what the platform's own cards use; a\n * surface is drawn with the host's `Button` when the provider has one.\n */\nexport function Button({\n variant = \"secondary\",\n size = \"md\",\n loading = false,\n className,\n children,\n disabled,\n type = \"button\",\n ...props\n}: PushButtonProps) {\n const part = useParts();\n return (\n <button\n type={type}\n disabled={disabled ?? loading}\n {...part(\"button\", [variant, size], className)}\n {...props}\n >\n {loading && <Spinner />}\n {children}\n </button>\n );\n}\n\n/** A button that is only an icon: the label is what it is called, and its tooltip. */\nexport function IconButton({\n label,\n modifier,\n children,\n type = \"button\",\n ...props\n}: ButtonHTMLAttributes<HTMLButtonElement> & { label: string; modifier?: string }) {\n const part = useParts();\n return (\n <button\n type={type}\n aria-label={label}\n title={label}\n {...part(\"icon-button\", [modifier])}\n {...props}\n >\n {children}\n </button>\n );\n}\n","import { useMemo } from \"react\";\n\nimport type { CardProps, InputProps, Primitives, SelectProps, TableProps } from \"./host.js\";\nimport { Button } from \"./parts/Button.js\";\nimport { Input as TextInput } from \"./parts/Input.js\";\nimport { useParts, useSignalcore } from \"./SignalcoreProvider.js\";\n\n/**\n * The names of the primitives: the only keys of `components` that add nothing to the catalog.\n * `Orb` is the voice window's, so no surface may name it either.\n */\nexport const PRIMITIVE_ONLY: ReadonlySet<string> = new Set([\n \"Button\",\n \"Table\",\n \"Input\",\n \"Select\",\n \"Orb\",\n]);\n\n/**\n * Every key of `components` that is a primitive, `Card` too (which is also a catalog name). They\n * take typed props from the surface's own templates, so a surface can never name them as a host\n * component of its own.\n */\nexport const PRIMITIVE_NAMES: ReadonlySet<string> = new Set([...PRIMITIVE_ONLY, \"Card\"]);\n\nfunction Card({ title, subtitle, children }: CardProps) {\n const part = useParts();\n const { patterns } = useSignalcore();\n return (\n <section {...part(\"card\", [patterns.card])}>\n {(title || subtitle) && (\n <header>\n {title && <h3 {...part(\"card__title\")}>{title}</h3>}\n {subtitle && <p {...part(\"card__subtitle\")}>{subtitle}</p>}\n </header>\n )}\n {children}\n </section>\n );\n}\n\nfunction Table({ columns, rows }: TableProps) {\n const part = useParts();\n const { patterns } = useSignalcore();\n return (\n <div {...part(\"table-wrap\")}>\n <table {...part(\"table\", [patterns.table])}>\n <thead>\n <tr {...part(\"table__row\", [\"head\"])}>\n {columns.map((column) => (\n <th key={column.key} {...part(\"table__head\")}>\n {column.label}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {rows.map((row, index) => (\n <tr key={index} {...part(\"table__row\")}>\n {columns.map((column) => (\n <td key={column.key} {...part(\"table__cell\")}>\n {row[column.key]}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n}\n\nfunction Input({ name, type, required, onChange }: InputProps) {\n return (\n <TextInput\n name={name}\n type={type}\n required={required}\n onChange={(event) => {\n onChange(event.target.value);\n }}\n />\n );\n}\n\nfunction Select({ name, options, required, onChange }: SelectProps) {\n const part = useParts();\n return (\n <select\n name={name}\n required={required}\n {...part(\"select\")}\n onChange={(event) => {\n onChange(event.target.value);\n }}\n >\n <option value=\"\" />\n {options.map((option) => (\n <option key={option.id} value={option.id}>\n {option.label}\n </option>\n ))}\n </select>\n );\n}\n\n/** What a surface is built from. The orb is not one of them: its default lives with the voice. */\ntype SurfacePrimitives = Omit<Primitives, \"Orb\">;\n\nconst DEFAULTS: SurfacePrimitives = { Button, Card, Table, Input, Select };\n\n/**\n * What surfaces are built from: the host's primitives where the provider has them, ours\n * otherwise. Only surfaces ask for these. The platform's own cards use `parts/` directly (and\n * sit under `Platform`, which takes the host's components away), so a host's `Button` can\n * never stand in for an \"Aprobar\".\n */\nexport function usePrimitives(): SurfacePrimitives {\n const { components } = useSignalcore();\n return useMemo(() => {\n const own = Object.keys(DEFAULTS).filter((name) => Object.hasOwn(components, name));\n const replaced = Object.fromEntries(own.map((name) => [name, components[name]]));\n return { ...DEFAULTS, ...replaced };\n }, [components]);\n}\n","import type { ComponentType } from \"react\";\n\nimport type { HostComponents, HostProps } from \"../host.js\";\nimport { PRIMITIVE_NAMES } from \"../primitives.js\";\n\n/** The names a surface may use for the host's own components: whatever the provider registered. */\nexport function registeredHosts(components: HostComponents): ReadonlySet<string> {\n return new Set(Object.keys(components).filter((name) => !PRIMITIVE_NAMES.has(name)));\n}\n\n/** The host's component of that name, when the provider has registered one. */\nexport function hostComponent(\n components: HostComponents,\n name: string,\n): ComponentType<HostProps> | undefined {\n if (!Object.hasOwn(components, name) || PRIMITIVE_NAMES.has(name)) return undefined;\n return components[name] as ComponentType<HostProps>;\n}\n","import type { ComponentData } from \"./types.js\";\n\ntype Data = Record<string, unknown>;\n\n/** A property's value: the literal, or what its binding points at in the surface's data. */\nexport function bound(value: unknown, data: Data): unknown {\n if (value && typeof value === \"object\" && \"path\" in value && typeof value.path === \"string\") {\n return pointer(data, value.path);\n }\n return value;\n}\n\n/** The value at a JSON Pointer (RFC 6901); nothing when the data has no such place. */\nfunction pointer(data: unknown, path: string): unknown {\n let current = data;\n for (const raw of path.split(\"/\").slice(1)) {\n const key = raw.replaceAll(\"~1\", \"/\").replaceAll(\"~0\", \"~\");\n if (current && typeof current === \"object\") current = (current as Record<string, unknown>)[key];\n else return undefined;\n }\n return current;\n}\n\n/** What a component reads of its own properties; a wrong kind of value reads as missing. */\nexport interface Reader {\n text: (prop: string) => string | undefined;\n count: (prop: string) => number | undefined;\n /** Whether the property is `true`; anything else, or nothing, is false. */\n flag: (prop: string) => boolean;\n list: <Item = unknown>(prop: string) => Item[];\n}\n\nexport function readerOf(node: ComponentData, data: Data): Reader {\n const value = (prop: string) => bound(node[prop], data);\n return {\n text: (prop) => {\n const found = value(prop);\n return typeof found === \"string\" ? found : undefined;\n },\n count: (prop) => {\n const found = value(prop);\n return typeof found === \"number\" ? found : undefined;\n },\n flag: (prop) => value(prop) === true,\n list: <Item>(prop: string) => {\n const found = value(prop);\n return Array.isArray(found) ? (found as Item[]) : [];\n },\n };\n}\n","import { createContext, useContext, type ReactNode } from \"react\";\n\nimport type { HostAction } from \"../host.js\";\nimport type { Reader } from \"./bindings.js\";\nimport type { ComponentData } from \"./types.js\";\n\n/** Reports what the user did; missing when the surface takes no actions (an older one). */\nexport type Act = (action: HostAction) => void;\n\n/** The surface being drawn: its components, its data and what it is allowed to report. */\nexport interface Scene {\n byId: ReadonlyMap<string, ComponentData>;\n data: Record<string, unknown>;\n act: Act | undefined;\n /** The agent is at work on it now: a browser in it shows it working. */\n active: boolean;\n}\n\nexport const SceneContext = createContext<Scene | null>(null);\n\nexport function useScene(): Scene {\n const scene = useContext(SceneContext);\n if (!scene) throw new Error(\"A surface component was drawn outside a surface\");\n return scene;\n}\n\n/** What every catalog component is given: its properties to read, and its children drawn. */\nexport interface TemplateProps {\n read: Reader;\n children: ReactNode;\n}\n","import type { HostProps } from \"../host.js\";\nimport { useSignalcore } from \"../SignalcoreProvider.js\";\nimport { isRecord } from \"./check.js\";\nimport { hostComponent } from \"./hosts.js\";\nimport { useScene } from \"./scene.js\";\nimport type { ComponentData } from \"./types.js\";\n\n/**\n * A node of the host's own: its component, registered under the node's name, drawn with the\n * node's `props` exactly as given (the API validated them against the schema the host\n * registered, and a binding is not looked up in them) and `onAction`, which reports what the\n * user does through the surface's action path. It has no children, and the node cannot\n * override `onAction` with a prop of its own.\n *\n * The surface was checked before it was drawn, so the name is registered; if it ever is not,\n * this throws and the surface's boundary shows its text twin, never an empty box.\n */\nexport function HostNode({ node }: { node: ComponentData }) {\n const { components } = useSignalcore();\n const { act } = useScene();\n const Host = hostComponent(components, node.component);\n if (!Host) throw new Error(`${node.component} is not a host component this page has registered`);\n const props: HostProps = {\n ...(isRecord(node[\"props\"]) ? node[\"props\"] : {}),\n children: undefined,\n onAction: act,\n };\n // The component comes from the provider's `components`, by the name the node carries.\n // eslint-disable-next-line react-hooks/static-components\n return <Host {...props} />;\n}\n","/**\n * A person's pointer, wheel and keys on a canvas, as the input a stream takes (`LiveInput`).\n * Coordinates are the stream's pixels: the canvas is shown at whatever size the page gives it.\n */\n\nimport type { LiveInput, MouseButton } from \"@signalcore/sdk\";\n\nexport interface Size {\n width: number;\n height: number;\n}\n\ntype Send = (input: LiveInput) => void;\n\nconst BUTTONS: Record<number, MouseButton> = { 0: \"left\", 1: \"middle\", 2: \"right\" };\nconst MOVE_EVERY_MS = 40; // a move is a hint of where the pointer is: 25 a second is plenty\nconst LINE_PX = 16; // what a wheel that scrolls by lines means in pixels\nconst MAX_DELTA = 10_000; // what the stream takes\n\n/** Where `event` is on the stream: scaled from the canvas as shown, and kept inside it. */\nfunction pointOf(\n event: { clientX: number; clientY: number },\n canvas: HTMLCanvasElement,\n size: Size,\n): { x: number; y: number } {\n const box = canvas.getBoundingClientRect();\n const along = (at: number, from: number, shown: number, real: number) =>\n shown > 0 ? Math.round(Math.min(Math.max((at - from) / shown, 0), 1) * real) : 0;\n return {\n x: along(event.clientX, box.left, box.width, size.width),\n y: along(event.clientY, box.top, box.height, size.height),\n };\n}\n\nconst clamp = (value: number, limit: number) => Math.min(Math.max(value, -limit), limit);\n\n/**\n * Starts sending what the person does on `canvas` to `send`; the returned function stops it.\n *\n * The pointer goes as `down`, `move` and `up` (so drags and double clicks work as they do on the\n * page), the wheel as `wheel` (the page behind the canvas does not scroll), and keys as `down` and\n * `up` while the canvas has the focus. Tab is left alone so that the focus can leave, and a key\n * still held when the focus goes is let go. The context menu is the page's, not ours.\n */\nexport function capture(canvas: HTMLCanvasElement, size: Size, send: Send): () => void {\n const held = new Set<string>();\n let lastMove = Number.NEGATIVE_INFINITY;\n let clicks = 1; // of the press the button is coming up from\n\n const release = (event: MouseEvent) => {\n const button = BUTTONS[event.button];\n if (button)\n send({ type: \"mouse\", action: \"up\", ...pointOf(event, canvas, size), button, clicks });\n };\n const press = (event: MouseEvent) => {\n const button = BUTTONS[event.button];\n if (!button) return;\n event.preventDefault(); // the page would select the canvas and keep the focus where it was\n clicks = Math.min(Math.max(event.detail, 1), 3);\n send({ type: \"mouse\", action: \"down\", ...pointOf(event, canvas, size), button, clicks });\n canvas.focus({ preventScroll: true }); // a click does not move the page under the pointer\n // The button may come up outside the canvas, in the middle of a drag.\n window.addEventListener(\"mouseup\", release, { once: true });\n };\n const move = (event: MouseEvent) => {\n if (event.timeStamp - lastMove < MOVE_EVERY_MS) return;\n lastMove = event.timeStamp;\n send({ type: \"mouse\", action: \"move\", ...pointOf(event, canvas, size) });\n };\n const wheel = (event: WheelEvent) => {\n event.preventDefault();\n const unit = event.deltaMode === 1 ? LINE_PX : event.deltaMode === 2 ? size.height : 1;\n send({\n type: \"wheel\",\n ...pointOf(event, canvas, size),\n deltaX: clamp(event.deltaX * unit, MAX_DELTA),\n deltaY: clamp(event.deltaY * unit, MAX_DELTA),\n });\n };\n const keyed = (action: \"down\" | \"up\") => (event: KeyboardEvent) => {\n if (event.key === \"Tab\" || event.isComposing) return;\n event.preventDefault();\n if (action === \"down\") held.add(event.key);\n else held.delete(event.key);\n send({ type: \"key\", action, key: event.key });\n };\n const letGo = () => {\n for (const key of held) send({ type: \"key\", action: \"up\", key });\n held.clear();\n };\n const keyDown = keyed(\"down\");\n const keyUp = keyed(\"up\");\n const noMenu = (event: Event) => {\n event.preventDefault();\n };\n\n canvas.addEventListener(\"mousedown\", press);\n canvas.addEventListener(\"mousemove\", move);\n canvas.addEventListener(\"wheel\", wheel, { passive: false });\n canvas.addEventListener(\"contextmenu\", noMenu);\n canvas.addEventListener(\"keydown\", keyDown);\n canvas.addEventListener(\"keyup\", keyUp);\n canvas.addEventListener(\"blur\", letGo);\n return () => {\n canvas.removeEventListener(\"mousedown\", press);\n canvas.removeEventListener(\"mousemove\", move);\n canvas.removeEventListener(\"wheel\", wheel);\n canvas.removeEventListener(\"contextmenu\", noMenu);\n canvas.removeEventListener(\"keydown\", keyDown);\n canvas.removeEventListener(\"keyup\", keyUp);\n canvas.removeEventListener(\"blur\", letGo);\n window.removeEventListener(\"mouseup\", release);\n };\n}\n","/** Drawing a stream's JPEGs on a canvas. */\n\n/** A picture the canvas can draw, and how to let go of it once drawn. */\ninterface Picture {\n source: CanvasImageSource;\n release: () => void;\n}\n\n/** The picture in a JPEG, decoded off the main thread where the browser can (`createImageBitmap`). */\nasync function decode(bytes: Uint8Array): Promise<Picture> {\n const blob = new Blob([bytes.slice()], { type: \"image/jpeg\" }); // a copy over a plain ArrayBuffer, which Blob takes\n if (typeof createImageBitmap === \"function\") {\n const bitmap = await createImageBitmap(blob);\n return {\n source: bitmap,\n release: () => {\n bitmap.close();\n },\n };\n }\n return await decodeInImage(blob);\n}\n\n/** For a browser without `createImageBitmap`: an `<img>` over an object URL. */\nfunction decodeInImage(blob: Blob): Promise<Picture> {\n const url = URL.createObjectURL(blob);\n const release = () => {\n URL.revokeObjectURL(url);\n };\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.onload = () => {\n resolve({ source: image, release });\n };\n image.onerror = () => {\n release();\n reject(new Error(\"The picture could not be decoded\"));\n };\n image.src = url;\n });\n}\n\nexport interface Painter {\n /** Draw this JPEG, unless a newer one comes while it is still being decoded. */\n paint: (jpeg: Uint8Array) => void;\n /** Stop drawing: what is being decoded is let go of. */\n dispose: () => void;\n}\n\n/**\n * Draws pictures on `canvas`, stretched to its size, one at a time: a picture that arrives while\n * another is being decoded waits, and a newer one replaces it, so a slow device skips to the\n * present instead of falling behind. A picture that does not decode is skipped.\n */\nexport function painterOn(canvas: HTMLCanvasElement): Painter {\n let decoding = false;\n let waiting: Uint8Array | undefined;\n let disposed = false;\n\n const run = async (jpeg: Uint8Array): Promise<void> => {\n decoding = true;\n try {\n const picture = await decode(jpeg);\n try {\n if (!disposed) {\n canvas.getContext(\"2d\")?.drawImage(picture.source, 0, 0, canvas.width, canvas.height);\n }\n } finally {\n picture.release();\n }\n } catch {\n // Damaged or cut off: the next picture replaces it.\n }\n decoding = false;\n const next = waiting;\n waiting = undefined;\n if (next && !disposed) await run(next);\n };\n\n return {\n paint: (jpeg) => {\n if (decoding) waiting = jpeg;\n else void run(jpeg);\n },\n dispose: () => {\n disposed = true;\n waiting = undefined;\n },\n };\n}\n","import { SignalcoreError, type LiveFrame, type LiveInfo } from \"@signalcore/sdk\";\n\nimport type { UiClient, WatchedStream } from \"../client.js\";\n\n/**\n * Where a followed stream stands. `unavailable`: it cannot be watched from here (refused, not\n * there, or a connection that never worked), which is when something else should show the page.\n */\nexport type LiveStatus = \"connecting\" | \"live\" | \"reconnecting\" | \"ended\" | \"unavailable\";\n\n/** Who is told what the followed stream does. */\nexport interface Watcher {\n status: (status: LiveStatus) => void;\n info: (info: LiveInfo) => void;\n frame: (frame: LiveFrame) => void;\n /** The connection input goes to; undefined between connections. */\n stream: (stream: WatchedStream | undefined) => void;\n}\n\n/** Connections in a row that never got as far as the stream's first frame, before giving up. */\nconst GIVE_UP_AFTER = 3;\nconst FIRST_DELAY_MS = 500;\nconst LONGEST_DELAY_MS = 10_000;\n\ntype Connector = NonNullable<UiClient[\"live\"]>;\n\n/**\n * The whole life of watching a stream: connect, show what comes, and connect again when the\n * connection drops, waiting a little longer each time that no picture came in between. It ends\n * when the stream does, when the server refuses (`SignalcoreError`: not signed in, not allowed,\n * no such stream), or when `signal` stops it. A stream that has answered once exists, so its\n * drops are retried for as long as it takes; one that never answered is given up on after\n * `GIVE_UP_AFTER` tries.\n */\nexport async function follow(\n live: Connector,\n streamId: string,\n signal: AbortSignal,\n watcher: Watcher,\n): Promise<void> {\n let drops = 0; // connections lost since a picture last came: they pace the next try\n let answered = false;\n const stopped = () => signal.aborted; // read each time: it changes while we wait\n watcher.status(\"connecting\");\n while (!stopped()) {\n let stream: WatchedStream | undefined;\n const hangUp = () => {\n stream?.close();\n };\n signal.addEventListener(\"abort\", hangUp, { once: true });\n try {\n stream = live.connect(streamId, { signal });\n watcher.stream(stream);\n watcher.info(await stream.info);\n answered = true;\n watcher.status(\"live\");\n for await (const frame of stream) {\n drops = 0;\n watcher.frame(frame);\n }\n if (!stopped()) watcher.status(\"ended\");\n return;\n } catch (error) {\n if (stopped()) return;\n if (error instanceof SignalcoreError) {\n watcher.status(\"unavailable\");\n return;\n }\n } finally {\n signal.removeEventListener(\"abort\", hangUp);\n watcher.stream(undefined);\n stream?.close();\n }\n drops += 1;\n if (!answered && drops >= GIVE_UP_AFTER) {\n watcher.status(\"unavailable\");\n return;\n }\n watcher.status(\"reconnecting\");\n await pause(Math.min(LONGEST_DELAY_MS, FIRST_DELAY_MS * 2 ** (drops - 1)), signal);\n }\n}\n\n/** Waits `ms`, or less when `signal` stops it. */\nfunction pause(ms: number, signal: AbortSignal): Promise<void> {\n return new Promise((resolve) => {\n const done = () => {\n clearTimeout(timer);\n signal.removeEventListener(\"abort\", done);\n resolve();\n };\n const timer = setTimeout(done, ms);\n signal.addEventListener(\"abort\", done, { once: true });\n });\n}\n","import type { LiveFrame, LiveInfo, LiveInput } from \"@signalcore/sdk\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport type { WatchedStream } from \"../client.js\";\nimport { useSignalcore } from \"../SignalcoreProvider.js\";\nimport { follow, type LiveStatus } from \"./follow.js\";\n\nexport interface LiveConnection {\n status: LiveStatus;\n /** What the stream said it is (its size, whether it takes input); nothing until it has. */\n info: LiveInfo | undefined;\n /** Act on the stream; nothing happens between connections. */\n send: (input: LiveInput) => void;\n}\n\ninterface State {\n streamId: string;\n status: LiveStatus;\n info: LiveInfo | undefined;\n}\n\nconst begin = (streamId: string): State => ({ streamId, status: \"connecting\", info: undefined });\n\n/**\n * Watches a stream through the provider's client (`live.connect`), handing each picture to\n * `onFrame`, and connects again when the connection drops (see `follow`). Without a client that\n * can, or without a stream, it is `unavailable`. Stops when the component goes away or\n * `streamId` changes.\n */\nexport function useLiveStream(\n streamId: string,\n onFrame: (frame: LiveFrame) => void,\n): LiveConnection {\n const connector = useSignalcore().client?.live;\n const [state, setState] = useState(() => begin(streamId));\n const connection = useRef<WatchedStream | undefined>(undefined);\n const frames = useRef(onFrame);\n\n useEffect(() => {\n frames.current = onFrame;\n });\n\n useEffect(() => {\n if (!connector || streamId === \"\") return undefined;\n const stop = new AbortController();\n const patch = (change: Partial<State>) => {\n if (stop.signal.aborted) return;\n setState((old) => ({ ...(old.streamId === streamId ? old : begin(streamId)), ...change }));\n };\n void follow(connector, streamId, stop.signal, {\n status: (status) => {\n patch({ status });\n },\n info: (info) => {\n patch({ info });\n },\n frame: (frame) => {\n if (!stop.signal.aborted) frames.current(frame);\n },\n stream: (stream) => {\n // A follower that was stopped may still be letting go of its stream: not the new one's.\n if (!stop.signal.aborted) connection.current = stream;\n },\n });\n return () => {\n stop.abort();\n connection.current = undefined;\n };\n }, [connector, streamId]);\n\n const send = useCallback((input: LiveInput) => {\n connection.current?.send(input);\n }, []);\n\n // Until the effect has started over for a new stream, the state is still the old one's.\n const current = state.streamId === streamId ? state : begin(streamId);\n const usable = connector !== undefined && streamId !== \"\";\n return { status: usable ? current.status : \"unavailable\", info: current.info, send };\n}\n","import { useEffect, useRef } from \"react\";\n\nimport { Scoped, useMessages, useParts } from \"../SignalcoreProvider.js\";\nimport { capture } from \"./capture.js\";\nimport type { LiveStatus } from \"./follow.js\";\nimport { painterOn, type Painter } from \"./paint.js\";\nimport { useLiveStream } from \"./useLiveStream.js\";\n\nconst SHAPE = /^\\d{1,3}:\\d{1,3}$/;\nconst DEFAULT_SHAPE = \"16 / 9\";\n\nexport interface LiveViewProps {\n /** The stream to watch (`liv_...`), from a `live` surface or a browser session. */\n streamId: string;\n /** The shape of the picture as \"16:9\", held until the stream says its real size. */\n aspect?: string | undefined;\n /**\n * Whether the person may act on the stream: the pointer, the wheel and (with the focus on it)\n * the keys are then sent to it. Whether it is their turn is for the stream's producer to say.\n */\n input?: boolean | undefined;\n /** Told each time the view's state changes; `unavailable` means it cannot be watched from here. */\n onStatus?: ((status: LiveStatus) => void) | undefined;\n /** What the picture is, for those who cannot see it. */\n label?: string | undefined;\n className?: string | undefined;\n}\n\n/**\n * A live stream, watched: the pictures it sends drawn on a canvas as they arrive (the newest,\n * never a queue), sized by the stream, and a quiet word for how the connection is. A dropped\n * connection is opened again, a little later each time; one that ended or was refused is not.\n * It needs a client that can `live.connect` (the SDK's does).\n *\n * With `input`, the view takes the pointer and the keyboard once the stream says it takes input:\n * clicks, drags, the wheel and keys go to the stream in its own pixels. The canvas is then\n * reachable by the keyboard, and keys go to the stream only while it has the focus (Tab leaves).\n */\nexport function LiveView(props: LiveViewProps) {\n return (\n <Scoped>\n <Viewer {...props} />\n </Scoped>\n );\n}\n\nfunction Viewer({\n streamId,\n aspect = \"16:9\",\n input = false,\n onStatus,\n label,\n className,\n}: LiveViewProps) {\n const part = useParts();\n const messages = useMessages();\n const shape = SHAPE.test(aspect) ? aspect.replace(\":\", \" / \") : DEFAULT_SHAPE;\n const canvas = useRef<HTMLCanvasElement>(null);\n const painter = useRef<Painter | undefined>(undefined);\n const reported = useRef(onStatus);\n\n useEffect(() => {\n if (!canvas.current) return undefined;\n const drawing = painterOn(canvas.current);\n painter.current = drawing;\n return () => {\n drawing.dispose();\n painter.current = undefined;\n };\n }, []);\n\n const { status, info, send } = useLiveStream(streamId, (frame) => {\n painter.current?.paint(frame.bytes);\n });\n const interactive = input && info?.input === true;\n\n useEffect(() => {\n if (!canvas.current || !info || !interactive) return undefined;\n return capture(canvas.current, info, send);\n }, [info, interactive, send]);\n\n useEffect(() => {\n reported.current = onStatus;\n });\n useEffect(() => {\n reported.current?.(status);\n }, [status]);\n\n return (\n <div {...part(\"live\", [status, interactive && \"input\"], className)}>\n <canvas\n ref={canvas}\n role=\"img\"\n aria-label={label ?? messages.liveView}\n tabIndex={interactive ? 0 : undefined}\n width={info?.width}\n height={info?.height}\n style={info ? undefined : { aspectRatio: shape }}\n {...part(\"live__canvas\")}\n />\n <p role=\"status\" {...part(\"live__status\")}>\n <span aria-hidden {...part(\"live__dot\")} />\n {messages.liveStatus[status]}\n </p>\n </div>\n );\n}\n","/**\n * An address a model gave us, if it is safe to put in front of the user: `https://` only. An\n * image, a link and a live browser view all go through this, so no surface can point the page at\n * a `javascript:` or `data:` address, or at plain `http`.\n */\nexport function safeUrl(url: string | null | undefined): string | undefined {\n return url?.startsWith(\"https://\") ? url : undefined;\n}\n","import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n type ReactNode,\n} from \"react\";\n\ninterface BrowserFocus {\n /** A browser holds the room: the owner is acting in it, or enlarged it. */\n wide: boolean;\n /** Ask for the room; the returned function gives it back. */\n register: () => () => void;\n}\n\nconst Context = createContext<BrowserFocus>({ wide: false, register: () => () => undefined });\n\n/**\n * Where the browser the agent drives stands in the host's layout. While the agent merely works,\n * its browser is a small tile and the host keeps the room. When the owner takes the controls (a\n * hand-over, \"Tomar el control\") or enlarges the browser, it asks for the room, and a host that\n * reads `wide` can give it: the web app folds the agent's page away so they see what the agent\n * sees. A host that wraps nothing in this provider simply never has anything to give.\n */\nexport function BrowserFocusProvider({ children }: { children: ReactNode }) {\n // A count, not a set of sessions: two views of one session (the tile and a hand-over) hold\n // the room independently, and it stays while either one does.\n const [holders, setHolders] = useState(0);\n const register = useCallback(() => {\n setHolders((count) => count + 1);\n return () => {\n setHolders((count) => count - 1);\n };\n }, []);\n const value = useMemo(() => ({ wide: holders > 0, register }), [holders, register]);\n return <Context value={value}>{children}</Context>;\n}\n\nexport const useBrowserFocus = () => useContext(Context);\n\n/** Hold the room while `wanted`; it goes back when that stops, or when the view goes away. */\nexport function useBrowserRoom(wanted: boolean): void {\n const { register } = useBrowserFocus();\n useEffect(() => {\n if (wanted) return register();\n return undefined;\n }, [wanted, register]);\n}\n","import type { Schemas } from \"@signalcore/sdk\";\nimport { useEffect, useState } from \"react\";\n\nimport { safeUrl } from \"../safeUrl.js\";\nimport { useSignalcore } from \"../SignalcoreProvider.js\";\n\nconst POLL_MS = 2_000;\n\n/** What the API knows of a hosted browser, as the view shows it. */\nexport interface BrowserLook {\n /** Where the session is now: its page, its title, its live view. */\n session: Schemas[\"BrowserSessionOut\"] | undefined;\n /** The API no longer knows the session: it is over. */\n ended: boolean;\n /** The latest screenshot (an object URL), kept only while the session has no live view. */\n screenshot: string | undefined;\n}\n\nconst UNKNOWN: BrowserLook = { session: undefined, ended: false, screenshot: undefined };\n\n/**\n * Follows a hosted browser: asks the API where it is every couple of seconds, and takes its\n * screenshot while there is no live view to watch (a live URL, or `streamed`: a live stream shows\n * the page). Without a client there is nothing to ask, and the view shows what the surface itself\n * said. Polling stops when the API says it is gone.\n */\nexport function useBrowserSession(\n sessionId: string,\n knownLiveUrl: string | undefined,\n streamed = false,\n): BrowserLook {\n const browser = useSignalcore().client?.browser;\n const [look, setLook] = useState(UNKNOWN);\n\n useEffect(() => {\n if (!browser) return undefined;\n let stopped = false;\n const isStopped = () => stopped;\n let timer: ReturnType<typeof setTimeout> | undefined;\n let screenshot: string | undefined;\n\n const forget = () => {\n if (screenshot) URL.revokeObjectURL(screenshot);\n screenshot = undefined;\n };\n const follow = async () => {\n try {\n const session = await browser.get(sessionId);\n if (isStopped()) return;\n if (streamed || safeUrl(session.live_url ?? knownLiveUrl)) forget();\n else screenshot = await latest(browser, sessionId, screenshot);\n if (isStopped()) return;\n setLook({ session, ended: false, screenshot });\n timer = setTimeout(() => void follow(), POLL_MS);\n } catch {\n if (!isStopped()) setLook((old) => ({ ...old, ended: true }));\n }\n };\n\n void follow();\n return () => {\n stopped = true;\n clearTimeout(timer);\n forget();\n };\n }, [browser, sessionId, knownLiveUrl, streamed]);\n\n return look;\n}\n\n/** A new screenshot as an object URL, the old one released; the old one stays if this fails. */\nasync function latest(\n browser: { screenshot: (sessionId: string) => Promise<Uint8Array> },\n sessionId: string,\n old: string | undefined,\n): Promise<string | undefined> {\n try {\n const bytes = (await browser.screenshot(sessionId)).slice(); // a copy over a plain ArrayBuffer, which Blob takes\n const picture = URL.createObjectURL(new Blob([bytes], { type: \"image/png\" }));\n if (old) URL.revokeObjectURL(old);\n return picture;\n } catch {\n return old;\n }\n}\n","import { useState } from \"react\";\n\nimport { LiveView } from \"../live/LiveView.js\";\nimport { Button, IconButton } from \"../parts/Button.js\";\nimport { Icon } from \"../parts/Icon.js\";\nimport { safeUrl } from \"../safeUrl.js\";\nimport { Scoped, useMessages, useParts } from \"../SignalcoreProvider.js\";\nimport { useBrowserFocus, useBrowserRoom } from \"./room.js\";\nimport { useBrowserSession } from \"./useBrowserSession.js\";\n\ntype BrowserMode = \"watching\" | \"guiding\";\n\n/** The hosted browser's window is 4:3 (`DISPLAY` in the browser driver), as the tile is. */\nconst VIEWPORT = \"4:3\";\n\nexport interface BrowserViewProps {\n sessionId: string;\n /** Where the hosted browser can be watched and driven; only an `https://` address is used. */\n liveUrl?: string | undefined;\n /**\n * The live stream showing the session (`liv_...`). It is watched in preference to the live URL\n * and to screenshots, and it takes the owner's input while they have the controls. Where it\n * cannot be watched, the view goes back to what it would show without one.\n */\n streamId?: string | undefined;\n url?: string | undefined;\n title?: string | undefined;\n /** As shown: the live state of the session wins over it. */\n status?: string | undefined;\n /**\n * Whose turn it is. `watching`: the agent drives, and the owner sees a small, read-only tile\n * with what it is doing. `guiding`: the owner acts in it, large and interactive.\n */\n mode?: BrowserMode | undefined;\n /** What the agent says it is doing, and at which step (watching). */\n caption?: string | undefined;\n step?: number | undefined;\n /** How the task went, once the session is over. */\n summary?: string | undefined;\n /** The browser in play: the agent is at work in it, or it is the hand-over waiting for the owner. */\n active?: boolean | undefined;\n className?: string | undefined;\n}\n\n/**\n * A browser session the agent drives, as the owner sees it. While the agent works it is a small\n * tile: the live view (screenshots when there is none) under a cover, so it is only watched, and\n * what the agent says it is doing. The owner can enlarge it, or take the controls: the cover\n * goes and the view is theirs. In a hand-over (`guiding`) it starts that way, large. The header\n * says who is driving, and where the browser is.\n *\n * The live view is somebody else's page in a frame: it is only shown from an `https://` address,\n * and the frame is sandboxed, so what it runs cannot navigate or reach the host page. Its\n * controls are the platform's own (taking the controls is the owner's decision), so they are\n * always ours, whatever primitives the host registers.\n */\nexport function BrowserView(props: BrowserViewProps) {\n return (\n <Scoped>\n <Session {...props} />\n </Scoped>\n );\n}\n\nfunction Session({\n sessionId,\n liveUrl,\n streamId,\n url,\n title,\n status,\n mode = \"watching\",\n caption,\n step,\n summary,\n active = false,\n className,\n}: BrowserViewProps) {\n const part = useParts();\n const messages = useMessages();\n const [unwatchable, setUnwatchable] = useState<string>();\n // The stream to watch: the one the session names, until it turns out it cannot be.\n const stream = streamId === unwatchable ? undefined : streamId;\n const live = useBrowserSession(sessionId, liveUrl, stream !== undefined);\n const [expanded, setExpanded] = useState(false);\n const [taken, setTaken] = useState(false);\n const closed = live.ended || status === \"closed\";\n // The owner has the controls: it is their turn (a hand-over), or they took them.\n const yours = mode === \"guiding\" || taken || status === \"yours\";\n const large = yours || expanded;\n const covered = !closed && !yours;\n // The host gives the room while the owner acts here or has enlarged the view. A hand-over\n // that is not the one waiting for them, and a finished session, leave it alone.\n const wantsRoom = !closed && (expanded || taken || (mode === \"guiding\" && active));\n useBrowserRoom(wantsRoom);\n const spacious = useBrowserFocus().wide && wantsRoom;\n\n const pageUrl = live.session?.url ?? url ?? \"\";\n const pageTitle = live.session?.title ?? title ?? \"\";\n const watch = safeUrl(live.session?.live_url ?? liveUrl);\n const site = siteOf(pageUrl);\n const page = pageTitle || site || messages.blankPage;\n\n return (\n <figure {...part(\"browser\", [large && \"large\", spacious && \"spacious\"], className)}>\n <figcaption {...part(\"browser__header\")}>\n {!closed && (\n <div {...part(\"browser__driver\")}>\n <span\n aria-hidden\n {...part(\"browser__dot\", [yours ? \"owner\" : \"agent\", covered && active && \"live\"])}\n />\n <span {...part(\"browser__who\")}>\n {yours ? messages.youHaveControl : messages.agentBrowses}\n </span>\n <Controls\n liveUrl={watch}\n canTake={stream === undefined}\n yours={yours}\n expanded={expanded}\n onToggle={() => {\n setExpanded((value) => !value);\n }}\n onTake={() => {\n setTaken(true);\n }}\n />\n </div>\n )}\n <p title={pageUrl} {...part(\"browser__site\")}>\n {site ? (\n <>\n <strong {...part(\"browser__site-name\")}>{site}</strong>\n {pageTitle && <span> · {pageTitle}</span>}\n </>\n ) : (\n pageTitle || messages.blankPage\n )}\n </p>\n </figcaption>\n <div {...part(\"browser__screen\")}>\n {closed ? (\n <Ended summary={summary ?? \"\"} />\n ) : stream !== undefined ? (\n // The owner's input goes to the stream only while they have the controls.\n <LiveView\n streamId={stream}\n aspect={VIEWPORT}\n input={yours}\n label={messages.browserTitle(page)}\n onStatus={(state) => {\n if (state === \"unavailable\") setUnwatchable(stream);\n }}\n />\n ) : watch ? (\n <iframe\n src={watch}\n title={messages.browserTitle(page)}\n sandbox=\"allow-scripts allow-same-origin allow-forms allow-popups\"\n allow=\"clipboard-read; clipboard-write\"\n inert={covered}\n {...part(\"browser__frame\")}\n />\n ) : (\n live.screenshot && (\n <img src={live.screenshot} alt={messages.pageOf(page)} {...part(\"browser__shot\")} />\n )\n )}\n {/* Only watched: the cover keeps the pointer out of the live view, `inert` the keyboard. */}\n {covered && stream === undefined && <div aria-hidden {...part(\"browser__cover\")} />}\n </div>\n {covered && <Caption step={step} text={caption ?? \"\"} />}\n </figure>\n );\n}\n\n/**\n * What the owner can do with the view: enlarge it (while it is the agent's), open it in a tab\n * of its own, or take the controls from the agent (only a live view can be acted in, and a\n * stream is handed over by the agent's request, not taken).\n */\nfunction Controls({\n liveUrl,\n canTake,\n yours,\n expanded,\n onToggle,\n onTake,\n}: {\n liveUrl: string | undefined;\n canTake: boolean;\n yours: boolean;\n expanded: boolean;\n onToggle: () => void;\n onTake: () => void;\n}) {\n const part = useParts();\n const messages = useMessages();\n return (\n <div {...part(\"browser__controls\")}>\n {!yours && (\n // On a phone the small tile already fills the screen: there is nothing to enlarge.\n <IconButton\n label={expanded ? messages.shrink : messages.enlarge}\n modifier=\"enlarge\"\n onClick={onToggle}\n >\n <Icon name={expanded ? \"arrowsIn\" : \"arrowsOut\"} />\n </IconButton>\n )}\n {liveUrl && (\n <IconButton\n label={messages.openInTab}\n onClick={() => {\n window.open(liveUrl, \"_blank\", \"noopener\");\n }}\n >\n <Icon name=\"squareOut\" />\n </IconButton>\n )}\n {liveUrl && canTake && !yours && (\n <Button size=\"sm\" variant=\"primary\" onClick={onTake}>\n {messages.takeControl}\n </Button>\n )}\n </div>\n );\n}\n\n/** What the agent says it is doing, in the room of two lines, so the tile keeps its height. */\nfunction Caption({ step, text }: { step: number | undefined; text: string }) {\n const part = useParts();\n const messages = useMessages();\n const line = text || messages.agentBrowsing;\n return (\n <p {...part(\"browser__caption\")}>\n {step !== undefined && (\n <span {...part(\"browser__step\")}>\n <span {...part(\"sr-only\")}>{messages.step}</span>\n {step}\n </span>\n )}\n {/* Keyed by the line: a new one settles in. */}\n <span key={line} {...part(\"browser__line\")}>\n {line}\n </span>\n </p>\n );\n}\n\n/** The browser is over: the words, and how the task went when the agent said. */\nfunction Ended({ summary }: { summary: string }) {\n const part = useParts();\n const messages = useMessages();\n return (\n <div {...part(\"browser__ended\")}>\n <div>\n <p {...part(\"browser__ended-title\")}>{messages.sessionEnded}</p>\n {summary && <p {...part(\"browser__ended-summary\")}>{summary}</p>}\n </div>\n </div>\n );\n}\n\n/** \"zadarma.com\" for a page URL; nothing for about:blank or an empty one. */\nfunction siteOf(url: string): string {\n try {\n const { protocol, host } = new URL(url);\n return protocol.startsWith(\"http\") ? host : \"\";\n } catch {\n return \"\";\n }\n}\n","import { BrowserView } from \"../../browser/BrowserView.js\";\nimport { useScene, type TemplateProps } from \"../scene.js\";\n\n/**\n * The browser session an agent drives, watched live (on its stream when the surface names one);\n * nothing in it comes back as an action.\n */\nexport function Browser({ read }: TemplateProps) {\n const { active } = useScene();\n return (\n <BrowserView\n sessionId={read.text(\"session_id\") ?? \"\"}\n liveUrl={read.text(\"live_url\")}\n url={read.text(\"url\")}\n title={read.text(\"title\")}\n status={read.text(\"status\")}\n streamId={read.text(\"stream_id\")}\n caption={read.text(\"caption\")}\n step={read.count(\"step\")}\n summary={read.text(\"summary\")}\n active={active}\n />\n );\n}\n","import { useParts } from \"../../SignalcoreProvider.js\";\nimport type { TemplateProps } from \"../scene.js\";\nimport type { Point } from \"../types.js\";\n\n/**\n * Numbers to compare, as bars in proportion to the largest. Every `kind` (bar, line, donut) reads\n * as bars for now: the same figures, drawn the one way that never hides a value.\n */\nexport function Chart({ read }: TemplateProps) {\n const part = useParts();\n const title = read.text(\"title\");\n const series = read.list<Point>(\"series\");\n const top = Math.max(...series.map((point) => point.value), 0) || 1;\n return (\n <figure {...part(\"chart\")}>\n {title && <figcaption {...part(\"chart__title\")}>{title}</figcaption>}\n {series.map((point) => (\n <div key={point.label} {...part(\"chart__row\")}>\n <span {...part(\"chart__label\")}>{point.label}</span>\n <span\n {...part(\"chart__bar\")}\n style={{ width: `${Math.max((point.value / top) * 100, 2)}%` }}\n />\n <span {...part(\"chart__value\")}>{point.value}</span>\n </div>\n ))}\n </figure>\n );\n}\n","import { useParts } from \"../../SignalcoreProvider.js\";\nimport { useScene, type TemplateProps } from \"../scene.js\";\nimport type { Option } from \"../types.js\";\n\n/** Pick one: each option is a button, and the pick goes back as the `choose` action. */\nexport function ChoiceList({ read }: TemplateProps) {\n const part = useParts();\n const { act } = useScene();\n const name = read.text(\"action\") ?? \"choose\";\n return (\n <div {...part(\"choices\")}>\n {read.list<Option>(\"options\").map((option) => (\n <button\n key={option.id}\n type=\"button\"\n disabled={!act}\n {...part(\"choice\")}\n onClick={() => {\n act?.({ name, data: { option: option.id }, label: option.label });\n }}\n >\n <span {...part(\"choice__label\")}>{option.label}</span>\n {option.description && <span {...part(\"choice__description\")}>{option.description}</span>}\n </button>\n ))}\n </div>\n );\n}\n","import type { Locale } from \"../messages/index.js\";\n\n/** A value as a table cell or an answer reads it. */\nexport function display(value: unknown): string {\n if (value === null || value === undefined) return \"\";\n if (typeof value === \"string\") return value;\n if (typeof value === \"number\" || typeof value === \"boolean\") return String(value);\n return JSON.stringify(value);\n}\n\n/** An ISO moment as a slot reads: \"mar 6, 10:00\", in the locale's language and the reader's zone. */\nexport function when(start: string, locale: Locale): string {\n const date = new Date(start);\n return Number.isNaN(date.getTime())\n ? start\n : date.toLocaleString(locale, {\n weekday: \"short\",\n day: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n}\n\n/**\n * What a submitted form says in words, for the conversation: \"nombre: Ana, personas: 2\", or\n * `none` (\"Enviado\") when it held nothing.\n */\nexport function summarize(values: Record<string, unknown>, none: string): string {\n const line = Object.entries(values)\n .map(([key, value]) => `${key}: ${display(value)}`)\n .join(\", \");\n return line || none;\n}\n","import { useState } from \"react\";\n\nimport { usePrimitives } from \"../../primitives.js\";\nimport { useMessages, useParts, useSignalcore } from \"../../SignalcoreProvider.js\";\nimport { summarize } from \"../format.js\";\nimport { useScene, type TemplateProps } from \"../scene.js\";\nimport type { FormField } from \"../types.js\";\n\n/** Details to collect; sending them goes back as the `submit` action, never as typed text. */\nexport function Form({ read }: TemplateProps) {\n const part = useParts();\n const messages = useMessages();\n const { Button } = usePrimitives();\n const { patterns } = useSignalcore();\n const { act } = useScene();\n const [values, setValues] = useState<Record<string, unknown>>({});\n const set = (name: string, value: unknown) => {\n setValues((old) => ({ ...old, [name]: value }));\n };\n return (\n <form\n {...part(\"form\")}\n onSubmit={(event) => {\n event.preventDefault();\n act?.({\n name: read.text(\"action\") ?? \"submit\",\n data: values,\n label: summarize(values, messages.sent),\n });\n }}\n >\n {read.list<FormField>(\"fields\").map((field) => (\n <label key={field.name} {...part(\"field\")}>\n {field.label}\n <Control field={field} set={set} />\n </label>\n ))}\n <div {...part(\"form__actions\", [patterns.actions])}>\n <Button type=\"submit\" variant=\"primary\" size=\"sm\" disabled={!act}>\n {read.text(\"submit_label\") ?? messages.send}\n </Button>\n </div>\n </form>\n );\n}\n\nfunction Control({\n field,\n set,\n}: {\n field: FormField;\n set: (name: string, value: unknown) => void;\n}) {\n const part = useParts();\n const { Input, Select } = usePrimitives();\n switch (field.kind) {\n case \"select\":\n return (\n <Select\n name={field.name}\n options={field.options ?? []}\n required={field.required}\n onChange={(value) => {\n set(field.name, value);\n }}\n />\n );\n case \"checkbox\":\n return (\n <input\n type=\"checkbox\"\n name={field.name}\n {...part(\"checkbox\")}\n onChange={(event) => {\n set(field.name, event.target.checked);\n }}\n />\n );\n default:\n return (\n <Input\n name={field.name}\n type={field.kind}\n required={field.required}\n onChange={(value) => {\n set(field.name, field.kind === \"number\" ? Number(value) : value);\n }}\n />\n );\n }\n}\n","import { useParts } from \"../../SignalcoreProvider.js\";\nimport type { TemplateProps } from \"../scene.js\";\nimport type { Pair } from \"../types.js\";\n\n/** Facts as label and value: a quote, an order. */\nexport function KeyValue({ read }: TemplateProps) {\n const part = useParts();\n return (\n <dl {...part(\"pairs\")}>\n {read.list<Pair>(\"items\").map((pair, index) => (\n <div key={index} {...part(\"pairs__row\")}>\n <dt {...part(\"pairs__label\")}>{pair.label}</dt>\n <dd {...part(\"pairs__value\")}>{pair.value}</dd>\n </div>\n ))}\n </dl>\n );\n}\n","import { usePrimitives } from \"../../primitives.js\";\nimport { useParts } from \"../../SignalcoreProvider.js\";\nimport type { TemplateProps } from \"../scene.js\";\n\nexport function Column({ children }: TemplateProps) {\n const part = useParts();\n return <div {...part(\"column\")}>{children}</div>;\n}\n\nexport function Row({ children }: TemplateProps) {\n const part = useParts();\n return <div {...part(\"row\")}>{children}</div>;\n}\n\n/** The one box of the catalog: a title and what it holds, drawn with the host's `Card` if it has one. */\nexport function Card({ read, children }: TemplateProps) {\n const { Card: Box } = usePrimitives();\n return (\n <Box title={read.text(\"title\")} subtitle={read.text(\"subtitle\")}>\n {children}\n </Box>\n );\n}\n","import { LiveView } from \"../../live/LiveView.js\";\nimport type { TemplateProps } from \"../scene.js\";\n\n/**\n * Live output of a run (a preview, a video being cut) watched as it happens; nothing in it comes\n * back as an action, what a person does on it travels on the stream's own socket.\n */\nexport function Live({ read }: TemplateProps) {\n return (\n <LiveView\n streamId={read.text(\"stream_id\") ?? \"\"}\n aspect={read.text(\"aspect\")}\n input={read.flag(\"input\")}\n />\n );\n}\n","import { safeUrl } from \"../../safeUrl.js\";\nimport { useParts } from \"../../SignalcoreProvider.js\";\nimport type { TemplateProps } from \"../scene.js\";\n\n/** A picture. An address that is not `https://` leaves it without a source, so nothing loads. */\nexport function Image({ read }: TemplateProps) {\n const part = useParts();\n return <img src={safeUrl(read.text(\"url\"))} alt={read.text(\"alt\") ?? \"\"} {...part(\"image\")} />;\n}\n\n/** A link that opens in a tab of its own; an address that is not `https://` is no link. */\nexport function Link({ read }: TemplateProps) {\n const part = useParts();\n return (\n <a href={safeUrl(read.text(\"url\"))} target=\"_blank\" rel=\"noreferrer noopener\" {...part(\"link\")}>\n {read.text(\"label\")}\n </a>\n );\n}\n","import { usePrimitives } from \"../../primitives.js\";\nimport { useLanguage, useParts } from \"../../SignalcoreProvider.js\";\nimport { when } from \"../format.js\";\nimport { useScene, type TemplateProps } from \"../scene.js\";\nimport type { TimeSlot } from \"../types.js\";\n\n/** Free times to book: each is a button, and the pick goes back as the `book` action. */\nexport function SlotPicker({ read }: TemplateProps) {\n const part = useParts();\n const { locale } = useLanguage();\n const { Button } = usePrimitives();\n const { act } = useScene();\n const name = read.text(\"action\") ?? \"book\";\n return (\n <div {...part(\"slots\")}>\n {read.list<TimeSlot>(\"slots\").map((slot) => {\n const label = slot.label ?? when(slot.start, locale);\n return (\n <Button\n key={slot.id}\n size=\"sm\"\n disabled={!act}\n onClick={() => {\n act?.({ name, data: { slot: slot.id, start: slot.start }, label });\n }}\n >\n {label}\n </Button>\n );\n })}\n </div>\n );\n}\n","import { usePrimitives } from \"../../primitives.js\";\nimport { display } from \"../format.js\";\nimport type { TemplateProps } from \"../scene.js\";\nimport type { TableColumn } from \"../types.js\";\n\n/** Rows of records, one column per `columns` entry; drawn with the host's `Table` if it has one. */\nexport function DataTable({ read }: TemplateProps) {\n const { Table } = usePrimitives();\n const columns = read.list<TableColumn>(\"columns\");\n const rows = read\n .list<Record<string, unknown>>(\"rows\")\n .map((row) =>\n Object.fromEntries(columns.map((column) => [column.key, display(row[column.key])])),\n );\n return <Table columns={columns} rows={rows} />;\n}\n","import { useParts } from \"../../SignalcoreProvider.js\";\nimport type { TemplateProps } from \"../scene.js\";\n\nconst VARIANTS = new Set([\"heading\", \"caption\"]);\n\nexport function Text({ read }: TemplateProps) {\n const part = useParts();\n const variant = read.text(\"variant\");\n return (\n <p {...part(\"text\", [variant && VARIANTS.has(variant) && variant])}>{read.text(\"text\")}</p>\n );\n}\n\nconst TONES = new Set([\"info\", \"success\", \"warning\", \"error\"]);\n\n/** A line the user should not miss, tinted by its tone (always in words as well). */\nexport function Callout({ read }: TemplateProps) {\n const part = useParts();\n const tone = read.text(\"tone\");\n return <p {...part(\"callout\", [tone && TONES.has(tone) ? tone : \"info\"])}>{read.text(\"text\")}</p>;\n}\n","import type { ComponentType } from \"react\";\n\nimport type { TemplateProps } from \"../scene.js\";\nimport { Browser } from \"./Browser.js\";\nimport { Chart } from \"./Chart.js\";\nimport { ChoiceList } from \"./Choices.js\";\nimport { Form } from \"./Form.js\";\nimport { KeyValue } from \"./KeyValue.js\";\nimport { Card, Column, Row } from \"./Layout.js\";\nimport { Live } from \"./Live.js\";\nimport { Image, Link } from \"./Media.js\";\nimport { SlotPicker } from \"./Slots.js\";\nimport { DataTable } from \"./Table.js\";\nimport { Callout, Text } from \"./Text.js\";\n\n/**\n * The catalog `signalcore-basic.v1`, component by component: the only things a surface can draw.\n * A name that is not here is drawn by nothing, which is what keeps a model from adding markup.\n */\nexport const TEMPLATES: ReadonlyMap<string, ComponentType<TemplateProps>> = new Map([\n [\"Column\", Column],\n [\"Row\", Row],\n [\"Card\", Card],\n [\"Text\", Text],\n [\"KeyValue\", KeyValue],\n [\"DataTable\", DataTable],\n [\"Chart\", Chart],\n [\"Callout\", Callout],\n [\"Image\", Image],\n [\"Link\", Link],\n [\"ChoiceList\", ChoiceList],\n [\"SlotPicker\", SlotPicker],\n [\"Form\", Form],\n [\"Browser\", Browser],\n [\"Live\", Live],\n]);\n","import type { ComponentType, ReactNode } from \"react\";\n\nimport type { HostProps } from \"../host.js\";\nimport { PRIMITIVE_ONLY } from \"../primitives.js\";\nimport { useSignalcore } from \"../SignalcoreProvider.js\";\nimport { bound, readerOf } from \"./bindings.js\";\nimport { isHostNode } from \"./check.js\";\nimport { HostNode } from \"./HostNode.js\";\nimport { useScene, type Scene } from \"./scene.js\";\nimport { TEMPLATES } from \"./templates/index.js\";\nimport type { ComponentData } from \"./types.js\";\n\n/**\n * One component of the surface: the host's own (a `host` node, see `HostNode`), or a catalog\n * component drawn by the host's component of that name, else by ours.\n */\nexport function Node({ id }: { id: string }) {\n const node = useScene().byId.get(id);\n if (!node) return null;\n return isHostNode(node) ? <HostNode node={node} /> : <Catalog node={node} />;\n}\n\n/**\n * A catalog component, drawn by the host's component of that name, else by ours. The\n * primitives (`Button`, `Table`…) are not catalog names: a host registering one changes what the\n * catalog is drawn with, never what a surface may name.\n */\nfunction Catalog({ node }: { node: ComponentData }) {\n const scene = useScene();\n const { components } = useSignalcore();\n\n const read = readerOf(node, scene.data);\n const ids = read.list<string>(\"children\");\n const children = ids.length > 0 ? ids.map((child) => <Node key={child} id={child} />) : null;\n\n if (Object.hasOwn(components, node.component) && !PRIMITIVE_ONLY.has(node.component)) {\n const Host = components[node.component] as ComponentType<HostProps>;\n return <Host {...hostProps(node, scene, children)} />;\n }\n const Template = TEMPLATES.get(node.component);\n // The templates are components of this module, picked from a fixed map: none is made here.\n // eslint-disable-next-line react-hooks/static-components\n return Template ? <Template read={read}>{children}</Template> : null;\n}\n\n/** The agent's properties, bindings resolved; ours (`children`, `onAction`) cannot be overridden. */\nfunction hostProps(node: ComponentData, scene: Scene, children: ReactNode): HostProps {\n const props: HostProps = {};\n for (const [name, value] of Object.entries(node)) {\n if (name !== \"id\" && name !== \"component\") props[name] = bound(value, scene.data);\n }\n props.children = children ?? undefined;\n props.onAction = scene.act;\n return props;\n}\n","import { Component, type ReactNode } from \"react\";\n\ninterface Props {\n /** What to show instead when something below throws. */\n fallback: ReactNode;\n /** A new value tries the children again; the same one keeps the fallback. */\n resetKey: unknown;\n children: ReactNode;\n}\n\n/**\n * A surface comes from a model: whatever is wrong with it, it must never take the page down. If\n * anything below throws while drawing, the surface shows its text twin and the rest of the page\n * carries on.\n */\nexport class SurfaceBoundary extends Component<Props, { failed: boolean }> {\n override state = { failed: false };\n\n static getDerivedStateFromError(): { failed: boolean } {\n return { failed: true };\n }\n\n override componentDidUpdate(previous: Props): void {\n if (this.state.failed && previous.resetKey !== this.props.resetKey) {\n this.setState({ failed: false });\n }\n }\n\n override render(): ReactNode {\n return this.state.failed ? this.props.fallback : this.props.children;\n }\n}\n","import { useEffect, useMemo } from \"react\";\n\nimport { warnInDevelopment } from \"../development.js\";\nimport { Scoped, useMessages, useParts, useSignalcore } from \"../SignalcoreProvider.js\";\nimport { problemWith, twinOf, unregisteredHosts } from \"./check.js\";\nimport { registeredHosts } from \"./hosts.js\";\nimport { Node } from \"./Node.js\";\nimport { SceneContext, type Scene } from \"./scene.js\";\nimport { SurfaceBoundary } from \"./SurfaceBoundary.js\";\nimport { TEMPLATES } from \"./templates/index.js\";\nimport type { SurfaceAction, SurfaceData } from \"./types.js\";\n\nexport interface SurfaceProps {\n surface: SurfaceData;\n /**\n * What the user did on the surface (a pick, a form), in the shape the API's `Action` expects.\n * Without it the surface is a record of what was shown: nothing on it can be pressed.\n */\n onAction?: ((action: SurfaceAction) => void) | undefined;\n /** The agent is at work on it now: a browser in it shows it working. */\n active?: boolean | undefined;\n}\n\n/**\n * Draws what an agent shows: a surface of the `signalcore-basic.v1` catalog (see\n * `signalcore_core.ui`). Only catalog components exist here, styled by us, plus the host's own\n * where the provider registers them; a surface is data, never code. Picks and form submissions\n * go back as an action, never as typed text.\n *\n * A surface that cannot be drawn (a damaged payload, a component nobody here knows) or whose\n * drawing throws shows its text twin instead, so one bad surface never takes the page down.\n */\nexport function Surface(props: SurfaceProps) {\n return (\n <Scoped>\n <Checked {...props} />\n </Scoped>\n );\n}\n\nfunction Checked({ surface, onAction, active = false }: SurfaceProps) {\n const { components } = useSignalcore();\n const messages = useMessages();\n const hosts = useMemo(() => registeredHosts(components), [components]);\n const known = useMemo(() => new Set([...TEMPLATES.keys(), ...hosts]), [hosts]);\n const problem = problemWith(surface, known, hosts);\n const text = twinOf(surface, messages.cannotShow);\n const missing = unregisteredHosts(surface, hosts).join('\", \"');\n useEffect(() => {\n if (missing) {\n warnInDevelopment(\n `<Surface> shows its text twin: it names the host component \"${missing}\", which ` +\n \"SignalcoreProvider's `components` does not register.\",\n );\n }\n }, [missing]);\n if (problem !== null) return <TextTwin text={text} problem={problem} />;\n return (\n <SurfaceBoundary fallback={<TextTwin text={text} />} resetKey={surface}>\n <Drawn surface={surface} onAction={onAction} active={active} />\n </SurfaceBoundary>\n );\n}\n\ninterface DrawnProps {\n surface: SurfaceData;\n onAction: SurfaceProps[\"onAction\"];\n active: boolean;\n}\n\nfunction Drawn({ surface, onAction, active }: DrawnProps) {\n const part = useParts();\n const scene = useMemo<Scene>(\n () => ({\n byId: new Map(surface.components.map((component) => [component.id, component])),\n data: surface.data ?? {},\n act:\n onAction &&\n ((action) => {\n onAction({ ...action, surface_id: surface.id });\n }),\n active,\n }),\n [surface, onAction, active],\n );\n return (\n <SceneContext value={scene}>\n <div {...part(\"surface\")} role=\"group\" aria-label={surface.fallback_text}>\n <Node id={surface.root} />\n </div>\n </SceneContext>\n );\n}\n\n/** The surface in words. `problem` says why, for whoever looks at the page's source. */\nfunction TextTwin({ text, problem }: { text: string; problem?: string }) {\n const part = useParts();\n return (\n <p {...part(\"surface\", [\"text\"])} data-problem={problem}>\n {text}\n </p>\n );\n}\n","import type { ComponentType } from \"react\";\n\n/**\n * The windows the app draws from facts, never generates (ADR 0011). The first four are the ones\n * an agent may open for a person (`signalcore_core.ui.windows`, which this mirrors: the kinds are\n * the engine's, so a `ui.window` event names one of them); `browser` and `live` are windows too,\n * but the platform opens those as a run shows what it drives, and the agent never asks for them.\n */\nexport const DEFAULT_WINDOW_KINDS = [\n \"chat\",\n \"automations\",\n \"flow\",\n \"voice\",\n \"browser\",\n \"live\",\n] as const;\n\nexport type DefaultWindowKind = (typeof DEFAULT_WINDOW_KINDS)[number];\n\n/**\n * The windows an end user of the business may be shown (ADR 0009): the conversation and the\n * voice. The ones about the business itself (what it automates, how the agent is built, the\n * browser it drives) are its owner's, and need an owner's credential: the engine does not offer\n * them to an end user's agent, and the shell does not open them for an end user's client.\n */\nexport const END_USER_WINDOW_KINDS: readonly DefaultWindowKind[] = [\"chat\", \"voice\"];\n\n/** Who is looking: the business's owner (or its team), or a person the business serves. */\nexport type Viewer = \"owner\" | \"end_user\";\n\nexport function isDefaultWindowKind(value: unknown): value is DefaultWindowKind {\n return DEFAULT_WINDOW_KINDS.some((kind) => kind === value);\n}\n\n/** The kinds of window this viewer may be shown. */\nexport function kindsFor(viewer: Viewer): readonly DefaultWindowKind[] {\n return viewer === \"owner\" ? DEFAULT_WINDOW_KINDS : END_USER_WINDOW_KINDS;\n}\n\n/**\n * What a component that draws a default window is given by the shell. Every kind takes the same\n * props, so a host registers its own for any kind, and the windows that live in other entries\n * (`FlowWindow` from `@signalcore/ui/flow`, `VoiceWindow` from `@signalcore/ui/voice`) are\n * registered as they are: what they do not read, they ignore.\n */\nexport interface DefaultWindowProps {\n agentId: string;\n /** The conversation the shell speaks in; the voice speaks in the same one. */\n thread: string | undefined;\n /** What the window is called: its title, for someone who cannot see it. */\n label: string;\n /**\n * What the agent said the window shows, when it opened it (`ui.window`): the text twin, for a\n * window that is drawn by no component here. Absent for a window the host opened.\n */\n fallbackText: string | undefined;\n /**\n * What the host opened the window with, for the kinds that need more than the agent can say:\n * `sessionId` for a `browser`, `streamId` (and `aspect`) for a `live`.\n */\n params: Readonly<Record<string, string>>;\n className?: string | undefined;\n}\n\n/** The components that draw the default windows, by kind. A kind with none shows its text twin. */\nexport type DefaultWindowComponents = Partial<\n Record<DefaultWindowKind, ComponentType<DefaultWindowProps>>\n>;\n","import { surfaceOf } from \"../surface/check.js\";\nimport type { Placement, SurfaceData } from \"../surface/types.js\";\nimport type { RunEvent } from \"../stream/reduce.js\";\nimport { isDefaultWindowKind, type DefaultWindowKind } from \"./kinds.js\";\n\n/** The conversation is a window every stage has, first in the order, and it cannot be closed. */\nexport const CHAT_ID: DefaultWindowKind = \"chat\";\n\n/** How many closed windows the stage remembers, for the person to reopen. */\nconst MAX_CLOSED = 8;\n\ninterface Opened {\n /** Stable for as long as the window is the same one: its slot, or its kind. */\n id: string;\n title: string;\n /** When it was opened (milliseconds, the host's clock); a reopened window starts again. */\n openedAt: number;\n}\n\n/**\n * A page the agent composed and placed (`Surface.window`): the last surface of its slot. Nothing\n * is patched in place; a new surface in the slot replaces this one.\n */\nexport interface GeneratedWindow extends Opened {\n kind: \"surface\";\n slot: string;\n surface: SurfaceData;\n}\n\n/** A window the app draws from facts, never generated (`chat`, `automations`, `flow`…). */\nexport interface DefaultWindow extends Opened {\n kind: DefaultWindowKind;\n /** The agent's words for what the window shows, when it opened it: the window's text twin. */\n fallbackText: string | undefined;\n /** What the host opened it with (`sessionId` of a browser, `streamId` of a live stream). */\n params: Readonly<Record<string, string>>;\n}\n\nexport type AgentWindow = GeneratedWindow | DefaultWindow;\n\nexport const isDefault = (window: AgentWindow): window is DefaultWindow =>\n window.kind !== \"surface\";\n\n/** What a default window is called when nobody named it. */\nexport type TitleOf = (kind: DefaultWindowKind) => string;\n\n/** The state of a stage, derived from facts and from what the person did; see `reduce`. */\nexport interface WindowsState {\n /** The open windows, in the order they were opened; the conversation is the first. */\n windows: AgentWindow[];\n /** The one on the stage. */\n focusedId: string;\n /**\n * The windows the person closed, the latest first, for them to reopen. A closed window stays\n * closed until they reopen it or the agent puts something new in it: the same surface or\n * event reaching the stage again (a history read twice) does not bring it back.\n */\n closed: AgentWindow[];\n /** The default windows this viewer may be shown; the others are never opened. */\n allowed: readonly DefaultWindowKind[];\n titleOf: TitleOf;\n /** The surfaces and journal events already dealt with, so nothing is placed twice. */\n seen: ReadonlySet<string>;\n}\n\nexport interface BeginOptions {\n /** Default windows to open besides the conversation; the first one listed takes the stage. */\n initial: readonly DefaultWindowKind[];\n allowed: readonly DefaultWindowKind[];\n titleOf: TitleOf;\n at: number;\n}\n\nexport type Action =\n /** The agent showed these surfaces; the ones with a window are placed (not taking the stage if `quiet`). */\n | { type: \"place\"; surfaces: readonly SurfaceData[]; quiet: boolean; at: number }\n /** A run's journal, from the start or with more of it: what it placed and opened. */\n | { type: \"journal\"; runId: string; events: readonly RunEvent[]; at: number }\n | {\n type: \"open\";\n kind: DefaultWindowKind;\n title?: string | undefined;\n fallbackText?: string | undefined;\n params?: Readonly<Record<string, string>> | undefined;\n at: number;\n }\n | { type: \"focus\"; id: string }\n | { type: \"close\"; id: string }\n | { type: \"reopen\"; id: string; at: number };\n\nexport function begin({ initial, allowed, titleOf, at }: BeginOptions): WindowsState {\n // The conversation is the window every viewer has.\n const permitted = allowed.includes(CHAT_ID) ? allowed : [CHAT_ID, ...allowed];\n const first: WindowsState = {\n windows: [],\n focusedId: CHAT_ID,\n closed: [],\n allowed: permitted,\n titleOf,\n seen: new Set(),\n };\n const opened = [CHAT_ID, ...initial].reduce<WindowsState>(\n (state, kind) => open(state, { kind, at }),\n first,\n );\n const listed = initial.find((kind) => permitted.includes(kind));\n return { ...opened, focusedId: listed ?? CHAT_ID };\n}\n\nexport function reduce(state: WindowsState, action: Action): WindowsState {\n switch (action.type) {\n case \"place\":\n return action.surfaces.reduce(\n (now, surface) => place(now, surface, action.quiet, action.at),\n state,\n );\n case \"journal\":\n return action.events.reduce(\n (now, event, index) => hear(now, `${action.runId}#${index}`, event, action.at),\n state,\n );\n case \"open\":\n return open(state, action);\n case \"focus\":\n return state.windows.some((window) => window.id === action.id)\n ? { ...state, focusedId: action.id }\n : state;\n case \"close\":\n return close(state, action.id);\n case \"reopen\": {\n const window = state.closed.find((each) => each.id === action.id);\n if (!window) return state;\n return {\n ...state,\n windows: [...state.windows, { ...window, openedAt: action.at }],\n closed: state.closed.filter((each) => each.id !== action.id),\n focusedId: window.id,\n };\n }\n }\n}\n\n/** A surface the agent showed: a window if it says where, replacing what its slot had. */\nfunction place(\n state: WindowsState,\n surface: SurfaceData,\n quiet: boolean,\n at: number,\n): WindowsState {\n const placement = placementOf(surface);\n if (!placement || state.seen.has(surface.id)) return state;\n const id = `slot:${placement.slot}`;\n const before = state.windows.find((window) => window.id === id);\n const window: GeneratedWindow = {\n id,\n kind: \"surface\",\n slot: placement.slot,\n title: placement.title,\n surface,\n openedAt: before?.openedAt ?? at,\n };\n return {\n ...state,\n windows: withWindow(state.windows, window),\n closed: state.closed.filter((each) => each.id !== id),\n focusedId: quiet ? state.focusedId : id,\n seen: remembering(state.seen, surface.id),\n };\n}\n\n/** One event of a run's journal; `key` is where it came from, so a replay changes nothing. */\nfunction hear(state: WindowsState, key: string, event: RunEvent, at: number): WindowsState {\n if (state.seen.has(key)) return state;\n const heard = { ...state, seen: remembering(state.seen, key) };\n if (event.type === \"ui.surface\") {\n const surface = surfaceOf(event.surface);\n return surface ? place(heard, surface, false, at) : heard;\n }\n if (event.type !== \"ui.window\" || !isDefaultWindowKind(event.kind)) return heard;\n const title = event.title?.trim();\n return open(heard, {\n kind: event.kind,\n title: title === \"\" ? undefined : title,\n fallbackText: event.fallback_text,\n at,\n });\n}\n\ninterface Opening {\n kind: DefaultWindowKind;\n title?: string | undefined;\n fallbackText?: string | undefined;\n params?: Readonly<Record<string, string>> | undefined;\n at: number;\n}\n\n/**\n * Opens a default window and puts it on the stage; one that is open already is only brought\n * forward (with a new title or words if it came with some). A kind this viewer may not be shown\n * is not opened.\n */\nfunction open(state: WindowsState, opening: Opening): WindowsState {\n const { kind } = opening;\n if (!state.allowed.includes(kind)) return state;\n const before = state.windows.find(\n (window): window is DefaultWindow => isDefault(window) && window.id === kind,\n );\n const window: DefaultWindow = {\n id: kind,\n kind,\n title: opening.title ?? before?.title ?? state.titleOf(kind),\n fallbackText: opening.fallbackText ?? before?.fallbackText,\n params: opening.params ?? before?.params ?? {},\n openedAt: before?.openedAt ?? opening.at,\n };\n return {\n ...state,\n windows: withWindow(state.windows, window),\n closed: state.closed.filter((each) => each.id !== kind),\n focusedId: kind,\n };\n}\n\n/** Closes a window; the stage goes to the one opened before it if it was on it. */\nfunction close(state: WindowsState, id: string): WindowsState {\n const index = state.windows.findIndex((window) => window.id === id);\n const window = state.windows[index];\n if (!window || window.id === CHAT_ID) return state;\n const windows = state.windows.filter((each) => each.id !== id);\n return {\n ...state,\n windows,\n closed: [window, ...state.closed].slice(0, MAX_CLOSED),\n focusedId: state.focusedId === id ? (windows[index - 1]?.id ?? CHAT_ID) : state.focusedId,\n };\n}\n\n/** The window where its place already is, else at the end. */\nfunction withWindow(windows: AgentWindow[], window: AgentWindow): AgentWindow[] {\n return windows.some((each) => each.id === window.id)\n ? windows.map((each) => (each.id === window.id ? window : each))\n : [...windows, window];\n}\n\nconst remembering = (seen: ReadonlySet<string>, key: string): ReadonlySet<string> =>\n new Set(seen).add(key);\n\n/**\n * Where a surface says it goes, if it does, with the title the window will have: the one it was\n * placed with, else its slot. The payload is a model's, so it is read defensively.\n */\nexport function placementOf(surface: SurfaceData): Placement | undefined {\n const placement: unknown = surface.window;\n if (typeof placement !== \"object\" || placement === null) return undefined;\n const { slot, title } = placement as Record<string, unknown>;\n if (typeof slot !== \"string\" || slot === \"\") return undefined;\n const named = typeof title === \"string\" ? title.trim() : \"\";\n return { slot, title: named === \"\" ? slot : named };\n}\n","import { createContext, useContext } from \"react\";\n\n/**\n * Brings the window of a slot to the stage, opening it again if the person closed it. A shell\n * (`AgentSpace`) provides it; where there is none, the chat has no stage to point at, and a\n * surface the agent placed in a window is drawn in the transcript, as it always was.\n */\nexport type Reveal = (slot: string) => void;\n\nexport const RevealContext = createContext<Reveal | undefined>(undefined);\n\n/** The way to bring a window forward, when the chat is part of a shell; else nothing. */\nexport function useReveal(): Reveal | undefined {\n return useContext(RevealContext);\n}\n","import { memo } from \"react\";\n\nimport { useMessages, useParts } from \"../SignalcoreProvider.js\";\nimport { Surface } from \"../surface/Surface.js\";\nimport type { Placement, SurfaceAction } from \"../surface/types.js\";\nimport { placementOf } from \"../windows/reduce.js\";\nimport { useReveal, type Reveal } from \"../windows/reveal.js\";\nimport type { ChatMessage } from \"./types.js\";\n\nexport interface MessageRowProps {\n message: ChatMessage;\n /** The same side said the one before: they sit close together. */\n joined: boolean;\n /**\n * What the person does on this message's surfaces. Without it they are a record of what was\n * shown: only the latest message of a quiet conversation takes a pick.\n */\n onAction?: ((action: SurfaceAction) => void) | undefined;\n}\n\n/**\n * One message: the words (kept as written, line breaks included) and what the agent drew with\n * them. Its surfaces are the catalog's, drawn by `Surface`, which shows the text twin of any it\n * cannot draw. A person who cannot see the page hears who said it.\n *\n * A surface the agent placed in a window (`Surface.window`) is not drawn here when the chat is\n * part of a shell: the window has it, and the transcript says where, with a way to go there.\n * On its own, a chat has no windows, so the surface is drawn in the message.\n */\nexport const MessageRow = memo(function MessageRow({ message, joined, onAction }: MessageRowProps) {\n const part = useParts();\n const messages = useMessages();\n const reveal = useReveal();\n return (\n <li {...part(\"message\", [message.role, joined && \"joined\"])}>\n <span {...part(\"sr-only\")}>\n {message.role === \"person\" ? messages.you : messages.theAgent}:{\" \"}\n </span>\n {message.text !== \"\" && <p {...part(\"message__text\")}>{message.text}</p>}\n {message.surfaces.map((surface) => {\n const placement = placementOf(surface);\n return reveal && placement ? (\n <WindowNote key={surface.id} placement={placement} reveal={reveal} />\n ) : (\n <div key={surface.id} {...part(\"message__surface\")}>\n <Surface surface={surface} onAction={onAction} />\n </div>\n );\n })}\n </li>\n );\n});\n\n/** \"→ Abierto en Ventas\": where a surface went, and a button to go there. */\nfunction WindowNote({ placement, reveal }: { placement: Placement; reveal: Reveal }) {\n const part = useParts();\n const messages = useMessages();\n return (\n <p {...part(\"message__window\")}>\n <span aria-hidden>→</span> {messages.space.openedIn}{\" \"}\n <button\n type=\"button\"\n onClick={() => {\n reveal(placement.slot);\n }}\n {...part(\"message__open\")}\n >\n {placement.title}\n </button>\n </p>\n );\n}\n","import type { Language, Locale } from \"../messages/index.js\";\nimport type { ChatMessage } from \"./types.js\";\n\n/** A silence this long (or a new day) starts a new moment, with its time written above it. */\nconst MOMENT_GAP_MS = 30 * 60_000;\n\n/** What the list shows, in order: the time a stretch of the conversation began, and messages. */\nexport type Row =\n | { kind: \"moment\"; id: string; label: string }\n /** `joined`: the same side said the one before, so they sit close together. */\n | { kind: \"message\"; message: ChatMessage; joined: boolean };\n\ninterface Formats {\n time: Intl.DateTimeFormat;\n day: Intl.DateTimeFormat;\n dayAndYear: Intl.DateTimeFormat;\n}\n\nconst FORMATS = new Map<Locale, Formats>();\n\n/** How a locale writes a time and a day; made once, since a chat labels many moments. */\nfunction formatsOf(locale: Locale): Formats {\n let formats = FORMATS.get(locale);\n if (!formats) {\n formats = {\n time: new Intl.DateTimeFormat(locale, { hour: \"2-digit\", minute: \"2-digit\" }),\n day: new Intl.DateTimeFormat(locale, { day: \"numeric\", month: \"short\" }),\n dayAndYear: new Intl.DateTimeFormat(locale, {\n day: \"numeric\",\n month: \"short\",\n year: \"numeric\",\n }),\n };\n FORMATS.set(locale, formats);\n }\n return formats;\n}\n\nconst startOfDay = (date: Date): number =>\n new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime();\n\n/**\n * \"Hoy 10:32\", \"Ayer 18:05\", \"12 oct, 09:00\", and with the year when it is not this one; the\n * words and the dates of the language.\n */\nexport function momentLabel(at: Date, now: Date, { locale, messages }: Language): string {\n const formats = formatsOf(locale);\n const days = Math.round((startOfDay(now) - startOfDay(at)) / 86_400_000);\n const time = formats.time.format(at);\n if (days === 0) return `${messages.today} ${time}`;\n if (days === 1) return `${messages.yesterday} ${time}`;\n const day = (at.getFullYear() === now.getFullYear() ? formats.day : formats.dayAndYear).format(\n at,\n );\n return `${day}, ${time}`;\n}\n\nfunction timeOf(message: ChatMessage): Date | undefined {\n if (message.at === undefined) return undefined;\n const at = new Date(message.at);\n return Number.isNaN(at.getTime()) ? undefined : at;\n}\n\nconst sameDay = (a: Date, b: Date): boolean => startOfDay(a) === startOfDay(b);\n\n/**\n * The conversation as rows: a time above the first message and after every long silence or new\n * day, and each message marked as joined to the one before when the same side said both.\n * Messages that carry no time (the ones just sent) follow the stretch they are in.\n */\nexport function rowsOf(list: readonly ChatMessage[], now: Date, language: Language): Row[] {\n const rows: Row[] = [];\n let last: Date | undefined;\n list.forEach((message, index) => {\n const at = timeOf(message);\n const quiet = at !== undefined && (last === undefined || startsMoment(last, at));\n if (at !== undefined && quiet) {\n rows.push({\n kind: \"moment\",\n id: `moment-${message.id}`,\n label: momentLabel(at, now, language),\n });\n }\n const before = list[index - 1];\n const joined = !quiet && before?.role === message.role;\n rows.push({ kind: \"message\", message, joined });\n if (at !== undefined) last = at;\n });\n return rows;\n}\n\nfunction startsMoment(last: Date, at: Date): boolean {\n return at.getTime() - last.getTime() >= MOMENT_GAP_MS || !sameDay(last, at);\n}\n","import { useEffect, useRef } from \"react\";\n\nconst NEAR_BOTTOM_PX = 80;\n\n/**\n * Keeps a scroll container pinned to the bottom while its content grows, unless the reader has\n * scrolled up to look at something; scrolling back down pins it again. `scroller` goes on the\n * element that scrolls, `content` on the one inside it that grows.\n */\nexport function useStickToBottom<S extends HTMLElement, C extends HTMLElement>() {\n const scroller = useRef<S>(null);\n const content = useRef<C>(null);\n const pinned = useRef(true);\n\n useEffect(() => {\n const el = scroller.current;\n const inner = content.current;\n // Where there is nothing to watch the size with, the page simply does not follow.\n if (!el || !inner || typeof ResizeObserver === \"undefined\") return undefined;\n\n const onScroll = () => {\n pinned.current = el.scrollHeight - el.scrollTop - el.clientHeight < NEAR_BOTTOM_PX;\n };\n const observer = new ResizeObserver(() => {\n if (pinned.current) el.scrollTop = el.scrollHeight;\n });\n el.addEventListener(\"scroll\", onScroll, { passive: true });\n observer.observe(inner);\n return () => {\n el.removeEventListener(\"scroll\", onScroll);\n observer.disconnect();\n };\n }, []);\n\n return { scroller, content };\n}\n","import { useMemo, useState } from \"react\";\n\nimport { ErrorText } from \"../parts/Input.js\";\nimport { Spinner } from \"../parts/Spinner.js\";\nimport { useLanguage, useMessages, useParts } from \"../SignalcoreProvider.js\";\nimport { Composer } from \"./Composer.js\";\nimport { MessageRow } from \"./MessageRow.js\";\nimport { rowsOf } from \"./moments.js\";\nimport type { Conversation } from \"./useConversation.js\";\nimport { useStickToBottom } from \"./useStickToBottom.js\";\n\nexport interface ChatViewProps {\n conversation: Conversation;\n placeholder?: string | undefined;\n autoFocus?: boolean | undefined;\n /** What the conversation is called to someone who cannot see it. */\n label?: string | undefined;\n /**\n * The box to write in, the line saying the agent is writing, what went wrong and the\n * announcement of new words are somewhere else (the shell's dock), so this draws the\n * transcript alone.\n */\n docked?: boolean | undefined;\n className?: string | undefined;\n}\n\n/**\n * A conversation drawn: the person's messages and the agent's, the agent's surfaces inline,\n * and (unless it is docked) the box to write in. It draws a `Conversation` it is given, so the\n * chat of one agent (`AgentChat`) and the conversation window of a shell (`AgentSpace`) are the\n * same drawing of different holders of it.\n *\n * A surface takes a pick only while it is the last thing said: once the person has answered, in\n * a pick or in words, it is a record of what was shown.\n */\nexport function ChatView({\n conversation,\n placeholder,\n autoFocus,\n label,\n docked = false,\n className,\n}: ChatViewProps) {\n const part = useParts();\n const language = useLanguage();\n const copy = useMessages();\n const { scroller, content } = useStickToBottom<HTMLDivElement, HTMLDivElement>();\n // The day labels are relative to when the chat opened.\n const [now] = useState(() => new Date());\n const rows = useMemo(\n () => rowsOf(conversation.messages, now, language),\n [conversation.messages, now, language],\n );\n\n const { loading, answering, waiting } = conversation;\n const last = conversation.messages.at(-1);\n const latest = last && last.surfaces.length > 0 ? last.id : undefined;\n const status = answering ? copy.writing : waiting ? copy.waitingForConfirmation : undefined;\n\n return (\n <section {...part(\"chat\", [], className)} aria-label={label ?? copy.agentChat}>\n <div ref={scroller} {...part(\"chat__scroll\")}>\n <div ref={content} {...part(\"chat__content\")}>\n {loading && (\n <p {...part(\"chat__note\")}>\n <Spinner /> {copy.loadingConversation}\n </p>\n )}\n <ol {...part(\"messages\")}>\n {rows.map((row) =>\n row.kind === \"moment\" ? (\n <li key={row.id} {...part(\"moment\")}>\n {row.label}\n </li>\n ) : (\n <MessageRow\n key={row.message.id}\n message={row.message}\n joined={row.joined}\n onAction={\n row.message.id === latest && !answering && !waiting && !loading\n ? conversation.act\n : undefined\n }\n />\n ),\n )}\n </ol>\n {!docked && (\n <div role=\"status\" {...part(\"chat__status\")}>\n {status && (\n <>\n <Spinner /> {status}\n </>\n )}\n </div>\n )}\n {!docked && conversation.problem && <ErrorText>{conversation.problem}</ErrorText>}\n </div>\n </div>\n {!docked && (\n <>\n {/* New words from the agent, for whoever cannot see them arrive. */}\n <div aria-live=\"polite\" aria-atomic=\"true\" {...part(\"sr-only\")}>\n {conversation.announcement}\n </div>\n <Composer\n onSend={conversation.send}\n live={answering || waiting}\n disabled={loading}\n placeholder={placeholder ?? copy.defaultPlaceholder}\n autoFocus={autoFocus}\n />\n </>\n )}\n </section>\n );\n}\n","import type { Schemas } from \"@signalcore/sdk\";\n\nimport type { UiClient } from \"../client.js\";\nimport { surfaceOf } from \"../surface/check.js\";\nimport type { ChatMessage } from \"./types.js\";\n\n/** The thread the API speaks in when a message names none. */\nconst DEFAULT_THREAD = \"default\";\n\n/**\n * How a chat reads its own past when the host gave it no loader: the caller's conversation in\n * the thread (`endUsers.myConversation`, which only an end user's token or a publishable key\n * has). A person who has not spoken yet has no conversation, which the API says is not found:\n * that is an empty history, not a failure. Nothing when the client cannot say.\n */\nexport function historyOf(\n client: UiClient | undefined,\n agentId: string,\n): ((thread: string | undefined) => Promise<ChatMessage[]>) | undefined {\n const mine = client?.endUsers?.myConversation;\n if (!mine) return undefined;\n return async (thread) => {\n try {\n const conversation = await mine(thread ?? DEFAULT_THREAD, { agent_id: agentId });\n return messagesFromConversation({ items: conversation.messages });\n } catch (reason) {\n if (isNotFound(reason)) return [];\n throw reason;\n }\n };\n}\n\nconst isNotFound = (reason: unknown): boolean =>\n typeof reason === \"object\" && reason !== null && \"status\" in reason && reason.status === 404;\n\n/**\n * The messages of a conversation as the API lists them (`conversations.messages`), ready for\n * `AgentChat`'s `loadHistory`: what a contact sent is the person's, everything the business\n * said (the agent, or a teammate who took over) is the agent's. A message with nothing to show\n * (a system note, a file this chat cannot draw) is left out.\n *\n * loadHistory={() => client.conversations.messages(id).then(messagesFromConversation)}\n */\n/** What a stored message must carry to be drawn: the team's listing and an end user's own\n * conversation both have it, the latter nothing more. */\nexport type StoredMessage = Pick<\n Schemas[\"MessageOut\"],\n \"id\" | \"direction\" | \"author\" | \"body\" | \"surfaces\" | \"created_at\"\n>;\n\nexport function messagesFromConversation(page: { items: readonly StoredMessage[] }): ChatMessage[] {\n return page.items.flatMap((item): ChatMessage[] => {\n if (item.author === \"system\") return [];\n const surfaces = item.surfaces.flatMap((raw) => surfaceOf(raw) ?? []);\n const text = item.body ?? \"\";\n if (text === \"\" && surfaces.length === 0) return [];\n return [\n {\n id: item.id,\n role: item.direction === \"in\" ? \"person\" : \"agent\",\n text,\n surfaces,\n at: item.created_at,\n },\n ];\n });\n}\n","import type { RequestCardData, RequestKind } from \"./types.js\";\n\n/** Kinds that have a card; a `notify` is only told, and a kind from a newer API is left alone. */\nconst ANSWERABLE = new Set<string>([\n \"question\",\n \"choice\",\n \"connect\",\n \"upload\",\n \"approval\",\n \"secret\",\n]);\n\nexport function isAnswerable(kind: string): kind is RequestKind {\n return ANSWERABLE.has(kind);\n}\n\n/** A request as the API lists it (`requests.pending`), with all its card needs. */\nexport interface ListedRequest {\n id: string;\n agent_id: string;\n kind: string;\n title: string;\n payload: Record<string, unknown>;\n}\n\n/** The card for a listed request; nothing for a kind that is only told, or not known here. */\nexport function cardOf(request: ListedRequest): RequestCardData | undefined {\n if (!isAnswerable(request.kind)) return undefined;\n return {\n request_id: request.id,\n agent_id: request.agent_id,\n kind: request.kind,\n title: request.title,\n payload: request.payload,\n };\n}\n","import type { Schemas } from \"@signalcore/sdk\";\n\nimport { isAnswerable } from \"../request/cards.js\";\nimport type { RequestCardData } from \"../request/types.js\";\nimport { surfaceOf } from \"../surface/check.js\";\nimport type { SurfaceData } from \"../surface/types.js\";\n\n/** One event of a run's journal, as the API sends it (the contract's own union). */\nexport type RunEvent = Schemas[\"RunEventPage\"][\"items\"][number];\n\n/**\n * Where the stream stands: `connecting` before the first answer, `streaming` while events come,\n * `paused` while the run waits for an answer to a request, `done` when the run ended, `failed`\n * when the stream could not be kept (see `error`).\n */\nexport type StreamStatus = \"connecting\" | \"streaming\" | \"paused\" | \"done\" | \"failed\";\n\nexport interface StreamState {\n /** The run this state is of: a state of another run is not this one's. */\n runId: string | undefined;\n /** Everything the run recorded, in order. */\n events: RunEvent[];\n /** What the agent showed (`ui.surface`), in order, the ones that can be drawn. */\n surfaces: SurfaceData[];\n /** What the run asked of the owner (`request.created`), as cards to answer. */\n requests: RequestCardData[];\n status: StreamStatus;\n error: Error | undefined;\n /** The `id` of the last event seen: where to go on from after a drop. */\n lastEventId: string | undefined;\n}\n\nexport type Step =\n | { type: \"begin\"; runId: string | undefined; lastEventId: string | undefined }\n | { type: \"event\"; event: RunEvent; id: string | undefined }\n | { type: \"status\"; status: StreamStatus }\n | { type: \"failed\"; error: Error }\n | { type: \"payloads\"; pending: PendingRequest[] };\n\n/** A request as the API lists it, with the payload its card is drawn from. */\nexport interface PendingRequest {\n id: string;\n agent_id: string;\n payload: Record<string, unknown>;\n}\n\nexport function begin(runId: string | undefined, lastEventId: string | undefined): StreamState {\n return {\n runId,\n events: [],\n surfaces: [],\n requests: [],\n status: \"connecting\",\n error: undefined,\n lastEventId,\n };\n}\n\nexport function reduce(state: StreamState, step: Step): StreamState {\n switch (step.type) {\n case \"begin\":\n return begin(step.runId, step.lastEventId);\n case \"event\":\n return {\n ...state,\n events: [...state.events, step.event],\n surfaces: withSurface(state.surfaces, step.event),\n requests: withRequest(state.requests, step.event),\n lastEventId: step.id ?? state.lastEventId,\n };\n case \"status\":\n return { ...state, status: step.status };\n case \"failed\":\n return { ...state, status: \"failed\", error: step.error };\n case \"payloads\":\n return {\n ...state,\n requests: state.requests.map((card) => {\n const found = step.pending.find((item) => item.id === card.request_id);\n return found ? { ...card, agent_id: found.agent_id, payload: found.payload } : card;\n }),\n };\n }\n}\n\nfunction withSurface(surfaces: SurfaceData[], event: RunEvent): SurfaceData[] {\n if (event.type !== \"ui.surface\") return surfaces;\n const surface = surfaceOf(event.surface);\n return surface ? [...surfaces, surface] : surfaces;\n}\n\nfunction withRequest(requests: RequestCardData[], event: RunEvent): RequestCardData[] {\n if (event.type !== \"request.created\" || !isAnswerable(event.kind)) return requests;\n if (requests.some((card) => card.request_id === event.request_id)) return requests;\n const card: RequestCardData = {\n request_id: event.request_id,\n kind: event.kind,\n title: event.title,\n payload: {},\n };\n return [...requests, card];\n}\n","import type { ServerSentEvent } from \"@signalcore/sdk\";\nimport { useEffect, useReducer } from \"react\";\n\nimport type { UiClient } from \"../client.js\";\nimport { useSignalcore } from \"../SignalcoreProvider.js\";\nimport { begin, reduce, type RunEvent, type Step, type StreamState } from \"./reduce.js\";\n\n/** How often a paused run is asked whether it has gone on. */\nconst RESUME_POLL_MS = 2_000;\n/** How long to wait before opening a stream that closed without saying why. */\nconst RETRY_MS = 1_000;\n/** How many times in a row that may happen without a single event before giving up. */\nconst MAX_SILENT_DROPS = 5;\n\nexport interface RunStreamOptions {\n /** The `id` of the last event already seen, to go on from there (after a reload). */\n lastEventId?: string | undefined;\n /**\n * Ask the API what the requests a run raises say, to draw them as cards (default). A host that\n * never draws them, such as the chat of the people an agent serves, turns it off, and the API\n * is not asked for what nobody will see.\n */\n cards?: boolean | undefined;\n}\n\n/** What a run has said so far; see `StreamState`. `done` is `status === \"done\"`. */\nexport interface RunStream extends StreamState {\n done: boolean;\n}\n\n/**\n * Follows a run live through the provider's client (`runs.stream`), accumulating what it says:\n * every event, the surfaces the agent showed, and the requests it is waiting on, as cards ready\n * for `RequestCard`. When the run pauses on a request the stream is closed; once the request is\n * answered (anywhere: this card, the inbox, another tab) it opens again from the last event\n * seen, and carries on until the run is `done`. A stream that drops is opened again the same way.\n *\n * Needs a client with `runs`; without one it stays `connecting`. Stops when the component goes\n * away or `runId` changes.\n */\nexport function useRunStream(runId: string | undefined, options: RunStreamOptions = {}): RunStream {\n const { client } = useSignalcore();\n const { lastEventId, cards = true } = options;\n const [state, dispatch] = useReducer(reduce, undefined, () => begin(runId, lastEventId));\n\n useEffect(() => {\n if (!client?.runs || !runId) return undefined;\n const stop = new AbortController();\n const send = (step: Step) => {\n if (!stop.signal.aborted) dispatch(step);\n };\n send({ type: \"begin\", runId, lastEventId });\n follow(client, runId, lastEventId, stop.signal, send, cards).catch((reason: unknown) => {\n send({ type: \"failed\", error: reason instanceof Error ? reason : new Error(String(reason)) });\n });\n return () => {\n stop.abort();\n };\n }, [client, runId, lastEventId, cards]);\n\n // Until the effect has started over for a new run, the state is still the old run's.\n const current = state.runId === runId ? state : begin(runId, lastEventId);\n return { ...current, done: current.status === \"done\" };\n}\n\ntype Send = (step: Step) => void;\n\n/**\n * The whole life of the stream: open, read, and open again until the run is over. Stopping it\n * (`signal`) ends it with an abort error, which nobody is told of.\n */\nasync function follow(\n client: UiClient,\n runId: string,\n startAt: string | undefined,\n signal: AbortSignal,\n send: Send,\n cards: boolean,\n): Promise<void> {\n const runs = client.runs;\n if (!runs) return;\n let lastId = startAt;\n let silentDrops = 0;\n for (;;) {\n signal.throwIfAborted();\n send({ type: \"status\", status: \"connecting\" });\n let ending: string | undefined;\n let heard = false;\n for await (const frame of runs.stream(\n runId,\n lastId === undefined ? {} : { lastEventId: lastId },\n )) {\n signal.throwIfAborted();\n if (frame.event === \"done\" || frame.event === \"paused\") {\n ending = frame.event;\n break;\n }\n const event = eventOf(frame);\n if (!event) continue;\n if (!heard) send({ type: \"status\", status: \"streaming\" });\n heard = true;\n lastId = frame.id ?? lastId;\n send({ type: \"event\", event, id: frame.id });\n if (cards && event.type === \"request.created\") void fillIn(client, send);\n }\n\n if (ending === \"done\") {\n send({ type: \"status\", status: \"done\" });\n return;\n }\n if (ending === \"paused\") {\n send({ type: \"status\", status: \"paused\" });\n await untilResumed(client, runId, signal);\n continue;\n }\n // The stream ended without saying why: the connection dropped. Open it again, a few times.\n silentDrops = heard ? 0 : silentDrops + 1;\n if (silentDrops >= MAX_SILENT_DROPS)\n throw new Error(\"The stream kept closing before the run ended\");\n await sleep(RETRY_MS, signal);\n }\n}\n\n/** The journal event a frame carries; its type is the frame's own when the data omits it. */\nfunction eventOf(frame: ServerSentEvent): RunEvent | undefined {\n try {\n const data = frame.json();\n if (typeof data !== \"object\" || data === null || Array.isArray(data)) return undefined;\n return { type: frame.event, ...data } as RunEvent;\n } catch {\n return undefined;\n }\n}\n\n/** A request's card is drawn from its payload, which the event leaves out: ask the API for it. */\nasync function fillIn(client: UiClient, send: Send): Promise<void> {\n const requests = client.requests;\n if (!requests?.pending) return;\n try {\n const page = await requests.pending();\n send({ type: \"payloads\", pending: page.items });\n } catch {\n // The card stays as bare as the event made it: its title is still worth showing.\n }\n}\n\n/** Waits for a paused run to leave `waiting`: its request was answered, wherever that happened. */\nasync function untilResumed(client: UiClient, runId: string, signal: AbortSignal): Promise<void> {\n const runs = client.runs;\n if (!runs) return;\n for (;;) {\n await sleep(RESUME_POLL_MS, signal);\n signal.throwIfAborted();\n if ((await runs.get(runId)).status !== \"waiting\") return;\n }\n}\n\nfunction sleep(ms: number, signal: AbortSignal): Promise<void> {\n return new Promise((resolve) => {\n const timer = setTimeout(resolve, ms);\n signal.addEventListener(\n \"abort\",\n () => {\n clearTimeout(timer);\n resolve();\n },\n { once: true },\n );\n });\n}\n","import { surfaceOf } from \"../surface/check.js\";\nimport type { SurfaceData } from \"../surface/types.js\";\nimport type { RunEvent } from \"../stream/reduce.js\";\n\n/** What a run that waited for a confirmation said once it went on. */\nexport interface Arrival {\n text: string;\n surfaces: SurfaceData[];\n /** The run ended without finishing its work (it failed, or was canceled). */\n failed: boolean;\n}\n\n/**\n * What a run said after it paused. The answer to the message already showed everything up to\n * the pause, and the journal replays from the start, so only what follows the first\n * `run.waiting` is new.\n */\nexport function arrivalOf(events: readonly RunEvent[]): Arrival {\n const paused = events.findIndex((event) => event.type === \"run.waiting\");\n const after = paused === -1 ? events : events.slice(paused + 1);\n const words: string[] = [];\n const surfaces: SurfaceData[] = [];\n let failed = false;\n for (const event of after) {\n if (event.type === \"message.finished\" && event.text.trim() !== \"\") words.push(event.text);\n else if (event.type === \"ui.surface\") {\n const surface = surfaceOf(event.surface);\n if (surface) surfaces.push(surface);\n } else if (event.type === \"run.finished\" && event.status !== \"succeeded\") failed = true;\n }\n return { text: words.join(\"\\n\\n\"), surfaces, failed };\n}\n","import type { Schemas } from \"@signalcore/sdk\";\nimport { useCallback, useRef, useState } from \"react\";\n\nimport type { Messages } from \"../messages/index.js\";\nimport { useMessages, useSignalcore } from \"../SignalcoreProvider.js\";\nimport { surfaceOf } from \"../surface/check.js\";\nimport { useRunStream } from \"../stream/useRunStream.js\";\nimport { arrivalOf } from \"./arrival.js\";\nimport type { ChatMessage } from \"./types.js\";\n\ntype Invoked = Schemas[\"Invoked\"];\n\n/** What `POST /v1/agents/{id}/invoke` takes. */\ntype Invoke = Schemas[\"Invoke\"];\n\n/**\n * How the person talks to the agent: by writing, or by voice (ADR 0011). A voice turn tells the\n * agent the person is listening, so it keeps its answer short and puts detail in a window.\n */\nexport type Modality = NonNullable<Invoke[\"modality\"]>;\n\n/** What a turn carries: the person's words or what they did on a surface. */\nexport type TurnBody = Omit<Invoke, \"thread\" | \"modality\">;\n\nexport interface TurnsOptions {\n agentId: string;\n /** The conversation to speak in; the agent remembers it across messages. */\n thread?: string | undefined;\n /**\n * How the person talks to the agent. Left out, the API takes it as written; `\"voice\"` tells\n * the agent they are listening.\n */\n modality?: Modality | undefined;\n}\n\n/** Where the conversation is: free for the next message, or waiting on something. */\ntype Phase = { kind: \"idle\" } | { kind: \"answering\" } | { kind: \"following\"; runId: string };\n\nconst IDLE: Phase = { kind: \"idle\" };\n\nexport interface Turns {\n /**\n * What was said since the turns began, oldest first: the person's messages and, after each,\n * the agent's answer (and what a run said once it went on after pausing).\n */\n said: ChatMessage[];\n /** The agent is writing its answer. */\n answering: boolean;\n /** The run paused for the owner to confirm something, and goes on when they do. */\n waiting: boolean;\n /** Something went wrong; the text is for the person, not for a developer. */\n problem: string | undefined;\n /** What the agent just said, in words, for whoever cannot see the page; empty before it speaks. */\n announcement: string;\n /**\n * Sends a turn to the agent: `shown` is how it reads in the conversation. Nothing is sent, and\n * this says so, while a turn is still under way or the client cannot invoke an agent.\n */\n ask: (body: TurnBody, shown: string) => boolean;\n}\n\n/**\n * The turns between a person and an agent, the one way both the chat and the voice window have:\n * a message goes out (`agents.invoke`, in the thread), the answer comes back, and a run that\n * paused for the owner to confirm something is followed until it ends and then shown. The\n * person never sees what was asked of the owner, only that the answer is waiting for it.\n */\nexport function useTurns({ agentId, thread, modality }: TurnsOptions): Turns {\n const { client } = useSignalcore();\n const copy = useMessages();\n const invoke = client?.agents?.invoke;\n\n const [said, setSaid] = useState<ChatMessage[]>([]);\n const [phase, setPhase] = useState<Phase>(IDLE);\n const [problem, setProblem] = useState<string>();\n const [announcement, setAnnouncement] = useState(\"\");\n const counter = useRef(0);\n\n const run = useRunStream(phase.kind === \"following\" ? phase.runId : undefined, { cards: false });\n if (phase.kind === \"following\" && (run.status === \"done\" || run.status === \"failed\")) {\n // The run is over: what it said after it paused joins the conversation (once, whatever\n // the number of times this renders), and the person can speak again.\n const arrival = arrivalOf(run.events);\n const failed = run.status === \"failed\" || arrival.failed;\n const id = `run-${phase.runId}`;\n if (arrival.text !== \"\" || arrival.surfaces.length > 0) {\n const message: ChatMessage = {\n id,\n role: \"agent\",\n text: arrival.text,\n surfaces: arrival.surfaces,\n at: undefined,\n };\n setSaid((now) => (now.some((each) => each.id === id) ? now : [...now, message]));\n setAnnouncement(announce(message, copy));\n }\n if (failed) setProblem(copy.cannotFinishAnswer);\n setPhase(IDLE);\n }\n\n const ask = useCallback(\n (body: TurnBody, shown: string): boolean => {\n if (!invoke || phase.kind !== \"idle\") return false;\n counter.current += 1;\n const person: ChatMessage = {\n id: `person-${counter.current}`,\n role: \"person\",\n text: shown,\n surfaces: [],\n at: new Date().toISOString(),\n };\n setSaid((now) => [...now, person]);\n setPhase({ kind: \"answering\" });\n setProblem(undefined);\n const turn: Invoke = {\n ...body,\n ...(thread === undefined ? {} : { thread }),\n ...(modality === undefined ? {} : { modality }),\n };\n invoke(agentId, turn).then(\n (answer) => {\n counter.current += 1;\n const reply = replyOf(answer, `agent-${counter.current}`, copy);\n if (reply) {\n setSaid((now) => [...now, reply]);\n setAnnouncement(announce(reply, copy));\n }\n setPhase(\n answer.waiting_for !== null && answer.run_id !== null\n ? { kind: \"following\", runId: answer.run_id }\n : IDLE,\n );\n },\n () => {\n setProblem(copy.cannotSendMessage);\n setPhase(IDLE);\n },\n );\n return true;\n },\n [invoke, phase.kind, agentId, thread, modality, copy],\n );\n\n return {\n said,\n answering: phase.kind === \"answering\",\n waiting: phase.kind === \"following\",\n problem,\n announcement,\n ask,\n };\n}\n\n/** What the agent answered, as a message; nothing when it said nothing at all. */\nfunction replyOf(answer: Invoked, id: string, copy: Messages): ChatMessage | undefined {\n const surfaces = (answer.surfaces ?? []).flatMap((raw) => surfaceOf(raw) ?? []);\n // An escalated message has no answer from the agent: a person on the team will give it.\n const text = answer.text !== \"\" ? answer.text : answer.escalated ? copy.handedToPerson : \"\";\n if (text === \"\" && surfaces.length === 0) return undefined;\n return {\n id: answer.message_id ?? id,\n role: \"agent\",\n text,\n surfaces,\n at: new Date().toISOString(),\n };\n}\n\n/** A message in words alone: who said it, its text, and what its surfaces say in theirs. */\nfunction announce(message: ChatMessage, copy: Messages): string {\n const parts = [message.text, ...message.surfaces.map((surface) => surface.fallback_text)]\n .map((part) => part.trim())\n .filter((part) => part !== \"\");\n // Each part is a sentence: a pause between them, but not a second full stop.\n const words = parts.map((part) => (/[.!?…:]$/.test(part) ? part : `${part}.`)).join(\" \");\n return `${copy.theAgent}: ${words}`;\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { useMessages, useSignalcore } from \"../SignalcoreProvider.js\";\nimport type { SurfaceAction } from \"../surface/types.js\";\nimport { historyOf } from \"./history.js\";\nimport type { ChatMessage } from \"./types.js\";\nimport { useTurns, type TurnBody } from \"./useTurns.js\";\n\nexport interface ConversationOptions {\n agentId: string;\n /** The conversation to speak in; the agent remembers it across messages. */\n thread?: string | undefined;\n /**\n * The messages already said in this thread, when the host can read them. Without it the chat\n * reads the caller's own conversation if the client can (`endUsers.myConversation`).\n */\n loadHistory?: ((thread: string | undefined) => Promise<ChatMessage[]>) | undefined;\n /** The person did something on a surface; it has already gone to the agent. */\n onSurfaceAction?: ((action: SurfaceAction) => void) | undefined;\n}\n\nexport interface Conversation {\n messages: ChatMessage[];\n /** The history is being read. */\n loading: boolean;\n /** The agent is writing its answer. */\n answering: boolean;\n /** The run paused for the owner to confirm something, and goes on when they do. */\n waiting: boolean;\n /** Something went wrong; the text is for the person, not for a developer. */\n problem: string | undefined;\n /** What the agent just said, in words, for whoever cannot see the page; empty before it speaks. */\n announcement: string;\n send: (text: string) => void;\n /** The person picked or submitted something on a surface. */\n act: (action: SurfaceAction) => void;\n}\n\n/**\n * The conversation between a person and an agent: what was said before (the history), then each\n * message and its answer (`useTurns`, which the voice window sends its turns with too).\n */\nexport function useConversation(options: ConversationOptions): Conversation {\n const { agentId, thread } = options;\n const { client } = useSignalcore();\n const copy = useMessages();\n const turns = useTurns({ agentId, thread });\n\n const [past, setPast] = useState<ChatMessage[]>([]);\n const [cannotLoad, setCannotLoad] = useState<string>();\n // The host's loader, else the caller's own conversation if the client can read it.\n const loader = options.loadHistory ?? historyOf(client, agentId);\n const [reading, setReading] = useState(loader !== undefined);\n const latest = useRef({ options, loader, copy });\n useEffect(() => {\n latest.current = { options, loader, copy };\n });\n\n // What was said before comes first, whatever the person typed while it was being read.\n useEffect(() => {\n const load = latest.current.loader;\n if (!load) return undefined;\n let current = true;\n load(thread).then(\n (before) => {\n if (!current) return;\n setPast(before);\n setReading(false);\n },\n () => {\n if (!current) return;\n setCannotLoad(latest.current.copy.cannotLoadConversation);\n setReading(false);\n },\n );\n return () => {\n current = false;\n };\n }, [thread]);\n\n const { ask } = turns;\n const say = useCallback(\n (body: TurnBody, shown: string): boolean => {\n if (reading || !ask(body, shown)) return false;\n setCannotLoad(undefined);\n return true;\n },\n [ask, reading],\n );\n\n const send = useCallback(\n (text: string) => {\n const input = text.trim();\n if (input) say({ input }, input);\n },\n [say],\n );\n\n const act = useCallback(\n (action: SurfaceAction) => {\n if (say({ action }, action.label)) latest.current.options.onSurfaceAction?.(action);\n },\n [say],\n );\n\n const messages = useMemo(() => [...past, ...turns.said], [past, turns.said]);\n\n return {\n messages,\n loading: reading,\n answering: turns.answering,\n waiting: turns.waiting,\n problem: turns.problem ?? cannotLoad,\n announcement: turns.announcement,\n send,\n act,\n };\n}\n","import { Scoped } from \"../SignalcoreProvider.js\";\nimport type { SurfaceAction } from \"../surface/types.js\";\nimport { ChatView } from \"./ChatView.js\";\nimport type { ChatMessage } from \"./types.js\";\nimport { useConversation } from \"./useConversation.js\";\n\nexport interface AgentChatProps {\n /** The agent the person talks to. */\n agentId: string;\n /** The conversation to speak in; the agent remembers it across messages. */\n thread?: string | undefined;\n placeholder?: string | undefined;\n /**\n * The person picked or submitted something on a surface. The chat has already sent it to the\n * agent (`agents.invoke` with the action), so this is only to tell the host, for its own\n * records.\n */\n onSurfaceAction?: ((action: SurfaceAction) => void) | undefined;\n autoFocus?: boolean | undefined;\n /**\n * What was said in this thread before, oldest first; read once when the chat opens. See\n * `messagesFromConversation` for the API's conversation messages. Without it the chat reads\n * the caller's own conversation in the thread when the client can (`endUsers.myConversation`,\n * which an end user's token or a publishable key has), and otherwise starts empty.\n */\n loadHistory?: ((thread: string | undefined) => Promise<ChatMessage[]>) | undefined;\n /** What the conversation is called to someone who cannot see it. */\n label?: string | undefined;\n className?: string | undefined;\n}\n\n/**\n * The chat of the people an agent serves (ADR 0009): their messages and the agent's, the\n * agent's surfaces drawn inline, and a box to write in. It speaks to the agent as the person\n * (`agents.invoke` through the provider's client) and can never change the agent.\n *\n * It never shows an approval, a connection or a secret: when the agent needs the owner to\n * confirm something, the person sees that the answer is waiting, and gets it when it arrives.\n * New messages from the agent are announced to screen readers, and everything works from the\n * keyboard (Enter sends, Shift+Enter breaks the line, a surface's buttons are real buttons).\n */\nexport function AgentChat(props: AgentChatProps) {\n return (\n <Scoped>\n {/* Another agent or thread is another conversation: it starts over. */}\n <Chat key={`${props.agentId}/${props.thread ?? \"\"}`} {...props} />\n </Scoped>\n );\n}\n\nfunction Chat({\n agentId,\n thread,\n placeholder,\n onSurfaceAction,\n autoFocus,\n loadHistory,\n label,\n className,\n}: AgentChatProps) {\n const conversation = useConversation({ agentId, thread, loadHistory, onSurfaceAction });\n return (\n <ChatView\n conversation={conversation}\n placeholder={placeholder}\n autoFocus={autoFocus}\n label={label}\n className={className}\n />\n );\n}\n","import { AgentChat } from \"../chat/AgentChat.js\";\nimport type { UiClient } from \"../client.js\";\nimport type { Locale, MessageOverrides } from \"../messages/index.js\";\nimport { ErrorText } from \"../parts/Input.js\";\nimport { SignalcoreProvider, useMessages } from \"../SignalcoreProvider.js\";\nimport type { SurfaceAction } from \"../surface/types.js\";\n\nexport interface WidgetChatProps {\n client: UiClient | undefined;\n /** The chat cannot start (no agent, or credentials that make no sense): it says so. */\n unavailable: boolean;\n agent: string | null;\n thread: string | undefined;\n placeholder: string | undefined;\n autoFocus: boolean;\n locale: Locale | undefined;\n messages: MessageOverrides | undefined;\n onSurfaceAction: (action: SurfaceAction) => void;\n}\n\n/**\n * What the widget draws in its shadow root: the chat of the people an agent serves, or a quiet\n * line saying it is not available (the host's developer finds out why in the console).\n */\nexport function WidgetChat({\n client,\n unavailable,\n agent,\n thread,\n placeholder,\n autoFocus,\n locale,\n messages,\n onSurfaceAction,\n}: WidgetChatProps) {\n return (\n <SignalcoreProvider client={client} locale={locale} messages={messages}>\n {unavailable || !agent ? (\n <Unavailable />\n ) : (\n <AgentChat\n agentId={agent}\n thread={thread}\n placeholder={placeholder}\n autoFocus={autoFocus}\n onSurfaceAction={onSurfaceAction}\n />\n )}\n </SignalcoreProvider>\n );\n}\n\nfunction Unavailable() {\n const messages = useMessages();\n return <ErrorText>{messages.chatUnavailable}</ErrorText>;\n}\n","import type { SurfaceAction } from \"../surface/types.js\";\nimport { defineWidget, type WidgetOptions } from \"./define.js\";\nimport { WidgetChat } from \"./WidgetChat.js\";\n\nexport const TAG = \"signalcore-chat\";\n\n/** Where the widget sits by default; the page's own CSS on the element wins over `:host`. */\nconst HOST_STYLE = `:host{display:block;height:32rem}[part=\"root\"]{height:100%}`;\n\nexport type { WidgetOptions } from \"./define.js\";\n\n/**\n * Registers `<signalcore-chat>`: the chat of the people an agent serves (`AgentChat`) as a web\n * component, for pages that are not React.\n *\n * <signalcore-chat agent=\"agt_…\" publishable-key=\"pk_live_…\"></signalcore-chat>\n * <signalcore-chat agent=\"agt_…\" end-user-token=\"…\" thread=\"order-7\"></signalcore-chat>\n *\n * - `agent`, `thread`, `placeholder`, `autofocus`: what `AgentChat` takes.\n * - `locale` (\"es\", the default, or \"en\"): the language of its words and dates. The `messages`\n * property, set from JavaScript, changes single words over that language.\n * - `end-user-token`, or `publishable-key` (with `visitor-id`, which the widget keeps in this\n * browser when you give none), and `base-url`: who it acts as and where the API is. Or set the\n * `client` property from JavaScript, which wins.\n * - It draws in a shadow root, with the package's styles inside. The page themes it with\n * `--sc-*` custom properties on the element or above it (they inherit in), a `data-theme`\n * of \"light\" or \"dark\", and `::part(root)`, `::part(composer)`, `::part(message)`, and the\n * other slots (see `SLOTS`) as parts.\n * - It dispatches a `surface-action` event with the action in `detail` when the person picks\n * or submits something on a surface.\n */\nexport function defineSignalcoreChat(options: WidgetOptions = {}): CustomElementConstructor {\n return defineWidget(\n {\n tag: TAG,\n attributes: [\"placeholder\", \"autofocus\"],\n host: HOST_STYLE,\n draw: ({ client, agent, thread, attribute, has, locale, messages, emit }) => (\n <WidgetChat\n client={client}\n unavailable={client === undefined}\n agent={agent}\n thread={thread}\n placeholder={attribute(\"placeholder\")}\n autoFocus={has(\"autofocus\")}\n locale={locale}\n messages={messages}\n onSurfaceAction={(action: SurfaceAction) => {\n emit(\"surface-action\", action);\n }}\n />\n ),\n },\n options,\n );\n}\n","import type { ReactNode } from \"react\";\n\nimport { Composer } from \"../chat/Composer.js\";\nimport { Button } from \"../parts/Button.js\";\nimport { ErrorText } from \"../parts/Input.js\";\nimport { Spinner } from \"../parts/Spinner.js\";\nimport { useMessages, useParts } from \"../SignalcoreProvider.js\";\n\n/** How the person talks to the agent: by writing, or by voice (ADR 0011). */\nexport type SpaceMode = \"text\" | \"voice\";\n\n/**\n * What a dock is drawn from: how the person talks, how the conversation stands, and what sends\n * their words. A host that draws its own dock (`AgentSpace`'s `renderDock`) is given this.\n */\nexport interface SpaceDock {\n mode: SpaceMode;\n setMode: (mode: SpaceMode) => void;\n /** The host gave a voice to speak with, so the person may choose it. */\n canSpeak: boolean;\n send: (text: string) => void;\n /** The agent is writing its answer. */\n answering: boolean;\n /** The run paused for the owner to confirm something, and goes on when they do. */\n waiting: boolean;\n /** The history is being read. */\n loading: boolean;\n /** Something went wrong; the text is for the person. */\n problem: string | undefined;\n /** What the agent just said, in words, for whoever cannot see the page. */\n announcement: string;\n /** What the host's voice draws in the dock while the person speaks; nothing when they write. */\n voice: ReactNode;\n}\n\nexport interface DockProps {\n dock: SpaceDock;\n placeholder?: string | undefined;\n}\n\n/**\n * Where the person talks to the agent, whichever window is on the stage: the box to write in,\n * or the host's voice when they chose to speak, with the way to change between the two. It says\n * when the agent is writing or waiting for a confirmation, and what went wrong, because the\n * conversation may not be the window they are looking at.\n */\nexport function Dock({ dock, placeholder }: DockProps) {\n const part = useParts();\n const copy = useMessages();\n const { mode, answering, waiting } = dock;\n const status = answering ? copy.writing : waiting ? copy.waitingForConfirmation : undefined;\n const toggle = dock.canSpeak && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n aria-pressed={mode === \"voice\"}\n onClick={() => {\n dock.setMode(mode === \"voice\" ? \"text\" : \"voice\");\n }}\n >\n {mode === \"voice\" ? copy.space.write : copy.space.speak}\n </Button>\n );\n\n return (\n <div {...part(\"dock\")}>\n {/* New words from the agent, for whoever cannot see them arrive. */}\n <div aria-live=\"polite\" aria-atomic=\"true\" {...part(\"sr-only\")}>\n {dock.announcement}\n </div>\n <div role=\"status\" {...part(\"dock__status\")}>\n {status && (\n <>\n <Spinner /> {status}\n </>\n )}\n </div>\n {dock.problem && <ErrorText>{dock.problem}</ErrorText>}\n {mode === \"voice\" ? (\n <div {...part(\"dock__voice\")}>\n {dock.voice}\n {toggle}\n </div>\n ) : (\n <Composer\n onSend={dock.send}\n live={answering || waiting}\n disabled={dock.loading}\n placeholder={placeholder ?? copy.defaultPlaceholder}\n tools={toggle}\n />\n )}\n </div>\n );\n}\n","import type { UiClient } from \"../client.js\";\n\n/**\n * The same client, told of the run behind each answer the agent gives. A shell needs the runs'\n * journals (that is where the app's own windows are opened, `ui.window`), and a turn can be sent\n * from the chat, from a voice window or from a generated one: listening at the client is the one\n * place that sees them all, and none of them has to know the shell is there.\n *\n * A client that cannot invoke an agent, or cannot read a run's journal, is returned as it is:\n * there is nothing to hear, or nothing to follow it with.\n */\nexport function hearingRuns(\n client: UiClient | undefined,\n onRun: (runId: string) => void,\n): UiClient | undefined {\n const invoke = client?.agents?.invoke;\n if (!client?.runs || !invoke) return client;\n return {\n ...client,\n agents: {\n ...client.agents,\n invoke: async (agentId, body) => {\n const answer = await invoke(agentId, body);\n if (answer.run_id !== null) onRun(answer.run_id);\n return answer;\n },\n },\n };\n}\n","import { useEffect } from \"react\";\n\nimport type { RunEvent } from \"../stream/reduce.js\";\nimport { useRunStream } from \"../stream/useRunStream.js\";\n\nexport interface JournalProps {\n runId: string;\n /** What the run has said so far, again and with more each time it says something. */\n onEvents: (runId: string, events: readonly RunEvent[]) => void;\n /** The run is over, or could not be followed: nothing more will come of it. */\n onEnd: (runId: string) => void;\n}\n\n/**\n * Follows one run's journal (`useRunStream`) and hands what it says to the stage: the surfaces it\n * placed and the windows it opened. It draws nothing. A shell keeps one for each answer it hears\n * until the run ends, so a run that opens a window late (after it paused for an approval) opens\n * it when it happens.\n */\nexport function Journal({ runId, onEvents, onEnd }: JournalProps) {\n const { events, status } = useRunStream(runId, { cards: false });\n useEffect(() => {\n onEvents(runId, events);\n }, [runId, events, onEvents]);\n useEffect(() => {\n if (status === \"done\" || status === \"failed\") onEnd(runId);\n }, [runId, status, onEnd]);\n return null;\n}\n","import { createContext, useContext } from \"react\";\n\nimport type { Conversation } from \"../chat/useConversation.js\";\n\n/** What the voice heard and was answered in its latest turn: the words the chat collapses to. */\nexport interface Spoken {\n said: string;\n answer: string;\n}\n\n/**\n * What a shell holds that its conversation window draws: the conversation itself, which lives in\n * the shell so that the box in the dock, the transcript on the stage and the picks on a generated\n * window all speak in the same one, and whether the person is listening instead of reading.\n */\nexport interface SpaceChat {\n conversation: Conversation;\n /** The person talks and listens: the transcript collapses to the words just said. */\n voice: boolean;\n /** The voice's latest turn, which the captions show while it is newer than the transcript. */\n spoken: Spoken | undefined;\n}\n\nexport const SpaceChatContext = createContext<SpaceChat | undefined>(undefined);\n\n/** The shell's conversation, when the window is drawn inside one; else nothing. */\nexport function useSpaceChat(): SpaceChat | undefined {\n return useContext(SpaceChatContext);\n}\n","import type { ChatMessage } from \"../chat/types.js\";\nimport { useMessages, useParts } from \"../SignalcoreProvider.js\";\nimport type { SpaceChat, Spoken } from \"./space.js\";\n\nexport interface CaptionsProps {\n chat: Pick<SpaceChat, \"conversation\" | \"spoken\">;\n /** What the captions are called to someone who cannot see them. */\n label?: string | undefined;\n className?: string | undefined;\n}\n\n/**\n * The conversation when the person is listening instead of reading: the last thing they said and\n * the last thing the agent answered, as plain lines, and nothing of the transcript. The voice's\n * own turn is shown while it is the latest; before the first one, the end of what was written.\n */\nexport function Captions({ chat, label, className }: CaptionsProps) {\n const part = useParts();\n const copy = useMessages();\n const { said, answer } = chat.spoken ?? lastTurn(chat.conversation.messages);\n return (\n <section {...part(\"captions\", [], className)} aria-label={label ?? copy.space.captions}>\n {said !== \"\" && (\n <p {...part(\"captions__line\", [\"person\"])}>\n <span {...part(\"sr-only\")}>{copy.you}: </span>\n {said}\n </p>\n )}\n {answer !== \"\" && (\n <p {...part(\"captions__line\", [\"agent\"])}>\n <span {...part(\"sr-only\")}>{copy.theAgent}: </span>\n {answer}\n </p>\n )}\n </section>\n );\n}\n\n/** What the person last said, and the agent's answer to it if it has come. */\nfunction lastTurn(messages: readonly ChatMessage[]): Spoken {\n const asked = messages.findLastIndex((message) => message.role === \"person\");\n const said = messages[asked]?.text ?? \"\";\n const reply = messages.slice(asked + 1).find((message) => message.role === \"agent\");\n // Before anyone spoke, the end of what the agent said is what there is.\n const answer =\n asked === -1 ? (messages.findLast((m) => m.role === \"agent\")?.text ?? \"\") : (reply?.text ?? \"\");\n return { said, answer };\n}\n","import { useMemo } from \"react\";\n\nimport { AgentChat } from \"../chat/AgentChat.js\";\nimport { ChatView } from \"../chat/ChatView.js\";\nimport { BrowserView } from \"../browser/BrowserView.js\";\nimport { LiveView } from \"../live/LiveView.js\";\nimport { useMessages, useParts, useSignalcore } from \"../SignalcoreProvider.js\";\nimport { Captions } from \"./Captions.js\";\nimport type { DefaultWindowComponents, DefaultWindowProps } from \"./kinds.js\";\nimport { useSpaceChat } from \"./space.js\";\n\n/**\n * What a window says when nothing here draws it, or what it needs to be drawn is missing: its\n * text twin if the agent gave one when it opened it, else that it is not available. Never an\n * error: a host that has not registered a kind is a host that does not show it.\n */\nexport function WindowTwin({ text }: { text: string | undefined }) {\n const part = useParts();\n const copy = useMessages();\n return <p {...part(\"window__twin\")}>{text ?? copy.space.noComponent}</p>;\n}\n\n/**\n * The conversation. Inside a shell it is the shell's own (the box is in the dock, and when the\n * person speaks the transcript collapses to captions); on its own, where a host lays windows out\n * itself, it is a chat of its own, `AgentChat`.\n */\nfunction ChatWindow({ agentId, thread, label, className }: DefaultWindowProps) {\n const chat = useSpaceChat();\n if (!chat) {\n return <AgentChat agentId={agentId} thread={thread} label={label} className={className} />;\n }\n return chat.voice ? (\n <Captions chat={chat} className={className} />\n ) : (\n <ChatView conversation={chat.conversation} label={label} className={className} docked />\n );\n}\n\n/** A hosted browser, which the host opens with the session to watch (`params.sessionId`). */\nfunction BrowserWindow({ params, fallbackText, label, className }: DefaultWindowProps) {\n const sessionId = params[\"sessionId\"];\n if (sessionId === undefined) return <WindowTwin text={fallbackText} />;\n return (\n <BrowserView\n sessionId={sessionId}\n streamId={params[\"streamId\"]}\n url={params[\"url\"]}\n title={params[\"title\"] ?? label}\n className={className}\n />\n );\n}\n\n/** A live stream, which the host opens with the stream to watch (`params.streamId`). */\nfunction LiveWindow({ params, fallbackText, label, className }: DefaultWindowProps) {\n const streamId = params[\"streamId\"];\n if (streamId === undefined) return <WindowTwin text={fallbackText} />;\n return (\n <LiveView\n streamId={streamId}\n aspect={params[\"aspect\"]}\n input={params[\"input\"] === \"true\"}\n label={label}\n className={className}\n />\n );\n}\n\n/**\n * The windows the core of the package draws. A host's `windows` on the provider are laid over\n * them, and the kinds that live in other entries (`flow`, `voice`) or need an owner's data\n * (`automations`) are the host's to register, so a page that never shows them does not load\n * them.\n */\nexport const CORE_WINDOWS: DefaultWindowComponents = {\n chat: ChatWindow,\n browser: BrowserWindow,\n live: LiveWindow,\n};\n\n/** The components that draw the default windows here: the core's, with the host's laid over. */\nexport function useWindowComponents(): DefaultWindowComponents {\n const { windows } = useSignalcore();\n return useMemo(() => ({ ...CORE_WINDOWS, ...windows }), [windows]);\n}\n","import { Icon, Mark, type IconName } from \"../parts/Icon.js\";\nimport type { Slot } from \"../look.js\";\nimport type { AgentWindow } from \"./reduce.js\";\n\ntype Drawing = { icon: IconName } | { path: string };\n\n/**\n * What each kind of window is drawn with: a mark that says what it is at a glance, in the\n * strip and in the window's own bar. Phosphor Icons (MIT, phosphoricons.com), the regular\n * weight, like the rest of the package's marks.\n */\nconst DRAWINGS: Record<AgentWindow[\"kind\"], Drawing> = {\n chat: {\n path: \"M128,24A104,104,0,0,0,36.18,176.88L24.83,210.93a16,16,0,0,0,20.24,20.24l34.05-11.35A104,104,0,1,0,128,24Zm0,192a87.87,87.87,0,0,1-44.06-11.81,8,8,0,0,0-6.54-.67L40,216,52.47,178.6a8,8,0,0,0-.66-6.54A88,88,0,1,1,128,216Z\",\n },\n automations: { icon: \"listChecks\" },\n flow: {\n path: \"M160,112h48a16,16,0,0,0,16-16V48a16,16,0,0,0-16-16H160a16,16,0,0,0-16,16V64H128a24,24,0,0,0-24,24v32H72v-8A16,16,0,0,0,56,96H24A16,16,0,0,0,8,112v32a16,16,0,0,0,16,16H56a16,16,0,0,0,16-16v-8h32v32a24,24,0,0,0,24,24h16v16a16,16,0,0,0,16,16h48a16,16,0,0,0,16-16V160a16,16,0,0,0-16-16H160a16,16,0,0,0-16,16v16H128a8,8,0,0,1-8-8V88a8,8,0,0,1,8-8h16V96A16,16,0,0,0,160,112ZM56,144H24V112H56v32Zm104,16h48v48H160Zm0-112h48V96H160Z\",\n },\n voice: { icon: \"microphone\" },\n browser: {\n path: \"M128,24h0A104,104,0,1,0,232,128,104.12,104.12,0,0,0,128,24Zm88,104a87.61,87.61,0,0,1-3.33,24H174.16a157.44,157.44,0,0,0,0-48h38.51A87.61,87.61,0,0,1,216,128ZM102,168H154a115.11,115.11,0,0,1-26,45A115.27,115.27,0,0,1,102,168Zm-3.9-16a140.84,140.84,0,0,1,0-48h59.88a140.84,140.84,0,0,1,0,48ZM40,128a87.61,87.61,0,0,1,3.33-24H81.84a157.44,157.44,0,0,0,0,48H43.33A87.61,87.61,0,0,1,40,128ZM154,88H102a115.11,115.11,0,0,1,26-45A115.27,115.27,0,0,1,154,88Zm52.33,0H170.71a135.28,135.28,0,0,0-22.3-45.6A88.29,88.29,0,0,1,206.37,88ZM107.59,42.4A135.28,135.28,0,0,0,85.29,88H49.63A88.29,88.29,0,0,1,107.59,42.4ZM49.63,168H85.29a135.28,135.28,0,0,0,22.3,45.6A88.29,88.29,0,0,1,49.63,168Zm98.78,45.6a135.28,135.28,0,0,0,22.3-45.6h35.66A88.29,88.29,0,0,1,148.41,213.6Z\",\n },\n live: {\n path: \"M128,88a40,40,0,1,0,40,40A40,40,0,0,0,128,88Zm0,64a24,24,0,1,1,24-24A24,24,0,0,1,128,152Zm73.71,7.14a80,80,0,0,1-14.08,22.2,8,8,0,0,1-11.92-10.67,63.95,63.95,0,0,0,0-85.33,8,8,0,1,1,11.92-10.67,80.08,80.08,0,0,1,14.08,84.47ZM69,103.09a64,64,0,0,0,11.26,67.58,8,8,0,0,1-11.92,10.67,79.93,79.93,0,0,1,0-106.67A8,8,0,1,1,80.29,85.34,63.77,63.77,0,0,0,69,103.09ZM248,128a119.58,119.58,0,0,1-34.29,84,8,8,0,1,1-11.42-11.2,103.9,103.9,0,0,0,0-145.56A8,8,0,1,1,213.71,44,119.58,119.58,0,0,1,248,128ZM53.71,200.78A8,8,0,1,1,42.29,212a119.87,119.87,0,0,1,0-168,8,8,0,1,1,11.42,11.2,103.9,103.9,0,0,0,0,145.56Z\",\n },\n surface: {\n path: \"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,160H40V56H216V200ZM80,84A12,12,0,1,1,68,72,12,12,0,0,1,80,84Zm40,0a12,12,0,1,1-12-12A12,12,0,0,1,120,84Z\",\n },\n};\n\n/** The mark of a kind of window; decoration only, the window's title is what names it. */\nexport function KindMark({ kind, slot }: { kind: AgentWindow[\"kind\"]; slot: Slot }) {\n const drawing = DRAWINGS[kind];\n return \"icon\" in drawing ? (\n <Icon name={drawing.icon} slot={slot} />\n ) : (\n <Mark path={drawing.path} slot={slot} />\n );\n}\n","import { useId, type ReactNode } from \"react\";\n\nimport { IconButton } from \"../parts/Button.js\";\nimport { Icon } from \"../parts/Icon.js\";\nimport { Scoped, useMessages, useParts } from \"../SignalcoreProvider.js\";\nimport { KindMark } from \"./KindMark.js\";\nimport type { AgentWindow } from \"./reduce.js\";\n\nexport interface WindowFrameProps {\n /** What the window is called: its heading, which names it to someone who cannot see it. */\n title: string;\n /** What the window is, for its mark and for a host's styles (`sc-window--flow`). */\n kind: AgentWindow[\"kind\"];\n /**\n * Closes the window, with a button in its bar. Without it the window has none: the\n * conversation is the one a stage cannot lose.\n */\n onClose?: (() => void) | undefined;\n children: ReactNode;\n className?: string | undefined;\n}\n\n/**\n * The chrome every window gets on a stage: its mark and title in a bar, a way to close it, and\n * the room for its content, which scrolls inside while the bar stays. A window is a plain\n * component, so a host may use the frame around its own content, anywhere, without the shell.\n * The frame is a named group, not a landmark: the windows it holds (the conversation, the\n * automations) are the landmarks, and nesting two regions of one name only repeats it.\n */\nexport function WindowFrame(props: WindowFrameProps) {\n return (\n <Scoped>\n <Framed {...props} />\n </Scoped>\n );\n}\n\nfunction Framed({ title, kind, onClose, children, className }: WindowFrameProps) {\n const part = useParts();\n const copy = useMessages();\n const headingId = useId();\n return (\n <div role=\"group\" {...part(\"window\", [kind], className)} aria-labelledby={headingId}>\n <header {...part(\"window__bar\")}>\n <KindMark kind={kind} slot=\"window__mark\" />\n <h2 id={headingId} {...part(\"window__title\")}>\n {title}\n </h2>\n {onClose && (\n <IconButton label={copy.space.close(title)} onClick={onClose}>\n <Icon name=\"x\" />\n </IconButton>\n )}\n </header>\n <div {...part(\"window__body\")}>{children}</div>\n </div>\n );\n}\n","import { Surface } from \"../surface/Surface.js\";\nimport type { SurfaceAction, SurfaceData } from \"../surface/types.js\";\nimport { placementOf } from \"./reduce.js\";\nimport { WindowFrame } from \"./WindowFrame.js\";\n\nexport interface SurfaceWindowProps {\n surface: SurfaceData;\n /** What the window is called. Default: the title the agent placed the surface with. */\n title?: string | undefined;\n /**\n * What the person did on the surface (a pick, a form), in the shape `invoke` expects. The shell\n * sends it to the agent as the next turn, the way the chat does; without it the window is a\n * record of what was shown.\n */\n onAction?: ((action: SurfaceAction) => void) | undefined;\n onClose?: (() => void) | undefined;\n className?: string | undefined;\n}\n\n/**\n * A generated window: a surface the agent composed from the catalog, drawn in a frame. It is the\n * same `Surface` the transcript draws, with the same rules (a surface it cannot draw shows its\n * text twin, picks go back as actions and never as typed text), in a page of its own.\n */\nexport function SurfaceWindow({\n surface,\n title,\n onAction,\n onClose,\n className,\n}: SurfaceWindowProps) {\n return (\n <WindowFrame\n title={title ?? placementOf(surface)?.title ?? surface.fallback_text}\n kind=\"surface\"\n onClose={onClose}\n className={className}\n >\n <Surface surface={surface} onAction={onAction} />\n </WindowFrame>\n );\n}\n","import { SurfaceBoundary } from \"../surface/SurfaceBoundary.js\";\nimport type { SurfaceAction } from \"../surface/types.js\";\nimport { CHAT_ID, type AgentWindow } from \"./reduce.js\";\nimport { useWindowComponents, WindowTwin } from \"./registry.js\";\nimport { SurfaceWindow } from \"./SurfaceWindow.js\";\nimport { WindowFrame } from \"./WindowFrame.js\";\n\nexport interface StageProps {\n /** The window on the stage. */\n shown: AgentWindow;\n agentId: string;\n thread: string | undefined;\n /** What the person does on a generated window; nothing while the conversation is busy. */\n onAction: ((action: SurfaceAction) => void) | undefined;\n onClose: () => void;\n}\n\n/**\n * The window on the stage, full size, in its frame. A generated window is a surface; a default\n * one is drawn by the component the provider's registry has for its kind, and one with none\n * says what the agent said it shows. Whatever a component does, it cannot take the shell down:\n * if it throws, the window shows its words instead and the rest carries on.\n */\nexport function Stage({ shown, agentId, thread, onAction, onClose }: StageProps) {\n const components = useWindowComponents();\n if (shown.kind === \"surface\") {\n return (\n <SurfaceWindow\n surface={shown.surface}\n title={shown.title}\n onAction={onAction}\n onClose={onClose}\n />\n );\n }\n const Component = components[shown.kind];\n const twin = <WindowTwin text={shown.fallbackText} />;\n return (\n <WindowFrame\n title={shown.title}\n kind={shown.kind}\n onClose={shown.id === CHAT_ID ? undefined : onClose}\n >\n <SurfaceBoundary fallback={twin} resetKey={shown}>\n {Component ? (\n <Component\n agentId={agentId}\n thread={thread}\n label={shown.title}\n fallbackText={shown.fallbackText}\n params={shown.params}\n />\n ) : (\n twin\n )}\n </SurfaceBoundary>\n </WindowFrame>\n );\n}\n","import { useEffect, useRef } from \"react\";\n\nimport { useMessages, useParts } from \"../SignalcoreProvider.js\";\nimport { KindMark } from \"./KindMark.js\";\nimport { CHAT_ID } from \"./reduce.js\";\nimport type { Windows } from \"./useWindows.js\";\n\n/**\n * What a strip is drawn from: the open windows and the ones the person closed, which window is\n * on the stage, and what the person can do about them. A host that draws its own strip\n * (`AgentSpace`'s `renderStrip`) is given this.\n */\nexport type SpaceStrip = Pick<\n Windows,\n \"windows\" | \"closed\" | \"focusedId\" | \"focus\" | \"close\" | \"reopen\"\n> & {\n /** The agent said something while another window was on the stage. */\n unread: boolean;\n};\n\n/**\n * The open windows, each a button with its mark and title that brings it to the stage, the one\n * on the stage marked. A window is closed from its own bar (or with Esc), where it is; the ones\n * the person closed wait after the open ones, quieter, to be opened again with one press. Tab\n * goes from one button to the next, in the order the windows were opened.\n */\nexport function Strip({ windows, closed, focusedId, focus, reopen, unread }: SpaceStrip) {\n const part = useParts();\n const copy = useMessages();\n const onStage = useRef<HTMLButtonElement>(null);\n // A window the agent opens may be past the edge of a narrow strip: bring it into sight.\n useEffect(() => {\n const tab = onStage.current;\n if (tab?.parentElement) showInBar(tab, tab.parentElement);\n }, [focusedId]);\n return (\n <div role=\"group\" aria-label={copy.space.windows} {...part(\"strip\")}>\n {windows.map((window) => {\n const current = window.id === focusedId;\n return (\n <button\n key={window.id}\n ref={current ? onStage : undefined}\n type=\"button\"\n aria-current={current ? \"true\" : undefined}\n onClick={() => {\n focus(window.id);\n }}\n {...part(\"strip__tab\", [current && \"current\"])}\n >\n <KindMark kind={window.kind} slot=\"strip__mark\" />\n <span {...part(\"strip__title\")}>{window.title}</span>\n {unread && window.id === CHAT_ID && (\n // A space apart, so that it is read as a word of its own: \"Conversación, mensaje nuevo\".\n <>\n {\" \"}\n <span role=\"img\" aria-label={copy.space.newMessage} {...part(\"strip__dot\")} />\n </>\n )}\n </button>\n );\n })}\n {closed.map((window) => (\n <button\n key={window.id}\n type=\"button\"\n aria-label={copy.space.reopen(window.title)}\n onClick={() => {\n reopen(window.id);\n }}\n {...part(\"strip__tab\", [\"closed\"])}\n >\n <KindMark kind={window.kind} slot=\"strip__mark\" />\n <span {...part(\"strip__title\")}>{window.title}</span>\n </button>\n ))}\n </div>\n );\n}\n\n/**\n * Scrolls the strip, and only the strip, so that the tab is in the middle of it where it\n * overflows (a row of tabs, or a long rail). The page it is on stays where it is.\n */\nfunction showInBar(tab: HTMLElement, bar: HTMLElement): void {\n if (bar.scrollWidth > bar.clientWidth) {\n bar.scrollLeft = tab.offsetLeft - bar.offsetLeft - (bar.clientWidth - tab.offsetWidth) / 2;\n }\n if (bar.scrollHeight > bar.clientHeight) {\n bar.scrollTop = tab.offsetTop - bar.offsetTop - (bar.clientHeight - tab.offsetHeight) / 2;\n }\n}\n","import { useState } from \"react\";\n\nimport type { ChatMessage } from \"../chat/types.js\";\n\n/**\n * Whether the agent said something the person has not had the chance to see: its last words\n * arrived while the conversation was not what they were looking at. What was already there when\n * the history was read is not new, and neither is anything while they look at the conversation.\n */\nexport function useUnread(\n messages: readonly ChatMessage[],\n loading: boolean,\n looking: boolean,\n): boolean {\n const last = messages.findLast((message) => message.role === \"agent\")?.id;\n const [read, setRead] = useState<string | undefined>();\n const [settled, setSettled] = useState(!loading);\n // Settled while drawing, so that the mark is never shown for words that were already there\n // or that the person is looking at, not even for one frame.\n if (!settled && !loading) {\n setSettled(true);\n setRead(last);\n } else if (settled && looking && read !== last) {\n setRead(last);\n }\n return settled && read !== last;\n}\n","import { useCallback, useMemo, useReducer } from \"react\";\n\nimport { useMessages, useSignalcore } from \"../SignalcoreProvider.js\";\nimport type { RunEvent } from \"../stream/reduce.js\";\nimport type { SurfaceData } from \"../surface/types.js\";\nimport { kindsFor, type DefaultWindowKind, type Viewer } from \"./kinds.js\";\nimport { begin, reduce, type AgentWindow } from \"./reduce.js\";\n\nexport interface WindowsOptions {\n /**\n * Default windows to open besides the conversation, which every stage has. The first one\n * listed takes the stage; without any, the conversation does.\n */\n initial?: readonly DefaultWindowKind[] | undefined;\n /**\n * Who is looking: the windows that are the owner's are never opened for an end user. Default:\n * the provider's `viewer`. Read when the stage opens.\n */\n viewer?: Viewer | undefined;\n}\n\n/** What a host opens a default window with. */\nexport interface OpenOptions {\n title?: string | undefined;\n /** What the window shows, in words, for a viewer where no component draws its kind. */\n fallbackText?: string | undefined;\n /** What the kind needs to be drawn: `sessionId` for a `browser`, `streamId` for a `live`. */\n params?: Readonly<Record<string, string>> | undefined;\n}\n\nexport interface Windows {\n /** The open windows, in the order they were opened. The conversation is the first. */\n windows: AgentWindow[];\n /** The one on the stage. */\n focused: AgentWindow | undefined;\n focusedId: string;\n /** The windows the person closed, the latest first, to offer to reopen them. */\n closed: AgentWindow[];\n /** Brings an open window to the stage. */\n focus: (id: string) => void;\n /** Closes a window; the conversation cannot be closed. It can be reopened from `closed`. */\n close: (id: string) => void;\n reopen: (id: string) => void;\n /** Opens one of the app's own windows, or brings it forward if it is open. */\n open: (kind: DefaultWindowKind, options?: OpenOptions) => void;\n /**\n * The agent showed these surfaces: the ones it placed as a window open one (or replace what\n * their slot had) and take the stage. Safe to call again with the same surfaces: nothing is\n * placed twice, and a window the person closed stays closed until a new surface is put in it.\n */\n place: (surfaces: readonly SurfaceData[]) => void;\n /**\n * The same for a conversation's past, read when it opens: the stage is rebuilt from what the\n * agent placed (the last surface of each slot wins) without taking the person away from the\n * conversation.\n */\n restore: (surfaces: readonly SurfaceData[]) => void;\n /**\n * A run's journal, from the start or with more of it: what the run placed (`ui.surface`) and\n * the app's windows it opened (`ui.window`). The run's id says where the events came from, so\n * hearing the same ones again changes nothing.\n */\n observe: (runId: string, events: readonly RunEvent[]) => void;\n}\n\n/**\n * The state of the stage (ADR 0011): which windows are open, which one is on the stage, which\n * the person closed. It is derived from facts, never from a resource of its own: what the agent\n * placed or opened (the surfaces of the conversation and of its history, the `ui.surface` and\n * `ui.window` events of its runs) and what the person does (focus, close, reopen). Nothing here\n * reads the API; `AgentSpace` feeds it from the conversation, and a host that lays windows out\n * itself feeds it what it already has (`useRunStream`'s events, a history it loaded).\n *\n * The reducer is `reduce` in `./reduce.ts`: pure, so the stage rebuilt from a history and the\n * stage that watched the same events live are the same stage.\n */\nexport function useWindows(options: WindowsOptions = {}): Windows {\n const scope = useSignalcore();\n const copy = useMessages();\n const viewer = options.viewer ?? scope.viewer;\n const [state, dispatch] = useReducer(reduce, undefined, () =>\n begin({\n initial: options.initial ?? [],\n allowed: kindsFor(viewer),\n titleOf: copy.space.titleOf,\n at: Date.now(),\n }),\n );\n\n const focus = useCallback((id: string) => {\n dispatch({ type: \"focus\", id });\n }, []);\n const close = useCallback((id: string) => {\n dispatch({ type: \"close\", id });\n }, []);\n const reopen = useCallback((id: string) => {\n dispatch({ type: \"reopen\", id, at: Date.now() });\n }, []);\n const open = useCallback((kind: DefaultWindowKind, opening: OpenOptions = {}) => {\n dispatch({ type: \"open\", kind, ...opening, at: Date.now() });\n }, []);\n const place = useCallback((surfaces: readonly SurfaceData[]) => {\n dispatch({ type: \"place\", surfaces, quiet: false, at: Date.now() });\n }, []);\n const restore = useCallback((surfaces: readonly SurfaceData[]) => {\n dispatch({ type: \"place\", surfaces, quiet: true, at: Date.now() });\n }, []);\n const observe = useCallback((runId: string, events: readonly RunEvent[]) => {\n dispatch({ type: \"journal\", runId, events, at: Date.now() });\n }, []);\n\n return useMemo(\n () => ({\n windows: state.windows,\n focused: state.windows.find((window) => window.id === state.focusedId),\n focusedId: state.focusedId,\n closed: state.closed,\n focus,\n close,\n reopen,\n open,\n place,\n restore,\n observe,\n }),\n [state, focus, close, reopen, open, place, restore, observe],\n );\n}\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type KeyboardEvent,\n type ReactNode,\n} from \"react\";\n\nimport type { ChatMessage } from \"../chat/types.js\";\nimport { useConversation } from \"../chat/useConversation.js\";\nimport { Scoped, useMessages, useParts, useSignalcore, WithClient } from \"../SignalcoreProvider.js\";\nimport type { SurfaceAction, SurfaceData } from \"../surface/types.js\";\nimport { Dock, type SpaceDock, type SpaceMode } from \"./Dock.js\";\nimport { hearingRuns } from \"./hearing.js\";\nimport { Journal } from \"./Journal.js\";\nimport type { DefaultWindowKind } from \"./kinds.js\";\nimport { CHAT_ID, placementOf } from \"./reduce.js\";\nimport { RevealContext } from \"./reveal.js\";\nimport { SpaceChatContext, type SpaceChat, type Spoken } from \"./space.js\";\nimport { Stage } from \"./Stage.js\";\nimport { Strip, type SpaceStrip } from \"./Strip.js\";\nimport { useUnread } from \"./useUnread.js\";\nimport { useWindows, type Windows } from \"./useWindows.js\";\n\n/** The slot of the window an answer's surface gets when the person is listening and it has none. */\nconst ANSWER_SLOT = \"answer\";\n\n/**\n * What the host's voice is given to speak with, in the shape of the props `VoiceWindow` (from\n * `@signalcore/ui/voice`) takes, so that `renderVoice={(voice) => <VoiceWindow {...voice} />}`\n * is all there is to wire.\n */\nexport interface SpaceVoice {\n agentId: string;\n thread: string | undefined;\n /** A turn was answered: what was said and what came back, which the captions show. */\n onTurn: (turn: Spoken) => void;\n /**\n * The agent showed something with its answer. It is placed as a window (one the agent placed\n * in none gets the `answer` window), because a person who is listening has no transcript to\n * read it in.\n */\n onSurfaces: (surfaces: readonly SurfaceData[]) => void;\n}\n\nexport interface AgentSpaceProps {\n /** The agent the person talks to. */\n agentId: string;\n /** The conversation to speak in; the agent remembers it, and every window speaks in it. */\n thread?: string | undefined;\n /**\n * The app's own windows to open, besides the conversation, which is always there: the first\n * one listed is on the stage (`[\"automations\", \"flow\"]`). Windows the viewer may not be shown\n * (the provider's `viewer`) are not opened. The agent opens more as it works.\n */\n windows?: readonly DefaultWindowKind[] | undefined;\n /**\n * How the person talks to the agent: `\"text\"` (the box in the dock) or `\"voice\"`. Without it\n * the space keeps the choice itself, starting with writing.\n */\n mode?: SpaceMode | undefined;\n /** The person chose to write or to speak with the dock's button. */\n onModeChange?: ((mode: SpaceMode) => void) | undefined;\n /**\n * What the dock draws when the person speaks (a `VoiceWindow` from `@signalcore/ui/voice`, or\n * a voice of the host's own). Without it, there is no voice to choose, and no button for it.\n */\n renderVoice?: ((voice: SpaceVoice) => ReactNode) | undefined;\n /** What was said in this thread before, as `AgentChat` takes it. */\n loadHistory?: ((thread: string | undefined) => Promise<ChatMessage[]>) | undefined;\n /** The person picked or submitted something on a surface; it has already gone to the agent. */\n onSurfaceAction?: ((action: SurfaceAction) => void) | undefined;\n /** Draws the strip of windows in place of ours. */\n renderStrip?: ((strip: SpaceStrip) => ReactNode) | undefined;\n /** Draws the dock in place of ours. */\n renderDock?: ((dock: SpaceDock) => ReactNode) | undefined;\n placeholder?: string | undefined;\n /** What the space is called to someone who cannot see it. */\n label?: string | undefined;\n className?: string | undefined;\n}\n\n/**\n * Everything a person sees of an agent, in one place (ADR 0011): a stage with the window that\n * matters now, a strip of the ones that are open, and a dock to talk from. The conversation is\n * always a window; the others are the app's own (`automations`, `flow`…, drawn from facts by the\n * components the provider registers) and the pages the agent places for the person (\"show me\n * this week's sales\" ends in a page, not a bubble in a transcript). A pick on one of those pages\n * goes to the agent as the next turn, the way a pick in the chat does.\n *\n * It follows the conversation (`useConversation`, which the dock, the transcript and the pages\n * all speak in) and the journals of the runs it hears the answers of, and gives them to the\n * stage (`useWindows`): the stage is rebuilt from the history when it opens, with no resource of\n * its own. A window the person closed stays closed until the agent puts something new in it.\n *\n * With the keyboard, Tab goes from the strip to the stage to the dock, and Esc closes the window\n * on the stage (never the conversation). Under 720 pixels wide the strip becomes tabs above the\n * stage, which takes the width.\n */\nexport function AgentSpace(props: AgentSpaceProps) {\n return (\n <Scoped>\n {/* Another agent or thread is another conversation, with windows of its own. */}\n <Hearing key={`${props.agentId}/${props.thread ?? \"\"}`} {...props} />\n </Scoped>\n );\n}\n\n/**\n * Holds the stage, and listens at the client for the runs behind the answers so their journals\n * can be followed: that is where the app's windows are opened. Below this, every turn a window\n * sends is heard, wherever it is sent from.\n */\nfunction Hearing(props: AgentSpaceProps) {\n const { client } = useSignalcore();\n const stage = useWindows({ initial: props.windows });\n const { observe } = stage;\n const [runs, setRuns] = useState<readonly string[]>([]);\n const heard = useMemo(\n () =>\n hearingRuns(client, (runId) => {\n setRuns((now) => (now.includes(runId) ? now : [...now, runId]));\n }),\n [client],\n );\n const ended = useCallback((runId: string) => {\n setRuns((now) => now.filter((each) => each !== runId));\n }, []);\n return (\n <WithClient client={heard}>\n <Space {...props} stage={stage} />\n {runs.map((runId) => (\n <Journal key={runId} runId={runId} onEvents={observe} onEnd={ended} />\n ))}\n </WithClient>\n );\n}\n\nfunction Space({\n stage,\n agentId,\n thread,\n mode: chosen,\n onModeChange,\n renderVoice,\n loadHistory,\n onSurfaceAction,\n renderStrip,\n renderDock,\n placeholder,\n label,\n className,\n}: AgentSpaceProps & { stage: Windows }) {\n const part = useParts();\n const copy = useMessages();\n const conversation = useConversation({ agentId, thread, loadHistory, onSurfaceAction });\n const { windows, closed, focused, focusedId, focus, close, reopen, place, restore } = stage;\n const stageBox = useRef<HTMLDivElement>(null);\n\n // What the agent placed in the conversation (its past, and each answer after it) is the stage's.\n const restored = useRef(false);\n const { loading, messages } = conversation;\n useEffect(() => {\n if (loading) return;\n const surfaces = messages.flatMap((message) => message.surfaces);\n if (restored.current) {\n place(surfaces);\n } else {\n restored.current = true;\n restore(surfaces);\n }\n }, [loading, messages, place, restore]);\n\n const reveal = useCallback(\n (slot: string) => {\n const id = `slot:${slot}`;\n if (closed.some((each) => each.id === id)) reopen(id);\n else focus(id);\n },\n [closed, focus, reopen],\n );\n\n const [own, setOwn] = useState<SpaceMode>(\"text\");\n const canSpeak = renderVoice !== undefined;\n const mode: SpaceMode = canSpeak && (chosen ?? own) === \"voice\" ? \"voice\" : \"text\";\n const setMode = useCallback(\n (next: SpaceMode) => {\n setOwn(next);\n onModeChange?.(next);\n },\n [onModeChange],\n );\n\n const [spoken, setSpoken] = useState<Spoken>();\n const voice = useMemo<SpaceVoice>(\n () => ({\n agentId,\n thread,\n onTurn: (turn) => {\n setSpoken({ said: turn.said, answer: turn.answer });\n },\n onSurfaces: (surfaces) => {\n place(\n surfaces.map((surface) =>\n placementOf(surface)\n ? surface\n : { ...surface, window: { slot: ANSWER_SLOT, title: copy.space.answer } },\n ),\n );\n },\n }),\n [agentId, thread, place, copy.space.answer],\n );\n\n const chat = useMemo<SpaceChat>(\n () => ({ conversation, voice: mode === \"voice\", spoken }),\n [conversation, mode, spoken],\n );\n\n const unread = useUnread(messages, loading, focusedId === CHAT_ID);\n const strip: SpaceStrip = { windows, closed, focusedId, focus, close, reopen, unread };\n const busy = conversation.answering || conversation.waiting || loading;\n const dock: SpaceDock = {\n mode,\n setMode,\n canSpeak,\n send: conversation.send,\n answering: conversation.answering,\n waiting: conversation.waiting,\n loading,\n problem: conversation.problem,\n announcement: conversation.announcement,\n voice: mode === \"voice\" ? renderVoice?.(voice) : undefined,\n };\n\n // Esc closes the window on the stage, but not from the dock or while typing in a field of it\n // (there it means something else), and never the conversation.\n const closeOnEscape = (event: KeyboardEvent<HTMLElement>) => {\n if (event.key !== \"Escape\" || event.defaultPrevented || focusedId === CHAT_ID) return;\n if (!(event.target instanceof Element) || event.target.closest('[data-sc=\"dock\"]')) return;\n if (event.target.closest(\"input, textarea, select, [contenteditable]\")) return;\n event.preventDefault();\n close(focusedId);\n stageBox.current?.focus();\n };\n\n return (\n <RevealContext value={reveal}>\n <SpaceChatContext value={chat}>\n <section\n {...part(\"space\", [mode === \"voice\" && \"voice\"], className)}\n aria-label={label ?? copy.space.label}\n onKeyDown={closeOnEscape}\n >\n <div {...part(\"space__main\")}>\n {renderStrip ? renderStrip(strip) : <Strip {...strip} />}\n <div ref={stageBox} tabIndex={-1} {...part(\"space__stage\")}>\n {focused && (\n <Stage\n key={focused.id}\n shown={focused}\n agentId={agentId}\n thread={thread}\n onAction={busy ? undefined : conversation.act}\n onClose={() => {\n close(focused.id);\n }}\n />\n )}\n </div>\n </div>\n {renderDock ? renderDock(dock) : <Dock dock={dock} placeholder={placeholder} />}\n </section>\n </SpaceChatContext>\n </RevealContext>\n );\n}\n","import type { UiClient } from \"../client.js\";\nimport type { Locale, MessageOverrides } from \"../messages/index.js\";\nimport { ErrorText } from \"../parts/Input.js\";\nimport { SignalcoreProvider, useMessages } from \"../SignalcoreProvider.js\";\nimport type { SurfaceAction } from \"../surface/types.js\";\nimport { AgentSpace } from \"../windows/AgentSpace.js\";\nimport type { SpaceMode } from \"../windows/Dock.js\";\nimport type { DefaultWindowKind, Viewer } from \"../windows/kinds.js\";\n\nexport interface WidgetSpaceProps {\n client: UiClient | undefined;\n agent: string | null;\n thread: string | undefined;\n windows: readonly DefaultWindowKind[];\n mode: SpaceMode | undefined;\n viewer: Viewer;\n placeholder: string | undefined;\n locale: Locale | undefined;\n messages: MessageOverrides | undefined;\n onSurfaceAction: (action: SurfaceAction) => void;\n onModeChange: (mode: SpaceMode) => void;\n}\n\n/**\n * What the space widget draws in its shadow root: the agent's space (`AgentSpace`), or a quiet\n * line saying it is not available (the host's developer finds out why in the console). The\n * people the widget serves are never shown the owner's windows, unless the page says it is the\n * owner's.\n */\nexport function WidgetSpace({\n client,\n agent,\n thread,\n windows,\n mode,\n viewer,\n placeholder,\n locale,\n messages,\n onSurfaceAction,\n onModeChange,\n}: WidgetSpaceProps) {\n return (\n <SignalcoreProvider client={client} locale={locale} messages={messages} viewer={viewer}>\n {client === undefined || !agent ? (\n <Unavailable />\n ) : (\n <AgentSpace\n agentId={agent}\n thread={thread}\n windows={windows}\n mode={mode}\n placeholder={placeholder}\n onSurfaceAction={onSurfaceAction}\n onModeChange={onModeChange}\n />\n )}\n </SignalcoreProvider>\n );\n}\n\nfunction Unavailable() {\n const messages = useMessages();\n return <ErrorText>{messages.chatUnavailable}</ErrorText>;\n}\n","import type { SurfaceAction } from \"../surface/types.js\";\nimport type { SpaceMode } from \"../windows/Dock.js\";\nimport { isDefaultWindowKind, type DefaultWindowKind, type Viewer } from \"../windows/kinds.js\";\nimport { defineWidget, type WidgetOptions } from \"./define.js\";\nimport { WidgetSpace } from \"./WidgetSpace.js\";\n\nexport const SPACE_TAG = \"signalcore-space\";\n\n/** Where the widget sits by default; the page's own CSS on the element wins over `:host`. */\nconst HOST_STYLE = `:host{display:block;height:36rem}[part=\"root\"]{height:100%}`;\n\n/**\n * Registers `<signalcore-space>`: everything a person sees of an agent (`AgentSpace`) as a web\n * component, for pages that are not React. A stage, a strip of the open windows and a dock to\n * write from; the agent opens more windows as it works.\n *\n * <signalcore-space agent=\"agt_…\" publishable-key=\"pk_live_…\"></signalcore-space>\n * <signalcore-space agent=\"agt_…\" end-user-token=\"…\" thread=\"order-7\" mode=\"text\">\n * </signalcore-space>\n *\n * - `agent`, `thread`, `placeholder`, `locale`, `end-user-token`, `publishable-key`,\n * `visitor-id`, `base-url` and the `client` and `messages` properties: as `<signalcore-chat>`\n * takes them.\n * - `windows`: the app's own windows to open besides the conversation, as a list\n * (`windows=\"automations,flow\"`); the first on the list takes the stage. Read when the\n * element opens. The script build draws the conversation, the browser and the live stream: the\n * other windows show what the agent said they show, until a build that draws them is used.\n * - `mode` (\"text\" or \"voice\"): how the person talks to the agent. Voice needs a voice to speak\n * with, which the script build does not carry, so it stays on text there. The element writes\n * its choice back to the attribute and dispatches `mode-change`.\n * - `viewer` (\"end_user\", the default, or \"owner\"): who is looking. A person the agent serves is\n * never shown the windows that are the owner's; say \"owner\" only for a client of the owner's,\n * set from JavaScript.\n * - It dispatches `surface-action` with the action in `detail` when the person picks or submits\n * something on a surface, in the conversation or in a window.\n * - It draws in a shadow root, themed like `<signalcore-chat>`: `--sc-*` custom properties,\n * `data-theme`, and every slot as a part (`::part(strip)`, `::part(window)`, `::part(dock)`).\n * Under 720px of its own width the strip becomes tabs.\n */\nexport function defineSignalcoreSpace(options: WidgetOptions = {}): CustomElementConstructor {\n return defineWidget(\n {\n tag: SPACE_TAG,\n attributes: [\"windows\", \"mode\", \"viewer\", \"placeholder\"],\n host: HOST_STYLE,\n draw: ({ tag, client, agent, thread, attribute, locale, messages, emit, reflect }) => (\n <WidgetSpace\n client={client}\n agent={agent}\n thread={thread}\n windows={windowsOf(attribute(\"windows\"), tag)}\n mode={modeOf(attribute(\"mode\"), tag)}\n viewer={viewerOf(attribute(\"viewer\"), tag)}\n placeholder={attribute(\"placeholder\")}\n locale={locale}\n messages={messages}\n onSurfaceAction={(action: SurfaceAction) => {\n emit(\"surface-action\", action);\n }}\n onModeChange={(next) => {\n reflect(\"mode\", next);\n emit(\"mode-change\", next);\n }}\n />\n ),\n },\n options,\n );\n}\n\n/** The windows a list names; a name the package does not know is told to the developer. */\nfunction windowsOf(list: string | undefined, tag: string): DefaultWindowKind[] {\n const names = (list ?? \"\")\n .split(\",\")\n .map((name) => name.trim())\n .filter((name) => name !== \"\");\n return names.flatMap((name) => {\n if (isDefaultWindowKind(name)) return [name];\n console.warn(`<${tag}> does not know the window \"${name}\"`);\n return [];\n });\n}\n\nfunction modeOf(value: string | undefined, tag: string): SpaceMode | undefined {\n if (value === undefined || value === \"text\" || value === \"voice\") return value;\n console.warn(`<${tag}> knows mode=\"text\" and mode=\"voice\", not mode=\"${value}\"`);\n return undefined;\n}\n\n/** The people a widget serves, unless the page says it is for the owner. */\nfunction viewerOf(value: string | undefined, tag: string): Viewer {\n if (value === undefined || value === \"end_user\") return \"end_user\";\n if (value === \"owner\") return value;\n console.warn(`<${tag}> knows viewer=\"end_user\" and viewer=\"owner\", not viewer=\"${value}\"`);\n return \"end_user\";\n}\n","/**\n * The self-contained build (`dist/widget.js`): loading it registers `<signalcore-chat>` and\n * `<signalcore-space>`.\n *\n * <script src=\"https://signalcore.ai/app/widget.js\"></script>\n * <signalcore-chat agent=\"agt_…\" publishable-key=\"pk_live_…\"></signalcore-chat>\n * <signalcore-space agent=\"agt_…\" publishable-key=\"pk_live_…\"></signalcore-space>\n */\n\nimport { defineSignalcoreChat } from \"./element.js\";\nimport { defineSignalcoreSpace } from \"./space.js\";\n\ndefineSignalcoreChat();\ndefineSignalcoreSpace();\n"],"ignoreList":[0,1,2,3,4,5,6,7,60,61],"mappings":"4FAWA,SAASgF,EAAK,EAAM,EAAM,CACxB,IAAIC,EAAQC,EAAK,OACjBA,EAAK,KAAKC,CAAI,EACd,EAAG,KAAO,EAAIF,GAAS,CACrB,IAAIG,EAAeH,EAAQ,IAAO,EAChCI,EAASH,EAAKE,GAChB,GAAI,EAAIE,EAAQD,EAAQF,CAAI,EAC1B,EAAMC,GAAeD,EAAQ,EAAKF,GAASI,EAAU,EAAQD,OAC1D,MAAM,CACb,CACF,CACA,SAASG,EAAK,EAAM,CAClB,OAAaL,EAAK,SAAX,EAAoB,KAAOA,EAAK,EACzC,CACA,SAASM,EAAI,EAAM,CACjB,GAAUN,EAAK,SAAX,EAAmB,OAAO,KAC9B,IAAIO,EAAQP,EAAK,GACfQ,EAAOR,EAAK,IAAI,EAClB,GAAIQ,IAASD,EAAO,CAClB,EAAK,GAAKC,EACV,EAAG,IACD,IAAIT,EAAQ,EAAGU,EAAST,EAAK,OAAQU,EAAaD,IAAW,EAC7DV,EAAQW,GAER,CACA,IAAIC,EAAY,GAAKZ,EAAQ,GAAK,EAChCa,EAAOZ,EAAKW,GACZE,EAAaF,EAAY,EACzBG,EAAQd,EAAKa,GACf,GAAI,EAAIT,EAAQQ,EAAMJ,CAAI,EACxBK,EAAaJ,GAAU,EAAIL,EAAQU,EAAOF,CAAI,GACxC,EAAKb,GAASe,EACf,EAAKD,GAAcL,EACnB,EAAQK,IACP,EAAKd,GAASa,EACf,EAAKD,GAAaH,EAClB,EAAQG,QACV,GAAIE,EAAaJ,GAAU,EAAIL,EAAQU,EAAON,CAAI,EACrD,EAAMT,GAASe,EAAS,EAAKD,GAAcL,EAAQ,EAAQK,OACxD,MAAM,CACb,CACF,CACA,OAAON,CACT,CACA,SAASH,EAAQ,EAAG,EAAG,CACrB,IAAIW,EAAOC,EAAE,UAAYC,EAAE,UAC3B,OAAaF,IAAN,EAAoBC,EAAE,GAAKC,EAAE,GAAhBF,CACtB,CAEA,GADA,EAAQ,aAAe,IAAK,GACX,OAAO,aAApB,UAAkD,OAAO,YAAY,KAAlC,WAAuC,CAC5E,IAAIG,EAAmB,YACvB,EAAQ,aAAe,UAAY,CACjC,OAAOA,EAAiB,IAAI,CAC9B,CACF,KAAO,CACL,IAAIC,EAAY,KACdC,EAAcD,EAAU,IAAI,EAC9B,EAAQ,aAAe,UAAY,CACjC,OAAOA,EAAU,IAAI,EAAIC,CAC3B,CACF,CACA,IAAIC,EAAY,CAAC,EACfC,EAAa,CAAC,EACdC,EAAgB,EAChBC,EAAc,KACdC,EAAuB,EACvBC,EAAmB,CAAC,EACpBC,EAA0B,CAAC,EAC3BC,EAAyB,CAAC,EAC1BC,EAAa,CAAC,EACdC,EAAiC,OAAO,YAAtB,WAAmC,WAAa,KAClEC,EAAmC,OAAO,cAAtB,WAAqC,aAAe,KACxEC,EAAoC,OAAO,aAAvB,IAAsC,aAAe,KAC3E,SAASC,EAAc,EAAa,CAClC,IAAK,IAAIC,EAAQ7B,EAAKiB,CAAU,EAAYY,IAAT,MAAkB,CACnD,GAAaA,EAAM,WAAf,KAAyB5B,EAAIgB,CAAU,OACtC,GAAIY,EAAM,WAAaC,EAC1B7B,EAAIgB,CAAU,EACX,EAAM,UAAYY,EAAM,eACzBpC,EAAKuB,EAAWa,CAAK,OACpB,MACL,EAAQ7B,EAAKiB,CAAU,CACzB,CACF,CACA,SAASc,GAAc,EAAa,CAGlC,GAFA,EAAyB,CAAC,EAC1BH,EAAcE,CAAW,EACrB,CAACR,EACH,IAAatB,EAAKgB,CAAS,IAAvB,KACF,EAA2B,CAAC,EAC1BgB,IACI,EAAuB,CAAC,EAAIC,GAAiC,OAChE,CACH,IAAIC,EAAalC,EAAKiB,CAAU,EACvBiB,IAAT,MACEC,GAAmBJ,GAAeG,EAAW,UAAYJ,CAAW,CACxE,EACJ,CACA,IAAIE,EAAuB,CAAC,EAC1BI,EAAgB,GAChBC,GAAgB,EAChBC,EAAY,GACd,SAASC,IAAoB,CAC3B,OAAOf,EACH,CAAC,EACD,IAAQ,aAAa,EAAIc,EAAYD,GAG3C,CACA,SAASG,GAA2B,CAElC,GADA,EAAa,CAAC,EACVR,EAAsB,CACxB,IAAIF,EAAcW,EAAQ,aAAa,EACvC,EAAYX,EACZ,IAAIY,EAAc,CAAC,EACnB,GAAI,CACF,EAAG,CACD,EAA0B,CAAC,EAC3BnB,IACI,EAAyB,CAAC,EAC5BG,EAAkBU,CAAa,EAC9B,EAAgB,IACnB,EAAmB,CAAC,EACpB,IAAIO,EAAwBvB,EAC5B,GAAI,CACF,EAAG,CAED,IADAQ,EAAcE,CAAW,EAEvB,EAAc9B,EAAKgB,CAAS,EACnBG,IAAT,MACA,EACEA,EAAY,eAAiBW,GAAeS,GAAkB,IAGhE,CACA,IAAIK,EAAWzB,EAAY,SAC3B,GAAmB,OAAOyB,GAAtB,WAAgC,CAClC,EAAY,SAAW,KACvB,EAAuBzB,EAAY,cACnC,IAAI0B,EAAuBD,EACzBzB,EAAY,gBAAkBW,CAChC,EAEA,GADA,EAAcW,EAAQ,aAAa,EAChB,OAAOI,GAAtB,WAA4C,CAC9C,EAAY,SAAWA,EACvBjB,EAAcE,CAAW,EACzB,EAAc,CAAC,EACf,MAAM,CACR,CACAX,IAAgBnB,EAAKgB,CAAS,GAAKf,EAAIe,CAAS,EAChDY,EAAcE,CAAW,CAC3B,MAAO7B,EAAIe,CAAS,EACpB,EAAchB,EAAKgB,CAAS,CAC9B,CACA,GAAaG,IAAT,KAAsB,EAAc,CAAC,MACpC,CACH,IAAIe,EAAalC,EAAKiB,CAAU,EACvBiB,IAAT,MACEC,GACEJ,GACAG,EAAW,UAAYJ,CACzB,EACF,EAAc,CAAC,CACjB,CACF,CACA,MAAM,CACR,QAAU,CACR,EAAe,KACZ,EAAuBa,EACvB,EAAmB,CAAC,CACzB,CACA,EAAc,IAAK,EACrB,CACF,QAAU,CACRD,EACIT,GAAiC,EAChC,EAAuB,CAAC,CAC/B,CACF,CACF,CACA,IAAIA,GACJ,GAAmB,OAAON,GAAtB,WACF,GAAmC,UAAY,CAC7CA,EAAkBa,CAAwB,CAC5C,OACG,GAAoB,OAAO,eAAvB,IAAuC,CAC9C,IAAIM,GAAU,IAAI,eAChBC,GAAOD,GAAQ,MACjB,GAAQ,MAAM,UAAYN,EAC1B,GAAmC,UAAY,CAC7CO,GAAK,YAAY,IAAI,CACvB,CACF,KACE,IAAmC,UAAY,CAC7CtB,EAAgBe,EAA0B,CAAC,CAC7C,EACF,SAASL,GAAmB,EAAU,EAAI,CACxC,EAAgBV,EAAgB,UAAY,CAC1CmB,EAASH,EAAQ,aAAa,CAAC,CACjC,EAAGO,CAAE,CACP,CACA,EAAQ,sBAAwB,EAChC,EAAQ,2BAA6B,EACrC,EAAQ,qBAAuB,EAC/B,EAAQ,wBAA0B,EAClC,EAAQ,mBAAqB,KAC7B,EAAQ,8BAAgC,EACxC,EAAQ,wBAA0B,SAAU,EAAM,CAChD,EAAK,SAAW,IAClB,EACA,EAAQ,wBAA0B,SAAU,EAAK,CAC/C,EAAIC,GAAO,IAAMA,EACb,QAAQ,MACN,iHACF,EACC,GAAgB,EAAIA,EAAM,KAAK,MAAM,IAAMA,CAAG,EAAI,CACzD,EACA,EAAQ,iCAAmC,UAAY,CACrD,OAAO7B,CACT,EACA,EAAQ,cAAgB,SAAU,EAAc,CAC9C,OAAQA,EAAR,CACE,IAAK,GACL,IAAK,GACL,IAAK,GACH,IAAI8B,EAAgB,EACpB,MACF,QACE,EAAgB9B,CACpB,CACA,IAAIuB,EAAwBvB,EAC5B,EAAuB8B,EACvB,GAAI,CACF,OAAOC,EAAa,CACtB,QAAU,CACR,EAAuBR,CACzB,CACF,EACA,EAAQ,sBAAwB,UAAY,CAC1C,EAAa,CAAC,CAChB,EACA,EAAQ,yBAA2B,SAAU,EAAe,EAAc,CACxE,OAAQO,EAAR,CACE,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACH,MACF,QACE,EAAgB,CACpB,CACA,IAAIP,EAAwBvB,EAC5B,EAAuB8B,EACvB,GAAI,CACF,OAAOC,EAAa,CACtB,QAAU,CACR,EAAuBR,CACzB,CACF,EACA,EAAQ,0BAA4B,SAClC,EACA,EACA,EACA,CACA,IAAIb,EAAcW,EAAQ,aAAa,EAQvC,OAPa,OAAOW,GAApB,UAAwCA,GAClC,EAAUA,EAAQ,MACnB,EACc,OAAOA,GAApB,UAA+B,EAAIA,EAC/BtB,EAAcsB,EACdtB,GACL,EAAUA,EACPoB,EAAR,CACE,IAAK,GACH,IAAIG,EAAU,GACd,MACF,IAAK,GACH,EAAU,IACV,MACF,IAAK,GACH,EAAU,WACV,MACF,IAAK,GACH,EAAU,IACV,MACF,QACE,EAAU,GACd,CA0BA,MAzBA,GAAUD,EAAUC,EACpB,EAAgB,CACd,GAAI,IACM,WACK,gBACf,UAAWD,EACX,eAAgBC,EAChB,UAAW,EACb,EACAD,EAAUtB,GACJ,EAAc,UAAYsB,EAC5B3D,EAAKwB,EAAYiC,CAAa,EACrBlD,EAAKgB,CAAS,IAAvB,MACEkC,IAAkBlD,EAAKiB,CAAU,IAChCM,GACIG,EAAkBU,CAAa,EAAI,EAAgB,IACnD,EAAyB,CAAC,EAC/BD,GAAmBJ,GAAeqB,EAAUtB,CAAW,KACvD,EAAc,UAAYuB,EAC5B5D,EAAKuB,EAAWkC,CAAa,EAC7B5B,GACED,IACE,EAA0B,CAAC,EAC7BW,IACI,EAAuB,CAAC,EAAIC,GAAiC,KAChEiB,CACT,EACA,EAAQ,qBAAuBX,GAC/B,EAAQ,sBAAwB,SAAU,EAAU,CAClD,IAAIe,EAAsBlC,EAC1B,OAAO,UAAY,CACjB,IAAIuB,EAAwBvB,EAC5B,EAAuBkC,EACvB,GAAI,CACF,OAAOV,EAAS,MAAM,KAAM,SAAS,CACvC,QAAU,CACR,EAAuBD,CACzB,CACF,CACF,kBChVE,EAAO,QAAAnD,EAAA,cCQT,IAAIiE,EAAqB,OAAO,IAAI,4BAA4B,EAC9DC,EAAoB,OAAO,IAAI,cAAc,EAC7CC,EAAsB,OAAO,IAAI,gBAAgB,EACjDC,EAAyB,OAAO,IAAI,mBAAmB,EACvDC,EAAsB,OAAO,IAAI,gBAAgB,EACjDC,EAAsB,OAAO,IAAI,gBAAgB,EACjDC,EAAqB,OAAO,IAAI,eAAe,EAC/CC,EAAyB,OAAO,IAAI,mBAAmB,EACvDC,EAAsB,OAAO,IAAI,gBAAgB,EACjDC,EAAkB,OAAO,IAAI,YAAY,EACzCC,EAAkB,OAAO,IAAI,YAAY,EACzCC,EAAsB,OAAO,IAAI,gBAAgB,EACjDC,EAA6B,OAAO,IAAI,uBAAuB,EAC/DC,EAAwB,OAAO,SACjC,SAASC,EAAc,EAAe,CAKpC,OAJ2C,OAAOC,GAApB,WAAjBA,EAA2D,MACxE,EACGF,GAAyBE,EAAcF,IACxCE,EAAc,cACM,OAAOA,GAAtB,WAAsCA,EAAgB,KAC/D,CACA,IAAIC,EAAuB,CACvB,UAAW,UAAY,CACrB,MAAO,CAAC,CACV,EACA,mBAAoB,UAAY,CAAC,EACjC,oBAAqB,UAAY,CAAC,EAClC,gBAAiB,UAAY,CAAC,CAChC,EACAC,EAAS,OAAO,OAChBC,EAAc,CAAC,EACjB,SAASC,EAAU,EAAO,EAAS,EAAS,CAC1C,KAAK,MAAQC,EACb,KAAK,QAAUC,EACf,KAAK,KAAOH,EACZ,KAAK,QAAUI,GAAWN,CAC5B,CACA,EAAU,UAAU,iBAAmB,CAAC,EACxC,EAAU,UAAU,SAAW,SAAU,EAAc,EAAU,CAC/D,GACe,OAAOO,GAApB,UACe,OAAOA,GAAtB,YACQA,GAAR,KAEA,MAAM,MACJ,wGACF,EACF,KAAK,QAAQ,gBAAgB,KAAMA,EAAcpC,EAAU,UAAU,CACvE,EACA,EAAU,UAAU,YAAc,SAAU,EAAU,CACpD,KAAK,QAAQ,mBAAmB,KAAMA,EAAU,aAAa,CAC/D,EACA,SAASqC,GAAiB,CAAC,CAC3B,EAAe,UAAYL,EAAU,UACrC,SAASM,GAAc,EAAO,EAAS,EAAS,CAC9C,KAAK,MAAQL,EACb,KAAK,QAAUC,EACf,KAAK,KAAOH,EACZ,KAAK,QAAUI,GAAWN,CAC5B,CACA,IAAIU,EAA0B,GAAc,UAAY,IAAIF,EAC5D,EAAuB,YAAcC,GACrCR,EAAOS,EAAwBP,EAAU,SAAS,EAClD,EAAuB,qBAAuB,CAAC,EAC/C,IAAIQ,EAAc,MAAM,QACxB,SAASC,IAAO,CAAC,CACjB,IAAIC,EAAuB,CAAE,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,IAAK,EAC9DC,GAAiB,OAAO,UAAU,eACpC,SAASC,EAAa,EAAM,EAAK,EAAO,CACtC,IAAIC,EAAUZ,EAAM,IACpB,MAAO,CACL,SAAUpB,EACJ,OACD,MACL,IAAgBgC,IAAX,IAAK,GAA0B,KAAVA,EACnB,OACT,CACF,CACA,SAASC,GAAmB,EAAY,EAAQ,CAC9C,OAAOF,EAAaG,EAAW,KAAMC,EAAQD,EAAW,KAAK,CAC/D,CACA,SAASE,GAAe,EAAQ,CAC9B,OACe,OAAOC,GAApB,YACSA,GACTA,EAAO,WAAarC,CAExB,CACA,SAASsC,GAAO,EAAK,CACnB,IAAIC,EAAgB,CAAE,IAAK,KAAM,IAAK,IAAK,EAC3C,MACE,IACAC,EAAI,QAAQ,QAAS,SAAU,EAAO,CACpC,OAAOD,EAAcE,EACvB,CAAC,CAEL,CACA,IAAIC,GAA6B,OACjC,SAASC,GAAc,EAAS,EAAO,CACrC,OAAoB,OAAOC,GAApB,UAAwCA,GAAmBA,EAAQ,KAAhB,KACtDN,GAAO,GAAKM,EAAQ,GAAG,EACvB3G,EAAM,SAAS,EAAE,CACvB,CACA,SAAS4G,GAAgB,EAAU,CACjC,OAAQC,EAAS,OAAjB,CACE,IAAK,YACH,OAAOA,EAAS,MAClB,IAAK,WACH,MAAMA,EAAS,OACjB,QACE,OACgB,OAAOA,EAAS,QAA7B,SACGA,EAAS,KAAKlB,GAAMA,EAAI,GACtB,EAAS,OAAS,UACpBkB,EAAS,KACP,SAAU,EAAgB,CACVA,EAAS,SAAvB,YACI,EAAS,OAAS,YACnB,EAAS,MAAQC,EACtB,EACA,SAAU,EAAO,CACDD,EAAS,SAAvB,YACI,EAAS,OAAS,WAAc,EAAS,OAASE,EACxD,CACF,GACJF,EAAS,OAfX,CAiBE,IAAK,YACH,OAAOA,EAAS,MAClB,IAAK,WACH,MAAMA,EAAS,MACnB,CACJ,CACA,MAAMA,CACR,CACA,SAASG,GAAa,EAAU,EAAO,EAAe,EAAW,EAAU,CACzE,IAAIC,EAAO,OAAOC,GACED,IAAhB,aAAsCA,IAAd,aAAoB,EAAW,MAC3D,IAAIE,EAAiB,CAAC,EACtB,GAAaD,IAAT,KAAmB,EAAiB,CAAC,OAEvC,OAAQD,EAAR,CACE,IAAK,SACL,IAAK,SACL,IAAK,SACH,EAAiB,CAAC,EAClB,MACF,IAAK,SACH,OAAQC,EAAS,SAAjB,CACE,KAAKnD,EACL,KAAKC,EACH,EAAiB,CAAC,EAClB,MACF,KAAKS,EACH,MACG,GAAiByC,EAAS,MAC3BF,GACEG,EAAeD,EAAS,QAAQ,EAChCE,EACAC,EACAC,EACApE,CACF,CAEN,CACJ,CACF,GAAIiE,EACF,MACG,GAAWjE,EAASgE,CAAQ,EAC5B,EACQI,IAAP,GAAmB,IAAMZ,GAAcQ,EAAU,CAAC,EAAII,EACxD5B,EAAYxC,CAAQ,GACd,EAAgB,GACViE,GAAR,OACG,EACCA,EAAe,QAAQV,GAA4B,KAAK,EAAI,KAChEO,GAAa9D,EAAUkE,EAAOC,EAAe,GAAI,SAAU,EAAG,CAC5D,OAAOE,CACT,CAAC,GACOrE,GAAR,OACCiD,GAAejD,CAAQ,IACrB,EAAW8C,GACV9C,EACAmE,GACWnE,EAAS,KAAjB,MACAgE,GAAYA,EAAS,MAAQhE,EAAS,IACnC,IACC,GAAKA,EAAS,IAAA,CAAK,QAClBuD,GACA,KACF,EAAI,KACRU,CACJ,GACFC,EAAM,KAAKlE,CAAQ,GACvB,EAEJ,EAAiB,EACjB,IAAIsE,EAAwBF,IAAP,GAAmB,IAAMA,EAAY,IAC1D,GAAI5B,EAAYwB,CAAQ,EACtB,IAAK,IAAIO,EAAI,EAAGA,EAAIP,EAAS,OAAQ,IACnC,EAAaA,EAASO,GACnB,EAAOD,EAAiBd,GAAcY,EAAWG,CAAC,EAClD,GAAkBT,GACjBM,EACAF,EACAC,EACAJ,EACA/D,CACF,OACD,GAAM,EAAI2B,EAAcqC,CAAQ,EAAmB,OAAOO,GAAtB,WACvC,IACE,EAAWA,EAAE,KAAKP,CAAQ,EAAG,EAAI,EACjC,EAAE,EAAYA,EAAS,KAAK,EAAA,CAAG,MAG/B,EAAaI,EAAU,MACpB,EAAOE,EAAiBd,GAAcY,EAAW,GAAG,EACpD,GAAkBN,GACjBM,EACAF,EACAC,EACAJ,EACA/D,CACF,OACD,GAAiB+D,IAAb,SAAmB,CAC1B,GAAmB,OAAOC,EAAS,MAA/B,WACF,OAAOF,GACLJ,GAAgBM,CAAQ,EACxBE,EACAC,EACAC,EACApE,CACF,EAEF,KADA,GAAQ,OAAOgE,CAAQ,EACjB,MACJ,mDACyBE,IAAtB,kBACG,qBAAuB,OAAO,KAAKF,CAAQ,CAAC,CAAC,KAAK,IAAI,EAAI,IAC1DE,GACJ,2EACJ,CACF,CACA,OAAOD,CACT,CACA,SAASO,GAAY,EAAU,EAAM,EAAS,CAC5C,GAAYR,GAAR,KAAkB,OAAOA,EAC7B,IAAIS,EAAS,CAAC,EACZC,EAAQ,EAIV,OAHAZ,GAAaE,EAAUS,EAAQ,GAAI,GAAI,SAAU,EAAO,CACtD,OAAOE,EAAK,KAAKzC,EAAS0C,EAAO,GAAO,CAC1C,CAAC,EACMH,CACT,CACA,SAASI,EAAgB,EAAS,CAChC,GAAWC,EAAQ,UAAf,GAAwB,CAC1B,IAAIC,EAAOD,EAAQ,QACjBnB,EAAWoB,EAAK,EAClBpB,EAAS,KACP,SAAU,EAAc,EACZmB,EAAQ,UAAd,GAAgCA,EAAQ,UAAf,MAC3B,EAAS,QAAU,EAChB,EAAQ,QAAUE,EACRrB,EAAS,SAApB,IAAK,KACD,EAAS,OAAS,YACnB,EAAS,MAAQqB,GAC1B,EACA,SAAU,EAAO,EACLF,EAAQ,UAAd,GAAgCA,EAAQ,UAAf,MAC3B,EAAS,QAAU,EAChB,EAAQ,QAAUjB,EACRF,EAAS,SAApB,IAAK,KACD,EAAS,OAAS,WAAc,EAAS,OAASE,GAC5D,CACF,EACOiB,EAAQ,UAAf,KACI,EAAQ,QAAU,EAAK,EAAQ,QAAUnB,EAC/C,CACA,GAAUmB,EAAQ,UAAd,EAAuB,OAAOA,EAAQ,QAAQ,QAClD,MAAMA,EAAQ,OAChB,CACA,IAAIG,GACa,OAAO,aAAtB,WACI,YACA,SAAU,EAAO,CACf,GACe,OAAO,QAApB,UACe,OAAO,OAAO,YAA7B,WACA,CACA,IAAIC,EAAQ,IAAI,OAAO,WAAW,QAAS,CACzC,QAAS,CAAC,EACV,WAAY,CAAC,EACb,QACe,OAAOrB,GAApB,UACSA,GACI,OAAOA,EAAM,SAA1B,SACI,OAAOA,EAAM,OAAO,EACpB,OAAOA,CAAK,EACX,OACT,CAAC,EACD,GAAI,CAAC,OAAO,cAAcqB,CAAK,EAAG,MACpC,MAAO,GACQ,OAAO,SAApB,UACe,OAAO,QAAQ,MAA9B,WACA,CACA,QAAQ,KAAK,oBAAqBrB,CAAK,EACvC,MACF,CACA,QAAQ,MAAMA,CAAK,CACrB,EACN,SAASsB,GAAgB,EAAO,CAC9B,IAAIC,EAAiB1C,EAAqB,EACxC2C,EAAoB,CAAC,EACvB,EAAkB,MACPD,IAAT,KAAiD,KAAvBA,EAAe,MAC3C,EAAqB,EAAIC,EACzB,GAAI,CACF,IAAIC,EAAcC,EAAM,EACtBC,EAA0B9C,EAAqB,EACxC8C,IAAT,MACEA,EAAwBH,EAAmBC,CAAW,EAC3C,OAAOA,GAApB,UACWA,GACM,OAAOA,EAAY,MAAlC,YACAA,EAAY,KAAK7C,GAAMwC,EAAiB,CAC5C,OAASpB,EAAO,CACdoB,GAAkBpB,CAAK,CACzB,QAAU,CACCuB,IAAT,MACWC,EAAkB,QAA3B,OACC,EAAe,MAAQA,EAAkB,OACzC,EAAqB,EAAID,CAC9B,CACF,CACA,SAASK,GAAkB,EAAM,CAC/B,IAAIC,EAAahD,EAAqB,EACtC,GAAagD,IAAT,KAAqB,CACvB,IAAIC,EAAkBD,EAAW,MACxBC,IAAT,KACK,EAAW,MAAQ,CAAC5B,CAAI,EAClB4B,EAAgB,QAAQ5B,CAAI,IAAnC,IAAwC4B,EAAgB,KAAK5B,CAAI,CACvE,MAAOoB,GAAgBM,GAAkB,KAAK,KAAM1B,CAAI,CAAC,CAC3D,CACA,IAAI6B,GAAW,CACb,IAAKpB,GACL,QAAS,SAAU,EAAU,EAAa,EAAgB,CACxDA,GACER,EACA,UAAY,CACV6B,EAAY,MAAM,KAAM,SAAS,CACnC,EACAC,CACF,CACF,EACA,MAAO,SAAU,EAAU,CACzB,IAAIC,EAAI,EAIR,OAHAvB,GAAYR,EAAU,UAAY,CAChC,GACF,CAAC,EACM+B,CACT,EACA,QAAS,SAAU,EAAU,CAC3B,OACEvB,GAAYR,EAAU,SAAU,EAAO,CACrC,OAAOY,CACT,CAAC,GAAK,CAAC,CAEX,EACA,KAAM,SAAU,EAAU,CACxB,GAAI,CAAC3B,GAAee,CAAQ,EAC1B,MAAM,MACJ,uEACF,EACF,OAAOA,CACT,CACF,EACA,EAAQ,SAAWxC,EACnB,EAAQ,SAAWoE,GACnB,EAAQ,UAAY5D,EACpB,EAAQ,SAAWjB,EACnB,EAAQ,SAAWE,EACnB,EAAQ,cAAgBqB,GACxB,EAAQ,WAAatB,EACrB,EAAQ,SAAWK,EACnB,EAAQ,eAAiBI,EACzB,EAAQ,gEACNiB,EACF,EAAQ,mBAAqB,CAC3B,UAAW,KACX,EAAG,SAAU,EAAM,CACjB,OAAOA,EAAqB,EAAE,aAAasD,CAAI,CACjD,CACF,EACA,EAAQ,kBAAoBP,GAC5B,EAAQ,MAAQ,SAAU,EAAI,CAC5B,OAAO,UAAY,CACjB,OAAOQ,EAAG,MAAM,KAAM,SAAS,CACjC,CACF,EACA,EAAQ,YAAc,UAAY,CAChC,OAAO,IACT,EACA,EAAQ,aAAe,SAAU,EAAS,EAAQ,EAAU,CAC1D,GAAaxC,GAAT,KACF,MAAM,MACJ,wDAA0DA,EAAU,GACtE,EACF,IAAIxB,EAAQH,EAAO,CAAC,EAAG2B,EAAQ,KAAK,EAClCJ,EAAMI,EAAQ,IAChB,GAAYyC,GAAR,KACF,IAAKC,KAAwBD,EAAO,MAAlB,IAAK,KAAqB,EAAM,GAAKA,EAAO,KAAMA,EAClE,CAACvD,GAAe,KAAKuD,EAAQC,CAAQ,GACzBA,IAAV,OACaA,IAAb,UACeA,IAAf,YACWA,IAAV,OAAiCD,EAAO,MAAlB,IAAK,KAC3B,EAAMC,GAAYD,EAAOC,IAChC,IAAIA,EAAW,UAAU,OAAS,EAClC,GAAUA,IAAN,EAAgB,EAAM,SAAWnC,OAChC,GAAI,EAAImC,EAAU,CACrB,IAAK,IAAIC,EAAa,MAAMD,CAAQ,EAAG5B,EAAI,EAAGA,EAAI4B,EAAU,IAC1D,EAAW5B,GAAK,UAAUA,EAAI,GAChC,EAAM,SAAW6B,CACnB,CACA,OAAOxD,EAAaa,EAAQ,KAAMJ,EAAKpB,CAAK,CAC9C,EACA,EAAQ,cAAgB,SAAU,EAAc,CAc9C,MAbA,GAAe,CACb,SAAUd,EACV,cAAekF,EACf,eAAgBA,EAChB,aAAc,EACd,SAAU,KACV,SAAU,IACZ,EACA,EAAa,SAAWA,EACxB,EAAa,SAAW,CACtB,SAAUnF,EACV,SAAUmF,CACZ,EACOA,CACT,EACA,EAAQ,cAAgB,SAAU,EAAM,EAAQ,EAAU,CACxD,IAAIF,EACFlE,EAAQ,CAAC,EACToB,EAAM,KACR,GAAY6C,GAAR,KACF,IAAKC,KAAwBD,EAAO,MAAlB,IAAK,KAAqB,EAAM,GAAKA,EAAO,KAAMA,EAClEvD,GAAe,KAAKuD,EAAQC,CAAQ,GACxBA,IAAV,OACaA,IAAb,UACeA,IAAf,aACC,EAAMA,GAAYD,EAAOC,IAChC,IAAIG,EAAiB,UAAU,OAAS,EACxC,GAAUA,IAAN,EAAsB,EAAM,SAAWtC,OACtC,GAAI,EAAIsC,EAAgB,CAC3B,IAAK,IAAIF,EAAa,MAAME,CAAc,EAAG/B,EAAI,EAAGA,EAAI+B,EAAgB,IACtE,EAAW/B,GAAK,UAAUA,EAAI,GAChC,EAAM,SAAW6B,CACnB,CACA,GAAIrC,GAAQA,EAAK,aACf,IAAKoC,IAAc,GAAiBpC,EAAK,aAAeuC,EAC3CrE,EAAMkE,KAAjB,IAAK,KACF,EAAMA,GAAYG,EAAeH,IACxC,OAAOvD,EAAamB,EAAMV,EAAKpB,CAAK,CACtC,EACA,EAAQ,UAAY,UAAY,CAC9B,MAAO,CAAE,QAAS,IAAK,CACzB,EACA,EAAQ,WAAa,SAAU,EAAQ,CACrC,MAAO,CAAE,SAAUb,EAAgC,QAAO,CAC5D,EACA,EAAQ,eAAiB6B,GACzB,EAAQ,KAAO,SAAU,EAAM,CAC7B,MAAO,CACL,SAAU1B,EACV,SAAU,CAAE,QAAS,GAAI,QAASwD,CAAK,EACvC,MAAOF,CACT,CACF,EACA,EAAQ,KAAO,SAAU,EAAM,EAAS,CACtC,MAAO,CACL,SAAUvD,EACJ,OACN,QAAoBnE,IAAX,IAAK,GAAgB,KAAOA,CACvC,CACF,EACA,EAAQ,gBAAkBgI,GAC1B,EAAQ,yBAA2B,UAAY,CAC7C,OAAOzC,EAAqB,EAAE,gBAAgB,CAChD,EACA,EAAQ,IAAM,SAAU,EAAQ,CAC9B,OAAOA,EAAqB,EAAE,IAAI6D,CAAM,CAC1C,EACA,EAAQ,eAAiB,SAAU,EAAQ,EAAc,EAAW,CAClE,OAAO7D,EAAqB,EAAE,eAAe8D,EAAQC,EAAcC,CAAS,CAC9E,EACA,EAAQ,YAAc,SAAU,EAAU,EAAM,CAC9C,OAAOhE,EAAqB,EAAE,YAAY1C,EAAU2G,CAAI,CAC1D,EACA,EAAQ,WAAa,SAAU,EAAS,CACtC,OAAOjE,EAAqB,EAAE,WAAWkE,CAAO,CAClD,EACA,EAAQ,cAAgB,UAAY,CAAC,EACrC,EAAQ,iBAAmB,SAAU,EAAO,EAAc,CACxD,OAAOlE,EAAqB,EAAE,iBAAiBmE,EAAOC,CAAY,CACpE,EACA,EAAQ,UAAY,SAAU,EAAQ,EAAM,CAC1C,OAAOpE,EAAqB,EAAE,UAAUqE,EAAQJ,CAAI,CACtD,EACA,EAAQ,eAAiB,SAAU,EAAU,CAC3C,OAAOjE,EAAqB,EAAE,eAAe1C,CAAQ,CACvD,EACA,EAAQ,MAAQ,UAAY,CAC1B,OAAO0C,EAAqB,EAAE,MAAM,CACtC,EACA,EAAQ,oBAAsB,SAAU,EAAK,EAAQ,EAAM,CACzD,OAAOA,EAAqB,EAAE,oBAAoBsE,EAAKD,EAAQJ,CAAI,CACrE,EACA,EAAQ,mBAAqB,SAAU,EAAQ,EAAM,CACnD,OAAOjE,EAAqB,EAAE,mBAAmBqE,EAAQJ,CAAI,CAC/D,EACA,EAAQ,gBAAkB,SAAU,EAAQ,EAAM,CAChD,OAAOjE,EAAqB,EAAE,gBAAgBqE,EAAQJ,CAAI,CAC5D,EACA,EAAQ,QAAU,SAAU,EAAQ,EAAM,CACxC,OAAOjE,EAAqB,EAAE,QAAQqE,EAAQJ,CAAI,CACpD,EACA,EAAQ,cAAgB,SAAU,EAAa,EAAS,CACtD,OAAOjE,EAAqB,EAAE,cAAcuE,EAAaC,CAAO,CAClE,EACA,EAAQ,WAAa,SAAU,EAAS,EAAY,EAAM,CACxD,OAAOxE,EAAqB,EAAE,WAAWwE,EAASC,EAAYC,CAAI,CACpE,EACA,EAAQ,OAAS,SAAU,EAAc,CACvC,OAAO1E,EAAqB,EAAE,OAAOoE,CAAY,CACnD,EACA,EAAQ,SAAW,SAAU,EAAc,CACzC,OAAOpE,EAAqB,EAAE,SAAS+D,CAAY,CACrD,EACA,EAAQ,qBAAuB,SAC7B,EACA,EACA,EACA,CACA,OAAO/D,EAAqB,EAAE,qBAC5B2E,EACAC,EACAC,CACF,CACF,EACA,EAAQ,cAAgB,UAAY,CAClC,OAAO7E,EAAqB,EAAE,cAAc,CAC9C,EACA,EAAQ,QAAU,yBCjjBhB,EAAO,QAAA9B,EAAA,cCQT,IAAI8G,EAAAF,EAAA,EACJ,SAASG,EAAuB,EAAM,CACpC,IAAIC,EAAM,4BAA8BC,EACxC,GAAI,EAAI,UAAU,OAAQ,CACxB,GAAO,WAAa,mBAAmB,UAAU,EAAE,EACnD,IAAK,IAAItD,EAAI,EAAGA,EAAI,UAAU,OAAQ,IACpC,GAAO,WAAa,mBAAmB,UAAUA,EAAE,CACvD,CACA,MACE,yBACAsD,EACA,WACAD,EACA,gHAEJ,CACA,SAASnF,GAAO,CAAC,CACjB,IAAIqF,EAAY,CACZ,EAAG,CACD,EAAGrF,EACH,EAAG,UAAY,CACb,MAAM,MAAMkF,EAAuB,GAAG,CAAC,CACzC,EACA,EAAGlF,EACH,EAAGA,EACH,EAAGA,EACH,EAAGA,EACH,EAAGA,EACH,EAAGA,EACH,EAAGA,CACL,EACA,EAAG,EACH,YAAa,IACf,EACA3B,EAAoB,OAAO,IAAI,cAAc,EAC7CiH,EAAyB,OAAO,IAAI,mBAAmB,EACvDC,EAAuB,OAAO,IAAI,sBAAsB,EAC1D,SAASC,EAAe,EAAU,EAAe,EAAgB,CAC/D,IAAI5E,EACF,EAAI,UAAU,QAAqB,UAAU,KAArB,IAAK,GAAqB,UAAU,GAAK,KACnE,MAAO,CACL,SAAUvC,EACV,IACUuC,GAAR,KACI,KACAA,IAAQ2E,EACNA,EACA,GAAK3E,EACH,WACK,gBACC,gBAClB,CACF,CACA,IAAIX,EACFgF,EAAM,gEACR,SAASQ,EAAuB,EAAI,EAAO,CACzC,GAAeC,IAAX,OAAe,MAAO,GAC1B,GAAiB,OAAOC,GAApB,SACF,OAA6BA,IAAtB,kBAA8BA,EAAQ,EACjD,CACA,EAAQ,6DACNN,EACF,EAAQ,QAAU,SAAU,EAAQ,CAClC,MAAO,CAAE,SAAUC,EAAwB,QAASM,CAAO,CAC7D,EACA,EAAQ,aAAe,SAAU,EAAU,EAAW,CACpD,IAAIhF,EACF,EAAI,UAAU,QAAqB,UAAU,KAArB,IAAK,GAAqB,UAAU,GAAK,KACnE,GACE,CAACiF,GACMA,EAAU,WAAhB,GACOA,EAAU,WAAhB,GACOA,EAAU,WAAjB,GAEF,MAAM,MAAMX,EAAuB,GAAG,CAAC,EACzC,OAAOM,EAAejE,EAAUsE,EAAW,KAAMjF,CAAG,CACtD,EACA,EAAQ,UAAY,SAAU,EAAI,CAChC,IAAIkF,EAAqB7F,EAAqB,EAC5C8F,EAAyBV,EAAU,EACrC,GAAI,CACF,GAAM,EAAqB,EAAI,KAAQ,EAAU,EAAI,EAAI7B,EAAK,OAAOA,EAAG,CAC1E,QAAU,CACR,EAAsB,EAAIsC,EACvB,EAAU,EAAIC,EACfV,EAAU,EAAE,EAAE,CAClB,CACF,EACA,EAAQ,WAAa,SAAU,EAAM,EAAS,CAC/B,OAAOW,GAApB,WACGjI,GACK,EAAUA,EAAQ,YACnB,EACc,OAAOA,GAApB,SAC0BA,IAAtB,kBACEA,EACA,GACF,IAAK,IACV,EAAU,KACfsH,EAAU,EAAE,EAAEW,EAAMjI,CAAO,EAC/B,EACA,EAAQ,YAAc,SAAU,EAAM,CACvB,OAAOiI,GAApB,UAA4BX,EAAU,EAAE,EAAEW,CAAI,CAChD,EACA,EAAQ,QAAU,SAAU,EAAM,EAAS,CACzC,GAAiB,OAAOA,GAApB,UAA4BjI,GAAwB,OAAOA,EAAQ,IAA5B,SAAgC,CACzE,IAAI2H,EAAK3H,EAAQ,GACfkI,EAAcR,EAAuBC,EAAI3H,EAAQ,WAAW,EAC5DmI,EACe,OAAOnI,EAAQ,WAA5B,SAAwCA,EAAQ,UAAY,IAAK,GACnEoI,EACe,OAAOpI,EAAQ,eAA5B,SACIA,EAAQ,cACR,IAAK,GACD2H,IAAZ,QACIL,EAAU,EAAE,EACVW,EACa,OAAOjI,EAAQ,YAA5B,SAAyCA,EAAQ,WAAa,IAAK,GACnE,CACe,cACF,YACI,eACjB,CACF,EACa2H,IAAb,UACAL,EAAU,EAAE,EAAEW,EAAM,CACL,cACF,YACI,gBACf,MAAoB,OAAOjI,EAAQ,OAA5B,SAAoCA,EAAQ,MAAQ,IAAK,EAClE,CAAC,CACP,CACF,EACA,EAAQ,cAAgB,SAAU,EAAM,EAAS,CAC/C,GAAiB,OAAOiI,GAApB,SACF,IAAiB,OAAOjI,GAApB,UAAwCA,EACtC,IAAQA,EAAQ,IAAhB,MAAmCA,EAAQ,KAArB,SAAyB,CACjD,IAAIkI,EAAcR,EAChB1H,EAAQ,GACRA,EAAQ,WACV,EACAsH,EAAU,EAAE,EAAEW,EAAM,CACL,cACb,UACe,OAAOjI,EAAQ,WAA5B,SAAwCA,EAAQ,UAAY,IAAK,GACnE,MAAoB,OAAOA,EAAQ,OAA5B,SAAoCA,EAAQ,MAAQ,IAAK,GAChE,cACe,OAAOA,EAAQ,eAA5B,SACIA,EAAQ,cACR,IAAK,EACb,CAAC,CACH,OACKA,GAAmBsH,EAAU,EAAE,EAAEW,CAAI,CAAA,CAChD,EACA,EAAQ,QAAU,SAAU,EAAM,EAAS,CACzC,GACe,OAAOA,GAApB,UACa,OAAOjI,GAApB,UACSA,GACI,OAAOA,EAAQ,IAA5B,SACA,CACA,IAAI2H,EAAK3H,EAAQ,GACfkI,EAAcR,EAAuBC,EAAI3H,EAAQ,WAAW,EAC9DsH,EAAU,EAAE,EAAEW,EAAMN,EAAI,CACT,cACb,UACe,OAAO3H,EAAQ,WAA5B,SAAwCA,EAAQ,UAAY,IAAK,GACnE,MAAoB,OAAOA,EAAQ,OAA5B,SAAoCA,EAAQ,MAAQ,IAAK,GAChE,KAAmB,OAAOA,EAAQ,MAA5B,SAAmCA,EAAQ,KAAO,IAAK,GAC7D,cACe,OAAOA,EAAQ,eAA5B,SACIA,EAAQ,cACR,IAAK,GACX,eACe,OAAOA,EAAQ,gBAA5B,SACIA,EAAQ,eACR,IAAK,GACX,YACe,OAAOA,EAAQ,aAA5B,SAA0CA,EAAQ,YAAc,IAAK,GACvE,WACe,OAAOA,EAAQ,YAA5B,SAAyCA,EAAQ,WAAa,IAAK,GACrE,MAAoB,OAAOA,EAAQ,OAA5B,SAAoCA,EAAQ,MAAQ,IAAK,EAClE,CAAC,CACH,CACF,EACA,EAAQ,cAAgB,SAAU,EAAM,EAAS,CAC/C,GAAiB,OAAOiI,GAApB,SACF,IAAIjI,EAAS,CACX,IAAIkI,EAAcR,EAAuB1H,EAAQ,GAAIA,EAAQ,WAAW,EACxEsH,EAAU,EAAE,EAAEW,EAAM,CAClB,GACe,OAAOjI,EAAQ,IAA5B,UAA+CA,EAAQ,KAArB,SAC9BA,EAAQ,GACR,IAAK,GACE,cACb,UACe,OAAOA,EAAQ,WAA5B,SAAwCA,EAAQ,UAAY,IAAK,GACnE,MAAoB,OAAOA,EAAQ,OAA5B,SAAoCA,EAAQ,MAAQ,IAAK,GAChE,cACe,OAAOA,EAAQ,eAA5B,SACIA,EAAQ,cACR,IAAK,EACb,CAAC,CACH,MAAOsH,EAAU,EAAE,EAAEW,CAAI,CAAA,CAC7B,EACA,EAAQ,iBAAmB,SAAU,EAAM,CACzCX,EAAU,EAAE,EAAEe,CAAI,CACpB,EACA,EAAQ,wBAA0B,SAAU,EAAI,EAAG,CACjD,OAAO5C,EAAGlI,CAAC,CACb,EACA,EAAQ,aAAe,SAAU,EAAQ,EAAc,EAAW,CAChE,OAAO2E,EAAqB,EAAE,aAAa8D,EAAQC,EAAcC,CAAS,CAC5E,EACA,EAAQ,cAAgB,UAAY,CAClC,OAAOhE,EAAqB,EAAE,wBAAwB,CACxD,EACA,EAAQ,QAAU,yBClOlB,SAASqG,GAAW,CAElB,GACE,OAAO,+BAAmC,KAC1C,OAAO,+BAA+B,UAAa,WAcrD,GAAI,CAEF,+BAA+B,SAASA,CAAQ,CAClD,OAASC,EAAK,CAGZ,QAAQ,MAAMA,CAAG,CACnB,CACF,CAKED,EAAS,EACT,EAAO,QAAAtB,EAAA,cCpBT,IAAIyB,EAAAvI,EAAA,EACF+G,EAAAF,EAAA,EACA2B,EAAAL,EAAA,EACF,SAASnB,EAAuB,EAAM,CACpC,IAAIC,EAAM,4BAA8BC,EACxC,GAAI,EAAI,UAAU,OAAQ,CACxB,GAAO,WAAa,mBAAmB,UAAU,EAAE,EACnD,IAAK,IAAItD,EAAI,EAAGA,EAAI,UAAU,OAAQ,IACpC,GAAO,WAAa,mBAAmB,UAAUA,EAAE,CACvD,CACA,MACE,yBACAsD,EACA,WACAD,EACA,gHAEJ,CACA,SAASwB,EAAiB,EAAM,CAC9B,MAAO,EACL,CAACpM,GACMA,EAAK,WAAX,GAA6BA,EAAK,WAAX,GAA8BA,EAAK,WAAZ,GAEnD,CACA,SAASqM,EAAuB,EAAO,CACrC,IAAK,IAAIrM,EAAOsM,EAAOC,EAAWvM,EAAMuM,GAAY,CAACA,EAAS,WAC5D,EAAQA,EACCvM,EAAK,MAAQ,OAAU,EAAQA,EAAK,QAC1C,EAAWA,EAAK,OACrB,KAAOA,EAAK,QAAU,EAAOA,EAAK,OAClC,OAAaA,EAAK,MAAX,EAAiBsM,EAAQ,IAClC,CACA,SAASE,EAA6B,EAAO,CAC3C,GAAWF,EAAM,MAAb,GAAkB,CACpB,IAAIG,EAAgBH,EAAM,cAI1B,GAHSG,IAAT,OACI,EAAQH,EAAM,UACPA,IAAT,OAAmB,EAAgBA,EAAM,gBAC9BG,IAAT,KAAwB,OAAOA,EAAc,UACnD,CACA,OAAO,IACT,CACA,SAASC,EAA6B,EAAO,CAC3C,GAAWJ,EAAM,MAAb,GAAkB,CACpB,IAAIK,EAAgBL,EAAM,cAI1B,GAHSK,IAAT,OACI,EAAQL,EAAM,UACPA,IAAT,OAAmB,EAAgBA,EAAM,gBAC9BK,IAAT,KAAwB,OAAOA,EAAc,UACnD,CACA,OAAO,IACT,CACA,SAASC,EAAgB,EAAO,CAC9B,GAAIP,EAAuBC,CAAK,IAAMA,EACpC,MAAM,MAAM3B,EAAuB,GAAG,CAAC,CAC3C,CACA,SAASkC,EAA8B,EAAO,CAC5C,IAAIC,EAAYR,EAAM,UACtB,GAAI,CAACQ,EAAW,CAEd,GADA,EAAYT,EAAuBC,CAAK,EAC3BQ,IAAT,KAAoB,MAAM,MAAMnC,EAAuB,GAAG,CAAC,EAC/D,OAAOmC,IAAcR,EAAeA,EAAP,IAC/B,CACA,IAAK,IAAIvL,EAAIuL,EAAOtL,EAAI8L,IAAe,CACrC,IAAIC,EAAUhM,EAAE,OAChB,GAAagM,IAAT,KAAkB,MACtB,IAAIC,EAAUD,EAAQ,UACtB,GAAaC,IAAT,KAAkB,CAEpB,GADA,EAAID,EAAQ,OACC/L,IAAT,KAAY,CACd,EAAIA,EACJ,QACF,CACA,KACF,CACA,GAAI+L,EAAQ,QAAUC,EAAQ,MAAO,CACnC,IAAK,EAAUD,EAAQ,MAAOC,GAAW,CACvC,GAAIA,IAAYjM,EAAG,OAAO6L,EAAgBG,CAAO,EAAGT,EACpD,GAAIU,IAAYhM,EAAG,OAAO4L,EAAgBG,CAAO,EAAGD,EACpD,EAAUE,EAAQ,OACpB,CACA,MAAM,MAAMrC,EAAuB,GAAG,CAAC,CACzC,CACA,GAAI5J,EAAE,SAAWC,EAAE,OAAQ,EAAK+L,EAAW,EAAIC,MAC1C,CACH,IAAK,IAAIC,EAAe,CAAC,EAAGC,EAAUH,EAAQ,MAAOG,GAAW,CAC9D,GAAIA,IAAYnM,EAAG,CACjB,EAAe,CAAC,EAChB,EAAIgM,EACJ,EAAIC,EACJ,KACF,CACA,GAAIE,IAAYlM,EAAG,CACjB,EAAe,CAAC,EAChB,EAAI+L,EACJ,EAAIC,EACJ,KACF,CACA,EAAUE,EAAQ,OACpB,CACA,GAAI,CAACD,EAAc,CACjB,IAAK,EAAUD,EAAQ,MAAOE,GAAW,CACvC,GAAIA,IAAYnM,EAAG,CACjB,EAAe,CAAC,EAChB,EAAIiM,EACJ,EAAID,EACJ,KACF,CACA,GAAIG,IAAYlM,EAAG,CACjB,EAAe,CAAC,EAChB,EAAIgM,EACJ,EAAID,EACJ,KACF,CACA,EAAUG,EAAQ,OACpB,CACA,GAAI,CAACD,EAAc,MAAM,MAAMtC,EAAuB,GAAG,CAAC,CAC5D,CACF,CACA,GAAI5J,EAAE,YAAcC,EAAG,MAAM,MAAM2J,EAAuB,GAAG,CAAC,CAChE,CACA,GAAU5J,EAAE,MAAR,EAAa,MAAM,MAAM4J,EAAuB,GAAG,CAAC,EACxD,OAAO5J,EAAE,UAAU,UAAYA,EAAIuL,EAAQQ,CAC7C,CACA,SAASK,EAAyB,EAAM,CACtC,IAAIC,EAAMpN,EAAK,IACf,GAAUoN,IAAN,GAAoBA,IAAP,IAAqBA,IAAP,IAAoBA,IAAN,EAAW,OAAOpN,EAC/D,IAAK,EAAOA,EAAK,MAAgBA,IAAT,MAAiB,CAEvC,GADA,EAAMmN,EAAyBnN,CAAI,EACtBoN,IAAT,KAAc,OAAOA,EACzB,EAAOpN,EAAK,OACd,CACA,OAAO,IACT,CACA,SAASqN,EACP,EACA,EACA,EACA,EACA,EACA,EACA,CACA,KAAgBzF,IAAT,MAAkB,CACvB,IACUA,EAAM,MAAZ,GAA0BA,EAAM,MAAb,IAA0BA,EAAM,MAAZ,IACvCqB,EAAGrB,EAAO7G,EAAGC,EAAGqG,CAAC,IACVO,EAAM,MAAb,IAA6BA,EAAM,gBAAf,QACnB0F,GAA4B1F,EAAM,MAAZ,GAA0BA,EAAM,MAAb,KAC1CyF,EACEzF,EAAM,MACN0F,EACArE,EACAlI,EACAC,EACAqG,CACF,EAEF,MAAO,CAAC,EACV,EAAQO,EAAM,OAChB,CACA,MAAO,CAAC,CACV,CACA,SAAS2F,EAA0C,EAAO,CACxD,IAAK,EAAQjB,EAAM,OAAiBA,IAAT,MAAkB,CAC3C,GAAUA,EAAM,MAAZ,GAAyBA,EAAM,MAAZ,GAA0BA,EAAM,MAAb,GAAkB,OAAOA,EACnE,EAAQA,EAAM,MAChB,CACA,OAAO,IACT,CACA,SAASkB,EAAwB,EAAO,CACtC,IAAIC,EAAoB,CAAC,EACzB,IAAK,EAAQnB,EAAM,OAAiBA,IAAT,OACnBA,EAAM,MAAZ,IAAoB,EAAoB,CAAC,GAC/BA,EAAM,MAAZ,GAAyBA,EAAM,MAAZ,GAA0BA,EAAM,MAAb,KAC1C,EAAQA,EAAM,OAEhB,OAAOmB,CACT,CACA,SAASC,EAA0C,EAAO,CACxD,IAAIjG,EAAS,CAAC,KAAM,IAAI,EACtBkG,EAAkBJ,EAA0CjB,CAAK,EAQnE,OAPaqB,IAAT,MACJC,EACEnG,EACA6E,EACAqB,EAAgB,MAChB,CAAE,UAAW,CAAC,CAAE,CAClB,EACOlG,CACT,CACA,SAASmG,EACP,EACA,EACA,EACA,EACA,CACA,KAAgBhG,IAAT,MAAkB,CACvB,GAAIA,IAAUiG,EAAM,EAAM,UAAY,CAAC,OAClC,GAAUjG,EAAM,MAAZ,GAA0BA,EAAM,MAAb,IAA0BA,EAAM,MAAZ,EAAiB,CAC/D,GAAIkG,EAAM,UAAW,MAAQ,GAAO,GAAKlG,EAAQ,CAAC,EAClD,EAAO,GAAKA,CACd,MAAO,IACGA,EAAM,MAAb,IAA6BA,EAAM,gBAAf,OACrBgG,EACEnG,EACAoG,EACAjG,EAAM,MACNkG,CACF,EAEA,MAAO,CAAC,EACV,EAAQlG,EAAM,OAChB,CACA,MAAO,CAAC,CACV,CACA,SAASmG,EAAyB,EAAO,CACvC,OAAQzB,EAAM,IAAd,CACE,IAAK,GACL,IAAK,IACL,IAAK,GACH,OAAOA,EAAM,UACf,IAAK,GACH,OAAOA,EAAM,UAAU,cACzB,QACE,MAAM,MAAM3B,EAAuB,GAAG,CAAC,CAC3C,CACF,CACA,IAAIqD,GAAe,KACjBC,EAAiB,KACnB,SAASC,EAAsB,EAAO,EAAQ,EAAU,CACtD,OAAOtG,IAAUuG,GAEbvG,IAAUwG,IACN,GAAexG,EAAQ,CAAC,EAElC,CACA,SAASyG,GAAsB,EAAO,EAAQ,EAAU,CACtD,OAAOzG,IAAUuG,GACX,EAAiBvG,EAAQ,CAAC,GAC5BA,IAAUwG,IACEH,IAAT,OAA4B,GAAerG,GAAQ,CAAC,EAE7D,CACA,SAAS0G,EAA8B,EAAM,CAC3C,GAAaC,IAAT,KAAe,OAAO,KAC1B,EAAG,GAAgBA,IAAT,KAAgB,KAAOA,EAAK,aAC/BA,GAAcA,EAAK,MAAX,GAAyBA,EAAK,MAAZ,IAAyBA,EAAK,MAAX,GACpD,OAAOA,GAAc,IACvB,CACA,SAASC,GAAwB,EAAO,EAAO,EAAW,CACxD,IAAK,IAAIC,EAAS,EAAGC,EAAQC,EAAOD,EAAO,EAAQE,EAAUF,CAAK,EAAG,IACrE,EAAQ,EACR,IAAK,IAAIG,EAAQC,EAAOD,EAAO,EAAQD,EAAUC,CAAK,EAAG,IACzD,KAAO,EAAIJ,EAASC,GAAS,EAASE,EAAUD,CAAK,EAAI,IACzD,KAAO,EAAID,EAAQD,GAAU,EAASG,EAAUE,CAAK,EAAI,IACzD,KAAO,KAAY,CACjB,GAAIH,IAAUG,GAAmBA,IAAT,MAAkBH,IAAUG,EAAM,UACxD,OAAOH,EACT,EAAQC,EAAUD,CAAK,EACvB,EAAQC,EAAUE,CAAK,CACzB,CACA,OAAO,IACT,CACA,IAAIhK,EAAS,OAAO,OAClBiK,GAA4B,OAAO,IAAI,eAAe,EACtDlL,GAAqB,OAAO,IAAI,4BAA4B,EAC5DC,GAAoB,OAAO,IAAI,cAAc,EAC7CC,GAAsB,OAAO,IAAI,gBAAgB,EACjDC,GAAyB,OAAO,IAAI,mBAAmB,EACvDC,GAAsB,OAAO,IAAI,gBAAgB,EACjDC,GAAsB,OAAO,IAAI,gBAAgB,EACjDC,GAAqB,OAAO,IAAI,eAAe,EAC/CC,EAAyB,OAAO,IAAI,mBAAmB,EACvDC,GAAsB,OAAO,IAAI,gBAAgB,EACjD2K,GAA2B,OAAO,IAAI,qBAAqB,EAC3D1K,GAAkB,OAAO,IAAI,YAAY,EACzCC,GAAkB,OAAO,IAAI,YAAY,EAEvCC,GAAsB,OAAO,IAAI,gBAAgB,EACnDyK,GAA2B,OAAO,IAAI,qBAAqB,EAEzDC,GAA4B,OAAO,IAAI,2BAA2B,EACpEzK,GAA6B,OAAO,IAAI,uBAAuB,EAC/DsG,GAAyB,OAAO,IAAI,mBAAmB,EACvDrG,GAAwB,OAAO,SACjC,SAASC,GAAc,EAAe,CAKpC,OAJ2C,OAAOC,GAApB,WAAjBA,EAA2D,MACxE,EACGF,IAAyBE,EAAcF,KACxCE,EAAc,cACM,OAAOA,GAAtB,WAAsCA,EAAgB,KAC/D,CACA,IAAIuK,GAAyB,OAAO,IAAI,wBAAwB,EAChE,SAASC,GAAyB,EAAM,CACtC,GAAYrI,GAAR,KAAc,OAAO,KACzB,GAAmB,OAAOA,GAAtB,WACF,OAAOA,EAAK,WAAaoI,GACrB,KACApI,EAAK,aAAeA,EAAK,MAAQ,KACvC,GAAiB,OAAOA,GAApB,SAA0B,OAAOA,EACrC,OAAQA,EAAR,CACE,KAAKhD,GACH,MAAO,WACT,KAAKE,GACH,MAAO,WACT,KAAKD,GACH,MAAO,aACT,KAAKK,GACH,MAAO,WACT,KAAK2K,GACH,MAAO,eACT,KAAKxK,GACH,MAAO,WACT,KAAKC,GACH,MAAO,gBACX,CACA,GAAiB,OAAOsC,GAApB,SACF,OAAQA,EAAK,SAAb,CACE,KAAKjD,GACH,MAAO,SACT,KAAKK,GACH,OAAO4C,EAAK,aAAe,UAC7B,KAAK7C,GACH,OAAQ6C,EAAK,SAAS,aAAe,WAAa,YACpD,KAAK3C,EACH,IAAIiL,EAAYtI,EAAK,OAKrB,MAJA,GAAOA,EAAK,YACZ,AAEGA,KADC,EAAOsI,EAAU,aAAeA,EAAU,MAAQ,GACrCtI,IAAP,GAA2C,aAA7B,cAAgBA,EAAO,KACxCA,EACT,KAAKzC,GACH,MACG,GAAYyC,EAAK,aAAe,KACxBsI,IAAT,KAEID,GAAyBrI,EAAK,IAAI,GAAK,OADvCsI,EAGR,KAAK9K,GACH,EAAYwC,EAAK,SACjB,EAAOA,EAAK,MACZ,GAAI,CACF,OAAOqI,GAAyBrI,EAAKsI,CAAS,CAAC,CACjD,MAAY,CAAC,CACjB,CACF,OAAO,IACT,CACA,IAAI7J,GAAc,MAAM,QACtBE,EACEgF,EAAM,gEACR4E,EACEnD,EAAS,6DACXoD,GAAyB,CACvB,QAAS,CAAC,EACV,KAAM,KACN,OAAQ,KACR,OAAQ,IACV,EACAC,GAAa,CAAC,EACd1P,GAAQ,GACV,SAAS2P,GAAa,EAAc,CAClC,MAAO,CAAE,QAASpG,CAAa,CACjC,CACA,SAAShJ,GAAI,EAAQ,CACnB,EAAIP,KACA,EAAO,QAAU0P,GAAW1P,IAAU,GAAWA,IAAS,KAAO,KACvE,CACA,SAASD,EAAK,EAAQ,EAAO,CAC3B,KACA,GAAWC,IAAS4P,EAAO,QAC3B,EAAO,QAAU7F,CACnB,CACA,IAAI8F,GAAqBF,GAAa,IAAI,EACxCG,GAA0BH,GAAa,IAAI,EAC3CI,GAA0BJ,GAAa,IAAI,EAC3CK,GAA+BL,GAAa,IAAI,EAClD,SAASM,GAAkB,EAAO,EAAkB,CAIlD,OAHAlQ,EAAKgQ,GAAyBG,CAAgB,EAC9CnQ,EAAK+P,GAAyBtD,CAAK,EACnCzM,EAAK8P,GAAoB,IAAI,EACrBK,EAAiB,SAAzB,CACE,IAAK,GACL,IAAK,IACH,GAAS,EAAQA,EAAiB,mBAC7B,EAAQ1D,EAAM,cACb2D,GAAkB3D,CAAK,EAEzB,EACJ,MACF,QACE,GACI,EAAQ0D,EAAiB,QAC1B,EAAmBA,EAAiB,aAErC,EAAoBC,GAAkBD,CAAgB,EACnD,EAAQE,GAAwBF,EAAkB1D,CAAK,OAE1D,OAAQA,EAAR,CACE,IAAK,MACH,EAAQ,EACR,MACF,IAAK,OACH,EAAQ,EACR,MACF,QACE,EAAQ,CACZ,CACN,CACAjM,GAAIsP,EAAkB,EACtB9P,EAAK8P,GAAoBrD,CAAK,CAChC,CACA,SAAS6D,IAAmB,CAC1B9P,GAAIsP,EAAkB,EACtBtP,GAAIuP,EAAuB,EAC3BvP,GAAIwP,EAAuB,CAC7B,CACA,SAASO,GAAgB,EAAO,CAC9B,IAAIC,EAAY/D,EAAM,cACb+D,IAAT,OACI,GAAsB,cAAgBA,EAAU,cAClDxQ,EAAKiQ,GAA8BxD,CAAK,GAC1C,EAAYqD,GAAmB,QAC/B,IAAIW,EAA2BJ,GAAwBG,EAAW/D,EAAM,IAAI,EAC5E+D,IAAcC,IACXzQ,EAAK+P,GAAyBtD,CAAK,EACpCzM,EAAK8P,GAAoBW,CAAwB,EACrD,CACA,SAASC,GAAe,EAAO,CAC7BX,GAAwB,UAAYtD,IACjCjM,GAAIsP,EAAkB,EAAGtP,GAAIuP,EAAuB,GACvDE,GAA6B,UAAYxD,IACtCjM,GAAIyP,EAA4B,EAChC,GAAsB,cAAgBP,GAC3C,CACA,IAAIiB,GAAQC,GACZ,SAASC,GAA8B,EAAM,CAC3C,GAAeF,KAAX,IAAK,GACP,GAAI,CACF,MAAM,MAAM,CACd,OAASG,EAAG,CACV,IAAIrK,EAAQqK,EAAE,MAAM,KAAK,CAAC,CAAC,MAAM,cAAc,EAC/C,GAAUrK,GAASA,EAAM,IAAO,GAChC,GACE,GAAKqK,EAAE,MAAM,QAAQ;OAAU,EAC3B,iBACA,GAAKA,EAAE,MAAM,QAAQ,GAAG,EACtB,eACA,EACV,CACF,MAAO;EAAOH,GAASI,EAAOH,EAChC,CACA,IAAII,GAAU,CAAC,EACf,SAASC,GAA6B,EAAI,EAAW,CACnD,GAAI,CAAC7H,GAAM4H,GAAS,MAAO,GAC3B,GAAU,CAAC,EACX,IAAIE,EAA4B,MAAM,kBACtC,MAAM,kBAAoB,IAAK,GAC/B,GAAI,CACF,IAAIC,EAAiB,CACnB,4BAA6B,UAAY,CACvC,GAAI,CACF,GAAIC,EAAW,CACb,IAAIC,EAAO,UAAY,CACrB,MAAM,MAAM,CACd,EAMA,GALA,OAAO,eAAeA,EAAK,UAAW,QAAS,CAC7C,IAAK,UAAY,CACf,MAAM,MAAM,CACd,CACF,CAAC,EACgB,OAAO,SAApB,UAA+B,QAAQ,UAAW,CACpD,GAAI,CACF,QAAQ,UAAUA,EAAM,CAAC,CAAC,CAC5B,OAASP,EAAG,CACV,IAAIQ,EAAUR,CAChB,CACA,QAAQ,UAAU1H,EAAI,CAAC,EAAGiI,CAAI,CAChC,KAAO,CACL,GAAI,CACFA,EAAK,KAAK,CACZ,OAASE,EAAK,CACZ,EAAUA,CACZ,CACA,EAAO,CAAC,EACR,GAAI,CACF,IAAIC,EAAY,OAAO,yBACrBpI,EAAG,UACH,OACF,EACA,OAAO,eAAeA,EAAG,UAAW,QAAS,CAC3C,aAAc,CAAC,EACf,IAAK,UAAY,CACf,MAAM,MAAM,CACd,CACF,CAAC,EACD,EAAO,CAAC,EACR,IAAIA,CACN,QAAU,CACRiI,IACcG,IAAX,IAAK,GAEF,OAAOpI,EAAG,UAAU,MADpB,OAAO,eAAeA,EAAG,UAAW,QAASoI,CAAS,EAE9D,CACF,CACF,KAAO,CACL,GAAI,CACF,MAAM,MAAM,CACd,OAASC,EAAK,CACZ,EAAUA,CACZ,EACC,EAAOrI,EAAG,IACM,OAAOiI,EAAK,OAA3B,YACAA,EAAK,MAAM,UAAY,CAAC,CAAC,CAC7B,CACF,OAASK,EAAQ,CACf,GAAIA,GAAUJ,GAAwB,OAAOI,EAAO,OAA3B,SACvB,MAAO,CAACA,EAAO,MAAOJ,EAAQ,KAAK,CACvC,CACA,MAAO,CAAC,KAAM,IAAI,CACpB,CACF,EACA,EAAe,4BAA4B,YACzC,8BACF,IAAIK,EAAqB,OAAO,yBAC9BR,EAAe,4BACf,MACF,EACAQ,GACEA,EAAmB,cACnB,OAAO,eACLR,EAAe,4BACf,OACA,CAAE,MAAO,6BAA8B,CACzC,EACF,IAAIS,EAAwBT,EAAe,4BAA4B,EACrEU,EAAcD,EAAsB,GACpCE,EAAeF,EAAsB,GACvC,GAAIC,GAAeC,EAAc,CAC/B,IAAIC,EAAcF,EAAY,MAAM;CAAI,EACtCG,EAAeF,EAAa,MAAM;CAAI,EACxC,IACE,EAAqB,EAAiB,EACtCX,EAAiBY,EAAY,QAC7B,CAACA,EAAYZ,EAAe,CAAC,SAAS,6BAA6B,GAGnE,IACF,KAEEQ,EAAqBK,EAAa,QAClC,CAACA,EAAaL,EAAmB,CAAC,SAChC,6BACF,GAGA,IACF,GACER,IAAmBY,EAAY,QAC/BJ,IAAuBK,EAAa,OAEpC,IACE,EAAiBD,EAAY,OAAS,EACpC,EAAqBC,EAAa,OAAS,EAC7C,GAAKb,GACL,GAAKQ,GACLI,EAAYZ,KAAoBa,EAAaL,IAG7C,IACJ,KAEE,GAAKR,GAAkB,GAAKQ,EAC5B,IAAkB,IAElB,GAAII,EAAYZ,KAAoBa,EAAaL,GAAqB,CACpE,GAAUR,IAAN,GAA8BQ,IAAN,EAC1B,GACE,GACG,IACD,IACA,EAAIA,GACFI,EAAYZ,KACVa,EAAaL,GACjB,CACA,IAAIM,EACF;EACAF,EAAYZ,EAAe,CAAC,QAAQ,WAAY,MAAM,EAIxD,OAHA/H,EAAG,aACD6I,EAAM,SAAS,aAAa,IAC3B,EAAQA,EAAM,QAAQ,cAAe7I,EAAG,WAAW,GAC/C6I,CACT,OACK,GAAKd,GAAkB,GAAKQ,GAErC,KACF,CACJ,CACF,QAAU,CACR,GAAW,CAAC,EAAK,MAAM,kBAAoBT,CAC7C,CACA,OAAQ,EAA4B9H,EAAKA,EAAG,aAAeA,EAAG,KAAO,IACjEyH,GAA8BK,CAAyB,EACvD,EACN,CACA,SAASgB,GAAc,EAAO,EAAY,CACxC,OAAQzF,EAAM,IAAd,CACE,IAAK,IACL,IAAK,IACL,IAAK,GACH,OAAOoE,GAA8BpE,EAAM,IAAI,EACjD,IAAK,IACH,OAAOoE,GAA8B,MAAM,EAC7C,IAAK,IACH,OAAOpE,EAAM,QAAU0F,GAAuBA,IAAT,KACjCtB,GAA8B,mBAAmB,EACjDA,GAA8B,UAAU,EAC9C,IAAK,IACH,OAAOA,GAA8B,cAAc,EACrD,IAAK,GACL,IAAK,IACH,OAAOI,GAA6BxE,EAAM,KAAM,CAAC,CAAC,EACpD,IAAK,IACH,OAAOwE,GAA6BxE,EAAM,KAAK,OAAQ,CAAC,CAAC,EAC3D,IAAK,GACH,OAAOwE,GAA6BxE,EAAM,KAAM,CAAC,CAAC,EACpD,IAAK,IACH,OAAOoE,GAA8B,UAAU,EACjD,IAAK,IACH,OAAOA,GAA8B,gBAAgB,EACvD,QACE,MAAO,EACX,CACF,CACA,SAASuB,GAA4B,EAAgB,CACnD,GAAI,CACF,IAAIC,EAAO,GACTC,EAAW,KACb,EACE,IAASJ,GAAcK,EAAgBD,CAAQ,EAC5C,EAAWC,EACX,EAAiBA,EAAe,aAC9BA,GACP,OAAOF,CACT,OAASvB,EAAG,CACV,MAAO;0BAA+BA,EAAE,QAAU;EAAOA,EAAE,KAC7D,CACF,CACA,IAAIhL,GAAiB,OAAO,UAAU,eACpC0M,GAAqBnG,EAAU,0BAC/BoG,GAAmBpG,EAAU,wBAC7BqG,GAAcrG,EAAU,qBACxBsG,GAAetG,EAAU,sBACzBuG,GAAMvG,EAAU,aAChBwG,GAA0BxG,EAAU,iCACpCyG,GAAoBzG,EAAU,2BAC9B0G,GAAuB1G,EAAU,8BACjC2G,GAAmB3G,EAAU,wBAC7B4G,GAAc5G,EAAU,qBACxB6G,GAAe7G,EAAU,sBACzB8G,GAAQ9G,EAAU,IAClB+G,GAAgC/G,EAAU,8BAC1CgH,GAAa,KACbC,GAAe,KACjB,SAASC,GAA2B,EAAiB,CAEnD,GADe,OAAOJ,IAAtB,YAA+BC,GAA8BI,CAAe,EACxEF,IAA+B,OAAOA,GAAa,eAAnC,WAClB,GAAI,CACFA,GAAa,cAAcD,GAAYG,CAAe,CACxD,MAAc,CAAC,CACnB,CACA,IAAIC,GAAQ,KAAK,MAAQ,KAAK,MAAQC,GACpCC,GAAM,KAAK,IACXC,GAAM,KAAK,IACb,SAASF,GAAc,EAAG,CAExB,MADA,MAAO,EACM5C,IAAN,EAAU,GAAM,IAAO6C,GAAI7C,CAAC,EAAI8C,GAAO,GAAM,CACtD,CACA,IAAIC,GAA2B,IAC7BC,GAA6B,OAC7BC,GAAgB,QAClB,SAASC,GAAwB,EAAO,CACtC,IAAIC,EAAmBC,EAAQ,GAC/B,GAAUD,IAAN,EAAwB,OAAOA,EACnC,OAAQC,EAAQ,CAACA,EAAjB,CACE,IAAK,GACH,MAAO,GACT,IAAK,GACH,MAAO,GACT,IAAK,GACH,MAAO,GACT,IAAK,GACH,MAAO,GACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,KACH,MAAO,KACT,IAAK,KACL,IAAK,KACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACH,OAAOA,EAAQ,CAACA,EAClB,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAOA,EAAQ,QACjB,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,UACH,OAAOA,EAAQ,SACjB,IAAK,UACH,MAAO,UACT,IAAK,WACH,MAAO,WACT,IAAK,WACH,MAAO,WACT,IAAK,WACH,MAAO,WACT,IAAK,YACH,MAAO,GACT,QACE,OAAOA,CACX,CACF,CACA,SAASC,GAAa,EAAM,EAAU,EAAsB,CAC1D,IAAIC,EAAeC,EAAK,aACxB,GAAUD,IAAN,EAAoB,MAAO,GAC/B,IAAIE,EAAY,EACdC,EAAiBF,EAAK,eACtBG,EAAcH,EAAK,YACrB,EAAOA,EAAK,UACZ,IAAII,EAAsBL,EAAe,UAqBzC,OApBMK,IAAN,GAWM,EAAsBL,EAAe,CAACG,EAClCE,IAAN,EAEUD,IAAN,EAEEE,IACE,EAAuBN,EAAe,CAACC,EACnCK,IAAN,IACG,EAAYV,GAAwBU,CAAoB,IAJ1D,EAAYV,GAAwBQ,CAAW,EAFjD,EAAYR,GAAwBS,CAAmB,IAZ1D,EAAeA,EAAsB,CAACF,EAClCH,IAAN,GAEM,GAAeK,EACXD,IAAN,EAEIE,IACE,EAAuBD,EAAsB,CAACJ,EAC1CK,IAAN,IACG,EAAYV,GAAwBU,CAAoB,IAJ1D,EAAYV,GAAwBQ,CAAW,GAHnD,EAAYR,GAAwBI,CAAY,GAiB5CE,IAAN,EACH,EACMK,IAAN,GACEA,IAAaL,IACNK,EAAWJ,KAAlB,IACE,EAAiBD,EAAY,CAACA,EAC/B,EAAuBK,EAAW,CAACA,EACpCJ,GAAkBG,GACRH,IAAP,IAAgCG,EAAuB,SAC1DC,EACAL,CACR,CACA,SAASM,GAA0B,EAAM,EAAa,CACpD,OAEGP,EAAK,aACJ,EAAEA,EAAK,eAAiB,CAACA,EAAK,aAC9BQ,KAHF,CAKJ,CACA,SAASC,GAAkB,EAAM,EAAa,CACrCD,EAAc,IAAO,GAAeA,EAAc,IACzD,IAAIE,EAAoBV,EAAK,eAC7B,GAAUU,IAAN,EACF,IACE,EAAOV,EAAK,cAAe,GAAqBQ,EAChD,EAAIE,GAEJ,CACA,IAAIC,EAAU,GAAKvB,GAAMsB,CAAiB,EACxCE,EAAO,GAAKD,EACd,GAAeX,EAAKW,GACpB,GAAqB,CAACC,CACxB,CACF,OAAOJ,CACT,CACA,SAASK,GAAsB,EAAM,EAAa,CAChD,OAAQD,EAAR,CACE,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,IACH,OAAO5S,EAAc,IACvB,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAOA,EAAc,IACvB,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,UACH,MAAO,GACT,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,YACH,MAAO,GACT,QACE,MAAO,EACX,CACF,CACA,SAAS8S,IAAqB,CAC5B,IAAIF,EAAOlB,GAGX,MAFA,MAAkB,EAClB,EAAOA,GAAgB,YAAc,GAAgB,SAC9CkB,CACT,CACA,SAASG,GAAc,EAAS,CAC9B,IAAK,IAAIC,EAAU,CAAC,EAAG3N,EAAI,EAAG,GAAKA,EAAG,IAAK2N,EAAQ,KAAKC,CAAO,EAC/D,OAAOD,CACT,CACA,SAASE,GAAkB,EAAM,EAAY,CAC3C,EAAK,cAAgBC,EACPA,IAAd,YACI,EAAK,eAAiB,EAAK,EAAK,YAAc,EAAK,EAAK,UAAY,EAC1E,CACA,SAASC,GACP,EACA,EACA,EACA,EACA,EACA,EACA,CACA,IAAIC,EAAyBrB,EAAK,aAClC,EAAK,aAAesB,EACpB,EAAK,eAAiB,EACtB,EAAK,YAAc,EACnB,EAAK,UAAY,EACjB,EAAK,cAAgBA,EACrB,EAAK,gBAAkBA,EACvB,EAAK,4BAA8BA,EACnC,EAAK,oBAAsB,EAC3B,IAAIC,EAAgBvB,EAAK,cACvBwB,EAAkBxB,EAAK,gBACvByB,EAAgBzB,EAAK,cACvB,IACE,EAAiBqB,EAAyB,CAACC,EAC3C,EAAIA,GAEJ,CACA,IAAII,EAAU,GAAKtC,GAAMkC,CAAc,EACrCV,EAAO,GAAKc,EACd,EAAcA,GAAW,EACzB,EAAgBA,GAAW,GAC3B,IAAIC,EAAuBF,EAAcC,GACzC,GAAaC,IAAT,KACF,IACE,EAAcD,GAAW,KAAM,EAAU,EACzCA,EAAUC,EAAqB,OAC/B,IACA,CACA,IAAIC,EAASD,EAAqBD,GACzBE,IAAT,OAAoB,EAAO,MAAQ,WACrC,CACF,GAAkB,CAAChB,CACrB,CACMiB,IAAN,GAAqBC,GAAwB9B,EAAM6B,EAAa,CAAC,EAC3DE,IAAN,GACQC,IAAN,GACMhC,EAAK,MAAX,IACC,EAAK,gBACJ+B,EAAsB,EAAEV,EAAyB,CAACY,GACxD,CACA,SAASH,GAAwB,EAAM,EAAa,EAAgB,CAClE,EAAK,cAAgBD,EACrB,EAAK,gBAAkB,CAACA,EACxB,IAAIK,EAAmB,GAAK9C,GAAMyC,CAAW,EAC7C,EAAK,gBAAkBA,EACvB,EAAK,cAAcK,GACjBlC,EAAK,cAAckC,GACnB,WACCC,EAAiB,MACtB,CACA,SAASC,GAAkB,EAAM,EAAgB,CAC/C,IAAIC,EAAsB,EAAK,gBAAkBF,EACjD,IAAK,EAAOnC,EAAK,cAAeqC,GAAsB,CACpD,IAAIC,EAAU,GAAKlD,GAAMiD,CAAkB,EACzCzB,EAAO,GAAK0B,EACd1B,EAAQuB,EAAmBnC,EAAKsC,GAAWH,IACxC,EAAKG,IAAYH,GACpB,GAAsB,CAACvB,CACzB,CACF,CACA,SAAS2B,GAA0B,EAAM,EAAa,CACpD,IAAIC,EAAahC,EAAc,CAACA,EAGhC,MAFA,GACSgC,EAAa,GAAM,EAAIC,EAAgCD,CAAU,GAC5DA,GAAcxC,EAAK,eAAiBQ,MAA3C,EAEHgC,EADA,CAEN,CACA,SAASC,EAAgC,EAAM,CAC7C,OAAQ7B,EAAR,CACE,IAAK,GACH,EAAO,EACP,MACF,IAAK,GACH,EAAO,EACP,MACF,IAAK,IACH,EAAO,GACP,MACF,IAAK,KACL,IAAK,KACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,UACH,EAAO,IACP,MACF,IAAK,WACH,EAAO,UACP,MACF,QACE,EAAO,CACX,CACA,OAAOA,CACT,CACA,SAAS8B,GAAqB,EAAO,CAEnC,MADA,IAAS,CAAC7C,EACH,EAAIA,EACP,EAAIA,EACKA,EAAQ,UACb,GACA,UACF,EACF,CACN,CACA,SAAS8C,IAAwB,CAC/B,IAAIC,EAAiBxH,EAAwB,EAG7C,OAFUwH,IAAN,GACJ,EAAiB,OAAO,MACNA,IAAX,IAAK,GAAuB,GAAKC,GAAiBD,EAAe,IAAI,GAF3CA,CAGnC,CACA,SAASE,GAAgB,EAAU,EAAI,CACrC,IAAIC,EAAmB3H,EAAwB,EAC/C,GAAI,CACF,MAAQ,GAAwB,EAAI4H,EAAWjO,EAAG,CACpD,QAAU,CACR,EAAwB,EAAIgO,CAC9B,CACF,CACA,IAAIE,GAAY,KAAK,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAChDC,GAAsB,gBAAkBD,GACxCE,GAAmB,gBAAkBF,GACrCG,GAA+B,oBAAsBH,GACrDI,GAA2B,iBAAmBJ,GAC9CK,GAAmC,oBAAsBL,GACzDM,GAA6B,kBAAoBN,GACjDO,GAA+B,oBAAsBP,GACrDQ,GAA0B,iBAAmBR,GAC7CS,GAAyB,eAAiBT,GAC5C,SAASU,GAAsB,EAAM,CACnC,OAAO7X,EAAKoX,IACZ,OAAOpX,EAAKqX,IACZ,OAAOrX,EAAKwX,IACZ,OAAOxX,EAAKyX,GACd,CACA,SAASK,GAA2B,EAAY,CAC9C,IAAIC,EACJ,GAAK,EAAaC,EAAWZ,IAAuB,OAAOW,EAC3D,IAAK,IAAIE,EAAaD,EAAW,WAAYC,GAAc,CACzD,GACG,EACCA,EAAWX,KACXW,EAAWb,IACb,CAEA,GADA,EAAaW,EAAW,UAEbA,EAAW,QAApB,MACUE,IAAT,MAAgCA,EAAW,QAApB,KAExB,IACE,EAAaC,GAA2BF,CAAU,EACzCA,IAAT,MAEA,CACA,GAAK,EAAaA,EAAWZ,IAAuB,OAAOa,EAC3D,EAAaC,GAA2BF,CAAU,CACpD,CACF,OAAOD,CACT,CACA,EAAaE,EACb,EAAaD,EAAW,UAC1B,CACA,OAAO,IACT,CACA,SAASG,GAAoB,EAAM,CACjC,GACG,EAAOnY,EAAKoX,KAAwBpX,EAAKsX,IAC1C,CACA,IAAIlK,EAAMpN,EAAK,IACf,GACQoN,IAAN,GACMA,IAAN,GACOA,IAAP,IACOA,IAAP,IACOA,IAAP,IACOA,IAAP,IACMA,IAAN,EAEA,OAAOpN,CACX,CACA,OAAO,IACT,CACA,SAASoY,EAAoB,EAAM,CACjC,IAAIhL,EAAMmB,EAAK,IACf,GAAUnB,IAAN,GAAoBA,IAAP,IAAqBA,IAAP,IAAoBA,IAAN,EAAW,OAAOmB,EAAK,UACpE,MAAM,MAAM5D,EAAuB,EAAE,CAAC,CACxC,CACA,SAAS0N,GAAqB,EAAM,CAClC,IAAIC,EAAYpE,EAAKwD,IAIrB,MAHA,CACGY,IAAY,EAAKZ,IAChB,CAAE,gBAAiB,IAAI,IAAO,iBAAkB,IAAI,GAAM,EACvDY,CACT,CACA,SAASC,GAAoB,EAAM,CACjC,EAAKZ,IAA2B,CAAC,CACnC,CACA,SAASa,GAAuB,EAAM,CACpC,EAAKZ,IAA0B,IAAK,EACtC,CACA,IAAIa,GAAkB,IAAI,IACxBC,GAA+B,CAAC,EAClC,SAASC,EAAsB,EAAkB,EAAc,CAC7DC,EAAoBC,EAAkBC,CAAY,EAClDF,EAAoBC,EAAmB,UAAWC,CAAY,CAChE,CACA,SAASF,EAAoB,EAAkB,EAAc,CAE3D,IADA,GAA6BC,GAAoBC,EAE/C,EAAmB,EACnBD,EAAmBC,EAAa,OAChC,IAEAL,GAAgB,IAAIK,EAAaD,EAAiB,CACtD,CACA,IAAIE,GAA6B,OAC7B,+YACF,EACAC,EAA4B,CAAC,EAC7BC,GAA8B,CAAC,EACjC,SAASC,GAAoB,EAAe,CAO1C,OANIvT,GAAe,KAAKsT,GAA6BE,CAAa,EACzD,CAAC,EACNxT,GAAe,KAAKqT,EAA2BG,CAAa,EAAU,CAAC,EACvEJ,GAA2B,KAAKI,CAAa,EACvC,GAA4BA,GAAiB,CAAC,GACxD,EAA0BA,GAAiB,CAAC,EACrC,CAAC,EACV,CACA,IAAIC,EAAgC,CAAC,EACrC,SAASC,IAAsB,CAC7B,IAAIC,EAAOF,EAEX,MADA,GAAgC,CAAC,EAC1BE,CACT,CACA,SAASC,GAAqB,EAAM,EAAM,EAAO,CAC/C,GAAIL,GAAoBtI,CAAI,EAC1B,IAAa/G,IAAT,KAAgB7J,EAAK,gBAAgB4Q,CAAI,MACxC,CACH,OAAQ,OAAO/G,EAAf,CACE,IAAK,YACL,IAAK,WACL,IAAK,SACH7J,EAAK,gBAAgB4Q,CAAI,EACzB,OACF,IAAK,UACH,IAAI4I,EAAY5I,EAAK,YAAY,CAAC,CAAC,MAAM,EAAG,CAAC,EAC7C,GAAgB4I,IAAZ,SAAqCA,IAAZ,QAAuB,CAClDxZ,EAAK,gBAAgB4Q,CAAI,EACzB,MACF,CACJ,CACA5Q,EAAK,aAAa4Q,EAAM/G,CAAK,CAC/B,EACJ,CACA,SAAS4P,GAA0B,EAAM,EAAM,EAAO,CACpD,GAAa5P,IAAT,KAAgB7J,EAAK,gBAAgB4Q,CAAI,MACxC,CACH,OAAQ,OAAO/G,EAAf,CACE,IAAK,YACL,IAAK,WACL,IAAK,SACL,IAAK,UACH7J,EAAK,gBAAgB4Q,CAAI,EACzB,MACJ,CACA5Q,EAAK,aAAa4Q,EAAM/G,CAAK,CAC/B,CACF,CACA,SAAS6P,GAA+B,EAAM,EAAW,EAAM,EAAO,CACpE,GAAa7P,IAAT,KAAgB7J,EAAK,gBAAgB4Q,CAAI,MACxC,CACH,OAAQ,OAAO/G,EAAf,CACE,IAAK,YACL,IAAK,WACL,IAAK,SACL,IAAK,UACH7J,EAAK,gBAAgB4Q,CAAI,EACzB,MACJ,CACA5Q,EAAK,eAAe2Z,EAAW/I,EAAM/G,CAAK,CAC5C,CACF,CACA,SAAS+P,GAAiB,EAAO,CAC/B,OAAQ,OAAO/P,EAAf,CACE,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,YACH,OAAOA,EACT,IAAK,SACH,OAAOA,EACT,QACE,MAAO,EACX,CACF,CACA,SAASgQ,GAAY,EAAM,CACzB,IAAI9S,EAAO+S,EAAK,KAChB,OACG,EAAOA,EAAK,WACDA,EAAK,YAAY,IAA7B,UACgB/S,IAAf,YAAmCA,IAAZ,QAE5B,CACA,SAASgT,GAAiB,EAAM,EAAY,EAAc,CACxD,IAAIC,EAAa,OAAO,yBACtBha,EAAK,YAAY,UACjBia,CACF,EACA,GACE,CAACja,EAAK,eAAeia,CAAU,GACRD,IAAvB,QACe,OAAOA,EAAW,KAAjC,YACe,OAAOA,EAAW,KAAjC,WACA,CACA,IAAIE,EAAMF,EAAW,IACnBG,EAAMH,EAAW,IAcnB,OAbA,OAAO,eAAeha,EAAMia,EAAY,CACtC,aAAc,CAAC,EACf,IAAK,UAAY,CACf,OAAOC,EAAI,KAAK,IAAI,CACtB,EACA,IAAK,SAAU,EAAO,CACpB,EAAe,GAAKrQ,EACpBsQ,EAAI,KAAK,KAAMtQ,CAAK,CACtB,CACF,CAAC,EACD,OAAO,eAAe7J,EAAMia,EAAY,CACtC,WAAYD,EAAW,UACzB,CAAC,EACM,CACL,SAAU,UAAY,CACpB,OAAOI,CACT,EACA,SAAU,SAAU,EAAO,CACzB,EAAe,GAAKvQ,CACtB,EACA,aAAc,UAAY,CACxB,EAAK,cAAgB,KACrB,OAAO7J,EAAKia,EACd,CACF,CACF,CACF,CACA,SAASI,GAAM,EAAM,CACnB,GAAI,CAACra,EAAK,cAAe,CACvB,IAAIia,EAAaJ,GAAY7Z,CAAI,EAAI,UAAY,QACjD,EAAK,cAAgB+Z,GACnB/Z,EACAia,EACA,GAAKja,EAAKia,EACZ,CACF,CACF,CACA,SAASK,GAAqB,EAAM,CAClC,GAAI,CAACta,EAAM,MAAO,CAAC,EACnB,IAAIua,EAAUva,EAAK,cACnB,GAAI,CAACua,EAAS,MAAO,CAAC,EACtB,IAAIC,EAAYD,EAAQ,SAAS,EAC7B1Q,EAAQ,GAQZ,OAPA7J,IACG,EAAQ6Z,GAAY7Z,CAAI,EACrBA,EAAK,QACH,OACA,QACFA,EAAK,OACX,EAAO6J,EACA7J,IAASwa,IAAaD,EAAQ,SAASva,CAAI,EAAG,CAAC,EACxD,CACA,IAAIya,GAAsD,WAC1D,SAASC,GAA+C,EAAO,CAC7D,OAAO7Q,EAAM,QACX4Q,GACA,SAAU,EAAI,CACZ,MAAO,KAAOE,EAAG,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,EAAI,GAChD,CACF,CACF,CACA,SAASC,GACP,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CACA,EAAQ,KAAO,GACP7T,GAAR,MACe,OAAOA,GAAtB,YACa,OAAOA,GAApB,UACc,OAAOA,GAArB,UACK,EAAQ,KAAOA,EAChBN,EAAQ,gBAAgB,MAAM,EACtBoD,GAAR,KAQY9C,IAAd,UAAkCA,IAAZ,SAAqBN,EAAQ,gBAAgB,OAAO,EAPzDM,IAAb,UACS8C,IAAN,GAAsBpD,EAAQ,QAAf,IAAyBA,EAAQ,OAASoD,KAC5D,EAAQ,MAAQ,GAAK+P,GAAiB/P,CAAK,GAE7CpD,EAAQ,QAAU,GAAKmT,GAAiB/P,CAAK,IAC1C,EAAQ,MAAQ,GAAK+P,GAAiB/P,CAAK,GAG1CA,GAAR,KAIYR,GAAR,KAEUwR,GAAR,MAA4BpU,EAAQ,gBAAgB,OAAO,EAD3DqU,GAAgBrU,EAASmT,GAAiBvQ,CAAY,CAAC,EAJ5CtC,IAAb,UAAqBN,EAAQ,OAASoD,EACpCiR,GAAgBrU,EAASmT,GAAiBnT,EAAQ,KAAK,CAAC,EACxDqU,GAAgBrU,EAASmT,GAAiB/P,CAAK,CAAC,EAI9CkR,GAAR,MACUC,GAAR,OACC,EAAQ,eAAiB,CAAC,CAACA,GACtBD,GAAR,OACG,EAAQ,QACPA,GAA0B,OAAOA,GAAtB,YAA8C,OAAOA,GAApB,UACxCnK,GAAR,MACe,OAAOA,GAAtB,YACa,OAAOA,GAApB,UACc,OAAOA,GAArB,UACK,EAAQ,KAAO,GAAKgJ,GAAiBhJ,CAAI,EAC1CnK,EAAQ,gBAAgB,MAAM,CACpC,CACA,SAASwU,GACP,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CAMA,GALQlU,GAAR,MACiB,OAAOA,GAAtB,YACa,OAAOA,GAApB,UACc,OAAOA,GAArB,YACC,EAAQ,KAAOA,GACN8C,GAAR,MAAyBR,GAAR,KAAsB,CACzC,GACE,EACgBtC,IAAb,UAAiCA,IAAZ,SACV8C,GAAS,MAEvB,CACAwQ,GAAM5T,CAAO,EACb,MACF,CACA,EACU4C,GAAR,KAA6D,GAAtC,GAAKuQ,GAAiBvQ,CAAY,EAC3D,EAAgBQ,GAAR,KAA+CR,EAA/B,GAAKuQ,GAAiB/P,CAAK,EACnDqR,GAAerR,IAAUpD,EAAQ,QAAU,EAAQ,MAAQoD,GAC3D,EAAQ,aAAeA,CACzB,CACA,IAAsCmR,EACtC,EACiB,OAAOD,GAAtB,YAA8C,OAAOA,GAApB,UAA+B,CAAC,CAACA,EACpE,EAAQ,QAAUG,EAAczU,EAAQ,QAAU,CAAC,CAACsU,EACpD,EAAQ,eAAiB,CAAC,CAACA,EACnBnK,GAAR,MACiB,OAAOA,GAAtB,YACa,OAAOA,GAApB,UACc,OAAOA,GAArB,YACC,EAAQ,KAAOA,GAClByJ,GAAM5T,CAAO,CACf,CACA,SAASqU,GAAgB,EAAM,EAAO,CACpC9a,EAAK,eAAiB,GAAK6J,IAAU,EAAK,aAAe,GAAKA,EAChE,CACA,SAASsR,GAAc,EAAM,EAAU,EAAW,EAAoB,CAEpE,GADA,EAAOnb,EAAK,QACRob,EAAU,CACZ,EAAW,CAAC,EACZ,IAAK,IAAI,EAAI,EAAG,EAAIC,EAAU,OAAQ,IACpC,EAAS,IAAMA,EAAU,IAAM,CAAC,EAClC,IAAK,EAAY,EAAGA,EAAYrb,EAAK,OAAQ,IAC3C,EAAKob,EAAS,eAAe,IAAMpb,EAAKqb,EAAU,CAAC,KAAK,EACtDrb,EAAKqb,EAAU,CAAC,WAAa,IAAM,EAAKA,EAAU,CAAC,SAAW,GAC9D,GAAKC,IAAuB,EAAKD,EAAU,CAAC,gBAAkB,CAAC,EACrE,KAAO,CAGL,IAFA,EAAY,GAAKzB,GAAiByB,CAAS,EAC3C,EAAW,KACN,EAAI,EAAG,EAAIrb,EAAK,OAAQ,IAAK,CAChC,GAAIA,EAAK,EAAE,CAAC,QAAUqb,EAAW,CAC/B,EAAK,EAAE,CAAC,SAAW,CAAC,EACpBC,IAAuB,EAAK,EAAE,CAAC,gBAAkB,CAAC,GAClD,MACF,CACSF,IAAT,MAAqBpb,EAAK,EAAE,CAAC,WAAa,EAAWA,EAAK,GAC5D,CACSob,IAAT,OAAsB,EAAS,SAAW,CAAC,EAC7C,CACF,CACA,SAASG,GAAe,EAAS,EAAO,EAAc,CAE1C1R,GAAR,OACE,EAAQ,GAAK+P,GAAiB/P,CAAK,EACrCA,IAAUpD,EAAQ,QAAU,EAAQ,MAAQoD,GACpCR,GAAR,MAEA5C,EAAQ,eAAiBoD,IAAU,EAAQ,aAAeA,GAG5D,EAAQ,aACER,GAAR,KAA6D,GAAtC,GAAKuQ,GAAiBvQ,CAAY,CAC7D,CACA,SAASmS,GAAa,EAAS,EAAO,EAAc,EAAU,CAC5D,GAAY3R,GAAR,KAAe,CACjB,GAAY7C,GAAR,KAAkB,CACpB,GAAYqC,GAAR,KAAsB,MAAM,MAAMsB,EAAuB,EAAE,CAAC,EAChE,GAAInF,GAAYwB,CAAQ,EAAG,CACzB,GAAI,EAAIA,EAAS,OAAQ,MAAM,MAAM2D,EAAuB,EAAE,CAAC,EAC/D,EAAW3D,EAAS,EACtB,CACA,EAAeA,CACjB,CACA,IAAwC,GACxC,EAAQqC,CACV,CACA,EAAeuQ,GAAiB/P,CAAK,EACrC,EAAQ,aAAeR,EACvB,EAAW5C,EAAQ,YACnBO,IAAaqC,GACJrC,IAAP,IACSA,IAAT,OACC,EAAQ,MAAQA,GACnBqT,GAAM5T,CAAO,CACf,CACA,SAASgV,GAAe,EAAM,EAAM,CAClC,GAAIC,EAAM,CACR,IAAIC,EAAa3b,EAAK,WACtB,GACE2b,GACAA,IAAe3b,EAAK,WACd2b,EAAW,WAAjB,EACA,CACA,EAAW,UAAYD,EACvB,MACF,CACF,CACA,EAAK,YAAcA,CACrB,CACA,IAAIE,GAAkB,IAAI,IACxB,26BAA26B,MACz6B,GACF,CACF,EACA,SAASC,GAAiB,EAAO,EAAW,EAAO,CACjD,IAAIC,EAAyBC,EAAU,QAAQ,IAAI,IAA5B,EACflS,GAAR,MAA+B,OAAOA,GAArB,WAAqCA,IAAP,GAC3CiS,EACEE,EAAM,YAAYD,EAAW,EAAE,EACnBA,IAAZ,QACG,EAAM,SAAW,GACjB,EAAMA,GAAa,GACxBD,EACEE,EAAM,YAAYD,EAAWlS,CAAK,EACrB,OAAOA,GAApB,UACQA,IAAN,GACA+R,GAAgB,IAAIG,CAAS,EACjBA,IAAZ,QACG,EAAM,SAAWlS,EACjB,EAAMkS,IAAc,GAAKlS,EAAA,CAAO,KAAK,EACvC,EAAMkS,GAAalS,EAAQ,IACtC,CACA,SAASoS,GAAkB,EAAM,EAAQ,EAAY,CACnD,GAAYC,GAAR,MAA+B,OAAOA,GAApB,SACpB,MAAM,MAAMvR,EAAuB,EAAE,CAAC,EAExC,GADA,EAAO3K,EAAK,MACAmc,GAAR,KAAoB,CACtB,IAAK,IAAIJ,KAAaI,EACpB,CAACA,EAAW,eAAeJ,CAAS,GACzBG,GAAR,MAAkBA,EAAO,eAAeH,CAAS,IAC3CA,EAAU,QAAQ,IAAI,IAA5B,EACG/b,EAAK,YAAY+b,EAAW,EAAE,EAClBA,IAAZ,QACG,EAAK,SAAW,GAChB,EAAKA,GAAa,GACxB,EAAgC,CAAC,GACtC,IAAK,IAAIK,KAAgBF,EACvB,EAAaA,EAAOE,GAClBF,EAAO,eAAeE,CAAY,GAChCD,EAAWC,KAAkBL,IAC5BF,GAAiB7b,EAAMoc,EAAcL,CAAS,EAC9C,EAAgC,CAAC,EAC1C,MACE,IAAK,IAAIM,KAAgBH,EACvBA,EAAO,eAAeG,CAAY,GAChCR,GAAiB7b,EAAMqc,EAAcH,EAAOG,EAAa,CACjE,CACA,SAASC,GAAgB,EAAS,CAChC,GAAWC,EAAQ,QAAQ,GAAG,IAA1B,GAA6B,MAAO,CAAC,EACzC,OAAQA,EAAR,CACE,IAAK,iBACL,IAAK,gBACL,IAAK,YACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,gBACH,MAAO,CAAC,EACV,QACE,MAAO,CAAC,CACZ,CACF,CACA,IAAIC,GAAU,IAAI,IAAI,CAClB,CAAC,gBAAiB,gBAAgB,EAClC,CAAC,UAAW,KAAK,EACjB,CAAC,YAAa,YAAY,EAC1B,CAAC,cAAe,aAAa,EAC7B,CAAC,eAAgB,eAAe,EAChC,CAAC,oBAAqB,oBAAoB,EAC1C,CAAC,aAAc,aAAa,EAC5B,CAAC,gBAAiB,gBAAgB,EAClC,CAAC,YAAa,YAAY,EAC1B,CAAC,WAAY,WAAW,EACxB,CAAC,WAAY,WAAW,EACxB,CAAC,qBAAsB,qBAAqB,EAC5C,CAAC,4BAA6B,6BAA6B,EAC3D,CAAC,eAAgB,eAAe,EAChC,CAAC,iBAAkB,iBAAiB,EACpC,CAAC,mBAAoB,mBAAmB,EACxC,CAAC,mBAAoB,mBAAmB,EACxC,CAAC,cAAe,cAAc,EAC9B,CAAC,WAAY,WAAW,EACxB,CAAC,aAAc,aAAa,EAC5B,CAAC,eAAgB,eAAe,EAChC,CAAC,aAAc,aAAa,EAC5B,CAAC,WAAY,WAAW,EACxB,CAAC,iBAAkB,kBAAkB,EACrC,CAAC,cAAe,cAAc,EAC9B,CAAC,YAAa,YAAY,EAC1B,CAAC,cAAe,cAAc,EAC9B,CAAC,aAAc,aAAa,EAC5B,CAAC,YAAa,YAAY,EAC1B,CAAC,6BAA8B,8BAA8B,EAC7D,CAAC,2BAA4B,4BAA4B,EACzD,CAAC,YAAa,aAAa,EAC3B,CAAC,eAAgB,gBAAgB,EACjC,CAAC,iBAAkB,iBAAiB,EACpC,CAAC,gBAAiB,gBAAgB,EAClC,CAAC,gBAAiB,gBAAgB,EAClC,CAAC,YAAa,YAAY,EAC1B,CAAC,YAAa,YAAY,EAC1B,CAAC,cAAe,cAAc,EAC9B,CAAC,WAAY,WAAW,EACxB,CAAC,mBAAoB,mBAAmB,EACxC,CAAC,oBAAqB,oBAAoB,EAC1C,CAAC,aAAc,aAAa,EAC5B,CAAC,WAAY,UAAU,EACvB,CAAC,gBAAiB,gBAAgB,EAClC,CAAC,kBAAmB,kBAAkB,EACtC,CAAC,iBAAkB,iBAAiB,EACpC,CAAC,YAAa,YAAY,EAC1B,CAAC,cAAe,cAAc,EAC9B,CAAC,wBAAyB,wBAAwB,EAClD,CAAC,yBAA0B,yBAAyB,EACpD,CAAC,kBAAmB,kBAAkB,EACtC,CAAC,mBAAoB,mBAAmB,EACxC,CAAC,gBAAiB,gBAAgB,EAClC,CAAC,iBAAkB,iBAAiB,EACpC,CAAC,mBAAoB,mBAAmB,EACxC,CAAC,gBAAiB,gBAAgB,EAClC,CAAC,cAAe,cAAc,EAC9B,CAAC,aAAc,aAAa,EAC5B,CAAC,iBAAkB,iBAAiB,EACpC,CAAC,gBAAiB,gBAAgB,EAClC,CAAC,kBAAmB,kBAAkB,EACtC,CAAC,oBAAqB,oBAAoB,EAC1C,CAAC,qBAAsB,qBAAqB,EAC5C,CAAC,cAAe,cAAc,EAC9B,CAAC,eAAgB,eAAe,EAChC,CAAC,aAAc,cAAc,EAC7B,CAAC,cAAe,cAAc,EAC9B,CAAC,WAAY,WAAW,EACxB,CAAC,eAAgB,eAAe,EAChC,CAAC,gBAAiB,gBAAgB,EAClC,CAAC,eAAgB,eAAe,EAChC,CAAC,WAAY,YAAY,EACzB,CAAC,cAAe,eAAe,EAC/B,CAAC,cAAe,eAAe,EAC/B,CAAC,cAAe,cAAc,EAC9B,CAAC,cAAe,cAAc,EAC9B,CAAC,aAAc,aAAa,EAC5B,CAAC,UAAW,UAAU,CACxB,CAAC,EACDC,GACE,2HACJ,SAASC,GAAY,EAAK,CACxB,OAAOD,GAAqB,KAAK,GAAK7R,CAAG,EACrC,8FACAA,CACN,CACA,SAAS+R,IAAS,CAAC,CACnB,IAAIC,GAAwB,KAC5B,SAASC,GAAe,EAAa,CAInC,MAHA,GAAcC,EAAY,QAAUA,EAAY,YAAc,OAC9DA,EAAY,0BACT,EAAcA,EAAY,yBAChBA,EAAY,WAAlB,EAA6BA,EAAY,WAAaA,CAC/D,CACA,IAAIC,GAAgB,KAClBC,GAAe,KACjB,SAASC,GAAqB,EAAQ,CACpC,IAAIC,EAAmB/E,GAAoB/J,CAAM,EACjD,GAAI8O,IAAqB,EAASA,EAAiB,WAAY,CAC7D,IAAIjY,EAAQmJ,EAAOiJ,KAAqB,KACxC,EAAG,OAAU,EAAS6F,EAAiB,UAAYA,EAAiB,KAAjE,CACD,IAAK,QAYH,GAXAtC,GACExM,EACAnJ,EAAM,MACNA,EAAM,aACNA,EAAM,aACNA,EAAM,QACNA,EAAM,eACNA,EAAM,KACNA,EAAM,IACR,EACA,EAAmBA,EAAM,KACTA,EAAM,OAAlB,SAAkCiY,GAAR,KAA0B,CACtD,IAAK,EAAQ9O,EAAQnJ,EAAM,YAAc,EAAQA,EAAM,WAQvD,IAPA,EAAQA,EAAM,iBACZ,eACEyV,GACE,GAAKwC,CACP,EACA,kBACJ,EAEE,EAAmB,EACnBA,EAAmBjY,EAAM,OACzB,IACA,CACA,IAAIkY,EAAYlY,EAAMiY,GACtB,GAAIC,IAAc/O,GAAU+O,EAAU,OAAS/O,EAAO,KAAM,CAC1D,IAAIgP,EAAaD,EAAU9F,KAAqB,KAChD,GAAI,CAAC+F,EAAY,MAAM,MAAMzS,EAAuB,EAAE,CAAC,EACvDiQ,GACEuC,EACAC,EAAW,MACXA,EAAW,aACXA,EAAW,aACXA,EAAW,QACXA,EAAW,eACXA,EAAW,KACXA,EAAW,IACb,CACF,CACF,CACA,IACE,EAAmB,EACnBF,EAAmBjY,EAAM,OACzB,IAEA,EAAaA,EAAMiY,GACjBC,EAAU,OAAS/O,EAAO,MAAQkM,GAAqB6C,CAAS,CACtE,CACA,MAAM,EACR,IAAK,WACH5B,GAAenN,EAAQnJ,EAAM,MAAOA,EAAM,YAAY,EACtD,MAAM,EACR,IAAK,SACH,EAAoBA,EAAM,MAChBiY,GAAR,MACE/B,GAAc/M,EAAQ,CAAC,CAACnJ,EAAM,SAAUiY,EAAkB,CAAC,CAAC,CACpE,CACF,CACF,CACA,IAAIG,GAAuB,CAAC,EAC5B,SAASC,GAAiB,EAAI,EAAG,EAAG,CAClC,GAAID,GAAsB,OAAOpU,EAAGlI,EAAGC,CAAC,EACxC,GAAuB,CAAC,EACxB,GAAI,CAEF,OAD+BiI,EAAGlI,CACJ,CAChC,QAAU,CACR,GACI,GAAuB,CAAC,GACjBgc,KAAT,MAAmCC,KAAT,QAGvBO,GAAgB,EACjBR,KACI,EAAIA,GACL,EAAKC,GACL,GAAe,GAAgB,KAChCC,GAAqBlc,CAAC,EACtBkI,IAEF,IAAK,EAAI,EAAGlI,EAAIkI,EAAG,OAAQ,IAAKgU,GAAqBhU,EAAGlI,EAAE,CAChE,CACF,CACA,SAASyc,GAAY,EAAM,EAAkB,CAC3C,IAAIC,EAAYlP,EAAK,UACrB,GAAakP,IAAT,KAAoB,OAAO,KAC/B,IAAIxY,EAAQwY,EAAUpG,KAAqB,KAC3C,GAAapS,IAAT,KAAgB,OAAO,KAC3B,EAAYA,EAAM4T,GAClB,EAAG,OAAQA,EAAR,CACD,IAAK,UACL,IAAK,iBACL,IAAK,gBACL,IAAK,uBACL,IAAK,cACL,IAAK,qBACL,IAAK,cACL,IAAK,qBACL,IAAK,YACL,IAAK,mBACL,IAAK,gBACF,EAAQ,CAAC5T,EAAM,YACZ,EAAOsJ,EAAK,KACb,EACcA,IAAb,UACYA,IAAZ,SACaA,IAAb,UACeA,IAAf,YAEJ,EAAO,CAACtJ,EACR,MAAM,EACR,QACE,EAAO,CAAC,CACZ,CACA,GAAIsJ,EAAM,OAAO,KACjB,GAAIkP,GAA4B,OAAOA,GAAtB,WACf,MAAM,MACJ9S,EAAuB,IAAKkO,EAAkB,OAAO4E,CAAS,CAChE,EACF,OAAOA,CACT,CACA,IAAIC,GACgB,OAAO,OAAvB,KACuB,OAAO,WAA9B,QACuB,OAAO,SAAS,gBAAvC,OAEFC,GAAgC,CAAC,EACnC,GAAID,GACF,GAAI,CACF,IAAIla,GAAU,CAAC,EACf,OAAO,eAAeA,GAAS,UAAW,CACxC,IAAK,UAAY,CACf,GAAgC,CAAC,CACnC,CACF,CAAC,EACD,OAAO,iBAAiB,OAAQA,GAASA,EAAO,EAChD,OAAO,oBAAoB,OAAQA,GAASA,EAAO,CACrD,MAAY,CACV,GAAgC,CAAC,CACnC,CACF,IAAI0Q,GAAO,KACT0J,GAAY,KACZC,GAAe,KACjB,SAASC,IAAU,CACjB,GAAID,GAAc,OAAOA,GACzB,IAAIE,EACFC,EAAaJ,GACbK,EAAcD,EAAW,OACzBE,EACAC,EAAW,UAAWjK,GAAOA,GAAK,MAAQA,GAAK,YAC/CkK,EAAYD,EAAS,OACvB,IACE,EAAQ,EACRJ,EAAQE,GAAeD,EAAWD,KAAWI,EAASJ,GACtD,KAEF,IAAIM,EAASJ,EAAcF,EAC3B,IACE,EAAM,EACNG,GAAOG,GACPL,EAAWC,EAAcC,KAASC,EAASC,EAAYF,GACvD,KAEF,MAAQ,IAAeC,EAAS,MAAMJ,EAAO,EAAIG,EAAM,EAAIA,EAAM,IAAK,EAAC,CACzE,CACA,SAASI,GAAiB,EAAa,CACrC,IAAIC,EAAUzB,EAAY,QAM1B,MALA,aAAcA,GACR,EAAcA,EAAY,SACtBA,IAAN,GAA4ByB,IAAP,KAAmB,EAAc,KACrD,EAAcA,EACZzB,IAAP,KAAuB,EAAc,IAC9B,IAAMA,GAAsBA,IAAP,GAAqBA,EAAc,CACjE,CACA,SAAS0B,IAA0B,CACjC,MAAO,CAAC,CACV,CACA,SAASC,IAA2B,CAClC,MAAO,CAAC,CACV,CACA,SAASC,GAAqB,EAAW,CACvC,SAASC,EACP,EACA,EACA,EACA,EACA,EACA,CAOA,IAAK,IAAIxV,IANT,MAAK,WAAayV,EAClB,KAAK,YAAc7G,EACnB,KAAK,KAAO8G,EACZ,KAAK,YAAc/B,EACnB,KAAK,OAASgC,EACd,KAAK,cAAgB,KACAC,EACnBA,EAAU,eAAe5V,CAAQ,IAC7B,EAAY4V,EAAU5V,GACvB,KAAKA,GAAYyV,EACdA,EAAU9B,CAAW,EACrBA,EAAY3T,IASpB,MARA,MAAK,oBACK2T,EAAY,kBAApB,KAEI,CAAC,IAAMA,EAAY,YADnBA,EAAY,kBAGd0B,GACAC,GACJ,KAAK,qBAAuBA,GACrB,IACT,CAuBA,OAtBA3Z,EAAO6Z,EAAmB,UAAW,CACnC,eAAgB,UAAY,CAC1B,KAAK,iBAAmB,CAAC,EACzB,IAAIzW,EAAQ,KAAK,YACjBA,IACGA,EAAM,eACHA,EAAM,eAAe,EACP,OAAOA,EAAM,aAA3B,YAA2C,EAAM,YAAc,CAAC,GACnE,KAAK,mBAAqBsW,GAC/B,EACA,gBAAiB,UAAY,CAC3B,IAAItW,EAAQ,KAAK,YACjBA,IACGA,EAAM,gBACHA,EAAM,gBAAgB,EACR,OAAOA,EAAM,cAA3B,YACC,EAAM,aAAe,CAAC,GAC1B,KAAK,qBAAuBsW,GACjC,EACA,QAAS,UAAY,CAAC,EACtB,aAAcA,EAChB,CAAC,EACMG,CACT,CACA,IAAIK,GAAiB,CACjB,WAAY,EACZ,QAAS,EACT,WAAY,EACZ,UAAW,SAAU,EAAO,CAC1B,OAAO9W,EAAM,WAAa,KAAK,IAAI,CACrC,EACA,iBAAkB,EAClB,UAAW,CACb,EACA+W,GAAiBP,GAAqBM,EAAc,EACpDE,GAAmBpa,EAAO,CAAC,EAAGka,GAAgB,CAAE,KAAM,EAAG,OAAQ,CAAE,CAAC,EACpEG,GAAmBT,GAAqBQ,EAAgB,EACxDE,GACAC,GACAC,GACAC,GAAsBza,EAAO,CAAC,EAAGoa,GAAkB,CACjD,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,MAAO,EACP,MAAO,EACP,QAAS,EACT,SAAU,EACV,OAAQ,EACR,QAAS,EACT,iBAAkBM,GAClB,OAAQ,EACR,QAAS,EACT,cAAe,SAAU,EAAO,CAC9B,OAAkBtX,EAAM,gBAAjB,IAAK,GACRA,EAAM,cAAgBA,EAAM,WAC1BA,EAAM,UACNA,EAAM,YACRA,EAAM,aACZ,EACA,UAAW,SAAU,EAAO,CAQ1B,MAPI,cAAeA,EAAcA,EAAM,WACvCA,IAAUoX,KACPA,IAAkCpX,EAAM,OAAtB,aACb,GAAgBA,EAAM,QAAUoX,GAAe,QAChD,GAAgBpX,EAAM,QAAUoX,GAAe,SAC/C,GAAgB,GAAgB,EACpC,GAAiBpX,GACbkX,GACT,EACA,UAAW,SAAU,EAAO,CAC1B,MAAO,cAAelX,EAAQA,EAAM,UAAYmX,EAClD,CACF,CAAC,EACDI,GAAsBf,GAAqBa,EAAmB,EAE9DG,GAAqBhB,GADA5Z,EAAO,CAAC,EAAGya,GAAqB,CAAE,aAAc,CAAE,CACZ,CAAC,EAE5DI,GAAsBjB,GADA5Z,EAAO,CAAC,EAAGoa,GAAkB,CAAE,cAAe,CAAE,CACT,CAAC,EAM9DU,GAA0BlB,GALA5Z,EAAO,CAAC,EAAGka,GAAgB,CACnD,cAAe,EACf,YAAa,EACb,cAAe,CACjB,CACqE,CAAC,EAQtEa,GAA0BnB,GAPA5Z,EAAO,CAAC,EAAGka,GAAgB,CACnD,cAAe,SAAU,EAAO,CAC9B,MAAO,kBAAmB9W,EACtBA,EAAM,cACN,OAAO,aACb,CACF,CACqE,CAAC,EAEtE4X,GAA4BpB,GADA5Z,EAAO,CAAC,EAAGka,GAAgB,CAAE,KAAM,CAAE,CACQ,CAAC,EAC1Ee,GAAe,CACb,IAAK,SACL,SAAU,IACV,KAAM,YACN,GAAI,UACJ,MAAO,aACP,KAAM,YACN,IAAK,SACL,IAAK,KACL,KAAM,cACN,KAAM,cACN,OAAQ,aACR,gBAAiB,cACnB,EACAC,GAAiB,CACf,EAAG,YACH,EAAG,MACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,UACJ,GAAI,MACJ,GAAI,QACJ,GAAI,WACJ,GAAI,SACJ,GAAI,IACJ,GAAI,SACJ,GAAI,WACJ,GAAI,MACJ,GAAI,OACJ,GAAI,YACJ,GAAI,UACJ,GAAI,aACJ,GAAI,YACJ,GAAI,SACJ,GAAI,SACJ,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,UACL,IAAK,aACL,IAAK,MACP,EACAC,GAAoB,CAClB,IAAK,SACL,QAAS,UACT,KAAM,UACN,MAAO,UACT,EACF,SAASC,GAAoB,EAAQ,CACnC,IAAIpD,EAAc,KAAK,YACvB,OAAOA,EAAY,iBACfA,EAAY,iBAAiBqD,CAAM,GAClC,EAASF,GAAkBE,IAC1B,CAAC,CAACrD,EAAYqD,GACd,CAAC,CACT,CACA,SAASX,IAAwB,CAC/B,OAAOU,EACT,CACA,IAsCEE,GAAyB1B,GAtCE5Z,EAAO,CAAC,EAAGoa,GAAkB,CACtD,IAAK,SAAU,EAAa,CAC1B,GAAIpC,EAAY,IAAK,CACnB,IAAIzW,EAAM0Z,GAAajD,EAAY,MAAQA,EAAY,IACvD,GAAuBzW,IAAnB,eAAwB,OAAOA,CACrC,CACA,OAAsByW,EAAY,OAA3B,YACD,EAAcwB,GAAiBxB,CAAW,EACrCA,IAAP,GAAqB,QAAU,OAAO,aAAaA,CAAW,GAChDA,EAAY,OAA1B,WAA8CA,EAAY,OAAxB,QAChCkD,GAAelD,EAAY,UAAY,eACvC,EACR,EACA,KAAM,EACN,SAAU,EACV,QAAS,EACT,SAAU,EACV,OAAQ,EACR,QAAS,EACT,OAAQ,EACR,OAAQ,EACR,iBAAkB0C,GAClB,SAAU,SAAU,EAAO,CACzB,OAAsBtX,EAAM,OAArB,WAA4BoW,GAAiBpW,CAAK,EAAI,CAC/D,EACA,QAAS,SAAU,EAAO,CACxB,OAAqBA,EAAM,OAApB,WAAwCA,EAAM,OAAlB,QAC/BA,EAAM,QACN,CACN,EACA,MAAO,SAAU,EAAO,CACtB,OAAsBA,EAAM,OAArB,WACHoW,GAAiBpW,CAAK,EACRA,EAAM,OAApB,WAAwCA,EAAM,OAAlB,QAC1BA,EAAM,QACN,CACR,CACF,CACmE,CAAC,EAapEmY,GAAwB3B,GAZA5Z,EAAO,CAAC,EAAGya,GAAqB,CACtD,UAAW,EACX,MAAO,EACP,OAAQ,EACR,SAAU,EACV,mBAAoB,EACpB,MAAO,EACP,MAAO,EACP,MAAO,EACP,YAAa,EACb,UAAW,CACb,CACiE,CAAC,EAElEe,GAAuB5B,GADA5Z,EAAO,CAAC,EAAGka,GAAgB,CAAE,UAAW,CAAE,CACF,CAAC,EAWhEuB,GAAsB7B,GAVA5Z,EAAO,CAAC,EAAGoa,GAAkB,CACjD,QAAS,EACT,cAAe,EACf,eAAgB,EAChB,OAAQ,EACR,QAAS,EACT,QAAS,EACT,SAAU,EACV,iBAAkBM,EACpB,CAC6D,CAAC,EAM9DgB,GAA2B9B,GALA5Z,EAAO,CAAC,EAAGka,GAAgB,CACpD,aAAc,EACd,YAAa,EACb,cAAe,CACjB,CACuE,CAAC,EAqBxEyB,GAAsB/B,GApBA5Z,EAAO,CAAC,EAAGya,GAAqB,CACpD,OAAQ,SAAU,EAAO,CACvB,MAAO,WAAYrX,EACfA,EAAM,OACN,gBAAiBA,EACf,CAACA,EAAM,YACP,CACR,EACA,OAAQ,SAAU,EAAO,CACvB,MAAO,WAAYA,EACfA,EAAM,OACN,gBAAiBA,EACf,CAACA,EAAM,YACP,eAAgBA,EACd,CAACA,EAAM,WACP,CACV,EACA,OAAQ,EACR,UAAW,CACb,CAC6D,CAAC,EAM9DwY,GAAuBhC,GALA5Z,EAAO,CAAC,EAAGka,GAAgB,CAChD,SAAU,EACV,SAAU,EACV,OAAQ,CACV,CAC+D,CAAC,EAChE2B,GAAe,CAAC,EAAG,GAAI,GAAI,EAAE,EAC7BC,GAAyBlD,IAAa,qBAAsB,OAC5DmD,GAAe,KACjBnD,IACE,iBAAkB,WACjB,GAAe,SAAS,cAC3B,IAAIoD,GAAuBpD,IAAa,cAAe,QAAU,CAACmD,GAChEE,GACErD,KACC,CAACkD,IACCC,IAAgB,EAAIA,IAAgB,IAAMA,IAC/CG,GAAgB,IAChBC,GAAmB,CAAC,EACtB,SAASC,GAAyB,EAAc,EAAa,CAC3D,OAAQC,EAAR,CACE,IAAK,QACH,OAAcR,GAAa,QAAQ7D,EAAY,OAAO,IAA/C,GACT,IAAK,UACH,OAAeA,EAAY,UAApB,IACT,IAAK,WACL,IAAK,YACL,IAAK,WACH,MAAO,CAAC,EACV,QACE,MAAO,CAAC,CACZ,CACF,CACA,SAASsE,GAAuB,EAAa,CAE3C,MADA,GAActE,EAAY,OACN,OAAOA,GAApB,UAAmC,SAAUA,EAChDA,EAAY,KACZ,IACN,CACA,IAAIuE,GAAc,CAAC,EACnB,SAASC,GAA0B,EAAc,EAAa,CAC5D,OAAQH,EAAR,CACE,IAAK,iBACH,OAAOC,GAAuBtE,CAAW,EAC3C,IAAK,WAGH,OAFWA,EAAY,QAAnB,IACJ,GAAmB,CAAC,EACbkE,IAF8B,KAGvC,IAAK,YACH,MACG,GAAelE,EAAY,KAC5BqE,IAAiBH,IAAiBC,GAAmB,KAAOE,EAEhE,QACE,OAAO,IACX,CACF,CACA,SAASI,GAA4B,EAAc,EAAa,CAC9D,GAAIF,GACF,OAA4BF,IAArB,kBACJ,CAACP,IACAM,GAAyBC,EAAcrE,CAAW,GAChD,EAAegB,GAAQ,EACxB,GAAe,GAAY,GAAO,KAClC,GAAc,CAAC,EAChBqD,GACA,KACN,OAAQA,EAAR,CACE,IAAK,QACH,OAAO,KACT,IAAK,WACH,GACE,EAAErE,EAAY,SAAWA,EAAY,QAAUA,EAAY,UAC1DA,EAAY,SAAWA,EAAY,OACpC,CACA,GAAIA,EAAY,MAAQ,EAAIA,EAAY,KAAK,OAC3C,OAAOA,EAAY,KACrB,GAAIA,EAAY,MAAO,OAAO,OAAO,aAAaA,EAAY,KAAK,CACrE,CACA,OAAO,KACT,IAAK,iBACH,OAAOiE,IAAuCjE,EAAY,SAArB,KACjC,KACAA,EAAY,KAClB,QACE,OAAO,IACX,CACF,CACA,IAAI0E,GAAsB,CACxB,MAAO,CAAC,EACR,KAAM,CAAC,EACP,SAAU,CAAC,EACX,iBAAkB,CAAC,EACnB,MAAO,CAAC,EACR,MAAO,CAAC,EACR,OAAQ,CAAC,EACT,SAAU,CAAC,EACX,MAAO,CAAC,EACR,OAAQ,CAAC,EACT,IAAK,CAAC,EACN,KAAM,CAAC,EACP,KAAM,CAAC,EACP,IAAK,CAAC,EACN,KAAM,CAAC,CACT,EACA,SAASC,GAAmB,EAAM,CAChC,IAAIC,EAAW5H,GAAQA,EAAK,UAAYA,EAAK,SAAS,YAAY,EAClE,OAAmB4H,IAAZ,QACH,CAAC,CAACF,GAAoB1H,EAAK,MACZ4H,IAAf,UAGN,CACA,SAASC,GACP,EACA,EACA,EACA,EACA,CACA5E,GACIC,GACEA,GAAa,KAAK5O,CAAM,EACvB,GAAe,CAACA,CAAM,EACxB,GAAgBA,EACrB,EAAOwT,GAA4BrT,EAAM,UAAU,EACnD,EAAIA,EAAK,SACL,EAAc,IAAI0Q,GAClB,WACA,SACA,KACAnC,EACA1O,CACF,EACAyT,EAAc,KAAK,CAAE,MAAO/E,EAAa,UAAWvO,CAAK,CAAC,EAC9D,CACA,IAAIuT,GAAkB,KACpBC,GAAsB,KACxB,SAASC,GAAgB,EAAe,CACtCC,GAAqBJ,EAAe,CAAC,CACvC,CACA,SAASK,GAAsB,EAAY,CAEzC,GAAI5H,GADalC,EAAoBL,CACH,CAAC,EAAG,OAAOA,CAC/C,CACA,SAASoK,GAA4B,EAAc,EAAY,CAC7D,GAAiBhB,IAAb,SAA2B,OAAOpJ,CACxC,CACA,IAAIqK,GAAwB,CAAC,EAC7B,GAAI1E,GAAW,CACb,IAAI2E,GACJ,GAAI3E,GAAW,CACb,IAAI4E,GAAgC,YAAa,SACjD,GAAI,CAACA,GAA+B,CAClC,IAAIC,GAA4B,SAAS,cAAc,KAAK,EAC5DA,GAA0B,aAAa,UAAW,SAAS,EAC3D,GACiB,OAAOA,GAA0B,SAAhD,UACJ,CACA,GAAsCD,EACxC,KAAO,IAAsC,CAAC,EAC9C,GACED,KACC,CAAC,SAAS,cAAgB,EAAI,SAAS,aAC5C,CACA,SAASG,IAA6B,CACpCV,KACGA,GAAgB,YAAY,mBAAoBW,EAAoB,EACpE,GAAsB,GAAkB,KAC7C,CACA,SAASA,GAAqB,EAAa,CACzC,GACc3F,EAAY,eAAxB,SACAoF,GAAsBH,EAAmB,EACzC,CACA,IAAIF,EAAgB,CAAC,EACrBF,GACEE,EACAE,GACAjF,EACAD,GAAeC,CAAW,CAC5B,EACAQ,GAAiB0E,GAAiBH,CAAa,CACjD,CACF,CACA,SAASa,GAAkC,EAAc,EAAQ,EAAY,CAC7DvB,IAAd,WACKqB,GAA2B,EAC3B,GAAkBpU,EAClB,GAAsB2J,EACvB+J,GAAgB,YAAY,mBAAoBW,EAAoB,GACrDtB,IAAf,YAA+BqB,GAA2B,CAChE,CACA,SAASG,GAAmC,EAAc,CACxD,GACwBxB,IAAtB,mBACYA,IAAZ,SACcA,IAAd,UAEA,OAAOe,GAAsBH,EAAmB,CACpD,CACA,SAASa,GAA2B,EAAc,EAAY,CAC5D,GAAgBzB,IAAZ,QAA0B,OAAOe,GAAsBnK,CAAU,CACvE,CACA,SAAS8K,GAAmC,EAAc,EAAY,CACpE,GAAgB1B,IAAZ,SAAyCA,IAAb,SAC9B,OAAOe,GAAsBnK,CAAU,CAC3C,CACA,SAAS+K,GAAG,EAAG,EAAG,CAChB,OAAQnS,IAAMoS,IAAYpS,IAAN,GAAW,EAAIA,GAAM,EAAIoS,IAAQpS,IAAMA,GAAKoS,IAAMA,CACxE,CACA,IAAIC,GAA0B,OAAO,OAAO,IAA7B,WAAkC,OAAO,GAAKF,GAC7D,SAASG,GAAa,EAAM,EAAM,CAChC,GAAID,GAASE,EAAMC,CAAI,EAAG,MAAO,CAAC,EAClC,GACe,OAAOD,GAApB,WACSA,GACI,OAAOC,GAApB,WACSA,EAET,MAAO,CAAC,EACV,IAAIC,EAAQ,OAAO,KAAKF,CAAI,EAC1BG,EAAQ,OAAO,KAAKF,CAAI,EAC1B,GAAIC,EAAM,SAAWC,EAAM,OAAQ,MAAO,CAAC,EAC3C,IAAK,EAAQ,EAAGA,EAAQD,EAAM,OAAQ,IAAS,CAC7C,IAAIE,EAAaF,EAAMC,GACvB,GACE,CAAC1d,GAAe,KAAKwd,EAAMG,CAAU,GACrC,CAACN,GAASE,EAAKI,GAAaH,EAAKG,EAAW,EAE5C,MAAO,CAAC,CACZ,CACA,MAAO,CAAC,CACV,CACA,SAASC,GAAiB,EAAK,CAE7B,GADA,IAA8B,OAAO,SAAvB,IAAkC,SAAW,IAAK,GACrCC,IAAvB,OAA4B,OAAO,KACvC,GAAI,CACF,OAAOA,EAAI,eAAiBA,EAAI,IAClC,MAAe,CACb,OAAOA,EAAI,IACb,CACF,CACA,SAASC,GAAY,EAAM,CACzB,KAAOzjB,GAAQA,EAAK,YAAc,EAAOA,EAAK,WAC9C,OAAOA,CACT,CACA,SAAS0jB,GAA0B,EAAM,EAAQ,CAC/C,IAAI1jB,EAAOyjB,GAAYvP,CAAI,EAC3B,EAAO,EACP,IAAK,IAAIyP,EAAS3jB,GAAQ,CACxB,GAAUA,EAAK,WAAX,EAAqB,CAEvB,GADA,EAAUkU,EAAOlU,EAAK,YAAY,OAC9BkU,GAAQ0P,GAAUD,GAAWC,EAC/B,MAAO,CAAQ,OAAM,OAAQA,EAAS1P,CAAK,EAC7C,EAAOyP,CACT,CACA,EAAG,CACD,KAAO3jB,GAAQ,CACb,GAAIA,EAAK,YAAa,CACpB,EAAOA,EAAK,YACZ,MAAM,CACR,CACA,EAAOA,EAAK,UACd,CACA,EAAO,IAAK,EACd,CACA,EAAOyjB,GAAYzjB,CAAI,CACzB,CACF,CACA,SAAS6jB,GAAa,EAAW,EAAW,CAC1C,OAAOC,GAAaC,EAChBD,IAAcC,EACZ,CAAC,EACDD,GAAmBA,EAAU,WAAhB,EACX,CAAC,EACDC,GAAmBA,EAAU,WAAhB,EACXF,GAAaC,EAAWC,EAAU,UAAU,EAC5C,aAAcD,EACZA,EAAU,SAASC,CAAS,EAC5BD,EAAU,wBACR,CAAC,EAAEA,EAAU,wBAAwBC,CAAS,EAAI,IAClD,CAAC,EACX,CAAC,CACP,CACA,SAASC,GAAqB,EAAe,CAC3C,EACUC,GAAR,MACQA,EAAc,eAAtB,MACQA,EAAc,cAAc,aAApC,KACIA,EAAc,cAAc,YAC5B,OACN,IACE,IAAIxd,EAAU8c,GAAiBU,EAAc,QAAQ,EACrDxd,aAAmBwd,EAAc,mBAEjC,CACA,GAAI,CACF,IAAI3T,EACW,OAAO7J,EAAQ,cAAc,SAAS,MAAnD,QACJ,MAAc,CACZ,EAA2B,CAAC,CAC9B,CACA,GAAI6J,EAA0B,EAAgB7J,EAAQ,mBACjD,MACL,EAAU8c,GAAiBU,EAAc,QAAQ,CACnD,CACA,OAAOxd,CACT,CACA,SAASyd,GAAyB,EAAM,CACtC,IAAIxC,EAAW5H,GAAQA,EAAK,UAAYA,EAAK,SAAS,YAAY,EAClE,OACE4H,IACcA,IAAZ,UACY5H,EAAK,OAAhB,QACcA,EAAK,OAAlB,UACUA,EAAK,OAAf,OACUA,EAAK,OAAf,OACeA,EAAK,OAApB,aACa4H,IAAf,YACW5H,EAAK,kBAAhB,OAEN,CACA,IAAIqK,GACAzG,IAAa,iBAAkB,UAAY,IAAM,SAAS,aAC5D0G,GAAgB,KAChBC,GAAoB,KACpBC,GAAgB,KAChBC,GAAY,CAAC,EACf,SAASC,GAAqB,EAAe,EAAa,EAAmB,CAC3E,IAAIhB,EACF1E,EAAkB,SAAWA,EACzBA,EAAkB,SACZA,EAAkB,WAAxB,EACEA,EACAA,EAAkB,cAC1ByF,IACUH,IAAR,MACAA,KAAkBb,GAAiBC,CAAG,IACpC,EAAMY,GACR,mBAAoBZ,GAAOU,GAAyBV,CAAG,EAClD,EAAM,CAAE,MAAOA,EAAI,eAAgB,IAAKA,EAAI,YAAa,GACxD,GACCA,EAAI,eAAiBA,EAAI,cAAc,aACxC,OAAA,CACA,aAAa,EACd,EAAM,CACL,WAAYA,EAAI,WAChB,aAAcA,EAAI,aAClB,UAAWA,EAAI,UACf,YAAaA,EAAI,WACnB,GACHc,IAAiBrB,GAAaqB,GAAed,CAAG,IAC7C,GAAgBA,EACjB,EAAM5B,GAA4ByC,GAAmB,UAAU,EAChE,EAAIb,EAAI,SACJ,EAAc,IAAIvE,GAClB,WACA,SACA,KACAnC,EACAgC,CACF,EACA+C,EAAc,KAAK,CAAE,MAAO/E,EAAa,UAAW0G,CAAI,CAAC,EACxD,EAAY,OAASY,KAC9B,CACA,SAASK,GAAc,EAAW,EAAW,CAC3C,IAAIC,EAAW,CAAC,EAIhB,MAHA,GAASC,EAAU,YAAY,GAAKC,EAAU,YAAY,EAC1D,EAAS,SAAWD,GAAa,SAAWC,EAC5C,EAAS,MAAQD,GAAa,MAAQC,EAC/BF,CACT,CACA,IAAIG,GAAiB,CACjB,aAAcJ,GAAc,YAAa,cAAc,EACvD,mBAAoBA,GAAc,YAAa,oBAAoB,EACnE,eAAgBA,GAAc,YAAa,gBAAgB,EAC3D,cAAeA,GAAc,aAAc,eAAe,EAC1D,gBAAiBA,GAAc,aAAc,iBAAiB,EAC9D,iBAAkBA,GAAc,aAAc,kBAAkB,EAChE,cAAeA,GAAc,aAAc,eAAe,CAC5D,EACAK,GAAqB,CAAC,EACtB9I,GAAQ,CAAC,EACX0B,KACI,GAAQ,SAAS,cAAc,KAAK,CAAC,CAAC,MACxC,mBAAoB,SACjB,OAAOmH,GAAe,aAAa,UACpC,OAAOA,GAAe,mBAAmB,UACzC,OAAOA,GAAe,eAAe,WACvC,oBAAqB,QACnB,OAAOA,GAAe,cAAc,YACxC,SAASE,GAA2B,EAAW,CAC7C,GAAID,GAAmBF,GAAY,OAAOE,GAAmBF,GAC7D,GAAI,CAACC,GAAeD,GAAY,OAAOA,EACvC,IAAII,EAAYH,GAAeD,GAC7BD,EACF,IAAKA,KAAaK,EAChB,GAAIA,EAAU,eAAeL,CAAS,GAAKA,KAAa3I,GACtD,MAAQ,IAAmB4I,GAAaI,EAAUL,GACtD,OAAOC,CACT,CACA,IAAIK,GAAgBF,GAA2B,cAAc,EAC3DG,GAAsBH,GAA2B,oBAAoB,EACrEI,GAAkBJ,GAA2B,gBAAgB,EAC7DK,GAAiBL,GAA2B,eAAe,EAC3DM,GAAmBN,GAA2B,iBAAiB,EAC/DO,GAAoBP,GAA2B,kBAAkB,EACjEQ,GAAiBR,GAA2B,eAAe,EAC3DS,GAA6B,IAAI,IACjCC,GACE,opBAAopB,MAClpB,GACF,EACJA,GAAwB,KAAK,WAAW,EACxC,SAASC,GAAoB,EAAc,EAAW,CACpDF,GAA2B,IAAIrE,EAAcvC,CAAS,EACtDjG,EAAsBiG,EAAW,CAACuC,CAAY,CAAC,CACjD,CACA,IAAIwE,GAA0B,EAC9B,SAASC,GAAsB,EAAO,EAAU,CAC9C,GAAY3gB,EAAM,MAAd,MAAiCA,EAAM,OAAjB,OAAuB,OAAOA,EAAM,KAC9D,GAAa4gB,EAAS,WAAlB,KAA4B,OAAOA,EAAS,SAChD,EAAQC,GAAmB,iBAC3B,IAAIC,EAAiB,KAErB,MADA,GAAQ,IAAM9gB,EAAQ,KAAO8gB,EAAe,SAAS,EAAE,EAAI,IACnD,EAAS,SAAW9gB,CAC9B,CACA,SAAS+gB,GAAmB,EAAa,CACvC,GAAYC,GAAR,MAAoC,OAAOA,GAApB,SACzB,OAAOA,EACT,IAAIC,EAAY,KACdC,EAAcC,GAChB,GAAaD,IAAT,KACF,IAAK,IAAI5e,EAAI,EAAGA,EAAI4e,EAAY,OAAQ,IAAK,CAC3C,IAAI7f,EAAQ2f,EAAYE,EAAY5e,IACpC,GAAYjB,GAAR,KAAe,CACjB,GAAeA,IAAX,OAAkB,MAAO,OAC7B,EAAoB4f,GAAR,KAAoB5f,EAAQ4f,GAAa,IAAM5f,EAC7D,CACF,CACF,OAAe4f,GAAYD,EAAY,OACzC,CACA,SAASI,GAA2B,EAAc,EAAY,CAG5D,MAFA,GAAeL,GAAmBM,CAAY,EAC9C,EAAaN,GAAmBO,CAAU,EAC3BA,GAAR,KACQD,IAAX,OACE,KACAA,EACSC,IAAX,OACE,KACAA,CACR,CACA,IAAIte,GACe,OAAO,aAAtB,WACI,YACA,SAAU,EAAO,CACf,GACe,OAAO,QAApB,UACe,OAAO,OAAO,YAA7B,WACA,CACA,IAAIC,EAAQ,IAAI,OAAO,WAAW,QAAS,CACzC,QAAS,CAAC,EACV,WAAY,CAAC,EACb,QACe,OAAOrB,GAApB,UACSA,GACI,OAAOA,EAAM,SAA1B,SACI,OAAOA,EAAM,OAAO,EACpB,OAAOA,CAAK,EACX,OACT,CAAC,EACD,GAAI,CAAC,OAAO,cAAcqB,CAAK,EAAG,MACpC,MAAO,GACQ,OAAO,SAApB,UACe,OAAO,QAAQ,MAA9B,WACA,CACA,QAAQ,KAAK,oBAAqBrB,CAAK,EACvC,MACF,CACA,QAAQ,MAAMA,CAAK,CACrB,EACN2f,GAAmB,CAAC,EACpBC,GAAwB,EACxBC,GAA2B,EAC7B,SAASC,IAAkC,CACzC,IACE,IAAIC,EAAWH,GACblf,EAAK,GAA2B,GAAwB,EAC1DA,EAAIqf,GAEJ,CACA,IAAIta,EAAQka,GAAiBjf,GAC7B,GAAiB,KAAO,KACxB,IAAIsf,EAAQL,GAAiBjf,GAC7B,GAAiB,KAAO,KACxB,IAAIuO,EAAS0Q,GAAiBjf,GAC9B,GAAiB,KAAO,KACxB,IAAIuN,EAAO0R,GAAiBjf,GAE5B,GADA,GAAiB,KAAO,KACXsf,IAAT,MAA2B/Q,IAAT,KAAiB,CACrC,IAAIgR,EAAUD,EAAM,QACXC,IAAT,KACK,EAAO,KAAOhR,GACb,EAAO,KAAOgR,EAAQ,KAAQ,EAAQ,KAAOhR,GACnD,EAAM,QAAUA,CAClB,CACMhB,IAAN,GAAciS,GAA8Bza,EAAOwJ,EAAQhB,CAAI,CACjE,CACF,CACA,SAASkS,GAAgB,EAAO,EAAO,EAAQ,EAAM,CACnD,GAAiB,MAA2B1a,EAC5C,GAAiB,MAA2Bua,EAC5C,GAAiB,MAA2B/Q,EAC5C,GAAiB,MAA2BhB,EAC5C,IAA4BA,EAC5B,EAAM,OAASA,EACf,EAAQxI,EAAM,UACLA,IAAT,OAAmB,EAAM,OAASwI,EACpC,CACA,SAASmS,GAA4B,EAAO,EAAO,EAAQ,EAAM,CAE/D,OADAD,GAAgB1a,EAAOua,EAAO/Q,EAAQhB,CAAI,EACnCoS,GAAuB5a,CAAK,CACrC,CACA,SAAS6a,GAA+B,EAAO,EAAM,CAEnD,OADAH,GAAgB1a,EAAO,KAAM,KAAMwI,CAAI,EAChCoS,GAAuB5a,CAAK,CACrC,CACA,SAASya,GAA8B,EAAa,EAAQ,EAAM,CAChE,EAAY,OAASjS,EACrB,IAAIhI,EAAYsa,EAAY,UACnBta,IAAT,OAAuB,EAAU,OAASgI,GAC1C,IAAK,IAAIuS,EAAW,CAAC,EAAGnnB,EAASknB,EAAY,OAAiBlnB,IAAT,MACnD,EAAQ,YAAc4U,EACnB,EAAY5U,EAAO,UACX4M,IAAT,OAAuB,EAAU,YAAcgI,GACxC5U,EAAO,MAAd,KACI,EAAcA,EAAO,UACdknB,IAAT,MAAwBA,EAAY,YAAc,IAAM,EAAW,CAAC,IACrE,EAAclnB,EACd,EAASA,EAAO,OACrB,OAAaknB,EAAY,MAAlB,GACD,EAASA,EAAY,UACvBC,GACWvR,IAAT,OACE,EAAW,GAAKxC,GAAMwB,CAAI,EAC3B,EAAc5U,EAAO,cACrB,EAAYknB,EAAYC,GAChBva,IAAT,KACK,EAAYua,GAAY,CAACvR,CAAM,EAChChJ,EAAU,KAAKgJ,CAAM,EACxB,EAAO,KAAOhB,EAAO,WACxB5U,GACA,IACN,CACA,SAASgnB,GAAuB,EAAa,CAC3C,GAAI,GAAKI,GACP,KACI,IAAoB,EACrB,GAAwB,KACzB,MAAM3c,EAAuB,GAAG,CAAC,EAErC,IAAK,IAAIzK,EAASknB,EAAY,OAAiBlnB,IAAT,MACpC,EAAeA,EAAU,EAASknB,EAAY,OAChD,OAAaA,EAAY,MAAlB,EAAwBA,EAAY,UAAY,IACzD,CACA,IAAIG,GAAqB,CAAC,EAC1B,SAASC,GAAU,EAAK,EAAc,EAAK,EAAM,CAC/C,KAAK,IAAMpa,EACX,KAAK,IAAM/G,EACX,KAAK,QACH,KAAK,MACL,KAAK,OACL,KAAK,UACL,KAAK,KACL,KAAK,YACH,KACJ,KAAK,MAAQ,EACb,KAAK,WAAa,KAAK,IAAM,KAC7B,KAAK,aAAeohB,EACpB,KAAK,aACH,KAAK,cACL,KAAK,YACL,KAAK,cACH,KACJ,KAAK,KAAOC,EACZ,KAAK,aAAe,KAAK,MAAQ,EACjC,KAAK,UAAY,KACjB,KAAK,WAAa,KAAK,MAAQ,EAC/B,KAAK,UAAY,IACnB,CACA,SAASC,GAAqB,EAAK,EAAc,EAAK,EAAM,CAC1D,OAAO,IAAIH,GAAUpa,EAAKqa,EAAcphB,EAAKqhB,CAAI,CACnD,CACA,SAASE,GAAgB,EAAW,CAElC,MADA,GAAY5iB,EAAU,UACf,EAAE,CAACA,GAAa,CAACA,EAAU,iBACpC,CACA,SAAS6iB,GAAqB,EAAS,EAAc,CACnD,IAAIzV,EAAiB0V,EAAQ,UAkC7B,OAjCS1V,IAAT,MACM,EAAiBuV,GACjBG,EAAQ,IACRL,EACAK,EAAQ,IACRA,EAAQ,IACV,EACC,EAAe,YAAcA,EAAQ,YACrC,EAAe,KAAOA,EAAQ,KAC9B,EAAe,UAAYA,EAAQ,UACnC,EAAe,UAAYA,EAC3B,EAAQ,UAAY1V,IACnB,EAAe,aAAeqV,EAC/B,EAAe,KAAOK,EAAQ,KAC9B,EAAe,MAAQ,EACvB,EAAe,aAAe,EAC9B,EAAe,UAAY,MAChC,EAAe,MAAQA,EAAQ,MAAQ,WACvC,EAAe,WAAaA,EAAQ,WACpC,EAAe,MAAQA,EAAQ,MAC/B,EAAe,MAAQA,EAAQ,MAC/B,EAAe,cAAgBA,EAAQ,cACvC,EAAe,cAAgBA,EAAQ,cACvC,EAAe,YAAcA,EAAQ,YACrC,EAAeA,EAAQ,aACvB,EAAe,aACJL,IAAT,KACI,KACA,CAAE,MAAOA,EAAa,MAAO,aAAcA,EAAa,YAAa,EAC3E,EAAe,QAAUK,EAAQ,QACjC,EAAe,MAAQA,EAAQ,MAC/B,EAAe,IAAMA,EAAQ,IAC7B,EAAe,WAAaA,EAAQ,WAC7B1V,CACT,CACA,SAAS2V,GAAoB,EAAgB,EAAa,CACxD,EAAe,OAAS,WACxB,IAAID,EAAU1V,EAAe,UA4B7B,OA3BS0V,IAAT,MACM,EAAe,WAAa,EAC7B,EAAe,MAAQpT,EACvB,EAAe,MAAQ,KACvB,EAAe,aAAe,EAC9B,EAAe,cAAgB,KAC/B,EAAe,cAAgB,KAC/B,EAAe,YAAc,KAC7B,EAAe,aAAe,KAC9B,EAAe,UAAY,OAC1B,EAAe,WAAaoT,EAAQ,WACrC,EAAe,MAAQA,EAAQ,MAC/B,EAAe,MAAQA,EAAQ,MAC/B,EAAe,aAAe,EAC9B,EAAe,UAAY,KAC3B,EAAe,cAAgBA,EAAQ,cACvC,EAAe,cAAgBA,EAAQ,cACvC,EAAe,YAAcA,EAAQ,YACrC,EAAe,KAAOA,EAAQ,KAC9B,EAAcA,EAAQ,aACtB,EAAe,aACLpT,IAAT,KACI,KACA,CACE,MAAOA,EAAY,MACnB,aAAcA,EAAY,YAC5B,GACHtC,CACT,CACA,SAAS4V,GACP,EACA,EACA,EACA,EACA,EACA,EACA,CACA,IAAIC,EAAW,EAEf,GADA,EAAQlhB,EACW,OAAOmhB,GAAtB,WAA6BN,GAAgBM,CAAK,IAAM,EAAW,QAClE,GAAiB,OAAOA,GAApB,SACP,EAAWC,GACTphB,EACA0gB,EACA9X,GAAmB,OACrB,EACI,GACW5I,IAAX,QAA8BA,IAAX,QAA8BA,IAAX,OACpC,GACA,OAEN,EAAG,OAAQmhB,EAAR,CACD,KAAK1jB,GACH,MACG,GAAOmjB,GAAqB,GAAIF,EAAcphB,EAAKqhB,CAAI,EACvD,EAAK,YAAcljB,GACnB,EAAK,MAAQuP,EACdhN,EAEJ,KAAKhD,GACH,OAAOqkB,GAAwBX,EAAa,SAAUC,EAAM3T,EAAO1N,CAAG,EACxE,KAAKrC,GACH,EAAW,EACX,GAAQ,GACR,MACF,KAAKC,GACH,MACG,GAAO0jB,GAAqB,GAAIF,EAAcphB,EAAKqhB,EAAO,CAAC,EAC3D,EAAK,YAAczjB,GACnB,EAAK,MAAQ8P,EACdhN,EAEJ,KAAK1C,GACH,MACG,GAAOsjB,GAAqB,GAAIF,EAAcphB,EAAKqhB,CAAI,EACvD,EAAK,YAAcrjB,GACnB,EAAK,MAAQ0P,EACdhN,EAEJ,KAAKiI,GACH,MACG,GAAO2Y,GAAqB,GAAIF,EAAcphB,EAAKqhB,CAAI,EACvD,EAAK,YAAc1Y,GACnB,EAAK,MAAQ+E,EACdhN,EAEJ,KAAKkI,GACL,KAAKxK,GACH,MACG,GAAOijB,EAAO,GACd,EAAOC,GAAqB,GAAIF,EAAcphB,EAAKU,CAAI,EACvD,EAAK,YAActC,GACnB,EAAK,MAAQsP,EACb,EAAK,UAAY,CAChB,SAAU,KACV,OAAQ,KACR,OAAQ,KACR,IAAK,IACP,EACAhN,EAEJ,QACE,GAAiB,OAAOmhB,GAApB,UAAsCA,EACxC,OAAQA,EAAM,SAAd,CACE,KAAK/jB,GACH,EAAW,GACX,MAAM,EACR,KAAKD,GACH,EAAW,EACX,MAAM,EACR,KAAKE,EACH,EAAW,GACX,MAAM,EACR,KAAKE,GACH,EAAW,GACX,MAAM,EACR,KAAKC,GACH,EAAW,GACX,EAAQ,KACR,MAAM,CACV,CACF,EAAW,GACX,EAAe,MACboG,EAAuB,IAAc5D,IAAT,KAAgB,OAAS,OAAOA,EAAM,EAAE,CACtE,EACA,EAAQ,IACZ,CAKF,MAJA,GAAM4gB,GAAqBM,EAAUR,EAAcphB,EAAKqhB,CAAI,EAC5D,EAAI,YAAc3gB,EAClB,EAAI,KAAOmhB,EACX,EAAI,MAAQnU,EACL1N,CACT,CACA,SAAS+hB,GAAwB,EAAU,EAAM,EAAO,EAAK,CAG3D,MAFA,GAAWT,GAAqB,EAAGU,EAAUhiB,EAAKqhB,CAAI,EACtD,EAAS,MAAQ3T,EACVsU,CACT,CACA,SAASC,GAAoB,EAAS,EAAM,EAAO,CAGjD,MAFA,GAAUX,GAAqB,EAAGY,EAAS,KAAMb,CAAI,EACrD,EAAQ,MAAQ3T,EACTwU,CACT,CACA,SAASC,GAAkC,EAAgB,CACzD,IAAIlc,EAAQqb,GAAqB,GAAI,KAAM,KAAM,CAAC,EAElD,MADA,GAAM,UAAYc,EACXnc,CACT,CACA,SAASoc,GAAsB,EAAQ,EAAM,EAAO,CAalD,MAZA,GAAOf,GACL,EACSgB,EAAO,WAAhB,KAA6C,CAAC,EAAnBA,EAAO,SAClCA,EAAO,IACPjB,CACF,EACA,EAAK,MAAQ3T,EACb,EAAK,UAAY,CACf,cAAe4U,EAAO,cACtB,gBAAiB,KACjB,eAAgBA,EAAO,cACzB,EACOjB,CACT,CACA,IAAIkB,GAAiB,IAAI,QACzB,SAASC,GAA2B,EAAO,EAAQ,CACjD,GAAiB,OAAOhf,GAApB,UAAsCA,EAAO,CAC/C,IAAIif,EAAWF,GAAe,IAAI/e,CAAK,EAQvC,OAPeif,IAAX,IAAK,IACT,EAAS,CACA,QACC,SACR,MAAO7W,GAA4B8W,CAAM,CAC3C,EACAH,GAAe,IAAI/e,EAAOkf,CAAM,EACzBA,GAPyBD,CAQlC,CACA,MAAO,CACE,QACC,SACR,MAAO7W,GAA4B8W,CAAM,CAC3C,CACF,CACA,IAAIC,GAAY,CAAC,EACfC,GAAiB,EACjBC,GAAmB,KACnBC,GAAgB,EAChBC,GAAU,CAAC,EACXC,GAAe,EACfC,GAAsB,KACtBC,GAAgB,EAChBC,GAAsB,GACxB,SAASC,GAAa,EAAgB,EAAe,CACnD,GAAU,MAAoBN,GAC9B,GAAU,MAAoBD,GAC9B,GAAmB9W,EACnB,GAAgBsX,CAClB,CACA,SAASC,GAAW,EAAgB,EAAe,EAAO,CACxD,GAAQ,MAAkBJ,GAC1B,GAAQ,MAAkBC,GAC1B,GAAQ,MAAkBF,GAC1B,GAAsBlX,EACtB,IAAIwX,EAAuBL,GAC3B,EAAiBC,GACjB,IAAIK,EAAa,GAAKvW,GAAMsW,CAAoB,EAAI,EACpD,GAAwB,EAAE,GAAKC,GAC/B,GAAS,EACT,IAAIrpB,EAAS,GAAK8S,GAAMoW,CAAa,EAAIG,EACzC,GAAI,GAAKrpB,EAAQ,CACf,IAAIspB,EAAuBD,EAAcA,EAAa,EACtD,GACED,GACE,GAAKE,GAAwB,EAAA,CAC/B,SAAS,EAAE,EACb,IAAyBA,EACzB,GAAcA,EACd,GACG,GAAM,GAAKxW,GAAMoW,CAAa,EAAIG,EAClC/pB,GAAS+pB,EACVD,EACF,GAAsBppB,EAAS4R,CACjC,KACE,IACG,GAAK5R,EAAWV,GAAS+pB,EAAcD,EACvC,GAAsBxX,CAC7B,CACA,SAAS2X,GAAuB,EAAgB,CACrC3X,EAAe,SAAxB,OACGqX,GAAarX,EAAgB,CAAC,EAAGuX,GAAWvX,EAAgB,EAAG,CAAC,EACrE,CACA,SAAS4X,GAAe,EAAgB,CACtC,KAAO5X,IAAmB8W,IACxB,GAAoBF,GAAU,EAAEC,IAC7B,GAAUA,IAAkB,KAC5B,GAAgBD,GAAU,EAAEC,IAC5B,GAAUA,IAAkB,KACjC,KAAO7W,IAAmBkX,IACxB,GAAuBF,GAAQ,EAAEC,IAC9B,GAAQA,IAAgB,KACxB,GAAsBD,GAAQ,EAAEC,IAChC,GAAQA,IAAgB,KACxB,GAAgBD,GAAQ,EAAEC,IAC1B,GAAQA,IAAgB,IAC/B,CACA,SAASY,GAA4B,EAAgB,EAAkB,CACrE,GAAQ,MAAkBV,GAC1B,GAAQ,MAAkBC,GAC1B,GAAQ,MAAkBF,GAC1B,GAAgBY,EAAiB,GACjC,GAAsBA,EAAiB,SACvC,GAAsB9X,CACxB,CACA,IAAI+X,GAAuB,KACzBC,EAAyB,KACzBlP,EAAc,CAAC,EACfmP,GAAkB,KAClBC,GAAyB,CAAC,EAC1BC,GAA6B,MAAM5f,EAAuB,GAAG,CAAC,EAChE,SAAS6f,GAAyB,EAAO,CAWvC,MADAC,GAAoB5B,GATR,MACVle,EACE,IACA,EAAI,UAAU,QAAqB,UAAU,KAArB,IAAK,IAAsB,UAAU,GACzD,OACA,OACJ,EACF,CAEiD,EAAG2B,CAAK,CAAC,EACtDie,EACR,CACA,SAASG,GAA6B,EAAO,CAC3C,IAAI7E,EAAWvZ,EAAM,UACnBvF,EAAOuF,EAAM,KACbrH,EAAQqH,EAAM,cAGhB,OAFA,EAAS8K,IAAuB9K,EAChC,EAAS+K,IAAoBpS,EACrB8B,EAAR,CACE,IAAK,SACH4jB,EAA0B,SAAU9E,CAAQ,EAC5C8E,EAA0B,QAAS9E,CAAQ,EAC3C,MACF,IAAK,SACL,IAAK,SACL,IAAK,QACH8E,EAA0B,OAAQ9E,CAAQ,EAC1C,MACF,IAAK,QACL,IAAK,QACH,IAAK,EAAO,EAAG9e,EAAO6jB,GAAgB,OAAQ,IAC5CD,EAA0BC,GAAgB7jB,GAAO8e,CAAQ,EAC3D,MACF,IAAK,SACH8E,EAA0B,QAAS9E,CAAQ,EAC3C,MACF,IAAK,MACL,IAAK,QACL,IAAK,OACH8E,EAA0B,QAAS9E,CAAQ,EAC3C8E,EAA0B,OAAQ9E,CAAQ,EAC1C,MACF,IAAK,UACH8E,EAA0B,SAAU9E,CAAQ,EAC5C,MACF,IAAK,QACH8E,EAA0B,UAAW9E,CAAQ,EAC7C5K,GACE4K,EACA5gB,EAAM,MACNA,EAAM,aACNA,EAAM,QACNA,EAAM,eACNA,EAAM,KACNA,EAAM,KACN,CAAC,CACH,EACA,MACF,IAAK,SACH0lB,EAA0B,UAAW9E,CAAQ,EAC7C,MACF,IAAK,WACH8E,EAA0B,UAAW9E,CAAQ,EAC3CrK,GAAaqK,EAAU5gB,EAAM,MAAOA,EAAM,aAAcA,EAAM,QAAQ,CAC5E,CACA,EAAOA,EAAM,SACC,OAAO8B,GAArB,UACe,OAAOA,GAApB,UACa,OAAOA,GAApB,UACF8e,EAAS,cAAgB,GAAK9e,GAC9B,CAAC,IAAM9B,EAAM,0BACb4lB,GAAsBhF,EAAS,YAAa9e,CAAI,GACnC9B,EAAM,SAAd,OACE0lB,EAA0B,eAAgB9E,CAAQ,EACnD8E,EAA0B,SAAU9E,CAAQ,GACtC5gB,EAAM,UAAd,MAA0B0lB,EAA0B,SAAU9E,CAAQ,EAC9D5gB,EAAM,aAAd,MACE0lB,EAA0B,YAAa9E,CAAQ,EACzC5gB,EAAM,SAAd,OAA0B,EAAS,QAAU0X,IAC5C,EAAW,CAAC,GACZ,EAAW,CAAC,EACjBkJ,GAAY2E,GAAyBle,EAAO,CAAC,CAAC,CAChD,CACA,SAASwe,GAAoB,EAAO,CAClC,IAAK,GAAuBxe,EAAM,OAAQ6d,IACxC,OAAQA,GAAqB,IAA7B,CACE,IAAK,GACL,IAAK,IACL,IAAK,IACH,GAAyB,CAAC,EAC1B,OACF,IAAK,IACL,IAAK,GACH,GAAyB,CAAC,EAC1B,OACF,QACE,GAAuBA,GAAqB,MAChD,CACJ,CACA,SAASY,GAAkB,EAAO,CAChC,GAAIze,IAAU6d,GAAsB,MAAO,CAAC,EAC5C,GAAI,CAACjP,EAAa,OAAO4P,GAAoBxe,CAAK,EAAI,EAAc,CAAC,EAAI,CAAC,EAC1E,IAAIc,EAAMd,EAAM,IACd0e,EAWF,IAVK,EAAwB5d,IAAN,GAAoBA,IAAP,OAC7B,EAAwBA,IAAN,KACrB,EAAmBd,EAAM,KACtB,EACc0e,IAAX,QAA2CA,IAAb,UAChCC,GAAqB3e,EAAM,KAAMA,EAAM,aAAa,GAC1D,EAAkB,CAAC0e,GAErBA,GAAmBZ,GAA0BI,GAAyBle,CAAK,EAC3Ewe,GAAoBxe,CAAK,EACdc,IAAP,GAAY,CAGd,GAFA,EAAQd,EAAM,cACd,EAAiBA,IAAT,KAAoC,KAAnBA,EAAM,WAC3B,CAACA,EAAO,MAAM,MAAM3B,EAAuB,GAAG,CAAC,EACnD,EACEugB,GAAgD5e,CAAK,CACzD,MAAO,GAAWc,IAAP,GAAY,CAGrB,GAFA,EAAQd,EAAM,cACd,EAAiBA,IAAT,KAAoC,KAAnBA,EAAM,WAC3B,CAACA,EAAO,MAAM,MAAM3B,EAAuB,GAAG,CAAC,EACnD,EACEugB,GAAgD5e,CAAK,CACzD,MACSc,IAAP,IACM,EAAMgd,EACRe,GAAiB7e,EAAM,IAAI,GACrB,EAAQ8e,GACT,GAA8C,KAC9C,EAAyB9e,GACzB,EAAyBc,GAC7B,EAAyB+c,GACtBkB,GAAkB/e,EAAM,UAAU,WAAW,EAC7C,KACV,MAAO,CAAC,CACV,CACA,SAASgf,IAAsB,CAC7B,EAAyB,GAAuB,KAChD,EAAc,CAAC,CACjB,CACA,SAASC,IAAsC,CAC7C,IAAIC,EAAenB,GASnB,OARSmB,IAAT,OACYC,KAAT,KACI,GAAsCD,EACvCC,GAAoC,KAAK,MACvCA,GACAD,CACF,EACH,GAAkB,MACdA,CACT,CACA,SAASf,GAAoB,EAAO,CACzBJ,KAAT,KACK,GAAkB,CAACxjB,CAAK,EACzBwjB,GAAgB,KAAKxjB,CAAK,CAChC,CACA,IAAI6kB,GAAcjc,GAAa,IAAI,EACjCkc,GAA4B,KAC5BC,GAAwB,KAC1B,SAASC,GAAa,EAAe,EAAS,EAAW,CACvDhsB,EAAK6rB,GAAaxmB,EAAQ,aAAa,EACvC,EAAQ,cAAgB4mB,CAC1B,CACA,SAASC,GAAY,EAAS,CAC5B,EAAQ,cAAgBL,GAAY,QACpCrrB,GAAIqrB,EAAW,CACjB,CACA,SAASM,GAAgC,EAAQ,EAAa,EAAiB,CAC7E,KAAgB9rB,IAAT,MAAmB,CACxB,IAAI4M,EAAY5M,EAAO,UAOvB,IANCA,EAAO,WAAawU,KAAiBA,EAGzB5H,IAAT,OACCA,EAAU,WAAa4H,KAAiBA,IACxC,EAAU,YAAcA,IAJvB,EAAO,YAAcA,EACd5H,IAAT,OAAuB,EAAU,YAAc4H,IAI/CxU,IAAW+rB,EAAiB,MAChC,EAAS/rB,EAAO,MAClB,CACF,CACA,SAASgsB,GACP,EACA,EACA,EACA,EACA,CACA,IAAI5f,EAAQ8F,EAAe,MAE3B,IADS9F,IAAT,OAAmB,EAAM,OAAS8F,GAClB9F,IAAT,MAAkB,CACvB,IAAI6f,EAAO7f,EAAM,aACjB,GAAa6f,IAAT,KAAe,CACjB,IAAIC,EAAY9f,EAAM,MACtB,EAAO6f,EAAK,aACZ,EAAG,KAAgBA,IAAT,MAAiB,CACzB,IAAIE,EAAaF,EACjB,EAAO7f,EACP,IAAK,IAAI/E,EAAI,EAAGA,EAAI+kB,EAAS,OAAQ,IACnC,GAAID,EAAW,UAAYC,EAAS/kB,GAAI,CACtC,EAAK,OAASmN,EACd,EAAayX,EAAK,UACTE,IAAT,OAAwB,EAAW,OAAS3X,GAC5CsX,GACEG,EAAK,OACLzX,EACAtC,CACF,EACAma,IAA6B,EAAY,MACzC,MAAM,CACR,CACF,EAAOF,EAAW,IACpB,CACF,MAAO,GAAW/f,EAAM,MAAb,GAAkB,CAE3B,GADA,EAAYA,EAAM,OACL8f,IAAT,KAAoB,MAAM,MAAMzhB,EAAuB,GAAG,CAAC,EAC/D,EAAU,OAAS+J,EACnB,EAAO0X,EAAU,UACRD,IAAT,OAAkB,EAAK,OAASzX,GAChCsX,GAAgCI,EAAW1X,EAAatC,CAAc,EACtE,EAAY,IACd,MACS9F,EAAM,MAAb,IACSA,EAAM,gBAAf,MACSA,EAAM,cAAc,aAA7B,MACM,EAAM,OAASoI,EAChB,EAAYpI,EAAM,UACV8f,IAAT,OAAuB,EAAU,OAAS1X,GAC1CsX,GACE1f,EAAM,OACNoI,EACAtC,CACF,EACC,EAAY9F,EAAM,MAClB,EAAqB8f,IAAT,KAAyC,KAApBA,EAAU,SAC3C,EAAY9f,EAAM,MACzB,GAAa8f,IAAT,KAAoB,EAAU,OAAS9f,OAEzC,IAAK,EAAYA,EAAgB8f,IAAT,MAAsB,CAC5C,GAAIA,IAAcha,EAAgB,CAChC,EAAY,KACZ,KACF,CAEA,GADA,EAAQga,EAAU,QACL9f,IAAT,KAAgB,CAClB,EAAM,OAAS8f,EAAU,OACzB,EAAY9f,EACZ,KACF,CACA,EAAY8f,EAAU,MACxB,CACF,EAAQA,CACV,CACF,CACA,SAASI,GACP,EACA,EACA,EACA,EACA,CACA,EAAU,KACV,IACE,IAAItsB,EAASkS,EAAgBqa,EAA6B,CAAC,EAClDvsB,IAAT,MAEA,CACA,GAAI,CAACusB,EACH,CAAI,GAAOvsB,EAAO,MAAQ,OAAS,EAA6B,CAAC,OAC5D,GAAWA,EAAO,MAAQ,OAAS,KAAK,CAC/C,GAAWA,EAAO,MAAd,GAAmB,CACrB,IAAIwsB,EAAgBxsB,EAAO,UAC3B,GAAawsB,IAAT,KAAwB,MAAM,MAAM/hB,EAAuB,GAAG,CAAC,EAEnE,GADA,EAAgB+hB,EAAc,cACjBA,IAAT,KAAwB,CAC1B,IAAIxnB,EAAUhF,EAAO,KACrB8iB,GAAS9iB,EAAO,aAAa,MAAOwsB,EAAc,KAAK,IAC3C5E,IAAT,KAA4C,EAAU,CAAC5iB,CAAO,EAA3C4iB,EAAQ,KAAK5iB,CAAO,EAC5C,CACF,MAAO,GAAIhF,IAAW4P,GAA6B,QAAS,CAE1D,GADA,EAAgB5P,EAAO,UACVwsB,IAAT,KAAwB,MAAM,MAAM/hB,EAAuB,GAAG,CAAC,EACnE+hB,EAAc,cAAc,gBAC1BxsB,EAAO,cAAc,gBACX4nB,IAAT,KAEI,EAAU,CAAC6E,EAAqB,EADjC7E,EAAQ,KAAK6E,EAAqB,EAE1C,CACA,EAASzsB,EAAO,MAClB,CASA,OARS4nB,IAAT,MACEoE,GACE9Z,EACA0V,EACApT,EACA6X,CACF,EACF,EAAe,OAAS,OACRzE,IAAT,IACT,CACA,SAAS8E,GAAsB,EAAqB,CAClD,IACE,EAAsBC,EAAoB,aACjCA,IAAT,MAEA,CACA,GACE,CAAC7J,GACC6J,EAAoB,QAAQ,cAC5BA,EAAoB,aACtB,EAEA,MAAO,CAAC,EACV,EAAsBA,EAAoB,IAC5C,CACA,MAAO,CAAC,CACV,CACA,SAASC,GAAqB,EAAgB,CAC5C,GAA4B1a,EAC5B,GAAwB,KACxB,EAAiBA,EAAe,aACvBA,IAAT,OAA4B,EAAe,aAAe,KAC5D,CACA,SAAS2a,GAAY,EAAS,CAC5B,OAAOC,GAAuBrB,GAA2BzmB,CAAO,CAClE,CACA,SAAS+nB,GAAgC,EAAU,EAAS,CAE1D,OADStB,KAAT,MAAsCmB,GAAqBI,CAAQ,EAC5DF,GAAuBE,EAAUhoB,CAAO,CACjD,CACA,SAAS8nB,GAAuB,EAAU,EAAS,CACjD,IAAInjB,EAAQ3E,EAAQ,cAEpB,GADA,EAAU,CAAW,UAAS,cAAe2E,EAAO,KAAM,IAAK,EAClD+hB,KAAT,KAAgC,CAClC,GAAasB,IAAT,KAAmB,MAAM,MAAMviB,EAAuB,GAAG,CAAC,EAC9D,GAAwBzF,EACxB,EAAS,aAAe,CAAE,MAAO,EAAG,aAAcA,CAAQ,EAC1D,EAAS,OAAS,MACpB,KAAO,IAAwB,GAAsB,KAAOA,EAC5D,OAAO2E,CACT,CACA,IAAIsjB,GACgB,OAAO,gBAAvB,IACI,gBACA,UAAY,CACV,IAAIC,EAAY,CAAC,EACfC,EAAU,KAAK,OAAS,CACtB,QAAS,CAAC,EACV,iBAAkB,SAAU,EAAM,EAAU,CAC1CD,EAAU,KAAKE,CAAQ,CACzB,CACF,EACF,KAAK,MAAQ,UAAY,CACvB,EAAO,QAAU,CAAC,EAClBF,EAAU,QAAQ,SAAU,EAAU,CACpC,OAAOE,EAAS,CAClB,CAAC,CACH,CACF,EACNC,GAAqBrhB,EAAU,0BAC/BshB,GAAiBthB,EAAU,wBAC3BuhB,GAAe,CACb,SAAUtpB,GACV,SAAU,KACV,SAAU,KACV,cAAe,KACf,eAAgB,KAChB,aAAc,CAChB,EACF,SAASupB,IAAc,CACrB,MAAO,CACL,WAAY,IAAIP,GAChB,KAAM,IAAI,IACV,SAAU,CACZ,CACF,CACA,SAASQ,GAAa,EAAO,CAC3B,EAAM,WACAC,EAAM,WAAZ,GACEL,GAAmBC,GAAgB,UAAY,CAC7CI,EAAM,WAAW,MAAM,CACzB,CAAC,CACL,CACA,SAASC,GAAqB,EAAM,EAAiB,CACnD,GAAW3Z,EAAK,aAAe,QAAU,CACvC,IAAI4Z,EAAS5Z,EAAK,gBAElB,IADS4Z,IAAT,OAAoB,EAAS,EAAK,gBAAkB,CAAC,GAChD,EAAO,EAAG5Z,EAAOvL,EAAgB,OAAQ,IAAQ,CACpD,IAAIolB,EAAiBplB,EAAgBuL,GAC9B4Z,EAAO,QAAQC,CAAc,IAApC,IAAyCD,EAAO,KAAKC,CAAc,CACrE,CACF,CACF,CACA,IAAIC,GAA2B,KAC/B,SAASC,GAA2B,EAAM,CACxC,IAAIC,EAAUha,EAAK,gBAEnB,MADA,GAAK,gBAAkB,KAChBga,CACT,CACA,IAAIC,GAA4B,KAC9BC,GAA+B,EAC/BC,GAAuB,EACvBC,GAAiC,KACnC,SAASC,GAAoB,EAAY,EAAU,CACjD,GAAaJ,KAAT,KAAoC,CACtC,IAAIK,EAAsB,GAA4B,CAAC,EACvD,GAA+B,EAC/B,GAAuBC,GAAsB,EAC7C,GAAiC,CAC/B,OAAQ,UACR,MAAO,IAAK,GACZ,KAAM,SAAU,EAAS,CACvBD,EAAmB,KAAKE,CAAO,CACjC,CACF,CACF,CAGA,MAFA,MACA/nB,EAAS,KAAKgoB,GAA2BA,EAAyB,EAC3DhoB,CACT,CACA,SAASgoB,IAA4B,CACnC,GACQ,EAAEP,KAAR,IACE,GAA2B,KAAgBD,KAAT,MACpC,CACSG,KAAT,OACG,GAA+B,OAAS,aAC3C,IAAIlB,EAAYe,GAChB,GAA4B,KAC5B,GAAuB,EACvB,GAAiC,KACjC,IAAK,IAAI5mB,EAAI,EAAGA,EAAI6lB,EAAU,OAAQ,KAAM,EAAGA,EAAU7lB,GAAA,CAAI,CAC/D,CACF,CACA,SAASqnB,GAAmB,EAAU,EAAQ,CAC5C,IAAIxB,EAAY,CAAC,EACfyB,EAAuB,CACrB,OAAQ,UACR,MAAO,KACP,OAAQ,KACR,KAAM,SAAU,EAAS,CACvBzB,EAAU,KAAKsB,CAAO,CACxB,CACF,EAcF,OAbA/nB,EAAS,KACP,UAAY,CACV,EAAqB,OAAS,YAC9B,EAAqB,MAAQc,EAC7B,IAAK,IAAIF,EAAI,EAAGA,EAAI6lB,EAAU,OAAQ,KAAM,EAAGA,EAAU7lB,GAAA,CAAIE,CAAM,CACrE,EACA,SAAU,EAAO,CAGf,IAFA,EAAqB,OAAS,WAC9B,EAAqB,OAASZ,EACzB,EAAQ,EAAGA,EAAQumB,EAAU,OAAQ,KACvC,EAAGA,EAAUvmB,GAAA,CAAQ,IAAK,EAAC,CAChC,CACF,EACOgoB,CACT,CACA,IAAIC,GAA8BppB,EAAqB,EACvD,EAAqB,EAAI,SAAU,EAAY,EAAa,CAM1D,GALA,GAAiC+M,GAAI,EACxB,OAAOnK,GAApB,UACWA,GACM,OAAOA,EAAY,MAAlC,YACAimB,GAAoB7lB,EAAYJ,CAAW,EAChC0lB,KAAT,KACF,IAAK,IAAIe,EAAUC,GAA6BD,IAAT,MACrClB,GAAqBkB,EAASf,EAAwB,EACnD,EAAUe,EAAQ,KAEzB,GADA,EAAUrmB,EAAW,MACRqmB,IAAT,KAAkB,CACpB,IAAK,IAAIE,EAAUD,GAA6BC,IAAT,MACrCpB,GAAqBoB,EAASF,CAAO,EAAI,EAAUE,EAAQ,KAC7D,GAAUZ,KAAN,EAA4B,CAC9B,EAAUL,GACDiB,IAAT,OAAqB,EAAU,GAA2B,CAAC,GAC3D,IAAK,IAAI,EAAI,EAAG,EAAIF,EAAQ,OAAQ,IAAK,CACvC,IAAIhB,EAAiBgB,EAAQ,GACtBE,EAAQ,QAAQlB,CAAc,IAArC,IAA0CkB,EAAQ,KAAKlB,CAAc,CACvE,CACF,CACF,CACSe,KAAT,MACEA,GAA4BpmB,EAAYJ,CAAW,CACvD,EACA,IAAI4mB,GAAezf,GAAa,IAAI,EACpC,SAAS0f,IAAoB,CAC3B,IAAIC,EAAiCF,GAAa,QAClD,OAAgBE,IAAT,KAEHC,EAAmB,YADnBD,CAEN,CACA,SAASE,GAAe,EAAyB,EAAe,CACrDC,IAAT,KACI1vB,EAAKqvB,GAAcA,GAAa,OAAO,EACvCrvB,EAAKqvB,GAAcK,EAAc,IAAI,CAC3C,CACA,SAASC,IAAoB,CAC3B,IAAIC,EAAgBN,GAAkB,EACtC,OAAgBM,IAAT,KACH,KACA,CAAE,OAAQhC,GAAa,cAAe,KAAMgC,CAAc,CAChE,CACA,IAAIC,GAAoB,MAAM/kB,EAAuB,GAAG,CAAC,EACvDglB,GAA2B,MAAMhlB,EAAuB,GAAG,CAAC,EAC5DilB,GAA0B,MAAMjlB,EAAuB,GAAG,CAAC,EAC3DklB,GAA8B,CAAE,KAAM,UAAY,CAAC,CAAE,EACvD,SAASC,GAAmB,EAAU,CAEpC,MADA,GAAWnpB,EAAS,OACGA,IAAhB,aAA2CA,IAAf,UACrC,CACA,SAASopB,GAAkB,EAAe,EAAU,EAAO,CAKzD,OAJA,EAAQC,EAAclwB,GACXA,IAAX,IAAK,GACDkwB,EAAc,KAAKrpB,CAAQ,EAC3B7G,IAAU6G,IAAaA,EAAS,KAAKgW,GAAQA,EAAM,EAAI,EAAW7c,GAC9D6G,EAAS,OAAjB,CACE,IAAK,YACH,OAAOA,EAAS,MAClB,IAAK,WAKH,KAJA,GAAgBA,EAAS,OACzBspB,GAA8BD,CAAa,EAC5BA,IAAX,IAAK,IAAuB,EAAE,WAAYrpB,GACtC,MAAMgE,EAAuB,GAAG,CAAC,EACnCqlB,EACR,QACE,GAAiB,OAAOrpB,EAAS,QAA7B,SAAqCA,EAAS,KAAKgW,GAAQA,EAAM,MAChE,CAEH,GADA,EAAgB0S,EACHW,IAAT,MAA0B,IAAMA,EAAc,oBAChD,MAAM,MAAMrlB,EAAuB,GAAG,CAAC,EACzC,EAAgBhE,EAChB,EAAc,OAAS,UACvBqpB,EAAc,KACZ,SAAU,EAAgB,CACxB,GAAkBrpB,EAAS,SAAvB,UAA+B,CACjC,IAAIupB,EAAoBvpB,EACxB,EAAkB,OAAS,YAC3B,EAAkB,MAAQC,CAC5B,CACF,EACA,SAAU,EAAO,CACf,GAAkBD,EAAS,SAAvB,UAA+B,CACjC,IAAIwpB,EAAmBxpB,EACvB,EAAiB,OAAS,WAC1B,EAAiB,OAASE,CAC5B,CACF,CACF,CACF,CACA,OAAQF,EAAS,OAAjB,CACE,IAAK,YACH,OAAOA,EAAS,MAClB,IAAK,WACH,KACI,GAAgBA,EAAS,OAC3BspB,GAA8BD,CAAa,EAC3CA,CAEN,CAEA,KADA,IAAoBrpB,EACd+oB,EACV,CACF,CACA,SAASU,GAAY,EAAU,CAC7B,GAAI,CACF,IAAIhmB,EAAOimB,EAAS,MACpB,OAAOjmB,EAAKimB,EAAS,QAAQ,CAC/B,OAAS1f,EAAG,CAGV,MAF+B,OAAOA,GAApB,UAALA,GAA6C,OAAOA,EAAE,MAAxB,YACjC,GAAoBA,EAAI+e,IAC5B/e,CACR,CACF,CACA,IAAI2f,GAAoB,KACxB,SAASC,IAAuB,CAC9B,GAAaD,KAAT,KAA4B,MAAM,MAAM3lB,EAAuB,GAAG,CAAC,EACvE,IAAIhE,EAAW2pB,GAEf,MADA,IAAoB,KACb3pB,CACT,CACA,SAASspB,GAA8B,EAAgB,CACrD,GACEO,IAAmBd,IACnBc,IAAmBZ,GAEnB,MAAM,MAAMjlB,EAAuB,GAAG,CAAC,CAC3C,CACA,IAAI8lB,GAAkB,KACpBC,GAAyB,EAC3B,SAASC,GAAe,EAAU,CAChC,IAAI7wB,EAAQ4wB,GAGZ,MAFA,KAA0B,EACjBD,KAAT,OAA6B,GAAkB,CAAC,GACzCV,GAAkBU,GAAiB9pB,EAAU7G,CAAK,CAC3D,CACA,SAAS8wB,GAAU,EAAgB,EAAS,CAC1C,EAAUnqB,EAAQ,MAAM,IACxB,EAAe,IAAiBA,IAAX,IAAK,GAA0B,KAAVA,CAC5C,CACA,SAASoqB,GAA6B,EAAa,EAAU,CAI3D,MAHIC,EAAS,WAAa/hB,GAClB,MAAMpE,EAAuB,GAAG,CAAC,GACzC,EAAc,OAAO,UAAU,SAAS,KAAKmmB,CAAQ,EAC/C,MACJnmB,EACE,GACsBomB,IAAtB,kBACI,qBAAuB,OAAO,KAAKD,CAAQ,CAAC,CAAC,KAAK,IAAI,EAAI,IAC1DC,CACN,CACF,EACF,CACA,SAASC,GAAsB,EAAwB,CACrD,SAASC,EAAY,EAAa,EAAe,CAC/C,GAAIC,EAAwB,CAC1B,IAAIC,EAAYJ,EAAY,UACnBI,IAAT,MACM,EAAY,UAAY,CAACC,CAAa,EAAK,EAAY,OAAS,IAClED,EAAU,KAAKC,CAAa,CAClC,CACF,CACA,SAASC,EAAwB,EAAa,EAAmB,CAC/D,GAAI,CAACH,EAAwB,OAAO,KACpC,KAAgBI,IAAT,MACLL,EAAYF,EAAaO,CAAiB,EACvC,EAAoBA,EAAkB,QAC3C,OAAO,IACT,CACA,SAASC,EAAqB,EAAmB,CAC/C,IAAK,IAAIC,EAAmB,IAAI,IAAgBF,IAAT,MAC5BA,EAAkB,MAA3B,KACIE,EAAiB,IAAIF,EAAkB,MAAOA,CAAiB,EAC/DE,EAAiB,IAAIF,EAAkB,IAAKA,CAAiB,EAC9D,EAAoBA,EAAkB,QAC3C,OAAOE,CACT,CACA,SAASC,EAAS,EAAO,EAAc,CAIrC,MAHA,GAAQ5J,GAAqBvb,EAAOmb,CAAY,EAChD,EAAM,MAAQ,EACd,EAAM,QAAU,KACTnb,CACT,CACA,SAASolB,EAAW,EAAU,EAAiB,EAAU,CAavD,MAZA,GAAS,MAAQC,EACZT,GAEL,EAAWU,EAAS,UACPD,IAAT,MAOJ,EAAS,OAAS,UACXE,IANF,EAAWF,EAAS,MACrBA,EAAWE,GACL,EAAS,OAAS,EAAIA,GACxBF,KAPE,EAAS,OAAS,QAAUE,EAWxC,CACA,SAASC,EAAiB,EAAU,CAIlC,OAHAZ,GACWU,EAAS,YAAlB,OACC,EAAS,OAAS,WACdA,CACT,CACA,SAASG,EAAe,EAAa,EAAS,EAAa,EAAO,CAShE,OARajK,IAAT,MAA0BA,EAAQ,MAAd,GAEnB,EAAUQ,GAAoB0J,EAAajB,EAAY,KAAMhd,CAAK,EAClE,EAAQ,OAASgd,EAClBjJ,IAEJ,EAAU2J,EAAS3J,EAASkK,CAAW,EACvC,EAAQ,OAASjB,EACVjJ,EACT,CACA,SAASmK,EAAc,EAAa,EAAS,EAAS,EAAO,CAC3D,IAAIC,EAAczrB,EAAQ,KAqC1B,OApCIyrB,IAAgBnuB,IAEf,EAAcouB,EACbpB,EACAjJ,EACArhB,EAAQ,MAAM,SACdsN,EACAtN,EAAQ,GACV,EACAmqB,GAAUG,EAAatqB,CAAO,EAC9BsqB,GAGOjJ,IAAT,OACCA,EAAQ,cAAgBoK,GACT,OAAOA,GAApB,UACUA,GACTA,EAAY,WAAa3tB,IACzB6rB,GAAY8B,CAAW,IAAMpK,EAAQ,OAGtC,EAAU2J,EAAS3J,EAASrhB,EAAQ,KAAK,EAC1CmqB,GAAU9I,EAASrhB,CAAO,EACzB,EAAQ,OAASsqB,EAClBjJ,IAEJ,EAAUE,GACRvhB,EAAQ,KACRA,EAAQ,IACRA,EAAQ,MACR,KACAsqB,EAAY,KACZhd,CACF,EACA6c,GAAU9I,EAASrhB,CAAO,EAC1B,EAAQ,OAASsqB,EACVjJ,EACT,CACA,SAASsK,EAAa,EAAa,EAAS,EAAQ,EAAO,CAczD,OAZWtK,IAAT,MACMA,EAAQ,MAAd,GACAA,EAAQ,UAAU,gBAAkBa,EAAO,eAC3Cb,EAAQ,UAAU,iBAAmBa,EAAO,gBAGzC,EAAUD,GAAsBC,EAAQoI,EAAY,KAAMhd,CAAK,EAC/D,EAAQ,OAASgd,EAClBjJ,IAEJ,EAAU2J,EAAS3J,EAASa,EAAO,UAAY,CAAC,CAAC,EACjD,EAAQ,OAASoI,EACVjJ,EACT,CACA,SAASqK,EAAe,EAAa,EAAS,EAAU,EAAO,EAAK,CAclE,OAbarK,IAAT,MAA0BA,EAAQ,MAAd,GAEnB,EAAUM,GACTiK,EACAtB,EAAY,KACZhd,EACA1N,CACF,EACC,EAAQ,OAAS0qB,EAClBjJ,IAEJ,EAAU2J,EAAS3J,EAASuK,CAAQ,EACpC,EAAQ,OAAStB,EACVjJ,EACT,CACA,SAASwK,EAAY,EAAa,EAAU,EAAO,CACjD,GACgB,OAAOxB,GAApB,UAAuCA,IAAP,IACpB,OAAOA,GAApB,UACa,OAAOA,GAApB,SAEA,MACG,GAAWxI,GACV,GAAKwI,EACLC,EAAY,KACZhd,CACF,EACC,EAAS,OAASgd,EACnBD,EAEJ,GAAiB,OAAOA,GAApB,UAAyCA,EAAU,CACrD,OAAQA,EAAS,SAAjB,CACE,KAAKjtB,GACH,MACG,GAAQmkB,GACP8I,EAAS,KACTA,EAAS,IACTA,EAAS,MACT,KACAC,EAAY,KACZhd,CACF,EACA6c,GAAU7c,EAAO+c,CAAQ,EACxB,EAAM,OAASC,EAChBhd,EAEJ,KAAKjQ,GACH,MACG,GAAW4kB,GACVoI,EACAC,EAAY,KACZhd,CACF,EACC,EAAS,OAASgd,EACnBD,EAEJ,KAAKvsB,GACH,MACG,GAAW6rB,GAAYU,CAAQ,EAChCwB,EAAYvB,EAAaD,EAAU/c,CAAK,CAE9C,CACA,GAAIvO,GAAYsrB,CAAQ,GAAKnsB,GAAcmsB,CAAQ,EACjD,MACG,GAAW1I,GACV0I,EACAC,EAAY,KACZhd,EACA,IACF,EACC,EAAS,OAASgd,EACnBD,EAEJ,GAAmB,OAAOA,EAAS,MAA/B,WACF,OAAOwB,EAAYvB,EAAaJ,GAAeG,CAAQ,EAAG/c,CAAK,EACjE,GAAI+c,EAAS,WAAa3sB,GACxB,OAAOmuB,EACLvB,EACA9D,GAAgC8D,EAAaD,CAAQ,EACrD/c,CACF,EACF8c,GAA6BE,EAAaD,CAAQ,CACpD,CACA,OAAO,IACT,CACA,SAASyB,EAAW,EAAa,EAAU,EAAU,EAAO,CAC1D,IAAIlsB,EAAemsB,IAAT,KAAmC,KAAfA,EAAS,IACvC,GACgB,OAAO1B,GAApB,UAAuCA,IAAP,IACpB,OAAOA,GAApB,UACa,OAAOA,GAApB,SAEA,OAAgBzqB,IAAT,KAEH0rB,EAAehB,EAAayB,EAAU,GAAK1B,EAAU/c,CAAK,EAD1D,KAEN,GAAiB,OAAO+c,GAApB,UAAyCA,EAAU,CACrD,OAAQA,EAAS,SAAjB,CACE,KAAKjtB,GACH,OAAOitB,EAAS,MAAQzqB,EACpB4rB,EAAclB,EAAayB,EAAU1B,EAAU/c,CAAK,EACpD,KACN,KAAKjQ,GACH,OAAOgtB,EAAS,MAAQzqB,EACpB+rB,EAAarB,EAAayB,EAAU1B,EAAU/c,CAAK,EACnD,KACN,KAAKxP,GACH,MACG,GAAW6rB,GAAYU,CAAQ,EAChCyB,EAAWxB,EAAayB,EAAU1B,EAAU/c,CAAK,CAEvD,CACA,GAAIvO,GAAYsrB,CAAQ,GAAKnsB,GAAcmsB,CAAQ,EACjD,OAAgBzqB,IAAT,KAEH8rB,EAAepB,EAAayB,EAAU1B,EAAU/c,EAAO,IAAI,EAD3D,KAEN,GAAmB,OAAO+c,EAAS,MAA/B,WACF,OAAOyB,EACLxB,EACAyB,EACA7B,GAAeG,CAAQ,EACvB/c,CACF,EACF,GAAI+c,EAAS,WAAa3sB,GACxB,OAAOouB,EACLxB,EACAyB,EACAvF,GAAgC8D,EAAaD,CAAQ,EACrD/c,CACF,EACF8c,GAA6BE,EAAaD,CAAQ,CACpD,CACA,OAAO,IACT,CACA,SAAS2B,EACP,EACA,EACA,EACA,EACA,EACA,CACA,GACgB,OAAO3B,GAApB,UAAuCA,IAAP,IACpB,OAAOA,GAApB,UACa,OAAOA,GAApB,SAEA,MACG,GAAmBU,EAAiB,IAAIkB,CAAM,GAAK,KACpDX,EAAehB,EAAaS,EAAkB,GAAKV,EAAU/c,CAAK,EAEtE,GAAiB,OAAO+c,GAApB,UAAyCA,EAAU,CACrD,OAAQA,EAAS,SAAjB,CACE,KAAKjtB,GACH,MACG,GACC2tB,EAAiB,IACNV,EAAS,MAAlB,KAAwB4B,EAAS5B,EAAS,GAC5C,GAAK,KACPmB,EAAclB,EAAaS,EAAkBV,EAAU/c,CAAK,EAEhE,KAAKjQ,GACH,MACG,GACC0tB,EAAiB,IACNV,EAAS,MAAlB,KAAwB4B,EAAS5B,EAAS,GAC5C,GAAK,KACPsB,EAAarB,EAAaS,EAAkBV,EAAU/c,CAAK,EAE/D,KAAKxP,GACH,MACG,GAAW6rB,GAAYU,CAAQ,EAChC2B,EACEjB,EACAT,EACA2B,EACA5B,EACA/c,CACF,CAEN,CACA,GAAIvO,GAAYsrB,CAAQ,GAAKnsB,GAAcmsB,CAAQ,EACjD,MACG,GAAmBU,EAAiB,IAAIkB,CAAM,GAAK,KACpDP,EAAepB,EAAaS,EAAkBV,EAAU/c,EAAO,IAAI,EAEvE,GAAmB,OAAO+c,EAAS,MAA/B,WACF,OAAO2B,EACLjB,EACAT,EACA2B,EACA/B,GAAeG,CAAQ,EACvB/c,CACF,EACF,GAAI+c,EAAS,WAAa3sB,GACxB,OAAOsuB,EACLjB,EACAT,EACA2B,EACAzF,GAAgC8D,EAAaD,CAAQ,EACrD/c,CACF,EACF8c,GAA6BE,EAAaD,CAAQ,CACpD,CACA,OAAO,IACT,CACA,SAAS6B,EACP,EACA,EACA,EACA,EACA,CACA,IACE,IAAIC,EAAsB,KACxBC,EAAmB,KACnBL,EAAWlB,EACXoB,EAAU,EAAoB,EAC9BI,EAAe,KACRN,IAAT,MAAqBE,EAASK,EAAY,OAC1C,IACA,CACAP,EAAS,MAAQE,GACX,EAAeF,EAAY,EAAW,MACvC,EAAeA,EAAS,QAC7B,IAAIZ,EAAWW,EACbxB,EACAyB,EACAO,EAAYL,GACZ3e,CACF,EACA,GAAa6d,IAAT,KAAmB,CACZY,IAAT,OAAsB,EAAWM,GACjC,KACF,CACA5B,GACEsB,GACSZ,EAAS,YAAlB,MACAX,EAAYF,EAAayB,CAAQ,EACnC,EAAoBd,EAAWE,EAAUN,EAAmBoB,CAAM,EACzDG,IAAT,KACK,EAAsBjB,EACtB,EAAiB,QAAUA,EAChC,EAAmBA,EACnB,EAAWkB,CACb,CACA,GAAIJ,IAAWK,EAAY,OACzB,OACE1B,EAAwBN,EAAayB,CAAQ,EAC7CtX,GAAeuO,GAAasH,EAAa2B,CAAM,EAC/CE,EAEJ,GAAaJ,IAAT,KAAmB,CACrB,KAAOE,EAASK,EAAY,OAAQ,IAClC,EAAYT,EAAYvB,EAAagC,EAAYL,GAAS3e,CAAK,EACpDye,IAAT,OACI,EAAoBd,EACpBc,EACAlB,EACAoB,CACF,EACSG,IAAT,KACK,EAAsBL,EACtB,EAAiB,QAAUA,EAC/B,EAAmBA,GAE1B,OADAtX,GAAeuO,GAAasH,EAAa2B,CAAM,EACxCE,CACT,CACA,IACE,EAAWrB,EAAqBiB,CAAQ,EACxCE,EAASK,EAAY,OACrB,IAEA,EAAgBN,EACdD,EACAzB,EACA2B,EACAK,EAAYL,GACZ3e,CACF,EACW+e,IAAT,OACG5B,IACG,EAAW4B,EAAa,UACjBlB,IAAT,MACEY,EAAS,OAAgBZ,EAAS,MAAlB,KAAwBc,EAASd,EAAS,GAAG,GAChE,EAAoBF,EACnBoB,EACAxB,EACAoB,CACF,EACSG,IAAT,KACK,EAAsBC,EACtB,EAAiB,QAAUA,EAC/B,EAAmBA,GAM1B,OALA5B,GACEsB,EAAS,QAAQ,SAAU,EAAO,CAChC,OAAOvB,EAAYF,EAAanpB,CAAK,CACvC,CAAC,EACHsT,GAAeuO,GAAasH,EAAa2B,CAAM,EACxCE,CACT,CACA,SAASI,EACP,EACA,EACA,EACA,EACA,CACA,GAAYD,GAAR,KAAqB,MAAM,MAAMpoB,EAAuB,GAAG,CAAC,EAChE,IACE,IAAIioB,EAAsB,KACxBC,EAAmB,KACnBL,EAAWlB,EACXoB,EAAU,EAAoB,EAC9BI,EAAe,KACfG,EAAOF,EAAY,KAAK,EACjBP,IAAT,MAAqB,CAACS,EAAK,KAC3B,IAAU,EAAOF,EAAY,KAAK,EAClC,CACAP,EAAS,MAAQE,GACX,EAAeF,EAAY,EAAW,MACvC,EAAeA,EAAS,QAC7B,IAAIZ,EAAWW,EAAWxB,EAAayB,EAAUS,EAAK,MAAOlf,CAAK,EAClE,GAAa6d,IAAT,KAAmB,CACZY,IAAT,OAAsB,EAAWM,GACjC,KACF,CACA5B,GACEsB,GACSZ,EAAS,YAAlB,MACAX,EAAYF,EAAayB,CAAQ,EACnC,EAAoBd,EAAWE,EAAUN,EAAmBoB,CAAM,EACzDG,IAAT,KACK,EAAsBjB,EACtB,EAAiB,QAAUA,EAChC,EAAmBA,EACnB,EAAWkB,CACb,CACA,GAAIG,EAAK,KACP,OACE5B,EAAwBN,EAAayB,CAAQ,EAC7CtX,GAAeuO,GAAasH,EAAa2B,CAAM,EAC/CE,EAEJ,GAAaJ,IAAT,KAAmB,CACrB,KAAO,CAACS,EAAK,KAAM,IAAU,EAAOF,EAAY,KAAK,EACnD,EAAQT,EAAYvB,EAAakC,EAAK,MAAOlf,CAAK,EACvCkf,IAAT,OACI,EAAoBvB,EAAWuB,EAAM3B,EAAmBoB,CAAM,EACvDG,IAAT,KACK,EAAsBI,EACtB,EAAiB,QAAUA,EAC/B,EAAmBA,GAE1B,OADA/X,GAAeuO,GAAasH,EAAa2B,CAAM,EACxCE,CACT,CACA,IACE,EAAWrB,EAAqBiB,CAAQ,EACxC,CAACS,EAAK,KACN,IAAU,EAAOF,EAAY,KAAK,EAElC,EAAQN,EAAcD,EAAUzB,EAAa2B,EAAQO,EAAK,MAAOlf,CAAK,EAC3Dkf,IAAT,OACG/B,IACG,EAAe+B,EAAK,UACbH,IAAT,MACEN,EAAS,OACEM,EAAa,MAAtB,KAA4BJ,EAASI,EAAa,GACpD,GACH,EAAoBpB,EAAWuB,EAAM3B,EAAmBoB,CAAM,EACtDG,IAAT,KACK,EAAsBI,EACtB,EAAiB,QAAUA,EAC/B,EAAmBA,GAM1B,OALA/B,GACEsB,EAAS,QAAQ,SAAU,EAAO,CAChC,OAAOvB,EAAYF,EAAanpB,CAAK,CACvC,CAAC,EACHsT,GAAeuO,GAAasH,EAAa2B,CAAM,EACxCE,CACT,CACA,SAASM,EACP,EACA,EACA,EACA,EACA,CAOA,GANa,OAAOpC,GAApB,UACWA,GACTA,EAAS,OAAS/sB,IACT+sB,EAAS,MAAlB,MACWA,EAAS,MAAM,MAA1B,IAAK,KACJ,EAAWA,EAAS,MAAM,UACZ,OAAOA,GAApB,UAAyCA,EAAU,CACrD,OAAQA,EAAS,SAAjB,CACE,KAAKjtB,GACH,EAAG,CACD,IAAK,IAAIwC,EAAMyqB,EAAS,IAAcQ,IAAT,MAA8B,CACzD,GAAIA,EAAkB,MAAQjrB,EAAK,CAEjC,GADA,EAAMyqB,EAAS,KACXzqB,IAAQtC,GACN,IAAMutB,EAAkB,MAAxB,EAA6B,CAC/BD,EACEN,EACAO,EAAkB,OACpB,EACA,EAAQG,EACNH,EACAR,EAAS,MAAM,QACjB,EACAF,GAAU7c,EAAO+c,CAAQ,EACzB,EAAM,OAASC,EACf,EAAchd,EACd,MAAM,CACR,OACK,GACLud,EAAkB,cAAgBjrB,GACpB,OAAOA,GAApB,UACUA,GACTA,EAAI,WAAa9B,IACjB6rB,GAAY/pB,CAAG,IAAMirB,EAAkB,KACzC,CACAD,EACEN,EACAO,EAAkB,OACpB,EACA,EAAQG,EAASH,EAAmBR,EAAS,KAAK,EAClDF,GAAU7c,EAAO+c,CAAQ,EACzB,EAAM,OAASC,EACf,EAAchd,EACd,MAAM,CACR,CACAsd,EAAwBN,EAAaO,CAAiB,EACtD,KACF,CAAOL,EAAYF,EAAaO,CAAiB,EACjD,EAAoBA,EAAkB,OACxC,CACAR,EAAS,OAAS/sB,IACZ,EAAQqkB,GACR0I,EAAS,MAAM,SACfC,EAAY,KACZhd,EACA+c,EAAS,GACX,EACAF,GAAU7c,EAAO+c,CAAQ,EACxB,EAAM,OAASC,EACf,EAAchd,IACb,EAAQiU,GACR8I,EAAS,KACTA,EAAS,IACTA,EAAS,MACT,KACAC,EAAY,KACZhd,CACF,EACA6c,GAAU7c,EAAO+c,CAAQ,EACxB,EAAM,OAASC,EACf,EAAchd,EACrB,CACA,OAAO+d,EAAiBf,CAAW,EACrC,KAAKjtB,GACH,EAAG,CACD,IAAK,EAAMgtB,EAAS,IAAcQ,IAAT,MAA8B,CACrD,GAAIA,EAAkB,MAAQjrB,EAC5B,IACQirB,EAAkB,MAAxB,GACAA,EAAkB,UAAU,gBAC1BR,EAAS,eACXQ,EAAkB,UAAU,iBAC1BR,EAAS,eACX,CACAO,EACEN,EACAO,EAAkB,OACpB,EACA,EAAQG,EAASH,EAAmBR,EAAS,UAAY,CAAC,CAAC,EAC3D,EAAM,OAASC,EACf,EAAchd,EACd,MAAM,CACR,CACEsd,EAAwBN,EAAaO,CAAiB,EACtD,KACF,CACGL,EAAYF,EAAaO,CAAiB,EAC/C,EAAoBA,EAAkB,OACxC,CACA,EAAQ5I,GAAsBoI,EAAUC,EAAY,KAAMhd,CAAK,EAC/D,EAAM,OAASgd,EACf,EAAchd,CAChB,CACA,OAAO+d,EAAiBf,CAAW,EACrC,KAAKxsB,GACH,MACG,GAAW6rB,GAAYU,CAAQ,EAChCoC,EACEnC,EACAO,EACAR,EACA/c,CACF,CAEN,CACA,GAAIvO,GAAYsrB,CAAQ,EACtB,OAAO6B,EACL5B,EACAO,EACAR,EACA/c,CACF,EACF,GAAIpP,GAAcmsB,CAAQ,EAAG,CAE3B,GADA,EAAMnsB,GAAcmsB,CAAQ,EACT,OAAOzqB,GAAtB,WAA2B,MAAM,MAAMsE,EAAuB,GAAG,CAAC,EAEtE,MADA,GAAWtE,EAAI,KAAKyqB,CAAQ,EACrBkC,EACLjC,EACAO,EACAR,EACA/c,CACF,CACF,CACA,GAAmB,OAAO+c,EAAS,MAA/B,WACF,OAAOoC,EACLnC,EACAO,EACAX,GAAeG,CAAQ,EACvB/c,CACF,EACF,GAAI+c,EAAS,WAAa3sB,GACxB,OAAO+uB,EACLnC,EACAO,EACArE,GAAgC8D,EAAaD,CAAQ,EACrD/c,CACF,EACF8c,GAA6BE,EAAaD,CAAQ,CACpD,CACA,OAAqB,OAAOA,GAApB,UAAuCA,IAAP,IACzB,OAAOA,GAApB,UACa,OAAOA,GAApB,UACI,EAAW,GAAKA,EACTQ,IAAT,MAAoCA,EAAkB,MAAxB,GACzBD,EAAwBN,EAAaO,EAAkB,OAAO,EAC9D,EAAQG,EAASH,EAAmBR,CAAQ,EAC5C,EAAM,OAASC,EACf,EAAchd,IACdsd,EAAwBN,EAAaO,CAAiB,EACtD,EAAQhJ,GAAoBwI,EAAUC,EAAY,KAAMhd,CAAK,EAC7D,EAAM,OAASgd,EACf,EAAchd,GACnB+d,EAAiBf,CAAW,GAC5BM,EAAwBN,EAAaO,CAAiB,CAC5D,CACA,OAAO,SAAU,EAAa,EAAmB,EAAU,EAAO,CAChE,GAAI,CACF,GAAyB,EACzB,IAAI6B,EAAkBD,EACpBnC,EACAO,EACAR,EACA/c,CACF,EAEA,MADA,IAAkB,KACXof,CACT,OAASxiB,EAAG,CACV,GAAIA,IAAM+e,IAAqB/e,IAAMif,GAAyB,MAAMjf,EACpE,IAAIrE,EAAQqb,GAAqB,GAAIhX,EAAG,KAAMogB,EAAY,IAAI,EAG9D,MAFA,GAAM,MAAQhd,EACd,EAAM,OAASgd,EACRzkB,CACT,CAEF,CACF,CACA,IAAI8mB,GAAuBpC,GAAsB,CAAC,CAAC,EACjDqC,GAAmBrC,GAAsB,CAAC,CAAC,EAC3CsC,GAAiB,CAAC,EACpB,SAASC,GAAsB,EAAO,CACpC,EAAM,YAAc,CAClB,UAAWjnB,EAAM,cACjB,gBAAiB,KACjB,eAAgB,KAChB,OAAQ,CAAE,QAAS,KAAM,MAAO,EAAG,gBAAiB,IAAK,EACzD,UAAW,IACb,CACF,CACA,SAASknB,GAAiB,EAAS,EAAgB,CACjD,EAAU1L,EAAQ,YAClB1V,EAAe,cAAgB0V,IAC5B,EAAe,YAAc,CAC5B,UAAWA,EAAQ,UACnB,gBAAiBA,EAAQ,gBACzB,eAAgBA,EAAQ,eACxB,OAAQA,EAAQ,OAChB,UAAW,IACb,EACJ,CACA,SAAS2L,GAAa,EAAM,CAC1B,MAAO,CAAQ,OAAM,IAAK,EAAG,QAAS,KAAM,SAAU,KAAM,KAAM,IAAK,CACzE,CACA,SAASC,GAAc,EAAO,EAAQ,EAAM,CAC1C,IAAIC,EAAcrnB,EAAM,YACxB,GAAaqnB,IAAT,KAAsB,OAAO,KAEjC,GADA,EAAcA,EAAY,OACfC,EAAmB,EAAI,CAChC,IAAI9M,EAAU6M,EAAY,QAO1B,OANS7M,IAAT,KACK,EAAO,KAAOhR,GACb,EAAO,KAAOgR,EAAQ,KAAQ,EAAQ,KAAOhR,GACnD,EAAY,QAAUA,EACtB,EAASoR,GAAuB5a,CAAK,EACrCya,GAA8Bza,EAAO,KAAMwI,CAAI,EACxCgB,CACT,CAEA,OADAkR,GAAgB1a,EAAOqnB,EAAa7d,EAAQhB,CAAI,EACzCoS,GAAuB5a,CAAK,CACrC,CACA,SAASunB,GAAoB,EAAM,EAAO,EAAM,CAE9C,GADA,EAAQvnB,EAAM,YACDA,IAAT,OAAoB,EAAQA,EAAM,OAAgBwI,EAAO,SAAW,CACtE,IAAIgf,EAAaxnB,EAAM,MACvB,GAAc4H,EAAK,aACnB,GAAQ4f,EACR,EAAM,MAAQhf,EACdwB,GAAkBpC,EAAMY,CAAI,CAC9B,CACF,CACA,SAASif,GAAsB,EAAgB,EAAgB,CAC7D,IAAIlN,EAAQzU,EAAe,YACzB0V,EAAU1V,EAAe,UAC3B,GACW0V,IAAT,OACE,EAAUA,EAAQ,YAAcjB,IAAUiB,GAC5C,CACA,IAAIkM,EAAW,KACbC,EAAU,KAEZ,GADA,EAAQpN,EAAM,gBACDA,IAAT,KAAgB,CAClB,EAAG,CACD,IAAIqN,EAAQ,CACV,KAAMrN,EAAM,KACZ,IAAKA,EAAM,IACX,QAASA,EAAM,QACf,SAAU,KACV,KAAM,IACR,EACSoN,IAAT,KACK,EAAW,EAAUC,EACrB,EAAU,EAAQ,KAAOA,EAC9B,EAAQrN,EAAM,IAChB,OAAkBA,IAAT,MACAoN,IAAT,KACK,EAAW,EAAUE,EACrB,EAAU,EAAQ,KAAOA,CAChC,KAAO,GAAW,EAAUA,EAC5B,EAAQ,CACN,UAAWrM,EAAQ,UACnB,gBAAiBkM,EACjB,eAAgBC,EAChB,OAAQnM,EAAQ,OAChB,UAAWA,EAAQ,SACrB,EACA,EAAe,YAAcjB,CAE/B,KACA,GAAiBA,EAAM,eACdzU,IAAT,KACK,EAAM,gBAAkB+hB,EACxB,EAAe,KAAOA,EAC3B,EAAM,eAAiBA,CACzB,CACA,IAAIC,GAAkC,CAAC,EACvC,SAASC,IAA8C,CACrD,GAAID,GAAiC,CACnC,IAAIE,EAA0BhG,GAC9B,GAAagG,IAAT,KAAkC,MAAMA,CAC9C,CACF,CACA,SAASC,GACP,EACA,EACA,EACA,EACA,CACA,GAAkC,CAAC,EACnC,IAAI1N,EAAQ2N,EAAwB,YACpC,GAAiB,CAAC,EAClB,IAAIC,EAAkB5N,EAAM,gBAC1B6N,EAAiB7N,EAAM,eACvB8N,EAAe9N,EAAM,OAAO,QAC9B,GAAa8N,IAAT,KAAuB,CACzB,EAAM,OAAO,QAAU,KACvB,IAAIC,EAAoBD,EACtBE,EAAqBD,EAAkB,KACzC,EAAkB,KAAO,KAChBF,IAAT,KACK,EAAkBG,EAClB,EAAe,KAAOA,EAC3B,EAAiBD,EACjB,IAAI9M,EAAU0M,EAAwB,UAC7B1M,IAAT,OACI,EAAUA,EAAQ,YACnB,EAAeA,EAAQ,eACxB6M,IAAiBD,IACLC,IAAT,KACI,EAAQ,gBAAkBE,EAC1B,EAAa,KAAOA,EACxB,EAAQ,eAAiBD,GAChC,CACA,GAAaH,IAAT,KAA0B,CAC5B,IAAIK,EAAWjO,EAAM,UACrB,EAAiB,EACjB,EAAU,EAAqB,EAAoB,KACnD,EAAe4N,EACf,EAAG,CACD,IAAIpf,EAAasf,EAAa,KAAO,WACnCI,EAAiB1f,IAAesf,EAAa,KAC/C,GACEI,GACKC,EAAgC3f,KAAgBA,GAChDX,EAAcW,KAAgBA,EACnC,CACMA,IAAN,GACEA,IAAegZ,KACd,GAAkC,CAAC,GAC7BvG,IAAT,OACG,EAAU,EAAQ,KACjB,CACE,KAAM,EACN,IAAK6M,EAAa,IAClB,QAASA,EAAa,QACtB,SAAU,KACV,KAAM,IACR,GACJ,EAAG,CACD,IAAIviB,EAAiBoiB,EACnB1e,EAAS6e,EACX,EAAa1vB,EACb,IAAI4gB,EAAWoP,EACf,OAAQnf,EAAO,IAAf,CACE,IAAK,GAEH,GADA,EAAiBA,EAAO,QACL,OAAO1D,GAAtB,WAAsC,CACxC,EAAWA,EAAe,KAAKyT,EAAUiP,EAAUzf,CAAU,EAC7D,MAAM,CACR,CACA,EAAWjD,EACX,MAAM,EACR,IAAK,GACH,EAAe,MAASA,EAAe,MAAQ,OAAU,IAC3D,IAAK,GAMH,GALA,EAAiB0D,EAAO,QACxB,EACiB,OAAO1D,GAAtB,WACIA,EAAe,KAAKyT,EAAUiP,EAAUzf,CAAU,EAClDjD,EACOiD,GAAT,KAA8C,MAAM,EACxD,EAAWvQ,EAAO,CAAC,EAAGgwB,EAAUzf,CAAU,EAC1C,MAAM,EACR,IAAK,GACH,GAAiB,CAAC,CACtB,CACF,CACA,EAAasf,EAAa,SACjBtf,IAAT,OACI,EAAwB,OAAS,GACnC0f,IAAmB,EAAwB,OAAS,MACnD,EAAiBlO,EAAM,UACfkO,IAAT,KACK,EAAM,UAAY,CAAC1f,CAAU,EAC9B0f,EAAe,KAAK1f,CAAU,EACtC,KACE,GAAkB,CAChB,KAAMA,EACN,IAAKsf,EAAa,IAClB,QAASA,EAAa,QACtB,SAAUA,EAAa,SACvB,KAAM,IACR,EACW7M,IAAT,MACM,EAAqB,EAAUiN,EAChC,EAAoBD,GACpB,EAAU,EAAQ,KAAOC,EAC7B,GAAkB1f,EAEvB,GADA,EAAesf,EAAa,KACfA,IAAT,KACF,IAAM,EAAe9N,EAAM,OAAO,QAAmB8N,IAAT,KAC1C,MAEA,EAAkBA,EACf,EAAeI,EAAe,KAC9B,EAAe,KAAO,KACtB,EAAM,eAAiBA,EACvB,EAAM,OAAO,QAAU,IAAA,CAChC,OAAS,GACAjN,IAAT,OAAqB,EAAoBgN,GACzC,EAAM,UAAYF,EAClB,EAAM,gBAAkBC,EACxB,EAAM,eAAiB/M,EACd2M,IAAT,OAA6B,EAAM,OAAO,MAAQ,GAClD,IAAkCC,EAClC,EAAwB,MAAQA,EAChC,EAAwB,cAAgBI,CAC1C,CACF,CACA,SAASI,GAAa,EAAU,EAAS,CACvC,GAAmB,OAAOlyB,GAAtB,WACF,MAAM,MAAM2H,EAAuB,IAAK3H,CAAQ,CAAC,EACnDA,EAAS,KAAKkC,CAAO,CACvB,CACA,SAASiwB,GAAgB,EAAa,EAAS,CAC7C,IAAIC,EAAYzB,EAAY,UAC5B,GAAayB,IAAT,KACF,IACE,EAAY,UAAY,KAAM,EAAc,EAC5CzB,EAAcyB,EAAU,OACxB,IAEAF,GAAaE,EAAUzB,GAAczuB,CAAO,CAClD,CACA,IAAImwB,GAA+B5lB,GAAa,IAAI,EAClD6lB,GAAiC7lB,GAAa,CAAC,EACjD,SAAS8lB,GAAkB,EAAO,EAAS,CACzC,EAAQC,GACR31B,EAAKy1B,GAAgChpB,CAAK,EAC1CzM,EAAKw1B,GAA8BnwB,CAAO,EAC1C,GAAuBoH,EAAQpH,EAAQ,SACzC,CACA,SAASuwB,IAA4B,CACnC51B,EAAKy1B,GAAgCE,EAAoB,EACzD31B,EAAKw1B,GAA8BA,GAA6B,OAAO,CACzE,CACA,SAASK,IAAmB,CAC1B,GAAuBJ,GAA+B,QACtDj1B,GAAIg1B,EAA4B,EAChCh1B,GAAIi1B,EAA8B,CACpC,CACA,IAAIK,GAA6BlmB,GAAa,IAAI,EAChDmmB,GAAgB,KAClB,SAASC,GAA+B,EAAS,CAC/C,IAAI/N,EAAUgO,EAAQ,UACtBj2B,EAAKk2B,GAAqBA,GAAoB,QAAU,CAAC,EACzDl2B,EAAK81B,GAA4BG,CAAO,EAC/BF,KAAT,OACY9N,IAAT,MAA6BuN,GAA6B,UAAtC,MAERvN,EAAQ,gBAAjB,QAAmC,GAAgBgO,EAC3D,CACA,SAASE,GAAsC,EAAO,CACpDn2B,EAAKk2B,GAAqBA,GAAoB,OAAO,EACrDl2B,EAAK81B,GAA4BrpB,CAAK,EAC7BspB,KAAT,OAA2B,GAAgBtpB,EAC7C,CACA,SAAS2pB,GAA6B,EAAO,CACpC3pB,EAAM,MAAb,IACKzM,EAAKk2B,GAAqBA,GAAoB,OAAO,EACtDl2B,EAAK81B,GAA4BrpB,CAAK,EAC7BspB,KAAT,OAA2B,GAAgBtpB,IAC3C4pB,GAA4B,CAClC,CACA,SAASA,IAA8B,CACrCr2B,EAAKk2B,GAAqBA,GAAoB,OAAO,EACrDl2B,EAAK81B,GAA4BA,GAA2B,OAAO,CACrE,CACA,SAASQ,GAAmB,EAAO,CACjC91B,GAAIs1B,EAA0B,EAC9BC,KAAkBtpB,IAAU,GAAgB,MAC5CjM,GAAI01B,EAAmB,CACzB,CACA,IAAIA,GAAsBtmB,GAAa,CAAC,EACxC,SAAS2mB,GAAwB,EAAO,EAAY,CAClDv2B,EAAK81B,GAA4BA,GAA2B,OAAO,EACnE91B,EAAKk2B,GAAqBM,CAAU,CACtC,CACA,SAASC,GAAuB,EAAO,CACrCj2B,GAAI01B,EAAmB,EACvB11B,GAAIs1B,EAA0B,EAC9BC,KAAkBtpB,IAAU,GAAgB,KAC9C,CACA,SAASiqB,GAAmB,EAAK,CAC/B,IAAK,IAAIv2B,EAAOw2B,EAAcx2B,IAAT,MAAiB,CACpC,GAAWA,EAAK,MAAZ,GAAiB,CACnB,IAAI8N,EAAQ9N,EAAK,cACjB,GACW8N,IAAT,OACE,EAAQA,EAAM,WACPA,IAAT,MACE2oB,GAA0B3oB,CAAK,GAC/B4oB,GAA2B5oB,CAAK,GAElC,OAAO9N,CACX,MAAO,GACEA,EAAK,MAAZ,IACkBA,EAAK,cAAc,cAArC,cAEI,IAAOA,EAAK,MAAQ,IAAM,OAAOA,CAAA,MAChC,GAAaA,EAAK,QAAd,KAAqB,CAC9B,EAAK,MAAM,OAASA,EACpB,EAAOA,EAAK,MACZ,QACF,CACA,GAAIA,IAASw2B,EAAK,MAClB,KAAgBx2B,EAAK,UAAd,MAAyB,CAC9B,GAAaA,EAAK,SAAd,MAAwBA,EAAK,SAAWw2B,EAAK,OAAO,KACxD,EAAOx2B,EAAK,MACd,CACA,EAAK,QAAQ,OAASA,EAAK,OAC3B,EAAOA,EAAK,OACd,CACA,OAAO,IACT,CACA,IAAI0U,GAAc,EAChBiiB,EAA0B,KAC1BC,EAAc,KACdC,GAAqB,KACrBC,GAA+B,CAAC,EAChCC,GAA6C,CAAC,EAC9CC,GAAsC,CAAC,EACvCC,GAAiB,EACjBC,GAAuB,EACvBlH,GAAgB,KAChBmH,GAAwB,EAC1B,SAASC,GAAwB,CAC/B,MAAM,MAAMzsB,EAAuB,GAAG,CAAC,CACzC,CACA,SAAS0sB,GAAmB,EAAU,EAAU,CAC9C,GAAaC,IAAT,KAAmB,MAAO,CAAC,EAC/B,IAAK,IAAI/vB,EAAI,EAAGA,EAAI+vB,EAAS,QAAU/vB,EAAIgwB,EAAS,OAAQ,IAC1D,GAAI,CAACvU,GAASuU,EAAShwB,GAAI+vB,EAAS/vB,EAAE,EAAG,MAAO,CAAC,EACnD,MAAO,CAAC,CACV,CACA,SAASiwB,GACP,EACA,EACA,EACA,EACA,EACA,EACA,CAqBA,MApBA,IAAcC,EACd,EAA0BrlB,EAC1B,EAAe,cAAgB,KAC/B,EAAe,YAAc,KAC7B,EAAe,MAAQ,EACvB,EAAqB,EACV0V,IAAT,MAA6BA,EAAQ,gBAAjB,KAChB4P,GACAC,GACN,GAAsC,CAAC,EACvC,EAAkB3yB,EAAUC,EAAO2yB,CAAS,EAC5C,GAAsC,CAAC,EACvCb,KACG,EAAkBc,GACjBzlB,EACApN,EACAC,EACA2yB,CACF,GACFE,GAAqBhQ,CAAO,EACrB2P,CACT,CACA,SAASK,GAAqB,EAAS,CACrC,EAAqB,EAAIC,GACzB,IAAIC,EAAgCpB,IAAT,MAAiCA,EAAY,OAArB,KAMnD,GALA,GAAc,EACd,GAAqB,EAAc,EAA0B,KAC7D,GAA+B,CAAC,EAChC,GAAuB,EACvB,GAAgB,KACZoB,EAAsB,MAAM,MAAMrtB,EAAuB,GAAG,CAAC,EACxDmd,IAAT,MACEmQ,KACE,EAAUnQ,EAAQ,aACXA,IAAT,MACE8E,GAAsB9E,CAAO,IAC5B,GAAmB,CAAC,GAC3B,CACA,SAAS+P,GAAqB,EAAgB,EAAW,EAAO,EAAW,CACzE,EAA0BzlB,EAC1B,IAAI8lB,EAAoB,EACxB,EAAG,CAID,GAHAnB,KAA+C,GAAgB,MAC/D,GAAuB,EACvB,GAA6C,CAAC,EAC1C,IAAMmB,EAAmB,MAAM,MAAMvtB,EAAuB,GAAG,CAAC,EAGpE,GAFA,GAAqB,EACrB,GAAqB,EAAc,KACvByH,EAAe,aAAvB,KAAoC,CACtC,IAAIpL,EAAWoL,EAAe,YAC9B,EAAS,WAAa,KACtB,EAAS,OAAS,KAClB,EAAS,OAAS,KACVpL,EAAS,WAAjB,OAA+B,EAAS,UAAU,MAAQ,EAC5D,CACA,EAAqB,EAAImxB,GACzB,EAAWnzB,EAAUC,EAAO2yB,CAAS,CACvC,OAASb,IACT,OAAO/vB,CACT,CACA,SAASoxB,IAA+B,CACtC,IAAIC,EAAa3yB,EAAqB,EACpC4yB,EAAgBD,EAAW,SAAS,CAAC,CAAC,GAQxC,MAPA,GACiB,OAAOC,EAAc,MAApC,WACIC,GAAYD,CAAa,EACzBA,EACN,EAAaD,EAAW,SAAS,CAAC,CAAC,IACzBzB,IAAT,KAAmD,KAA5BA,EAAY,iBAA0ByB,IAC3D,EAAwB,OAAS,MAC7BC,CACT,CACA,SAASE,IAAuB,CAC9B,IAAIC,EAAwBxB,KAAN,EAEtB,MADA,IAAiB,EACVwB,CACT,CACA,SAASC,GAAa,EAAS,EAAgB,EAAO,CACpD,EAAe,YAAc5Q,EAAQ,YACrC,EAAe,OAAS,MACxB,EAAQ,OAAS,CAAC/T,CACpB,CACA,SAAS4kB,GAAmB,EAAgB,CAC1C,GAAI7B,GAA8B,CAChC,IACE,EAAiB1kB,EAAe,cACvBA,IAAT,MAEA,CACA,IAAIyU,EAAQzU,EAAe,MAClByU,IAAT,OAAmB,EAAM,QAAU,MACnC,EAAiBzU,EAAe,IAClC,CACA,GAA+B,CAAC,CAClC,CACA,GAAc,EACd,GAAqB,EAAc,EAA0B,KAC7D,GAA6C,CAAC,EAC9C,GAAuB,GAAiB,EACxC,GAAgB,IAClB,CACA,SAASwmB,IAA0B,CACjC,IAAIC,EAAO,CACT,cAAe,KACf,UAAW,KACX,UAAW,KACX,MAAO,KACP,KAAM,IACR,EAIA,OAHShC,KAAT,KACK,EAAwB,cAAgB,GAAqBgC,EAC7D,GAAqB,GAAmB,KAAOA,EAC7ChC,EACT,CACA,SAASiC,GAA2B,CAClC,GAAalC,IAAT,KAAsB,CACxB,IAAImC,EAAkBpC,EAAwB,UAC9C,EACWoC,IAAT,KAA2D,KAAhCA,EAAgB,aAC/C,KAAO,GAAkBnC,EAAY,KACrC,IAAIoC,EACOnC,KAAT,KACIF,EAAwB,cACxBE,GAAmB,KACzB,GAAamC,IAAT,KACF,GAAsBA,EACnB,EAAcD,MACd,CACH,GAAaA,IAAT,KAGF,MAFapC,EAAwB,YAAjC,KACI,MAAMhsB,EAAuB,GAAG,CAAC,EACnC,MAAMA,EAAuB,GAAG,CAAC,EAEzC,EAAcouB,EACd,EAAkB,CAChB,cAAenC,EAAY,cAC3B,UAAWA,EAAY,UACvB,UAAWA,EAAY,UACvB,MAAOA,EAAY,MACnB,KAAM,IACR,EACSC,KAAT,KACK,EAAwB,cAAgB,GACvCkC,EACD,GAAqB,GAAmB,KAAOA,CACtD,CACA,OAAOlC,EACT,CACA,SAASoC,IAAqC,CAC5C,MAAO,CAAE,WAAY,KAAM,OAAQ,KAAM,OAAQ,KAAM,UAAW,IAAK,CACzE,CACA,SAASV,GAAY,EAAU,CAC7B,IAAIz4B,EAAQo3B,GAcZ,MAbA,KAAwB,EACflH,KAAT,OAA2B,GAAgB,CAAC,GAC5C,EAAWD,GAAkBC,GAAerpB,EAAU7G,CAAK,EAC3D,EAAQ62B,GAEIE,KAAT,KACG/2B,EAAM,cACN+2B,GAAmB,QAHzB,OAII,EAAQ/2B,EAAM,UACf,EAAqB,EACXA,IAAT,MAA2BA,EAAM,gBAAf,KACd43B,GACAC,IACDhxB,CACT,CACA,SAASuyB,GAAI,EAAQ,CACnB,GAAoC,OAAO3vB,GAApB,UAAVA,EAAsC,CACjD,GAAmB,OAAOA,EAAO,MAA7B,WAAmC,OAAOgvB,GAAYhvB,CAAM,EAChE,GAAIA,EAAO,WAAawB,GAAwB,OAChD,GAAIxB,EAAO,WAAapF,GAAoB,OAAO4oB,GAAYxjB,CAAM,CACvE,CACA,MAAM,MAAMoB,EAAuB,IAAK,OAAOpB,CAAM,CAAC,CAAC,CACzD,CACA,SAAS4vB,GAAa,EAAM,CAC1B,IAAIC,EAAY,KACdzF,EAAcgD,EAAwB,YAExC,GADShD,IAAT,OAAyB,EAAYA,EAAY,WACrCyF,GAAR,KAAmB,CACrB,IAAItR,EAAU6O,EAAwB,UAC7B7O,IAAT,OACI,EAAUA,EAAQ,YACXA,IAAT,OACI,EAAUA,EAAQ,UACZA,GAAR,OACG,EAAY,CACX,KAAMA,EAAQ,KAAK,IAAI,SAAU,EAAO,CACtC,OAAO5gB,EAAM,MAAM,CACrB,CAAC,EACD,MAAO,CACT,IACR,CAOA,GANA,IAAkC,CAAE,KAAM,CAAC,EAAG,MAAO,CAAE,EAC9CysB,IAAT,OACI,EAAcsF,GAAmC,EAClD,EAAwB,YAActF,GACzC,EAAY,UAAYyF,EACxB,EAAcA,EAAU,KAAKA,EAAU,OACxBzF,IAAX,IAAK,GACP,IACE,EAAc,EAAU,KAAKyF,EAAU,OAAS,MAAMpwB,CAAI,EAAG,EAAU,EACvE8e,EAAU9e,EACV,IAEA,EAAY8e,GAAW5Y,GAE3B,MADA,GAAU,QACHykB,CACT,CACA,SAAS0F,GAAkB,EAAO,EAAQ,CACxC,OAAsB,OAAO7vB,GAAtB,WAA+BA,EAAOsE,CAAK,EAAItE,CACxD,CACA,SAAS8vB,GAAc,EAAS,CAE9B,OAAOC,GADIT,EACiB,EAAGlC,EAAa1sB,CAAO,CACrD,CACA,SAASqvB,GAAkB,EAAM,EAAS,EAAS,CACjD,IAAI1S,EAAQgS,EAAK,MACjB,GAAahS,IAAT,KAAgB,MAAM,MAAMlc,EAAuB,GAAG,CAAC,EAC3D,EAAM,oBAAsBT,EAC5B,IAAIsvB,EAAYX,EAAK,UACnBlE,EAAe9N,EAAM,QACvB,GAAa8N,IAAT,KAAuB,CACzB,GAAa6E,IAAT,KAAoB,CACtB,IAAIC,EAAYD,EAAU,KAC1B,EAAU,KAAO7E,EAAa,KAC9B,EAAa,KAAO8E,CACtB,CACA,EAAQ,UAAY,EAAY9E,EAChC,EAAM,QAAU,IAClB,CAEA,GADA,EAAekE,EAAK,UACPW,IAAT,KAAoB,EAAK,cAAgB7E,MACxC,CACH,EAAU6E,EAAU,KACpB,IAAIE,EAAqB,EAAY,KACnCC,EAAmB,KACnB7jB,EAASgS,EACT8R,EAAqC,CAAC,EACxC,EAAG,CACD,IAAIvkB,EAAaS,EAAO,KAAO,WAC/B,GACET,IAAeS,EAAO,MAEjBpB,GAAcW,KAAgBA,GAD9B2f,EAAgC3f,KAAgBA,EAErD,CACA,IAAIwkB,EAAa/jB,EAAO,WACxB,GAAU+jB,IAAN,EACOF,IAAT,OACG,EAAmB,EAAiB,KACnC,CACE,KAAM,EACN,WAAY,EACZ,QAAS,KACT,OAAQ7jB,EAAO,OACf,cAAeA,EAAO,cACtB,WAAYA,EAAO,WACnB,KAAM,IACR,GACFT,IAAegZ,KACZ,EAAqC,CAAC,QACxC,IAAK3Z,GAAcmlB,KAAgBA,EAAY,CAClD,EAAS/jB,EAAO,KAChB+jB,IAAexL,KACZ,EAAqC,CAAC,GACzC,QACF,KACE,GAAc,CACZ,KAAM,EACN,WAAYvY,EAAO,WACnB,QAAS,KACT,OAAQA,EAAO,OACf,cAAeA,EAAO,cACtB,WAAYA,EAAO,WACnB,KAAM,IACR,EACW6jB,IAAT,MACM,EAAoB,EAAmBtkB,EACxC,EAAYsf,GACZ,EAAmB,EAAiB,KAAOtf,EAC/C,EAAwB,OAASwkB,EACjC,IAAkCA,EACvC,EAAa/jB,EAAO,OACpBkhB,IACE9sB,EAAQyqB,EAActf,CAAU,EAClC,EAAeS,EAAO,cAClBA,EAAO,WACP5L,EAAQyqB,EAActf,CAAU,CACtC,KACE,GAAc,CACZ,KAAMA,EACN,WAAYS,EAAO,WACnB,QAASA,EAAO,QAChB,OAAQA,EAAO,OACf,cAAeA,EAAO,cACtB,WAAYA,EAAO,WACnB,KAAM,IACR,EACW6jB,IAAT,MACM,EAAoB,EAAmBE,EACxC,EAAYlF,GACZ,EAAmB,EAAiB,KAAOkF,EAC/C,EAAwB,OAASxkB,EACjC,IAAkCA,EACvC,EAASS,EAAO,IAClB,OAAkBA,IAAT,MAAmBA,IAAWgS,GAIvC,GAHS6R,IAAT,KACK,EAAYhF,EACZ,EAAiB,KAAO+E,EAE3B,CAAC1W,GAAS2R,EAAckE,EAAK,aAAa,IACxC,GAAmB,CAAC,EACtBe,IACI,EAAUtL,GAA0CpkB,IAAT,OAE/C,MAAMA,EACR,EAAK,cAAgByqB,EACrB,EAAK,UAAY8E,EACjB,EAAK,UAAYE,EACjB,EAAM,kBAAoBhF,CAC5B,CAEA,OADS6E,IAAT,OAAuB,EAAM,MAAQ,GAC9B,CAACX,EAAK,cAAehS,EAAM,QAAQ,CAC5C,CACA,SAASiT,GAAgB,EAAS,CAChC,IAAIjB,EAAOC,EAAyB,EAClCjS,EAAQgS,EAAK,MACf,GAAahS,IAAT,KAAgB,MAAM,MAAMlc,EAAuB,GAAG,CAAC,EAC3D,EAAM,oBAAsBT,EAC5B,IAAI6vB,EAAWlT,EAAM,SACnBmT,EAAwBnT,EAAM,QAC9BiO,EAAW+D,EAAK,cAClB,GAAamB,IAAT,KAAgC,CAClC,EAAM,QAAU,KAChB,IAAIlkB,EAAU,EAAwBkkB,EAAsB,KAC5D,EAAG,GAAY9vB,EAAQ4qB,EAAUhf,EAAO,MAAM,EAAK,EAASA,EAAO,WAC5DA,IAAWkkB,GAClBhX,GAAS8R,EAAU+D,EAAK,aAAa,IAAM,GAAmB,CAAC,GAC/D,EAAK,cAAgB/D,EACZ+D,EAAK,YAAd,OAA4B,EAAK,UAAY/D,GAC7C,EAAM,kBAAoBA,CAC5B,CACA,MAAO,CAACA,EAAUiF,CAAQ,CAC5B,CACA,SAASE,GAAwB,EAAW,EAAa,EAAmB,CAC1E,IAAI3tB,EAAQqqB,EACVkC,EAAOC,EAAyB,EAChCoB,EAAuBhf,EACzB,GAAIgf,EAAsB,CACxB,GAAe3vB,IAAX,IAAK,GAAyB,MAAM,MAAMI,EAAuB,GAAG,CAAC,EACzE,EAAoBJ,EAAkB,CACxC,KAAO,GAAoBD,EAAY,EACvC,IAAI6vB,EAAkB,CAACnX,IACpB4T,GAAeiC,EAAA,CAAM,cACtBtuB,CACF,EAkBA,GAjBA4vB,IACI,EAAK,cAAgB5vB,EAAqB,GAAmB,CAAC,GAClE,EAAOsuB,EAAK,MACZuB,GAAaC,GAAiB,KAAK,KAAM/tB,EAAOusB,EAAMxuB,CAAS,EAAG,CAChEA,CACF,CAAC,EACD,EACEwuB,EAAK,cAAgBvuB,GACrB6vB,GACUtD,KAAT,MACC,GAAOA,GAAmB,cAAc,IAAM,GAClDyD,GACEjwB,EAAY,EAAI,EAChB,CAAE,QAAS,IAAK,EAAE,EAClBkwB,GAAoB,KAAK,KAAMjuB,EAAOusB,EAAMtuB,EAAmBD,CAAW,EAC1E,IACF,EACID,EAAW,CAEb,GADA,EAAM,OAAS,KACFglB,IAAT,KAA6B,MAAM,MAAM1kB,EAAuB,GAAG,CAAC,EACxEuvB,GACSxlB,GAAc,KACrB8lB,GAA0BluB,EAAOhC,EAAaC,CAAiB,CACnE,CACA,OAAOA,CACT,CACA,SAASiwB,GAA0B,EAAO,EAAa,EAAkB,CACvE,EAAM,OAAS,MACf,EAAQ,CAAe,cAAa,MAAOC,CAAiB,EAC5D,EAAc9D,EAAwB,YAC7BrsB,IAAT,MACM,EAAc2uB,GAAmC,EAClD,EAAwB,YAAc3uB,EACtC,EAAY,OAAS,CAACgC,CAAK,IAC1B,EAAmBhC,EAAY,OACxBmwB,IAAT,KACK,EAAY,OAAS,CAACnuB,CAAK,EAC5BmuB,EAAiB,KAAKnuB,CAAK,EACrC,CACA,SAASiuB,GAAoB,EAAO,EAAM,EAAc,EAAa,CACnE,EAAK,MAAQG,EACb,EAAK,YAAcpwB,EACnBqwB,GAAuBpsB,CAAI,GAAKqsB,GAAmBtuB,CAAK,CAC1D,CACA,SAAS+tB,GAAiB,EAAO,EAAM,EAAW,CAChD,OAAOhwB,EAAU,UAAY,CAC3BswB,GAAuBpsB,CAAI,GAAKqsB,GAAmBtuB,CAAK,CAC1D,CAAC,CACH,CACA,SAASquB,GAAuB,EAAM,CACpC,IAAIE,EAAoBtsB,EAAK,YAC7B,EAAOA,EAAK,MACZ,GAAI,CACF,IAAIud,EAAY+O,EAAkB,EAClC,MAAO,CAAC7X,GAASzU,EAAMud,CAAS,CAClC,MAAgB,CACd,MAAO,CAAC,CACV,CACF,CACA,SAAS8O,GAAmB,EAAO,CACjC,IAAI1mB,EAAOiT,GAA+B7a,EAAO,CAAC,EACzC4H,IAAT,MAAiB4mB,GAAsB5mB,EAAM5H,EAAO,CAAC,CACvD,CACA,SAASyuB,GAAe,EAAc,CACpC,IAAIlC,EAAOD,GAAwB,EACnC,GAAmB,OAAOnvB,GAAtB,WAAoC,CACtC,IAAIuxB,EAA0BvxB,EAE9B,GADA,EAAeuxB,EAAwB,EACnChE,GAAqC,CACvC5jB,GAA2B,CAAC,CAAC,EAC7B,GAAI,CACF4nB,EAAwB,CAC1B,QAAU,CACR5nB,GAA2B,CAAC,CAAC,CAC/B,CACF,CACF,CASA,MARA,GAAK,cAAgB,EAAK,UAAY3J,EACtC,EAAK,MAAQ,CACX,QAAS,KACT,MAAO,EACP,SAAU,KACV,oBAAqB4vB,GACrB,kBAAmB5vB,CACrB,EACOovB,CACT,CACA,SAASoC,GAAqB,EAAM,EAAS,EAAa,EAAS,CAEjE,MADA,GAAK,UAAYhxB,EACVsvB,GACLV,EACAjC,EACe,OAAO1sB,GAAtB,WAAgCA,EAAUmvB,EAC5C,CACF,CACA,SAAS6B,GACP,EACA,EACA,EACA,EACA,EACA,CACA,GAAIC,GAAoB7uB,CAAK,EAAG,MAAM,MAAM3B,EAAuB,GAAG,CAAC,EAEvE,GADA,EAAQywB,EAAY,OACP9uB,IAAT,KAAgB,CAClB,IAAI+uB,EAAa,CACN,UACT,OAAQ/uB,EACR,KAAM,KACN,aAAc,CAAC,EACf,OAAQ,UACR,MAAO,KACP,OAAQ,KACR,UAAW,CAAC,EACZ,KAAM,SAAU,EAAU,CACxB+uB,EAAW,UAAU,KAAK/N,CAAQ,CACpC,CACF,EACS5nB,EAAqB,IAA9B,KAEK,EAAW,aAAe,CAAC,EAD5B41B,EAAgB,CAAC,CAAC,EAEtBC,EAASF,CAAU,EACnB,EAAkBD,EAAY,QACrBE,IAAT,MACM,EAAW,KAAO,EAAY,QAAUD,EAC1CG,GAAqBJ,EAAaC,CAAU,IAC1C,EAAW,KAAOC,EAAgB,KACnC,EAAY,QAAU,EAAgB,KAAOD,EACpD,CACF,CACA,SAASG,GAAqB,EAAa,EAAM,CAC/C,IAAIhyB,EAASxJ,EAAK,OAChB8H,EAAU9H,EAAK,QACfy7B,EAAYL,EAAY,MAC1B,GAAIp7B,EAAK,aAAc,CACrB,IAAIoI,EAAiB1C,EAAqB,EACxC2C,EAAoB,CAAC,EACvB,EAAkB,MACPD,IAAT,KAAiD,KAAvBA,EAAe,MAC3C,EAAqB,EAAIC,EACzB,GAAI,CACF,IAAIC,EAAckB,EAAOiyB,EAAW3zB,CAAO,EACzCU,EAA0B9C,EAAqB,EACxC8C,IAAT,MACEA,EAAwBH,EAAmBC,CAAW,EACxDozB,GAAwBN,EAAap7B,EAAMsI,CAAW,CACxD,OAASzB,EAAO,CACd80B,GAAcP,EAAap7B,EAAM6G,CAAK,CACxC,QAAU,CACCuB,IAAT,MACWC,EAAkB,QAA3B,OACC,EAAe,MAAQA,EAAkB,OACzC,EAAqB,EAAID,CAC9B,CACF,MACE,GAAI,CACF,EAAkBoB,EAAOiyB,EAAW3zB,CAAO,EACzC4zB,GAAwBN,EAAap7B,EAAMoI,CAAc,CAC7D,OAASwzB,EAAU,CACjBD,GAAcP,EAAap7B,EAAM47B,CAAQ,CAC3C,CACJ,CACA,SAASF,GAAwB,EAAa,EAAM,EAAa,CAElD,OAAOpzB,GAApB,UADSA,GAEM,OAAOA,EAAY,MAAlC,WACIA,EAAY,KACV,SAAU,EAAW,CACnBuzB,GAAgBT,EAAap7B,EAAM87B,CAAS,CAC9C,EACA,SAAU,EAAO,CACf,OAAOH,GAAcP,EAAap7B,EAAM6G,CAAK,CAC/C,CACF,EACAg1B,GAAgBT,EAAap7B,EAAMsI,CAAW,CACpD,CACA,SAASuzB,GAAgB,EAAa,EAAY,EAAW,CAC3D,EAAW,OAAS,YACpB,EAAW,MAAQC,EACnBC,GAAsBV,CAAU,EAChC,EAAY,MAAQS,EACpB,EAAaV,EAAY,QAChBC,IAAT,OACI,EAAYA,EAAW,KACzBS,IAAcT,EACT,EAAY,QAAU,MACrB,EAAYS,EAAU,KACvB,EAAW,KAAOA,EACnBN,GAAqBJ,EAAaU,CAAS,GACnD,CACA,SAASH,GAAc,EAAa,EAAY,EAAO,CACrD,IAAIp7B,EAAO66B,EAAY,QAEvB,GADA,EAAY,QAAU,KACT76B,IAAT,KAAe,CACjB,EAAOA,EAAK,KACZ,EACE,GAAY,OAAS,WAClB,EAAW,OAASsG,EACrBk1B,GAAsBV,CAAU,EAC/B,EAAaA,EAAW,WACtBA,IAAe96B,EACxB,CACA,EAAY,OAAS,IACvB,CACA,SAASw7B,GAAsB,EAAY,CACzC,EAAaV,EAAW,UACxB,IAAK,IAAI9zB,EAAI,EAAGA,EAAI8zB,EAAW,OAAQ,KAAM,EAAGA,EAAW9zB,GAAA,CAAI,CACjE,CACA,SAASy0B,GAAmB,EAAU,EAAU,CAC9C,OAAOlH,CACT,CACA,SAASmH,GAAiB,EAAQ,EAAkB,CAClD,GAAI/gB,EAAa,CACf,IAAIghB,EAAe7M,EAAmB,UACtC,GAAa6M,IAAT,KAAuB,CACzB,EAAG,CACD,IAAI5rB,EAA2BqmB,EAC/B,GAAIzb,EAAa,CACf,GAAIkP,EAAwB,CAC1B,EAAG,CAED,IACE,IAFE+R,EAAoC/R,EAElCgS,EAAoB9R,GAClB6R,EAAkC,WAAxC,GAUA,GAPI,CAACC,IAIL,EAAoC/Q,GAClC8Q,EAAkC,WACpC,EACaA,IAAT,MAA4C,CAC9C,EAAoC,KACpC,MAAM,CACR,CAEF,EAAoBA,EAAkC,KACtD,EACWC,IAAT,MAAsCA,IAAR,IAC1BD,EACA,IACR,CACA,GAAIA,EAAmC,CACrC,EAAyB9Q,GACvB8Q,EAAkC,WACpC,EACA,EACWA,EAAkC,OAA3C,KACF,MAAM,CACR,CACF,CACA3R,GAAyBla,CAAwB,CACnD,CACA,EAA2B,CAAC,CAC9B,CACAA,IAA6B,EAAmB4rB,EAAa,GAC/D,CACF,CAyCA,MAxCA,GAAetD,GAAwB,EACvC,EAAa,cAAgB,EAAa,UAAYyD,EACtD,EAA2B,CACzB,QAAS,KACT,MAAO,EACP,SAAU,KACV,oBAAqBL,GACrB,kBAAmBK,CACrB,EACA,EAAa,MAAQ/rB,EACrB,EAAegsB,GAAiB,KAC9B,KACA3F,EACArmB,CACF,EACA,EAAyB,SAAW4rB,EACpC,EAA2BnB,GAAe,CAAC,CAAC,EAC5C,EAAoBwB,GAA2B,KAC7C,KACA5F,EACA,CAAC,EACDrmB,EAAyB,KAC3B,EACA,EAA2BsoB,GAAwB,EACnD,EAAoC,CAClC,MAAOyD,EACP,SAAU,KACF,SACR,QAAS,IACX,EACA,EAAyB,MAAQF,EACjC,EAAejB,GAAoB,KACjC,KACAvE,EACAwF,EACAC,EACAF,CACF,EACA,EAAkC,SAAWA,EAC7C,EAAyB,cAAgB1yB,EAClC,CAAC6yB,EAAkBH,EAAc,CAAC,CAAC,CAC5C,CACA,SAASM,GAAkB,EAAQ,CAEjC,OAAOC,GADS3D,EACqB,EAAGlC,EAAaptB,CAAM,CAC7D,CACA,SAASizB,GAAsB,EAAW,EAAkB,EAAQ,CAOlE,GANA,EAAmBlD,GACjBlpB,EACAqsB,EACAV,EACF,CAAC,CAAC,GACF,EAAY1C,GAAcD,EAAiB,CAAC,CAAC,GAE9B,OAAOqD,GAApB,UACSA,GACM,OAAOA,EAAiB,MAAvC,WAEA,GAAI,CACF,IAAI5uB,EAAQyqB,GAAYmE,CAAgB,CAC1C,OAAS/rB,EAAG,CAEV,MADIA,IAAM+e,GAAyBE,GAC7Bjf,CACR,KACG,GAAQ+rB,EACb,EAAmB5D,EAAyB,EAC5C,IAAIsC,EAAcsB,EAAiB,MACjC3C,EAAWqB,EAAY,SASzB,OARA5xB,IAAWkzB,EAAiB,gBACxB,EAAwB,OAAS,KACnCpC,GACE,EACA,CAAE,QAAS,IAAK,EAAE,EAClBqC,GAAwB,KAAK,KAAMvB,EAAa5xB,CAAM,EACtD,IACF,GACK,CAACsE,EAAOisB,EAAU1pB,CAAS,CACpC,CACA,SAASssB,GAAwB,EAAa,EAAQ,CACpD,EAAY,OAASnzB,CACvB,CACA,SAASozB,GAAoB,EAAQ,CACnC,IAAIvsB,EAAYyoB,EAAyB,EACvC4D,EAAmB9F,EACrB,GAAa8F,IAAT,KACF,OAAOD,GAAsBpsB,EAAWqsB,EAAkBlzB,CAAM,EAClEsvB,EAAyB,EACzB,EAAYzoB,EAAU,cACtB,EAAmByoB,EAAyB,EAC5C,IAAIiB,EAAW2C,EAAiB,MAAM,SAEtC,MADA,GAAiB,cAAgBlzB,EAC1B,CAAC6G,EAAW0pB,EAAU,CAAC,CAAC,CACjC,CACA,SAASO,GAAiB,EAAK,EAAM,EAAQ,EAAM,CAajD,MAZA,GAAM,CAAO,MAAa,SAAc,OAAY,OAAM,KAAM,IAAK,EACrE,EAAO3D,EAAwB,YACtBpoB,IAAT,OACI,EAAO0qB,GAAmC,EAC3C,EAAwB,YAAc1qB,GACzC,EAASA,EAAK,WACLxE,IAAT,KACK,EAAK,WAAa,EAAI,KAAOqD,GAC5B,EAAOrD,EAAO,KACf,EAAO,KAAOqD,EACd,EAAI,KAAOzD,EACX,EAAK,WAAayD,GAChBA,CACT,CACA,SAASyvB,IAAY,CACnB,OAAO/D,EAAyB,CAAC,CAAC,aACpC,CACA,SAASgE,GAAgB,EAAY,EAAW,EAAQ,EAAM,CAC5D,IAAIjE,EAAOD,GAAwB,EACnC,EAAwB,OAASmE,EACjC,EAAK,cAAgBzC,GACnB,EAAI0C,EACJ,CAAE,QAAS,IAAK,EAAE,EAClBjzB,EACWJ,IAAX,IAAK,GAAa,KAAOA,CAC3B,CACF,CACA,SAASszB,GAAiB,EAAY,EAAW,EAAQ,EAAM,CAC7D,IAAIpE,EAAOC,EAAyB,EACpC,EAAkBnvB,IAAX,IAAK,GAAa,KAAOA,EAChC,IAAI4E,EAAOsqB,EAAK,cAAc,KACrBjC,IAAT,MACSjtB,IAAT,MACA0tB,GAAmB1tB,EAAMitB,EAAY,cAAc,IAAI,EAClD,EAAK,cAAgB0D,GAAiB0C,EAAWzuB,EAAMxE,EAAQJ,CAAI,GAClE,EAAwB,OAASozB,EAClC,EAAK,cAAgBzC,GACpB,EAAI0C,EACJzuB,EACAxE,EACAJ,CACF,EACN,CACA,SAASuzB,GAAY,EAAQ,EAAM,CACjCJ,GAAgB,QAAS,EAAG/yB,EAAQJ,CAAI,CAC1C,CACA,SAASywB,GAAa,EAAQ,EAAM,CAClC6C,GAAiB,KAAM,EAAGlzB,EAAQJ,CAAI,CACxC,CACA,SAASwzB,GAAmB,EAAS,CACnC,EAAwB,OAAS,EACjC,IAAIC,EAAuBzG,EAAwB,YACnD,GAAayG,IAAT,KACF,EAAwBnE,GAAmC,EACxD,EAAwB,YAAcmE,EACtC,EAAqB,OAAS,CAACt1B,CAAO,MACtC,CACH,IAAIu1B,EAASD,EAAqB,OACzBC,IAAT,KACK,EAAqB,OAAS,CAACv1B,CAAO,EACvCu1B,EAAO,KAAKv1B,CAAO,CACzB,CACF,CACA,SAASw1B,GAAY,EAAU,CAC7B,IAAItzB,EAAM8uB,EAAyB,CAAC,CAAC,cAErC,OADAqE,GAAmB,CAAO,MAAK,SAAUn6B,CAAS,CAAC,EAC5C,UAAY,CACjB,GAAW4wB,EAAmB,EAAI,MAAM,MAAMjpB,EAAuB,GAAG,CAAC,EACzE,OAAOX,EAAI,KAAK,MAAM,IAAK,GAAG,SAAS,CACzC,CACF,CACA,SAASuzB,GAAsB,EAAQ,EAAM,CAC3C,OAAON,GAAiB,EAAG,EAAGlzB,EAAQJ,CAAI,CAC5C,CACA,SAAS6zB,GAAmB,EAAQ,EAAM,CACxC,OAAOP,GAAiB,EAAG,EAAGlzB,EAAQJ,CAAI,CAC5C,CACA,SAAS8zB,GAAuB,EAAQ,EAAK,CAC3C,GAAmB,OAAOzzB,GAAtB,WAA2B,CAC7B,EAASD,EAAO,EAChB,IAAI2zB,EAAa1zB,EAAID,CAAM,EAC3B,OAAO,UAAY,CACF,OAAO2zB,GAAtB,WAAmCA,EAAW,EAAI1zB,EAAI,IAAI,CAC5D,CACF,CACA,GAAaA,GAAT,KACF,MACG,GAASD,EAAO,EAChB,EAAI,QAAUA,EACf,UAAY,CACV,EAAI,QAAU,IAChB,CAEN,CACA,SAAS4zB,GAAuB,EAAK,EAAQ,EAAM,CACjD,EAAgBh0B,GAAT,KAAwD,KAArBA,EAAK,OAAO,CAACK,CAAG,CAAC,EAC3DizB,GAAiB,EAAG,EAAGQ,GAAuB,KAAK,KAAM1zB,EAAQC,CAAG,EAAGL,CAAI,CAC7E,CACA,SAASi0B,IAAkB,CAAC,CAC5B,SAASC,GAAe,EAAU,EAAM,CACtC,IAAIhF,EAAOC,EAAyB,EACpC,EAAkBnvB,IAAX,IAAK,GAAa,KAAOA,EAChC,IAAI8xB,EAAY5C,EAAK,cAIrB,OAHalvB,IAAT,MAAiB0tB,GAAmB1tB,EAAM8xB,EAAU,EAAE,EACjDA,EAAU,IACnB,EAAK,cAAgB,CAACz4B,EAAU2G,CAAI,EAC7B3G,EACT,CACA,SAAS86B,GAAW,EAAY,EAAM,CACpC,IAAIjF,EAAOC,EAAyB,EACpC,EAAkBnvB,IAAX,IAAK,GAAa,KAAOA,EAChC,IAAI8xB,EAAY5C,EAAK,cACrB,GAAalvB,IAAT,MAAiB0tB,GAAmB1tB,EAAM8xB,EAAU,EAAE,EACxD,OAAOA,EAAU,GAEnB,GADA,EAAYsC,EAAW,EACnB/G,GAAqC,CACvC5jB,GAA2B,CAAC,CAAC,EAC7B,GAAI,CACF2qB,EAAW,CACb,QAAU,CACR3qB,GAA2B,CAAC,CAAC,CAC/B,CACF,CAEA,MADA,GAAK,cAAgB,CAACqoB,EAAW9xB,CAAI,EAC9B8xB,CACT,CACA,SAASuC,GAAuB,EAAM,EAAO,EAAc,CAWzD,OATal0B,IAAX,IAAK,IACG4K,GAAc,YACpB,EAAOsgB,EAAgC,QAEjC,EAAK,cAAgBnrB,GAC/B,EAAK,cAAgBC,EACrB,EAAOm0B,GAAoB,EAC3B,EAAwB,OAASpF,EACjC,IAAkCA,EAC3B/uB,EACT,CACA,SAASo0B,GAAwB,EAAM,EAAW,EAAO,EAAc,CAiBrE,OAhBIlb,GAASnZ,EAAOs0B,CAAS,EAAUt0B,EAC1BwrB,GAA6B,UAAtC,KAOF,EAAO3gB,GAAc,MACbA,GAAc,YACpB,EAAOsgB,EAAgC,SAEjC,GAAmB,CAAC,EAAK,EAAK,cAAgBnrB,IACxD,EAAOo0B,GAAoB,EAC3B,EAAwB,OAASpF,EACjC,IAAkCA,EAC3BsF,IAbF,EAAOH,GAAuBnF,EAAMhvB,EAAOC,CAAY,EACxDkZ,GAAS6V,EAAMsF,CAAS,IAAM,GAAmB,CAAC,GAClDtF,EAYN,CACA,SAAS1wB,GAAgB,EAAO,EAAO,EAAc,EAAe,EAAU,CAC5E,IAAI8O,EAAmB3H,EAAwB,EAC/C,EAAwB,EAChB2H,IAAN,GAA0B,EAAIA,EAAmBA,EAAmB,EACtE,IAAI7O,EAAiB1C,EAAqB,EACxC2C,EAAoB,CAAC,EACvB,EAAkB,MACPD,IAAT,KAAiD,KAAvBA,EAAe,MAC3C,EAAqB,EAAIC,EACzBk0B,GAA2BjwB,EAAO,CAAC,EAAGua,EAAOuX,CAAY,EACzD,GAAI,CACF,IAAI91B,EAActF,EAAS,EACzBwF,EAA0B9C,EAAqB,EACxC8C,IAAT,MACEA,EAAwBH,EAAmBC,CAAW,EAGzC,OAAOA,GAApB,UADSA,GAEM,OAAOA,EAAY,MAAlC,WAMA+1B,GACE/xB,EACAua,EAN6B+H,GAC7BtmB,EACAg2B,CAKuB,EACvBC,GAAkBjyB,CAAK,CACzB,EAEA+xB,GACE/xB,EACAua,EACAyX,EACAC,GAAkBjyB,CAAK,CACzB,CACJ,OAASzF,EAAO,CACdw3B,GACE/xB,EACAua,EACA,CAAE,KAAM,UAAY,CAAC,EAAG,OAAQ,WAAY,OAAQhgB,CAAM,EAC1D03B,GAAkB,CACpB,CACF,QAAU,CACR,EAAyB,EAAItnB,EAClB7O,IAAT,MACWC,EAAkB,QAA3B,OACC,EAAe,MAAQA,EAAkB,OAC3C,EAAqB,EAAID,CAC9B,CACF,CACA,SAAS3C,IAAO,CAAC,CACjB,SAAS+4B,GAAoB,EAAW,EAAc,EAAQ,EAAU,CACtE,GAAUC,EAAU,MAAhB,EAAqB,MAAM,MAAM9zB,EAAuB,GAAG,CAAC,EAChE,IAAIkc,EAAQ6X,GAA8BD,CAAS,CAAC,CAAC,MACrDt2B,GACEs2B,EACA5X,EACAuX,EACA7uB,GACS/F,IAAT,KACI/D,GACA,UAAY,CAEV,OADAk5B,GAAmBF,CAAS,EACrBj1B,EAAOo1B,CAAQ,CACxB,CACN,CACF,CACA,SAASF,GAA8B,EAAW,CAChD,IAAIG,EAAoBJ,EAAU,cAClC,GAAaI,IAAT,KAA4B,OAAOA,EACvC,EAAoB,CAClB,cAAetvB,GACf,UAAWA,GACX,UAAW,KACX,MAAO,CACL,QAAS,KACT,MAAO,EACP,SAAU,KACV,oBAAqB8pB,GACrB,kBAAmB9pB,EACrB,EACA,KAAM,IACR,EACA,IAAIuvB,EAAoB,CAAC,EAiBzB,MAhBA,GAAkB,KAAO,CACvB,cAAeA,EACf,UAAWA,EACX,UAAW,KACX,MAAO,CACL,QAAS,KACT,MAAO,EACP,SAAU,KACV,oBAAqBzF,GACrB,kBAAmByF,CACrB,EACA,KAAM,IACR,EACA,EAAU,cAAgBD,EAC1B,EAAYJ,EAAU,UACbA,IAAT,OAAuB,EAAU,cAAgBI,GAC1CA,CACT,CACA,SAASF,GAAmB,EAAW,CACrC,IAAItuB,EAAYquB,GAA8BD,CAAS,EAC9CpuB,EAAU,OAAnB,OAA4B,EAAYouB,EAAU,UAAU,eAC5DJ,GACEI,EACApuB,EAAU,KAAK,MACf,CAAC,EACDkuB,GAAkB,CACpB,CACF,CACA,SAASQ,IAA0B,CACjC,OAAOhS,GAAYJ,EAAqB,CAC1C,CACA,SAASqS,IAAW,CAClB,OAAOlG,EAAyB,CAAC,CAAC,aACpC,CACA,SAASmG,IAAgB,CACvB,OAAOnG,EAAyB,CAAC,CAAC,aACpC,CACA,SAASoG,GAAa,EAAO,CAC3B,IAAK,IAAIC,EAAW7yB,EAAM,OAAiB6yB,IAAT,MAAqB,CACrD,OAAQA,EAAS,IAAjB,CACE,IAAK,IACL,IAAK,GACH,IAAIrqB,EAAOypB,GAAkB,EAC7B,EAAQ9K,GAAa3e,CAAI,EACzB,IAAIsqB,EAAU1L,GAAcyL,EAAU7yB,EAAOwI,CAAI,EACxCsqB,IAAT,OACGtE,GAAsBsE,EAASD,EAAUrqB,CAAI,EAC9C+e,GAAoBuL,EAASD,EAAUrqB,CAAI,GAC7C,EAAW,CAAE,MAAO4Y,GAAY,CAAE,EAClC,EAAM,QAAUyR,EAChB,MACJ,CACA,EAAWA,EAAS,MACtB,CACF,CACA,SAASE,GAAsB,EAAO,EAAO,EAAQ,CACnD,IAAIvqB,EAAOypB,GAAkB,EAC7B,EAAS,CACD,OACN,WAAY,EACZ,QAAS,KACD,SACR,cAAe,CAAC,EAChB,WAAY,KACZ,KAAM,IACR,EACApD,GAAoB7uB,CAAK,EACrBgzB,GAAyBzY,EAAOrd,CAAM,GACpC,EAASyd,GAA4B3a,EAAOua,EAAOrd,EAAQsL,CAAI,EACxDtL,IAAT,OACGsxB,GAAsBtxB,EAAQ8C,EAAOwI,CAAI,EAC1CyqB,GAAyB/1B,EAAQqd,EAAO/R,CAAI,GACpD,CACA,SAASwnB,GAAiB,EAAO,EAAO,EAAQ,CAE9C+B,GAAyB/xB,EAAOua,EAAOrd,EAD5B+0B,GACuC,CAAC,CACrD,CACA,SAASF,GAAyB,EAAO,EAAO,EAAQ,EAAM,CAC5D,IAAIvoB,EAAS,CACL,OACN,WAAY,EACZ,QAAS,KACD,SACR,cAAe,CAAC,EAChB,WAAY,KACZ,KAAM,IACR,EACA,GAAIqlB,GAAoB7uB,CAAK,EAAGgzB,GAAyBzY,EAAO/Q,CAAM,MACjE,CACH,IAAIhJ,EAAYR,EAAM,UACtB,GACQA,EAAM,QAAZ,IACUQ,IAAT,MAA4BA,EAAU,QAAhB,KACrB,EAAY+Z,EAAM,oBAA+B/Z,IAAT,MAE1C,GAAI,CACF,IAAI0yB,EAAe3Y,EAAM,kBACvB4Y,EAAa3yB,EAAU0yB,EAAch2B,CAAM,EAG7C,GAFA,EAAO,cAAgB,CAAC,EACxB,EAAO,WAAai2B,EAChBzc,GAASyc,EAAYD,CAAY,EACnC,OACExY,GAAgB1a,EAAOua,EAAO/Q,EAAQ,CAAC,EAC9BuZ,IAAT,MAA+B1I,GAAgC,EAC/D,CAAC,CAEP,MAAgB,CAChB,CAGF,GADA,EAASM,GAA4B3a,EAAOua,EAAO/Q,EAAQhB,CAAI,EAClDtL,IAAT,KACF,OACEsxB,GAAsBtxB,EAAQ8C,EAAOwI,CAAI,EACzCyqB,GAAyB/1B,EAAQqd,EAAO/R,CAAI,EAC5C,CAAC,CAEP,CACA,MAAO,CAAC,CACV,CACA,SAASynB,GAA2B,EAAO,EAAqB,EAAO,EAAQ,CAU7E,GATA,EAAS,CACP,KAAM,EACN,WAAY9N,GAAsB,EAClC,QAAS,KACD,SACR,cAAe,CAAC,EAChB,WAAY,KACZ,KAAM,IACR,EACI0M,GAAoB7uB,CAAK,EACvB,IAAAozB,EAAqB,MAAM,MAAM/0B,EAAuB,GAAG,CAAC,CAAA,KAEhE,GAAuBsc,GACrB3a,EACAua,EACArd,EACA,CACF,EACWk2B,IAAT,MACE5E,GAAsB4E,EAAqBpzB,EAAO,CAAC,CAC3D,CACA,SAAS6uB,GAAoB,EAAO,CAClC,IAAIruB,EAAYR,EAAM,UACtB,OACEA,IAAUqqB,GACA7pB,IAAT,MAAsBA,IAAc6pB,CAEzC,CACA,SAAS2I,GAAyB,EAAO,EAAQ,CAC/C,GAA6C,GAC3C,CAAC,EACH,IAAIxY,EAAUD,EAAM,QACXC,IAAT,KACK,EAAO,KAAOhR,GACb,EAAO,KAAOgR,EAAQ,KAAQ,EAAQ,KAAOhR,GACnD,EAAM,QAAUA,CAClB,CACA,SAASypB,GAAyB,EAAM,EAAO,EAAM,CACnD,GAAWzqB,EAAO,QAAU,CAC1B,IAAIgf,EAAajN,EAAM,MACvB,GAAc3S,EAAK,aACnB,GAAQ4f,EACR,EAAM,MAAQhf,EACdwB,GAAkBpC,EAAMY,CAAI,CAC9B,CACF,CACA,IAAIijB,GAAwB,CACX,eACR,OACL,YAAaX,EACb,WAAYA,EACZ,UAAWA,EACX,oBAAqBA,EACrB,gBAAiBA,EACjB,mBAAoBA,EACpB,QAASA,EACT,WAAYA,EACZ,OAAQA,EACR,SAAUA,EACV,cAAeA,EACf,iBAAkBA,EAClB,cAAeA,EACf,qBAAsBA,EACtB,MAAOA,EACP,wBAAyBA,EACzB,aAAcA,EACd,eAAgBA,EAChB,cAAeA,EACf,aAAcA,EACd,gBAAiBA,EACjB,eAAgBA,CAClB,EACAM,GAAyB,CACV,eACR,OACL,YAAa,SAAU,EAAU,EAAM,CAKrC,MAJA,IAAwB,CAAC,CAAC,cAAgB,CACxC10B,EACW2G,IAAX,IAAK,GAAa,KAAOA,CAC3B,EACO3G,CACT,EACA,WAAY+pB,GACZ,UAAWmQ,GACX,oBAAqB,SAAU,EAAK,EAAQ,EAAM,CAChD,EAAgBvzB,GAAT,KAAwD,KAArBA,EAAK,OAAO,CAACK,CAAG,CAAC,EAC3D8yB,GACE,QACA,EACAW,GAAuB,KAAK,KAAM1zB,EAAQC,CAAG,EAC7CL,CACF,CACF,EACA,gBAAiB,SAAU,EAAQ,EAAM,CACvC,OAAOmzB,GAAgB,QAAS,EAAG/yB,EAAQJ,CAAI,CACjD,EACA,mBAAoB,SAAU,EAAQ,EAAM,CAC1CmzB,GAAgB,EAAG,EAAG/yB,EAAQJ,CAAI,CACpC,EACA,QAAS,SAAU,EAAY,EAAM,CACnC,IAAIkvB,EAAOD,GAAwB,EACnC,EAAkBjvB,IAAX,IAAK,GAAa,KAAOA,EAChC,IAAImiB,EAAYiS,EAAW,EAC3B,GAAI/G,GAAqC,CACvC5jB,GAA2B,CAAC,CAAC,EAC7B,GAAI,CACF2qB,EAAW,CACb,QAAU,CACR3qB,GAA2B,CAAC,CAAC,CAC/B,CACF,CAEA,MADA,GAAK,cAAgB,CAAC0Y,EAAWniB,CAAI,EAC9BmiB,CACT,EACA,WAAY,SAAU,EAAS,EAAY,EAAM,CAC/C,IAAI+M,EAAOD,GAAwB,EACnC,GAAexuB,IAAX,IAAK,GAAY,CACnB,IAAIX,EAAeW,EAAKD,CAAU,EAClC,GAAI6sB,GAAqC,CACvC5jB,GAA2B,CAAC,CAAC,EAC7B,GAAI,CACFhJ,EAAKD,CAAU,CACjB,QAAU,CACRiJ,GAA2B,CAAC,CAAC,CAC/B,CACF,CACF,KAAO,GAAejJ,EAetB,MAdA,GAAK,cAAgB,EAAK,UAAYV,EACtC,EAAU,CACR,QAAS,KACT,MAAO,EACP,SAAU,KACV,oBAAqBS,EACrB,kBAAmBT,CACrB,EACA,EAAK,MAAQS,EACb,EAAU,EAAQ,SAAWm1B,GAAsB,KACjD,KACA1I,EACAzsB,CACF,EACO,CAAC2uB,EAAK,cAAe3uB,CAAO,CACrC,EACA,OAAQ,SAAU,EAAc,CAC9B,IAAI2uB,EAAOD,GAAwB,EAEnC,MADA,GAAe,CAAE,QAAS9uB,CAAa,EAC/B,EAAK,cAAgBA,CAC/B,EACA,SAAU,SAAU,EAAc,CAChC,EAAeixB,GAAetxB,CAAY,EAC1C,IAAIod,EAAQpd,EAAa,MACvBswB,EAAWuC,GAAiB,KAAK,KAAM3F,EAAyB9P,CAAK,EAEvE,MADA,GAAM,SAAWkT,EACV,CAACtwB,EAAa,cAAeswB,CAAQ,CAC9C,EACA,cAAe6D,GACf,iBAAkB,SAAU,EAAO,EAAc,CAE/C,OAAOI,GADIpF,GACsB,EAAG/uB,EAAOC,CAAY,CACzD,EACA,cAAe,UAAY,CACzB,IAAIuG,EAAY0qB,GAAe,CAAC,CAAC,EASjC,MARA,GAAY5yB,GAAgB,KAC1B,KACAwuB,EACAtmB,EAAU,MACV,CAAC,EACD,CAAC,CACH,EACA,GAAwB,CAAC,CAAC,cAAgBA,EACnC,CAAC,CAAC,EAAGA,CAAS,CACvB,EACA,qBAAsB,SAAU,EAAW,EAAa,EAAmB,CACzE,IAAI/D,EAAQqqB,EACVkC,EAAOD,GAAwB,EACjC,GAAI1d,EAAa,CACf,GAAe3Q,IAAX,IAAK,GACP,MAAM,MAAMI,EAAuB,GAAG,CAAC,EACzC,EAAoBJ,EAAkB,CACxC,KAAO,CAEL,GADA,EAAoBD,EAAY,EACnB+kB,IAAT,KACF,MAAM,MAAM1kB,EAAuB,GAAG,CAAC,EAClCqqB,EAAgC,KACrCwF,GAA0BluB,EAAOhC,EAAaC,CAAiB,CACnE,CACA,EAAK,cAAgBA,EACrB,IAAIgE,EAAO,CAAE,MAAOhE,EAAgC,aAAY,EAkBhE,MAjBA,GAAK,MAAQgE,EACb2uB,GAAY7C,GAAiB,KAAK,KAAM/tB,EAAOiC,EAAMlE,CAAS,EAAG,CAC/DA,CACF,CAAC,EACD,EAAM,OAAS,KACfiwB,GACE,EACA,CAAE,QAAS,IAAK,EAAE,EAClBC,GAAoB,KAClB,KACAjuB,EACAiC,EACAhE,EACAD,CACF,EACA,IACF,EACOC,CACT,EACA,MAAO,UAAY,CACjB,IAAIsuB,EAAOD,GAAwB,EACjC+G,EAAmBtQ,EAAmB,iBACxC,GAAInU,EAAa,CACf,IAAI5K,EAA2BkZ,GAC3BoW,EAAmBrW,GACvB,GAEIqW,EAAmB,EAAE,GAAM,GAAKtsB,GAAMssB,CAAgB,EAAI,GAAA,CAC1D,SAAS,EAAE,EAAItvB,EACnB,EACE,IAAMqvB,EAAmB,KAAOrvB,EAClC,EAA2B,KAC3B,EAAIA,IACD,GAAoB,IAAMA,EAAyB,SAAS,EAAE,GACjE,GAAoB,GACtB,KACE,GAA4B,KACzB,EACC,IACAqvB,EACA,KACArvB,EAAyB,SAAS,EAAE,EACpC,IACN,MAAQ,GAAK,cAAgBqvB,CAC/B,EACyB,2BACzB,aAAc1D,GACd,eAAgBA,GAChB,cAAe,SAAU,EAAa,CACpC,IAAIpD,EAAOD,GAAwB,EACnC,EAAK,cAAgB,EAAK,UAAY3uB,EACtC,IAAI4c,EAAQ,CACV,QAAS,KACT,MAAO,EACP,SAAU,KACV,oBAAqB,KACrB,kBAAmB,IACrB,EASA,MARA,GAAK,MAAQA,EACb,EAAO0V,GAA2B,KAChC,KACA5F,EACA,CAAC,EACD9P,CACF,EACA,EAAM,SAAWgS,EACV,CAAC5uB,EAAa4uB,CAAI,CAC3B,EACc,gBACd,gBAAiB,UAAY,CAC3B,MAAQ,IAAwB,CAAC,CAAC,cAAgBqG,GAAa,KAC7D,KACAvI,CACF,CACF,EACA,eAAgB,SAAU,EAAU,CAClC,IAAIkC,EAAOD,GAAwB,EACjC5uB,EAAM,CAAE,KAAMhH,CAAS,EAEzB,MADA,GAAK,cAAgBgH,EACd,UAAY,CACjB,GAAW4pB,EAAmB,EAC5B,MAAM,MAAMjpB,EAAuB,GAAG,CAAC,EACzC,OAAOX,EAAI,KAAK,MAAM,IAAK,GAAG,SAAS,CACzC,CACF,CACF,EACA2tB,GAA0B,CACX,eACR,OACL,YAAakG,GACb,WAAY9Q,GACZ,UAAWqN,GACX,oBAAqBuD,GACrB,mBAAoBJ,GACpB,gBAAiBC,GACjB,QAASM,GACT,WAAYxE,GACZ,OAAQuD,GACR,SAAU,UAAY,CACpB,OAAOvD,GAAcD,EAAiB,CACxC,EACA,cAAeuE,GACf,iBAAkB,SAAU,EAAO,EAAc,CAE/C,OAAOM,GADIpF,EAEN,EACHlC,EAAY,cACZ/sB,EACAC,CACF,CACF,EACA,cAAe,UAAY,CACzB,IAAI+1B,EAAoBvG,GAAcD,EAAiB,CAAC,CAAC,GACvDtb,EAAQ+a,EAAyB,CAAC,CAAC,cACrC,MAAO,CACS,OAAO+G,GAArB,UACIA,EACAtH,GAAYsH,CAAiB,EACjC9hB,CACF,CACF,EACA,qBAAsBkc,GACtB,MAAO+E,GACkB,2BACzB,aAAcxC,GACd,eAAgBA,GAChB,cAAe,SAAU,EAAa,EAAS,CAE7C,OAAOvB,GADInC,EACoB,EAAGlC,EAAa3sB,EAAaC,CAAO,CACrE,EACc,gBACd,gBAAiB+0B,GACjB,eAAgB3B,EAClB,EACAnF,GAA4B,CACb,eACR,OACL,YAAa0F,GACb,WAAY9Q,GACZ,UAAWqN,GACX,oBAAqBuD,GACrB,mBAAoBJ,GACpB,gBAAiBC,GACjB,QAASM,GACT,WAAYhE,GACZ,OAAQ+C,GACR,SAAU,UAAY,CACpB,OAAO/C,GAAgBT,EAAiB,CAC1C,EACA,cAAeuE,GACf,iBAAkB,SAAU,EAAO,EAAc,CAC/C,IAAI/E,EAAOC,EAAyB,EACpC,OAAgBlC,IAAT,KACHoH,GAAuBnF,EAAMhvB,EAAOC,CAAY,EAChDo0B,GACErF,EACAjC,EAAY,cACZ/sB,EACAC,CACF,CACN,EACA,cAAe,UAAY,CACzB,IAAI+1B,EAAoB/F,GAAgBT,EAAiB,CAAC,CAAC,GACzDtb,EAAQ+a,EAAyB,CAAC,CAAC,cACrC,MAAO,CACS,OAAO+G,GAArB,UACIA,EACAtH,GAAYsH,CAAiB,EACjC9hB,CACF,CACF,EACA,qBAAsBkc,GACtB,MAAO+E,GACkB,2BACzB,aAAcpC,GACd,eAAgBA,GAChB,cAAe,SAAU,EAAa,EAAS,CAC7C,IAAI/D,EAAOC,EAAyB,EAIpC,OAHalC,IAAT,MAEJ,EAAK,UAAY3sB,EACV,CAACA,EAAa4uB,EAAK,MAAM,QAAQ,GAF/BoC,GAAqBpC,EAAMjC,EAAa3sB,EAAaC,CAAO,CAGvE,EACc,gBACd,gBAAiB+0B,GACjB,eAAgB3B,EAClB,EACF,SAASwC,GACP,EACA,EACA,EACA,EACA,CACA,EAAO1tB,EAAe,cACtB,EAA2B2tB,EAAyBC,EAAWj4B,CAAI,EACnE,EACWg4B,GAAT,KACIh4B,EACAjD,EAAO,CAAC,EAAGiD,EAAMg4B,CAAwB,EAC/C,EAAe,cAAgBA,EACzB3tB,EAAe,QAArB,IACG,EAAe,YAAY,UAAY2tB,EAC5C,CACA,IAAIE,GAAwB,CAC1B,gBAAiB,SAAU,EAAM,EAAS,EAAU,CAClD,EAAO1xB,EAAK,gBACZ,IAAIuG,EAAOypB,GAAkB,EAC3BzoB,EAAS2d,GAAa3e,CAAI,EAC5B,EAAO,QAAUhN,EACN9E,GAAY,OAAsB,EAAO,SAAWA,GAC/D,EAAU0wB,GAAcnlB,EAAMuH,EAAQhB,CAAI,EACjChN,IAAT,OACGgzB,GAAsBhzB,EAASyG,EAAMuG,CAAI,EAC1C+e,GAAoB/rB,EAASyG,EAAMuG,CAAI,EAC3C,EACA,oBAAqB,SAAU,EAAM,EAAS,EAAU,CACtD,EAAOvG,EAAK,gBACZ,IAAIuG,EAAOypB,GAAkB,EAC3BzoB,EAAS2d,GAAa3e,CAAI,EAC5B,EAAO,IAAM,EACb,EAAO,QAAUhN,EACN9E,GAAY,OAAsB,EAAO,SAAWA,GAC/D,EAAU0wB,GAAcnlB,EAAMuH,EAAQhB,CAAI,EACjChN,IAAT,OACGgzB,GAAsBhzB,EAASyG,EAAMuG,CAAI,EAC1C+e,GAAoB/rB,EAASyG,EAAMuG,CAAI,EAC3C,EACA,mBAAoB,SAAU,EAAM,EAAU,CAC5C,EAAOvG,EAAK,gBACZ,IAAIuG,EAAOypB,GAAkB,EAC3BzoB,EAAS2d,GAAa3e,CAAI,EAC5B,EAAO,IAAM,EACF9R,GAAY,OAAsB,EAAO,SAAWA,GAC/D,EAAW0wB,GAAcnlB,EAAMuH,EAAQhB,CAAI,EAClC9R,IAAT,OACG83B,GAAsB93B,EAAUuL,EAAMuG,CAAI,EAC3C+e,GAAoB7wB,EAAUuL,EAAMuG,CAAI,EAC5C,CACF,EACA,SAASorB,GACP,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CAEA,MADA,GAAiB9tB,EAAe,UACV,OAAOA,EAAe,uBAArC,WACHA,EAAe,sBAAsB+tB,EAAUrL,EAAUsL,CAAW,EACpEr4B,EAAK,WAAaA,EAAK,UAAU,qBAC/B,CAACkb,GAAaod,EAAUF,CAAQ,GAAK,CAACld,GAAaqd,EAAUxL,CAAQ,EACrE,CAAC,CACT,CACA,SAASyL,GACP,EACA,EACA,EACA,EACA,CACA,EAAiB1a,EAAS,MACX,OAAOA,EAAS,2BAA/B,YACEA,EAAS,0BAA0Bsa,EAAUC,CAAW,EAC3C,OAAOva,EAAS,kCAA/B,YACEA,EAAS,iCAAiCsa,EAAUC,CAAW,EACjEva,EAAS,QAAUzT,GACjB6tB,GAAsB,oBAAoBpa,EAAUA,EAAS,MAAO,IAAI,CAC5E,CACA,SAAS2a,GAA2B,EAAW,EAAW,CACxD,IAAIL,EAAWM,EACf,GAAI,QAASA,EAEX,IAAK,IAAIt3B,IADT,GAAW,CAAC,EACSs3B,EACTt3B,IAAV,QAAuB,EAASA,GAAYs3B,EAAUt3B,IAE1D,GAAK,EAAYnE,EAAU,aAEzB,IAAK,IAAI07B,KADTP,IAAaM,IAAc,EAAW37B,EAAO,CAAC,EAAGq7B,CAAQ,GACjCn7B,EACXm7B,EAASO,KAApB,IAAK,KACF,EAASA,GAAe17B,EAAU07B,IAEzC,OAAOP,CACT,CACA,SAASQ,GAAuB,EAAO,CACrC14B,GAAkBpB,CAAK,CACzB,CACA,SAAS+5B,GAAqB,EAAO,CACnC,QAAQ,MAAM/5B,CAAK,CACrB,CACA,SAASg6B,GAA0B,EAAO,CACxC54B,GAAkBpB,CAAK,CACzB,CACA,SAASi6B,GAAiB,EAAM,EAAW,CACzC,GAAI,CACF,IAAIC,EAAkB7sB,EAAK,gBAC3B6sB,EAAgBC,EAAU,MAAO,CAAE,eAAgBA,EAAU,KAAM,CAAC,CACtE,OAASC,EAAM,CACb,WAAW,UAAY,CACrB,MAAMA,CACR,CAAC,CACH,CACF,CACA,SAASC,GAAe,EAAM,EAAU,EAAW,CACjD,GAAI,CACF,IAAIC,EAAgBjtB,EAAK,cACzBitB,EAAcH,EAAU,MAAO,CAC7B,eAAgBA,EAAU,MAC1B,cAAqB7yB,EAAS,MAAf,EAAqBA,EAAS,UAAY,IAC3D,CAAC,CACH,OAASizB,EAAM,CACb,WAAW,UAAY,CACrB,MAAMA,CACR,CAAC,CACH,CACF,CACA,SAASC,GAAsB,EAAM,EAAW,EAAM,CAOpD,MANA,GAAO5N,GAAa3e,CAAI,EACxB,EAAK,IAAM,EACX,EAAK,QAAU,CAAE,QAAS,IAAK,EAC/B,EAAK,SAAW,UAAY,CAC1BgsB,GAAiB5sB,EAAM8sB,CAAS,CAClC,EACOlsB,CACT,CACA,SAASwsB,GAAuB,EAAM,CAGpC,MAFA,GAAO7N,GAAa3e,CAAI,EACxB,EAAK,IAAM,EACJA,CACT,CACA,SAASysB,GAA2B,EAAQ,EAAM,EAAO,EAAW,CAClE,IAAIC,EAA2Bl1B,EAAM,KAAK,yBAC1C,GAAmB,OAAOk1B,GAAtB,WAAgD,CAClD,IAAI36B,EAAQm6B,EAAU,MACtB,EAAO,QAAU,UAAY,CAC3B,OAAOQ,EAAyB36B,CAAK,CACvC,EACA,EAAO,SAAW,UAAY,CAC5Bq6B,GAAehtB,EAAM5H,EAAO00B,CAAS,CACvC,CACF,CACA,IAAIzyB,EAAOjC,EAAM,UACRiC,IAAT,MACiB,OAAOA,EAAK,mBAA3B,aACC,EAAO,SAAW,UAAY,CAC7B2yB,GAAehtB,EAAM5H,EAAO00B,CAAS,EACtB,OAAOQ,GAAtB,aACYC,KAAT,KACI,GAAyC,IAAI,IAAI,CAAC,IAAI,CAAC,EACxDA,GAAuC,IAAI,IAAI,GACrD,IAAIC,EAAQV,EAAU,MACtB,KAAK,kBAAkBA,EAAU,MAAO,CACtC,eAAyBU,IAAT,KAAyB,GAARA,CACnC,CAAC,CACH,EACJ,CACA,SAASC,GACP,EACA,EACA,EACA,EACA,EACA,CAEA,GADA,EAAY,OAAS,MAGN,OAAO93B,GAApB,UADSA,GAEM,OAAOA,EAAM,MAA5B,WACA,CAUA,GATA,EAAcud,EAAY,UACjB2J,IAAT,MACEvE,GACEuE,EACA3J,EACAwa,EACA,CAAC,CACH,EACF,EAAcjM,GAA2B,QAC5BvO,IAAT,KAAsB,CACxB,OAAQA,EAAY,IAApB,CACE,IAAK,IACL,IAAK,IACL,IAAK,IACH,OACWwO,KAAT,KACIiM,GAAgC,EACvBza,EAAY,YAArB,MACM0a,IAAN,IACC,EAA+B,GACnC,EAAY,OAAS,KACrB,EAAY,OAAS,MACrB,EAAY,MAAQF,EACrB/3B,IAAUgmB,GACL,EAAY,OAAS,OACpB,EAAczI,EAAY,YACnB2J,IAAT,KACK,EAAY,YAAc,IAAI,IAAI,CAAClnB,CAAK,CAAC,EAC1CknB,EAAY,IAAIlnB,CAAK,EACzBk4B,GAAmB7tB,EAAMrK,EAAO+3B,CAAe,GACnD,CAAC,EAEL,IAAK,IACH,MACG,GAAY,OAAS,MACtB/3B,IAAUgmB,GACL,EAAY,OAAS,OACpB,EAAczI,EAAY,YACnB2J,IAAT,MACM,EAAc,CACd,YAAa,KACb,gBAAiB,KACjB,WAAY,IAAI,IAAI,CAAClnB,CAAK,CAAC,CAC7B,EACC,EAAY,YAAcknB,IACzB,EAAcA,EAAY,WACnB3J,IAAT,KACK,EAAY,WAAa,IAAI,IAAI,CAACvd,CAAK,CAAC,EACzCud,EAAY,IAAIvd,CAAK,GAC7Bk4B,GAAmB7tB,EAAMrK,EAAO+3B,CAAe,GACnD,CAAC,CAEP,CACA,MAAM,MAAMj3B,EAAuB,IAAKyc,EAAY,GAAG,CAAC,CAC1D,CAGA,OAFA2a,GAAmB7tB,EAAMrK,EAAO+3B,CAAe,EAC/CC,GAAgC,EACzB,CAAC,CACV,CACA,GAAI3mB,EACF,MACG,GAAcya,GAA2B,QACjC5E,IAAT,MAOKlnB,IAAU0gB,KACP,EAAc,MAAM5f,EAAuB,GAAG,EAAG,CACjD,MAAOd,CACT,CAAC,EACD4gB,GACE5B,GAA2BkI,EAAa3J,CAAW,CACrD,GACD,EAAOlT,EAAK,QAAQ,UACpB,EAAK,OAAS,MACd,GAAmB,CAAC0tB,EACpB,EAAK,OAASA,EACd,EAAQ/Y,GAA2Bhf,EAAOud,CAAW,EACrD,EAAkBia,GACjBntB,EAAK,UACLrK,EACA+3B,CACF,EACA7N,GAAsB7f,EAAM0tB,CAAe,EACrCE,IAAN,IACG,EAA+B,KAzBjC,EAAO/Q,EAAY,MAAQ,SAAW,EAAY,OAAS,KAC3D,EAAY,OAAS,MACrB,EAAY,MAAQ6Q,EACrB/3B,IAAU0gB,KACN,EAAO,MAAM5f,EAAuB,GAAG,EAAG,CAAE,MAAOd,CAAM,CAAC,EAC5D4gB,GAAoB5B,GAA2B3U,EAAMkT,CAAW,CAAC,IAqBvE,CAAC,EAEL,IAAI4a,EAAe,MAAMr3B,EAAuB,GAAG,EAAG,CAAE,MAAOd,CAAM,CAAC,EAMtE,GALA,EAAegf,GAA2BmZ,EAAc5a,CAAW,EAC1D6a,KAAT,KACK,GAAqC,CAACD,CAAY,EACnDC,GAAmC,KAAKD,CAAY,EAClDF,IAAN,IAAuC,EAA+B,GACzD/Q,IAAT,KAAsB,MAAO,CAAC,EAClC,EAAQlI,GAA2Bhf,EAAOud,CAAW,EACrD,EAAc2J,EACd,EAAG,CACD,OAAQ3J,EAAY,IAApB,CACE,IAAK,GACH,MACG,GAAY,OAAS,MACrB,EAAOwa,EAAkB,CAACA,EAC1B,EAAY,OAAS1tB,EACrB,EAAOmtB,GAAsBja,EAAY,UAAWvd,EAAOqK,CAAI,EAChE6f,GAAsB3M,EAAalT,CAAI,EACvC,CAAC,EAEL,IAAK,GAGH,GAFA,EAAckT,EAAY,KAC1B,EAAeA,EAAY,UAEzB,EAAOA,EAAY,MAAQ,OACX,OAAO2J,EAAY,0BAAlC,YACWiR,IAAT,MACgB,OAAOA,EAAa,mBAAnC,aACUP,KAAT,MACC,CAACA,GAAuC,IAAIO,CAAY,IAE9D,MACG,GAAY,OAAS,MACrB,GAAmB,CAACJ,EACpB,EAAY,OAASA,EACrB,EAAkBN,GAAuBM,CAAe,EACzDL,GACEK,EACA1tB,EACAkT,EACAvd,CACF,EACAkqB,GAAsB3M,EAAawa,CAAe,EAClD,CAAC,EAEL,MACF,IAAK,IACH,GAAaxa,EAAY,gBAArB,KACF,MAAQ,GAAY,OAAS,MAAQ,CAAC,CAC5C,CACA,EAAcA,EAAY,MAC5B,OAAkBA,IAAT,MACT,MAAO,CAAC,CACV,CACA,IAAI8a,GAA8B,MAAMv3B,EAAuB,GAAG,CAAC,EACjEstB,GAAmB,CAAC,EACtB,SAASkK,GAAkB,EAAS,EAAgB,EAAc,EAAa,CAC7E,EAAe,MACJra,IAAT,KACIuL,GAAiBjhB,EAAgB,KAAMgwB,EAAc1tB,CAAW,EAChE0e,GACEhhB,EACA0V,EAAQ,MACRsa,EACA1tB,CACF,CACR,CACA,SAAS2tB,GACP,EACA,EACA,EACA,EACA,EACA,CACA,EAAYr9B,EAAU,OACtB,IAAIgF,EAAMoI,EAAe,IACzB,GAAI,QAAS4tB,EAAW,CACtB,IAAIsC,EAAkB,CAAC,EACvB,IAAK,IAAIj8B,KAAO25B,EACJ35B,IAAV,QAAkB,EAAgBA,GAAO25B,EAAU35B,GACvD,KAAO,GAAkB25B,EAmBzB,OAlBAlT,GAAqB1a,CAAc,EACnC,EAAYolB,GACV1P,EACA1V,EACApN,EACAs9B,EACAt4B,EACA0K,CACF,EACA,EAAM8jB,GAAqB,EACd1Q,IAAT,MAAoB,CAACmQ,IAErBS,GAAa5Q,EAAS1V,EAAgBsC,CAAW,EACjD6tB,GAA6Bza,EAAS1V,EAAgBsC,CAAW,IAErEwG,GAAe7U,GAAO0jB,GAAuB3X,CAAc,EAC3D,EAAe,OAAS,EACxB+vB,GAAkBra,EAAS1V,EAAgB4tB,EAAWtrB,CAAW,EAC1DtC,EAAe,MACxB,CACA,SAASowB,GACP,EACA,EACA,EACA,EACA,EACA,CACA,GAAa1a,IAAT,KAAkB,CACpB,IAAI/gB,EAAO/B,EAAU,KA4BrB,OA1BiB,OAAO+B,GAAtB,YACA,CAAC6gB,GAAgB7gB,CAAI,GACVA,EAAK,eAAhB,IAAK,IACI/B,EAAU,UAAnB,MAGG,EAAe,IAAM,GACrB,EAAe,KAAO+B,EACvB07B,GACE3a,EACA1V,EACArL,EACAi5B,EACAtrB,CACF,IAEJ,EAAUsT,GACRhjB,EAAU,KACV,KACAg7B,EACA5tB,EACAA,EAAe,KACfsC,CACF,EACA,EAAQ,IAAMtC,EAAe,IAC7B,EAAQ,OAASA,EACT,EAAe,MAAQ0V,EACjC,CAEA,GADA,EAAOA,EAAQ,MACX,CAAC4a,GAA8B5a,EAASpT,CAAW,EAAG,CACxD,IAAIrD,EAAYtK,EAAK,cAGrB,GAFA,EAAY/B,EAAU,QACtB,EAAqBA,IAAT,KAAiCie,GAAZje,EAC7BA,EAAUqM,EAAW2uB,CAAS,GAAKlY,EAAQ,MAAQ1V,EAAe,IACpE,OAAOmwB,GAA6Bza,EAAS1V,EAAgBsC,CAAW,CAC5E,CAKA,MAJA,GAAe,OAAS,EACxB,EAAUmT,GAAqB9gB,EAAMi5B,CAAS,EAC9C,EAAQ,IAAM5tB,EAAe,IAC7B,EAAQ,OAASA,EACT,EAAe,MAAQ0V,CACjC,CACA,SAAS2a,GACP,EACA,EACA,EACA,EACA,EACA,CACA,GAAa3a,IAAT,KAAkB,CACpB,IAAIzW,EAAYyW,EAAQ,cACxB,GACE7E,GAAa5R,EAAW2uB,CAAS,GACjClY,EAAQ,MAAQ1V,EAAe,IAE/B,IACI,GAAmB,CAAC,EACrB,EAAe,aAAe,EAAYf,EAC3CqxB,GAA8B5a,EAASpT,CAAW,EAE3CoT,EAAQ,MAAQ,SAAY,GAAmB,CAAC,QAEvD,MACG,GAAe,MAAQA,EAAQ,MAChCya,GAA6Bza,EAAS1V,EAAgBsC,CAAW,CAAA,CAEzE,CACA,OAAOiuB,GACL7a,EACA1V,EACApN,EACAg7B,EACAtrB,CACF,CACF,CACA,SAASkuB,GACP,EACA,EACA,EACA,EACA,CACA,IAAIR,EAAepC,EAAU,SAC3BvE,EAAqB3T,IAAT,KAA2C,KAAxBA,EAAQ,cASzC,GARSA,IAAT,MACW1V,EAAe,YAAxB,OACC,EAAe,UAAY,CAC1B,YAAa,EACb,gBAAiB,KACjB,YAAa,KACb,aAAc,IAChB,GACe4tB,EAAU,OAAvB,SAA6B,CAC/B,GAAW5tB,EAAe,MAAQ,IAAM,CAGtC,GAFA,EACWqpB,IAAT,KAAyD/mB,EAApC+mB,EAAU,UAAY/mB,EAChCoT,IAAT,KAAkB,CAEpB,IADA,EAAY,EAAe,MAAQA,EAAQ,MACtC,EAAe,EAAYkY,IAAT,MACrB,EACEoC,EAAepC,EAAU,MAAQA,EAAU,WAC1C,EAAYA,EAAU,QAC3B,EAAYoC,EAAe,CAAC3G,CAC9B,KAAO,GAAa,EAAK,EAAe,MAAQ,KAChD,OAAOoH,GACL/a,EACA1V,EACAqpB,EACA/mB,EACAsrB,CACF,CACF,CACA,GAAWtrB,EAAc,UACvB,EAAgB,cAAgB,CAAE,UAAW,EAAG,UAAW,IAAK,EACrDoT,IAAT,MACEwH,GACEld,EACSqpB,IAAT,KAA2C,KAAtBA,EAAU,SACjC,EACOA,IAAT,KAEIhG,GAA0B,EAD1BF,GAAkBnjB,EAAgBqpB,CAAS,EAE/CxF,GAA6B7jB,CAAc,OAE7C,MACG,GAAY,EAAe,MAAQ,UACpCywB,GACE/a,EACA1V,EACSqpB,IAAT,KAAyD/mB,EAApC+mB,EAAU,UAAY/mB,EAC3CA,EACAsrB,CACF,CAEN,MACWvE,IAAT,MAKc3T,IAAT,MAAoBwH,GAAeld,EAAgB,IAAI,EACxDqjB,GAA0B,EAC1BS,GAA4B,IAN3B5G,GAAeld,EAAgBqpB,EAAU,SAAS,EACnDlG,GAAkBnjB,EAAgBqpB,CAAS,EAC3CvF,GAA4B,EAC3B,EAAe,cAAgB,MAKtC,OADAiM,GAAkBra,EAAS1V,EAAgBgwB,EAAc1tB,CAAW,EAC7DtC,EAAe,KACxB,CACA,SAAS0wB,GAA0B,EAAS,EAAgB,CAS1D,OARUhb,IAAV,MAA4BA,EAAQ,MAAf,IACV1V,EAAe,YAAxB,OACC,EAAe,UAAY,CAC1B,YAAa,EACb,gBAAiB,KACjB,YAAa,KACb,aAAc,IAChB,GACKA,EAAe,OACxB,CACA,SAASywB,GACP,EACA,EACA,EACA,EACA,EACA,CACA,IAAIvyB,EAA2B6e,GAAkB,EAejD,MAdA,GACW7e,IAAT,KACI,KACA,CAAE,OAAQmd,GAAa,cAAe,KAAMnd,CAAyB,EAC3E,EAAe,cAAgB,CAC7B,UAAWyyB,EACX,UAAWzyB,CACb,EACSwX,IAAT,MAAoBwH,GAAeld,EAAgB,IAAI,EACvDqjB,GAA0B,EAC1BQ,GAA6B7jB,CAAc,EAClC0V,IAAT,MACE0E,GAA8B1E,EAAS1V,EAAgBsC,EAAa,CAAC,CAAC,EACxE,EAAe,WAAasuB,EACrB,IACT,CACA,SAASC,GAAsB,EAAgB,EAAW,CAQxD,MAPA,GAAYC,GACV,CAAE,KAAMlD,EAAU,KAAM,SAAUA,EAAU,QAAS,EACrD5tB,EAAe,IACjB,EACA,EAAU,IAAMA,EAAe,IAC/B,EAAe,MAAQ4tB,EACvB,EAAU,OAAS5tB,EACZ4tB,CACT,CACA,SAASmD,GACP,EACA,EACA,EACA,CAMA,OALA/P,GAAqBhhB,EAAgB0V,EAAQ,MAAO,KAAMpT,CAAW,EACrE,EAAUuuB,GAAsB7wB,EAAgBA,EAAe,YAAY,EAC3E,EAAQ,OAAS,EACjB+jB,GAAmB/jB,CAAc,EACjC,EAAe,cAAgB,KACxB0V,CACT,CACA,SAASsb,GAAwB,EAAS,EAAgB,EAAa,CACrE,IAAIpD,EAAY5tB,EAAe,aAC7BixB,EAAa,GAAOjxB,EAAe,MAAQ,KAE7C,GADA,EAAe,OAAS,KACX0V,IAAT,KAAkB,CACpB,GAAI5M,EAAa,CACf,GAAiB8kB,EAAU,OAAvB,SACF,MACG,GAAUiD,GAAsB7wB,EAAgB4tB,CAAS,EACzD,EAAe,MAAQ,UACvB,EAAQ,cAAgB,CAAE,UAAW,EAAG,UAAW,IAAK,EACzD8C,GAA0B,KAAMhb,CAAO,EAyB3C,GAvBAkO,GAAsC5jB,CAAc,GACnD,EAAUgY,IACL,EAAUkZ,GACVxb,EACAwC,EACF,EACC,EAAmBxC,IAAT,MAA4BA,EAAQ,OAAhB,IAAuBA,EAAU,KACvDA,IAAT,OACI,EAAe,cAAgB,CAC/B,WAAYA,EACZ,YACWwB,KAAT,KAEI,KADA,CAAE,GAAIC,GAAe,SAAUC,EAAoB,EAEzD,UAAW,UACX,gBAAiB,IACnB,EACC,EAAchB,GAAkCV,CAAO,EACvD,EAAY,OAAS1V,EACrB,EAAe,MAAQsC,EACvB,GAAuBtC,EACvB,EAAyB,OAC3B,EAAU,KACF0V,IAAT,KAAkB,MAAM0C,GAAyBpY,CAAc,EAEnE,MADA,GAAe,MAAQ,UAChB,IACT,CACA,OAAO6wB,GAAsB7wB,EAAgB4tB,CAAS,CACxD,CACA,IAAIvE,EAAY3T,EAAQ,cACxB,GAAa2T,IAAT,KAAoB,CACtB,IAAI8H,EAAa9H,EAAU,WAE3B,GADAzF,GAAsC5jB,CAAc,EAChDixB,EACF,IAAIjxB,EAAe,MAAQ,IACzB,EAAgB,OAAS,KACtB,EAAiB+wB,GAChBrb,EACA1V,EACAsC,CACF,OACC,GAAatC,EAAe,gBAAxB,KACP,EAAgB,MAAQ0V,EAAQ,MAC7B,EAAe,OAAS,IACxB,EAAiB,UACjB,MAAM,MAAMnd,EAAuB,GAAG,CAAC,CAAA,MACzC,GACFstB,IACCzL,GAA8B1E,EAAS1V,EAAgBsC,EAAa,CAAC,CAAC,EACvE,GAAoBA,EAAcoT,EAAQ,cAA7B,EACdmQ,IAAoBoL,EACpB,CACA,GAAahO,GAA6B,UAAtC,KAA+C,CAEjD,GADA,EAAYhG,EAED2Q,IAAT,OACE,EAAavpB,GAA0BupB,EAAWtrB,CAAW,EACzD6uB,IAAN,GAAoBA,IAAe9H,EAAU,WAE7C,KACI,GAAU,UAAY8H,EACxBpc,GAA+BW,EAASyb,CAAU,EAClDzI,GAAsBkF,EAAWlY,EAASyb,CAAU,EACpDrB,GAEJL,GAAgC,CAClC,CACA,EAAiBsB,GACfrb,EACA1V,EACAsC,CACF,CACF,KACE,GAAW+mB,EAAU,YAClB,EAAyBpQ,GAAkBkY,EAAW,WAAW,EACjE,GAAuBnxB,EACvB,EAAc,CAAC,EACf,GAAkB,KAClB,GAAyB,CAAC,EAClB0V,IAAT,MACEmC,GAA4B7X,EAAgB0V,CAAO,EACpD,EAAiBmb,GAAsB7wB,EAAgB4tB,CAAS,EAChE,EAAe,OAAS,UAC7B,OAAO5tB,CACT,CAQA,MAPA,GAAUyV,GAAqBC,EAAQ,MAAO,CAC5C,KAAMkY,EAAU,KAChB,SAAUA,EAAU,QACtB,CAAC,EACD,EAAQ,IAAM5tB,EAAe,IAC7B,EAAe,MAAQ0V,EACvB,EAAQ,OAAS1V,EACV0V,CACT,CACA,SAAS0b,GAAQ,EAAS,EAAgB,CACxC,IAAIx5B,EAAMoI,EAAe,IACzB,GAAapI,IAAT,KACO8d,IAAT,MACWA,EAAQ,MAAjB,OACC,EAAe,OAAS,aACxB,CACH,GAAmB,OAAO9d,GAAtB,YAA0C,OAAOA,GAApB,SAC/B,MAAM,MAAMW,EAAuB,GAAG,CAAC,GAC5Bmd,IAAT,MAAoBA,EAAQ,MAAQ9d,KACtC,EAAe,OAAS,QAC5B,CACF,CACA,SAAS24B,GACP,EACA,EACA,EACA,EACA,EACA,CAmBA,OAlBA7V,GAAqB1a,CAAc,EACnC,EAAYolB,GACV1P,EACA1V,EACApN,EACAg7B,EACA,IAAK,GACLtrB,CACF,EACA,EAAY8jB,GAAqB,EACpB1Q,IAAT,MAAoB,CAACmQ,IAErBS,GAAa5Q,EAAS1V,EAAgBsC,CAAW,EACjD6tB,GAA6Bza,EAAS1V,EAAgBsC,CAAW,IAErEwG,GAAe8kB,GAAajW,GAAuB3X,CAAc,EACjE,EAAe,OAAS,EACxB+vB,GAAkBra,EAAS1V,EAAgBpN,EAAW0P,CAAW,EAC1DtC,EAAe,MACxB,CACA,SAASqxB,GACP,EACA,EACA,EACA,EACA,EACA,EACA,CAmBA,OAlBA3W,GAAqB1a,CAAc,EACnC,EAAe,YAAc,KAC7B,EAAYylB,GACVzlB,EACApN,EACAg7B,EACApI,CACF,EACAE,GAAqBhQ,CAAO,EAC5B,EAAY0Q,GAAqB,EACpB1Q,IAAT,MAAoB,CAACmQ,IAErBS,GAAa5Q,EAAS1V,EAAgBsC,CAAW,EACjD6tB,GAA6Bza,EAAS1V,EAAgBsC,CAAW,IAErEwG,GAAelW,GAAa+kB,GAAuB3X,CAAc,EACjE,EAAe,OAAS,EACxB+vB,GAAkBra,EAAS1V,EAAgB4tB,EAAWtrB,CAAW,EAC1DtC,EAAe,MACxB,CACA,SAASsxB,GACP,EACA,EACA,EACA,EACA,EACA,CAEA,GADA5W,GAAqB1a,CAAc,EACtBA,EAAe,YAAxB,KAAmC,CACrC,IAAIlN,EAAUqiB,GACZoc,EAAc3+B,EAAU,YACb,OAAO2+B,GAApB,UACWA,IACR,EAAU5W,GAAY4W,CAAW,GACpC,EAAU,IAAI3+B,EAAUg7B,EAAW96B,CAAO,EAC1C,EAAe,cACJA,EAAQ,QAAjB,MAAqCA,EAAQ,QAAnB,IAAK,GAAsBA,EAAQ,MAAQ,KACvE,EAAQ,QAAU+6B,GAClB,EAAe,UAAY/6B,EAC3B,EAAQ,gBAAkBkN,EAC1B,EAAUA,EAAe,UACzB,EAAQ,MAAQ4tB,EAChB,EAAQ,MAAQ5tB,EAAe,cAC/B,EAAQ,KAAO,CAAC,EAChBmhB,GAAsBnhB,CAAc,EACpC,EAAcpN,EAAU,YACxB,EAAQ,QACO,OAAO2+B,GAApB,UAA4CA,EACxC5W,GAAY4W,CAAW,EACvBpc,GACN,EAAQ,MAAQnV,EAAe,cAC/B,EAAcpN,EAAU,yBACT,OAAO2+B,GAAtB,aACG7D,GACC1tB,EACApN,EACA2+B,EACA3D,CACF,EACC,EAAQ,MAAQ5tB,EAAe,eACnB,OAAOpN,EAAU,0BAAhC,YACiB,OAAOE,EAAQ,yBAA9B,YACgB,OAAOA,EAAQ,2BAA9B,YACgB,OAAOA,EAAQ,oBAA9B,aACA,EAAcA,EAAQ,MACT,OAAOA,EAAQ,oBAA9B,YACEA,EAAQ,mBAAmB,EACd,OAAOA,EAAQ,2BAA9B,YACEA,EAAQ,0BAA0B,EACpCy+B,IAAgBz+B,EAAQ,OACtB+6B,GAAsB,oBAAoB/6B,EAASA,EAAQ,MAAO,IAAI,EACxEqvB,GAAmBniB,EAAgB4tB,EAAW96B,EAASwP,CAAW,EAClE2f,GAA4C,EAC3C,EAAQ,MAAQjiB,EAAe,eACnB,OAAOlN,EAAQ,mBAA9B,aACG,EAAe,OAAS,SAC3B,EAAY,CAAC,CACf,MAAO,GAAa4iB,IAAT,KAAkB,CAC3B,EAAU1V,EAAe,UACzB,IAAIwxB,EAAqBxxB,EAAe,cACtCiuB,EAAWG,GAA2Bx7B,EAAW4+B,CAAkB,EACrE,EAAQ,MAAQvD,EAChB,IAAIwD,EAAa3+B,EAAQ,QACvB4+B,EAAuB9+B,EAAU,YACnC,EAAcuiB,GACD,OAAOuc,GAApB,UACWA,IACR,EAAc/W,GAAY+W,CAAoB,GACjD,IAAI/D,EAA2B/6B,EAAU,yBACzC,EACiB,OAAO+6B,GAAtB,YACe,OAAO76B,EAAQ,yBAA9B,WACF,EAAqBkN,EAAe,eAAiBwxB,EACrDE,GACkB,OAAO5+B,EAAQ,kCAA9B,YACgB,OAAOA,EAAQ,2BAA9B,aACA0+B,GAAsBC,IAAeF,IACrCpD,GACEnuB,EACAlN,EACA86B,EACA2D,CACF,EACJ,GAAiB,CAAC,EAClB,IAAIrD,EAAWluB,EAAe,cAC9B,EAAQ,MAAQkuB,EAChB/L,GAAmBniB,EAAgB4tB,EAAW96B,EAASwP,CAAW,EAClE2f,GAA4C,EAC5C,EAAajiB,EAAe,cAC5BwxB,GAAsBtD,IAAauD,GAAcvQ,IAC7B,OAAOyM,GAAtB,aACED,GACC1tB,EACApN,EACA+6B,EACAC,CACF,EACC,EAAa5tB,EAAe,gBAC9B,EACCkhB,IACA4M,GACE9tB,EACApN,EACAq7B,EACAL,EACAM,EACAuD,EACAF,CACF,IACGG,GACiB,OAAO5+B,EAAQ,2BAA9B,YACgB,OAAOA,EAAQ,oBAA9B,aACc,OAAOA,EAAQ,oBAA9B,YACCA,EAAQ,mBAAmB,EACd,OAAOA,EAAQ,2BAA9B,YACEA,EAAQ,0BAA0B,GACvB,OAAOA,EAAQ,mBAA9B,aACG,EAAe,OAAS,WACX,OAAOA,EAAQ,mBAA9B,aACE,EAAe,OAAS,SAC1B,EAAe,cAAgB86B,EAC/B,EAAe,cAAgB6D,GACnC,EAAQ,MAAQ7D,EAChB,EAAQ,MAAQ6D,EAChB,EAAQ,QAAUF,EAClB,EAAYtD,IACG,OAAOn7B,EAAQ,mBAA9B,aACE,EAAe,OAAS,SAC1B,EAAY,CAAC,EACpB,KAAO,CACL,EAAUkN,EAAe,UACzBohB,GAAiB1L,EAAS1V,CAAc,EACxC,EAAcA,EAAe,cAC7B,EAAuBouB,GAA2Bx7B,EAAW2+B,CAAW,EACxE,EAAQ,MAAQG,EAChB,EAA2B1xB,EAAe,aAC1C,EAAWlN,EAAQ,QACnB,EAAaF,EAAU,YACvB,EAAWuiB,GACE,OAAOsc,GAApB,UACWA,IACR,EAAW9W,GAAY8W,CAAU,GACpC,EAAqB7+B,EAAU,0BAC9B,EACgB,OAAO4+B,GAAtB,YACe,OAAO1+B,EAAQ,yBAA9B,aACgB,OAAOA,EAAQ,kCAA9B,YACgB,OAAOA,EAAQ,2BAA9B,aACAy+B,IAAgB5D,GAA4BO,IAAaD,IACzDE,GACEnuB,EACAlN,EACA86B,EACAK,CACF,EACJ,GAAiB,CAAC,EAClB,EAAWjuB,EAAe,cAC1B,EAAQ,MAAQkuB,EAChB/L,GAAmBniB,EAAgB4tB,EAAW96B,EAASwP,CAAW,EAClE2f,GAA4C,EAC5C,IAAIS,EAAW1iB,EAAe,cAC9BuxB,IAAgB5D,GAChBO,IAAaxL,GACbxB,IACUxL,IAAT,MACUA,EAAQ,eAAjB,MACA8E,GAAsB9E,EAAQ,YAAY,GACxB,OAAO8b,GAAtB,aACE9D,GACC1tB,EACApN,EACA4+B,EACA5D,CACF,EACC,EAAW5tB,EAAe,gBAC5B,EACCkhB,IACA4M,GACE9tB,EACApN,EACA8+B,EACA9D,EACAM,EACAxL,EACAuL,CACF,GACUvY,IAAT,MACUA,EAAQ,eAAjB,MACA8E,GAAsB9E,EAAQ,YAAY,IACzC+b,GACiB,OAAO3+B,EAAQ,4BAA9B,YACgB,OAAOA,EAAQ,qBAA9B,aACc,OAAOA,EAAQ,qBAA9B,YACCA,EAAQ,oBAAoB86B,EAAWlL,EAAUuL,CAAQ,EAC5C,OAAOn7B,EAAQ,4BAA9B,YACEA,EAAQ,2BACN86B,EACAlL,EACAuL,CACF,GACW,OAAOn7B,EAAQ,oBAA9B,aACG,EAAe,OAAS,GACZ,OAAOA,EAAQ,yBAA9B,aACG,EAAe,OAAS,QACX,OAAOA,EAAQ,oBAA9B,YACEy+B,IAAgB7b,EAAQ,eACvBwY,IAAaxY,EAAQ,gBACtB,EAAe,OAAS,GACZ,OAAO5iB,EAAQ,yBAA9B,YACGy+B,IAAgB7b,EAAQ,eACvBwY,IAAaxY,EAAQ,gBACtB,EAAe,OAAS,MAC1B,EAAe,cAAgBkY,EAC/B,EAAe,cAAgBlL,GACnC,EAAQ,MAAQkL,EAChB,EAAQ,MAAQlL,EAChB,EAAQ,QAAUuL,EAClB,EAAYyD,IACG,OAAO5+B,EAAQ,oBAA9B,YACEy+B,IAAgB7b,EAAQ,eACvBwY,IAAaxY,EAAQ,gBACtB,EAAe,OAAS,GACZ,OAAO5iB,EAAQ,yBAA9B,YACGy+B,IAAgB7b,EAAQ,eACvBwY,IAAaxY,EAAQ,gBACtB,EAAe,OAAS,MAC1B,EAAY,CAAC,EACpB,CAgCA,MA/BA,GAAUkY,EACVwD,GAAQ1b,EAAS1V,CAAc,EAC/B,EAAY,GAAOA,EAAe,MAAQ,KAC1ClN,GAAW86B,GACL,EAAU5tB,EAAe,UAC1B,EACC4tB,GAA4B,OAAOh7B,EAAU,0BAAhC,WACT,KACAE,EAAQ,OAAO,EACpB,EAAe,OAAS,EAChB4iB,IAAT,MAAoBkY,GACd,EAAe,MAAQ5M,GACvBhhB,EACA0V,EAAQ,MACR,KACApT,CACF,EACC,EAAe,MAAQ0e,GACtBhhB,EACA,KACApN,EACA0P,CACF,GACAytB,GAAkBra,EAAS1V,EAAgBpN,EAAW0P,CAAW,EACpE,EAAe,cAAgBxP,EAAQ,MACvC,EAAUkN,EAAe,OACzB,EAAUmwB,GACTza,EACA1V,EACAsC,CACF,EACGoT,CACT,CACA,SAASic,GACP,EACA,EACA,EACA,EACA,CAIA,OAHAzY,GAAoB,EACpB,EAAe,OAAS,IACxB6W,GAAkBra,EAAS1V,EAAgBgwB,EAAc1tB,CAAW,EAC7DtC,EAAe,KACxB,CACA,IAAI4xB,GAAmB,CACrB,WAAY,KACZ,YAAa,KACb,UAAW,EACX,gBAAiB,IACnB,EACA,SAASC,GAA4B,EAAa,CAChD,MAAO,CAAE,UAAWvvB,EAAa,UAAW8a,GAAkB,CAAE,CAClE,CACA,SAAS0U,GACP,EACA,EACA,EACA,CAGA,MAFA,GAAmBpc,IAAT,KAAuD,EAApCA,EAAQ,WAAa,CAACpT,EACnDyvB,IAAwB,GAAWC,IAC5Btc,CACT,CACA,SAASuc,GAAwB,EAAS,EAAgB,EAAa,CACrE,IAAIrE,EAAY5tB,EAAe,aAC7BkyB,EAAe,CAAC,EAChBjB,EAAa,GAAOjxB,EAAe,MAAQ,KAC3C4Y,EASF,IARC,EAAkBqY,KAChB,EACUvb,IAAT,MAA6BA,EAAQ,gBAAjB,KAChB,CAAC,EACD,GAAOiO,GAAoB,QAAU,IAC7C/K,IAAqB,EAAe,CAAC,EAAK,EAAe,OAAS,MAClE,EAAkB,GAAO5Y,EAAe,MAAQ,IAChD,EAAe,OAAS,IACX0V,IAAT,KAAkB,CACpB,GAAI5M,EAAa,CA0Bf,GAzBAopB,EACIzO,GAA+BzjB,CAAc,EAC7C8jB,GAA4B,GAC/B,EAAU9L,IACL,EAAUkZ,GACVxb,EACAwC,EACF,EACC,EAAmBxC,IAAT,MAA4BA,EAAQ,OAAhB,IAAuBA,EAAU,KACvDA,IAAT,OACI,EAAe,cAAgB,CAC/B,WAAYA,EACZ,YACWwB,KAAT,KAEI,KADA,CAAE,GAAIC,GAAe,SAAUC,EAAoB,EAEzD,UAAW,UACX,gBAAiB,IACnB,EACC,EAAchB,GAAkCV,CAAO,EACvD,EAAY,OAAS1V,EACrB,EAAe,MAAQsC,EACvB,GAAuBtC,EACvB,EAAyB,OAC3B,EAAU,KACF0V,IAAT,KAAkB,MAAM0C,GAAyBpY,CAAc,EAInE,MAHA,CAEKA,EAAe,MAFpBskB,GAA2B5O,CAAO,EACN,GACA,UACrB,IACT,CAgCA,MA/BA,GAAakY,EAAU,SACvB,EAAYA,EAAU,SAClBsE,GAEApO,GAA4B,EAC3B,EAAe9jB,EAAe,KAC9B,EAAa8wB,GACZ,CAAE,KAAM,SAAU,SAAUG,CAAW,EACvCiB,CACF,EACC,EAAYlc,GACX4X,EACAsE,EACA5vB,EACA,IACF,EACC,EAAW,OAAStC,EACpB,EAAU,OAASA,EACnB,EAAW,QAAU4tB,EACrB,EAAe,MAAQqD,EACvB,EAAYjxB,EAAe,MAC3B,EAAU,cAAgB6xB,GAA4BvvB,CAAW,EACjE,EAAU,WAAawvB,GACtBpc,EACAkD,EACAtW,CACF,EACC,EAAe,cAAgBsvB,GAChClB,GAA0B,KAAM9C,CAAS,IAE7CnK,GAA+BzjB,CAAc,EACtCmyB,GAA6BnyB,EAAgBixB,CAAU,EAChE,CACA,IAAI5H,EAAY3T,EAAQ,cACxB,GAAa2T,IAAT,KAAoB,CACtB,IAAI+I,EAAgB/I,EAAU,WAC9B,GAAa+I,IAAT,KACF,OAAOC,GACL3c,EACA1V,EACAixB,EACArY,EACAgV,EACAwE,EACA/I,EACA/mB,CACF,CACJ,CAoEA,OAnEI4vB,GAEApO,GAA4B,EAC3B,EAAe8J,EAAU,SACzB,EAAa5tB,EAAe,KAC5B,EAAY0V,EAAQ,MACpB,EAAgB2T,EAAU,QAC1B,EAAY5T,GAAqB4T,EAAW,CAC3C,KAAM,SACN,SAAUuE,EAAU,QACtB,CAAC,EACA,EAAU,aAAevE,EAAU,aAAe,WAC1C+I,IAAT,MAEM,EAAepc,GACfkc,EACAjB,EACA3uB,EACA,IACF,EACC,EAAa,OAAS,GAPtB,EAAemT,GAAqB2c,EAAeF,CAAY,EAQnE,EAAa,OAASlyB,EACtB,EAAU,OAASA,EACnB,EAAU,QAAUkyB,EACpB,EAAe,MAAQtE,EACxB8C,GAA0B,KAAM9C,CAAS,EACxC,EAAY5tB,EAAe,MAC3B,EAAe0V,EAAQ,MAAM,cACrBwc,IAAT,KACK,EAAeL,GAA4BvvB,CAAW,GACrD,EAAa4vB,EAAa,UACnBjB,IAAT,KAMK,EAAa7T,GAAkB,GAL9B,EAAY/B,GAAa,cAC1B,EACC4V,EAAW,SAAW5H,EAElB4H,EADA,CAAE,OAAQ5H,EAAW,KAAMA,CAAU,GAG9C,EAAe,CACd,UAAW6I,EAAa,UAAY5vB,EACpC,UAAW2uB,CACb,GACH,EAAU,cAAgBiB,EAC1B,EAAU,WAAaJ,GACtBpc,EACAkD,EACAtW,CACF,EACC,EAAe,cAAgBsvB,GAChClB,GAA0Bhb,EAAQ,MAAOkY,CAAS,IAEtDnK,GAA+BzjB,CAAc,EAC7C,EAAc0V,EAAQ,MACtB,EAAUpT,EAAY,QACtB,EAAcmT,GAAqBnT,EAAa,CAC9C,KAAM,UACN,SAAUsrB,EAAU,QACtB,CAAC,EACD,EAAY,OAAS5tB,EACrB,EAAY,QAAU,KACb0V,IAAT,OACI,EAAkB1V,EAAe,UAC1B4Y,IAAT,MACM,EAAe,UAAY,CAAClD,CAAO,EAAK,EAAe,OAAS,IAClEkD,EAAgB,KAAKlD,CAAO,GAClC,EAAe,MAAQpT,EACvB,EAAe,cAAgB,KACxBA,EACT,CACA,SAAS6vB,GAA6B,EAAgB,EAAiB,CAMrE,MALA,GAAkBrB,GAChB,CAAE,KAAM,UAAW,SAAUwB,CAAgB,EAC7CtyB,EAAe,IACjB,EACA,EAAgB,OAASA,EACjB,EAAe,MAAQsyB,CACjC,CACA,SAASxB,GAAkC,EAAgB,EAAM,CAG/D,MAFA,GAAiBvb,GAAqB,GAAIgd,EAAgB,KAAMjd,CAAI,EACpE,EAAe,MAAQ,EAChBid,CACT,CACA,SAASC,GACP,EACA,EACA,EACA,CAQA,OAPAxR,GAAqBhhB,EAAgB0V,EAAQ,MAAO,KAAMpT,CAAW,EACrE,EAAU6vB,GACRnyB,EACAA,EAAe,aAAa,QAC9B,EACA,EAAQ,OAAS,EACjB,EAAe,cAAgB,KACxB0V,CACT,CACA,SAAS2c,GACP,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CACA,GAAIpB,EA6CF,OA5CIjxB,EAAe,MAAQ,KAEvByjB,GAA+BzjB,CAAc,EAC5C,EAAe,OAAS,KACzBwyB,GACE9c,EACA1V,EACAsC,CACF,GAEStC,EAAe,gBAAxB,MAOJ8jB,GAA4B,EAC5B,EAAmB8J,EAAU,SAC7B,EAAgB5tB,EAAe,KAC/B,EAAY8wB,GACV,CAAE,KAAM,UAAW,SAAUlD,EAAU,QAAS,EAChDvzB,CACF,EACA,EAAmB2b,GACjByc,EACAp4B,EACAiI,EACA,IACF,EACA,EAAiB,OAAS,EAC1B,EAAU,OAAStC,EACnB,EAAiB,OAASA,EAC1B,EAAU,QAAUyyB,EACpB,EAAe,MAAQ7E,EACvB5M,GAAqBhhB,EAAgB0V,EAAQ,MAAO,KAAMpT,CAAW,EACrE,EAAYtC,EAAe,MAC3B,EAAU,cAAgB6xB,GAA4BvvB,CAAW,EACjE,EAAU,WAAawvB,GACrBpc,EACAgd,EACApwB,CACF,EACA,EAAe,cAAgBsvB,GACxBlB,GAA0B,KAAM9C,CAAS,IAhC5C9J,GAA4B,EAC3B,EAAe,MAAQpO,EAAQ,MAC/B,EAAe,OAAS,IACzB,MAgCN,GADA+N,GAA+BzjB,CAAc,EACzCskB,GAA2BmO,CAAgB,EAAG,CAGhD,GAFA,EACEA,EAAiB,aAAeA,EAAiB,YAAY,QAC3DC,EAAyB,IAAIC,EAASD,EAAwB,KAOlE,MANA,GAA0BC,EACnBD,IAAP,KACI,EAAY,MAAMn6B,EAAuB,GAAG,CAAC,EAC9C,EAAU,MAAQ,GAClB,EAAU,OAASm6B,EACpBra,GAAoB,CAAE,MAAOuV,EAAW,OAAQ,KAAM,MAAO,IAAK,CAAC,GAC9D4E,GACL9c,EACA1V,EACAsC,CACF,CACF,CAIA,GAHAujB,IACEzL,GAA8B1E,EAAS1V,EAAgBsC,EAAa,CAAC,CAAC,EACxE,GAAiCA,EAAcoT,EAAQ,cAA7B,EACtBmQ,IAAoB6M,EAAyB,CAC/C,GAAazP,GAA6B,UAAtC,KACF,OAAOuP,GACL9c,EACA1V,EACAsC,CACF,EAEF,GADA,EAA0B2a,EAEfyV,IAAT,OACE,EAAYruB,GACZquB,EACApwB,CACF,EACMsrB,IAAN,GAAmBA,IAAcvzB,EAAc,WAE/C,KACI,GAAc,UAAYuzB,EAC5B7Y,GAA+BW,EAASkY,CAAS,EACjDlF,GAAsBgK,EAAyBhd,EAASkY,CAAS,EACjEkC,GAIJ,OAFAzL,GAA0BoO,CAAgB,GACxChD,GAAgC,EAC3B+C,GACL9c,EACA1V,EACAsC,CACF,CACF,CAmBA,OAlBI+hB,GAA0BoO,CAAgB,GAEzC,EAAe,OAAS,IACxB,EAAe,MAAQ/c,EAAQ,MAChC,OAEJ,EAAUrb,EAAc,YACxB,EAAyB4e,GAAkBwZ,EAAiB,WAAW,EACvE,GAAuBzyB,EACvB,EAAc,CAAC,EACf,GAAkB,KAClB,GAAyB,CAAC,EACjB0V,IAAT,MAAoBmC,GAA4B7X,EAAgB0V,CAAO,EACvE,EAAiByc,GACfnyB,EACA4tB,EAAU,QACZ,EACA,EAAe,OAAS,UACjB5tB,EACT,CACA,SAAS4yB,GAA4B,EAAO,EAAa,EAAiB,CACxE,EAAM,OAAStwB,EACf,IAAI5H,EAAYR,EAAM,UACbQ,IAAT,OAAuB,EAAU,OAAS4H,GAC1CsX,GAAgC1f,EAAM,OAAQoI,EAAauX,CAAe,CAC5E,CACA,SAASgZ,GAAmB,EAAY,CACtC,IAAK,IAAIC,EAAiB,KAAevpB,IAAT,MAAuB,CACrD,IAAIwpB,EAAaxpB,EAAW,UACnBwpB,IAAT,MACW5O,GAAmB4O,CAAU,IAAtC,OACC,EAAiBxpB,GACpB,EAAaA,EAAW,OAC1B,CACA,OAAOupB,CACT,CACA,SAASE,GACP,EACA,EACA,EACA,EACA,EACA,EACA,CACA,IAAIC,EAAcjzB,EAAe,cACxBizB,IAAT,KACK,EAAe,cAAgB,CACjB,cACb,UAAW,KACX,mBAAoB,EACpB,KAAMH,EACA,OACI,WACK,eACjB,GACE,EAAY,YAAcI,EAC3B,EAAY,UAAY,KACxB,EAAY,mBAAqB,EACjC,EAAY,KAAOJ,EACnB,EAAY,KAAOK,EACnB,EAAY,SAAWC,EACvB,EAAY,cAAgBrc,EACnC,CACA,SAASsc,GAAgB,EAAO,CAC9B,IAAIjP,EAAMlqB,EAAM,MAChB,IAAK,EAAM,MAAQ,KAAekqB,IAAT,MAAgB,CACvC,IAAIkP,EAAUlP,EAAI,QAClB,EAAI,QAAUlqB,EAAM,MACpB,EAAM,MAAQkqB,EACd,EAAMkP,CACR,CACF,CACA,SAASC,GAA4B,EAAS,EAAgB,EAAa,CACzE,IAAI3F,EAAY5tB,EAAe,aAC7BwzB,EAAc5F,EAAU,YACxBwF,EAAWxF,EAAU,KACvB,EAAYA,EAAU,SACtB,IAAI6F,EAAkB9P,GAAoB,QAC1C,GAAI3jB,EAAe,MAAQ,IACzB,OAAOgkB,GAAwBhkB,EAAgByzB,CAAe,EAAG,KACnE,IAAIC,EAAsB,GAAOD,EAAkB,GAYnD,GAXAC,GACM,EAAmBD,EAAkB,EAAK,EAC3C,EAAe,OAAS,KACxB,GAAmB,EACxBzP,GAAwBhkB,EAAgByzB,CAAe,EACvCD,IAAhB,aAAwC9d,IAAT,MAC1B2d,GAAgB3d,CAAO,EACxBqa,GAAkBra,EAAS1V,EAAgB4tB,EAAWtrB,CAAW,EACjE+wB,GAAgB3d,CAAO,GACvBqa,GAAkBra,EAAS1V,EAAgB4tB,EAAWtrB,CAAW,EACrE,EAAYwG,EAAciO,GAAgB,EACtC,CAAC2c,GAAgChe,IAAT,MAA2BA,EAAQ,MAAQ,IACrE,EAAG,IAAK,EAAU1V,EAAe,MAAgB0V,IAAT,MAAoB,CAC1D,GAAWA,EAAQ,MAAf,GACOA,EAAQ,gBAAjB,MACEkd,GAA4Bld,EAASpT,EAAatC,CAAc,OAC/D,GAAW0V,EAAQ,MAAf,GACPkd,GAA4Bld,EAASpT,EAAatC,CAAc,OAC7D,GAAa0V,EAAQ,QAAjB,KAAwB,CAC/B,EAAQ,MAAM,OAASA,EACvB,EAAUA,EAAQ,MAClB,QACF,CACA,GAAIA,IAAY1V,EAAgB,MAAM,EACtC,KAAgB0V,EAAQ,UAAjB,MAA4B,CACjC,GAAaA,EAAQ,SAAjB,MAA2BA,EAAQ,SAAW1V,EAChD,MAAM,EACR,EAAU0V,EAAQ,MACpB,CACA,EAAQ,QAAQ,OAASA,EAAQ,OACjC,EAAUA,EAAQ,OACpB,CACF,OAAQ8d,EAAR,CACE,IAAK,YACH,EAAcX,GAAmB7yB,EAAe,KAAK,EAC5CsC,IAAT,MACM,EAActC,EAAe,MAAS,EAAe,MAAQ,OAC7D,EAAcsC,EAAY,QAC3B,EAAY,QAAU,KACvB+wB,GAAgBrzB,CAAc,GAClCgzB,GACEhzB,EACA,CAAC,EACDwzB,EACA,KACAJ,EACAxF,CACF,EACA,MACF,IAAK,4BAGH,IAFA,EAAc,KACd,EAAc5tB,EAAe,MACxB,EAAe,MAAQ,KAAewzB,IAAT,MAAwB,CAExD,GADA,EAAUA,EAAY,UACT9d,IAAT,MAA6ByO,GAAmBzO,CAAO,IAAnC,KAAsC,CAC5D,EAAe,MAAQ8d,EACvB,KACF,CACA,EAAUA,EAAY,QACtB,EAAY,QAAUlxB,EACtB,EAAckxB,EACd,EAAc9d,CAChB,CACAsd,GACEhzB,EACA,CAAC,EACDsC,EACA,KACA8wB,EACAxF,CACF,EACA,MACF,IAAK,WACHoF,GACEhzB,EACA,CAAC,EACD,KACA,KACA,IAAK,GACL4tB,CACF,EACA,MACF,IAAK,cACH,EAAe,cAAgB,KAC/B,MACF,QACE,EAAeiF,GAAmB7yB,EAAe,KAAK,EAC3CsC,IAAT,MACM,EAActC,EAAe,MAC9B,EAAe,MAAQ,OACtB,EAAcsC,EAAY,QAAW,EAAY,QAAU,MACjE0wB,GACEhzB,EACA,CAAC,EACDwzB,EACAlxB,EACA8wB,EACAxF,CACF,CACN,CACA,OAAO5tB,EAAe,KACxB,CACA,SAAS2zB,GAAsB,EAAS,EAAgB,EAAa,CACnE,IAAI5F,EAAW/tB,EAAe,aAG9B,OAFAyZ,GAAazZ,EAAgBA,EAAe,KAAM+tB,EAAS,KAAK,EAChEgC,GAAkBra,EAAS1V,EAAgB+tB,EAAS,SAAUzrB,CAAW,EAClEtC,EAAe,KACxB,CACA,SAASmwB,GAA6B,EAAS,EAAgB,EAAa,CAG1E,GAFSza,IAAT,OAAqB,EAAe,aAAeA,EAAQ,cAC3D,IAAkC1V,EAAe,OACtCsC,EAActC,EAAe,cAApC,EACF,IAAa0V,IAAT,KAEC,IAAA0E,GACC1E,EACA1V,EACAsC,EACA,CAAC,CACH,GACOA,EAActC,EAAe,cAApC,EAEA,OAAO,IAAA,MACJ,OAAO,IAAA,CAChB,GAAa0V,IAAT,MAAoB1V,EAAe,QAAU0V,EAAQ,MACvD,MAAM,MAAMnd,EAAuB,GAAG,CAAC,EACzC,GAAayH,EAAe,QAAxB,KAA+B,CAIjC,IAHA,EAAUA,EAAe,MACzB,EAAcyV,GAAqBC,EAASA,EAAQ,YAAY,EAChE,EAAe,MAAQpT,EAClB,EAAY,OAAStC,EAAyB0V,EAAQ,UAAjB,MACxC,EAAWA,EAAQ,QAChB,EAAc,EAAY,QACzBD,GAAqBC,EAASA,EAAQ,YAAY,EACnD,EAAY,OAAS1V,EAC1B,EAAY,QAAU,IACxB,CACA,OAAOA,EAAe,KACxB,CACA,SAASswB,GAA8B,EAAS,EAAa,CAG3D,OAFW5a,EAAQ,MAAQpT,KAAvB,IACJ,EAAUoT,EAAQ,aACX,GAASA,IAAT,MAAoB8E,GAAsB9E,CAAO,GAC1D,CACA,SAASke,GACP,EACA,EACA,EACA,CACA,OAAQ5zB,EAAe,IAAvB,CACE,IAAK,GACHrC,GAAkBqC,EAAgBA,EAAe,UAAU,aAAa,EACxEyZ,GAAazZ,EAAgBqb,GAAc3F,EAAQ,cAAc,KAAK,EACtEwD,GAAoB,EACpB,MACF,IAAK,IACL,IAAK,GACHlb,GAAgBgC,CAAc,EAC9B,MACF,IAAK,GACHrC,GAAkBqC,EAAgBA,EAAe,UAAU,aAAa,EACxE,MACF,IAAK,IACHyZ,GACEzZ,EACAA,EAAe,KACfA,EAAe,cAAc,KAC/B,EACA,MACF,IAAK,IACH,GAAaA,EAAe,gBAAxB,KACF,MACG,GAAe,OAAS,IACzB4jB,GAAsC5jB,CAAc,EACpD,KAEJ,MACF,IAAK,IACH,IAAI6zB,EAAY7zB,EAAe,cAC/B,GAAa6zB,IAAT,KAAoB,CACtB,GAAaA,EAAU,aAAnB,KACF,OACEpQ,GAA+BzjB,CAAc,EAC5C,EAAe,OAAS,IACzB,KAEJ,EAAYoa,GACV1E,EACA1V,EACAsC,EACA,CAAC,CACH,EACA,IAAIwxB,EAAoB9zB,EAAe,MAAM,WAS7C,OARI6zB,IAAoBvxB,EAAcwxB,KAArB,EACR7B,GAAwBvc,EAAS1V,EAAgBsC,CAAW,GACrEmhB,GAA+BzjB,CAAc,EAC7C,EAAUmwB,GACRza,EACA1V,EACAsC,CACF,EACgBoT,IAAT,KAAqC,KAAlBA,EAAQ,QACpC,CACA+N,GAA+BzjB,CAAc,EAC7C,MACF,IAAK,IACH,GAAIA,EAAe,MAAQ,IACzB,OAAOuzB,GACL7d,EACA1V,EACAsC,CACF,EAWF,GAVA,EAAoB,GAAOoT,EAAQ,MAAQ,KAC3C,GAAmBpT,EAActC,EAAe,cAApC,EACZ,AAOG6zB,KANAzZ,GACC1E,EACA1V,EACAsC,EACA,CAAC,CACH,GACoBA,EAActC,EAAe,cAApC,GACX8zB,EAAmB,CACrB,GAAID,EACF,OAAON,GACL7d,EACA1V,EACAsC,CACF,EACF,EAAe,OAAS,GAC1B,CAOA,GANA,EAAoBtC,EAAe,cAC1B8zB,IAAT,OACI,EAAkB,UAAY,KAC/B,EAAkB,KAAO,KACzB,EAAkB,WAAa,MAClC9P,GAAwBhkB,EAAgB2jB,GAAoB,OAAO,EAC/DkQ,EAAW,MACV,OAAO,KACd,IAAK,IACH,MACG,GAAe,MAAQ,EACxBrD,GACE9a,EACA1V,EACAsC,EACAtC,EAAe,YACjB,EAEJ,IAAK,IACHyZ,GAAazZ,EAAgBqb,GAAc3F,EAAQ,cAAc,KAAK,CAC1E,CACA,OAAOya,GAA6Bza,EAAS1V,EAAgBsC,CAAW,CAC1E,CACA,SAASyxB,GAAU,EAAS,EAAgB,EAAa,CACvD,GAAare,IAAT,KACF,IAAIA,EAAQ,gBAAkB1V,EAAe,aAC3C,GAAmB,CAAC,MACjB,CACH,GACE,CAACswB,GAA8B5a,EAASpT,CAAW,GACnD,EAAOtC,EAAe,MAAQ,KAE9B,MACG,IAAmB,CAAC,EACrB4zB,GACEle,EACA1V,EACAsC,CACF,EAEJ,GAAmB,GAAOoT,EAAQ,MAAQ,OAC5C,MAEA,IAAoB,CAAC,EACnB5M,GACS9I,EAAe,MAAQ,SAC9BuX,GAAWvX,EAAgB+W,GAAe/W,EAAe,KAAK,EAEpE,OADA,EAAe,MAAQ,EACfA,EAAe,IAAvB,CACE,IAAK,IACH,EAAG,CACD,IAAInN,EAAQmN,EAAe,aAG3B,GAFA,EAAUge,GAAYhe,EAAe,WAAW,EAChD,EAAe,KAAO0V,EACH,OAAOA,GAAtB,WACFF,GAAgBE,CAAO,GACjB,EAAQ0Y,GAA2B1Y,EAAS7iB,CAAK,EAClD,EAAe,IAAM,EACrB,EAAiBy+B,GAChB,KACAtxB,EACA0V,EACA7iB,EACAyP,CACF,IACE,EAAe,IAAM,EACtB,EAAiBiuB,GAChB,KACAvwB,EACA0V,EACA7iB,EACAyP,CACF,OACD,CACH,GAAeoT,GAAW,KAAkB,CAC1C,IAAIse,EAAWte,EAAQ,SACvB,GAAIse,IAAahiC,EAAwB,CACvC,EAAe,IAAM,GACrB,EAAiBi+B,GACf,KACAjwB,EACA0V,EACA7iB,EACAyP,CACF,EACA,MAAM,CACR,CAAO,GAAI0xB,IAAa9hC,GAAiB,CACvC,EAAe,IAAM,GACrB,EAAiBk+B,GACf,KACApwB,EACA0V,EACA7iB,EACAyP,CACF,EACA,MAAM,CACR,CAAO,GAAI0xB,IAAajiC,GAAoB,CAC1C,EAAe,IAAM,GACrB,EAAe,KAAO2jB,EACtB,EAAiBie,GACf,KACA3zB,EACAsC,CACF,EACA,MAAM,CACR,CACF,CAEA,KADA,GAAiBtF,GAAyB0Y,CAAO,GAAKA,EAChD,MAAMnd,EAAuB,IAAKyH,EAAgB,EAAE,CAAC,CAC7D,CACF,CACA,OAAOA,EACT,IAAK,GACH,OAAOuwB,GACL7a,EACA1V,EACAA,EAAe,KACfA,EAAe,aACfsC,CACF,EACF,IAAK,GACH,MACG,GAAQtC,EAAe,KACvB,EAAWouB,GACVv7B,EACAmN,EAAe,YACjB,EACAsxB,GACE5b,EACA1V,EACAnN,EACAmhC,EACA1xB,CACF,EAEJ,IAAK,GACH,EAAG,CAKD,GAJA3E,GACEqC,EACAA,EAAe,UAAU,aAC3B,EACa0V,IAAT,KAAkB,MAAM,MAAMnd,EAAuB,GAAG,CAAC,EAC7D,EAAQyH,EAAe,aACvB,IAAIqpB,EAAYrpB,EAAe,cAC/B,EAAWqpB,EAAU,QACrBjI,GAAiB1L,EAAS1V,CAAc,EACxCmiB,GAAmBniB,EAAgBnN,EAAO,KAAMyP,CAAW,EAC3D,IAAIonB,EAAY1pB,EAAe,cAY/B,GAXA,EAAQ0pB,EAAU,MAClBjQ,GAAazZ,EAAgBqb,GAAcxoB,CAAK,EAChDA,IAAUw2B,EAAU,OAClBvP,GACE9Z,EACA,CAACqb,EAAY,EACb/Y,EACA,CAAC,CACH,EACF2f,GAA4C,EAC5C,EAAQyH,EAAU,QACdL,EAAU,aACZ,IACI,EAAY,CACZ,QAASx2B,EACT,aAAc,CAAC,EACf,MAAO62B,EAAU,KACnB,EACC,EAAe,YAAY,UAAYL,EACvC,EAAe,cAAgBA,EAChCrpB,EAAe,MAAQ,IACvB,CACA,EAAiB2xB,GACfjc,EACA1V,EACAnN,EACAyP,CACF,EACA,MAAM,CACR,CAAO,GAAIzP,IAAUmhC,EAAU,CAC7B,EAAWvd,GACT,MAAMle,EAAuB,GAAG,CAAC,EACjCyH,CACF,EACAqY,GAAoB2b,CAAQ,EAC5B,EAAiBrC,GACfjc,EACA1V,EACAnN,EACAyP,CACF,EACA,MAAM,CACR,CAEE,OADA,EAAUtC,EAAe,UAAU,cAC3B0V,EAAQ,SAAhB,CACE,IAAK,GACH,EAAUA,EAAQ,KAClB,MACF,QACE,EACaA,EAAQ,WAAnB,OACIA,EAAQ,cAAc,KACtBA,CACV,CAYA,IAXA,EAAyBuD,GAAkBvD,EAAQ,UAAU,EAC7D,GAAuB1V,EACvB,EAAc,CAAC,EACf,GAAkB,KAClB,GAAyB,CAAC,EAC1B,EAAcihB,GACZjhB,EACA,KACAnN,EACAyP,CACF,EACK,EAAe,MAAQA,EAAaA,GACvC,EAAa,MAASA,EAAY,MAAQ,GAAM,UAC7C,EAAcA,EAAY,OACjC,KACG,CAEH,GADA4W,GAAoB,EAChBrmB,IAAUmhC,EAAU,CACtB,EAAiB7D,GACfza,EACA1V,EACAsC,CACF,EACA,MAAM,CACR,CACAytB,GAAkBra,EAAS1V,EAAgBnN,EAAOyP,CAAW,CAC/D,CACA,EAAiBtC,EAAe,KAClC,CACA,OAAOA,EACT,IAAK,IACH,OACEoxB,GAAQ1b,EAAS1V,CAAc,EACtB0V,IAAT,MACK,EAAcue,GACbj0B,EAAe,KACf,KACAA,EAAe,aACf,IACF,GACG,EAAe,cAAgBsC,EAChCwG,IACC,EAAe,UAAYorB,GAC1Bl0B,EAAe,KACfA,EAAe,aACfvC,GAAwB,QACxBuC,CACF,GACD,EAAe,cAAgBi0B,GAC9Bj0B,EAAe,KACf0V,EAAQ,cACR1V,EAAe,aACf0V,EAAQ,aACV,EACJ,KAEJ,IAAK,IACH,OACE1X,GAAgBgC,CAAc,EACrB0V,IAAT,MACE5M,IACE,EAAQ,EAAe,UACvBqrB,GACEn0B,EAAe,KACfA,EAAe,aACfvC,GAAwB,OAC1B,EACD,GAAuBuC,EACvB,GAAyB,CAAC,EAC1B,EAAWgY,EACZe,GAAiB/Y,EAAe,IAAI,GAC9B,GAA8Cg0B,EAC/C,EAAyB/a,GAAkBpmB,EAAM,UAAU,GAC3D,EAAyBmhC,GAChCjE,GACEra,EACA1V,EACAA,EAAe,aAAa,SAC5BsC,CACF,EACA8uB,GAAQ1b,EAAS1V,CAAc,EACtB0V,IAAT,OAAqB,EAAe,OAAS,SAC7C1V,EAAe,MAEnB,IAAK,GAwCH,OAvCa0V,IAAT,MAAoB5M,KACjB,EAAW,EAAQkP,KACtB,EAASoc,GACPvhC,EACAmN,EAAe,KACfA,EAAe,aACfkY,EACF,EACWrlB,IAAT,KAMK,EAAW,CAAC,GALX,EAAe,UAAYA,EAC5B,GAAuBmN,EACvB,EAAyBiZ,GAAkBpmB,EAAM,UAAU,EAC3D,GAAyB,CAAC,EAC1B,EAAW,CAAC,IAErBmhC,GAAY5b,GAAyBpY,CAAc,GAErDhC,GAAgBgC,CAAc,EAC9B,EAAWA,EAAe,KAC1B,EAAYA,EAAe,aAC3B,EAAqB0V,IAAT,KAA2C,KAAxBA,EAAQ,cACvC,EAAQ2T,EAAU,SAClBxQ,GAAqBmb,EAAU3K,CAAS,EACnC,EAAQ,KACAK,IAAT,MACA7Q,GAAqBmb,EAAUtK,CAAS,IACvC,EAAe,OAAS,IACpB1pB,EAAe,gBAAxB,OACI,EAAWolB,GACX1P,EACA1V,EACAgmB,GACA,KACA,KACA1jB,CACF,EACC,GAAsB,cAAgB0xB,GACzC5C,GAAQ1b,EAAS1V,CAAc,EAC/B+vB,GAAkBra,EAAS1V,EAAgBnN,EAAOyP,CAAW,EACtDtC,EAAe,MACxB,IAAK,GAgBH,OAfa0V,IAAT,MAAoB5M,KACjB,EAAU,EAAckP,KAC3B,EAAeqc,GACb/xB,EACAtC,EAAe,aACfkY,EACF,EACW5V,IAAT,KAKK,EAAU,CAAC,GAJV,EAAe,UAAYA,EAC5B,GAAuBtC,EACvB,EAAyB,KACzB,EAAU,CAAC,IAEpB0V,GAAW0C,GAAyBpY,CAAc,GAE7C,KACT,IAAK,IACH,OAAOiyB,GAAwBvc,EAAS1V,EAAgBsC,CAAW,EACrE,IAAK,GACH,OACE3E,GACEqC,EACAA,EAAe,UAAU,aAC3B,EACC,EAAQA,EAAe,aACf0V,IAAT,KACK,EAAe,MAAQsL,GACtBhhB,EACA,KACAnN,EACAyP,CACF,EACAytB,GAAkBra,EAAS1V,EAAgBnN,EAAOyP,CAAW,EACjEtC,EAAe,MAEnB,IAAK,IACH,OAAOiwB,GACLva,EACA1V,EACAA,EAAe,KACfA,EAAe,aACfsC,CACF,EACF,IAAK,GACH,MACG,GAAQtC,EAAe,aACxBoxB,GAAQ1b,EAAS1V,CAAc,EAC/B+vB,GAAkBra,EAAS1V,EAAgBnN,EAAOyP,CAAW,EAC7DtC,EAAe,MAEnB,IAAK,GACH,OACE+vB,GACEra,EACA1V,EACAA,EAAe,aAAa,SAC5BsC,CACF,EACAtC,EAAe,MAEnB,IAAK,IACH,OACE+vB,GACEra,EACA1V,EACAA,EAAe,aAAa,SAC5BsC,CACF,EACAtC,EAAe,MAEnB,IAAK,IACH,OAAO2zB,GAAsBje,EAAS1V,EAAgBsC,CAAW,EACnE,IAAK,GACH,MACG,GAAWtC,EAAe,KAAK,SAC/B,EAAQA,EAAe,aAAa,SACrC0a,GAAqB1a,CAAc,EAClC,EAAW2a,GAAYqZ,CAAQ,EAC/B,EAAQnhC,EAAMmhC,CAAQ,EACtB,EAAe,OAAS,EACzBjE,GAAkBra,EAAS1V,EAAgBnN,EAAOyP,CAAW,EAC7DtC,EAAe,MAEnB,IAAK,IACH,OAAOowB,GACL1a,EACA1V,EACAA,EAAe,KACfA,EAAe,aACfsC,CACF,EACF,IAAK,IACH,OAAO+tB,GACL3a,EACA1V,EACAA,EAAe,KACfA,EAAe,aACfsC,CACF,EACF,IAAK,IACH,OAAOixB,GAA4B7d,EAAS1V,EAAgBsC,CAAW,EACzE,IAAK,IACH,OAAO0uB,GAAwBtb,EAAS1V,EAAgBsC,CAAW,EACrE,IAAK,IACH,OAAOkuB,GACL9a,EACA1V,EACAsC,EACAtC,EAAe,YACjB,EACF,IAAK,IACH,OACE0a,GAAqB1a,CAAc,EAClC,EAAQ2a,GAAYU,EAAY,EACxB3F,IAAT,MACM,EAAWqH,GAAkB,EACtBiX,IAAT,OACI,EAAW/W,EACZ,EAAY3B,GAAY,EACxB,EAAS,YAAc+N,EACxB,EAAU,WACDA,IAAT,OAAuB,EAAS,kBAAoB/mB,GACnD,EAAW+mB,GACb,EAAe,cAAgB,CAAE,OAAQx2B,EAAO,MAAOmhC,CAAS,EACjE7S,GAAsBnhB,CAAc,EACpCyZ,GAAazZ,EAAgBqb,GAAc2Y,CAAQ,KAC3Cte,EAAQ,MAAQpT,KAAvB,IACE8e,GAAiB1L,EAAS1V,CAAc,EACzCmiB,GAAmBniB,EAAgB,KAAM,KAAMsC,CAAW,EAC1D2f,GAA4C,GAC7C,EAAWvM,EAAQ,cACnB,EAAY1V,EAAe,cAC5Bg0B,EAAS,SAAWnhC,GAQd,EAAQw2B,EAAU,MACpB5P,GAAazZ,EAAgBqb,GAAcxoB,CAAK,EAChDA,IAAUmhC,EAAS,OACjBla,GACE9Z,EACA,CAACqb,EAAY,EACb/Y,EACA,CAAC,CACH,IAfA,EAAW,CAAE,OAAQzP,EAAO,MAAOA,CAAM,EAC1C,EAAe,cAAgBmhC,EAC1Bh0B,EAAe,QAArB,IACG,EAAe,cACd,EAAe,YAAY,UACzBg0B,GACNva,GAAazZ,EAAgBqb,GAAcxoB,CAAK,IAUxDk9B,GACEra,EACA1V,EACAA,EAAe,aAAa,SAC5BsC,CACF,EACAtC,EAAe,MAEnB,IAAK,IACH,OACWA,EAAe,YAAxB,OACG,EAAe,UAAY,CAC1B,SAAU,KACV,OAAQ,KACR,OAAQ,KACR,IAAK,IACP,GACD,EAAQA,EAAe,aAChBnN,EAAM,MAAd,MAAiCA,EAAM,OAAjB,OACjB,EAAe,OAAkB6iB,IAAT,KAAmB,SAAW,SACvD5M,GAAe6O,GAAuB3X,CAAc,EAC/C0V,IAAT,MAAoBA,EAAQ,cAAc,OAAS7iB,EAAM,KACpD,EAAe,OAAS,QACzBu+B,GAAQ1b,EAAS1V,CAAc,EACnC+vB,GAAkBra,EAAS1V,EAAgBnN,EAAM,SAAUyP,CAAW,EACtEtC,EAAe,MAEnB,IAAK,IACH,MAAMA,EAAe,YACzB,CACA,MAAM,MAAMzH,EAAuB,IAAKyH,EAAe,GAAG,CAAC,CAC7D,CACA,SAASs0B,GAAW,EAAgB,CAClC,EAAe,OAAS,CAC1B,CACA,SAASC,GACP,EACA,EACA,EACA,EACA,EACA,CACA,IAAI3b,EAQJ,IAPK,EAAkB,GAAO5Y,EAAe,KAAO,OAClD,EACWiuB,IAAT,KACIuG,GAAiB7/B,EAAMo5B,CAAQ,EAC/ByG,GAAiB7/B,EAAMo5B,CAAQ,IAC9BA,EAAS,MAAQE,EAAS,KACzBF,EAAS,SAAWE,EAAS,SACnCrV,EAEE,IAAA,EAAe,OAAS,UACzBtW,EAAc,aAAeA,EAE9B,IAAItC,EAAe,UAAU,SAAU,EAAe,OAAS,UAC1D,GAAIy0B,GAA6B,EAAG,EAAe,OAAS,UAE/D,KACI,IAAoBhX,GACtBF,EAAA,MAED,GAAe,OAAS,SACjC,CACA,SAASmX,GAAkC,EAAgB,EAAU,CACnE,GAAqBC,EAAS,OAA1B,cAAyCA,EAAS,MAAM,QAAU,EACpE,EAAe,OAAS,eACrB,GAAM,EAAe,OAAS,SAAW,CAACC,GAAgBD,CAAQ,EACrE,IAAIF,GAA6B,EAAG,EAAe,OAAS,UAE1D,KACI,IAAoBhX,GACtBF,EAAA,CAER,CACA,SAASsX,GAAoB,EAAgB,EAAY,CAC9CC,IAAT,OAAwB,EAAe,OAAS,GAChD90B,EAAe,MAAQ,QACnB,EACOA,EAAe,MAAtB,GAAmD,UAAvB4C,GAAmB,EAChD,EAAe,OAASkyB,EACxB,IAAqCA,EAC1C,CACA,SAASC,GAAmB,EAAa,EAA0B,CACjE,GAAI,CAACjsB,EACH,OAAQmqB,EAAY,SAApB,CACE,IAAK,UACH,MACF,IAAK,YACH,IACE,IAAI+B,EAAW/B,EAAY,KAAMgC,EAAe,KACvCD,IAAT,MAGSA,EAAS,YAAlB,OAAgC,EAAeA,GAC5C,EAAWA,EAAS,QAChBC,IAAT,KACIC,GAAqCjC,EAAY,OAArB,KACzB,EAAY,KAAO,KACnB,EAAY,KAAK,QAAU,KAC7B,EAAa,QAAU,KAC5B,MACF,QAEE,IADA,EAA2BA,EAAY,KAClC,EAAW,KAAeiC,IAAT,MACXA,EAAyB,YAAlC,OACG,EAAWA,GACX,EAA2BA,EAAyB,QAChDF,IAAT,KACK,EAAY,KAAO,KACnB,EAAS,QAAU,IAC5B,CACJ,CACA,SAASG,EAAiB,EAAe,CACvC,IAAIC,EACSC,EAAc,YAAvB,MACAA,EAAc,UAAU,QAAUA,EAAc,MAClDC,EAAgB,EAChBC,EAAe,EACjB,GAAIH,EACF,IAAK,IAAII,EAAYH,EAAc,MAAgBG,IAAT,MACxC,GAAkBA,EAAU,MAAQA,EAAU,WAC3C,GAAgBA,EAAU,aAAe,WACzC,GAAgBA,EAAU,MAAQ,WAClC,EAAU,OAASH,EACnB,EAAYG,EAAU,aAE3B,IAAK,EAAYH,EAAc,MAAgBG,IAAT,MACpC,GAAkBA,EAAU,MAAQA,EAAU,WAC3C,GAAgBA,EAAU,aAC1B,GAAgBA,EAAU,MAC1B,EAAU,OAASH,EACnB,EAAYG,EAAU,QAG7B,MAFA,GAAc,cAAgBD,EAC9B,EAAc,WAAaD,EACpBF,CACT,CACA,SAASK,GAAa,EAAS,EAAgB,EAAa,CAC1D,IAAI1H,EAAW/tB,EAAe,aAE9B,OADA4X,GAAe5X,CAAc,EACrBA,EAAe,IAAvB,CACE,IAAK,IACL,IAAK,IACL,IAAK,GACL,IAAK,IACL,IAAK,GACL,IAAK,GACL,IAAK,IACL,IAAK,GACL,IAAK,IACH,OAAOm1B,EAAiBn1B,CAAc,EAAG,KAC3C,IAAK,GACH,OAAOm1B,EAAiBn1B,CAAc,EAAG,KAC3C,IAAK,GAoBH,MAnBA,GAAcA,EAAe,UAC7B,EAAW,KACF0V,IAAT,OAAqB,EAAWA,EAAQ,cAAc,OACtD1V,EAAe,cAAc,QAAU+tB,IACpC,EAAe,OAAS,MAC3BpU,GAAY0B,EAAY,EACxBtd,GAAiB,EACjBuE,EAAY,iBACR,EAAY,QAAUA,EAAY,eACnC,EAAY,eAAiB,OACnBoT,IAAT,MAA6BA,EAAQ,QAAjB,QACtBiD,GAAkB3Y,CAAc,EAC5Bs0B,GAAWt0B,CAAc,EAChB0V,IAAT,MACCA,EAAQ,cAAc,cACrB,EAAO1V,EAAe,MAAQ,OAC9B,EAAe,OAAS,KAC1BmZ,GAAoC,IAC1Cgc,EAAiBn1B,CAAc,EACxB,KACT,IAAK,IACH,IAAIrL,EAAOqL,EAAe,KACxB01B,EAAe11B,EAAe,cA+BhC,OA9BS0V,IAAT,MACK4e,GAAWt0B,CAAc,EACjB01B,IAAT,MAGKP,EAAiBn1B,CAAc,EAChCu0B,GACEv0B,EACArL,EACA,KACAo5B,EACAzrB,CACF,IATC6yB,EAAiBn1B,CAAc,EAChC00B,GAAkC10B,EAAgB01B,CAAY,IASlEA,EACEA,IAAiBhgB,EAAQ,eAItByf,EAAiBn1B,CAAc,EAC/B,EAAe,OAAS,YAJxBs0B,GAAWt0B,CAAc,EAC1Bm1B,EAAiBn1B,CAAc,EAC/B00B,GAAkC10B,EAAgB01B,CAAY,IAG9D,EAAUhgB,EAAQ,cACpBA,IAAYqY,GAAYuG,GAAWt0B,CAAc,EACjDm1B,EAAiBn1B,CAAc,EAC/Bu0B,GACEv0B,EACArL,EACA+gB,EACAqY,EACAzrB,CACF,GACC,KACT,IAAK,IAIH,GAHAnE,GAAe6B,CAAc,EAC7B,EAAcvC,GAAwB,QACtC,EAAOuC,EAAe,KACT0V,IAAT,MAA4B1V,EAAe,WAAvB,KACtB0V,EAAQ,gBAAkBqY,GAAYuG,GAAWt0B,CAAc,MAC5D,CACH,GAAI,CAAC+tB,EAAU,CACb,GAAa/tB,EAAe,YAAxB,KACF,MAAM,MAAMzH,EAAuB,GAAG,CAAC,EAGzC,OAFA48B,EAAiBn1B,CAAc,EAC/B,EAAe,cAAgB,UACxB,IACT,CACA,EAAUzC,GAAmB,QAC7Bob,GAAkB3Y,CAAc,EAC5BsY,GAA6BtY,EAAgB0V,CAAO,GAClD,EAAUye,GAAyBx/B,EAAMo5B,EAAUzrB,CAAW,EAC/D,EAAe,UAAYoT,EAC5B4e,GAAWt0B,CAAc,EAC/B,CAGA,OAFAm1B,EAAiBn1B,CAAc,EAC/B,EAAe,cAAgB,UACxB,KACT,IAAK,GAGH,GAFA7B,GAAe6B,CAAc,EAC7B,EAAOA,EAAe,KACT0V,IAAT,MAA4B1V,EAAe,WAAvB,KACtB0V,EAAQ,gBAAkBqY,GAAYuG,GAAWt0B,CAAc,MAC5D,CACH,GAAI,CAAC+tB,EAAU,CACb,GAAa/tB,EAAe,YAAxB,KACF,MAAM,MAAMzH,EAAuB,GAAG,CAAC,EAGzC,OAFA48B,EAAiBn1B,CAAc,EAC/B,EAAe,cAAgB,UACxB,IACT,CAEA,GADA,EAAezC,GAAmB,QAC9Bob,GAAkB3Y,CAAc,EAClCsY,GAA6BtY,EAAgB01B,CAAY,MACtD,CACH,IAAIC,EAAgBC,GAClBn4B,GAAwB,OAC1B,EACA,OAAQi4B,EAAR,CACE,IAAK,GACH,EAAeC,EAAc,gBAC3B,6BACAhhC,CACF,EACA,MACF,IAAK,GACH,EAAeghC,EAAc,gBAC3B,qCACAhhC,CACF,EACA,MACF,QACE,OAAQA,EAAR,CACE,IAAK,MACH,EAAeghC,EAAc,gBAC3B,6BACAhhC,CACF,EACA,MACF,IAAK,OACH,EAAeghC,EAAc,gBAC3B,qCACAhhC,CACF,EACA,MACF,IAAK,SACH,EAAeghC,EAAc,cAAc,KAAK,EAChD,EAAa,UAAY,qBACzB,EAAeD,EAAa,YAC1BA,EAAa,UACf,EACA,MACF,IAAK,SACH,EACe,OAAO3H,EAAS,IAA7B,SACI4H,EAAc,cAAc,SAAU,CACpC,GAAI5H,EAAS,EACf,CAAC,EACD4H,EAAc,cAAc,QAAQ,EAC1C5H,EAAS,SACJ,EAAa,SAAW,CAAC,EAC1BA,EAAS,OAAS,EAAa,KAAOA,EAAS,MACnD,MACF,QACE,EACe,OAAOA,EAAS,IAA7B,SACI4H,EAAc,cAAchhC,EAAM,CAAE,GAAIo5B,EAAS,EAAG,CAAC,EACrD4H,EAAc,cAAchhC,CAAI,CAC1C,CACJ,CACA,EAAaqQ,IAAuBhF,EACpC,EAAaiF,IAAoB8oB,EACjC,EAAG,IACD,EAAgB/tB,EAAe,MACtB21B,IAAT,MAEA,CACA,GAAUA,EAAc,MAApB,GAAiCA,EAAc,MAApB,EAC7BD,EAAa,YAAYC,EAAc,SAAS,OAC7C,GACGA,EAAc,MAApB,GACOA,EAAc,MAArB,IACSA,EAAc,QAAvB,KACA,CACA,EAAc,MAAM,OAASA,EAC7B,EAAgBA,EAAc,MAC9B,QACF,CACA,GAAIA,IAAkB31B,EAAgB,MAAM,EAC5C,KAAgB21B,EAAc,UAAvB,MAAkC,CACvC,GACWA,EAAc,SAAvB,MACAA,EAAc,SAAW31B,EAEzB,MAAM,EACR,EAAgB21B,EAAc,MAChC,CACA,EAAc,QAAQ,OAASA,EAAc,OAC7C,EAAgBA,EAAc,OAChC,CACA,EAAe,UAAYD,EAC3B,EAAG,OACAG,GAAqBH,EAAc/gC,EAAMo5B,CAAQ,EAAGp5B,EADpD,CAGD,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,WACH,EAAW,CAAC,CAACo5B,EAAS,UACtB,MAAM,EACR,IAAK,MACH,EAAW,CAAC,EACZ,MAAM,EACR,QACE,EAAW,CAAC,CAChB,CACAA,GAAYuG,GAAWt0B,CAAc,CACvC,CACF,CAUA,OATAm1B,EAAiBn1B,CAAc,EAC/B,EAAe,cAAgB,UAC/Bu0B,GACEv0B,EACAA,EAAe,KACN0V,IAAT,KAAmB,KAAOA,EAAQ,cAClC1V,EAAe,aACfsC,CACF,EACO,KACT,IAAK,GACH,GAAIoT,GAAmB1V,EAAe,WAAvB,KACb0V,EAAQ,gBAAkBqY,GAAYuG,GAAWt0B,CAAc,MAC5D,CACH,GAAiB,OAAO+tB,GAApB,UAAyC/tB,EAAe,YAAxB,KAClC,MAAM,MAAMzH,EAAuB,GAAG,CAAC,EAEzC,GADA,EAAUkF,GAAwB,QAC9Bkb,GAAkB3Y,CAAc,EAAG,CAKrC,GAJA,EAAUA,EAAe,UACzB,EAAcA,EAAe,cAC7B,EAAW,KACX,EAAO+X,GACMpjB,IAAT,KACF,OAAQA,EAAK,IAAb,CACE,IAAK,IACL,IAAK,GACH,EAAWA,EAAK,aACpB,CACF,EAAQqQ,IAAuBhF,EAC/B,EACE,KAAQ,YAAcsC,GACZyrB,IAAT,MAAqB,CAAC,IAAMA,EAAS,0BACtCtV,GAAsB/C,EAAQ,UAAWpT,CAAW,GAGtDoT,GAAW0C,GAAyBpY,EAAgB,CAAC,CAAC,CACxD,KACE,GACE41B,GAAkClgB,CAAO,CAAC,CAAC,eACzCqY,CACF,EACC,EAAQ/oB,IAAuBhF,EAC/B,EAAe,UAAY0V,CAClC,CAEA,OADAyf,EAAiBn1B,CAAc,EACxB,KACT,IAAK,IAEH,GADA,EAAcA,EAAe,cAChB0V,IAAT,MAA6BA,EAAQ,gBAAjB,KAAgC,CAEtD,GADA,EAAWiD,GAAkB3Y,CAAc,EAC9BsC,IAAT,KAAsB,CACxB,GAAaoT,IAAT,KAAkB,CACpB,GAAI,CAACqY,EAAU,MAAM,MAAMx1B,EAAuB,GAAG,CAAC,EAGtD,GAFA,EAAUyH,EAAe,cACzB,EAAmB0V,IAAT,KAAwC,KAArBA,EAAQ,WACjC,CAACA,EAAS,MAAM,MAAMnd,EAAuB,GAAG,CAAC,EACrD,EAAQyM,IAAuBhF,CACjC,MACEkZ,GAAoB,EAClB,EAAOlZ,EAAe,MAAQ,OAC3B,EAAe,cAAgB,MACjC,EAAe,OAAS,EAC7Bm1B,EAAiBn1B,CAAc,EAC/B,EAAU,CAAC,CACb,KACE,GAAemZ,GAAoC,EACxCzD,IAAT,MACWA,EAAQ,gBAAjB,OACC,EAAQ,cAAc,gBAAkBpT,GAC1C,EAAU,CAAC,EAChB,GAAI,CAACoT,EAIH,OAHI1V,EAAe,MAAQ,KAClB+jB,GAAmB/jB,CAAc,EAAGA,IAC7C+jB,GAAmB/jB,CAAc,EAC1B,MAET,GAAWA,EAAe,MAAQ,IAChC,MAAM,MAAMzH,EAAuB,GAAG,CAAC,CAC3C,CAEA,OADA48B,EAAiBn1B,CAAc,EACxB,KACT,IAAK,IAEH,GADA,EAAWA,EAAe,cAEf0V,IAAT,MACUA,EAAQ,gBAAjB,MACUA,EAAQ,cAAc,aAA/B,KACF,CAEA,GADA,EAAOiD,GAAkB3Y,CAAc,EAC1B+tB,IAAT,MAA8BA,EAAS,aAAlB,KAA8B,CACrD,GAAarY,IAAT,KAAkB,CACpB,GAAI,CAAC/gB,EAAM,MAAM,MAAM4D,EAAuB,GAAG,CAAC,EAGlD,GAFA,EAAOyH,EAAe,cACtB,EAAgBrL,IAAT,KAAkC,KAAlBA,EAAK,WACxB,CAACA,EAAM,MAAM,MAAM4D,EAAuB,GAAG,CAAC,EAClD,EAAKyM,IAAuBhF,CAC9B,MACEkZ,GAAoB,EAClB,EAAOlZ,EAAe,MAAQ,OAC3B,EAAe,cAAgB,MACjC,EAAe,OAAS,EAC7Bm1B,EAAiBn1B,CAAc,EAC/B,EAAO,CAAC,CACV,KACE,GAAQmZ,GAAoC,EACjCzD,IAAT,MACWA,EAAQ,gBAAjB,OACC,EAAQ,cAAc,gBAAkB/gB,GAC1C,EAAO,CAAC,EACb,GAAI,CAACA,EAIH,OAHIqL,EAAe,MAAQ,KAClB+jB,GAAmB/jB,CAAc,EAAGA,IAC7C+jB,GAAmB/jB,CAAc,EAC1B,KAEX,CAuBA,OAtBA+jB,GAAmB/jB,CAAc,EACtBA,EAAe,MAAQ,KACxB,EAAe,MAAQsC,EAActC,IAC/C,EAAuB+tB,IAAT,KACd,EAAmBrY,IAAT,MAA6BA,EAAQ,gBAAjB,KAC9BpT,IACI,EAAWtC,EAAe,MAC3B,EAAO,KACC+tB,EAAS,YAAlB,MACWA,EAAS,UAAU,gBAA5B,MACSA,EAAS,UAAU,cAAc,YAA1C,OACC,EAAOA,EAAS,UAAU,cAAc,UAAU,MACpD,EAAe,KACPA,EAAS,gBAAlB,MACWA,EAAS,cAAc,YAAhC,OACC,EAAeA,EAAS,cAAc,UAAU,MACnD2H,IAAiB/gC,IAAS,EAAS,OAAS,OAC9C2N,IAAgBoT,GACdpT,IACC,EAAe,MAAM,OAAS,MACjCuyB,GAAoB70B,EAAgBA,EAAe,WAAW,EAC9Dm1B,EAAiBn1B,CAAc,EACxB,MACT,IAAK,GACH,OACEjC,GAAiB,EACR2X,IAAT,MACEogB,GAA2B91B,EAAe,UAAU,aAAa,EAClE,EAAe,OAAS,SACzBm1B,EAAiBn1B,CAAc,EAC/B,KAEJ,IAAK,IACH,OACE2Z,GAAY3Z,EAAe,IAAI,EAAGm1B,EAAiBn1B,CAAc,EAAG,KAExE,IAAK,IAGH,GAFAkkB,GAAuBlkB,CAAc,EACrC,EAAWA,EAAe,cACb+tB,IAAT,KAAmB,OAAOoH,EAAiBn1B,CAAc,EAAG,KAGhE,GAFA,EAAO,GAAOA,EAAe,MAAQ,KACrC,EAAe+tB,EAAS,UACX2H,IAAT,KACF,IAAI/gC,EAAMogC,GAAmBhH,EAAU,CAAC,CAAC,MACpC,CACH,GACQ2B,IAAN,GACUha,IAAT,MAA2BA,EAAQ,MAAQ,IAE5C,IAAK,EAAU1V,EAAe,MAAgB0V,IAAT,MAAoB,CAEvD,GADA,EAAeyO,GAAmBzO,CAAO,EAC5BggB,IAAT,KAAuB,CAQzB,IAPA,EAAe,OAAS,IACxBX,GAAmBhH,EAAU,CAAC,CAAC,EAC/B,EAAU2H,EAAa,YACvB,EAAe,YAAchgB,EAC7Bmf,GAAoB70B,EAAgB0V,CAAO,EAC3C,EAAe,aAAe,EAC9B,EAAUpT,EACL,EAActC,EAAe,MAAgBsC,IAAT,MACvCqT,GAAoBrT,EAAaoT,CAAO,EACrC,EAAcpT,EAAY,QAO/B,OANA0hB,GACEhkB,EACC2jB,GAAoB,QAAU,EAAK,CACtC,EACA7a,GACEuO,GAAarX,EAAgB+tB,EAAS,aAAa,EAC9C/tB,EAAe,KACxB,CACA,EAAU0V,EAAQ,OACpB,CACOqY,EAAS,OAAlB,MACE1tB,GAAI,EAAI01B,KACN,EAAe,OAAS,IACzB,EAAO,CAAC,EACThB,GAAmBhH,EAAU,CAAC,CAAC,EAC9B,EAAe,MAAQ,QAC5B,MACG,CACH,GAAI,CAACp5B,EACH,IACI,EAAUwvB,GAAmBuR,CAAY,EAAahgB,IAAT,KAG3C,IAAA,EAAe,OAAS,IACzB,EAAO,CAAC,EACR,EAAUA,EAAQ,YAClB,EAAe,YAAcA,EAC9Bmf,GAAoB70B,EAAgB0V,CAAO,EAC3Cqf,GAAmBhH,EAAU,CAAC,CAAC,EACtBA,EAAS,OAAlB,MACkBA,EAAS,WAAzB,aACcA,EAAS,WAAvB,WACA,CAAC2H,EAAa,WACd,CAAC5sB,EAEH,OAAOqsB,EAAiBn1B,CAAc,EAAG,IAAA,KAE3C,GAAIK,GAAI,EAAI0tB,EAAS,mBACnBgI,IACczzB,IAAd,YACE,EAAe,OAAS,IACzB,EAAO,CAAC,EACTyyB,GAAmBhH,EAAU,CAAC,CAAC,EAC9B,EAAe,MAAQ,QAAA,CAC9BA,EAAS,aACH,EAAa,QAAU/tB,EAAe,MACvC,EAAe,MAAQ01B,IACtB,EAAU3H,EAAS,KACZrY,IAAT,KAEK,EAAe,MAAQggB,EADvB,EAAQ,QAAUA,EAEtB,EAAS,KAAOA,EACvB,CACA,GAAa3H,EAAS,OAAlB,KAAwB,CAC1B,EAAUA,EAAS,KACnB,EAAG,CACD,IAAK,EAAcrY,EAAkBpT,IAAT,MAAwB,CAClD,GAAaA,EAAY,YAArB,KAAgC,CAClC,EAAc,CAAC,EACf,MAAM,CACR,CACA,EAAcA,EAAY,OAC5B,CACA,EAAc,CAAC,CACjB,CAiBA,MAhBA,GAAS,UAAYoT,EACrB,EAAS,KAAOA,EAAQ,QACxB,EAAS,mBAAqBrV,GAAI,EAClC,EAAQ,QAAU,KAClB,EAAesjB,GAAoB,QACnC,EAAehvB,EAAQ+gC,EAAe,EAAK,EAAIA,EAAe,EAChD3H,EAAS,WAAvB,WACgBA,EAAS,WAAzB,aACA,CAACzrB,GACDwG,EACIkb,GAAwBhkB,EAAgB01B,CAAY,GAClD,EAAcA,EAChBjoC,EAAK81B,GAA4BvjB,CAAc,EAC/CvS,EAAKk2B,GAAqBrhB,CAAW,EAC5BkhB,KAAT,OAA2B,GAAgBxjB,IAC/C8I,GAAeuO,GAAarX,EAAgB+tB,EAAS,aAAa,EAC3DrY,CACT,CAEA,OADAyf,EAAiBn1B,CAAc,EACxB,KACT,IAAK,IACL,IAAK,IACH,OACE+jB,GAAmB/jB,CAAc,EACjCsjB,GAAiB,EAChB,EAAoBtjB,EAAe,gBAAxB,KACH0V,IAAT,KAGIqY,IAAa,EAAe,OAAS,MAF3BrY,EAAQ,gBAAjB,OAAoCqY,IACpC,EAAe,OAAS,MAE7BA,EACWzrB,EAAc,WACrB,EAAOtC,EAAe,MAAQ,OAC7Bm1B,EAAiBn1B,CAAc,EAChCA,EAAe,aAAe,IAAM,EAAe,OAAS,OAC5Dm1B,EAAiBn1B,CAAc,EAClC,EAAcA,EAAe,YACrBsC,IAAT,MACEuyB,GAAoB70B,EAAgBsC,EAAY,UAAU,EAC3D,EAAc,KACNoT,IAAT,MACWA,EAAQ,gBAAjB,MACSA,EAAQ,cAAc,YAA/B,OACC,EAAcA,EAAQ,cAAc,UAAU,MAChD,EAAW,KACH1V,EAAe,gBAAxB,MACWA,EAAe,cAAc,YAAtC,OACC,EAAWA,EAAe,cAAc,UAAU,MACrD+tB,IAAazrB,IAAgB,EAAe,OAAS,MAC5CoT,IAAT,MAAoBznB,GAAI6uB,EAAY,EACpC,KAEJ,IAAK,IACH,MACG,GAAc,KACNpH,IAAT,OAAqB,EAAcA,EAAQ,cAAc,OACzD1V,EAAe,cAAc,QAAUsC,IACpC,EAAe,OAAS,MAC3BqX,GAAY0B,EAAY,EACxB8Z,EAAiBn1B,CAAc,EAC/B,KAEJ,IAAK,IACH,OAAO,KACT,IAAK,IACH,MACG,GAAe,OAAS,SACzBm1B,EAAiBn1B,CAAc,EAC/B,IAEN,CACA,MAAM,MAAMzH,EAAuB,IAAKyH,EAAe,GAAG,CAAC,CAC7D,CACA,SAASg2B,GAAW,EAAS,EAAgB,CAE3C,OADApe,GAAe5X,CAAc,EACrBA,EAAe,IAAvB,CACE,IAAK,GACH,MACG,GAAUA,EAAe,MAC1B0V,EAAU,OACJ,EAAe,MAASA,EAAU,OAAU,IAAM1V,GACpD,KAER,IAAK,GACH,OACE2Z,GAAY0B,EAAY,EACxBtd,GAAiB,EAChB,EAAUiC,EAAe,MACnB0V,EAAU,OAAU,EAAOA,EAAU,MACtC,EAAe,MAASA,EAAU,OAAU,IAAM1V,GACpD,KAER,IAAK,IACL,IAAK,IACL,IAAK,GACH,OAAO7B,GAAe6B,CAAc,EAAG,KACzC,IAAK,IACH,GAAaA,EAAe,gBAAxB,KAAuC,CAEzC,GADA+jB,GAAmB/jB,CAAc,EACpBA,EAAe,YAAxB,KACF,MAAM,MAAMzH,EAAuB,GAAG,CAAC,EACzC2gB,GAAoB,CACtB,CAEA,MADA,GAAUlZ,EAAe,MAClB0V,EAAU,OACX,EAAe,MAASA,EAAU,OAAU,IAAM1V,GACpD,KACN,IAAK,IAGH,GAFA+jB,GAAmB/jB,CAAc,EACjC,EAAUA,EAAe,cACZ0V,IAAT,MAA6BA,EAAQ,aAAjB,KAA6B,CACnD,GAAa1V,EAAe,YAAxB,KACF,MAAM,MAAMzH,EAAuB,GAAG,CAAC,EACzC2gB,GAAoB,CACtB,CAEA,MADA,GAAUlZ,EAAe,MAClB0V,EAAU,OACX,EAAe,MAASA,EAAU,OAAU,IAAM1V,GACpD,KACN,IAAK,IACH,OACEkkB,GAAuBlkB,CAAc,EACpC,EAAUA,EAAe,MAC1B0V,EAAU,OACJ,EAAe,MAASA,EAAU,OAAU,IAC7C,EAAU1V,EAAe,cACjB0V,IAAT,OACI,EAAQ,UAAY,KAAQ,EAAQ,KAAO,MAC9C,EAAe,OAAS,EACzB1V,GACA,KAER,IAAK,GACH,OAAOjC,GAAiB,EAAG,KAC7B,IAAK,IACH,OAAO4b,GAAY3Z,EAAe,IAAI,EAAG,KAC3C,IAAK,IACL,IAAK,IACH,OACE+jB,GAAmB/jB,CAAc,EACjCsjB,GAAiB,EACR5N,IAAT,MAAoBznB,GAAI6uB,EAAY,EACnC,EAAU9c,EAAe,MAC1B0V,EAAU,OACJ,EAAe,MAASA,EAAU,OAAU,IAAM1V,GACpD,KAER,IAAK,IACH,OAAO2Z,GAAY0B,EAAY,EAAG,KACpC,IAAK,IACH,OAAO,KACT,QACE,OAAO,IACX,CACF,CACA,SAAS4a,GAAsB,EAAS,EAAiB,CAEvD,OADAre,GAAese,CAAe,EACtBA,EAAgB,IAAxB,CACE,IAAK,GACHvc,GAAY0B,EAAY,EACxBtd,GAAiB,EACjB,MACF,IAAK,IACL,IAAK,IACL,IAAK,GACHI,GAAe+3B,CAAe,EAC9B,MACF,IAAK,GACHn4B,GAAiB,EACjB,MACF,IAAK,IACMm4B,EAAgB,gBAAzB,MACEnS,GAAmBmS,CAAe,EACpC,MACF,IAAK,IACHnS,GAAmBmS,CAAe,EAClC,MACF,IAAK,IACHhS,GAAuBgS,CAAe,EACtC,MACF,IAAK,IACHvc,GAAYuc,EAAgB,IAAI,EAChC,MACF,IAAK,IACL,IAAK,IACHnS,GAAmBmS,CAAe,EAClC5S,GAAiB,EACR5N,IAAT,MAAoBznB,GAAI6uB,EAAY,EACpC,MACF,IAAK,IACHnD,GAAY0B,EAAY,CAC5B,CACF,CACA,SAAS8a,GAA0B,EAAO,EAAc,CACtD,GAAI,CACF,IAAI5U,EAAc6U,EAAa,YAC7BC,EAAsB9U,IAAT,KAAgD,KAAzBA,EAAY,WAClD,GAAa8U,IAAT,KAAqB,CACvB,IAAIC,EAAcD,EAAW,KAC7B,EAAcC,EACd,EAAG,CACD,IAAK/U,EAAY,IAAMgV,KAAWA,EAAO,CACvC,EAAa,IAAK,GAClB,IAAI5+B,EAAS4pB,EAAY,OACvBplB,EAAOolB,EAAY,KACrB,EAAa5pB,EAAO,EACpB,EAAK,QAAU0+B,CACjB,CACA,EAAc9U,EAAY,IAC5B,OAASA,IAAgB+U,EAC3B,CACF,OAAS7hC,EAAO,CACd+hC,EAAwBJ,EAAcA,EAAa,OAAQ3hC,CAAK,CAClE,CACF,CACA,SAASgiC,GACP,EACA,EACA,EACA,CACA,GAAI,CACF,IAAIlV,EAAc6U,EAAa,YAC7BC,EAAsB9U,IAAT,KAAgD,KAAzBA,EAAY,WAClD,GAAa8U,IAAT,KAAqB,CACvB,IAAIC,EAAcD,EAAW,KAC7B,EAAcC,EACd,EAAG,CACD,IAAK/U,EAAY,IAAMgV,KAAWA,EAAO,CACvC,IAAIp6B,EAAOolB,EAAY,KACrBmV,EAAUv6B,EAAK,QACjB,GAAeu6B,IAAX,IAAK,GAAe,CACtB,EAAK,QAAU,IAAK,GACpB,EAAaN,EACb,IAAIO,EAAyBC,EAC3BC,EAAWH,EACb,GAAI,CACFG,EAAS,CACX,OAASpiC,EAAO,CACd+hC,EACEH,EACAM,EACAliC,CACF,CACF,CACF,CACF,CACA,EAAc8sB,EAAY,IAC5B,OAASA,IAAgB+U,EAC3B,CACF,OAAS7hC,EAAO,CACd+hC,EAAwBJ,EAAcA,EAAa,OAAQ3hC,CAAK,CAClE,CACF,CACA,SAASqiC,GAAqB,EAAc,CAC1C,IAAIvV,EAAc6U,EAAa,YAC/B,GAAa7U,IAAT,KAAsB,CACxB,IAAI9N,EAAW2iB,EAAa,UAC5B,GAAI,CACFrT,GAAgBxB,EAAa9N,CAAQ,CACvC,OAAShf,EAAO,CACd+hC,EAAwBJ,EAAcA,EAAa,OAAQ3hC,CAAK,CAClE,CACF,CACF,CACA,SAASsiC,GACP,EACA,EACA,EACA,CACA,EAAS,MAAQ3I,GACf1Y,EAAQ,KACRA,EAAQ,aACV,EACA,EAAS,MAAQA,EAAQ,cACzB,GAAI,CACFjC,EAAS,qBAAqB,CAChC,OAAShf,EAAO,CACd+hC,EAAwB9gB,EAASihB,EAAwBliC,CAAK,CAChE,CACF,CACA,SAASuiC,GAAgB,EAAS,EAAwB,CACxD,GAAI,CACF,IAAIp/B,EAAM8d,EAAQ,IAClB,GAAa9d,IAAT,KAAc,CAChB,OAAQ8d,EAAQ,IAAhB,CACE,IAAK,IACL,IAAK,IACL,IAAK,GACH,IAAIuhB,EAAgBvhB,EAAQ,UAC5B,MACF,IAAK,IACH,IAAIjC,EAAWiC,EAAQ,UACrBlX,EAAOgV,GAAsBkC,EAAQ,cAAejC,CAAQ,GACjDA,EAAS,MAAlB,MAAyBA,EAAS,IAAI,OAASjV,KACjD,EAAS,IAAM04B,GAA6B14B,CAAI,GAClD,EAAgBiV,EAAS,IACzB,MACF,IAAK,GACH,GAAaiC,EAAQ,YAAjB,KAA4B,CAC9B,IAAIyhB,EAAmB,IAAIC,GAAiB1hB,CAAO,EACnDza,EACEya,EAAQ,MACR,CAAC,EACD2hB,GACAF,EACA,IAAK,GACL,IAAK,EACP,EACA,EAAQ,UAAYA,CACtB,CACA,EAAgBzhB,EAAQ,UACxB,MACF,QACE,EAAgBA,EAAQ,SAC5B,CACe,OAAO9d,GAAtB,WACK,EAAQ,WAAaA,EAAIq/B,CAAa,EACtC,EAAI,QAAUA,CACrB,CACF,OAASxiC,EAAO,CACd+hC,EAAwB9gB,EAASihB,EAAwBliC,CAAK,CAChE,CACF,CACA,SAAS6iC,GAAgB,EAAS,EAAwB,CACxD,IAAI1/B,EAAM8d,EAAQ,IAChB4V,EAAa5V,EAAQ,WACvB,GAAa9d,IAAT,KACF,IAAmB,OAAO0zB,GAAtB,WACF,GAAI,CACFA,EAAW,CACb,OAAS72B,EAAO,CACd+hC,EAAwB9gB,EAASihB,EAAwBliC,CAAK,CAChE,QAAU,CACR,EAAS,WAAa,KACnB,EAAUihB,EAAQ,UACXA,GAAR,OAAoB,EAAQ,WAAa,KAC7C,MACG,GAAmB,OAAO9d,GAAtB,WACP,GAAI,CACFA,EAAI,IAAI,CACV,OAAS2/B,EAAW,CAClBf,EAAwB9gB,EAASihB,EAAwBY,CAAS,CACpE,KACG,GAAI,QAAU,IAAA,CACvB,CACA,SAASC,GAAkC,EAAO,EAAyB,CACzE,IACSt9B,EAAM,MAAZ,GAA0BA,EAAM,MAAb,IAA0BA,EAAM,MAAZ,IAC/BA,EAAM,YAAf,MACSu9B,IAAT,KAEA,IAAK,IAAItiC,EAAI,EAAGA,EAAIsiC,EAAwB,OAAQ,IAClDC,GACEx9B,EAAM,UACNu9B,EAAwBtiC,EAC1B,CACN,CACA,SAASwiC,GAAuC,EAAO,CACrD,IAAK,IAAI7pC,EAASoM,EAAM,OAAiBpM,IAAT,OAC9B8pC,GAAyB9pC,CAAM,GAC7B4pC,GAAiCx9B,EAAM,UAAWpM,EAAO,SAAS,EAChE,IAA+BA,CAAM,IACzC,EAASA,EAAO,MAEpB,CACA,SAAS+pC,GAAsC,EAAO,CACpD,IAAK,IAAI/pC,EAASoM,EAAM,OAAiBpM,IAAT,OAC9B8pC,GAAyB9pC,CAAM,GAC7BgqC,GAAgC59B,EAAM,UAAWpM,EAAO,SAAS,EAC/D,IAA+BA,CAAM,IACzC,EAASA,EAAO,MAEpB,CACA,SAASiqC,GAA+B,EAAO,CAC7C,OAAa79B,EAAM,MAAZ,GAAyBA,EAAM,MAAZ,GAA0BA,EAAM,MAAb,EAC/C,CACA,SAAS09B,GAAyB,EAAO,CACvC,OAAO19B,GAAeA,EAAM,MAAZ,GAA4BA,EAAM,YAAf,IACrC,CACA,SAAS89B,GAAgB,EAAc,CACrC,IAAIrjC,EAAOyhC,EAAa,KACtBvjC,EAAQujC,EAAa,cACrB3iB,EAAW2iB,EAAa,UAC1B,GAAI,CACF,EAAG,OAAQzhC,EAAR,CACD,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,WACH9B,EAAM,WAAa4gB,EAAS,MAAM,EAClC,MAAM,EACR,IAAK,MACH5gB,EAAM,IACD,EAAS,IAAMA,EAAM,IACtBA,EAAM,SAAW,EAAS,OAASA,EAAM,OACjD,CACF,OAAS4B,EAAO,CACd+hC,EAAwBJ,EAAcA,EAAa,OAAQ3hC,CAAK,CAClE,CACF,CACA,SAASwjC,GAAiB,EAAc,EAAU,EAAU,CAC1D,GAAI,CACF,IAAIC,EAAa9B,EAAa,UAC9B+B,GAAiBD,EAAY9B,EAAa,KAAMnI,EAAUF,CAAQ,EAClE,EAAW9oB,IAAoB8oB,CACjC,OAASt5B,EAAO,CACd+hC,EAAwBJ,EAAcA,EAAa,OAAQ3hC,CAAK,CAClE,CACF,CACA,SAAS2jC,GAAa,EAAO,CAC3B,OACQl+B,EAAM,MAAZ,GACMA,EAAM,MAAZ,GACOA,EAAM,MAAb,IACQA,EAAM,MAAb,IAAoB6e,GAAiB7e,EAAM,IAAI,GAC1CA,EAAM,MAAZ,CAEJ,CACA,SAASm+B,GAAe,EAAO,CAC7B,EAAG,OAAS,CACV,KAAgBn+B,EAAM,UAAf,MAA0B,CAC/B,GAAaA,EAAM,SAAf,MAAyBk+B,GAAal+B,EAAM,MAAM,EAAG,OAAO,KAChE,EAAQA,EAAM,MAChB,CAEA,IADA,EAAM,QAAQ,OAASA,EAAM,OAE3B,EAAQA,EAAM,QACRA,EAAM,MAAZ,GAAyBA,EAAM,MAAZ,GAA0BA,EAAM,MAAb,IAEtC,CAGA,GAFWA,EAAM,MAAb,IAAoB6e,GAAiB7e,EAAM,IAAI,GAC/CA,EAAM,MAAQ,GACLA,EAAM,QAAf,MAA8BA,EAAM,MAAZ,EAAiB,SAAS,EACjD,EAAO,MAAM,OAASA,EAAS,EAAQA,EAAM,KACpD,CACA,GAAI,EAAEA,EAAM,MAAQ,GAAI,OAAOA,EAAM,SACvC,CACF,CACA,SAASo+B,GACP,EACA,EACA,EACA,EACA,CACA,IAAIt9B,EAAMpN,EAAK,IACf,GAAUoN,IAAN,GAAmBA,IAAN,EACf,EAAOpN,EAAK,UACV2qC,GACWzqC,EAAO,WAAb,EACGA,EAAO,KACIA,EAAO,WAAlB,OACEA,EAAO,cAAc,KACrBA,EAAA,CACJ,aAAakN,EAAKu9B,CAAM,GACxB,EACMzqC,EAAO,WAAb,EACIA,EAAO,KACIA,EAAO,WAAlB,OACEA,EAAO,cAAc,KACrBA,EACRyqC,EAAO,YAAYv9B,CAAG,EACrB,EAASlN,EAAO,oBACPA,GAAT,MACUyqC,EAAO,UAAhB,OACC,EAAO,QAAUhuB,KACxBitB,GAAkC5pC,EAAM6pC,CAAuB,EAC9D,EAAgC,CAAC,OACjC,GACGz8B,IAAN,IACQA,IAAP,KACEw8B,GAAkC5pC,EAAM6pC,CAAuB,EAC/D,EAA0B,KAC3B1e,GAAiBnrB,EAAK,IAAI,IACtB,EAASA,EAAK,UAAa,EAAS,OACzC,EAAOA,EAAK,MACJA,IAAT,MAEA,IACE0qC,GACE1qC,EACA2qC,EACAzqC,EACA2pC,CACF,EACE,EAAO7pC,EAAK,QACLA,IAAT,MAGA0qC,GACE1qC,EACA2qC,EACAzqC,EACA2pC,CACF,EACG,EAAO7pC,EAAK,OACrB,CACA,SAAS4qC,GACP,EACA,EACA,EACA,EACA,CACA,IAAIx9B,EAAMpN,EAAK,IACf,GAAUoN,IAAN,GAAmBA,IAAN,EACf,EAAOpN,EAAK,UACV2qC,EAASzqC,EAAO,aAAakN,EAAKu9B,CAAM,EAAIzqC,EAAO,YAAYkN,CAAG,EAClEw8B,GAAkC5pC,EAAM6pC,CAAuB,EAC9D,EAAgC,CAAC,OACjC,GACGz8B,IAAN,IACQA,IAAP,KACEw8B,GAAkC5pC,EAAM6pC,CAAuB,EAC/D,EAA0B,KAC3B1e,GAAiBnrB,EAAK,IAAI,IAAM,EAASA,EAAK,YAC/C,EAAOA,EAAK,MACJA,IAAT,MAEA,IACE4qC,GACE5qC,EACA2qC,EACAzqC,EACA2pC,CACF,EACE,EAAO7pC,EAAK,QACLA,IAAT,MAGA4qC,GACE5qC,EACA2qC,EACAzqC,EACA2pC,CACF,EACG,EAAO7pC,EAAK,OACrB,CACA,SAAS6qC,GAA+B,EAAc,CACpD,IAAIC,EAAYtC,EAAa,UAC3BvjC,EAAQujC,EAAa,cACvB,GAAI,CACF,IACE,IAAIzhC,EAAOyhC,EAAa,KAAMuC,EAAaD,EAAU,WACrDC,EAAW,QAGXD,EAAU,oBAAoBC,EAAW,EAAE,EAC7C9C,GAAqB6C,EAAW/jC,EAAM9B,CAAK,EAC3C,EAAUmS,IAAuBoxB,EACjC,EAAUnxB,IAAoBpS,CAChC,OAAS4B,EAAO,CACd+hC,EAAwBJ,EAAcA,EAAa,OAAQ3hC,CAAK,CAClE,CACF,CACA,IAAImkC,GAA4B,CAAC,EAC/BC,GAA2B,KAC7B,SAASC,GAA0B,EAAW,EACjCC,EAAU,MAAjB,IAA+BA,EAAU,aAAe,YAC1D,GAA4B,CAAC,EACjC,CACA,IAAIC,GAAmC,KACvC,SAASC,IAAoC,CAC3C,IAAIC,EAAeF,GAEnB,MADA,IAAmC,KAC5BE,CACT,CACA,IAAIC,GAAgC,EACpC,SAASC,GACP,EACA,EACA,EACA,EACA,EACA,CAEA,MADA,IAAgC,EACzBC,GACLn/B,EAAM,MACNsE,EACAsV,EACAwlB,EACAC,CACF,CACF,CACA,SAASF,GACP,EACA,EACA,EACA,EACA,EACA,CACA,IAAK,IAAIG,EAAa,CAAC,EAAYhkC,IAAT,MAAkB,CAC1C,GAAUA,EAAM,MAAZ,EAAiB,CACnB,IAAIie,EAAWje,EAAM,UACrB,GAAa8jC,IAAT,KAA8B,CAChC,IAAIG,EAAcC,GAAgBjmB,CAAQ,EAC1C6lB,EAAoB,KAAKG,CAAW,EACpCA,EAAY,OAAS,EAAa,CAAC,EACrC,MACED,GAAeE,GAAgBjmB,CAAQ,CAAC,CAAC,OAAS,EAAa,CAAC,GAClE,GAA4B,CAAC,EAC7BkmB,GACElmB,EACM0lB,KAAN,EACI36B,EACAA,EAAO,IAAM26B,GACjBrlB,CACF,EACA,IACF,MAAkBte,EAAM,MAAb,IAA6BA,EAAM,gBAAf,QACrBA,EAAM,MAAd,IAAqB+jC,GAClBF,GACC7jC,EAAM,MACNgJ,EACAsV,EACAwlB,EACAC,CACF,IACG,EAAa,CAAC,IACrB,EAAQ/jC,EAAM,OAChB,CACA,OAAOgkC,CACT,CACA,SAASI,GACP,EACA,EACA,CACA,KAAgBpkC,IAAT,MACKA,EAAM,MAAZ,EACFqkC,GAA0BrkC,EAAM,UAAWA,EAAM,aAAa,GAChDA,EAAM,MAAb,IAA6BA,EAAM,gBAAf,QACnBA,EAAM,MAAd,IAAqB+jC,GACnBK,GACEpkC,EAAM,MACN+jC,CACF,GACJ,EAAQ/jC,EAAM,OAElB,CACA,SAASskC,GAAmC,EAAW,CACrD,GAAWf,EAAU,aAAe,SAClC,IAAK,EAAYA,EAAU,MAAgBA,IAAT,MAAsB,CACtD,IAAWA,EAAU,MAAjB,IAAiCA,EAAU,gBAAnB,QAEvBe,GAAmCf,CAAS,EACtCA,EAAU,MAAjB,IACSA,EAAU,MAAQ,UACzBA,EAAU,UAAU,QACtB,CACA,IAAIlmC,EAAQkmC,EAAU,cACtB,GAAYlmC,EAAM,MAAd,MAAiCA,EAAM,OAAjB,OACxB,MAAM,MAAM0F,EAAuB,GAAG,CAAC,EACzC,IAAIiG,EAAO3L,EAAM,KACjB,EAAQohB,GAA2BphB,EAAM,QAASA,EAAM,KAAK,EAClDA,IAAX,SACGumC,GACCL,EACAv6B,EACA3L,EACA,KACA,CAAC,CACH,GACE+mC,GAAqCb,EAAU,MAAO,CAAC,CAAC,EAC9D,CACF,EAAYA,EAAU,OACxB,CACJ,CACA,SAASgB,GAA2B,EAAW,EAAS,CACtD,GAAWhB,EAAU,MAAjB,GAAsB,CACxB,IAAIr9B,EAAQq9B,EAAU,UACpBlmC,EAAQkmC,EAAU,cAClBv6B,EAAOgV,GAAsB3gB,EAAO6I,CAAK,EACzCoY,EAAYG,GACVphB,EAAM,QACN6I,EAAM,OAAS7I,EAAM,MAAQA,EAAM,KACrC,EACSihB,IAAX,OAOIgmB,GAAmCf,CAAS,EAN5CK,GAAmCL,EAAWv6B,EAAMsV,EAAW,KAAM,CAAC,CAAC,GACpEgmB,GAAmCf,CAAS,EAC7Cr9B,EAAM,QACJs+B,GACAC,GAA4BlB,EAAWlmC,EAAM,OAAO,GACtD+mC,GAAqCb,EAAU,MAAO,CAAC,CAAC,CAEhE,MAAO,GAAWA,EAAU,aAAe,SACzC,IAAK,EAAYA,EAAU,MAAgBA,IAAT,MAChCgB,GAA2BhB,EAAWiB,CAAO,EAC1C,EAAYjB,EAAU,aACxBe,GAAmCf,CAAS,CACnD,CACA,SAASmB,GAAiC,EAAU,CAClD,GACWrB,KAAT,MACMA,GAAyB,OAA/B,EACA,CACA,IAAIsB,EAAQtB,GACZ,GAAWuB,EAAS,aAAe,SACjC,IAAK,EAAWA,EAAS,MAAgBA,IAAT,MAAqB,CACnD,GAAWA,EAAS,MAAhB,IAAgCA,EAAS,gBAAlB,KAAiC,CAC1D,GAAWA,EAAS,MAAhB,IAA8BA,EAAS,MAAQ,SAAW,CAC5D,IAAIvnC,EAAQunC,EAAS,cACnB57B,EAAO3L,EAAM,KACf,GAAY2L,GAAR,MAA2BA,IAAX,OAAiB,CACnC,IAAI67B,EAAOF,EAAM,IAAI37B,CAAI,EACzB,GAAe67B,IAAX,IAAK,GAAY,CACnB,IAAIvmB,EAAYG,GACdphB,EAAM,QACNA,EAAM,KACR,EAeA,GAdWihB,IAAX,SACGslB,GACCgB,EACA57B,EACAsV,EACA,KACA,CAAC,CACH,GACM,EAAYsmB,EAAS,UACtB,EAAK,OAAStmB,EACd,EAAU,OAASumB,EACpBJ,GAA4BG,EAAUvnC,EAAM,OAAO,GACnD+mC,GAAqCQ,EAAS,MAAO,CAAC,CAAC,GAC7DD,EAAM,OAAO37B,CAAI,EACP27B,EAAM,OAAZ,EAAkB,KACxB,CACF,CACF,CACAD,GAAiCE,CAAQ,CAC3C,CACA,EAAWA,EAAS,OACtB,CACJ,CACF,CACA,SAASE,GAA0B,EAAU,CAC3C,GAAWF,EAAS,MAAhB,GAAqB,CACvB,IAAIvnC,EAAQunC,EAAS,cACnB57B,EAAOgV,GAAsB3gB,EAAOunC,EAAS,SAAS,EACtDC,EACWxB,KAAT,KAEI,IAAK,GADLA,GAAyB,IAAIr6B,CAAI,EAEvCsV,EAAYG,GACVphB,EAAM,QACKwnC,IAAX,IAAK,GAA2BxnC,EAAM,KAApBA,EAAM,KAC1B,EACSihB,IAAX,SACGslB,GAAmCgB,EAAU57B,EAAMsV,EAAW,KAAM,CAAC,CAAC,EACxDumB,IAAX,IAAK,GAMHJ,GAA4BG,EAAUvnC,EAAM,MAAM,GALhD,EAAYunC,EAAS,UACtB,EAAK,OAAStmB,EACd,EAAU,OAASumB,EACpBxB,GAAyB,OAAOr6B,CAAI,EACpCy7B,GAA4BG,EAAUvnC,EAAM,OAAO,GAErD+mC,GAAqCQ,EAAS,MAAO,CAAC,CAAC,GACpDvB,KAAT,MACEqB,GAAiCE,CAAQ,CAC7C,MAAO,GAAWA,EAAS,aAAe,SACxC,IAAK,EAAWA,EAAS,MAAgBA,IAAT,MAC9BE,GAA0BF,CAAQ,EAAI,EAAWA,EAAS,aAEnDvB,KAAT,MACEqB,GAAiCE,CAAQ,CAC/C,CACA,SAASG,GAA4B,EAAe,CAClD,IAAK,EAAgBC,EAAc,MAAgBA,IAAT,MAA0B,CAClE,GAAWA,EAAc,MAArB,GAA0B,CAC5B,IAAI3nC,EAAQ2nC,EAAc,cACxBh8B,EAAOgV,GAAsB3gB,EAAO2nC,EAAc,SAAS,EAC7D,EAAQvmB,GAA2BphB,EAAM,QAASA,EAAM,MAAM,EAC9D,EAAc,OAAS,GACZA,IAAX,QACEumC,GACEoB,EACAh8B,EACA3L,EACC,EAAc,cAAgB,CAAC,EAChC,CAAC,CACH,CACJ,MACS2nC,EAAc,aAAe,UAClCD,GAA4BC,CAAa,EAC7C,EAAgBA,EAAc,OAChC,CACF,CACA,SAASC,GAA6B,EAAQ,CAC5C,GAAW3sC,EAAO,aAAe,SAC/B,IAAK,EAASA,EAAO,MAAgBA,IAAT,MAAmB,CAC7C,GAAWA,EAAO,MAAd,IAA8BA,EAAO,gBAAhB,KAA+B,CACtD,GAAWA,EAAO,MAAd,IAA4BA,EAAO,MAAQ,SAAW,CACxD,IAAI2lB,EAAW3lB,EAAO,UACb2lB,EAAS,SAAlB,OACI,EAAS,OAAS,KACpBmmB,GAAqC9rC,EAAO,MAAO,CAAC,CAAC,EACzD,CACA2sC,GAA6B3sC,CAAM,CACrC,CACA,EAASA,EAAO,OAClB,CACJ,CACA,SAAS4sC,GAAkC,EAAO,CAChD,GAAWxgC,EAAM,MAAb,GACF,EAAO,UAAU,OAAS,KACxB0/B,GAAqC1/B,EAAM,MAAO,CAAC,CAAC,EACpDugC,GAA6BvgC,CAAK,OACjC,GAAWA,EAAM,aAAe,SACnC,IAAK,EAAQA,EAAM,MAAgBA,IAAT,MACxBwgC,GAAkCxgC,CAAK,EAAI,EAAQA,EAAM,aACxDugC,GAA6BvgC,CAAK,CACzC,CACA,SAASygC,GAA6B,EAAe,CACnD,IAAK,EAAgBH,EAAc,MAAgBA,IAAT,MACjCA,EAAc,MAArB,GACIZ,GAAqCY,EAAc,MAAO,CAAC,CAAC,EACrDA,EAAc,aAAe,UACpCG,GAA6BH,CAAa,EAC3C,EAAgBA,EAAc,OACrC,CACA,SAASI,GACP,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CACA,IAAK,IAAIpB,EAAa,CAAC,EAAYhkC,IAAT,MAAkB,CAC1C,GAAUA,EAAM,MAAZ,EAAiB,CACnB,IAAIie,EAAWje,EAAM,UACrB,GACWqlC,IAAT,MACA1B,GAAgC0B,EAAqB,OACrD,CACA,IAAIC,EACAD,EAAqB1B,IACvB4B,EAAkBrB,GAAgBjmB,CAAQ,GACxCqnB,EAAoB,MAAQC,EAAgB,QAAM,EAAa,CAAC,GACpE,IAAIniB,EACJ,GAAK,EAAkB,EAAOoiB,EAAqB,MAAQ,GACzD,IAAID,EAAgB,KAAM,EAAkB,CAAC,MACxC,CACH,EAAkBD,EAAoB,KACtC,IAAIG,EAAUF,EAAgB,KAC9B,EACEniB,EAAgB,IAAMqiB,EAAQ,GAC9BriB,EAAgB,IAAMqiB,EAAQ,GAC9BriB,EAAgB,SAAWqiB,EAAQ,QACnCriB,EAAgB,QAAUqiB,EAAQ,KACtC,EACFriB,IAAoB,EAAqB,OAAS,GAClDmiB,EAAgB,IACX,EAAkB,CAACD,EAAoB,KACtC,EAAsBA,EAAoB,KAC3C,EAAkBC,EAAgB,KAClC,EACCD,EAAoB,SAAWC,EAAgB,QAC/CD,EAAoB,QAAUC,EAAgB,OACpDA,IAAoB,EAAqB,OAAS,GACpD,KAAO,GAAqB,OAAS,GAC9BC,EAAqB,MAAQ,GAClCrB,GACElmB,EACM0lB,KAAN,EACI+B,EACAA,EAAU,IAAM/B,GACpBrlB,CACF,EACF0lB,GAAsBwB,EAAqB,MAAQ,IACvChC,KAAT,OACE,GAAmC,CAAC,GACvCA,GAAiC,KAC/BvlB,EACM0lB,KAAN,EACIgC,EACAA,EAAU,IAAMhC,GACpB3jC,EAAM,aACR,GACF,IACF,MAAkBA,EAAM,MAAb,IAA6BA,EAAM,gBAAf,QACtBA,EAAM,MAAb,IAAoB+jC,EACf,EAAqB,OAAS/jC,EAAM,MAAQ,GAC7ColC,GACEI,EACAxlC,EAAM,MACN0lC,EACAC,EACArnB,EACA+mB,EACAtB,CACF,IAAM,EAAa,CAAC,IAC1B,EAAQ/jC,EAAM,OAChB,CACA,OAAOgkC,CACT,CACA,SAAS4B,GAA6B,EAAe,EAAS,CAC5D,IAAK,EAAgBZ,EAAc,MAAgBA,IAAT,MAA0B,CAClE,GAAWA,EAAc,MAArB,GAA0B,CAC5B,IAAI3nC,EAAQ2nC,EAAc,cACxB9+B,EAAQ8+B,EAAc,UACtBh8B,EAAOgV,GAAsB3gB,EAAO6I,CAAK,EACzCoY,EAAYG,GAA2BphB,EAAM,QAASA,EAAM,MAAM,EACpE,GAAImnC,EAAS,CACX,EAAQt+B,EAAM,OACd,IAAIm/B,EACOn/B,IAAT,KAAiB,KAAOA,EAAM,IAAI2/B,EAAqB,CAC3D,KACE,GAAwBb,EAAc,cACnC,EAAc,cAAgB,KACnC,EAAQA,EACR,IAAIhlC,EAAQglC,EAAc,MAC1B,GAAgC,EAChC,EAAOI,GACLl/B,EACAlG,EACAgJ,EACAA,EACAsV,EACA+mB,EACA,CAAC,CACH,EACOL,EAAc,MAAQ,GAC3Bh8B,IACCw7B,GAAWC,GAA4BO,EAAe3nC,EAAM,QAAQ,EACzE,MACS2nC,EAAc,aAAe,UAClCY,GAA6BZ,EAAeR,CAAO,EACvD,EAAgBQ,EAAc,OAChC,CACF,CACA,IAAIc,GAA2B,CAAC,EAC9BC,EAA4B,CAAC,EAC7BC,GAAgC,CAAC,EACjCC,GAAiB,CAAC,EAClBC,GAAiC,OAAO,SAAtB,WAAgC,QAAU,IAC5DC,GAAa,KACbC,GAA+B,CAAC,EAChCC,GAAyB,CAAC,EAC1BC,GAA6B,CAAC,EAC9BC,GAAiC,CAAC,EACpC,SAASC,GAA4B,EAAM,EAAY,EAAgB,CAIrE,GAHA,EAAOl6B,EAAK,cACZ,GAAgBm6B,GAChB,EAAOrqB,GAAqB9P,CAAI,EAC5BgQ,GAAyBhQ,CAAI,EAAG,CAClC,GAAI,mBAAoBA,EACtB,IAAI8W,EAAkB,CACpB,MAAO9W,EAAK,eACZ,IAAKA,EAAK,YACZ,OAEA,EAAG,CACD,GACI,EAAkBA,EAAK,gBACvB8W,EAAgB,aAClB,OACF,IAAIsjB,EACFtjB,EAAgB,cAAgBA,EAAgB,aAAa,EAC/D,GAAIsjB,GAAmBA,EAAU,aAAhB,EAA4B,CAC3C,EAAkBA,EAAU,WAC5B,IAAIC,EAAeD,EAAU,aAC3BE,EAAYF,EAAU,UACxB,EAAYA,EAAU,YACtB,GAAI,CACFtjB,EAAgB,SAAUwjB,EAAU,QACtC,MAAe,CACb,EAAkB,KAClB,MAAM,CACR,CACA,IAAIhuC,EAAS,EACXud,EAAQ,GACRG,EAAM,GACNuwB,EAAoB,EACpBC,EAAmB,EACnB1uC,EAAOkU,EACP+D,EAAa,KACf,EAAG,OAAS,CACV,IAAK,IAAI02B,EACP3uC,IAASgrB,GACAujB,IAAN,GAA4BvuC,EAAK,WAAX,IACtB,EAAQQ,EAAS+tC,GACpBvuC,IAASwuC,GACAF,IAAN,GAAyBtuC,EAAK,WAAX,IACnB,EAAMQ,EAAS8tC,GACZtuC,EAAK,WAAX,IAAwB,GAAUA,EAAK,UAAU,SACnC,EAAOA,EAAK,cAAtB,MACJ,EAAaA,EACb,EAAO2uC,EAET,OAAS,CACP,GAAI3uC,IAASkU,EAAM,MAAM,EAOzB,GANA+D,IAAe+S,GACb,EAAEyjB,IAAsBF,IACvB,EAAQ/tC,GACXyX,IAAeu2B,GACb,EAAEE,IAAqBJ,IACtB,EAAM9tC,IACK,EAAOR,EAAK,eAAtB,KAAoC,MACxC,EAAOiY,EACP,EAAajY,EAAK,UACpB,CACA,EAAO2uC,CACT,CACA,EACS5wB,IAAP,IAAuBG,IAAP,GAAa,KAAO,CAAS,QAAY,KAAI,CACjE,KAAO,GAAkB,IAC3B,CACF,IAAqC,CAAE,MAAO,EAAG,IAAK,CAAE,CAC1D,KAAO,GAAkB,KAKzB,IAJA,GAAuB,CAAE,YAAahK,EAAM,eAAgB8W,CAAgB,EAC5E,GAAW,CAAC,EACZ,GAAkB4jB,EAAiB,aAAeA,EAClD,GAAajzB,EACR,EAAaizB,EAAiB,KAAO,KAAeb,KAAT,MAAuB,CAErE,GADA,EAAOA,GAELa,IACE,EAAkB16B,EAAK,UAAqB8W,IAAT,MAErC,IACE,EAAe,EACfujB,EAAevjB,EAAgB,OAC/B,IAEA4jB,GACElC,GAA0B1hB,EAAgBujB,EAAa,EAC7D,GAAar6B,EAAK,YAAd,MAAkCA,EAAK,MAAQ,EACjD06B,GAAkB1D,GAA0Bh3B,CAAI,EAC9C26B,GAAqCD,CAAc,MAClD,CACH,GAAW16B,EAAK,MAAZ,GACF,CAAM,GAAA,EAAkBA,EAAK,UAAqBA,EAAK,gBAAd,KAA8B,CAC5D8W,IAAT,MACWA,EAAgB,gBAAzB,MACA4jB,GACAlC,GAA0B1hB,CAAe,EAC3C6jB,GAAqCD,CAAc,EACnD,QACF,CAAO,GACI5jB,IAAT,MACSA,EAAgB,gBAAzB,KACA,CACA4jB,GAAkB1D,GAA0Bh3B,CAAI,EAChD26B,GAAqCD,CAAc,EACnD,QACF,EACF,EAAkB16B,EAAK,OAChBA,EAAK,aAAeyH,KAA3B,GAAmDqP,IAAT,MACpC,EAAgB,OAAS9W,EAAQ,GAAa8W,IAC/C4jB,GAAkBjC,GAA4Bz4B,CAAI,EACnD26B,GAAqCD,CAAc,EACzD,CACF,CACA,GAA2B,IAC7B,CACA,SAASC,GACP,EACA,CACA,KAAgBd,KAAT,MAAuB,CAC5B,IAAIzhC,EAAQyhC,GACVe,EAA2BC,EAC3BjnB,EAAUxb,EAAM,UAChBq8B,EAAQr8B,EAAM,MAChB,OAAQA,EAAM,IAAd,CACE,IAAK,GACL,IAAK,IACL,IAAK,IACH,MACF,IAAK,GACH,GAAWq8B,EAAQ,MAAkB7gB,IAAT,KAAkB,CAC5C,EAA2B,IAAK,GAChC,EAAQA,EAAQ,cAChB,EAAUA,EAAQ,cAClB,IAAIjC,EAAWvZ,EAAM,UACrB,GAAI,CACF,IAAI0iC,EAAoBxO,GACtBl0B,EAAM,KACNq8B,CACF,EACA,EAA2B9iB,EAAS,wBAClCmpB,EACAlnB,CACF,EACA,EAAS,oCACPgnB,CACJ,OAASjoC,EAAO,CACd+hC,EAAwBt8B,EAAOA,EAAM,OAAQzF,CAAK,CACpD,CACF,CACA,MACF,IAAK,GACH,GAAW8hC,EAAQ,KACjB,CACI,GAAA,EAAUr8B,EAAM,UAAU,cAC3B,EAA2Bwb,EAAQ,SAC9BgnB,IAAN,EAEAG,GAAwBnnB,CAAO,OAC5B,GAAUgnB,IAAN,EACP,OAAQhnB,EAAQ,SAAhB,CACE,IAAK,OACL,IAAK,OACL,IAAK,OACHmnB,GAAwBnnB,CAAO,EAC/B,MACF,QACE,EAAQ,YAAc,EAC1B,EACJ,MACF,IAAK,GACL,IAAK,IACL,IAAK,IACL,IAAK,GACL,IAAK,GACL,IAAK,IACH,MACF,IAAK,IACHgnB,GACWhnB,IAAT,OACE,EAA2BlC,GAC3BkC,EAAQ,cACRA,EAAQ,SACV,EACC,EAAQxb,EAAM,cACd,EAAQ+Z,GAA2BsiB,EAAM,QAASA,EAAM,MAAM,EACpDA,IAAX,QACE6C,GACE1jB,EACAgnB,EACAnG,EACC,EAAQ,cAAgB,CAAC,EAC1B,CAAC,CACH,GACJ,MACF,QACE,GAAWA,EAAQ,KAAO,MAAM,MAAMh+B,EAAuB,GAAG,CAAC,CACrE,CAEA,GADA,EAAU2B,EAAM,QACHwb,IAAT,KAAkB,CACpB,EAAQ,OAASxb,EAAM,OACvB,GAAawb,EACb,KACF,CACA,GAAaxb,EAAM,MACrB,CACF,CACA,SAAS4iC,GAA0B,EAAc,EAAS,EAAc,CACtE,IAAIvG,EAAQH,EAAa,MACzB,OAAQA,EAAa,IAArB,CACE,IAAK,GACL,IAAK,IACL,IAAK,IACH2G,GAAiCC,EAAc5G,CAAY,EAC3DG,EAAQ,GAAKJ,GAA0B,EAAGC,CAAY,EACtD,MACF,IAAK,GAEH,GADA2G,GAAiCC,EAAc5G,CAAY,EACvDG,EAAQ,EACV,IAAM,EAAeH,EAAa,UAAqB1gB,IAAT,KAC5C,GAAI,CACFsnB,EAAa,kBAAkB,CACjC,OAASvoC,EAAO,CACd+hC,EAAwBJ,EAAcA,EAAa,OAAQ3hC,CAAK,CAClE,KACG,CACH,IAAIwK,EAAYmvB,GACdgI,EAAa,KACb1gB,EAAQ,aACV,EACA,EAAUA,EAAQ,cAClB,GAAI,CACFsnB,EAAa,mBACX/9B,EACAyW,EACAsnB,EAAa,mCACf,CACF,OAASC,EAAW,CAClBzG,EACEJ,EACAA,EAAa,OACb6G,CACF,CACF,CACF,EACF1G,EAAQ,IAAMO,GAAqBV,CAAY,EAC/CG,EAAQ,KAAOS,GAAgBZ,EAAcA,EAAa,MAAM,EAChE,MACF,IAAK,GAEH,GADA2G,GAAiCC,EAAc5G,CAAY,EAEzDG,EAAQ,KACN,EAAeH,EAAa,YAAuB4G,IAAT,MAC5C,CAEA,GADA,EAAU,KACG5G,EAAa,QAAtB,KACF,OAAQA,EAAa,MAAM,IAA3B,CACE,IAAK,IACL,IAAK,GACH,EAAUA,EAAa,MAAM,UAC7B,MACF,IAAK,GACH,EAAUA,EAAa,MAAM,SACjC,CACF,GAAI,CACFrT,GAAgBia,EAActnB,CAAO,CACvC,OAASjhB,EAAO,CACd+hC,EAAwBJ,EAAcA,EAAa,OAAQ3hC,CAAK,CAClE,CACF,CACA,MACF,IAAK,IACMihB,IAAT,MACE6gB,EAAQ,GACRkC,GAA+BrC,CAAY,EAC/C,IAAK,IACL,IAAK,GACH2G,GAAiCC,EAAc5G,CAAY,EAClD1gB,IAAT,MAAoB6gB,EAAQ,GAAKyB,GAAgB5B,CAAY,EAC7DG,EAAQ,KAAOS,GAAgBZ,EAAcA,EAAa,MAAM,EAChE,MACF,IAAK,IACH2G,GAAiCC,EAAc5G,CAAY,EAC3D,MACF,IAAK,IACH2G,GAAiCC,EAAc5G,CAAY,EAC3DG,EAAQ,GAAK2G,GAAiCF,EAAc5G,CAAY,EACxE,MACF,IAAK,IACH2G,GAAiCC,EAAc5G,CAAY,EAC3DG,EAAQ,GAAK4G,GAAiCH,EAAc5G,CAAY,EACxEG,EAAQ,KACJ,EAAeH,EAAa,cACrB4G,IAAT,OACI,EAAeA,EAAa,WACrBA,IAAT,OACI,EAAeI,GAAgC,KAC/C,KACAhH,CACF,EACAiH,GAA8BL,EAAc5G,CAAY,KAC9D,MACF,IAAK,IAEH,GADA,EAAiBA,EAAa,gBAAtB,MAAuCkF,GAC3C,CAAC/E,EAAO,CACV,IAAI+G,EACQ5nB,IAAT,MAA6BA,EAAQ,gBAAjB,MACrB6lB,EACF,EAAUD,GACV,EAAYC,EACZ,GAA2BhF,GAC1B,EAA4B+G,IAAiC,CAACr+B,GACzD,EAAQ,EACHm3B,EAAa,aAAe,OAAU,GAAS,GACtDmH,GACEP,EACA5G,EACAG,CACF,GACAwG,GAAiCC,EAAc5G,CAAY,EAC/D,GAA2B1gB,EAC3B,EAA4BzW,CAC9B,CACA,MACF,IAAK,IACH89B,GAAiCC,EAAc5G,CAAY,EAC3DG,EAAQ,KAAOS,GAAgBZ,EAAcA,EAAa,MAAM,EAChE,MACF,IAAK,GACHG,EAAQ,KAAOS,GAAgBZ,EAAcA,EAAa,MAAM,EAClE,QACE2G,GAAiCC,EAAc5G,CAAY,CAC/D,CACF,CACA,SAASoH,GAAwB,EAAa,EAAU,CACtD,IAAK,EAAcC,EAAY,MAAgBA,IAAT,MACpCC,GAA+BD,EAAaxoB,CAAQ,EACjD,EAAcwoB,EAAY,OACjC,CACA,SAASC,GAA+B,EAAO,EAAU,CACvD,OAAQxjC,EAAM,IAAd,CACE,IAAK,GACL,IAAK,IACH,GAAI,CACF,IAAIuZ,EAAWvZ,EAAM,UACrB,GAAI+a,EAAU,CACZ,IAAIrL,EAAQ6J,EAAS,MACN,OAAO7J,EAAM,aAA5B,WACIA,EAAM,YAAY,UAAW,OAAQ,WAAW,EAC/C,EAAM,QAAU,MACvB,KAAO,CACL,IAAIiZ,EAAoB3oB,EAAM,UAC5BqY,EAAYrY,EAAM,cAAc,MAChCyjC,EACaprB,GACX,MACAA,EAAU,eAAe,SAAS,EAC9BA,EAAU,QACV,KACR,EAAkB,MAAM,QACdorB,GAAR,MAAiC,OAAOA,GAArB,UACf,IACC,GAAKA,EAAA,CAAS,KAAK,CAC5B,CACF,OAASlpC,EAAO,CACd+hC,EAAwBt8B,EAAOA,EAAM,OAAQzF,CAAK,CACpD,CACAmpC,GAA2B1jC,EAAO+a,CAAQ,EAC1C,MACF,IAAK,GACH,GAAI,CACF,EAAO,UAAU,UAAYA,EAAW,GAAK/a,EAAM,cAChD,EAAgC,CAAC,CACtC,OAASzF,EAAO,CACd+hC,EAAwBt8B,EAAOA,EAAM,OAAQzF,CAAK,CACpD,CACA,MACF,IAAK,IACH,GAAI,CACF,IAAIopC,EAAoB3jC,EAAM,UAC9B+a,EACI6oB,GAA+BD,EAAmB,CAAC,CAAC,EACpDC,GAA+B5jC,EAAM,UAAW,CAAC,CAAC,CACxD,OAASzF,EAAO,CACd+hC,EAAwBt8B,EAAOA,EAAM,OAAQzF,CAAK,CACpD,CACA,MACF,IAAK,IACL,IAAK,IACMyF,EAAM,gBAAf,MAAgCsjC,GAAwBtjC,EAAO+a,CAAQ,EACvE,MACF,QACEuoB,GAAwBtjC,EAAO+a,CAAQ,CAC3C,CACF,CACA,SAAS2oB,GAA2B,EAAa,EAAmB,CAClE,GAAIH,EAAY,aAAe,SAC7B,IAAK,EAAcA,EAAY,MAAgBA,IAAT,MAAwB,CAC5D,EAAG,CACD,IAAIvjC,EAAQujC,EACVxoB,EAAW8oB,EACb,OAAQ7jC,EAAM,IAAd,CACE,IAAK,GACHwjC,GAA+BxjC,EAAO+a,CAAQ,EAC9C,MAAM,EACR,IAAK,IACM/a,EAAM,gBAAf,MACE0jC,GAA2B1jC,EAAO+a,CAAQ,EAC5C,MAAM,EACR,QACE2oB,GAA2B1jC,EAAO+a,CAAQ,CAC9C,CACF,CACA,EAAcwoB,EAAY,OAC5B,CACJ,CACA,SAASO,GAAwB,EAAO,CACtC,IAAItjC,EAAYR,EAAM,UACbQ,IAAT,OACI,EAAM,UAAY,KAAOsjC,GAAwBtjC,CAAS,GAC9D,EAAM,MAAQ,KACd,EAAM,UAAY,KAClB,EAAM,QAAU,KACVR,EAAM,MAAZ,IACI,EAAYA,EAAM,UACXQ,IAAT,MAAsB+K,GAAsB/K,CAAS,GACvD,EAAM,UAAY,KAClB,EAAM,OAAS,KACf,EAAM,aAAe,KACrB,EAAM,cAAgB,KACtB,EAAM,cAAgB,KACtB,EAAM,aAAe,KACrB,EAAM,UAAY,KAClB,EAAM,YAAc,IACtB,CACA,IAAIujC,EAAa,KACfC,GAAwB,CAAC,EAC3B,SAASC,GACP,EACA,EACA,EACA,CACA,IAAK,EAASrwC,EAAO,MAAgBA,IAAT,MAC1BswC,GAA6BpB,EAAcrG,EAAwB7oC,CAAM,EACtE,EAASA,EAAO,OACvB,CACA,SAASswC,GACP,EACA,EACA,EACA,CACA,GAAIr9B,IAA+B,OAAOA,GAAa,sBAAnC,WAClB,GAAI,CACFA,GAAa,qBAAqBD,GAAYu9B,CAAY,CAC5D,MAAc,CAAC,CACjB,OAAQA,EAAa,IAArB,CACE,IAAK,IACH9C,GACEjE,GAAgB+G,EAAc1H,CAAsB,EACtDwH,GACEnB,EACArG,EACA0H,CACF,EACAA,EAAa,cACT,EAAa,cAAc,QAC3BA,EAAa,WACb,CAAC9C,IACC,EAAe8C,EAAa,UAC9BA,EAAa,WAAW,YAAYA,CAAY,GACpD,MACF,IAAK,IACH9C,GACEjE,GAAgB+G,EAAc1H,CAAsB,EACtDkB,GAAsCwG,CAAY,EAClD,IAAIC,EAAiBL,EACnBM,EAA4BL,GAC9BnlB,GAAiBslB,EAAa,IAAI,IAC9B,EAAaA,EAAa,UAAa,GAAwB,CAAC,GACpEF,GACEnB,EACArG,EACA0H,CACF,EACAG,GACEH,EAAa,UACbA,EAAa,KACbA,EAAa,aACf,EACA,EAAaC,EACb,GAAwBC,EACxB,MACF,IAAK,GACHhD,GACEjE,GAAgB+G,EAAc1H,CAAsB,EACpDkB,GAAsCwG,CAAY,EACtD,IAAK,GAaH,GAZMA,EAAa,MAAnB,GACExG,GAAsCwG,CAAY,EACpD,EAAiBJ,EACjB,EAA4BC,GAC5B,EAAa,KACbC,GACEnB,EACArG,EACA0H,CACF,EACA,EAAaC,EACb,GAAwBC,EACXN,IAAT,KACF,IAAIC,GACF,GAAI,EACKD,EAAW,WAAjB,EACGA,EAAW,KACAA,EAAW,WAAtB,OACEA,EAAW,cAAc,KACzBA,EAAA,CACJ,YAAYI,EAAa,SAAS,EACjC,EAAgC,CAAC,CACtC,OAAS5pC,EAAO,CACd+hC,EACE6H,EACA1H,EACAliC,CACF,CACF,MAEA,GAAI,CACFwpC,EAAW,YAAYI,EAAa,SAAS,EAC1C,EAAgC,CAAC,CACtC,OAAS5pC,EAAO,CACd+hC,EACE6H,EACA1H,EACAliC,CACF,CACF,EACJ,MACF,IAAK,IACMwpC,IAAT,OACGC,IACK,EAAeD,EACjBQ,GACQzB,EAAa,WAAnB,EACIA,EAAa,KACFA,EAAa,WAAxB,OACEA,EAAa,cAAc,KAC3BA,EACNqB,EAAa,SACf,EACAK,GAAiB1B,CAAY,GAC7ByB,GAAuBR,EAAYI,EAAa,SAAS,GAC/D,MACF,IAAK,GACH,EAAiBJ,EACjB,EAA4BC,GAC5B,EAAaG,EAAa,UAAU,cACpC,GAAwB,CAAC,EACzBF,GACEnB,EACArG,EACA0H,CACF,EACA,EAAaC,EACb,GAAwBC,EACxB,MACF,IAAK,GACL,IAAK,IACL,IAAK,IACL,IAAK,IACH9H,GAA4B,EAAG4H,EAAc1H,CAAsB,EACnE4E,GACE9E,GAA4B,EAAG4H,EAAc1H,CAAsB,EACrEwH,GACEnB,EACArG,EACA0H,CACF,EACA,MACF,IAAK,GACH9C,IACGjE,GAAgB+G,EAAc1H,CAAsB,EACpD,EAAiB0H,EAAa,UAChB,OAAOC,EAAe,sBAArC,YACEvH,GACEsH,EACA1H,EACA2H,CACF,GACJH,GACEnB,EACArG,EACA0H,CACF,EACA,MACF,IAAK,IACHF,GACEnB,EACArG,EACA0H,CACF,EACA,MACF,IAAK,IACH,GACG,EAAiB9C,IACT8C,EAAa,gBAAtB,KACFF,GACEnB,EACArG,EACA0H,CACF,EACA,EAA4BC,EAC5B,MACF,IAAK,IACHhH,GAAgB+G,EAAc1H,CAAsB,EACpDwH,GACEnB,EACArG,EACA0H,CACF,EACA,MACF,IAAK,GACH9C,GACEjE,GAAgB+G,EAAc1H,CAAsB,EACtDwH,GACEnB,EACArG,EACA0H,CACF,EACA,MACF,QACEF,GACEnB,EACArG,EACA0H,CACF,CACJ,CACF,CACA,SAASnB,GAAiC,EAAc,EAAc,CACpE,GACW9G,EAAa,gBAAtB,OACE,EAAeA,EAAa,UACrB4G,IAAT,OACI,EAAeA,EAAa,cAAyBA,IAAT,OAChD,CACA,EAAeA,EAAa,WAC5B,GAAI,CACF0B,GAAiB1B,CAAY,CAC/B,OAASvoC,EAAO,CACd+hC,EAAwBJ,EAAcA,EAAa,OAAQ3hC,CAAK,CAClE,CACF,CACF,CACA,SAAS0oC,GAAiC,EAAc,EAAc,CACpE,GACW/G,EAAa,gBAAtB,OACE,EAAeA,EAAa,UACrB4G,IAAT,OACI,EAAeA,EAAa,cACrBA,IAAT,OACI,EAAeA,EAAa,WAAsBA,IAAT,QAE/C,GAAI,CACF0B,GAAiB1B,CAAY,CAC/B,OAASvoC,EAAO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lP,CAAe,EACzBkQ,EACT,CACA,SAASZ,GACP,EACA,EACA,EACA,EACA,EACA,CACA,OAAQntC,EAAR,CACE,IAAK,UACH,MACG,IAAc8tC,GACbN,GACAT,EACA/sC,EACA48B,EACAiB,EACAliC,CACF,EACA,CAAC,EAEL,IAAK,YACH,MACG,IAAamyC,GACZL,GACAV,EACA/sC,EACA48B,EACAiB,EACAliC,CACF,EACA,CAAC,EAEL,IAAK,YACH,MACG,IAAcmyC,GACbJ,GACAX,EACA/sC,EACA48B,EACAiB,EACAliC,CACF,EACA,CAAC,EAEL,IAAK,cACH,IAAIqyC,EAAYryC,EAAY,UAY5B,OAXAgyC,GAAe,IACbK,EACAF,GACEH,GAAe,IAAIK,CAAS,GAAK,KACjCjB,EACA/sC,EACA48B,EACAiB,EACAliC,CACF,CACF,EACO,CAAC,EACV,IAAK,oBACH,MACG,GAAYA,EAAY,UACzBiyC,GAAsB,IACpBI,EACAF,GACEF,GAAsB,IAAII,CAAS,GAAK,KACxCjB,EACA/sC,EACA48B,EACAiB,EACAliC,CACF,CACF,EACA,CAAC,CAEP,CACA,MAAO,CAAC,CACV,CACA,SAASsyC,GAA+B,EAAc,CACpD,IAAIr3C,EAAaD,GAA2Bu3C,EAAa,MAAM,EAC/D,GAAat3C,IAAT,KAAqB,CACvB,IAAI02C,EAAiBpiD,EAAuB0L,CAAU,EACtD,GAAa02C,IAAT,KACF,CAAM,GAAA,EAAaA,EAAe,IAAa12C,IAAP,GAElC,IAAA,EAAavL,EAA6BiiD,CAAc,EACjD12C,IAAT,KACA,CACA,EAAa,UAAYA,EACzBf,GAAgBq4C,EAAa,SAAU,UAAY,CACjDpB,GAAkCQ,CAAc,CAClD,CAAC,EACD,MACF,OACK,GAAW12C,IAAP,GAEL,IAAA,EAAarL,EAA6B+hD,CAAc,EACjD12C,IAAT,KACA,CACA,EAAa,UAAYA,EACzBf,GAAgBq4C,EAAa,SAAU,UAAY,CACjDpB,GAAkCQ,CAAc,CAClD,CAAC,EACD,MACF,OACK,GACC12C,IAAN,GACA02C,EAAe,UAAU,QAAQ,cAAc,aAC/C,CACA,EAA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"}
|