From 59c8530e6ce3887fd66eacc1df415d33bb64eadc Mon Sep 17 00:00:00 2001 From: Talha Date: Wed, 28 Jan 2026 21:12:05 +0500 Subject: [PATCH 01/10] ci: remove bootstrapping version --- .github/release-please/release-please-config.json | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/release-please/release-please-config.json b/.github/release-please/release-please-config.json index 69be73c..19a9359 100644 --- a/.github/release-please/release-please-config.json +++ b/.github/release-please/release-please-config.json @@ -1,7 +1,6 @@ { "include-component-in-tag": false, "include-v-in-tag": true, - "release-as": "1.5.5", "pull-request-title-pattern": "chore${scope}: release${component} ${version} [release-please]", "packages": { ".": { From aac984030952483698200f4c24a84e5bc0419557 Mon Sep 17 00:00:00 2001 From: Talha Amjad Date: Wed, 28 Jan 2026 23:35:41 +0500 Subject: [PATCH 02/10] refactor(package): move SDK from Assets/ import to UPM package in Packages/ Migrates the Unity SDK to a proper UPM package so it can be installed via Package Manager using a Git URL. JS .jslib binaries are now shipped with the package, removing the previous npm build requirement. Adds editor menu tools to simplify setup and mock-mode testing. BREAKING-CHANGE: SDK installation changed from importing into Assets/ (with a Unity project import flow) to installing as a UPM package under Packages/ via Package Manager/Git URL. The previous npm build step for generating .jslib binaries is no longer required because binaries are included. feat(editor): add menu item to import WebGL template feat(editor): add menu item to apply recommended project settings feat(editor): add menu item to add mock-mode prefab to active scene ci: add/update pipelines for UPM package build and tests ci: remove/update legacy workflows tied to Assets/ import flow fix: update references after package migration --- .github/workflows/build-sample-webgl.yaml | 85 + .github/workflows/packaging.yaml | 41 +- .github/workflows/testpackage.yaml | 35 - .github/workflows/testupm.yaml | 36 + .github/workflows/unity-tests.yaml | 58 + .github/workflows/verify-js-plugin.yaml | 39 + .gitignore | 8 +- Assets/NuGet.config | 4 +- .../Examples.meta => Packages.meta} | 2 +- Assets/Scenes/Lobby.unity | 3 +- Assets/Scenes/TestScene.unity | 3 +- CONTRIBUTING.md | 2 +- .../com.playroomkit.sdk.meta | 0 .../com.playroomkit.sdk/Assets.meta | 2 +- .../Assets}/WebGLTemplates.meta | 0 .../WebGLTemplates/DiscordTemplate.meta | 0 .../DiscordTemplate/TemplateData.meta | 0 .../DiscordTemplate/TemplateData/favicon.ico | Bin .../TemplateData/favicon.ico.meta | 0 .../TemplateData/progress-bar-empty-dark.png | Bin .../progress-bar-empty-dark.png.meta | 0 .../TemplateData/progress-bar-empty-light.png | Bin .../progress-bar-empty-light.png.meta | 0 .../TemplateData/progress-bar-full-dark.png | Bin .../progress-bar-full-dark.png.meta | 0 .../TemplateData/progress-bar-full-light.png | Bin .../progress-bar-full-light.png.meta | 0 .../DiscordTemplate/TemplateData/style.css | 0 .../TemplateData/style.css.meta | 0 .../TemplateData/unity-logo-dark.png | Bin .../TemplateData/unity-logo-dark.png.meta | 0 .../TemplateData/unity-logo-light.png | Bin .../TemplateData/unity-logo-light.png.meta | 0 .../WebGLTemplates/DiscordTemplate/index.html | 0 .../DiscordTemplate/index.html.meta | 0 .../DiscordTemplate/thumbnail.png | Bin .../DiscordTemplate/thumbnail.png.meta | 0 .../com.playroomkit.sdk}/Editor.meta | 0 .../Editor/PlayroomDevEditor.cs | 5 +- .../Editor/PlayroomDevEditor.cs.meta | 0 .../Editor/PlayroomDevMenu.cs | 84 + .../Editor/PlayroomDevMenu.cs.meta | 11 + .../Editor/PlayroomKit.Editor.asmdef | 19 + .../Editor/PlayroomKit.Editor.asmdef.meta | 7 + .../Editor/PlayroomWebGLTools.cs | 217 + .../Editor/PlayroomWebGLTools.cs.meta | 11 + .../Editor/PlayroomkitDevManagerEditor.uss | 0 .../PlayroomkitDevManagerEditor.uss.meta | 0 Packages/com.playroomkit.sdk/Runtime.meta | 8 + .../com.playroomkit.sdk/Runtime/Assembly.cs | 4 + .../Runtime/Assembly.cs.meta | 11 + .../Runtime}/Playroom.asmdef | 7 +- .../Runtime}/Playroom.asmdef.meta | 0 .../Runtime}/PlayroomKit.cs | 1 - .../Runtime}/PlayroomKit.cs.meta | 0 .../com.playroomkit.sdk/Runtime/Plugins.meta | 8 + .../Runtime/Plugins}/Castle.Core.5.1.1.meta | 0 .../Plugins}/Castle.Core.5.1.1/.signature.p7s | Bin ...L - Apache Software Foundation License.txt | 0 ...pache Software Foundation License.txt.meta | 0 .../Plugins}/Castle.Core.5.1.1/CHANGELOG.md | 0 .../Castle.Core.5.1.1/CHANGELOG.md.meta | 0 .../Castle.Core.5.1.1/Castle.Core.nuspec | 64 +- .../Castle.Core.5.1.1/Castle.Core.nuspec.meta | 0 .../Plugins}/Castle.Core.5.1.1/LICENSE | 0 .../Plugins}/Castle.Core.5.1.1/LICENSE.meta | 0 .../Castle.Core.5.1.1/castle-logo.png | Bin .../Castle.Core.5.1.1/castle-logo.png.meta | 0 .../Plugins}/Castle.Core.5.1.1/lib.meta | 0 .../Castle.Core.5.1.1/lib/netstandard2.1.meta | 0 .../lib/netstandard2.1/Castle.Core.dll | Bin .../lib/netstandard2.1/Castle.Core.dll.meta | 0 .../lib/netstandard2.1/Castle.Core.xml | 11796 ++-- .../lib/netstandard2.1/Castle.Core.xml.meta | 0 .../Plugins}/Castle.Core.5.1.1/readme.txt | 0 .../Castle.Core.5.1.1/readme.txt.meta | 0 .../Runtime/Plugins}/NSubstitute.5.1.0.meta | 0 .../Plugins}/NSubstitute.5.1.0/.signature.p7s | Bin .../NSubstitute.5.1.0/NSubstitute.nuspec | 52 +- .../NSubstitute.5.1.0/NSubstitute.nuspec.meta | 0 .../Plugins}/NSubstitute.5.1.0/icon.png | Bin .../Plugins}/NSubstitute.5.1.0/icon.png.meta | 0 .../Plugins}/NSubstitute.5.1.0/lib.meta | 0 .../NSubstitute.5.1.0/lib/netstandard2.0.meta | 0 .../lib/netstandard2.0/NSubstitute.dll | Bin .../lib/netstandard2.0/NSubstitute.dll.meta | 0 .../lib/netstandard2.0/NSubstitute.xml | 2820 +- .../lib/netstandard2.0/NSubstitute.xml.meta | 0 .../Runtime/Plugins}/ParrelSync.meta | 0 .../Runtime/Plugins}/ParrelSync/Editor.meta | 0 .../ParrelSync/Editor/AssetModBlock.meta | 0 .../Editor/AssetModBlock/EditorQuit.cs | 0 .../Editor/AssetModBlock/EditorQuit.cs.meta | 0 .../ParrelSyncAssetModificationProcessor.cs | 0 ...rrelSyncAssetModificationProcessor.cs.meta | 0 .../ParrelSync/Editor/ClonesManager.cs | 0 .../ParrelSync/Editor/ClonesManager.cs.meta | 0 .../ParrelSync/Editor/ClonesManagerWindow.cs | 0 .../Editor/ClonesManagerWindow.cs.meta | 0 .../ParrelSync/Editor/ExternalLinks.cs | 0 .../ParrelSync/Editor/ExternalLinks.cs.meta | 0 .../ParrelSync/Editor/FileUtilities.cs | 0 .../ParrelSync/Editor/FileUtilities.cs.meta | 0 .../Plugins}/ParrelSync/Editor/NonCore.meta | 0 .../Editor/NonCore/AskFeedbackDialog.cs | 0 .../Editor/NonCore/AskFeedbackDialog.cs.meta | 0 .../Editor/NonCore/OtherMenuItem.cs | 0 .../Editor/NonCore/OtherMenuItem.cs.meta | 0 .../Editor/ParrelSyncProjectSettings.cs | 0 .../Editor/ParrelSyncProjectSettings.cs.meta | 0 .../Plugins}/ParrelSync/Editor/Preferences.cs | 0 .../ParrelSync/Editor/Preferences.cs.meta | 0 .../Plugins}/ParrelSync/Editor/Project.cs | 0 .../ParrelSync/Editor/Project.cs.meta | 0 .../ParrelSync/Editor/UpdateChecker.cs | 0 .../ParrelSync/Editor/UpdateChecker.cs.meta | 0 .../Editor/ValidateCopiedFoldersIntegrity.cs | 0 .../ValidateCopiedFoldersIntegrity.cs.meta | 0 .../Runtime/Plugins}/ParrelSync/Plugins.meta | 0 .../ParrelSync/Plugins/ParrelSync.meta | 0 .../Plugins/ParrelSync/ScriptableObjects.meta | 0 .../ParrelSyncProjectSettings.asset | 0 .../ParrelSyncProjectSettings.asset.meta | 0 .../Runtime/Plugins}/ParrelSync/package.json | 0 .../Plugins}/ParrelSync/package.json.meta | 0 .../Plugins}/ParrelSync/projectCloner.asmdef | 0 .../ParrelSync/projectCloner.asmdef.meta | 0 .../Runtime/Plugins/Playroom.meta | 8 + .../Plugins/Playroom/PlayroomFrameworks.jspre | 52628 ++++++++++++++++ .../Playroom/PlayroomFrameworks.jspre.meta | 32 + .../Plugins/Playroom/PlayroomPlugin.jslib | 0 .../Playroom/PlayroomPlugin.jslib.meta | 32 + .../Runtime/Plugins}/PowerConsole.meta | 0 .../Plugins}/PowerConsole/CommandArgument.cs | 0 .../PowerConsole/CommandArgument.cs.meta | 0 .../Plugins}/PowerConsole/CommandCallback.cs | 0 .../PowerConsole/CommandCallback.cs.meta | 0 .../PowerConsole/CommandEnteredEventArgs.cs | 0 .../CommandEnteredEventArgs.cs.meta | 0 .../Plugins}/PowerConsole/ConsoleColours.cs | 0 .../PowerConsole/ConsoleColours.cs.meta | 0 .../Plugins}/PowerConsole/ConsoleConfig.cs | 0 .../PowerConsole/ConsoleConfig.cs.meta | 0 .../Plugins}/PowerConsole/ConsolePosition.cs | 0 .../PowerConsole/ConsolePosition.cs.meta | 0 .../Runtime/Plugins}/PowerConsole/Core.meta | 0 .../PowerConsole/Core/CanvasController.cs | 0 .../Core/CanvasController.cs.meta | 0 .../PowerConsole/Core/ConsoleController.cs | 0 .../Core/ConsoleController.cs.meta | 0 .../Plugins}/PowerConsole/CustomCommand.cs | 0 .../PowerConsole/CustomCommand.cs.meta | 0 .../Plugins}/PowerConsole/Example.meta | 0 .../PowerConsole/Example/ExampleScene.unity | 0 .../Example/ExampleScene.unity.meta | 0 .../Example/ExampleSceneManagerController.cs | 0 .../ExampleSceneManagerController.cs.meta | 0 .../Runtime/Plugins}/PowerConsole/LogLevel.cs | 0 .../Plugins}/PowerConsole/LogLevel.cs.meta | 0 .../Plugins}/PowerConsole/PowerConsole.cs | 0 .../PowerConsole/PowerConsole.cs.meta | 0 .../Plugins}/PowerConsole/Prefabs.meta | 0 .../PowerConsole/Prefabs/PowerConsole.prefab | 0 .../Prefabs/PowerConsole.prefab.meta | 0 .../Runtime/Plugins}/PowerConsole/readme.txt | 0 .../Plugins}/PowerConsole/readme.txt.meta | 0 .../Runtime/Plugins}/SimpleJSON.meta | 0 .../Runtime/Plugins}/SimpleJSON/Changelog.txt | 0 .../Plugins}/SimpleJSON/Changelog.txt.meta | 0 .../Runtime/Plugins}/SimpleJSON/LICENSE | 0 .../Runtime/Plugins}/SimpleJSON/LICENSE.meta | 0 .../Runtime/Plugins}/SimpleJSON/README | 0 .../Runtime/Plugins}/SimpleJSON/README.meta | 0 .../Runtime/Plugins}/SimpleJSON/SimpleJSON.cs | 0 .../Plugins}/SimpleJSON/SimpleJSON.cs.meta | 0 .../Plugins}/SimpleJSON/SimpleJSONBinary.cs | 0 .../SimpleJSON/SimpleJSONBinary.cs.meta | 0 .../SimpleJSON/SimpleJSONDotNetTypes.cs | 0 .../SimpleJSON/SimpleJSONDotNetTypes.cs.meta | 0 .../Plugins}/SimpleJSON/SimpleJSONUnity.cs | 0 .../SimpleJSON/SimpleJSONUnity.cs.meta | 0 .../System.Diagnostics.EventLog.4.7.0.meta | 0 .../.signature.p7s | Bin .../LICENSE.TXT | 46 +- .../LICENSE.TXT.meta | 0 .../System.Diagnostics.EventLog.nuspec | 96 +- .../System.Diagnostics.EventLog.nuspec.meta | 0 .../THIRD-PARTY-NOTICES.TXT | 750 +- .../THIRD-PARTY-NOTICES.TXT.meta | 0 .../lib.meta | 0 .../lib/netstandard2.0.meta | 0 .../System.Diagnostics.EventLog.dll | Bin .../System.Diagnostics.EventLog.dll.meta | 0 .../System.Diagnostics.EventLog.xml | 4046 +- .../System.Diagnostics.EventLog.xml.meta | 0 .../useSharedDesignerContext.txt | 0 .../useSharedDesignerContext.txt.meta | 0 .../version.txt | 2 +- .../version.txt.meta | 0 ...stem.Security.Principal.Windows.4.7.0.meta | 0 .../.signature.p7s | Bin .../LICENSE.TXT | 46 +- .../LICENSE.TXT.meta | 0 .../System.Security.Principal.Windows.nuspec | 130 +- ...tem.Security.Principal.Windows.nuspec.meta | 0 .../THIRD-PARTY-NOTICES.TXT | 750 +- .../THIRD-PARTY-NOTICES.TXT.meta | 0 .../lib.meta | 0 .../lib/netstandard2.0.meta | 0 .../System.Security.Principal.Windows.dll | Bin ...System.Security.Principal.Windows.dll.meta | 0 .../System.Security.Principal.Windows.xml | 2056 +- ...System.Security.Principal.Windows.xml.meta | 0 .../useSharedDesignerContext.txt | 0 .../useSharedDesignerContext.txt.meta | 0 .../version.txt | 2 +- .../version.txt.meta | 0 .../Runtime/Plugins}/UnityBrowserBridge.meta | 0 .../Plugins}/UnityBrowserBridge/Plugins.meta | 0 .../Plugins/SeleniumLicense.txt | 0 .../Plugins/SeleniumLicense.txt.meta | 0 .../UnityBrowserBridge/Plugins/WebDriver.dll | Bin .../Plugins/WebDriver.dll.meta | 0 .../Plugins}/UnityBrowserBridge/Prefabs.meta | 0 .../Prefabs/UnityBrowserBridge.prefab | 0 .../Prefabs/UnityBrowserBridge.prefab.meta | 0 .../UnityBrowserBridge/Resources.meta | 0 .../UnityBrowserBridge/Resources/delete.png | Bin .../Resources/delete.png.meta | 0 .../UnityBrowserBridge/Resources/favicon.ico | Bin .../Resources/favicon.ico.meta | 0 .../UnityBrowserBridge/Resources/index.html | 0 .../Resources/index.html.meta | 0 .../UnityBrowserBridge/Resources/style.css | 0 .../Resources/style.css.meta | 0 .../UnityBrowserBridge/Resources/ubb_logo.png | Bin .../Resources/ubb_logo.png.meta | 0 .../Resources/unitybrowserbridge.js | 0 .../Resources/unitybrowserbridge.js.meta | 0 .../Plugins}/UnityBrowserBridge/Scripts.meta | 0 .../UnityBrowserBridge/Scripts/HttpServer.cs | 0 .../Scripts/HttpServer.cs.meta | 0 .../Scripts/UnityBrowserBridge.cs | 0 .../Scripts/UnityBrowserBridge.cs.meta | 0 .../Runtime/Plugins}/fonts.meta | 0 .../fonts/JetBrainsMono-Medium SDF.asset | 0 .../fonts/JetBrainsMono-Medium SDF.asset.meta | 0 .../Plugins}/fonts/JetBrainsMono-Medium.ttf | Bin .../fonts/JetBrainsMono-Medium.ttf.meta | 0 .../com.playroomkit.sdk/Runtime}/Prefabs.meta | 0 .../Runtime}/Prefabs/PlayroomConsole.prefab | 0 .../Prefabs/PlayroomConsole.prefab.meta | 0 .../Prefabs/PlayroomMockManager.prefab | 3 +- .../Prefabs/PlayroomMockManager.prefab.meta | 0 .../com.playroomkit.sdk/Runtime}/modules.meta | 0 .../Runtime}/modules/Discord.meta | 0 .../modules/Discord/DiscordEntitlement.cs | 0 .../Discord/DiscordEntitlement.cs.meta | 0 .../Runtime}/modules/Discord/DiscordSkus.cs | 0 .../modules/Discord/DiscordSkus.cs.meta | 0 .../Runtime}/modules/Discord/SDKEvents.cs | 0 .../modules/Discord/SDKEvents.cs.meta | 0 .../Runtime}/modules/Discord/Utils.cs | 0 .../Runtime}/modules/Discord/Utils.cs.meta | 0 .../Runtime}/modules/Headers.cs | 0 .../Runtime}/modules/Headers.cs.meta | 0 .../Runtime}/modules/Helpers.meta | 0 .../modules/Helpers/CallbackManager.cs | 9 + .../modules/Helpers/CallbackManager.cs.meta | 0 .../modules/Helpers/CommandManager.cs | 0 .../modules/Helpers/CommandManager.cs.meta | 0 .../Runtime}/modules/Helpers/DebugLogger.cs | 0 .../modules/Helpers/DebugLogger.cs.meta | 0 .../Runtime}/modules/Helpers/Helpers.cs | 0 .../Runtime}/modules/Helpers/Helpers.cs.meta | 0 .../modules/Helpers/InternalFunctions.meta | 0 .../InternalFunctions/IInternalFunctions.cs | 0 .../IInternalFunctions.cs.meta | 0 .../InternalFunctions/InterlopWrapper.cs | 0 .../InternalFunctions/InterlopWrapper.cs.meta | 0 .../Runtime}/modules/Helpers/TurnData.cs | 0 .../Runtime}/modules/Helpers/TurnData.cs.meta | 0 .../Runtime}/modules/Interfaces.meta | 0 .../modules/Interfaces/IPlayerBase.cs | 0 .../modules/Interfaces/IPlayerBase.cs.meta | 0 .../modules/Interfaces/IPlayroomBase.cs | 0 .../modules/Interfaces/IPlayroomBase.cs.meta | 0 .../Interfaces/IPlayroomBuildExtensions.cs | 0 .../IPlayroomBuildExtensions.cs.meta | 0 .../Runtime}/modules/Interfaces/IRPC.cs | 0 .../Runtime}/modules/Interfaces/IRPC.cs.meta | 0 .../Runtime}/modules/MockMode.meta | 0 .../modules/MockMode/BrowserMode.meta | 0 .../BrowserMode/BrowserMockPlayerService.cs | 0 .../BrowserMockPlayerService.cs.meta | 0 .../MockMode/BrowserMode/BrowserMockRPC.cs | 0 .../BrowserMode/BrowserMockRPC.cs.meta | 0 .../BrowserMode/BrowserMockService.cs | 0 .../BrowserMode/BrowserMockService.cs.meta | 0 .../BrowserMode/PlayroomMockBrowserBridge.js | 0 .../PlayroomMockBrowserBridge.js.meta | 0 .../modules/MockMode/CallBacksHandlerMock.cs | 0 .../MockMode/CallBacksHandlerMock.cs.meta | 0 .../modules/MockMode/LocalPlayroomService.cs | 0 .../MockMode/LocalPlayroomService.cs.meta | 0 .../modules/MockMode/MockCallbackInvoker.cs | 0 .../MockMode/MockCallbackInvoker.cs.meta | 0 .../Runtime}/modules/Options.meta | 0 .../Runtime}/modules/Options/ButtonOptions.cs | 0 .../modules/Options/ButtonOptions.cs.meta | 0 .../modules/Options/DiscordOptions.cs | 0 .../modules/Options/DiscordOptions.cs.meta | 0 .../Runtime}/modules/Options/Dpad.cs | 0 .../Runtime}/modules/Options/Dpad.cs.meta | 0 .../Runtime}/modules/Options/InitOptions.cs | 0 .../modules/Options/InitOptions.cs.meta | 0 .../modules/Options/JoystickOptions.cs | 0 .../modules/Options/JoystickOptions.cs.meta | 0 .../modules/Options/MatchMakingOptions.cs | 0 .../Options/MatchMakingOptions.cs.meta | 0 .../modules/Options/TurnBasedOptions.cs | 0 .../modules/Options/TurnBasedOptions.cs.meta | 0 .../Runtime}/modules/Options/ZoneOptions.cs | 0 .../modules/Options/ZoneOptions.cs.meta | 0 .../Runtime}/modules/Player.meta | 0 .../modules/Player/LocalPlayerService.cs | 0 .../modules/Player/LocalPlayerService.cs.meta | 0 .../Runtime}/modules/Player/Player.cs | 0 .../Runtime}/modules/Player/Player.cs.meta | 0 .../Runtime}/modules/Player/PlayerService.cs | 0 .../modules/Player/PlayerService.cs.meta | 0 .../Runtime}/modules/PlayroomBuildService.cs | 0 .../modules/PlayroomBuildService.cs.meta | 0 .../Runtime}/modules/PlayroomkitDevManager.cs | 0 .../modules/PlayroomkitDevManager.cs.meta | 0 .../Runtime}/modules/RPC.meta | 0 .../Runtime}/modules/RPC/RPC.cs | 9 +- .../Runtime}/modules/RPC/RPC.cs.meta | 0 .../Runtime}/modules/RPC/RPCLocal.cs | 0 .../Runtime}/modules/RPC/RPCLocal.cs.meta | 0 .../Runtime}/modules/Store.meta | 0 .../modules/Store/PlayerEntitlements.cs | 0 .../modules/Store/PlayerEntitlements.cs.meta | 0 .../Runtime}/modules/Store/SKU.cs | 0 .../Runtime}/modules/Store/SKU.cs.meta | 0 .../Runtime}/modules/Store/ServerReward.cs | 0 .../modules/Store/ServerReward.cs.meta | 0 .../Samples~}/2d-platformer.meta | 0 .../2d-platformer/2d-platformer.unity | 3 +- .../2d-platformer/2d-platformer.unity.meta | 0 .../PlayroomKit.Samples.2dPlatformer.asmdef | 17 + ...ayroomKit.Samples.2dPlatformer.asmdef.meta | 7 + .../Samples~}/2d-platformer/fonts.meta | 0 .../fonts/LiberationSans SDF.asset | 0 .../fonts/LiberationSans SDF.asset.meta | 0 .../Samples~}/2d-platformer/prefabs.meta | 0 .../2d-platformer/prefabs/Bullet.prefab | 0 .../2d-platformer/prefabs/Bullet.prefab.meta | 0 .../2d-platformer/prefabs/Player.prefab | 0 .../2d-platformer/prefabs/Player.prefab.meta | 0 .../Samples~}/2d-platformer/scripts.meta | 0 .../2d-platformer/scripts/GameManager2d.cs | 0 .../scripts/GameManager2d.cs.meta | 0 .../scripts/PlayerController2d.cs | 0 .../scripts/PlayerController2d.cs.meta | 0 .../Samples~}/2d-platformer/sprites.meta | 0 .../2d-platformer/sprites/Circle.png | Bin .../2d-platformer/sprites/Circle.png.meta | 0 .../2d-platformer/sprites/Square.png | Bin .../2d-platformer/sprites/Square.png.meta | 0 .../Samples~}/discord-activity.meta | 0 .../Samples~}/discord-activity/Models.meta | 0 .../Samples~}/discord-activity/Models/Hat.fbx | Bin .../discord-activity/Models/Hat.fbx.meta | 0 ...PlayroomKit.Samples.DiscordActivity.asmdef | 17 + ...oomKit.Samples.DiscordActivity.asmdef.meta | 7 + .../discord-activity/discord-activity.unity | 3 +- .../discord-activity.unity.meta | 0 .../Samples~}/discord-activity/materials.meta | 0 .../discord-activity/materials/Base.mat | 0 .../discord-activity/materials/Base.mat.meta | 0 .../discord-activity/materials/player.mat | 0 .../materials/player.mat.meta | 0 .../Samples~}/discord-activity/prefabs.meta | 0 .../discord-activity/prefabs/Bean.prefab | 0 .../discord-activity/prefabs/Bean.prefab.meta | 0 .../discord-activity/prefabs/Ground.prefab | 0 .../prefabs/Ground.prefab.meta | 0 .../Samples~}/discord-activity/readme.md | 0 .../Samples~}/discord-activity/readme.md.meta | 0 .../Samples~}/discord-activity/scripts.meta | 0 .../scripts/GameManagerIsometric.cs | 0 .../scripts/GameManagerIsometric.cs.meta | 0 .../scripts/IsometricPlayerController.cs | 0 .../scripts/IsometricPlayerController.cs.meta | 0 .../Samples~}/package-showcase.meta | 0 ...PlayroomKit.Samples.PackageShowcase.asmdef | 17 + ...oomKit.Samples.PackageShowcase.asmdef.meta | 7 + .../Samples~}/package-showcase/materials.meta | 0 .../package-showcase/materials/Base.mat | 0 .../package-showcase/materials/Base.mat.meta | 0 .../package-showcase/materials/player.mat | 0 .../materials/player.mat.meta | 0 .../Samples~}/package-showcase/models.meta | 0 .../Samples~}/package-showcase/models/Hat.fbx | Bin .../package-showcase/models/Hat.fbx.meta | 0 .../Samples~}/package-showcase/prefabs.meta | 0 .../package-showcase/prefabs/BeanDemo.prefab | 0 .../prefabs/BeanDemo.prefab.meta | 0 .../package-showcase/prefabs/Black.mat | 0 .../package-showcase/prefabs/Black.mat.meta | 0 .../package-showcase/prefabs/Bullet.prefab | 0 .../prefabs/Bullet.prefab.meta | 0 .../package-showcase/prefabs/Ground.prefab | 0 .../prefabs/Ground.prefab.meta | 0 .../Samples~}/package-showcase/scripts.meta | 0 .../scripts/GameManagerDemo.cs | 0 .../scripts/GameManagerDemo.cs.meta | 0 .../package-showcase/scripts/Laser.cs | 0 .../package-showcase/scripts/Laser.cs.meta | 0 .../scripts/PlayerController.cs | 0 .../scripts/PlayerController.cs.meta | 0 .../Samples~}/package-showcase/showcase.unity | 0 .../package-showcase/showcase.unity.meta | 0 .../com.playroomkit.sdk}/Tests.meta | 0 .../com.playroomkit.sdk}/Tests/Editor.meta | 0 .../Tests/Editor/Editor.asmdef | 7 +- .../Tests/Editor/Editor.asmdef.meta | 0 .../Tests/Editor/PlayerLocalTests.cs | 29 +- .../Tests/Editor/PlayerLocalTests.cs.meta | 0 .../Tests/Editor/PlayerTests.cs | 19 +- .../Tests/Editor/PlayerTests.cs.meta | 0 .../Tests/Editor/PlayroomKitLocalTests.cs | 21 +- .../Editor/PlayroomKitLocalTests.cs.meta | 0 .../Tests/Editor/PlayroomKitTest.cs | 89 +- .../Tests/Editor/PlayroomKitTest.cs.meta | 0 Packages/com.playroomkit.sdk/package.json | 44 + .../com.playroomkit.sdk/package.json.meta | 7 + Packages/manifest.json | 13 +- Packages/packages-lock.json | 60 +- ProjectSettings/EditorBuildSettings.asset | 11 +- ProjectSettings/EditorSettings.asset | 11 +- ProjectSettings/ProjectSettings.asset | 8 +- ProjectSettings/ProjectVersion.txt | 4 +- Tools/playroomkit-js/package-lock.json | 1528 + .../playroomkit-js}/package.json | 0 .../playroomkit-js}/package.json.meta | 0 .../playroomkit-js}/src.meta | 0 .../playroomkit-js}/src/frameworks.js | 0 .../playroomkit-js}/src/frameworks.js.meta | 0 Tools/playroomkit-js/src/index.js | 1305 + .../playroomkit-js}/src/index.js.meta | 0 .../playroomkit-js}/vite.config.js | 4 +- .../playroomkit-js}/vite.config.js.meta | 0 454 files changed, 67798 insertions(+), 11528 deletions(-) create mode 100644 .github/workflows/build-sample-webgl.yaml delete mode 100644 .github/workflows/testpackage.yaml create mode 100644 .github/workflows/testupm.yaml create mode 100644 .github/workflows/unity-tests.yaml create mode 100644 .github/workflows/verify-js-plugin.yaml rename Assets/{PlayroomKit/Examples.meta => Packages.meta} (77%) rename Assets/PlayroomKit.meta => Packages/com.playroomkit.sdk.meta (100%) rename Assets/PlayroomKit/dependencies.meta => Packages/com.playroomkit.sdk/Assets.meta (77%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates.meta (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate.meta (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/TemplateData.meta (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/TemplateData/favicon.ico (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/TemplateData/favicon.ico.meta (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-dark.png (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-dark.png.meta (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-light.png (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-light.png.meta (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-dark.png (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-dark.png.meta (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-light.png (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-light.png.meta (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/TemplateData/style.css (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/TemplateData/style.css.meta (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-dark.png (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-dark.png.meta (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-light.png (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-light.png.meta (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/index.html (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/index.html.meta (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/thumbnail.png (100%) rename {Assets => Packages/com.playroomkit.sdk/Assets}/WebGLTemplates/DiscordTemplate/thumbnail.png.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk}/Editor.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk}/Editor/PlayroomDevEditor.cs (98%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk}/Editor/PlayroomDevEditor.cs.meta (100%) create mode 100644 Packages/com.playroomkit.sdk/Editor/PlayroomDevMenu.cs create mode 100644 Packages/com.playroomkit.sdk/Editor/PlayroomDevMenu.cs.meta create mode 100644 Packages/com.playroomkit.sdk/Editor/PlayroomKit.Editor.asmdef create mode 100644 Packages/com.playroomkit.sdk/Editor/PlayroomKit.Editor.asmdef.meta create mode 100644 Packages/com.playroomkit.sdk/Editor/PlayroomWebGLTools.cs create mode 100644 Packages/com.playroomkit.sdk/Editor/PlayroomWebGLTools.cs.meta rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk}/Editor/PlayroomkitDevManagerEditor.uss (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk}/Editor/PlayroomkitDevManagerEditor.uss.meta (100%) create mode 100644 Packages/com.playroomkit.sdk/Runtime.meta create mode 100644 Packages/com.playroomkit.sdk/Runtime/Assembly.cs create mode 100644 Packages/com.playroomkit.sdk/Runtime/Assembly.cs.meta rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/Playroom.asmdef (75%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/Playroom.asmdef.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/PlayroomKit.cs (99%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/PlayroomKit.cs.meta (100%) create mode 100644 Packages/com.playroomkit.sdk/Runtime/Plugins.meta rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/.signature.p7s (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/CHANGELOG.md (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/CHANGELOG.md.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/Castle.Core.nuspec (98%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/Castle.Core.nuspec.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/LICENSE (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/LICENSE.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/castle-logo.png (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/castle-logo.png.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/lib.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/lib/netstandard2.1.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml (98%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/readme.txt (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/Castle.Core.5.1.1/readme.txt.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/NSubstitute.5.1.0.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/NSubstitute.5.1.0/.signature.p7s (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/NSubstitute.5.1.0/NSubstitute.nuspec (98%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/NSubstitute.5.1.0/NSubstitute.nuspec.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/NSubstitute.5.1.0/icon.png (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/NSubstitute.5.1.0/icon.png.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/NSubstitute.5.1.0/lib.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/NSubstitute.5.1.0/lib/netstandard2.0.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml (98%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/AssetModBlock.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/AssetModBlock/EditorQuit.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/AssetModBlock/EditorQuit.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/ClonesManager.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/ClonesManager.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/ClonesManagerWindow.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/ClonesManagerWindow.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/ExternalLinks.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/ExternalLinks.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/FileUtilities.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/FileUtilities.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/NonCore.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/NonCore/OtherMenuItem.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/NonCore/OtherMenuItem.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/ParrelSyncProjectSettings.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/ParrelSyncProjectSettings.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/Preferences.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/Preferences.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/Project.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/Project.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/UpdateChecker.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/UpdateChecker.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Plugins.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Plugins/ParrelSync.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Plugins/ParrelSync/ScriptableObjects.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/package.json (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/package.json.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/projectCloner.asmdef (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/ParrelSync/projectCloner.asmdef.meta (100%) create mode 100644 Packages/com.playroomkit.sdk/Runtime/Plugins/Playroom.meta create mode 100644 Packages/com.playroomkit.sdk/Runtime/Plugins/Playroom/PlayroomFrameworks.jspre create mode 100644 Packages/com.playroomkit.sdk/Runtime/Plugins/Playroom/PlayroomFrameworks.jspre.meta rename Assets/PlayroomKit/src/index.js => Packages/com.playroomkit.sdk/Runtime/Plugins/Playroom/PlayroomPlugin.jslib (100%) create mode 100644 Packages/com.playroomkit.sdk/Runtime/Plugins/Playroom/PlayroomPlugin.jslib.meta rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/CommandArgument.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/CommandArgument.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/CommandCallback.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/CommandCallback.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/CommandEnteredEventArgs.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/CommandEnteredEventArgs.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/ConsoleColours.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/ConsoleColours.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/ConsoleConfig.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/ConsoleConfig.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/ConsolePosition.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/ConsolePosition.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/Core.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/Core/CanvasController.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/Core/CanvasController.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/Core/ConsoleController.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/Core/ConsoleController.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/CustomCommand.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/CustomCommand.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/Example.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/Example/ExampleScene.unity (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/Example/ExampleScene.unity.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/Example/ExampleSceneManagerController.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/Example/ExampleSceneManagerController.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/LogLevel.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/LogLevel.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/PowerConsole.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/PowerConsole.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/Prefabs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/Prefabs/PowerConsole.prefab (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/Prefabs/PowerConsole.prefab.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/readme.txt (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/PowerConsole/readme.txt.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/SimpleJSON.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/SimpleJSON/Changelog.txt (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/SimpleJSON/Changelog.txt.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/SimpleJSON/LICENSE (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/SimpleJSON/LICENSE.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/SimpleJSON/README (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/SimpleJSON/README.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/SimpleJSON/SimpleJSON.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/SimpleJSON/SimpleJSON.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/SimpleJSON/SimpleJSONBinary.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/SimpleJSON/SimpleJSONBinary.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/SimpleJSON/SimpleJSONDotNetTypes.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/SimpleJSON/SimpleJSONDotNetTypes.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/SimpleJSON/SimpleJSONUnity.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/SimpleJSON/SimpleJSONUnity.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Diagnostics.EventLog.4.7.0.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Diagnostics.EventLog.4.7.0/.signature.p7s (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Diagnostics.EventLog.4.7.0/LICENSE.TXT (97%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Diagnostics.EventLog.4.7.0/LICENSE.TXT.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Diagnostics.EventLog.4.7.0/System.Diagnostics.EventLog.nuspec (98%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Diagnostics.EventLog.4.7.0/System.Diagnostics.EventLog.nuspec.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Diagnostics.EventLog.4.7.0/THIRD-PARTY-NOTICES.TXT (98%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Diagnostics.EventLog.4.7.0/THIRD-PARTY-NOTICES.TXT.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Diagnostics.EventLog.4.7.0/lib.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.dll (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.dll.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.xml (98%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Diagnostics.EventLog.4.7.0/lib/netstandard2.0/System.Diagnostics.EventLog.xml.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Diagnostics.EventLog.4.7.0/useSharedDesignerContext.txt (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Diagnostics.EventLog.4.7.0/useSharedDesignerContext.txt.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Diagnostics.EventLog.4.7.0/version.txt (97%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Diagnostics.EventLog.4.7.0/version.txt.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Security.Principal.Windows.4.7.0.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Security.Principal.Windows.4.7.0/.signature.p7s (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Security.Principal.Windows.4.7.0/LICENSE.TXT (97%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Security.Principal.Windows.4.7.0/LICENSE.TXT.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Security.Principal.Windows.4.7.0/System.Security.Principal.Windows.nuspec (98%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Security.Principal.Windows.4.7.0/System.Security.Principal.Windows.nuspec.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Security.Principal.Windows.4.7.0/THIRD-PARTY-NOTICES.TXT (98%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Security.Principal.Windows.4.7.0/THIRD-PARTY-NOTICES.TXT.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Security.Principal.Windows.4.7.0/lib.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.dll (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.dll.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.xml (98%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Security.Principal.Windows.4.7.0/lib/netstandard2.0/System.Security.Principal.Windows.xml.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Security.Principal.Windows.4.7.0/useSharedDesignerContext.txt (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Security.Principal.Windows.4.7.0/useSharedDesignerContext.txt.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Security.Principal.Windows.4.7.0/version.txt (97%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/System.Security.Principal.Windows.4.7.0/version.txt.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Plugins.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Plugins/SeleniumLicense.txt (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Plugins/SeleniumLicense.txt.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Plugins/WebDriver.dll (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Plugins/WebDriver.dll.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Prefabs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Prefabs/UnityBrowserBridge.prefab (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Prefabs/UnityBrowserBridge.prefab.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Resources.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Resources/delete.png (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Resources/delete.png.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Resources/favicon.ico (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Resources/favicon.ico.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Resources/index.html (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Resources/index.html.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Resources/style.css (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Resources/style.css.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Resources/ubb_logo.png (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Resources/ubb_logo.png.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Resources/unitybrowserbridge.js (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Resources/unitybrowserbridge.js.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Scripts.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Scripts/HttpServer.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Scripts/HttpServer.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Scripts/UnityBrowserBridge.cs (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/UnityBrowserBridge/Scripts/UnityBrowserBridge.cs.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/fonts.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/fonts/JetBrainsMono-Medium SDF.asset (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/fonts/JetBrainsMono-Medium SDF.asset.meta (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/fonts/JetBrainsMono-Medium.ttf (100%) rename {Assets/PlayroomKit/dependencies => Packages/com.playroomkit.sdk/Runtime/Plugins}/fonts/JetBrainsMono-Medium.ttf.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/Prefabs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/Prefabs/PlayroomConsole.prefab (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/Prefabs/PlayroomConsole.prefab.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/Prefabs/PlayroomMockManager.prefab (97%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/Prefabs/PlayroomMockManager.prefab.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Discord.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Discord/DiscordEntitlement.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Discord/DiscordEntitlement.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Discord/DiscordSkus.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Discord/DiscordSkus.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Discord/SDKEvents.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Discord/SDKEvents.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Discord/Utils.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Discord/Utils.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Headers.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Headers.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Helpers.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Helpers/CallbackManager.cs (96%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Helpers/CallbackManager.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Helpers/CommandManager.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Helpers/CommandManager.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Helpers/DebugLogger.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Helpers/DebugLogger.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Helpers/Helpers.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Helpers/Helpers.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Helpers/InternalFunctions.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Helpers/InternalFunctions/IInternalFunctions.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Helpers/InternalFunctions/IInternalFunctions.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Helpers/InternalFunctions/InterlopWrapper.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Helpers/InternalFunctions/InterlopWrapper.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Helpers/TurnData.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Helpers/TurnData.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Interfaces.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Interfaces/IPlayerBase.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Interfaces/IPlayerBase.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Interfaces/IPlayroomBase.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Interfaces/IPlayroomBase.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Interfaces/IPlayroomBuildExtensions.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Interfaces/IPlayroomBuildExtensions.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Interfaces/IRPC.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Interfaces/IRPC.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/MockMode.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/MockMode/BrowserMode.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/MockMode/BrowserMode/BrowserMockPlayerService.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/MockMode/BrowserMode/BrowserMockPlayerService.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/MockMode/BrowserMode/BrowserMockRPC.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/MockMode/BrowserMode/BrowserMockRPC.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/MockMode/BrowserMode/BrowserMockService.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/MockMode/BrowserMode/BrowserMockService.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/MockMode/BrowserMode/PlayroomMockBrowserBridge.js (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/MockMode/BrowserMode/PlayroomMockBrowserBridge.js.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/MockMode/CallBacksHandlerMock.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/MockMode/CallBacksHandlerMock.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/MockMode/LocalPlayroomService.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/MockMode/LocalPlayroomService.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/MockMode/MockCallbackInvoker.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/MockMode/MockCallbackInvoker.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Options.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Options/ButtonOptions.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Options/ButtonOptions.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Options/DiscordOptions.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Options/DiscordOptions.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Options/Dpad.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Options/Dpad.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Options/InitOptions.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Options/InitOptions.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Options/JoystickOptions.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Options/JoystickOptions.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Options/MatchMakingOptions.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Options/MatchMakingOptions.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Options/TurnBasedOptions.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Options/TurnBasedOptions.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Options/ZoneOptions.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Options/ZoneOptions.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Player.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Player/LocalPlayerService.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Player/LocalPlayerService.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Player/Player.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Player/Player.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Player/PlayerService.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Player/PlayerService.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/PlayroomBuildService.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/PlayroomBuildService.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/PlayroomkitDevManager.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/PlayroomkitDevManager.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/RPC.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/RPC/RPC.cs (96%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/RPC/RPC.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/RPC/RPCLocal.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/RPC/RPCLocal.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Store.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Store/PlayerEntitlements.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Store/PlayerEntitlements.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Store/SKU.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Store/SKU.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Store/ServerReward.cs (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk/Runtime}/modules/Store/ServerReward.cs.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/2d-platformer.unity (99%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/2d-platformer.unity.meta (100%) create mode 100644 Packages/com.playroomkit.sdk/Samples~/2d-platformer/PlayroomKit.Samples.2dPlatformer.asmdef create mode 100644 Packages/com.playroomkit.sdk/Samples~/2d-platformer/PlayroomKit.Samples.2dPlatformer.asmdef.meta rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/fonts.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/fonts/LiberationSans SDF.asset (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/fonts/LiberationSans SDF.asset.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/prefabs.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/prefabs/Bullet.prefab (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/prefabs/Bullet.prefab.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/prefabs/Player.prefab (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/prefabs/Player.prefab.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/scripts.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/scripts/GameManager2d.cs (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/scripts/GameManager2d.cs.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/scripts/PlayerController2d.cs (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/scripts/PlayerController2d.cs.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/sprites.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/sprites/Circle.png (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/sprites/Circle.png.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/sprites/Square.png (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/2d-platformer/sprites/Square.png.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/Models.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/Models/Hat.fbx (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/Models/Hat.fbx.meta (100%) create mode 100644 Packages/com.playroomkit.sdk/Samples~/discord-activity/PlayroomKit.Samples.DiscordActivity.asmdef create mode 100644 Packages/com.playroomkit.sdk/Samples~/discord-activity/PlayroomKit.Samples.DiscordActivity.asmdef.meta rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/discord-activity.unity (99%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/discord-activity.unity.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/materials.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/materials/Base.mat (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/materials/Base.mat.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/materials/player.mat (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/materials/player.mat.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/prefabs.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/prefabs/Bean.prefab (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/prefabs/Bean.prefab.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/prefabs/Ground.prefab (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/prefabs/Ground.prefab.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/readme.md (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/readme.md.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/scripts.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/scripts/GameManagerIsometric.cs (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/scripts/GameManagerIsometric.cs.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/scripts/IsometricPlayerController.cs (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/discord-activity/scripts/IsometricPlayerController.cs.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase.meta (100%) create mode 100644 Packages/com.playroomkit.sdk/Samples~/package-showcase/PlayroomKit.Samples.PackageShowcase.asmdef create mode 100644 Packages/com.playroomkit.sdk/Samples~/package-showcase/PlayroomKit.Samples.PackageShowcase.asmdef.meta rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/materials.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/materials/Base.mat (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/materials/Base.mat.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/materials/player.mat (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/materials/player.mat.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/models.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/models/Hat.fbx (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/models/Hat.fbx.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/prefabs.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/prefabs/BeanDemo.prefab (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/prefabs/BeanDemo.prefab.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/prefabs/Black.mat (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/prefabs/Black.mat.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/prefabs/Bullet.prefab (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/prefabs/Bullet.prefab.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/prefabs/Ground.prefab (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/prefabs/Ground.prefab.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/scripts.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/scripts/GameManagerDemo.cs (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/scripts/GameManagerDemo.cs.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/scripts/Laser.cs (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/scripts/Laser.cs.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/scripts/PlayerController.cs (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/scripts/PlayerController.cs.meta (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/showcase.unity (100%) rename {Assets/PlayroomKit/Examples => Packages/com.playroomkit.sdk/Samples~}/package-showcase/showcase.unity.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk}/Tests.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk}/Tests/Editor.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk}/Tests/Editor/Editor.asmdef (86%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk}/Tests/Editor/Editor.asmdef.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk}/Tests/Editor/PlayerLocalTests.cs (54%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk}/Tests/Editor/PlayerLocalTests.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk}/Tests/Editor/PlayerTests.cs (94%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk}/Tests/Editor/PlayerTests.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk}/Tests/Editor/PlayroomKitLocalTests.cs (87%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk}/Tests/Editor/PlayroomKitLocalTests.cs.meta (100%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk}/Tests/Editor/PlayroomKitTest.cs (89%) rename {Assets/PlayroomKit => Packages/com.playroomkit.sdk}/Tests/Editor/PlayroomKitTest.cs.meta (100%) create mode 100644 Packages/com.playroomkit.sdk/package.json create mode 100644 Packages/com.playroomkit.sdk/package.json.meta create mode 100644 Tools/playroomkit-js/package-lock.json rename {Assets/PlayroomKit => Tools/playroomkit-js}/package.json (100%) rename {Assets/PlayroomKit => Tools/playroomkit-js}/package.json.meta (100%) rename {Assets/PlayroomKit => Tools/playroomkit-js}/src.meta (100%) rename {Assets/PlayroomKit => Tools/playroomkit-js}/src/frameworks.js (100%) rename {Assets/PlayroomKit => Tools/playroomkit-js}/src/frameworks.js.meta (100%) create mode 100644 Tools/playroomkit-js/src/index.js rename {Assets/PlayroomKit => Tools/playroomkit-js}/src/index.js.meta (100%) rename {Assets/PlayroomKit => Tools/playroomkit-js}/vite.config.js (91%) rename {Assets/PlayroomKit => Tools/playroomkit-js}/vite.config.js.meta (100%) diff --git a/.github/workflows/build-sample-webgl.yaml b/.github/workflows/build-sample-webgl.yaml new file mode 100644 index 0000000..79abf38 --- /dev/null +++ b/.github/workflows/build-sample-webgl.yaml @@ -0,0 +1,85 @@ +name: Build Sample WebGL + +on: + workflow_dispatch: + inputs: + sample: + description: Sample base name to build + required: true + type: choice + options: + - 2d-platformer + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + build-sample: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + lfs: true + + - name: Cache Unity Library + uses: actions/cache@v4 + with: + path: Library + key: Library-${{ runner.os }}-2022.3.62f3-${{ hashFiles('Packages/com.playroomkit.sdk/package.json', 'Packages/manifest.json', 'Packages/packages-lock.json') }} + restore-keys: | + Library-${{ runner.os }}-2022.3.62f3- + + - uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: Resolve sample scene + run: | + case "${{ inputs.sample }}" in + 2d-platformer) + echo "SAMPLE_SCENE=Packages/com.playroomkit.sdk/Samples~/2d-platformer/2d-platformer.unity" >> $GITHUB_ENV + echo "SAMPLE_SCENE_GUID=cf82eec4c654cf44b89cec2a91afebd5" >> $GITHUB_ENV + ;; + *) + echo "Unknown sample: ${{ inputs.sample }}" + exit 1 + ;; + esac + echo "BUILD_OUTPUT=build/webgl/${{ inputs.sample }}" >> $GITHUB_ENV + + - name: Set build scenes + run: | + cat > ProjectSettings/EditorBuildSettings.asset < metaList - echo "Assets/Plugins.meta" >> metaList - echo "Assets/WebGLTemplates.meta" >> metaList - find Assets/PlayroomKit/ -name \*.meta >> metaList - find Assets/WebGLTemplates/ -name \*.meta >> metaList - echo metaList - - - run: mkdir output - - - name: Set release version ENV - run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV - - - uses: pCYSl5EDgo/create-unitypackage@master + - uses: actions/setup-node@v4 with: - package-path: "output/playroomkit.unitypackage" - include-files: metaList + node-version: 20 + + - name: Pack UPM package + run: | + mkdir -p output + cd Packages/com.playroomkit.sdk + npm pack --pack-destination ../../output - - name: Release + - name: Upload UPM package to release uses: softprops/action-gh-release@v1 with: - draft: true - generate_release_notes: true - files: output/playroomkit.unitypackage + files: output/*.tgz diff --git a/.github/workflows/testpackage.yaml b/.github/workflows/testpackage.yaml deleted file mode 100644 index 5d1813b..0000000 --- a/.github/workflows/testpackage.yaml +++ /dev/null @@ -1,35 +0,0 @@ -name: Create Unity Package on release tag - -on: - [push, pull_request] - -jobs: - echo: - runs-on: ubuntu-latest - permissions: - contents: write - steps: - - uses: actions/checkout@v4 - - - run: | - echo "Assets/PlayroomKit.meta" > metaList - echo "Assets/Plugins.meta" >> metaList - echo "Assets/WebGLTemplates.meta" >> metaList - find Assets/PlayroomKit/ -name \*.meta >> metaList - find Assets/WebGLTemplates/ -name \*.meta >> metaList - echo metaList - - - run: mkdir output - - - name: Set release version ENV - run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV - - - uses: pCYSl5EDgo/create-unitypackage@master - with: - package-path: 'output/playroomkit.unitypackage' - include-files: metaList - - - uses: actions/upload-artifact@v4 - with: - name: playroomkit.unitypackage - path: output/playroomkit.unitypackage diff --git a/.github/workflows/testupm.yaml b/.github/workflows/testupm.yaml new file mode 100644 index 0000000..834e8d3 --- /dev/null +++ b/.github/workflows/testupm.yaml @@ -0,0 +1,36 @@ +name: Build UPM Package Artifact + +on: + push: + paths: + - "Packages/com.playroomkit.sdk/**" + - "Tools/playroomkit-js/**" + pull_request: + paths: + - "Packages/com.playroomkit.sdk/**" + - "Tools/playroomkit-js/**" + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + pack-upm: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: Pack UPM package + run: | + mkdir -p output + cd Packages/com.playroomkit.sdk + npm pack --pack-destination ../../output + + - uses: actions/upload-artifact@v4 + with: + name: com.playroomkit.sdk.tgz + path: output/*.tgz diff --git a/.github/workflows/unity-tests.yaml b/.github/workflows/unity-tests.yaml new file mode 100644 index 0000000..4e4acb9 --- /dev/null +++ b/.github/workflows/unity-tests.yaml @@ -0,0 +1,58 @@ +name: Unity EditMode Tests + +on: + pull_request: + branches: [main] + paths: + - "Packages/com.playroomkit.sdk/**/*.cs" + - "Packages/com.playroomkit.sdk/**/*.asmdef" + - "Packages/com.playroomkit.sdk/**/*.asmref" + - "Packages/com.playroomkit.sdk/**/*.unity" + - "Packages/com.playroomkit.sdk/package.json" + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + checks: write + +jobs: + unit-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + lfs: true + + - name: Cache Unity Library + uses: actions/cache@v4 + with: + path: Library + key: Library-${{ runner.os }}-2022.3.62f3-${{ hashFiles('Packages/manifest.json', 'Packages/packages-lock.json') }} + restore-keys: | + Library-${{ runner.os }}-2022.3.62f3- + + - name: Run EditMode tests + uses: game-ci/unity-test-runner@v4 + env: + UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} + UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} + UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} + with: + projectPath: Packages/com.playroomkit.sdk + packageMode: true + unityVersion: 2022.3.62f3 + testMode: editmode + artifactsPath: Assets/test-results + githubToken: ${{ secrets.GITHUB_TOKEN }} + checkName: EditMode Test Results + + - name: Upload test results + if: always() + uses: actions/upload-artifact@v4 + with: + name: unity-test-results + path: Assets/test-results diff --git a/.github/workflows/verify-js-plugin.yaml b/.github/workflows/verify-js-plugin.yaml new file mode 100644 index 0000000..63b0119 --- /dev/null +++ b/.github/workflows/verify-js-plugin.yaml @@ -0,0 +1,39 @@ +name: Verify JS Plugin (PlayroomKit JS Wrapper) change synced to Unity Package + +on: + push: + paths: + - "Tools/playroomkit-js/**" + - "Packages/com.playroomkit.sdk/Runtime/Plugins/Playroom/**" + pull_request: + paths: + - "Tools/playroomkit-js/**" + - "Packages/com.playroomkit.sdk/Runtime/Plugins/Playroom/**" + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + verify-js-plugin: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: Build JS plugin + run: npm ci + working-directory: Tools/playroomkit-js + + - name: Verify plugin output is up to date + run: | + git diff --name-only -- Packages/com.playroomkit.sdk/Runtime/Plugins/Playroom \ + | grep -v '\.meta$' \ + | tee /tmp/js-plugin-diff.txt + if [ -s /tmp/js-plugin-diff.txt ]; then + echo "JS plugin output is out of date." + exit 1 + fi diff --git a/.gitignore b/.gitignore index 0cf20b0..7f06739 100644 --- a/.gitignore +++ b/.gitignore @@ -74,16 +74,14 @@ crashlytics-build.properties .DS_Store .idea/.idea.playroom-unity/.idea/workspace.xml .idea/.idea.playroom-unity/.idea/workspace.xml -node_modules metaList -package-lock.json -package-lock.json.meta -Assets/Plugins -Assets/PlayroomKit/node_modules.meta +Tools/playroomkit-js/node_modules/ /.idea Assets/chromedriver* Assets/msedgedriver.exe Assets/msedgedriver.exe.meta +Assets/Samples +Assets/Samples.meta Assets/PlayroomKit/src/frameworks copy.ts Assets/PlayroomKit/src/frameworks copy.ts.meta /.vsconfig diff --git a/Assets/NuGet.config b/Assets/NuGet.config index aa0af0e..372a18a 100644 --- a/Assets/NuGet.config +++ b/Assets/NuGet.config @@ -10,9 +10,9 @@ - + - \ No newline at end of file + diff --git a/Assets/PlayroomKit/Examples.meta b/Assets/Packages.meta similarity index 77% rename from Assets/PlayroomKit/Examples.meta rename to Assets/Packages.meta index 20f7ac8..f5b5108 100644 --- a/Assets/PlayroomKit/Examples.meta +++ b/Assets/Packages.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2d9b7ee7a3acba3449b7b5876c8d20f3 +guid: b2264e18e44706f448f4a639c7185c41 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 034aafa..19f146f 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -1100,7 +1100,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 8899696337967424923, guid: 1b30fa3a265114a45a7e23165a20aecc, type: 3} propertyPath: includeJavaScriptFiles.Array.data[0] - value: Assets/PlayroomKit/modules/MockMode/BrowserMode/PlayroomMockBrowserBridge.js + value: Packages/com.playroomkit.sdk/Runtime/modules/MockMode/BrowserMode/PlayroomMockBrowserBridge.js objectReference: {fileID: 0} - target: {fileID: 8987662522597341863, guid: 1b30fa3a265114a45a7e23165a20aecc, type: 3} propertyPath: mockMode @@ -1126,3 +1126,4 @@ SceneRoots: - {fileID: 1726365550300270312} - {fileID: 1563295928} - {fileID: 667855125} + diff --git a/Assets/Scenes/TestScene.unity b/Assets/Scenes/TestScene.unity index fccab54..0c156ca 100644 --- a/Assets/Scenes/TestScene.unity +++ b/Assets/Scenes/TestScene.unity @@ -424,7 +424,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 8899696337967424923, guid: 1b30fa3a265114a45a7e23165a20aecc, type: 3} propertyPath: includeJavaScriptFiles.Array.data[0] - value: Assets/PlayroomKit/modules/MockMode/BrowserMode/PlayroomMockBrowserBridge.js + value: Packages/com.playroomkit.sdk/Runtime/modules/MockMode/BrowserMode/PlayroomMockBrowserBridge.js objectReference: {fileID: 0} - target: {fileID: 8987662522597341863, guid: 1b30fa3a265114a45a7e23165a20aecc, type: 3} propertyPath: mockMode @@ -641,3 +641,4 @@ SceneRoots: - {fileID: 1054460207} - {fileID: 9039050244923637231} - {fileID: 1407290422} + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bc9ea7b..5575fca 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,7 +7,7 @@ Setting up the project locally is similar to any other Unity project: 3. Fork the repository and clone it to your local drive. 4. To build the plugin, run these commands in your terminal: ```shell - cd Assets/Playroomkit + cd Tools/playroomkit-js npm install ``` This command will install the `upstream.sdk` and its dependencies. It also creates a `Playroom` folder inside `Assets/Plugins`, containing two files: a `.JSLIB` file and a `.JSPRE` file. diff --git a/Assets/PlayroomKit.meta b/Packages/com.playroomkit.sdk.meta similarity index 100% rename from Assets/PlayroomKit.meta rename to Packages/com.playroomkit.sdk.meta diff --git a/Assets/PlayroomKit/dependencies.meta b/Packages/com.playroomkit.sdk/Assets.meta similarity index 77% rename from Assets/PlayroomKit/dependencies.meta rename to Packages/com.playroomkit.sdk/Assets.meta index 0f2dc59..25a56e4 100644 --- a/Assets/PlayroomKit/dependencies.meta +++ b/Packages/com.playroomkit.sdk/Assets.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 566da0b82556a17458e8bba6fbc0ee16 +guid: 86524f4577ecc914190c9fb158fe15e9 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/WebGLTemplates.meta b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates.meta similarity index 100% rename from Assets/WebGLTemplates.meta rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates.meta diff --git a/Assets/WebGLTemplates/DiscordTemplate.meta b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate.meta similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate.meta rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate.meta diff --git a/Assets/WebGLTemplates/DiscordTemplate/TemplateData.meta b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData.meta similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/TemplateData.meta rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData.meta diff --git a/Assets/WebGLTemplates/DiscordTemplate/TemplateData/favicon.ico b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/favicon.ico similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/TemplateData/favicon.ico rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/favicon.ico diff --git a/Assets/WebGLTemplates/DiscordTemplate/TemplateData/favicon.ico.meta b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/favicon.ico.meta similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/TemplateData/favicon.ico.meta rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/favicon.ico.meta diff --git a/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-dark.png b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-dark.png similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-dark.png rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-dark.png diff --git a/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-dark.png.meta b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-dark.png.meta similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-dark.png.meta rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-dark.png.meta diff --git a/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-light.png b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-light.png similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-light.png rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-light.png diff --git a/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-light.png.meta b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-light.png.meta similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-light.png.meta rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-empty-light.png.meta diff --git a/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-dark.png b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-dark.png similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-dark.png rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-dark.png diff --git a/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-dark.png.meta b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-dark.png.meta similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-dark.png.meta rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-dark.png.meta diff --git a/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-light.png b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-light.png similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-light.png rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-light.png diff --git a/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-light.png.meta b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-light.png.meta similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-light.png.meta rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/progress-bar-full-light.png.meta diff --git a/Assets/WebGLTemplates/DiscordTemplate/TemplateData/style.css b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/style.css similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/TemplateData/style.css rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/style.css diff --git a/Assets/WebGLTemplates/DiscordTemplate/TemplateData/style.css.meta b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/style.css.meta similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/TemplateData/style.css.meta rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/style.css.meta diff --git a/Assets/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-dark.png b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-dark.png similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-dark.png rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-dark.png diff --git a/Assets/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-dark.png.meta b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-dark.png.meta similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-dark.png.meta rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-dark.png.meta diff --git a/Assets/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-light.png b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-light.png similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-light.png rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-light.png diff --git a/Assets/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-light.png.meta b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-light.png.meta similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-light.png.meta rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/TemplateData/unity-logo-light.png.meta diff --git a/Assets/WebGLTemplates/DiscordTemplate/index.html b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/index.html similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/index.html rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/index.html diff --git a/Assets/WebGLTemplates/DiscordTemplate/index.html.meta b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/index.html.meta similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/index.html.meta rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/index.html.meta diff --git a/Assets/WebGLTemplates/DiscordTemplate/thumbnail.png b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/thumbnail.png similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/thumbnail.png rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/thumbnail.png diff --git a/Assets/WebGLTemplates/DiscordTemplate/thumbnail.png.meta b/Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/thumbnail.png.meta similarity index 100% rename from Assets/WebGLTemplates/DiscordTemplate/thumbnail.png.meta rename to Packages/com.playroomkit.sdk/Assets/WebGLTemplates/DiscordTemplate/thumbnail.png.meta diff --git a/Assets/PlayroomKit/Editor.meta b/Packages/com.playroomkit.sdk/Editor.meta similarity index 100% rename from Assets/PlayroomKit/Editor.meta rename to Packages/com.playroomkit.sdk/Editor.meta diff --git a/Assets/PlayroomKit/Editor/PlayroomDevEditor.cs b/Packages/com.playroomkit.sdk/Editor/PlayroomDevEditor.cs similarity index 98% rename from Assets/PlayroomKit/Editor/PlayroomDevEditor.cs rename to Packages/com.playroomkit.sdk/Editor/PlayroomDevEditor.cs index 7467626..67a1f66 100644 --- a/Assets/PlayroomKit/Editor/PlayroomDevEditor.cs +++ b/Packages/com.playroomkit.sdk/Editor/PlayroomDevEditor.cs @@ -17,7 +17,8 @@ public class PrkMockInspector : Editor public void OnEnable() { - styleSheet = AssetDatabase.LoadAssetAtPath("Assets/PlayroomKit/Editor/PlayroomkitDevManagerEditor.uss"); + styleSheet = AssetDatabase.LoadAssetAtPath( + "Packages/com.playroomkit.sdk/Editor/PlayroomkitDevManagerEditor.uss"); } public override VisualElement CreateInspectorGUI() @@ -220,4 +221,4 @@ private VisualElement EnableLogsToggleCreator() } } -#endif \ No newline at end of file +#endif diff --git a/Assets/PlayroomKit/Editor/PlayroomDevEditor.cs.meta b/Packages/com.playroomkit.sdk/Editor/PlayroomDevEditor.cs.meta similarity index 100% rename from Assets/PlayroomKit/Editor/PlayroomDevEditor.cs.meta rename to Packages/com.playroomkit.sdk/Editor/PlayroomDevEditor.cs.meta diff --git a/Packages/com.playroomkit.sdk/Editor/PlayroomDevMenu.cs b/Packages/com.playroomkit.sdk/Editor/PlayroomDevMenu.cs new file mode 100644 index 0000000..d6a2e9a --- /dev/null +++ b/Packages/com.playroomkit.sdk/Editor/PlayroomDevMenu.cs @@ -0,0 +1,84 @@ +#if UNITY_EDITOR +using System.Linq; +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine; +using UnityEngine.SceneManagement; + +namespace Playroom +{ + public static class PlayroomDevMenu + { + private const string MenuPath = "PlayroomKit/Dev/Add Playroom Mock Manager To Scene"; + private const string PrefabPath = "Packages/com.playroomkit.sdk/Runtime/Prefabs/PlayroomMockManager.prefab"; + + [MenuItem(MenuPath)] + public static void AddPlayroomMockManagerToScene() + { + var activeScene = SceneManager.GetActiveScene(); + if (!activeScene.IsValid() || !activeScene.isLoaded) + { + EditorUtility.DisplayDialog( + "PlayroomKit", + "No active scene is loaded. Open a scene before adding the Playroom Mock Manager.", + "OK"); + return; + } + + if (Object.FindObjectsOfType(true).Length > 0) + { + EditorUtility.DisplayDialog( + "PlayroomKit", + "A Playroom Mock Manager already exists in the scene.", + "OK"); + return; + } + + var prefab = LoadPlayroomMockManagerPrefab(); + if (prefab == null) + { + EditorUtility.DisplayDialog( + "PlayroomKit", + "Could not find PlayroomMockManager.prefab in the package.", + "OK"); + return; + } + + var instance = PrefabUtility.InstantiatePrefab(prefab) as GameObject; + if (instance == null) + { + EditorUtility.DisplayDialog( + "PlayroomKit", + "Failed to instantiate PlayroomMockManager.prefab.", + "OK"); + return; + } + + SceneManager.MoveGameObjectToScene(instance, activeScene); + Undo.RegisterCreatedObjectUndo(instance, "Add Playroom Mock Manager"); + Selection.activeObject = instance; + EditorSceneManager.MarkSceneDirty(activeScene); + } + + private static GameObject LoadPlayroomMockManagerPrefab() + { + var prefab = AssetDatabase.LoadAssetAtPath(PrefabPath); + if (prefab != null) + { + return prefab; + } + + var guids = AssetDatabase.FindAssets( + "PlayroomMockManager t:Prefab", + new[] { "Packages/com.playroomkit.sdk" }); + if (guids.Length == 0) + { + return null; + } + + var assetPath = AssetDatabase.GUIDToAssetPath(guids[0]); + return AssetDatabase.LoadAssetAtPath(assetPath); + } + } +} +#endif diff --git a/Packages/com.playroomkit.sdk/Editor/PlayroomDevMenu.cs.meta b/Packages/com.playroomkit.sdk/Editor/PlayroomDevMenu.cs.meta new file mode 100644 index 0000000..452a16b --- /dev/null +++ b/Packages/com.playroomkit.sdk/Editor/PlayroomDevMenu.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5bee554ef77d85040ac26ec3b48718ae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.playroomkit.sdk/Editor/PlayroomKit.Editor.asmdef b/Packages/com.playroomkit.sdk/Editor/PlayroomKit.Editor.asmdef new file mode 100644 index 0000000..1da6bf3 --- /dev/null +++ b/Packages/com.playroomkit.sdk/Editor/PlayroomKit.Editor.asmdef @@ -0,0 +1,19 @@ +{ + "name": "PlayroomKit.Editor", + "rootNamespace": "", + "references": [ + "PlayroomKit.Runtime", + "ParrelSync" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} diff --git a/Packages/com.playroomkit.sdk/Editor/PlayroomKit.Editor.asmdef.meta b/Packages/com.playroomkit.sdk/Editor/PlayroomKit.Editor.asmdef.meta new file mode 100644 index 0000000..99242e6 --- /dev/null +++ b/Packages/com.playroomkit.sdk/Editor/PlayroomKit.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e4a8a2c2c8f74a4aa6fd6c1d4b7e2b91 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.playroomkit.sdk/Editor/PlayroomWebGLTools.cs b/Packages/com.playroomkit.sdk/Editor/PlayroomWebGLTools.cs new file mode 100644 index 0000000..c53bb5e --- /dev/null +++ b/Packages/com.playroomkit.sdk/Editor/PlayroomWebGLTools.cs @@ -0,0 +1,217 @@ +#if UNITY_EDITOR +using System.IO; +using UnityEditor; +using UnityEngine; + +namespace Playroom +{ + public static class PlayroomWebGLTools + { + private const string TemplateName = "DiscordTemplate"; + private const string InstallMenuPath = "PlayroomKit/WebGL/Install Discord Template"; + private const string SettingsMenuPath = + "PlayroomKit/WebGL/Apply WebGL Settings (Run In Background, Discord Template, Compression None)"; + + [MenuItem(InstallMenuPath)] + public static void InstallTemplate() + { + var sourcePath = GetPackageTemplatePath(); + if (!Directory.Exists(sourcePath)) + { + EditorUtility.DisplayDialog( + "PlayroomKit", + "Could not find DiscordTemplate in the package.", + "OK"); + return; + } + + var templatesRoot = "Assets/WebGLTemplates"; + var destinationPath = Path.Combine("Assets", "WebGLTemplates", TemplateName); + var sourceAssetPath = sourcePath.Replace('\\', '/'); + var destinationAssetPath = destinationPath.Replace('\\', '/'); + + if (Directory.Exists(destinationPath)) + { + var overwrite = EditorUtility.DisplayDialog( + "PlayroomKit", + $"Template already exists at {destinationPath}. Overwrite?", + "Overwrite", + "Cancel"); + if (!overwrite) + { + return; + } + + FileUtil.DeleteFileOrDirectory(destinationPath); + var metaPath = destinationPath + ".meta"; + if (File.Exists(metaPath)) + { + FileUtil.DeleteFileOrDirectory(metaPath); + } + } + + AssetDatabase.DisallowAutoRefresh(); + try + { + AssetDatabase.Refresh(); + + if (AssetDatabase.IsValidFolder(destinationAssetPath)) + { + AssetDatabase.DeleteAsset(destinationAssetPath); + } + + EnsureFolder(templatesRoot); + + var success = CopyAssetFolder(sourceAssetPath, destinationAssetPath); + if (!success) + { + EditorUtility.DisplayDialog( + "PlayroomKit", + "Failed to copy DiscordTemplate into Assets/WebGLTemplates.", + "OK"); + return; + } + } + finally + { + AssetDatabase.AllowAutoRefresh(); + AssetDatabase.Refresh(); + } + + EditorUtility.DisplayDialog( + "PlayroomKit", + $"Installed WebGL template to {destinationPath}.", + "OK"); + } + + [MenuItem(SettingsMenuPath)] + public static void ApplyRecommendedSettings() + { + if (EditorUserBuildSettings.activeBuildTarget != BuildTarget.WebGL) + { + EditorUtility.DisplayDialog( + "PlayroomKit", + "WebGL is not the active build target. Switch to WebGL in Build Settings first.", + "OK"); + return; + } + + var destinationPath = Path.Combine("Assets", "WebGLTemplates", TemplateName); + if (!Directory.Exists(destinationPath)) + { + var install = EditorUtility.DisplayDialog( + "PlayroomKit", + "DiscordTemplate is not installed. Install it now?", + "Install", + "Cancel"); + if (!install) + { + return; + } + + InstallTemplate(); + } + + PlayerSettings.runInBackground = true; + PlayerSettings.WebGL.template = $"PROJECT:{TemplateName}"; + PlayerSettings.WebGL.compressionFormat = WebGLCompressionFormat.Disabled; + + AssetDatabase.SaveAssets(); + EditorUtility.DisplayDialog( + "PlayroomKit", + "Applied WebGL settings (run in background, Discord template, compression none).", + "OK"); + } + + private static string GetPackageTemplatePath() + { + return Path.Combine( + "Packages", + "com.playroomkit.sdk", + "Assets", + "WebGLTemplates", + TemplateName); + } + + private static bool CopyAssetFolder(string sourceAssetPath, string destinationAssetPath) + { + if (!AssetDatabase.IsValidFolder(sourceAssetPath)) + { + return false; + } + + if (!AssetDatabase.IsValidFolder(destinationAssetPath)) + { + var parent = Path.GetDirectoryName(destinationAssetPath)?.Replace('\\', '/'); + var name = Path.GetFileName(destinationAssetPath); + if (string.IsNullOrEmpty(parent) || string.IsNullOrEmpty(name)) + { + return false; + } + + var created = AssetDatabase.CreateFolder(parent, name); + if (string.IsNullOrEmpty(created)) + { + return false; + } + } + + foreach (var guid in AssetDatabase.FindAssets(string.Empty, new[] { sourceAssetPath })) + { + var assetPath = AssetDatabase.GUIDToAssetPath(guid); + if (assetPath == sourceAssetPath) + { + continue; + } + + var relative = assetPath.Substring(sourceAssetPath.Length).TrimStart('/'); + var targetPath = $"{destinationAssetPath}/{relative}"; + if (AssetDatabase.IsValidFolder(assetPath)) + { + if (!AssetDatabase.IsValidFolder(targetPath)) + { + var parent = Path.GetDirectoryName(targetPath)?.Replace('\\', '/'); + var name = Path.GetFileName(targetPath); + if (string.IsNullOrEmpty(parent) || string.IsNullOrEmpty(name)) + { + return false; + } + + var created = AssetDatabase.CreateFolder(parent, name); + if (string.IsNullOrEmpty(created)) + { + return false; + } + } + } + else + { + if (!AssetDatabase.CopyAsset(assetPath, targetPath)) + { + return false; + } + } + } + + return true; + } + + private static void EnsureFolder(string folderPath) + { + if (AssetDatabase.IsValidFolder(folderPath)) + { + return; + } + + var parent = Path.GetDirectoryName(folderPath)?.Replace('\\', '/'); + var name = Path.GetFileName(folderPath); + if (string.IsNullOrEmpty(parent) || string.IsNullOrEmpty(name)) + { + return; + } + + AssetDatabase.CreateFolder(parent, name); + } + } +} +#endif diff --git a/Packages/com.playroomkit.sdk/Editor/PlayroomWebGLTools.cs.meta b/Packages/com.playroomkit.sdk/Editor/PlayroomWebGLTools.cs.meta new file mode 100644 index 0000000..a8289ff --- /dev/null +++ b/Packages/com.playroomkit.sdk/Editor/PlayroomWebGLTools.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3134d3b12c5eff84782ff30844f1d55a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PlayroomKit/Editor/PlayroomkitDevManagerEditor.uss b/Packages/com.playroomkit.sdk/Editor/PlayroomkitDevManagerEditor.uss similarity index 100% rename from Assets/PlayroomKit/Editor/PlayroomkitDevManagerEditor.uss rename to Packages/com.playroomkit.sdk/Editor/PlayroomkitDevManagerEditor.uss diff --git a/Assets/PlayroomKit/Editor/PlayroomkitDevManagerEditor.uss.meta b/Packages/com.playroomkit.sdk/Editor/PlayroomkitDevManagerEditor.uss.meta similarity index 100% rename from Assets/PlayroomKit/Editor/PlayroomkitDevManagerEditor.uss.meta rename to Packages/com.playroomkit.sdk/Editor/PlayroomkitDevManagerEditor.uss.meta diff --git a/Packages/com.playroomkit.sdk/Runtime.meta b/Packages/com.playroomkit.sdk/Runtime.meta new file mode 100644 index 0000000..f23115f --- /dev/null +++ b/Packages/com.playroomkit.sdk/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 69bca9016053de242832ee677b949b2b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.playroomkit.sdk/Runtime/Assembly.cs b/Packages/com.playroomkit.sdk/Runtime/Assembly.cs new file mode 100644 index 0000000..d571752 --- /dev/null +++ b/Packages/com.playroomkit.sdk/Runtime/Assembly.cs @@ -0,0 +1,4 @@ +using System.Runtime.CompilerServices; + +// Make internal members visible to the "Editor" assembly for testing purposes +[assembly: InternalsVisibleTo("PlayroomKit.Tests.Editor")] diff --git a/Packages/com.playroomkit.sdk/Runtime/Assembly.cs.meta b/Packages/com.playroomkit.sdk/Runtime/Assembly.cs.meta new file mode 100644 index 0000000..ec3c8f6 --- /dev/null +++ b/Packages/com.playroomkit.sdk/Runtime/Assembly.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a1511df76cb502145a3df64aa2087e46 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PlayroomKit/Playroom.asmdef b/Packages/com.playroomkit.sdk/Runtime/Playroom.asmdef similarity index 75% rename from Assets/PlayroomKit/Playroom.asmdef rename to Packages/com.playroomkit.sdk/Runtime/Playroom.asmdef index c57147b..95d80af 100644 --- a/Assets/PlayroomKit/Playroom.asmdef +++ b/Packages/com.playroomkit.sdk/Runtime/Playroom.asmdef @@ -1,10 +1,9 @@ { - "name": "Playroom", + "name": "PlayroomKit.Runtime", "rootNamespace": "", "references": [ "GUID:894a6cc6ed5cd2645bb542978cbed6a9", - "GUID:6546d7765b4165b40850b3667f981c26", - "GUID:6055be8ebefd69e48b49212b09b47b2f" + "Unity.TextMeshPro" ], "includePlatforms": [], "excludePlatforms": [], @@ -15,4 +14,4 @@ "defineConstraints": [], "versionDefines": [], "noEngineReferences": false -} \ No newline at end of file +} diff --git a/Assets/PlayroomKit/Playroom.asmdef.meta b/Packages/com.playroomkit.sdk/Runtime/Playroom.asmdef.meta similarity index 100% rename from Assets/PlayroomKit/Playroom.asmdef.meta rename to Packages/com.playroomkit.sdk/Runtime/Playroom.asmdef.meta diff --git a/Assets/PlayroomKit/PlayroomKit.cs b/Packages/com.playroomkit.sdk/Runtime/PlayroomKit.cs similarity index 99% rename from Assets/PlayroomKit/PlayroomKit.cs rename to Packages/com.playroomkit.sdk/Runtime/PlayroomKit.cs index c4ca97c..6c07ea2 100644 --- a/Assets/PlayroomKit/PlayroomKit.cs +++ b/Packages/com.playroomkit.sdk/Runtime/PlayroomKit.cs @@ -3,7 +3,6 @@ using System; using UBB; using Discord; -using AOT; namespace Playroom diff --git a/Assets/PlayroomKit/PlayroomKit.cs.meta b/Packages/com.playroomkit.sdk/Runtime/PlayroomKit.cs.meta similarity index 100% rename from Assets/PlayroomKit/PlayroomKit.cs.meta rename to Packages/com.playroomkit.sdk/Runtime/PlayroomKit.cs.meta diff --git a/Packages/com.playroomkit.sdk/Runtime/Plugins.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins.meta new file mode 100644 index 0000000..d48f105 --- /dev/null +++ b/Packages/com.playroomkit.sdk/Runtime/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7d7ce5130196e864d91dc96f2c52bd33 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/.signature.p7s b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/.signature.p7s similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/.signature.p7s rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/.signature.p7s diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/ASL - Apache Software Foundation License.txt.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/CHANGELOG.md b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/CHANGELOG.md similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/CHANGELOG.md rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/CHANGELOG.md diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/CHANGELOG.md.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/CHANGELOG.md.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/CHANGELOG.md.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/CHANGELOG.md.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/Castle.Core.nuspec b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/Castle.Core.nuspec similarity index 98% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/Castle.Core.nuspec rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/Castle.Core.nuspec index 7dca814..a217977 100644 --- a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/Castle.Core.nuspec +++ b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/Castle.Core.nuspec @@ -1,33 +1,33 @@ - - - - Castle.Core - 5.1.1 - Castle Project Contributors - Apache-2.0 - https://licenses.nuget.org/Apache-2.0 - castle-logo.png - http://www.castleproject.org/ - http://www.castleproject.org/img/castle-logo.png - Castle Core, including DynamicProxy, Logging Abstractions and DictionaryAdapter - Copyright (c) 2004-2022 Castle Project - http://www.castleproject.org/ - castle dynamicproxy dynamic proxy dynamicproxy2 dictionaryadapter emailsender - - - - - - - - - - - - - - - - - - + + + + Castle.Core + 5.1.1 + Castle Project Contributors + Apache-2.0 + https://licenses.nuget.org/Apache-2.0 + castle-logo.png + http://www.castleproject.org/ + http://www.castleproject.org/img/castle-logo.png + Castle Core, including DynamicProxy, Logging Abstractions and DictionaryAdapter + Copyright (c) 2004-2022 Castle Project - http://www.castleproject.org/ + castle dynamicproxy dynamic proxy dynamicproxy2 dictionaryadapter emailsender + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/Castle.Core.nuspec.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/Castle.Core.nuspec.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/Castle.Core.nuspec.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/Castle.Core.nuspec.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/LICENSE b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/LICENSE similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/LICENSE rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/LICENSE diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/LICENSE.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/LICENSE.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/LICENSE.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/LICENSE.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/castle-logo.png b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/castle-logo.png similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/castle-logo.png rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/castle-logo.png diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/castle-logo.png.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/castle-logo.png.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/castle-logo.png.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/castle-logo.png.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/lib.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/lib.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/lib/netstandard2.1.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/lib/netstandard2.1.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.dll.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml similarity index 98% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml index 98c150f..a7c6b9b 100644 --- a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml +++ b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml @@ -1,5898 +1,5898 @@ - - - - Castle.Core - - - - - Abstract adapter for the support - needed by the - - - - - Adds an element with the provided key and value to the object. - - The to use as the key of the element to add. - The to use as the value of the element to add. - An element with the same key already exists in the object. - key is null. - The is read-only.-or- The has a fixed size. - - - - Removes all elements from the object. - - The object is read-only. - - - - Determines whether the object contains an element with the specified key. - - The key to locate in the object. - - true if the contains an element with the key; otherwise, false. - - key is null. - - - - Returns an object for the object. - - - An object for the object. - - - - - Gets a value indicating whether the object has a fixed size. - - true if the object has a fixed size; otherwise, false. - - - - Gets a value indicating whether the object is read-only. - - true if the object is read-only; otherwise, false. - - - - Gets an object containing the keys of the object. - - An object containing the keys of the object. - - - - Removes the element with the specified key from the object. - - The key of the element to remove. - The object is read-only.-or- The has a fixed size. - key is null. - - - - Gets an object containing the values in the object. - - An object containing the values in the object. - - - - Gets or sets the with the specified key. - - - - - Copies the elements of the to an , starting at a particular index. - - The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. - The zero-based index in array at which copying begins. - array is null. - The type of the source cannot be cast automatically to the type of the destination array. - index is less than zero. - array is multidimensional.-or- index is equal to or greater than the length of array.-or- The number of elements in the source is greater than the available space from index to the end of the destination array. - - - - Gets the number of elements contained in the . - - The number of elements contained in the . - - - - Gets a value indicating whether access to the is synchronized (thread safe). - - true if access to the is synchronized (thread safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the . - - An object that can be used to synchronize access to the . - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - - - - Abstract implementation of . - - - - - Identifies a property should be represented as a nested component. - - - - - Applies no prefix. - - - - - Gets or sets the prefix. - - The prefix. - - - - Identifies the dictionary adapter types. - - - - - Assigns a specific dictionary key. - - - - - Identifies an interface or property to be pre-fetched. - - - - - Instructs fetching to occur. - - - - - Instructs fetching according to - - - - - Gets whether or not fetching should occur. - - - - - Assigns a property to a group. - - - - - Constructs a group assignment. - - The group name. - - - - Constructs a group assignment. - - The group name. - - - - Gets the group the property is assigned to. - - - - - Suppresses any on-demand behaviors. - - - - - Assigns a specific dictionary key. - - - - - Initializes a new instance of the class. - - The key. - - - - Initializes a new instance of the class. - - The compound key. - - - - Assigns a prefix to the keyed properties of an interface. - - - Key prefixes are not inherited by sub-interfaces. - - - - - Initializes a default instance of the class. - - - - - Initializes a new instance of the class. - - The prefix for the keyed properties of the interface. - - - - Gets the prefix key added to the properties of the interface. - - - - - Substitutes part of key with another string. - - - - - Initializes a new instance of the class. - - The old value. - The new value. - - - - Requests support for multi-level editing. - - - - - Generates a new GUID on demand. - - - - - Support for on-demand value resolution. - - - - - Specifies assignment by reference rather than by copying. - - - - - Removes a property if matches value. - - - - - Removes a property if null or empty string, guid or collection. - - - - - Provides simple string formatting from existing properties. - - - - - Gets the string format. - - - - - Gets the format properties. - - - - - Identifies a property should be represented as a delimited string value. - - - - - Gets the separator. - - - - - Converts all properties to strings. - - - - - Gets or sets the format. - - The format. - - - - Suppress property change notifications. - - - - - Assigns a prefix to the keyed properties using the interface name. - - - - - Indicates that underlying values are changeable and should not be cached. - - - - - Initializes a new instance of the class - that represents a child object in a larger object graph. - - - - - Manages conversion between property values. - - - - - Initializes a new instance of the class. - - The converter. - - - - - - - - - Gets the effective dictionary value. - - The dictionary adapter. - The key. - The stored value. - The property. - true if return only existing. - The effective property value. - - - - Uses Reflection.Emit to expose the properties of a dictionary - through a dynamic implementation of a typed interface. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Wraps a with a dynamic object to expose a bit better looking API. - The implementation is trivial and assumes keys are s. - - - - - Contract for manipulating the Dictionary adapter. - - - - - Defines the contract for building typed dictionary adapters. - - - - - Gets a typed adapter bound to the . - - The typed interface. - The underlying source of properties. - An implementation of the typed interface bound to the dictionary. - - The type represented by T must be an interface with properties. - - - - - Gets a typed adapter bound to the . - - The typed interface. - The underlying source of properties. - An implementation of the typed interface bound to the dictionary. - - The type represented by T must be an interface with properties. - - - - - Gets a typed adapter bound to the . - - The typed interface. - The underlying source of properties. - The property descriptor. - An implementation of the typed interface bound to the dictionary. - - The type represented by T must be an interface with properties. - - - - - Gets a typed adapter bound to the . - - The typed interface. - The underlying source of properties. - An implementation of the typed interface bound to the namedValues. - - The type represented by T must be an interface with properties. - - - - - Gets a typed adapter bound to the . - - The typed interface. - The underlying source of properties. - An implementation of the typed interface bound to the namedValues. - - The type represented by T must be an interface with properties. - - - - - Gets a typed adapter bound to the . - - The typed interface. - The underlying source of properties. - An implementation of the typed interface bound to the . - - The type represented by T must be an interface with properties. - - - - - Gets a typed adapter bound to the . - - The typed interface. - The underlying source of properties. - An implementation of the typed interface bound to the . - - The type represented by T must be an interface with properties. - - - - - Gets the associated with the type. - - The typed interface. - The adapter meta-data. - - - - Gets the associated with the type. - - The typed interface. - The property descriptor. - The adapter meta-data. - - - - Gets the associated with the type. - - The typed interface. - Another from which to copy behaviors. - The adapter meta-data. - - - - Contract for traversing a . - - - - - Defines the contract for customizing dictionary access. - - - - - Determines relative order to apply related behaviors. - - - - - Copies the dictionary behavior. - - null if should not be copied. Otherwise copy. - - - - Defines the contract for building s. - - - - - Builds the dictionary behaviors. - - - - - Contract for creating additional Dictionary adapters. - - - - - Contract for editing the Dictionary adapter. - - - - - Contract for dictionary initialization. - - - - - Performs any initialization of the - - The dictionary adapter. - The dictionary behaviors. - - - - Defines the contract for building typed dictionary keys. - - - - - Builds the specified key. - - The dictionary adapter. - The current key. - The property. - The updated key - - - - Contract for dictionary meta-data initialization. - - - - - Initializes the given object. - - The dictionary adapter factory. - The dictionary adapter meta. - - - - - Determines whether the given behavior should be included in a new - object. - - A dictionary behavior or annotation. - True if the behavior should be included; otherwise, false. - - behaviors are always included, - regardless of the result of this method. - - - - - - Contract for managing Dictionary adapter notifications. - - - - - Defines the contract for retrieving dictionary values. - - - - - Gets the effective dictionary value. - - The dictionary adapter. - The key. - The stored value. - The property. - true if return only existing. - The effective property value. - - - - Defines the contract for updating dictionary values. - - - - - Sets the stored dictionary value. - - The dictionary adapter. - The key. - The stored value. - The property. - true if the property should be stored. - - - - Contract for validating Dictionary adapter. - - - - - Contract for dictionary validation. - - - - - Determines if is valid. - - The dictionary adapter. - true if valid. - - - - Validates the . - - The dictionary adapter. - The error summary information. - - - - Validates the for a property. - - The dictionary adapter. - The property to validate. - The property summary information. - - - - Invalidates any results cached by the validator. - - The dictionary adapter. - - - - Contract for property descriptor initialization. - - - - - Performs any initialization of the - - The property descriptor. - The property behaviors. - - - - - - - - - Initializes a new instance of the class. - - The name values. - - - - Gets a value indicating whether the object is read-only. - - true if the object is read-only; otherwise, false. - - - - Determines whether the object contains an element with the specified key. - - The key to locate in the object. - - true if the contains an element with the key; otherwise, false. - - key is null. - - - - Gets or sets the with the specified key. - - - - - Adapts the specified name values. - - The name values. - - - - Describes a dictionary property. - - - - - Initializes an empty class. - - - - - Initializes a new instance of the class. - - The property. - The annotations. - - - - Initializes a new instance class. - - - - - Copies an existing instance of the class. - - - - - - - - - - Gets the property name. - - - - - Gets the property type. - - - - - Gets the property. - - The property. - - - - Returns true if the property is dynamic. - - - - - Gets additional state. - - - - - Determines if property should be fetched. - - - - - Determines if property must exist first. - - - - - Determines if notifications should occur. - - - - - Gets the property behaviors. - - - - - Gets the type converter. - - The type converter. - - - - Gets the extended properties. - - - - - Gets the setter. - - The setter. - - - - Gets the key builders. - - The key builders. - - - - Gets the setter. - - The setter. - - - - Gets the getter. - - The getter. - - - - Gets the initializers. - - The initializers. - - - - Gets the meta-data initializers. - - The meta-data initializers. - - - - Gets the key. - - The dictionary adapter. - The key. - The descriptor. - - - - Gets the property value. - - The dictionary adapter. - The key. - The stored value. - The descriptor. - true if return only existing. - - - - Sets the property value. - - The dictionary adapter. - The key. - The value. - The descriptor. - - - - Adds a single behavior. - - The behavior. - - - - Adds the behaviors. - - The behaviors. - - - - Adds the behaviors. - - The behaviors. - - - - Copies the behaviors to the other - - - - - Copies the - - - - - Provides a generic collection that supports data binding. - - - This class wraps the CLR - in order to implement the Castle-specific . - - The type of elements in the list. - - - - Initializes a new instance of the class - using default values. - - - - - Initializes a new instance of the class - with the specified list. - - - An of items - to be contained in the . - - - - - Initializes a new instance of the class - wrapping the specified instance. - - - A - to be wrapped by the . - - - - - Contract for value matching. - - - - - Contract for dynamic value resolution. - - - - - Contract for typed dynamic value resolution. - - - - - - This is an abstract implementation - that deals with methods that can be abstracted away - from underlying implementations. - - - AbstractConfiguration makes easier to implementers - to create a new version of - - - - - Gets node attributes. - - - All attributes of the node. - - - - - Gets all child nodes. - - The of child nodes. - - - - Gets the name of the . - - - The Name of the . - - - - - Gets the value of . - - - The Value of the . - - - - - Gets the value of the node and converts it - into specified . - - The - - The Default value returned if the conversion fails. - - The Value converted into the specified type. - - - - A collection of objects. - - - - - Creates a new instance of ConfigurationCollection. - - - - - Creates a new instance of ConfigurationCollection. - - - - - is a interface encapsulating a configuration node - used to retrieve configuration values. - - - - - Gets the name of the node. - - - The Name of the node. - - - - - Gets the value of the node. - - - The Value of the node. - - - - - Gets an of - elements containing all node children. - - The Collection of child nodes. - - - - Gets an of the configuration attributes. - - - - - Gets the value of the node and converts it - into specified . - - The - - The Default value returned if the conversion fails. - - The Value converted into the specified type. - - - - Initializes a new instance of the class. - - The name. - - - - Gets the value of . - - - The Value of the . - - - - - Deserializes the specified node into an abstract representation of configuration. - - The node. - - - - If a config value is an empty string we return null, this is to keep - backward compatibility with old code - - - - - Helper class for retrieving attributes. - - - - - Gets the attribute. - - The type. - The type attribute. - - - - Gets the attributes. Does not consider inherited attributes! - - The type. - The type attributes. - - - - Gets the attribute. - - The member. - The member attribute. - - - - Gets the attributes. Does not consider inherited attributes! - - The member. - The member attributes. - - - - Gets the type attribute. - - The type. - The type attribute. - - - - Gets the type attributes. - - The type. - The type attributes. - - - - Gets the type converter. - - The member. - - - - Constant to use when making assembly internals visible to Castle.Core - [assembly: InternalsVisibleTo(CoreInternalsVisible.ToCastleCore)] - - - - - Constant to use when making assembly internals visible to proxy types generated by DynamicProxy. Required when proxying internal types. - [assembly: InternalsVisibleTo(CoreInternalsVisible.ToDynamicProxyGenAssembly2)] - - - - - Find the best available name to describe a type. - - - Usually the best name will be , but - sometimes that's null (see http://msdn.microsoft.com/en-us/library/system.type.fullname%28v=vs.110%29.aspx) - in which case the method falls back to . - - the type to name - the best name - - - - Defines that the implementation wants a - in order to - access other components. The creator must be aware - that the component might (or might not) implement - the interface. - - - Used by Castle Project components to, for example, - gather logging factories - - - - - Increments IServiceProvider with a generic service resolution operation. - - - - - This interface should be implemented by classes - that are available in a bigger context, exposing - the container to different areas in the same application. - - For example, in Web application, the (global) HttpApplication - subclasses should implement this interface to expose - the configured container - - - - - - Creates a new extended logger, getting the logger name from the specified type. - - - - - Creates a new extended logger. - - - - - Creates a new extended logger, getting the logger name from the specified type. - - - - - Creates a new extended logger. - - - - - Creates a new logger, getting the logger name from the specified type. - - - - - Creates a new logger. - - - - - Creates a new logger, getting the logger name from the specified type. - - - - - Creates a new logger. - - - - - Gets the configuration file. - - i.e. log4net.config - - - - Gets the configuration file. - - i.e. log4net.config - - - - The Logger sending everything to the standard output streams. - This is mainly for the cases when you have a utility that - does not have a logger to supply. - - - - - Creates a new ConsoleLogger with the Level - set to LoggerLevel.Debug and the Name - set to string.Empty. - - - - - Creates a new ConsoleLogger with the Name - set to string.Empty. - - The logs Level. - - - - Creates a new ConsoleLogger with the Level - set to LoggerLevel.Debug. - - The logs Name. - - - - Creates a new ConsoleLogger. - - The logs Name. - The logs Level. - - - - A Common method to log. - - The level of logging - The name of the logger - The Message - The Exception - - - - Returns a new ConsoleLogger with the name - added after this loggers name, with a dot in between. - - The added hierarchical name. - A new ConsoleLogger. - - - - The Logger using standard Diagnostics namespace. - - - - - Creates a logger based on . - - - - - - Creates a logger based on . - - - - - - - Creates a logger based on . - - - - - - - - Interface for Context Properties implementations - - - - This interface defines a basic property get set accessor. - - - Based on the ContextPropertiesBase of log4net, by Nicko Cadell. - - - - - - Gets or sets the value of a property - - - The value for the property with the specified key - - - - Gets or sets the value of a property - - - - - - Provides an interface that supports and - allows the storage and retrieval of Contexts. These are supported in - both log4net and NLog. - - - - - Exposes the Global Context of the extended logger. - - - - - Exposes the Thread Context of the extended logger. - - - - - Exposes the Thread Stack of the extended logger. - - - - - Provides a factory that can produce either or - classes. - - - - - Creates a new extended logger, getting the logger name from the specified type. - - - - - Creates a new extended logger. - - - - - Creates a new extended logger, getting the logger name from the specified type. - - - - - Creates a new extended logger. - - - - - Manages logging. - - - This is a facade for the different logging subsystems. - It offers a simplified interface that follows IOC patterns - and a simplified priority/level/severity abstraction. - - - - - Determines if messages of priority "trace" will be logged. - - True if "trace" messages will be logged. - - - - Determines if messages of priority "debug" will be logged. - - True if "debug" messages will be logged. - - - - Determines if messages of priority "error" will be logged. - - True if "error" messages will be logged. - - - - Determines if messages of priority "fatal" will be logged. - - True if "fatal" messages will be logged. - - - - Determines if messages of priority "info" will be logged. - - True if "info" messages will be logged. - - - - Determines if messages of priority "warn" will be logged. - - True if "warn" messages will be logged. - - - - Create a new child logger. - The name of the child logger is [current-loggers-name].[passed-in-name] - - The Subname of this logger. - The New ILogger instance. - If the name has an empty element name. - - - - Logs a trace message. - - The message to log - - - - Logs a trace message with lazily constructed message. The message will be constructed only if the is true. - - - - - Logs a trace message. - - The exception to log - The message to log - - - - Logs a trace message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs a trace message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs a trace message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a trace message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a debug message. - - The message to log - - - - Logs a debug message with lazily constructed message. The message will be constructed only if the is true. - - - - - Logs a debug message. - - The exception to log - The message to log - - - - Logs a debug message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs a debug message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs a debug message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a debug message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs an error message. - - The message to log - - - - Logs an error message with lazily constructed message. The message will be constructed only if the is true. - - - - - Logs an error message. - - The exception to log - The message to log - - - - Logs an error message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs an error message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs an error message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs an error message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a fatal message. - - The message to log - - - - Logs a fatal message with lazily constructed message. The message will be constructed only if the is true. - - - - - Logs a fatal message. - - The exception to log - The message to log - - - - Logs a fatal message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs a fatal message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs a fatal message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a fatal message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs an info message. - - The message to log - - - - Logs a info message with lazily constructed message. The message will be constructed only if the is true. - - - - - Logs an info message. - - The exception to log - The message to log - - - - Logs an info message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs an info message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs an info message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs an info message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a warn message. - - The message to log - - - - Logs a warn message with lazily constructed message. The message will be constructed only if the is true. - - - - - Logs a warn message. - - The exception to log - The message to log - - - - Logs a warn message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs a warn message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs a warn message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a warn message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Manages the instantiation of s. - - - - - Creates a new logger, getting the logger name from the specified type. - - - - - Creates a new logger. - - - - - Creates a new logger, getting the logger name from the specified type. - - - - - Creates a new logger. - - - - - The Level Filtered Logger class. This is a base class which - provides a LogLevel attribute and reroutes all functions into - one Log method. - - - - - Creates a new LevelFilteredLogger. - - - - - The LoggerLevel that this logger - will be using. Defaults to LoggerLevel.Off - - - - - The name that this logger will be using. - Defaults to string.Empty - - - - - Logs a trace message. - - The message to log - - - - Logs a trace message. - - A functor to create the message - - - - Logs a trace message. - - The exception to log - The message to log - - - - Logs a trace message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs a trace message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs a trace message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a trace message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a debug message. - - The message to log - - - - Logs a debug message. - - The exception to log - The message to log - - - - Logs a debug message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs a debug message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs a debug message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a debug message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs an info message. - - The message to log - - - - Logs an info message. - - The exception to log - The message to log - - - - Logs an info message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs an info message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs an info message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs an info message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a warn message. - - The message to log - - - - Logs a warn message. - - The exception to log - The message to log - - - - Logs a warn message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs a warn message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs a warn message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a warn message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs an error message. - - The message to log - - - - Logs an error message. - - The exception to log - The message to log - - - - Logs an error message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs an error message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs an error message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs an error message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a fatal message. - - The message to log - - - - Logs a fatal message. - - The exception to log - The message to log - - - - Logs a fatal message. - - Format string for the message to log - Format arguments for the message to log - - - - Logs a fatal message. - - The exception to log - Format string for the message to log - Format arguments for the message to log - - - - Logs a fatal message. - - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Logs a fatal message. - - The exception to log - The format provider to use - Format string for the message to log - Format arguments for the message to log - - - - Determines if messages of priority "trace" will be logged. - - true if log level flags include the bit - - - - Determines if messages of priority "debug" will be logged. - - true if log level flags include the bit - - - - Determines if messages of priority "info" will be logged. - - true if log level flags include the bit - - - - Determines if messages of priority "warn" will be logged. - - true if log level flags include the bit - - - - Determines if messages of priority "error" will be logged. - - true if log level flags include the bit - - - - Determines if messages of priority "fatal" will be logged. - - true if log level flags include the bit - - - - Implementors output the log content by implementing this method only. - Note that exception can be null - - - - - Supporting Logger levels. - - - - - Logging will be off - - - - - Fatal logging level - - - - - Error logging level - - - - - Warn logging level - - - - - Info logging level - - - - - Debug logging level - - - - - Trace logging level - - - - - NullLogFactory used when logging is turned off. - - - - - Creates an instance of ILogger with the specified name. - - Name. - - - - Creates an instance of ILogger with the specified name and LoggerLevel. - - Name. - Level. - - - - The Null Logger class. This is useful for implementations where you need - to provide a logger to a utility class, but do not want any output from it. - It also helps when you have a utility that does not have a logger to supply. - - - - - Returns empty context properties. - - - - - Returns empty context properties. - - - - - Returns empty context stacks. - - - - - No-op. - - false - - - - No-op. - - false - - - - No-op. - - false - - - - No-op. - - false - - - - No-op. - - false - - - - No-op. - - false - - - - Returns this NullLogger. - - Ignored - This ILogger instance. - - - - No-op. - - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - - - - No-op. - - Ignored - Ignored - Ignored - Ignored - - - - The Stream Logger class. This class can stream log information - to any stream, it is suitable for storing a log file to disk, - or to a MemoryStream for testing your components. - - - This logger is not thread safe. - - - - - Creates a new StreamLogger with default encoding - and buffer size. Initial Level is set to Debug. - - - The name of the log. - - - The stream that will be used for logging, - seeking while the logger is alive - - - - - Creates a new StreamLogger with default buffer size. - Initial Level is set to Debug. - - - The name of the log. - - - The stream that will be used for logging, - seeking while the logger is alive - - - The encoding that will be used for this stream. - - - - - - Creates a new StreamLogger. - Initial Level is set to Debug. - - - The name of the log. - - - The stream that will be used for logging, - seeking while the logger is alive - - - The encoding that will be used for this stream. - - - - The buffer size that will be used for this stream. - - - - - - Creates a new StreamLogger with - Debug as default Level. - - The name of the log. - The StreamWriter the log will write to. - - - - Creates outputting - to files. The name of the file is derived from the log name - plus the 'log' extension. - - - - - The TraceLogger sends all logging to the System.Diagnostics.TraceSource - built into the .net framework. - - - Logging can be configured in the system.diagnostics configuration - section. - - If logger doesn't find a source name with a full match it will - use source names which match the namespace partially. For example you can - configure from all castle components by adding a source name with the - name "Castle". - - If no portion of the namespace matches the source named "Default" will - be used. - - - - - Build a new trace logger based on the named TraceSource - - The name used to locate the best TraceSource. In most cases comes from the using type's fullname. - - - - Build a new trace logger based on the named TraceSource - - The name used to locate the best TraceSource. In most cases comes from the using type's fullname. - The default logging level at which this source should write messages. In almost all cases this - default value will be overridden in the config file. - - - - Create a new child logger. - The name of the child logger is [current-loggers-name].[passed-in-name] - - The Subname of this logger. - The New ILogger instance. - - - - Used to create the TraceLogger implementation of ILogger interface. See . - - - - - List of utility methods related to dynamic proxy operations - - - - - Determines whether the specified type is a proxy generated by - DynamicProxy (1 or 2). - - The type. - - true if it is a proxy; otherwise, false. - - - - - Readonly implementation of which uses an anonymous object as its source. Uses names of properties as keys, and property values as... well - values. Keys are not case sensitive. - - - - - Initializes a new instance of the class. - - The target. - - - - Gets the number of elements contained in the . - - The number of elements contained in the . - - - - Gets a value indicating whether access to the is synchronized (thread safe). - - true if access to the is synchronized (thread safe); otherwise, false. - - - - Gets an object that can be used to synchronize access to the . - - An object that can be used to synchronize access to the . - - - - Gets a value indicating whether the object is read-only. - - true if the object is read-only; otherwise, false. - - - - Gets or sets the with the specified key. - - - - - Gets an object containing the keys of the object. - - An object containing the keys of the object. - - - - Gets an object containing the values in the object. - - An object containing the values in the object. - - - - Gets a value indicating whether the object has a fixed size. - - true if the object has a fixed size; otherwise, false. - - - - Adds an element with the provided key and value to the object. - - The to use as the key of the element to add. - The to use as the value of the element to add. - - is null. - An element with the same key already exists in the object. - The is read-only.-or- The has a fixed size. - - - - Removes all elements from the object. - - The object is read-only. - - - - Determines whether the object contains an element with the specified key. - - The key to locate in the object. - - true if the contains an element with the key; otherwise, false. - - - is null. - - - - Removes the element with the specified key from the object. - - The key of the element to remove. - - is null. - The object is read-only.-or- The has a fixed size. - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - - - - Copies the elements of the to an , starting at a particular index. - - The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. - The zero-based index in at which copying begins. - - is null. - - is less than zero. - - is multidimensional.-or- is equal to or greater than the length of .-or- The number of elements in the source is greater than the available space from to the end of the destination . - The type of the source cannot be cast automatically to the type of the destination . - - - - Returns an object for the object. - - - An object for the object. - - - - - Reads values of properties from and inserts them into using property names as keys. - - - - - - - - - - This returns a new stream instance each time it is called. - It is the responsibility of the caller to dispose of this stream - - - - - - - - - - - - - - - Represents a 'streamable' resource. Can - be a file, a resource in an assembly. - - - - - Only valid for resources that - can be obtained through relative paths - - - - - Returns a reader for the stream - - - It's up to the caller to dispose the reader. - - - - - Returns a reader for the stream - - - It's up to the caller to dispose the reader. - - - - - Returns an instance of - created according to the relativePath - using itself as the root. - - - - - Depicts the contract for resource factories. - - - - - Used to check whether the resource factory - is able to deal with the given resource - identifier. - - - Implementors should return true - only if the given identifier is supported - by the resource factory - - - - - Creates an instance - for the given resource identifier - - - - - Creates an instance - for the given resource identifier - - - - - Adapts a static string content as an - - - - - Enable access to files on network shares - - - - - Default implementation. - - - - - Initializes a new instance of the class based on the configuration provided in the application configuration file. - - - This constructor is based on the default configuration in the application configuration file. - - - - - This service implementation - requires a host name in order to work - - The smtp server name - - - - Gets or sets the port used to - access the SMTP server - - - - - Gets the hostname. - - The hostname. - - - - Gets or sets a value which is used to - configure if emails are going to be sent asynchronously or not. - - - - - Gets or sets a value that specifies - the amount of time after which a synchronous Send call times out. - - - - - Gets or sets a value indicating whether the email should be sent using - a secure communication channel. - - true if should use SSL; otherwise, false. - - - - Sends a message. - - If any of the parameters is null - From field - To field - e-mail's subject - message's body - - - - Sends a message. - - If the message is null - Message instance - - - - Gets or sets the domain. - - The domain. - - - - Gets or sets the name of the user. - - The name of the user. - - - - Gets or sets the password. - - The password. - - - - Configures the sender - with port information and eventual credential - informed - - Message instance - - - - Gets a value indicating whether credentials were informed. - - - if this instance has credentials; otherwise, . - - - - - Email sender abstraction. - - - - - Sends a mail message. - - From field - To field - E-mail's subject - message's body - - - - Sends a message. - - Message instance - - - - Sends multiple messages. - - List of messages - - - - Interface describing elements composing generated type - - - - - Performs some basic screening and invokes the - to select methods. - - - - - Performs some basic screening to filter out non-interceptable methods. - - - The will get invoked for non-interceptable method notification only; - it does not get asked whether or not to intercept the . - - - - - Reproduces the proxied type's non-inheritable custom attributes on the proxy type. - - - - - Adds an implementation for to the proxy type. - - - - - Encapsulates the information needed to build an attribute. - - - Arrays passed to this class as constructor arguments or property or field values become owned by this class. - They should not be mutated after creation. - - - - - Default implementation of interface producing in-memory proxy assemblies. - - - - - Initializes a new instance of the class with new . - - - - - Initializes a new instance of the class. - - The module scope for generated proxy types. - - - - Provides instructions that a user could follow to make a type or method in - visible to DynamicProxy. - The assembly containing the type or method. - Instructions that a user could follow to make a type or method visible to DynamicProxy. - - - - Creates a message to inform clients that a proxy couldn't be created due to reliance on an - inaccessible type (perhaps itself). - - the inaccessible type that prevents proxy creation - the type that couldn't be proxied - - - - Base class that exposes the common functionalities - to proxy generation. - - - - - It is safe to add mapping (no mapping for the interface exists) - - - - - Generates a parameters constructor that initializes the proxy - state with just to make it non-null. - - This constructor is important to allow proxies to be XML serializable - - - - - - Initializes a new instance of the class. - - Target element. This is either target type or target method for invocation types. - The type of the proxy. This is base type for invocation types. - The interfaces. - The options. - - - - Initializes a new instance of the class. - - Type of the target. - The interfaces. - The options. - - - - Provides appropriate Ldc.X opcode for the type of primitive value to be loaded. - - - - - Provides appropriate Ldind.X opcode for - the type of primitive value to be loaded indirectly. - - - - - Emits a load indirect opcode of the appropriate type for a value or object reference. - Pops a pointer off the evaluation stack, dereferences it and loads - a value of the specified type. - - - - - Emits a load opcode of the appropriate kind for the constant default value of a - type, such as 0 for value types and null for reference types. - - - - - Emits a store indirectopcode of the appropriate type for a value or object reference. - Pops a value of the specified type and a pointer off the evaluation stack, and - stores the value. - - - - - Wraps a reference that is passed - ByRef and provides indirect load/store support. - - - - - Provides appropriate Stind.X opcode - for the type of primitive value to be stored indirectly. - - - - - Represents the scope of uniqueness of names for types and their members - - - - - Gets a unique name based on - - Name suggested by the caller - Unique name based on . - - Implementers should provide name as closely resembling as possible. - Generally if no collision occurs it is suggested to return suggested name, otherwise append sequential suffix. - Implementers must return deterministic names, that is when is called twice - with the same suggested name, the same returned name should be provided each time. Non-deterministic return - values, like appending random suffices will break serialization of proxies. - - - - - Returns new, disposable naming scope. It is responsibility of the caller to make sure that no naming collision - with enclosing scope, or other subscopes is possible. - - New naming scope. - - - - Generates the constructor for the class that extends - - - - - - Initializes a new instance of the class. - - The event. - The add method. - The remove method. - The attributes. - - - - Returns the methods implemented by a type. Use this instead of Type.GetMethods() to work around a CLR issue - where duplicate MethodInfos are returned by Type.GetMethods() after a token of a generic type's method was loaded. - - - - - Exposes means to change target objects of proxies and invocations. - - - - - Changes the target object () of current . - - The new value of target of invocation. - - Although the method takes the actual instance must be of type assignable to , otherwise an will be thrown. - Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. - In this case last interceptor in the pipeline mustn't call or a will be throws. - Also while it's technically legal to pass proxy itself as , this would create stack overflow. - In this case last interceptor in the pipeline mustn't call or a will be throws. - - Thrown when is not assignable to the proxied type. - - - - Permanently changes the target object of the proxy. This does not affect target of the current invocation. - - The new value of target of the proxy. - - Although the method takes the actual instance must be of type assignable to proxy's target type, otherwise an will be thrown. - Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. - In this case last interceptor in the pipeline mustn't call or a will be throws. - Also while it's technically legal to pass proxy itself as , this would create stack overflow. - In this case last interceptor in the pipeline mustn't call or a will be throws. - - Thrown when is not assignable to the proxied type. - - - - Provides the main DynamicProxy extension point that allows member interception. - - - - - Provides an extension point that allows proxies to choose specific interceptors on - a per method basis. - - - - - Selects the interceptors that should intercept calls to the given . - - The type of the target object. - The method that will be intercepted. - All interceptors registered with the proxy. - An array of interceptors to invoke upon calling the . - - This method is called only once per proxy instance, upon the first call to the - . Either an empty array or null are valid return values to indicate - that no interceptor should intercept calls to the method. Although it is not advised, it is - legal to return other implementations than these provided in - . - - - - - Encapsulates an invocation of a proxied method. - - - - - Gets the arguments that the has been invoked with. - - The arguments the method was invoked with. - - - - Gets the generic arguments of the method. - - The generic arguments, or null if not a generic method. - - - - Gets the object on which the invocation is performed. This is different from proxy object - because most of the time this will be the proxy target object. - - - The invocation target. - - - - Gets the representing the method being invoked on the proxy. - - The representing the method being invoked. - - - - For interface proxies, this will point to the on the target class. - - The method invocation target. - - - - Gets the proxy object on which the intercepted method is invoked. - - Proxy object on which the intercepted method is invoked. - - - - Gets or sets the return value of the method. - - The return value of the method. - - - - Gets the type of the target object for the intercepted method. - - The type of the target object. - - - - Gets the value of the argument at the specified . - - The index. - The value of the argument at the specified . - - - - Returns the concrete instantiation of the on the proxy, with any generic - parameters bound to real types. - - - The concrete instantiation of the on the proxy, or the if - not a generic method. - - - Can be slower than calling . - - - - - Returns the concrete instantiation of , with any - generic parameters bound to real types. - For interface proxies, this will point to the on the target class. - - The concrete instantiation of , or - if not a generic method. - - In debug builds this can be slower than calling . - - - - - Proceeds the call to the next interceptor in line, and ultimately to the target method. - - - Since interface proxies without a target don't have the target implementation to proceed to, - it is important, that the last interceptor does not call this method, otherwise a - will be thrown. - - - - - Returns an object describing the operation for this - at this specific point during interception. - - - - - Overrides the value of an argument at the given with the - new provided. - - - This method accepts an , however the value provided must be compatible - with the type of the argument defined on the method, otherwise an exception will be thrown. - - The index of the argument to override. - The new value for the argument. - - - - Describes the operation for an - at a specific point during interception. - - - - - Executes the operation described by this instance. - - There is no interceptor, nor a proxy target object, to proceed to. - - - - Attributes should be replicated if they are non-inheritable, - but there are some special cases where the attributes means - something to the CLR, where they should be skipped. - - - - - Returns list of all unique interfaces implemented given types, including their base interfaces. - - - - - Checks whether the specified is a delegate type (i.e. a direct subclass of ). - - - - - Abstracts the implementation of proxy type construction. - - - - - Gets or sets the that this logs to. - - - - - Gets the associated with this builder. - - The module scope associated with this builder. - - - - Creates a proxy type for given , implementing , using provided. - - The class type to proxy. - Additional interface types to proxy. - The proxy generation options. - The generated proxy type. - - Implementers should return a proxy type for the specified class and interfaces. - Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) - - Thrown when or any of is a generic type definition. - Thrown when or any of is not public. - Note that to avoid this exception, you can mark offending type internal, and define - pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. - - - - - Creates a proxy type that proxies calls to members on , implementing , using provided. - - The interface type to proxy. - Additional interface types to proxy. - Type implementing on which calls to the interface members should be intercepted. - The proxy generation options. - The generated proxy type. - - Implementers should return a proxy type for the specified interface that 'proceeds' executions to the specified target. - Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) - - Thrown when or any of is a generic type definition. - Thrown when or any of is not public. - Note that to avoid this exception, you can mark offending type internal, and define - pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. - - - - - Creates a proxy type for given and that delegates all calls to the provided interceptors and allows interceptors to switch the actual target of invocation. - - The interface type to proxy. - Additional interface types to proxy. - The proxy generation options. - The generated proxy type. - - Implementers should return a proxy type for the specified interface(s) that delegate all executions to the specified interceptors - and uses an instance of the interface as their targets (i.e. ), rather than a class. All classes should then implement interface, - to allow interceptors to switch invocation target with instance of another type implementing called interface. - - Thrown when or any of is a generic type definition. - Thrown when or any of is not public. - Note that to avoid this exception, you can mark offending type internal, and define - pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. - - - - - Creates a proxy type for given that delegates all calls to the provided interceptors. - - The interface type to proxy. - Additional interface types to proxy. - The proxy generation options. - The generated proxy type. - - Implementers should return a proxy type for the specified interface and additional interfaces that delegate all executions to the specified interceptors. - - Thrown when or any of is a generic type definition. - Thrown when or any of is not public. - Note that to avoid this exception, you can mark offending type internal, and define - pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. - - - - - Used during the target type inspection process. Implementors have a chance to customize the - proxy generation process. - - - - - Invoked by the generation process to notify that the whole process has completed. - - - - - Invoked by the generation process to notify that a member was not marked as virtual. - - The type which declares the non-virtual member. - The non-virtual member. - - This method gives an opportunity to inspect any non-proxyable member of a type that has - been requested to be proxied, and if appropriate - throw an exception to notify the caller. - - - - - Invoked by the generation process to determine if the specified method should be proxied. - - The type which declares the given method. - The method to inspect. - True if the given method should be proxied; false otherwise. - - - - Provides proxy objects for classes and interfaces. - - - - - Gets or sets the that this log to. - - - - - Gets the proxy builder instance used to generate proxy types. - - The proxy builder. - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - Object proxying calls to members of on object. - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of types on generated target object. - - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - As a result of that also at least one implementation must be provided. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of types on generated target object. - - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - As a result of that also at least one implementation must be provided. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of types on generated target object. - - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - As a result of that also at least one implementation must be provided. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The proxy generation options used to influence generated proxy type and object. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no parameterless constructor exists on type . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The proxy generation options used to influence generated proxy type and object. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no parameterless constructor exists on type . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The proxy generation options used to influence generated proxy type and object. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Exposes access to the target object and interceptors of proxy objects. - This is a DynamicProxy infrastructure interface and should not be implemented yourself. - - - - - Get the proxy target (note that null is a valid target!) - - - - - Set the proxy target. - - New proxy target. - - - - Gets the interceptors for the proxy - - - - - Because we need to cache the types based on the mixed in mixins, we do the following here: - - Get all the mixin interfaces - - Sort them by full name - - Return them by position - - The idea is to have reproducible behavior for the case that mixins are registered in different orders. - This method is here because it is required - - - - - The default file name used when the assembly is saved using . - - - - - The default assembly (simple) name used for the assemblies generated by a instance. - - - - - Initializes a new instance of the class; assemblies created by this instance will not be saved. - - - - - Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance - should be saved. - - If set to true saves the generated module. - - - - Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance - should be saved. - - If set to true saves the generated module. - If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. - - - - Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance - should be saved and what simple names are to be assigned to them. - - If set to true saves the generated module. - If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. - The simple name of the strong-named assembly generated by this . - The path and file name of the manifest module of the strong-named assembly generated by this . - The simple name of the weak-named assembly generated by this . - The path and file name of the manifest module of the weak-named assembly generated by this . - - - - Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance - should be saved and what simple names are to be assigned to them. - - If set to true saves the generated module. - If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. - Naming scope used to provide unique names to generated types and their members (usually via sub-scopes). - The simple name of the strong-named assembly generated by this . - The path and file name of the manifest module of the strong-named assembly generated by this . - The simple name of the weak-named assembly generated by this . - The path and file name of the manifest module of the weak-named assembly generated by this . - - - - Gets the key pair used to sign the strong-named assembly generated by this . - - - - - Gets the strong-named module generated by this scope, or if none has yet been generated. - - The strong-named module generated by this scope, or if none has yet been generated. - - - - Gets the file name of the strongly named module generated by this scope. - - The file name of the strongly named module generated by this scope. - - - - Gets the weak-named module generated by this scope, or if none has yet been generated. - - The weak-named module generated by this scope, or if none has yet been generated. - - - - Gets the file name of the weakly named module generated by this scope. - - The file name of the weakly named module generated by this scope. - - - - Gets the specified module generated by this scope, creating a new one if none has yet been generated. - - If set to true, a strong-named module is returned; otherwise, a weak-named module is returned. - A strong-named or weak-named module generated by this scope, as specified by the parameter. - - - - Gets the strong-named module generated by this scope, creating a new one if none has yet been generated. - - A strong-named module generated by this scope. - - - - Gets the weak-named module generated by this scope, creating a new one if none has yet been generated. - - A weak-named module generated by this scope. - - - - allows customization of the behavior of proxies created by - an (or proxy types generated by an ). - - You should not modify an instance of once it has been - used to create a proxy (or proxy type). - - - - - - Initializes a new instance of the class. - - The hook. - - - - Initializes a new instance of the class. - - - - - Gets or sets the that should be used during proxy type - generation. Defaults to an instance of . - - You should not modify this property once this instance - has been used to create a proxy. - - - - - - Gets or sets the that should be used by created proxies - to determine which interceptors to use for an interception. If set to - (which is the default), created proxies will not use any selector. - - You should not modify this property once this instance - has been used to create a proxy. - - - - - - Gets or sets the class type from which generated interface proxy types will be derived. - Defaults to (). - - You should not modify this property once this instance - has been used to create a proxy. - - - - - - Gets the collection of additional custom attributes that will be put on generated proxy types. - This collection is initially empty. - - You should not modify this collection once this instance - has been used to create a proxy. - - - - - - Adds a delegate type to the list of mixins that will be added to generated proxies. - That is, generated proxies will have a `Invoke` method with a signature matching that - of the specified . - - You should not call this method once this instance - has been used to create a proxy. - - - The delegate type whose `Invoke` method should be reproduced in generated proxies. - is . - is not a delegate type. - - - - Adds a delegate to be mixed into generated proxies. The - will act as the target for calls to a `Invoke` method with a signature matching that - of the delegate. - - You should not call this method once this instance - has been used to create a proxy. - - - The delegate that should act as the target for calls to `Invoke` methods with a matching signature. - is . - - - - Mixes the interfaces implemented by the specified object into - created proxies, and uses as the target for these mixed-in interfaces. - - You should not call this method once this instance - has been used to create a proxy. - - - The object that should act as the target for all of its implemented interfaces' methods. - is . - is an instance of . - - - - Provides proxy objects for classes and interfaces. - - - - - Initializes a new instance of the class. - - Proxy types builder. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - If true forces all types to be generated into an unsigned module. - - - - Gets or sets the that this log to. - - - - - Gets the proxy builder instance used to generate proxy types. - - The proxy builder. - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - Object proxying calls to members of on object. - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target - use method. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on object with given . - Interceptors can use interface to provide other target for method invocation than default . - - Type of the interface implemented by which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - Thrown when given does not implement interface. - Thrown when no default constructor exists on actual type of object. - Thrown when default constructor of actual type of throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of types on generated target object. - - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - As a result of that also at least one implementation must be provided. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of types on generated target object. - - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - As a result of that also at least one implementation must be provided. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of types on generated target object. - - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - As a result of that also at least one implementation must be provided. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of type on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not an interface type. - - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . - - Type of the interface which will be proxied. - The proxy generation options used to influence generated proxy type and object. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - Object proxying calls to members of and types on generated target object. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given array is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not an interface type. - - Since this method uses an empty-shell implementation of to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. - They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no parameterless constructor exists on type . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The target object, calls to which will be intercepted. - The proxy generation options used to influence generated proxy type and object. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The proxy generation options used to influence generated proxy type and object. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no parameterless constructor exists on type . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of type. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The proxy generation options used to influence generated proxy type and object. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no default constructor exists on type . - Thrown when default constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . - - Type of class which will be proxied. - Additional interface types. Calls to their members will be proxied as well. - The proxy generation options used to influence generated proxy type and object. - Arguments of constructor of type which should be used to create a new instance of that type. - The interceptors called during the invocation of proxied methods. - - New object of type proxying calls to virtual members of and types. - - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given object is a null reference (Nothing in Visual Basic). - Thrown when given or any of is a generic type definition. - Thrown when given is not a class type. - Thrown when no constructor exists on type with parameters matching . - Thrown when constructor of type throws an exception. - - This method uses implementation to generate a proxy type. - As such caller should expect any type of exception that given implementation may throw. - - - - - Creates the proxy type for class proxy with given class, implementing given and using provided . - - The base class for proxy type. - The interfaces that proxy type should implement. - The options for proxy generation process. - of proxy. - - - - Creates the proxy type for interface proxy with target for given interface, implementing given on given and using provided . - - The interface proxy type should implement. - The additional interfaces proxy type should implement. - Actual type that the proxy type will encompass. - The options for proxy generation process. - of proxy. - - - - Creates the proxy type for interface proxy with target interface for given interface, implementing given on given and using provided . - - The interface proxy type should implement. - The additional interfaces proxy type should implement. - The options for proxy generation process. - of proxy. - - - - Creates the proxy type for interface proxy without target for given interface, implementing given and using provided . - - The interface proxy type should implement. - The additional interfaces proxy type should implement. - The options for proxy generation process. - of proxy. - - - - Creates a delegate of the specified type to a suitable `Invoke` method - on the given instance. - - The proxy instance to which the delegate should be bound. - The type of delegate that should be created. - - The does not have an `Invoke` method that is compatible with - the requested type. - - - - - Creates a delegate of the specified type to a suitable `Invoke` method - on the given instance. - - The proxy instance to which the delegate should be bound. - The type of delegate that should be created. - - The does not have an `Invoke` method that is compatible with - the requested . - - - - - Checks whether the specified method is accessible to DynamicProxy. - The method to check. - true if the method is accessible to DynamicProxy, false otherwise. - - - - Checks whether the specified method is accessible to DynamicProxy. - The method to check. - If the method is accessible to DynamicProxy, null; otherwise, an explanation of why the method is not accessible. - true if the method is accessible to DynamicProxy, false otherwise. - - - - Checks whether the specified type is accessible to DynamicProxy. - The type to check. - true if the type is accessible to DynamicProxy, false otherwise. - - - - Determines whether this assembly has internals visible to DynamicProxy. - - The assembly to inspect. - - - - Checks whether the specified method is accessible to DynamicProxy. - Unlike with , the declaring type's accessibility is ignored. - - The method to check. - true if the method is accessible to DynamicProxy, false otherwise. - - - - Determines whether the specified method is internal. - - The method. - - true if the specified method is internal; otherwise, false. - - - - - Holds objects representing methods of class. - - - - + + + + Castle.Core + + + + + Abstract adapter for the support + needed by the + + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + An element with the same key already exists in the object. + key is null. + The is read-only.-or- The has a fixed size. + + + + Removes all elements from the object. + + The object is read-only. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + key is null. + + + + Returns an object for the object. + + + An object for the object. + + + + + Gets a value indicating whether the object has a fixed size. + + true if the object has a fixed size; otherwise, false. + + + + Gets a value indicating whether the object is read-only. + + true if the object is read-only; otherwise, false. + + + + Gets an object containing the keys of the object. + + An object containing the keys of the object. + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + The object is read-only.-or- The has a fixed size. + key is null. + + + + Gets an object containing the values in the object. + + An object containing the values in the object. + + + + Gets or sets the with the specified key. + + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in array at which copying begins. + array is null. + The type of the source cannot be cast automatically to the type of the destination array. + index is less than zero. + array is multidimensional.-or- index is equal to or greater than the length of array.-or- The number of elements in the source is greater than the available space from index to the end of the destination array. + + + + Gets the number of elements contained in the . + + The number of elements contained in the . + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + true if access to the is synchronized (thread safe); otherwise, false. + + + + Gets an object that can be used to synchronize access to the . + + An object that can be used to synchronize access to the . + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Abstract implementation of . + + + + + Identifies a property should be represented as a nested component. + + + + + Applies no prefix. + + + + + Gets or sets the prefix. + + The prefix. + + + + Identifies the dictionary adapter types. + + + + + Assigns a specific dictionary key. + + + + + Identifies an interface or property to be pre-fetched. + + + + + Instructs fetching to occur. + + + + + Instructs fetching according to + + + + + Gets whether or not fetching should occur. + + + + + Assigns a property to a group. + + + + + Constructs a group assignment. + + The group name. + + + + Constructs a group assignment. + + The group name. + + + + Gets the group the property is assigned to. + + + + + Suppresses any on-demand behaviors. + + + + + Assigns a specific dictionary key. + + + + + Initializes a new instance of the class. + + The key. + + + + Initializes a new instance of the class. + + The compound key. + + + + Assigns a prefix to the keyed properties of an interface. + + + Key prefixes are not inherited by sub-interfaces. + + + + + Initializes a default instance of the class. + + + + + Initializes a new instance of the class. + + The prefix for the keyed properties of the interface. + + + + Gets the prefix key added to the properties of the interface. + + + + + Substitutes part of key with another string. + + + + + Initializes a new instance of the class. + + The old value. + The new value. + + + + Requests support for multi-level editing. + + + + + Generates a new GUID on demand. + + + + + Support for on-demand value resolution. + + + + + Specifies assignment by reference rather than by copying. + + + + + Removes a property if matches value. + + + + + Removes a property if null or empty string, guid or collection. + + + + + Provides simple string formatting from existing properties. + + + + + Gets the string format. + + + + + Gets the format properties. + + + + + Identifies a property should be represented as a delimited string value. + + + + + Gets the separator. + + + + + Converts all properties to strings. + + + + + Gets or sets the format. + + The format. + + + + Suppress property change notifications. + + + + + Assigns a prefix to the keyed properties using the interface name. + + + + + Indicates that underlying values are changeable and should not be cached. + + + + + Initializes a new instance of the class + that represents a child object in a larger object graph. + + + + + Manages conversion between property values. + + + + + Initializes a new instance of the class. + + The converter. + + + + + + + + + Gets the effective dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if return only existing. + The effective property value. + + + + Uses Reflection.Emit to expose the properties of a dictionary + through a dynamic implementation of a typed interface. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wraps a with a dynamic object to expose a bit better looking API. + The implementation is trivial and assumes keys are s. + + + + + Contract for manipulating the Dictionary adapter. + + + + + Defines the contract for building typed dictionary adapters. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + The property descriptor. + An implementation of the typed interface bound to the dictionary. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the namedValues. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the namedValues. + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the . + + The type represented by T must be an interface with properties. + + + + + Gets a typed adapter bound to the . + + The typed interface. + The underlying source of properties. + An implementation of the typed interface bound to the . + + The type represented by T must be an interface with properties. + + + + + Gets the associated with the type. + + The typed interface. + The adapter meta-data. + + + + Gets the associated with the type. + + The typed interface. + The property descriptor. + The adapter meta-data. + + + + Gets the associated with the type. + + The typed interface. + Another from which to copy behaviors. + The adapter meta-data. + + + + Contract for traversing a . + + + + + Defines the contract for customizing dictionary access. + + + + + Determines relative order to apply related behaviors. + + + + + Copies the dictionary behavior. + + null if should not be copied. Otherwise copy. + + + + Defines the contract for building s. + + + + + Builds the dictionary behaviors. + + + + + Contract for creating additional Dictionary adapters. + + + + + Contract for editing the Dictionary adapter. + + + + + Contract for dictionary initialization. + + + + + Performs any initialization of the + + The dictionary adapter. + The dictionary behaviors. + + + + Defines the contract for building typed dictionary keys. + + + + + Builds the specified key. + + The dictionary adapter. + The current key. + The property. + The updated key + + + + Contract for dictionary meta-data initialization. + + + + + Initializes the given object. + + The dictionary adapter factory. + The dictionary adapter meta. + + + + + Determines whether the given behavior should be included in a new + object. + + A dictionary behavior or annotation. + True if the behavior should be included; otherwise, false. + + behaviors are always included, + regardless of the result of this method. + + + + + + Contract for managing Dictionary adapter notifications. + + + + + Defines the contract for retrieving dictionary values. + + + + + Gets the effective dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if return only existing. + The effective property value. + + + + Defines the contract for updating dictionary values. + + + + + Sets the stored dictionary value. + + The dictionary adapter. + The key. + The stored value. + The property. + true if the property should be stored. + + + + Contract for validating Dictionary adapter. + + + + + Contract for dictionary validation. + + + + + Determines if is valid. + + The dictionary adapter. + true if valid. + + + + Validates the . + + The dictionary adapter. + The error summary information. + + + + Validates the for a property. + + The dictionary adapter. + The property to validate. + The property summary information. + + + + Invalidates any results cached by the validator. + + The dictionary adapter. + + + + Contract for property descriptor initialization. + + + + + Performs any initialization of the + + The property descriptor. + The property behaviors. + + + + + + + + + Initializes a new instance of the class. + + The name values. + + + + Gets a value indicating whether the object is read-only. + + true if the object is read-only; otherwise, false. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + key is null. + + + + Gets or sets the with the specified key. + + + + + Adapts the specified name values. + + The name values. + + + + Describes a dictionary property. + + + + + Initializes an empty class. + + + + + Initializes a new instance of the class. + + The property. + The annotations. + + + + Initializes a new instance class. + + + + + Copies an existing instance of the class. + + + + + + + + + + Gets the property name. + + + + + Gets the property type. + + + + + Gets the property. + + The property. + + + + Returns true if the property is dynamic. + + + + + Gets additional state. + + + + + Determines if property should be fetched. + + + + + Determines if property must exist first. + + + + + Determines if notifications should occur. + + + + + Gets the property behaviors. + + + + + Gets the type converter. + + The type converter. + + + + Gets the extended properties. + + + + + Gets the setter. + + The setter. + + + + Gets the key builders. + + The key builders. + + + + Gets the setter. + + The setter. + + + + Gets the getter. + + The getter. + + + + Gets the initializers. + + The initializers. + + + + Gets the meta-data initializers. + + The meta-data initializers. + + + + Gets the key. + + The dictionary adapter. + The key. + The descriptor. + + + + Gets the property value. + + The dictionary adapter. + The key. + The stored value. + The descriptor. + true if return only existing. + + + + Sets the property value. + + The dictionary adapter. + The key. + The value. + The descriptor. + + + + Adds a single behavior. + + The behavior. + + + + Adds the behaviors. + + The behaviors. + + + + Adds the behaviors. + + The behaviors. + + + + Copies the behaviors to the other + + + + + Copies the + + + + + Provides a generic collection that supports data binding. + + + This class wraps the CLR + in order to implement the Castle-specific . + + The type of elements in the list. + + + + Initializes a new instance of the class + using default values. + + + + + Initializes a new instance of the class + with the specified list. + + + An of items + to be contained in the . + + + + + Initializes a new instance of the class + wrapping the specified instance. + + + A + to be wrapped by the . + + + + + Contract for value matching. + + + + + Contract for dynamic value resolution. + + + + + Contract for typed dynamic value resolution. + + + + + + This is an abstract implementation + that deals with methods that can be abstracted away + from underlying implementations. + + + AbstractConfiguration makes easier to implementers + to create a new version of + + + + + Gets node attributes. + + + All attributes of the node. + + + + + Gets all child nodes. + + The of child nodes. + + + + Gets the name of the . + + + The Name of the . + + + + + Gets the value of . + + + The Value of the . + + + + + Gets the value of the node and converts it + into specified . + + The + + The Default value returned if the conversion fails. + + The Value converted into the specified type. + + + + A collection of objects. + + + + + Creates a new instance of ConfigurationCollection. + + + + + Creates a new instance of ConfigurationCollection. + + + + + is a interface encapsulating a configuration node + used to retrieve configuration values. + + + + + Gets the name of the node. + + + The Name of the node. + + + + + Gets the value of the node. + + + The Value of the node. + + + + + Gets an of + elements containing all node children. + + The Collection of child nodes. + + + + Gets an of the configuration attributes. + + + + + Gets the value of the node and converts it + into specified . + + The + + The Default value returned if the conversion fails. + + The Value converted into the specified type. + + + + Initializes a new instance of the class. + + The name. + + + + Gets the value of . + + + The Value of the . + + + + + Deserializes the specified node into an abstract representation of configuration. + + The node. + + + + If a config value is an empty string we return null, this is to keep + backward compatibility with old code + + + + + Helper class for retrieving attributes. + + + + + Gets the attribute. + + The type. + The type attribute. + + + + Gets the attributes. Does not consider inherited attributes! + + The type. + The type attributes. + + + + Gets the attribute. + + The member. + The member attribute. + + + + Gets the attributes. Does not consider inherited attributes! + + The member. + The member attributes. + + + + Gets the type attribute. + + The type. + The type attribute. + + + + Gets the type attributes. + + The type. + The type attributes. + + + + Gets the type converter. + + The member. + + + + Constant to use when making assembly internals visible to Castle.Core + [assembly: InternalsVisibleTo(CoreInternalsVisible.ToCastleCore)] + + + + + Constant to use when making assembly internals visible to proxy types generated by DynamicProxy. Required when proxying internal types. + [assembly: InternalsVisibleTo(CoreInternalsVisible.ToDynamicProxyGenAssembly2)] + + + + + Find the best available name to describe a type. + + + Usually the best name will be , but + sometimes that's null (see http://msdn.microsoft.com/en-us/library/system.type.fullname%28v=vs.110%29.aspx) + in which case the method falls back to . + + the type to name + the best name + + + + Defines that the implementation wants a + in order to + access other components. The creator must be aware + that the component might (or might not) implement + the interface. + + + Used by Castle Project components to, for example, + gather logging factories + + + + + Increments IServiceProvider with a generic service resolution operation. + + + + + This interface should be implemented by classes + that are available in a bigger context, exposing + the container to different areas in the same application. + + For example, in Web application, the (global) HttpApplication + subclasses should implement this interface to expose + the configured container + + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Gets the configuration file. + + i.e. log4net.config + + + + Gets the configuration file. + + i.e. log4net.config + + + + The Logger sending everything to the standard output streams. + This is mainly for the cases when you have a utility that + does not have a logger to supply. + + + + + Creates a new ConsoleLogger with the Level + set to LoggerLevel.Debug and the Name + set to string.Empty. + + + + + Creates a new ConsoleLogger with the Name + set to string.Empty. + + The logs Level. + + + + Creates a new ConsoleLogger with the Level + set to LoggerLevel.Debug. + + The logs Name. + + + + Creates a new ConsoleLogger. + + The logs Name. + The logs Level. + + + + A Common method to log. + + The level of logging + The name of the logger + The Message + The Exception + + + + Returns a new ConsoleLogger with the name + added after this loggers name, with a dot in between. + + The added hierarchical name. + A new ConsoleLogger. + + + + The Logger using standard Diagnostics namespace. + + + + + Creates a logger based on . + + + + + + Creates a logger based on . + + + + + + + Creates a logger based on . + + + + + + + + Interface for Context Properties implementations + + + + This interface defines a basic property get set accessor. + + + Based on the ContextPropertiesBase of log4net, by Nicko Cadell. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Provides an interface that supports and + allows the storage and retrieval of Contexts. These are supported in + both log4net and NLog. + + + + + Exposes the Global Context of the extended logger. + + + + + Exposes the Thread Context of the extended logger. + + + + + Exposes the Thread Stack of the extended logger. + + + + + Provides a factory that can produce either or + classes. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Creates a new extended logger, getting the logger name from the specified type. + + + + + Creates a new extended logger. + + + + + Manages logging. + + + This is a facade for the different logging subsystems. + It offers a simplified interface that follows IOC patterns + and a simplified priority/level/severity abstraction. + + + + + Determines if messages of priority "trace" will be logged. + + True if "trace" messages will be logged. + + + + Determines if messages of priority "debug" will be logged. + + True if "debug" messages will be logged. + + + + Determines if messages of priority "error" will be logged. + + True if "error" messages will be logged. + + + + Determines if messages of priority "fatal" will be logged. + + True if "fatal" messages will be logged. + + + + Determines if messages of priority "info" will be logged. + + True if "info" messages will be logged. + + + + Determines if messages of priority "warn" will be logged. + + True if "warn" messages will be logged. + + + + Create a new child logger. + The name of the child logger is [current-loggers-name].[passed-in-name] + + The Subname of this logger. + The New ILogger instance. + If the name has an empty element name. + + + + Logs a trace message. + + The message to log + + + + Logs a trace message with lazily constructed message. The message will be constructed only if the is true. + + + + + Logs a trace message. + + The exception to log + The message to log + + + + Logs a trace message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a trace message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a trace message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a trace message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The message to log + + + + Logs a debug message with lazily constructed message. The message will be constructed only if the is true. + + + + + Logs a debug message. + + The exception to log + The message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The message to log + + + + Logs an error message with lazily constructed message. The message will be constructed only if the is true. + + + + + Logs an error message. + + The exception to log + The message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The message to log + + + + Logs a fatal message with lazily constructed message. The message will be constructed only if the is true. + + + + + Logs a fatal message. + + The exception to log + The message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The message to log + + + + Logs a info message with lazily constructed message. The message will be constructed only if the is true. + + + + + Logs an info message. + + The exception to log + The message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The message to log + + + + Logs a warn message with lazily constructed message. The message will be constructed only if the is true. + + + + + Logs a warn message. + + The exception to log + The message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Manages the instantiation of s. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + Creates a new logger, getting the logger name from the specified type. + + + + + Creates a new logger. + + + + + The Level Filtered Logger class. This is a base class which + provides a LogLevel attribute and reroutes all functions into + one Log method. + + + + + Creates a new LevelFilteredLogger. + + + + + The LoggerLevel that this logger + will be using. Defaults to LoggerLevel.Off + + + + + The name that this logger will be using. + Defaults to string.Empty + + + + + Logs a trace message. + + The message to log + + + + Logs a trace message. + + A functor to create the message + + + + Logs a trace message. + + The exception to log + The message to log + + + + Logs a trace message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a trace message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a trace message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a trace message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The message to log + + + + Logs a debug message. + + The exception to log + The message to log + + + + Logs a debug message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a debug message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The message to log + + + + Logs an info message. + + The exception to log + The message to log + + + + Logs an info message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an info message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The message to log + + + + Logs a warn message. + + The exception to log + The message to log + + + + Logs a warn message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a warn message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The message to log + + + + Logs an error message. + + The exception to log + The message to log + + + + Logs an error message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs an error message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The message to log + + + + Logs a fatal message. + + The exception to log + The message to log + + + + Logs a fatal message. + + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Logs a fatal message. + + The exception to log + The format provider to use + Format string for the message to log + Format arguments for the message to log + + + + Determines if messages of priority "trace" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "debug" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "info" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "warn" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "error" will be logged. + + true if log level flags include the bit + + + + Determines if messages of priority "fatal" will be logged. + + true if log level flags include the bit + + + + Implementors output the log content by implementing this method only. + Note that exception can be null + + + + + Supporting Logger levels. + + + + + Logging will be off + + + + + Fatal logging level + + + + + Error logging level + + + + + Warn logging level + + + + + Info logging level + + + + + Debug logging level + + + + + Trace logging level + + + + + NullLogFactory used when logging is turned off. + + + + + Creates an instance of ILogger with the specified name. + + Name. + + + + Creates an instance of ILogger with the specified name and LoggerLevel. + + Name. + Level. + + + + The Null Logger class. This is useful for implementations where you need + to provide a logger to a utility class, but do not want any output from it. + It also helps when you have a utility that does not have a logger to supply. + + + + + Returns empty context properties. + + + + + Returns empty context properties. + + + + + Returns empty context stacks. + + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + No-op. + + false + + + + Returns this NullLogger. + + Ignored + This ILogger instance. + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + + + + No-op. + + Ignored + Ignored + Ignored + Ignored + + + + The Stream Logger class. This class can stream log information + to any stream, it is suitable for storing a log file to disk, + or to a MemoryStream for testing your components. + + + This logger is not thread safe. + + + + + Creates a new StreamLogger with default encoding + and buffer size. Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + + + Creates a new StreamLogger with default buffer size. + Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + The encoding that will be used for this stream. + + + + + + Creates a new StreamLogger. + Initial Level is set to Debug. + + + The name of the log. + + + The stream that will be used for logging, + seeking while the logger is alive + + + The encoding that will be used for this stream. + + + + The buffer size that will be used for this stream. + + + + + + Creates a new StreamLogger with + Debug as default Level. + + The name of the log. + The StreamWriter the log will write to. + + + + Creates outputting + to files. The name of the file is derived from the log name + plus the 'log' extension. + + + + + The TraceLogger sends all logging to the System.Diagnostics.TraceSource + built into the .net framework. + + + Logging can be configured in the system.diagnostics configuration + section. + + If logger doesn't find a source name with a full match it will + use source names which match the namespace partially. For example you can + configure from all castle components by adding a source name with the + name "Castle". + + If no portion of the namespace matches the source named "Default" will + be used. + + + + + Build a new trace logger based on the named TraceSource + + The name used to locate the best TraceSource. In most cases comes from the using type's fullname. + + + + Build a new trace logger based on the named TraceSource + + The name used to locate the best TraceSource. In most cases comes from the using type's fullname. + The default logging level at which this source should write messages. In almost all cases this + default value will be overridden in the config file. + + + + Create a new child logger. + The name of the child logger is [current-loggers-name].[passed-in-name] + + The Subname of this logger. + The New ILogger instance. + + + + Used to create the TraceLogger implementation of ILogger interface. See . + + + + + List of utility methods related to dynamic proxy operations + + + + + Determines whether the specified type is a proxy generated by + DynamicProxy (1 or 2). + + The type. + + true if it is a proxy; otherwise, false. + + + + + Readonly implementation of which uses an anonymous object as its source. Uses names of properties as keys, and property values as... well - values. Keys are not case sensitive. + + + + + Initializes a new instance of the class. + + The target. + + + + Gets the number of elements contained in the . + + The number of elements contained in the . + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + true if access to the is synchronized (thread safe); otherwise, false. + + + + Gets an object that can be used to synchronize access to the . + + An object that can be used to synchronize access to the . + + + + Gets a value indicating whether the object is read-only. + + true if the object is read-only; otherwise, false. + + + + Gets or sets the with the specified key. + + + + + Gets an object containing the keys of the object. + + An object containing the keys of the object. + + + + Gets an object containing the values in the object. + + An object containing the values in the object. + + + + Gets a value indicating whether the object has a fixed size. + + true if the object has a fixed size; otherwise, false. + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + is null. + An element with the same key already exists in the object. + The is read-only.-or- The has a fixed size. + + + + Removes all elements from the object. + + The object is read-only. + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + true if the contains an element with the key; otherwise, false. + + + is null. + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + is null. + The object is read-only.-or- The has a fixed size. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than zero. + + is multidimensional.-or- is equal to or greater than the length of .-or- The number of elements in the source is greater than the available space from to the end of the destination . + The type of the source cannot be cast automatically to the type of the destination . + + + + Returns an object for the object. + + + An object for the object. + + + + + Reads values of properties from and inserts them into using property names as keys. + + + + + + + + + + This returns a new stream instance each time it is called. + It is the responsibility of the caller to dispose of this stream + + + + + + + + + + + + + + + Represents a 'streamable' resource. Can + be a file, a resource in an assembly. + + + + + Only valid for resources that + can be obtained through relative paths + + + + + Returns a reader for the stream + + + It's up to the caller to dispose the reader. + + + + + Returns a reader for the stream + + + It's up to the caller to dispose the reader. + + + + + Returns an instance of + created according to the relativePath + using itself as the root. + + + + + Depicts the contract for resource factories. + + + + + Used to check whether the resource factory + is able to deal with the given resource + identifier. + + + Implementors should return true + only if the given identifier is supported + by the resource factory + + + + + Creates an instance + for the given resource identifier + + + + + Creates an instance + for the given resource identifier + + + + + Adapts a static string content as an + + + + + Enable access to files on network shares + + + + + Default implementation. + + + + + Initializes a new instance of the class based on the configuration provided in the application configuration file. + + + This constructor is based on the default configuration in the application configuration file. + + + + + This service implementation + requires a host name in order to work + + The smtp server name + + + + Gets or sets the port used to + access the SMTP server + + + + + Gets the hostname. + + The hostname. + + + + Gets or sets a value which is used to + configure if emails are going to be sent asynchronously or not. + + + + + Gets or sets a value that specifies + the amount of time after which a synchronous Send call times out. + + + + + Gets or sets a value indicating whether the email should be sent using + a secure communication channel. + + true if should use SSL; otherwise, false. + + + + Sends a message. + + If any of the parameters is null + From field + To field + e-mail's subject + message's body + + + + Sends a message. + + If the message is null + Message instance + + + + Gets or sets the domain. + + The domain. + + + + Gets or sets the name of the user. + + The name of the user. + + + + Gets or sets the password. + + The password. + + + + Configures the sender + with port information and eventual credential + informed + + Message instance + + + + Gets a value indicating whether credentials were informed. + + + if this instance has credentials; otherwise, . + + + + + Email sender abstraction. + + + + + Sends a mail message. + + From field + To field + E-mail's subject + message's body + + + + Sends a message. + + Message instance + + + + Sends multiple messages. + + List of messages + + + + Interface describing elements composing generated type + + + + + Performs some basic screening and invokes the + to select methods. + + + + + Performs some basic screening to filter out non-interceptable methods. + + + The will get invoked for non-interceptable method notification only; + it does not get asked whether or not to intercept the . + + + + + Reproduces the proxied type's non-inheritable custom attributes on the proxy type. + + + + + Adds an implementation for to the proxy type. + + + + + Encapsulates the information needed to build an attribute. + + + Arrays passed to this class as constructor arguments or property or field values become owned by this class. + They should not be mutated after creation. + + + + + Default implementation of interface producing in-memory proxy assemblies. + + + + + Initializes a new instance of the class with new . + + + + + Initializes a new instance of the class. + + The module scope for generated proxy types. + + + + Provides instructions that a user could follow to make a type or method in + visible to DynamicProxy. + The assembly containing the type or method. + Instructions that a user could follow to make a type or method visible to DynamicProxy. + + + + Creates a message to inform clients that a proxy couldn't be created due to reliance on an + inaccessible type (perhaps itself). + + the inaccessible type that prevents proxy creation + the type that couldn't be proxied + + + + Base class that exposes the common functionalities + to proxy generation. + + + + + It is safe to add mapping (no mapping for the interface exists) + + + + + Generates a parameters constructor that initializes the proxy + state with just to make it non-null. + + This constructor is important to allow proxies to be XML serializable + + + + + + Initializes a new instance of the class. + + Target element. This is either target type or target method for invocation types. + The type of the proxy. This is base type for invocation types. + The interfaces. + The options. + + + + Initializes a new instance of the class. + + Type of the target. + The interfaces. + The options. + + + + Provides appropriate Ldc.X opcode for the type of primitive value to be loaded. + + + + + Provides appropriate Ldind.X opcode for + the type of primitive value to be loaded indirectly. + + + + + Emits a load indirect opcode of the appropriate type for a value or object reference. + Pops a pointer off the evaluation stack, dereferences it and loads + a value of the specified type. + + + + + Emits a load opcode of the appropriate kind for the constant default value of a + type, such as 0 for value types and null for reference types. + + + + + Emits a store indirectopcode of the appropriate type for a value or object reference. + Pops a value of the specified type and a pointer off the evaluation stack, and + stores the value. + + + + + Wraps a reference that is passed + ByRef and provides indirect load/store support. + + + + + Provides appropriate Stind.X opcode + for the type of primitive value to be stored indirectly. + + + + + Represents the scope of uniqueness of names for types and their members + + + + + Gets a unique name based on + + Name suggested by the caller + Unique name based on . + + Implementers should provide name as closely resembling as possible. + Generally if no collision occurs it is suggested to return suggested name, otherwise append sequential suffix. + Implementers must return deterministic names, that is when is called twice + with the same suggested name, the same returned name should be provided each time. Non-deterministic return + values, like appending random suffices will break serialization of proxies. + + + + + Returns new, disposable naming scope. It is responsibility of the caller to make sure that no naming collision + with enclosing scope, or other subscopes is possible. + + New naming scope. + + + + Generates the constructor for the class that extends + + + + + + Initializes a new instance of the class. + + The event. + The add method. + The remove method. + The attributes. + + + + Returns the methods implemented by a type. Use this instead of Type.GetMethods() to work around a CLR issue + where duplicate MethodInfos are returned by Type.GetMethods() after a token of a generic type's method was loaded. + + + + + Exposes means to change target objects of proxies and invocations. + + + + + Changes the target object () of current . + + The new value of target of invocation. + + Although the method takes the actual instance must be of type assignable to , otherwise an will be thrown. + Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. + In this case last interceptor in the pipeline mustn't call or a will be throws. + Also while it's technically legal to pass proxy itself as , this would create stack overflow. + In this case last interceptor in the pipeline mustn't call or a will be throws. + + Thrown when is not assignable to the proxied type. + + + + Permanently changes the target object of the proxy. This does not affect target of the current invocation. + + The new value of target of the proxy. + + Although the method takes the actual instance must be of type assignable to proxy's target type, otherwise an will be thrown. + Also while it's technically legal to pass null reference (Nothing in Visual Basic) as , for obvious reasons Dynamic Proxy will not be able to call the intercepted method on such target. + In this case last interceptor in the pipeline mustn't call or a will be throws. + Also while it's technically legal to pass proxy itself as , this would create stack overflow. + In this case last interceptor in the pipeline mustn't call or a will be throws. + + Thrown when is not assignable to the proxied type. + + + + Provides the main DynamicProxy extension point that allows member interception. + + + + + Provides an extension point that allows proxies to choose specific interceptors on + a per method basis. + + + + + Selects the interceptors that should intercept calls to the given . + + The type of the target object. + The method that will be intercepted. + All interceptors registered with the proxy. + An array of interceptors to invoke upon calling the . + + This method is called only once per proxy instance, upon the first call to the + . Either an empty array or null are valid return values to indicate + that no interceptor should intercept calls to the method. Although it is not advised, it is + legal to return other implementations than these provided in + . + + + + + Encapsulates an invocation of a proxied method. + + + + + Gets the arguments that the has been invoked with. + + The arguments the method was invoked with. + + + + Gets the generic arguments of the method. + + The generic arguments, or null if not a generic method. + + + + Gets the object on which the invocation is performed. This is different from proxy object + because most of the time this will be the proxy target object. + + + The invocation target. + + + + Gets the representing the method being invoked on the proxy. + + The representing the method being invoked. + + + + For interface proxies, this will point to the on the target class. + + The method invocation target. + + + + Gets the proxy object on which the intercepted method is invoked. + + Proxy object on which the intercepted method is invoked. + + + + Gets or sets the return value of the method. + + The return value of the method. + + + + Gets the type of the target object for the intercepted method. + + The type of the target object. + + + + Gets the value of the argument at the specified . + + The index. + The value of the argument at the specified . + + + + Returns the concrete instantiation of the on the proxy, with any generic + parameters bound to real types. + + + The concrete instantiation of the on the proxy, or the if + not a generic method. + + + Can be slower than calling . + + + + + Returns the concrete instantiation of , with any + generic parameters bound to real types. + For interface proxies, this will point to the on the target class. + + The concrete instantiation of , or + if not a generic method. + + In debug builds this can be slower than calling . + + + + + Proceeds the call to the next interceptor in line, and ultimately to the target method. + + + Since interface proxies without a target don't have the target implementation to proceed to, + it is important, that the last interceptor does not call this method, otherwise a + will be thrown. + + + + + Returns an object describing the operation for this + at this specific point during interception. + + + + + Overrides the value of an argument at the given with the + new provided. + + + This method accepts an , however the value provided must be compatible + with the type of the argument defined on the method, otherwise an exception will be thrown. + + The index of the argument to override. + The new value for the argument. + + + + Describes the operation for an + at a specific point during interception. + + + + + Executes the operation described by this instance. + + There is no interceptor, nor a proxy target object, to proceed to. + + + + Attributes should be replicated if they are non-inheritable, + but there are some special cases where the attributes means + something to the CLR, where they should be skipped. + + + + + Returns list of all unique interfaces implemented given types, including their base interfaces. + + + + + Checks whether the specified is a delegate type (i.e. a direct subclass of ). + + + + + Abstracts the implementation of proxy type construction. + + + + + Gets or sets the that this logs to. + + + + + Gets the associated with this builder. + + The module scope associated with this builder. + + + + Creates a proxy type for given , implementing , using provided. + + The class type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified class and interfaces. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type that proxies calls to members on , implementing , using provided. + + The interface type to proxy. + Additional interface types to proxy. + Type implementing on which calls to the interface members should be intercepted. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface that 'proceeds' executions to the specified target. + Additional interfaces should be only 'mark' interfaces, that is, they should work like interface proxy without target. (See method.) + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type for given and that delegates all calls to the provided interceptors and allows interceptors to switch the actual target of invocation. + + The interface type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface(s) that delegate all executions to the specified interceptors + and uses an instance of the interface as their targets (i.e. ), rather than a class. All classes should then implement interface, + to allow interceptors to switch invocation target with instance of another type implementing called interface. + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Creates a proxy type for given that delegates all calls to the provided interceptors. + + The interface type to proxy. + Additional interface types to proxy. + The proxy generation options. + The generated proxy type. + + Implementers should return a proxy type for the specified interface and additional interfaces that delegate all executions to the specified interceptors. + + Thrown when or any of is a generic type definition. + Thrown when or any of is not public. + Note that to avoid this exception, you can mark offending type internal, and define + pointing to Castle Dynamic Proxy assembly, in assembly containing that type, if this is appropriate. + + + + + Used during the target type inspection process. Implementors have a chance to customize the + proxy generation process. + + + + + Invoked by the generation process to notify that the whole process has completed. + + + + + Invoked by the generation process to notify that a member was not marked as virtual. + + The type which declares the non-virtual member. + The non-virtual member. + + This method gives an opportunity to inspect any non-proxyable member of a type that has + been requested to be proxied, and if appropriate - throw an exception to notify the caller. + + + + + Invoked by the generation process to determine if the specified method should be proxied. + + The type which declares the given method. + The method to inspect. + True if the given method should be proxied; false otherwise. + + + + Provides proxy objects for classes and interfaces. + + + + + Gets or sets the that this log to. + + + + + Gets the proxy builder instance used to generate proxy types. + + The proxy builder. + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + Object proxying calls to members of on object. + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Exposes access to the target object and interceptors of proxy objects. + This is a DynamicProxy infrastructure interface and should not be implemented yourself. + + + + + Get the proxy target (note that null is a valid target!) + + + + + Set the proxy target. + + New proxy target. + + + + Gets the interceptors for the proxy + + + + + Because we need to cache the types based on the mixed in mixins, we do the following here: + - Get all the mixin interfaces + - Sort them by full name + - Return them by position + + The idea is to have reproducible behavior for the case that mixins are registered in different orders. + This method is here because it is required + + + + + The default file name used when the assembly is saved using . + + + + + The default assembly (simple) name used for the assemblies generated by a instance. + + + + + Initializes a new instance of the class; assemblies created by this instance will not be saved. + + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved. + + If set to true saves the generated module. + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved and what simple names are to be assigned to them. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + The simple name of the strong-named assembly generated by this . + The path and file name of the manifest module of the strong-named assembly generated by this . + The simple name of the weak-named assembly generated by this . + The path and file name of the manifest module of the weak-named assembly generated by this . + + + + Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance + should be saved and what simple names are to be assigned to them. + + If set to true saves the generated module. + If set to true disables ability to generate signed module. This should be used in cases where ran under constrained permissions. + Naming scope used to provide unique names to generated types and their members (usually via sub-scopes). + The simple name of the strong-named assembly generated by this . + The path and file name of the manifest module of the strong-named assembly generated by this . + The simple name of the weak-named assembly generated by this . + The path and file name of the manifest module of the weak-named assembly generated by this . + + + + Gets the key pair used to sign the strong-named assembly generated by this . + + + + + Gets the strong-named module generated by this scope, or if none has yet been generated. + + The strong-named module generated by this scope, or if none has yet been generated. + + + + Gets the file name of the strongly named module generated by this scope. + + The file name of the strongly named module generated by this scope. + + + + Gets the weak-named module generated by this scope, or if none has yet been generated. + + The weak-named module generated by this scope, or if none has yet been generated. + + + + Gets the file name of the weakly named module generated by this scope. + + The file name of the weakly named module generated by this scope. + + + + Gets the specified module generated by this scope, creating a new one if none has yet been generated. + + If set to true, a strong-named module is returned; otherwise, a weak-named module is returned. + A strong-named or weak-named module generated by this scope, as specified by the parameter. + + + + Gets the strong-named module generated by this scope, creating a new one if none has yet been generated. + + A strong-named module generated by this scope. + + + + Gets the weak-named module generated by this scope, creating a new one if none has yet been generated. + + A weak-named module generated by this scope. + + + + allows customization of the behavior of proxies created by + an (or proxy types generated by an ). + + You should not modify an instance of once it has been + used to create a proxy (or proxy type). + + + + + + Initializes a new instance of the class. + + The hook. + + + + Initializes a new instance of the class. + + + + + Gets or sets the that should be used during proxy type + generation. Defaults to an instance of . + + You should not modify this property once this instance + has been used to create a proxy. + + + + + + Gets or sets the that should be used by created proxies + to determine which interceptors to use for an interception. If set to + (which is the default), created proxies will not use any selector. + + You should not modify this property once this instance + has been used to create a proxy. + + + + + + Gets or sets the class type from which generated interface proxy types will be derived. + Defaults to (). + + You should not modify this property once this instance + has been used to create a proxy. + + + + + + Gets the collection of additional custom attributes that will be put on generated proxy types. + This collection is initially empty. + + You should not modify this collection once this instance + has been used to create a proxy. + + + + + + Adds a delegate type to the list of mixins that will be added to generated proxies. + That is, generated proxies will have a `Invoke` method with a signature matching that + of the specified . + + You should not call this method once this instance + has been used to create a proxy. + + + The delegate type whose `Invoke` method should be reproduced in generated proxies. + is . + is not a delegate type. + + + + Adds a delegate to be mixed into generated proxies. The + will act as the target for calls to a `Invoke` method with a signature matching that + of the delegate. + + You should not call this method once this instance + has been used to create a proxy. + + + The delegate that should act as the target for calls to `Invoke` methods with a matching signature. + is . + + + + Mixes the interfaces implemented by the specified object into + created proxies, and uses as the target for these mixed-in interfaces. + + You should not call this method once this instance + has been used to create a proxy. + + + The object that should act as the target for all of its implemented interfaces' methods. + is . + is an instance of . + + + + Provides proxy objects for classes and interfaces. + + + + + Initializes a new instance of the class. + + Proxy types builder. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + If true forces all types to be generated into an unsigned module. + + + + Gets or sets the that this log to. + + + + + Gets the proxy builder instance used to generate proxy types. + + The proxy builder. + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + Object proxying calls to members of on object. + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method generates new proxy type for each type of , which affects performance. If you don't want to proxy types differently depending on the type of the target + use method. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on object with given . + Interceptors can use interface to provide other target for method invocation than default . + + Type of the interface implemented by which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on object or alternative implementation swapped at runtime by an interceptor. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + Thrown when given does not implement interface. + Thrown when no default constructor exists on actual type of object. + Thrown when default constructor of actual type of throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of types on generated target object. + + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + As a result of that also at least one implementation must be provided. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of type on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of interfaces to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not an interface type. + + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to members of interface on target object generated at runtime with given . + + Type of the interface which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + Object proxying calls to members of and types on generated target object. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given array is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not an interface type. + + Since this method uses an empty-shell implementation of to proxy generated at runtime, the actual implementation of proxied methods must be provided by given implementations. + They are responsible for setting return value (and out parameters) on proxied methods. It is also illegal for an interceptor to call , since there's no actual implementation to proceed with. + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The target object, calls to which will be intercepted. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no parameterless constructor exists on type . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of type. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no default constructor exists on type . + Thrown when default constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates proxy object intercepting calls to virtual members of type on newly created instance of that type with given . + + Type of class which will be proxied. + Additional interface types. Calls to their members will be proxied as well. + The proxy generation options used to influence generated proxy type and object. + Arguments of constructor of type which should be used to create a new instance of that type. + The interceptors called during the invocation of proxied methods. + + New object of type proxying calls to virtual members of and types. + + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given object is a null reference (Nothing in Visual Basic). + Thrown when given or any of is a generic type definition. + Thrown when given is not a class type. + Thrown when no constructor exists on type with parameters matching . + Thrown when constructor of type throws an exception. + + This method uses implementation to generate a proxy type. + As such caller should expect any type of exception that given implementation may throw. + + + + + Creates the proxy type for class proxy with given class, implementing given and using provided . + + The base class for proxy type. + The interfaces that proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy with target for given interface, implementing given on given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + Actual type that the proxy type will encompass. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy with target interface for given interface, implementing given on given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Creates the proxy type for interface proxy without target for given interface, implementing given and using provided . + + The interface proxy type should implement. + The additional interfaces proxy type should implement. + The options for proxy generation process. + of proxy. + + + + Creates a delegate of the specified type to a suitable `Invoke` method + on the given instance. + + The proxy instance to which the delegate should be bound. + The type of delegate that should be created. + + The does not have an `Invoke` method that is compatible with + the requested type. + + + + + Creates a delegate of the specified type to a suitable `Invoke` method + on the given instance. + + The proxy instance to which the delegate should be bound. + The type of delegate that should be created. + + The does not have an `Invoke` method that is compatible with + the requested . + + + + + Checks whether the specified method is accessible to DynamicProxy. + The method to check. + true if the method is accessible to DynamicProxy, false otherwise. + + + + Checks whether the specified method is accessible to DynamicProxy. + The method to check. + If the method is accessible to DynamicProxy, null; otherwise, an explanation of why the method is not accessible. + true if the method is accessible to DynamicProxy, false otherwise. + + + + Checks whether the specified type is accessible to DynamicProxy. + The type to check. + true if the type is accessible to DynamicProxy, false otherwise. + + + + Determines whether this assembly has internals visible to DynamicProxy. + + The assembly to inspect. + + + + Checks whether the specified method is accessible to DynamicProxy. + Unlike with , the declaring type's accessibility is ignored. + + The method to check. + true if the method is accessible to DynamicProxy, false otherwise. + + + + Determines whether the specified method is internal. + + The method. + + true if the specified method is internal; otherwise, false. + + + + + Holds objects representing methods of class. + + + + diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/lib/netstandard2.1/Castle.Core.xml.meta diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/readme.txt b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/readme.txt similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/readme.txt rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/readme.txt diff --git a/Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/readme.txt.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/readme.txt.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/Castle.Core.5.1.1/readme.txt.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/Castle.Core.5.1.1/readme.txt.meta diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0.meta diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/.signature.p7s b/Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/.signature.p7s similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/.signature.p7s rename to Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/.signature.p7s diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/NSubstitute.nuspec b/Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/NSubstitute.nuspec similarity index 98% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/NSubstitute.nuspec rename to Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/NSubstitute.nuspec index b54df15..6e30229 100644 --- a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/NSubstitute.nuspec +++ b/Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/NSubstitute.nuspec @@ -1,27 +1,27 @@ - - - - NSubstitute - 5.1.0 - Anthony Egerton,David Tchepak,Alexandr Nikitin,Oleksandr Povar - BSD-3-Clause - https://licenses.nuget.org/BSD-3-Clause - icon.png - https://nsubstitute.github.io/ - NSubstitute is a friendly substitute for .NET mocking libraries. It has a simple, succinct syntax to help developers write clearer tests. NSubstitute is designed for Arrange-Act-Assert (AAA) testing and with Test Driven Development (TDD) in mind. - mocking mocks testing unit-testing TDD AAA - - - - - - - - - - - - - - + + + + NSubstitute + 5.1.0 + Anthony Egerton,David Tchepak,Alexandr Nikitin,Oleksandr Povar + BSD-3-Clause + https://licenses.nuget.org/BSD-3-Clause + icon.png + https://nsubstitute.github.io/ + NSubstitute is a friendly substitute for .NET mocking libraries. It has a simple, succinct syntax to help developers write clearer tests. NSubstitute is designed for Arrange-Act-Assert (AAA) testing and with Test Driven Development (TDD) in mind. + mocking mocks testing unit-testing TDD AAA + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/NSubstitute.nuspec.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/NSubstitute.nuspec.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/NSubstitute.nuspec.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/NSubstitute.nuspec.meta diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/icon.png b/Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/icon.png similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/icon.png rename to Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/icon.png diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/icon.png.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/icon.png.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/icon.png.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/icon.png.meta diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/lib.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/lib.meta diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/lib/netstandard2.0.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/lib/netstandard2.0.meta diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll b/Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll rename to Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.dll.meta diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml b/Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml similarity index 98% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml rename to Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml index f287fde..ea71327 100644 --- a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml +++ b/Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml @@ -1,1410 +1,1410 @@ - - - - NSubstitute - - - - - Argument matchers used for specifying calls to substitutes. - - - - - This type can be used with any matcher to match a generic type parameter. - - - If the generic type parameter has constraints, you will have to create a derived class/struct that - implements those constraints. - - - - - Match any argument value compatible with type . - - - - - Match argument that is equal to . - - - - - Match argument that satisfies . - If the throws an exception for an argument it will be treated as non-matching. - - - - - Match argument that satisfies . - If the throws an exception for an argument it will be treated as non-matching. - - - - - Invoke any argument whenever a matching call is made to the substitute. - - - - - Invoke any argument with specified argument whenever a matching call is made to the substitute. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - - Arguments to pass to delegate. - - - - Capture any argument compatible with type and use it to call the function - whenever a matching call is made to the substitute. - - - - - Capture any argument compatible with type and use it to call the function - whenever a matching call is made to the substitute. - - - - - Alternate version of matchers for compatibility with pre-C#7 compilers - which do not support ref return types. Do not use unless you are unable to use . - - For more information see Compatibility Argument - Matchers in the NSubstitute documentation. - - - - - Match any argument value compatible with type . - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Match argument that is equal to . - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Match argument that satisfies . - If the throws an exception for an argument it will be treated as non-matching. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Match argument that satisfies . - If the throws an exception for an argument it will be treated as non-matching. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified argument whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - Arguments to pass to delegate. - - - - Capture any argument compatible with type and use it to call the function - whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Capture any argument compatible with type and use it to call the function - whenever a matching call is made to the substitute. - - - - - Perform this chain of callbacks and/or always callback when called. - - - - - Perform as first in chain of callback when called. - - - - - - - Perform this action always when callback is called. - - - - - - - Throw exception returned by function as first callback in chain of callback when called. - - - - - - - Throw this exception as first callback in chain of callback when called. - - - - - - - Throw exception returned by function always when callback is called. - - The type of the exception. - The throw this. - - - - - Throw this exception always when callback is called. - - The type of the exception. - The exception. - - - - - Perform this action once in chain of called callbacks. - - - - - Keep doing this action after the other callbacks have run. - - - - - Keep throwing this exception after the other callbacks have run. - - - - - Keep throwing this exception after the other callbacks have run. - - - - - Throw exception returned by function once when called in a chain of callbacks. - - The type of the exception - Produce the exception to throw for a CallInfo - - - - Throw this exception once when called in a chain of callbacks. - - The type of the exception - The exception to throw - - - - Perform the given action for every call. - - The action to perform for every call - - - - Clear all the received calls - - - - - Clear all configured return results (including auto-substituted values). - - - - - Clear all call actions configured for this substitute (via When..Do, Arg.Invoke, and Arg.Do) - - - - - Clears all received calls and configured return values and callbacks. - - - - - Alternate version of matchers for compatibility with pre-C#7 compilers - which do not support ref return types. Do not use unless you are unable to use . - - provides a non-static version of , which can make it easier - to use from an abstract base class. You can get a reference to this instance using the static - field. - - For more information see Compatibility Argument - Matchers in the NSubstitute documentation. - - - - - Get the CompatArg instance. - - - - - Match any argument value compatible with type . - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Match argument that is equal to . - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Match argument that satisfies . - If the throws an exception for an argument it will be treated as non-matching. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Match argument that satisfies . - If the throws an exception for an argument it will be treated as non-matching. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified argument whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Invoke any argument with specified arguments whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - Arguments to pass to delegate. - - - - Capture any argument compatible with type and use it to call the function - whenever a matching call is made to the substitute. - This is provided for compatibility with older compilers -- - if possible use instead. - - - - - Capture any argument compatible with type and use it to call the function - whenever a matching call is made to the substitute. - - - - - Enqueues a matcher for the method argument in current position and returns the value which should be - passed back to the method you invoke. - - - - - Provides a specification for arguments for use with . - Can additionally implement to give descriptions when arguments do not match. - - - - - Checks whether the satisfies the condition of the matcher. - If this throws an exception the argument will be treated as non-matching. - - - - - Provides a specification for arguments for use with . - Can additionally implement to give descriptions when arguments do not match. - - Matches arguments of type or compatible type. - - - - Checks whether the satisfies the condition of the matcher. - If this throws an exception the argument will be treated as non-matching. - - - - - - - - - - - - - - - - - Performance optimization. Allows to mark call as deleted without allocating extra wrapper. - To play safely, we track ownership, so object can be re-used only once. - - - - - Wrapper to track that particular entry was deleted. - That is needed because concurrent collections don't have a Delete method. - Notice, in most cases the original instance will be used as a wrapper itself. - - - - - Gets the nth argument to this call. - - Index of argument - The value of the argument at the given index - - - - Get the arguments passed to this call. - - Array of all arguments passed to this call - - - - Gets the types of all the arguments passed to this call. - - Array of types of all arguments passed to this call - - - - Gets the argument of type `T` passed to this call. This will throw if there are no arguments - of this type, or if there is more than one matching argument. - - The type of the argument to retrieve - The argument passed to the call, or throws if there is not exactly one argument of this type - - - - Gets the argument passed to this call at the specified zero-based position, converted to type `T`. - This will throw if there are no arguments, if the argument is out of range or if it - cannot be converted to the specified type. - - The type of the argument to retrieve - The zero-based position of the argument to retrieve - The argument passed to the call, or throws if there is not exactly one argument of this type - - - - Adds a callback to execute for matching calls. - - an action to call - - - - - Creates a new container based on the current one, - which can be configured to override the existing registrations without affecting the existing container. - - - - - Create an explicit scope, so all dependencies with the lifetime - are preserved for multiple resolve requests. - - - - - Decorates the original implementation with a custom decorator. - The factory method is provided with an original implementation instance. - The lifetime of decorated implementation is used. - - - - - Tiny and very limited implementation of the DI services. - Container supports the following features required by NSubstitute: - - Registration by type with automatic constructor injection - - Registration of factory methods for the complex objects - - Support of the most required lifetimes: - - - - - - - - Immutability (via interfaces) and customization by creating a nested container - - - - - Value is created only once. - - - - - Value is created only once per scope. Allows to share the same instance across the objects in the same graph. - If no explicit scope is created, an implicit scope is created per single resolve request. - - - - - New value is created for each time. - - - - - The default NSubstitute registrations. Feel free to configure the existing container to customize - and override NSubstitute parts. - - - - - Checks if the instance can be used when a is expected. - - - - - Join the using . - - - - - Tries to cast sequence to array first before making a new array sequence. - - - - - Gets or sets whether base method should be called by default. - - - - - Specifies whether base method should be always ignored for the matching call. - If method is both explicitly excluded and included, base method is _not_ called. - - - - - Specifies whether base method should be called for the matching call. - If method is both explicitly excluded and included, base method is _not_ called. - - - - - Tests whether base method should be called for the call given the existing configuration. - - - - - Specifies whether base method should be called by default. - - - This configuration is considered only when base method exists (e.g. you created a substitute for - the AbstractType with method implementation). - - - - - Factory method which creates from the . - - - - - Describes how the does not match the condition specified by this class, or - if a detailed description can not be provided for the argument. - - - Description of the non-match, or if no description can be provided. - - - - Performance optimization. Allows to not construct if configured result doesn't depend on it. - - - - - A thread bound state of the NSubstitute context. Usually this API is used to provide the fluent - features of the NSubstitute. - - - - - Sets the route to use for the next call dispatch on the current thread for the specified . - - - - - Returns the previously configured next route and resets the stored value. - If route was configured for the different router, returns and persist the route info. - - - - - Returns the previously set arguments factory and resets the stored value. - - - - - Invokes the passed callback in a context of the specified query. - - - - - Particularly poor implementation of Maybe/Option type. - This is just filling an immediate need; use FSharpOption or XSharpx or similar for a - real implementation. - - - - - - Delegates to ThreadLocal<T>, but wraps Value property access in try/catch to swallow ObjectDisposedExceptions. - These can occur if the Value property is accessed from the finalizer thread. Because we can't detect this, we'll - just swallow the exception (the finalizer thread won't be using any of the values from thread local storage anyway). - - - - - Create a substitute for the given types. - - - - - - - - Create an instance of the given types, with calls configured to call the base implementation - where possible. Parts of the instance can be substituted using - Returns(). - - - - - - - - Perform this action when called. - - - - - - Perform this configured callback when called. - - - - - - Do not call the base implementation on future calls. For use with partial substitutes. - - - - - Call the base implementation of future calls. For use with non-partial class substitutes. - - - - - Throw the specified exception when called. - - - - - Throw an exception of the given type when called. - - - - - Throw an exception generated by the specified function when called. - - - - - Clears received calls, configured return values and/or call actions for this substitute. - - - - Specifies what to clear on the substitute. Can be combined with | to - clear multiple aspects at once. - - - - - - A hint for the NSubstitute that the subsequent method/property call is about to be configured. - For example: substitute.Configure().GetValue().Returns(1,2,3); - - NOTICE, you _don't need_ to invoke this method for the basic configuration scenarios. - Ensure you don't overuse this method and it is applied only if strictly required. - - - Due to the NSubstitute configuration syntax it is often impossible to recognise during the method call - dispatch whether this is a setup phase or a regular method call. - Usually it doesn't matter, however sometimes method invocation could lead to undesired side effects - (e.g. the previously configured value is returned, base method is invoked). In that case you might want to - provide NSubstitute with a hint that you are configuring a method, so it handles the call in configuration mode. - - - - - - Configure default return value for all methods that return the specified type - - - - - - - - - Configure default return value for all methods that return the specified type, calculated by a function - - - - - - - - - Throw an exception for this call. - - - Exception to throw - - - - - Throw an exception of the given type for this call. - - Type of exception to throw - - - - - - Throw an exception for this call, as generated by the specified function. - - - Func creating exception object - - - - - Throw an exception for this call made with any arguments. - - - Exception to throw - - - - - Throws an exception of the given type for this call made with any arguments. - - Type of exception to throw - - - - - - Throws an exception for this call made with any arguments, as generated by the specified function. - - - Func creating exception object - - - - - Throw an exception for this call. - - - Exception to throw - - - - - Throw an exception for this call. - - - Exception to throw - - - - - Throw an exception of the given type for this call. - - Type of exception to throw - - - - - - Throw an exception for this call, as generated by the specified function. - - - Func creating exception object - - - - - Throw an exception for this call, as generated by the specified function. - - - Func creating exception object - - - - - Throw an exception for this call made with any arguments. - - - Exception to throw - - - - - Throw an exception for this call made with any arguments. - - - Exception to throw - - - - - Throws an exception of the given type for this call made with any arguments. - - Type of exception to throw - - - - - - Throws an exception for this call made with any arguments, as generated by the specified function. - - - Func creating exception object - - - - - Throws an exception for this call made with any arguments, as generated by the specified function. - - - Func creating exception object - - - - - Checks this substitute has received the following call the required number of times. - - - - - - - - - Checks this substitute has received the following call with any arguments the required number of times. - - - - - - - - - Represents a quantity. Primarily used for specifying a required amount of calls to a member. - - - - - A non-zero quantity between the given minimum and maximum numbers (inclusive). - - Minimum quantity (inclusive). Must be greater than or equal to 0. - Maximum quantity (inclusive). Must be greater than minInclusive. - - - - - Returns whether the given collection contains the required quantity of items. - - - - true if the collection has the required quantity; otherwise false. - - - - Returns whether the given collections needs more items to satisfy the required quantity. - - - - true if the collection needs more items to match this quantity; otherwise false. - - - - Describe this quantity using the given noun variants. - For example, `Describe("item", "items")` could return the description: - "more than 1 item, but less than 10 items". - - - - A string describing the required quantity of items identified by the provided noun forms. - - - - Set null as returned value for this call. - - - - - Set null as returned value for this call made with any arguments. - - - - - Set null as returned value for this call. - - - - - Set null as returned value for this call made with any arguments. - - - - - Set null as returned value for this call. - - - - - Set null as returned value for this call. - - - - - Set null as returned value for this call made with any arguments. - - - - - Set null as returned value for this call made with any arguments. - - - - - - - - Set null as returned value for this call. - - - - - Set null as returned value for this call made with any arguments. - - - - - Set null as returned value for this call. - - - - - Set null as returned value for this call made with any arguments. - - - - - Switches interceptor to dispatch calls via the full pipeline. - - - - - Raise an event for an EventHandler<TEventArgs> event with the provided and . - - - - - Raise an event for an EventHandler<TEventArgs> event with the substitute as the sender and the provided . - - - - - Raise an event for an EventHandler<EventArgsT> event with the substitute as the sender - and with a default instance of . - - - - - Raise an event for an EventHandler or EventHandler<EventArgs> event with the substitute - as the sender and with empty EventArgs. - - - - - Raise an event of type with the provided arguments. If no arguments are provided - NSubstitute will try to provide reasonable defaults. - - - - - If delegate takes single parameter of array type, it's impossible to distinguish - whether input array represents all arguments, or the first argument only. - If we find that ambiguity might happen, we wrap user input in an extra array. - - - - - Asserts the calls to the substitutes contained in the given Action were - received by these substitutes in the same order. Calls to property getters are not included - in the assertion. - - Action containing calls to substitutes in the expected order - - - - Clears last call router on SubstitutionContext for routes that do not require it. - - - This is to help prevent static state bleeding over into future calls. - - - - - Create a substitute for one or more types. For example: Substitute.For<ISomeType>() - - - - - Substitute for an interface or class. - Be careful when specifying a class, as all non-virtual members will actually be executed. Only virtual members - can be recorded or have return values specified. - - The type of interface or class to substitute. - Arguments required to construct a class being substituted. Not required for interfaces or classes with default constructors. - A substitute for the interface or class. - - - - Substitute for multiple interfaces or a class that implements an interface. At most one class can be specified. - Be careful when specifying a class, as all non-virtual members will actually be executed. Only virtual members - can be recorded or have return values specified. - - The type of interface or class to substitute. - An additional interface or class (maximum of one class) the substitute should implement. - Arguments required to construct a class being substituted. Not required for interfaces or classes with default constructors. - A substitute of type T1, that also implements T2. - - - - Substitute for multiple interfaces or a class that implements multiple interfaces. At most one class can be specified. - If additional interfaces are required use the overload. - Be careful when specifying a class, as all non-virtual members will actually be executed. Only virtual members - can be recorded or have return values specified. - - The type of interface or class to substitute. - An additional interface or class (maximum of one class) the substitute should implement. - An additional interface or class (maximum of one class) the substitute should implement. - Arguments required to construct a class being substituted. Not required for interfaces or classes with default constructors. - A substitute of type T1, that also implements T2 and T3. - - - - Substitute for multiple interfaces or a class that implements multiple interfaces. At most one class can be specified. - Be careful when specifying a class, as all non-virtual members will actually be executed. Only virtual members - can be recorded or have return values specified. - - The types of interfaces or a type of class and multiple interfaces the substitute should implement. - Arguments required to construct a class being substituted. Not required for interfaces or classes with default constructors. - A substitute implementing the specified types. - - - - Create a substitute for a class that behaves just like a real instance of the class, but also - records calls made to its virtual members and allows for specific members to be substituted - by using When(() => call).DoNotCallBase() or by - setting a value to return value for that member. - - The type to substitute for parts of. Must be a class; not a delegate or interface. - - An instance of the class that will execute real methods when called, but allows parts to be selectively - overridden via `Returns` and `When..DoNotCallBase`. - - - - Checks this substitute has received the following call. - - - - - Checks this substitute has received the following call the required number of times. - - - - - Checks this substitute has not received the following call. - - - - - Checks this substitute has received the following call with any arguments. - - - - - Checks this substitute has received the following call with any arguments the required number of times. - - - - - Checks this substitute has not received the following call with any arguments. - - - - - Returns the calls received by this substitute. - - - - - Forget all the calls this substitute has received. - - - Note that this will not clear any results set up for the substitute using Returns(). - See for more options with resetting - a substitute. - - - - - Set a return value for this call. - - - Value to return - Optionally return these values next - - - - Set a return value for this call, calculated by the provided function. - - - Function to calculate the return value - Optionally use these functions next - - - - Set a return value for this call made with any arguments. - - - Value to return - Optionally return these values next - - - - Set a return value for this call made with any arguments, calculated by the provided function. - - - Function to calculate the return value - Optionally use these functions next - - - - - Set a return value for this call. The value(s) to be returned will be wrapped in Tasks. - - - Value to return. Will be wrapped in a Task - Optionally use these values next - - - - Set a return value for this call, calculated by the provided function. The value(s) to be returned will be wrapped in Tasks. - - - Function to calculate the return value - Optionally use these functions next - - - - Set a return value for this call made with any arguments. The value(s) to be returned will be wrapped in Tasks. - - - Value to return - Optionally return these values next - - - - Set a return value for this call made with any arguments, calculated by the provided function. The value(s) to be returned will be wrapped in Tasks. - - - Function to calculate the return value - Optionally use these functions next - - - - Set a return value for this call. The value(s) to be returned will be wrapped in ValueTasks. - - - Value to return. Will be wrapped in a ValueTask - Optionally use these values next - - - - Set a return value for this call, calculated by the provided function. The value(s) to be returned will be wrapped in ValueTasks. - - - Function to calculate the return value - Optionally use these functions next - - - - Set a return value for this call made with any arguments. The value(s) to be returned will be wrapped in ValueTasks. - - - Value to return - Optionally return these values next - - - - Set a return value for this call made with any arguments, calculated by the provided function. The value(s) to be returned will be wrapped in ValueTasks. - - - Function to calculate the return value - Optionally use these functions next - - - - Perform an action when this member is called. - Must be followed by to provide the callback. - - - - - Perform an action when this member is called with any arguments. - Must be followed by to provide the callback. - - - - - Perform an action when this member is called. - Must be followed by to provide the callback. - - - - - Perform an action when this member is called with any arguments. - Must be followed by to provide the callback. - - - - - Perform an action when this member is called. - Must be followed by to provide the callback. - - - - - Perform an action when this member is called with any arguments. - Must be followed by to provide the callback. - - - - Specifies that null is allowed as an input even if the corresponding type disallows it. - - - Specifies that null is disallowed as an input even if the corresponding type allows it. - - - Specifies that an output may be null even if the corresponding type disallows it. - - - Specifies that an output will not be null even if the corresponding type allows it. - - - Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it. - - - Initializes the attribute with the specified return value condition. - - The return value condition. If the method returns this value, the associated parameter may be null. - - - - Gets the return value condition. - - - Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. - - - Initializes the attribute with the specified return value condition. - - The return value condition. If the method returns this value, the associated parameter will not be null. - - - - Gets the return value condition. - - - Specifies that the output will be non-null if the named parameter is non-null. - - - Initializes the attribute with the associated parameter name. - - The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null. - - - - Gets the associated parameter name. - - - Applied to a method that will never return under any circumstance. - - - Specifies that the method will not return if the associated Boolean parameter is passed the specified value. - - - Initializes the attribute with the specified parameter value. - - The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to - the associated parameter matches this value. - - - - Gets the condition parameter value. - - - Specifies that the method or property will ensure that the listed field and property members have not-null values. - - - Initializes the attribute with a field or property member. - - The field or property member that is promised to be not-null. - - - - Initializes the attribute with the list of field and property members. - - The list of field and property members that are promised to be not-null. - - - - Gets field or property member names. - - - Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition. - - - Initializes the attribute with the specified return value condition and a field or property member. - - The return value condition. If the method returns this value, the associated parameter will not be null. - - - The field or property member that is promised to be not-null. - - - - Initializes the attribute with the specified return value condition and list of field and property members. - - The return value condition. If the method returns this value, the associated parameter will not be null. - - - The list of field and property members that are promised to be not-null. - - - - Gets the return value condition. - - - Gets field or property member names. - - - + + + + NSubstitute + + + + + Argument matchers used for specifying calls to substitutes. + + + + + This type can be used with any matcher to match a generic type parameter. + + + If the generic type parameter has constraints, you will have to create a derived class/struct that + implements those constraints. + + + + + Match any argument value compatible with type . + + + + + Match argument that is equal to . + + + + + Match argument that satisfies . + If the throws an exception for an argument it will be treated as non-matching. + + + + + Match argument that satisfies . + If the throws an exception for an argument it will be treated as non-matching. + + + + + Invoke any argument whenever a matching call is made to the substitute. + + + + + Invoke any argument with specified argument whenever a matching call is made to the substitute. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + + Arguments to pass to delegate. + + + + Capture any argument compatible with type and use it to call the function + whenever a matching call is made to the substitute. + + + + + Capture any argument compatible with type and use it to call the function + whenever a matching call is made to the substitute. + + + + + Alternate version of matchers for compatibility with pre-C#7 compilers + which do not support ref return types. Do not use unless you are unable to use . + + For more information see Compatibility Argument + Matchers in the NSubstitute documentation. + + + + + Match any argument value compatible with type . + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Match argument that is equal to . + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Match argument that satisfies . + If the throws an exception for an argument it will be treated as non-matching. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Match argument that satisfies . + If the throws an exception for an argument it will be treated as non-matching. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified argument whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + Arguments to pass to delegate. + + + + Capture any argument compatible with type and use it to call the function + whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Capture any argument compatible with type and use it to call the function + whenever a matching call is made to the substitute. + + + + + Perform this chain of callbacks and/or always callback when called. + + + + + Perform as first in chain of callback when called. + + + + + + + Perform this action always when callback is called. + + + + + + + Throw exception returned by function as first callback in chain of callback when called. + + + + + + + Throw this exception as first callback in chain of callback when called. + + + + + + + Throw exception returned by function always when callback is called. + + The type of the exception. + The throw this. + + + + + Throw this exception always when callback is called. + + The type of the exception. + The exception. + + + + + Perform this action once in chain of called callbacks. + + + + + Keep doing this action after the other callbacks have run. + + + + + Keep throwing this exception after the other callbacks have run. + + + + + Keep throwing this exception after the other callbacks have run. + + + + + Throw exception returned by function once when called in a chain of callbacks. + + The type of the exception + Produce the exception to throw for a CallInfo + + + + Throw this exception once when called in a chain of callbacks. + + The type of the exception + The exception to throw + + + + Perform the given action for every call. + + The action to perform for every call + + + + Clear all the received calls + + + + + Clear all configured return results (including auto-substituted values). + + + + + Clear all call actions configured for this substitute (via When..Do, Arg.Invoke, and Arg.Do) + + + + + Clears all received calls and configured return values and callbacks. + + + + + Alternate version of matchers for compatibility with pre-C#7 compilers + which do not support ref return types. Do not use unless you are unable to use . + + provides a non-static version of , which can make it easier + to use from an abstract base class. You can get a reference to this instance using the static + field. + + For more information see Compatibility Argument + Matchers in the NSubstitute documentation. + + + + + Get the CompatArg instance. + + + + + Match any argument value compatible with type . + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Match argument that is equal to . + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Match argument that satisfies . + If the throws an exception for an argument it will be treated as non-matching. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Match argument that satisfies . + If the throws an exception for an argument it will be treated as non-matching. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified argument whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Invoke any argument with specified arguments whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + Arguments to pass to delegate. + + + + Capture any argument compatible with type and use it to call the function + whenever a matching call is made to the substitute. + This is provided for compatibility with older compilers -- + if possible use instead. + + + + + Capture any argument compatible with type and use it to call the function + whenever a matching call is made to the substitute. + + + + + Enqueues a matcher for the method argument in current position and returns the value which should be + passed back to the method you invoke. + + + + + Provides a specification for arguments for use with . + Can additionally implement to give descriptions when arguments do not match. + + + + + Checks whether the satisfies the condition of the matcher. + If this throws an exception the argument will be treated as non-matching. + + + + + Provides a specification for arguments for use with . + Can additionally implement to give descriptions when arguments do not match. + + Matches arguments of type or compatible type. + + + + Checks whether the satisfies the condition of the matcher. + If this throws an exception the argument will be treated as non-matching. + + + + + + + + + + + + + + + + + Performance optimization. Allows to mark call as deleted without allocating extra wrapper. + To play safely, we track ownership, so object can be re-used only once. + + + + + Wrapper to track that particular entry was deleted. + That is needed because concurrent collections don't have a Delete method. + Notice, in most cases the original instance will be used as a wrapper itself. + + + + + Gets the nth argument to this call. + + Index of argument + The value of the argument at the given index + + + + Get the arguments passed to this call. + + Array of all arguments passed to this call + + + + Gets the types of all the arguments passed to this call. + + Array of types of all arguments passed to this call + + + + Gets the argument of type `T` passed to this call. This will throw if there are no arguments + of this type, or if there is more than one matching argument. + + The type of the argument to retrieve + The argument passed to the call, or throws if there is not exactly one argument of this type + + + + Gets the argument passed to this call at the specified zero-based position, converted to type `T`. + This will throw if there are no arguments, if the argument is out of range or if it + cannot be converted to the specified type. + + The type of the argument to retrieve + The zero-based position of the argument to retrieve + The argument passed to the call, or throws if there is not exactly one argument of this type + + + + Adds a callback to execute for matching calls. + + an action to call + + + + + Creates a new container based on the current one, + which can be configured to override the existing registrations without affecting the existing container. + + + + + Create an explicit scope, so all dependencies with the lifetime + are preserved for multiple resolve requests. + + + + + Decorates the original implementation with a custom decorator. + The factory method is provided with an original implementation instance. + The lifetime of decorated implementation is used. + + + + + Tiny and very limited implementation of the DI services. + Container supports the following features required by NSubstitute: + - Registration by type with automatic constructor injection + - Registration of factory methods for the complex objects + - Support of the most required lifetimes: + - + - + - + - Immutability (via interfaces) and customization by creating a nested container + + + + + Value is created only once. + + + + + Value is created only once per scope. Allows to share the same instance across the objects in the same graph. + If no explicit scope is created, an implicit scope is created per single resolve request. + + + + + New value is created for each time. + + + + + The default NSubstitute registrations. Feel free to configure the existing container to customize + and override NSubstitute parts. + + + + + Checks if the instance can be used when a is expected. + + + + + Join the using . + + + + + Tries to cast sequence to array first before making a new array sequence. + + + + + Gets or sets whether base method should be called by default. + + + + + Specifies whether base method should be always ignored for the matching call. + If method is both explicitly excluded and included, base method is _not_ called. + + + + + Specifies whether base method should be called for the matching call. + If method is both explicitly excluded and included, base method is _not_ called. + + + + + Tests whether base method should be called for the call given the existing configuration. + + + + + Specifies whether base method should be called by default. + + + This configuration is considered only when base method exists (e.g. you created a substitute for + the AbstractType with method implementation). + + + + + Factory method which creates from the . + + + + + Describes how the does not match the condition specified by this class, or + if a detailed description can not be provided for the argument. + + + Description of the non-match, or if no description can be provided. + + + + Performance optimization. Allows to not construct if configured result doesn't depend on it. + + + + + A thread bound state of the NSubstitute context. Usually this API is used to provide the fluent + features of the NSubstitute. + + + + + Sets the route to use for the next call dispatch on the current thread for the specified . + + + + + Returns the previously configured next route and resets the stored value. + If route was configured for the different router, returns and persist the route info. + + + + + Returns the previously set arguments factory and resets the stored value. + + + + + Invokes the passed callback in a context of the specified query. + + + + + Particularly poor implementation of Maybe/Option type. + This is just filling an immediate need; use FSharpOption or XSharpx or similar for a + real implementation. + + + + + + Delegates to ThreadLocal<T>, but wraps Value property access in try/catch to swallow ObjectDisposedExceptions. + These can occur if the Value property is accessed from the finalizer thread. Because we can't detect this, we'll + just swallow the exception (the finalizer thread won't be using any of the values from thread local storage anyway). + + + + + Create a substitute for the given types. + + + + + + + + Create an instance of the given types, with calls configured to call the base implementation + where possible. Parts of the instance can be substituted using + Returns(). + + + + + + + + Perform this action when called. + + + + + + Perform this configured callback when called. + + + + + + Do not call the base implementation on future calls. For use with partial substitutes. + + + + + Call the base implementation of future calls. For use with non-partial class substitutes. + + + + + Throw the specified exception when called. + + + + + Throw an exception of the given type when called. + + + + + Throw an exception generated by the specified function when called. + + + + + Clears received calls, configured return values and/or call actions for this substitute. + + + + Specifies what to clear on the substitute. Can be combined with | to + clear multiple aspects at once. + + + + + + A hint for the NSubstitute that the subsequent method/property call is about to be configured. + For example: substitute.Configure().GetValue().Returns(1,2,3); + + NOTICE, you _don't need_ to invoke this method for the basic configuration scenarios. + Ensure you don't overuse this method and it is applied only if strictly required. + + + Due to the NSubstitute configuration syntax it is often impossible to recognise during the method call + dispatch whether this is a setup phase or a regular method call. + Usually it doesn't matter, however sometimes method invocation could lead to undesired side effects + (e.g. the previously configured value is returned, base method is invoked). In that case you might want to + provide NSubstitute with a hint that you are configuring a method, so it handles the call in configuration mode. + + + + + + Configure default return value for all methods that return the specified type + + + + + + + + + Configure default return value for all methods that return the specified type, calculated by a function + + + + + + + + + Throw an exception for this call. + + + Exception to throw + + + + + Throw an exception of the given type for this call. + + Type of exception to throw + + + + + + Throw an exception for this call, as generated by the specified function. + + + Func creating exception object + + + + + Throw an exception for this call made with any arguments. + + + Exception to throw + + + + + Throws an exception of the given type for this call made with any arguments. + + Type of exception to throw + + + + + + Throws an exception for this call made with any arguments, as generated by the specified function. + + + Func creating exception object + + + + + Throw an exception for this call. + + + Exception to throw + + + + + Throw an exception for this call. + + + Exception to throw + + + + + Throw an exception of the given type for this call. + + Type of exception to throw + + + + + + Throw an exception for this call, as generated by the specified function. + + + Func creating exception object + + + + + Throw an exception for this call, as generated by the specified function. + + + Func creating exception object + + + + + Throw an exception for this call made with any arguments. + + + Exception to throw + + + + + Throw an exception for this call made with any arguments. + + + Exception to throw + + + + + Throws an exception of the given type for this call made with any arguments. + + Type of exception to throw + + + + + + Throws an exception for this call made with any arguments, as generated by the specified function. + + + Func creating exception object + + + + + Throws an exception for this call made with any arguments, as generated by the specified function. + + + Func creating exception object + + + + + Checks this substitute has received the following call the required number of times. + + + + + + + + + Checks this substitute has received the following call with any arguments the required number of times. + + + + + + + + + Represents a quantity. Primarily used for specifying a required amount of calls to a member. + + + + + A non-zero quantity between the given minimum and maximum numbers (inclusive). + + Minimum quantity (inclusive). Must be greater than or equal to 0. + Maximum quantity (inclusive). Must be greater than minInclusive. + + + + + Returns whether the given collection contains the required quantity of items. + + + + true if the collection has the required quantity; otherwise false. + + + + Returns whether the given collections needs more items to satisfy the required quantity. + + + + true if the collection needs more items to match this quantity; otherwise false. + + + + Describe this quantity using the given noun variants. + For example, `Describe("item", "items")` could return the description: + "more than 1 item, but less than 10 items". + + + + A string describing the required quantity of items identified by the provided noun forms. + + + + Set null as returned value for this call. + + + + + Set null as returned value for this call made with any arguments. + + + + + Set null as returned value for this call. + + + + + Set null as returned value for this call made with any arguments. + + + + + Set null as returned value for this call. + + + + + Set null as returned value for this call. + + + + + Set null as returned value for this call made with any arguments. + + + + + Set null as returned value for this call made with any arguments. + + + + + + + + Set null as returned value for this call. + + + + + Set null as returned value for this call made with any arguments. + + + + + Set null as returned value for this call. + + + + + Set null as returned value for this call made with any arguments. + + + + + Switches interceptor to dispatch calls via the full pipeline. + + + + + Raise an event for an EventHandler<TEventArgs> event with the provided and . + + + + + Raise an event for an EventHandler<TEventArgs> event with the substitute as the sender and the provided . + + + + + Raise an event for an EventHandler<EventArgsT> event with the substitute as the sender + and with a default instance of . + + + + + Raise an event for an EventHandler or EventHandler<EventArgs> event with the substitute + as the sender and with empty EventArgs. + + + + + Raise an event of type with the provided arguments. If no arguments are provided + NSubstitute will try to provide reasonable defaults. + + + + + If delegate takes single parameter of array type, it's impossible to distinguish + whether input array represents all arguments, or the first argument only. + If we find that ambiguity might happen, we wrap user input in an extra array. + + + + + Asserts the calls to the substitutes contained in the given Action were + received by these substitutes in the same order. Calls to property getters are not included + in the assertion. + + Action containing calls to substitutes in the expected order + + + + Clears last call router on SubstitutionContext for routes that do not require it. + + + This is to help prevent static state bleeding over into future calls. + + + + + Create a substitute for one or more types. For example: Substitute.For<ISomeType>() + + + + + Substitute for an interface or class. + Be careful when specifying a class, as all non-virtual members will actually be executed. Only virtual members + can be recorded or have return values specified. + + The type of interface or class to substitute. + Arguments required to construct a class being substituted. Not required for interfaces or classes with default constructors. + A substitute for the interface or class. + + + + Substitute for multiple interfaces or a class that implements an interface. At most one class can be specified. + Be careful when specifying a class, as all non-virtual members will actually be executed. Only virtual members + can be recorded or have return values specified. + + The type of interface or class to substitute. + An additional interface or class (maximum of one class) the substitute should implement. + Arguments required to construct a class being substituted. Not required for interfaces or classes with default constructors. + A substitute of type T1, that also implements T2. + + + + Substitute for multiple interfaces or a class that implements multiple interfaces. At most one class can be specified. + If additional interfaces are required use the overload. + Be careful when specifying a class, as all non-virtual members will actually be executed. Only virtual members + can be recorded or have return values specified. + + The type of interface or class to substitute. + An additional interface or class (maximum of one class) the substitute should implement. + An additional interface or class (maximum of one class) the substitute should implement. + Arguments required to construct a class being substituted. Not required for interfaces or classes with default constructors. + A substitute of type T1, that also implements T2 and T3. + + + + Substitute for multiple interfaces or a class that implements multiple interfaces. At most one class can be specified. + Be careful when specifying a class, as all non-virtual members will actually be executed. Only virtual members + can be recorded or have return values specified. + + The types of interfaces or a type of class and multiple interfaces the substitute should implement. + Arguments required to construct a class being substituted. Not required for interfaces or classes with default constructors. + A substitute implementing the specified types. + + + + Create a substitute for a class that behaves just like a real instance of the class, but also + records calls made to its virtual members and allows for specific members to be substituted + by using When(() => call).DoNotCallBase() or by + setting a value to return value for that member. + + The type to substitute for parts of. Must be a class; not a delegate or interface. + + An instance of the class that will execute real methods when called, but allows parts to be selectively + overridden via `Returns` and `When..DoNotCallBase`. + + + + Checks this substitute has received the following call. + + + + + Checks this substitute has received the following call the required number of times. + + + + + Checks this substitute has not received the following call. + + + + + Checks this substitute has received the following call with any arguments. + + + + + Checks this substitute has received the following call with any arguments the required number of times. + + + + + Checks this substitute has not received the following call with any arguments. + + + + + Returns the calls received by this substitute. + + + + + Forget all the calls this substitute has received. + + + Note that this will not clear any results set up for the substitute using Returns(). + See for more options with resetting + a substitute. + + + + + Set a return value for this call. + + + Value to return + Optionally return these values next + + + + Set a return value for this call, calculated by the provided function. + + + Function to calculate the return value + Optionally use these functions next + + + + Set a return value for this call made with any arguments. + + + Value to return + Optionally return these values next + + + + Set a return value for this call made with any arguments, calculated by the provided function. + + + Function to calculate the return value + Optionally use these functions next + + + + + Set a return value for this call. The value(s) to be returned will be wrapped in Tasks. + + + Value to return. Will be wrapped in a Task + Optionally use these values next + + + + Set a return value for this call, calculated by the provided function. The value(s) to be returned will be wrapped in Tasks. + + + Function to calculate the return value + Optionally use these functions next + + + + Set a return value for this call made with any arguments. The value(s) to be returned will be wrapped in Tasks. + + + Value to return + Optionally return these values next + + + + Set a return value for this call made with any arguments, calculated by the provided function. The value(s) to be returned will be wrapped in Tasks. + + + Function to calculate the return value + Optionally use these functions next + + + + Set a return value for this call. The value(s) to be returned will be wrapped in ValueTasks. + + + Value to return. Will be wrapped in a ValueTask + Optionally use these values next + + + + Set a return value for this call, calculated by the provided function. The value(s) to be returned will be wrapped in ValueTasks. + + + Function to calculate the return value + Optionally use these functions next + + + + Set a return value for this call made with any arguments. The value(s) to be returned will be wrapped in ValueTasks. + + + Value to return + Optionally return these values next + + + + Set a return value for this call made with any arguments, calculated by the provided function. The value(s) to be returned will be wrapped in ValueTasks. + + + Function to calculate the return value + Optionally use these functions next + + + + Perform an action when this member is called. + Must be followed by to provide the callback. + + + + + Perform an action when this member is called with any arguments. + Must be followed by to provide the callback. + + + + + Perform an action when this member is called. + Must be followed by to provide the callback. + + + + + Perform an action when this member is called with any arguments. + Must be followed by to provide the callback. + + + + + Perform an action when this member is called. + Must be followed by to provide the callback. + + + + + Perform an action when this member is called with any arguments. + Must be followed by to provide the callback. + + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + Specifies that null is disallowed as an input even if the corresponding type allows it. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter may be null. + + + + Gets the return value condition. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that the output will be non-null if the named parameter is non-null. + + + Initializes the attribute with the associated parameter name. + + The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null. + + + + Gets the associated parameter name. + + + Applied to a method that will never return under any circumstance. + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + Initializes the attribute with the specified parameter value. + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + Specifies that the method or property will ensure that the listed field and property members have not-null values. + + + Initializes the attribute with a field or property member. + + The field or property member that is promised to be not-null. + + + + Initializes the attribute with the list of field and property members. + + The list of field and property members that are promised to be not-null. + + + + Gets field or property member names. + + + Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition. + + + Initializes the attribute with the specified return value condition and a field or property member. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + The field or property member that is promised to be not-null. + + + + Initializes the attribute with the specified return value condition and list of field and property members. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + The list of field and property members that are promised to be not-null. + + + + Gets the return value condition. + + + Gets field or property member names. + + + diff --git a/Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/NSubstitute.5.1.0/lib/netstandard2.0/NSubstitute.xml.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/AssetModBlock.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/AssetModBlock.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock/EditorQuit.cs b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/AssetModBlock/EditorQuit.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock/EditorQuit.cs rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/AssetModBlock/EditorQuit.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock/EditorQuit.cs.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/AssetModBlock/EditorQuit.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock/EditorQuit.cs.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/AssetModBlock/EditorQuit.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/AssetModBlock/ParrelSyncAssetModificationProcessor.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ClonesManager.cs b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ClonesManager.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ClonesManager.cs rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ClonesManager.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ClonesManager.cs.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ClonesManager.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ClonesManager.cs.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ClonesManager.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ClonesManagerWindow.cs b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ClonesManagerWindow.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ClonesManagerWindow.cs rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ClonesManagerWindow.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ClonesManagerWindow.cs.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ClonesManagerWindow.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ClonesManagerWindow.cs.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ClonesManagerWindow.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ExternalLinks.cs b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ExternalLinks.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ExternalLinks.cs rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ExternalLinks.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ExternalLinks.cs.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ExternalLinks.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ExternalLinks.cs.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ExternalLinks.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/FileUtilities.cs b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/FileUtilities.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/FileUtilities.cs rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/FileUtilities.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/FileUtilities.cs.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/FileUtilities.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/FileUtilities.cs.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/FileUtilities.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/NonCore.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/NonCore.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/NonCore/AskFeedbackDialog.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore/OtherMenuItem.cs b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/NonCore/OtherMenuItem.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore/OtherMenuItem.cs rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/NonCore/OtherMenuItem.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore/OtherMenuItem.cs.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/NonCore/OtherMenuItem.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/NonCore/OtherMenuItem.cs.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/NonCore/OtherMenuItem.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ParrelSyncProjectSettings.cs b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ParrelSyncProjectSettings.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ParrelSyncProjectSettings.cs rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ParrelSyncProjectSettings.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ParrelSyncProjectSettings.cs.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ParrelSyncProjectSettings.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ParrelSyncProjectSettings.cs.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ParrelSyncProjectSettings.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/Preferences.cs b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/Preferences.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/Preferences.cs rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/Preferences.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/Preferences.cs.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/Preferences.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/Preferences.cs.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/Preferences.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/Project.cs b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/Project.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/Project.cs rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/Project.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/Project.cs.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/Project.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/Project.cs.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/Project.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/UpdateChecker.cs b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/UpdateChecker.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/UpdateChecker.cs rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/UpdateChecker.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/UpdateChecker.cs.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/UpdateChecker.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/UpdateChecker.cs.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/UpdateChecker.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Editor/ValidateCopiedFoldersIntegrity.cs.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Plugins.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Plugins.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Plugins.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Plugins.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Plugins/ParrelSync.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Plugins/ParrelSync.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Plugins/ParrelSync.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Plugins/ParrelSync.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Plugins/ParrelSync/ScriptableObjects.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Plugins/ParrelSync/ScriptableObjects.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/Plugins/ParrelSync/ScriptableObjects/ParrelSyncProjectSettings.asset.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/package.json b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/package.json similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/package.json rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/package.json diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/package.json.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/package.json.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/package.json.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/package.json.meta diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/projectCloner.asmdef b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/projectCloner.asmdef similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/projectCloner.asmdef rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/projectCloner.asmdef diff --git a/Assets/PlayroomKit/dependencies/ParrelSync/projectCloner.asmdef.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/projectCloner.asmdef.meta similarity index 100% rename from Assets/PlayroomKit/dependencies/ParrelSync/projectCloner.asmdef.meta rename to Packages/com.playroomkit.sdk/Runtime/Plugins/ParrelSync/projectCloner.asmdef.meta diff --git a/Packages/com.playroomkit.sdk/Runtime/Plugins/Playroom.meta b/Packages/com.playroomkit.sdk/Runtime/Plugins/Playroom.meta new file mode 100644 index 0000000..835d174 --- /dev/null +++ b/Packages/com.playroomkit.sdk/Runtime/Plugins/Playroom.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 97a71d3bded0186499ecc40e28bdfdb4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.playroomkit.sdk/Runtime/Plugins/Playroom/PlayroomFrameworks.jspre b/Packages/com.playroomkit.sdk/Runtime/Plugins/Playroom/PlayroomFrameworks.jspre new file mode 100644 index 0000000..c8aba98 --- /dev/null +++ b/Packages/com.playroomkit.sdk/Runtime/Plugins/Playroom/PlayroomFrameworks.jspre @@ -0,0 +1,52628 @@ +(function(factory) { + typeof define === "function" && define.amd ? define(factory) : factory(); +})(function() { + "use strict"; + function getDefaultExportFromCjs$1(x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; + } + var react = { exports: {} }; + var react_production = {}; + /** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + var hasRequiredReact_production; + function requireReact_production() { + if (hasRequiredReact_production) return react_production; + hasRequiredReact_production = 1; + var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = Symbol.for("react.profiler"), REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"), REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), MAYBE_ITERATOR_SYMBOL = Symbol.iterator; + function getIteratorFn(maybeIterable) { + if (null === maybeIterable || "object" !== typeof maybeIterable) return null; + maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable["@@iterator"]; + return "function" === typeof maybeIterable ? maybeIterable : null; + } + var ReactNoopUpdateQueue = { + isMounted: function() { + return false; + }, + enqueueForceUpdate: function() { + }, + enqueueReplaceState: function() { + }, + enqueueSetState: function() { + } + }, assign = Object.assign, emptyObject = {}; + function Component(props, context, updater) { + this.props = props; + this.context = context; + this.refs = emptyObject; + this.updater = updater || ReactNoopUpdateQueue; + } + Component.prototype.isReactComponent = {}; + Component.prototype.setState = function(partialState, callback) { + if ("object" !== typeof partialState && "function" !== typeof partialState && null != partialState) + throw Error( + "takes an object of state variables to update or a function which returns an object of state variables." + ); + this.updater.enqueueSetState(this, partialState, callback, "setState"); + }; + Component.prototype.forceUpdate = function(callback) { + this.updater.enqueueForceUpdate(this, callback, "forceUpdate"); + }; + function ComponentDummy() { + } + ComponentDummy.prototype = Component.prototype; + function PureComponent(props, context, updater) { + this.props = props; + this.context = context; + this.refs = emptyObject; + this.updater = updater || ReactNoopUpdateQueue; + } + var pureComponentPrototype = PureComponent.prototype = new ComponentDummy(); + pureComponentPrototype.constructor = PureComponent; + assign(pureComponentPrototype, Component.prototype); + pureComponentPrototype.isPureReactComponent = true; + var isArrayImpl = Array.isArray; + function noop() { + } + var ReactSharedInternals = { H: null, A: null, T: null, S: null }, hasOwnProperty = Object.prototype.hasOwnProperty; + function ReactElement(type, key, props) { + var refProp = props.ref; + return { + $$typeof: REACT_ELEMENT_TYPE, + type, + key, + ref: void 0 !== refProp ? refProp : null, + props + }; + } + function cloneAndReplaceKey(oldElement, newKey) { + return ReactElement(oldElement.type, newKey, oldElement.props); + } + function isValidElement(object) { + return "object" === typeof object && null !== object && object.$$typeof === REACT_ELEMENT_TYPE; + } + function escape2(key) { + var escaperLookup = { "=": "=0", ":": "=2" }; + return "$" + key.replace(/[=:]/g, function(match) { + return escaperLookup[match]; + }); + } + var userProvidedKeyEscapeRegex = /\/+/g; + function getElementKey(element, index2) { + return "object" === typeof element && null !== element && null != element.key ? escape2("" + element.key) : index2.toString(36); + } + function resolveThenable(thenable) { + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + default: + switch ("string" === typeof thenable.status ? thenable.then(noop, noop) : (thenable.status = "pending", thenable.then( + function(fulfilledValue) { + "pending" === thenable.status && (thenable.status = "fulfilled", thenable.value = fulfilledValue); + }, + function(error) { + "pending" === thenable.status && (thenable.status = "rejected", thenable.reason = error); + } + )), thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + } + } + throw thenable; + } + function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) { + var type = typeof children; + if ("undefined" === type || "boolean" === type) children = null; + var invokeCallback = false; + if (null === children) invokeCallback = true; + else + switch (type) { + case "bigint": + case "string": + case "number": + invokeCallback = true; + break; + case "object": + switch (children.$$typeof) { + case REACT_ELEMENT_TYPE: + case REACT_PORTAL_TYPE: + invokeCallback = true; + break; + case REACT_LAZY_TYPE: + return invokeCallback = children._init, mapIntoArray( + invokeCallback(children._payload), + array, + escapedPrefix, + nameSoFar, + callback + ); + } + } + if (invokeCallback) + return callback = callback(children), invokeCallback = "" === nameSoFar ? "." + getElementKey(children, 0) : nameSoFar, isArrayImpl(callback) ? (escapedPrefix = "", null != invokeCallback && (escapedPrefix = invokeCallback.replace(userProvidedKeyEscapeRegex, "$&/") + "/"), mapIntoArray(callback, array, escapedPrefix, "", function(c) { + return c; + })) : null != callback && (isValidElement(callback) && (callback = cloneAndReplaceKey( + callback, + escapedPrefix + (null == callback.key || children && children.key === callback.key ? "" : ("" + callback.key).replace( + userProvidedKeyEscapeRegex, + "$&/" + ) + "/") + invokeCallback + )), array.push(callback)), 1; + invokeCallback = 0; + var nextNamePrefix = "" === nameSoFar ? "." : nameSoFar + ":"; + if (isArrayImpl(children)) + for (var i = 0; i < children.length; i++) + nameSoFar = children[i], type = nextNamePrefix + getElementKey(nameSoFar, i), invokeCallback += mapIntoArray( + nameSoFar, + array, + escapedPrefix, + type, + callback + ); + else if (i = getIteratorFn(children), "function" === typeof i) + for (children = i.call(children), i = 0; !(nameSoFar = children.next()).done; ) + nameSoFar = nameSoFar.value, type = nextNamePrefix + getElementKey(nameSoFar, i++), invokeCallback += mapIntoArray( + nameSoFar, + array, + escapedPrefix, + type, + callback + ); + else if ("object" === type) { + if ("function" === typeof children.then) + return mapIntoArray( + resolveThenable(children), + array, + escapedPrefix, + nameSoFar, + callback + ); + array = String(children); + throw Error( + "Objects are not valid as a React child (found: " + ("[object Object]" === array ? "object with keys {" + Object.keys(children).join(", ") + "}" : array) + "). If you meant to render a collection of children, use an array instead." + ); + } + return invokeCallback; + } + function mapChildren(children, func, context) { + if (null == children) return children; + var result = [], count = 0; + mapIntoArray(children, result, "", "", function(child) { + return func.call(context, child, count++); + }); + return result; + } + function lazyInitializer(payload) { + if (-1 === payload._status) { + var ctor = payload._result; + ctor = ctor(); + ctor.then( + function(moduleObject) { + if (0 === payload._status || -1 === payload._status) + payload._status = 1, payload._result = moduleObject; + }, + function(error) { + if (0 === payload._status || -1 === payload._status) + payload._status = 2, payload._result = error; + } + ); + -1 === payload._status && (payload._status = 0, payload._result = ctor); + } + if (1 === payload._status) return payload._result.default; + throw payload._result; + } + var reportGlobalError = "function" === typeof reportError ? reportError : function(error) { + if ("object" === typeof window && "function" === typeof window.ErrorEvent) { + var event = new window.ErrorEvent("error", { + bubbles: true, + cancelable: true, + message: "object" === typeof error && null !== error && "string" === typeof error.message ? String(error.message) : String(error), + error + }); + if (!window.dispatchEvent(event)) return; + } else if ("object" === typeof process && "function" === typeof process.emit) { + process.emit("uncaughtException", error); + return; + } + console.error(error); + }, Children = { + map: mapChildren, + forEach: function(children, forEachFunc, forEachContext) { + mapChildren( + children, + function() { + forEachFunc.apply(this, arguments); + }, + forEachContext + ); + }, + count: function(children) { + var n = 0; + mapChildren(children, function() { + n++; + }); + return n; + }, + toArray: function(children) { + return mapChildren(children, function(child) { + return child; + }) || []; + }, + only: function(children) { + if (!isValidElement(children)) + throw Error( + "React.Children.only expected to receive a single React element child." + ); + return children; + } + }; + react_production.Activity = REACT_ACTIVITY_TYPE; + react_production.Children = Children; + react_production.Component = Component; + react_production.Fragment = REACT_FRAGMENT_TYPE; + react_production.Profiler = REACT_PROFILER_TYPE; + react_production.PureComponent = PureComponent; + react_production.StrictMode = REACT_STRICT_MODE_TYPE; + react_production.Suspense = REACT_SUSPENSE_TYPE; + react_production.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = ReactSharedInternals; + react_production.__COMPILER_RUNTIME = { + __proto__: null, + c: function(size) { + return ReactSharedInternals.H.useMemoCache(size); + } + }; + react_production.cache = function(fn2) { + return function() { + return fn2.apply(null, arguments); + }; + }; + react_production.cacheSignal = function() { + return null; + }; + react_production.cloneElement = function(element, config2, children) { + if (null === element || void 0 === element) + throw Error( + "The argument must be a React element, but you passed " + element + "." + ); + var props = assign({}, element.props), key = element.key; + if (null != config2) + for (propName in void 0 !== config2.key && (key = "" + config2.key), config2) + !hasOwnProperty.call(config2, propName) || "key" === propName || "__self" === propName || "__source" === propName || "ref" === propName && void 0 === config2.ref || (props[propName] = config2[propName]); + var propName = arguments.length - 2; + if (1 === propName) props.children = children; + else if (1 < propName) { + for (var childArray = Array(propName), i = 0; i < propName; i++) + childArray[i] = arguments[i + 2]; + props.children = childArray; + } + return ReactElement(element.type, key, props); + }; + react_production.createContext = function(defaultValue) { + defaultValue = { + $$typeof: REACT_CONTEXT_TYPE, + _currentValue: defaultValue, + _currentValue2: defaultValue, + _threadCount: 0, + Provider: null, + Consumer: null + }; + defaultValue.Provider = defaultValue; + defaultValue.Consumer = { + $$typeof: REACT_CONSUMER_TYPE, + _context: defaultValue + }; + return defaultValue; + }; + react_production.createElement = function(type, config2, children) { + var propName, props = {}, key = null; + if (null != config2) + for (propName in void 0 !== config2.key && (key = "" + config2.key), config2) + hasOwnProperty.call(config2, propName) && "key" !== propName && "__self" !== propName && "__source" !== propName && (props[propName] = config2[propName]); + var childrenLength = arguments.length - 2; + if (1 === childrenLength) props.children = children; + else if (1 < childrenLength) { + for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++) + childArray[i] = arguments[i + 2]; + props.children = childArray; + } + if (type && type.defaultProps) + for (propName in childrenLength = type.defaultProps, childrenLength) + void 0 === props[propName] && (props[propName] = childrenLength[propName]); + return ReactElement(type, key, props); + }; + react_production.createRef = function() { + return { current: null }; + }; + react_production.forwardRef = function(render) { + return { $$typeof: REACT_FORWARD_REF_TYPE, render }; + }; + react_production.isValidElement = isValidElement; + react_production.lazy = function(ctor) { + return { + $$typeof: REACT_LAZY_TYPE, + _payload: { _status: -1, _result: ctor }, + _init: lazyInitializer + }; + }; + react_production.memo = function(type, compare) { + return { + $$typeof: REACT_MEMO_TYPE, + type, + compare: void 0 === compare ? null : compare + }; + }; + react_production.startTransition = function(scope) { + var prevTransition = ReactSharedInternals.T, currentTransition = {}; + ReactSharedInternals.T = currentTransition; + try { + var returnValue = scope(), onStartTransitionFinish = ReactSharedInternals.S; + null !== onStartTransitionFinish && onStartTransitionFinish(currentTransition, returnValue); + "object" === typeof returnValue && null !== returnValue && "function" === typeof returnValue.then && returnValue.then(noop, reportGlobalError); + } catch (error) { + reportGlobalError(error); + } finally { + null !== prevTransition && null !== currentTransition.types && (prevTransition.types = currentTransition.types), ReactSharedInternals.T = prevTransition; + } + }; + react_production.unstable_useCacheRefresh = function() { + return ReactSharedInternals.H.useCacheRefresh(); + }; + react_production.use = function(usable) { + return ReactSharedInternals.H.use(usable); + }; + react_production.useActionState = function(action, initialState, permalink) { + return ReactSharedInternals.H.useActionState(action, initialState, permalink); + }; + react_production.useCallback = function(callback, deps) { + return ReactSharedInternals.H.useCallback(callback, deps); + }; + react_production.useContext = function(Context) { + return ReactSharedInternals.H.useContext(Context); + }; + react_production.useDebugValue = function() { + }; + react_production.useDeferredValue = function(value, initialValue) { + return ReactSharedInternals.H.useDeferredValue(value, initialValue); + }; + react_production.useEffect = function(create, deps) { + return ReactSharedInternals.H.useEffect(create, deps); + }; + react_production.useEffectEvent = function(callback) { + return ReactSharedInternals.H.useEffectEvent(callback); + }; + react_production.useId = function() { + return ReactSharedInternals.H.useId(); + }; + react_production.useImperativeHandle = function(ref, create, deps) { + return ReactSharedInternals.H.useImperativeHandle(ref, create, deps); + }; + react_production.useInsertionEffect = function(create, deps) { + return ReactSharedInternals.H.useInsertionEffect(create, deps); + }; + react_production.useLayoutEffect = function(create, deps) { + return ReactSharedInternals.H.useLayoutEffect(create, deps); + }; + react_production.useMemo = function(create, deps) { + return ReactSharedInternals.H.useMemo(create, deps); + }; + react_production.useOptimistic = function(passthrough, reducer) { + return ReactSharedInternals.H.useOptimistic(passthrough, reducer); + }; + react_production.useReducer = function(reducer, initialArg, init) { + return ReactSharedInternals.H.useReducer(reducer, initialArg, init); + }; + react_production.useRef = function(initialValue) { + return ReactSharedInternals.H.useRef(initialValue); + }; + react_production.useState = function(initialState) { + return ReactSharedInternals.H.useState(initialState); + }; + react_production.useSyncExternalStore = function(subscribe, getSnapshot, getServerSnapshot) { + return ReactSharedInternals.H.useSyncExternalStore( + subscribe, + getSnapshot, + getServerSnapshot + ); + }; + react_production.useTransition = function() { + return ReactSharedInternals.H.useTransition(); + }; + react_production.version = "19.2.4"; + return react_production; + } + { + react.exports = requireReact_production(); + } + var reactExports = react.exports; + const U = /* @__PURE__ */ getDefaultExportFromCjs$1(reactExports); + var reactDom = { exports: {} }; + var reactDom_production = {}; + /** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + var hasRequiredReactDom_production; + function requireReactDom_production() { + if (hasRequiredReactDom_production) return reactDom_production; + hasRequiredReactDom_production = 1; + var React = reactExports; + function formatProdErrorMessage(code) { + var url = "https://react.dev/errors/" + code; + if (1 < arguments.length) { + url += "?args[]=" + encodeURIComponent(arguments[1]); + for (var i = 2; i < arguments.length; i++) + url += "&args[]=" + encodeURIComponent(arguments[i]); + } + return "Minified React error #" + code + "; visit " + url + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings."; + } + function noop() { + } + var Internals = { + d: { + f: noop, + r: function() { + throw Error(formatProdErrorMessage(522)); + }, + D: noop, + C: noop, + L: noop, + m: noop, + X: noop, + S: noop, + M: noop + }, + p: 0, + findDOMNode: null + }, REACT_PORTAL_TYPE = Symbol.for("react.portal"); + function createPortal$1(children, containerInfo, implementation) { + var key = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null; + return { + $$typeof: REACT_PORTAL_TYPE, + key: null == key ? null : "" + key, + children, + containerInfo, + implementation + }; + } + var ReactSharedInternals = React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE; + function getCrossOriginStringAs(as2, input) { + if ("font" === as2) return ""; + if ("string" === typeof input) + return "use-credentials" === input ? input : ""; + } + reactDom_production.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = Internals; + reactDom_production.createPortal = function(children, container) { + var key = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null; + if (!container || 1 !== container.nodeType && 9 !== container.nodeType && 11 !== container.nodeType) + throw Error(formatProdErrorMessage(299)); + return createPortal$1(children, container, null, key); + }; + reactDom_production.flushSync = function(fn2) { + var previousTransition = ReactSharedInternals.T, previousUpdatePriority = Internals.p; + try { + if (ReactSharedInternals.T = null, Internals.p = 2, fn2) return fn2(); + } finally { + ReactSharedInternals.T = previousTransition, Internals.p = previousUpdatePriority, Internals.d.f(); + } + }; + reactDom_production.preconnect = function(href, options) { + "string" === typeof href && (options ? (options = options.crossOrigin, options = "string" === typeof options ? "use-credentials" === options ? options : "" : void 0) : options = null, Internals.d.C(href, options)); + }; + reactDom_production.prefetchDNS = function(href) { + "string" === typeof href && Internals.d.D(href); + }; + reactDom_production.preinit = function(href, options) { + if ("string" === typeof href && options && "string" === typeof options.as) { + var as2 = options.as, crossOrigin = getCrossOriginStringAs(as2, options.crossOrigin), integrity = "string" === typeof options.integrity ? options.integrity : void 0, fetchPriority = "string" === typeof options.fetchPriority ? options.fetchPriority : void 0; + "style" === as2 ? Internals.d.S( + href, + "string" === typeof options.precedence ? options.precedence : void 0, + { + crossOrigin, + integrity, + fetchPriority + } + ) : "script" === as2 && Internals.d.X(href, { + crossOrigin, + integrity, + fetchPriority, + nonce: "string" === typeof options.nonce ? options.nonce : void 0 + }); + } + }; + reactDom_production.preinitModule = function(href, options) { + if ("string" === typeof href) + if ("object" === typeof options && null !== options) { + if (null == options.as || "script" === options.as) { + var crossOrigin = getCrossOriginStringAs( + options.as, + options.crossOrigin + ); + Internals.d.M(href, { + crossOrigin, + integrity: "string" === typeof options.integrity ? options.integrity : void 0, + nonce: "string" === typeof options.nonce ? options.nonce : void 0 + }); + } + } else null == options && Internals.d.M(href); + }; + reactDom_production.preload = function(href, options) { + if ("string" === typeof href && "object" === typeof options && null !== options && "string" === typeof options.as) { + var as2 = options.as, crossOrigin = getCrossOriginStringAs(as2, options.crossOrigin); + Internals.d.L(href, as2, { + crossOrigin, + integrity: "string" === typeof options.integrity ? options.integrity : void 0, + nonce: "string" === typeof options.nonce ? options.nonce : void 0, + type: "string" === typeof options.type ? options.type : void 0, + fetchPriority: "string" === typeof options.fetchPriority ? options.fetchPriority : void 0, + referrerPolicy: "string" === typeof options.referrerPolicy ? options.referrerPolicy : void 0, + imageSrcSet: "string" === typeof options.imageSrcSet ? options.imageSrcSet : void 0, + imageSizes: "string" === typeof options.imageSizes ? options.imageSizes : void 0, + media: "string" === typeof options.media ? options.media : void 0 + }); + } + }; + reactDom_production.preloadModule = function(href, options) { + if ("string" === typeof href) + if (options) { + var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin); + Internals.d.m(href, { + as: "string" === typeof options.as && "script" !== options.as ? options.as : void 0, + crossOrigin, + integrity: "string" === typeof options.integrity ? options.integrity : void 0 + }); + } else Internals.d.m(href); + }; + reactDom_production.requestFormReset = function(form) { + Internals.d.r(form); + }; + reactDom_production.unstable_batchedUpdates = function(fn2, a) { + return fn2(a); + }; + reactDom_production.useFormState = function(action, initialState, permalink) { + return ReactSharedInternals.H.useFormState(action, initialState, permalink); + }; + reactDom_production.useFormStatus = function() { + return ReactSharedInternals.H.useHostTransitionStatus(); + }; + reactDom_production.version = "19.2.4"; + return reactDom_production; + } + function checkDCE$1() { + if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === "undefined" || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== "function") { + return; + } + try { + __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE$1); + } catch (err) { + console.error(err); + } + } + { + checkDCE$1(); + reactDom.exports = requireReactDom_production(); + } + var reactDomExports = reactDom.exports; + const yr = /* @__PURE__ */ getDefaultExportFromCjs$1(reactDomExports); + var client = { exports: {} }; + var reactDomClient_production = {}; + var scheduler = { exports: {} }; + var scheduler_production = {}; + /** + * @license React + * scheduler.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + var hasRequiredScheduler_production; + function requireScheduler_production() { + if (hasRequiredScheduler_production) return scheduler_production; + hasRequiredScheduler_production = 1; + (function(exports$1) { + function push(heap, node) { + var index2 = heap.length; + heap.push(node); + a: for (; 0 < index2; ) { + var parentIndex = index2 - 1 >>> 1, parent = heap[parentIndex]; + if (0 < compare(parent, node)) + heap[parentIndex] = node, heap[index2] = parent, index2 = parentIndex; + else break a; + } + } + function peek(heap) { + return 0 === heap.length ? null : heap[0]; + } + function pop(heap) { + if (0 === heap.length) return null; + var first = heap[0], last = heap.pop(); + if (last !== first) { + heap[0] = last; + a: for (var index2 = 0, length = heap.length, halfLength = length >>> 1; index2 < halfLength; ) { + var leftIndex = 2 * (index2 + 1) - 1, left = heap[leftIndex], rightIndex = leftIndex + 1, right = heap[rightIndex]; + if (0 > compare(left, last)) + rightIndex < length && 0 > compare(right, left) ? (heap[index2] = right, heap[rightIndex] = last, index2 = rightIndex) : (heap[index2] = left, heap[leftIndex] = last, index2 = leftIndex); + else if (rightIndex < length && 0 > compare(right, last)) + heap[index2] = right, heap[rightIndex] = last, index2 = rightIndex; + else break a; + } + } + return first; + } + function compare(a, b) { + var diff = a.sortIndex - b.sortIndex; + return 0 !== diff ? diff : a.id - b.id; + } + exports$1.unstable_now = void 0; + if ("object" === typeof performance && "function" === typeof performance.now) { + var localPerformance = performance; + exports$1.unstable_now = function() { + return localPerformance.now(); + }; + } else { + var localDate = Date, initialTime = localDate.now(); + exports$1.unstable_now = function() { + return localDate.now() - initialTime; + }; + } + var taskQueue = [], timerQueue = [], taskIdCounter = 1, currentTask = null, currentPriorityLevel = 3, isPerformingWork = false, isHostCallbackScheduled = false, isHostTimeoutScheduled = false, needsPaint = false, localSetTimeout = "function" === typeof setTimeout ? setTimeout : null, localClearTimeout = "function" === typeof clearTimeout ? clearTimeout : null, localSetImmediate = "undefined" !== typeof setImmediate ? setImmediate : null; + function advanceTimers(currentTime) { + for (var timer = peek(timerQueue); null !== timer; ) { + if (null === timer.callback) pop(timerQueue); + else if (timer.startTime <= currentTime) + pop(timerQueue), timer.sortIndex = timer.expirationTime, push(taskQueue, timer); + else break; + timer = peek(timerQueue); + } + } + function handleTimeout(currentTime) { + isHostTimeoutScheduled = false; + advanceTimers(currentTime); + if (!isHostCallbackScheduled) + if (null !== peek(taskQueue)) + isHostCallbackScheduled = true, isMessageLoopRunning || (isMessageLoopRunning = true, schedulePerformWorkUntilDeadline()); + else { + var firstTimer = peek(timerQueue); + null !== firstTimer && requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime); + } + } + var isMessageLoopRunning = false, taskTimeoutID = -1, frameInterval = 5, startTime = -1; + function shouldYieldToHost() { + return needsPaint ? true : exports$1.unstable_now() - startTime < frameInterval ? false : true; + } + function performWorkUntilDeadline() { + needsPaint = false; + if (isMessageLoopRunning) { + var currentTime = exports$1.unstable_now(); + startTime = currentTime; + var hasMoreWork = true; + try { + a: { + isHostCallbackScheduled = false; + isHostTimeoutScheduled && (isHostTimeoutScheduled = false, localClearTimeout(taskTimeoutID), taskTimeoutID = -1); + isPerformingWork = true; + var previousPriorityLevel = currentPriorityLevel; + try { + b: { + advanceTimers(currentTime); + for (currentTask = peek(taskQueue); null !== currentTask && !(currentTask.expirationTime > currentTime && shouldYieldToHost()); ) { + var callback = currentTask.callback; + if ("function" === typeof callback) { + currentTask.callback = null; + currentPriorityLevel = currentTask.priorityLevel; + var continuationCallback = callback( + currentTask.expirationTime <= currentTime + ); + currentTime = exports$1.unstable_now(); + if ("function" === typeof continuationCallback) { + currentTask.callback = continuationCallback; + advanceTimers(currentTime); + hasMoreWork = true; + break b; + } + currentTask === peek(taskQueue) && pop(taskQueue); + advanceTimers(currentTime); + } else pop(taskQueue); + currentTask = peek(taskQueue); + } + if (null !== currentTask) hasMoreWork = true; + else { + var firstTimer = peek(timerQueue); + null !== firstTimer && requestHostTimeout( + handleTimeout, + firstTimer.startTime - currentTime + ); + hasMoreWork = false; + } + } + break a; + } finally { + currentTask = null, currentPriorityLevel = previousPriorityLevel, isPerformingWork = false; + } + hasMoreWork = void 0; + } + } finally { + hasMoreWork ? schedulePerformWorkUntilDeadline() : isMessageLoopRunning = false; + } + } + } + var schedulePerformWorkUntilDeadline; + if ("function" === typeof localSetImmediate) + schedulePerformWorkUntilDeadline = function() { + localSetImmediate(performWorkUntilDeadline); + }; + else if ("undefined" !== typeof MessageChannel) { + var channel = new MessageChannel(), port = channel.port2; + channel.port1.onmessage = performWorkUntilDeadline; + schedulePerformWorkUntilDeadline = function() { + port.postMessage(null); + }; + } else + schedulePerformWorkUntilDeadline = function() { + localSetTimeout(performWorkUntilDeadline, 0); + }; + function requestHostTimeout(callback, ms2) { + taskTimeoutID = localSetTimeout(function() { + callback(exports$1.unstable_now()); + }, ms2); + } + exports$1.unstable_IdlePriority = 5; + exports$1.unstable_ImmediatePriority = 1; + exports$1.unstable_LowPriority = 4; + exports$1.unstable_NormalPriority = 3; + exports$1.unstable_Profiling = null; + exports$1.unstable_UserBlockingPriority = 2; + exports$1.unstable_cancelCallback = function(task) { + task.callback = null; + }; + exports$1.unstable_forceFrameRate = function(fps) { + 0 > fps || 125 < fps ? console.error( + "forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported" + ) : frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5; + }; + exports$1.unstable_getCurrentPriorityLevel = function() { + return currentPriorityLevel; + }; + exports$1.unstable_next = function(eventHandler) { + switch (currentPriorityLevel) { + case 1: + case 2: + case 3: + var priorityLevel = 3; + break; + default: + priorityLevel = currentPriorityLevel; + } + var previousPriorityLevel = currentPriorityLevel; + currentPriorityLevel = priorityLevel; + try { + return eventHandler(); + } finally { + currentPriorityLevel = previousPriorityLevel; + } + }; + exports$1.unstable_requestPaint = function() { + needsPaint = true; + }; + exports$1.unstable_runWithPriority = function(priorityLevel, eventHandler) { + switch (priorityLevel) { + case 1: + case 2: + case 3: + case 4: + case 5: + break; + default: + priorityLevel = 3; + } + var previousPriorityLevel = currentPriorityLevel; + currentPriorityLevel = priorityLevel; + try { + return eventHandler(); + } finally { + currentPriorityLevel = previousPriorityLevel; + } + }; + exports$1.unstable_scheduleCallback = function(priorityLevel, callback, options) { + var currentTime = exports$1.unstable_now(); + "object" === typeof options && null !== options ? (options = options.delay, options = "number" === typeof options && 0 < options ? currentTime + options : currentTime) : options = currentTime; + switch (priorityLevel) { + case 1: + var timeout = -1; + break; + case 2: + timeout = 250; + break; + case 5: + timeout = 1073741823; + break; + case 4: + timeout = 1e4; + break; + default: + timeout = 5e3; + } + timeout = options + timeout; + priorityLevel = { + id: taskIdCounter++, + callback, + priorityLevel, + startTime: options, + expirationTime: timeout, + sortIndex: -1 + }; + options > currentTime ? (priorityLevel.sortIndex = options, push(timerQueue, priorityLevel), null === peek(taskQueue) && priorityLevel === peek(timerQueue) && (isHostTimeoutScheduled ? (localClearTimeout(taskTimeoutID), taskTimeoutID = -1) : isHostTimeoutScheduled = true, requestHostTimeout(handleTimeout, options - currentTime))) : (priorityLevel.sortIndex = timeout, push(taskQueue, priorityLevel), isHostCallbackScheduled || isPerformingWork || (isHostCallbackScheduled = true, isMessageLoopRunning || (isMessageLoopRunning = true, schedulePerformWorkUntilDeadline()))); + return priorityLevel; + }; + exports$1.unstable_shouldYield = shouldYieldToHost; + exports$1.unstable_wrapCallback = function(callback) { + var parentPriorityLevel = currentPriorityLevel; + return function() { + var previousPriorityLevel = currentPriorityLevel; + currentPriorityLevel = parentPriorityLevel; + try { + return callback.apply(this, arguments); + } finally { + currentPriorityLevel = previousPriorityLevel; + } + }; + }; + })(scheduler_production); + return scheduler_production; + } + var hasRequiredScheduler; + function requireScheduler() { + if (hasRequiredScheduler) return scheduler.exports; + hasRequiredScheduler = 1; + { + scheduler.exports = requireScheduler_production(); + } + return scheduler.exports; + } + /** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + var hasRequiredReactDomClient_production; + function requireReactDomClient_production() { + if (hasRequiredReactDomClient_production) return reactDomClient_production; + hasRequiredReactDomClient_production = 1; + var Scheduler = requireScheduler(), React = reactExports, ReactDOM = reactDomExports; + function formatProdErrorMessage(code) { + var url = "https://react.dev/errors/" + code; + if (1 < arguments.length) { + url += "?args[]=" + encodeURIComponent(arguments[1]); + for (var i = 2; i < arguments.length; i++) + url += "&args[]=" + encodeURIComponent(arguments[i]); + } + return "Minified React error #" + code + "; visit " + url + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings."; + } + function isValidContainer(node) { + return !(!node || 1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType); + } + function getNearestMountedFiber(fiber) { + var node = fiber, nearestMounted = fiber; + if (fiber.alternate) for (; node.return; ) node = node.return; + else { + fiber = node; + do + node = fiber, 0 !== (node.flags & 4098) && (nearestMounted = node.return), fiber = node.return; + while (fiber); + } + return 3 === node.tag ? nearestMounted : null; + } + function getSuspenseInstanceFromFiber(fiber) { + if (13 === fiber.tag) { + var suspenseState = fiber.memoizedState; + null === suspenseState && (fiber = fiber.alternate, null !== fiber && (suspenseState = fiber.memoizedState)); + if (null !== suspenseState) return suspenseState.dehydrated; + } + return null; + } + function getActivityInstanceFromFiber(fiber) { + if (31 === fiber.tag) { + var activityState = fiber.memoizedState; + null === activityState && (fiber = fiber.alternate, null !== fiber && (activityState = fiber.memoizedState)); + if (null !== activityState) return activityState.dehydrated; + } + return null; + } + function assertIsMounted(fiber) { + if (getNearestMountedFiber(fiber) !== fiber) + throw Error(formatProdErrorMessage(188)); + } + function findCurrentFiberUsingSlowPath(fiber) { + var alternate = fiber.alternate; + if (!alternate) { + alternate = getNearestMountedFiber(fiber); + if (null === alternate) throw Error(formatProdErrorMessage(188)); + return alternate !== fiber ? null : fiber; + } + for (var a = fiber, b = alternate; ; ) { + var parentA = a.return; + if (null === parentA) break; + var parentB = parentA.alternate; + if (null === parentB) { + b = parentA.return; + if (null !== b) { + a = b; + continue; + } + break; + } + if (parentA.child === parentB.child) { + for (parentB = parentA.child; parentB; ) { + if (parentB === a) return assertIsMounted(parentA), fiber; + if (parentB === b) return assertIsMounted(parentA), alternate; + parentB = parentB.sibling; + } + throw Error(formatProdErrorMessage(188)); + } + if (a.return !== b.return) a = parentA, b = parentB; + else { + for (var didFindChild = false, child$0 = parentA.child; child$0; ) { + if (child$0 === a) { + didFindChild = true; + a = parentA; + b = parentB; + break; + } + if (child$0 === b) { + didFindChild = true; + b = parentA; + a = parentB; + break; + } + child$0 = child$0.sibling; + } + if (!didFindChild) { + for (child$0 = parentB.child; child$0; ) { + if (child$0 === a) { + didFindChild = true; + a = parentB; + b = parentA; + break; + } + if (child$0 === b) { + didFindChild = true; + b = parentB; + a = parentA; + break; + } + child$0 = child$0.sibling; + } + if (!didFindChild) throw Error(formatProdErrorMessage(189)); + } + } + if (a.alternate !== b) throw Error(formatProdErrorMessage(190)); + } + if (3 !== a.tag) throw Error(formatProdErrorMessage(188)); + return a.stateNode.current === a ? fiber : alternate; + } + function findCurrentHostFiberImpl(node) { + var tag = node.tag; + if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node; + for (node = node.child; null !== node; ) { + tag = findCurrentHostFiberImpl(node); + if (null !== tag) return tag; + node = node.sibling; + } + return null; + } + var assign = Object.assign, REACT_LEGACY_ELEMENT_TYPE = Symbol.for("react.element"), REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = Symbol.for("react.profiler"), REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"); + var REACT_ACTIVITY_TYPE = Symbol.for("react.activity"); + var REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"); + var MAYBE_ITERATOR_SYMBOL = Symbol.iterator; + function getIteratorFn(maybeIterable) { + if (null === maybeIterable || "object" !== typeof maybeIterable) return null; + maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable["@@iterator"]; + return "function" === typeof maybeIterable ? maybeIterable : null; + } + var REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"); + function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE ? null : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + } + if ("object" === typeof type) + switch (type.$$typeof) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return type.displayName || "Context"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || (type = innerType.displayName || innerType.name || "", type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"); + return type; + case REACT_MEMO_TYPE: + return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || "Memo"; + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) { + } + } + return null; + } + var isArrayImpl = Array.isArray, ReactSharedInternals = React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, ReactDOMSharedInternals = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, sharedNotPendingObject = { + pending: false, + data: null, + method: null, + action: null + }, valueStack = [], index2 = -1; + function createCursor(defaultValue) { + return { current: defaultValue }; + } + function pop(cursor) { + 0 > index2 || (cursor.current = valueStack[index2], valueStack[index2] = null, index2--); + } + function push(cursor, value) { + index2++; + valueStack[index2] = cursor.current; + cursor.current = value; + } + var contextStackCursor = createCursor(null), contextFiberStackCursor = createCursor(null), rootInstanceStackCursor = createCursor(null), hostTransitionProviderCursor = createCursor(null); + function pushHostContainer(fiber, nextRootInstance) { + push(rootInstanceStackCursor, nextRootInstance); + push(contextFiberStackCursor, fiber); + push(contextStackCursor, null); + switch (nextRootInstance.nodeType) { + case 9: + case 11: + fiber = (fiber = nextRootInstance.documentElement) ? (fiber = fiber.namespaceURI) ? getOwnHostContext(fiber) : 0 : 0; + break; + default: + if (fiber = nextRootInstance.tagName, nextRootInstance = nextRootInstance.namespaceURI) + nextRootInstance = getOwnHostContext(nextRootInstance), fiber = getChildHostContextProd(nextRootInstance, fiber); + else + switch (fiber) { + case "svg": + fiber = 1; + break; + case "math": + fiber = 2; + break; + default: + fiber = 0; + } + } + pop(contextStackCursor); + push(contextStackCursor, fiber); + } + function popHostContainer() { + pop(contextStackCursor); + pop(contextFiberStackCursor); + pop(rootInstanceStackCursor); + } + function pushHostContext(fiber) { + null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber); + var context = contextStackCursor.current; + var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type); + context !== JSCompiler_inline_result && (push(contextFiberStackCursor, fiber), push(contextStackCursor, JSCompiler_inline_result)); + } + function popHostContext(fiber) { + contextFiberStackCursor.current === fiber && (pop(contextStackCursor), pop(contextFiberStackCursor)); + hostTransitionProviderCursor.current === fiber && (pop(hostTransitionProviderCursor), HostTransitionContext._currentValue = sharedNotPendingObject); + } + var prefix, suffix; + function describeBuiltInComponentFrame(name) { + if (void 0 === prefix) + try { + throw Error(); + } catch (x) { + var match = x.stack.trim().match(/\n( *(at )?)/); + prefix = match && match[1] || ""; + suffix = -1 < x.stack.indexOf("\n at") ? " ()" : -1 < x.stack.indexOf("@") ? "@unknown:0:0" : ""; + } + return "\n" + prefix + name + suffix; + } + var reentry = false; + function describeNativeComponentFrame(fn2, construct) { + if (!fn2 || reentry) return ""; + reentry = true; + var previousPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + try { + var RunInRootFrame = { + DetermineComponentFrameRoot: function() { + try { + if (construct) { + var Fake = function() { + throw Error(); + }; + Object.defineProperty(Fake.prototype, "props", { + set: function() { + throw Error(); + } + }); + if ("object" === typeof Reflect && Reflect.construct) { + try { + Reflect.construct(Fake, []); + } catch (x) { + var control = x; + } + Reflect.construct(fn2, [], Fake); + } else { + try { + Fake.call(); + } catch (x$1) { + control = x$1; + } + fn2.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x$2) { + control = x$2; + } + (Fake = fn2()) && "function" === typeof Fake.catch && Fake.catch(function() { + }); + } + } catch (sample) { + if (sample && control && "string" === typeof sample.stack) + return [sample.stack, control.stack]; + } + return [null, null]; + } + }; + RunInRootFrame.DetermineComponentFrameRoot.displayName = "DetermineComponentFrameRoot"; + var namePropDescriptor = Object.getOwnPropertyDescriptor( + RunInRootFrame.DetermineComponentFrameRoot, + "name" + ); + namePropDescriptor && namePropDescriptor.configurable && Object.defineProperty( + RunInRootFrame.DetermineComponentFrameRoot, + "name", + { value: "DetermineComponentFrameRoot" } + ); + var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), sampleStack = _RunInRootFrame$Deter[0], controlStack = _RunInRootFrame$Deter[1]; + if (sampleStack && controlStack) { + var sampleLines = sampleStack.split("\n"), controlLines = controlStack.split("\n"); + for (namePropDescriptor = RunInRootFrame = 0; RunInRootFrame < sampleLines.length && !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot"); ) + RunInRootFrame++; + for (; namePropDescriptor < controlLines.length && !controlLines[namePropDescriptor].includes( + "DetermineComponentFrameRoot" + ); ) + namePropDescriptor++; + if (RunInRootFrame === sampleLines.length || namePropDescriptor === controlLines.length) + for (RunInRootFrame = sampleLines.length - 1, namePropDescriptor = controlLines.length - 1; 1 <= RunInRootFrame && 0 <= namePropDescriptor && sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]; ) + namePropDescriptor--; + for (; 1 <= RunInRootFrame && 0 <= namePropDescriptor; RunInRootFrame--, namePropDescriptor--) + if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) { + if (1 !== RunInRootFrame || 1 !== namePropDescriptor) { + do + if (RunInRootFrame--, namePropDescriptor--, 0 > namePropDescriptor || sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) { + var frame = "\n" + sampleLines[RunInRootFrame].replace(" at new ", " at "); + fn2.displayName && frame.includes("") && (frame = frame.replace("", fn2.displayName)); + return frame; + } + while (1 <= RunInRootFrame && 0 <= namePropDescriptor); + } + break; + } + } + } finally { + reentry = false, Error.prepareStackTrace = previousPrepareStackTrace; + } + return (previousPrepareStackTrace = fn2 ? fn2.displayName || fn2.name : "") ? describeBuiltInComponentFrame(previousPrepareStackTrace) : ""; + } + function describeFiber(fiber, childFiber) { + switch (fiber.tag) { + case 26: + case 27: + case 5: + return describeBuiltInComponentFrame(fiber.type); + case 16: + return describeBuiltInComponentFrame("Lazy"); + case 13: + return fiber.child !== childFiber && null !== childFiber ? describeBuiltInComponentFrame("Suspense Fallback") : describeBuiltInComponentFrame("Suspense"); + case 19: + return describeBuiltInComponentFrame("SuspenseList"); + case 0: + case 15: + return describeNativeComponentFrame(fiber.type, false); + case 11: + return describeNativeComponentFrame(fiber.type.render, false); + case 1: + return describeNativeComponentFrame(fiber.type, true); + case 31: + return describeBuiltInComponentFrame("Activity"); + default: + return ""; + } + } + function getStackByFiberInDevAndProd(workInProgress2) { + try { + var info = "", previous = null; + do + info += describeFiber(workInProgress2, previous), previous = workInProgress2, workInProgress2 = workInProgress2.return; + while (workInProgress2); + return info; + } catch (x) { + return "\nError generating stack: " + x.message + "\n" + x.stack; + } + } + var hasOwnProperty = Object.prototype.hasOwnProperty, scheduleCallback$3 = Scheduler.unstable_scheduleCallback, cancelCallback$1 = Scheduler.unstable_cancelCallback, shouldYield = Scheduler.unstable_shouldYield, requestPaint = Scheduler.unstable_requestPaint, now = Scheduler.unstable_now, getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel, ImmediatePriority = Scheduler.unstable_ImmediatePriority, UserBlockingPriority = Scheduler.unstable_UserBlockingPriority, NormalPriority$1 = Scheduler.unstable_NormalPriority, LowPriority = Scheduler.unstable_LowPriority, IdlePriority = Scheduler.unstable_IdlePriority, log$1 = Scheduler.log, unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue, rendererID = null, injectedHook = null; + function setIsStrictModeForDevtools(newIsStrictMode) { + "function" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode); + if (injectedHook && "function" === typeof injectedHook.setStrictMode) + try { + injectedHook.setStrictMode(rendererID, newIsStrictMode); + } catch (err) { + } + } + var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback, log = Math.log, LN2 = Math.LN2; + function clz32Fallback(x) { + x >>>= 0; + return 0 === x ? 32 : 31 - (log(x) / LN2 | 0) | 0; + } + var nextTransitionUpdateLane = 256, nextTransitionDeferredLane = 262144, nextRetryLane = 4194304; + function getHighestPriorityLanes(lanes) { + var pendingSyncLanes = lanes & 42; + if (0 !== pendingSyncLanes) return pendingSyncLanes; + switch (lanes & -lanes) { + case 1: + return 1; + case 2: + return 2; + case 4: + return 4; + case 8: + return 8; + case 16: + return 16; + case 32: + return 32; + case 64: + return 64; + case 128: + return 128; + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + return lanes & 261888; + case 262144: + case 524288: + case 1048576: + case 2097152: + return lanes & 3932160; + case 4194304: + case 8388608: + case 16777216: + case 33554432: + return lanes & 62914560; + case 67108864: + return 67108864; + case 134217728: + return 134217728; + case 268435456: + return 268435456; + case 536870912: + return 536870912; + case 1073741824: + return 0; + default: + return lanes; + } + } + function getNextLanes(root2, wipLanes, rootHasPendingCommit) { + var pendingLanes = root2.pendingLanes; + if (0 === pendingLanes) return 0; + var nextLanes = 0, suspendedLanes = root2.suspendedLanes, pingedLanes = root2.pingedLanes; + root2 = root2.warmLanes; + var nonIdlePendingLanes = pendingLanes & 134217727; + 0 !== nonIdlePendingLanes ? (pendingLanes = nonIdlePendingLanes & ~suspendedLanes, 0 !== pendingLanes ? nextLanes = getHighestPriorityLanes(pendingLanes) : (pingedLanes &= nonIdlePendingLanes, 0 !== pingedLanes ? nextLanes = getHighestPriorityLanes(pingedLanes) : rootHasPendingCommit || (rootHasPendingCommit = nonIdlePendingLanes & ~root2, 0 !== rootHasPendingCommit && (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))))) : (nonIdlePendingLanes = pendingLanes & ~suspendedLanes, 0 !== nonIdlePendingLanes ? nextLanes = getHighestPriorityLanes(nonIdlePendingLanes) : 0 !== pingedLanes ? nextLanes = getHighestPriorityLanes(pingedLanes) : rootHasPendingCommit || (rootHasPendingCommit = pendingLanes & ~root2, 0 !== rootHasPendingCommit && (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))); + return 0 === nextLanes ? 0 : 0 !== wipLanes && wipLanes !== nextLanes && 0 === (wipLanes & suspendedLanes) && (suspendedLanes = nextLanes & -nextLanes, rootHasPendingCommit = wipLanes & -wipLanes, suspendedLanes >= rootHasPendingCommit || 32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)) ? wipLanes : nextLanes; + } + function checkIfRootIsPrerendering(root2, renderLanes2) { + return 0 === (root2.pendingLanes & ~(root2.suspendedLanes & ~root2.pingedLanes) & renderLanes2); + } + function computeExpirationTime(lane, currentTime) { + switch (lane) { + case 1: + case 2: + case 4: + case 8: + case 64: + return currentTime + 250; + case 16: + case 32: + case 128: + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + return currentTime + 5e3; + case 4194304: + case 8388608: + case 16777216: + case 33554432: + return -1; + case 67108864: + case 134217728: + case 268435456: + case 536870912: + case 1073741824: + return -1; + default: + return -1; + } + } + function claimNextRetryLane() { + var lane = nextRetryLane; + nextRetryLane <<= 1; + 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304); + return lane; + } + function createLaneMap(initial) { + for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial); + return laneMap; + } + function markRootUpdated$1(root2, updateLane) { + root2.pendingLanes |= updateLane; + 268435456 !== updateLane && (root2.suspendedLanes = 0, root2.pingedLanes = 0, root2.warmLanes = 0); + } + function markRootFinished(root2, finishedLanes, remainingLanes, spawnedLane, updatedLanes, suspendedRetryLanes) { + var previouslyPendingLanes = root2.pendingLanes; + root2.pendingLanes = remainingLanes; + root2.suspendedLanes = 0; + root2.pingedLanes = 0; + root2.warmLanes = 0; + root2.expiredLanes &= remainingLanes; + root2.entangledLanes &= remainingLanes; + root2.errorRecoveryDisabledLanes &= remainingLanes; + root2.shellSuspendCounter = 0; + var entanglements = root2.entanglements, expirationTimes = root2.expirationTimes, hiddenUpdates = root2.hiddenUpdates; + for (remainingLanes = previouslyPendingLanes & ~remainingLanes; 0 < remainingLanes; ) { + var index$7 = 31 - clz32(remainingLanes), lane = 1 << index$7; + entanglements[index$7] = 0; + expirationTimes[index$7] = -1; + var hiddenUpdatesForLane = hiddenUpdates[index$7]; + if (null !== hiddenUpdatesForLane) + for (hiddenUpdates[index$7] = null, index$7 = 0; index$7 < hiddenUpdatesForLane.length; index$7++) { + var update = hiddenUpdatesForLane[index$7]; + null !== update && (update.lane &= -536870913); + } + remainingLanes &= ~lane; + } + 0 !== spawnedLane && markSpawnedDeferredLane(root2, spawnedLane, 0); + 0 !== suspendedRetryLanes && 0 === updatedLanes && 0 !== root2.tag && (root2.suspendedLanes |= suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes)); + } + function markSpawnedDeferredLane(root2, spawnedLane, entangledLanes) { + root2.pendingLanes |= spawnedLane; + root2.suspendedLanes &= ~spawnedLane; + var spawnedLaneIndex = 31 - clz32(spawnedLane); + root2.entangledLanes |= spawnedLane; + root2.entanglements[spawnedLaneIndex] = root2.entanglements[spawnedLaneIndex] | 1073741824 | entangledLanes & 261930; + } + function markRootEntangled(root2, entangledLanes) { + var rootEntangledLanes = root2.entangledLanes |= entangledLanes; + for (root2 = root2.entanglements; rootEntangledLanes; ) { + var index$8 = 31 - clz32(rootEntangledLanes), lane = 1 << index$8; + lane & entangledLanes | root2[index$8] & entangledLanes && (root2[index$8] |= entangledLanes); + rootEntangledLanes &= ~lane; + } + } + function getBumpedLaneForHydration(root2, renderLanes2) { + var renderLane = renderLanes2 & -renderLanes2; + renderLane = 0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane); + return 0 !== (renderLane & (root2.suspendedLanes | renderLanes2)) ? 0 : renderLane; + } + function getBumpedLaneForHydrationByLane(lane) { + switch (lane) { + case 2: + lane = 1; + break; + case 8: + lane = 4; + break; + case 32: + lane = 16; + break; + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + case 4194304: + case 8388608: + case 16777216: + case 33554432: + lane = 128; + break; + case 268435456: + lane = 134217728; + break; + default: + lane = 0; + } + return lane; + } + function lanesToEventPriority(lanes) { + lanes &= -lanes; + return 2 < lanes ? 8 < lanes ? 0 !== (lanes & 134217727) ? 32 : 268435456 : 8 : 2; + } + function resolveUpdatePriority() { + var updatePriority = ReactDOMSharedInternals.p; + if (0 !== updatePriority) return updatePriority; + updatePriority = window.event; + return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type); + } + function runWithPriority(priority, fn2) { + var previousPriority = ReactDOMSharedInternals.p; + try { + return ReactDOMSharedInternals.p = priority, fn2(); + } finally { + ReactDOMSharedInternals.p = previousPriority; + } + } + var randomKey = Math.random().toString(36).slice(2), internalInstanceKey = "__reactFiber$" + randomKey, internalPropsKey = "__reactProps$" + randomKey, internalContainerInstanceKey = "__reactContainer$" + randomKey, internalEventHandlersKey = "__reactEvents$" + randomKey, internalEventHandlerListenersKey = "__reactListeners$" + randomKey, internalEventHandlesSetKey = "__reactHandles$" + randomKey, internalRootNodeResourcesKey = "__reactResources$" + randomKey, internalHoistableMarker = "__reactMarker$" + randomKey; + function detachDeletedInstance(node) { + delete node[internalInstanceKey]; + delete node[internalPropsKey]; + delete node[internalEventHandlersKey]; + delete node[internalEventHandlerListenersKey]; + delete node[internalEventHandlesSetKey]; + } + function getClosestInstanceFromNode(targetNode) { + var targetInst = targetNode[internalInstanceKey]; + if (targetInst) return targetInst; + for (var parentNode = targetNode.parentNode; parentNode; ) { + if (targetInst = parentNode[internalContainerInstanceKey] || parentNode[internalInstanceKey]) { + parentNode = targetInst.alternate; + if (null !== targetInst.child || null !== parentNode && null !== parentNode.child) + for (targetNode = getParentHydrationBoundary(targetNode); null !== targetNode; ) { + if (parentNode = targetNode[internalInstanceKey]) return parentNode; + targetNode = getParentHydrationBoundary(targetNode); + } + return targetInst; + } + targetNode = parentNode; + parentNode = targetNode.parentNode; + } + return null; + } + function getInstanceFromNode(node) { + if (node = node[internalInstanceKey] || node[internalContainerInstanceKey]) { + var tag = node.tag; + if (5 === tag || 6 === tag || 13 === tag || 31 === tag || 26 === tag || 27 === tag || 3 === tag) + return node; + } + return null; + } + function getNodeFromInstance(inst) { + var tag = inst.tag; + if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode; + throw Error(formatProdErrorMessage(33)); + } + function getResourcesFromRoot(root2) { + var resources = root2[internalRootNodeResourcesKey]; + resources || (resources = root2[internalRootNodeResourcesKey] = { hoistableStyles: /* @__PURE__ */ new Map(), hoistableScripts: /* @__PURE__ */ new Map() }); + return resources; + } + function markNodeAsHoistable(node) { + node[internalHoistableMarker] = true; + } + var allNativeEvents = /* @__PURE__ */ new Set(), registrationNameDependencies = {}; + function registerTwoPhaseEvent(registrationName, dependencies) { + registerDirectEvent(registrationName, dependencies); + registerDirectEvent(registrationName + "Capture", dependencies); + } + function registerDirectEvent(registrationName, dependencies) { + registrationNameDependencies[registrationName] = dependencies; + for (registrationName = 0; registrationName < dependencies.length; registrationName++) + allNativeEvents.add(dependencies[registrationName]); + } + var VALID_ATTRIBUTE_NAME_REGEX = RegExp( + "^[: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]*$" + ), illegalAttributeNameCache = {}, validatedAttributeNameCache = {}; + function isAttributeNameSafe(attributeName) { + if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) + return true; + if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return false; + if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) + return validatedAttributeNameCache[attributeName] = true; + illegalAttributeNameCache[attributeName] = true; + return false; + } + function setValueForAttribute(node, name, value) { + if (isAttributeNameSafe(name)) + if (null === value) node.removeAttribute(name); + else { + switch (typeof value) { + case "undefined": + case "function": + case "symbol": + node.removeAttribute(name); + return; + case "boolean": + var prefix$10 = name.toLowerCase().slice(0, 5); + if ("data-" !== prefix$10 && "aria-" !== prefix$10) { + node.removeAttribute(name); + return; + } + } + node.setAttribute(name, "" + value); + } + } + function setValueForKnownAttribute(node, name, value) { + if (null === value) node.removeAttribute(name); + else { + switch (typeof value) { + case "undefined": + case "function": + case "symbol": + case "boolean": + node.removeAttribute(name); + return; + } + node.setAttribute(name, "" + value); + } + } + function setValueForNamespacedAttribute(node, namespace, name, value) { + if (null === value) node.removeAttribute(name); + else { + switch (typeof value) { + case "undefined": + case "function": + case "symbol": + case "boolean": + node.removeAttribute(name); + return; + } + node.setAttributeNS(namespace, name, "" + value); + } + } + function getToStringValue(value) { + switch (typeof value) { + case "bigint": + case "boolean": + case "number": + case "string": + case "undefined": + return value; + case "object": + return value; + default: + return ""; + } + } + function isCheckable(elem) { + var type = elem.type; + return (elem = elem.nodeName) && "input" === elem.toLowerCase() && ("checkbox" === type || "radio" === type); + } + function trackValueOnNode(node, valueField, currentValue) { + var descriptor = Object.getOwnPropertyDescriptor( + node.constructor.prototype, + valueField + ); + if (!node.hasOwnProperty(valueField) && "undefined" !== typeof descriptor && "function" === typeof descriptor.get && "function" === typeof descriptor.set) { + var get = descriptor.get, set = descriptor.set; + Object.defineProperty(node, valueField, { + configurable: true, + get: function() { + return get.call(this); + }, + set: function(value) { + currentValue = "" + value; + set.call(this, value); + } + }); + Object.defineProperty(node, valueField, { + enumerable: descriptor.enumerable + }); + return { + getValue: function() { + return currentValue; + }, + setValue: function(value) { + currentValue = "" + value; + }, + stopTracking: function() { + node._valueTracker = null; + delete node[valueField]; + } + }; + } + } + function track(node) { + if (!node._valueTracker) { + var valueField = isCheckable(node) ? "checked" : "value"; + node._valueTracker = trackValueOnNode( + node, + valueField, + "" + node[valueField] + ); + } + } + function updateValueIfChanged(node) { + if (!node) return false; + var tracker = node._valueTracker; + if (!tracker) return true; + var lastValue = tracker.getValue(); + var value = ""; + node && (value = isCheckable(node) ? node.checked ? "true" : "false" : node.value); + node = value; + return node !== lastValue ? (tracker.setValue(node), true) : false; + } + function getActiveElement(doc) { + doc = doc || ("undefined" !== typeof document ? document : void 0); + if ("undefined" === typeof doc) return null; + try { + return doc.activeElement || doc.body; + } catch (e) { + return doc.body; + } + } + var escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\n"\\]/g; + function escapeSelectorAttributeValueInsideDoubleQuotes(value) { + return value.replace( + escapeSelectorAttributeValueInsideDoubleQuotesRegex, + function(ch2) { + return "\\" + ch2.charCodeAt(0).toString(16) + " "; + } + ); + } + function updateInput(element, value, defaultValue, lastDefaultValue, checked, defaultChecked, type, name) { + element.name = ""; + null != type && "function" !== typeof type && "symbol" !== typeof type && "boolean" !== typeof type ? element.type = type : element.removeAttribute("type"); + if (null != value) + if ("number" === type) { + if (0 === value && "" === element.value || element.value != value) + element.value = "" + getToStringValue(value); + } else + element.value !== "" + getToStringValue(value) && (element.value = "" + getToStringValue(value)); + else + "submit" !== type && "reset" !== type || element.removeAttribute("value"); + null != value ? setDefaultValue(element, type, getToStringValue(value)) : null != defaultValue ? setDefaultValue(element, type, getToStringValue(defaultValue)) : null != lastDefaultValue && element.removeAttribute("value"); + null == checked && null != defaultChecked && (element.defaultChecked = !!defaultChecked); + null != checked && (element.checked = checked && "function" !== typeof checked && "symbol" !== typeof checked); + null != name && "function" !== typeof name && "symbol" !== typeof name && "boolean" !== typeof name ? element.name = "" + getToStringValue(name) : element.removeAttribute("name"); + } + function initInput(element, value, defaultValue, checked, defaultChecked, type, name, isHydrating2) { + null != type && "function" !== typeof type && "symbol" !== typeof type && "boolean" !== typeof type && (element.type = type); + if (null != value || null != defaultValue) { + if (!("submit" !== type && "reset" !== type || void 0 !== value && null !== value)) { + track(element); + return; + } + defaultValue = null != defaultValue ? "" + getToStringValue(defaultValue) : ""; + value = null != value ? "" + getToStringValue(value) : defaultValue; + isHydrating2 || value === element.value || (element.value = value); + element.defaultValue = value; + } + checked = null != checked ? checked : defaultChecked; + checked = "function" !== typeof checked && "symbol" !== typeof checked && !!checked; + element.checked = isHydrating2 ? element.checked : !!checked; + element.defaultChecked = !!checked; + null != name && "function" !== typeof name && "symbol" !== typeof name && "boolean" !== typeof name && (element.name = name); + track(element); + } + function setDefaultValue(node, type, value) { + "number" === type && getActiveElement(node.ownerDocument) === node || node.defaultValue === "" + value || (node.defaultValue = "" + value); + } + function updateOptions(node, multiple, propValue, setDefaultSelected) { + node = node.options; + if (multiple) { + multiple = {}; + for (var i = 0; i < propValue.length; i++) + multiple["$" + propValue[i]] = true; + for (propValue = 0; propValue < node.length; propValue++) + i = multiple.hasOwnProperty("$" + node[propValue].value), node[propValue].selected !== i && (node[propValue].selected = i), i && setDefaultSelected && (node[propValue].defaultSelected = true); + } else { + propValue = "" + getToStringValue(propValue); + multiple = null; + for (i = 0; i < node.length; i++) { + if (node[i].value === propValue) { + node[i].selected = true; + setDefaultSelected && (node[i].defaultSelected = true); + return; + } + null !== multiple || node[i].disabled || (multiple = node[i]); + } + null !== multiple && (multiple.selected = true); + } + } + function updateTextarea(element, value, defaultValue) { + if (null != value && (value = "" + getToStringValue(value), value !== element.value && (element.value = value), null == defaultValue)) { + element.defaultValue !== value && (element.defaultValue = value); + return; + } + element.defaultValue = null != defaultValue ? "" + getToStringValue(defaultValue) : ""; + } + function initTextarea(element, value, defaultValue, children) { + if (null == value) { + if (null != children) { + if (null != defaultValue) throw Error(formatProdErrorMessage(92)); + if (isArrayImpl(children)) { + if (1 < children.length) throw Error(formatProdErrorMessage(93)); + children = children[0]; + } + defaultValue = children; + } + null == defaultValue && (defaultValue = ""); + value = defaultValue; + } + defaultValue = getToStringValue(value); + element.defaultValue = defaultValue; + children = element.textContent; + children === defaultValue && "" !== children && null !== children && (element.value = children); + track(element); + } + function setTextContent(node, text) { + if (text) { + var firstChild = node.firstChild; + if (firstChild && firstChild === node.lastChild && 3 === firstChild.nodeType) { + firstChild.nodeValue = text; + return; + } + } + node.textContent = text; + } + var unitlessNumbers = new Set( + "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( + " " + ) + ); + function setValueForStyle(style2, styleName, value) { + var isCustomProperty = 0 === styleName.indexOf("--"); + null == value || "boolean" === typeof value || "" === value ? isCustomProperty ? style2.setProperty(styleName, "") : "float" === styleName ? style2.cssFloat = "" : style2[styleName] = "" : isCustomProperty ? style2.setProperty(styleName, value) : "number" !== typeof value || 0 === value || unitlessNumbers.has(styleName) ? "float" === styleName ? style2.cssFloat = value : style2[styleName] = ("" + value).trim() : style2[styleName] = value + "px"; + } + function setValueForStyles(node, styles, prevStyles) { + if (null != styles && "object" !== typeof styles) + throw Error(formatProdErrorMessage(62)); + node = node.style; + if (null != prevStyles) { + for (var styleName in prevStyles) + !prevStyles.hasOwnProperty(styleName) || null != styles && styles.hasOwnProperty(styleName) || (0 === styleName.indexOf("--") ? node.setProperty(styleName, "") : "float" === styleName ? node.cssFloat = "" : node[styleName] = ""); + for (var styleName$16 in styles) + styleName = styles[styleName$16], styles.hasOwnProperty(styleName$16) && prevStyles[styleName$16] !== styleName && setValueForStyle(node, styleName$16, styleName); + } else + for (var styleName$17 in styles) + styles.hasOwnProperty(styleName$17) && setValueForStyle(node, styleName$17, styles[styleName$17]); + } + function isCustomElement(tagName) { + if (-1 === tagName.indexOf("-")) return false; + switch (tagName) { + case "annotation-xml": + case "color-profile": + case "font-face": + case "font-face-src": + case "font-face-uri": + case "font-face-format": + case "font-face-name": + case "missing-glyph": + return false; + default: + return true; + } + } + var aliases = /* @__PURE__ */ new Map([ + ["acceptCharset", "accept-charset"], + ["htmlFor", "for"], + ["httpEquiv", "http-equiv"], + ["crossOrigin", "crossorigin"], + ["accentHeight", "accent-height"], + ["alignmentBaseline", "alignment-baseline"], + ["arabicForm", "arabic-form"], + ["baselineShift", "baseline-shift"], + ["capHeight", "cap-height"], + ["clipPath", "clip-path"], + ["clipRule", "clip-rule"], + ["colorInterpolation", "color-interpolation"], + ["colorInterpolationFilters", "color-interpolation-filters"], + ["colorProfile", "color-profile"], + ["colorRendering", "color-rendering"], + ["dominantBaseline", "dominant-baseline"], + ["enableBackground", "enable-background"], + ["fillOpacity", "fill-opacity"], + ["fillRule", "fill-rule"], + ["floodColor", "flood-color"], + ["floodOpacity", "flood-opacity"], + ["fontFamily", "font-family"], + ["fontSize", "font-size"], + ["fontSizeAdjust", "font-size-adjust"], + ["fontStretch", "font-stretch"], + ["fontStyle", "font-style"], + ["fontVariant", "font-variant"], + ["fontWeight", "font-weight"], + ["glyphName", "glyph-name"], + ["glyphOrientationHorizontal", "glyph-orientation-horizontal"], + ["glyphOrientationVertical", "glyph-orientation-vertical"], + ["horizAdvX", "horiz-adv-x"], + ["horizOriginX", "horiz-origin-x"], + ["imageRendering", "image-rendering"], + ["letterSpacing", "letter-spacing"], + ["lightingColor", "lighting-color"], + ["markerEnd", "marker-end"], + ["markerMid", "marker-mid"], + ["markerStart", "marker-start"], + ["overlinePosition", "overline-position"], + ["overlineThickness", "overline-thickness"], + ["paintOrder", "paint-order"], + ["panose-1", "panose-1"], + ["pointerEvents", "pointer-events"], + ["renderingIntent", "rendering-intent"], + ["shapeRendering", "shape-rendering"], + ["stopColor", "stop-color"], + ["stopOpacity", "stop-opacity"], + ["strikethroughPosition", "strikethrough-position"], + ["strikethroughThickness", "strikethrough-thickness"], + ["strokeDasharray", "stroke-dasharray"], + ["strokeDashoffset", "stroke-dashoffset"], + ["strokeLinecap", "stroke-linecap"], + ["strokeLinejoin", "stroke-linejoin"], + ["strokeMiterlimit", "stroke-miterlimit"], + ["strokeOpacity", "stroke-opacity"], + ["strokeWidth", "stroke-width"], + ["textAnchor", "text-anchor"], + ["textDecoration", "text-decoration"], + ["textRendering", "text-rendering"], + ["transformOrigin", "transform-origin"], + ["underlinePosition", "underline-position"], + ["underlineThickness", "underline-thickness"], + ["unicodeBidi", "unicode-bidi"], + ["unicodeRange", "unicode-range"], + ["unitsPerEm", "units-per-em"], + ["vAlphabetic", "v-alphabetic"], + ["vHanging", "v-hanging"], + ["vIdeographic", "v-ideographic"], + ["vMathematical", "v-mathematical"], + ["vectorEffect", "vector-effect"], + ["vertAdvY", "vert-adv-y"], + ["vertOriginX", "vert-origin-x"], + ["vertOriginY", "vert-origin-y"], + ["wordSpacing", "word-spacing"], + ["writingMode", "writing-mode"], + ["xmlnsXlink", "xmlns:xlink"], + ["xHeight", "x-height"] + ]), isJavaScriptProtocol = /^[\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; + function sanitizeURL(url) { + return isJavaScriptProtocol.test("" + url) ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')" : url; + } + function noop$1() { + } + var currentReplayingEvent = null; + function getEventTarget(nativeEvent) { + nativeEvent = nativeEvent.target || nativeEvent.srcElement || window; + nativeEvent.correspondingUseElement && (nativeEvent = nativeEvent.correspondingUseElement); + return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent; + } + var restoreTarget = null, restoreQueue = null; + function restoreStateOfTarget(target) { + var internalInstance = getInstanceFromNode(target); + if (internalInstance && (target = internalInstance.stateNode)) { + var props = target[internalPropsKey] || null; + a: switch (target = internalInstance.stateNode, internalInstance.type) { + case "input": + updateInput( + target, + props.value, + props.defaultValue, + props.defaultValue, + props.checked, + props.defaultChecked, + props.type, + props.name + ); + internalInstance = props.name; + if ("radio" === props.type && null != internalInstance) { + for (props = target; props.parentNode; ) props = props.parentNode; + props = props.querySelectorAll( + 'input[name="' + escapeSelectorAttributeValueInsideDoubleQuotes( + "" + internalInstance + ) + '"][type="radio"]' + ); + for (internalInstance = 0; internalInstance < props.length; internalInstance++) { + var otherNode = props[internalInstance]; + if (otherNode !== target && otherNode.form === target.form) { + var otherProps = otherNode[internalPropsKey] || null; + if (!otherProps) throw Error(formatProdErrorMessage(90)); + updateInput( + otherNode, + otherProps.value, + otherProps.defaultValue, + otherProps.defaultValue, + otherProps.checked, + otherProps.defaultChecked, + otherProps.type, + otherProps.name + ); + } + } + for (internalInstance = 0; internalInstance < props.length; internalInstance++) + otherNode = props[internalInstance], otherNode.form === target.form && updateValueIfChanged(otherNode); + } + break a; + case "textarea": + updateTextarea(target, props.value, props.defaultValue); + break a; + case "select": + internalInstance = props.value, null != internalInstance && updateOptions(target, !!props.multiple, internalInstance, false); + } + } + } + var isInsideEventHandler = false; + function batchedUpdates$1(fn2, a, b) { + if (isInsideEventHandler) return fn2(a, b); + isInsideEventHandler = true; + try { + var JSCompiler_inline_result = fn2(a); + return JSCompiler_inline_result; + } finally { + if (isInsideEventHandler = false, null !== restoreTarget || null !== restoreQueue) { + if (flushSyncWork$1(), restoreTarget && (a = restoreTarget, fn2 = restoreQueue, restoreQueue = restoreTarget = null, restoreStateOfTarget(a), fn2)) + for (a = 0; a < fn2.length; a++) restoreStateOfTarget(fn2[a]); + } + } + } + function getListener(inst, registrationName) { + var stateNode = inst.stateNode; + if (null === stateNode) return null; + var props = stateNode[internalPropsKey] || null; + if (null === props) return null; + stateNode = props[registrationName]; + a: switch (registrationName) { + case "onClick": + case "onClickCapture": + case "onDoubleClick": + case "onDoubleClickCapture": + case "onMouseDown": + case "onMouseDownCapture": + case "onMouseMove": + case "onMouseMoveCapture": + case "onMouseUp": + case "onMouseUpCapture": + case "onMouseEnter": + (props = !props.disabled) || (inst = inst.type, props = !("button" === inst || "input" === inst || "select" === inst || "textarea" === inst)); + inst = !props; + break a; + default: + inst = false; + } + if (inst) return null; + if (stateNode && "function" !== typeof stateNode) + throw Error( + formatProdErrorMessage(231, registrationName, typeof stateNode) + ); + return stateNode; + } + var canUseDOM = !("undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement), passiveBrowserEventsSupported = false; + if (canUseDOM) + try { + var options = {}; + Object.defineProperty(options, "passive", { + get: function() { + passiveBrowserEventsSupported = true; + } + }); + window.addEventListener("test", options, options); + window.removeEventListener("test", options, options); + } catch (e) { + passiveBrowserEventsSupported = false; + } + var root = null, startText = null, fallbackText = null; + function getData() { + if (fallbackText) return fallbackText; + var start, startValue = startText, startLength = startValue.length, end, endValue = "value" in root ? root.value : root.textContent, endLength = endValue.length; + for (start = 0; start < startLength && startValue[start] === endValue[start]; start++) ; + var minEnd = startLength - start; + for (end = 1; end <= minEnd && startValue[startLength - end] === endValue[endLength - end]; end++) ; + return fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0); + } + function getEventCharCode(nativeEvent) { + var keyCode = nativeEvent.keyCode; + "charCode" in nativeEvent ? (nativeEvent = nativeEvent.charCode, 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13)) : nativeEvent = keyCode; + 10 === nativeEvent && (nativeEvent = 13); + return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0; + } + function functionThatReturnsTrue() { + return true; + } + function functionThatReturnsFalse() { + return false; + } + function createSyntheticEvent(Interface) { + function SyntheticBaseEvent(reactName, reactEventType, targetInst, nativeEvent, nativeEventTarget) { + this._reactName = reactName; + this._targetInst = targetInst; + this.type = reactEventType; + this.nativeEvent = nativeEvent; + this.target = nativeEventTarget; + this.currentTarget = null; + for (var propName in Interface) + Interface.hasOwnProperty(propName) && (reactName = Interface[propName], this[propName] = reactName ? reactName(nativeEvent) : nativeEvent[propName]); + this.isDefaultPrevented = (null != nativeEvent.defaultPrevented ? nativeEvent.defaultPrevented : false === nativeEvent.returnValue) ? functionThatReturnsTrue : functionThatReturnsFalse; + this.isPropagationStopped = functionThatReturnsFalse; + return this; + } + assign(SyntheticBaseEvent.prototype, { + preventDefault: function() { + this.defaultPrevented = true; + var event = this.nativeEvent; + event && (event.preventDefault ? event.preventDefault() : "unknown" !== typeof event.returnValue && (event.returnValue = false), this.isDefaultPrevented = functionThatReturnsTrue); + }, + stopPropagation: function() { + var event = this.nativeEvent; + event && (event.stopPropagation ? event.stopPropagation() : "unknown" !== typeof event.cancelBubble && (event.cancelBubble = true), this.isPropagationStopped = functionThatReturnsTrue); + }, + persist: function() { + }, + isPersistent: functionThatReturnsTrue + }); + return SyntheticBaseEvent; + } + var EventInterface = { + eventPhase: 0, + bubbles: 0, + cancelable: 0, + timeStamp: function(event) { + return event.timeStamp || Date.now(); + }, + defaultPrevented: 0, + isTrusted: 0 + }, SyntheticEvent = createSyntheticEvent(EventInterface), UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }), SyntheticUIEvent = createSyntheticEvent(UIEventInterface), lastMovementX, lastMovementY, lastMouseEvent, MouseEventInterface = assign({}, UIEventInterface, { + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0, + pageX: 0, + pageY: 0, + ctrlKey: 0, + shiftKey: 0, + altKey: 0, + metaKey: 0, + getModifierState: getEventModifierState, + button: 0, + buttons: 0, + relatedTarget: function(event) { + return void 0 === event.relatedTarget ? event.fromElement === event.srcElement ? event.toElement : event.fromElement : event.relatedTarget; + }, + movementX: function(event) { + if ("movementX" in event) return event.movementX; + event !== lastMouseEvent && (lastMouseEvent && "mousemove" === event.type ? (lastMovementX = event.screenX - lastMouseEvent.screenX, lastMovementY = event.screenY - lastMouseEvent.screenY) : lastMovementY = lastMovementX = 0, lastMouseEvent = event); + return lastMovementX; + }, + movementY: function(event) { + return "movementY" in event ? event.movementY : lastMovementY; + } + }), SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface), DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }), SyntheticDragEvent = createSyntheticEvent(DragEventInterface), FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }), SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface), AnimationEventInterface = assign({}, EventInterface, { + animationName: 0, + elapsedTime: 0, + pseudoElement: 0 + }), SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface), ClipboardEventInterface = assign({}, EventInterface, { + clipboardData: function(event) { + return "clipboardData" in event ? event.clipboardData : window.clipboardData; + } + }), SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface), CompositionEventInterface = assign({}, EventInterface, { data: 0 }), SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface), normalizeKey = { + Esc: "Escape", + Spacebar: " ", + Left: "ArrowLeft", + Up: "ArrowUp", + Right: "ArrowRight", + Down: "ArrowDown", + Del: "Delete", + Win: "OS", + Menu: "ContextMenu", + Apps: "ContextMenu", + Scroll: "ScrollLock", + MozPrintableKey: "Unidentified" + }, translateToKey = { + 8: "Backspace", + 9: "Tab", + 12: "Clear", + 13: "Enter", + 16: "Shift", + 17: "Control", + 18: "Alt", + 19: "Pause", + 20: "CapsLock", + 27: "Escape", + 32: " ", + 33: "PageUp", + 34: "PageDown", + 35: "End", + 36: "Home", + 37: "ArrowLeft", + 38: "ArrowUp", + 39: "ArrowRight", + 40: "ArrowDown", + 45: "Insert", + 46: "Delete", + 112: "F1", + 113: "F2", + 114: "F3", + 115: "F4", + 116: "F5", + 117: "F6", + 118: "F7", + 119: "F8", + 120: "F9", + 121: "F10", + 122: "F11", + 123: "F12", + 144: "NumLock", + 145: "ScrollLock", + 224: "Meta" + }, modifierKeyToProp = { + Alt: "altKey", + Control: "ctrlKey", + Meta: "metaKey", + Shift: "shiftKey" + }; + function modifierStateGetter(keyArg) { + var nativeEvent = this.nativeEvent; + return nativeEvent.getModifierState ? nativeEvent.getModifierState(keyArg) : (keyArg = modifierKeyToProp[keyArg]) ? !!nativeEvent[keyArg] : false; + } + function getEventModifierState() { + return modifierStateGetter; + } + var KeyboardEventInterface = assign({}, UIEventInterface, { + key: function(nativeEvent) { + if (nativeEvent.key) { + var key = normalizeKey[nativeEvent.key] || nativeEvent.key; + if ("Unidentified" !== key) return key; + } + return "keypress" === nativeEvent.type ? (nativeEvent = getEventCharCode(nativeEvent), 13 === nativeEvent ? "Enter" : String.fromCharCode(nativeEvent)) : "keydown" === nativeEvent.type || "keyup" === nativeEvent.type ? translateToKey[nativeEvent.keyCode] || "Unidentified" : ""; + }, + code: 0, + location: 0, + ctrlKey: 0, + shiftKey: 0, + altKey: 0, + metaKey: 0, + repeat: 0, + locale: 0, + getModifierState: getEventModifierState, + charCode: function(event) { + return "keypress" === event.type ? getEventCharCode(event) : 0; + }, + keyCode: function(event) { + return "keydown" === event.type || "keyup" === event.type ? event.keyCode : 0; + }, + which: function(event) { + return "keypress" === event.type ? getEventCharCode(event) : "keydown" === event.type || "keyup" === event.type ? event.keyCode : 0; + } + }), SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface), PointerEventInterface = assign({}, MouseEventInterface, { + pointerId: 0, + width: 0, + height: 0, + pressure: 0, + tangentialPressure: 0, + tiltX: 0, + tiltY: 0, + twist: 0, + pointerType: 0, + isPrimary: 0 + }), SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface), TouchEventInterface = assign({}, UIEventInterface, { + touches: 0, + targetTouches: 0, + changedTouches: 0, + altKey: 0, + metaKey: 0, + ctrlKey: 0, + shiftKey: 0, + getModifierState: getEventModifierState + }), SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface), TransitionEventInterface = assign({}, EventInterface, { + propertyName: 0, + elapsedTime: 0, + pseudoElement: 0 + }), SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface), WheelEventInterface = assign({}, MouseEventInterface, { + deltaX: function(event) { + return "deltaX" in event ? event.deltaX : "wheelDeltaX" in event ? -event.wheelDeltaX : 0; + }, + deltaY: function(event) { + return "deltaY" in event ? event.deltaY : "wheelDeltaY" in event ? -event.wheelDeltaY : "wheelDelta" in event ? -event.wheelDelta : 0; + }, + deltaZ: 0, + deltaMode: 0 + }), SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface), ToggleEventInterface = assign({}, EventInterface, { + newState: 0, + oldState: 0 + }), SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface), END_KEYCODES = [9, 13, 27, 32], canUseCompositionEvent = canUseDOM && "CompositionEvent" in window, documentMode = null; + canUseDOM && "documentMode" in document && (documentMode = document.documentMode); + var canUseTextInputEvent = canUseDOM && "TextEvent" in window && !documentMode, useFallbackCompositionData = canUseDOM && (!canUseCompositionEvent || documentMode && 8 < documentMode && 11 >= documentMode), SPACEBAR_CHAR = String.fromCharCode(32), hasSpaceKeypress = false; + function isFallbackCompositionEnd(domEventName, nativeEvent) { + switch (domEventName) { + case "keyup": + return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode); + case "keydown": + return 229 !== nativeEvent.keyCode; + case "keypress": + case "mousedown": + case "focusout": + return true; + default: + return false; + } + } + function getDataFromCustomEvent(nativeEvent) { + nativeEvent = nativeEvent.detail; + return "object" === typeof nativeEvent && "data" in nativeEvent ? nativeEvent.data : null; + } + var isComposing = false; + function getNativeBeforeInputChars(domEventName, nativeEvent) { + switch (domEventName) { + case "compositionend": + return getDataFromCustomEvent(nativeEvent); + case "keypress": + if (32 !== nativeEvent.which) return null; + hasSpaceKeypress = true; + return SPACEBAR_CHAR; + case "textInput": + return domEventName = nativeEvent.data, domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName; + default: + return null; + } + } + function getFallbackBeforeInputChars(domEventName, nativeEvent) { + if (isComposing) + return "compositionend" === domEventName || !canUseCompositionEvent && isFallbackCompositionEnd(domEventName, nativeEvent) ? (domEventName = getData(), fallbackText = startText = root = null, isComposing = false, domEventName) : null; + switch (domEventName) { + case "paste": + return null; + case "keypress": + if (!(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) || nativeEvent.ctrlKey && nativeEvent.altKey) { + if (nativeEvent.char && 1 < nativeEvent.char.length) + return nativeEvent.char; + if (nativeEvent.which) return String.fromCharCode(nativeEvent.which); + } + return null; + case "compositionend": + return useFallbackCompositionData && "ko" !== nativeEvent.locale ? null : nativeEvent.data; + default: + return null; + } + } + var supportedInputTypes = { + color: true, + date: true, + datetime: true, + "datetime-local": true, + email: true, + month: true, + number: true, + password: true, + range: true, + search: true, + tel: true, + text: true, + time: true, + url: true, + week: true + }; + function isTextInputElement(elem) { + var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase(); + return "input" === nodeName ? !!supportedInputTypes[elem.type] : "textarea" === nodeName ? true : false; + } + function createAndAccumulateChangeEvent(dispatchQueue, inst, nativeEvent, target) { + restoreTarget ? restoreQueue ? restoreQueue.push(target) : restoreQueue = [target] : restoreTarget = target; + inst = accumulateTwoPhaseListeners(inst, "onChange"); + 0 < inst.length && (nativeEvent = new SyntheticEvent( + "onChange", + "change", + null, + nativeEvent, + target + ), dispatchQueue.push({ event: nativeEvent, listeners: inst })); + } + var activeElement$1 = null, activeElementInst$1 = null; + function runEventInBatch(dispatchQueue) { + processDispatchQueue(dispatchQueue, 0); + } + function getInstIfValueChanged(targetInst) { + var targetNode = getNodeFromInstance(targetInst); + if (updateValueIfChanged(targetNode)) return targetInst; + } + function getTargetInstForChangeEvent(domEventName, targetInst) { + if ("change" === domEventName) return targetInst; + } + var isInputEventSupported = false; + if (canUseDOM) { + var JSCompiler_inline_result$jscomp$286; + if (canUseDOM) { + var isSupported$jscomp$inline_427 = "oninput" in document; + if (!isSupported$jscomp$inline_427) { + var element$jscomp$inline_428 = document.createElement("div"); + element$jscomp$inline_428.setAttribute("oninput", "return;"); + isSupported$jscomp$inline_427 = "function" === typeof element$jscomp$inline_428.oninput; + } + JSCompiler_inline_result$jscomp$286 = isSupported$jscomp$inline_427; + } else JSCompiler_inline_result$jscomp$286 = false; + isInputEventSupported = JSCompiler_inline_result$jscomp$286 && (!document.documentMode || 9 < document.documentMode); + } + function stopWatchingForValueChange() { + activeElement$1 && (activeElement$1.detachEvent("onpropertychange", handlePropertyChange), activeElementInst$1 = activeElement$1 = null); + } + function handlePropertyChange(nativeEvent) { + if ("value" === nativeEvent.propertyName && getInstIfValueChanged(activeElementInst$1)) { + var dispatchQueue = []; + createAndAccumulateChangeEvent( + dispatchQueue, + activeElementInst$1, + nativeEvent, + getEventTarget(nativeEvent) + ); + batchedUpdates$1(runEventInBatch, dispatchQueue); + } + } + function handleEventsForInputEventPolyfill(domEventName, target, targetInst) { + "focusin" === domEventName ? (stopWatchingForValueChange(), activeElement$1 = target, activeElementInst$1 = targetInst, activeElement$1.attachEvent("onpropertychange", handlePropertyChange)) : "focusout" === domEventName && stopWatchingForValueChange(); + } + function getTargetInstForInputEventPolyfill(domEventName) { + if ("selectionchange" === domEventName || "keyup" === domEventName || "keydown" === domEventName) + return getInstIfValueChanged(activeElementInst$1); + } + function getTargetInstForClickEvent(domEventName, targetInst) { + if ("click" === domEventName) return getInstIfValueChanged(targetInst); + } + function getTargetInstForInputOrChangeEvent(domEventName, targetInst) { + if ("input" === domEventName || "change" === domEventName) + return getInstIfValueChanged(targetInst); + } + function is2(x, y) { + return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y; + } + var objectIs = "function" === typeof Object.is ? Object.is : is2; + function shallowEqual(objA, objB) { + if (objectIs(objA, objB)) return true; + if ("object" !== typeof objA || null === objA || "object" !== typeof objB || null === objB) + return false; + var keysA = Object.keys(objA), keysB = Object.keys(objB); + if (keysA.length !== keysB.length) return false; + for (keysB = 0; keysB < keysA.length; keysB++) { + var currentKey = keysA[keysB]; + if (!hasOwnProperty.call(objB, currentKey) || !objectIs(objA[currentKey], objB[currentKey])) + return false; + } + return true; + } + function getLeafNode(node) { + for (; node && node.firstChild; ) node = node.firstChild; + return node; + } + function getNodeForCharacterOffset(root2, offset) { + var node = getLeafNode(root2); + root2 = 0; + for (var nodeEnd; node; ) { + if (3 === node.nodeType) { + nodeEnd = root2 + node.textContent.length; + if (root2 <= offset && nodeEnd >= offset) + return { node, offset: offset - root2 }; + root2 = nodeEnd; + } + a: { + for (; node; ) { + if (node.nextSibling) { + node = node.nextSibling; + break a; + } + node = node.parentNode; + } + node = void 0; + } + node = getLeafNode(node); + } + } + function containsNode(outerNode, innerNode) { + return outerNode && innerNode ? outerNode === innerNode ? true : outerNode && 3 === outerNode.nodeType ? false : innerNode && 3 === innerNode.nodeType ? containsNode(outerNode, innerNode.parentNode) : "contains" in outerNode ? outerNode.contains(innerNode) : outerNode.compareDocumentPosition ? !!(outerNode.compareDocumentPosition(innerNode) & 16) : false : false; + } + function getActiveElementDeep(containerInfo) { + containerInfo = null != containerInfo && null != containerInfo.ownerDocument && null != containerInfo.ownerDocument.defaultView ? containerInfo.ownerDocument.defaultView : window; + for (var element = getActiveElement(containerInfo.document); element instanceof containerInfo.HTMLIFrameElement; ) { + try { + var JSCompiler_inline_result = "string" === typeof element.contentWindow.location.href; + } catch (err) { + JSCompiler_inline_result = false; + } + if (JSCompiler_inline_result) containerInfo = element.contentWindow; + else break; + element = getActiveElement(containerInfo.document); + } + return element; + } + function hasSelectionCapabilities(elem) { + var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase(); + return nodeName && ("input" === nodeName && ("text" === elem.type || "search" === elem.type || "tel" === elem.type || "url" === elem.type || "password" === elem.type) || "textarea" === nodeName || "true" === elem.contentEditable); + } + var skipSelectionChangeEvent = canUseDOM && "documentMode" in document && 11 >= document.documentMode, activeElement = null, activeElementInst = null, lastSelection = null, mouseDown = false; + function constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) { + var doc = nativeEventTarget.window === nativeEventTarget ? nativeEventTarget.document : 9 === nativeEventTarget.nodeType ? nativeEventTarget : nativeEventTarget.ownerDocument; + mouseDown || null == activeElement || activeElement !== getActiveElement(doc) || (doc = activeElement, "selectionStart" in doc && hasSelectionCapabilities(doc) ? doc = { start: doc.selectionStart, end: doc.selectionEnd } : (doc = (doc.ownerDocument && doc.ownerDocument.defaultView || window).getSelection(), doc = { + anchorNode: doc.anchorNode, + anchorOffset: doc.anchorOffset, + focusNode: doc.focusNode, + focusOffset: doc.focusOffset + }), lastSelection && shallowEqual(lastSelection, doc) || (lastSelection = doc, doc = accumulateTwoPhaseListeners(activeElementInst, "onSelect"), 0 < doc.length && (nativeEvent = new SyntheticEvent( + "onSelect", + "select", + null, + nativeEvent, + nativeEventTarget + ), dispatchQueue.push({ event: nativeEvent, listeners: doc }), nativeEvent.target = activeElement))); + } + function makePrefixMap(styleProp, eventName) { + var prefixes = {}; + prefixes[styleProp.toLowerCase()] = eventName.toLowerCase(); + prefixes["Webkit" + styleProp] = "webkit" + eventName; + prefixes["Moz" + styleProp] = "moz" + eventName; + return prefixes; + } + var vendorPrefixes = { + animationend: makePrefixMap("Animation", "AnimationEnd"), + animationiteration: makePrefixMap("Animation", "AnimationIteration"), + animationstart: makePrefixMap("Animation", "AnimationStart"), + transitionrun: makePrefixMap("Transition", "TransitionRun"), + transitionstart: makePrefixMap("Transition", "TransitionStart"), + transitioncancel: makePrefixMap("Transition", "TransitionCancel"), + transitionend: makePrefixMap("Transition", "TransitionEnd") + }, prefixedEventNames = {}, style = {}; + canUseDOM && (style = document.createElement("div").style, "AnimationEvent" in window || (delete vendorPrefixes.animationend.animation, delete vendorPrefixes.animationiteration.animation, delete vendorPrefixes.animationstart.animation), "TransitionEvent" in window || delete vendorPrefixes.transitionend.transition); + function getVendorPrefixedEventName(eventName) { + if (prefixedEventNames[eventName]) return prefixedEventNames[eventName]; + if (!vendorPrefixes[eventName]) return eventName; + var prefixMap = vendorPrefixes[eventName], styleProp; + for (styleProp in prefixMap) + if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) + return prefixedEventNames[eventName] = prefixMap[styleProp]; + return eventName; + } + var ANIMATION_END = getVendorPrefixedEventName("animationend"), ANIMATION_ITERATION = getVendorPrefixedEventName("animationiteration"), ANIMATION_START = getVendorPrefixedEventName("animationstart"), TRANSITION_RUN = getVendorPrefixedEventName("transitionrun"), TRANSITION_START = getVendorPrefixedEventName("transitionstart"), TRANSITION_CANCEL = getVendorPrefixedEventName("transitioncancel"), TRANSITION_END = getVendorPrefixedEventName("transitionend"), topLevelEventsToReactNames = /* @__PURE__ */ new Map(), simpleEventPluginEvents = "abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error 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( + " " + ); + simpleEventPluginEvents.push("scrollEnd"); + function registerSimpleEvent(domEventName, reactName) { + topLevelEventsToReactNames.set(domEventName, reactName); + registerTwoPhaseEvent(reactName, [domEventName]); + } + var reportGlobalError = "function" === typeof reportError ? reportError : function(error) { + if ("object" === typeof window && "function" === typeof window.ErrorEvent) { + var event = new window.ErrorEvent("error", { + bubbles: true, + cancelable: true, + message: "object" === typeof error && null !== error && "string" === typeof error.message ? String(error.message) : String(error), + error + }); + if (!window.dispatchEvent(event)) return; + } else if ("object" === typeof process && "function" === typeof process.emit) { + process.emit("uncaughtException", error); + return; + } + console.error(error); + }, concurrentQueues = [], concurrentQueuesIndex = 0, concurrentlyUpdatedLanes = 0; + function finishQueueingConcurrentUpdates() { + for (var endIndex = concurrentQueuesIndex, i = concurrentlyUpdatedLanes = concurrentQueuesIndex = 0; i < endIndex; ) { + var fiber = concurrentQueues[i]; + concurrentQueues[i++] = null; + var queue = concurrentQueues[i]; + concurrentQueues[i++] = null; + var update = concurrentQueues[i]; + concurrentQueues[i++] = null; + var lane = concurrentQueues[i]; + concurrentQueues[i++] = null; + if (null !== queue && null !== update) { + var pending = queue.pending; + null === pending ? update.next = update : (update.next = pending.next, pending.next = update); + queue.pending = update; + } + 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane); + } + } + function enqueueUpdate$1(fiber, queue, update, lane) { + concurrentQueues[concurrentQueuesIndex++] = fiber; + concurrentQueues[concurrentQueuesIndex++] = queue; + concurrentQueues[concurrentQueuesIndex++] = update; + concurrentQueues[concurrentQueuesIndex++] = lane; + concurrentlyUpdatedLanes |= lane; + fiber.lanes |= lane; + fiber = fiber.alternate; + null !== fiber && (fiber.lanes |= lane); + } + function enqueueConcurrentHookUpdate(fiber, queue, update, lane) { + enqueueUpdate$1(fiber, queue, update, lane); + return getRootForUpdatedFiber(fiber); + } + function enqueueConcurrentRenderForLane(fiber, lane) { + enqueueUpdate$1(fiber, null, null, lane); + return getRootForUpdatedFiber(fiber); + } + function markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) { + sourceFiber.lanes |= lane; + var alternate = sourceFiber.alternate; + null !== alternate && (alternate.lanes |= lane); + for (var isHidden = false, parent = sourceFiber.return; null !== parent; ) + parent.childLanes |= lane, alternate = parent.alternate, null !== alternate && (alternate.childLanes |= lane), 22 === parent.tag && (sourceFiber = parent.stateNode, null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = true)), sourceFiber = parent, parent = parent.return; + return 3 === sourceFiber.tag ? (parent = sourceFiber.stateNode, isHidden && null !== update && (isHidden = 31 - clz32(lane), sourceFiber = parent.hiddenUpdates, alternate = sourceFiber[isHidden], null === alternate ? sourceFiber[isHidden] = [update] : alternate.push(update), update.lane = lane | 536870912), parent) : null; + } + function getRootForUpdatedFiber(sourceFiber) { + if (50 < nestedUpdateCount) + throw nestedUpdateCount = 0, rootWithNestedUpdates = null, Error(formatProdErrorMessage(185)); + for (var parent = sourceFiber.return; null !== parent; ) + sourceFiber = parent, parent = sourceFiber.return; + return 3 === sourceFiber.tag ? sourceFiber.stateNode : null; + } + var emptyContextObject = {}; + function FiberNode(tag, pendingProps, key, mode) { + this.tag = tag; + this.key = key; + this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null; + this.index = 0; + this.refCleanup = this.ref = null; + this.pendingProps = pendingProps; + this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null; + this.mode = mode; + this.subtreeFlags = this.flags = 0; + this.deletions = null; + this.childLanes = this.lanes = 0; + this.alternate = null; + } + function createFiberImplClass(tag, pendingProps, key, mode) { + return new FiberNode(tag, pendingProps, key, mode); + } + function shouldConstruct(Component) { + Component = Component.prototype; + return !(!Component || !Component.isReactComponent); + } + function createWorkInProgress(current, pendingProps) { + var workInProgress2 = current.alternate; + null === workInProgress2 ? (workInProgress2 = createFiberImplClass( + current.tag, + pendingProps, + current.key, + current.mode + ), workInProgress2.elementType = current.elementType, workInProgress2.type = current.type, workInProgress2.stateNode = current.stateNode, workInProgress2.alternate = current, current.alternate = workInProgress2) : (workInProgress2.pendingProps = pendingProps, workInProgress2.type = current.type, workInProgress2.flags = 0, workInProgress2.subtreeFlags = 0, workInProgress2.deletions = null); + workInProgress2.flags = current.flags & 65011712; + workInProgress2.childLanes = current.childLanes; + workInProgress2.lanes = current.lanes; + workInProgress2.child = current.child; + workInProgress2.memoizedProps = current.memoizedProps; + workInProgress2.memoizedState = current.memoizedState; + workInProgress2.updateQueue = current.updateQueue; + pendingProps = current.dependencies; + workInProgress2.dependencies = null === pendingProps ? null : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext }; + workInProgress2.sibling = current.sibling; + workInProgress2.index = current.index; + workInProgress2.ref = current.ref; + workInProgress2.refCleanup = current.refCleanup; + return workInProgress2; + } + function resetWorkInProgress(workInProgress2, renderLanes2) { + workInProgress2.flags &= 65011714; + var current = workInProgress2.alternate; + null === current ? (workInProgress2.childLanes = 0, workInProgress2.lanes = renderLanes2, workInProgress2.child = null, workInProgress2.subtreeFlags = 0, workInProgress2.memoizedProps = null, workInProgress2.memoizedState = null, workInProgress2.updateQueue = null, workInProgress2.dependencies = null, workInProgress2.stateNode = null) : (workInProgress2.childLanes = current.childLanes, workInProgress2.lanes = current.lanes, workInProgress2.child = current.child, workInProgress2.subtreeFlags = 0, workInProgress2.deletions = null, workInProgress2.memoizedProps = current.memoizedProps, workInProgress2.memoizedState = current.memoizedState, workInProgress2.updateQueue = current.updateQueue, workInProgress2.type = current.type, renderLanes2 = current.dependencies, workInProgress2.dependencies = null === renderLanes2 ? null : { + lanes: renderLanes2.lanes, + firstContext: renderLanes2.firstContext + }); + return workInProgress2; + } + function createFiberFromTypeAndProps(type, key, pendingProps, owner, mode, lanes) { + var fiberTag = 0; + owner = type; + if ("function" === typeof type) shouldConstruct(type) && (fiberTag = 1); + else if ("string" === typeof type) + fiberTag = isHostHoistableType( + type, + pendingProps, + contextStackCursor.current + ) ? 26 : "html" === type || "head" === type || "body" === type ? 27 : 5; + else + a: switch (type) { + case REACT_ACTIVITY_TYPE: + return type = createFiberImplClass(31, pendingProps, key, mode), type.elementType = REACT_ACTIVITY_TYPE, type.lanes = lanes, type; + case REACT_FRAGMENT_TYPE: + return createFiberFromFragment(pendingProps.children, mode, lanes, key); + case REACT_STRICT_MODE_TYPE: + fiberTag = 8; + mode |= 24; + break; + case REACT_PROFILER_TYPE: + return type = createFiberImplClass(12, pendingProps, key, mode | 2), type.elementType = REACT_PROFILER_TYPE, type.lanes = lanes, type; + case REACT_SUSPENSE_TYPE: + return type = createFiberImplClass(13, pendingProps, key, mode), type.elementType = REACT_SUSPENSE_TYPE, type.lanes = lanes, type; + case REACT_SUSPENSE_LIST_TYPE: + return type = createFiberImplClass(19, pendingProps, key, mode), type.elementType = REACT_SUSPENSE_LIST_TYPE, type.lanes = lanes, type; + default: + if ("object" === typeof type && null !== type) + switch (type.$$typeof) { + case REACT_CONTEXT_TYPE: + fiberTag = 10; + break a; + case REACT_CONSUMER_TYPE: + fiberTag = 9; + break a; + case REACT_FORWARD_REF_TYPE: + fiberTag = 11; + break a; + case REACT_MEMO_TYPE: + fiberTag = 14; + break a; + case REACT_LAZY_TYPE: + fiberTag = 16; + owner = null; + break a; + } + fiberTag = 29; + pendingProps = Error( + formatProdErrorMessage(130, null === type ? "null" : typeof type, "") + ); + owner = null; + } + key = createFiberImplClass(fiberTag, pendingProps, key, mode); + key.elementType = type; + key.type = owner; + key.lanes = lanes; + return key; + } + function createFiberFromFragment(elements, mode, lanes, key) { + elements = createFiberImplClass(7, elements, key, mode); + elements.lanes = lanes; + return elements; + } + function createFiberFromText(content, mode, lanes) { + content = createFiberImplClass(6, content, null, mode); + content.lanes = lanes; + return content; + } + function createFiberFromDehydratedFragment(dehydratedNode) { + var fiber = createFiberImplClass(18, null, null, 0); + fiber.stateNode = dehydratedNode; + return fiber; + } + function createFiberFromPortal(portal, mode, lanes) { + mode = createFiberImplClass( + 4, + null !== portal.children ? portal.children : [], + portal.key, + mode + ); + mode.lanes = lanes; + mode.stateNode = { + containerInfo: portal.containerInfo, + pendingChildren: null, + implementation: portal.implementation + }; + return mode; + } + var CapturedStacks = /* @__PURE__ */ new WeakMap(); + function createCapturedValueAtFiber(value, source) { + if ("object" === typeof value && null !== value) { + var existing = CapturedStacks.get(value); + if (void 0 !== existing) return existing; + source = { + value, + source, + stack: getStackByFiberInDevAndProd(source) + }; + CapturedStacks.set(value, source); + return source; + } + return { + value, + source, + stack: getStackByFiberInDevAndProd(source) + }; + } + var forkStack = [], forkStackIndex = 0, treeForkProvider = null, treeForkCount = 0, idStack = [], idStackIndex = 0, treeContextProvider = null, treeContextId = 1, treeContextOverflow = ""; + function pushTreeFork(workInProgress2, totalChildren) { + forkStack[forkStackIndex++] = treeForkCount; + forkStack[forkStackIndex++] = treeForkProvider; + treeForkProvider = workInProgress2; + treeForkCount = totalChildren; + } + function pushTreeId(workInProgress2, totalChildren, index3) { + idStack[idStackIndex++] = treeContextId; + idStack[idStackIndex++] = treeContextOverflow; + idStack[idStackIndex++] = treeContextProvider; + treeContextProvider = workInProgress2; + var baseIdWithLeadingBit = treeContextId; + workInProgress2 = treeContextOverflow; + var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1; + baseIdWithLeadingBit &= ~(1 << baseLength); + index3 += 1; + var length = 32 - clz32(totalChildren) + baseLength; + if (30 < length) { + var numberOfOverflowBits = baseLength - baseLength % 5; + length = (baseIdWithLeadingBit & (1 << numberOfOverflowBits) - 1).toString(32); + baseIdWithLeadingBit >>= numberOfOverflowBits; + baseLength -= numberOfOverflowBits; + treeContextId = 1 << 32 - clz32(totalChildren) + baseLength | index3 << baseLength | baseIdWithLeadingBit; + treeContextOverflow = length + workInProgress2; + } else + treeContextId = 1 << length | index3 << baseLength | baseIdWithLeadingBit, treeContextOverflow = workInProgress2; + } + function pushMaterializedTreeId(workInProgress2) { + null !== workInProgress2.return && (pushTreeFork(workInProgress2, 1), pushTreeId(workInProgress2, 1, 0)); + } + function popTreeContext(workInProgress2) { + for (; workInProgress2 === treeForkProvider; ) + treeForkProvider = forkStack[--forkStackIndex], forkStack[forkStackIndex] = null, treeForkCount = forkStack[--forkStackIndex], forkStack[forkStackIndex] = null; + for (; workInProgress2 === treeContextProvider; ) + treeContextProvider = idStack[--idStackIndex], idStack[idStackIndex] = null, treeContextOverflow = idStack[--idStackIndex], idStack[idStackIndex] = null, treeContextId = idStack[--idStackIndex], idStack[idStackIndex] = null; + } + function restoreSuspendedTreeContext(workInProgress2, suspendedContext) { + idStack[idStackIndex++] = treeContextId; + idStack[idStackIndex++] = treeContextOverflow; + idStack[idStackIndex++] = treeContextProvider; + treeContextId = suspendedContext.id; + treeContextOverflow = suspendedContext.overflow; + treeContextProvider = workInProgress2; + } + var hydrationParentFiber = null, nextHydratableInstance = null, isHydrating = false, hydrationErrors = null, rootOrSingletonContext = false, HydrationMismatchException = Error(formatProdErrorMessage(519)); + function throwOnHydrationMismatch(fiber) { + var error = Error( + formatProdErrorMessage( + 418, + 1 < arguments.length && void 0 !== arguments[1] && arguments[1] ? "text" : "HTML", + "" + ) + ); + queueHydrationError(createCapturedValueAtFiber(error, fiber)); + throw HydrationMismatchException; + } + function prepareToHydrateHostInstance(fiber) { + var instance = fiber.stateNode, type = fiber.type, props = fiber.memoizedProps; + instance[internalInstanceKey] = fiber; + instance[internalPropsKey] = props; + switch (type) { + case "dialog": + listenToNonDelegatedEvent("cancel", instance); + listenToNonDelegatedEvent("close", instance); + break; + case "iframe": + case "object": + case "embed": + listenToNonDelegatedEvent("load", instance); + break; + case "video": + case "audio": + for (type = 0; type < mediaEventTypes.length; type++) + listenToNonDelegatedEvent(mediaEventTypes[type], instance); + break; + case "source": + listenToNonDelegatedEvent("error", instance); + break; + case "img": + case "image": + case "link": + listenToNonDelegatedEvent("error", instance); + listenToNonDelegatedEvent("load", instance); + break; + case "details": + listenToNonDelegatedEvent("toggle", instance); + break; + case "input": + listenToNonDelegatedEvent("invalid", instance); + initInput( + instance, + props.value, + props.defaultValue, + props.checked, + props.defaultChecked, + props.type, + props.name, + true + ); + break; + case "select": + listenToNonDelegatedEvent("invalid", instance); + break; + case "textarea": + listenToNonDelegatedEvent("invalid", instance), initTextarea(instance, props.value, props.defaultValue, props.children); + } + type = props.children; + "string" !== typeof type && "number" !== typeof type && "bigint" !== typeof type || instance.textContent === "" + type || true === props.suppressHydrationWarning || checkForUnmatchedText(instance.textContent, type) ? (null != props.popover && (listenToNonDelegatedEvent("beforetoggle", instance), listenToNonDelegatedEvent("toggle", instance)), null != props.onScroll && listenToNonDelegatedEvent("scroll", instance), null != props.onScrollEnd && listenToNonDelegatedEvent("scrollend", instance), null != props.onClick && (instance.onclick = noop$1), instance = true) : instance = false; + instance || throwOnHydrationMismatch(fiber, true); + } + function popToNextHostParent(fiber) { + for (hydrationParentFiber = fiber.return; hydrationParentFiber; ) + switch (hydrationParentFiber.tag) { + case 5: + case 31: + case 13: + rootOrSingletonContext = false; + return; + case 27: + case 3: + rootOrSingletonContext = true; + return; + default: + hydrationParentFiber = hydrationParentFiber.return; + } + } + function popHydrationState(fiber) { + if (fiber !== hydrationParentFiber) return false; + if (!isHydrating) return popToNextHostParent(fiber), isHydrating = true, false; + var tag = fiber.tag, JSCompiler_temp; + if (JSCompiler_temp = 3 !== tag && 27 !== tag) { + if (JSCompiler_temp = 5 === tag) + JSCompiler_temp = fiber.type, JSCompiler_temp = !("form" !== JSCompiler_temp && "button" !== JSCompiler_temp) || shouldSetTextContent(fiber.type, fiber.memoizedProps); + JSCompiler_temp = !JSCompiler_temp; + } + JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber); + popToNextHostParent(fiber); + if (13 === tag) { + fiber = fiber.memoizedState; + fiber = null !== fiber ? fiber.dehydrated : null; + if (!fiber) throw Error(formatProdErrorMessage(317)); + nextHydratableInstance = getNextHydratableInstanceAfterHydrationBoundary(fiber); + } else if (31 === tag) { + fiber = fiber.memoizedState; + fiber = null !== fiber ? fiber.dehydrated : null; + if (!fiber) throw Error(formatProdErrorMessage(317)); + nextHydratableInstance = getNextHydratableInstanceAfterHydrationBoundary(fiber); + } else + 27 === tag ? (tag = nextHydratableInstance, isSingletonScope(fiber.type) ? (fiber = previousHydratableOnEnteringScopedSingleton, previousHydratableOnEnteringScopedSingleton = null, nextHydratableInstance = fiber) : nextHydratableInstance = tag) : nextHydratableInstance = hydrationParentFiber ? getNextHydratable(fiber.stateNode.nextSibling) : null; + return true; + } + function resetHydrationState() { + nextHydratableInstance = hydrationParentFiber = null; + isHydrating = false; + } + function upgradeHydrationErrorsToRecoverable() { + var queuedErrors = hydrationErrors; + null !== queuedErrors && (null === workInProgressRootRecoverableErrors ? workInProgressRootRecoverableErrors = queuedErrors : workInProgressRootRecoverableErrors.push.apply( + workInProgressRootRecoverableErrors, + queuedErrors + ), hydrationErrors = null); + return queuedErrors; + } + function queueHydrationError(error) { + null === hydrationErrors ? hydrationErrors = [error] : hydrationErrors.push(error); + } + var valueCursor = createCursor(null), currentlyRenderingFiber$1 = null, lastContextDependency = null; + function pushProvider(providerFiber, context, nextValue) { + push(valueCursor, context._currentValue); + context._currentValue = nextValue; + } + function popProvider(context) { + context._currentValue = valueCursor.current; + pop(valueCursor); + } + function scheduleContextWorkOnParentPath(parent, renderLanes2, propagationRoot) { + for (; null !== parent; ) { + var alternate = parent.alternate; + (parent.childLanes & renderLanes2) !== renderLanes2 ? (parent.childLanes |= renderLanes2, null !== alternate && (alternate.childLanes |= renderLanes2)) : null !== alternate && (alternate.childLanes & renderLanes2) !== renderLanes2 && (alternate.childLanes |= renderLanes2); + if (parent === propagationRoot) break; + parent = parent.return; + } + } + function propagateContextChanges(workInProgress2, contexts, renderLanes2, forcePropagateEntireTree) { + var fiber = workInProgress2.child; + null !== fiber && (fiber.return = workInProgress2); + for (; null !== fiber; ) { + var list = fiber.dependencies; + if (null !== list) { + var nextFiber = fiber.child; + list = list.firstContext; + a: for (; null !== list; ) { + var dependency = list; + list = fiber; + for (var i = 0; i < contexts.length; i++) + if (dependency.context === contexts[i]) { + list.lanes |= renderLanes2; + dependency = list.alternate; + null !== dependency && (dependency.lanes |= renderLanes2); + scheduleContextWorkOnParentPath( + list.return, + renderLanes2, + workInProgress2 + ); + forcePropagateEntireTree || (nextFiber = null); + break a; + } + list = dependency.next; + } + } else if (18 === fiber.tag) { + nextFiber = fiber.return; + if (null === nextFiber) throw Error(formatProdErrorMessage(341)); + nextFiber.lanes |= renderLanes2; + list = nextFiber.alternate; + null !== list && (list.lanes |= renderLanes2); + scheduleContextWorkOnParentPath(nextFiber, renderLanes2, workInProgress2); + nextFiber = null; + } else nextFiber = fiber.child; + if (null !== nextFiber) nextFiber.return = fiber; + else + for (nextFiber = fiber; null !== nextFiber; ) { + if (nextFiber === workInProgress2) { + nextFiber = null; + break; + } + fiber = nextFiber.sibling; + if (null !== fiber) { + fiber.return = nextFiber.return; + nextFiber = fiber; + break; + } + nextFiber = nextFiber.return; + } + fiber = nextFiber; + } + } + function propagateParentContextChanges(current, workInProgress2, renderLanes2, forcePropagateEntireTree) { + current = null; + for (var parent = workInProgress2, isInsidePropagationBailout = false; null !== parent; ) { + if (!isInsidePropagationBailout) { + if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = true; + else if (0 !== (parent.flags & 262144)) break; + } + if (10 === parent.tag) { + var currentParent = parent.alternate; + if (null === currentParent) throw Error(formatProdErrorMessage(387)); + currentParent = currentParent.memoizedProps; + if (null !== currentParent) { + var context = parent.type; + objectIs(parent.pendingProps.value, currentParent.value) || (null !== current ? current.push(context) : current = [context]); + } + } else if (parent === hostTransitionProviderCursor.current) { + currentParent = parent.alternate; + if (null === currentParent) throw Error(formatProdErrorMessage(387)); + currentParent.memoizedState.memoizedState !== parent.memoizedState.memoizedState && (null !== current ? current.push(HostTransitionContext) : current = [HostTransitionContext]); + } + parent = parent.return; + } + null !== current && propagateContextChanges( + workInProgress2, + current, + renderLanes2, + forcePropagateEntireTree + ); + workInProgress2.flags |= 262144; + } + function checkIfContextChanged(currentDependencies) { + for (currentDependencies = currentDependencies.firstContext; null !== currentDependencies; ) { + if (!objectIs( + currentDependencies.context._currentValue, + currentDependencies.memoizedValue + )) + return true; + currentDependencies = currentDependencies.next; + } + return false; + } + function prepareToReadContext(workInProgress2) { + currentlyRenderingFiber$1 = workInProgress2; + lastContextDependency = null; + workInProgress2 = workInProgress2.dependencies; + null !== workInProgress2 && (workInProgress2.firstContext = null); + } + function readContext(context) { + return readContextForConsumer(currentlyRenderingFiber$1, context); + } + function readContextDuringReconciliation(consumer, context) { + null === currentlyRenderingFiber$1 && prepareToReadContext(consumer); + return readContextForConsumer(consumer, context); + } + function readContextForConsumer(consumer, context) { + var value = context._currentValue; + context = { context, memoizedValue: value, next: null }; + if (null === lastContextDependency) { + if (null === consumer) throw Error(formatProdErrorMessage(308)); + lastContextDependency = context; + consumer.dependencies = { lanes: 0, firstContext: context }; + consumer.flags |= 524288; + } else lastContextDependency = lastContextDependency.next = context; + return value; + } + var AbortControllerLocal = "undefined" !== typeof AbortController ? AbortController : function() { + var listeners = [], signal = this.signal = { + aborted: false, + addEventListener: function(type, listener) { + listeners.push(listener); + } + }; + this.abort = function() { + signal.aborted = true; + listeners.forEach(function(listener) { + return listener(); + }); + }; + }, scheduleCallback$2 = Scheduler.unstable_scheduleCallback, NormalPriority = Scheduler.unstable_NormalPriority, CacheContext = { + $$typeof: REACT_CONTEXT_TYPE, + Consumer: null, + Provider: null, + _currentValue: null, + _currentValue2: null, + _threadCount: 0 + }; + function createCache() { + return { + controller: new AbortControllerLocal(), + data: /* @__PURE__ */ new Map(), + refCount: 0 + }; + } + function releaseCache(cache) { + cache.refCount--; + 0 === cache.refCount && scheduleCallback$2(NormalPriority, function() { + cache.controller.abort(); + }); + } + var currentEntangledListeners = null, currentEntangledPendingCount = 0, currentEntangledLane = 0, currentEntangledActionThenable = null; + function entangleAsyncAction(transition, thenable) { + if (null === currentEntangledListeners) { + var entangledListeners = currentEntangledListeners = []; + currentEntangledPendingCount = 0; + currentEntangledLane = requestTransitionLane(); + currentEntangledActionThenable = { + status: "pending", + value: void 0, + then: function(resolve) { + entangledListeners.push(resolve); + } + }; + } + currentEntangledPendingCount++; + thenable.then(pingEngtangledActionScope, pingEngtangledActionScope); + return thenable; + } + function pingEngtangledActionScope() { + if (0 === --currentEntangledPendingCount && null !== currentEntangledListeners) { + null !== currentEntangledActionThenable && (currentEntangledActionThenable.status = "fulfilled"); + var listeners = currentEntangledListeners; + currentEntangledListeners = null; + currentEntangledLane = 0; + currentEntangledActionThenable = null; + for (var i = 0; i < listeners.length; i++) (0, listeners[i])(); + } + } + function chainThenableValue(thenable, result) { + var listeners = [], thenableWithOverride = { + status: "pending", + value: null, + reason: null, + then: function(resolve) { + listeners.push(resolve); + } + }; + thenable.then( + function() { + thenableWithOverride.status = "fulfilled"; + thenableWithOverride.value = result; + for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result); + }, + function(error) { + thenableWithOverride.status = "rejected"; + thenableWithOverride.reason = error; + for (error = 0; error < listeners.length; error++) + (0, listeners[error])(void 0); + } + ); + return thenableWithOverride; + } + var prevOnStartTransitionFinish = ReactSharedInternals.S; + ReactSharedInternals.S = function(transition, returnValue) { + globalMostRecentTransitionTime = now(); + "object" === typeof returnValue && null !== returnValue && "function" === typeof returnValue.then && entangleAsyncAction(transition, returnValue); + null !== prevOnStartTransitionFinish && prevOnStartTransitionFinish(transition, returnValue); + }; + var resumedCache = createCursor(null); + function peekCacheFromPool() { + var cacheResumedFromPreviousRender = resumedCache.current; + return null !== cacheResumedFromPreviousRender ? cacheResumedFromPreviousRender : workInProgressRoot.pooledCache; + } + function pushTransition(offscreenWorkInProgress, prevCachePool) { + null === prevCachePool ? push(resumedCache, resumedCache.current) : push(resumedCache, prevCachePool.pool); + } + function getSuspendedCache() { + var cacheFromPool = peekCacheFromPool(); + return null === cacheFromPool ? null : { parent: CacheContext._currentValue, pool: cacheFromPool }; + } + var SuspenseException = Error(formatProdErrorMessage(460)), SuspenseyCommitException = Error(formatProdErrorMessage(474)), SuspenseActionException = Error(formatProdErrorMessage(542)), noopSuspenseyCommitThenable = { then: function() { + } }; + function isThenableResolved(thenable) { + thenable = thenable.status; + return "fulfilled" === thenable || "rejected" === thenable; + } + function trackUsedThenable(thenableState2, thenable, index3) { + index3 = thenableState2[index3]; + void 0 === index3 ? thenableState2.push(thenable) : index3 !== thenable && (thenable.then(noop$1, noop$1), thenable = index3); + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenableState2 = thenable.reason, checkIfUseWrappedInAsyncCatch(thenableState2), thenableState2; + default: + if ("string" === typeof thenable.status) thenable.then(noop$1, noop$1); + else { + thenableState2 = workInProgressRoot; + if (null !== thenableState2 && 100 < thenableState2.shellSuspendCounter) + throw Error(formatProdErrorMessage(482)); + thenableState2 = thenable; + thenableState2.status = "pending"; + thenableState2.then( + function(fulfilledValue) { + if ("pending" === thenable.status) { + var fulfilledThenable = thenable; + fulfilledThenable.status = "fulfilled"; + fulfilledThenable.value = fulfilledValue; + } + }, + function(error) { + if ("pending" === thenable.status) { + var rejectedThenable = thenable; + rejectedThenable.status = "rejected"; + rejectedThenable.reason = error; + } + } + ); + } + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenableState2 = thenable.reason, checkIfUseWrappedInAsyncCatch(thenableState2), thenableState2; + } + suspendedThenable = thenable; + throw SuspenseException; + } + } + function resolveLazy(lazyType2) { + try { + var init = lazyType2._init; + return init(lazyType2._payload); + } catch (x) { + if (null !== x && "object" === typeof x && "function" === typeof x.then) + throw suspendedThenable = x, SuspenseException; + throw x; + } + } + var suspendedThenable = null; + function getSuspendedThenable() { + if (null === suspendedThenable) throw Error(formatProdErrorMessage(459)); + var thenable = suspendedThenable; + suspendedThenable = null; + return thenable; + } + function checkIfUseWrappedInAsyncCatch(rejectedReason) { + if (rejectedReason === SuspenseException || rejectedReason === SuspenseActionException) + throw Error(formatProdErrorMessage(483)); + } + var thenableState$1 = null, thenableIndexCounter$1 = 0; + function unwrapThenable(thenable) { + var index3 = thenableIndexCounter$1; + thenableIndexCounter$1 += 1; + null === thenableState$1 && (thenableState$1 = []); + return trackUsedThenable(thenableState$1, thenable, index3); + } + function coerceRef(workInProgress2, element) { + element = element.props.ref; + workInProgress2.ref = void 0 !== element ? element : null; + } + function throwOnInvalidObjectTypeImpl(returnFiber, newChild) { + if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE) + throw Error(formatProdErrorMessage(525)); + returnFiber = Object.prototype.toString.call(newChild); + throw Error( + formatProdErrorMessage( + 31, + "[object Object]" === returnFiber ? "object with keys {" + Object.keys(newChild).join(", ") + "}" : returnFiber + ) + ); + } + function createChildReconciler(shouldTrackSideEffects) { + function deleteChild(returnFiber, childToDelete) { + if (shouldTrackSideEffects) { + var deletions = returnFiber.deletions; + null === deletions ? (returnFiber.deletions = [childToDelete], returnFiber.flags |= 16) : deletions.push(childToDelete); + } + } + function deleteRemainingChildren(returnFiber, currentFirstChild) { + if (!shouldTrackSideEffects) return null; + for (; null !== currentFirstChild; ) + deleteChild(returnFiber, currentFirstChild), currentFirstChild = currentFirstChild.sibling; + return null; + } + function mapRemainingChildren(currentFirstChild) { + for (var existingChildren = /* @__PURE__ */ new Map(); null !== currentFirstChild; ) + null !== currentFirstChild.key ? existingChildren.set(currentFirstChild.key, currentFirstChild) : existingChildren.set(currentFirstChild.index, currentFirstChild), currentFirstChild = currentFirstChild.sibling; + return existingChildren; + } + function useFiber(fiber, pendingProps) { + fiber = createWorkInProgress(fiber, pendingProps); + fiber.index = 0; + fiber.sibling = null; + return fiber; + } + function placeChild(newFiber, lastPlacedIndex, newIndex) { + newFiber.index = newIndex; + if (!shouldTrackSideEffects) + return newFiber.flags |= 1048576, lastPlacedIndex; + newIndex = newFiber.alternate; + if (null !== newIndex) + return newIndex = newIndex.index, newIndex < lastPlacedIndex ? (newFiber.flags |= 67108866, lastPlacedIndex) : newIndex; + newFiber.flags |= 67108866; + return lastPlacedIndex; + } + function placeSingleChild(newFiber) { + shouldTrackSideEffects && null === newFiber.alternate && (newFiber.flags |= 67108866); + return newFiber; + } + function updateTextNode(returnFiber, current, textContent, lanes) { + if (null === current || 6 !== current.tag) + return current = createFiberFromText(textContent, returnFiber.mode, lanes), current.return = returnFiber, current; + current = useFiber(current, textContent); + current.return = returnFiber; + return current; + } + function updateElement(returnFiber, current, element, lanes) { + var elementType = element.type; + if (elementType === REACT_FRAGMENT_TYPE) + return updateFragment( + returnFiber, + current, + element.props.children, + lanes, + element.key + ); + if (null !== current && (current.elementType === elementType || "object" === typeof elementType && null !== elementType && elementType.$$typeof === REACT_LAZY_TYPE && resolveLazy(elementType) === current.type)) + return current = useFiber(current, element.props), coerceRef(current, element), current.return = returnFiber, current; + current = createFiberFromTypeAndProps( + element.type, + element.key, + element.props, + null, + returnFiber.mode, + lanes + ); + coerceRef(current, element); + current.return = returnFiber; + return current; + } + function updatePortal(returnFiber, current, portal, lanes) { + if (null === current || 4 !== current.tag || current.stateNode.containerInfo !== portal.containerInfo || current.stateNode.implementation !== portal.implementation) + return current = createFiberFromPortal(portal, returnFiber.mode, lanes), current.return = returnFiber, current; + current = useFiber(current, portal.children || []); + current.return = returnFiber; + return current; + } + function updateFragment(returnFiber, current, fragment, lanes, key) { + if (null === current || 7 !== current.tag) + return current = createFiberFromFragment( + fragment, + returnFiber.mode, + lanes, + key + ), current.return = returnFiber, current; + current = useFiber(current, fragment); + current.return = returnFiber; + return current; + } + function createChild(returnFiber, newChild, lanes) { + if ("string" === typeof newChild && "" !== newChild || "number" === typeof newChild || "bigint" === typeof newChild) + return newChild = createFiberFromText( + "" + newChild, + returnFiber.mode, + lanes + ), newChild.return = returnFiber, newChild; + if ("object" === typeof newChild && null !== newChild) { + switch (newChild.$$typeof) { + case REACT_ELEMENT_TYPE: + return lanes = createFiberFromTypeAndProps( + newChild.type, + newChild.key, + newChild.props, + null, + returnFiber.mode, + lanes + ), coerceRef(lanes, newChild), lanes.return = returnFiber, lanes; + case REACT_PORTAL_TYPE: + return newChild = createFiberFromPortal( + newChild, + returnFiber.mode, + lanes + ), newChild.return = returnFiber, newChild; + case REACT_LAZY_TYPE: + return newChild = resolveLazy(newChild), createChild(returnFiber, newChild, lanes); + } + if (isArrayImpl(newChild) || getIteratorFn(newChild)) + return newChild = createFiberFromFragment( + newChild, + returnFiber.mode, + lanes, + null + ), newChild.return = returnFiber, newChild; + if ("function" === typeof newChild.then) + return createChild(returnFiber, unwrapThenable(newChild), lanes); + if (newChild.$$typeof === REACT_CONTEXT_TYPE) + return createChild( + returnFiber, + readContextDuringReconciliation(returnFiber, newChild), + lanes + ); + throwOnInvalidObjectTypeImpl(returnFiber, newChild); + } + return null; + } + function updateSlot(returnFiber, oldFiber, newChild, lanes) { + var key = null !== oldFiber ? oldFiber.key : null; + if ("string" === typeof newChild && "" !== newChild || "number" === typeof newChild || "bigint" === typeof newChild) + return null !== key ? null : updateTextNode(returnFiber, oldFiber, "" + newChild, lanes); + if ("object" === typeof newChild && null !== newChild) { + switch (newChild.$$typeof) { + case REACT_ELEMENT_TYPE: + return newChild.key === key ? updateElement(returnFiber, oldFiber, newChild, lanes) : null; + case REACT_PORTAL_TYPE: + return newChild.key === key ? updatePortal(returnFiber, oldFiber, newChild, lanes) : null; + case REACT_LAZY_TYPE: + return newChild = resolveLazy(newChild), updateSlot(returnFiber, oldFiber, newChild, lanes); + } + if (isArrayImpl(newChild) || getIteratorFn(newChild)) + return null !== key ? null : updateFragment(returnFiber, oldFiber, newChild, lanes, null); + if ("function" === typeof newChild.then) + return updateSlot( + returnFiber, + oldFiber, + unwrapThenable(newChild), + lanes + ); + if (newChild.$$typeof === REACT_CONTEXT_TYPE) + return updateSlot( + returnFiber, + oldFiber, + readContextDuringReconciliation(returnFiber, newChild), + lanes + ); + throwOnInvalidObjectTypeImpl(returnFiber, newChild); + } + return null; + } + function updateFromMap(existingChildren, returnFiber, newIdx, newChild, lanes) { + if ("string" === typeof newChild && "" !== newChild || "number" === typeof newChild || "bigint" === typeof newChild) + return existingChildren = existingChildren.get(newIdx) || null, updateTextNode(returnFiber, existingChildren, "" + newChild, lanes); + if ("object" === typeof newChild && null !== newChild) { + switch (newChild.$$typeof) { + case REACT_ELEMENT_TYPE: + return existingChildren = existingChildren.get( + null === newChild.key ? newIdx : newChild.key + ) || null, updateElement(returnFiber, existingChildren, newChild, lanes); + case REACT_PORTAL_TYPE: + return existingChildren = existingChildren.get( + null === newChild.key ? newIdx : newChild.key + ) || null, updatePortal(returnFiber, existingChildren, newChild, lanes); + case REACT_LAZY_TYPE: + return newChild = resolveLazy(newChild), updateFromMap( + existingChildren, + returnFiber, + newIdx, + newChild, + lanes + ); + } + if (isArrayImpl(newChild) || getIteratorFn(newChild)) + return existingChildren = existingChildren.get(newIdx) || null, updateFragment(returnFiber, existingChildren, newChild, lanes, null); + if ("function" === typeof newChild.then) + return updateFromMap( + existingChildren, + returnFiber, + newIdx, + unwrapThenable(newChild), + lanes + ); + if (newChild.$$typeof === REACT_CONTEXT_TYPE) + return updateFromMap( + existingChildren, + returnFiber, + newIdx, + readContextDuringReconciliation(returnFiber, newChild), + lanes + ); + throwOnInvalidObjectTypeImpl(returnFiber, newChild); + } + return null; + } + function reconcileChildrenArray(returnFiber, currentFirstChild, newChildren, lanes) { + for (var resultingFirstChild = null, previousNewFiber = null, oldFiber = currentFirstChild, newIdx = currentFirstChild = 0, nextOldFiber = null; null !== oldFiber && newIdx < newChildren.length; newIdx++) { + oldFiber.index > newIdx ? (nextOldFiber = oldFiber, oldFiber = null) : nextOldFiber = oldFiber.sibling; + var newFiber = updateSlot( + returnFiber, + oldFiber, + newChildren[newIdx], + lanes + ); + if (null === newFiber) { + null === oldFiber && (oldFiber = nextOldFiber); + break; + } + shouldTrackSideEffects && oldFiber && null === newFiber.alternate && deleteChild(returnFiber, oldFiber); + currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx); + null === previousNewFiber ? resultingFirstChild = newFiber : previousNewFiber.sibling = newFiber; + previousNewFiber = newFiber; + oldFiber = nextOldFiber; + } + if (newIdx === newChildren.length) + return deleteRemainingChildren(returnFiber, oldFiber), isHydrating && pushTreeFork(returnFiber, newIdx), resultingFirstChild; + if (null === oldFiber) { + for (; newIdx < newChildren.length; newIdx++) + oldFiber = createChild(returnFiber, newChildren[newIdx], lanes), null !== oldFiber && (currentFirstChild = placeChild( + oldFiber, + currentFirstChild, + newIdx + ), null === previousNewFiber ? resultingFirstChild = oldFiber : previousNewFiber.sibling = oldFiber, previousNewFiber = oldFiber); + isHydrating && pushTreeFork(returnFiber, newIdx); + return resultingFirstChild; + } + for (oldFiber = mapRemainingChildren(oldFiber); newIdx < newChildren.length; newIdx++) + nextOldFiber = updateFromMap( + oldFiber, + returnFiber, + newIdx, + newChildren[newIdx], + lanes + ), null !== nextOldFiber && (shouldTrackSideEffects && null !== nextOldFiber.alternate && oldFiber.delete( + null === nextOldFiber.key ? newIdx : nextOldFiber.key + ), currentFirstChild = placeChild( + nextOldFiber, + currentFirstChild, + newIdx + ), null === previousNewFiber ? resultingFirstChild = nextOldFiber : previousNewFiber.sibling = nextOldFiber, previousNewFiber = nextOldFiber); + shouldTrackSideEffects && oldFiber.forEach(function(child) { + return deleteChild(returnFiber, child); + }); + isHydrating && pushTreeFork(returnFiber, newIdx); + return resultingFirstChild; + } + function reconcileChildrenIterator(returnFiber, currentFirstChild, newChildren, lanes) { + if (null == newChildren) throw Error(formatProdErrorMessage(151)); + for (var resultingFirstChild = null, previousNewFiber = null, oldFiber = currentFirstChild, newIdx = currentFirstChild = 0, nextOldFiber = null, step = newChildren.next(); null !== oldFiber && !step.done; newIdx++, step = newChildren.next()) { + oldFiber.index > newIdx ? (nextOldFiber = oldFiber, oldFiber = null) : nextOldFiber = oldFiber.sibling; + var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes); + if (null === newFiber) { + null === oldFiber && (oldFiber = nextOldFiber); + break; + } + shouldTrackSideEffects && oldFiber && null === newFiber.alternate && deleteChild(returnFiber, oldFiber); + currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx); + null === previousNewFiber ? resultingFirstChild = newFiber : previousNewFiber.sibling = newFiber; + previousNewFiber = newFiber; + oldFiber = nextOldFiber; + } + if (step.done) + return deleteRemainingChildren(returnFiber, oldFiber), isHydrating && pushTreeFork(returnFiber, newIdx), resultingFirstChild; + if (null === oldFiber) { + for (; !step.done; newIdx++, step = newChildren.next()) + step = createChild(returnFiber, step.value, lanes), null !== step && (currentFirstChild = placeChild(step, currentFirstChild, newIdx), null === previousNewFiber ? resultingFirstChild = step : previousNewFiber.sibling = step, previousNewFiber = step); + isHydrating && pushTreeFork(returnFiber, newIdx); + return resultingFirstChild; + } + for (oldFiber = mapRemainingChildren(oldFiber); !step.done; newIdx++, step = newChildren.next()) + step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes), null !== step && (shouldTrackSideEffects && null !== step.alternate && oldFiber.delete(null === step.key ? newIdx : step.key), currentFirstChild = placeChild(step, currentFirstChild, newIdx), null === previousNewFiber ? resultingFirstChild = step : previousNewFiber.sibling = step, previousNewFiber = step); + shouldTrackSideEffects && oldFiber.forEach(function(child) { + return deleteChild(returnFiber, child); + }); + isHydrating && pushTreeFork(returnFiber, newIdx); + return resultingFirstChild; + } + function reconcileChildFibersImpl(returnFiber, currentFirstChild, newChild, lanes) { + "object" === typeof newChild && null !== newChild && newChild.type === REACT_FRAGMENT_TYPE && null === newChild.key && (newChild = newChild.props.children); + if ("object" === typeof newChild && null !== newChild) { + switch (newChild.$$typeof) { + case REACT_ELEMENT_TYPE: + a: { + for (var key = newChild.key; null !== currentFirstChild; ) { + if (currentFirstChild.key === key) { + key = newChild.type; + if (key === REACT_FRAGMENT_TYPE) { + if (7 === currentFirstChild.tag) { + deleteRemainingChildren( + returnFiber, + currentFirstChild.sibling + ); + lanes = useFiber( + currentFirstChild, + newChild.props.children + ); + lanes.return = returnFiber; + returnFiber = lanes; + break a; + } + } else if (currentFirstChild.elementType === key || "object" === typeof key && null !== key && key.$$typeof === REACT_LAZY_TYPE && resolveLazy(key) === currentFirstChild.type) { + deleteRemainingChildren( + returnFiber, + currentFirstChild.sibling + ); + lanes = useFiber(currentFirstChild, newChild.props); + coerceRef(lanes, newChild); + lanes.return = returnFiber; + returnFiber = lanes; + break a; + } + deleteRemainingChildren(returnFiber, currentFirstChild); + break; + } else deleteChild(returnFiber, currentFirstChild); + currentFirstChild = currentFirstChild.sibling; + } + newChild.type === REACT_FRAGMENT_TYPE ? (lanes = createFiberFromFragment( + newChild.props.children, + returnFiber.mode, + lanes, + newChild.key + ), lanes.return = returnFiber, returnFiber = lanes) : (lanes = createFiberFromTypeAndProps( + newChild.type, + newChild.key, + newChild.props, + null, + returnFiber.mode, + lanes + ), coerceRef(lanes, newChild), lanes.return = returnFiber, returnFiber = lanes); + } + return placeSingleChild(returnFiber); + case REACT_PORTAL_TYPE: + a: { + for (key = newChild.key; null !== currentFirstChild; ) { + if (currentFirstChild.key === key) + if (4 === currentFirstChild.tag && currentFirstChild.stateNode.containerInfo === newChild.containerInfo && currentFirstChild.stateNode.implementation === newChild.implementation) { + deleteRemainingChildren( + returnFiber, + currentFirstChild.sibling + ); + lanes = useFiber(currentFirstChild, newChild.children || []); + lanes.return = returnFiber; + returnFiber = lanes; + break a; + } else { + deleteRemainingChildren(returnFiber, currentFirstChild); + break; + } + else deleteChild(returnFiber, currentFirstChild); + currentFirstChild = currentFirstChild.sibling; + } + lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes); + lanes.return = returnFiber; + returnFiber = lanes; + } + return placeSingleChild(returnFiber); + case REACT_LAZY_TYPE: + return newChild = resolveLazy(newChild), reconcileChildFibersImpl( + returnFiber, + currentFirstChild, + newChild, + lanes + ); + } + if (isArrayImpl(newChild)) + return reconcileChildrenArray( + returnFiber, + currentFirstChild, + newChild, + lanes + ); + if (getIteratorFn(newChild)) { + key = getIteratorFn(newChild); + if ("function" !== typeof key) throw Error(formatProdErrorMessage(150)); + newChild = key.call(newChild); + return reconcileChildrenIterator( + returnFiber, + currentFirstChild, + newChild, + lanes + ); + } + if ("function" === typeof newChild.then) + return reconcileChildFibersImpl( + returnFiber, + currentFirstChild, + unwrapThenable(newChild), + lanes + ); + if (newChild.$$typeof === REACT_CONTEXT_TYPE) + return reconcileChildFibersImpl( + returnFiber, + currentFirstChild, + readContextDuringReconciliation(returnFiber, newChild), + lanes + ); + throwOnInvalidObjectTypeImpl(returnFiber, newChild); + } + return "string" === typeof newChild && "" !== newChild || "number" === typeof newChild || "bigint" === typeof newChild ? (newChild = "" + newChild, null !== currentFirstChild && 6 === currentFirstChild.tag ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling), lanes = useFiber(currentFirstChild, newChild), lanes.return = returnFiber, returnFiber = lanes) : (deleteRemainingChildren(returnFiber, currentFirstChild), lanes = createFiberFromText(newChild, returnFiber.mode, lanes), lanes.return = returnFiber, returnFiber = lanes), placeSingleChild(returnFiber)) : deleteRemainingChildren(returnFiber, currentFirstChild); + } + return function(returnFiber, currentFirstChild, newChild, lanes) { + try { + thenableIndexCounter$1 = 0; + var firstChildFiber = reconcileChildFibersImpl( + returnFiber, + currentFirstChild, + newChild, + lanes + ); + thenableState$1 = null; + return firstChildFiber; + } catch (x) { + if (x === SuspenseException || x === SuspenseActionException) throw x; + var fiber = createFiberImplClass(29, x, null, returnFiber.mode); + fiber.lanes = lanes; + fiber.return = returnFiber; + return fiber; + } finally { + } + }; + } + var reconcileChildFibers = createChildReconciler(true), mountChildFibers = createChildReconciler(false), hasForceUpdate = false; + function initializeUpdateQueue(fiber) { + fiber.updateQueue = { + baseState: fiber.memoizedState, + firstBaseUpdate: null, + lastBaseUpdate: null, + shared: { pending: null, lanes: 0, hiddenCallbacks: null }, + callbacks: null + }; + } + function cloneUpdateQueue(current, workInProgress2) { + current = current.updateQueue; + workInProgress2.updateQueue === current && (workInProgress2.updateQueue = { + baseState: current.baseState, + firstBaseUpdate: current.firstBaseUpdate, + lastBaseUpdate: current.lastBaseUpdate, + shared: current.shared, + callbacks: null + }); + } + function createUpdate(lane) { + return { lane, tag: 0, payload: null, callback: null, next: null }; + } + function enqueueUpdate(fiber, update, lane) { + var updateQueue = fiber.updateQueue; + if (null === updateQueue) return null; + updateQueue = updateQueue.shared; + if (0 !== (executionContext & 2)) { + var pending = updateQueue.pending; + null === pending ? update.next = update : (update.next = pending.next, pending.next = update); + updateQueue.pending = update; + update = getRootForUpdatedFiber(fiber); + markUpdateLaneFromFiberToRoot(fiber, null, lane); + return update; + } + enqueueUpdate$1(fiber, updateQueue, update, lane); + return getRootForUpdatedFiber(fiber); + } + function entangleTransitions(root2, fiber, lane) { + fiber = fiber.updateQueue; + if (null !== fiber && (fiber = fiber.shared, 0 !== (lane & 4194048))) { + var queueLanes = fiber.lanes; + queueLanes &= root2.pendingLanes; + lane |= queueLanes; + fiber.lanes = lane; + markRootEntangled(root2, lane); + } + } + function enqueueCapturedUpdate(workInProgress2, capturedUpdate) { + var queue = workInProgress2.updateQueue, current = workInProgress2.alternate; + if (null !== current && (current = current.updateQueue, queue === current)) { + var newFirst = null, newLast = null; + queue = queue.firstBaseUpdate; + if (null !== queue) { + do { + var clone2 = { + lane: queue.lane, + tag: queue.tag, + payload: queue.payload, + callback: null, + next: null + }; + null === newLast ? newFirst = newLast = clone2 : newLast = newLast.next = clone2; + queue = queue.next; + } while (null !== queue); + null === newLast ? newFirst = newLast = capturedUpdate : newLast = newLast.next = capturedUpdate; + } else newFirst = newLast = capturedUpdate; + queue = { + baseState: current.baseState, + firstBaseUpdate: newFirst, + lastBaseUpdate: newLast, + shared: current.shared, + callbacks: current.callbacks + }; + workInProgress2.updateQueue = queue; + return; + } + workInProgress2 = queue.lastBaseUpdate; + null === workInProgress2 ? queue.firstBaseUpdate = capturedUpdate : workInProgress2.next = capturedUpdate; + queue.lastBaseUpdate = capturedUpdate; + } + var didReadFromEntangledAsyncAction = false; + function suspendIfUpdateReadFromEntangledAsyncAction() { + if (didReadFromEntangledAsyncAction) { + var entangledActionThenable = currentEntangledActionThenable; + if (null !== entangledActionThenable) throw entangledActionThenable; + } + } + function processUpdateQueue(workInProgress$jscomp$0, props, instance$jscomp$0, renderLanes2) { + didReadFromEntangledAsyncAction = false; + var queue = workInProgress$jscomp$0.updateQueue; + hasForceUpdate = false; + var firstBaseUpdate = queue.firstBaseUpdate, lastBaseUpdate = queue.lastBaseUpdate, pendingQueue = queue.shared.pending; + if (null !== pendingQueue) { + queue.shared.pending = null; + var lastPendingUpdate = pendingQueue, firstPendingUpdate = lastPendingUpdate.next; + lastPendingUpdate.next = null; + null === lastBaseUpdate ? firstBaseUpdate = firstPendingUpdate : lastBaseUpdate.next = firstPendingUpdate; + lastBaseUpdate = lastPendingUpdate; + var current = workInProgress$jscomp$0.alternate; + null !== current && (current = current.updateQueue, pendingQueue = current.lastBaseUpdate, pendingQueue !== lastBaseUpdate && (null === pendingQueue ? current.firstBaseUpdate = firstPendingUpdate : pendingQueue.next = firstPendingUpdate, current.lastBaseUpdate = lastPendingUpdate)); + } + if (null !== firstBaseUpdate) { + var newState = queue.baseState; + lastBaseUpdate = 0; + current = firstPendingUpdate = lastPendingUpdate = null; + pendingQueue = firstBaseUpdate; + do { + var updateLane = pendingQueue.lane & -536870913, isHiddenUpdate = updateLane !== pendingQueue.lane; + if (isHiddenUpdate ? (workInProgressRootRenderLanes & updateLane) === updateLane : (renderLanes2 & updateLane) === updateLane) { + 0 !== updateLane && updateLane === currentEntangledLane && (didReadFromEntangledAsyncAction = true); + null !== current && (current = current.next = { + lane: 0, + tag: pendingQueue.tag, + payload: pendingQueue.payload, + callback: null, + next: null + }); + a: { + var workInProgress2 = workInProgress$jscomp$0, update = pendingQueue; + updateLane = props; + var instance = instance$jscomp$0; + switch (update.tag) { + case 1: + workInProgress2 = update.payload; + if ("function" === typeof workInProgress2) { + newState = workInProgress2.call(instance, newState, updateLane); + break a; + } + newState = workInProgress2; + break a; + case 3: + workInProgress2.flags = workInProgress2.flags & -65537 | 128; + case 0: + workInProgress2 = update.payload; + updateLane = "function" === typeof workInProgress2 ? workInProgress2.call(instance, newState, updateLane) : workInProgress2; + if (null === updateLane || void 0 === updateLane) break a; + newState = assign({}, newState, updateLane); + break a; + case 2: + hasForceUpdate = true; + } + } + updateLane = pendingQueue.callback; + null !== updateLane && (workInProgress$jscomp$0.flags |= 64, isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192), isHiddenUpdate = queue.callbacks, null === isHiddenUpdate ? queue.callbacks = [updateLane] : isHiddenUpdate.push(updateLane)); + } else + isHiddenUpdate = { + lane: updateLane, + tag: pendingQueue.tag, + payload: pendingQueue.payload, + callback: pendingQueue.callback, + next: null + }, null === current ? (firstPendingUpdate = current = isHiddenUpdate, lastPendingUpdate = newState) : current = current.next = isHiddenUpdate, lastBaseUpdate |= updateLane; + pendingQueue = pendingQueue.next; + if (null === pendingQueue) + if (pendingQueue = queue.shared.pending, null === pendingQueue) + break; + else + isHiddenUpdate = pendingQueue, pendingQueue = isHiddenUpdate.next, isHiddenUpdate.next = null, queue.lastBaseUpdate = isHiddenUpdate, queue.shared.pending = null; + } while (1); + null === current && (lastPendingUpdate = newState); + queue.baseState = lastPendingUpdate; + queue.firstBaseUpdate = firstPendingUpdate; + queue.lastBaseUpdate = current; + null === firstBaseUpdate && (queue.shared.lanes = 0); + workInProgressRootSkippedLanes |= lastBaseUpdate; + workInProgress$jscomp$0.lanes = lastBaseUpdate; + workInProgress$jscomp$0.memoizedState = newState; + } + } + function callCallback(callback, context) { + if ("function" !== typeof callback) + throw Error(formatProdErrorMessage(191, callback)); + callback.call(context); + } + function commitCallbacks(updateQueue, context) { + var callbacks = updateQueue.callbacks; + if (null !== callbacks) + for (updateQueue.callbacks = null, updateQueue = 0; updateQueue < callbacks.length; updateQueue++) + callCallback(callbacks[updateQueue], context); + } + var currentTreeHiddenStackCursor = createCursor(null), prevEntangledRenderLanesCursor = createCursor(0); + function pushHiddenContext(fiber, context) { + fiber = entangledRenderLanes; + push(prevEntangledRenderLanesCursor, fiber); + push(currentTreeHiddenStackCursor, context); + entangledRenderLanes = fiber | context.baseLanes; + } + function reuseHiddenContextOnStack() { + push(prevEntangledRenderLanesCursor, entangledRenderLanes); + push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current); + } + function popHiddenContext() { + entangledRenderLanes = prevEntangledRenderLanesCursor.current; + pop(currentTreeHiddenStackCursor); + pop(prevEntangledRenderLanesCursor); + } + var suspenseHandlerStackCursor = createCursor(null), shellBoundary = null; + function pushPrimaryTreeSuspenseHandler(handler) { + var current = handler.alternate; + push(suspenseStackCursor, suspenseStackCursor.current & 1); + push(suspenseHandlerStackCursor, handler); + null === shellBoundary && (null === current || null !== currentTreeHiddenStackCursor.current ? shellBoundary = handler : null !== current.memoizedState && (shellBoundary = handler)); + } + function pushDehydratedActivitySuspenseHandler(fiber) { + push(suspenseStackCursor, suspenseStackCursor.current); + push(suspenseHandlerStackCursor, fiber); + null === shellBoundary && (shellBoundary = fiber); + } + function pushOffscreenSuspenseHandler(fiber) { + 22 === fiber.tag ? (push(suspenseStackCursor, suspenseStackCursor.current), push(suspenseHandlerStackCursor, fiber), null === shellBoundary && (shellBoundary = fiber)) : reuseSuspenseHandlerOnStack(); + } + function reuseSuspenseHandlerOnStack() { + push(suspenseStackCursor, suspenseStackCursor.current); + push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current); + } + function popSuspenseHandler(fiber) { + pop(suspenseHandlerStackCursor); + shellBoundary === fiber && (shellBoundary = null); + pop(suspenseStackCursor); + } + var suspenseStackCursor = createCursor(0); + function findFirstSuspended(row) { + for (var node = row; null !== node; ) { + if (13 === node.tag) { + var state = node.memoizedState; + if (null !== state && (state = state.dehydrated, null === state || isSuspenseInstancePending(state) || isSuspenseInstanceFallback(state))) + return node; + } else if (19 === node.tag && ("forwards" === node.memoizedProps.revealOrder || "backwards" === node.memoizedProps.revealOrder || "unstable_legacy-backwards" === node.memoizedProps.revealOrder || "together" === node.memoizedProps.revealOrder)) { + if (0 !== (node.flags & 128)) return node; + } else if (null !== node.child) { + node.child.return = node; + node = node.child; + continue; + } + if (node === row) break; + for (; null === node.sibling; ) { + if (null === node.return || node.return === row) return null; + node = node.return; + } + node.sibling.return = node.return; + node = node.sibling; + } + return null; + } + var renderLanes = 0, currentlyRenderingFiber = null, currentHook = null, workInProgressHook = null, didScheduleRenderPhaseUpdate = false, didScheduleRenderPhaseUpdateDuringThisPass = false, shouldDoubleInvokeUserFnsInHooksDEV = false, localIdCounter = 0, thenableIndexCounter = 0, thenableState = null, globalClientIdCounter = 0; + function throwInvalidHookError() { + throw Error(formatProdErrorMessage(321)); + } + function areHookInputsEqual(nextDeps, prevDeps) { + if (null === prevDeps) return false; + for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++) + if (!objectIs(nextDeps[i], prevDeps[i])) return false; + return true; + } + function renderWithHooks(current, workInProgress2, Component, props, secondArg, nextRenderLanes) { + renderLanes = nextRenderLanes; + currentlyRenderingFiber = workInProgress2; + workInProgress2.memoizedState = null; + workInProgress2.updateQueue = null; + workInProgress2.lanes = 0; + ReactSharedInternals.H = null === current || null === current.memoizedState ? HooksDispatcherOnMount : HooksDispatcherOnUpdate; + shouldDoubleInvokeUserFnsInHooksDEV = false; + nextRenderLanes = Component(props, secondArg); + shouldDoubleInvokeUserFnsInHooksDEV = false; + didScheduleRenderPhaseUpdateDuringThisPass && (nextRenderLanes = renderWithHooksAgain( + workInProgress2, + Component, + props, + secondArg + )); + finishRenderingHooks(current); + return nextRenderLanes; + } + function finishRenderingHooks(current) { + ReactSharedInternals.H = ContextOnlyDispatcher; + var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next; + renderLanes = 0; + workInProgressHook = currentHook = currentlyRenderingFiber = null; + didScheduleRenderPhaseUpdate = false; + thenableIndexCounter = 0; + thenableState = null; + if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300)); + null === current || didReceiveUpdate || (current = current.dependencies, null !== current && checkIfContextChanged(current) && (didReceiveUpdate = true)); + } + function renderWithHooksAgain(workInProgress2, Component, props, secondArg) { + currentlyRenderingFiber = workInProgress2; + var numberOfReRenders = 0; + do { + didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null); + thenableIndexCounter = 0; + didScheduleRenderPhaseUpdateDuringThisPass = false; + if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301)); + numberOfReRenders += 1; + workInProgressHook = currentHook = null; + if (null != workInProgress2.updateQueue) { + var children = workInProgress2.updateQueue; + children.lastEffect = null; + children.events = null; + children.stores = null; + null != children.memoCache && (children.memoCache.index = 0); + } + ReactSharedInternals.H = HooksDispatcherOnRerender; + children = Component(props, secondArg); + } while (didScheduleRenderPhaseUpdateDuringThisPass); + return children; + } + function TransitionAwareHostComponent() { + var dispatcher = ReactSharedInternals.H, maybeThenable = dispatcher.useState()[0]; + maybeThenable = "function" === typeof maybeThenable.then ? useThenable(maybeThenable) : maybeThenable; + dispatcher = dispatcher.useState()[0]; + (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher && (currentlyRenderingFiber.flags |= 1024); + return maybeThenable; + } + function checkDidRenderIdHook() { + var didRenderIdHook = 0 !== localIdCounter; + localIdCounter = 0; + return didRenderIdHook; + } + function bailoutHooks(current, workInProgress2, lanes) { + workInProgress2.updateQueue = current.updateQueue; + workInProgress2.flags &= -2053; + current.lanes &= ~lanes; + } + function resetHooksOnUnwind(workInProgress2) { + if (didScheduleRenderPhaseUpdate) { + for (workInProgress2 = workInProgress2.memoizedState; null !== workInProgress2; ) { + var queue = workInProgress2.queue; + null !== queue && (queue.pending = null); + workInProgress2 = workInProgress2.next; + } + didScheduleRenderPhaseUpdate = false; + } + renderLanes = 0; + workInProgressHook = currentHook = currentlyRenderingFiber = null; + didScheduleRenderPhaseUpdateDuringThisPass = false; + thenableIndexCounter = localIdCounter = 0; + thenableState = null; + } + function mountWorkInProgressHook() { + var hook = { + memoizedState: null, + baseState: null, + baseQueue: null, + queue: null, + next: null + }; + null === workInProgressHook ? currentlyRenderingFiber.memoizedState = workInProgressHook = hook : workInProgressHook = workInProgressHook.next = hook; + return workInProgressHook; + } + function updateWorkInProgressHook() { + if (null === currentHook) { + var nextCurrentHook = currentlyRenderingFiber.alternate; + nextCurrentHook = null !== nextCurrentHook ? nextCurrentHook.memoizedState : null; + } else nextCurrentHook = currentHook.next; + var nextWorkInProgressHook = null === workInProgressHook ? currentlyRenderingFiber.memoizedState : workInProgressHook.next; + if (null !== nextWorkInProgressHook) + workInProgressHook = nextWorkInProgressHook, currentHook = nextCurrentHook; + else { + if (null === nextCurrentHook) { + if (null === currentlyRenderingFiber.alternate) + throw Error(formatProdErrorMessage(467)); + throw Error(formatProdErrorMessage(310)); + } + currentHook = nextCurrentHook; + nextCurrentHook = { + memoizedState: currentHook.memoizedState, + baseState: currentHook.baseState, + baseQueue: currentHook.baseQueue, + queue: currentHook.queue, + next: null + }; + null === workInProgressHook ? currentlyRenderingFiber.memoizedState = workInProgressHook = nextCurrentHook : workInProgressHook = workInProgressHook.next = nextCurrentHook; + } + return workInProgressHook; + } + function createFunctionComponentUpdateQueue() { + return { lastEffect: null, events: null, stores: null, memoCache: null }; + } + function useThenable(thenable) { + var index3 = thenableIndexCounter; + thenableIndexCounter += 1; + null === thenableState && (thenableState = []); + thenable = trackUsedThenable(thenableState, thenable, index3); + index3 = currentlyRenderingFiber; + null === (null === workInProgressHook ? index3.memoizedState : workInProgressHook.next) && (index3 = index3.alternate, ReactSharedInternals.H = null === index3 || null === index3.memoizedState ? HooksDispatcherOnMount : HooksDispatcherOnUpdate); + return thenable; + } + function use(usable) { + if (null !== usable && "object" === typeof usable) { + if ("function" === typeof usable.then) return useThenable(usable); + if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable); + } + throw Error(formatProdErrorMessage(438, String(usable))); + } + function useMemoCache(size) { + var memoCache = null, updateQueue = currentlyRenderingFiber.updateQueue; + null !== updateQueue && (memoCache = updateQueue.memoCache); + if (null == memoCache) { + var current = currentlyRenderingFiber.alternate; + null !== current && (current = current.updateQueue, null !== current && (current = current.memoCache, null != current && (memoCache = { + data: current.data.map(function(array) { + return array.slice(); + }), + index: 0 + }))); + } + null == memoCache && (memoCache = { data: [], index: 0 }); + null === updateQueue && (updateQueue = createFunctionComponentUpdateQueue(), currentlyRenderingFiber.updateQueue = updateQueue); + updateQueue.memoCache = memoCache; + updateQueue = memoCache.data[memoCache.index]; + if (void 0 === updateQueue) + for (updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0; current < size; current++) + updateQueue[current] = REACT_MEMO_CACHE_SENTINEL; + memoCache.index++; + return updateQueue; + } + function basicStateReducer(state, action) { + return "function" === typeof action ? action(state) : action; + } + function updateReducer(reducer) { + var hook = updateWorkInProgressHook(); + return updateReducerImpl(hook, currentHook, reducer); + } + function updateReducerImpl(hook, current, reducer) { + var queue = hook.queue; + if (null === queue) throw Error(formatProdErrorMessage(311)); + queue.lastRenderedReducer = reducer; + var baseQueue = hook.baseQueue, pendingQueue = queue.pending; + if (null !== pendingQueue) { + if (null !== baseQueue) { + var baseFirst = baseQueue.next; + baseQueue.next = pendingQueue.next; + pendingQueue.next = baseFirst; + } + current.baseQueue = baseQueue = pendingQueue; + queue.pending = null; + } + pendingQueue = hook.baseState; + if (null === baseQueue) hook.memoizedState = pendingQueue; + else { + current = baseQueue.next; + var newBaseQueueFirst = baseFirst = null, newBaseQueueLast = null, update = current, didReadFromEntangledAsyncAction$60 = false; + do { + var updateLane = update.lane & -536870913; + if (updateLane !== update.lane ? (workInProgressRootRenderLanes & updateLane) === updateLane : (renderLanes & updateLane) === updateLane) { + var revertLane = update.revertLane; + if (0 === revertLane) + null !== newBaseQueueLast && (newBaseQueueLast = newBaseQueueLast.next = { + lane: 0, + revertLane: 0, + gesture: null, + action: update.action, + hasEagerState: update.hasEagerState, + eagerState: update.eagerState, + next: null + }), updateLane === currentEntangledLane && (didReadFromEntangledAsyncAction$60 = true); + else if ((renderLanes & revertLane) === revertLane) { + update = update.next; + revertLane === currentEntangledLane && (didReadFromEntangledAsyncAction$60 = true); + continue; + } else + updateLane = { + lane: 0, + revertLane: update.revertLane, + gesture: null, + action: update.action, + hasEagerState: update.hasEagerState, + eagerState: update.eagerState, + next: null + }, null === newBaseQueueLast ? (newBaseQueueFirst = newBaseQueueLast = updateLane, baseFirst = pendingQueue) : newBaseQueueLast = newBaseQueueLast.next = updateLane, currentlyRenderingFiber.lanes |= revertLane, workInProgressRootSkippedLanes |= revertLane; + updateLane = update.action; + shouldDoubleInvokeUserFnsInHooksDEV && reducer(pendingQueue, updateLane); + pendingQueue = update.hasEagerState ? update.eagerState : reducer(pendingQueue, updateLane); + } else + revertLane = { + lane: updateLane, + revertLane: update.revertLane, + gesture: update.gesture, + action: update.action, + hasEagerState: update.hasEagerState, + eagerState: update.eagerState, + next: null + }, null === newBaseQueueLast ? (newBaseQueueFirst = newBaseQueueLast = revertLane, baseFirst = pendingQueue) : newBaseQueueLast = newBaseQueueLast.next = revertLane, currentlyRenderingFiber.lanes |= updateLane, workInProgressRootSkippedLanes |= updateLane; + update = update.next; + } while (null !== update && update !== current); + null === newBaseQueueLast ? baseFirst = pendingQueue : newBaseQueueLast.next = newBaseQueueFirst; + if (!objectIs(pendingQueue, hook.memoizedState) && (didReceiveUpdate = true, didReadFromEntangledAsyncAction$60 && (reducer = currentEntangledActionThenable, null !== reducer))) + throw reducer; + hook.memoizedState = pendingQueue; + hook.baseState = baseFirst; + hook.baseQueue = newBaseQueueLast; + queue.lastRenderedState = pendingQueue; + } + null === baseQueue && (queue.lanes = 0); + return [hook.memoizedState, queue.dispatch]; + } + function rerenderReducer(reducer) { + var hook = updateWorkInProgressHook(), queue = hook.queue; + if (null === queue) throw Error(formatProdErrorMessage(311)); + queue.lastRenderedReducer = reducer; + var dispatch = queue.dispatch, lastRenderPhaseUpdate = queue.pending, newState = hook.memoizedState; + if (null !== lastRenderPhaseUpdate) { + queue.pending = null; + var update = lastRenderPhaseUpdate = lastRenderPhaseUpdate.next; + do + newState = reducer(newState, update.action), update = update.next; + while (update !== lastRenderPhaseUpdate); + objectIs(newState, hook.memoizedState) || (didReceiveUpdate = true); + hook.memoizedState = newState; + null === hook.baseQueue && (hook.baseState = newState); + queue.lastRenderedState = newState; + } + return [newState, dispatch]; + } + function updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) { + var fiber = currentlyRenderingFiber, hook = updateWorkInProgressHook(), isHydrating$jscomp$0 = isHydrating; + if (isHydrating$jscomp$0) { + if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407)); + getServerSnapshot = getServerSnapshot(); + } else getServerSnapshot = getSnapshot(); + var snapshotChanged = !objectIs( + (currentHook || hook).memoizedState, + getServerSnapshot + ); + snapshotChanged && (hook.memoizedState = getServerSnapshot, didReceiveUpdate = true); + hook = hook.queue; + updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [ + subscribe + ]); + if (hook.getSnapshot !== getSnapshot || snapshotChanged || null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1) { + fiber.flags |= 2048; + pushSimpleEffect( + 9, + { destroy: void 0 }, + updateStoreInstance.bind( + null, + fiber, + hook, + getServerSnapshot, + getSnapshot + ), + null + ); + if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349)); + isHydrating$jscomp$0 || 0 !== (renderLanes & 127) || pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot); + } + return getServerSnapshot; + } + function pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) { + fiber.flags |= 16384; + fiber = { getSnapshot, value: renderedSnapshot }; + getSnapshot = currentlyRenderingFiber.updateQueue; + null === getSnapshot ? (getSnapshot = createFunctionComponentUpdateQueue(), currentlyRenderingFiber.updateQueue = getSnapshot, getSnapshot.stores = [fiber]) : (renderedSnapshot = getSnapshot.stores, null === renderedSnapshot ? getSnapshot.stores = [fiber] : renderedSnapshot.push(fiber)); + } + function updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) { + inst.value = nextSnapshot; + inst.getSnapshot = getSnapshot; + checkIfSnapshotChanged(inst) && forceStoreRerender(fiber); + } + function subscribeToStore(fiber, inst, subscribe) { + return subscribe(function() { + checkIfSnapshotChanged(inst) && forceStoreRerender(fiber); + }); + } + function checkIfSnapshotChanged(inst) { + var latestGetSnapshot = inst.getSnapshot; + inst = inst.value; + try { + var nextValue = latestGetSnapshot(); + return !objectIs(inst, nextValue); + } catch (error) { + return true; + } + } + function forceStoreRerender(fiber) { + var root2 = enqueueConcurrentRenderForLane(fiber, 2); + null !== root2 && scheduleUpdateOnFiber(root2, fiber, 2); + } + function mountStateImpl(initialState) { + var hook = mountWorkInProgressHook(); + if ("function" === typeof initialState) { + var initialStateInitializer = initialState; + initialState = initialStateInitializer(); + if (shouldDoubleInvokeUserFnsInHooksDEV) { + setIsStrictModeForDevtools(true); + try { + initialStateInitializer(); + } finally { + setIsStrictModeForDevtools(false); + } + } + } + hook.memoizedState = hook.baseState = initialState; + hook.queue = { + pending: null, + lanes: 0, + dispatch: null, + lastRenderedReducer: basicStateReducer, + lastRenderedState: initialState + }; + return hook; + } + function updateOptimisticImpl(hook, current, passthrough, reducer) { + hook.baseState = passthrough; + return updateReducerImpl( + hook, + currentHook, + "function" === typeof reducer ? reducer : basicStateReducer + ); + } + function dispatchActionState(fiber, actionQueue, setPendingState, setState, payload) { + if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485)); + fiber = actionQueue.action; + if (null !== fiber) { + var actionNode = { + payload, + action: fiber, + next: null, + isTransition: true, + status: "pending", + value: null, + reason: null, + listeners: [], + then: function(listener) { + actionNode.listeners.push(listener); + } + }; + null !== ReactSharedInternals.T ? setPendingState(true) : actionNode.isTransition = false; + setState(actionNode); + setPendingState = actionQueue.pending; + null === setPendingState ? (actionNode.next = actionQueue.pending = actionNode, runActionStateAction(actionQueue, actionNode)) : (actionNode.next = setPendingState.next, actionQueue.pending = setPendingState.next = actionNode); + } + } + function runActionStateAction(actionQueue, node) { + var action = node.action, payload = node.payload, prevState = actionQueue.state; + if (node.isTransition) { + var prevTransition = ReactSharedInternals.T, currentTransition = {}; + ReactSharedInternals.T = currentTransition; + try { + var returnValue = action(prevState, payload), onStartTransitionFinish = ReactSharedInternals.S; + null !== onStartTransitionFinish && onStartTransitionFinish(currentTransition, returnValue); + handleActionReturnValue(actionQueue, node, returnValue); + } catch (error) { + onActionError(actionQueue, node, error); + } finally { + null !== prevTransition && null !== currentTransition.types && (prevTransition.types = currentTransition.types), ReactSharedInternals.T = prevTransition; + } + } else + try { + prevTransition = action(prevState, payload), handleActionReturnValue(actionQueue, node, prevTransition); + } catch (error$66) { + onActionError(actionQueue, node, error$66); + } + } + function handleActionReturnValue(actionQueue, node, returnValue) { + null !== returnValue && "object" === typeof returnValue && "function" === typeof returnValue.then ? returnValue.then( + function(nextState) { + onActionSuccess(actionQueue, node, nextState); + }, + function(error) { + return onActionError(actionQueue, node, error); + } + ) : onActionSuccess(actionQueue, node, returnValue); + } + function onActionSuccess(actionQueue, actionNode, nextState) { + actionNode.status = "fulfilled"; + actionNode.value = nextState; + notifyActionListeners(actionNode); + actionQueue.state = nextState; + actionNode = actionQueue.pending; + null !== actionNode && (nextState = actionNode.next, nextState === actionNode ? actionQueue.pending = null : (nextState = nextState.next, actionNode.next = nextState, runActionStateAction(actionQueue, nextState))); + } + function onActionError(actionQueue, actionNode, error) { + var last = actionQueue.pending; + actionQueue.pending = null; + if (null !== last) { + last = last.next; + do + actionNode.status = "rejected", actionNode.reason = error, notifyActionListeners(actionNode), actionNode = actionNode.next; + while (actionNode !== last); + } + actionQueue.action = null; + } + function notifyActionListeners(actionNode) { + actionNode = actionNode.listeners; + for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])(); + } + function actionStateReducer(oldState, newState) { + return newState; + } + function mountActionState(action, initialStateProp) { + if (isHydrating) { + var ssrFormState = workInProgressRoot.formState; + if (null !== ssrFormState) { + a: { + var JSCompiler_inline_result = currentlyRenderingFiber; + if (isHydrating) { + if (nextHydratableInstance) { + b: { + var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance; + for (var inRootOrSingleton = rootOrSingletonContext; 8 !== JSCompiler_inline_result$jscomp$0.nodeType; ) { + if (!inRootOrSingleton) { + JSCompiler_inline_result$jscomp$0 = null; + break b; + } + JSCompiler_inline_result$jscomp$0 = getNextHydratable( + JSCompiler_inline_result$jscomp$0.nextSibling + ); + if (null === JSCompiler_inline_result$jscomp$0) { + JSCompiler_inline_result$jscomp$0 = null; + break b; + } + } + inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data; + JSCompiler_inline_result$jscomp$0 = "F!" === inRootOrSingleton || "F" === inRootOrSingleton ? JSCompiler_inline_result$jscomp$0 : null; + } + if (JSCompiler_inline_result$jscomp$0) { + nextHydratableInstance = getNextHydratable( + JSCompiler_inline_result$jscomp$0.nextSibling + ); + JSCompiler_inline_result = "F!" === JSCompiler_inline_result$jscomp$0.data; + break a; + } + } + throwOnHydrationMismatch(JSCompiler_inline_result); + } + JSCompiler_inline_result = false; + } + JSCompiler_inline_result && (initialStateProp = ssrFormState[0]); + } + } + ssrFormState = mountWorkInProgressHook(); + ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp; + JSCompiler_inline_result = { + pending: null, + lanes: 0, + dispatch: null, + lastRenderedReducer: actionStateReducer, + lastRenderedState: initialStateProp + }; + ssrFormState.queue = JSCompiler_inline_result; + ssrFormState = dispatchSetState.bind( + null, + currentlyRenderingFiber, + JSCompiler_inline_result + ); + JSCompiler_inline_result.dispatch = ssrFormState; + JSCompiler_inline_result = mountStateImpl(false); + inRootOrSingleton = dispatchOptimisticSetState.bind( + null, + currentlyRenderingFiber, + false, + JSCompiler_inline_result.queue + ); + JSCompiler_inline_result = mountWorkInProgressHook(); + JSCompiler_inline_result$jscomp$0 = { + state: initialStateProp, + dispatch: null, + action, + pending: null + }; + JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0; + ssrFormState = dispatchActionState.bind( + null, + currentlyRenderingFiber, + JSCompiler_inline_result$jscomp$0, + inRootOrSingleton, + ssrFormState + ); + JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState; + JSCompiler_inline_result.memoizedState = action; + return [initialStateProp, ssrFormState, false]; + } + function updateActionState(action) { + var stateHook = updateWorkInProgressHook(); + return updateActionStateImpl(stateHook, currentHook, action); + } + function updateActionStateImpl(stateHook, currentStateHook, action) { + currentStateHook = updateReducerImpl( + stateHook, + currentStateHook, + actionStateReducer + )[0]; + stateHook = updateReducer(basicStateReducer)[0]; + if ("object" === typeof currentStateHook && null !== currentStateHook && "function" === typeof currentStateHook.then) + try { + var state = useThenable(currentStateHook); + } catch (x) { + if (x === SuspenseException) throw SuspenseActionException; + throw x; + } + else state = currentStateHook; + currentStateHook = updateWorkInProgressHook(); + var actionQueue = currentStateHook.queue, dispatch = actionQueue.dispatch; + action !== currentStateHook.memoizedState && (currentlyRenderingFiber.flags |= 2048, pushSimpleEffect( + 9, + { destroy: void 0 }, + actionStateActionEffect.bind(null, actionQueue, action), + null + )); + return [state, dispatch, stateHook]; + } + function actionStateActionEffect(actionQueue, action) { + actionQueue.action = action; + } + function rerenderActionState(action) { + var stateHook = updateWorkInProgressHook(), currentStateHook = currentHook; + if (null !== currentStateHook) + return updateActionStateImpl(stateHook, currentStateHook, action); + updateWorkInProgressHook(); + stateHook = stateHook.memoizedState; + currentStateHook = updateWorkInProgressHook(); + var dispatch = currentStateHook.queue.dispatch; + currentStateHook.memoizedState = action; + return [stateHook, dispatch, false]; + } + function pushSimpleEffect(tag, inst, create, deps) { + tag = { tag, create, deps, inst, next: null }; + inst = currentlyRenderingFiber.updateQueue; + null === inst && (inst = createFunctionComponentUpdateQueue(), currentlyRenderingFiber.updateQueue = inst); + create = inst.lastEffect; + null === create ? inst.lastEffect = tag.next = tag : (deps = create.next, create.next = tag, tag.next = deps, inst.lastEffect = tag); + return tag; + } + function updateRef() { + return updateWorkInProgressHook().memoizedState; + } + function mountEffectImpl(fiberFlags, hookFlags, create, deps) { + var hook = mountWorkInProgressHook(); + currentlyRenderingFiber.flags |= fiberFlags; + hook.memoizedState = pushSimpleEffect( + 1 | hookFlags, + { destroy: void 0 }, + create, + void 0 === deps ? null : deps + ); + } + function updateEffectImpl(fiberFlags, hookFlags, create, deps) { + var hook = updateWorkInProgressHook(); + deps = void 0 === deps ? null : deps; + var inst = hook.memoizedState.inst; + null !== currentHook && null !== deps && areHookInputsEqual(deps, currentHook.memoizedState.deps) ? hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps) : (currentlyRenderingFiber.flags |= fiberFlags, hook.memoizedState = pushSimpleEffect( + 1 | hookFlags, + inst, + create, + deps + )); + } + function mountEffect(create, deps) { + mountEffectImpl(8390656, 8, create, deps); + } + function updateEffect(create, deps) { + updateEffectImpl(2048, 8, create, deps); + } + function useEffectEventImpl(payload) { + currentlyRenderingFiber.flags |= 4; + var componentUpdateQueue = currentlyRenderingFiber.updateQueue; + if (null === componentUpdateQueue) + componentUpdateQueue = createFunctionComponentUpdateQueue(), currentlyRenderingFiber.updateQueue = componentUpdateQueue, componentUpdateQueue.events = [payload]; + else { + var events = componentUpdateQueue.events; + null === events ? componentUpdateQueue.events = [payload] : events.push(payload); + } + } + function updateEvent(callback) { + var ref = updateWorkInProgressHook().memoizedState; + useEffectEventImpl({ ref, nextImpl: callback }); + return function() { + if (0 !== (executionContext & 2)) throw Error(formatProdErrorMessage(440)); + return ref.impl.apply(void 0, arguments); + }; + } + function updateInsertionEffect(create, deps) { + return updateEffectImpl(4, 2, create, deps); + } + function updateLayoutEffect(create, deps) { + return updateEffectImpl(4, 4, create, deps); + } + function imperativeHandleEffect(create, ref) { + if ("function" === typeof ref) { + create = create(); + var refCleanup = ref(create); + return function() { + "function" === typeof refCleanup ? refCleanup() : ref(null); + }; + } + if (null !== ref && void 0 !== ref) + return create = create(), ref.current = create, function() { + ref.current = null; + }; + } + function updateImperativeHandle(ref, create, deps) { + deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null; + updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps); + } + function mountDebugValue() { + } + function updateCallback(callback, deps) { + var hook = updateWorkInProgressHook(); + deps = void 0 === deps ? null : deps; + var prevState = hook.memoizedState; + if (null !== deps && areHookInputsEqual(deps, prevState[1])) + return prevState[0]; + hook.memoizedState = [callback, deps]; + return callback; + } + function updateMemo(nextCreate, deps) { + var hook = updateWorkInProgressHook(); + deps = void 0 === deps ? null : deps; + var prevState = hook.memoizedState; + if (null !== deps && areHookInputsEqual(deps, prevState[1])) + return prevState[0]; + prevState = nextCreate(); + if (shouldDoubleInvokeUserFnsInHooksDEV) { + setIsStrictModeForDevtools(true); + try { + nextCreate(); + } finally { + setIsStrictModeForDevtools(false); + } + } + hook.memoizedState = [prevState, deps]; + return prevState; + } + function mountDeferredValueImpl(hook, value, initialValue) { + if (void 0 === initialValue || 0 !== (renderLanes & 1073741824) && 0 === (workInProgressRootRenderLanes & 261930)) + return hook.memoizedState = value; + hook.memoizedState = initialValue; + hook = requestDeferredLane(); + currentlyRenderingFiber.lanes |= hook; + workInProgressRootSkippedLanes |= hook; + return initialValue; + } + function updateDeferredValueImpl(hook, prevValue, value, initialValue) { + if (objectIs(value, prevValue)) return value; + if (null !== currentTreeHiddenStackCursor.current) + return hook = mountDeferredValueImpl(hook, value, initialValue), objectIs(hook, prevValue) || (didReceiveUpdate = true), hook; + if (0 === (renderLanes & 42) || 0 !== (renderLanes & 1073741824) && 0 === (workInProgressRootRenderLanes & 261930)) + return didReceiveUpdate = true, hook.memoizedState = value; + hook = requestDeferredLane(); + currentlyRenderingFiber.lanes |= hook; + workInProgressRootSkippedLanes |= hook; + return prevValue; + } + function startTransition(fiber, queue, pendingState, finishedState, callback) { + var previousPriority = ReactDOMSharedInternals.p; + ReactDOMSharedInternals.p = 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8; + var prevTransition = ReactSharedInternals.T, currentTransition = {}; + ReactSharedInternals.T = currentTransition; + dispatchOptimisticSetState(fiber, false, queue, pendingState); + try { + var returnValue = callback(), onStartTransitionFinish = ReactSharedInternals.S; + null !== onStartTransitionFinish && onStartTransitionFinish(currentTransition, returnValue); + if (null !== returnValue && "object" === typeof returnValue && "function" === typeof returnValue.then) { + var thenableForFinishedState = chainThenableValue( + returnValue, + finishedState + ); + dispatchSetStateInternal( + fiber, + queue, + thenableForFinishedState, + requestUpdateLane(fiber) + ); + } else + dispatchSetStateInternal( + fiber, + queue, + finishedState, + requestUpdateLane(fiber) + ); + } catch (error) { + dispatchSetStateInternal( + fiber, + queue, + { then: function() { + }, status: "rejected", reason: error }, + requestUpdateLane() + ); + } finally { + ReactDOMSharedInternals.p = previousPriority, null !== prevTransition && null !== currentTransition.types && (prevTransition.types = currentTransition.types), ReactSharedInternals.T = prevTransition; + } + } + function noop() { + } + function startHostTransition(formFiber, pendingState, action, formData) { + if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476)); + var queue = ensureFormComponentIsStateful(formFiber).queue; + startTransition( + formFiber, + queue, + pendingState, + sharedNotPendingObject, + null === action ? noop : function() { + requestFormReset$1(formFiber); + return action(formData); + } + ); + } + function ensureFormComponentIsStateful(formFiber) { + var existingStateHook = formFiber.memoizedState; + if (null !== existingStateHook) return existingStateHook; + existingStateHook = { + memoizedState: sharedNotPendingObject, + baseState: sharedNotPendingObject, + baseQueue: null, + queue: { + pending: null, + lanes: 0, + dispatch: null, + lastRenderedReducer: basicStateReducer, + lastRenderedState: sharedNotPendingObject + }, + next: null + }; + var initialResetState = {}; + existingStateHook.next = { + memoizedState: initialResetState, + baseState: initialResetState, + baseQueue: null, + queue: { + pending: null, + lanes: 0, + dispatch: null, + lastRenderedReducer: basicStateReducer, + lastRenderedState: initialResetState + }, + next: null + }; + formFiber.memoizedState = existingStateHook; + formFiber = formFiber.alternate; + null !== formFiber && (formFiber.memoizedState = existingStateHook); + return existingStateHook; + } + function requestFormReset$1(formFiber) { + var stateHook = ensureFormComponentIsStateful(formFiber); + null === stateHook.next && (stateHook = formFiber.alternate.memoizedState); + dispatchSetStateInternal( + formFiber, + stateHook.next.queue, + {}, + requestUpdateLane() + ); + } + function useHostTransitionStatus() { + return readContext(HostTransitionContext); + } + function updateId() { + return updateWorkInProgressHook().memoizedState; + } + function updateRefresh() { + return updateWorkInProgressHook().memoizedState; + } + function refreshCache(fiber) { + for (var provider = fiber.return; null !== provider; ) { + switch (provider.tag) { + case 24: + case 3: + var lane = requestUpdateLane(); + fiber = createUpdate(lane); + var root$69 = enqueueUpdate(provider, fiber, lane); + null !== root$69 && (scheduleUpdateOnFiber(root$69, provider, lane), entangleTransitions(root$69, provider, lane)); + provider = { cache: createCache() }; + fiber.payload = provider; + return; + } + provider = provider.return; + } + } + function dispatchReducerAction(fiber, queue, action) { + var lane = requestUpdateLane(); + action = { + lane, + revertLane: 0, + gesture: null, + action, + hasEagerState: false, + eagerState: null, + next: null + }; + isRenderPhaseUpdate(fiber) ? enqueueRenderPhaseUpdate(queue, action) : (action = enqueueConcurrentHookUpdate(fiber, queue, action, lane), null !== action && (scheduleUpdateOnFiber(action, fiber, lane), entangleTransitionUpdate(action, queue, lane))); + } + function dispatchSetState(fiber, queue, action) { + var lane = requestUpdateLane(); + dispatchSetStateInternal(fiber, queue, action, lane); + } + function dispatchSetStateInternal(fiber, queue, action, lane) { + var update = { + lane, + revertLane: 0, + gesture: null, + action, + hasEagerState: false, + eagerState: null, + next: null + }; + if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update); + else { + var alternate = fiber.alternate; + if (0 === fiber.lanes && (null === alternate || 0 === alternate.lanes) && (alternate = queue.lastRenderedReducer, null !== alternate)) + try { + var currentState = queue.lastRenderedState, eagerState = alternate(currentState, action); + update.hasEagerState = true; + update.eagerState = eagerState; + if (objectIs(eagerState, currentState)) + return enqueueUpdate$1(fiber, queue, update, 0), null === workInProgressRoot && finishQueueingConcurrentUpdates(), false; + } catch (error) { + } finally { + } + action = enqueueConcurrentHookUpdate(fiber, queue, update, lane); + if (null !== action) + return scheduleUpdateOnFiber(action, fiber, lane), entangleTransitionUpdate(action, queue, lane), true; + } + return false; + } + function dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) { + action = { + lane: 2, + revertLane: requestTransitionLane(), + gesture: null, + action, + hasEagerState: false, + eagerState: null, + next: null + }; + if (isRenderPhaseUpdate(fiber)) { + if (throwIfDuringRender) throw Error(formatProdErrorMessage(479)); + } else + throwIfDuringRender = enqueueConcurrentHookUpdate( + fiber, + queue, + action, + 2 + ), null !== throwIfDuringRender && scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2); + } + function isRenderPhaseUpdate(fiber) { + var alternate = fiber.alternate; + return fiber === currentlyRenderingFiber || null !== alternate && alternate === currentlyRenderingFiber; + } + function enqueueRenderPhaseUpdate(queue, update) { + didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate = true; + var pending = queue.pending; + null === pending ? update.next = update : (update.next = pending.next, pending.next = update); + queue.pending = update; + } + function entangleTransitionUpdate(root2, queue, lane) { + if (0 !== (lane & 4194048)) { + var queueLanes = queue.lanes; + queueLanes &= root2.pendingLanes; + lane |= queueLanes; + queue.lanes = lane; + markRootEntangled(root2, lane); + } + } + var ContextOnlyDispatcher = { + readContext, + use, + useCallback: throwInvalidHookError, + useContext: throwInvalidHookError, + useEffect: throwInvalidHookError, + useImperativeHandle: throwInvalidHookError, + useLayoutEffect: throwInvalidHookError, + useInsertionEffect: throwInvalidHookError, + useMemo: throwInvalidHookError, + useReducer: throwInvalidHookError, + useRef: throwInvalidHookError, + useState: throwInvalidHookError, + useDebugValue: throwInvalidHookError, + useDeferredValue: throwInvalidHookError, + useTransition: throwInvalidHookError, + useSyncExternalStore: throwInvalidHookError, + useId: throwInvalidHookError, + useHostTransitionStatus: throwInvalidHookError, + useFormState: throwInvalidHookError, + useActionState: throwInvalidHookError, + useOptimistic: throwInvalidHookError, + useMemoCache: throwInvalidHookError, + useCacheRefresh: throwInvalidHookError + }; + ContextOnlyDispatcher.useEffectEvent = throwInvalidHookError; + var HooksDispatcherOnMount = { + readContext, + use, + useCallback: function(callback, deps) { + mountWorkInProgressHook().memoizedState = [ + callback, + void 0 === deps ? null : deps + ]; + return callback; + }, + useContext: readContext, + useEffect: mountEffect, + useImperativeHandle: function(ref, create, deps) { + deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null; + mountEffectImpl( + 4194308, + 4, + imperativeHandleEffect.bind(null, create, ref), + deps + ); + }, + useLayoutEffect: function(create, deps) { + return mountEffectImpl(4194308, 4, create, deps); + }, + useInsertionEffect: function(create, deps) { + mountEffectImpl(4, 2, create, deps); + }, + useMemo: function(nextCreate, deps) { + var hook = mountWorkInProgressHook(); + deps = void 0 === deps ? null : deps; + var nextValue = nextCreate(); + if (shouldDoubleInvokeUserFnsInHooksDEV) { + setIsStrictModeForDevtools(true); + try { + nextCreate(); + } finally { + setIsStrictModeForDevtools(false); + } + } + hook.memoizedState = [nextValue, deps]; + return nextValue; + }, + useReducer: function(reducer, initialArg, init) { + var hook = mountWorkInProgressHook(); + if (void 0 !== init) { + var initialState = init(initialArg); + if (shouldDoubleInvokeUserFnsInHooksDEV) { + setIsStrictModeForDevtools(true); + try { + init(initialArg); + } finally { + setIsStrictModeForDevtools(false); + } + } + } else initialState = initialArg; + hook.memoizedState = hook.baseState = initialState; + reducer = { + pending: null, + lanes: 0, + dispatch: null, + lastRenderedReducer: reducer, + lastRenderedState: initialState + }; + hook.queue = reducer; + reducer = reducer.dispatch = dispatchReducerAction.bind( + null, + currentlyRenderingFiber, + reducer + ); + return [hook.memoizedState, reducer]; + }, + useRef: function(initialValue) { + var hook = mountWorkInProgressHook(); + initialValue = { current: initialValue }; + return hook.memoizedState = initialValue; + }, + useState: function(initialState) { + initialState = mountStateImpl(initialState); + var queue = initialState.queue, dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue); + queue.dispatch = dispatch; + return [initialState.memoizedState, dispatch]; + }, + useDebugValue: mountDebugValue, + useDeferredValue: function(value, initialValue) { + var hook = mountWorkInProgressHook(); + return mountDeferredValueImpl(hook, value, initialValue); + }, + useTransition: function() { + var stateHook = mountStateImpl(false); + stateHook = startTransition.bind( + null, + currentlyRenderingFiber, + stateHook.queue, + true, + false + ); + mountWorkInProgressHook().memoizedState = stateHook; + return [false, stateHook]; + }, + useSyncExternalStore: function(subscribe, getSnapshot, getServerSnapshot) { + var fiber = currentlyRenderingFiber, hook = mountWorkInProgressHook(); + if (isHydrating) { + if (void 0 === getServerSnapshot) + throw Error(formatProdErrorMessage(407)); + getServerSnapshot = getServerSnapshot(); + } else { + getServerSnapshot = getSnapshot(); + if (null === workInProgressRoot) + throw Error(formatProdErrorMessage(349)); + 0 !== (workInProgressRootRenderLanes & 127) || pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot); + } + hook.memoizedState = getServerSnapshot; + var inst = { value: getServerSnapshot, getSnapshot }; + hook.queue = inst; + mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [ + subscribe + ]); + fiber.flags |= 2048; + pushSimpleEffect( + 9, + { destroy: void 0 }, + updateStoreInstance.bind( + null, + fiber, + inst, + getServerSnapshot, + getSnapshot + ), + null + ); + return getServerSnapshot; + }, + useId: function() { + var hook = mountWorkInProgressHook(), identifierPrefix = workInProgressRoot.identifierPrefix; + if (isHydrating) { + var JSCompiler_inline_result = treeContextOverflow; + var idWithLeadingBit = treeContextId; + JSCompiler_inline_result = (idWithLeadingBit & ~(1 << 32 - clz32(idWithLeadingBit) - 1)).toString(32) + JSCompiler_inline_result; + identifierPrefix = "_" + identifierPrefix + "R_" + JSCompiler_inline_result; + JSCompiler_inline_result = localIdCounter++; + 0 < JSCompiler_inline_result && (identifierPrefix += "H" + JSCompiler_inline_result.toString(32)); + identifierPrefix += "_"; + } else + JSCompiler_inline_result = globalClientIdCounter++, identifierPrefix = "_" + identifierPrefix + "r_" + JSCompiler_inline_result.toString(32) + "_"; + return hook.memoizedState = identifierPrefix; + }, + useHostTransitionStatus, + useFormState: mountActionState, + useActionState: mountActionState, + useOptimistic: function(passthrough) { + var hook = mountWorkInProgressHook(); + hook.memoizedState = hook.baseState = passthrough; + var queue = { + pending: null, + lanes: 0, + dispatch: null, + lastRenderedReducer: null, + lastRenderedState: null + }; + hook.queue = queue; + hook = dispatchOptimisticSetState.bind( + null, + currentlyRenderingFiber, + true, + queue + ); + queue.dispatch = hook; + return [passthrough, hook]; + }, + useMemoCache, + useCacheRefresh: function() { + return mountWorkInProgressHook().memoizedState = refreshCache.bind( + null, + currentlyRenderingFiber + ); + }, + useEffectEvent: function(callback) { + var hook = mountWorkInProgressHook(), ref = { impl: callback }; + hook.memoizedState = ref; + return function() { + if (0 !== (executionContext & 2)) + throw Error(formatProdErrorMessage(440)); + return ref.impl.apply(void 0, arguments); + }; + } + }, HooksDispatcherOnUpdate = { + readContext, + use, + useCallback: updateCallback, + useContext: readContext, + useEffect: updateEffect, + useImperativeHandle: updateImperativeHandle, + useInsertionEffect: updateInsertionEffect, + useLayoutEffect: updateLayoutEffect, + useMemo: updateMemo, + useReducer: updateReducer, + useRef: updateRef, + useState: function() { + return updateReducer(basicStateReducer); + }, + useDebugValue: mountDebugValue, + useDeferredValue: function(value, initialValue) { + var hook = updateWorkInProgressHook(); + return updateDeferredValueImpl( + hook, + currentHook.memoizedState, + value, + initialValue + ); + }, + useTransition: function() { + var booleanOrThenable = updateReducer(basicStateReducer)[0], start = updateWorkInProgressHook().memoizedState; + return [ + "boolean" === typeof booleanOrThenable ? booleanOrThenable : useThenable(booleanOrThenable), + start + ]; + }, + useSyncExternalStore: updateSyncExternalStore, + useId: updateId, + useHostTransitionStatus, + useFormState: updateActionState, + useActionState: updateActionState, + useOptimistic: function(passthrough, reducer) { + var hook = updateWorkInProgressHook(); + return updateOptimisticImpl(hook, currentHook, passthrough, reducer); + }, + useMemoCache, + useCacheRefresh: updateRefresh + }; + HooksDispatcherOnUpdate.useEffectEvent = updateEvent; + var HooksDispatcherOnRerender = { + readContext, + use, + useCallback: updateCallback, + useContext: readContext, + useEffect: updateEffect, + useImperativeHandle: updateImperativeHandle, + useInsertionEffect: updateInsertionEffect, + useLayoutEffect: updateLayoutEffect, + useMemo: updateMemo, + useReducer: rerenderReducer, + useRef: updateRef, + useState: function() { + return rerenderReducer(basicStateReducer); + }, + useDebugValue: mountDebugValue, + useDeferredValue: function(value, initialValue) { + var hook = updateWorkInProgressHook(); + return null === currentHook ? mountDeferredValueImpl(hook, value, initialValue) : updateDeferredValueImpl( + hook, + currentHook.memoizedState, + value, + initialValue + ); + }, + useTransition: function() { + var booleanOrThenable = rerenderReducer(basicStateReducer)[0], start = updateWorkInProgressHook().memoizedState; + return [ + "boolean" === typeof booleanOrThenable ? booleanOrThenable : useThenable(booleanOrThenable), + start + ]; + }, + useSyncExternalStore: updateSyncExternalStore, + useId: updateId, + useHostTransitionStatus, + useFormState: rerenderActionState, + useActionState: rerenderActionState, + useOptimistic: function(passthrough, reducer) { + var hook = updateWorkInProgressHook(); + if (null !== currentHook) + return updateOptimisticImpl(hook, currentHook, passthrough, reducer); + hook.baseState = passthrough; + return [passthrough, hook.queue.dispatch]; + }, + useMemoCache, + useCacheRefresh: updateRefresh + }; + HooksDispatcherOnRerender.useEffectEvent = updateEvent; + function applyDerivedStateFromProps(workInProgress2, ctor, getDerivedStateFromProps, nextProps) { + ctor = workInProgress2.memoizedState; + getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor); + getDerivedStateFromProps = null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps ? ctor : assign({}, ctor, getDerivedStateFromProps); + workInProgress2.memoizedState = getDerivedStateFromProps; + 0 === workInProgress2.lanes && (workInProgress2.updateQueue.baseState = getDerivedStateFromProps); + } + var classComponentUpdater = { + enqueueSetState: function(inst, payload, callback) { + inst = inst._reactInternals; + var lane = requestUpdateLane(), update = createUpdate(lane); + update.payload = payload; + void 0 !== callback && null !== callback && (update.callback = callback); + payload = enqueueUpdate(inst, update, lane); + null !== payload && (scheduleUpdateOnFiber(payload, inst, lane), entangleTransitions(payload, inst, lane)); + }, + enqueueReplaceState: function(inst, payload, callback) { + inst = inst._reactInternals; + var lane = requestUpdateLane(), update = createUpdate(lane); + update.tag = 1; + update.payload = payload; + void 0 !== callback && null !== callback && (update.callback = callback); + payload = enqueueUpdate(inst, update, lane); + null !== payload && (scheduleUpdateOnFiber(payload, inst, lane), entangleTransitions(payload, inst, lane)); + }, + enqueueForceUpdate: function(inst, callback) { + inst = inst._reactInternals; + var lane = requestUpdateLane(), update = createUpdate(lane); + update.tag = 2; + void 0 !== callback && null !== callback && (update.callback = callback); + callback = enqueueUpdate(inst, update, lane); + null !== callback && (scheduleUpdateOnFiber(callback, inst, lane), entangleTransitions(callback, inst, lane)); + } + }; + function checkShouldComponentUpdate(workInProgress2, ctor, oldProps, newProps, oldState, newState, nextContext) { + workInProgress2 = workInProgress2.stateNode; + return "function" === typeof workInProgress2.shouldComponentUpdate ? workInProgress2.shouldComponentUpdate(newProps, newState, nextContext) : ctor.prototype && ctor.prototype.isPureReactComponent ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState) : true; + } + function callComponentWillReceiveProps(workInProgress2, instance, newProps, nextContext) { + workInProgress2 = instance.state; + "function" === typeof instance.componentWillReceiveProps && instance.componentWillReceiveProps(newProps, nextContext); + "function" === typeof instance.UNSAFE_componentWillReceiveProps && instance.UNSAFE_componentWillReceiveProps(newProps, nextContext); + instance.state !== workInProgress2 && classComponentUpdater.enqueueReplaceState(instance, instance.state, null); + } + function resolveClassComponentProps(Component, baseProps) { + var newProps = baseProps; + if ("ref" in baseProps) { + newProps = {}; + for (var propName in baseProps) + "ref" !== propName && (newProps[propName] = baseProps[propName]); + } + if (Component = Component.defaultProps) { + newProps === baseProps && (newProps = assign({}, newProps)); + for (var propName$73 in Component) + void 0 === newProps[propName$73] && (newProps[propName$73] = Component[propName$73]); + } + return newProps; + } + function defaultOnUncaughtError(error) { + reportGlobalError(error); + } + function defaultOnCaughtError(error) { + console.error(error); + } + function defaultOnRecoverableError(error) { + reportGlobalError(error); + } + function logUncaughtError(root2, errorInfo) { + try { + var onUncaughtError = root2.onUncaughtError; + onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack }); + } catch (e$74) { + setTimeout(function() { + throw e$74; + }); + } + } + function logCaughtError(root2, boundary, errorInfo) { + try { + var onCaughtError = root2.onCaughtError; + onCaughtError(errorInfo.value, { + componentStack: errorInfo.stack, + errorBoundary: 1 === boundary.tag ? boundary.stateNode : null + }); + } catch (e$75) { + setTimeout(function() { + throw e$75; + }); + } + } + function createRootErrorUpdate(root2, errorInfo, lane) { + lane = createUpdate(lane); + lane.tag = 3; + lane.payload = { element: null }; + lane.callback = function() { + logUncaughtError(root2, errorInfo); + }; + return lane; + } + function createClassErrorUpdate(lane) { + lane = createUpdate(lane); + lane.tag = 3; + return lane; + } + function initializeClassErrorUpdate(update, root2, fiber, errorInfo) { + var getDerivedStateFromError = fiber.type.getDerivedStateFromError; + if ("function" === typeof getDerivedStateFromError) { + var error = errorInfo.value; + update.payload = function() { + return getDerivedStateFromError(error); + }; + update.callback = function() { + logCaughtError(root2, fiber, errorInfo); + }; + } + var inst = fiber.stateNode; + null !== inst && "function" === typeof inst.componentDidCatch && (update.callback = function() { + logCaughtError(root2, fiber, errorInfo); + "function" !== typeof getDerivedStateFromError && (null === legacyErrorBoundariesThatAlreadyFailed ? legacyErrorBoundariesThatAlreadyFailed = /* @__PURE__ */ new Set([this]) : legacyErrorBoundariesThatAlreadyFailed.add(this)); + var stack = errorInfo.stack; + this.componentDidCatch(errorInfo.value, { + componentStack: null !== stack ? stack : "" + }); + }); + } + function throwException(root2, returnFiber, sourceFiber, value, rootRenderLanes) { + sourceFiber.flags |= 32768; + if (null !== value && "object" === typeof value && "function" === typeof value.then) { + returnFiber = sourceFiber.alternate; + null !== returnFiber && propagateParentContextChanges( + returnFiber, + sourceFiber, + rootRenderLanes, + true + ); + sourceFiber = suspenseHandlerStackCursor.current; + if (null !== sourceFiber) { + switch (sourceFiber.tag) { + case 31: + case 13: + return null === shellBoundary ? renderDidSuspendDelayIfPossible() : null === sourceFiber.alternate && 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 3), sourceFiber.flags &= -257, sourceFiber.flags |= 65536, sourceFiber.lanes = rootRenderLanes, value === noopSuspenseyCommitThenable ? sourceFiber.flags |= 16384 : (returnFiber = sourceFiber.updateQueue, null === returnFiber ? sourceFiber.updateQueue = /* @__PURE__ */ new Set([value]) : returnFiber.add(value), attachPingListener(root2, value, rootRenderLanes)), false; + case 22: + return sourceFiber.flags |= 65536, value === noopSuspenseyCommitThenable ? sourceFiber.flags |= 16384 : (returnFiber = sourceFiber.updateQueue, null === returnFiber ? (returnFiber = { + transitions: null, + markerInstances: null, + retryQueue: /* @__PURE__ */ new Set([value]) + }, sourceFiber.updateQueue = returnFiber) : (sourceFiber = returnFiber.retryQueue, null === sourceFiber ? returnFiber.retryQueue = /* @__PURE__ */ new Set([value]) : sourceFiber.add(value)), attachPingListener(root2, value, rootRenderLanes)), false; + } + throw Error(formatProdErrorMessage(435, sourceFiber.tag)); + } + attachPingListener(root2, value, rootRenderLanes); + renderDidSuspendDelayIfPossible(); + return false; + } + if (isHydrating) + return returnFiber = suspenseHandlerStackCursor.current, null !== returnFiber ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256), returnFiber.flags |= 65536, returnFiber.lanes = rootRenderLanes, value !== HydrationMismatchException && (root2 = Error(formatProdErrorMessage(422), { cause: value }), queueHydrationError(createCapturedValueAtFiber(root2, sourceFiber)))) : (value !== HydrationMismatchException && (returnFiber = Error(formatProdErrorMessage(423), { + cause: value + }), queueHydrationError( + createCapturedValueAtFiber(returnFiber, sourceFiber) + )), root2 = root2.current.alternate, root2.flags |= 65536, rootRenderLanes &= -rootRenderLanes, root2.lanes |= rootRenderLanes, value = createCapturedValueAtFiber(value, sourceFiber), rootRenderLanes = createRootErrorUpdate( + root2.stateNode, + value, + rootRenderLanes + ), enqueueCapturedUpdate(root2, rootRenderLanes), 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2)), false; + var wrapperError = Error(formatProdErrorMessage(520), { cause: value }); + wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber); + null === workInProgressRootConcurrentErrors ? workInProgressRootConcurrentErrors = [wrapperError] : workInProgressRootConcurrentErrors.push(wrapperError); + 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2); + if (null === returnFiber) return true; + value = createCapturedValueAtFiber(value, sourceFiber); + sourceFiber = returnFiber; + do { + switch (sourceFiber.tag) { + case 3: + return sourceFiber.flags |= 65536, root2 = rootRenderLanes & -rootRenderLanes, sourceFiber.lanes |= root2, root2 = createRootErrorUpdate(sourceFiber.stateNode, value, root2), enqueueCapturedUpdate(sourceFiber, root2), false; + case 1: + if (returnFiber = sourceFiber.type, wrapperError = sourceFiber.stateNode, 0 === (sourceFiber.flags & 128) && ("function" === typeof returnFiber.getDerivedStateFromError || null !== wrapperError && "function" === typeof wrapperError.componentDidCatch && (null === legacyErrorBoundariesThatAlreadyFailed || !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))) + return sourceFiber.flags |= 65536, rootRenderLanes &= -rootRenderLanes, sourceFiber.lanes |= rootRenderLanes, rootRenderLanes = createClassErrorUpdate(rootRenderLanes), initializeClassErrorUpdate( + rootRenderLanes, + root2, + sourceFiber, + value + ), enqueueCapturedUpdate(sourceFiber, rootRenderLanes), false; + } + sourceFiber = sourceFiber.return; + } while (null !== sourceFiber); + return false; + } + var SelectiveHydrationException = Error(formatProdErrorMessage(461)), didReceiveUpdate = false; + function reconcileChildren(current, workInProgress2, nextChildren, renderLanes2) { + workInProgress2.child = null === current ? mountChildFibers(workInProgress2, null, nextChildren, renderLanes2) : reconcileChildFibers( + workInProgress2, + current.child, + nextChildren, + renderLanes2 + ); + } + function updateForwardRef(current, workInProgress2, Component, nextProps, renderLanes2) { + Component = Component.render; + var ref = workInProgress2.ref; + if ("ref" in nextProps) { + var propsWithoutRef = {}; + for (var key in nextProps) + "ref" !== key && (propsWithoutRef[key] = nextProps[key]); + } else propsWithoutRef = nextProps; + prepareToReadContext(workInProgress2); + nextProps = renderWithHooks( + current, + workInProgress2, + Component, + propsWithoutRef, + ref, + renderLanes2 + ); + key = checkDidRenderIdHook(); + if (null !== current && !didReceiveUpdate) + return bailoutHooks(current, workInProgress2, renderLanes2), bailoutOnAlreadyFinishedWork(current, workInProgress2, renderLanes2); + isHydrating && key && pushMaterializedTreeId(workInProgress2); + workInProgress2.flags |= 1; + reconcileChildren(current, workInProgress2, nextProps, renderLanes2); + return workInProgress2.child; + } + function updateMemoComponent(current, workInProgress2, Component, nextProps, renderLanes2) { + if (null === current) { + var type = Component.type; + if ("function" === typeof type && !shouldConstruct(type) && void 0 === type.defaultProps && null === Component.compare) + return workInProgress2.tag = 15, workInProgress2.type = type, updateSimpleMemoComponent( + current, + workInProgress2, + type, + nextProps, + renderLanes2 + ); + current = createFiberFromTypeAndProps( + Component.type, + null, + nextProps, + workInProgress2, + workInProgress2.mode, + renderLanes2 + ); + current.ref = workInProgress2.ref; + current.return = workInProgress2; + return workInProgress2.child = current; + } + type = current.child; + if (!checkScheduledUpdateOrContext(current, renderLanes2)) { + var prevProps = type.memoizedProps; + Component = Component.compare; + Component = null !== Component ? Component : shallowEqual; + if (Component(prevProps, nextProps) && current.ref === workInProgress2.ref) + return bailoutOnAlreadyFinishedWork(current, workInProgress2, renderLanes2); + } + workInProgress2.flags |= 1; + current = createWorkInProgress(type, nextProps); + current.ref = workInProgress2.ref; + current.return = workInProgress2; + return workInProgress2.child = current; + } + function updateSimpleMemoComponent(current, workInProgress2, Component, nextProps, renderLanes2) { + if (null !== current) { + var prevProps = current.memoizedProps; + if (shallowEqual(prevProps, nextProps) && current.ref === workInProgress2.ref) + if (didReceiveUpdate = false, workInProgress2.pendingProps = nextProps = prevProps, checkScheduledUpdateOrContext(current, renderLanes2)) + 0 !== (current.flags & 131072) && (didReceiveUpdate = true); + else + return workInProgress2.lanes = current.lanes, bailoutOnAlreadyFinishedWork(current, workInProgress2, renderLanes2); + } + return updateFunctionComponent( + current, + workInProgress2, + Component, + nextProps, + renderLanes2 + ); + } + function updateOffscreenComponent(current, workInProgress2, renderLanes2, nextProps) { + var nextChildren = nextProps.children, prevState = null !== current ? current.memoizedState : null; + null === current && null === workInProgress2.stateNode && (workInProgress2.stateNode = { + _visibility: 1, + _pendingMarkers: null, + _retryCache: null, + _transitions: null + }); + if ("hidden" === nextProps.mode) { + if (0 !== (workInProgress2.flags & 128)) { + prevState = null !== prevState ? prevState.baseLanes | renderLanes2 : renderLanes2; + if (null !== current) { + nextProps = workInProgress2.child = current.child; + for (nextChildren = 0; null !== nextProps; ) + nextChildren = nextChildren | nextProps.lanes | nextProps.childLanes, nextProps = nextProps.sibling; + nextProps = nextChildren & ~prevState; + } else nextProps = 0, workInProgress2.child = null; + return deferHiddenOffscreenComponent( + current, + workInProgress2, + prevState, + renderLanes2, + nextProps + ); + } + if (0 !== (renderLanes2 & 536870912)) + workInProgress2.memoizedState = { baseLanes: 0, cachePool: null }, null !== current && pushTransition( + workInProgress2, + null !== prevState ? prevState.cachePool : null + ), null !== prevState ? pushHiddenContext(workInProgress2, prevState) : reuseHiddenContextOnStack(), pushOffscreenSuspenseHandler(workInProgress2); + else + return nextProps = workInProgress2.lanes = 536870912, deferHiddenOffscreenComponent( + current, + workInProgress2, + null !== prevState ? prevState.baseLanes | renderLanes2 : renderLanes2, + renderLanes2, + nextProps + ); + } else + null !== prevState ? (pushTransition(workInProgress2, prevState.cachePool), pushHiddenContext(workInProgress2, prevState), reuseSuspenseHandlerOnStack(), workInProgress2.memoizedState = null) : (null !== current && pushTransition(workInProgress2, null), reuseHiddenContextOnStack(), reuseSuspenseHandlerOnStack()); + reconcileChildren(current, workInProgress2, nextChildren, renderLanes2); + return workInProgress2.child; + } + function bailoutOffscreenComponent(current, workInProgress2) { + null !== current && 22 === current.tag || null !== workInProgress2.stateNode || (workInProgress2.stateNode = { + _visibility: 1, + _pendingMarkers: null, + _retryCache: null, + _transitions: null + }); + return workInProgress2.sibling; + } + function deferHiddenOffscreenComponent(current, workInProgress2, nextBaseLanes, renderLanes2, remainingChildLanes) { + var JSCompiler_inline_result = peekCacheFromPool(); + JSCompiler_inline_result = null === JSCompiler_inline_result ? null : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result }; + workInProgress2.memoizedState = { + baseLanes: nextBaseLanes, + cachePool: JSCompiler_inline_result + }; + null !== current && pushTransition(workInProgress2, null); + reuseHiddenContextOnStack(); + pushOffscreenSuspenseHandler(workInProgress2); + null !== current && propagateParentContextChanges(current, workInProgress2, renderLanes2, true); + workInProgress2.childLanes = remainingChildLanes; + return null; + } + function mountActivityChildren(workInProgress2, nextProps) { + nextProps = mountWorkInProgressOffscreenFiber( + { mode: nextProps.mode, children: nextProps.children }, + workInProgress2.mode + ); + nextProps.ref = workInProgress2.ref; + workInProgress2.child = nextProps; + nextProps.return = workInProgress2; + return nextProps; + } + function retryActivityComponentWithoutHydrating(current, workInProgress2, renderLanes2) { + reconcileChildFibers(workInProgress2, current.child, null, renderLanes2); + current = mountActivityChildren(workInProgress2, workInProgress2.pendingProps); + current.flags |= 2; + popSuspenseHandler(workInProgress2); + workInProgress2.memoizedState = null; + return current; + } + function updateActivityComponent(current, workInProgress2, renderLanes2) { + var nextProps = workInProgress2.pendingProps, didSuspend = 0 !== (workInProgress2.flags & 128); + workInProgress2.flags &= -129; + if (null === current) { + if (isHydrating) { + if ("hidden" === nextProps.mode) + return current = mountActivityChildren(workInProgress2, nextProps), workInProgress2.lanes = 536870912, bailoutOffscreenComponent(null, current); + pushDehydratedActivitySuspenseHandler(workInProgress2); + (current = nextHydratableInstance) ? (current = canHydrateHydrationBoundary( + current, + rootOrSingletonContext + ), current = null !== current && "&" === current.data ? current : null, null !== current && (workInProgress2.memoizedState = { + dehydrated: current, + treeContext: null !== treeContextProvider ? { id: treeContextId, overflow: treeContextOverflow } : null, + retryLane: 536870912, + hydrationErrors: null + }, renderLanes2 = createFiberFromDehydratedFragment(current), renderLanes2.return = workInProgress2, workInProgress2.child = renderLanes2, hydrationParentFiber = workInProgress2, nextHydratableInstance = null)) : current = null; + if (null === current) throw throwOnHydrationMismatch(workInProgress2); + workInProgress2.lanes = 536870912; + return null; + } + return mountActivityChildren(workInProgress2, nextProps); + } + var prevState = current.memoizedState; + if (null !== prevState) { + var dehydrated = prevState.dehydrated; + pushDehydratedActivitySuspenseHandler(workInProgress2); + if (didSuspend) + if (workInProgress2.flags & 256) + workInProgress2.flags &= -257, workInProgress2 = retryActivityComponentWithoutHydrating( + current, + workInProgress2, + renderLanes2 + ); + else if (null !== workInProgress2.memoizedState) + workInProgress2.child = current.child, workInProgress2.flags |= 128, workInProgress2 = null; + else throw Error(formatProdErrorMessage(558)); + else if (didReceiveUpdate || propagateParentContextChanges(current, workInProgress2, renderLanes2, false), didSuspend = 0 !== (renderLanes2 & current.childLanes), didReceiveUpdate || didSuspend) { + nextProps = workInProgressRoot; + if (null !== nextProps && (dehydrated = getBumpedLaneForHydration(nextProps, renderLanes2), 0 !== dehydrated && dehydrated !== prevState.retryLane)) + throw prevState.retryLane = dehydrated, enqueueConcurrentRenderForLane(current, dehydrated), scheduleUpdateOnFiber(nextProps, current, dehydrated), SelectiveHydrationException; + renderDidSuspendDelayIfPossible(); + workInProgress2 = retryActivityComponentWithoutHydrating( + current, + workInProgress2, + renderLanes2 + ); + } else + current = prevState.treeContext, nextHydratableInstance = getNextHydratable(dehydrated.nextSibling), hydrationParentFiber = workInProgress2, isHydrating = true, hydrationErrors = null, rootOrSingletonContext = false, null !== current && restoreSuspendedTreeContext(workInProgress2, current), workInProgress2 = mountActivityChildren(workInProgress2, nextProps), workInProgress2.flags |= 4096; + return workInProgress2; + } + current = createWorkInProgress(current.child, { + mode: nextProps.mode, + children: nextProps.children + }); + current.ref = workInProgress2.ref; + workInProgress2.child = current; + current.return = workInProgress2; + return current; + } + function markRef(current, workInProgress2) { + var ref = workInProgress2.ref; + if (null === ref) + null !== current && null !== current.ref && (workInProgress2.flags |= 4194816); + else { + if ("function" !== typeof ref && "object" !== typeof ref) + throw Error(formatProdErrorMessage(284)); + if (null === current || current.ref !== ref) + workInProgress2.flags |= 4194816; + } + } + function updateFunctionComponent(current, workInProgress2, Component, nextProps, renderLanes2) { + prepareToReadContext(workInProgress2); + Component = renderWithHooks( + current, + workInProgress2, + Component, + nextProps, + void 0, + renderLanes2 + ); + nextProps = checkDidRenderIdHook(); + if (null !== current && !didReceiveUpdate) + return bailoutHooks(current, workInProgress2, renderLanes2), bailoutOnAlreadyFinishedWork(current, workInProgress2, renderLanes2); + isHydrating && nextProps && pushMaterializedTreeId(workInProgress2); + workInProgress2.flags |= 1; + reconcileChildren(current, workInProgress2, Component, renderLanes2); + return workInProgress2.child; + } + function replayFunctionComponent(current, workInProgress2, nextProps, Component, secondArg, renderLanes2) { + prepareToReadContext(workInProgress2); + workInProgress2.updateQueue = null; + nextProps = renderWithHooksAgain( + workInProgress2, + Component, + nextProps, + secondArg + ); + finishRenderingHooks(current); + Component = checkDidRenderIdHook(); + if (null !== current && !didReceiveUpdate) + return bailoutHooks(current, workInProgress2, renderLanes2), bailoutOnAlreadyFinishedWork(current, workInProgress2, renderLanes2); + isHydrating && Component && pushMaterializedTreeId(workInProgress2); + workInProgress2.flags |= 1; + reconcileChildren(current, workInProgress2, nextProps, renderLanes2); + return workInProgress2.child; + } + function updateClassComponent(current, workInProgress2, Component, nextProps, renderLanes2) { + prepareToReadContext(workInProgress2); + if (null === workInProgress2.stateNode) { + var context = emptyContextObject, contextType = Component.contextType; + "object" === typeof contextType && null !== contextType && (context = readContext(contextType)); + context = new Component(nextProps, context); + workInProgress2.memoizedState = null !== context.state && void 0 !== context.state ? context.state : null; + context.updater = classComponentUpdater; + workInProgress2.stateNode = context; + context._reactInternals = workInProgress2; + context = workInProgress2.stateNode; + context.props = nextProps; + context.state = workInProgress2.memoizedState; + context.refs = {}; + initializeUpdateQueue(workInProgress2); + contextType = Component.contextType; + context.context = "object" === typeof contextType && null !== contextType ? readContext(contextType) : emptyContextObject; + context.state = workInProgress2.memoizedState; + contextType = Component.getDerivedStateFromProps; + "function" === typeof contextType && (applyDerivedStateFromProps( + workInProgress2, + Component, + contextType, + nextProps + ), context.state = workInProgress2.memoizedState); + "function" === typeof Component.getDerivedStateFromProps || "function" === typeof context.getSnapshotBeforeUpdate || "function" !== typeof context.UNSAFE_componentWillMount && "function" !== typeof context.componentWillMount || (contextType = context.state, "function" === typeof context.componentWillMount && context.componentWillMount(), "function" === typeof context.UNSAFE_componentWillMount && context.UNSAFE_componentWillMount(), contextType !== context.state && classComponentUpdater.enqueueReplaceState(context, context.state, null), processUpdateQueue(workInProgress2, nextProps, context, renderLanes2), suspendIfUpdateReadFromEntangledAsyncAction(), context.state = workInProgress2.memoizedState); + "function" === typeof context.componentDidMount && (workInProgress2.flags |= 4194308); + nextProps = true; + } else if (null === current) { + context = workInProgress2.stateNode; + var unresolvedOldProps = workInProgress2.memoizedProps, oldProps = resolveClassComponentProps(Component, unresolvedOldProps); + context.props = oldProps; + var oldContext = context.context, contextType$jscomp$0 = Component.contextType; + contextType = emptyContextObject; + "object" === typeof contextType$jscomp$0 && null !== contextType$jscomp$0 && (contextType = readContext(contextType$jscomp$0)); + var getDerivedStateFromProps = Component.getDerivedStateFromProps; + contextType$jscomp$0 = "function" === typeof getDerivedStateFromProps || "function" === typeof context.getSnapshotBeforeUpdate; + unresolvedOldProps = workInProgress2.pendingProps !== unresolvedOldProps; + contextType$jscomp$0 || "function" !== typeof context.UNSAFE_componentWillReceiveProps && "function" !== typeof context.componentWillReceiveProps || (unresolvedOldProps || oldContext !== contextType) && callComponentWillReceiveProps( + workInProgress2, + context, + nextProps, + contextType + ); + hasForceUpdate = false; + var oldState = workInProgress2.memoizedState; + context.state = oldState; + processUpdateQueue(workInProgress2, nextProps, context, renderLanes2); + suspendIfUpdateReadFromEntangledAsyncAction(); + oldContext = workInProgress2.memoizedState; + unresolvedOldProps || oldState !== oldContext || hasForceUpdate ? ("function" === typeof getDerivedStateFromProps && (applyDerivedStateFromProps( + workInProgress2, + Component, + getDerivedStateFromProps, + nextProps + ), oldContext = workInProgress2.memoizedState), (oldProps = hasForceUpdate || checkShouldComponentUpdate( + workInProgress2, + Component, + oldProps, + nextProps, + oldState, + oldContext, + contextType + )) ? (contextType$jscomp$0 || "function" !== typeof context.UNSAFE_componentWillMount && "function" !== typeof context.componentWillMount || ("function" === typeof context.componentWillMount && context.componentWillMount(), "function" === typeof context.UNSAFE_componentWillMount && context.UNSAFE_componentWillMount()), "function" === typeof context.componentDidMount && (workInProgress2.flags |= 4194308)) : ("function" === typeof context.componentDidMount && (workInProgress2.flags |= 4194308), workInProgress2.memoizedProps = nextProps, workInProgress2.memoizedState = oldContext), context.props = nextProps, context.state = oldContext, context.context = contextType, nextProps = oldProps) : ("function" === typeof context.componentDidMount && (workInProgress2.flags |= 4194308), nextProps = false); + } else { + context = workInProgress2.stateNode; + cloneUpdateQueue(current, workInProgress2); + contextType = workInProgress2.memoizedProps; + contextType$jscomp$0 = resolveClassComponentProps(Component, contextType); + context.props = contextType$jscomp$0; + getDerivedStateFromProps = workInProgress2.pendingProps; + oldState = context.context; + oldContext = Component.contextType; + oldProps = emptyContextObject; + "object" === typeof oldContext && null !== oldContext && (oldProps = readContext(oldContext)); + unresolvedOldProps = Component.getDerivedStateFromProps; + (oldContext = "function" === typeof unresolvedOldProps || "function" === typeof context.getSnapshotBeforeUpdate) || "function" !== typeof context.UNSAFE_componentWillReceiveProps && "function" !== typeof context.componentWillReceiveProps || (contextType !== getDerivedStateFromProps || oldState !== oldProps) && callComponentWillReceiveProps( + workInProgress2, + context, + nextProps, + oldProps + ); + hasForceUpdate = false; + oldState = workInProgress2.memoizedState; + context.state = oldState; + processUpdateQueue(workInProgress2, nextProps, context, renderLanes2); + suspendIfUpdateReadFromEntangledAsyncAction(); + var newState = workInProgress2.memoizedState; + contextType !== getDerivedStateFromProps || oldState !== newState || hasForceUpdate || null !== current && null !== current.dependencies && checkIfContextChanged(current.dependencies) ? ("function" === typeof unresolvedOldProps && (applyDerivedStateFromProps( + workInProgress2, + Component, + unresolvedOldProps, + nextProps + ), newState = workInProgress2.memoizedState), (contextType$jscomp$0 = hasForceUpdate || checkShouldComponentUpdate( + workInProgress2, + Component, + contextType$jscomp$0, + nextProps, + oldState, + newState, + oldProps + ) || null !== current && null !== current.dependencies && checkIfContextChanged(current.dependencies)) ? (oldContext || "function" !== typeof context.UNSAFE_componentWillUpdate && "function" !== typeof context.componentWillUpdate || ("function" === typeof context.componentWillUpdate && context.componentWillUpdate(nextProps, newState, oldProps), "function" === typeof context.UNSAFE_componentWillUpdate && context.UNSAFE_componentWillUpdate( + nextProps, + newState, + oldProps + )), "function" === typeof context.componentDidUpdate && (workInProgress2.flags |= 4), "function" === typeof context.getSnapshotBeforeUpdate && (workInProgress2.flags |= 1024)) : ("function" !== typeof context.componentDidUpdate || contextType === current.memoizedProps && oldState === current.memoizedState || (workInProgress2.flags |= 4), "function" !== typeof context.getSnapshotBeforeUpdate || contextType === current.memoizedProps && oldState === current.memoizedState || (workInProgress2.flags |= 1024), workInProgress2.memoizedProps = nextProps, workInProgress2.memoizedState = newState), context.props = nextProps, context.state = newState, context.context = oldProps, nextProps = contextType$jscomp$0) : ("function" !== typeof context.componentDidUpdate || contextType === current.memoizedProps && oldState === current.memoizedState || (workInProgress2.flags |= 4), "function" !== typeof context.getSnapshotBeforeUpdate || contextType === current.memoizedProps && oldState === current.memoizedState || (workInProgress2.flags |= 1024), nextProps = false); + } + context = nextProps; + markRef(current, workInProgress2); + nextProps = 0 !== (workInProgress2.flags & 128); + context || nextProps ? (context = workInProgress2.stateNode, Component = nextProps && "function" !== typeof Component.getDerivedStateFromError ? null : context.render(), workInProgress2.flags |= 1, null !== current && nextProps ? (workInProgress2.child = reconcileChildFibers( + workInProgress2, + current.child, + null, + renderLanes2 + ), workInProgress2.child = reconcileChildFibers( + workInProgress2, + null, + Component, + renderLanes2 + )) : reconcileChildren(current, workInProgress2, Component, renderLanes2), workInProgress2.memoizedState = context.state, current = workInProgress2.child) : current = bailoutOnAlreadyFinishedWork( + current, + workInProgress2, + renderLanes2 + ); + return current; + } + function mountHostRootWithoutHydrating(current, workInProgress2, nextChildren, renderLanes2) { + resetHydrationState(); + workInProgress2.flags |= 256; + reconcileChildren(current, workInProgress2, nextChildren, renderLanes2); + return workInProgress2.child; + } + var SUSPENDED_MARKER = { + dehydrated: null, + treeContext: null, + retryLane: 0, + hydrationErrors: null + }; + function mountSuspenseOffscreenState(renderLanes2) { + return { baseLanes: renderLanes2, cachePool: getSuspendedCache() }; + } + function getRemainingWorkInPrimaryTree(current, primaryTreeDidDefer, renderLanes2) { + current = null !== current ? current.childLanes & ~renderLanes2 : 0; + primaryTreeDidDefer && (current |= workInProgressDeferredLane); + return current; + } + function updateSuspenseComponent(current, workInProgress2, renderLanes2) { + var nextProps = workInProgress2.pendingProps, showFallback = false, didSuspend = 0 !== (workInProgress2.flags & 128), JSCompiler_temp; + (JSCompiler_temp = didSuspend) || (JSCompiler_temp = null !== current && null === current.memoizedState ? false : 0 !== (suspenseStackCursor.current & 2)); + JSCompiler_temp && (showFallback = true, workInProgress2.flags &= -129); + JSCompiler_temp = 0 !== (workInProgress2.flags & 32); + workInProgress2.flags &= -33; + if (null === current) { + if (isHydrating) { + showFallback ? pushPrimaryTreeSuspenseHandler(workInProgress2) : reuseSuspenseHandlerOnStack(); + (current = nextHydratableInstance) ? (current = canHydrateHydrationBoundary( + current, + rootOrSingletonContext + ), current = null !== current && "&" !== current.data ? current : null, null !== current && (workInProgress2.memoizedState = { + dehydrated: current, + treeContext: null !== treeContextProvider ? { id: treeContextId, overflow: treeContextOverflow } : null, + retryLane: 536870912, + hydrationErrors: null + }, renderLanes2 = createFiberFromDehydratedFragment(current), renderLanes2.return = workInProgress2, workInProgress2.child = renderLanes2, hydrationParentFiber = workInProgress2, nextHydratableInstance = null)) : current = null; + if (null === current) throw throwOnHydrationMismatch(workInProgress2); + isSuspenseInstanceFallback(current) ? workInProgress2.lanes = 32 : workInProgress2.lanes = 536870912; + return null; + } + var nextPrimaryChildren = nextProps.children; + nextProps = nextProps.fallback; + if (showFallback) + return reuseSuspenseHandlerOnStack(), showFallback = workInProgress2.mode, nextPrimaryChildren = mountWorkInProgressOffscreenFiber( + { mode: "hidden", children: nextPrimaryChildren }, + showFallback + ), nextProps = createFiberFromFragment( + nextProps, + showFallback, + renderLanes2, + null + ), nextPrimaryChildren.return = workInProgress2, nextProps.return = workInProgress2, nextPrimaryChildren.sibling = nextProps, workInProgress2.child = nextPrimaryChildren, nextProps = workInProgress2.child, nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes2), nextProps.childLanes = getRemainingWorkInPrimaryTree( + current, + JSCompiler_temp, + renderLanes2 + ), workInProgress2.memoizedState = SUSPENDED_MARKER, bailoutOffscreenComponent(null, nextProps); + pushPrimaryTreeSuspenseHandler(workInProgress2); + return mountSuspensePrimaryChildren(workInProgress2, nextPrimaryChildren); + } + var prevState = current.memoizedState; + if (null !== prevState && (nextPrimaryChildren = prevState.dehydrated, null !== nextPrimaryChildren)) { + if (didSuspend) + workInProgress2.flags & 256 ? (pushPrimaryTreeSuspenseHandler(workInProgress2), workInProgress2.flags &= -257, workInProgress2 = retrySuspenseComponentWithoutHydrating( + current, + workInProgress2, + renderLanes2 + )) : null !== workInProgress2.memoizedState ? (reuseSuspenseHandlerOnStack(), workInProgress2.child = current.child, workInProgress2.flags |= 128, workInProgress2 = null) : (reuseSuspenseHandlerOnStack(), nextPrimaryChildren = nextProps.fallback, showFallback = workInProgress2.mode, nextProps = mountWorkInProgressOffscreenFiber( + { mode: "visible", children: nextProps.children }, + showFallback + ), nextPrimaryChildren = createFiberFromFragment( + nextPrimaryChildren, + showFallback, + renderLanes2, + null + ), nextPrimaryChildren.flags |= 2, nextProps.return = workInProgress2, nextPrimaryChildren.return = workInProgress2, nextProps.sibling = nextPrimaryChildren, workInProgress2.child = nextProps, reconcileChildFibers( + workInProgress2, + current.child, + null, + renderLanes2 + ), nextProps = workInProgress2.child, nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes2), nextProps.childLanes = getRemainingWorkInPrimaryTree( + current, + JSCompiler_temp, + renderLanes2 + ), workInProgress2.memoizedState = SUSPENDED_MARKER, workInProgress2 = bailoutOffscreenComponent(null, nextProps)); + else if (pushPrimaryTreeSuspenseHandler(workInProgress2), isSuspenseInstanceFallback(nextPrimaryChildren)) { + JSCompiler_temp = nextPrimaryChildren.nextSibling && nextPrimaryChildren.nextSibling.dataset; + if (JSCompiler_temp) var digest = JSCompiler_temp.dgst; + JSCompiler_temp = digest; + nextProps = Error(formatProdErrorMessage(419)); + nextProps.stack = ""; + nextProps.digest = JSCompiler_temp; + queueHydrationError({ value: nextProps, source: null, stack: null }); + workInProgress2 = retrySuspenseComponentWithoutHydrating( + current, + workInProgress2, + renderLanes2 + ); + } else if (didReceiveUpdate || propagateParentContextChanges(current, workInProgress2, renderLanes2, false), JSCompiler_temp = 0 !== (renderLanes2 & current.childLanes), didReceiveUpdate || JSCompiler_temp) { + JSCompiler_temp = workInProgressRoot; + if (null !== JSCompiler_temp && (nextProps = getBumpedLaneForHydration(JSCompiler_temp, renderLanes2), 0 !== nextProps && nextProps !== prevState.retryLane)) + throw prevState.retryLane = nextProps, enqueueConcurrentRenderForLane(current, nextProps), scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps), SelectiveHydrationException; + isSuspenseInstancePending(nextPrimaryChildren) || renderDidSuspendDelayIfPossible(); + workInProgress2 = retrySuspenseComponentWithoutHydrating( + current, + workInProgress2, + renderLanes2 + ); + } else + isSuspenseInstancePending(nextPrimaryChildren) ? (workInProgress2.flags |= 192, workInProgress2.child = current.child, workInProgress2 = null) : (current = prevState.treeContext, nextHydratableInstance = getNextHydratable( + nextPrimaryChildren.nextSibling + ), hydrationParentFiber = workInProgress2, isHydrating = true, hydrationErrors = null, rootOrSingletonContext = false, null !== current && restoreSuspendedTreeContext(workInProgress2, current), workInProgress2 = mountSuspensePrimaryChildren( + workInProgress2, + nextProps.children + ), workInProgress2.flags |= 4096); + return workInProgress2; + } + if (showFallback) + return reuseSuspenseHandlerOnStack(), nextPrimaryChildren = nextProps.fallback, showFallback = workInProgress2.mode, prevState = current.child, digest = prevState.sibling, nextProps = createWorkInProgress(prevState, { + mode: "hidden", + children: nextProps.children + }), nextProps.subtreeFlags = prevState.subtreeFlags & 65011712, null !== digest ? nextPrimaryChildren = createWorkInProgress( + digest, + nextPrimaryChildren + ) : (nextPrimaryChildren = createFiberFromFragment( + nextPrimaryChildren, + showFallback, + renderLanes2, + null + ), nextPrimaryChildren.flags |= 2), nextPrimaryChildren.return = workInProgress2, nextProps.return = workInProgress2, nextProps.sibling = nextPrimaryChildren, workInProgress2.child = nextProps, bailoutOffscreenComponent(null, nextProps), nextProps = workInProgress2.child, nextPrimaryChildren = current.child.memoizedState, null === nextPrimaryChildren ? nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes2) : (showFallback = nextPrimaryChildren.cachePool, null !== showFallback ? (prevState = CacheContext._currentValue, showFallback = showFallback.parent !== prevState ? { parent: prevState, pool: prevState } : showFallback) : showFallback = getSuspendedCache(), nextPrimaryChildren = { + baseLanes: nextPrimaryChildren.baseLanes | renderLanes2, + cachePool: showFallback + }), nextProps.memoizedState = nextPrimaryChildren, nextProps.childLanes = getRemainingWorkInPrimaryTree( + current, + JSCompiler_temp, + renderLanes2 + ), workInProgress2.memoizedState = SUSPENDED_MARKER, bailoutOffscreenComponent(current.child, nextProps); + pushPrimaryTreeSuspenseHandler(workInProgress2); + renderLanes2 = current.child; + current = renderLanes2.sibling; + renderLanes2 = createWorkInProgress(renderLanes2, { + mode: "visible", + children: nextProps.children + }); + renderLanes2.return = workInProgress2; + renderLanes2.sibling = null; + null !== current && (JSCompiler_temp = workInProgress2.deletions, null === JSCompiler_temp ? (workInProgress2.deletions = [current], workInProgress2.flags |= 16) : JSCompiler_temp.push(current)); + workInProgress2.child = renderLanes2; + workInProgress2.memoizedState = null; + return renderLanes2; + } + function mountSuspensePrimaryChildren(workInProgress2, primaryChildren) { + primaryChildren = mountWorkInProgressOffscreenFiber( + { mode: "visible", children: primaryChildren }, + workInProgress2.mode + ); + primaryChildren.return = workInProgress2; + return workInProgress2.child = primaryChildren; + } + function mountWorkInProgressOffscreenFiber(offscreenProps, mode) { + offscreenProps = createFiberImplClass(22, offscreenProps, null, mode); + offscreenProps.lanes = 0; + return offscreenProps; + } + function retrySuspenseComponentWithoutHydrating(current, workInProgress2, renderLanes2) { + reconcileChildFibers(workInProgress2, current.child, null, renderLanes2); + current = mountSuspensePrimaryChildren( + workInProgress2, + workInProgress2.pendingProps.children + ); + current.flags |= 2; + workInProgress2.memoizedState = null; + return current; + } + function scheduleSuspenseWorkOnFiber(fiber, renderLanes2, propagationRoot) { + fiber.lanes |= renderLanes2; + var alternate = fiber.alternate; + null !== alternate && (alternate.lanes |= renderLanes2); + scheduleContextWorkOnParentPath(fiber.return, renderLanes2, propagationRoot); + } + function initSuspenseListRenderState(workInProgress2, isBackwards, tail, lastContentRow, tailMode, treeForkCount2) { + var renderState = workInProgress2.memoizedState; + null === renderState ? workInProgress2.memoizedState = { + isBackwards, + rendering: null, + renderingStartTime: 0, + last: lastContentRow, + tail, + tailMode, + treeForkCount: treeForkCount2 + } : (renderState.isBackwards = isBackwards, renderState.rendering = null, renderState.renderingStartTime = 0, renderState.last = lastContentRow, renderState.tail = tail, renderState.tailMode = tailMode, renderState.treeForkCount = treeForkCount2); + } + function updateSuspenseListComponent(current, workInProgress2, renderLanes2) { + var nextProps = workInProgress2.pendingProps, revealOrder = nextProps.revealOrder, tailMode = nextProps.tail; + nextProps = nextProps.children; + var suspenseContext = suspenseStackCursor.current, shouldForceFallback = 0 !== (suspenseContext & 2); + shouldForceFallback ? (suspenseContext = suspenseContext & 1 | 2, workInProgress2.flags |= 128) : suspenseContext &= 1; + push(suspenseStackCursor, suspenseContext); + reconcileChildren(current, workInProgress2, nextProps, renderLanes2); + nextProps = isHydrating ? treeForkCount : 0; + if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128)) + a: for (current = workInProgress2.child; null !== current; ) { + if (13 === current.tag) + null !== current.memoizedState && scheduleSuspenseWorkOnFiber(current, renderLanes2, workInProgress2); + else if (19 === current.tag) + scheduleSuspenseWorkOnFiber(current, renderLanes2, workInProgress2); + else if (null !== current.child) { + current.child.return = current; + current = current.child; + continue; + } + if (current === workInProgress2) break a; + for (; null === current.sibling; ) { + if (null === current.return || current.return === workInProgress2) + break a; + current = current.return; + } + current.sibling.return = current.return; + current = current.sibling; + } + switch (revealOrder) { + case "forwards": + renderLanes2 = workInProgress2.child; + for (revealOrder = null; null !== renderLanes2; ) + current = renderLanes2.alternate, null !== current && null === findFirstSuspended(current) && (revealOrder = renderLanes2), renderLanes2 = renderLanes2.sibling; + renderLanes2 = revealOrder; + null === renderLanes2 ? (revealOrder = workInProgress2.child, workInProgress2.child = null) : (revealOrder = renderLanes2.sibling, renderLanes2.sibling = null); + initSuspenseListRenderState( + workInProgress2, + false, + revealOrder, + renderLanes2, + tailMode, + nextProps + ); + break; + case "backwards": + case "unstable_legacy-backwards": + renderLanes2 = null; + revealOrder = workInProgress2.child; + for (workInProgress2.child = null; null !== revealOrder; ) { + current = revealOrder.alternate; + if (null !== current && null === findFirstSuspended(current)) { + workInProgress2.child = revealOrder; + break; + } + current = revealOrder.sibling; + revealOrder.sibling = renderLanes2; + renderLanes2 = revealOrder; + revealOrder = current; + } + initSuspenseListRenderState( + workInProgress2, + true, + renderLanes2, + null, + tailMode, + nextProps + ); + break; + case "together": + initSuspenseListRenderState( + workInProgress2, + false, + null, + null, + void 0, + nextProps + ); + break; + default: + workInProgress2.memoizedState = null; + } + return workInProgress2.child; + } + function bailoutOnAlreadyFinishedWork(current, workInProgress2, renderLanes2) { + null !== current && (workInProgress2.dependencies = current.dependencies); + workInProgressRootSkippedLanes |= workInProgress2.lanes; + if (0 === (renderLanes2 & workInProgress2.childLanes)) + if (null !== current) { + if (propagateParentContextChanges( + current, + workInProgress2, + renderLanes2, + false + ), 0 === (renderLanes2 & workInProgress2.childLanes)) + return null; + } else return null; + if (null !== current && workInProgress2.child !== current.child) + throw Error(formatProdErrorMessage(153)); + if (null !== workInProgress2.child) { + current = workInProgress2.child; + renderLanes2 = createWorkInProgress(current, current.pendingProps); + workInProgress2.child = renderLanes2; + for (renderLanes2.return = workInProgress2; null !== current.sibling; ) + current = current.sibling, renderLanes2 = renderLanes2.sibling = createWorkInProgress(current, current.pendingProps), renderLanes2.return = workInProgress2; + renderLanes2.sibling = null; + } + return workInProgress2.child; + } + function checkScheduledUpdateOrContext(current, renderLanes2) { + if (0 !== (current.lanes & renderLanes2)) return true; + current = current.dependencies; + return null !== current && checkIfContextChanged(current) ? true : false; + } + function attemptEarlyBailoutIfNoScheduledUpdate(current, workInProgress2, renderLanes2) { + switch (workInProgress2.tag) { + case 3: + pushHostContainer(workInProgress2, workInProgress2.stateNode.containerInfo); + pushProvider(workInProgress2, CacheContext, current.memoizedState.cache); + resetHydrationState(); + break; + case 27: + case 5: + pushHostContext(workInProgress2); + break; + case 4: + pushHostContainer(workInProgress2, workInProgress2.stateNode.containerInfo); + break; + case 10: + pushProvider( + workInProgress2, + workInProgress2.type, + workInProgress2.memoizedProps.value + ); + break; + case 31: + if (null !== workInProgress2.memoizedState) + return workInProgress2.flags |= 128, pushDehydratedActivitySuspenseHandler(workInProgress2), null; + break; + case 13: + var state$102 = workInProgress2.memoizedState; + if (null !== state$102) { + if (null !== state$102.dehydrated) + return pushPrimaryTreeSuspenseHandler(workInProgress2), workInProgress2.flags |= 128, null; + if (0 !== (renderLanes2 & workInProgress2.child.childLanes)) + return updateSuspenseComponent(current, workInProgress2, renderLanes2); + pushPrimaryTreeSuspenseHandler(workInProgress2); + current = bailoutOnAlreadyFinishedWork( + current, + workInProgress2, + renderLanes2 + ); + return null !== current ? current.sibling : null; + } + pushPrimaryTreeSuspenseHandler(workInProgress2); + break; + case 19: + var didSuspendBefore = 0 !== (current.flags & 128); + state$102 = 0 !== (renderLanes2 & workInProgress2.childLanes); + state$102 || (propagateParentContextChanges( + current, + workInProgress2, + renderLanes2, + false + ), state$102 = 0 !== (renderLanes2 & workInProgress2.childLanes)); + if (didSuspendBefore) { + if (state$102) + return updateSuspenseListComponent( + current, + workInProgress2, + renderLanes2 + ); + workInProgress2.flags |= 128; + } + didSuspendBefore = workInProgress2.memoizedState; + null !== didSuspendBefore && (didSuspendBefore.rendering = null, didSuspendBefore.tail = null, didSuspendBefore.lastEffect = null); + push(suspenseStackCursor, suspenseStackCursor.current); + if (state$102) break; + else return null; + case 22: + return workInProgress2.lanes = 0, updateOffscreenComponent( + current, + workInProgress2, + renderLanes2, + workInProgress2.pendingProps + ); + case 24: + pushProvider(workInProgress2, CacheContext, current.memoizedState.cache); + } + return bailoutOnAlreadyFinishedWork(current, workInProgress2, renderLanes2); + } + function beginWork(current, workInProgress2, renderLanes2) { + if (null !== current) + if (current.memoizedProps !== workInProgress2.pendingProps) + didReceiveUpdate = true; + else { + if (!checkScheduledUpdateOrContext(current, renderLanes2) && 0 === (workInProgress2.flags & 128)) + return didReceiveUpdate = false, attemptEarlyBailoutIfNoScheduledUpdate( + current, + workInProgress2, + renderLanes2 + ); + didReceiveUpdate = 0 !== (current.flags & 131072) ? true : false; + } + else + didReceiveUpdate = false, isHydrating && 0 !== (workInProgress2.flags & 1048576) && pushTreeId(workInProgress2, treeForkCount, workInProgress2.index); + workInProgress2.lanes = 0; + switch (workInProgress2.tag) { + case 16: + a: { + var props = workInProgress2.pendingProps; + current = resolveLazy(workInProgress2.elementType); + workInProgress2.type = current; + if ("function" === typeof current) + shouldConstruct(current) ? (props = resolveClassComponentProps(current, props), workInProgress2.tag = 1, workInProgress2 = updateClassComponent( + null, + workInProgress2, + current, + props, + renderLanes2 + )) : (workInProgress2.tag = 0, workInProgress2 = updateFunctionComponent( + null, + workInProgress2, + current, + props, + renderLanes2 + )); + else { + if (void 0 !== current && null !== current) { + var $$typeof = current.$$typeof; + if ($$typeof === REACT_FORWARD_REF_TYPE) { + workInProgress2.tag = 11; + workInProgress2 = updateForwardRef( + null, + workInProgress2, + current, + props, + renderLanes2 + ); + break a; + } else if ($$typeof === REACT_MEMO_TYPE) { + workInProgress2.tag = 14; + workInProgress2 = updateMemoComponent( + null, + workInProgress2, + current, + props, + renderLanes2 + ); + break a; + } + } + workInProgress2 = getComponentNameFromType(current) || current; + throw Error(formatProdErrorMessage(306, workInProgress2, "")); + } + } + return workInProgress2; + case 0: + return updateFunctionComponent( + current, + workInProgress2, + workInProgress2.type, + workInProgress2.pendingProps, + renderLanes2 + ); + case 1: + return props = workInProgress2.type, $$typeof = resolveClassComponentProps( + props, + workInProgress2.pendingProps + ), updateClassComponent( + current, + workInProgress2, + props, + $$typeof, + renderLanes2 + ); + case 3: + a: { + pushHostContainer( + workInProgress2, + workInProgress2.stateNode.containerInfo + ); + if (null === current) throw Error(formatProdErrorMessage(387)); + props = workInProgress2.pendingProps; + var prevState = workInProgress2.memoizedState; + $$typeof = prevState.element; + cloneUpdateQueue(current, workInProgress2); + processUpdateQueue(workInProgress2, props, null, renderLanes2); + var nextState = workInProgress2.memoizedState; + props = nextState.cache; + pushProvider(workInProgress2, CacheContext, props); + props !== prevState.cache && propagateContextChanges( + workInProgress2, + [CacheContext], + renderLanes2, + true + ); + suspendIfUpdateReadFromEntangledAsyncAction(); + props = nextState.element; + if (prevState.isDehydrated) + if (prevState = { + element: props, + isDehydrated: false, + cache: nextState.cache + }, workInProgress2.updateQueue.baseState = prevState, workInProgress2.memoizedState = prevState, workInProgress2.flags & 256) { + workInProgress2 = mountHostRootWithoutHydrating( + current, + workInProgress2, + props, + renderLanes2 + ); + break a; + } else if (props !== $$typeof) { + $$typeof = createCapturedValueAtFiber( + Error(formatProdErrorMessage(424)), + workInProgress2 + ); + queueHydrationError($$typeof); + workInProgress2 = mountHostRootWithoutHydrating( + current, + workInProgress2, + props, + renderLanes2 + ); + break a; + } else { + current = workInProgress2.stateNode.containerInfo; + switch (current.nodeType) { + case 9: + current = current.body; + break; + default: + current = "HTML" === current.nodeName ? current.ownerDocument.body : current; + } + nextHydratableInstance = getNextHydratable(current.firstChild); + hydrationParentFiber = workInProgress2; + isHydrating = true; + hydrationErrors = null; + rootOrSingletonContext = true; + renderLanes2 = mountChildFibers( + workInProgress2, + null, + props, + renderLanes2 + ); + for (workInProgress2.child = renderLanes2; renderLanes2; ) + renderLanes2.flags = renderLanes2.flags & -3 | 4096, renderLanes2 = renderLanes2.sibling; + } + else { + resetHydrationState(); + if (props === $$typeof) { + workInProgress2 = bailoutOnAlreadyFinishedWork( + current, + workInProgress2, + renderLanes2 + ); + break a; + } + reconcileChildren(current, workInProgress2, props, renderLanes2); + } + workInProgress2 = workInProgress2.child; + } + return workInProgress2; + case 26: + return markRef(current, workInProgress2), null === current ? (renderLanes2 = getResource( + workInProgress2.type, + null, + workInProgress2.pendingProps, + null + )) ? workInProgress2.memoizedState = renderLanes2 : isHydrating || (renderLanes2 = workInProgress2.type, current = workInProgress2.pendingProps, props = getOwnerDocumentFromRootContainer( + rootInstanceStackCursor.current + ).createElement(renderLanes2), props[internalInstanceKey] = workInProgress2, props[internalPropsKey] = current, setInitialProperties(props, renderLanes2, current), markNodeAsHoistable(props), workInProgress2.stateNode = props) : workInProgress2.memoizedState = getResource( + workInProgress2.type, + current.memoizedProps, + workInProgress2.pendingProps, + current.memoizedState + ), null; + case 27: + return pushHostContext(workInProgress2), null === current && isHydrating && (props = workInProgress2.stateNode = resolveSingletonInstance( + workInProgress2.type, + workInProgress2.pendingProps, + rootInstanceStackCursor.current + ), hydrationParentFiber = workInProgress2, rootOrSingletonContext = true, $$typeof = nextHydratableInstance, isSingletonScope(workInProgress2.type) ? (previousHydratableOnEnteringScopedSingleton = $$typeof, nextHydratableInstance = getNextHydratable(props.firstChild)) : nextHydratableInstance = $$typeof), reconcileChildren( + current, + workInProgress2, + workInProgress2.pendingProps.children, + renderLanes2 + ), markRef(current, workInProgress2), null === current && (workInProgress2.flags |= 4194304), workInProgress2.child; + case 5: + if (null === current && isHydrating) { + if ($$typeof = props = nextHydratableInstance) + props = canHydrateInstance( + props, + workInProgress2.type, + workInProgress2.pendingProps, + rootOrSingletonContext + ), null !== props ? (workInProgress2.stateNode = props, hydrationParentFiber = workInProgress2, nextHydratableInstance = getNextHydratable(props.firstChild), rootOrSingletonContext = false, $$typeof = true) : $$typeof = false; + $$typeof || throwOnHydrationMismatch(workInProgress2); + } + pushHostContext(workInProgress2); + $$typeof = workInProgress2.type; + prevState = workInProgress2.pendingProps; + nextState = null !== current ? current.memoizedProps : null; + props = prevState.children; + shouldSetTextContent($$typeof, prevState) ? props = null : null !== nextState && shouldSetTextContent($$typeof, nextState) && (workInProgress2.flags |= 32); + null !== workInProgress2.memoizedState && ($$typeof = renderWithHooks( + current, + workInProgress2, + TransitionAwareHostComponent, + null, + null, + renderLanes2 + ), HostTransitionContext._currentValue = $$typeof); + markRef(current, workInProgress2); + reconcileChildren(current, workInProgress2, props, renderLanes2); + return workInProgress2.child; + case 6: + if (null === current && isHydrating) { + if (current = renderLanes2 = nextHydratableInstance) + renderLanes2 = canHydrateTextInstance( + renderLanes2, + workInProgress2.pendingProps, + rootOrSingletonContext + ), null !== renderLanes2 ? (workInProgress2.stateNode = renderLanes2, hydrationParentFiber = workInProgress2, nextHydratableInstance = null, current = true) : current = false; + current || throwOnHydrationMismatch(workInProgress2); + } + return null; + case 13: + return updateSuspenseComponent(current, workInProgress2, renderLanes2); + case 4: + return pushHostContainer( + workInProgress2, + workInProgress2.stateNode.containerInfo + ), props = workInProgress2.pendingProps, null === current ? workInProgress2.child = reconcileChildFibers( + workInProgress2, + null, + props, + renderLanes2 + ) : reconcileChildren(current, workInProgress2, props, renderLanes2), workInProgress2.child; + case 11: + return updateForwardRef( + current, + workInProgress2, + workInProgress2.type, + workInProgress2.pendingProps, + renderLanes2 + ); + case 7: + return reconcileChildren( + current, + workInProgress2, + workInProgress2.pendingProps, + renderLanes2 + ), workInProgress2.child; + case 8: + return reconcileChildren( + current, + workInProgress2, + workInProgress2.pendingProps.children, + renderLanes2 + ), workInProgress2.child; + case 12: + return reconcileChildren( + current, + workInProgress2, + workInProgress2.pendingProps.children, + renderLanes2 + ), workInProgress2.child; + case 10: + return props = workInProgress2.pendingProps, pushProvider(workInProgress2, workInProgress2.type, props.value), reconcileChildren(current, workInProgress2, props.children, renderLanes2), workInProgress2.child; + case 9: + return $$typeof = workInProgress2.type._context, props = workInProgress2.pendingProps.children, prepareToReadContext(workInProgress2), $$typeof = readContext($$typeof), props = props($$typeof), workInProgress2.flags |= 1, reconcileChildren(current, workInProgress2, props, renderLanes2), workInProgress2.child; + case 14: + return updateMemoComponent( + current, + workInProgress2, + workInProgress2.type, + workInProgress2.pendingProps, + renderLanes2 + ); + case 15: + return updateSimpleMemoComponent( + current, + workInProgress2, + workInProgress2.type, + workInProgress2.pendingProps, + renderLanes2 + ); + case 19: + return updateSuspenseListComponent(current, workInProgress2, renderLanes2); + case 31: + return updateActivityComponent(current, workInProgress2, renderLanes2); + case 22: + return updateOffscreenComponent( + current, + workInProgress2, + renderLanes2, + workInProgress2.pendingProps + ); + case 24: + return prepareToReadContext(workInProgress2), props = readContext(CacheContext), null === current ? ($$typeof = peekCacheFromPool(), null === $$typeof && ($$typeof = workInProgressRoot, prevState = createCache(), $$typeof.pooledCache = prevState, prevState.refCount++, null !== prevState && ($$typeof.pooledCacheLanes |= renderLanes2), $$typeof = prevState), workInProgress2.memoizedState = { parent: props, cache: $$typeof }, initializeUpdateQueue(workInProgress2), pushProvider(workInProgress2, CacheContext, $$typeof)) : (0 !== (current.lanes & renderLanes2) && (cloneUpdateQueue(current, workInProgress2), processUpdateQueue(workInProgress2, null, null, renderLanes2), suspendIfUpdateReadFromEntangledAsyncAction()), $$typeof = current.memoizedState, prevState = workInProgress2.memoizedState, $$typeof.parent !== props ? ($$typeof = { parent: props, cache: props }, workInProgress2.memoizedState = $$typeof, 0 === workInProgress2.lanes && (workInProgress2.memoizedState = workInProgress2.updateQueue.baseState = $$typeof), pushProvider(workInProgress2, CacheContext, props)) : (props = prevState.cache, pushProvider(workInProgress2, CacheContext, props), props !== $$typeof.cache && propagateContextChanges( + workInProgress2, + [CacheContext], + renderLanes2, + true + ))), reconcileChildren( + current, + workInProgress2, + workInProgress2.pendingProps.children, + renderLanes2 + ), workInProgress2.child; + case 29: + throw workInProgress2.pendingProps; + } + throw Error(formatProdErrorMessage(156, workInProgress2.tag)); + } + function markUpdate(workInProgress2) { + workInProgress2.flags |= 4; + } + function preloadInstanceAndSuspendIfNeeded(workInProgress2, type, oldProps, newProps, renderLanes2) { + if (type = 0 !== (workInProgress2.mode & 32)) type = false; + if (type) { + if (workInProgress2.flags |= 16777216, (renderLanes2 & 335544128) === renderLanes2) + if (workInProgress2.stateNode.complete) workInProgress2.flags |= 8192; + else if (shouldRemainOnPreviousScreen()) workInProgress2.flags |= 8192; + else + throw suspendedThenable = noopSuspenseyCommitThenable, SuspenseyCommitException; + } else workInProgress2.flags &= -16777217; + } + function preloadResourceAndSuspendIfNeeded(workInProgress2, resource) { + if ("stylesheet" !== resource.type || 0 !== (resource.state.loading & 4)) + workInProgress2.flags &= -16777217; + else if (workInProgress2.flags |= 16777216, !preloadResource(resource)) + if (shouldRemainOnPreviousScreen()) workInProgress2.flags |= 8192; + else + throw suspendedThenable = noopSuspenseyCommitThenable, SuspenseyCommitException; + } + function scheduleRetryEffect(workInProgress2, retryQueue) { + null !== retryQueue && (workInProgress2.flags |= 4); + workInProgress2.flags & 16384 && (retryQueue = 22 !== workInProgress2.tag ? claimNextRetryLane() : 536870912, workInProgress2.lanes |= retryQueue, workInProgressSuspendedRetryLanes |= retryQueue); + } + function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) { + if (!isHydrating) + switch (renderState.tailMode) { + case "hidden": + hasRenderedATailFallback = renderState.tail; + for (var lastTailNode = null; null !== hasRenderedATailFallback; ) + null !== hasRenderedATailFallback.alternate && (lastTailNode = hasRenderedATailFallback), hasRenderedATailFallback = hasRenderedATailFallback.sibling; + null === lastTailNode ? renderState.tail = null : lastTailNode.sibling = null; + break; + case "collapsed": + lastTailNode = renderState.tail; + for (var lastTailNode$106 = null; null !== lastTailNode; ) + null !== lastTailNode.alternate && (lastTailNode$106 = lastTailNode), lastTailNode = lastTailNode.sibling; + null === lastTailNode$106 ? hasRenderedATailFallback || null === renderState.tail ? renderState.tail = null : renderState.tail.sibling = null : lastTailNode$106.sibling = null; + } + } + function bubbleProperties(completedWork) { + var didBailout = null !== completedWork.alternate && completedWork.alternate.child === completedWork.child, newChildLanes = 0, subtreeFlags = 0; + if (didBailout) + for (var child$107 = completedWork.child; null !== child$107; ) + newChildLanes |= child$107.lanes | child$107.childLanes, subtreeFlags |= child$107.subtreeFlags & 65011712, subtreeFlags |= child$107.flags & 65011712, child$107.return = completedWork, child$107 = child$107.sibling; + else + for (child$107 = completedWork.child; null !== child$107; ) + newChildLanes |= child$107.lanes | child$107.childLanes, subtreeFlags |= child$107.subtreeFlags, subtreeFlags |= child$107.flags, child$107.return = completedWork, child$107 = child$107.sibling; + completedWork.subtreeFlags |= subtreeFlags; + completedWork.childLanes = newChildLanes; + return didBailout; + } + function completeWork(current, workInProgress2, renderLanes2) { + var newProps = workInProgress2.pendingProps; + popTreeContext(workInProgress2); + switch (workInProgress2.tag) { + case 16: + case 15: + case 0: + case 11: + case 7: + case 8: + case 12: + case 9: + case 14: + return bubbleProperties(workInProgress2), null; + case 1: + return bubbleProperties(workInProgress2), null; + case 3: + renderLanes2 = workInProgress2.stateNode; + newProps = null; + null !== current && (newProps = current.memoizedState.cache); + workInProgress2.memoizedState.cache !== newProps && (workInProgress2.flags |= 2048); + popProvider(CacheContext); + popHostContainer(); + renderLanes2.pendingContext && (renderLanes2.context = renderLanes2.pendingContext, renderLanes2.pendingContext = null); + if (null === current || null === current.child) + popHydrationState(workInProgress2) ? markUpdate(workInProgress2) : null === current || current.memoizedState.isDehydrated && 0 === (workInProgress2.flags & 256) || (workInProgress2.flags |= 1024, upgradeHydrationErrorsToRecoverable()); + bubbleProperties(workInProgress2); + return null; + case 26: + var type = workInProgress2.type, nextResource = workInProgress2.memoizedState; + null === current ? (markUpdate(workInProgress2), null !== nextResource ? (bubbleProperties(workInProgress2), preloadResourceAndSuspendIfNeeded(workInProgress2, nextResource)) : (bubbleProperties(workInProgress2), preloadInstanceAndSuspendIfNeeded( + workInProgress2, + type, + null, + newProps, + renderLanes2 + ))) : nextResource ? nextResource !== current.memoizedState ? (markUpdate(workInProgress2), bubbleProperties(workInProgress2), preloadResourceAndSuspendIfNeeded(workInProgress2, nextResource)) : (bubbleProperties(workInProgress2), workInProgress2.flags &= -16777217) : (current = current.memoizedProps, current !== newProps && markUpdate(workInProgress2), bubbleProperties(workInProgress2), preloadInstanceAndSuspendIfNeeded( + workInProgress2, + type, + current, + newProps, + renderLanes2 + )); + return null; + case 27: + popHostContext(workInProgress2); + renderLanes2 = rootInstanceStackCursor.current; + type = workInProgress2.type; + if (null !== current && null != workInProgress2.stateNode) + current.memoizedProps !== newProps && markUpdate(workInProgress2); + else { + if (!newProps) { + if (null === workInProgress2.stateNode) + throw Error(formatProdErrorMessage(166)); + bubbleProperties(workInProgress2); + return null; + } + current = contextStackCursor.current; + popHydrationState(workInProgress2) ? prepareToHydrateHostInstance(workInProgress2) : (current = resolveSingletonInstance(type, newProps, renderLanes2), workInProgress2.stateNode = current, markUpdate(workInProgress2)); + } + bubbleProperties(workInProgress2); + return null; + case 5: + popHostContext(workInProgress2); + type = workInProgress2.type; + if (null !== current && null != workInProgress2.stateNode) + current.memoizedProps !== newProps && markUpdate(workInProgress2); + else { + if (!newProps) { + if (null === workInProgress2.stateNode) + throw Error(formatProdErrorMessage(166)); + bubbleProperties(workInProgress2); + return null; + } + nextResource = contextStackCursor.current; + if (popHydrationState(workInProgress2)) + prepareToHydrateHostInstance(workInProgress2); + else { + var ownerDocument = getOwnerDocumentFromRootContainer( + rootInstanceStackCursor.current + ); + switch (nextResource) { + case 1: + nextResource = ownerDocument.createElementNS( + "http://www.w3.org/2000/svg", + type + ); + break; + case 2: + nextResource = ownerDocument.createElementNS( + "http://www.w3.org/1998/Math/MathML", + type + ); + break; + default: + switch (type) { + case "svg": + nextResource = ownerDocument.createElementNS( + "http://www.w3.org/2000/svg", + type + ); + break; + case "math": + nextResource = ownerDocument.createElementNS( + "http://www.w3.org/1998/Math/MathML", + type + ); + break; + case "script": + nextResource = ownerDocument.createElement("div"); + nextResource.innerHTML = "