From 34c36072c6730eb4bbc6768fadb92ab76b078f22 Mon Sep 17 00:00:00 2001 From: VDH Date: Tue, 23 Sep 2025 14:14:03 +0700 Subject: [PATCH] for build add package --- Assets/NuGet.config | 18 + Assets/NuGet.config.meta | 28 + Assets/Packages.meta | 8 + ...Runtime.CompilerServices.Unsafe.6.0.0.meta | 8 + .../.signature.p7s | Bin 0 -> 18703 bytes .../Icon.png | Bin 0 -> 7006 bytes .../Icon.png.meta | 156 + .../LICENSE.TXT | 23 + .../LICENSE.TXT.meta | 7 + ...tem.Runtime.CompilerServices.Unsafe.nuspec | 29 + ...untime.CompilerServices.Unsafe.nuspec.meta | 7 + .../THIRD-PARTY-NOTICES.TXT | 939 +++ .../THIRD-PARTY-NOTICES.TXT.meta | 7 + .../buildTransitive.meta | 8 + .../buildTransitive/netcoreapp2.0.meta | 8 + ...em.Runtime.CompilerServices.Unsafe.targets | 6 + ...ntime.CompilerServices.Unsafe.targets.meta | 7 + .../buildTransitive/netcoreapp3.1.meta | 8 + .../buildTransitive/netcoreapp3.1/_._ | 0 .../buildTransitive/netcoreapp3.1/_._.meta | 7 + .../lib.meta | 8 + .../lib/netstandard2.0.meta | 8 + ...System.Runtime.CompilerServices.Unsafe.dll | Bin 0 -> 18024 bytes ...m.Runtime.CompilerServices.Unsafe.dll.meta | 29 + ...System.Runtime.CompilerServices.Unsafe.xml | 291 + ...m.Runtime.CompilerServices.Unsafe.xml.meta | 7 + .../useSharedDesignerContext.txt | 0 .../useSharedDesignerContext.txt.meta | 7 + .../System.Text.Encoding.CodePages.9.0.9.meta | 8 + .../.signature.p7s | Bin 0 -> 25747 bytes .../Icon.png | Bin 0 -> 2140 bytes .../Icon.png.meta | 156 + .../LICENSE.TXT | 23 + .../LICENSE.TXT.meta | 7 + .../PACKAGE.md | 39 + .../PACKAGE.md.meta | 7 + .../System.Text.Encoding.CodePages.nuspec | 33 + ...System.Text.Encoding.CodePages.nuspec.meta | 7 + .../THIRD-PARTY-NOTICES.TXT | 1396 +++++ .../THIRD-PARTY-NOTICES.TXT.meta | 7 + .../buildTransitive.meta | 8 + .../buildTransitive/net461.meta | 8 + .../System.Text.Encoding.CodePages.targets | 6 + ...ystem.Text.Encoding.CodePages.targets.meta | 7 + .../buildTransitive/net462.meta | 8 + .../buildTransitive/net462/_._ | 0 .../buildTransitive/net462/_._.meta | 7 + .../buildTransitive/net8.0.meta | 8 + .../buildTransitive/net8.0/_._ | 0 .../buildTransitive/net8.0/_._.meta | 7 + .../buildTransitive/netcoreapp2.0.meta | 8 + .../System.Text.Encoding.CodePages.targets | 6 + ...ystem.Text.Encoding.CodePages.targets.meta | 7 + .../lib.meta | 8 + .../lib/netstandard2.0.meta | 8 + .../System.Text.Encoding.CodePages.dll | Bin 0 -> 762664 bytes .../System.Text.Encoding.CodePages.dll.meta | 29 + .../System.Text.Encoding.CodePages.xml | 29 + .../System.Text.Encoding.CodePages.xml.meta | 7 + .../useSharedDesignerContext.txt | 0 .../useSharedDesignerContext.txt.meta | 7 + Assets/PerfectWorld/Scene/Boostrap.unity | 314 + .../Scripts/Common/MonoSingleton.cs | 1 + .../Scripts/Network/UnityGameSession.cs | 6 + .../Scripts/Players/EC_ElsePlayer.cs | 53 +- Assets/Plugins/IngameDebugConsole.meta | 9 + .../Plugins/IngameDebugConsole/Android.meta | 9 + .../Android/DebugLogLogcatListener.cs | 55 + .../Android/DebugLogLogcatListener.cs.meta | 19 + .../Android/IngameDebugConsole.aar | Bin 0 -> 3343 bytes .../Android/IngameDebugConsole.aar.meta | 40 + Assets/Plugins/IngameDebugConsole/Editor.meta | 9 + .../Editor/DebugLogManagerEditor.cs | 185 + .../Editor/DebugLogManagerEditor.cs.meta | 19 + .../Editor/IngameDebugConsole.Editor.asmdef | 17 + .../IngameDebugConsole.Editor.asmdef.meta | 14 + .../IngameDebugConsole.Runtime.asmdef | 23 + .../IngameDebugConsole.Runtime.asmdef.meta | 14 + .../IngameDebugConsole.prefab | 5150 +++++++++++++++++ .../IngameDebugConsole.prefab.meta | 15 + .../Plugins/IngameDebugConsole/Prefabs.meta | 9 + .../Prefabs/CommandSuggestion.prefab | 137 + .../Prefabs/CommandSuggestion.prefab.meta | 16 + .../Prefabs/DebugLogItem.prefab | 841 +++ .../Prefabs/DebugLogItem.prefab.meta | 15 + Assets/Plugins/IngameDebugConsole/README.txt | 7 + .../IngameDebugConsole/README.txt.meta | 15 + .../Plugins/IngameDebugConsole/Scripts.meta | 9 + .../Scripts/Attributes.meta | 8 + .../Scripts/Attributes/ConsoleAttribute.cs | 21 + .../Attributes/ConsoleAttribute.cs.meta | 18 + .../ConsoleCustomTypeParserAttribute.cs | 24 + .../ConsoleCustomTypeParserAttribute.cs.meta | 18 + .../Attributes/ConsoleMethodAttribute.cs | 30 + .../Attributes/ConsoleMethodAttribute.cs.meta | 19 + .../Scripts/CircularBuffer.cs | 313 + .../Scripts/CircularBuffer.cs.meta | 19 + .../Scripts/CopyLogsOnResizeButtonClick.cs | 34 + .../CopyLogsOnResizeButtonClick.cs.meta | 18 + .../Scripts/DebugLogConsole.cs | 1521 +++++ .../Scripts/DebugLogConsole.cs.meta | 19 + .../Scripts/DebugLogEntry.cs | 187 + .../Scripts/DebugLogEntry.cs.meta | 19 + .../Scripts/DebugLogItem.cs | 260 + .../Scripts/DebugLogItem.cs.meta | 19 + .../Scripts/DebugLogItemCopyWebGL.cs | 36 + .../Scripts/DebugLogItemCopyWebGL.cs.meta | 18 + .../Scripts/DebugLogManager.cs | 1877 ++++++ .../Scripts/DebugLogManager.cs.meta | 19 + .../Scripts/DebugLogPopup.cs | 282 + .../Scripts/DebugLogPopup.cs.meta | 19 + .../Scripts/DebugLogRecycledListView.cs | 485 ++ .../Scripts/DebugLogRecycledListView.cs.meta | 19 + .../Scripts/DebugLogResizeListener.cs | 24 + .../Scripts/DebugLogResizeListener.cs.meta | 19 + .../Scripts/DebugsOnScrollListener.cs | 47 + .../Scripts/DebugsOnScrollListener.cs.meta | 19 + .../Scripts/EventSystemHandler.cs | 73 + .../Scripts/EventSystemHandler.cs.meta | 19 + .../Plugins/IngameDebugConsole/Sprites.meta | 9 + .../IngameDebugConsole/Sprites/IconClear.psd | Bin 0 -> 44641 bytes .../Sprites/IconClear.psd.meta | 142 + .../Sprites/IconCollapse.psd | Bin 0 -> 40403 bytes .../Sprites/IconCollapse.psd.meta | 130 + .../IngameDebugConsole/Sprites/IconError.psd | Bin 0 -> 49243 bytes .../Sprites/IconError.psd.meta | 130 + .../IngameDebugConsole/Sprites/IconHide.psd | Bin 0 -> 36589 bytes .../Sprites/IconHide.psd.meta | 130 + .../IngameDebugConsole/Sprites/IconInfo.psd | Bin 0 -> 53469 bytes .../Sprites/IconInfo.psd.meta | 130 + .../Sprites/IconResizeAllDirections.psd | Bin 0 -> 38406 bytes .../Sprites/IconResizeAllDirections.psd.meta | 130 + .../Sprites/IconResizeVertialOnly.psd | Bin 0 -> 31569 bytes .../Sprites/IconResizeVertialOnly.psd.meta | 130 + .../Sprites/IconSnapToBottom.psd | Bin 0 -> 30022 bytes .../Sprites/IconSnapToBottom.psd.meta | 130 + .../Sprites/IconSnapToBottomBg.psd | Bin 0 -> 34684 bytes .../Sprites/IconSnapToBottomBg.psd.meta | 130 + .../Sprites/IconWarning.psd | Bin 0 -> 48956 bytes .../Sprites/IconWarning.psd.meta | 130 + .../IngameDebugConsoleSpriteAtlas.spriteatlas | 97 + ...meDebugConsoleSpriteAtlas.spriteatlas.meta | 15 + .../IngameDebugConsole/Sprites/SearchIcon.psd | Bin 0 -> 34138 bytes .../Sprites/SearchIcon.psd.meta | 142 + .../Sprites/SlicedBackground.psd | Bin 0 -> 32526 bytes .../Sprites/SlicedBackground.psd.meta | 142 + .../Sprites/SlicedBackground2.psd | Bin 0 -> 30284 bytes .../Sprites/SlicedBackground2.psd.meta | 130 + .../Sprites/SlicedBackground3.psd | Bin 0 -> 34920 bytes .../Sprites/SlicedBackground3.psd.meta | 130 + .../IngameDebugConsole/Sprites/Unused.meta | 9 + .../Sprites/Unused/IconErrorHighRes.psd | Bin 0 -> 54471 bytes .../Sprites/Unused/IconErrorHighRes.psd.meta | 130 + .../Sprites/Unused/IconInfoHighRes.psd | Bin 0 -> 61819 bytes .../Sprites/Unused/IconInfoHighRes.psd.meta | 130 + .../Sprites/Unused/IconWarningHighRes.psd | Bin 0 -> 54256 bytes .../Unused/IconWarningHighRes.psd.meta | 130 + Assets/Plugins/IngameDebugConsole/WebGL.meta | 9 + .../WebGL/IngameDebugConsole.jslib | 70 + .../WebGL/IngameDebugConsole.jslib.meta | 46 + Assets/Scenes/NPCRender.unity | 48 +- Assets/packages.config | 5 + Assets/packages.config.meta | 28 + 163 files changed, 18524 insertions(+), 37 deletions(-) create mode 100644 Assets/NuGet.config create mode 100644 Assets/NuGet.config.meta create mode 100644 Assets/Packages.meta create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0.meta create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/.signature.p7s create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/Icon.png create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/Icon.png.meta create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/LICENSE.TXT create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/LICENSE.TXT.meta create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/System.Runtime.CompilerServices.Unsafe.nuspec create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/System.Runtime.CompilerServices.Unsafe.nuspec.meta create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/THIRD-PARTY-NOTICES.TXT create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/THIRD-PARTY-NOTICES.TXT.meta create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive.meta create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp2.0.meta create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets.meta create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp3.1.meta create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp3.1/_._ create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp3.1/_._.meta create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib.meta create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0.meta create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll.meta create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml.meta create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/useSharedDesignerContext.txt create mode 100644 Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/useSharedDesignerContext.txt.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/.signature.p7s create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/Icon.png create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/Icon.png.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/LICENSE.TXT create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/LICENSE.TXT.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/PACKAGE.md create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/PACKAGE.md.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/System.Text.Encoding.CodePages.nuspec create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/System.Text.Encoding.CodePages.nuspec.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/THIRD-PARTY-NOTICES.TXT create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/THIRD-PARTY-NOTICES.TXT.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net461.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net461/System.Text.Encoding.CodePages.targets create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net461/System.Text.Encoding.CodePages.targets.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net462.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net462/_._ create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net462/_._.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net8.0.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net8.0/_._ create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net8.0/_._.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/netcoreapp2.0.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/netcoreapp2.0/System.Text.Encoding.CodePages.targets create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/netcoreapp2.0/System.Text.Encoding.CodePages.targets.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/lib.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/lib/netstandard2.0.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/lib/netstandard2.0/System.Text.Encoding.CodePages.dll create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/lib/netstandard2.0/System.Text.Encoding.CodePages.dll.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/lib/netstandard2.0/System.Text.Encoding.CodePages.xml create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/lib/netstandard2.0/System.Text.Encoding.CodePages.xml.meta create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/useSharedDesignerContext.txt create mode 100644 Assets/Packages/System.Text.Encoding.CodePages.9.0.9/useSharedDesignerContext.txt.meta create mode 100644 Assets/Plugins/IngameDebugConsole.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Android.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar create mode 100644 Assets/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Editor.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef create mode 100644 Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef.meta create mode 100644 Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef create mode 100644 Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef.meta create mode 100644 Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab create mode 100644 Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Prefabs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab create mode 100644 Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab create mode 100644 Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab.meta create mode 100644 Assets/Plugins/IngameDebugConsole/README.txt create mode 100644 Assets/Plugins/IngameDebugConsole/README.txt.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Attributes.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleAttribute.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleAttribute.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleCustomTypeParserAttribute.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleCustomTypeParserAttribute.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleMethodAttribute.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleMethodAttribute.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/CopyLogsOnResizeButtonClick.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/CopyLogsOnResizeButtonClick.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItemCopyWebGL.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItemCopyWebGL.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogManager.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogManager.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogPopup.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogPopup.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogRecycledListView.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogRecycledListView.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogResizeListener.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogResizeListener.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugsOnScrollListener.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugsOnScrollListener.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/EventSystemHandler.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/EventSystemHandler.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconClear.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconClear.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconCollapse.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconCollapse.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconError.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconError.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconHide.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconHide.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconInfo.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconInfo.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconResizeAllDirections.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconResizeAllDirections.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconResizeVertialOnly.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconResizeVertialOnly.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconSnapToBottom.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconSnapToBottom.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconSnapToBottomBg.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconSnapToBottomBg.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconWarning.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconWarning.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IngameDebugConsoleSpriteAtlas.spriteatlas create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IngameDebugConsoleSpriteAtlas.spriteatlas.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SearchIcon.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SearchIcon.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SlicedBackground.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SlicedBackground.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SlicedBackground2.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SlicedBackground2.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SlicedBackground3.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SlicedBackground3.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused/IconErrorHighRes.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused/IconErrorHighRes.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused/IconInfoHighRes.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused/IconInfoHighRes.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused/IconWarningHighRes.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused/IconWarningHighRes.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/WebGL.meta create mode 100644 Assets/Plugins/IngameDebugConsole/WebGL/IngameDebugConsole.jslib create mode 100644 Assets/Plugins/IngameDebugConsole/WebGL/IngameDebugConsole.jslib.meta create mode 100644 Assets/packages.config create mode 100644 Assets/packages.config.meta diff --git a/Assets/NuGet.config b/Assets/NuGet.config new file mode 100644 index 0000000000..d267a78081 --- /dev/null +++ b/Assets/NuGet.config @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Assets/NuGet.config.meta b/Assets/NuGet.config.meta new file mode 100644 index 0000000000..52a7be8801 --- /dev/null +++ b/Assets/NuGet.config.meta @@ -0,0 +1,28 @@ +fileFormatVersion: 2 +guid: 53ac8fba7777ada49b4c956b2e9dd5f6 +labels: +- NuGetForUnity +PluginImporter: + externalObjects: {} + serializedVersion: 3 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + WindowsStoreApps: + enabled: 0 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages.meta b/Assets/Packages.meta new file mode 100644 index 0000000000..d1ad8dd265 --- /dev/null +++ b/Assets/Packages.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fd1728c74a264b944bc42b85d221851d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0.meta b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0.meta new file mode 100644 index 0000000000..7c5e8e7c7e --- /dev/null +++ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9a2ef14a21d75074abdd0b915f799482 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/.signature.p7s b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..2a015f966a69f29ae7ad9536a621550dd06064cf GIT binary patch literal 18703 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 c+-y&+VR+#gf0N|~9UfH*JD5Jjm{4}uUR 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 literal 0 HcmV?d00001 diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/Icon.png.meta b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/Icon.png.meta new file mode 100644 index 0000000000..ddd39e06ac --- /dev/null +++ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/Icon.png.meta @@ -0,0 +1,156 @@ +fileFormatVersion: 2 +guid: 7af834ccf10e9f74c94e59d28c6ec973 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/LICENSE.TXT b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/LICENSE.TXT new file mode 100644 index 0000000000..984713a496 --- /dev/null +++ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/LICENSE.TXT @@ -0,0 +1,23 @@ +The MIT License (MIT) + +Copyright (c) .NET Foundation and Contributors + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/LICENSE.TXT.meta b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/LICENSE.TXT.meta new file mode 100644 index 0000000000..b0e15ff03a --- /dev/null +++ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/LICENSE.TXT.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c6a71382129b6f949b37243d2f1891b6 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/System.Runtime.CompilerServices.Unsafe.nuspec b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/System.Runtime.CompilerServices.Unsafe.nuspec new file mode 100644 index 0000000000..d6590a9172 --- /dev/null +++ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/System.Runtime.CompilerServices.Unsafe.nuspec @@ -0,0 +1,29 @@ + + + + System.Runtime.CompilerServices.Unsafe + 6.0.0 + Microsoft + MIT + https://licenses.nuget.org/MIT + Icon.png + https://dot.net/ + Provides the System.Runtime.CompilerServices.Unsafe class, which provides generic, low-level functionality for manipulating pointers. + +Commonly Used Types: +System.Runtime.CompilerServices.Unsafe + https://go.microsoft.com/fwlink/?LinkID=799421 + © Microsoft Corporation. All rights reserved. + true + + + + + + + + + + + + \ No newline at end of file diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/System.Runtime.CompilerServices.Unsafe.nuspec.meta b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/System.Runtime.CompilerServices.Unsafe.nuspec.meta new file mode 100644 index 0000000000..a80bf4e0d9 --- /dev/null +++ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/System.Runtime.CompilerServices.Unsafe.nuspec.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 548c33fe45c1bd8478921c2ba4f49024 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/THIRD-PARTY-NOTICES.TXT b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/THIRD-PARTY-NOTICES.TXT new file mode 100644 index 0000000000..89c59b21d6 --- /dev/null +++ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/THIRD-PARTY-NOTICES.TXT @@ -0,0 +1,939 @@ +.NET Runtime uses third-party libraries or other resources that may be +distributed under licenses different than the .NET Runtime software. + +In the event that we accidentally failed to list a required notice, please +bring it to our attention. Post an issue or email us: + + dotnet@microsoft.com + +The attached notices are provided for information only. + +License notice for ASP.NET +------------------------------- + +Copyright (c) .NET Foundation. All rights reserved. +Licensed under the Apache License, Version 2.0. + +Available at +https://github.com/dotnet/aspnetcore/blob/main/LICENSE.txt + +License notice for Slicing-by-8 +------------------------------- + +http://sourceforge.net/projects/slicing-by-8/ + +Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + + +This software program is licensed subject to the BSD License, available at +http://www.opensource.org/licenses/bsd-license.html. + + +License notice for Unicode data +------------------------------- + +https://www.unicode.org/license.html + +Copyright © 1991-2020 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in https://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +License notice for Zlib +----------------------- + +https://github.com/madler/zlib +http://zlib.net/zlib_license.html + +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.11, January 15th, 2017 + + Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +*/ + +License notice for Mono +------------------------------- + +http://www.mono-project.com/docs/about-mono/ + +Copyright (c) .NET Foundation Contributors + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for International Organization for Standardization +----------------------------------------------------------------- + +Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +License notice for Intel +------------------------ + +"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Xamarin and Novell +------------------------------------- + +Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Copyright (c) 2011 Novell, Inc (http://www.novell.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Third party notice for W3C +-------------------------- + +"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE +Status: This license takes effect 13 May, 2015. +This work is being provided by the copyright holders under the following license. +License +By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. +Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications: +The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. +Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included. +Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." +Disclaimers +THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT. +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders." + +License notice for Bit Twiddling Hacks +-------------------------------------- + +Bit Twiddling Hacks + +By Sean Eron Anderson +seander@cs.stanford.edu + +Individually, the code snippets here are in the public domain (unless otherwise +noted) — feel free to use them however you please. The aggregate collection and +descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are +distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and +without even the implied warranty of merchantability or fitness for a particular +purpose. + +License notice for Brotli +-------------------------------------- + +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +compress_fragment.c: +Copyright (c) 2011, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +decode_fuzzer.c: +Copyright (c) 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + +License notice for Json.NET +------------------------------- + +https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md + +The MIT License (MIT) + +Copyright (c) 2007 James Newton-King + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized base64 encoding / decoding +-------------------------------------------------------- + +Copyright (c) 2005-2007, Nick Galbreath +Copyright (c) 2013-2017, Alfred Klomp +Copyright (c) 2015-2017, Wojciech Mula +Copyright (c) 2016-2017, Matthieu Darbois +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for RFC 3492 +--------------------------- + +The punycode implementation is based on the sample code in RFC 3492 + +Copyright (C) The Internet Society (2003). All Rights Reserved. + +This document and translations of it may be copied and furnished to +others, and derivative works that comment on or otherwise explain it +or assist in its implementation may be prepared, copied, published +and distributed, in whole or in part, without restriction of any +kind, provided that the above copyright notice and this paragraph are +included on all such copies and derivative works. However, this +document itself may not be modified in any way, such as by removing +the copyright notice or references to the Internet Society or other +Internet organizations, except as needed for the purpose of +developing Internet standards in which case the procedures for +copyrights defined in the Internet Standards process must be +followed, or as required to translate it into languages other than +English. + +The limited permissions granted above are perpetual and will not be +revoked by the Internet Society or its successors or assigns. + +This document and the information contained herein is provided on an +"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING +TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING +BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION +HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF +MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +License notice for Algorithm from Internet Draft document "UUIDs and GUIDs" +--------------------------------------------------------------------------- + +Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc. +Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. & +Digital Equipment Corporation, Maynard, Mass. +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: permission to use, copy, +modify, and distribute this file for any purpose is hereby +granted without fee, provided that the above copyright notices and +this notice appears in all source code copies, and that none of +the names of Open Software Foundation, Inc., Hewlett-Packard +Company, or Digital Equipment Corporation be used in advertising +or publicity pertaining to distribution of the software without +specific, written prior permission. Neither Open Software +Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital Equipment +Corporation makes any representations about the suitability of +this software for any purpose. + +Copyright(C) The Internet Society 1997. All Rights Reserved. + +This document and translations of it may be copied and furnished to others, +and derivative works that comment on or otherwise explain it or assist in +its implementation may be prepared, copied, published and distributed, in +whole or in part, without restriction of any kind, provided that the above +copyright notice and this paragraph are included on all such copies and +derivative works.However, this document itself may not be modified in any +way, such as by removing the copyright notice or references to the Internet +Society or other Internet organizations, except as needed for the purpose of +developing Internet standards in which case the procedures for copyrights +defined in the Internet Standards process must be followed, or as required +to translate it into languages other than English. + +The limited permissions granted above are perpetual and will not be revoked +by the Internet Society or its successors or assigns. + +This document and the information contained herein is provided on an "AS IS" +basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE +DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO +ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY +RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A +PARTICULAR PURPOSE. + +License notice for Algorithm from RFC 4122 - +A Universally Unique IDentifier (UUID) URN Namespace +---------------------------------------------------- + +Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc. +Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. & +Digital Equipment Corporation, Maynard, Mass. +Copyright (c) 1998 Microsoft. +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: permission to use, copy, +modify, and distribute this file for any purpose is hereby +granted without fee, provided that the above copyright notices and +this notice appears in all source code copies, and that none of +the names of Open Software Foundation, Inc., Hewlett-Packard +Company, Microsoft, or Digital Equipment Corporation be used in +advertising or publicity pertaining to distribution of the software +without specific, written prior permission. Neither Open Software +Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital +Equipment Corporation makes any representations about the +suitability of this software for any purpose." + +License notice for The LLVM Compiler Infrastructure +--------------------------------------------------- + +Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. + +License notice for Bob Jenkins +------------------------------ + +By Bob Jenkins, 1996. bob_jenkins@burtleburtle.net. You may use this +code any way you wish, private, educational, or commercial. It's free. + +License notice for Greg Parker +------------------------------ + +Greg Parker gparker@cs.stanford.edu December 2000 +This code is in the public domain and may be copied or modified without +permission. + +License notice for libunwind based code +---------------------------------------- + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for Printing Floating-Point Numbers (Dragon4) +------------------------------------------------------------ + +/****************************************************************************** + Copyright (c) 2014 Ryan Juckett + http://www.ryanjuckett.com/ + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source + distribution. +******************************************************************************/ + +License notice for Printing Floating-point Numbers (Grisu3) +----------------------------------------------------------- + +Copyright 2012 the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for xxHash +------------------------- + +xxHash Library +Copyright (c) 2012-2014, Yann Collet +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Berkeley SoftFloat Release 3e +------------------------------------------------ + +https://github.com/ucb-bar/berkeley-softfloat-3 +https://github.com/ucb-bar/berkeley-softfloat-3/blob/master/COPYING.txt + +License for Berkeley SoftFloat Release 3e + +John R. Hauser +2018 January 20 + +The following applies to the whole of SoftFloat Release 3e as well as to +each source file individually. + +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the +University of California. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE +DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for xoshiro RNGs +-------------------------------- + +Written in 2018 by David Blackman and Sebastiano Vigna (vigna@acm.org) + +To the extent possible under law, the author has dedicated all copyright +and related and neighboring rights to this software to the public domain +worldwide. This software is distributed without any warranty. + +See . + +License for fastmod (https://github.com/lemire/fastmod) and ibm-fpgen (https://github.com/nigeltao/parse-number-fxx-test-data) +-------------------------------------- + + Copyright 2018 Daniel Lemire + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +License notice for The C++ REST SDK +----------------------------------- + +C++ REST SDK + +The MIT License (MIT) + +Copyright (c) Microsoft Corporation + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for MessagePack-CSharp +------------------------------------- + +MessagePack for C# + +MIT License + +Copyright (c) 2017 Yoshifumi Kawai + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for lz4net +------------------------------------- + +lz4net + +Copyright (c) 2013-2017, Milosz Krajewski + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Nerdbank.Streams +----------------------------------- + +The MIT License (MIT) + +Copyright (c) Andrew Arnott + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for RapidJSON +---------------------------- + +Tencent is pleased to support the open source community by making RapidJSON available. + +Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. + +Licensed under the MIT License (the "License"); you may not use this file except +in compliance with the License. You may obtain a copy of the License at + +http://opensource.org/licenses/MIT + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. + +License notice for DirectX Math Library +--------------------------------------- + +https://github.com/microsoft/DirectXMath/blob/master/LICENSE + + The MIT License (MIT) + +Copyright (c) 2011-2020 Microsoft Corp + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be included in all copies +or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for ldap4net +--------------------------- + +The MIT License (MIT) + +Copyright (c) 2018 Alexander Chermyanin + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized sorting code +------------------------------------------ + +MIT License + +Copyright (c) 2020 Dan Shechter + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for musl +----------------------- + +musl as a whole is licensed under the following standard MIT license: + +Copyright © 2005-2020 Rich Felker, et al. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +License notice for "Faster Unsigned Division by Constants" +------------------------------ + +Reference implementations of computing and using the "magic number" approach to dividing +by constants, including codegen instructions. The unsigned division incorporates the +"round down" optimization per ridiculous_fish. + +This is free and unencumbered software. Any copyright is dedicated to the Public Domain. + + +License notice for mimalloc +----------------------------------- + +MIT License + +Copyright (c) 2019 Microsoft Corporation, Daan Leijen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/THIRD-PARTY-NOTICES.TXT.meta b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/THIRD-PARTY-NOTICES.TXT.meta new file mode 100644 index 0000000000..c9b4af0438 --- /dev/null +++ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/THIRD-PARTY-NOTICES.TXT.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 49a1725ce1ecb0c459c498c0dc311b51 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive.meta b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive.meta new file mode 100644 index 0000000000..395d408995 --- /dev/null +++ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: df5dc443f78c38042845e4196231bf83 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp2.0.meta b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp2.0.meta new file mode 100644 index 0000000000..9b18bd9ab7 --- /dev/null +++ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 91ef7595c6f73a94799c79ce939dbd04 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets new file mode 100644 index 0000000000..98eb1d3b60 --- /dev/null +++ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets @@ -0,0 +1,6 @@ + + + + + diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets.meta b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets.meta new file mode 100644 index 0000000000..1e94c1f039 --- /dev/null +++ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2b04d8c826e8f5e4cbb24436ec886b26 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp3.1.meta b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp3.1.meta new file mode 100644 index 0000000000..104fe49c3c --- /dev/null +++ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp3.1.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8428e813a70558d49a8c80219482865a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp3.1/_._ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp3.1/_._ new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp3.1/_._.meta b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp3.1/_._.meta new file mode 100644 index 0000000000..5517f51b1b --- /dev/null +++ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/buildTransitive/netcoreapp3.1/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c58efa7d083375a4b97e86e80d632a39 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib.meta b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib.meta new file mode 100644 index 0000000000..fb7f0a1b64 --- /dev/null +++ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 94203e3a669a55847845d4ea2a8d6f5f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0.meta b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0.meta new file mode 100644 index 0000000000..e2626d85ce --- /dev/null +++ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 71bdc16a2b7d3804cb22644c32a90e87 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000000000000000000000000000000000000..491a80a97880de93aa893f6974c5f76891d2de73 GIT binary patch literal 18024 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 + + + System.Runtime.CompilerServices.Unsafe + + + + Contains generic, low-level functionality for manipulating pointers. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given void pointer. + The void pointer to add the offset to. + The offset to add. + The type of void pointer. + A new void pointer that reflects the addition of offset to the specified pointer. + + + Adds a byte offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of byte offset to pointer. + + + Adds a byte offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of byte offset to pointer. + + + Determines whether the specified references point to the same location. + The first reference to compare. + The second reference to compare. + The type of reference. + + if and point to the same location; otherwise, . + + + Casts the given object to the specified type. + The object to cast. + The type which the object will be cast to. + The original object, casted to the given type. + + + Reinterprets the given reference as a reference to a value of type . + The reference to reinterpret. + The type of reference to reinterpret. + The desired type of the reference. + A reference to a value of type . + + + Returns a pointer to the given by-ref parameter. + The object whose pointer is obtained. + The type of object. + A pointer to the given value. + + + Reinterprets the given read-only reference as a reference. + The read-only reference to reinterpret. + The type of reference. + A reference to a value of type . + + + Reinterprets the given location as a reference to a value of type . + The location of the value to reference. + The type of the interpreted location. + A reference to a value of type . + + + Determines the byte offset from origin to target from the given references. + The reference to origin. + The reference to target. + The type of reference. + Byte offset from origin to target i.e. - . + + + Copies a value of type to the given location. + The location to copy to. + A pointer to the value to copy. + The type of value to copy. + + + Copies a value of type to the given location. + The location to copy to. + A reference to the value to copy. + The type of value to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Returns a value that indicates whether a specified reference is greater than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is greater than ; otherwise, . + + + Returns a value that indicates whether a specified reference is less than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is less than ; otherwise, . + + + Determines if a given reference to a value of type is a null reference. + The reference to check. + The type of the reference. + + if is a null reference; otherwise, . + + + Returns a reference to a value of type that is a null reference. + The type of the reference. + A reference to a value of type that is a null reference. + + + Reads a value of type from the given location. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Returns the size of an object of the given type parameter. + The type of object whose size is retrieved. + The size of an object of type . + + + Bypasses definite assignment rules for a given value. + The uninitialized object. + The type of the uninitialized object. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subraction of offset from pointer. + + + Subtracts an element offset from the given void pointer. + The void pointer to subtract the offset from. + The offset to subtract. + The type of the void pointer. + A new void pointer that reflects the subtraction of offset from the specified pointer. + + + Subtracts a byte offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of byte offset from pointer. + + + Subtracts a byte offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subraction of byte offset from pointer. + + + Returns a to a boxed value. + The value to unbox. + The type to be unboxed. + + is , and is a non-nullable value type. + + is not a boxed value type. + +-or- + + is not a boxed . + + cannot be found. + A to the boxed value . + + + Writes a value of type to the given location. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + \ No newline at end of file diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml.meta b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml.meta new file mode 100644 index 0000000000..3057d1360c --- /dev/null +++ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 493f8b9334cf2d74d8361f61c594725c +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/useSharedDesignerContext.txt b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/useSharedDesignerContext.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/useSharedDesignerContext.txt.meta b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/useSharedDesignerContext.txt.meta new file mode 100644 index 0000000000..f161e93654 --- /dev/null +++ b/Assets/Packages/System.Runtime.CompilerServices.Unsafe.6.0.0/useSharedDesignerContext.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 11d119eac6352fa47aff54ce50a74de8 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9.meta b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9.meta new file mode 100644 index 0000000000..99d8a2df1b --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b3a65d13e07530648b6e612ea1908924 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/.signature.p7s b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..0437c4a8c10b006270547fb98fb24d5921108e9b GIT binary patch literal 25747 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 E0|<_w_W%F@ literal 0 HcmV?d00001 diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/Icon.png b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fb00ecf91e4b78804c636194bb323bf3710fa1c6 GIT binary patch literal 2140 zcmeHIX;4#F6iz}QBp3(*v25~!F*qzP0ojoU1Wja7KpD}12oa>Xrfece2to*M4{<@1 zP%%ms&>BGn2e5_86S0m&0z?*tFd77$B7y>vzNa&tPJedV>7UNLH{U(qJ@=gNJNL&G zZwy{XCYg~i7z~-iW`$xfSQ!0vwGifWRzWuc0UHB1`G?p&M?Q^4^TQdnylqlFJQMHV zlMy}8cyoMm;xpH^t5o#5@y2-k+Mdkle$k#mS^4OrhKW<@s@vsbjW^%%!+QI>rn#<) z{_bgV=B_HFEH)`LIBec*h>(fF5SlnFpG|4X(PvmP2D6~~`@Sai?5+nm4-!M>!#e`& z78+VFVXe(SMlq!^eg7xWd6boUvM4P&8=5T0wgi! zp<$6Qus?iG)+d;(0n8C!5))oCLL24Oym*Gn(Wz_qt3FCV776EaQ0@8?Z;*X?j^|Sm zn!Z?CE$ZK^Bel^@7%D^$=pOWDB0`L52FJhnR;@@*4VX&YV4t-$6D&!6S(50;t4kpO zSu@uc7lG;JP{4;;gTKszM|=8RA1W@lCalj952n{cQ<2H{5Ho%XwCWD_{Z4eMJK>$z zk!wqDgEouoAc>PS^6@?wtqyq}w+)qQ-k}&oy@>2Jq0>$(&(2yz!kQ$B-aeP1JVAwi zLdDN$6HyHca*;h+GLwCO>;wmB&|!(*}Njk+((AJ3{PGOdx_ow6Z(=O$zl0DfhA9qWN%*0384ZX-%PdlCVsU;^WuLWS6 zFXEf8|L9P?|BxkhKeqYq++65zuqrIXB_=k7X0>One(W+8@jAr|KOqE zA{8rpb%xTK*LyH?wH7r3VwmvsXBR83fP-{+TLwEzY04n+9E2=$_+^Svj1xydpdM_| zOAWL@lsIQ|g;s%d*cN6$i7RV!TL3t`Nippk%z?;2>&ui}v9{Qry++zPRCad)IAFrl zVrN|@85!_xg;Kwn%BW~--xx!>Wk=-d&Bet~zEI_-Jkz#l_a=BNo+EN{T-sGgLK>2R zTl1?679M`Te?VAqflxs-Xlp(?+z^mfcBjCASoPc0Eo+$1Ukv);wnZsCeH&`cr6V+- zlv98Q2P&n*!Bn0NQC5WS;Rxq;oYdzbZwp4})3$-jUb&QY)+bmNVpr+``XIZdFn@{R z-y&lERCUNMmld3Uk>W<<`>Kw>#6lx$oBxuCIFtk;kF{VWJb!KMr(kW0zjXo2SiFoH kLN8~t3iGWE|8=58=$f)MBl>~e*<^I~9RFa}4c} + + + System.Text.Encoding.CodePages + 9.0.9 + Microsoft + MIT + https://licenses.nuget.org/MIT + Icon.png + PACKAGE.md + https://dot.net/ + Provides support for code-page based encodings, including Windows-1252, Shift-JIS, and GB2312. + +Commonly Used Types: +System.Text.CodePagesEncodingProvider + https://go.microsoft.com/fwlink/?LinkID=799421 + © Microsoft Corporation. All rights reserved. + true + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/System.Text.Encoding.CodePages.nuspec.meta b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/System.Text.Encoding.CodePages.nuspec.meta new file mode 100644 index 0000000000..3b6b5f3cc6 --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/System.Text.Encoding.CodePages.nuspec.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c81a6e40617617c43a178a56e5db339c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/THIRD-PARTY-NOTICES.TXT b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/THIRD-PARTY-NOTICES.TXT new file mode 100644 index 0000000000..3dc0d7aa85 --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/THIRD-PARTY-NOTICES.TXT @@ -0,0 +1,1396 @@ +.NET Runtime uses third-party libraries or other resources that may be +distributed under licenses different than the .NET Runtime software. + +In the event that we accidentally failed to list a required notice, please +bring it to our attention. Post an issue or email us: + + dotnet@microsoft.com + +The attached notices are provided for information only. + +License notice for ASP.NET +------------------------------- + +Copyright (c) .NET Foundation. All rights reserved. +Licensed under the Apache License, Version 2.0. + +Available at +https://github.com/dotnet/aspnetcore/blob/main/LICENSE.txt + +License notice for Slicing-by-8 +------------------------------- + +http://sourceforge.net/projects/slicing-by-8/ + +Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + + +This software program is licensed subject to the BSD License, available at +http://www.opensource.org/licenses/bsd-license.html. + + +License notice for Unicode data +------------------------------- + +https://www.unicode.org/license.html + +Copyright © 1991-2022 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in https://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +License notice for zlib-ng +----------------------- + +https://github.com/zlib-ng/zlib-ng/blob/d54e3769be0c522015b784eca2af258b1c026107/LICENSE.md + +(C) 1995-2024 Jean-loup Gailly and Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + +3. This notice may not be removed or altered from any source distribution. + +License notice for LinuxTracepoints +----------------------------------- + +https://github.com/microsoft/LinuxTracepoints/blob/main/LICENSE + +Copyright (c) Microsoft Corporation. + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE + +License notice for Mono +------------------------------- + +http://www.mono-project.com/docs/about-mono/ + +Copyright (c) .NET Foundation Contributors + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for International Organization for Standardization +----------------------------------------------------------------- + +Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +License notice for Intel +------------------------ + +"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Xamarin and Novell +------------------------------------- + +Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Copyright (c) 2011 Novell, Inc (http://www.novell.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Third party notice for W3C +-------------------------- + +"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE +Status: This license takes effect 13 May, 2015. +This work is being provided by the copyright holders under the following license. +License +By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. +Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications: +The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. +Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included. +Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." +Disclaimers +THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT. +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders." + +License notice for Bit Twiddling Hacks +-------------------------------------- + +Bit Twiddling Hacks + +By Sean Eron Anderson +seander@cs.stanford.edu + +Individually, the code snippets here are in the public domain (unless otherwise +noted) — feel free to use them however you please. The aggregate collection and +descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are +distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and +without even the implied warranty of merchantability or fitness for a particular +purpose. + +License notice for Brotli +-------------------------------------- + +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +compress_fragment.c: +Copyright (c) 2011, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +decode_fuzzer.c: +Copyright (c) 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + +License notice for Json.NET +------------------------------- + +https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md + +The MIT License (MIT) + +Copyright (c) 2007 James Newton-King + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized base64 encoding / decoding +-------------------------------------------------------- + +Copyright (c) 2005-2007, Nick Galbreath +Copyright (c) 2013-2017, Alfred Klomp +Copyright (c) 2015-2017, Wojciech Mula +Copyright (c) 2016-2017, Matthieu Darbois +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for vectorized hex parsing +-------------------------------------------------------- + +Copyright (c) 2022, Geoff Langdale +Copyright (c) 2022, Wojciech Mula +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for RFC 3492 +--------------------------- + +The punycode implementation is based on the sample code in RFC 3492 + +Copyright (C) The Internet Society (2003). All Rights Reserved. + +This document and translations of it may be copied and furnished to +others, and derivative works that comment on or otherwise explain it +or assist in its implementation may be prepared, copied, published +and distributed, in whole or in part, without restriction of any +kind, provided that the above copyright notice and this paragraph are +included on all such copies and derivative works. However, this +document itself may not be modified in any way, such as by removing +the copyright notice or references to the Internet Society or other +Internet organizations, except as needed for the purpose of +developing Internet standards in which case the procedures for +copyrights defined in the Internet Standards process must be +followed, or as required to translate it into languages other than +English. + +The limited permissions granted above are perpetual and will not be +revoked by the Internet Society or its successors or assigns. + +This document and the information contained herein is provided on an +"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING +TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING +BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION +HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF +MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Copyright(C) The Internet Society 1997. All Rights Reserved. + +This document and translations of it may be copied and furnished to others, +and derivative works that comment on or otherwise explain it or assist in +its implementation may be prepared, copied, published and distributed, in +whole or in part, without restriction of any kind, provided that the above +copyright notice and this paragraph are included on all such copies and +derivative works.However, this document itself may not be modified in any +way, such as by removing the copyright notice or references to the Internet +Society or other Internet organizations, except as needed for the purpose of +developing Internet standards in which case the procedures for copyrights +defined in the Internet Standards process must be followed, or as required +to translate it into languages other than English. + +The limited permissions granted above are perpetual and will not be revoked +by the Internet Society or its successors or assigns. + +This document and the information contained herein is provided on an "AS IS" +basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE +DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO +ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY +RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A +PARTICULAR PURPOSE. + +License notice for Algorithm from RFC 4122 - +A Universally Unique IDentifier (UUID) URN Namespace +---------------------------------------------------- + +Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc. +Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. & +Digital Equipment Corporation, Maynard, Mass. +Copyright (c) 1998 Microsoft. +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: permission to use, copy, +modify, and distribute this file for any purpose is hereby +granted without fee, provided that the above copyright notices and +this notice appears in all source code copies, and that none of +the names of Open Software Foundation, Inc., Hewlett-Packard +Company, Microsoft, or Digital Equipment Corporation be used in +advertising or publicity pertaining to distribution of the software +without specific, written prior permission. Neither Open Software +Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital +Equipment Corporation makes any representations about the +suitability of this software for any purpose." + +License notice for The LLVM Compiler Infrastructure +--------------------------------------------------- + +Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. + +License notice for Bob Jenkins +------------------------------ + +By Bob Jenkins, 1996. bob_jenkins@burtleburtle.net. You may use this +code any way you wish, private, educational, or commercial. It's free. + +License notice for Greg Parker +------------------------------ + +Greg Parker gparker@cs.stanford.edu December 2000 +This code is in the public domain and may be copied or modified without +permission. + +License notice for libunwind based code +---------------------------------------- + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for Printing Floating-Point Numbers (Dragon4) +------------------------------------------------------------ + +/****************************************************************************** + Copyright (c) 2014 Ryan Juckett + http://www.ryanjuckett.com/ + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source + distribution. +******************************************************************************/ + +License notice for Printing Floating-point Numbers (Grisu3) +----------------------------------------------------------- + +Copyright 2012 the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for xxHash +------------------------- + +xxHash - Extremely Fast Hash algorithm +Header File +Copyright (C) 2012-2021 Yann Collet + +BSD 2-Clause License (https://www.opensource.org/licenses/bsd-license.php) + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +You can contact the author at: + - xxHash homepage: https://www.xxhash.com + - xxHash source repository: https://github.com/Cyan4973/xxHash + +License notice for Berkeley SoftFloat Release 3e +------------------------------------------------ + +https://github.com/ucb-bar/berkeley-softfloat-3 +https://github.com/ucb-bar/berkeley-softfloat-3/blob/master/COPYING.txt + +License for Berkeley SoftFloat Release 3e + +John R. Hauser +2018 January 20 + +The following applies to the whole of SoftFloat Release 3e as well as to +each source file individually. + +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the +University of California. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE +DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for xoshiro RNGs +-------------------------------- + +Written in 2018 by David Blackman and Sebastiano Vigna (vigna@acm.org) + +To the extent possible under law, the author has dedicated all copyright +and related and neighboring rights to this software to the public domain +worldwide. This software is distributed without any warranty. + +See . + +License for fastmod (https://github.com/lemire/fastmod), ibm-fpgen (https://github.com/nigeltao/parse-number-fxx-test-data) and fastrange (https://github.com/lemire/fastrange) +-------------------------------------- + + Copyright 2018 Daniel Lemire + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +License for sse4-strstr (https://github.com/WojciechMula/sse4-strstr) +-------------------------------------- + + Copyright (c) 2008-2016, Wojciech Mula + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for The C++ REST SDK +----------------------------------- + +C++ REST SDK + +The MIT License (MIT) + +Copyright (c) Microsoft Corporation + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for MessagePack-CSharp +------------------------------------- + +MessagePack for C# + +MIT License + +Copyright (c) 2017 Yoshifumi Kawai + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for lz4net +------------------------------------- + +lz4net + +Copyright (c) 2013-2017, Milosz Krajewski + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Nerdbank.Streams +----------------------------------- + +The MIT License (MIT) + +Copyright (c) Andrew Arnott + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for RapidJSON +---------------------------- + +Tencent is pleased to support the open source community by making RapidJSON available. + +Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. + +Licensed under the MIT License (the "License"); you may not use this file except +in compliance with the License. You may obtain a copy of the License at + +http://opensource.org/licenses/MIT + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. + +License notice for DirectX Math Library +--------------------------------------- + +https://github.com/microsoft/DirectXMath/blob/master/LICENSE + + The MIT License (MIT) + +Copyright (c) 2011-2020 Microsoft Corp + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be included in all copies +or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for ldap4net +--------------------------- + +The MIT License (MIT) + +Copyright (c) 2018 Alexander Chermyanin + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized sorting code +------------------------------------------ + +MIT License + +Copyright (c) 2020 Dan Shechter + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for musl +----------------------- + +musl as a whole is licensed under the following standard MIT license: + +Copyright © 2005-2020 Rich Felker, et al. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +License notice for "Faster Unsigned Division by Constants" +------------------------------ + +Reference implementations of computing and using the "magic number" approach to dividing +by constants, including codegen instructions. The unsigned division incorporates the +"round down" optimization per ridiculous_fish. + +This is free and unencumbered software. Any copyright is dedicated to the Public Domain. + + +License notice for mimalloc +----------------------------------- + +MIT License + +Copyright (c) 2019 Microsoft Corporation, Daan Leijen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License for remote stack unwind (https://github.com/llvm/llvm-project/blob/main/lldb/source/Symbol/CompactUnwindInfo.cpp) +-------------------------------------- + +Copyright 2019 LLVM Project + +Licensed under the Apache License, Version 2.0 (the "License") with LLVM Exceptions; +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +https://llvm.org/LICENSE.txt + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +License notice for Apple header files +------------------------------------- + +Copyright (c) 1980, 1986, 1993 + The Regents of the University of California. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the University of + California, Berkeley and its contributors. +4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +License notice for JavaScript queues +------------------------------------- + +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. + +Statement of Purpose +The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). +Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. +For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: +the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; +moral rights retained by the original author(s) and/or performer(s); +publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; +rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; +rights protecting the extraction, dissemination, use and reuse of data in a Work; +database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and +other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. +2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. +3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. +4. Limitations and Disclaimers. +a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. +b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. +c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. +d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. + + +License notice for FastFloat algorithm +------------------------------------- +MIT License +Copyright (c) 2021 csFastFloat authors +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for MsQuic +-------------------------------------- + +Copyright (c) Microsoft Corporation. +Licensed under the MIT License. + +Available at +https://github.com/microsoft/msquic/blob/main/LICENSE + +License notice for m-ou-se/floatconv +------------------------------- + +Copyright (c) 2020 Mara Bos +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for code from The Practice of Programming +------------------------------- + +Copyright (C) 1999 Lucent Technologies + +Excerpted from 'The Practice of Programming +by Brian W. Kernighan and Rob Pike + +You may use this code for any purpose, as long as you leave the copyright notice and book citation attached. + +Notice for Euclidean Affine Functions and Applications to Calendar +Algorithms +------------------------------- + +Aspects of Date/Time processing based on algorithm described in "Euclidean Affine Functions and Applications to Calendar +Algorithms", Cassio Neri and Lorenz Schneider. https://arxiv.org/pdf/2102.06959.pdf + +License notice for amd/aocl-libm-ose +------------------------------- + +Copyright (C) 2008-2020 Advanced Micro Devices, Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +License notice for fmtlib/fmt +------------------------------- + +Formatting library for C++ + +Copyright (c) 2012 - present, Victor Zverovich + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License for Jb Evain +--------------------- + +Copyright (c) 2006 Jb Evain (jbevain@gmail.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +--- Optional exception to the license --- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into a machine-executable object form of such +source code, you may redistribute such embedded portions in such object form +without including the above copyright and permission notices. + + +License for MurmurHash3 +-------------------------------------- + +https://github.com/aappleby/smhasher/blob/master/src/MurmurHash3.cpp + +MurmurHash3 was written by Austin Appleby, and is placed in the public +domain. The author hereby disclaims copyright to this source + +License for Fast CRC Computation +-------------------------------------- + +https://github.com/intel/isa-l/blob/33a2d9484595c2d6516c920ce39a694c144ddf69/crc/crc32_ieee_by4.asm +https://github.com/intel/isa-l/blob/33a2d9484595c2d6516c920ce39a694c144ddf69/crc/crc64_ecma_norm_by8.asm + +Copyright(c) 2011-2015 Intel Corporation All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License for C# Implementation of Fast CRC Computation +----------------------------------------------------- + +https://github.com/SixLabors/ImageSharp/blob/f4f689ce67ecbcc35cebddba5aacb603e6d1068a/src/ImageSharp/Formats/Png/Zlib/Crc32.cs + +Copyright (c) Six Labors. +Licensed under the Apache License, Version 2.0. + +Available at +https://github.com/SixLabors/ImageSharp/blob/f4f689ce67ecbcc35cebddba5aacb603e6d1068a/LICENSE + +License for the Teddy multi-substring searching implementation +-------------------------------------- + +https://github.com/BurntSushi/aho-corasick + +The MIT License (MIT) + +Copyright (c) 2015 Andrew Gallant + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +License notice for Avx512Vbmi base64 encoding / decoding +-------------------------------------------------------- + +Copyright (c) 2015-2018, Wojciech Muła +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------- + +Aspects of base64 encoding / decoding are based on algorithm described in "Base64 encoding and decoding at almost the speed of a memory +copy", Wojciech Muła and Daniel Lemire. https://arxiv.org/pdf/1910.05109.pdf + +License for FormatJS Intl.Segmenter grapheme segmentation algorithm +-------------------------------------------------------------------------- +Available at https://github.com/formatjs/formatjs/blob/58d6a7b398d776ca3d2726d72ae1573b65cc3bef/packages/intl-segmenter/LICENSE.md + +MIT License + +Copyright (c) 2022 FormatJS + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License for SharpFuzz and related samples +-------------------------------------- + +https://github.com/Metalnem/sharpfuzz +https://github.com/Metalnem/dotnet-fuzzers +https://github.com/Metalnem/libfuzzer-dotnet + +MIT License + +Copyright (c) 2018 Nemanja Mijailovic + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/THIRD-PARTY-NOTICES.TXT.meta b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/THIRD-PARTY-NOTICES.TXT.meta new file mode 100644 index 0000000000..97f8149c7a --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/THIRD-PARTY-NOTICES.TXT.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 982fbb6f93d5b6d419d06b5699685ee4 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive.meta b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive.meta new file mode 100644 index 0000000000..ae62fa0e82 --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 21c328f1083885f4e8ae4352108b32fe +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net461.meta b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net461.meta new file mode 100644 index 0000000000..4103d4132c --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net461.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 78f972a7e1338c643a84d3f6269e2d6e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net461/System.Text.Encoding.CodePages.targets b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net461/System.Text.Encoding.CodePages.targets new file mode 100644 index 0000000000..7a1de2ef7a --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net461/System.Text.Encoding.CodePages.targets @@ -0,0 +1,6 @@ + + + + + diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net461/System.Text.Encoding.CodePages.targets.meta b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net461/System.Text.Encoding.CodePages.targets.meta new file mode 100644 index 0000000000..da16f92d55 --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net461/System.Text.Encoding.CodePages.targets.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3d80976b0d90b6345a52efcada3166ac +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net462.meta b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net462.meta new file mode 100644 index 0000000000..2984271c8b --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net462.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 709cebc309d675545b1e16331870ae73 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net462/_._ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net462/_._ new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net462/_._.meta b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net462/_._.meta new file mode 100644 index 0000000000..4d1e653111 --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net462/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d9e3e67c98256314aafdc59779f344c7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net8.0.meta b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net8.0.meta new file mode 100644 index 0000000000..968361ba77 --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net8.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f7fc191531495ec4d9591d78489831bf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net8.0/_._ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net8.0/_._ new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net8.0/_._.meta b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net8.0/_._.meta new file mode 100644 index 0000000000..001402c957 --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/net8.0/_._.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4123432eaf6404e41b087248c2b8d365 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/netcoreapp2.0.meta b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/netcoreapp2.0.meta new file mode 100644 index 0000000000..acbabc967b --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/netcoreapp2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7fb99367437e0894097305f3a4e3023f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/netcoreapp2.0/System.Text.Encoding.CodePages.targets b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/netcoreapp2.0/System.Text.Encoding.CodePages.targets new file mode 100644 index 0000000000..e0798017bd --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/netcoreapp2.0/System.Text.Encoding.CodePages.targets @@ -0,0 +1,6 @@ + + + + + diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/netcoreapp2.0/System.Text.Encoding.CodePages.targets.meta b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/netcoreapp2.0/System.Text.Encoding.CodePages.targets.meta new file mode 100644 index 0000000000..04e76dc434 --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/buildTransitive/netcoreapp2.0/System.Text.Encoding.CodePages.targets.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c16b22a1716b8824ea8d7973172a6e4f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/lib.meta b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/lib.meta new file mode 100644 index 0000000000..f42cf40b21 --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/lib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4409db660aa2f524d90ca536b3098524 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/lib/netstandard2.0.meta b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/lib/netstandard2.0.meta new file mode 100644 index 0000000000..46b0cad0bf --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/lib/netstandard2.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d1a770ea3df962a4ca83ef22e48dd526 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/lib/netstandard2.0/System.Text.Encoding.CodePages.dll b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/lib/netstandard2.0/System.Text.Encoding.CodePages.dll new file mode 100644 index 0000000000000000000000000000000000000000..6b741a81f00ac10b893ea9e1b0b817f80901b7f9 GIT binary patch literal 762664 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 G`Ba4MVzr^5gY z!VnC@2#movOu`Jz!W=BX60E^GoB?~`OgIak3+KSOa6ViB7x{`HrR59Yg}ye(B6u;p z1YQa+gID+}A*Yj9s7hff3a${;?saqPM1O;Agt5&NsHM_G(0;WjXXY{EG9m7tYt6E!ps(q4`c` zXgUR-chm6Xm{hZ$_l~nUo*nxJ=oJGvd+}TW^$QfXnqV%w-sAY(JQn1M9A?A z5?JmceJTDZnju?qz5bmu?(z57s@EQ0rd=a!`Nwj^-O_XtBMZ0wxux6^jzl1lNE8x-xRC^8Hj;!S zBPmEKl7^%s00JTq0wV~5A~-@IB*Gy)A|NuNAS$9EI$|K1NER{=$w6|FJR~0}Knjr} zWInP0S%?%POOR#Aa%3g48d-;IKsF+qkj=;zbvvIE(P>_YzY5!i$5Lk=JZkweH~ z65m8Uk782K^8NYC zrd6Kv(%G1sWNE^WxM@PJEs$7c&ali#8XuN4=aTEBt(P!Zc)> z{OravD#ZNfnx+_q%`-YMA9Gfj8ssf6s1w%=@DbSh40(>cMBX9qkq^j6k+-$-S&3R)GdhE_*wptaE2Xg#z(+5l~gHbq;atvqJ7Z5 zXn%A7`ZqcV9gL1b$DrfT@#q9}B03qJicUkPqchN1s2R1OHq?#=qakQ0T3YTv!_Wvc z5{*KmQ77v1)rn%!IMj{CqX}pVnu?~O=_r7LD1^c&iekQY5rI-DjWQ^Uawv}q=&Voi5iGMvH4hJq@g8MX#O_U*U=m3E%Y{e2fd5lL+_&x(1++F^s$e?6Z9$i3@t%lpfAx^ z=o|Dc`VM`Men3B=U(m1Uck~DP3;m6jqGf0~S^=wsRmQ4d)v)SV4Xh?s3#*OQ!N#Ji z{jVbpVxDPLLLR&BhBNr6gbwCmd_lkf(?%#CcSh(D?{ZsPhuQU1*ws0g5Aur}lb~c* z5BQX{iT+Fd+xec}26Yn-qG$4oGp9y>1J4>UiNme_-j0d0*);J(U^Ux0Q)|;jOFn62 zS0@jfnK=)M1-Lt=N%(sIYFtHl7x_Br0b_9oJH9(kqZ?xy$EV(-5zrN|AlCd<3@D#p+@8u?AQ}tP$1(Yl=0)nqw`nmRKvS zHP!}ei?zo(U>&i)uuhmC)&=W|b;G)2J+PiwFRVA#2kVRV!}?vgROvV&U#Wc*oGB7VT2g|~;vAI}>s8Q@u=P*-% z?R(Zv*D>~4Y#+~L^V_J0N%xFlk*8%_WJg!1C0cOBSFpNVQ|C1DpC5)`za9OoBk(;@ zwyf*$j>!B-5%$bUNhRQE#9HK&WnNb2V3YZC^2^Mbv8{C2PuGY>v(bjx+@j6IP%v84T2_^heG)g&!VD24kYbQ)X?9yt9hp_6|I`9 zmVI7M<%~1lVd;xdSb39KH{-z{!_)S8SPqtp>q41wgvka+lFn&c3?ZPJ=lKi5OxGRiXF#JV5hJ% z*g5Pxb^*JLUBRwl*Rh+}E$lXS2fK^i!yaG{u}9cb>^b(*N8mN~7W;sG#6Dr4u`k$H z>>Kt2`-%O=%CK^*B3=cridV;L;5G4Dcpbbx-T-fiH^Lj^P4Q-U3%n)X8gGMFG`)l0 z+O!m$p8)QW8w!{sw^_XhG7EAlQAC5J_-R$Xe z;$oSCCxHud%HVNXitCuYRmkv=`9WLe408YU4&ujI-$ykKE|Z^!O)5TOURbcp@C${b zL>uWeXI08(3KOF0uwyKLvrWRF!v0AaCLe(vZSnSaNBl3mGwz3X!Moz!@a}jIyeHlZ z?~V7t`{MoZ{`dfVAU+5mj1R?!Dh_&9t#J^`PIPr|3*Q}Jo|bbJOr6Q6~fa5L_Y zTX7q1#{=*{JQxr06=ocG7#@yC;E{L~9*sM37aoJh;&HeekH<^P6Y$x1BJRPH@MJs% zPs7u30Ech_Cvgg=aUPd&1=nyLH}DL64xWi;;q&kuybv$K=i|lr5_~D%&wJ4p%9x1; zX0xe6-c`>9;DuBzVm9=PsWrO{nVU0?erS1?de(L&v$D|LyD2@X@U~}q&{lp|>{@n= zb3oqekaE+0<3D_;IYKRV!E!3wsAt<>mX|Bqc1vC}imyPglt?rv}Gsb<|lM+UV@ zqdgiqBc#++9@#m1E!odhF>IZ?lJY*RcJ8@?O;Bm-Us;5KY^dbPvK|qv-mmuJbnSch+o1l<5%#j z_;vgSeha^i-@)(V5AjF%6JP1?IsO8FiNC^M<8Sfz_y_zW{>ew+GyVntihskuIsuIVwYKr|v66U~U`L<^!7(S~SCv?n?ee-WLCu0(gDH<6sQ zHYpR^tTvDA2^Be|%y;HH*{fpvau#kugg*y*Q>?N!!&^5*^1oqflQ%dW%6PzC#=t|3t2s zmy`E8r-!ME{U$vu{=T;<`#G*CVi)5hu&Xc8j~GA(~> zU;-s@f+Q${Avl631VSWaLLpQ_BXq(bGKe`uCQ(|RP0S_c5qU%bQAiXK^NC_&5wVz9 zMl2^*5F3e2#6QFqVk@zY*iP&qb`k#(yNNx-USc1ypEy7qA`TNrh(keR*!=jX;Ui)f zS(BoQ7R@)WpX0Htb2N^85gy_B;Oyv4v#iM}vo7-7=dY(P4HDhGz3oF5WF8lC?Ovjv zd9NqNaWSOvq9?Xf^6H`?8B5qnv2?-Dz~gy+tam_v>qAE+S0ydbbivsp>SsJ)DR3;d z9MYB$a-l!-E^20KU+**v6VW;=6+EK#4w{5oBNr|DnH!%ua{faDg~!L=aliBq@{Y3V znYWV9##haKlT{kH!2Lr#o_XSrXYRkF#0lagaf&!ioF&c?=ZOo%CE^NkmAFP+CvFh8 zi95tS;y&?!ctkuVo)9I(bK(W@ig-=DA>I-1iI2o5;xqAu_)2^yeh@#2UqmTUPE;T( zl9kBHWEHY1S&ghg)+B3@b;){U1F|96h-^$YA)AuT$rfZwvb4Mv*_v!awk6w<9mtO4 zUt}k;GwDZmBfFD5$zEh{vJcsp>__$|2atc01Ia<;U~&jKj2upmAV-p;$kF6@a%WM3 z14-)QSz+4hP>NjHtD`q%y~yur-}b^*m700Pej^o=#}xNS%5=1dTuN&Jo6G}&k@g~6 zOaFRy(rz-9Muvi4gA>JvET~*aKSc)qnVsG}ft*NAA}5nm$f@KsaymJKoJpEUGwDxS zNGoY0?PLHMNCuI?WC$5bI><0GoQxnN$tW_KbdoMIhKwcSNH-ZzCXlnqMAAbhk;!BV znM$US=_EwLBtoJjM&cw*G9*iKBu@&YNJ^wkDn0@#sgnkoL3+tKWG0zK&LeZkJhG51 zBIlEf$tC16awWNnTurVa*OBYV4df>BAM#&v8@Zj_LGC2~BX^TsBTaIzfaT7)rnR0S z&dvOFyU8{hxR^WwYGiF@yK7uX&?75Ey-hL){gt>0u*KiVY|J=a%c435yo8(?P1BYo zt#l9(R$*rJk>a0dkkXY@;P;lVQ8Uvf#LbMD6;&@IHPz3hW$ul1MqQEb1s+VyiE>9z zvptB4iyPxD#afwPq)zc{H9i_Q=oq1XTxjU{`Ie+_N#im`B(*drrtT1$IWI=l&F|_( zv0s+aK|h0ryHRKq{tn9}d<6FFCl8Q^$iw6j@)&uNJWZY>&yyF(i{vHpGI@o(LEa*7 zlXuB`kT~kLphip#G)?QiG_$R0bPc_#^W` z$_k@n@#~NmbWNtFopaxa&(54h9?Lsr^NZRCrF#I|$ONIVo>mNC~}`t{J$)JuCz;Z+9%Vh6;MYXzu`MU(OW& zk@z>$b~jygFqBNZ2!{qW3mZ;+&NZcxmNjfDkA_rXx(Wy4U%NM>2>RF=?P7^H=GoTs z7JuP(0yy`Jx4-wG)+cuZ@%7JMXzvheC^d{4PK}^OQlqHR)EH_kHI5ojO`s-Hlc>qm z6ly9pjhar)pk`9DC=+F-{3#1%rEHX)3ZMe1AS##&p+YH#ucRAJMNpAc6ctT5DHjz( z#ZqyUn~J9rsM%B^<)MWSSY%x06(z0jeO_LfWRK&WZePx%MPGwC=5{s&b?g^|K^FHSlvclYo zdzgMn!wUy8_h`l%5({NBnL_3(TOR(#wZbLC-?1Qda9$7RIxElH<5S&;D-n5vS4_H0 zKh`dUG;*GlR`4^S_Wq|$E1*}#bl-LO3}Sig#q3iizoba5E7c|UsHt1V?MxtlMjVG- z%zT}S{&_>QuaGLD=2Hu(g;X)M$k!rXLM^41QOl_n)GBHmgxKh$Pw z3$>N{m)b^c_jQYRQoE@CsNK{aYA>~q+D{#z4pN7x!_*P#D0PfFPMx4mQm3fX)EVk5 zb&fhuU7#*fm#E9s73!+5czm6@LEZEbxJBKj?ofBBd(?gE0ril2L_MaSP*166R0;K* zdO^LUUQw^9H`H6|9rd32Kz*b>QJ<+V)K}^o^_}`b{iH^PZLv-koR)fm1A*gqE?93m z6}6AtN}i{4O>ss_oLUf)F9dsH!*a#QlTcv(ef%DNz_KZ|0DtL%@x^o=@Fstf2~7<* zS+m#JEU_iAzqzXX9DDz;B4}~`4d>1Dz0jmEtmu?5HjK5uKt`K3dP3PtzQ;Sy!x76} zZ@W2tb3d4$+Df92jjm4Dpli~#=-PB0x-MOhu1`0h z8`6#F#&i?9Dcy{2PPd?2(yi#$bQ`)Y-HvWgcc44cf6<-j&a@xhh3-msqr1~R=$>>h zx;Nd2?o0Qh`_lvHzv+SWAbK!8gdR!{qf5(&(Jzq1WYo?#hbUFs+^Hn9@|Rt5o4mZ08t9QTj1J65?CJ0IIz&f|_v?l<;D z_%j~Ko)_^%9U8JRsGjS&_Z=G)gb-`YuOjz4MkjW(`4flIC&!l~gOP8s+bo%;EAalX z6*wfCLdMN!{e1)uM9`6R6dg@FX%`(s$I@}Mn~tXw=-G54?V*$CWIBaTrPJti8lXWM zqG1}LQ5vIhnxILVqG_6;S(>8-TBIdfrWIPHHCm?)I)nDobLdPui_WI!((~vXI+xC) z^XUS*kS?MZ&GmII*jATYJqnRF)?Pw%GemSuxqrC91~P6ZnEor;A>}s^KwL!JR#_$Qwiv( zOy`zm#szE^V%>q>yW;H7`ti@4Z;6I^sg?yP{W3~jC$vk^)tE!6Pm`;HISIehPeq)| zYVMw$6ye%xb*5KjJ?5t&v$JoeE=;;)^*4RXOUk9CQ)pkRqh)T;p%{ZD$d{fEJ}K7@ zOMz{5JePj1_yh4heK*!Pr5b2*pUGanU?ipqcA>t#dHg7oX4`BXjmoy}R@L7yU-)Cc zKN!e_Fb*b+31=dhD8|LaFtJP=<7N^W50k{CFsTf{Kn%{$qAC`XHGCDnbXW!<~(zOxyW2%E;HAd z>&7IT}q!`x-=F^`zX%p>SDK9^kK*`7DwDu6HSFU)p!i*PS9HTPsho2W%eEg~GT zL%Fh?8Bu#u57QgTlNK(1GnvA7Hp!Xiv+1~vrm7ihVy3gV{PUr6X-^${GviWZ6CdNs zy%tdz+uV9cJ(0T1S`YXe%y)l7o8=EQ?asQl;B?Y$%Q$aa`#I+p;DhirPh503XRx`5 zIb-o%tmbV9lM9~No|qOS*98AfNJKLWL!cJc&hWUTPwpg3;i4IAp?xH=ANLVB^n@v4 zo-;3*SIleX4fBrq$b4qLFkhK(%y;Go^OGrM%9wJd5?h_E!PaDJvGv&cY(us&+lp99nOwqN3&zuaqL8P5<7*R%1&cVteN#^ zEv$_VU<278)@Sx$9c&mI&PK42Y!n;q+oHJG7&exTW8G{#o5*_DBsQ5%VN=<37GOaZ zVqq3xQ5IuymS9PiV&yzB=#g_u9+^-jv{KAvqJGMZyp_DuCKY5wXsKIWF*dWzEtprF zfey%j=N<25iX&1)EFf}nULPk|)YN`AXPNnEY;0I`SX0I#_w^W&3h*SkoPHM8+BMtp zEE%$;nHIZZp(W1b%r54Orj?%U^nXTM@joSq8Ijc~cMY+m=({>fY@H+*-J#Wx-No~P ziYPC8iuj_|fz9owgHlZ^ivw*ZGHY^kk-3F$<%h|QrQdPR=$?OG@*SpGj^$a2Rau?& zvUAu>HjB+>=dw9$E}PF5vc>E&b|t%tUCpj%|6#YX+t}^wPIec&n?1@NXHT#v*;DLk z_B?xmy~ti-FSA$JtLzQ-KKp=u#6D)9v2WQg>^JrY`-?4O%Y8}5id1%-I5&bD$&KR1aNRTJ@;!x*aAVKS$h|^OpsLU+_jclK;n)xwlOFT7^xuN57&nM1dy2f2_>AN5*pFxbfTs zZX!2{o5D@wW^pFY%vrfWE{F@}99$R|&P8yMTr}t8TwDwn$HjBAxkS#xrEuvSz(E|$ zAsotaoWO~k#L1k(X`I1ja9(Z>m*uOp&*O5qTrQ8x=L)$Zu9#cIE#{VROS$FT3Lk-0 z+!}5jx1QU;ZR9p_|8SeRE!@A{Hf}q&gWJjN;`VTRxqaMz?g)33JIV+$X((tb68A6x#R2w+;cP`#y)?Sv!{EVusZlg@j6e3lzWbud9^bl(=WJ>JEPOr zn2v>eU$&fVZ{ za<{nK+#T*NcaOWzJ>VX4kGLn?Q|=k}oO{8&;@)!axcA%#?j!ew`^tUezH>jgpIj+d z&Q<2C^ELRId@a5YwUcdZ0}~>nCew8dLMdF`z`iI&}Y@|ot-x;JHb5Pvm@Xb+z(yt z{E<2*B`NZ?cq^VnzY(js+HP~P+w~8c64VGCmXA5tIaTW*@cJLG#If0YBJbgo_%t5k zVIJX8p5RHI<$e86UgBk5;Wa*k&*JCtIeadk#~1PQ`C@)Czm#9buj04x+xYGLfBbHK z55J#3z#rld^GEq({7L=-e~rJ%-{SA`kN6V)Isbxx$-m~`@NfC|{73#1|Aqg`fAE}c$n=T^vi!-n8!FynEj`u=NH{5sFd;ujK`Fi707RAc0o_? zL3=Q3HO&tC!Pgamh&Pt6;1ROoB}a5CVlDAy^0z!Ud<0Dx?YN0w90_B)|eD-~uf$0xNI=F9?DtD1s{J zf+1uGULjM+60(IHAy>!~@`Xa7NLVN=5|#){g=NBWVTG_#SS73%HV7Mq((+BhHet80 zPuMRU5)KPTgk!=9;iPa{I4hhJE(jNeOTuO0s&HMnDclln3-^Ra!eily@JuKXo(r#p z*TNeiHEL86lpg1tlXEm@g6&`?P24wi$)HVFiZ|zM&6#BlOL1jQN*b8aFnDHohs0@# zYuygJoy%YfgNI1NBbPd-%pR7T9xF!0#;-!`rq$+>@PhpHF*leuVdu?Wyt=iD(8Sa? zO2Aj^8!dKy&@Kg9D z{1(cDa$f+sl2}!&F4hohinYWBVk5D!*hFk9HWQnREyY%1Yq6c!UhE)t6#o)CiQUB> zVo$M`*jwx)_7(ey1H`|@f#M)>usB27sEb}P zQ_K>x#kt}tHjmf8gZ?-PFyc;5I2hd zh?~W&;x=)+xI^46?h*Hi2gF0-VezPVOgt{05KoI|#B<_#@sfB&yeeMz5x61V6mN;Q z#XI6X@uB!gd?J>J&&3zwOYxQXMtm#26F-O_#ZTgA@r(FX{3d=Ee~3TDUt+0PCRUIt zN|mH`W>>5w{&GN9Q>kIQxVx_q2>Voa4VOSG0W8rx?KLH~vb`%v?`IUkZb zgdU|MFx9if0f)AN_OYhu=E?7a+e3a(dioUGC)!8gRAs4(R8^`bRhMc=HKkfoZKPHU8UIjNZmAeho8|OT|ZPtEk-?%#gp1?|3S502?sqECk`kqP=6QY(oj%ino!Lc)( zd4;N@+@ZSq1YEaufhkKbX{mc_yq-AMIWO~ytr34QDHDn_nY^ivMQNL)?6{k8=}ZOX zY;lK05n+AZ?=u_5N4o1eui;Yg_K4Kj{(t@lPVYNQF|7v`{LR7Dv_;w~{VQ#gwo5yu z|D@g09%-+%PuedXkPb6mm}Iw75sPD^K`v(h=~qIAhe;EHrjx-Q+2Zc4YL z+tOX>o^)S&AU%{GNspzc(le<?`UP-T|H_}__o%CM%AbpfRNuQ-J(pTx5^j!*w z8e*->+GA4H?oic;#_^w>ZSv39Mx|HG80d*c>fwFt>k+)54gc8)K%2M^rf!POjTs!+ zHtHbu-PYDbB+Beh$K!z8fy2!s&FO`o!fE$Vwo(*dP%+DJ>@mI=ZDNA?doiT}=lR&| z>*fwr`>aLeCx1)ursVyOlZL>e*$c#cf|8BA%)F=c<)S$#7Z!w%&svoiiG?^KUA2je z;)eKY0o|Df;9pe5+_BD?!PiWJ0}HYLsi2(sA^ntoOQlkoR6(vNSCT8sRpe@Nb-9LI zQ?4b~mg~rM<$7{`xq;kBZY(#Eo661Q7II6umE2lxBe#{?$?fG1a!2_uxs%*k_LIBF z-Q*r}Pq~-eTka$GmHWy4Bji!?XnBl0RxT|cCy$pW$P?vB z@??36JXM}1PnT!NGi9r6lLO>HIYCWp(Ba+Dk`yW|)-R*sY1a=e@%&z6&b zcCHz7>d!gHUg6g}-`n1MBC>mgRE$dX%nF(w)5F^nev#}5VrRdHl2UqS)X0bndY3p? z-HI-C{jhCFjqwBr_lT(!{2+cl*C5~;*~0(7IcJggxmaE#FP4|cOXU^vN_m~ULEb2Dk+;e_ zMe2{5P03L=1OL;ag?-$0uiRMe5k^q>;<0(jMPyO$ zgcTu|oudPqxsKa!$|I91hdu)rsIwEBh0M(88%Zax0jPqZrf;bkj(l{KD>N<-J{>jR zF)g&ZDS(^pF@Pl|&23@W$e*#T-8Uk|kcxjQDCb%#t(CS)d!>WYS?Qv5Rk|rXl%7g2 zrMJ>o>8A`({#FJlgO#DmFlD$hQW>R;RmLgfl?lp3Ws)*knXb%GW+`UHU$H1w#jXS> zfl9CvsyLJ|C0vP6B9&;xsl+L6C00Tf6nEk_ho!4zC!6jtFB zQIQoz(G*?DQ06F^N|utX%vExfTqRE_PzseIWxldNS*R2%ixoxF+M9crM~AJad$?OkfZYroX88c~{8{GS$&E8= zhNVU)+S>BP9i9MgE$R9ic~u6d(5BB++LEH5T5A-&wX#JVWz zozWz&FfGf?XjZfoNsSv3IMm)T7ysi{Iln?#sjO1gC~K9C%0J3xWsCB!vR&Ds>{NCs zyOll4K4rghP&uR=R*on~mE+0@<)m^(Ijfvg&MOy`E6P>nnsQyaq1;q%DR-2+%01=2 z@=$rCJXW44&y*77x$;7JrMy<&DDRZ_$_M46@=5uud{MqC-<0n@0zZ{s%5SAqDOW0} z71c^=6}75bO|7ohP;08S)jDcjwVqmEZJ;((8>vmy=4uPIrP@kuqqbGssqNJcYA3Y< zo)T3jLW^3+H4V8FC8oVgU7PIhVbjIg8`RzrQKqe-3j!YJG*9|P7UtD=9;4?VwA{(o zE*|&})pFCcV8L>Fr@gb+t`6Zp=FUm#5_u+cbX-E- zKR_Q~zYXW4!X?aF2a@NXx1atFFSWtBg@v1miCS=SwCM^Hi#;!Ti@E31y;yaleRgICE4P91TJ(|{nRdMSGAkkUG1UvRC}qt)jn!p zwV&Ew{aYQV4pIlJL)4+_aCL+_N*%3^QOBv{)d}ikb&5Jwou*D#XQ(FCtoo}K)vDUm z05wnzRzp>X8m5M;5o)9wrN*glb+($Mrl@Hupn@u-!YZm_Dz2866Dp~)s-ViMqH3zH zW~g)2Of^f*R_CcXYOb2E7N~`4kvd;ps1~b>)Wzx&b(y+CU8$~8SF3B(wQBvaa7V}Z zJQfXTNKB2jC(JiZNi-=&zS-8^H9Tf*)`HlBY=ewK%Rlj`?T2zA`iSS3=dTP)*ji~5 zUnjRy;{42iVt+**j(ljIq_&TX<+=kuqd-eTs}bakT$(jgotuqDnB85YE{9CCe6@UM zYuGT)kvu)Eq4}-3m>K0h8c-wm0G6jdrWXa*aaPC=m0JW71zC|hjU!@E_D$QH*vyD9 zC?+bIVnSciZ|H=~RRPN!>!VJ`ihpLOFRoWNs+-h*)Gg{(^PofO=Rxq8?XIsHfD^>KXN{dS1PtUQ{ou*VOCkE%ml~N4=}wQy-`g)n{sn`a*rF zzEWSSZ`8NyJN2XbMg6LNQ-7+z)Kaxvt)NxZDr;4=s#-Ozx>iH;wOO^=S{<#fR!^(1 zHPo7DO|@oPbFGEeMr*6J)7ontw7;}YT4$|`)>Z4Kb=P`ny|q4CU#-73K>J%8qz%z( zX1U<*$SoSopD)EZK>TIiSoO3uGi`0;>)1!eFGotz!*DIp;n`qpGHPWV%`|L#oL!20 z7mu~~H0|X>(ih0h!b8+eNk{W8+KWuvjhbnD?KSi6r~XK~0Q;GmppBF@VP7LE=nD$! z<;_Xm@0l2~#x)X|r8Y?c_(0yFJbn z^AbpBYA5}j*VXghbO|CXL*hrLuvw{GUI+~O2wWPf4bz5eBeap)C~dShMjNY**CuF_ zw8`2OZK^g+o372!W@@uElV;ZZHH&7|Y?@sQ&;qp}Em#ZDLN$jLriE)!TD0cWTw074 ztGTs!EkT>DC2AfmNlVsJv{WrkOVy);KJfi# zgQ2O#IT78MT|O0)pXe5*DCaVr-V<?GSh0{?zF*ALdR#J0s5K)td7|&a{8> zWF!ssFj2>?-5@HWg?VvQNo41+{?Nv(13A0WcX@^;Ps^_9K5hGCvzSk2e=tti$cRIk zPm<=C4#9Flgxo5+8Xsc5XC9qJE~pvZHn~Z%l&6~dhd$4%XJW#3VT$98v6s<+`#}bO zFsq_{O4jaxmtjjHYeWx7{E)td)pQ?$EA905dI!Cu{+HfK@2vajUG%PcH@&;wL+`2g z(tGQD^uBsOy}v#{|63oZ57GzgL-e8gFnzc_LLaG*(#Pmy^>O-meS$twpQKOLr|8r4 z>G}+PrantI>1N$ux9C>grrY%ZJx~wQgY^(SRCnlMdbl2;mzGEBQF^rQ)LnXv9;?Uc zZarR4&}Zw3x<^mall2rmRZr8?bwCGoNQZSqM|E5$bW*2uT4!`t2a_&4uBu`|Vn$NY z-^I0(ms=)SmIZO@BHL$IZswc7V0*QoF+f&w3+7JdMSe_lwUz-J{}9+UeAP98{*)(k*DS zy^-&5Jiz8+wNB)#vD$dX}E8&((AETs=?E z*9-JQy-1(0FVGk2#rh(BvA#rKsxQ-*>nrq?`YL_3zD8fGuhZA-8}yC(CjB3Mv%W>& zs{gBR)3@t8^qu-H{Xc!TzDM7y@6-3|2lRvbAs>Om`Vsx8eoQ~EpU_Y0r}WeM8U3t& zPCu_-&@bwj^vn7c{i=RVzpmfVZ|b-7+xi{-u6|FyuRqWq>W}ot`oo;>x!sVe@v9RI z`z+JW)DuQz&UNpCP8rqn`?{v&4$9jpc5;nF zxXAbEnyEF@Oq`bYhf{#pN` zf7QR~-}N8*PyLtvTQAki^m4s|QPHSmR5q#@RgG#!4Wp(}%cyPCG3pxijQU0cqoL8r zXlyhwni|cF=0*#nrP0c0ZL~4k8tshsMhBy#@t4ubC@t@7_!(V|Zbo;bhtbpMW%M@s z7=4X?Mt@^~@wYM17-S4Kh8RPQVa9M{gfY?>WsEk)7-Nlb#&~0bG0~W0bd5L;UCcUY zEaVru`^NUSw@{uUOW8`?IL{2zae5~E8LpdzO($^zf zxpufdai6(lrcK1nu)$V5?giEg@8&H`y#n1!-tC!-_ck4cA4D$7LDUoUS!_RhHv6Ng zxw$j!?@CjdU; zT!Zuv9AOF)Ke*Re56FGI-*YT~rWUVHHl`R;jcLYoV}>!)m}Qs@v*B-8469)?>_&hQ zXapI-Mu-t=IE*kO+=wtDjVL49a2hVd_o*3fBi=|bW*h&Htg`@an+w{t%FN7|GBYzn z*kNW)!`Q^JlQ^lx%qll!W=c}#Hf3%lwRI_FZkpfUow;-8pDWLLJR14vXr9@Xt+Tst ztTo=6U`@2HuqIiPttr-2YnnCPnqkefW?8eXIo4e3N^71q-)giLSWQ;5wa{8*Ew&S| zSWB#>)>T%k6|_QD*os(DD`v&5gq5^XR@%x~Su1Ddt%6mwN>*%jskoz01kDhxPNQtT~PH} z=4EtJCO9gNtrb7VXh*`a#N_K6XK3Yd+7WV-+}62maNFS)&iF%J-M+aEa2w$^!_5zh za0_*->)P10rR#9lv92>+XSptO4R8&1^>f`>xYE_+THuPh60Rl}_xz)dryMUhRyx`o zpF6&FeB#*6>5F4ur!c2)jt))(otiieb+Z4xaGDhE2g754E z-h@F(~S{0;sA|AIB(Kd=@ApgK@ps2)@wY5+Ba8bOVr zCQwtT8PptV0R=jFI*oCf?v(D7>V!F!I+>jir#z<|r!7voPTQPFrr36{^!))xw*50^C0Iu=ef=X=S9wr&T-B;&KsOJ zId678;(W)sq04*ccg`=JtDPIUG;?|EI6cnGDctF*(`scwTxxEDOO5{pndJ&x+I#GNz&bMC4q5Q2byIqdE9CNV~c+e7R z1+|9SKy9IRPDJcc?ey0=Yt-P#_czMM2R}3={_?K#5QilniA; zSx`2V1LZ<1p*$!bGD0TE3>8Bbs01p7KnQ|h2!T)thX{y*Xo!JWh=X`YfJ8`wWN0n7_K>pts#>p^R!^_2CJ^_umnwaR+addqsp zde3^_`pEj!`pl|ZZPwS;YU@Yq7wdQHFY8}xtrY<4g7v{hU~{k)*amD1wg)?a9l1p&FdNJ)z z2hx#r9Gy(3(j_!RGxRQ+K?PJoIdmJk2Hl75MGv4y{;Q>YcpJJ0-G?4Q&!Fd!3cY|{ zLa(6L(0iyF`Uri3K0{xj@6cc9A5;qga2>cVTo0}fH-sC(jp1f+3%DiR8g2u(h1;yZ*Zm>ISfIVPO*bDZ7ePKV?9}a*6;UG8|4uM1AFgP5JgrndX zI2KNTli)+>F7z6D20ejZM^B^Y(3|K>R7D@5chQIFTl53^53P^&#d>1>u+i8^Y%(?% zTY$B2o#VaMb(`yU*AuR_?$=%KxPEkf>Qx|b8ufd+fJcoFW^_=WE!gHjjpXXH1IiAs;MV_&q#h$sIIi69T@t*0PDW2Os z*L#AVdpxgsZt~pcNqDaIyzP0<^MU7m&nnMDo?ksbc>eU%JsL?=94252reOwVVGibD0hV9|UJb8-*TU=I z_3#FGBfJSNgEzxl;O+1Zco)1I-V5)8_rnL^gYY5vFnkm~1|Nq{z$f8yxB{-U6F3E* zhR?uf;dAhL_yT+pz64)}ufW&f>+lV@3cd;7f^Wlj;JffW_&)pqeh5E;AHz@Jr|>iQ zIjq7Oti#Q`T6ooXzV`&YdU|#7n&;KqE8Hv2tH7(&i}x~mm2q8^+TbkHN>jcGF|9I{ znF>v?2{SP!&a~BZ$aKQA%XHp!(WIGJ(?Qb?(X`gA0X^TlQoi<%Htv5Y4 zH8KA%>84iZM&?JRucj)~JyUb@AJa`!8*^84Lvwp`2lF%2ZBuu%i`m!gXKrl9&C|@| z%%jbMIlw&9>||bOo@)*?&oXy12bqVPrLU%1hDal%G13HS ziZnx-BQ21YNGqf@(gtaZv_sk>9gvPlC!{md1?h@(L%Jh9ke)~{q&LzB>5KG3?7v14 z2V?*;5E+CFMus3mkzvSiWCSu28HJ2S#vo&namaXN0x}VqgiJ=JAXAZP$aG`|G837F z%tq!QbCG#Sl)0NZ+8k$&F~^$|%)88)=Dp^9=GEpcX2L9*i_E#^1Ln=rB3_6$;)D1ieuzI3fCM5zNH7wDgd$-`I1+;x z5fH%<30aM-LDnMckqyX3WD~Ll*@kRKb|5>EJ;+{UAF>}gh#W$WAV-m7$VsFeIfb0H z6S#m}L@pthkt@hGqzbu%+(jNB&yeSchP*=FAs>)W$YTQsn^LGj??j>Xf8{{=J-oaQ~-d!o_c?c?p`-O8=6pM&2p zzj1!cLSjOckfR|NLmq_O4XF<48~QzDa_G{~xuM%bzlSD;W{1L|`$FSGw}q|>jSk%r zdMxyF=+Dq+p|zo>L!X3R4RsAW8+syie%S1=W?|jJdWSU+8xYnfEFi2fEIy3>FKh8> z7qmOt5ABaSpaaoC=wNgRIusp-jzUMHW6-haICLU98J&VoM`xn5(7EV*bOE{uU5qY4 zm!iv1N7NlPpdP3<>Vx{B{%8Oihz6m-Xc!uSMxxPZ3>u5Zp^4}UGzm>cQ_yrY1Iltx*UM@3Xd6?8Sa9^HU$Ld($2 z=vH()x(7Xo9z&0#C(&{=JM3WCp)fA&NLYE;^{~5PdYBs4B-|l_#?{c&sS-qF3G`%-sTcQii!(6i`y^a6Sby^LN#tI%8MZS)R$5512*K%byb(PyZJ>gWsfHTnj9hgPE>(NE}S z^b7h8{f_=Xf1$t8Kj>ey76q_6SUs!()(~riHO87?O|fQJbF2l{5^IIE#@b+Qv36K{ ztOM2&>x6a2x?eMwcKaK9^^Rb24BFqJI!`v|g=7D)(-k2}uhXrCmSOgY{MPad6JeGoGV>wtZX2c3G z6K2K=v0|(QTZO?Gf)N;rQ5cOe7>jY3h)I}?DcEXk4YnTJfNjJ!VP)86Y%8`6+lB4M z_F#Ll1K2_A5Ox?lYA0|EJC2>ePGaR)1y+fj!cJpnu(Q~C>=JeztHN$#x3JsT9qcZ4 z54(>&z#d|cu_xG5>>2hPQ!x$Gu@~6HfO!G#0lonN0l@*FU$!6Qhx*ZeC4Q_Q=ZE?6 zexl!gzqNkH{kHjS_1o>Y&acAnpxjqt{J6TB(j3~!FNz+2+2@YZ-6ye-}iZ;yAtJK~-2&UhER zE8Y$7j`zTO;=ORY1Ona{?}zut?Y-CW0r)_C5Iz_mf)B-q;luF}_(*&dJ{li`kHyE~ zPdKT424P>cILz&ja{BTuuIVRpaDVMf?5T&2pSwTG^lCN%%DC& znL$}WIYHS$bN*9F*B0Ol@kRJzdxN<36}A z?uYy10eB!Dga_mHRAW30562_$NIVLU#$)hUJPwb?6YxZQ1)hW_<0*I=o^CH$$i%bo zY&-|g#aH5acs_2#3vd%|#tZQxJAq={f|uZ>_$u6rgE)jEIErI9juSYEQ#g$?IE!;Q zj|;enOSp_H_-cF&z7}7Hug5pw8}UteOwh_8I*1S29wY^sgYY0QNCC1@U+SN|k$8Q&A>Ej6N;jjM(=F&$bX&Ru-I4A@ccHt|!yIQOcL*6D=N{)5wsV{uBR& z|Hl8|fAJdpA6|;0oQIDukG$0xhjfloX6Jm1w!1(6zbK@7qH;S(x-zC0f{LuL2 z@gw5L$9Ii)ig%57j~^S4#V5wg@vGwl;)!@N-Y-5VJ~uuzzH7p{_%rcO;#(%1jDHs2 zCgElL3T$-4gI3%%2;^4&6 zL?{tV%uGy9%uUQryzyVo+>53}Gom@sf@n#!B3ct|h_*yKqCL@p=ty)TIul)pu0%JY zJJEyaN%SIm6McxjL_eZG;Xn)^1`>ma!Nd?^C^3u}PK+Q%5~GOG#28{MF^(8dOduu_ zlZeU06k;kdjhIf%BxVt_i8;hvVjeM{SU@Z!77>dHd*&{&lvqYACmabU!kKU(TnRVA zoiGp{geT!ecoRN^FX2b{69GgZ5kv$NAw(z2W_8nFF(RU%- z$a(;|iQGnBAk~PDyhdIkUl1G80IiQULkFO3&=zP%v=2HSoq!HUN22pk7t|GXMx#(K zGz9fU4@ab;D^U|#f|^k)>Ky19=n?1@IMr{fyR)CSUy@yPJ;Lu;{*b`Ifx`n+P16FW z3JHD%-ezyed$acz?{(gG0x#o;cp`yFBvuefL^6>=q!MXFI*~zS5?MqxkwfGXD~UWJ zpD+>ygo!W{g+viiOjw8#qLf%gSP77T2$(<#jKB$kAPI_~35H+^j^GJ_5DAHp358fq ztRdDC>xlKl24W+zi6|pB6I+O_b^_ao?ZggZC$WpzP3$4|68nh#!~xMeV(_pb8Z!`ONZ(^jYF#@R{Zl;*;j{&bY-#@X7GW z_BrA6)@P4TmCr4oLq5-ZG@nmCcYI#@-1B+l)5N!vZ%5xTz7u_C`F8N@?&sqh?wjK4 z;_K!c;+w{2@R@uzpUfzS)Xh`HY6L7jmaitQ?eP^oNPhX)V3sBk*&!#WLvTw*`Dk`b|gEIoyjg_SF#(~ zo$NvOBzuv)$v$LXvLD%>bRY+i1Ia<;U~&jKlpID5Cr6Om^LFK($ScpQ$g9k|kasEX za^Cg4TX}c$9_BsEd!A>@dz)9C_aX07-sij)`QP(?=l#k1mscmhZhpP|M){5No8>pp zZ;-hvW~OPkE7YKP8uKn)*8BRmzi; zBPpL#TBQz2^-Ud+>X14pbyVtz)M5YSO4vq{qsY)s|NO#gedXS!^7wJv< zkiMiJ=}!ibfn*RFOoou5WEdGvMv#$Y6d6s%ka1)@nLsAm39KNK$Ye5wOeNFEbTWg? zB(unDGKb71SCV;TK4~NiNE2x$3rUQmNtQfEUL$Xkx5x+NOY#rdo$5_>OYNFEJJm1M zGu4plotlvvpPH8{roySl)Pht?sx?(kElb^;il%N#tx7$T`i6PSyknL{x2PrAB2$5mB*Gm3H~ezfrxSdq@BJPow+wKx!;CotjH6qLxwy%7+S~5~x%vjmn@h zsVpj+%AsHPl*a9krg?Ky9QpQDxL-Y713UyOr8TZKrlnJE>jNZfXy;m)b|| zrw&jDsYBFZ>Iij|Iz}C*PEaSQa;k!=q)t(%sWa4B>Kt{RxZoXKSni+t`qGU ztwpttPKur!9TYt$+CRE5IyTxE%|>TNkBhz>ZHX?4z8YN`9T6QGofR!aZ;Cz|y)}A! z^sVUK(G}4bqn}1o(a)lx=-TL!G4G>0#dMAdkNF%uFJ?x}>KNx3-whctZ!S|;sH@a9>N<6Us-kXEx2W6H9qKN1kGfAipdM0> zsK?Y3>M8Y%dQPd7M(NZG>LvAxdPmh#jp%lCXSy5RlkQFTqx;hi^ZACb0+L3mmU1(R@jrO2D>6%(E+MD*F{b+wWfDWQV>2NxN zj-})21UivkK_}5EbS9leXVW=!F1?b@qw{GaT|k>?GhIkq=u&zW4IwasAS}WoSK($M zokF^W^a|-4(kH|rq<_e;kXHpCQop9wrnX9Jlh!V6TzGZ(hwzW#O(VKQBuCbZ=nw%! z6s`CX(IaA9#OR0#5#u8o8UrKTBW6c9MR-I6M|ehLL=;AV5t|~Uh!YVHBOXP(jCdU} z1{w=ZfTlvzp;^#;XaTecS`00OmO}=}8#-5dvGh{u<Lgw^ey@h zeV4vR-=`nY59vqrWBLjGlzvXDv_|Xn3;HGfihgS+@Q!{@SJNNqPxNQ{EB%fBN&lw* z(0}O~x|XiX)MFYjO_^p)bEY-ZhH1;RXF4#Qn9fWWrYqBp>B013dNVV_?uFGizKQ)3 zTNC>&_E&6!xJGde<66XZi0d5JC9Z2+pSZzs{o{tjjfoo{ZU~PJU!Lrm?2$YwIi$Fw zt6~(5gz=cMY2Yiu3)*!b4?$@tay z-q@m`Wx;3TUt@>Jwgo=mgo2(0!wNbVj44=Du<XAhp1|z^5RoAgCa^Ah%#;L3}}E z!E&$tJ|zXF0<7S6!n%Sj1(yp3L|!a7T3{#et`F0f>BsbE9GC&jKxPm#m>J3pV@5C| znbFKxW*jq~nZQhBrZ7{PY0PwHCNqnf&CFruGV_@E%mQX1vxr&DEMb;1%b4YiBjdz4 zGcJrfV_-ZPFUE)QWBi#wCX@+dBA7@fiiu%jnK&k%NnjG06-*LSQ=81BF&RuIlf`5+ zIm}8XkI83@OaWtJ%uFFu%vhKbrj%L5fDFta49XA;#n24Ha174~jL1k#MZv~`{;?Bd zC&$i>T@dRXdxNcFZ?d=9`|JaDZ|tnV%GfWZXt;|)gdYn(8-6tCOB3-Aa0u^ed@H@}T6n6`hkJk`5=$2$>!-H)K)B;*hCXv$7UsEza`I^2>6| z^2rLx^2`d#O3aGP%FZgvT9w6TZOYo4btCY4pq;>bnNgTE%vxqWvw_*jY+}lo&CC{N z8?%Gi#q4JGGW(eW%t7W5bC@~89A%C%$C(q%Nv52sU@DnY%xUHfbCx;BoM$dD7nw`U zW#$TVmAS@TXKpZ6%uVJNbDO!t+-2@D_n8OGL*^0ln0dlHWu7t58I{rO1a#&FV`HkB z56nmA6Z4t*%KTt{GQXJL%pc}2Q^WjYY8im7!`5Z%vGv&oY(usY+n8;_Hf5W!&Dj=g zOLkh2e~?d5WYFv&@1W42tw9ZgTLk+DZw{7%F9qKSZWv-T<{OE)?{R-Gu zwgcOd?ZkFwyRco^Zftk92iueF#r9_VuzlHnY=72)9l#D`2eE_MA?#3g7(1LD!H#4{ zv7^~B>{xajJD#1uPGl#sli4ZkRCXFWot?qXWM{Fn**WZ7b{;#QUBE767qN@kCG1jm z8M~adYjChmtTXGvy0UJpJ8NJ)SWniA^=5roU)GQHX9L(kHi!*o?M-^vFgBcxU?bTm zHkyrLW7#-1o=spwGQu8O97S1Ith{R%h(W*q?DcV@lerG{>~1X^YZ)(~{G& z(#&aI`N8>t`HNOX<)`K+<(rlg20CM~3uTt$K;L?R?gk|aY?Bu@&Y zNUkH-lUvCx$cN+;@+tX@R7stDLB1kw)0}OGrNV|%5Gz~vpd+G>@IdUyNBJ&?qm0}2iSw`A@(qPggwe0V~?{Z*pqBITftVc zr`Xf%8TKrDjy=y_U@x+l*vsq{_8NPgy~W;P@3IfsN9<$v8T*`7S&h~01YWQ&+1KnF z_AUF4ea}|2AJ~uVC-yV@h5gEYW52UM*q`h#_BZ>7{ma&{|JYg<;OcO7xq4iEt^wDO zYs9@K-;&kj2l5N~mHbBjAb*j6$r`fOE)iFkYDhJrnov!t7F0{B71fq%N42LqP#vkx zR5z*z)syN)^`(YTL#e^kFlsb4h8jmrpe9n2sA<#;Y9=*@8c)rm=2Hu(#ndv&k#eG3 zDL2ZU@}N8^FUp(pr2?ox%AX3RLZ~n*oQj|#sVFL%ilJhuI4Y4!qLQf;Y6|r#<6XuD z`gYd)EG_G8R>SOt{`Io!X7|i)|6gyFkBzw|TvM(Y*PLs~wc^@vZMk+_d#(f5k?X{D z=DKiQxo%u{t_RnX>&5lv`fz=@eq4Xffg8XLfLq8d;udrErxM&!ZW*_nbL5;j zXU>Il<=i+A&Xe=vyg47vm-FNN?JY6_xgai>3*o}J2rh-o0J8y^e3s$QirAWmix+slw0&uZ(oU!CPTQ4sDy=f@PTG|;EzOqpGEGl=oAxTLUizoBziG8; ztGcS!G?-XXn9x}Cr$kb^m%6F8BRIGIzp)!Z6xEw_$a&u!#3ahtg< z+*WQIx1HO;?c{cGySY8wUTz<^pF6-E+=ox zhI}KwG2eu5$~WVi^DX$6d@H^+--d6?x8vLM9r%uXC%!Y^h40FD9$MWO&@%#jSB0q_*sh!ME;ivM` z`04x%ekMPQpUuzV=koLT`TPQYA-{-U%rD`W^2_+;yd&?#JM%8QEAPg;^9J67_vF2J zZ@!cTS%^hglI2-}m05*d!>(mFup8Os#qPy%#RsJ!7{?q)iT4f$TH3{+A`QO(K6Fwvh=mAwB%WG zEJ2nPmSvU%i`C+03AN-}!YtmFa0_ACX(_W*S?mP9`0&2GAMeix@PT{~AIyjFp?nx0 z&PVW(d=wwe$MCUyGH>Qfd5DL3lBal%-^g#~xA0r}ZTxnA2fvfw!|&zy@%#D1{89cm ze}X^BpW;vRXZdsddHw=_k-x%U<*)JA`6~Vvf1AI<-{tS~5BP`tBRhe|{1g5euksqN z^Dp>Uyp4a&zv18U)%-{P6aSh2!hhwz@!$C${7?Qj|Cg`f|M9gvAk-1+3iX8sLPO!K zrNmNX*=}JhX3JK~3(Gdke#>6VCCg3Aamx)$x#gneq2-O`nWfs&v7}weKTFe+ZY6z6 zCYMYrnUFsxe_sCl{MM%5*)`dXbL!>P&*_lUG-qf|tDJ>7lX8aSbjcZ!GdibtjzdoW zoUu7Ga(d=?<@n^x&q>Q!mgAojl#`H?lM|AYoRgG;=4{N_lyfL&TaJ`dmQ$3oB}dFz zo3k}%U(Su3ik!X6yvTW(^CqWx?!TPBIjwR#<~GZ<6ZqOlXd*NfnhDK?7D7v* zwa`XrE3_9n2pxq^LT90i&{gOrbQgLEJ%!#vAEB?%UvLlx2m^&d!eC*DFjN>O3>QWS zqlD4ISYeznUYHxVTLeMm?bO_mIzCQWrCyNEVv48fQJOwYoTksKT zYJCMi!Cwdv0)-$USO^h9g)kvph!7%$C?Q&i5n_cnAznxj5``5)l8`K<2&qDvkS=5h znL?J3E#wHja);y&$eolsJ9k#@zk)iZx~BT3cLnoG`k4Bf`k98CMw$khhMFdsrkci@ z#+hcA=9w0omYSSQKBhoZlqs*IsHCLiUdhvvfKn-6$={T}Gk;h9p8VY0#o<`4lq=@S zxodOxw7>|gzzMt{2%;bfvY-g7g*C!j zVV$sE*dS~aHVI|IW?_r4RoEtM7j_6cg%Ar;ev2cxFlQ_t_W9!Yr=KmhEOHk6mAK(g*(Ds;hu0` zcpy9!La<-U!cYvtFl;Th4%>ol$97;lvHjRS>Ngx&z&X9zai^tI##*A#@gc2mOG4LK^f7`UB}u6SxLy5BGq3 z!NcGYa6fn?JO!QwPlm_C)8WzZVt6(@2X=v7;U(}2I33P~6X8_22u5HMMqv?_;Y`p3 zt^$id79>F-{7&hU(g&rFO6>%`KN21bPlTt!GvT?Q3Ywq`FNBxEE5Rnb7TySNg?GYx zp<4JLd=x$jpM@{NSK*uRUHBpV6n+W6g+Ibyp+@*8)Cz!DN31K>6YGl&#D-!cv9Z`h zY$`Srn~N>PmSQWhwb({%E4CBciyg#{Vkfb)*hTCr*3@ zYJk;^c};(zKhO=CI!t4x71NR#!VG6dF*6vWVpfWjV#T7AD5c6O1yugY&6F0(Vfq+- zoW4p|(I+#W(J;OPKabBKVu*_bLd+mz$$Zfy7Kz28MJy5fWm`p9L`6)*MN*_hUKB)G zRK(Td8gZ?-PTU}F6gP=w;%0HHxLw>K?h<#4d&IrsK5@TzKs+cO5s!+;#N*;=@r-y@ zJSSchFNt;nKc!<+k+@h~A}$q|iOWSt(Mfa`T|`&W zO>`FxqKD`ydWqhmkLWAj-}Art#zHHhozP3@Cmfeg$W!x7vPCYDtuij( zAtYImAIgv9$MQ4zsjSMcL_)RI!j%ou2MItyVOJKDfNQ zsx(cSF3pf;O0%Td(i~}=I$oWiPE;qUlhrBeRCSsp=y{K zu12VlYLptS#;CDsoEontsEO(dHAziYQ`A&7O-)xb)J!!?%~o^NTy>?Ir{=3hwLmqg zX0=c)Qj1lKTB4S!t5mBBs*nn+h>EJ1YA5h(t~5`YFD;N3N{gh$(h_N@v`ktqIZ95F zv*aSVN^X+7WRN^0PsvO2mV6{%$xrf^0;E7GND7uhq);hL3YQ|JNGVE+mSUt>DNc%) z5~M_Fg_I;EODR&SlqRK18B(T{C1p!FQm(X8%9HXXqf}rgV3N#Ip;ROlOBSg_DwS4A zRtc0K36>BEl`sjH2#J&^iIy0Nl{kr)1WA-6NtP68wX{ZBE8!}kk}9RrDxQVKWdR#rBo>a@#3bj%_rJh#LsAtu4>Us5odQrWkURJNDSJi9kb@hf?rQTF; zskhZT>Rt7odS88@K2#s6kJTsYQ}vnpTvb&~)zug3OZAm%Q(voZ)VJz8^}SlHe)x~T z?{(68X@j&;+9Z`po24z%R%x5GUD_e-ly*tGr9IMKX`i%TIv^dC4oQclBhpdnm~>n^ zA)S=Ur3$H1IwhT!&PZpabJBU~f^<>3Bwd!SNLQt6(sk*ER3+V%Zb`SLJJMb0o^)S& zAU%{GNspx`(o^Y~^xRHBl{870UPv#cSCUP7ExnQ6O7EoiQnmC!`Y3&pK1*MuuhKW^ zyYxf)DgBauOMj%lQjPRas+9n_j$Bv%sD4sEt6$Ww>NoYf`a}Jx{!)Ldf7HKfjcOOQ zRspS!R#&U1)z=zm4YfvEW37qSRBNU+*IH;TwN_edt&P@JYp1o>I%plWPFiQJi`G@^ zrghhPXg#%FT5qk7)>rGN_17G<0op)qkTzHwq7BuCX~VS<+DL7bHd-5_jn&3!ZI(7$o1@Lu=4tb_1=>Pwk+xV{qAk^yY0EV`fj{-+`f>xg zq1;GrEH{yx%FX2Fatpbo+)8dOw~^b*?d0}y2f3r%N$xCnk-N&>=mb_ecmR)5x*WY zQR%F7Rk|tNl^#k@rI*r2>8JEp9FzgdKxL3JSQ(-WRfa1glu^oPWt+BL+oA2$c4@n{ zJ=$JvpSE8+pdHi>X@|8V+EMM8c3eB5oz%*;3awH*rJdH!XlJ!^+Ij7Qc2T>eUDmE> zSG8-}b?t^$rQOtSX}7gI+Fk9Qc3*p-J=7j)kF_V-Q|+1dTvIho)3q1cOYN0r(_U+D zw71$j?Y&m5eb7E?pR~`~7wxO|P5Z9>(0*#awBOnv?XOm&{nKhSK(C|M)$8f?^#*!F zy^-EnZ=%}?)QnNaD&v&#$^>PSGDVrD%v5G6vz0l@TxGtpKv}3PQWh&ql%>itWx3+0 zI4Q1*o8qn*6c5Ey@lw1MAH`SkQ~Z?xB~S@cf|U>@R0&hUl?WwLiBh7K7$sJTQ{t5b zB~e+SBq_;Ciju0NDd|dvl4&Q9rDQ8PO0Kd}$x{jxlL9HQf+(nhDY!x?q(UjQ!YHgF zDv}~AYm~LhI%U1GK^gWd>lgLw)vr&#n(EE;=6VagrQS+!t+&zJ>h1LQdI!Cu-bwGQ zchS4*-SqBy551?}OYg1s(fjKC^!~boK0qI+57GzgL-e8gFnzc_LLaG*(nsrK^s)Ll zeY`$FpQumLC+k!6srod1x;{gnsn619>vQzE`aFHUzCd57FVYw5OZ27sGJU!3s5|M- zx{L0ryXo$_LHE!-buZmp_tAZIKiyvs&;#`#Jy;LXL-jB{T#wKr|0D3P`R^9LTmEkK zyUp)*zuW)r{JYoh-oN|&?)SU@?}5Ju{T}?ggRP^jldZF@i><4zo2|R8hpnfrm#w$0 zkFBq*pRK>m!8X7)&^E|6*fzvA)HcjE+&02C(l*LA+BU{E);7*I-ZsHD(Kg98**3*C z)i%vG-8REE(>BXC+cw8G*H%+I&oj`?IzCusZll2rm zRZr8?^$a~z&(gE?96eWGspskWx=}CCO}bex)Qj|D-J+N1rTQw}s)IVD!#bj)I;P_~ zp_4kL(>kNGI;Zoxpo_Ys%etbk*4OB3^>zAseS^MH-=vr6oAoXFR(+ekUEiVa)OYE- z^*#DteV@KxKcFAf59x>XBl=POn0{P8p`X;t^$NXGKc%16&)5mn*4EViXKR7iYu>B@ zfc5KgfqFnNP!|{u0KkSdb%8O!SU_KMd1F0bG>`~10M?hSEo%srm2E6LQU(Cq%C?l% z1?Jh0-Bq@utO2mEY>$2K;WBT){r`;90tg4116e?-{fISXZGa7Bjet#Mt$@vCb%14c zwwLt)cH2Ky)VaE*8L-a&&8>FZX}7(0+i$l6b~|XdL-wO)^!~T54$!%;wx$j+t?yR* zJ3jho)xQHZ=TBd{cH#P+%4>IzRaO1jz2?BX%lGzQI$sAEGN$s@$D=zgojCpRc*T|5 z=K>vgapvO1GdBTX?cM5YkFW2$-Vium_2BORJHz3s zIsou%`Mtk~ERTHdZ#%kUpMJu=lu`5T?8oCf%CDZjj`{BjtXO&ZaivyS`t%_CqVi_> zmsfgaRXO`9tKdfE1J1ZQ{<80%!_a&==TcPF_VRgW1ajZ9UaUt4IVe^&gc z_)zh&;%mj{io9cJ^{t zm#?WfQ4Ij$H$IeSzSU2^I{mcbk7C$9`!WFd{&@T2PQ{}N*E4G?s=lnNs9t^Pj_ch$ z7j1hk@4J5P{DFH{&RyPid*6Z0yP3z=ukSy;s%lGleZZp>0A8K5`%_``y_Z!0@ae+q zYwHdjIs1Q-eov&W1Pz(`<}JyQG^ zHO2ws?Q@!FpV?$!3NRIz222NL*v~%;m~Ef&Tzk}*4=ex{0*mZdumo5NEVEyQBj5x$ z11^9o;AW2?_Hq%xUYrPc13rK+;0O2v0f1dn${wFWfKVXJ9$O*+d-50%4a5MkKpYSc zB-mrr3Lptc22$)XCk?R6Mgw*+RlqK?2iPTN-qw=|w9ojo|cGy#|XWz5+b_2(OW5A-mTY;m%kAFY^*&jIpfByabrvR&g?SSdu zI$%9e`0vEelRx2q$Uo{I_pfED`v|HIx}z&Dk3>%%8Pin~i`3&A@a+}$mnHfh{F zY11ZY+#6}?&=z-h9h|`j9c&ofbq0sQ+w<)dItt8v-+S--pZoh}pD9p&NawKjv)1#h zXYIYP95m^1LYxRE#z}BeoD3(&DR3vtTj17~Z!F(Z-WoR#a+SNwz2*M$!{yoKIpqcA zMdc;s)5~X<&o5tGzO;OK`O5Ou~bwX@Q2!(FrM3L~ZRbp}I*jnh=n&{Zt=-4{w*y`xms_58i=-3+Q*cj9bd~D+? zv9U3+b)neSF|qX^RR4CdC@2<-Qnrgl$6_E9g2etNT6s3%Ul~hVDW?LO((GpvTZ7=mE43+7BIq?m!2i7tl-S8T1Z%10m2^=o0iAnh%|W z7RME$u0s!@=g?c|DRdHA25p6QL3P`#sEF;k&~gyN1^7aI5!eT9@dCUMpM8iJh>-5(IxDO@}cpMt016?iG0k0;^Pco|-f7vm*(CZ2((;Hh{OUI}(k zO?(jV!$co%*x<|=zJV=CQu8(b$Aj0tUv5hf3x`GZUD=!2=1a zj*OXIWgJ?KB@%Tpx1bC(jc%x7skR;+Uu~FRoPwzP_4k1<6dV0&Ca9u+4_b*5pk<98 zqPC#hCqV6ExB&jz$2RWDhj=w#gWy0x7=Bl-BerpDV{`)a8k5kpOEn%3<-iQ6e+~W9 zqv|&?cWYg*b_YUj!^%;iD*Y>VIu!SDRZC2S5);w9_U+q42?+_%{&TT0P{n`M@KAen zd(6PWP;7&kuBg;F7}K*??>>EF;BI9-Dt^?j`3wkkIgW@z$B)2{Ld(XE9V>^%jhm>3 z2KY8*y{JM;y@`A zRtDv3bWh-T2Bw-E|-)0T84pi)~AQGrcD0nj1l{7pU2FE6Y znu7`I5f;7x?9ga!!Ur`B3hY}E9tU==w4ypufQlp^?BS&lp#pVAS76RafIXxBggQiQ zB`)*^=rj@FK_7q&lK?i10qF1*Hi~-fDlo4tz&`w+P_OGRxYrnRbYO{vfEB8OkK1{LYOdS876{>?yp?Ta?DaF53>$h53Rt=hgM=%VOC=fWAZUaF~=|km_keu1{lpT z#h4Pz4yY6}6%&o~U#rt;nCX}qn3%r3y7cLN5!2eS|3!>j~*Y(M4z z<{)M<^ex7ZSp)XPAzkN2D_laz>0%Xa* zV>TiF+u3CNwG`eLv&pu~Y?2B7#WWy;i@^5^@T~+W=K`Rdiz_~ZeyMhN?f>B|(SAWx zWjzQgqLUTM>UE&QMr*GRb=Q5M#YPp`hoHuaR$5Pi*7~fX68RZa8gD9Uj?17PipJn# zC?ReWsKi!*x+Woh1Hf#4!U0fA#R3I1%5@fkx(J<6FQHDtH<-=|(R!&}{2fq>?Skfl z`~~_IsIdvSihe}9xH+J9+Y2fc3W^Glu3=ouxK?q|{Pqeuj7LCqGBR!fsHUEPYN{O6 zWI#`ii;aWh_JFEx_wVYu)1c}>UY`P0%|%e#bVD6LUqY{j&Y{nvFQ7L=m(dr|pdAIe zOqIHQw71g@bawuXY?U=~2KMiZYX5g?Q`zi_zUX5Cw#;c$xp zenvUm`_FJV`$rCU_A?xg{TCdL^9c_37g=}X=Q*6{!TT>}-4WX^F@M|ltc=g@pN&uB z-zq+%UB_sA+Ck^>DNq0^HHJ@Dg)8Frf7BQ%G)sJ7>LgCvM*>1uFuEk ztZTEs7@sq?jk)yO`0Nf8upWPk&FD{5;%7H-0{`Df1N*;lVCyn;c_}S)Te*b`gA~j@(9L{5HQ=#^;~Cca`yJ{+q?;ul#5csOu{0&rkQbepMwu)#GXdBK)s< zTqpmBdR)=?T=Ez3`R5)N7j)@XgPrzw>v3&!D!vq-U+8fGRdVYWRY~HB9UtP;1k}f< z2B`y%-E^Q#Mm@w)4ZU(z#^;TS`25GkydusGR6Q>g8`lmP`r_k)5FE!x^@~eEiBWcx z8I@nr?~3Yz32{+{uoP&H0#yGv7D|G0pe(34&_VP$^f1%{2#Z<-P<4d^jlL=Q)80F~+{pdfCBs-SqNZO|apW%OW_4Mjuk20dgnY9G`Og+m>LYN8H7 zO;Jan=BQ}TxHhUTY6NNwDylD%P-j8UmVwfuEY+xW#-g4BEtQOV39y!l(xKi$X{h%=&lI7~166V^6fc?x zF|h({3A%faD&2HYw{AU#3_}lth7AMO@=?$@bku-_1`i#gV+CjdBoF|#TLLN2QR@{N zJO;>s0k$h#)E0{S;0UcSU`9=tpD=`CCaS9vv{fq1nZTb((POFURV%HZSh}IY_ZcIs zdLrhJohxAYwEY(hpHS5CS>g9A_~`dsy&-D%Tmyl_eKGtET*vCw^N=MVQ_qDGnr;Sm zPpG2XwGMN&+Q!fNJnK)X)qXO>$HiB;IoJH+=BzYDHJ=asTz__Qk}8~>xD*Uzl4y=y{TDfw^(P+*7idEcfOdbU z96R@ek7WE8G@dWy*tOTT{Z)?L{-qrIt5#kapEv)>u@ycNG!}zx9!JGi=GYZ+a9lNP zzqsnyn%ElHI#>!e+H?DTj%8x|$E9G|SQeItodZR^!&R{hpnPmJ$D)7>5sR(Nu`$?a zj>TbL+w2G+Taq(Yh6>q-C1vge`71#cU zvf#LoedT6P~|cmGN1({XY(s{|SdmT-^T)hsuh$esTTdQ18(1;^Y1&94eny5Pt2n zRz}UOf2x~`>gI!jP>8CmZVsS7C{92e_D`{;C6@Km6^-j_}cs zuJaSXaTWDrp8-CnsDf~=qH`a0VMkr!S1UTx;Fu-g#kvig<#&M->x1k4!AHgV3DEnZ z`1k^JYoiLn>x#~7)CC@OsUuNHLH%*!>coF*F!XmLSLjcVg+kGxP)t-J@Kz3mewexX zmlcBOL@1{HM}6QIbpQ>-0Wb*~l?I~9K*KRuT6HRVG@2MAxC)6SxQ&=pbb1CDod2v^ zP-RffuWPkO^J{m7!0hKowE(C6b%v_RJoJ1t>0eL`exnk6ZN&7&+Nx-4f;rC`rA-H+ z2Mxk5-}Z}EP;*6{4jlo12Ry!_;_8g~_{1!VNdyn5siKwDFY80a1 zEll+1Yl0eXV7moTZQ!@6KvWU<59tA59vRFTB!ZrL_unX)zvi+^L^^@~Cyzz*Sk$*4 zoptwty`2Si^slq-(fOJvB9UyGPz>xt`y`@L`fe`nUcH?9w^FRmZ1KW-RqBQzX00yh#j3O5=z z1~(Qr4mTbrNSJ_|h?|5X;D|U9?o+ewspU_fR$$hPpMQS&vY?=_uypFwY2fTxaQGis zvuDo%Ywp~6V9f_>0ay#ciiZ2*#Y>hfUAk=9aj78~A3l2Y7_6HAIkhb6IQcUJiSCig-O=lBy+A)3ln~v$H9eclaO#c|4|LLi~sG9rb zsldN-?ERgl0{_BM`UN%j-<#u50=Hyp#T17G@MTFwgjU99z4mD69XtfM`2TzB|N6O4 zE~p&&?>uuL0U|_1h!~L|QbdNx5e1?|REQeUAX-F+q#|jE9!WHXTq~!41AeT1;)WK@O!vXT-~@j$UuaP;1k$LyEuHstVvY&u8LGc8p4g>0mvYP zg>aCna5cC(Tm!BN*Me)qb>O;iJ-7x^3t0>JTN&~SYK8C38X}F5#z+&SDbfsyf#Q(_qz%#*!6WUE_DBb$Bhm@!jC4T~k*|=h2#jZp4Ud7x!sFoa@C0}wJP9ViM3@AVVG2xzX)qm5 zf|Fqe%!E^57R-h@Fc;>*d{_VrVG%5bC9o8h!E#suD`6F^hBdGj*1@T88mx!Y;SAUS z8(|Zi37cUHY=v#G9d^J@*af>`5A20~upiEX18@)y!C^QXj=(u^E}RGF!v%05Tm*v% z^Uj6m!Smq-@IrVIyck{rFNK%E%i$I9N_Z8#8eRjhh1bFB;SKOccoY0JycymCZ-uwP z+u`@8A>gN%$0e8a@Mm51)m9 zfX~6_;S2CZ_!4{>z5-u`%aCjEb@&E+6TSuChVQ_4;d}6X_(%9B_yPP7egr>;pTJMy zXYh0Q1^hGo60QpUe!@38-&;A+8=d5h&hGwxTDL0nVO}>nr~COS-F=u3)4AVb4q?Ds z@%^@sgZj75%c%qX_QV|WpU%uFL!zhV{8c}v)-PvpGzI5+wFD<{w5>RU1BJ)n>);#U zTi~1E+u(cPJL3o7C*b4oUGW|8eegr@t?)1&kMD~g4)()PKfkS@t+1`At+=hEt+cJI zt-P(Gt+K7Et-7tIt+uVMZED-Jw)(c|ZBfu{KR;d&FN_z(i{mBn(s)_CJYErB9ZHQ) zi`U1e$7jSF;*Ig9_{?~76rZwY^e97S_P{`M!S}PkM=tot>#?r~3YwnPIR03Vc<`$x z1p0L^L%MYbCzEzZL9Re6xHVi4TF`xA_eI?ocVE&y1{&8Rp~s{i4SQfAOpo3@nu0&0 zeGhVv@!#nF;v@UrR5^vW$OSgx5ZlNPUYuKTj``w@;ocNfScmOJnZ$9VXGwjSXPBszYV520I)YR|18Eh- z)>NV))$q=|(*D@K*Hzmm3Zk>=`Ih_v)G368gsaKxT)XohXF`OhjCtC=`Q0rYyxE?v zGlr2>cROv7OvAQHyk$ZpSp;T$`0qOo06+oNzEdcA@u zVY+yic-w_ARgtp)TNVgMG8+vWwMLFP1!ky-9GuZIlc2Ou}1YCRM@j zs3lsSm((CMramIjiGzr9iRr{Sl*iO+Np+aJQ#P@#vrd`=;EIY(vWcqoYE|l<^c?d} z^FT|$y4G{igY}xckG-e8(!jcK$D}2ZJ9&is*phJ8KH@!gJt0#+z;N5W!&9F1O=N#@ z18}F;5khm~&Cr#k@r=Wacif+No%oaaLjDOsec=gVKM8pI;bGII(lv6ECN*`UA=UGQbOr; zQJl52vJ7!5H_2~neJXsb%u@41uVAb5#$$fsDmp0f zHFM|lTMI;joq~%Zq2#2DDt{{c80+Q-Ug*W^05M|qD#{bfH$Zb(|oj>z}P!Q0Q~DPit@ zRTH&c?KF%vi&)_3Px}sDUZ`n!L&TJGG`CgWjndlF22OVo?BJl$BIXQMSD{PzK-^z7 zM_*tVV_xcf7uX(7&0Zlo?446mjfSBur_jp)qC_0^^Z-jT~*vwJp})&{Od(XN%GW`X-^23$%$;YRHGQm zekL_2Lg^&A+qR!{i!vs;oYSsofuxOUkg8{f+q}a(!Ft%f#dFl_4Dv$#vQOrnEND%0 z6>mFR5aUCq|PW2gPa9=KsCKxr-XioelKEgmK>AjPRHYML&?Lb4AHwh332 zy(IJ_wIfMLHgaEzh_aYoC%FpaXv$meI>BqfbD>_;QqfUq*RRljmEJH@mua@wG%a;y zhnj&4L{8<3@(o3nVtQ$VX_>P|kY`iZQ?1-~ycXJgtuMVieT2P_2MWIplZpw18l+oP z8|`h$>iG;w5AS!uN9e6do*=l{T0?nNUcm zMI1{VM;lD*niAp71qaG6mgg!{GTfQ7!VAKt?EC^Q;n4I21RHTRu^Fi`X&hNio=w?8 zDF+wT-K5r|fw!Min--#zljkMdnKTxMmB+fxxyyOQ$>e&u)3{%AoAN09iGmX0IpJc_ z00~+;Li$3g0V%meeni1jchV>{U9~f{-3rZRtt@G%#Z?Mq z$&0z2MH@*gNI7Ikc8JDhY-6rrDR`5Fb47#X>8h$)d+Nagm%b6W`&MJlmB98(-rd1! zdDDx=G&QU;&@6nZLqk5w4v;0na`4B zO|W+@V#`-f?`LgB4U_v&z}wHg%6chWCB7q0lx?3_# z0V~9JYH_-qh94udS&;vlRZn^$o9Pj-$NOU)wLMeGShidw&6y$5rVTbXu~%`m%08T{ z%|Dp6EWb7BEu}x3Dzl~b(oZb-wxDy-ZOnkTpTrO%_(&*I!Hj%A#`5 z&!H3)Ppwb>fvTh-te~i$a)li#xsY_6Dv!o~UJ0uk`wHg~5hW-WcGrAkK4KnjpX4~@ zeCTfN$@h&8>O=Y28M$5ay5&zOP!}91o>A}(IGk}5c^I{bS6g^SHcVYZD@t$YI9A{- zJVR~9+{HSn;h4X2Ot(20v(w&^slg|Chl%glc}EDH~Zhb{%#-c5}9m8|Gf)rt+LZpYWnE zA~K0$q&209Qlr!%no{Xc6 z1Xf?}etx-FAWM>s)NInH8$_1P;KKRM1#v~)l3pa2NALH{e<-Y_C{{g8qd812z2{Eo zYAHRiHg5pCFY!8YBQb^^mvWhPpS71q5Ofu-kxY<20#^=ZYMyF(7`7N%o4DpX<{tK& z?$w@U{$-*5;pN~GzV7*#3t~#P5_S_X6a(V{qXxUVVGx_(t{&c>Co0yI;H}?`W=NmO z8_PwiDq6k1wc(<1r!C3#gi#iBhUSEe!bifb@(T+nCCrkLq_zd;-d3E*y~J-WTqtQM z&6hnlO|nd~4R%y_uZW0quIKP_muALL&I=cchKoyuiD9qh8|#YjkHtoNP0zT%dBRxo z2r8dCpM_>OW?$yC6OIwC5jT+clpj)$(lpVWma%n&G<(_+iPN&udch9fe!+Oh5~s!8 z!qd;Q$gd3_kNljInQzKpSy)i$ow92BB#MvTSJyjDPWGGWj`i;2wuwn(#uD~2QMt5C znxZ(b&oks2YMYbHSIs51IQvL@OjghEfMP*@-0Zs~1LY|72DKV#8T}E1$Q-24W{KIY zs5kk~`D~F_G(@ybRE8WA-jgf z_r3G)52ogz@-^VH`IaU1r+r5%VdM%9I-siTRs{55$>W;b^k=SRz~ybJO^k=OdMGX^Qwg!>T~R9uoYdB1R;=#GS-x~^eq zSEfERJ+>^fZnF<^9dI4Vni6Ie-Ap>j7|dHKDVDmF8&!P_2g7Yiw@q+z3!a2;k@D3q z49zWC=L>h!z^MH7Qx93$hBp?nb)T;cshfY_TxjX-y`D1Elt_3+n991w+aVk%eJZ=B zR%Mxj1Hy!Y=Y=PxHc_@q?Ua7klk8g^K@moikC3zJKeHNhdvM*{hP+-p6>kIYnV_C% zp0t%rtE1@q8~U3vT>adcZew6q_)^%P^E_u-p=k=b^!AMXlw{EhVoc~nD)LVjZPh-bZQ(5tPs)3k zH?lC3tYUOz(%B{4cbYs$OT+faja*jgmef|nU8=P@*zm5HK(0&c#YkqXVDj08yb=jp z7O%A$uX-Ow8s?YfPb$J^_Rm~KS;TFfoWZQmuTM%LuK-;47`UvUE}h0;Fp|NA;V;?Q zobCK6!bEYJY=nHf{Hpv1<2j8^J6)qo{WgutJ7+MN$60AsiuJ55%??vUK8635zjhd# zJvve+7n5Hnzu9DCabhVv?c9`Or0*#;X=p}m_F};-aja&&>9*yC3+toi`wOqJV`dJa zmhjf|W@yZMk!hFtmi3hCfqrEeBNr%Nliik{it+51Gk)^yXN@a}P0dWwu@Ca4l88Db zGAzGADVcUqTB~p@bAG;`Jc;lld8)s5HY3#{nouNEY?z95m<-8OzT#@`&0>x^LKw)d z%e$Y4rk;$1T;?oYwGChN|aDisKv(xw%#6}|EIjm(l{MX-@>unyL;-Q zS!Lw4R(WozGb~9=#;vUF z#XX5_DdVZfs28a?ZWnQZ#3>uBCaA~iSL+|9(+tBLT|D>wOC$TN2MQEv^}&7jgG36c z5?ls!B6EcQQC24^nc9x#Wd^u5-a7s`p;@?Gm@he_I;vi0SY<58JZC;)H#rx&mIt?l zw?&-!+>(o>HI#jAQ%Qr_t9Sv~IaRNWYNlK#c>7ZZ%swn@V(CZCHawgr<;`?I^_IE@ z^7iwDhSAo6`7-%W;Nsu9c89S`_RmBmubHxs8m+sLAveo|^sqT{mHVA&zu}bm2TzBh zXN5C-53>?y?53%C5eZwT5@NmH03C32^qtk!EMYp3Qd6P zE|zGeT1{_#J1faO%{|q_&Ylyw6UoSFSv<0M6>+&(s*3dpd`kbld=#6iSW;^7CHw0T zb(E#NQQTUxJhRyy6UqwxtZBld3pcC3BPjHR({Ypmw2Y+nj0FO%uz8x68M0lmwXi=a z4oJAJW&{J#Kpx5vanrfgdHZDT2!s5gDXijj8>;jjX*VOuxHuC}S!k-~&$1Fp)tF=S z2d($)Tl3E3P0HUzJVfc3g5s?#xlC;0`LPg_OcyCsoeh_Q4fBRuu2PB^bU}6DD(NxR z5Zirk8`5iH73yeOH^w;TOx6?jV|GVQF?X#{CK@c+BB>z*Z@>6^^>y`|)b5#`9amiI zJvDs~eCR;^P^a+t$fEpHg=MABXQ*cq33CZKq$JAt%=`}GQHF^+H$90FJ-PeO9e3|a%s#i zvUkqwCcSo>`h!#ecj0&Wano+G74n~rOMQ{>;XcDZB2wo-^8zB zcTGW2d4x^mmdyV8-mc>Xc-{?@k80*&?JN8}!a2D~CC_E6{M54%n7gouN7EeDC~5<9BWiybelaYrO+YUlq5|2<(G=%7Qe4 zflA_FRX^#D`4h7ihdNT~&?IbvY>6C~;RP3%eiytRJX&z0II}pL7f3&1A^7HqB!&=W z7`Q&SS_adg$}F^H6<@OC%-%%Q3ieCbSy_ZtgbSp2!cp=g)>MgGzFpHgeYkO@siozv zP3Jikw&j0UU?^@{I-PRT-kDTNEs-73oJi}DanIc;Z+>y|jM=mJ8N(P;HC^r8(p!Yy z#BAc%yHDJv|G*E`C{Dy`*H8aP}f;hN=l=KIPlgJ;6iV3H*FP8{N3H z!L}E6oeRAE(nr2F`CW>J({$5MD?_P!B9C*rmu#R6OF7KN@|wtOipdJ4rjAaif3JUN zMY$ZV34!DJ8gkJrpE=vrz36N>krbh&g_Wv(kr?+${v6q}nNta+gt{|S;oW|@A5u89 zC7Es&(L->Jkh47GYmGFvCjhI4&i7XmV2i3MPs zGmBVEY)U>uyh=PyJV(4pJW0GjJVCrgyiIIQ>Og8p>O{hms*qX|UlQX<9Z6kC<;2It zdL$fa1ZfNjBcqc@q_LzFQW8l`$|Si+(@1{O2GTkbcvDjkkq(pAllG9#lCF?$lOB?8 zk{*%XkbWjrBcsS@a$|BMazk=+ay+>|xes|Dc>s9`c_^7eo=B#Vh2+;31zAbfl3ipE z`CL+j93tnD3&=&}Ddb}E0`emAJn~ZVGV*frdh%NGI`SIwM)D5we)1vmMe;Q=J?lRC zA*fHDkbfqZld+Tf~DE%lz%1Fut%0vp6LZc`t859L2o#Ld}DLItM zltM}xB}gftEXiA(w}P^gvYoP#vYT>@@&n}xZQ^sEeoz zsjH}KsGF#Jsr7B=i?34OOCO~@qTZuEq`sx1XoF}&X9gpo=r+2SzLXxIFQH$c@26j-@1tL$-=d$PH%xj(Z=6(4FQd0edP659k&>>a z^-SuW)IF(hQW>I35+`*{QYR^svXWd$;iNf9laun27ACDq+LW{*X;0Gjq}@q-lfFs% zHtBfM$)wXsKO{X$dIK)KLXxn_)sm|w*GR6F+#tDWa^vKK^p?r(lKUk0O(rA{NFJI@ zOjaa+lN?MIBs-Hs$wkR?lGi6MNM4q_CV6l2f#fsEr;<-6S7)3}zL{Ku(TvfGp=ZQ1 zgp3J{RK_vvjPZ^q`P8pZdE2Vde zFh!X%EoFPk&Xgl5ds23!+)Vi)#vaWku&Hbko5)UMso7e#kYHq+*%5XD zdop`Eb2)n(dlP#*`)l@o_D=Re_IdVwb{YFE`yo5R`H@|N(}>fA!{)T+wBXd^G~^_3 znsb_QnsO#`C>#Q30!PhB=NLHwj*sKv%;U`Dtl+HT?BL{czUFM_9O4|~oaUV3oaJ2P z{KR?2`I%FL+nn2sTaVj<+nd{mJCZwsJCsY{CUa?A9#_Z}bH{KETqD=Q-9F37ox|PD z-NXHsdxHBN7rgx$XSp}Im$?_X7r8gM*SYt&_qh+aPr1*zPq;6*ues%146hoG!(;Pm z@apjz^E&bpd3|}qcw>1Jc?4cp9+{WKOXe|o0-lDK&NK16JP*&w3-f}!0$zYOi#L^5 z%A3Pm!duDP&O6I{$GgRQ&3nqb%v;Y#c=3EbzYJ-{ugmYqug&kqZ^3WG@62zsz;*a2q`NR2YzKYM}yZJf%yL>Ny8sEpC&M)Sd@C*5i`PuyI z{LTDp{L}mm{3pB}`~&=r{B!(Cf<^+I;3fYR9}>LazvW{D@q%~!r~F!i+JZ5H!GaEg z_JZ+(A%cN|E`pwdL4x6ek%DxANx%>=1t|iRAVZ)NNCasDo`55u3Jij&f?`2HutG3d zFij8^6bP0JRtb&@4hs$mUJ1Sx>=hgkY!w_4n4QN2cLX;DF9mM}F9e97Oz>V%4lbmt zDy$}~C9ElIC~P4FZ+~X2FkaY6_>~YAb{F;#4igfDT%kzF67q#|p-t!!hJ+4bp|D6; zEIcFh3MUJH5S|on6MiQ|ga?FY#NP@p36Ba73-<^Q3a1MX32TZT37-nvi_oH~qQ}CY zg(T5n(IinzF;P@3$`!dp%SA@fd{Le#B$_SSC{h7UMj_fMx-a@hbU<`dbVzhc^is4> z)L7h8j1xByw-fgkw~{mwcM#VR%fvddQA`kbl1vd7i5H5Oii6_q;tS$a;{D=-;%(w{ z;yvQ0;=AH%o@?Uk;uXT1;>Y4Hl9%Ea;%DNw;0nGnaZ^c4Nfk+3NgGLLNl!^HNgqjX zNngnX!&pg@gf5vRVMw?VjzllXlz1dwNjQ7DWVU3v2B#3=^^P(>2@i2`?K~*H%re-FG#ORhe+>8?@OOZf0n+I){!-q#md^r+ROTu zd?gzq>n$55>nrOc8!h9?_%fzUBooU*vQ*hpnN6mYMP%8sMY6dvzwB$-W7!7T1KE1n zec5K&E!h>>W!VkcBiR<&aoGXcUD*s}tbDY*qkO1*lDxZ|0C?$od1pCOE|Qz%PWfzk zo_wWzvV5j|y4)*YrQ9OVkZ+XFk#CjPQRK)Sa+Kn*ysF}yJVDV;aa~?haZG+jepmjz zytksh0;~8zep8NDypdm%KbCh;bW$`|v{A$>4#>?4lY*_tRHzg*g+rlL^iyOg1}T^d zSRqhw6&!_Ip;W9>tWum%>{9GjoL1~q99P_99adacY*Xx2ELMD_EKtl*%uq~GY*1WL z+*6>HEtH6&y6TPMnc}XZigK+YR{2oTQ2CRhy0X4rc$r$t;|%8Q3{nz zrBpdq*;kpM%va_p=O}&3dCK`p@b+hyD4S$$Q|?vnQEpbQSFTWAQJz#@RW4IrQ2wZV zr>vrCob^^&U)5OEZF*}}UsWH~C1XF;qtY>|5vp-2l8ULKsaPtWN}$SAnN?1eOXX8} zRXM6s)fCk%)dJNr)pFHp)jHK$)q2&}s_m)+sw1k?s;jC8s-INPRgXb!zH?Spbpv%n zbqjS{bsIHTO;-!mO0`Fwqn@UAtEa0SYPmXHU8v4i?^8cjpH}Zs|DfKlzN}uQUaQ`z z-m1Q+eyl#P{!!gpGbz|x(^)e}(^u0>(@WDsQ(se4BhnOU#F`Y1S;N%iYNlvz>HL~E znnv2{+Krlnnmd}!ngf~#nk$;4ntPg4n*Ex$n)8}ln(s9~Y9474wOZ|0+Gbk4mZu%8 zZKG9bJ8O;FN!r%h5!(LXhPk#{MB7T+SL@L()0S!vX}{K<*6z@**6!1;)1J|Oug%jg z)b7#F)(+Fv(@ji$pna_^*ACG=({|H6)^^t&)q=NwZLqF^?v*x6XVGQq+&UMyV2Y)C zuG8o|I-8E6%heU=_UNR#^}6}Gxw-|qExH4`WxA`n?{yD!XLRRuPj!!U7j@NAYoxx_ z)k{UC)=4ebwMcEAnxSiz+BCIwDx5kvwR#c>eJK}shd;Rr>;u9ntCMl za%vfJKDAm}S!&C)W@(Z%dRj0|nkGz}n3j~LPRmPsm*z{GlC~smMcNN(Thex>ok}~D zb|&q3+O@O?X?N3pPJ5sBCJjlerLU`Rq3@ti)OXRt`tJGx`hof(`l0&K`U!f5K11)& zd-QI7KwqdY*3Z)~)^E|T)9=+E(C^b9*Pqhg&|lME*T2!f($^t1Nw1#XGQDwntMs1f zUDG?Jp<_36jcx21oRemnh9`jzx~8C5cL z8TgFX>D@E>XV5c-WbiVW8N)Kz8H$Y53{i$M!kWGi8x1=Qn+@9y zYYoQ?hYhC;=M6UvR}AF_#88I3H=vA93~vq349^WUjJ1r_jIE9Bjd8|!V}h}*v8NF> z4ls@}jx~-pvW*O*z$i4zjS8dEC^M>!sYbogXv{R)j4q?s7&K-ZbB)EuBI8u!G~*iM z2IFSq7UNdq9^*0NS>q|=72|c|ZR1_zkH)T9?~GMVF($03qp7Va)`T~;Gqo`FG4(Z# zF{PN~CY6b0l9-$(hskWpHD#L$Omj@LOlwS=Oj}I5OxsO6OxsKcO~*_>m@b$unQodM znckafX4cPaXO7G4WFD27o0*ZBm1)bImKn*MpSdw}S?21@lbHuHk7S<7+?lyObARUH z%mdBW^v z=2hnP<}K!}=0oQ1&3DZY%-78~%~dV6EKM!VEOD0B7MHo3Wq@U{rH^HVCD}60BCrT8 z3d_vdsTQ-vZV6gSEK@9{mSW3N%eR&_mNI0MWxr*gWtYX9f6#K+a?J9b<$KF%%X!NM z%Vo=T%MHsN%R|c(3)))8THT7X_OLd!HnYZBds#bJds|6Xixq2~WUXPHXdPuWSS8jB ztIV2eO|z=4TI)<}sdctB$2!A0&6;g3wB}hk)~VJb*4@^l*6*wvtOu-@t@o|IHLyLmzOpv4)v~>`wz0Lhb+Wa#^|5uf4YEzNjj+*dMB7js$;PnpY+_rI zO=45q3^uPV-?qTE(l*bw+&0&?#J1kH&bHRJ%C^O}!}g7Bzip50ob8nDlI@0V!1Twq zXSNr%m$tVyT(l2$6K!v4Z)C4-A7!6l|H|IoKE&S3KH8pcPqGv2db`}NwG-_kdyze4 zXW8@YcKdYuR{JXZeEUZGLHiE-a{D01Jo{?AGQ9Wn>Uk>ubyn2r>O*`ahO z95#p5;dOj(w>wtlIUPYq$N|JQN4}%TG1*b<$aPG2%y9H|_IHkQPIOLk5}YI_*-3ZO zoD3(=$#=?~3a8AO>GU|WoWLaG3^*gs$`OekObeQW+#dHF_Z0U6_k1_c zUF2TsUgO^A-s#@#-r@eny~n-PeaL;xebRm2ea`)@`-1zb`p$(yWEZPpgmPQ zF`nw4TAsR|#-5Iz&Yr%W9-g5dribC-cv3t(kJwX&2t9I-(xdWxZ#-8#IPWD-HSc*(FK+|>& zzR|ueKAq3(>*YJ_6Z*FJcKK%e&ijt}w)rmjPWX2F4*1Uc=KA9Oi0_53iNC48i@&wM zk-wq;y>F;rgg{0hIUo;c1Iz$5APOi0 zRf6*Zvjd*M>cEk}j=(p86M?hE%LDrY>jMV^2Ljsyj|0yF*8+8dwSwh=mw{J-+QCzS zdcnrQM!|$&e6U-vcd%cueQ-c(p5@ZIsL19o8bO#;5SwTb49^4qz2R*@(U}11o zaB6T~FekVmxF)zOxHh;qxG#7ncrJK8csckchz`9Ez6jn6J_}+)HAB@y4MHPAu_1h@ zQ>b%jSZHKuK&W@9Z)jquRfr$rhQQmuBMpf|nvgQ23uS~%AxFp?3Wma=qEKmQZfI#} zQD{YIb!c5^YiLJkSLmD2h0vwY<}%m0 z;aA}+;fvv#*)iG8v#*C6XV=Yck{y@bBYSyCyX?-{gR?ti56hmIP0S`_kIPQVW@V>j ztFn37>TF$hMz%fMl^w~>%`VI?$}Y~HnmsMMe`Hu>NMvkeVuTPOMd%S>L>oT)i`a(3oy&G|0pLeANoqd6CIj^zB9 z^Ha{%oSQlCbE@W6%SCcp<;LdL&261KJhxXaoZB;Zd@gwVcgN(8%bl1@${m}_%oXSI zb35gVa_PCoTz#%B*PR>4_2>F>vvb3_MY#pJlXIu$F3X*pyCQc@?t$F3xjS?B=YE@e zB==(O&D{67?{a_2Ezhl^n&e@%F-bPgFd$CW?+?g}y%y(wy-oCTe*?TRQtGns7d7Az1UH1Qderf(`VC6}h zkv21}Fs&qQOWMA)18FDHUZ>${NE(wSrmar@m{vLcTUuFK{dDJaxAfZSF6oWaYo>do z_fGGX-Y@-Ynm&C}x=*?xy-xbr^ug&<(x;{erq4=`N{>(9nG=(qoW3+YDLpYgHGOS* zTKdlP1L=p-kEJ8&So#>tn{>yF1{uvVx@UN1jLVpkF*RdGMo7l&jM$8rjCC1nGm=GI@UVVI>wr99bz4Con$Sv=2$bW1=eZS2i8;86IR+7Lm< zvrT6I%wCxTGW|1yGnZt}&76{XFmrF_zRax5Q<={*Uu065c;?H@E1B;yA7l2WCdo;$?9N@&Wg)gkhL^xTGo=R zWm!pC%d?WRS7)bY1FJ4OH#;x;r+riQ&g>o8`?AkwpUFOzeLnkk_UEW8+4r*VWpIzPW94-E#Zn z4$2*stIr*u8=f1L8(lH^M9<5epBtOIJNH2Dq1@xSS97oAUeBd-S+JF)dR~LPMtM#1 z-11uGx#YFYbIt3V*EMfY-r&4pd1LcN=1s~QpXZZj$eWNiInS1to3|}*U*7(_vw0u# z-sHW@dztqrkIxhGewBiz1Q<83mz0aDtKIg79a&!!P5e`pnsuKAQwml&V`K% zs~0vbtW{X0uv%e*!WxB@3cD7zDAX3VEp#jNEF4|fy>L|F;KFHz!G&Rk@r4Tu$wIDB zDy&{qt%wD%UX`MbMeT|X6tyX8T{NP|xu`+W(4rwlgNsHLjVS`@GXX_`MKgQD`+CR7Wm4b_3_LiM2fPy?tT)Ch8h8beK>rcg7eIn)Ab3AKV;pw^Hp zhbBQjkO4A6CTKD=1@eWa zLS|?hn!3z`khfx@8(C=!|rMM2TfJO~VQLi3?G zC>~k>Erh^$BD5G<0xgA>LCc{;C<#i2QlJ&kN@x|d8d?Lbg;Jq)(0XVCv=K^!(xD8< z3S~lBP&SkU*`Qn~56XuMphBn!0@ekz2`Ys)LtCJ&&^Bm0v;*1+?Sghgd!W70K4?F5 z06GXAf(}DRprg<+=s0u&ItiVEfWrxa^yRbAIp{oe0lElXf-XZ>psUa|=sI)*x(VHa zZbNsVyU;!8KJ);32t9%xLrc^a6Sby@FmtZ=ko(JLo<1p`vmDLLd~vARHnf z5~3g)VjvdcARZDR5t1MoQXm!j2z`P+Ltmh;&^M?Ir2ifI0sVx^Av@T>?EpK%PH-i- zGF%0&3Ri=x!!_WVa4ontTnDZT*MsZB4d8}wBiI>k3^#$B!p-33a0|F4+zNJqTf?rf z8|)6Zf!o4bxE<^Pw}(5x9pO%JXSfU8748Om!d`H9xCh)5?gjUT`@ntSesF(y06Y*L z1P_LXz~1msco;k!9s!SpN5P}vG4NP;96TPL08fNVkBj8AQE*u3%!}H)6I2N7{$HDRN z0vM#PEQAx_Met&H3A_|u1}}#b;UqX2PJvgzE8$h}YIqI27EXoN!Rz4-@J2WdPKPsK zE1U^u!P#&QY=d**JUAaNfD7RwxEL;hH^HUwW_Sy{72XDKhj+j`;a%`6h4--jQ-58+4fWB3XD6n+LjhhM-i;aBi$_znCPeh0sYKfo2u8wiZT7>vUN zOu`gQ!wk&A9L&Q4EW#2j!wRgzAK_2%XZQ>J75)a7!QbH@@K3lLwu5?P2gDI^LMkDZ zkt#@4q#9Bkse#l)Y9Y0eI!Ill9#S7^fHXuJAS%kjcmt#21;0 zn2~9SAL5S$Ac05_5{yhoEXWLGCK7^#B4NlZWHvGf2}dH3NMtS&g+wFskQfBaaUt`O zI3ylffGk83kVVL1WC^kqS%xe}5|Jb%8A(A_AS;no$ZBK_vKC22z?KYT1F{iGL(-89 z#EN7hSx7dLgV>NGMfM^4 zkpsv<d96Ua&A6ml9lgPcXqA?J|`$VKE5av8aTTt%)S*O42@P2?7G z8@YqrMeZT@kq5{_Eq;0S?` z2!+rHgRlsP@Q8qj73qJJ5E)Sr75RvKLOvs3kgv!$qzw6v{6Kyp<%k{8pbn@b>V#H8 zE2CA=s%SN|I$8s*iPl1Eqjk`_Xg#z(+5l~cHbR}z#%L3?DcTHejn;<96M&~P*YjYQ|7QD`(e4~;=%(fMc` z8jmhO7orL1B6Kmj1YL?QLzkn8XcC%?rl2d(mFOyTHM#~}i>9LM(DmpBbR(LErlT3C z70pDm&}=jZwV}Ca9-5C9poM4=T8x&Uo6u5pGr9%cif%)HTnj9i@rnOqaRQRg;AuUga^e@ z0wqxjrBMc?&!Qa4qXH_T5-Ot#s-hp!Pv~d#3;GrPhL)k<(I4nfv>dgAsxt@75p%*S zVU@8eSXHbVRvoK>)x>IHwXr%_U928fA8UX$#2R7FSYxaS))Z@oHOE?DEwNUZ3)UKQ z#oRD=tPR!{(_-x~53D`b0qcl$!a8GJu&!7)%oFp%x??@Co>(ueH`WL1i}l0$V*{{( z*dS~$HU#s=hGN68;n)alBsK~gjg7&^V&ky!*aU1Mro;5uB+LghU`EV@O~$5RzSvaE zj7`J*Fn=rn3&eu3U~D>O!De7Hu@Ed23&TMApJ!pSu{l^c7J)@#bFnBa8k>j3V6oVI zEDnpu7GMjp1Z)wu7+ZoZ#g<{qu|zBhOU6>L71&B_6}B2%gRR9DYhBgf^EgNVcRh>73*yMf)r zZeh2vJJ?<99(EslfIY+>VUMvV*i-Bo_8fbGy~JK&udz4STkIY79{Yen7>pqpT2aM> z5g3V47>zL)i*Xo_37CjUn2afyihaaBVV|)t*jMZuR)&4YeqcYba?B3u?i_GO+zGFQ zSH`R0Rq<+gb-V^%6R(BW#_Qm9@p^cDyaC=2Z-hJJjqxUUQ@k189B+ZQ#9QGmcx&7h zcf;NBHaJNCOIuuvx5GW~_IL-pBi;$`jCaAi;@xmh+zaoH_rQDNz3|?6AG|N#5ATl; zzz5=k@WJ>H+#4T?55tG!Bk+;9_^|X`g}5#6$2{U!B^lb@m2V0d=0)9PsP{a>+ucvMm!Bq z$1`v%o{4AS*?10a!*lUGJRdK>3-Kbn7%#y$;idRyd<(u6--d6;ci=nmUHEQ%555=Q zhwsM^;0N(T_+k7AeiT23AIDGNC-GDGY5WX+7C(od$1mU)@k{t+{0e>*zlLAOZ{Roa zTlj7K4t^KEhu_B^;1BUf_+$JD{uF z1C?9^PT~|!;|$K?9M0ncF5(g{;|i|gAMsE4XZ#EP75|2p;otEe_)okXw}aY42f~qX zA}SG;i7G@@q8d@1s6o^uY7w=GIz(Nf9#NlYKr|#85za(oq6yKIXht+AS`aOXR)h=j z)83kJCEN&iq7BiO&=Tzk528KMf#^tdB03XYh^|C8!jteKx)VK!o-#1OH> zd?JpBCl(M3i3DO1v6xswEG3o^%ZWrHiAW|=h!w<2VimEPSVOEOQi*lMdSU~ykw_!b zi44L@WD;3KHjzWvh+HC%$R`R2kp8zqqKGIaN{CHFDY2Q@LTn|r5!;C!#7<%tv76XK z>?QUQ`-ua@LE;c`m^eZlC5{oti4(+0;uLY3I76Hz&JpK{3&cg@5^^ z35>uAf*=Wspb3Ux369_ife;CakO_rQiI2o5;xqAu_)2^u%82j858@|LPS`>Dr32|m zI+2yg%48L?Dp`%JPSzl6lC{X%WF4|DS&ytwHXs|4jYwy*G1-J{N;V^#lP$=WWGm8z zY)!h7ZlpWehHOh}$#$d%*`Dk`b|gEIoyjg_SF#)FNqUjp$sS}+vKQH#>_he?`;q<0 z0pvh(5IL9}LVA-!$zkMhas)Y&97T>M$B<*mapZV%0y&Y?k$Q3x=|dVwBWWThlT%1v z(m^x146|3YJA!VL)MYK#j>%kOeY@h8{!Fx2=*?N*tlvXN2DR70x*s}?-bvq2KSgiV zr|R?dS^9f=?@8{H?0T0;qb5a98a63w(#J_JCyfJhjx&9Ve9rrDKF)?h!*;_(!yALf zSk>6p7-P&d9yY!+)+sAArJ8n`?50(d&AuVNdwp;E-tetkRfxz1%|^4IIlw%_ zyw!Z#JjL&#U$?lIew?3+|91b={-69k0*nFm%Z3F+2Am8y74R^?EvRQuSkQ@}_dx-{ zD}z&m-v>VncAc&S*Pq^Jy65!V=?yL0EuUrt&n%jGf2J-(6Y3l~AhddD*HD+xwxJ=R zzM3RG%i~ZdoK1? z?DJSO_Hk_0`JZCj&F?tB!~CxEE%VpTFPZNU7ZsNrUl?B;Ul6}NzDe1r1qTdn3v~-; zE?fkvVw#pUEBk40UY3>6qO2g{(IRqD%QALR@#0oxW0v|aJ+XAt(&tMJ%SJCRUG7rm zkYY($o^m7QbIO<%M^_kEnpcLeY+ZJ6rE8g6S=BY4)-*`%lbVpaBlUdhhgA2n&#A_B z%hyTkKdx`EA$~)fvIiU6mTAkv(%+}ID|629$atOcBIA7qpCM#m8F)q&YdvcXYk#Y^ zb)Z#eHCuhG{j6cu9o7Zbg;vt~!urbk(CSh4%nDhbShbmMncuDL%Um+;)>fI0nbDcP znOifjXTHz;n(37_GHXnhHT&(i4rN6-2XcDY2H1w%Cff8iAKPS`Z*E9#$Ffdk9(kS1 zit}{&uku0qKi=lY6~q*z6&xx!Q=ln~E($N|Qr4{aQLzK)-1=#^YudRwXr8S4y{!m* z#cDjHT3C2=&xrP6V86X@WI{j!1NQ3vv@bFJwBJ}?8~hsTSGs<1LP880@1Qpsj~f2m zpYqc_7POmGbeuHp;nAa_)h7o&3M%?)*pZO|ZA^ z-~R6WNAFCKzVNTPJO9yp6HG7v+uxo4)t%}1H#>+B`)^MrkbT+T>L~hKZAOUQN#oVM zv74J)FZbW>_fn0UCL_t3q|u}$Eded2(=~9??W8UmgJx0^Xf68X>)uY$XhtRtPx1o& z_DGTw5OslC_5V1B{{pOjAy%5Pzs?aF@G$(-sR6$OsMW92tTBPkzv+K*&iLhA{j#or zt5$K&1a10Je>yebcfh{-byl=tJ80^=A55vZehu)~Dw_BIT4MXNxcYmqAYSQzTZ=1N zi~qVueGMR}QZ@Zt*K0QXM{DtaR$}rs{ap(+MVewwiDr{#rPC^>Euhu-&pqnjzW&~$ z?hLy5f9p|S;q+UN`Wh$jKdqh4Xx2NO(`Z=U;nblY`4=Mr@c=5oc22% za60Jp_dCrlJ6&h$MUv)fL0obEc^bGq;J{i_BvymzZP^w*&oJ`x;b!2#s8ibJEH z3=Xs7^k0W&MhG}&g9G?$6^AA&4jc&@V6au36%1R&Ib!CBzgNWWG;YrLaLt5>iqmmI zgboZ(>gGCC$ZWr0Hbaad#u)qC`L~PM%@sxL(-vtg_5P}ez2(s9V`uB5Cdd7LYKBh# zg~E*w|Mf4Q<51h_=r48cuf>?w?i2ow7UTFol+ONGA*Lr-tN#0L=3@^3y9QLO0XKju zP|;jo(GHFOMRPg#%Qv_Mgo5ipBKQnMf{NyHI}i=t{?Ze+X?D0;9bjMU=xV8DB`CHB9TQx3qHSb)U-Dfy;i3xJ*;h}M9r0MKc zDM(YXFjNAMvR}&rsKl>W6&6-33mS7!rRlY1Rss%Vr3CQL{ZE&G*^d9s8UVH#gC*eq zdJ(8LqH4+S9z#`3GvCoPIqrWVGBoCYsg0WdP#dp$RH%(#e^VPh0+(HNa@TwXEJNqt z#l{AZBP-NEoygj7b>hFa7&KkFI0glKbk?}Lch+=z=~5N^jC8H8)p$4tI{_uZrQt8p z@#}vU9Sb!M?_6D~|2M8OH-HTF3nt8xio0t z(gX;Pd`+y2TtPg3t>V)1H{#J@j{E)t6~bc~SnrnqNqF3=b!lAL#igoCJ&jB2sxI}b zxKyv@Qq84?2AGX54la%^b)8&lX`1=kTNAOn*HPwNnv0P*O^)6adQ%h4@Q%6%* zQ%_T0(?HV@yn(LNRMV{1G}ScISb?z7QqxM~qG_$EkT{YxDL~?=p=qLNp;@C@t4YP3{1rkSwrm-edlcmYlwgm4o&z(b8_>iq)nqHdTzgDe&Kw7G>kzQ$DgU=Ki&0yEFVD0=nJ@k7oUA}Vl+VvYZ zZ#{bah!UU^p)~Z}XO|+qUo6xohK@ z!n?nzq6@))t>479E}9v@YODD4_*)D8d`%3vlHb?P1|E*!bMF84(EqbN^#4qU{U7_a z6+QG7e-`SUr1?W9-5fNfNkjgPXWc-8$wmLvyxZA-a@GwbnEdvins@vDhfceJ1XKF| zffH{F!OUA}O2QvF@pj^$oOc5Wu6Xf>&b)yHS2X@7=H7b#p)+r>2uN_{{6BQ+4J5eo z$R9TOCjHY>Zy>={|IFmuKR@>d5?uA~I{UU4%)NmGSMUGBX5T6%-#~(^|DC7bK!R)j z@d>zp#q=9UaLqqH0r$txzkvkT{!ueK{7=2NF#EM;Bj|IFR7FKV}y0Uo!^>5?ud}&cgj`CgDJW>;E06;ii&iavJFersBLe z_>%!-AQ?mklha8HIfI-@hLE9T7&(iaP0k_1$p|u%oJ&TL(d0ZbhKwcWlW}A`xqw_q zCXkEB#pDulDY=YXP9~B`WHOmTt{_*EtH{;l8gea}O0FZlF!KJrv@}#_|?o zrcr(rpkk;%Du@cErc)Mb1~rokp+c!JY8Ew{nnQ(C5mY2Kmx`jIsd-ck6-&*h;;49P z0kx1ypcYY!sU_4>Y8kbhN~DsgWGaPPL9L`#QLCvn)LJT)T1Ty?Hc%U>G%B6SpsZ9T zl|^NP>-SE}p=?wxl}F`M1ymtbL={sd)F!Hw+DvVswo==u?bHrxC$)>(P3@ufQv0a= z)B)-sb%;7l9ifg=$Ef4f3F;(uiaJf5q0Un0sPohX>LPWCx=dZ6u2R>i>(mYECUuLt zP2HjHQunC))C1}v^@w^*J)xdfB$)P$dQQEdUQ(~9*VG&8E%lCiPko>u3Z@VWr7#Mo z2&%#_rYVMEDURYPff6Z+k|~8!sgKkr>NE9)`bvGH%Bb(u59%jXPT2tu??5}!PIM)@ zGF^qPN>`(+(>3UtbS=6zU5Bnq*Q4vx4d{k+Bifm6OgEvM(#`1RbPKvA-HLXhThp$z z8|_ZFq1)10x*hF7x2HSM9qCSVXSxgBmF`A+(q43T8YGzBgYHT9qI=VQ=)QD6x<5UD z9!L+O2h&4nZ+a*_j2=#pphwc9=+X2TdMrJT9#2o8C(=4vPfwzKXajAeP4r}X3hhfz zrOos-+K=|91L#0Hhz_Qw(-wLL4GQ<^P&$mBMbD<^(BX6h9ZAonqv&XQ9=L+i^cXsp zo=?Zo@$>?EA)P=kq8HPEVWOAO%jrZqiB6_d=oR!zdKJBzUPG^?Q|Wc|dU^xBkxrx2 z=?vORXVO`8Hl0J;=v+FF&Zi6LLb`}9rc3BebSb@=-a>Dsx6#|_9rR9m7rmR_L+_>c z(fjEG^g;R%eV9H%AEl4c$LSOFN%|Chnm$9HrO(ml=?nBl`VxJazCvH6uhG}(8}v>3 z7JZw(L*J$E(f8>G6$xfMq#x0b=_mA4`WgM4enG#aU(v7WH}qTj9sQpEKtnW4BQ#25 zG)@yVNmoeL49(IU&C>!c(h@Dx3a!!~=}+`$`V0M){zjM4-{~LpPr978(;CKsab%pB zN=#*@3R9J-##Co&Fg2N4Ol_tP0}{-r%hY4)GYy!AOe4mbY0NZXnljCp=1dEwCDV#= zVOle;j2q+5v|-vZTBaT2!L(;OFddmrOlPJG)0OGQcrsp0ccur^lj+6uX8JIFnSM-v zW&ksg8N>``hA`gDP-Yl2oEgE4WJWQgnK8^*W*jq~nZQhBbc~*v#P~1<#>kkM$;=eS zmzm0#nQ4q4! zNYJ{M*~jc>4loCqL(F032y>J<#vEr(FejN)%xUHfbCx;BoM$dD7nw`UW#$TVmAS@T zXKpYznOn?l<_>e0xyRgR9xxA?N6cg93GeZO3}B?b!}&N468&neD=MWxKJStQXsz?ZNhBd$GOQK5SpM zAKRZDzz$>wv4hzmtT#K99mWo4N3bK=QS4}T47h^Q%(3h^c04`XR<4Q0dFS?p|f4jax!u#xOsHj0gA z=dm$tEIXf#W8>Kc>_RqyUBoVCm#|COW$bb`kxgQg*%WpKyOLeSu4dP;YuQwG9lM_0 zz;0yI*mO37wX&IP7MsoHur@ZA&13V~0=AGXVvE@lb`x95Zf3WzTiI>w_KF0vcCb6y zUF>dl54)G$$L?njum{;g>|yo@dz3xK9%oOmC)rc%Y4!|zmOaOwXD_f9*-PwY_6mEI zy~bW=Z?HGnTkLK24ttlq$KGcjun*Zs>|^!``;>jgK4)LBFWFb@YxWKMmVL**XFsqI z3$qA|vKWh3B$!38BulY0%TxgOEYAw8$V#ltDy+(WWIwT=*)Qx@_8VKqerJEMKiP8D z&T2RZ&XIHCDsh#$DqK~r8dsgG!PVqyakaTRTwSgnSD$OZHRKv`&Rk=z3D=Zs#x>_! za4or3oD0{QbLHGPcdiZBmeX?WI1jEp*MaNEb>cd6UAV4XH_nsu;<|G^xSm`ut~b|* z>&x}y`f~%gf!rW&FgJwr=7w^^xZxZ~Fna_yk{iX1=EiVixpCZhZUQ%v({Xxk66eDi zI3s7`CUa9bUv4UA=B9CeoIe-91#&@LFgKmEa5K1>TnHD+g>kdE+1wm1oQvQhxw%{v z7tPJ%Vz^jtJ{QNua|^hITmrX9=T2}Zxl`O}?hJR9JI9^pE^rsQOWbAd z3U`&e#$D%ba5uSI+->d-cbB`z-RB-~54lI&W9|v}lzYZK=U#9xxmVn4?hW^rd&j-! zK5$S)f;ljUa43gyI7e_KM{zXAa4g4hJST7>Cvh^Ta4Pqa`^0_bzHnc;Z(JGoo%_N4 z94@KyP0e09DCUz4xJ*XHZ+b@_UHeZB$TkZ;60^Nsl?d{e#| z-<)s3x8z&#E_`bqB$(sMyYcRP8@?^C<=gQde0#nF-;wXccjmkBUHNXjC-22~=X>xy z`Cfc)z7OA*@5lG&2k-;=LHuBT2=C1g<%jXZ`4Rj`eiT2NAH$F3$MNI&3H(G}$Lsk? zybo{Sjl7AU%unHc`Ki2_pT_&~{(Jx*$OrMk{B+*J&){eBA$%ww#?Rts^KkLoFW?vQ3H%~{F~5Xg3a;PVwv1oSC-O;rGM~b);8*gi_|^Ox zel4HMujAMA8~BZU8lTQ*@K!#P&*HQB9Nxy~@_BqdU%(ggMSL+|!f)bB`OW+mek;F? z-_Gygck;XV-TWSYFTao9&mZ6q@`w1t{1N^re~drQpWsjOr})$S8UAcVg0^$~dHw=_ zk-x-W=CANq`D^@j{sw=Ozs29?@9=l|d;ER=0soMH#6RYr@K5jzvkcY zZ~1rpd;S9t@i33@D39?tPw*s9@ifoyEYI;gFYqES@iMRQD*uuH#DC_$@L&0Fd>Q|p z|H1#{%XvGm5gY_Z!AYnjR2HfTRfTFob)kk(Q>Z1>7U~Ffg?d7Lp@Gm)Xe2lbjfEyc zQ=ysATmT8?wh&qhtppdLwcska3GPB0p{<}5+6f*)d!d8SQRpOe7P<&sg>HhU;3aey zdI&v*UP5o7kI+}>C-fHv2m^&d!eC*D;4KUlh6%%k5yD7elrUNtBa9Ws3FCzc!bCwQ z=!Hpwk6;jtf=QSxOc8vAse&0?L22$Z!B6lP0)#*zNC+0D3l?F9FjEK-LWMA4mM~kG zBZLbPLZmQPh!Ubf344qXE6f+-gm__ruuw=4772@mCBjl+nXp_)6q1BwAw^grtQ1xW ztA#bfS|L?fC#)AX2pfeoAzjE2tU{)cC1eXZf=$R3@`QY$KqwT7gkqsY*d&w+n}sdH zR$-g4UDzS)6m|)_g+0PvVV|&HI3OGp4he^aBf?SPm~dP;QITNYN#T@mS~w$|70wCg zg$u$(;gWD!xFTE?t_jzL8^TTDmT+6RBit443HOBu!b9Pa@K|^vJQbb^&xIGlOW~F9 zT6iP872XN&g%1KGzyczm0w&-BA&>$k&;lc{0w?f-Ac%q_$burM!bjng@VO$vyf4C6 z;hRt4KQKZSC^E@(st(NS~~D~XlGDq>Z!npj<|A=VUYiM7Q#VqLMGSYK=)HWV9) z&SGP+iP%(ZCN>vah%LodqKnvCbQRr1cd?DwR@92^L=UmO*g@_UBs?pH_=n{ z61$5%#GYa=vA5Vq>?`&Y`-=m_f#M)>usB5Y7Ke(%#Npxyailm(94(F!$BN^`@!|w= zqNo$~;v~^WG>AsgB!UF~QVu%b6w5`ssF55bN6AU5BvqEGNL8h3Qgx|@R8y)Y)t2f=b)|YzeW`)e zP--MOOO2%_Qd6m!)Ld#IwUk;(E>dgBRdSQur8ZJqNh`IJJf!wg2dSgfN$MSl}gfmwHG&rCw5RsgKlG>L>M=21o;?LDFDph~zB|m4->fr4iCdX_Pct8Y7LB z#!2I)3DQJKC+Ve0l8BzX^s>wMM#m-Tq#P5mgY$@Qmiyzij(4{1=2z(L0Tj&mX=6MrDf7`DN#z2lBE=B zg|t#yC9Rg$NNc5332fk#Hb@)6^?MhlN$FCCWR)_dEGb*ck!(_~lqcm&1yZ3@Bo#{~ z(k7`?+AM96wo2Qi?a~fur?gAjE$xx^O8cb!(gEq9bVxcZ9g&Vo$E4%Z3F)MCN;)l_ zk7sN=x-4Chu1eRW>(UMBrgTfXE!~msO7|)fEW9s0kRD2pq{q?|>8bQg zdM>??UP`Z|*U}s5t@KWMFMW_836>BEl`sjH2#J&^iIy0Nl{kr)1WA-6NtP5zl|D+J zq|ee9>8tcjDwDoTKct^hxn!3#vV-g>JIR&g%5oLCs$5O3F4vH2%C+R$aviy@Tu-hq zH;^03jbvxJvD`#%DmRmx%Pr)Vax2+IZY{gYZnC@FMs6!><#w`%++OY=ca%HHAi<)} zau>O)+)ehBz2xq454oq@OYSZAk^9R1rr^^|#RnC;NekebZAIneV zr}8uTx%@(YDZi3m%Wvej@;mvx{6U6fSVm-2#$;S3WKyPNT4rQc=44(LWKou6Syp6K z{wRNvKg(a_ukts!O#UwakblbMvR&3F4vM4Vq*PKWD^--L3P`ZHno?bY>8tcp`YQvJfyy9durfsPR)#9Wl;O$Dyx*$${J;@lB%pz)+-y7jY^u5u4E`yB~!^#vXvagrsOJlO1@H{ z6e>kZu~MRJQc9K0$`)m7MS>;Ul&{r)S7B7 zwYFMEt*h2k>#GgahH4|#S#7K~QJbpG)aGgnwWZohbx~WZuBw~ruC`Izs#>+3>Y=t* zJE$GiPHJbhi`rG~rh2MgYIn7V+EeYN_E!6-ebs(ye|3O5P#vTWR)?tG>QHb6rJIJS z!_^V$NOhDtS{rfdovcn#ebuR|S)Hc(ss3t!8mI=T z!RmC?qRvofsv&Bq8m7)tXRCA6a5X}WROhNuYP32}jZtIO`D&aRuP#s*stM{Mb+Nic zU8*iqm#c|tlA5fhs4LW!>MC`$x<*~ArmE}I_38$7qnf6ss~M_Q%~Z40Y&A!+HSgP@?Wq0s&^sHm|aBX34Zf|XOuzQyOv};`_mHU(%%1>xa<&(>& zl>3(Z+Z(!il{a$jQ9fVWvs_v`7q98f;6 zyoP5@&q3vb%d2@-_Z(90U0%zxw&&3DVdZr^>v|3^A5m^DpH>bMEcGk*FApdWEdPCP zUn@@+&t9(GU7hSz>^1BITz6=kJnv{9Xpd+QYwv5Tw5#0ihW5I)RJ%!gPJ33nrF&(! z0~*vm#D33lZ27qIiRHTT@#PcBgUW-;rXzeXbIWtfbLE?DO+1hTTk0a+f*B=1qp7RtBux1X)9?EEvm(} zn0B5vMjNZGXRmK>U~gz|WOueVwl}diwKuZ|yG?hqxXo~z>GtPc@NS;&o^3qadTKq} zd3t!Z_w3;L(>?-7z;1STdmDROyVl;$?qP3l?_lp}?_}?6?_%$2?`HS3d)d3&d)Ry0 zd)a&2``G*1``P>3huVkPhucTkN7_f(N888P$J)o)$J-~^C)#y(y?v71$8NA2?I!zV z`;?08w)ono+RgT9_P@XH@-KH?{{4NHf4R%DvR4(as$SK+s(aP&s_9kBtF~7iuex3! zyDjy+>U%ZtYUtI-%h{{3R}-(MUd_Ckd$sUt>D9{1#jCZKtCyRXyH^{pwq9DVc3vJ{ z?Y%m9y>h(ec-!%Y;~huvJ#5wJ%sL01lWw>!K(|V_UUynI#3#fj9LQlBgM*>K;A|Xf z^f%r#R@c=8CUgy5CtY71>@!j~Mi-#VvgAh})AUDRCxhT9Ebx!u;?0iN4%pP@csK9N8}i}11eeDtxsPs85;QN3qGcyz~@-oT(39b=C1 zi`g5qF1DEtB)F|HaOoQ9n(7AVChGJ$oel?1=2P7>-E-j1p*l?W3g~kqeMSJaEfq+y z-+an^zWUTKY%-J>DjTa9n;2UeKj_98#~P;t?KukAXlIO~5i_bl0T+xkP|$uDzZyRo zStDU&fCDcZB_j@GwC~0@Q(jML41BH9ZC%Y?=K1D$^JKpizk&W#02x38I0iZa9dk*b zLr~M8CPCMNYFLaGlf_{1v1|(=Lb`@^4(k}!DXdG_jPQHm^&{#<^o8zcJb}(+s(IwZ!>dqa~~j*tuQY%rbKf&jo(VYwZOV>3>>fb0abvRH6IvRrQ7QUwE!mPb0EOi0(w(DONG!h)zUkJ z4xvK05I#f+RYR+X4GQZS<`vc}%q@Io_~P)!5djgt5$1@Xh~S7xz?PXF;TJIx2(Z!7 zK`{X_%i_N+ie2(`N$=&U%g-%$NOVf91-k!xfKLCliR%*AC!$FeO&>p!Y9+TwZk;?g zIR^CPhp+NpGhxjPpozQXbl2_FO$1vcM+2!aP~Q`ng_D6?I7#oLAEfWE@2elKH|YoJ zN9kvPooL=W{Pn^5ZhD=*x84kF!!bZPoZvIwXQEG>&vBm@w^& z>@~CjJEG%^t$?cMVj65}2Shy&(p7a67c8-fInUs47@k1d8fJ9yv3Yn z&H>unR&%B~)x6Cd;OGC#XY%gDgNDO9*-ybT{Zl&^=&_u|ODOf*M%rTUJCEl{u5@|^Vp4Kwp=*C*C zmMBZEWv(ULl4;4Xtg`eA82}_IIpkw#P?#=EA2ulrsNuk|4-6X%%%|Wmkl;>Zm~U7} z_=E6azzNC&I?$SkwGk_U5i}=a5%7VcBh~{eCC7Mikw!?+lj zj4Oc2xXQEyc#QLa%edZ@Z?c$XnbrX@cB83mN{a6S-#Nf7obDUyJJWZGZ%gx7^Jw!J z^9ZxaeBOM<{M3BPyx;uDeBJ!ee9wHx{KS0Qe87Cf{MdXAXtFc?X876s^8IrC3jOl@ z3jCV;kMSSr4-(up3Rrxl{wMu+`S0;R7Gx)8x6JX*8Im&qNYfy}J;OjtJe6ax1=>n<`+$=R z>yPOV=r8CY{UiMY{X6{?{c+&Be$e06ztHd3Kh$5@x9JkN z3rhD?n4*b+Pn_=**_;vAqX z4h5=U;~CXw{IKvAhZ%z9r={u)+42Rvjd|}CEu5v?^3hTs7=uGXMgpPlTnG}P4eb)@ z8tM_+EwpuL`%o{?UiKx_9`+ z>|od{pya&^dmJ_g_-(7gkA*)De-Yj~;#Ne>$nKFHBZo$6fu`ma=@QulbeNUy9RQp) z;J-(S&@A8eyFD$Q=2ol^^FR^xF{lwlt=fQ!|a|K8}cN1aY_S{c= zpNIju=VOw4GMVg@QaJ@pev?cjS4zQ?9aF0RACB&UyOF*P!1&s>ZQC}RNg6wuXd2rM z8#Qj5q}Z;XwQaL&+xBiIYrOxypP)V0IWv=)x##}5t~hTxKRc@e2j`meG7xdD0w?Dq zaB(1y(PQ?QJPRug75_DVoj|of^+0)W2@uxRq3xmb;d9|nkr)4WE}lm~!42;tZzInl zuOero7ota^$D;FrN^w5sEP{ZxupqH8!A&B`3Sb+glT}lzQ+HDjQ;Fi@Vlq&Z8$b=A z?$Ad}FW?-1$Ml6-0o!;2)ER0AHG`T$KQUE+f!qiB4D{prP+O=Cl*W9(3 z$g%CI&8hDwU8voueW^XE4S*smrjhBJY1?Q!Y1?TVX*+1Z^rqFIW9bB-xV{HE>o58n z`YZY;`d4~Y1`1w;4P^Fbu48Usu3`>l#erxVWl`9m;6|9uXG3fPTgpb*a$t}yW|shw zw2&PHTmBO4+1xa@4*ZXs1@z6qFae$h&w?@VTzDJ|!4u(raDTWDP&pUCbNF-l#rz}u z6Z~mFuEYqY3vhx3f|?#@~ngh(pY|&WJG!Y)yk=sPAMGHh&(L@m{ zgn%SDK{Q>|Pc&21T+~K1RTL2Wfpyqj(p%C;(hI1DpCmaz9`u3ze*&pNss|Eb0XT-H zY?4U*QW>xbHBv+xlm>uNm?z~+3#Dfjw-nD5w-u)q7ZqbwM&NS)Q2kMT2S%Pp{a#&H z^FjSc{RXIacr8Oq2NoSgdr*5qdrG?%cykAUG`B~46o_;AK!H08^tTJTzWUDkF8V(D z*ZLub-i9%Tj)oD2(FRa(Q%}P{Ll;A5!!QHE2myJGWh5GzV80y+_-oIAuJ+RS(D=gm z+IY+8Hu->zR?FPf?6-8awzk#>a#$B@H){)P6QGE-1D04rYg=o3>p0+W71~bNj@W7e zL#riFv|8II0z>Pwy_(~by{6;69kthTe7C3VbsT@}^?-i$5xlN`2R>kL;_L^ksy@yE zK%naH!nyFSd9E?QmYVCT)TS^%n;PpH1&paFK%MI2nhy3~P1%h11c0?v;8_98r67=( z$~+369vDVW;1?NvZGaWj2xvhq1N8!}1I>XQ)Hu*IFb9Y{#^BQ6vY1~$sR#FNze;?*U$N_ql~V?t?emI<;#bYPB8hZX>Dd@jU?bWj#VfV7YX z(nA=iF(iki5FH5NpRhSNIqnMXHtrVgI<8XZZks(BnB0@Hj{#?U79ocqAj}{z2^_+7 z!aTxIpkG(6WEo800Ry|z!yW)+?BRr|z{IWt6zaO9hoqY1dgNNqcr zAEYiod>%!e3jAgPu$!k)LBTB(fa6T1&Z5qvDrl!@CuqlMM`?#>Cuw!*b?CL}Y&xCJ zpx0*9Vl)Cmax35?H)Zr?v|zMl^kDP`a`F?#7+@U_2ioy2=5FRr<__jT=1A6PU=d4L z2usXL0(rO`*uzVKK3oQXw&iR;dkK3ry8_t2FW3hvkK!#S*!zGGe2={!D8bj+C)p2y z9(;#=iro&_ymPoq;8m~+xVg*Vm9QQb!YOzytc2G9JJ$u50y}p#?1p`CF}xIB566M2 zYlqD+0*hc1%mAV-mQUf6_$&ejxV8j7o?pf<<*(;oek+C)0h7SSqEQnVR3u*ZQ3>k;Ms--TTbjM$|jr)ZdXuNV~E`W9HG z{Uu@PerX!mp^n~<^w4H2+^p5nc z^cHYNKLcs>mGq?axO6R$NDl#%^an6G>j9PXqhg}Us&c40sM`Y-v$?vh+N-Xqsi&!~ zsipa=Zm4;r`Kkd0w|>)f(00@EwE`_ytI$TY*R;go?_T~ZRUjO$E2btrRq@~C*%R1ev1Tx@Q>jdi* z>k#X3>kR8)>ogz*4z*4Mre2Bdob7_`imijaQpX$YXa#h;{=m2!;^^V1<{ar9?HuJC z>kPZfT`8BrRq4SUaIJI2fd^Lr9JnPey~_+_I8bn#$F<5u@Z_*gc@6_J?YL(LFw-hL zTY#Q+#*+;+GM{f9P{z9v{I8*bfq~Az0_zr-8>9x;1lI@G1y=)C zYgJGf68vAsx*L8NZVMEtcG1?+?$OTCj?pH-mFg7j5^Wsq24t!B(H2oqaNDcs`{lYIy5w;Ra2>S@@30r_@?T;|#T`{T!%6Mz`LhP4*h;FsBt*<0B=f!y7J)1C8^-IDW({fmvVMV!y< zMnLYa3zil(<86*? z?!Z4_CSSnk@?n0AALVc2%YX*05$FVRK}=v0vKc`8MS%C)R@qM3OF2Z@RXIv2Q+7};P`Ooh)hKmOVAJ+hj{`e*hike4adxC; zlxBoxu%^AHm!^-VC$M70+8pf@?OmX}-qzj%((5Cw85pezT>&sz@98l5_j-mwVvrje zn(CP9n`)Y>0Fx9H+>rz_>2uRl(_AyrJPY`uI5QsjqVvrdGuFJ=veLq|LO|stSo;H+ zQ)T5?1y-(A0lZE(;TljZ>)UbmJUhXG2fifMk>wccsPrWl0AW(&Xy)wTd=0e4??705 zrRG#g}(z;t}HSLSZ_n4W1_== z`c^HLiPnw%jaFK17h^4ey4F2jH{L1U5Nr^x4FtBrqDWDGQLG3Q+*wc*FA5h065&LC z!kWlScoHFCmAMl~5+@SJ6DJd=5+4&^66caNQ?*icQZG|)QXhf-^(FN_wGn7u$I8!x zEx^vK4bTo~E3^$d0Ud(dXM~T0JA}uC6NHn5=Y%taW~AmMCK*d6lSyPM8BZ3I7m%god1NjbN1jg> zQjSp1P|r~hQV&q~S6+*EZKEEgZlxj&Ib#9S$UMV5&1}Y^u-3CSvf6PPbLMb5bJFbg zoFD9}oI0E=&H~O1&O**4&InF#PD4&Du*_Vpx`blaLU=hDAxj++=l`WE;lAQqFbxO8hwpX@Jc3GB? zl>rI+nry9Xm2A5#OG!~8N}h7AQV6zMOMo-I0Ep8}0S?P@Hu@S*`-4u2c$ELEav8}ePun~a;>jCbo(xGq|fZZx{ zs2ySlD7f3`FgXN{n$FoyCvZzAx`(>8ZUOL1=ei|s8t_amv1&WmP8r$zD62~h&@7H3B>(X8k~;4V&z zPK`E;wT?+*0HlwdiH!#S;h6YDu*Z8+oCfqm9@ykP0(giE<1@iV@5#VGOckXPg^42I z0agGN@ND8+;ujDBzb1%DO;VR^l4_c2o~oB>2GqXaDKrHN?)j7Yo7z^qrFeVs(E8$GV~d`0KJB|*fiFKbK-_(Z^-@&7BICZwkG}| zv>?_Z)+IJ1HX?o_v?6vU)*&__ekHUawIXTBxnvi)fE*wj$$4Ze`471#r5mLOC5M7g z9#daXUsG>VZ%}VhpHj872eg;8$F%3P7qnNjC$wj@hqQ)tF5S)WGH6VgNnnzgc;;2+ z4Q4&oES7?`hc%l63htfEna|O4xEz?n;!rtcj+WDp>*bMoc-{)0fyd&Rcvzm0H-abS znRzPyQvOZ;4gNC0YQZ8w8L}EFLXIFCk*i1rQi|+C_95$#?Z_qMJhA~fhx~^eLzW|R z#S6s4CBx+{F@caJM4sVZgm8EQz)`@fW~&`5!S9@F*)9(jErk~ar( z_*0!*Zv`eeM}Ney*s#j5&9Da8-eF_J7%~nr4K=L=ruKW&N7GVs5%8|H<|GiX3xRsQ z+w3*F&6OJULCZd%M3(_M`XJacf7ZI)y4AV`h|Cwn^pN4Fc0bVqpGcnLt&?F$ANs`*i%)_(W>0cLGG|3}|{fncB2x#DE{WDv$%@)?n~z@N)1bNA|R}`0OD!ONONGAvVlQL zkHS$3kVv^vMwAw98*3Bm6w}5GF?~!EGsNxjym%^}h@0aDKnGnNx5Q)drNH4_Q?$Hj zWzmYF;zU`ZG;uC*B~b-9kU`>}y%N zY=8N9U>4TER>A&)GSCmG8nzC$F19B2Ugf*G{a&08=f{O`0o*6t*6cyV@x-yjVZ_PA z5yZa4Y+@FXMAQ&R5eE~8fD_qbayfY$xs1G#yoUTASxTu(`$er!%TOE8>d-y_RpB-5 zEsaO#(-$!c8C)id$zeWW-eEpu-e*2#K4Q*cDS@o8gQepLIWi7|L*O{UQLuEsg`?nz zIk}uwoG513$_Tl=XB0_g;dSyl+!ln57ITKc}~5YG*T_6X3l%0 zX$~aL60Z=S5T6uJmRsa*IaV%^#OUm>!ItV>#FOfE79%MJ=2BtUVTs> z)933efMvfIX!ZvU*MVz)$uQY8!8FA*5%}}tO`A*`O&iQx%*X$)y`M54F)uNnGoQ6Q zvZB_HKuN!4eFwz!SJtQ2J3vi;Z7sLn26FljtJbCmPB|!e;I*xnz0^_WSOhHa5=Y9> zI&WfLySxwX0eJ)Sn&&mm>z>yYxYqB$K*vAeWjlcntpi%L0BF%7U__IE8J!JYr80a? z{I&hffXdtw*v$I_R|2Pihg=k>2z(E04V(ck@}a=yzzrZI?+ok#7ILLsED1geJ_x=5 zBJsQ6``{Dc65k8H2|f-=LyJSpL;Zm%+%eoO+&J79*uq`Iox*#=9fA7WInp=ME7A`b zz?~|uBnNv&kf;pUywa#XIwUp_7!X5aUf}HJ$6T=!@qIwXeG^|Fe-=Ly-xl8=zY;$c z{}kUE-%zxrsM3qAovaHq*wFvo*RHAlsSc@asd~lDfzsLrc&nHG@2*}hzFvH#_;&Fw zAf$dQ>0LS#7^wPEd1?1dXa?FRS|j>A)>cl8 zvxXDkoagN19ORtkoaPMSp5PtfRq*!l_Ve!Wj`L3Oj`Gg)4)Lz=uJI1?H2jl-GlD&W zP~KMFQyxun zAbh_F`~({JXRxI59uT=d1pWr9=2y%A7I+VY?yrI00dY_oEC80sjPOw4R!<9$1%mbX z$l%Br;7YHK{1?$iHBm!U6}3c7(GjtDtV_YDg75L+1%nH^75t9(FQ@^GWl->NlY(AA z4{2F2sGx1ZzM@r$)xayho~U$)TO}I;k+^Y^2Gn6eGL;+x)Zp>J3?7&o3-sV7#eIMR z+#YDa?SSk11h~GtfzSJ^ab@Em6W%32`5L!Q451NTKnl7U6XY6Gh06LABxqx+mb%t}4bBgnV zQ^6U=9l^c8JIlMpd&K+1d%=6h`^p<#XkG znndzA6cc}p#P}|{Q*BE_%U|<1a|25y2z$@+!1BcM&~n>y-!dq7QtqtW(YeENr|0(1 zotQf`cV_O?+!48BbLZra%$=M&ICq9EZToFg+EsRiU2a#~Pdbh{_BxI_4m%Dx4mi#@ z4mw^r>N=IqwRxc65qDm0URho&uP|>@UTK~;Z*^WEPv|-9y$q!LE8dgdb-=pc>pktQ z@K#FmGk`Te5eV{)faKmbzkPl^;JJ6quK{HDN}F8`boD>M-@)&|SYI8Q8=emo^m*YK zz$l*vtn$eb8}P&3KoEBVLwsy(d8|BE7F$^0Ea+39EtprpFPLA@rXaUKQa}R=4YdGY zaJHzT=v>k1qLW2ifPH-<(IMF>xg>ctISc60BY^@93LgDeys>m$>Dtl_rQ?ByoDXc` z2S6siUw*fI(&G7xpJW#iHxh4?Z;{8)7_6t9;arsWh4+_Ni~p1Ni}#JUi+@khOSmm( zea^9*eL1^xj^=F4*_6W)8^oK$brtm$f916lKjlpojTOI?zkw3;U8z@V)vGjzG%dA6 z9a#qo9>wVn=nv`l>G$g!88;d^Ca#HXI&L~)>Tl_7>1XL=>2B$2d1=At5^|Zj)Lc$3 zE|-!!$M(ba%ci&M?B^X99rc_S^VZ~@&%2a&CU0}z-n>0||K)x3zVm+ZKJt3}Tm7iN zPyX2a0r~y&p|{C+;R5Bzgen`@bY8cx*%RM{*&MyceXhQrW4!sY%6? zfy_M!7~G9Yj+9g{tp(icEFfQ>Ej?5Er}T8`;Zp1(#v(RYy4Vuf&cm@Qi4VvR$xp}` zT6FO{<`>R4&R0%`Q-$A{|449O@I2>!&YhgAIqemlfxOgC(NWP-(MC~A)lfxNEmIlP zpx`l+`he!F=BdW3^=QFQ9o;E?TjLg^*o2rSSteV?SSDIVTc%jVxzb!?E|Qy*n`cw! z?zHW(?Y7-=yw1Cy_a^Up-m|>tdEfGWd29L_`hIx-df9%KpXg`$r{>f1$@z2hsrgy? znEYA!l>9oOdLc_#750X8VM*8&)`anqtjLB)AetZD65AMiTyVMIVZpJ2(*^f{5PzfK zNx^xb#Xl>kbmQ+8ZBIN+^h@?ma)6BfE6D`+R8x+VQ?%6n)J!0mw<>8{(y;VZ>C4g^ zrFTpHi#R~y&RHZ`6faMf7nE-=|BhQt+(q0;+)mt2d`6x^n@+RRzS7PxzH@$Z+VETO z+XDKnxA0xgB*hTLFhvuUS$$E%)$w(`jQxxQjQx$LOkYh4EYmFuEgvnPEE^-%TubGZ zjBspn^2El+(X^TVvjrpVsdpu*vW zBMZkBjwu{g*uU^e(HP*_4@>?_3V}LBDxL|v_bDZlfas0~9{WIGsBc=debG^%n=b+u zdE3SG{~O~Iu;a0(iD!vth&I|a#uY{u>mR2Fzn+*Q#wy4PyZV_Xpq1$)l}GW3ZAP|* zWy!T$?GGI)zuf;DjHtB=wGPF?1z}EPPHaXYwh&i1F*zxDEO{g;PJxHUz?#2O(ynxF z*-)Uik1xBr=;opk|98y`7oQ{EU{v9D=lAFL10NkX5#Q0AHSsL4g>NayP2?8lK5>lk zO!f@*1@fcONE9w)7xD^4NqLH1O#Q!KU#ZkzF2R?P%7_4ITwIQpUnagL58yKuN}Wn~ zQxDmEwo$&ZKCZ7IKVDhzWFlYhY#%xt%PE|eoRgf9JegFaSS8(nRnIE>vFPU_3vk_Q z|6g2BGh2yag~TGWjQ1V(FAX1wsR|W^$`rHsMoIV5bLBk69eqi@zVJ+vTf#3X%Pq@a z8$J=U7UmXO3iUvx|5lC<+6vp1_fh4P3@xox<5d<=@Z^&8()6PP3g_)E$OZ4ZRzdl9qFCvUFqHFJ?Xvaed+z_1L=e5L+QimBk7~* zW9j4R6X}!bQ|Z&`GwHMGiuAek`SgYK#q_20<@A;G)%3OW_4JMO&GfDG?ev}W-SoZm z{q%$M!}O!{-3xS+w{Bi`}BwO$MmQ4=k%9!I*q0?>96T; z>F?7VIe>EG!;m2>o`{-*z>tDsfUYG`$|23ixXh1N#vpmouDXnnK++7NAoHb$GE zP0?m(bF>B85^aUHM%$om(ROHiv;*1^?SytlyP#dsZfJM32igw(M#rFI(Q)W_bOH(ro|=eGLMNkB(5dJ&bUHc%or%su zXQOk_x#&D}KDq#1h-RS}6hg5m4$VgKC;=s+B$SL&P%278!ALL4L|G^s<)B;?MtLY0 z_CtlJ2u08wRE$bcDJnzdr~*}@DpZYXP%WxM^{4?gq9)XgT2L#Ri`q~yoPjz~7wSgy zP!H-weW)J|p!sMJ4WVH)f=1C88b=GzLbM1?ph+}^7NaHL|DSRi+&rU;&~kJ!x&&Q{ zE<=~2E6|nbf9NW7HM#~}i>^c0qZ`nT=q7YCx&_^eZbP@DJJ6lzE_64#2i=SAL-(Tx z(1Yk9^e}n^J&GPfkE18hljte*G*x*iCVC6K zU0Lw-9rP}G5512*Kp&!y(8uT#^eOrbeU83BU!t$j*XSGcE&2|9kA6TuqMy*u=od7N zqG$&Fihe`Cqd(A}=r8m)`Um}s{zI!|s%ENXs%L6sYG!I>YG>+X>SpR?>Sr2c8fF@0 z8fThhnr511nrB*MT4q{hT4&m1+Gg5i+GjdsI%Ya$I%m3Mx@Nj%x@UT1dS-fMdT07% z`eyoN`ez1Y24)6j24{w3hGvFkhG#}(MrKB3MrT05Gt;u@Ss84*Y-e`utOi-LvqD)n zi4A_r=xSEuEHAcE)}X9{tfN_HvQB5Eu)lGV>^<3CNYyC=C{5`97?1he#OK5zR$VT{ zZCN?}c4m}hx@59sykw(lGk6fX+ZeESN;JZ>!3@A;vRYt119l*7Ki_T?od0Y-xz~yo&TsD`=<#RvsKkz3B z#|p;?#|y^^CkrPChYQ#J9nNf@de< zG5D$YKKLH^+4v8{m&E79sic{t1*Ey8`6L{v7G(*XrBX0C~=;5xWIuAXb< zs<;~NX#OWY%1`sZ@H70G!r7Hmz!elBLAXFTN5~K^6jFurg_p!_CG8{ziBKYzxFz|L zh(rm*O+->6kxIOhB1xG@kj1Hs0_%Uvb9K! zj5pzP@qD}lXjuY$2rtKT@N9ev595V+9{wBg2T@K^k)$LsNl8+WbR;`TOEQzxBn^oR z=D??%6OpW>29%kU9l%e$NV!1SN;yY4LfJ{#PdP@pLD@n%Ksih~P1#O4Md8x;v;tZY zZ3cZdeItDZeF=RBeG`2(eLa0KeK~yteHnc%eHDEXeI;Co7j_1@h{1)l~_1LZ1!`bcFo!A4|-PjG;P1u9j&Dl-a z4cK+r9oQ|n6S*6>+qsvy2f1sxJGp1M8@b!Ko4EV9Yq*=aySWqjtNHu*bp^lqH3ZEB zbp*fo)dlqh4Fxp?fA~!WO$1*B^@Mpsi7+gT3w1)XFeUT|-9n8pBn%2o!o|Xvuvq94 zT7?dwL1+{f3VVv};#~0qaYspkV@xf$6S-5%W(-4@*(9h;b#n2;Ekn4UO~If1!~*@`)XslXh; zT*KVM+{Wy~Y{T5eoWk6|?8O|$?7_Ul%)reBuJ2LY#B57;GCPr7oSn+vi(iW0fM1Ef z2+l%NE*!%*bnU`##NWX0#Gk;Q#4o`s@cZ%0@CWfK`~&=E{0>q%X)$R9DM(6^7LiIx zg`^ZILMkS$B$begz>kWCKmmSCc|iF9IGE3r`;?!QKa}5;uasw$FO+YTyOh_IG$liM zMEOfWDeoz(X$$C==(p(S=r`#V^t+Xl=ocQ)@6gZCPtniPZ_uyOuhB2kPt#A*FVG*- zztev(x-z>lyED5mdoVXMS1^|`OPR}=E19)fgIGkChc%i#mW^kt*i80Jb~bx9doG*C zUcjEhp2lXed$4D)$!q~z#-7HV&b`QO2-k-*+(vM9_$~Jbw=vuR{?7f%tpYcPTfjfL zE#Y6>Pu!{e>HM|)L;O*Ku7Y8Lk%A6_UV?6d;e!5xae|J55rVP6BW^5gB0M7eB0MeJ zTX`P5cn=uF--Wk?hlRU@CxmZ>&x8+!JA~(j+l1eQUxgopPlZQ?dxRH+FNL3kTZO-c zCx!2Y=Y$)DFNAl6KZR$6XNAXvZ-f=XK4PcXE#4`>VD(NE~Asr~~ES(^o zENv#OC%q#XF0CPLD;+0oCv7UNBJC)hRyhTHv8uFQmE7_nd+?Snd+75t?Hrbjp~K!sVYx> zPJL8;T75#jN4-~6q@Asuqg|z4t2OG5>+0yM z>ucz1>g(yh>3->cg4LR@^tB944b2QS4NVM<4UG(S4b=_J4fBi(jPs2%jWdkbjpvOQ zjW>)JjCL?{G38RO>9VPcxvJS@F<6Wio5gN%SgKp=SgTsewwNtsJ7}wIZ)9(5Z($#8 zzhysVe`LRGKW#s1zhpmQe`>#Nzh^&dzivNczi7W{e_=mw|L5rHEOg#>{&oIv)^@!D zD9?50IM-X}4JYb+=X~t^;>(LX@gV9sbisH_tKMnZ$3p->};iY>$zV9#QY zV^3gDV=rJiI4TZ@W8zpi0*;G2k86}&p52S^1mBv_jPMel#y`WiBmBeHAk-ne#Wy9? zBz&$siZ9nA{K9|3f5$(F?EGy8 z7(eKJnSGe6nH!mFnd_OuSwn#4&0tg6!pbYj<*DptY#-asjmO@lW!P@sIP5^5+Ryg4qJBpqa3_u(PP0Xs&3OXt-#+Xub#|Y9$&f>L3~^ z>Mt578Z62J9{31RM^Q6T3sEmoAJHJuLeV%;Pf-`q0P$e)K=DxV2(eV`wEM&_#Lp_{ z2d}&mKNUX_zZCbBn53|jC)G(CN;%TFlq}^+r9cdiNkh_)Qk&ExWlDuowlpbKNG(#9 z)G19#2TMiLd}*%KE_F*=NnKL2)GF0VqtbhdtBT8t`-%$1SlbiDO~n<(1H~i7HN|>bNGj7P?xwdbql{M!N>P`nqPjX1W%*vR$2A z16=c6yO&^s~eGdeQbF}g4sF#0eWGI}w3G8!{L!Rtd9%^2Moof(4|lb9ozTbSFKdzf39 z+nA$RV_2oE1Zy!Xz>cy#?1Svh?7i%(>}%|c>}TxT?ECD~>@DoO>|N}$>_hBh?DOoy z>|rn;4!};>3Lk*W;SKO2I0>(V!>}Co!ckZTZ-TXO87zf2!WMW1JRV+LIe~fI0O!FD zI0lDc1)R-4&*uv`0-As#pbNNyHbSGwD~gKBL{gDVv{AH9L`3AG<)ZbXH6pD@Bibs8 zi1ebk$RZMpRHC&ayGSX@6_tt-qI}U3kzcezWDuD}F;P$y5Lrc|#KXm-#bd-VaYP&v zhs8m0KgnU~I_Y-lHmOFoUiw=4M7m4*ReDWYMRr>HNcvEELwZp9TzXG>UwT)HO3z9U zNZ(68N%u;xOOHw~O3ze&4RPa=^o#VW^pEtW^t|+`bf5I6qM`DeqO}rLG*Et0)KI1s zO_aYC{}i>9&6QP@-xXgK^_A6>jg+}6v&y2fsXD4#t81&9s@tgRsq3i!sT!+0seS6N z>hJ1|x`w8z=8w9zri$jL`nUR@x`C#?236P5@U*b@g7%8`q81dqQK3Djy{x^Yjp+Qk ztGcoJ!TN#vq55I^5&Gf!iTa-U@%oYaIR>0zu3@2Jo?(HZmtm#>GVqK-BVx=k!bY)? zW87!_Y5Z>dYW!x5mNXIckX`&y@3XIm#(CtK%P$6NbYVOx={%(lo@YCCJI zu${MEvR$^FvR$;Dv30hCf;T(a+uLW`r`zY)+c8b-7$Y*CJP` zYppBamFrsR+T`-NlCI4zo9jQ9*R|25bCtL#9-`-vXO{;Qym{1f#B;*4*R$Dk+Ox;A z&9mEc&a>UK&$Hii%yYnV(1Y{&eMP?2zGc3(z7k)|x74@Tm-4Oh75hqkN#6?JdSB32 z;0ybl{u}<={_FlBf!=`uflh(3!SO+QkP);7R|c&ibI2IlA37S^6FL++61o+B5WXM2 z7rq&O6n-4;5v?C>8to8m5bYZM7=07{6h)(7qUq?h=-cSK=<6skMvhTq*)c-wT?~zV zj-_MYW6xqgVs9$XgSXzszQta}KEzB#o+4k7B_U0S6Uu}Z5ef)CLWHn` z;2#WOkfOSjABe-%w)`9PGyo=|FKrG*0Ij8_pr~gpRg~m zkF#4;PQTs$!mh_@#i_~3u$yzfvwySyvX8KuFRhrhrXn8SMrAB6A2_u%93E%+*Y6g~x?gDc?E@F(~td>bCd z7xHuXJU*Q-0zi3?zldMX-^jnjzrqIvZ(9TsfmvV|Ci|&gah+c?L(PdFB`NSLTyVkWG}$lyPPKWs_x7Wek~G)`syL-Zt9`x;p*P%Vd{bE zUh3}Zk?IEOL7D-YA)5Z0RvJ+7PCHFk%|OjiO%F|XO-D^%O&85D%`eShtz0Y7zSQ2) zKGwd_-q$|VKGWXR7U|-;JGxo=+4>p!h5DKLdHO8m=J`8y`$gO}Q(uEwe4L zEw$aWVeJ?@WdCcwW}ohu=fF8Ij@gchj)jhKju(y(j&F|djvtO1&I!(m&dE-#bG+-K z>xZkm`>^YktC{zV7f>#M7Y`=sl%>#ggl>yWFe`@ZYB>z3=E>#?iCb-{JRm2sVM z)pa*^KX5g5*K!|qr7M3A-o5Vn={n`Q?0VyB?mp&v=lb9}?)v4r>3ZU7@4oB$>$>H6 z;(6h@>Urw9<9Xw`?|JLF=XvLO?YZfB<+<#c<0JYAzP-MizCFI(zQewQzMa1PzFocp zzOBBh{xiNJf6AZq-}m3~-}Pq&76!%!D1j*fQh*$o5ttdk1?B{>fq8)i0Zf1ubOi0e zy}^UQ&A~mv9YJ@<9`c87g|3FqhfalVgzkkdhOUQhhfarXhE9Mbkl(^T!=T{3AK@3_ z58>zGO!#H^RrqW8ZTNHeT^J3&4iAiuhz^d{iVcX>i2aNHj@F6&i2jOJja7-&j@67+ zk8xtW7%Rq&v13)^_2NC_)#L5rz2c4I4dPYe&Eo%Je`2-bHR8SF)#4rEJ>qTSt>ZQ0 zt>WgQP*JcbTI5aSCVUA{@SZ>6O4t)e6Q>i$5}y;F5|X4MDNEK)tx3I2y(s%p?#gm! z?aVp=9fD3m8=>RSS!g?S8afJXhK@jcp)F7abOzc9?S^h*O*jM2jI-d55$+Ps5iSub z2xkfR35N;S2*(Mp35N(*2qD5n!gazE!VSV{!WY7M!fnD)LJLwhSw!ZMG315hxnwz+ zK+YmF$P_Z4Oe0Su!(=7-H~AFxIJJVhm%5v}g}Q^fnRRIY` z>Q3r;>KIkeK10QjFqjMxL&)GVJ~1%NEap7sLgswt3FbNG zNoED}6mtq|6KezO8+$Hi9;ZKNCTA397-tY?7H2RA!|BVJ!s)^l#kzBQa(i%3z@Oo_ za1&lLUR_=nUJo89cz-x=IxK8Xy-2n0ckR6eg%g)Gl$u`T*%l?yHlx>wAlpT}ZliiXP%i^-IEF@bY zTPiyw+a|jtJ1a}dHp-UEW-IYZoDx>Dl~a`rC0D6Z8k9Loj&hoktemc#uT&^mN=TWl z1O*?=P%czbl^9h>6;#DkQB_zqK|M`9UOi4dMLkbFS3N^BPcvVG(_l3u%@hqr18K4} z(=@X*3pIGnW6eL!U(Fv)N3Bt-*Se68+Qz!-x^LRQ+TYqA+V9#Xx?kF_+V|Rw_K&t$ zw?lVdN6@qMY&}j-)Km3{UZ}_GDSD~?k=|=4F%%ji2DhQekZ151mKt0JqoLSfHzW*Z z@Yu>}v>J`ZrlvNgwx(vL)~1%GZl>myPq!YnH#IRWH!U-jo8FoPW}aDU)|e5q%FH*b z%}TSv%rP6xIx}qEYT0htWbs)&R=YK1wORA5CTrMgwz{kqYtUL~bz800xK(Ns+k`fe zO=A1cw$irBcGq^#*455)upN2_-GMl04z5Gx=qhA7bPl0I?f?ZJ&Tw!X9i4NXGn`YL z)0{J%pWTz)M7PdubVuAFH{XqQPjP$PLiZ5&LbugTbyM6Lx7y8c*Un?QN4v+lN4QPy z>28C2n0uzXulu%ZzI(8HntPy|H8SegW zwj1x3xgmFbZw>D^PXq5y&kaw;v(Wq9)5u%bTh;s3)6iSfd&5`ZJMX*Td*Hk4yW>0O zyX4FBm--+2pZlNrLBU6l{g3=l{P+AX{JMZAU<+^plLPvIGvE$r1FnE0pb3})6N2-D z^Md>!FDM9lg6?2m@LW(7LPD`nFcc0&LZMJWs4x@_#Y3M$k3#Q4pFYPeV^a zFGF8KZ$oIPR^(r}YNSe}W~6qcPNZ6-egqetT=`|iX&RGbr6#D~W5aX1de zRq?ENc6>pc7#|j2TvS$6UQ}8XPZT6#iDcqJ;%DMd;(H>KP$%_CLsFG&oNAbAlv#NUL*#16!&#OB0m#GizY#2UnZgdYSy z*+PzzQ)Ca>LAH@K?Oy@VX}_wB>Tu_av?cF{!129?omHbpHr_>-%#&R-&5aG z)6^%_N7TF2chm>e`_$XiSJa18J?#+<6ny-Y2GgAkJHyKGFiZ>wL(d2>{0tu>mtkRq z7)FMTL1t2z+00wa%gme13(R}W>&)BCE6i)m8La6nIcq0t0H+UUDu>BYa?~6gC!3?< zNH}(mhJ)vrI5ZBQGoF*f;c$qYzTDp2{@nh&g*+OM!PD?`JQYvPv+}e&0q;Lv7SG9J z^60$zylftu2k~sY$vg>9%%kx5JUvg%U&3E1SRz;~s41)=>?YiT>_pChZ?dL5S%O?Z z63Av`J+dE(A;m}-S%rjoeDP;)hE zjZ&l4s5C;23;^!cwAHm%ZB*MzS4Y=C*HYJ1S5MbMw_E4XTl9H)r(UMF>*e}fy-UB< zu-35Mu)(m}kZV|HC^xJ$EHSJ%EHkVyq>KS$zA<4eG8P&OjG*Atq|s-L8>7blrg^3z zropB@re3Dirgf(ErVl2cxy&3e$IMZ4!W=RO&86nBInSIjyK%+l6=tV-pXHEczh$pw zm35c(sCBt@t@ViYu=Rv>k@bT0xb>v9!g|iS$-2jyu2|-v<8V2=j*uhh$al1KCfzICOWljzd)*h@N8Rh)8{O;Nd)(XI zN8IP#YuzR8E$&P1MebGZeePxMLiZ{6Id`dhjeC=OwflxU<=*MO=w9N!>AvQ^;=b$N z?2frPp5fl^-acNjcZzqAx0AQ4x2?Cmce;0gcdB=icb2z{cbK=Icc6EIx0!dGcc^!y zcbd1Cx3_nUw}-c#cZj#C_nYsf@3ZfV@2Bst?}P8R@2l^Z4-|a%$@k9p*0;#N)W6tY z?tkrn>wo267bp(o2jYQ9AQ6}t6a|ss_29+e&0r!_H(V|JFVrynCsZ$7JzP6nD_k@D zH&i8DBitm?G}0*2Fw#BNA=V|9CyZx;>+UJxG%mm9*BG5!FX|eRXjKDjjxF> zis#1%#>*2+6aNzAq%~zeBaKwXt9S z$KHDYH4(jy-U}Fe!`{V$9eeM+H!KlBP?RD;P3SEKK|=_EAS4)4HW5Wc+}i{PxhQW&v_R9S=hk0q3`d7^?ePC zvKM_`^l{Nl`DFQA`7rq;`E29^f)ryuTz`0es5@&i*<`hWBP?O)|D`FjLZ`@08x_je1Z6Cev{5)i(^8fXc01?C6t z2s8y21a1#>1QrF_0-b>oL4iT5f>s25-FP?XLD1u%Su3fPhTzS?Nx@_=5xgT<|2HD% zxjonvj0dB^uHgLOvf!fNoZzrvI@o9Rh7eWAwvg>1+7L^KBP2J(5Rw&=9kMgT6|y#j z3@HqW4^0kD3QY;6Lg`R8j0oEkMuqWVWnp+2q^PZEt#}?$9nn(pIpSG_m!c-(UBr`! z_KJ>*KM_3@Um`w4v`|z!5Wtk?!jzDSIe2N}ckAGXHNh#ETrIUYV_2tz4kgD*ct)l<~@S z%5>#YWwdgUa-njW(yTNo1C@|6SQ)9@s0>$bRW4QyGC`?OrYNZ>JjxzL zL~W0C1sG_K{C`Z)pC_1Vz+7|5>vnVDgW@XH(n828TnBW-ynB{** z0l!!sql?wYX2oX2rp0cI)y8JVs$-L4>&DfI)5LklcZzQt-!Z;Je7E>^@x9{P$2;QT zcxSvlJ|`hJL7$MBa6a)s;>E;siI)>EBwkBAm3TDqSmNnKTT)Td_9RErjwE|heB`KP zDw#>9llhdhDTh*!lnW_%%D$8{DQwDd^(pl^^;vb*#=9HeY<#)#=ElbxJv2WyzSt;j z{Jing#t$1GZj4VwQi)VF^?mBw)HkW`QeULLN)6c*zG-Kg3*3!OeCbRpNZXNSO|zu6 zN?(w^IDJw2!u0v+zUkeyW3)}QkhZtBv9_MJk+!q8zP6{fgZAf^zSS`NmzisKG z{j#N{wrb1UEnm0%+R{w>X3Og>t+ao(^wM_J_Sd>=e{boem9`Ah_RzlE@@mVcEg!dh z-_l0wr5&hkplz!ipk4j9fAFPTw?-GDOVB;m#pwKWOLPIcMY>>}zs^?|q+733=oaec z>sIOlbxPejU9xV2ZiOyXw?LPoi_@*vh3g`8{+Tj;LwyT<1AS|K8+}`SZG9`fr@pbi zo_>eESie*MUjIq|PJc1$M3#_sHS2QLwXEw|2eNKv9m=ZAI-Yea>uA>gtn#eeS>v0<)yRpBqrLn!SmC@7K*4V??^KZNO zRSRP?V;f_0V+UhvV>@HN-0rz;a@*y4<#x+$mD@TuW~*wea%=e3$gKnN`sVe{>ytM) zuSZ`0JZ)Y^URGXOUV7e^yiIwR@{i^p%dgD8ozLZ8%>SJKF#lHm>-?Mf_w&!?f6PCU z|0@4X{;B*6`7iR%=U>l1o&PBRLH^79%lTLT`oULh{^R@;`AojL04dm8fE5r0#oKml zyShzgscUh!_*=3pMoXsUlI5bMQ(?!#9)-ONdlh;WwlC~iNEOz#{wVacwy?Icwzjsk z-m{*!UbJ4dUb9}Xp0?hw-m;#x-n5>x(zbWDx3;ggFSgIN>Gmo1aC@vh${uEqx5wF4 z_O5%deeaO*}yCGjgZifsBO$}9t?g%{`d6%u!~{kVF$wYhn)-S7CuxFrkJG& zR}5CHRg6~zD%LCF6#)ugMK6WFVvJ&fVv<6k2vIClEKn>_C>0TkRf@5SAcb79R54F6 zUol;=G;&F#JaTtrS>)cxQ;{blYpwHGS9=|*JgeNPJgGdWyr4X#3{oCbmMfjgGs;qB zE!8e1rrfVYlx50`$_l0M*AKqgp**eJt30p7m6VcD9*;T_RS_jb-H57;IvjO2>RQy9 zsFP6_qspUhMIDSf5p^f(ZWJ8tjE;y2iwTce7ZVy28Ka0vjkU#Yk2S~U#}>pE#WslB z6gME=Cw@@;xcDLQW8;U#4~`!ge<1!vye$DvC`xc7*b{an>`W*~u>Ku+^v05KKk;?q z^Taoa4-%gy-c5X*_$2Xt;={y8iN#4%lV>K+Nam7-WHy;h=93?!JWY9-azEvI%JY;v zDX&t#r(8>Ulkz0xUdr2)TPY7yuBfl6Z>le;FRPnrx@cN!8frRgyfn=3DXA%`>eS>^GWBC>pH00tt=mMVm84;5`_kC7y=g=mlE$P_ zX?)u5v@dB()4`;E>2mEfZKQUdcCj{C>jxr=Ccd4hovsbhPSUQ{PSyHqXK2@G$7=($ zQQG<14ca*EQf;_)l{Q-&rVZ3C(S~Z*Y1d?gW`tzeb-6l=&ZNuNW$My&+jNDxB%MyT zQ>WE!)#d46-4>l$=g`@7dR-@d5B)&BkG{XYr+$#WtG>6sn|^@4pT4vHv;NWF_~N%u zvc6<}%M!EhXSFaq%X*mgDeF|$gRI9{ud-^gK4$&Q%FE8r-kL3Df5`rv{VDrv_PU%6 zIlFRp=L|89H;yz;G)^-PH;y%qGfpxNG)^#<8;9ri&mERKICoU;h}@yM@mrI&rfkjF z`eW;mykU96^GtbL^YZd?@^bTfnmU>4nmU_mo0^!CO(RWXP3=wHOwCMgrs*ahQ)5#j z)7kuvrXTsfSXl{mHLqf=oa2TbT|P zoG&<3u&-c$0as8_z!sDj?Adm0TLVioOH+&0VzHPlpDfjuVTA(<2N!m?cDDAk_O?2$ zAFS`J&#lj_pR7-+DaFRlA*6*k6pz$V##*uLAUY(wmu>{`3duC{CJDfV=`$)0cD zYEQNo*ntJ#ZM0|Fz2Vld7u*SM0r!SG!foKLa8tM~+!@YvW;k_D%!xX$J8w9DIGee~ zxqA3|`*!v1?(5~-8w^f2$+P7-@(lSF`DVFBo-R+7r^#>lUGux>cg4>qz&l`YK(~N? z0X+kH1Plo1ACMC8Ip9kGAGj_^5p-zfft5#t+2Di0FM}TiKM#Hu{3`fC@W+tXAx}fz zhCB;-6_OUZDU=Jn6M7{qN3l(jrr4#>D_jb@qDbLX=oBV}Q2{LYzCf{AQK~3bfgI-IIPM{!09kC`>Tf9x)L&EF)%DaKYBzOt%I}og>Q5=3Q<|#l zt6!;oG-EZBHA6Hr3rA}DXl7|9YG!D9YvyVOYQ|`WYo=;OYo?{9rfO0*rhZHPlG<<6 zfwW_3=hDuk9Zx%%b};RAT0pvg`ik_;+D+PA?QU&>cDvS~-KkB{7He%<=ijUNLxNVV z)oY8i$=XEiGOba&O`D<3(OR{zHch)jo372&YPCt)cx|C}tJbAmn{h~2rbBhdb%YMl z?bETkgE~xiT6a`;M0ZZd>u}vM-5DLD<8&1|L07JOprdrd^h5Mx_2c!E^o#T(^po|d z9@k^~FZ!?gP9UPC=tCPrD}$#&W@upOYG`6;W@u@sV`yZkYp8ALU}$b=XIPM}%8t&C z%2s9y~Sl z&z4DrQwwJo&MKT%IHl0r+Sl68+Q&M?I@mhE>SG;b9cV4I?z9$J-EBXt->g;E@78Lo zWc_LVZT(~YW%aNfvi-6Bwz=7V*=E{p_ENjkZnu}%i|o7X#r6#Q4*PaHZXW_qg2UnA zaDR9JJO~~M5BwXU{c##R8J+@8->H}vv_0Ak8;XLKMQ8iRGQn{&Qsurrosv0Gv`l;-p`lYN=)>pYj*F=4f@`(N&6%Sej6F&*Dm9cE> z;n+j5T%bY_;>L~680z5BsNTHp41|#UQ*Mf zW=Wn&XcCgNGP#4gx4Ny`OWj%Rqwc8gq3)&bs`ge7RIku1)W|h!G=7@Znw1(~%__|@ z&0-CkN~cz(R;R{ox}0|9Zx8FIOKB_9gVGu832mkJsP>4K*0S1i?Mdx1ZH4x%_Ja15 z_PCbRa@s4}?iqrX*B;VFfE42|bWe15b#HZVbkB7UbzgPQbk}tEbXRrnb+>d+b;Y`y zy4yOp%x}6^y8F7t`Z@Xq`nme)`h|L5{VaVSLr+6D!w|zj!!W}P!vMor!+66WgSTOX zp@(6(p}(QKVT@s%VYFd#c3ieKyD;05{U^Itj(ZN2v%y8ded%` z(Ntz~no3Lsrc9I7APG8LOjO^j)$X_x6r!PSDx1@yL?+wN>T68Lc2t!?+W zb+dG}cv}z)W+}DowG>;*z*SK6d52|}<)-Df<%Z>!<%eZqp>N@$LZNVyb*y!?wTZ2P zt)8ust(MKxR^KMG)v?vKRod>^>e_4BW%l0oVfNYfx%N5sllBw#qxK5>VLNLV>{soa z{g{29z1+S6UJNgQXTt&T9C$e_hv&k};6?BfcqQxy`@=?Ow)3IW%>}tyxx8I{U42}= zUA`4 zV&%`^I-yNN8->;jZ5Y}(bW7-i(EFhe!d@yKDb6V_D{d>!Djq8CDK07ADlRI{D;_9T zMG}z>*R@skRC%ddsrstAsJg1Usd}qgtGcT?sQRcHM%Rz76YU-?i{2Go5?vgaprk>VE1m z>UZil>Ud3@CQ+l(BxsbHWKFatR?wl zVP=EO+L^y}bu(*p^)uZwSL^-t0s3Y7VEqccpFU8(T%W1u^_*VPFEq?F%r;CkEH=mu zOAK=iOMxGs_|?}i*|5m4%rGT8Av-?XmR&oiPENfXB&RF~&Doo?-k4~NF)EBoV~X*J zaZ#>s?t7wa~>5l1=>AUHj>741dX^-iJ>5S=`>4WL1 z>ALBd>4K@!bj9@2w6Wk$!QFz#+j?92TKZXfS$h0E2fxx5-ojb#TOL>*T2>S;FAOYP zR#;J3UU;DJP~lAL4C@qYiFLQNovo$K+t$(6-PYdL)#hdEY3pX|Wb0sSVLM`LV6Sg) zY;R~EVSi(PYky>aV1H(RVSi%(WWQ#=X@6(GXTNQKZoh7SY`#Cb{Ohxhi>kHfi>!)}$tFx|?=8twH+Q^oaDX88uqBj6d4;8Bm6#t(8$PLzdAn z8tds3<^V_VXa|}A=D6VSZ}~`GK`tVEym@!^4w*) zOLP5l{d04+PRW~;$LFzmR34qzz}(#Y)8u7tVs2snV`^z`YVKujYi?u~O^~_DRL9)d z+{)a{{KHhwTy3gvuK9aME&eh!G)pE=b8Yj3f=2}p3;J6ISoT>CSbkgnSXLFTE?iT% zvhZ->k-~-6`PSvuxz;(>#n!>Lp|(M`ezrcg;kMqk{b2M{Q+b25eI2t=@J6bzhIO;iEuoW(bVK^Tygtx->zrV%ecGwI%;4;_(7r{1o z2V4p};hk^=ya(O}m%zJWtJChZIiEY9IbS+oI0w4=y8>LRTtTit*K${$Yqaku;5aRd zj>^mBhvYK@W(1rKycqa7=y!1YQ1{4R3XjNY1r#|&HB~iRHB&W9HBB{L)iJtVblYf6 zOzSvB{G|k+q(Mmol9s3!tG}qTG&)VD#-Pd23&+9j6NAXGCF5;%jl5N zHlt@o|BNmfUKzbJI%Rl+zNLv$@63*w?K8bHyJvRD?3+0|bG<%7zd;|V|DjJZBpRj} zk_{<_ra3Kg@EoHt+ZdD^kQw7h+J6U<}G!_B?Teq4T59<_W< zz}$fAftNw@w=SVxp*=#ohBk<-8(A;1(YmE7xoVkek*ZU4=jc7rsWG==ugBhwy&1bc z9*rNC#3ZSbqmq}YSE!e(1JwQ?K6+x+H}z+Ao@PO+F7-iLWctvIVHra*`eh8x7@pBD zvsY%1%s!dknNj)*{UQBNy~eP`kZ#B@Xbq``mN^ARv(aYEH*Pg&S9=0uEDO!u1HsbYlmx`uXWKYzn6Z|%jX5$3LKER zV5Qq?kJYtS_YU_ z8KW}BW(>+0lQBMHVCLY={+UBEzm=OyPC=T~QKR|nTf*9g~e*A&+R7qDP; zluPB>;8MD-%FoN^2drP=6Z$^vLs;|3m8xJ>plX$>TlC%7=dsrlMket|T#`a<(dbjx zr%%ZknK>eJSmvBev!TG?G`fu2jj-`hUU}Y;yh!s}bAo`4}wVg62nOE6j9Wjn5N1UUDv$<1p*8gk4 z@5QdQs!&yxT9Gk6b6n97#ev4M^R{!u{;vMF_%zKshI`1{!{@xMZf!>R}L%f%I2YD;JgT4K{!@UE% z7kh_#%e_~6M|!XJUhcitdxf{J_d<}B&EySi_hY0uN*pbY5yy(-#PQ+;aiTa$oGeZe zr;5|W>EaA=rZ`KSEzS|=iu1(z;sSA@2&O9%7mG{8rJ`J1Ci;oXMSn3sTpCQUT8t56#W*n@M28psNDvdnBr#b` z5!K>GQ6r{`o5VCRUEC~g5w&85s1q|qy_h8$#B4D~G>W<6RxwY^7fqsBED*Pe7O_yY ziZ;iY{@xSS0QccZ$X0F0n-1EtZOV#4>TOh={0&iMU9Jq)3Uh$cU`SiM%L? z`^5d?0r8+%E*=sq#7gn7ctkuZ9utp?C&ZKDDe<&;Mm#H?6VHnm#Ear3@v?YDyeeJ; z$3OAsb@7IHQ@kbK7Vn66#e3p?@qzeId?Y>=pNLPzXX115h4@l@CB7Elh;PMr;(PIf z_)+{MeipxoU&U{tC`w|LSS@}Re~3TDU*d1^k60r@lAGi%c}TS+nN(YRwrSny{Hsio9PYAv;q+Dh%D_EHC_qtr?2EO|*?q^?posk`JY z^^kf>y`jTBczeiC~34bMj9)Plg3LEq>0ib zX|gm$nkr3`rb{!VnbIt2wlqhYE6tPUOADlhlCQK#S}ZM*mP&GIndB!em;9vwX@wLh z1xYKVRZ_6DT3RE8NTE`g6fUimA|!`e*@lX5}EyYN&Qk)boB}j=< zl9Vi^NNQ=Lq>)mkO;VbaE^U^!NLndF(n*<;UdoaTQnr*M8KqoltCT0@OD4%I6-e78 zi&Q9CC7WcI91<)!C6}~aDw1|cJEdZ2msBF{mP(~PQkk?@LL^keBwQl?TJRSsQ4%dN z5-V{MFA35F>7;Z@IxU@%&PwN`^U?+BqI5~R zEM1YVO4p?8(hcdRbW6G|-I4A}_oVyM1L>jkNO~+ik)BG=r03EL>812adM&+?-b(MJ z_tFRHqx4DoEPau_O5Y?=lB6oBTKX>ikbX+Pq~FpXsYZgT+^XEGJgRC{$*O8s)v2mm zRj;akRfDRARgJ0|SGhqoHNR`-6!q|OgNk=7{MWVb2A$h631my0w%85&@qNAbKXWnu z^Rq=z7ijv989N|o>JBvoL34{BC>U~we4s^;2Q(NO0+ken?{tUe6%B%vP%UTzH0i&{ z6lmJNWES*KnF@g^6#l0`U~B2WWI411iUE87&$0#z{g*^Q|CCT@1JLwufxuSWza$BY zg_0mQNak^*$PH@gm9XPiQ3GfiIN}348$(o4eds9of2*#OL2dkYxIt^W-UqMibPE9M zdOf~^^`stOz`Dc0r$x=7Ghi!!(8S^y#Y>9SyOtFf7cVWovTIWDpW?~Imy3f-W){0a zUW5PrK3aUBcuMh{;%UXc#czwn;%~+8imS@Pi(ePN!swF9vSlTU@jwE>uh8>%&DwMF z(3$0baSm|5g1plTaX&2~Vs$}+7l|7+X?TI-0;n=>TcaGDCqYped ze&gUSWC6YsFBO*T3#mNH`R{&l?9DL|3`$wZ+^;--ggAC>&!M9~jxA@dVG_0khoGya z^LJmN?;eUiy6)JTipwQs#{}V{Rww}S5(qB%U2&gyL-p+;^S*d zmzIANRQnbm`Lyrq!4;Hx{|#!zVGKP<+$#BV;0d}+__Y5vi_vAruU)ut@Oni_@ymTr z_r_DZsg=7*-_O~*lG$0jrtHMQ!}w+5Eq5D1g`xw0NTPIR>11R%N|43WjJ;1vA?PJZ zAK6%Xt~`oMstns5SsZrs6s9~9eJtQm@`**qiVrO)es<``q0lN#Ny))8$14u*-hYMP z`2vF0m#Yr{EJw;?=;w#0l*}wq?_G$CY|()keC3|g>xqkMFYr{)UWb~d;R!_SUk0d^WD9mB;ug7N8J6L z3@J;d!r46)5Ohu`FReOqfjGto?4DQQU$N&H1id@{@%Y@b1ysu6hr13_rzxatSJ~yG zMDch0ZRz3Sn|tr?*;o-@vJp9b@MXn|5(3>>TD`9p^pS%gfpLevzj{y}1-{R{_yOw1 z{@8tQ_g^aUfG(H2LucYq09UsUGzfT&VbDO%FP`cMO?A=C(J3^jq8LY`1Fs5#UEY6-Q1T0?E1wop5$J=6i}2z7!wLtao9 zs4LVB>JE8BJ)oXYFQ_-v2kHy;1G@V|1E7KbID#SI2!=t!p%KtXXcROW8Uu}m#zEtO z{)xbUO@^jGQ-R-_4$XjO0>3pIngh*+=KaHSErdW)RA@2qRbV=32m}p6V1fWB00M!; zP!I&B9RdCe1mA-iheBacIJ6ejA2dy&br1+w16EK$Q4k1+1-=SQISy=+2z(X@5{J~# zMo0stLWoxy)Xpp4t&>*|FE6hyUMJiKdaZIB<+aES3~_=$3K{6%S%$lMHTP=abp)1f; z=o)k#x&hsUZb7%9JJ4O|9yHJ`$n7EY2zm@Xfu2Iopy$vF=q2jb$6^~9M~(8~HjJqZCS zb%Q)sF+qhmp2?SjZzK~cZ6nlMxe{`tJRa6#-44`R>!z2Dc2m>_x7px3|Ho3#$ER6A zqn@SEs@h%Z3~*C<5gtQ_4IeSG4l$6T|FJcy-A>5Oy~~tZ)7-;n&YZaxnl)?gI%vN8 z!iByd(7v|6hd(su_~a>}q0^>A^OSB|yBLD(@jmKiYRFC2^;Sb45*o0g4^beS>!EHo zTBd>A6kYcofZUFE<=x!7l>|XWQC@R0@884nfJ8C!c`!-9csqkAk^FwmnfG`=JF zI8;*N5fb9&*Hi7Dmv1ryEd#ykj2*xCK;wXMP}izIBD{fsne#F|l#+35iL`De8@&&NVfi{u>W944jGoT>kB$UjAPX z_1}7^ENGNhHuT?nC>u1|%K`oMP%h}-9;(diKRndU|BZ*L`cEE;kdZPqUHQ9C94cSfEE!l0^9ob#kJ=uNP1KC5_BiUow6WLSQGud<53)xHAE7@z=8=1Mf zpt`YF6R&O65b&+VZh3Cg|35lEXMqCYX1K%@2cNdf2jUg{a=sr)Bp1NzrOq5z4~1JrTT02w`#Fks&<1WZz=WM z<5}jp*AwwXJuy$*lkg-xDNovy@nk(YPu}x)jo`V@bHC>S&x4-jo`*auJS#m9dmi!h zfPy_cL#shq14;-ep`M^!qzwaG;h?MqB?1%$D3O2P$yf)r)`PME6eTDsP@?|6ql*Sx zF`&eP68HB%nGo255I4jf@jz-JGNd+A2dRtHL+T?9kcLPjq%qP2X^Q-=@kE*-&5;&J zOQaRj8fk;HMcN_l5f7*X(h=!|bVj_8E=X6T8`2%|MtUGUkzPn|qz}>;=?7RJq(3qM z8Hfx*1|vg|p~x^~I5GmTBaukx9s8WC}7BnTAY9W*{>GI}4eO z%t7WN^N{(-0%RfLi!4GG19l0r6pMs^`3$Znvy6xoB6A$t)7K@kkW5dt9*3ZW4OVG$1D5dpCKkp0L3KZX&mk z+sGZ{E^-gKk32vg0`?K|7^{6_vDHQ;8|4RuF7&|0Vrt&P?}>!S70`e*~RA^N+f5!x7S zf;L4x(Pn6Kv<2D{ZH2Z*J)kydTeKb89_@g3L_49KQ7^O$+7<1Fc1OL@9%xUr7hrp% zebByWKhy{9j}AZwqJz-E=nxcGI%_C83>}V+Ku4mZ(9!4^bSyd!9gj{xC!&+k$>u5Zq48(}nusQ$AjJc! z2JA*ugQlXJ&@?n1-HdKQwP*&a18gR$N3&1^nvLe5Ml=`QisqsDs0lTr1?V=^f))Z6 z1XZDS)PcgN6Lq26(IRvQx)ZR)=q|Jb-Hn!_d(bj;FN&ZjilI14pd?D6G|B*$MLCp5 z1#};}A3cB`M9a}bXa!&^(ZlEw^eB1^J&vA0Pok&L)94xWEP4(-k6u78qL%=B8NGsD zMX#aP(HrPZ^cH#>y@THUYiYwh^gj9keTY6nAEQsur|2{EIr;*9iM~Q#qi@i+=sQ5a zM?at+(NE}S^b7hG{f3IDgjNB~)#!Kh2l^BJh5knWpf#XL()iIpzViz*=Ihu+~@`tS#0KYmarnI%1u$&X^b01?!4+ z!@2|38|#7f#Cl=9u|8N|tRLos^~VMPb|5wg8;lLXhGN68;n)alBsK~gjg7&^V&ky! z*aU1MU?*Xdu_@S8Y#KHln}N;5W?{3jIT)yMwj1z!bFq2Yd~5->5c9~FddeO>9H)#fMsJjm=Vjx zwqki$K4!wqfCYoNFbf9Klwmf^jyW(Gb7C&QZpVtS9oSB+7~6%FV4&Lw+k=&1doct< zF$}{o0mJALs$h?i5@oHPdx|~7 zo?|btm)I*nzsBBRZ?SjSd+Y=D5&MLF#=c-*f#z?R2zsQduxji(_5=Hg{lb1@f3OOneqT8=r&E#pmJk@dfxo z+!tSjFUFVPOK~~A4EF=u9t+qwJRVQL6Y(TG8Bf90_(oiVr{ciU#!Yw{o{n$Ex8Pbl1J~i1 zxE{~K4R|)5gB$T&d@G>y@O<2aoACmC8*af1aVu`a?Le~whjAzF!nfl^_zrw0UX1U; zOYq%zDZU3U!}sC{U{M^yah$+OoWg0G!C9QcdB6(zK72oZ06&PA{8v@SFH8{5F0Ezl-0)@8b{f zhxjA>G5!R9ia!JFbNmJV5`Tri#^2y?@pt%p`~&_Gu%GbH_!s;u{tXv#39rJd@$dK# z{3rek|Be5_Yd{Cd?;1D4o$w%P5i+7SQHQ8Y)FbK>4G0gYA<>9vOf(^y5}rgeqB+rm zXi2mpS`%%EwnRIkJ<$QM9f?jvXTpo64`VlpuWXr4+;Bc>BGh?&GJ zVm2{{m`ltf<`WBug@iA$h*(T40qjyjPAnt*h~AST(Vc&=9G_CL)bU zCpHsX2rZF8=!i^0Ph=4WA{($dgptT4wi07s@R(Ig{3JEJ=BkY8O zfC(qzBDNDn#13L7QB3S2N{HP=DcHjvqKw!}AOuQa1WphHNl*k0v@--ta0E{X#6Ds_ zaez2TloN-D3ZjxYOdKJO62}00oH#+8Bu){hi8I7m;v8|FxIkP4>?PtdafP@_TqCX% zH;9|WE#fwDhqz1JBkmIqh=;@@z&<9P5KoC`#B<^W@sfB&ye8fdZvp#`cu#yFJ`$gZ z&%_tvEAfpG35lp8s)_H!58@~B3$VY5KST}aOmidMNe{9XDI;r>bx04WE?JMPPc|SM zl8wm5WD~L}=}9&to0BcbmSiikHQ9#zUDK9qN46(BkR8cRWM|Tg>_T=WyOF?RdEH5G zvIp6d>_zq_`;dLfexwiCpBz9ABnOd$$sy!WKo28_lOxEHC zGKowkK~h6k$XvmL`jUq0ZWi1Ns%nW8`u21bLD?MV=QeQn`cwm|A=QX#Of{jJQl3;ZsyWqy`d!nKYDKlC+E8t&c2s++1J#l0M0EzN z7uAL8N_C^UQ{Ge$swdTp>P_{b`cnNUAF4k!fEozcLDXPs2sM-%Mh&M%P$Q{P)M#o9 zV8>G9sPWVUY9cj>noLchrc%?W>C_BrCN+ziP0gX^0(KrXpISgIqE zi%=+qQ8-0VBt=m)#ZWB8Q9LD3`>6fY0qP)N%c(I8KXu&1cg z)EVk5b&fhuU7#*fm#E9s73wN=jk-?Vpl(vP0DGIdL*1qBQTM3_)I;hK^%y++dHT1; zW)I-^o>9-K7t~AY74@2WL%pTmQSYe_)JN(Q^_luYeWkvEJ&2SKTvMYpEg z&~52DBZaIs~wxbQm2@ucaes z1szGRqu0|LXeA9SR-mGz=x92Ij-})1cshYjq?71mI)zr#8)*%lN^b&m8l6sWrnk^q zI)m2HnY5nHq76WEHl0Ho>0Ej%ok!=>CfZCF(A#JWT}XpqL)uO|01MMj+C^`ti|8Hn zPP&-hMVHXK0b5G%q08vKG(w{^M&mR=lQc!sG()pANAt7**nRYV`T%{9E~gLC6?7$i zm_9-u1?(~UIDLXXNuQ!m(`V?j^f~%GeSyA6U!pJ5SLmzsHNak{Z_qdCTl8)E4t{}rU}!O@no7Y z&6yTVOQsdmngN#H)`n@zv}4*c9hiB;m0bZ@2))0gST z_%QvM0n9*V5Hpw=!gxSKnPJRuW&|^m8O4ld#xP@_WzuS;Q=6mM}{hIkSxMW0o`iOaQZj31otpmCP!@1~aRf zHB1N-%7iiD%vvUbQ81B!UB|3vHZV#?#Y8dDObipt#4+(q0+YxjG098{qXz6oM#H2s zo0v2vo!QK6VYEyJqXTRvqi3=h1C!0rzJL6zr z#>u#t?MxA~gV_n#VrCap!t7>BnLSJyvzI{_l))IBAsCXO7@A=K%Q76pGXk@Z+0Ptc z4l?D;A*SN5r7e}rVde;PlsU#6XHGCDnN!SZ<_vR|Imeu5E-)9FOMt%2Tw$&<*O=?f z4dy0ui@D9*VeSIW_n7<41Lh&~h7#Q&TaeAdL8 z0b9UsV=ZhUYh`V$oprD<>ttPk-Od)VJJ_9UF}sT`VRy5o>>jp^-OC~@%3>_e5`ZOH zilteGWm%5pS%KZh?q?7DwV3rFTh1P0E7(f*FnfeO${u5nvnSY->?!s%dxkyBo&)rG z_5yp6y~JK-udr9yYwUIQ2741|zQx{V@342-d+dGo0sD}B#6D)9uus`%>~r=7`;vVH z*w^eE_AUF4eb0ViKeC_L&+HfWD`3B|A}g^~Y&H9x{lWfZf3d&WKWq(nB<#kya~@nR z4z!WE+FTv3E?1AM&o$s0a*epgToVqokvUJU8P}X^!L{UCajm&FTwAUk*PiRZb>up6 zojEVScHz2m-MH?YH`jyf$@SuTbA7nJfbGZmaQ(Rf+(2#+H<%m34dsS$!?_XMNNyB2 znj6E71?)I(JU4-x$W7uVb5ppf+%#@FHv_OUxmnz7ZVoq>o5#)P7H|tWUv3e%m|Mav z<>cHl&JVE5Ie#vITfqf#LEK7i6&K8{=GJh)(zXyTlndj+xwTvbr{E&Fb=-Px1E=Iv zTof10#c;8Jj^pCF1TK+F;*z-(PR(uPG+ZjsyopQW(z(st7Ea4$a5^rN({ovzfy?G{ zI3t(KZ3S!|m(Q6vGgrWE<1AbuXXR|19k31#=A4|1+s+knJGh-(F}I5=;dXPS+#ars z+sh$yoF0V{C(xc%G#?jTpr9pWmuO71XsggeR|jgpWH9*H}{9D z0mBAB8<}_KJ@{I@jIYht;p_7C`1*VU9$4DmkZ;5{=9}-<)s3x8z&#t@$>5 zTfQCNp6>wYj(jJ+Gw;QB;k)wP`0l(n--GYTdqBPT-h3avFW-;%;rsIg_<{T&elS0T zAIcBohw~%&k$@e=kLJhlWBGCXczyyuk)Om*=BEI5DnE^%&d=ay^0WBa{2YERKaZc! zFW?vQzWgG7F~0<`OL;lJjQ8W0^ZtAQzk(0sgZPzzUBw6UtNAs22p`Ia@!|YhK7v>9 zk^DM-J->lh@+!ba@zHz?AIrz_@q7ZG$S3j1e9GS%J7mD`srik(hEL@;@o9WIznR~{ zYxxXb$7k|-K8rW-*K5yd9d;!0Ww*c*hyp^}{cHY6mypwnF+xa4X z2fvdq=6CTW{BFJ!uzUD2elL&kD39?tPw*s9@ibr=p5-~7=LLQrzn?$AALPsVLwp5a z$sgvA@JIP$fIZHi;7{_W_|yCu{w#lvKhIy_F9P-wf0@6+U*)gy*ZCX#P5u^to4>=~ zZ}_)>eaFA&Kky&83;&h>#*4hf zSMk;Scm4<_L3zdBS{Qfv^y;zQQ6fT5XB2RFDhH1V3T9;4cIKc7+fq1PLpJRYI_^ zT39252%$ol5H740A_RpHDXatRdSQd06jVZ#5G}+Au|k{>FC+jqQAiS!g%m+8Y!oy? zs<25&6Vipv!WKa*WC%JT6R>(AOE3u8LXKb*a)qrzo{%q?0BaTsgl&RFC=@`NSivqh z1XyqiE@8V+B|X9eERZ8+jLb zANdgZ82JRg2>cTH8u=Fa4(yM}&&aRH@5rCX-$*L>5D9!h14Tg~BSYz-3{XZW6O_us4cMVp!QG)s3X(~>I`*(xI3zK`a%7n0nk8b5HuJX0u6i3>|@vLdT%v&>21RbPhTXU4Sk^m!Qkg73eB-4Z03RAP9mX1VVwuARHnf5~3g)VjvdcARZF_?KmX^ zIQK+If@Da6R7it#$bd}9f^5ivT*!lbD1dH&6>dVepxe+L=q_{*x(|iW1Lz_22vmOz zJ%OG=&!Fef3+N^E3VIE_f!;#zp!d)R=p*zA`V8zB=qvOM`VReoenP*X-_RfEFO&-G ze{dQ&EgS`>gVVzq;EZr4I5V6Dj)t?s+2HJO4mc+aGBO+k=Z5pZdEtC;ez*W!5H184 zhCxP#i^9d=;&3b+2gk!D;F53xoCueKOT%U0vTzby4%qT=1-K%d3|E3H!&Ts_a5cC( zTm#sea4ontTnDZT*MsZB4d8}wBe*f#1a1m9gPX%G;FiF)f?LCF;I?o(xINqf?g)2+ zJHuUI(6NJE;cjquxCh)5?gjUT`@ntSesF(y06Y*L1P_LXz(au^1`mfvz$4*N@Mw4p zJQf}YkB29K$`j#9@ML%jJQbb>Plso~GvQhAYOp8gSW#w;GOU;csINU-V5wLct3mqPJs`? zhv38T5%?&43_cF*3HT&@3O)^=fzQI{;PdbW_#%7>z6@W1ufo^h>u>~E2!>$8^q_Td1&0pEmg!MEW%@Ll*G zd>_~legHp&AHk2|C-77F8T=f60l$P_!LQ*r@LTvD{2tg3@JIL){2BfNe}%un-{Bwd zPx#lrP9ORW|AGI)so>MbG)P(`3Q32gM=~H8kxWQtBnuLaWJN$qMzSM0keo;^BnHWi zJW>KFi6kJ2NGYT=uw{_4ND@*GDUVb@ zDk8~9C8RP^1=y-cHKaOH1F4DBLTV#*kh(}cq(0IBX^1pJ8Y4}Rroc8snjdjsmL^BIx+*9iOfP~BVf=Vu=9}l$N~fm z!$1}zOOU0=GGsZj0@#(vDr7aX23d=&L)If3kd4SDWHYh_*@|pKwj(=`oxtuwb|ZU` zy~sXfKXL#`K@K8^ki!V*^x-4OQREnM965oUL{1^6ku%6ye@Avi*S$|OP|G{PV(!XZ2&AR;0mGNK?Vq9HnBASSRDVj~XXA|B!+ z0dfPmiQGbN1A7O#i`+x*BO&qtd5Anh9wSeXr^qwpIr0K|iM&Ey1N#Pfi@ZbLBOj2D z$S348@&);dd;|77@&oya{6c;se~`aOD){_04Vo5>Lert?(F|xtG!qIkGMWXAMzf;X z(ClaqG$)!1jX`sxV8=%?f^#nqnitK7=0^*l1<^uiVYCQZ6fK4pM`O`AG#)L1mINy# zpowTHv@}`71(X)c60~26WxXGM)#n5(S7KC^uWK49Zf+GqKDAK=n?cNdJH{|oy@TFG@1gh65Pg6?L?5A#(I@Cr^cngb z*ca$a^cDIVeS^M5-=Xi(59mkq6R@ArFX&hF8~Ppnf&N5)p})~T=wCDyd?=j;ON&Ke z=`fIyu?$#7EEAR)%YsE?S+Q(bb}R=5GBTD6i@|bZd9b`#J}f_004sK9STa@#tBh5_s$$i!>R1h|CRPip zjn%>G0$UHOk2Sy=VvVrISQD%%)(mTowZK59kF~^FVXd(?SX-9qWPh1iBa28|#Dh#rk3Wu>sgXY!EgW8v-g1#fD+Su@TrvY!o&c8-tC-#$n^J z3D`tz5;hr|f=vZ>8a5r9fz8BbVY9J0*j#KLHXmC6>_Ti2wisK2Eyb2$%dr*MN^BLj z8e4;{#nxf#u?^TpU^ii#u`SqEY#X*6+kx%Gc451*J;3h8_F?<616T@n5Ick&#*Sb| zv18bA>;!faJB6JFe_()&jGe>IV;8WC*d^>Tb_KhNUBj*e8^It9#t;m}Fbu~CjKnC6 z#u$vnIE=>xOaxZKWK6+SOv7}{z)Z}-Y|H`H#XQW%0_+BM6T5}o#_nKuv3uBkEW{pQ z53xtsV_=_PPqAm%bL<875_^Tc#@=9Wv3LJEef&N40sDx3!aiePu&>xR>^t@Y`-%O+ zeq(>IzgQ~xoF1fPJS`rDr^D0Z8SspFCOk8q1&_wTO){Ph&yMH7bK<%17(6$g2hWS= z!}H?>@Pc?Dyf9t_*rIqbyf_|<$KmmK3A`kpfG6UmfGv%e!OP-Fcsaa0UIDL&C*zgy z%6JvLDqan*j@Q6z0$U5Ojn~2J;`Q+Qcmup4-Ux4uHvzUO-VAS!x4>KCt?<@(8@w&v z4sVZlz&qld@XmM_yeqKX@a}jIyeHlZ?~V7t`{MoZ{`deK?D#|`aPAGn2jPS9A^1>y z7(N^yfse#T;iK^}_*i@#J|3TdPXsGW!YAWX@TvGTd^$b@pNY@HXXA4~^||;wd_KMa zUx+Wl7voFtrT8*@Ilcm4iLb&}<7@D>z^=pB;~Vge_$GWaz6IZkZ^O6aJAmDZ@4|QE zd+@#ZK72oZ08haW;)n3V_!0alehfd3p8)nGehNR0pTW=K=kW9R1^gm@3BL^N75plG z4Zn^@a0rKS1V?cU$8iEDaSEq#24{iga2^+M5tncoS8x^Aa2+>*HE|2KaR+yC5BKo^ zzk%PxZ{fG`JNRAv9)2GWfqj5K#2?|0@hA9G{2Bfne}TWmU;XRY$=CQB{4M?te~*8_ zKjNS8&-fSoEB+1tj{g9E9R0$71N{g8i>HELFVYZci6|l+k)FsvWF){%GLf0cLPQf; ziEKo6A_tL^$VJ2uxrsbPULqfnpC~|pj7$_F3KK<$qC_#GI1x+45%EL`U`rASL?Tg& zC{2_h$`VOLIifsKfv89%6P1X{L=~bcu+@m_L=B=QQH!We)FJ8;^@#dJ17I5xjfloX z6QU{6jA%}@AX*Zwh}J|KqAk&mXisz?Is)5?=uC7Wx)R-p?nDowC(#T1dDI8kzC=Hw zKQVw9NDLwd6GMoh#4utwF@hLLj3P!8V~DZ9jw8ks6Nrh#Bw{i#g_ufABc>BGfSpOq zB4!hFh`Gc(Vm`5eSV$})786T|rNlB~IkAFR3G6CjHL-?ROROW-6B~$)#3o`hv4sGg zKDCwDMr?aNoDa1kI5OJ6|0`yVh7;&69L7XH`5vPeW#987T zaUN8@KwKm)5toT8#8u)Nah-?|5CIbiff5*j69hp5OA$1|5G=tFJRuMwArUg60IL!j zp%VsS5*A?-4&f3W;S&LIgSbiDB5o6RfW1rHBkmI+@qlyf4;xqAu_)2^uz61M%_(}XCeiMI)zeFndJtqyBmW(1nMkdpf z8OV%eCNeXbg^VV%lG(`YWDYVXnTw1ebCY>UkdeuJWPY*$S&%G57AA|3Mag1habRP~ zI5M6rL6#&F$V9RfS(+?EmL-$Oa%6e30$Gtv2DTDenXE!qC99Fu$r@x$vKCpJtV4oM zpRP;RBkPk5$cAJivN73&Y)UpGo0BcbmSiikHQ9!23v@fOJ=uZmNOmGSlU>NJWH+)q z*#lJWN%kUplYK}qREq>-T*!gsAaXD{gd9o^BZreC$dSN~B1e;BNbuwrIi8$AP9!Ih zlgTN-P9>+2)5#g+OmY@Eo18<=CFhaz$pz#>auK&@d4ar0ULr4(SIDd6HS#(cAt4eb5fTL}U?ffwBuP>v zO)?})awJa*pt?v(q)aNLN@}D|8l*{Dq)j@cOM0YF2ILK3Z<4pj+vFYcE_siSNQB*oAJ(YpVNM)ijQ(35JDl3(Z%1-5=a#A28Q!!L-Di4*H%17m= z3Qz^9LR4W2WMrx+Rg5Z5#ZqxpJXL}!NhMH;R4J-7RfZ}{B~j&oEl*XTDpJW*C8{!2 zg{n$bqpDLiDA2L9HK|%uZK@7cm#RnAry5WVsYX;|stMJUYDP7uT2L*4Zbh}G+E8t& zc2s++1J#l0M0KXRfXZE|Zd7-w2i246MfIloP<^R>RDWs!HIN!a4W@=rLxCMe4W~v> zBdJl;Xle{KmKsNmrzQY9k(xwJrlwF+scF=7Y6dlvnnlf~=1_B~dDMJr0ksg=Mbu(y z3AL13MlGjSP%Eib)M{!CuxqJx)OuQg4S?U~hp1MF?q%KjHsVme~>Kb*OiU12y zFojSkg;6*~P$WfBG{peRQXIuo0wq!sB~uEeQW~XG24zwfWm6920_#ye6;L;*o764p zHg$)(OWmXH|LgR*ka|Epq#jX^sVCG^>KXN%dO^LUUQw^9H`H6|9rYgQ57bBM6ZM(; zLVcyaQQxT_)KBUcsQjDyL;a;v!4H3F=(KbcosLdVXP`6Endr=P7CM^FN`s6{XQy+} zIq6(<44s?KL+7RQ(fMhRk?DeTA-XVKgf2=Kql?qAbQ~Q|m!M1133MV|iY^Uo8M-W; zM3(-r87bTVCuu1r?}wklnXu1?pWYtpso+H@VdE?tkVPdA_&(v9fGbQ8KMu+8Y^ zbPKvA-HL8ax1rn8?dbM&2VgtWo#@VV7rHCmjqXnOpnKB2=-zZ6x-Z?2?oSV(2Ld~Y z9!w9Rhtk97;q(Z4Bt42AO^*R~EIp1MPfwsH(v#@P^b~q3J&m4D&!A`0v*_9M9C|LW z^XU2X0(v36h+a%Dp_kIj=;ibZ8g%;nN_rK&nqEV%rPtBx=?(NodK0~w-a>Dsx6#|_ z9rRA1chS4)J@j50j8LHu&?)pm`Vf5>R6arC=Ca@N5 z(+=&@9_`ZseS^M9-=c2=dxySD-=pu-A^m`UNI#+<(@*H9^fUT7{epf;zoK6Q`-Xl? zzoXyNALx(tC;Bt}h5kx^`?uo@S-`pXo&G`pq<_)B=|A*eIu-mHnubZsL^0`@^h^dO zBa?{%NtwyQL^D~LY)p102a}V@#l$eV8E~7-m?^>(Wr{JynOG){ ziDybMC4o&~5}8s=X{HQQmPumDG3A*GOhsUmnMzD$rV3M)sm4@iYA`jKT1;)G4pWz@ z$JA#UFb#oi#587_Fin|eOmn6M(~@b$v}W1>+m>m^v}Zan9hpu{XQm6&mFdQGXL>L_ znO;n9rVrB>*nUiZW&ksg8N>``hA=~!Va#x51h6BSQOsy&3^SG)$BbttFcXb~3w|-OL_lFSC!?&l~`iQ<#IyA?7f1ggMF_V~#T? zn3K#Y<}`DLIm?`5&NCN)y~tc*E;Cn{tIRd#Iul_a24)aoQ3hjhhG0mBVrYh8ScYSG zMqornVq`{PRA4nmXAH(z*$45mhHN9YG24V~$~I%0vn@d7mTW7wHQR=5%eG_NvmMxu zY$vue+lB4Qc4NDhHGCPHx3hXp?Iy-}%$^ycpy8zgQ>>_qCyM$fJE@PLo zE7+CnDt0xyhF#09W7o4A*p0w$VmGr}*sbg~c00R+-O27^ce8td-OKJ{_p=As6!su{ zh&{|6VUM!M*yHR8_9T0XJ>c(l zdyl=(hU^3OA^V7Z4D=KBDf^6l&b|OMB3`kt**EN4_8qAFp8ddnWIwT=!Q_aq>^Js1 z`-A<-{$hW#f7rilD)`A9WMnQa7saLH(sLQOj9exzGna*n=0HZ~vT@nD99&K=7Z=0j z=JIfPxqMuHt^ik%E5sG%iU3=bE5;S)V!1djo-4tX3tUR-ak57(FL$Mxq1fa(Le zLEK<&2se})#tr92a3i@<+-PnLHz?P3ER>Q@Lr}bZ!PWlbglO=H>u9 zmz&4U=N51axkcP!ZV9)PTgENtR&Xo1RorTB4YwB9b=-Px1Gkae#BJuba9g=;+;(mU zusgY3+-`0Ux0l<;?dJ|~DcnKs5O)|%+BnJ`k7!Vl$#@x%EM{78NjKbjxIj|FxdKc1h!Pvj@@lldw9RDK#i zou9#jPG6hJ&*EqEbNIRZJbpgEfM3Wj;urHv_@(?ZemTE_UkUUoel@>_U(2uK*Yg|r zjr=BlGrt8?-pX&|xAQyro%}9-H@}D9%kSg&^9T48{vdydKg=Hi_9%ahKhB@vPx7bu z)BG9!EPswa59|g0B7cd$%wOTJ^4Iw5e1wO1m`8Y&$9SA4coJBOr+J2Fd5-6Kffsp+ zmw5$PmDhNkH+Yk`c$;^4m-l#|5BMAWP5u^to4*6>UH%?_pAY#5{6qc`|CoQmKjohR z`<#ElzvN%>ulYCpTmBvYp8vpq~Q^C-RG(uV- zN&p#INH1g%G76c5%t96+TF5G76S50Agq%VyAx6k83LYxpUln_b^2|}V!N+>Oq5y}clLOG$lP(i3DBm-SZs4P?wstVPF>Ou{n zrcg_$Ez|*(>k9RR`a%Ptq0mTZEHn|C3eAM(LJOg#&`M}6v=Q0@+fHaNbPzfUorKOp z7on@rP3SK40Jf*lOXw~15&8=Kg#N++VW2Qb7%U7Ch6=-k;lc=EB(S4|(ZU#EtT0X( zFH8_73X_D%!W3Yq3e$w?!VF=iFiV&%%n{}a^Mv`r0%4)BNLVZ^5tahGOjs_g5LODS zgw?_tVXd%ESTAh&x8q1waPDmsHVK=BEy7k|o3LHjA?y@(3A=?o!d_vYuwOVJq<|F; z3WtQl!V%%9a7;KZoDfb5r-aj>`WfM@a85WcTo5h_mxRm072&FIO}H*Z1W14dL_mSX z1Y95lQlJD{U<6j+1YQt;6$MF<1w~K=P0$5HFa=An1xIiNPw<66xB=`<;g)b)xFg&Z z?g{sWP2l6`l#tg%`q0;g#@Ocq6dVp=guOedxnGl&_*Ok!p+ix@3t6|;%i#T;Tz5oBaBM$9ed z5%Y@q#Qb6bv7lH;EG&YKK}E!(VllC}7%Rq!@nQ+Fq?jNkilxNTVi~clm?V}1y1ZCH ztSBanmBh+o6|t&VO{^}~5W!8dSWB!e))DK9^~CyO1F@mlNNg-N5u1w5#O7iPu_dsr z#MWXPv8~unY%g{YJBppe&SDo}yNcb!?jm^HMC>K@7W;^O#eQOcaez2b93&1FhloRg z1<#C#BgB#7C~>qnMjR`S6UU1afSo8#5+{pO#Hr#mak@A|oGH!{XNz;hx#B!=zPLbK z2<#$pvA9HBDlQY3iz~#H;wo{qxCYp@;yQ7?xIx?~ZW1?(Tg0v6HgUVSL)w7g+y3HL{!8?TqHzNq(oX|{&gB=MNZ^JK@>$vlto2UMNQO2Lo`K8v_(gBf%ZgS z48$AaP4Sj^Tf8IQ74M1nLFG_neRg{vYN>XL13b0kBYEpHnhE!9kCDoSdNOh%pQhlj`)KF?9HI|x4 zO@VDDHJ4gQEu~gcYpIRYR%$1;mpTC3QR*ahmbyq?rEXGpsfW~4>LvA-`bd4Heo}u4 zJgW`tAZf5PL>ej$lZHzpq><7nX|yy(0-Z+2O5>#Q(gbOuG)bB)O_8Qb(s`k>9h1j`YL?`)xS$Wq@U6+>9_Pp`YWY^fk|oPv~rZ3 zPEIdpkTc4eWRQ{NEONA*Rn8`7mvhKD-%oLdGNS|3ztrl1Iy9=x;#Uk3G^&^wme6kE6Pk3HhXaNQB8}d#0mV8^jBj1(p$@k?@ejq=T zAIXp9C-PJInfx5s7xGK_mHb+MBfpj3$?xS4@<;g-u%G2G@>ltr{9XPb|CE2pzvVyj zUpW;F)k>qJRic!13dqPx1|_4CNy)5aQKFTsN;W0Cl0yNV#&asUlo%zql1Is_si-6?m6Xa# z6{V_DO{uQbP--f*l-f!ir7p1bl=?~orJ>SDX{P(~`F zl+nrBW> zQj~+rA?2`gL^-M)Q;sVql#|LS<+O4J*t5zx<-Br1xu{%HE-P1*tI9Ry`oB&S5d~6U z1yN81Q*eb)NQF{pg;7|AQ+P#CM4%-_Run~5G(}eo#Z)ZCRvb{-RXoL40_BEsQ@N$w zR_-Wwm3zv4B~%_L50yvCV_=^sPnBoNbLEBdQhBAkR^BLYm3P3tS3W2ol~2lN<%{xF z`KEkVekebcU&?RgkMdVZ1*6wMMpo0RQEEChy_!MIsAf_#t69`&6=Y;Jo0?tCq2^R` zsWED9HIJHC&8Oy93#bLvLTX{P2(U%fVrp?UR*h5R)e>q+H9<{OOQ~STWOi`wl~&8B zWz{6LoLXM3pjK3q)kOra{^|f= z2dabA!Rioos5(p?u8vSgs-x7=>KJvbI!+z0PEaQTJ4v0aPEn_-)70te40WbDOP#IG z0d}rBPo1wWP#3C;)Wzx&b*Z{cU9PTBSE{Sj)#@5`EwJm<_38$7qq<4mtZq@as@v4< z>JDIcs=L(P>K=8kx=-D&9#B)%gX$smuzEy2svc91t0#axsh(0#t7p`+>N)kidO^LY zUQ#dr>lk%Ky{cYQud5LiQehQQQ592hl~75QQfZY@S)e(UR|Qp6B~?}xRaG@rR}E0v zR4vt39o1Dm)mH=chI&)IrQTNWsCU(S>U}i?_JR6PeWX5CpQumOXXSy(f`c?g=epi2}Khu#W)+%Y0wJKUwV5@1>wHjJYt(I0>tE1J`>S^`0 z2EaDd8flHSCR$Uinburup|#XnX|1(3T3fB1)?VwNbp*DP)>-SKb=A6Q-L)QCPpy~M zTkE5NPSbt0ep-KRfHqJYqz%@FXhXGO+Hh@zHc}g9!V}Ty0jn^h<6SYa&WNnHz zRhyc3HckUDd8>*R_ZSX|RT9sD^2{Mrb6kltyce#%i3#Yl0?f zk|t{ku&SnMx@KsmW@)zOXs+gIz7}XVw42&3?Y4FY*t^<2?Y1`=K5JjJui7{5JFq{rpV}|&xAsT-tEGZbj%oC? zdXx@2&7{-Q>lyTndL})yo<)z=v+CLO?0OD8r=ClX(R1s0bdZwue0qMpfL>59q!-qU z=tcEndT|}xB z^qP7ty|!Kl*t&W>y}sT+Z>TrY8|zKuvP5z_!!d>mBrtdMCZJ z-bL@KchkG;J%H`0_tJaoee}M1KfS*`Kp&_N(g*89^r8ANeYieC9|`OzeY8GCAFGek z$LkaHiTWgcvOeYCj@caG+?%RT)2Hh*^qKlBeYQSFpR3Q)=j#jfh590WvA#rK3RYOA zFV|P-EA>_SYJH8qR$r&D*EfLb8}&{4W_^pkRo|v>*LUbU^2`_59let z9@G!%hxH@+QT>>HTtA_o)KBTBfjy(2)z9hY^$Yq%{gQrJzoK8&uj$wIhz{wnj_4?` zn2zg&PU@6S>x|CooX+b4u%a&MvaaZ=uIajN=%#Mzw(jVz?&-cB=r@49so&CX>v#0K z`aS)=9_kPDhx#L6AL~!_r}{Jfx&A_bslU=+>u>b8`aAu-{z3n!f6_k#`$hk%f78F~ zKlGpaFa5XvNB^s*{_7a`pOMB$YeX68jPynZBcqYY$ZTXWqK&LZHY2-{!^mlXlx)Np zxs5zVUL&88-zZ=dGzuAo4RDie6g7$&#f?}a&WJZk7$uDaBhe^jls3v3WsM}G9I)k$ z3PwdE*{EbxHmVp^jcP`9qXw`wjao)+qmEJ6sAtqS8W;_YMn+?!iP6+(W;8ci7%hQq zWwbWh7;TMqMth@!(b4E+bT+yG+tui1bT@h!J&j&QZ=;XV*XU>THwG93jX}m>V~8;n z*kQ(SV}vo%7-ft$#u#IbamILK0U)>vn(H#Qg>jZMa8V~erX*k)`ub{IR2UB+%> zkFginea3#{fRSPxG!7YujU&cUan?9zoHs5Q7mZ8CW#fu* z)wpI{HzGho25cY(YG4L#5C&;b25m5)GHY-KZwQ8HNQP`EhH7YrZWxAXScYvlh6}7` z_(ovdFm4*RjN8T?D(_-uSJz8c?*@5T?~r|}Ee-^L%~uaRo}XQnaJno(vtGrgI?%xGpZGn-k=Xfvw` zGP0T7%wgsqz-(wXG8>ys z%%;FLGn<<&%$8;=v$fgAY-_eN+nXIs&}pHg*~#o|b}_q}-OTQ053{G)%j|9TG5ebR z%>L#8b0E-z%)#ambErAY9Bz&tPusyWRBkIa}e z%~|GbbB;L|*m>rBbAh?gTx2dbmzYbW&-Xs@}& z+-hz!x0^f6oxtugcbj|6z2-i1zj?q+F%O!D%)`JQF^`(Z%;V+>^Q3voJZ+va&zk4V z^X3KfqIt=@Y+eEOs(H=4ZbnSVgiXXmP0Yki;@^(NoZ#FeP0FNA#$-*-UYe$<~{Si8JZ8whvp;mvH8S&YCbcc zn=j0l<}33xuy4$_<~#Gf`N8~XelkCsU(B!OH(R-6@Ym9RS%ScI$K?= zu2wgzyVb+$Y4x&tTYap)K=-ryTLY|t)*x%JHN+Zf4YP(@BS7Vm)+lSVHO3lijkCsE z6Re5WBx|xY#hPkOv!+`!teL>hvSwRzthv@aYreI>0?+PQi>)QVF140f%dHjGN^6z1 z+FE0+wbohdtqs;jYm>Fv+G1@5cAK@`+F|Xqc3HcvJ=R`ppS9mQ0BnkN&^lxtwvJdw ztz*`4>x6aEI%S=<&RA!ya~2qt4(vtil6Bd-VqLYaS=X(I1zE6#0E=3fg+c0JL|pm!TM-@`qydsv-QRLYJIc5TR*Iy)-UU~ z^~d^arGjD8Y3#Iil%387DcR0oXS6ffne8lgw4K$?W@oo^*x)AF&Sl5gx$Qi5UOS(i z-!5Pmv?vjs-T(j<-wLCG7+|(Jp0|w#(RM?Id8!+2!pDc11hcu4GrX ztJqcTYIb$IhF#OHW!JXr*mZ%eXVRyg z*hXyB#%$asY|^G|+GcFl=4{>;Y!O(=mTkpWZOztg!!~WpwrvMk*Y<4R4(uEDP5YL8 z+rDGpweQ*Y?a+Q;KeQj&kAZz+KeeCP&+QlXOZ%1m+J0ldwci2z-u_^Jv_ILO?JxFM z`|}AG9k63H7dZE_I@z4; zP7Wuhlgo*5ayxmPyiPtRzf-^|=oE4aJ4L_>MV(?!aVOS^bK;#6PDv-hNpwm%;5OMQ znZm7OY1Ri~O$-KpW!1h$q_+o|K!b?Q0wod!-rr;*dxX##9h zrXPh(Mncz$Wc9JvMnc_@!ra9A{8O}^+mNVO# z1MFO9o-^NB;4E|&Ig6bo&QfQYv)ozXtaMg6tDQB@T42{X>zxhGMrV_=+1cW3b+$R% zogM!=rtNfgIlG-b&R%Dqv)?)3q&NqiL(XC6h;!6A<{WoU0DaOq<(ziTIA@)6&Uxp8 zbJ4lvTn3e|I9Hu(&UGi^Ko0C64(ebI?hp>?P!8=d4ht;j@Q&b!j^xOW;;4@1=#Bxb z=~#~KIF9Rhj_(A{4d;vba^T>JZJaL{n&z$GZ3+JWt3fR}q z8|SU_&Ux>Aa6USpoX^e|=d1J0`R@F1emcLL-@yKH{yM2(czqf-tsCX0bJM#S+>9>B z$ZlpgiyQ4`b+ftI-5hRCH{fCsyH(t(z*cjsyEWXJZY{UATgR>I)^qE- z4P4M^y`kI4ZR|F2o4U>1=57nOrQ6DF?Y42-y6xQdZU?s`(4E}QZWp(!+s*Cn_HcW; zz1-ezA5gik+t2Oq4sZv$gWSRH5O=6M%pLBIa7VhM+|lkBcPy~u-0|)NccMGVo$O9= zr@GVJ>Fx|*XS%c8+3p;7t~<}2?=El`x{KV!?h<#YyUbngu5ecZyUJbdu5s78>)iG3 z26v;o$=&R30d}jq&E4+qaCf@9+}-XTcdxt8-R~Z7Q{02@A@{I*1lXhQG55H8!aeDp za!7od_p*D%z3N_bue%W!a$y&7Q5SP@mvBj7DVKH`mvuRpcLi5; zC0BM8U{zOhb=PoB*K%#wab4GQeK&A#xHsKf?rrxDuy@^i?tM3OAGir^jdkXy*6H3VB2}^y$)VSuano= z>*96wx_RBb9v;}S83WF}o?b7nx7Ww(>-F>cdjq_I-XL$VH^dw24fBS3BfODdg;CyU zZ;UtA8|RJpCU_IQN#0~{3aCESo90dTW_UBbS>9}KjyKnv=gs#PcniHn-ePZww-nfA z-g0k+x6)hXt@hSedT#@;8@)~5W^aqP)!XK6_jY(Yy{+&kf&^iFxFfj#4$_0DD}^fdw0CM z-aYTW7kUr8hu))q9kU*LPrRqzGw-?g!h7kx@?Lvyytm#v@4ffI`{;f0J_G&5`|5r3 zzI#8spWZL;xA({U>!pIq|M_YBw0@MI&QI@W@H6_E{LFq9KibdgXY;fBIsBYH$jE+- zpWDyl=k@dX`TYWZLBEh+*asQeFX|Wbi~F&DoFDI(@Jsp$exhH>FYTA{%lb)vIbh5C z75s{RvR}!s>{s!t`qljEehpx2`nCMpejUHAU(c`aH}D(!jr_)b6Thk7%x~_u@LK}g z%5Uwr@!R_C{PunazoXyD@9cL0wyWRG@9y{Td-}cn-hLmyuiww_?+@??`h)zz{t$mC zu*3Y}{s@1hKgu8NkMYO)g>wW}S$cKHzM}5r4eZnVw%BOt>Sk~u!-WPn)mwee*eAU-{-8X#Gw|v`od>2^H z_x-@X;otOc`M3Q${$2l`e;?S;f8am#ANh~{C;n6ang85>;lK1>`LF#q{#*Z@{~p*6 z{zw0l|JncIfAzol-~Au{PyZLNzx_Y{Uq2N*nUW?*8$<=^g7iU#AY+gz$Q)z|qJyjf z$jCwVAV-ih$Q8r{xr01G-XLF)KL8myC>Rt93I|1kqCv5scn}-J1@S?Npk$B`BnG8| z(!iDp$_7b6xuASdA*dK62bF@#L6rb>+Nl~;3#tb-f|^0CpmtCvs2kJ^>IV&ihC!pC zanK}a3UsredC($g8MF#o2W^73LA#)R&;eBL7<39c2VH`$LARiL&?D#>^a^?heS*G0 zzo36GAQ%YjpkQz?Bp4bD3x)?Hf|0?fV017B*s;O5V05h7CI?f3sll{hdN3oH z8O#c12XlhCz|ITi2MdCQ!J=Ssuq0R-EDM$gD}Y@YtO`~KYl5}Gx?p{)7!{@q(}x+tjA5oQ zbC@NJ4zq^Y!t7y=FlU%6j0tmxdBVJ5zA%4SAS@Ub3JZrt!lGfZuy`07#)a`=iLhjt z5GIDD!qQ=xuxywVmJ7>=6~c;Pa#$&>999XdhSkFAVU4h6SSzd@)(Pu|^}_mLgRo)P zC~O=y37dw^!scO%uw~dPY#p`<+lKAJnE%>`9m0-br?7L_CF~k@3%iFs!k%HTuy@!e z>>KtA`-cOg3#W%O z!kOW$aCSH+oEy#y=Z6czh2f%bakwO08ZHZ$hbzLB;i_oC_Y1ii*GTU;k7g?f=+&54g0lZhd$kK+;Jxy%{xNdU7J^&6r+6 zz=kMI0hML}3yQsBLycIHXzHXL(lhD3_ufqJy=MX^nZSQz#+gjH_kQ<%-{1XinRTMS zm}c0l`mATIeT{I7&_K9O*amJ87Q@?-&JhNCID549SO!|Sqi*|Y`)FHfKhnZIg`Of$ ziKomn%(KSh7;P!-9PK=A;AdyTuv zz1m&r8R;42sqjqm>fzPN{V3hT{Q&(M-Q68?TMOWMHXwF_ooFZ7o$O?LGkbG;3wuj@ zD|>5u8#~3`*51zUY2!b`N`RJJn9J zd)oWh``Y{2``ZWD2igbO2iu3(QTtH4mz{1OW*=@JVIOH9Wgl%HV;^gOY#(o*VE499 zwENg6*(ckl*r(d3*{9oQ*k{^j*=O75*yq|Ab{D|3``TG{ww+`5v-{fv?1AXIE!8XAkGz&V8Kw zIuCFj=sd`Iu=5aSFXs`?6P>3!&vBmWJk2@KImnsoob8s18h5RGynBLsqI;6N6A-$K+{Nx;?&0ndcd5I~J;FWGy%{JYmJ=(8^N5v1 z6S0a|O{^i-66X^a5El~bi1oxp#Kpv=#AU?g#2<(&h%1S!h|R$UxUh8-aWioX@kioT z;x@RNW(RR6aTjqnaSzc2?1f`^`-umMhlq!XMNlYfWoM>q6^5>p>ex zqtb@a#?cTOk=B;hp4Oe#nbw;|rwyQurOl?f(T33a(niv}X+3EujYb09aB=-cV(^bC3?J&T@A z-$CC=-$ma|-$UO^H`2@K<@5^rJi4d*KKg#TfnG>2qFFek>=&R_f>1*g1 z{TBTk{UZG!{W$$5-31(>w}m&1orAZNc_Lr!Uhu;k@j$V==M z<`wQG@sfJUydu0Jy`sG2UJ5Uzm&!}+73~${73&q}rSZ~w#d{@qC3+=!>AaG?&QZ@( zFHkR1FHtX3uTZa2uTig48>ly^H>tO%x2boicd7TN_o)x452=r+kEu_nPpQwSLaK-= zriM|&sS>J`Dx*eFBdJkTIaNVbQdQL5faC7xz6;)w#&ZvG4|V6e!xO&s7&s$uK_6r& zLPtg+6Ol=X6>#7!Xf_~2W+O8Z;DvY*yog>TFDEauS2M5XUM;*@dbRRu?bXJM;?>rx zotLwhi&uNE4qhF-I(c>W>f+VatD9GMuLabF)H-TCbrE$jbqRGTbs2Rz^#|$->PqS= z>T2p5Dn>O^*HYI}*Hbr8H&QoIH&eGzHB>D%o|-^Sq$W{y)MTm)NTKSfsnj%TIyHlu zN!{Lf@0-Rg%`L+%(=E#_+sy}^gic1Mpi|Ll=yY@jIuo6R&PL~;b5RD$M14^f%0@Y; zAL@?=pn+%*%0+`w9vXs%qI^_<3Q-X%M#Io>RDw!T85)5`qEV zWoS8Cfx>gXy%=4BE=8B2%h4au73fNI6}lQ-gJP%|U5lDAH)s z7}8kMIMR611d=ytBFTp|i8Prsg*25kjWnG!gEW&gi!_@whcuVOATdes`v=VlbpgFZd!VZp zOU}!tM0Hnn(QeW{h+m&DM!(L;n#Z13S>Kz3g?MRiq)#lbuH>J==9l4~S(f8d(7o{I^0}tz3r;dDj8?wySj?c2q6wl1(P+u@ zNN4qOZEpOP_`KxhnJ2RWzM`VAGTna(j}?gEn^Lx?Z7J*PyOT3DexB)N*TiD&rGF;%f{2%qNQiBV#iBa;KMQD+bi^8D+lFvWXEbSjFse z_L3-g`uBDvv@5?V43Tu{VVRF~P!1AIB3<8I)zI%Mhto`iM>@-evU{+8q zzf2G>!bE4n6%w^{r}U$=Dk4vr6a6l_Ub9?tLUUcKNPL-iNB2oLRbQd+nC_k4J;RhG zE$mq80y-M+RS>I3RR`BToqvGI@gEb!;)e02g=`bLh$ls?k9ZofS~W+T7=I>lyzWbi zJT)b?xnZ%vyQsu;XyHT7GtMl(7{AW}=egm$u_0^t7V$`UKVz(95xk6If8=h(&st-A zYJ#_JUK%ldae8USyGCJXlSk=6j zyfD${hzasJ(L*%XG>emc(++3tD_B!>v$Ai^V0NhRrI=teFlVydIoE?8@b5}TDQlw- zz=GE|`CU41o|H2`Or93NNcWu;bUUcOu#X6~3L|~ym-4#kH>3+nmod)!Vt$x^Yu=*J zC!zf%42gTh?5KOOCGl?(_PChwQJ^gVN7L&GLACdF%wue z_C(GD&Ld8VUxxr~;F7?jyu8qJ{GUbF#4O1+*)!S6NMHF8`AhjE#X?nL^wn5X98t43 z;aNhwE=}Je{pSp)%$AvVGR67y!k>%wl{gzW7{kkdEWc1Qwe}e-nHJQy3Y-{nB5P6A znySrp-TkU{%hImrpDwv)1VJ-Gs>AAaYkBPjNxHSVl1!|`({~ix%1+=k5BwmG4QnYs zs2rKFoD&!qkrQ8XxpIu`U{thPX*g9fyM~M>NE79oi{R-$7&pHe{(>_okik6?_9gOp z+|@A)@*hjyO;P{gf_Cqbl7(p z`yuE=8LS21)~ekm(HwdfuCShaW8~BOG~1LX)=;_C#}j%%}>i0 z6tu)WD_Sv6aA?99ajc@7UaGHVh*>ui)}NBUale{XL#b_BE2%B7JE4zf zw(xr`_KP@Qw#I)9s}ovTf80ajJx3N@ukKNct^Yw-Wl(L+YDXt zZg_XR2X2z~!~PbB>$PzaBSlf$0yuJTs1hu|7+ zKY@!7#fRcvI9Ef*hvCEV5%@@a6n?&DG(H9&i;u&{;}dXid?N0HPr@hT2h~&XsrcTE zjiv8|)9~rIG-C!n6Za08h0n(4;B#>X&cuCj7XB=lW=NK~fOdK|&cXd~e>?yW#J{Eo z;aq%N$RmX}XNRgAcSP1`#*d6?%(ebq0*?j-2)0TdOVZ(T=eep^32$_+DYx|}bIbF+ z%6Jt!!}q9laoeR zTM}w)=T8U<3KH|1iR;4eM#O8cq-@H2TK9mFAE*lK!)+6?A!GzUM=(r$FMLzn=ZwPq zZAAvtjk+A(R=CdI#TT$qcBjDML4iS(5MjutkiyU(_~mfjmUCD^Sm*G`5%BaM;SmR- zt|{GBmsAhcwwRmoNeLU0#_CAfs|sEfeJGw$LNs)nl$l-JxrdTnqIgn=%`RC`3jfp6e(O|j>iNSwXaq(GIX~X80$2IdRzOg5XH!RBkn}F zDpSvI^NX?NMD^Rxm!TsIzfUwK`;9Ms22#QEhYqZOW?z z3q!e4$6}J>XC^<)ArQ=KZ$sFWPDDVckYfnYksLQ1n;iA9(_Abq#vIhibs{b ztKs9B3@wKwcacws?jAcR*R^gAdugd}=%es~l1}m$>d7e!QcvfE7wj%LF20u0EB^$) zvn)#abF7m_t;x*0ZOmo130)*;nZ1>@C`_VV%OLwkvW~MdBAlbvrff)glA_MMVCY_Y zw(LjdNY+p6Nq#T+D$xY-VM#-jP2E4~W=`*XbEUX8sX+DZQ7Z%Y3Z)UVdbApGpf2&i|PxRE7WU~HkWNR-DV5%{P08J z7o+&?kt)*aD(bEn?gWtpePn&2 z&uWAzsp;;lzR@l~9D5@1Kv6@{$0Ca7!hrY8%}`Bh+wV;xA7eSjewd zvIdJ2O(y05->#w0mD}|FOA7^4M4cllBM0*+aKS|1L{wYGC$bS999> zQT!z#D})T$$_RxrBi0&A)?{hK_M8oU@$O#!v4@kuH?>iL6)cjW0{+oOK|(J}1>?a@HO85$<@t zzbG+0DSWN;oXj0kQg6rwv7%TX&8UPM37yk-WjbYn!oGz?MSW#Pg)H`Uyfk5&Zq>px zdAY)a>nW?rR&y$XYPfg!XTyd`<78u01L7bon%TGFI{QWFTG2^SOYu?h8VCS#Bc<|_ za`zZZT&Q+hs%s`8D=KHHVQ*2ND$&A~LD%Y>eJSj*eoX&72|WF$@rsuER(gKAAveA9 zjmgfgR7A$c`PBwb2$>x^N3d4VAFe>QP@Vb zM#PkSk^C%iR=iQv#~qKmr=M4Ogx4dlU12CYm~&d(Hhg3FFxjZ66N-Itb((p}l_}j* z4H+XcvvXdQ;->vI!gORTlLF!j=ep(NB`VZrOjz5?9C2?TV zH2uKLyLp#NU8>(yA7oz=FAt}xSn8Dclf@g##O1GRC(rNgTkJb4a3!~I$aH>!z*{^) zvR$%Y(n4A&TM&6bbvV&ozdAiVV?gGn%*EM7x%~~D3x6Vh<$~vo0&fXukO7v-byG3$Kb= zp$UkGr~hn4V&~lZm7}X9IG=+E423I8*OeNKH1_g@nG2fNcZIieYgxRI1iq_ujPwv3 z4Br%uXb)?TC*9KZDRrx9UVDq_9yB!Q6Hg_T$eoosm0tZYZh-b#*3JC(1tEnUO54Il zUpr0+r-HXi&_-68l$0?ft3yt+g4}}9rDIE%*SIVgD2r!UnKQXa$eWP2A+oRw5nrR1 z#0=03NOb`(vk7?~#tY>i7PMhpW4vMJ_y(}mY)?O<-`&6gTxoDHPs=;STfmp%@!|x@ z3W-X&Ts0!rGub<3M4E2~E2B1JVrEU|sw|>mQPJa~FGZT-9mP+LH_LjMrkJkRJXz40 zLuU8$(*$e^^5d$wcEK`{O59GGs^}JTB)%Z!c1m|Wmbt&^tx1OSn4JY_f&=1yp{-;M z5h;n2Qxyw4GHQG~a{6;voGh+5IFG+kXb{a5Cy9-cJlTrKOY$r7tMY5|ZHfqdxaPCg zC9w>)C9frArJU5?OIw}}PyhLZi~||(v%2Ly&EIZN6z(kQTE?%sQ9ZUE3+T^N2#O?| z;PrSR%6ICH(V?;CxD`bgi^f)$iAE}d(vjM^j6%kI#%0DB<~U{=^A3bH-*c=Svi}4B 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 z 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%0AXNnf#e-568dL~kRTYR;NkJJw;ow(A24x3D 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 z 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 + + + System.Text.Encoding.CodePages + + + +

Provides access to an encoding provider for code pages that otherwise are available only in the desktop .NET Framework. + + + Returns the encoding associated with the specified code page identifier. + The code page identifier of the preferred encoding which the encoding provider may support. + The encoding associated with the specified code page identifier, or if the provider does not support the requested codepage encoding. + + + Returns the encoding associated with the specified code page name. + The code page name of the preferred encoding which the encoding provider may support. + The encoding associated with the specified code page, or if the provider does not support the requested encoding. + + + Returns an array that contains all the encodings that are supported by the . + An array that contains all the supported encodings. + + + Gets an encoding provider for code pages supported in the desktop .NET Framework but not in the current .NET Framework platform. + An encoding provider that allows access to encodings not supported on the current .NET Framework platform. + + + \ No newline at end of file diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/lib/netstandard2.0/System.Text.Encoding.CodePages.xml.meta b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/lib/netstandard2.0/System.Text.Encoding.CodePages.xml.meta new file mode 100644 index 0000000000..3b7fdd2dff --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/lib/netstandard2.0/System.Text.Encoding.CodePages.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 96e698a5f1cbaf3419aad135ea801f63 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/useSharedDesignerContext.txt b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/useSharedDesignerContext.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/useSharedDesignerContext.txt.meta b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/useSharedDesignerContext.txt.meta new file mode 100644 index 0000000000..79bf13c26b --- /dev/null +++ b/Assets/Packages/System.Text.Encoding.CodePages.9.0.9/useSharedDesignerContext.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0214a4222965f584f96febd38973a073 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PerfectWorld/Scene/Boostrap.unity b/Assets/PerfectWorld/Scene/Boostrap.unity index 86ce9e4e2e..8fc81705c0 100644 --- a/Assets/PerfectWorld/Scene/Boostrap.unity +++ b/Assets/PerfectWorld/Scene/Boostrap.unity @@ -164,6 +164,319 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _nextSceneName: LoginScene +--- !u!1001 &506356661 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 132536, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_Name + value: IngameDebugConsole + objectReference: {fileID: 0} + - target: {fileID: 22426080, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22426080, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22428984, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22428984, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22428984, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22428984, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22428984, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22428984, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22455554, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22455554, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22455554, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22455554, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22455554, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22455554, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22468896, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22468896, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22468896, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22468896, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22468896, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22468896, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22488670, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22488670, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22488670, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22488670, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22488670, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22488670, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22495692, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22495692, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22495692, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22495692, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22495692, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22495692, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224619367409363176, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224619367409363176, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224619367409363176, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224619367409363176, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224619367409363176, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224619367409363176, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224856348943071238, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224856348943071238, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224856348943071238, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224856348943071238, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224856348943071238, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224856348943071238, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 958269219681220773, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 2369662702609791303, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 4760950775166374324, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 5379786813386287946, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 6275684029659916475, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 7682126221316033537, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 7917212057380179541, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 8026934286120355878, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 8276117061088563291, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 8949468901311314302, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3} --- !u!1 &591506935 GameObject: m_ObjectHideFlags: 0 @@ -272,3 +585,4 @@ SceneRoots: - {fileID: 1654552492} - {fileID: 591506937} - {fileID: 105404091} + - {fileID: 506356661} diff --git a/Assets/PerfectWorld/Scripts/Common/MonoSingleton.cs b/Assets/PerfectWorld/Scripts/Common/MonoSingleton.cs index 752c9cb5ee..7b7721b7dc 100644 --- a/Assets/PerfectWorld/Scripts/Common/MonoSingleton.cs +++ b/Assets/PerfectWorld/Scripts/Common/MonoSingleton.cs @@ -26,6 +26,7 @@ namespace BrewMonster protected virtual void Awake() { _instance = this as T; + BrewMonster.Logger.Log("HoangDev : " + gameObject.name); Initialize(); } diff --git a/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs b/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs index adbb0c2b9a..91359c5d4c 100644 --- a/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs +++ b/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs @@ -7,6 +7,7 @@ using ModelRenderer.Scripts.Common; using System; using System.Collections; using System.Collections.Generic; +using System.Text; using System.Threading.Tasks; using UnityEngine; using UnityEngine.SceneManagement; @@ -26,6 +27,11 @@ namespace BrewMonster.Network private string _username = ""; private string _password = ""; + protected override void Awake() + { + Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); + base.Awake(); + } /// /// Send a /// diff --git a/Assets/PerfectWorld/Scripts/Players/EC_ElsePlayer.cs b/Assets/PerfectWorld/Scripts/Players/EC_ElsePlayer.cs index 6e6c41f383..c9e01a9d4d 100644 --- a/Assets/PerfectWorld/Scripts/Players/EC_ElsePlayer.cs +++ b/Assets/PerfectWorld/Scripts/Players/EC_ElsePlayer.cs @@ -137,6 +137,8 @@ namespace PerfectWorld.Scripts.Player public void MoveTo(cmd_object_move Cmd) { + BrewMonster.Logger.Log("HoangDev : MoveToMoveTo"); + if (Cmd.use_time == 0) return; SetServerPos(Cmd.dest); @@ -148,6 +150,7 @@ namespace PerfectWorld.Scripts.Player // to that position. if (fDist >= MAX_LAGDIST) { + BrewMonster.Logger.Log("HoangDev : fDist >= MAX_LAGDIST"); SetPos(Cmd.dest); //m_pEPWorkMan->FinishWork(CECEPWork::WORK_MOVE); return; @@ -167,7 +170,6 @@ namespace PerfectWorld.Scripts.Player //if (!m_pPlayerModel) return; //if (!IsValidAction(iCurAction)) return; - BrewMonster.Logger.Log("HoangDev : MoveToMoveTo"); PlayAction((int)PLAYER_ACTION_TYPE.ACT_RUN, true, 1, false); } @@ -182,16 +184,30 @@ namespace PerfectWorld.Scripts.Player { A3DVECTOR3 vDir = m_vServerPos - vCurPos; float fDist = vDir.Normalize(); + if (vDir.IsZero()) return false; + + Quaternion targetRotation = Quaternion.LookRotation(EC_Utility.ToVector3(vDir)); + if (Quaternion.Angle(transform.rotation, targetRotation) < 0.5f) + transform.rotation = targetRotation; + else + transform.rotation = Quaternion.Slerp( + transform.rotation, + targetRotation, + rotationSpeed * Time.deltaTime + ); + vPos = MoveStep(vDir, m_fMoveSpeed, fDeltaTime); float fMoveDelta = A3d_Magnitude(vPos - vCurPos); if (Math.Abs(fMoveDelta - 0f) <= float.Epsilon || fMoveDelta >= fDist) //!fMoveDelta <=> (Math.Abs(fMoveDelta - 0f) <= float.Epsilon) Compare with 0 { + BrewMonster.Logger.Log($"HoangDev : SetPosServer({m_vServerPos}) 1;"); SetPos(m_vServerPos); bRet = true; } else { + BrewMonster.Logger.Log($"HoangDev : SetPos({vPos}) 1;"); SetPos(vPos); } } @@ -200,23 +216,30 @@ namespace PerfectWorld.Scripts.Player // If we have move so far from destination and still don't // receive new 'move' or 'stop move' command, it's better to // stop moving and goto last destination at once + if (m_vMoveDir.IsZero()) return false; + A3DVECTOR3 vDir = m_vMoveDir; + vDir.Normalize(); + + Quaternion targetRotation = Quaternion.LookRotation(EC_Utility.ToVector3(vDir)); + if (Quaternion.Angle(transform.rotation, targetRotation) < 0.5f) + transform.rotation = targetRotation; + else + transform.rotation = Quaternion.Slerp( + transform.rotation, + targetRotation, + rotationSpeed * Time.deltaTime + ); + vPos = MoveStep(vDir, m_fMoveSpeed, fDeltaTime); + SetPos(vPos); + BrewMonster.Logger.Log("HoangDev : SetPos(vPos) 1;"); float fDist = A3d_Magnitude(m_vServerPos - vCurPos); if (fDist >= MAX_LAGDIST) { + BrewMonster.Logger.Log("HoangDev : SetPos(m_vServerPos) 2;"); SetPos(m_vServerPos); return true; } - - A3DVECTOR3 vDir = m_vMoveDir; - vDir.Normalize(); - vPos = MoveStep(vDir, m_fMoveSpeed, fDeltaTime); - SetPos(vPos); - Quaternion targetRotation = Quaternion.LookRotation(EC_Utility.ToVector3(vDir)); - transform.rotation = Quaternion.Slerp( - transform.rotation, - targetRotation, - rotationSpeed * Time.deltaTime - ); + } return bRet; @@ -232,15 +255,18 @@ namespace PerfectWorld.Scripts.Player SetServerPos(Cmd.dest); float fDist = m_vMoveDir.Normalize(); + BrewMonster.Logger.Log($"HoangDev : {fDist} : {MAX_LAGDIST} || {m_fMoveSpeed}"); + if (fDist >= MAX_LAGDIST || m_fMoveSpeed < 0.01f) { m_bStopMove = false; SetPos(Cmd.dest); + PlayAction((int)PLAYER_ACTION_TYPE.ACT_RUN, true, 1, false); return; } - int iMoveMode = Cmd.move_mode; m_cdr.bTraceGround = true; + PlayAction((int)PLAYER_ACTION_TYPE.ACT_STAND, true, 1, false); } // Decompress horizontal direction @@ -329,6 +355,7 @@ namespace PerfectWorld.Scripts.Player // Set server position public void SetServerPos(A3DVECTOR3 vPos) { + BrewMonster.Logger.Log("SetServerPos "); m_vServerPos = vPos; // If this player is a mule, change it's rider's server pos too. if (m_iBuddyId != 0 && !m_bHangerOn) diff --git a/Assets/Plugins/IngameDebugConsole.meta b/Assets/Plugins/IngameDebugConsole.meta new file mode 100644 index 0000000000..92bcd43940 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3c57523b63ddb094b835b6613da12763 +folderAsset: yes +timeCreated: 1596819199 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Android.meta b/Assets/Plugins/IngameDebugConsole/Android.meta new file mode 100644 index 0000000000..fcaef24316 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Android.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3d7d7a61a5341904eb3c65af025b1d86 +folderAsset: yes +timeCreated: 1510075633 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs b/Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs new file mode 100644 index 0000000000..c43ca02471 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs @@ -0,0 +1,55 @@ +#if (UNITY_EDITOR || UNITY_ANDROID) && UNITY_ANDROID_JNI +using System.Collections.Generic; +using UnityEngine; + +// Credit: https://stackoverflow.com/a/41018028/2373034 +namespace IngameDebugConsole +{ + public class DebugLogLogcatListener : AndroidJavaProxy + { + private Queue queuedLogs; + private AndroidJavaObject nativeObject; + + public DebugLogLogcatListener() : base( "com.yasirkula.unity.DebugConsoleLogcatLogReceiver" ) + { + queuedLogs = new Queue( 16 ); + } + + ~DebugLogLogcatListener() + { + Stop(); + + if( nativeObject != null ) + nativeObject.Dispose(); + } + + public void Start( string arguments ) + { + if( nativeObject == null ) + nativeObject = new AndroidJavaObject( "com.yasirkula.unity.DebugConsoleLogcatLogger" ); + + nativeObject.Call( "Start", this, arguments ); + } + + public void Stop() + { + if( nativeObject != null ) + nativeObject.Call( "Stop" ); + } + + [UnityEngine.Scripting.Preserve] + public void OnLogReceived( string log ) + { + queuedLogs.Enqueue( log ); + } + + public string GetLog() + { + if( queuedLogs.Count > 0 ) + return queuedLogs.Dequeue(); + + return null; + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs.meta b/Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs.meta new file mode 100644 index 0000000000..9b584725b8 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs.meta @@ -0,0 +1,19 @@ +fileFormatVersion: 2 +guid: dd3b7385882055d4a8c2b91deb6b2470 +timeCreated: 1510076185 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 68068 + packageName: In-game Debug Console + packageVersion: 1.8.2 + assetPath: Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs + uploadId: 764785 diff --git a/Assets/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar b/Assets/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar new file mode 100644 index 0000000000000000000000000000000000000000..759bab30c39e298e21a64411a7aa1dd65dfc7370 GIT binary patch literal 3343 zcmZ{ncTf}Bw#E}`qzMMep$dd5y-C#^nv}qij-iDBQKa{BX;MX61R*r(1`v=gNK23o z5hA@v6BJNNkSYjrId9&1&zbw)-m})4HGAg!X05+|+Xzlc#R>obK!A6)1QXbjDJJ8x z>$wc@WvF{N`FK8ZGDLYidVu!zlMHfqQ%HG7*CoxYMWXwqITHe=zG{+l1f?Rw>)kaC zOzNM`5SleY!sNQ!J$}SB|1f%xSsa(!9#!a^=I=dbM4VBx-;i3DwD*I0vslA?5=YlQ zSH-oYMs1z>R6}kv&5{z(sf+wGMkX#d-9B6<5os>&2P$%f9Hnac;*g#PL z1c3cO=c>$5<{=W}`X}cLL8tq~(~#UDIv7}?fil1C%PA`KF@Mlp+4X$RW9DL`sfGGe(HF;u zF0L|`iTT#%qd_2S`0$hWT-hPjuVs@mK&&d*)SsMP(+Yu8sjpL9D=mGP!;!ONoafrq zef@=w@2bZO*ol>Idw3{NV@D>wcdK}K3mO?m8srW2Ye@P8MMVy)eBGbB0}qpq>$D{u zk$ucZxo2B$xbQPM6mnSmA>-!z!;aCu_sk@<9-#lamLsHJLs~-us9(Xoh+Z(co_3?w zLzo{&%f`r_;KSgObppPrV$;i9{Q4CB z_ns!R{G84LDPNENT6zc4@WYW#<#Dx%E0N5zLhT_UOzK30W%Z46*tYEaIxz%Ck5DU+d-)!}r z>qFXrCdEWDBM|sLDI0f^RDOrA^c9=}RmvVrRBqeM8~b=RVoVFa>7{HmA1cF0My4i$ zehhqi#-aIKJK>4>HOmLmqpckj z!Tu-y&%Y2(mfs2vHXWPAa)Rcu!iu_dT5nX4Jtu zzI=Y#tYw9ZZSa0Y@#PTj2Xs^zyAr((y0g=!bvus}AE!KI0_|3e399s8QOo{T=-04n z7?w6$W|j<@BlT&Gc{Hky4j$&PY!fpS(;GA%Ag8?6Dq#m{dRkTXCHLaWSnVL05EZ{|tPKsDplW+_lZP)nur+QvG2p zwn-O`U0^h4a+ly~(D#Qi;b~lLUNk`Ytjs}^iQyIW*BX-{*{!LVvk#}d3hs&PI-^-L zjfgok72w-_002i2<$#S}A)+1aJ>DRMMP- z+h@&|8J3zbn(_(S3>6)GEQ@7ct>>mYw{JV!6-qlzSKQeyO3uVAn&$Rkvka`;?lRlkWT^@s58nFK`NdePP-sx0F#)Y~-a^WnyQy6E}o5c+jt0q?(V@`w81(ouBs}mb`o%!w`s1F%7R%+ocaHiUw^{_#E6U ziX3`cfE$0)hLg2-hOQ>zYKjp~m}s%?X7gQwB{BcWlct4SZuZePx%$+76EZFydm+z1 z19xk$s(E;yP(D9B68PxsXbTxn2ocje4@`Q_2c~%aYw(sQd$nn4Rv$Ak2RT#Kz3ZFH zC5(8*EKAUV?D{cbLu*pkf4$@hH{Y6_jQ=cK>t(<{gXt>QKNYbEk*qTak!s@A!a02R zuECAuc5=y#6NwmuDzB)tDrFX~j_6MbsXA-CvCvVKfL5&;1S@Fs)Z0d$VYN}@db+gk zi3I2*eY+RWm~!nQ(m@nklUn2A5hzf2kE}*o`%2tp7gZxpXYWN{uk>>-`%_hL7%l@T zOb7s_}jM$94kyfe7usUvqWnovReA;{fTt4Qn}Ii!d#)};K8UnxOP zL394=W39dhD=o1cY-=5w3-ke<6f>1EW`AsEgDD? z#@{fc4mFo~9#hE_I=yL`j6JXB?d6plxBK=TvIX1o-DKaQOv@~(RwowV7eigY9_VZK zEgRJGDK#mYqzlmFClTedqDLvP`Ut@P;_FCN zl1bu@nf%R5loYv)OM(S>`FK9`NBKBO`UUxo5C3H-VWc~vCoXBBJ3^YQG!P#VACer_ zn-Ci&ioco|Hz~LHP;XIAeW?kgxB>Y8&|ctD_wU2|U-|z8eY*dC1Oom5oWoNbPt2!* z|J3#+9Z8z|loC0symr{}cfK24z18UH||9 literal 0 HcmV?d00001 diff --git a/Assets/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar.meta b/Assets/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar.meta new file mode 100644 index 0000000000..4b87f5c2e4 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar.meta @@ -0,0 +1,40 @@ +fileFormatVersion: 2 +guid: bf909fab1c14af446b0a854de42289b2 +timeCreated: 1510086220 +licenseType: Store +PluginImporter: + serializedVersion: 2 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + isOverridable: 0 + platformData: + data: + first: + Android: Android + second: + enabled: 1 + settings: {} + data: + first: + Any: + second: + enabled: 0 + settings: {} + data: + first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 68068 + packageName: In-game Debug Console + packageVersion: 1.8.2 + assetPath: Assets/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar + uploadId: 764785 diff --git a/Assets/Plugins/IngameDebugConsole/Editor.meta b/Assets/Plugins/IngameDebugConsole/Editor.meta new file mode 100644 index 0000000000..89ddb4f257 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 86f54622630720f4abe279acdbb8886f +folderAsset: yes +timeCreated: 1561217660 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs b/Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs new file mode 100644 index 0000000000..962ad8c503 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs @@ -0,0 +1,185 @@ +using UnityEditor; +using UnityEngine; + +namespace IngameDebugConsole +{ + [CustomEditor( typeof( DebugLogManager ) )] + public class DebugLogManagerEditor : Editor + { + private SerializedProperty singleton; + private SerializedProperty minimumHeight; + private SerializedProperty enableHorizontalResizing; + private SerializedProperty resizeFromRight; + private SerializedProperty minimumWidth; + private SerializedProperty logWindowOpacity; + private SerializedProperty popupOpacity; + private SerializedProperty popupVisibility; + private SerializedProperty popupVisibilityLogFilter; + private SerializedProperty startMinimized; + private SerializedProperty toggleWithKey; + private SerializedProperty toggleKey; + private SerializedProperty enableSearchbar; + private SerializedProperty topSearchbarMinWidth; + private SerializedProperty copyAllLogsOnResizeButtonClick; + private SerializedProperty receiveLogsWhileInactive; + private SerializedProperty receiveInfoLogs; + private SerializedProperty receiveWarningLogs; + private SerializedProperty receiveErrorLogs; + private SerializedProperty receiveExceptionLogs; + private SerializedProperty captureLogTimestamps; + private SerializedProperty alwaysDisplayTimestamps; + private SerializedProperty maxLogCount; + private SerializedProperty logsToRemoveAfterMaxLogCount; + private SerializedProperty queuedLogLimit; + private SerializedProperty clearCommandAfterExecution; + private SerializedProperty commandHistorySize; + private SerializedProperty showCommandSuggestions; + private SerializedProperty receiveLogcatLogsInAndroid; + private SerializedProperty logcatArguments; + private SerializedProperty avoidScreenCutout; + private SerializedProperty popupAvoidsScreenCutout; + private SerializedProperty autoFocusOnCommandInputField; + + private readonly GUIContent popupVisibilityLogFilterLabel = new GUIContent( "Log Filter", "Determines which log types will show the popup on screen" ); + private readonly GUIContent receivedLogTypesLabel = new GUIContent( "Received Log Types", "Only these logs will be received by the console window, other logs will simply be skipped" ); + private readonly GUIContent receiveInfoLogsLabel = new GUIContent( "Info" ); + private readonly GUIContent receiveWarningLogsLabel = new GUIContent( "Warning" ); + private readonly GUIContent receiveErrorLogsLabel = new GUIContent( "Error" ); + private readonly GUIContent receiveExceptionLogsLabel = new GUIContent( "Exception" ); + + private void OnEnable() + { + singleton = serializedObject.FindProperty( "singleton" ); + minimumHeight = serializedObject.FindProperty( "minimumHeight" ); + enableHorizontalResizing = serializedObject.FindProperty( "enableHorizontalResizing" ); + resizeFromRight = serializedObject.FindProperty( "resizeFromRight" ); + minimumWidth = serializedObject.FindProperty( "minimumWidth" ); + logWindowOpacity = serializedObject.FindProperty( "logWindowOpacity" ); + popupOpacity = serializedObject.FindProperty( "popupOpacity" ); + popupVisibility = serializedObject.FindProperty( "popupVisibility" ); + popupVisibilityLogFilter = serializedObject.FindProperty( "popupVisibilityLogFilter" ); + startMinimized = serializedObject.FindProperty( "startMinimized" ); + toggleWithKey = serializedObject.FindProperty( "toggleWithKey" ); +#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER + toggleKey = serializedObject.FindProperty( "toggleBinding" ); +#else + toggleKey = serializedObject.FindProperty( "toggleKey" ); +#endif + enableSearchbar = serializedObject.FindProperty( "enableSearchbar" ); + topSearchbarMinWidth = serializedObject.FindProperty( "topSearchbarMinWidth" ); + receiveLogsWhileInactive = serializedObject.FindProperty( "receiveLogsWhileInactive" ); + receiveInfoLogs = serializedObject.FindProperty( "receiveInfoLogs" ); + receiveWarningLogs = serializedObject.FindProperty( "receiveWarningLogs" ); + receiveErrorLogs = serializedObject.FindProperty( "receiveErrorLogs" ); + receiveExceptionLogs = serializedObject.FindProperty( "receiveExceptionLogs" ); + captureLogTimestamps = serializedObject.FindProperty( "captureLogTimestamps" ); + alwaysDisplayTimestamps = serializedObject.FindProperty( "alwaysDisplayTimestamps" ); + maxLogCount = serializedObject.FindProperty( "maxLogCount" ); + logsToRemoveAfterMaxLogCount = serializedObject.FindProperty( "logsToRemoveAfterMaxLogCount" ); + queuedLogLimit = serializedObject.FindProperty( "queuedLogLimit" ); + copyAllLogsOnResizeButtonClick = serializedObject.FindProperty("copyAllLogsOnResizeButtonClick"); + clearCommandAfterExecution = serializedObject.FindProperty( "clearCommandAfterExecution" ); + commandHistorySize = serializedObject.FindProperty( "commandHistorySize" ); + showCommandSuggestions = serializedObject.FindProperty( "showCommandSuggestions" ); + receiveLogcatLogsInAndroid = serializedObject.FindProperty( "receiveLogcatLogsInAndroid" ); + logcatArguments = serializedObject.FindProperty( "logcatArguments" ); + avoidScreenCutout = serializedObject.FindProperty( "avoidScreenCutout" ); + popupAvoidsScreenCutout = serializedObject.FindProperty( "popupAvoidsScreenCutout" ); + autoFocusOnCommandInputField = serializedObject.FindProperty( "autoFocusOnCommandInputField" ); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField( singleton ); + + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField( minimumHeight ); + + EditorGUILayout.PropertyField( enableHorizontalResizing ); + if( enableHorizontalResizing.boolValue ) + { + DrawSubProperty( resizeFromRight ); + DrawSubProperty( minimumWidth ); + } + + EditorGUILayout.PropertyField( avoidScreenCutout ); + DrawSubProperty( popupAvoidsScreenCutout ); + + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField( startMinimized ); + EditorGUILayout.PropertyField( logWindowOpacity ); + EditorGUILayout.PropertyField( popupOpacity ); + + EditorGUILayout.PropertyField( popupVisibility ); + if( popupVisibility.intValue == (int) PopupVisibility.WhenLogReceived ) + { + EditorGUI.indentLevel++; + Rect rect = EditorGUILayout.GetControlRect(); + EditorGUI.BeginProperty( rect, GUIContent.none, popupVisibilityLogFilter ); + popupVisibilityLogFilter.intValue = (int) (DebugLogFilter) EditorGUI.EnumFlagsField( rect, popupVisibilityLogFilterLabel, (DebugLogFilter) popupVisibilityLogFilter.intValue ); + EditorGUI.EndProperty(); + EditorGUI.indentLevel--; + } + + EditorGUILayout.PropertyField( toggleWithKey ); + if( toggleWithKey.boolValue ) + DrawSubProperty( toggleKey ); + + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField( enableSearchbar ); + if( enableSearchbar.boolValue ) + DrawSubProperty( topSearchbarMinWidth ); + + EditorGUILayout.PropertyField(copyAllLogsOnResizeButtonClick); + + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField( receiveLogsWhileInactive ); + + EditorGUILayout.PrefixLabel( receivedLogTypesLabel ); + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField( receiveInfoLogs, receiveInfoLogsLabel ); + EditorGUILayout.PropertyField( receiveWarningLogs, receiveWarningLogsLabel ); + EditorGUILayout.PropertyField( receiveErrorLogs, receiveErrorLogsLabel ); + EditorGUILayout.PropertyField( receiveExceptionLogs, receiveExceptionLogsLabel ); + EditorGUI.indentLevel--; + + EditorGUILayout.PropertyField( receiveLogcatLogsInAndroid ); + if( receiveLogcatLogsInAndroid.boolValue ) + DrawSubProperty( logcatArguments ); + + EditorGUILayout.PropertyField( captureLogTimestamps ); + if( captureLogTimestamps.boolValue ) + DrawSubProperty( alwaysDisplayTimestamps ); + + EditorGUILayout.PropertyField( maxLogCount ); + DrawSubProperty( logsToRemoveAfterMaxLogCount ); + + EditorGUILayout.PropertyField( queuedLogLimit ); + + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField( clearCommandAfterExecution ); + EditorGUILayout.PropertyField( commandHistorySize ); + EditorGUILayout.PropertyField( showCommandSuggestions ); + EditorGUILayout.PropertyField( autoFocusOnCommandInputField ); + + EditorGUILayout.Space(); + + DrawPropertiesExcluding( serializedObject, "m_Script" ); + serializedObject.ApplyModifiedProperties(); + } + + private void DrawSubProperty( SerializedProperty property ) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField( property ); + EditorGUI.indentLevel--; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs.meta b/Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs.meta new file mode 100644 index 0000000000..ad49201f19 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs.meta @@ -0,0 +1,19 @@ +fileFormatVersion: 2 +guid: 4c23e5c521cb0c54b9a638b2a653d1d3 +timeCreated: 1561217671 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 68068 + packageName: In-game Debug Console + packageVersion: 1.8.2 + assetPath: Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs + uploadId: 764785 diff --git a/Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef b/Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef new file mode 100644 index 0000000000..c2ac006361 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef @@ -0,0 +1,17 @@ +{ + "name": "IngameDebugConsole.Editor", + "references": [ + "IngameDebugConsole.Runtime" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef.meta b/Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef.meta new file mode 100644 index 0000000000..4026d5de84 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 466e67dabd1db22468246c39eddb6c3f +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 68068 + packageName: In-game Debug Console + packageVersion: 1.8.2 + assetPath: Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef + uploadId: 764785 diff --git a/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef b/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef new file mode 100644 index 0000000000..4382e15d3f --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef @@ -0,0 +1,23 @@ +{ + "name": "IngameDebugConsole.Runtime", + "rootNamespace": "", + "references": [ + "Unity.InputSystem", + "Unity.TextMeshPro" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [ + { + "name": "com.unity.modules.androidjni", + "expression": "", + "define": "UNITY_ANDROID_JNI" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef.meta b/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef.meta new file mode 100644 index 0000000000..429b508b6f --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 3de88c88fbbb8f944b9210d496af9762 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 68068 + packageName: In-game Debug Console + packageVersion: 1.8.2 + assetPath: Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef + uploadId: 764785 diff --git a/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab b/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab new file mode 100644 index 0000000000..e0378ec160 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab @@ -0,0 +1,5150 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100406 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22478474} + - component: {fileID: 22292746} + - component: {fileID: 7682126221316033537} + m_Layer: 5 + m_Name: NewInfoCount + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22478474 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100406} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22414360} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.45, y: 0.675} + m_AnchorMax: {x: 1, y: 0.975} + m_AnchoredPosition: {x: -1, y: 0} + m_SizeDelta: {x: -2, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22292746 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100406} + m_CullTransparentMesh: 1 +--- !u!114 &7682126221316033537 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 100406} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 0 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292335574 + m_fontColor: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 2 + m_fontSizeMax: 16 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 3 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 0 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &109254 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 437128} + - component: {fileID: 11418932} + - component: {fileID: 11492840} + - component: {fileID: 114575087663981696} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &437128 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 109254} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22457152} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &11418932 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 109254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 0 + m_DragThreshold: 5 +--- !u!114 &11492840 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 109254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &114575087663981696 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 109254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1511ccae7919cfc46b603b9b337fdc94, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &110786 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22460680} + - component: {fileID: 22261918} + - component: {fileID: 11431488} + - component: {fileID: 114538072837526774} + - component: {fileID: 7084366004531900487} + m_Layer: 5 + m_Name: DebugLogWindowResize + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22460680 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 110786} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 22420992} + m_Father: {fileID: 22477946} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 64, y: 36} + m_Pivot: {x: 1, y: 0} +--- !u!222 &22261918 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 110786} + m_CullTransparentMesh: 1 +--- !u!114 &11431488 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 110786} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &114538072837526774 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 110786} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6565f2084f5aef44abe57c988745b9c3, type: 3} + m_Name: + m_EditorClassIdentifier: + debugManager: {fileID: 11452418} +--- !u!114 &7084366004531900487 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 110786} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 298319a3c52d37442b63e30622b8c05d, type: 3} + m_Name: + m_EditorClassIdentifier: + maxLogCount: 2147483647 + maxElapsedTime: Infinity +--- !u!1 &118212 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22429100} + - component: {fileID: 22207004} + - component: {fileID: 11499344} + - component: {fileID: 11414302} + - component: {fileID: 11460786} + m_Layer: 5 + m_Name: Scrollbar Vertical + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22429100 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 118212} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 22482970} + m_Father: {fileID: 22436850} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 28, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!222 &22207004 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 118212} + m_CullTransparentMesh: 1 +--- !u!114 &11499344 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 118212} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &11414302 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 118212} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11419798} + m_HandleRect: {fileID: 22426080} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &11460786 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 118212} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 13 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11414998} + m_TargetAssemblyTypeName: + m_MethodName: OnScrollbarDragStart + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - eventID: 14 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11414998} + m_TargetAssemblyTypeName: + m_MethodName: OnScrollbarDragEnd + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &119972 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22485076} + - component: {fileID: 11471588} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22485076 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 119972} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 22400762} + - {fileID: 224170087475393432} + m_Father: {fileID: 22436850} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -28, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &11471588 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 119972} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!1 &121708 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22456566} + - component: {fileID: 222466100300644746} + - component: {fileID: 114944715489184838} + - component: {fileID: 114777798721274074} + m_Layer: 5 + m_Name: Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22456566 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 121708} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 224856348943071238} + - {fileID: 22488670} + - {fileID: 224619367409363176} + - {fileID: 22428984} + - {fileID: 22455554} + - {fileID: 22495692} + - {fileID: 22468896} + m_Father: {fileID: 22477946} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 36} + m_Pivot: {x: 1, y: 1} +--- !u!222 &222466100300644746 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 121708} + m_CullTransparentMesh: 1 +--- !u!114 &114944715489184838 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 121708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &114777798721274074 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 121708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &123548 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22466754} + - component: {fileID: 22288586} + - component: {fileID: 11495556} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22466754 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 123548} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22455554} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.55, y: 1} + m_AnchoredPosition: {x: 1, y: 0.5} + m_SizeDelta: {x: -2, y: -7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22288586 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 123548} + m_CullTransparentMesh: 1 +--- !u!114 &11495556 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 123548} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 05c7216c78d4dd34ebe2bac9c1e274d7, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &132536 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22457152} + - component: {fileID: 22331464} + - component: {fileID: 11440770} + - component: {fileID: 11490438} + - component: {fileID: 11452418} + - component: {fileID: 114573443145823088} + m_Layer: 5 + m_Name: IngameDebugConsole + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22457152 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 132536} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 22477946} + - {fileID: 22414360} + - {fileID: 437128} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!223 &22331464 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 132536} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 1001 + m_TargetDisplay: 0 +--- !u!114 &11440770 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 132536} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!114 &11490438 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 132536} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &11452418 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 132536} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6a4f16ed905adcd4ab0d7c8c11f0d72c, type: 3} + m_Name: + m_EditorClassIdentifier: + singleton: 1 + minimumHeight: 200 + enableHorizontalResizing: 0 + resizeFromRight: 1 + minimumWidth: 240 + logWindowOpacity: 1 + popupOpacity: 1 + popupVisibility: 0 + popupVisibilityLogFilter: -1 + startMinimized: 1 + toggleWithKey: 1 + toggleKey: 96 + enableSearchbar: 1 + topSearchbarMinWidth: 360 + copyAllLogsOnResizeButtonClick: 0 + receiveLogsWhileInactive: 0 + receiveInfoLogs: 1 + receiveWarningLogs: 1 + receiveErrorLogs: 1 + receiveExceptionLogs: 1 + captureLogTimestamps: 0 + alwaysDisplayTimestamps: 0 + maxLogCount: 2147483647 + logsToRemoveAfterMaxLogCount: 16 + queuedLogLimit: 256 + clearCommandAfterExecution: 1 + commandHistorySize: 15 + showCommandSuggestions: 1 + receiveLogcatLogsInAndroid: 0 + logcatArguments: + avoidScreenCutout: 1 + popupAvoidsScreenCutout: 0 + maxCollapsedLogLength: 200 + maxExpandedLogLength: 10000 + autoFocusOnCommandInputField: 1 + logItemPrefab: {fileID: 11408050, guid: 391be5df5ef62f345bb76a1051c04da7, type: 3} + logItemFontOverride: {fileID: 0} + commandSuggestionPrefab: {fileID: 6838696818539158795, guid: 5e66896448428cf46a1854dbdc014914, + type: 3} + infoLog: {fileID: 21300000, guid: 5a97d5afa6254804f81b7ba956296996, type: 3} + warningLog: {fileID: 21300000, guid: 05c7216c78d4dd34ebe2bac9c1e274d7, type: 3} + errorLog: {fileID: 21300000, guid: 66305a19e3614694f868c75a982e6b68, type: 3} + resizeIconAllDirections: {fileID: 21300000, guid: 7f0db3cf23c93fc4eac01cb3a52388ee, + type: 3} + resizeIconVerticalOnly: {fileID: 21300000, guid: a9fd8f6b461461f4a92eafc60921ee78, + type: 3} + collapseButtonNormalColor: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + collapseButtonSelectedColor: {r: 0.44117647, g: 0.4346886, b: 0.4346886, a: 1} + filterButtonsNormalColor: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + filterButtonsSelectedColor: {r: 0.44117647, g: 0.4346886, b: 0.4346886, a: 1} + commandSuggestionHighlightStart: + commandSuggestionHighlightEnd: + logWindowTR: {fileID: 22477946} + logItemsContainer: {fileID: 22400762} + commandSuggestionsContainer: {fileID: 224982529675224150} + commandInputField: {fileID: 2828119722214024373} + hideButton: {fileID: 11477250} + clearButton: {fileID: 114466839828933532} + collapseButton: {fileID: 11491814} + filterInfoButton: {fileID: 11400378} + filterWarningButton: {fileID: 11490350} + filterErrorButton: {fileID: 11406916} + infoEntryCountText: {fileID: 8026934286120355878} + warningEntryCountText: {fileID: 958269219681220773} + errorEntryCountText: {fileID: 8276117061088563291} + searchbar: {fileID: 224927884203097686} + searchbarSlotTop: {fileID: 224619367409363176} + searchbarSlotBottom: {fileID: 224755787573573022} + resizeButton: {fileID: 11419610} + snapToBottomButton: {fileID: 1486651836328188} + logWindowCanvasGroup: {fileID: 22509978} + popupManager: {fileID: 11491080} + logItemsScrollRect: {fileID: 11405548} + recycledListView: {fileID: 11453682} +--- !u!114 &114573443145823088 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 132536} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c3cc1b407f337e641ad32a2e91d5b478, type: 3} + m_Name: + m_EditorClassIdentifier: + embeddedEventSystem: {fileID: 109254} +--- !u!1 &133140 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22428984} + - component: {fileID: 22231690} + - component: {fileID: 11400378} + - component: {fileID: 11466918} + m_Layer: 5 + m_Name: FilterLogButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22428984 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 133140} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 22497984} + - {fileID: 22452314} + m_Father: {fileID: 22456566} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22231690 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 133140} + m_CullTransparentMesh: 1 +--- !u!114 &11400378 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 133140} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &11466918 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 133140} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11400378} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &133612 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22468896} + - component: {fileID: 22255062} + - component: {fileID: 11448508} + - component: {fileID: 11477250} + m_Layer: 5 + m_Name: HideButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22468896 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 133612} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 22485120} + m_Father: {fileID: 22456566} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22255062 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 133612} + m_CullTransparentMesh: 1 +--- !u!114 &11448508 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 133612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &11477250 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 133612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11448508} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &135210 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22496878} + - component: {fileID: 22213036} + - component: {fileID: 8276117061088563291} + m_Layer: 5 + m_Name: ErrorCount + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22496878 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 135210} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22495692} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.55, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -2, y: -2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22213036 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 135210} + m_CullTransparentMesh: 1 +--- !u!114 &8276117061088563291 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 135210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 0 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292335574 + m_fontColor: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 2 + m_fontSizeMax: 16 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 3 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 0 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &142160 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22488670} + - component: {fileID: 22236784} + - component: {fileID: 11491814} + - component: {fileID: 11437802} + m_Layer: 5 + m_Name: CollapseButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22488670 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 142160} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 224781297716539566} + m_Father: {fileID: 22456566} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22236784 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 142160} + m_CullTransparentMesh: 1 +--- !u!114 &11491814 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 142160} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &11437802 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 142160} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11491814} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &145092 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22497984} + - component: {fileID: 22209426} + - component: {fileID: 11437286} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22497984 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 145092} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22428984} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.55, y: 1} + m_AnchoredPosition: {x: 1, y: 0.5} + m_SizeDelta: {x: -2, y: -7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22209426 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 145092} + m_CullTransparentMesh: 1 +--- !u!114 &11437286 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 145092} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 5a97d5afa6254804f81b7ba956296996, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &148506 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22435388} + - component: {fileID: 22236120} + - component: {fileID: 11430762} + m_Layer: 5 + m_Name: WarningImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22435388 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 148506} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22414360} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.35} + m_AnchorMax: {x: 0.45, y: 0.65} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -1, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &22236120 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 148506} + m_CullTransparentMesh: 1 +--- !u!114 &11430762 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 148506} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 05c7216c78d4dd34ebe2bac9c1e274d7, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &160714 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22439026} + - component: {fileID: 22209194} + - component: {fileID: 11486984} + m_Layer: 5 + m_Name: InfoImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22439026 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 160714} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22414360} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.675} + m_AnchorMax: {x: 0.45, y: 0.975} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -1, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &22209194 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 160714} + m_CullTransparentMesh: 1 +--- !u!114 &11486984 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 160714} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 5a97d5afa6254804f81b7ba956296996, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &161086 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22420992} + - component: {fileID: 22290652} + - component: {fileID: 11419610} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22420992 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 161086} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22460680} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.15, y: 0.12} + m_AnchorMax: {x: 0.85, y: 0.88} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22290652 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 161086} + m_CullTransparentMesh: 1 +--- !u!114 &11419610 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 161086} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9485294, g: 0.9485294, b: 0.9485294, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: a9fd8f6b461461f4a92eafc60921ee78, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &163938 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22455554} + - component: {fileID: 22258478} + - component: {fileID: 11490350} + - component: {fileID: 11472314} + m_Layer: 5 + m_Name: FilterWarningButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22455554 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 163938} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 22466754} + - {fileID: 22427174} + m_Father: {fileID: 22456566} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22258478 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 163938} + m_CullTransparentMesh: 1 +--- !u!114 &11490350 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 163938} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &11472314 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 163938} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11490350} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &164562 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22485120} + - component: {fileID: 22261724} + - component: {fileID: 114435636144975300} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22485120 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 164562} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22468896} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.15, y: 0.12} + m_AnchorMax: {x: 0.85, y: 0.88} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22261724 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 164562} + m_CullTransparentMesh: 1 +--- !u!114 &114435636144975300 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 164562} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: b3905a73a6672d9449647aaf036e23fc, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &165242 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22452256} + - component: {fileID: 22278414} + - component: {fileID: 11431640} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22452256 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 165242} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22495692} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.55, y: 1} + m_AnchoredPosition: {x: 1, y: 0.5} + m_SizeDelta: {x: -2, y: -7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22278414 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 165242} + m_CullTransparentMesh: 1 +--- !u!114 &11431640 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 165242} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 66305a19e3614694f868c75a982e6b68, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &166206 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22412306} + - component: {fileID: 22260676} + - component: {fileID: 11421290} + m_Layer: 5 + m_Name: ErrorImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22412306 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 166206} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22414360} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.025} + m_AnchorMax: {x: 0.45, y: 0.325} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -1, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &22260676 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 166206} + m_CullTransparentMesh: 1 +--- !u!114 &11421290 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 166206} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 66305a19e3614694f868c75a982e6b68, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &168792 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22431144} + - component: {fileID: 22240830} + - component: {fileID: 5379786813386287946} + m_Layer: 5 + m_Name: NewErrorCount + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22431144 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 168792} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22414360} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.45, y: 0.025} + m_AnchorMax: {x: 1, y: 0.325} + m_AnchoredPosition: {x: -1, y: 0} + m_SizeDelta: {x: -2, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22240830 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 168792} + m_CullTransparentMesh: 1 +--- !u!114 &5379786813386287946 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 168792} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 0 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292335574 + m_fontColor: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 2 + m_fontSizeMax: 16 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 3 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 0 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &170186 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22495692} + - component: {fileID: 22248262} + - component: {fileID: 11406916} + - component: {fileID: 11420596} + m_Layer: 5 + m_Name: FilterErrorButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22495692 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 170186} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 22452256} + - {fileID: 22496878} + m_Father: {fileID: 22456566} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22248262 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 170186} + m_CullTransparentMesh: 1 +--- !u!114 &11406916 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 170186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &11420596 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 170186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11406916} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &171206 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22482970} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22482970 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 171206} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 22426080} + m_Father: {fileID: 22429100} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &173314 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22436850} + - component: {fileID: 11405548} + - component: {fileID: 22273436} + - component: {fileID: 11410364} + - component: {fileID: 11414998} + m_Layer: 5 + m_Name: Debugs + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22436850 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 173314} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 22485076} + - {fileID: 22429100} + m_Father: {fileID: 22477946} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: -72} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &11405548 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 173314} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 22400762} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.01 + m_ScrollSensitivity: 25 + m_Viewport: {fileID: 22485076} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 11414302} + m_HorizontalScrollbarVisibility: 2 + m_VerticalScrollbarVisibility: 0 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &22273436 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 173314} + m_CullTransparentMesh: 1 +--- !u!114 &11410364 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 173314} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &11414998 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 173314} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb564dcb180e586429c57456166a76b5, type: 3} + m_Name: + m_EditorClassIdentifier: + debugsScrollRect: {fileID: 11405548} + debugLogManager: {fileID: 11452418} +--- !u!1 &176246 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22427174} + - component: {fileID: 22242412} + - component: {fileID: 958269219681220773} + m_Layer: 5 + m_Name: WarningCount + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22427174 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 176246} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22455554} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.55, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -2, y: -2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22242412 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 176246} + m_CullTransparentMesh: 1 +--- !u!114 &958269219681220773 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 176246} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 0 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292335574 + m_fontColor: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 2 + m_fontSizeMax: 16 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 3 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 0 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &176876 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22452314} + - component: {fileID: 22235120} + - component: {fileID: 8026934286120355878} + m_Layer: 5 + m_Name: LogCount + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22452314 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 176876} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22428984} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.55, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -2, y: -2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22235120 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 176876} + m_CullTransparentMesh: 1 +--- !u!114 &8026934286120355878 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 176876} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 0 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292335574 + m_fontColor: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 2 + m_fontSizeMax: 16 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 3 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 0 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &178532 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22414360} + - component: {fileID: 22223402} + - component: {fileID: 11410584} + - component: {fileID: 11491080} + - component: {fileID: 22505754} + m_Layer: 5 + m_Name: DebugLogPopup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22414360 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 178532} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 22439026} + - {fileID: 22435388} + - {fileID: 22412306} + - {fileID: 22478474} + - {fileID: 22436794} + - {fileID: 22431144} + m_Father: {fileID: 22457152} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 1000, y: 0} + m_SizeDelta: {x: 72, y: 72} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22223402 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 178532} + m_CullTransparentMesh: 1 +--- !u!114 &11410584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 178532} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.30588236, g: 0.30588236, b: 0.30588236, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: b3f0d976f6d6802479d6465d11b3aa68, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &11491080 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 178532} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 05cc4b1999716644c9308528e38e7081, type: 3} + m_Name: + m_EditorClassIdentifier: + debugManager: {fileID: 11452418} + newInfoCountText: {fileID: 7682126221316033537} + newWarningCountText: {fileID: 7917212057380179541} + newErrorCountText: {fileID: 5379786813386287946} + alertColorInfo: {r: 0.050980393, g: 0.32941177, b: 0.5647059, a: 1} + alertColorWarning: {r: 0.59607846, g: 0.45490196, b: 0, a: 1} + alertColorError: {r: 0.5647059, g: 0.050980393, b: 0.050980393, a: 1} +--- !u!225 &22505754 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 178532} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!1 &183006 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22477946} + - component: {fileID: 22230524} + - component: {fileID: 11400672} + - component: {fileID: 22509978} + m_Layer: 5 + m_Name: DebugLogWindow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22477946 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 183006} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 22456566} + - {fileID: 224755787573573022} + - {fileID: 22436850} + - {fileID: 224175272648112170} + - {fileID: 224000011255372986} + - {fileID: 22460680} + m_Father: {fileID: 22457152} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!222 &22230524 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 183006} + m_CullTransparentMesh: 1 +--- !u!114 &11400672 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 183006} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.21960784, g: 0.21960784, b: 0.21960784, a: 0.797} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!225 &22509978 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 183006} + m_Enabled: 1 + m_Alpha: 0 + m_Interactable: 1 + m_BlocksRaycasts: 0 + m_IgnoreParentGroups: 0 +--- !u!1 &187566 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22400762} + - component: {fileID: 11453682} + m_Layer: 5 + m_Name: LogsContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22400762 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 187566} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22485076} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0.00012207031} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0, y: 1} +--- !u!114 &11453682 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 187566} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ce231987d32488f43b6fb798f7df43f6, type: 3} + m_Name: + m_EditorClassIdentifier: + transformComponent: {fileID: 22400762} + viewportTransform: {fileID: 22485076} + logItemNormalColor1: {r: 0.23529412, g: 0.23529412, b: 0.23529412, a: 0.697} + logItemNormalColor2: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.697} + logItemSelectedColor: {r: 0.32941177, g: 0.4862745, b: 0.7058824, a: 0.697} +--- !u!1 &189604 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22426080} + - component: {fileID: 22270452} + - component: {fileID: 11419798} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22426080 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 189604} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22482970} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22270452 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 189604} + m_CullTransparentMesh: 1 +--- !u!114 &11419798 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 189604} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &192924 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22436794} + - component: {fileID: 22260966} + - component: {fileID: 7917212057380179541} + m_Layer: 5 + m_Name: NewWarningCount + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22436794 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 192924} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22414360} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.45, y: 0.35} + m_AnchorMax: {x: 1, y: 0.65} + m_AnchoredPosition: {x: -1, y: 0} + m_SizeDelta: {x: -2, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22260966 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 192924} + m_CullTransparentMesh: 1 +--- !u!114 &7917212057380179541 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 192924} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 0 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292335574 + m_fontColor: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 2 + m_fontSizeMax: 16 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 3 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 0 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1000010562689872 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224000014081388310} + - component: {fileID: 222000011960742964} + - component: {fileID: 4760950775166374324} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224000014081388310 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000010562689872} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.0000001, y: 1.0000001, z: 1.0000001} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3241653211893928205} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222000011960742964 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000010562689872} + m_CullTransparentMesh: 1 +--- !u!114 &4760950775166374324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000010562689872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292335574 + m_fontColor: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 2 + m_fontSizeMax: 16 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 0 + m_parseCtrlCharacters: 0 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1000013017939458 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224000014244241328} + - component: {fileID: 222000010368327546} + - component: {fileID: 8949468901311314302} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224000014244241328 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000013017939458} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3241653211893928205} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222000010368327546 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000013017939458} + m_CullTransparentMesh: 1 +--- !u!114 &8949468901311314302 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000013017939458} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: (type help for list of commands) + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 2815940566 + m_fontColor: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 0.653} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 2 + m_fontSizeMax: 16 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 3 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 0 + m_parseCtrlCharacters: 0 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1000013131456698 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224000011255372986} + - component: {fileID: 222000010912077860} + - component: {fileID: 114000013324539428} + - component: {fileID: 2828119722214024373} + m_Layer: 5 + m_Name: CommandInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224000011255372986 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000013131456698} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3241653211893928205} + m_Father: {fileID: 22477946} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -32, y: 0} + m_SizeDelta: {x: -64, y: 36} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &222000010912077860 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000013131456698} + m_CullTransparentMesh: 1 +--- !u!114 &114000013324539428 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000013131456698} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2828119722214024373 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1000013131456698} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114000013324539428} + m_TextViewport: {fileID: 3241653211893928205} + m_TextComponent: {fileID: 4760950775166374324} + m_Placeholder: {fileID: 8949468901311314302} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 2 + m_HideMobileInput: 1 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_RichText: 0 + m_GlobalFontAsset: {fileID: 0} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!1 &1023677686285356 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224755787573573022} + - component: {fileID: 222554695212194500} + - component: {fileID: 114565304207243400} + m_Layer: 5 + m_Name: SearchbarSlotBottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &224755787573573022 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1023677686285356} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22477946} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -36} + m_SizeDelta: {x: 0, y: 36} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &222554695212194500 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1023677686285356} + m_CullTransparentMesh: 1 +--- !u!114 &114565304207243400 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1023677686285356} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1046123681008450 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224757625655964314} + - component: {fileID: 222859164510105872} + - component: {fileID: 6275684029659916475} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224757625655964314 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1046123681008450} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.0000001, y: 1.0000001, z: 1.0000001} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3890384517970623141} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -0.000030517578, y: 0.0000038146973} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222859164510105872 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1046123681008450} + m_CullTransparentMesh: 1 +--- !u!114 &6275684029659916475 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1046123681008450} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292335574 + m_fontColor: {r: 0.8392157, g: 0.84313726, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 1 + m_fontSizeMax: 40 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 0 + m_parseCtrlCharacters: 0 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1065080943999816 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224982529675224150} + - component: {fileID: 222691170673863110} + - component: {fileID: 114095641519247160} + - component: {fileID: 114749866180229960} + m_Layer: 5 + m_Name: CommandSuggestionsContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &224982529675224150 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1065080943999816} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 224175272648112170} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: -0.00005340576} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 0, y: 0} +--- !u!222 &222691170673863110 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1065080943999816} + m_CullTransparentMesh: 1 +--- !u!114 &114095641519247160 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1065080943999816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.334, g: 0.3286984, b: 0.3286984, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &114749866180229960 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1065080943999816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 10 + m_Right: 10 + m_Top: 10 + m_Bottom: 10 + m_ChildAlignment: 6 + m_Spacing: 2 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &1164238372139318 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224669170713768380} + - component: {fileID: 222006696964694420} + - component: {fileID: 2369662702609791303} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224669170713768380 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1164238372139318} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.0000001, y: 1.0000001, z: 1.0000001} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3890384517970623141} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -0.000030517578, y: 0.0000038146973} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222006696964694420 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1164238372139318} + m_CullTransparentMesh: 1 +--- !u!114 &2369662702609791303 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1164238372139318} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Search... + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 2815940566 + m_fontColor: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 0.653} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 2 + m_fontSizeMax: 16 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 3 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 0 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1197649202466618 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224927884203097686} + - component: {fileID: 222677458225366564} + - component: {fileID: 114677982133495580} + - component: {fileID: 3269972636402163945} + m_Layer: 5 + m_Name: Searchbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224927884203097686 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1197649202466618} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 224332069547574292} + - {fileID: 3890384517970623141} + m_Father: {fileID: 224619367409363176} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222677458225366564 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1197649202466618} + m_CullTransparentMesh: 1 +--- !u!114 &114677982133495580 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1197649202466618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3269972636402163945 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1197649202466618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114677982133495580} + m_TextViewport: {fileID: 3890384517970623141} + m_TextComponent: {fileID: 6275684029659916475} + m_Placeholder: {fileID: 2369662702609791303} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 1 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.8392157, g: 0.84313726, b: 0.84313726, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_RichText: 0 + m_GlobalFontAsset: {fileID: 0} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!1 &1316062289193744 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224781297716539566} + - component: {fileID: 222390805710412110} + - component: {fileID: 114375211676648468} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224781297716539566 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1316062289193744} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22488670} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.15, y: 0.12} + m_AnchorMax: {x: 0.85, y: 0.88} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222390805710412110 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1316062289193744} + m_CullTransparentMesh: 1 +--- !u!114 &114375211676648468 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1316062289193744} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9485294, g: 0.9485294, b: 0.9485294, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: d1546f8db185caf4dafcfa58efa3ba2c, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1419055185851692 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224175272648112170} + - component: {fileID: 114201206152803294} + m_Layer: 5 + m_Name: CommandSuggestions + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224175272648112170 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1419055185851692} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 224982529675224150} + m_Father: {fileID: 22477946} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 36} + m_SizeDelta: {x: 0, y: 5000} + m_Pivot: {x: 0, y: 0} +--- !u!114 &114201206152803294 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1419055185851692} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 6 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &1486651836328188 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224170087475393432} + - component: {fileID: 222255240242372310} + - component: {fileID: 114590956026916120} + - component: {fileID: 114786672304321734} + m_Layer: 5 + m_Name: SnapToBottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &224170087475393432 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1486651836328188} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 224726770285678000} + m_Father: {fileID: 22485076} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 8} + m_SizeDelta: {x: 42, y: 42} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &222255240242372310 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1486651836328188} + m_CullTransparentMesh: 1 +--- !u!114 &114590956026916120 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1486651836328188} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.30980393, g: 0.30980393, b: 0.30980393, a: 0.6862745} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: b902f763d0e47364dae25207b7e47800, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &114786672304321734 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1486651836328188} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114590956026916120} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1608527955020594 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224619367409363176} + - component: {fileID: 222199124140025852} + - component: {fileID: 114533172895795940} + - component: {fileID: 114425215294804516} + m_Layer: 5 + m_Name: SearchbarSlotTop + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224619367409363176 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1608527955020594} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 224927884203097686} + m_Father: {fileID: 22456566} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222199124140025852 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1608527955020594} + m_CullTransparentMesh: 1 +--- !u!114 &114533172895795940 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1608527955020594} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.24264705, g: 0.24443123, b: 0.24443123, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &114425215294804516 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1608527955020594} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 2 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &1797932393879816 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224479789572691966} + - component: {fileID: 222428315485768352} + - component: {fileID: 114704198421030094} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224479789572691966 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797932393879816} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 224856348943071238} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.15, y: 0.12} + m_AnchorMax: {x: 0.85, y: 0.88} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222428315485768352 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797932393879816} + m_CullTransparentMesh: 1 +--- !u!114 &114704198421030094 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797932393879816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9485294, g: 0.9485294, b: 0.9485294, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7a9e374666ad6cc47807bb001844f3d8, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1828058091608518 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224856348943071238} + - component: {fileID: 222172057957339964} + - component: {fileID: 114501864645789684} + - component: {fileID: 114466839828933532} + m_Layer: 5 + m_Name: ClearButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224856348943071238 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1828058091608518} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 224479789572691966} + m_Father: {fileID: 22456566} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222172057957339964 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1828058091608518} + m_CullTransparentMesh: 1 +--- !u!114 &114501864645789684 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1828058091608518} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &114466839828933532 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1828058091608518} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114501864645789684} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1837270565088688 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224726770285678000} + - component: {fileID: 222974975071271426} + - component: {fileID: 114796147118253168} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224726770285678000 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1837270565088688} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 224170087475393432} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.2, y: 0.2} + m_AnchorMax: {x: 0.8, y: 0.8} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222974975071271426 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1837270565088688} + m_CullTransparentMesh: 1 +--- !u!114 &114796147118253168 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1837270565088688} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9485294, g: 0.9485294, b: 0.9485294, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066c0b04be98cd348abb79add91d42bf, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1926020646996780 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224332069547574292} + - component: {fileID: 222821544406435052} + - component: {fileID: 114187932873892064} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224332069547574292 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1926020646996780} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 224927884203097686} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 2, y: 0} + m_SizeDelta: {x: 25, y: -6} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &222821544406435052 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1926020646996780} + m_CullTransparentMesh: 1 +--- !u!114 &114187932873892064 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1926020646996780} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9485294, g: 0.9485294, b: 0.9485294, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: e04e6c970b950d946a782ea08e5f971d, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5549907451157755789 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3890384517970623141} + - component: {fileID: 426702563440696791} + m_Layer: 0 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3890384517970623141 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5549907451157755789} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 224669170713768380} + - {fileID: 224757625655964314} + m_Father: {fileID: 224927884203097686} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 14, y: -0.5} + m_SizeDelta: {x: -32, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &426702563440696791 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5549907451157755789} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: -5, z: 0, w: -5} + m_Softness: {x: 0, y: 0} +--- !u!1 &7443903099445457879 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3241653211893928205} + - component: {fileID: 4961647891699776959} + m_Layer: 0 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3241653211893928205 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7443903099445457879} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 224000014244241328} + - {fileID: 224000014081388310} + m_Father: {fileID: 224000011255372986} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4961647891699776959 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7443903099445457879} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: -8, y: -7, z: -8, w: -6} + m_Softness: {x: 0, y: 0} diff --git a/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab.meta b/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab.meta new file mode 100644 index 0000000000..5c2c1ed508 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 67117722a812a2e46ab8cb8eafbf5f5e +timeCreated: 1466014755 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 68068 + packageName: In-game Debug Console + packageVersion: 1.8.2 + assetPath: Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab + uploadId: 764785 diff --git a/Assets/Plugins/IngameDebugConsole/Prefabs.meta b/Assets/Plugins/IngameDebugConsole/Prefabs.meta new file mode 100644 index 0000000000..5eae9adade --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Prefabs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7dbc36665bc0d684db9a4447e27a7a4b +folderAsset: yes +timeCreated: 1520417401 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab b/Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab new file mode 100644 index 0000000000..091d367fbb --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab @@ -0,0 +1,137 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1386426139070838 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224955737853170496} + - component: {fileID: 222541766812100524} + - component: {fileID: 6838696818539158795} + m_Layer: 5 + m_Name: CommandSuggestion + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224955737853170496 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1386426139070838} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222541766812100524 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1386426139070838} + m_CullTransparentMesh: 1 +--- !u!114 &6838696818539158795 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1386426139070838} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: help + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292335574 + m_fontColor: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 1 + m_fontSizeMax: 40 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 3 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 0 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab.meta b/Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab.meta new file mode 100644 index 0000000000..734ceaa9f3 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: 5e66896448428cf46a1854dbdc014914 +timeCreated: 1601390136 +licenseType: Store +NativeFormatImporter: + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 68068 + packageName: In-game Debug Console + packageVersion: 1.8.2 + assetPath: Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab + uploadId: 764785 diff --git a/Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab b/Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab new file mode 100644 index 0000000000..578ebc331e --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab @@ -0,0 +1,841 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &104862 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22461494} + - component: {fileID: 22233942} + - component: {fileID: 11411806} + m_Layer: 5 + m_Name: LogCount + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &22461494 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 104862} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 22420350} + m_Father: {fileID: 22479264} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -20, y: 0} + m_SizeDelta: {x: 30, y: 25} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22233942 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 104862} + m_CullTransparentMesh: 1 +--- !u!114 &11411806 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 104862} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.42647058, g: 0.42647058, b: 0.42647058, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: b3f0d976f6d6802479d6465d11b3aa68, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1.3 +--- !u!1 &151462 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22420350} + - component: {fileID: 22200920} + - component: {fileID: 5450305048240168820} + m_Layer: 5 + m_Name: LogCountText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22420350 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 151462} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22461494} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -2, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22200920 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 151462} + m_CullTransparentMesh: 1 +--- !u!114 &5450305048240168820 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 151462} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 1 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292335574 + m_fontColor: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 8 + m_fontSizeMax: 14 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 0 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &152362 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22427300} + - component: {fileID: 22262284} + - component: {fileID: 11404142} + m_Layer: 5 + m_Name: LogType + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22427300 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 152362} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22479264} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 15, y: 0} + m_SizeDelta: {x: 25, y: 25} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22262284 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 152362} + m_CullTransparentMesh: 1 +--- !u!114 &11404142 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 152362} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 5a97d5afa6254804f81b7ba956296996, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &166880 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22479264} + - component: {fileID: 22288988} + - component: {fileID: 11459012} + - component: {fileID: 11408050} + - component: {fileID: 11456372} + - component: {fileID: 225819852034701160} + m_Layer: 5 + m_Name: DebugLogItem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22479264 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 166880} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 22427300} + - {fileID: 224737693311518052} + - {fileID: 22461494} + - {fileID: 224006190298411330} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 35} + m_Pivot: {x: 0, y: 1} +--- !u!222 &22288988 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 166880} + m_CullTransparentMesh: 1 +--- !u!114 &11459012 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 166880} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.23529412, g: 0.23529412, b: 0.23529412, a: 0.697} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 98e8e1cf8dc7dbf469617c2e40c8a944, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &11408050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 166880} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2ea291be9de70a4abfec595203c96c1, type: 3} + m_Name: + m_EditorClassIdentifier: + transformComponent: {fileID: 22479264} + imageComponent: {fileID: 11459012} + canvasGroupComponent: {fileID: 225819852034701160} + logText: {fileID: 3887244321031527211} + logTypeImage: {fileID: 11404142} + logCountParent: {fileID: 104862} + logCountText: {fileID: 5450305048240168820} + copyLogButton: {fileID: 114694923173451186} +--- !u!114 &11456372 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 166880} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11459012} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!225 &225819852034701160 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 166880} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!1 &1396836967994216 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224006190298411330} + - component: {fileID: 222870443111501910} + - component: {fileID: 114119781176956926} + - component: {fileID: 114694923173451186} + m_Layer: 5 + m_Name: CopyLogButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &224006190298411330 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1396836967994216} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 224887990600088790} + m_Father: {fileID: 22479264} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 2} + m_SizeDelta: {x: -80, y: 36} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &222870443111501910 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1396836967994216} + m_CullTransparentMesh: 1 +--- !u!114 &114119781176956926 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1396836967994216} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.42647058, g: 0.42647058, b: 0.42647058, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &114694923173451186 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1396836967994216} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114119781176956926} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1503640463151286 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224887990600088790} + - component: {fileID: 222313182602304162} + - component: {fileID: 6497267641603342931} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224887990600088790 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1503640463151286} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 224006190298411330} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222313182602304162 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1503640463151286} + m_CullTransparentMesh: 1 +--- !u!114 &6497267641603342931 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1503640463151286} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Copy + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292335574 + m_fontColor: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 1 + m_fontSizeMax: 40 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 0 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1785910143472904 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224737693311518052} + - component: {fileID: 222175805939703770} + - component: {fileID: 3887244321031527211} + m_Layer: 5 + m_Name: LogText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224737693311518052 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1785910143472904} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 22479264} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 12.5, y: 0} + m_SizeDelta: {x: -35, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222175805939703770 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1785910143472904} + m_CullTransparentMesh: 1 +--- !u!114 &3887244321031527211 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1785910143472904} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Debug.Log summary + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292335574 + m_fontColor: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 13.5 + m_fontSizeBase: 13.5 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 1 + m_fontSizeMax: 40 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 1 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 0 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab.meta b/Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab.meta new file mode 100644 index 0000000000..56d3281645 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 391be5df5ef62f345bb76a1051c04da7 +timeCreated: 1465919887 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 68068 + packageName: In-game Debug Console + packageVersion: 1.8.2 + assetPath: Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab + uploadId: 764785 diff --git a/Assets/Plugins/IngameDebugConsole/README.txt b/Assets/Plugins/IngameDebugConsole/README.txt new file mode 100644 index 0000000000..46bd694037 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/README.txt @@ -0,0 +1,7 @@ += In-game Debug Console (v1.8.2) = + +Documentation: https://github.com/yasirkula/UnityIngameDebugConsole +FAQ: https://github.com/yasirkula/UnityIngameDebugConsole#faq +E-mail: yasirkula@gmail.com + +You can simply place the IngameDebugConsole prefab to your scene. Hovering the cursor over its properties in the Inspector will reveal explanatory tooltips. \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/README.txt.meta b/Assets/Plugins/IngameDebugConsole/README.txt.meta new file mode 100644 index 0000000000..bfa1799895 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/README.txt.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: edf2ac73f7bc3064c96d53009106dc53 +timeCreated: 1563307881 +licenseType: Store +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 68068 + packageName: In-game Debug Console + packageVersion: 1.8.2 + assetPath: Assets/Plugins/IngameDebugConsole/README.txt + uploadId: 764785 diff --git a/Assets/Plugins/IngameDebugConsole/Scripts.meta b/Assets/Plugins/IngameDebugConsole/Scripts.meta new file mode 100644 index 0000000000..1040eb3e92 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 860c08388401a6d4e858fe4910ea9337 +folderAsset: yes +timeCreated: 1465930645 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Attributes.meta b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes.meta new file mode 100644 index 0000000000..33576aef1a --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7de74709c0f949d42853e89b41f0c939 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleAttribute.cs b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleAttribute.cs new file mode 100644 index 0000000000..46f5e470ce --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleAttribute.cs @@ -0,0 +1,21 @@ +using System; +using System.Reflection; + +namespace IngameDebugConsole +{ + public abstract class ConsoleAttribute : Attribute + { + public MethodInfo Method { get; private set; } + public abstract int Order { get; } + + public void SetMethod(MethodInfo method) + { + if (Method != null) + throw new Exception("Method was already initialized."); + + Method = method; + } + + public abstract void Load(); + } +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleAttribute.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleAttribute.cs.meta new file mode 100644 index 0000000000..c4074df73b --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleAttribute.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: efc4511f2eea8034ca3a0a29cac8f554 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 68068 + packageName: In-game Debug Console + packageVersion: 1.8.2 + assetPath: Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleAttribute.cs + uploadId: 764785 diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleCustomTypeParserAttribute.cs b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleCustomTypeParserAttribute.cs new file mode 100644 index 0000000000..412c65faeb --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleCustomTypeParserAttribute.cs @@ -0,0 +1,24 @@ +using System; + +namespace IngameDebugConsole +{ + [AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = false)] + public class ConsoleCustomTypeParserAttribute : ConsoleAttribute + { + public readonly Type type; + public readonly string readableName; + + public override int Order { get { return 0; } } + + public ConsoleCustomTypeParserAttribute(Type type, string readableName = null) + { + this.type = type; + this.readableName = readableName; + } + + public override void Load() + { + DebugLogConsole.AddCustomParameterType(type, (DebugLogConsole.ParseFunction)Delegate.CreateDelegate(typeof(DebugLogConsole.ParseFunction), Method), readableName); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleCustomTypeParserAttribute.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleCustomTypeParserAttribute.cs.meta new file mode 100644 index 0000000000..5d13eb968a --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleCustomTypeParserAttribute.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: b014aa072d9631848babd5dafb325d3d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 68068 + packageName: In-game Debug Console + packageVersion: 1.8.2 + assetPath: Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleCustomTypeParserAttribute.cs + uploadId: 764785 diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleMethodAttribute.cs b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleMethodAttribute.cs new file mode 100644 index 0000000000..7a024c84b4 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleMethodAttribute.cs @@ -0,0 +1,30 @@ +using System; + +namespace IngameDebugConsole +{ + [AttributeUsage( AttributeTargets.Method, Inherited = false, AllowMultiple = true )] + public class ConsoleMethodAttribute : ConsoleAttribute + { + private string m_command; + private string m_description; + private string[] m_parameterNames; + + public string Command { get { return m_command; } } + public string Description { get { return m_description; } } + public string[] ParameterNames { get { return m_parameterNames; } } + + public override int Order { get { return 1; } } + + public ConsoleMethodAttribute( string command, string description, params string[] parameterNames ) + { + m_command = command; + m_description = description; + m_parameterNames = parameterNames; + } + + public override void Load() + { + DebugLogConsole.AddCommand(Command, Description, Method, null, ParameterNames); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleMethodAttribute.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleMethodAttribute.cs.meta new file mode 100644 index 0000000000..367decbaf1 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleMethodAttribute.cs.meta @@ -0,0 +1,19 @@ +fileFormatVersion: 2 +guid: 324bb39c0bff0f74fa42f83e91f07e3a +timeCreated: 1520710946 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 68068 + packageName: In-game Debug Console + packageVersion: 1.8.2 + assetPath: Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleMethodAttribute.cs + uploadId: 764785 diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs b/Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs new file mode 100644 index 0000000000..48253566fc --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs @@ -0,0 +1,313 @@ +using System; +using UnityEngine; + +namespace IngameDebugConsole +{ + public class CircularBuffer + { + private readonly T[] array; + private int startIndex; + + public int Count { get; private set; } + public T this[int index] { get { return array[( startIndex + index ) % array.Length]; } } + + public CircularBuffer( int capacity ) + { + array = new T[capacity]; + } + + // Old elements are overwritten when capacity is reached + public void Add( T value ) + { + if( Count < array.Length ) + array[Count++] = value; + else + { + array[startIndex] = value; + if( ++startIndex >= array.Length ) + startIndex = 0; + } + } + + public T[] ToArray() + { + T[] result = new T[Count]; + for (int i = 0; i < Count; i++) + result[i] = this[i]; + + return result; + } + } + + public class DynamicCircularBuffer + { + private T[] array; + private int startIndex; + + public int Count { get; private set; } + public int Capacity { get { return array.Length; } } + + public T this[int index] + { + get { return array[( startIndex + index ) % array.Length]; } + set { array[( startIndex + index ) % array.Length] = value; } + } + + public DynamicCircularBuffer( int initialCapacity = 2 ) + { + array = new T[initialCapacity]; + } + + private void SetCapacity( int capacity ) + { + T[] newArray = new T[capacity]; + if( Count > 0 ) + { + int elementsBeforeWrap = Mathf.Min( Count, array.Length - startIndex ); + Array.Copy( array, startIndex, newArray, 0, elementsBeforeWrap ); + if( elementsBeforeWrap < Count ) + Array.Copy( array, 0, newArray, elementsBeforeWrap, Count - elementsBeforeWrap ); + } + + array = newArray; + startIndex = 0; + } + + /// Inserts the value to the beginning of the collection. + public void AddFirst( T value ) + { + if( array.Length == Count ) + SetCapacity( Mathf.Max( array.Length * 2, 4 ) ); + + startIndex = ( startIndex > 0 ) ? ( startIndex - 1 ) : ( array.Length - 1 ); + array[startIndex] = value; + Count++; + } + + /// Adds the value to the end of the collection. + public void Add( T value ) + { + if( array.Length == Count ) + SetCapacity( Mathf.Max( array.Length * 2, 4 ) ); + + this[Count++] = value; + } + + public void AddRange( DynamicCircularBuffer other ) + { + if( other.Count == 0 ) + return; + + if( array.Length < Count + other.Count ) + SetCapacity( Mathf.Max( array.Length * 2, Count + other.Count ) ); + + int insertStartIndex = ( startIndex + Count ) % array.Length; + int elementsBeforeWrap = Mathf.Min( other.Count, array.Length - insertStartIndex ); + int otherElementsBeforeWrap = Mathf.Min( other.Count, other.array.Length - other.startIndex ); + + Array.Copy( other.array, other.startIndex, array, insertStartIndex, Mathf.Min( elementsBeforeWrap, otherElementsBeforeWrap ) ); + if( elementsBeforeWrap < otherElementsBeforeWrap ) // This array wrapped before the other array + Array.Copy( other.array, other.startIndex + elementsBeforeWrap, array, 0, otherElementsBeforeWrap - elementsBeforeWrap ); + else if( elementsBeforeWrap > otherElementsBeforeWrap ) // The other array wrapped before this array + Array.Copy( other.array, 0, array, insertStartIndex + otherElementsBeforeWrap, elementsBeforeWrap - otherElementsBeforeWrap ); + + int copiedElements = Mathf.Max( elementsBeforeWrap, otherElementsBeforeWrap ); + if( copiedElements < other.Count ) // Both arrays wrapped and there's still some elements left to copy + Array.Copy( other.array, copiedElements - otherElementsBeforeWrap, array, copiedElements - elementsBeforeWrap, other.Count - copiedElements ); + + Count += other.Count; + } + + public T RemoveFirst() + { + T element = array[startIndex]; + array[startIndex] = default( T ); + + if( ++startIndex == array.Length ) + startIndex = 0; + + Count--; + return element; + } + + public T RemoveLast() + { + int index = ( startIndex + Count - 1 ) % array.Length; + T element = array[index]; + array[index] = default( T ); + + Count--; + return element; + } + + public int RemoveAll( Predicate shouldRemoveElement ) + { + return RemoveAll( shouldRemoveElement, null, null ); + } + + public int RemoveAll( Predicate shouldRemoveElement, Action onElementIndexChanged, DynamicCircularBuffer synchronizedBuffer ) + { + Y[] synchronizedArray = ( synchronizedBuffer != null ) ? synchronizedBuffer.array : null; + int elementsBeforeWrap = Mathf.Min( Count, array.Length - startIndex ); + int removedElements = 0; + int i = startIndex, newIndex = startIndex, endIndex = startIndex + elementsBeforeWrap; + for( ; i < endIndex; i++ ) + { + if( shouldRemoveElement( array[i] ) ) + removedElements++; + else + { + if( removedElements > 0 ) + { + T element = array[i]; + array[newIndex] = element; + + if( synchronizedArray != null ) + synchronizedArray[newIndex] = synchronizedArray[i]; + + if( onElementIndexChanged != null ) + onElementIndexChanged( element, newIndex - startIndex ); + } + + newIndex++; + } + } + + i = 0; + endIndex = Count - elementsBeforeWrap; + + if( newIndex < array.Length ) + { + for( ; i < endIndex; i++ ) + { + if( shouldRemoveElement( array[i] ) ) + removedElements++; + else + { + T element = array[i]; + array[newIndex] = element; + + if( synchronizedArray != null ) + synchronizedArray[newIndex] = synchronizedArray[i]; + + if( onElementIndexChanged != null ) + onElementIndexChanged( element, newIndex - startIndex ); + + if( ++newIndex == array.Length ) + { + i++; + break; + } + } + } + } + + if( newIndex == array.Length ) + { + newIndex = 0; + for( ; i < endIndex; i++ ) + { + if( shouldRemoveElement( array[i] ) ) + removedElements++; + else + { + if( removedElements > 0 ) + { + T element = array[i]; + array[newIndex] = element; + + if( synchronizedArray != null ) + synchronizedArray[newIndex] = synchronizedArray[i]; + + if( onElementIndexChanged != null ) + onElementIndexChanged( element, newIndex + elementsBeforeWrap ); + } + + newIndex++; + } + } + } + + TrimEnd( removedElements ); + if( synchronizedBuffer != null ) + synchronizedBuffer.TrimEnd( removedElements ); + + return removedElements; + } + + public void TrimStart( int trimCount, Action perElementCallback = null ) + { + TrimInternal( trimCount, startIndex, perElementCallback ); + startIndex = ( startIndex + trimCount ) % array.Length; + } + + public void TrimEnd( int trimCount, Action perElementCallback = null ) + { + TrimInternal( trimCount, ( startIndex + Count - trimCount ) % array.Length, perElementCallback ); + } + + private void TrimInternal( int trimCount, int startIndex, Action perElementCallback ) + { + int elementsBeforeWrap = Mathf.Min( trimCount, array.Length - startIndex ); + if( perElementCallback == null ) + { + Array.Clear( array, startIndex, elementsBeforeWrap ); + if( elementsBeforeWrap < trimCount ) + Array.Clear( array, 0, trimCount - elementsBeforeWrap ); + } + else + { + for( int i = startIndex, endIndex = startIndex + elementsBeforeWrap; i < endIndex; i++ ) + { + perElementCallback( array[i] ); + array[i] = default( T ); + } + + for( int i = 0, endIndex = trimCount - elementsBeforeWrap; i < endIndex; i++ ) + { + perElementCallback( array[i] ); + array[i] = default( T ); + } + } + + Count -= trimCount; + } + + public void Clear() + { + int elementsBeforeWrap = Mathf.Min( Count, array.Length - startIndex ); + Array.Clear( array, startIndex, elementsBeforeWrap ); + if( elementsBeforeWrap < Count ) + Array.Clear( array, 0, Count - elementsBeforeWrap ); + + startIndex = 0; + Count = 0; + } + + public int IndexOf( T value ) + { + int elementsBeforeWrap = Mathf.Min( Count, array.Length - startIndex ); + int index = Array.IndexOf( array, value, startIndex, elementsBeforeWrap ); + if( index >= 0 ) + return index - startIndex; + + if( elementsBeforeWrap < Count ) + { + index = Array.IndexOf( array, value, 0, Count - elementsBeforeWrap ); + if( index >= 0 ) + return index + elementsBeforeWrap; + } + + return -1; + } + + public void ForEach( Action action ) + { + int elementsBeforeWrap = Mathf.Min( Count, array.Length - startIndex ); + for( int i = startIndex, endIndex = startIndex + elementsBeforeWrap; i < endIndex; i++ ) + action( array[i] ); + for( int i = 0, endIndex = Count - elementsBeforeWrap; i < endIndex; i++ ) + action( array[i] ); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs.meta new file mode 100644 index 0000000000..79e4e19f72 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs.meta @@ -0,0 +1,19 @@ +fileFormatVersion: 2 +guid: 6136cb3c00eac0149901b8e7f2fecef8 +timeCreated: 1550943949 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 68068 + packageName: In-game Debug Console + packageVersion: 1.8.2 + assetPath: Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs + uploadId: 764785 diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/CopyLogsOnResizeButtonClick.cs b/Assets/Plugins/IngameDebugConsole/Scripts/CopyLogsOnResizeButtonClick.cs new file mode 100644 index 0000000000..4cf0e2eb1d --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/CopyLogsOnResizeButtonClick.cs @@ -0,0 +1,34 @@ +using System.Collections; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace IngameDebugConsole +{ + public class CopyLogsOnResizeButtonClick : MonoBehaviour, IPointerClickHandler + { + [SerializeField] + private int maxLogCount = int.MaxValue; + [SerializeField] + private float maxElapsedTime = float.PositiveInfinity; + + void IPointerClickHandler.OnPointerClick(PointerEventData eventData) + { + if (!eventData.dragging && eventData.eligibleForClick && DebugLogManager.Instance.copyAllLogsOnResizeButtonClick) + { + GUIUtility.systemCopyBuffer = DebugLogManager.Instance.GetAllLogs(maxLogCount, maxElapsedTime); + StartCoroutine(ScaleAnimationCoroutine()); + } + } + + private IEnumerator ScaleAnimationCoroutine() + { + for (float t = 0f; t < 1f; t += Time.unscaledDeltaTime * 3f) + { + transform.localScale = Vector3.one * (1f + Mathf.PingPong(t, 0.5f)); + yield return null; + } + + transform.localScale = Vector3.one; + } + } +} diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/CopyLogsOnResizeButtonClick.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/CopyLogsOnResizeButtonClick.cs.meta new file mode 100644 index 0000000000..9b5829cdeb --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/CopyLogsOnResizeButtonClick.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 298319a3c52d37442b63e30622b8c05d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 68068 + packageName: In-game Debug Console + packageVersion: 1.8.2 + assetPath: Assets/Plugins/IngameDebugConsole/Scripts/CopyLogsOnResizeButtonClick.cs + uploadId: 764785 diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs new file mode 100644 index 0000000000..99e1351a9c --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs @@ -0,0 +1,1521 @@ +#if UNITY_EDITOR || UNITY_STANDALONE +// Unity's Text component doesn't render tag correctly on mobile devices +#define USE_BOLD_COMMAND_SIGNATURES +#endif + +using UnityEngine; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Reflection; +using System.Text; +using Object = UnityEngine.Object; +#if UNITY_EDITOR && UNITY_2021_1_OR_NEWER +using SystemInfo = UnityEngine.Device.SystemInfo; // To support Device Simulator on Unity 2021.1+ +#endif + +// Manages the console commands, parses console input and handles execution of commands +// Supported method parameter types: int, float, bool, string, Vector2, Vector3, Vector4 + +// Helper class to store important information about a command +namespace IngameDebugConsole +{ + public class ConsoleMethodInfo + { + public readonly MethodInfo method; + public readonly Type[] parameterTypes; + public readonly object instance; + + public readonly string command; + public readonly string signature; + public readonly string[] parameters; + + public ConsoleMethodInfo( MethodInfo method, Type[] parameterTypes, object instance, string command, string signature, string[] parameters ) + { + this.method = method; + this.parameterTypes = parameterTypes; + this.instance = instance; + this.command = command; + this.signature = signature; + this.parameters = parameters; + } + + public bool IsValid() + { + if( !method.IsStatic && ( instance == null || instance.Equals( null ) ) ) + return false; + + return true; + } + } + + public static class DebugLogConsole + { + public delegate bool ParseFunction( string input, out object output ); + + public delegate void CommandExecutedDelegate( string command, object[] parameters ); + public static event CommandExecutedDelegate OnCommandExecuted; + + // All the commands + private static readonly List methods = new List(); + private static readonly List matchingMethods = new List( 4 ); + + // All the parse functions + private static readonly Dictionary parseFunctions = new Dictionary() + { + { typeof( string ), ParseString }, + { typeof( bool ), ParseBool }, + { typeof( int ), ParseInt }, + { typeof( uint ), ParseUInt }, + { typeof( long ), ParseLong }, + { typeof( ulong ), ParseULong }, + { typeof( byte ), ParseByte }, + { typeof( sbyte ), ParseSByte }, + { typeof( short ), ParseShort }, + { typeof( ushort ), ParseUShort }, + { typeof( char ), ParseChar }, + { typeof( float ), ParseFloat }, + { typeof( double ), ParseDouble }, + { typeof( decimal ), ParseDecimal }, + { typeof( Vector2 ), ParseVector2 }, + { typeof( Vector3 ), ParseVector3 }, + { typeof( Vector4 ), ParseVector4 }, + { typeof( Quaternion ), ParseQuaternion }, + { typeof( Color ), ParseColor }, + { typeof( Color32 ), ParseColor32 }, + { typeof( Rect ), ParseRect }, + { typeof( RectOffset ), ParseRectOffset }, + { typeof( Bounds ), ParseBounds }, + { typeof( GameObject ), ParseGameObject }, + { typeof( Vector2Int ), ParseVector2Int }, + { typeof( Vector3Int ), ParseVector3Int }, + { typeof( RectInt ), ParseRectInt }, + { typeof( BoundsInt ), ParseBoundsInt }, + }; + + // All the readable names of accepted types + private static readonly Dictionary typeReadableNames = new Dictionary() + { + { typeof( string ), "String" }, + { typeof( bool ), "Boolean" }, + { typeof( int ), "Integer" }, + { typeof( uint ), "Unsigned Integer" }, + { typeof( long ), "Long" }, + { typeof( ulong ), "Unsigned Long" }, + { typeof( byte ), "Byte" }, + { typeof( sbyte ), "Short Byte" }, + { typeof( short ), "Short" }, + { typeof( ushort ), "Unsigned Short" }, + { typeof( char ), "Char" }, + { typeof( float ), "Float" }, + { typeof( double ), "Double" }, + { typeof( decimal ), "Decimal" } + }; + + // Split arguments of an entered command + private static readonly List commandArguments = new List( 8 ); + + // Command parameter delimeter groups + private static readonly string[] inputDelimiters = new string[] { "\"\"", "''", "{}", "()", "[]" }; + + // CompareInfo used for case-insensitive command name comparison + internal static readonly CompareInfo caseInsensitiveComparer = new CultureInfo( "en-US" ).CompareInfo; + + [RuntimeInitializeOnLoadMethod( RuntimeInitializeLoadType.SubsystemRegistration )] // Configurable Enter Play Mode: https://docs.unity3d.com/Manual/DomainReloading.html + private static void ResetStatics() + { + methods.Clear(); + OnCommandExecuted = null; + +#if !IDG_DISABLE_HELP_COMMAND + AddCommand( "help", "Prints all commands", LogAllCommands ); + AddCommand( "help", "Prints all matching commands", LogAllCommandsWithName ); +#endif +#if IDG_ENABLE_HELPER_COMMANDS || IDG_ENABLE_SYSINFO_COMMAND + AddCommand( "sysinfo", "Prints system information", LogSystemInfo ); +#endif + +#if UNITY_EDITOR || !NETFX_CORE + // Find all [ConsoleMethod] functions + // Don't search built-in assemblies for console methods since they can't have any + string[] ignoredAssemblies = new string[] + { + "Unity", + "System", + "Mono.", + "mscorlib", + "netstandard", + "TextMeshPro", + "Microsoft.GeneratedCode", + "I18N", + "Boo.", + "UnityScript.", + "ICSharpCode.", + "ExCSS.Unity", +#if UNITY_EDITOR + "Assembly-CSharp-Editor", + "Assembly-UnityScript-Editor", + "nunit.", + "SyntaxTree.", + "AssetStoreTools", +#endif + }; +#endif + +#if UNITY_EDITOR || !NETFX_CORE + foreach( Assembly assembly in AppDomain.CurrentDomain.GetAssemblies() ) +#else + foreach( Assembly assembly in new Assembly[] { typeof( DebugLogConsole ).Assembly } ) // On UWP, at least search this plugin's Assembly for console methods +#endif + { +#if( NET_4_6 || NET_STANDARD_2_0 ) && ( UNITY_EDITOR || !NETFX_CORE ) + if( assembly.IsDynamic ) + continue; +#endif + + +#if UNITY_EDITOR || !NETFX_CORE + string assemblyName = assembly.GetName().Name; + bool ignoreAssembly = false; + for( int i = 0; i < ignoredAssemblies.Length; i++ ) + { + if( caseInsensitiveComparer.IsPrefix( assemblyName, ignoredAssemblies[i], CompareOptions.IgnoreCase ) ) + { + ignoreAssembly = true; + break; + } + } + + if( ignoreAssembly ) + continue; +#endif + + SearchAssemblyForConsoleMethods( assembly ); + } + } + + public static void SearchAssemblyForConsoleMethods( Assembly assembly ) + { + try + { + List methods = new List(); + foreach( Type type in assembly.GetExportedTypes() ) + { + foreach( MethodInfo method in type.GetMethods( BindingFlags.Static | BindingFlags.Public | BindingFlags.DeclaredOnly ) ) + { + foreach( ConsoleAttribute consoleAttribute in method.GetCustomAttributes( typeof(ConsoleAttribute), false ) ) + { + consoleAttribute.SetMethod(method); + methods.Add(consoleAttribute); + } + } + } + + methods.Sort((a, b) => a.Order.CompareTo(b.Order)); + for (int i = 0; i < methods.Count; i++) + { + methods[i].Load(); + } + } + catch( NotSupportedException ) { } + catch( System.IO.FileNotFoundException ) { } + catch( ReflectionTypeLoadException ) { } + catch( Exception e ) + { + Debug.LogError( "Couldn't search assembly for [ConsoleMethod] attributes: " + assembly.GetName().Name + "\n" + e.ToString() ); + } + } + + public static List GetAllCommands() + { + return methods; + } + + // Logs the list of available commands + public static void LogAllCommands() + { + int length = 25; + for( int i = 0; i < methods.Count; i++ ) + { + if( methods[i].IsValid() ) + length += methods[i].signature.Length + 7; + } + + StringBuilder stringBuilder = new StringBuilder( length ); + stringBuilder.Append( "Available commands:" ); + + for( int i = 0; i < methods.Count; i++ ) + { + if( methods[i].IsValid() ) + stringBuilder.Append( "\n - " ).Append( methods[i].signature ); + } + + Debug.Log( stringBuilder.ToString() ); + + // After typing help, the log that lists all the commands should automatically be expanded for better UX + if( DebugLogManager.Instance ) + DebugLogManager.Instance.AdjustLatestPendingLog( true, true ); + } + + // Logs the list of available commands that are either equal to commandName or contain commandName as substring + public static void LogAllCommandsWithName( string commandName ) + { + matchingMethods.Clear(); + + // First, try to find commands that exactly match the commandName. If there are no such commands, try to find + // commands that contain commandName as substring + FindCommands( commandName, false, matchingMethods ); + if( matchingMethods.Count == 0 ) + FindCommands( commandName, true, matchingMethods ); + + if( matchingMethods.Count == 0 ) + Debug.LogWarning( string.Concat( "ERROR: can't find command '", commandName, "'" ) ); + else + { + int commandsLength = 25; + for( int i = 0; i < matchingMethods.Count; i++ ) + commandsLength += matchingMethods[i].signature.Length + 7; + + StringBuilder stringBuilder = new StringBuilder( commandsLength ); + stringBuilder.Append( "Matching commands:" ); + + for( int i = 0; i < matchingMethods.Count; i++ ) + stringBuilder.Append( "\n - " ).Append( matchingMethods[i].signature ); + + Debug.Log( stringBuilder.ToString() ); + + if( DebugLogManager.Instance ) + DebugLogManager.Instance.AdjustLatestPendingLog( true, true ); + } + } + + // Logs system information + public static void LogSystemInfo() + { + StringBuilder stringBuilder = new StringBuilder( 1024 ); + stringBuilder.Append( "Rig: " ).AppendSysInfoIfPresent( SystemInfo.deviceModel ).AppendSysInfoIfPresent( SystemInfo.processorType ) + .AppendSysInfoIfPresent( SystemInfo.systemMemorySize, "MB RAM" ).Append( SystemInfo.processorCount ).Append( " cores\n" ); + stringBuilder.Append( "OS: " ).Append( SystemInfo.operatingSystem ).Append( "\n" ); + stringBuilder.Append( "GPU: " ).Append( SystemInfo.graphicsDeviceName ).Append( " " ).Append( SystemInfo.graphicsMemorySize ) + .Append( "MB " ).Append( SystemInfo.graphicsDeviceVersion ) + .Append( SystemInfo.graphicsMultiThreaded ? " multi-threaded\n" : "\n" ); + stringBuilder.Append( "Data Path: " ).Append( Application.dataPath ).Append( "\n" ); + stringBuilder.Append( "Persistent Data Path: " ).Append( Application.persistentDataPath ).Append( "\n" ); + stringBuilder.Append( "StreamingAssets Path: " ).Append( Application.streamingAssetsPath ).Append( "\n" ); + stringBuilder.Append( "Temporary Cache Path: " ).Append( Application.temporaryCachePath ).Append( "\n" ); + stringBuilder.Append( "Device ID: " ).Append( SystemInfo.deviceUniqueIdentifier ).Append( "\n" ); + stringBuilder.Append( "Max Texture Size: " ).Append( SystemInfo.maxTextureSize ).Append( "\n" ); + stringBuilder.Append( "Max Cubemap Size: " ).Append( SystemInfo.maxCubemapSize ).Append( "\n" ); + stringBuilder.Append( "Accelerometer: " ).Append( SystemInfo.supportsAccelerometer ? "supported\n" : "not supported\n" ); + stringBuilder.Append( "Gyro: " ).Append( SystemInfo.supportsGyroscope ? "supported\n" : "not supported\n" ); + stringBuilder.Append( "Location Service: " ).Append( SystemInfo.supportsLocationService ? "supported\n" : "not supported\n" ); + stringBuilder.Append( "Compute Shaders: " ).Append( SystemInfo.supportsComputeShaders ? "supported\n" : "not supported\n" ); + stringBuilder.Append( "Shadows: " ).Append( SystemInfo.supportsShadows ? "supported\n" : "not supported\n" ); + stringBuilder.Append( "Instancing: " ).Append( SystemInfo.supportsInstancing ? "supported\n" : "not supported\n" ); + stringBuilder.Append( "Motion Vectors: " ).Append( SystemInfo.supportsMotionVectors ? "supported\n" : "not supported\n" ); + stringBuilder.Append( "3D Textures: " ).Append( SystemInfo.supports3DTextures ? "supported\n" : "not supported\n" ); + stringBuilder.Append( "3D Render Textures: " ).Append( SystemInfo.supports3DRenderTextures ? "supported\n" : "not supported\n" ); + stringBuilder.Append( "2D Array Textures: " ).Append( SystemInfo.supports2DArrayTextures ? "supported\n" : "not supported\n" ); + stringBuilder.Append( "Cubemap Array Textures: " ).Append( SystemInfo.supportsCubemapArrayTextures ? "supported" : "not supported" ); + + Debug.Log( stringBuilder.ToString() ); + + // After typing sysinfo, the log that lists system information should automatically be expanded for better UX + if( DebugLogManager.Instance ) + DebugLogManager.Instance.AdjustLatestPendingLog( true, true ); + } + + private static StringBuilder AppendSysInfoIfPresent( this StringBuilder sb, string info, string postfix = null ) + { + if( info != SystemInfo.unsupportedIdentifier ) + { + sb.Append( info ); + + if( postfix != null ) + sb.Append( postfix ); + + sb.Append( " " ); + } + + return sb; + } + + private static StringBuilder AppendSysInfoIfPresent( this StringBuilder sb, int info, string postfix = null ) + { + if( info > 0 ) + { + sb.Append( info ); + + if( postfix != null ) + sb.Append( postfix ); + + sb.Append( " " ); + } + + return sb; + } + + // Add a custom Type to the list of recognized command parameter Types + public static void AddCustomParameterType( Type type, ParseFunction parseFunction, string typeReadableName = null ) + { + if( type == null ) + { + Debug.LogError( "Parameter type can't be null!" ); + return; + } + else if( parseFunction == null ) + { + Debug.LogError( "Parameter parseFunction can't be null!" ); + return; + } + + parseFunctions[type] = parseFunction; + + if( !string.IsNullOrEmpty( typeReadableName ) ) + typeReadableNames[type] = typeReadableName; + } + + // Remove a custom Type from the list of recognized command parameter Types + public static void RemoveCustomParameterType( Type type ) + { + parseFunctions.Remove( type ); + typeReadableNames.Remove( type ); + } + + // Add a command related with an instance method (i.e. non static method) + public static void AddCommandInstance( string command, string description, string methodName, object instance, params string[] parameterNames ) + { + if( instance == null ) + { + Debug.LogError( "Instance can't be null!" ); + return; + } + + AddCommand( command, description, methodName, instance.GetType(), instance, parameterNames ); + } + + // Add a command related with a static method (i.e. no instance is required to call the method) + public static void AddCommandStatic( string command, string description, string methodName, Type ownerType, params string[] parameterNames ) + { + AddCommand( command, description, methodName, ownerType, null, parameterNames ); + } + + // Add a command that can be related to either a static or an instance method + public static void AddCommand( string command, string description, Action method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Action method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Func method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Action method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Func method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Action method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Func method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Action method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Func method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Func method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Delegate method ) { AddCommand( command, description, method.Method, method.Target, null ); } + + // Add a command with custom parameter names + public static void AddCommand( string command, string description, Action method, string parameterName ) { AddCommand( command, description, method.Method, method.Target, new string[1] { parameterName } ); } + public static void AddCommand( string command, string description, Action method, string parameterName1, string parameterName2 ) { AddCommand( command, description, method.Method, method.Target, new string[2] { parameterName1, parameterName2 } ); } + public static void AddCommand( string command, string description, Func method, string parameterName ) { AddCommand( command, description, method.Method, method.Target, new string[1] { parameterName } ); } + public static void AddCommand( string command, string description, Action method, string parameterName1, string parameterName2, string parameterName3 ) { AddCommand( command, description, method.Method, method.Target, new string[3] { parameterName1, parameterName2, parameterName3 } ); } + public static void AddCommand( string command, string description, Func method, string parameterName1, string parameterName2 ) { AddCommand( command, description, method.Method, method.Target, new string[2] { parameterName1, parameterName2 } ); } + public static void AddCommand( string command, string description, Action method, string parameterName1, string parameterName2, string parameterName3, string parameterName4 ) { AddCommand( command, description, method.Method, method.Target, new string[4] { parameterName1, parameterName2, parameterName3, parameterName4 } ); } + public static void AddCommand( string command, string description, Func method, string parameterName1, string parameterName2, string parameterName3 ) { AddCommand( command, description, method.Method, method.Target, new string[3] { parameterName1, parameterName2, parameterName3 } ); } + public static void AddCommand( string command, string description, Func method, string parameterName1, string parameterName2, string parameterName3, string parameterName4 ) { AddCommand( command, description, method.Method, method.Target, new string[4] { parameterName1, parameterName2, parameterName3, parameterName4 } ); } + public static void AddCommand( string command, string description, Delegate method, params string[] parameterNames ) { AddCommand( command, description, method.Method, method.Target, parameterNames ); } + + // Create a new command and set its properties + private static void AddCommand( string command, string description, string methodName, Type ownerType, object instance, string[] parameterNames ) + { + // Get the method from the class + MethodInfo method = ownerType.GetMethod( methodName, BindingFlags.Public | BindingFlags.NonPublic | ( instance != null ? BindingFlags.Instance : BindingFlags.Static ) ); + if( method == null ) + { + Debug.LogError( methodName + " does not exist in " + ownerType ); + return; + } + + AddCommand( command, description, method, instance, parameterNames ); + } + + internal static void AddCommand( string command, string description, MethodInfo method, object instance, string[] parameterNames ) + { + if( string.IsNullOrEmpty( command ) ) + { + Debug.LogError( "Command name can't be empty!" ); + return; + } + + command = command.Trim(); + if( command.IndexOf( ' ' ) >= 0 ) + { + Debug.LogError( "Command name can't contain whitespace: " + command ); + return; + } + + // Fetch the parameters of the class + ParameterInfo[] parameters = method.GetParameters(); + if( parameters == null ) + parameters = new ParameterInfo[0]; + + // Store the parameter types in an array + Type[] parameterTypes = new Type[parameters.Length]; + for( int i = 0; i < parameters.Length; i++ ) + { + if( parameters[i].ParameterType.IsByRef ) + { + Debug.LogError( "Command can't have 'out' or 'ref' parameters" ); + return; + } + + Type parameterType = parameters[i].ParameterType; + if( parseFunctions.ContainsKey( parameterType ) || typeof( Component ).IsAssignableFrom( parameterType ) || parameterType.IsEnum || IsSupportedArrayType( parameterType ) ) + parameterTypes[i] = parameterType; + else + { + Debug.LogError( string.Concat( "Parameter ", parameters[i].Name, "'s Type ", parameterType, " isn't supported" ) ); + return; + } + } + + int commandIndex = FindCommandIndex( command ); + if( commandIndex < 0 ) + commandIndex = ~commandIndex; + else + { + int commandFirstIndex = commandIndex; + int commandLastIndex = commandIndex; + + while( commandFirstIndex > 0 && caseInsensitiveComparer.Compare( methods[commandFirstIndex - 1].command, command, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + commandFirstIndex--; + while( commandLastIndex < methods.Count - 1 && caseInsensitiveComparer.Compare( methods[commandLastIndex + 1].command, command, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + commandLastIndex++; + + commandIndex = commandFirstIndex; + for( int i = commandFirstIndex; i <= commandLastIndex; i++ ) + { + int parameterCountDiff = methods[i].parameterTypes.Length - parameterTypes.Length; + if( parameterCountDiff <= 0 ) + { + // We are sorting the commands in 2 steps: + // 1: Sorting by their 'command' names which is handled by FindCommandIndex + // 2: Sorting by their parameter counts which is handled here (parameterCountDiff <= 0) + commandIndex = i + 1; + + // Check if this command has been registered before and if it is, overwrite that command + if( parameterCountDiff == 0 ) + { + int j = 0; + while( j < parameterTypes.Length && parameterTypes[j] == methods[i].parameterTypes[j] ) + j++; + + if( j >= parameterTypes.Length ) + { + commandIndex = i; + commandLastIndex--; + methods.RemoveAt( i-- ); + + continue; + } + } + } + } + } + + // Create the command + StringBuilder methodSignature = new StringBuilder( 256 ); + string[] parameterSignatures = new string[parameterTypes.Length]; + +#if USE_BOLD_COMMAND_SIGNATURES + methodSignature.Append( "" ); +#endif + methodSignature.Append( command ); + + if( parameterTypes.Length > 0 ) + { + methodSignature.Append( " " ); + + for( int i = 0; i < parameterTypes.Length; i++ ) + { + int parameterSignatureStartIndex = methodSignature.Length; + + methodSignature.Append( "[" ).Append( GetTypeReadableName( parameterTypes[i] ) ).Append( " " ).Append( ( parameterNames != null && i < parameterNames.Length && !string.IsNullOrEmpty( parameterNames[i] ) ) ? parameterNames[i] : parameters[i].Name ).Append( "]" ); + + if( i < parameterTypes.Length - 1 ) + methodSignature.Append( " " ); + + parameterSignatures[i] = methodSignature.ToString( parameterSignatureStartIndex, methodSignature.Length - parameterSignatureStartIndex ); + } + } + +#if USE_BOLD_COMMAND_SIGNATURES + methodSignature.Append( "" ); +#endif + + if( !string.IsNullOrEmpty( description ) ) + methodSignature.Append( ": " ).Append( description ); + + methods.Insert( commandIndex, new ConsoleMethodInfo( method, parameterTypes, instance, command, methodSignature.ToString(), parameterSignatures ) ); + } + + // Remove all commands with the matching command name from the console + public static void RemoveCommand( string command ) + { + if( !string.IsNullOrEmpty( command ) ) + { + for( int i = methods.Count - 1; i >= 0; i-- ) + { + if( caseInsensitiveComparer.Compare( methods[i].command, command, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + methods.RemoveAt( i ); + } + } + } + + // Remove all commands with the matching method from the console + public static void RemoveCommand( Action method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Action method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Func method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Action method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Func method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Action method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Func method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Action method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Func method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Func method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Delegate method ) { RemoveCommand( method.Method ); } + + public static void RemoveCommand( MethodInfo method ) + { + if( method != null ) + { + for( int i = methods.Count - 1; i >= 0; i-- ) + { + if( methods[i].method == method ) + methods.RemoveAt( i ); + } + } + } + + // Returns the first command that starts with the entered argument + public static string GetAutoCompleteCommand( string commandStart, string previousSuggestion ) + { + int commandIndex = FindCommandIndex( !string.IsNullOrEmpty( previousSuggestion ) ? previousSuggestion : commandStart ); + if( commandIndex < 0 ) + { + commandIndex = ~commandIndex; + return ( commandIndex < methods.Count && caseInsensitiveComparer.IsPrefix( methods[commandIndex].command, commandStart, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) ) ? methods[commandIndex].command : null; + } + + // Find the next command that starts with commandStart and is different from previousSuggestion + for( int i = commandIndex + 1; i < methods.Count; i++ ) + { + if( caseInsensitiveComparer.Compare( methods[i].command, previousSuggestion, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + continue; + else if( caseInsensitiveComparer.IsPrefix( methods[i].command, commandStart, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) ) + return methods[i].command; + else + break; + } + + // Couldn't find a command that follows previousSuggestion and satisfies commandStart, loop back to the beginning of the autocomplete suggestions + string result = null; + for( int i = commandIndex - 1; i >= 0 && caseInsensitiveComparer.IsPrefix( methods[i].command, commandStart, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ); i-- ) + result = methods[i].command; + + return result; + } + + // Parse the command and try to execute it + public static void ExecuteCommand( string command ) + { + if( command == null ) + return; + + command = command.Trim(); + + if( command.Length == 0 ) + return; + + // Split the command's arguments + commandArguments.Clear(); + FetchArgumentsFromCommand( command, commandArguments ); + + // Find all matching commands + matchingMethods.Clear(); + bool parameterCountMismatch = false; + int commandIndex = FindCommandIndex( commandArguments[0] ); + if( commandIndex >= 0 ) + { + string _command = commandArguments[0]; + + int commandLastIndex = commandIndex; + while( commandIndex > 0 && caseInsensitiveComparer.Compare( methods[commandIndex - 1].command, _command, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + commandIndex--; + while( commandLastIndex < methods.Count - 1 && caseInsensitiveComparer.Compare( methods[commandLastIndex + 1].command, _command, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + commandLastIndex++; + + while( commandIndex <= commandLastIndex ) + { + if( !methods[commandIndex].IsValid() ) + { + methods.RemoveAt( commandIndex ); + commandLastIndex--; + } + else + { + // Check if number of parameters match + if( methods[commandIndex].parameterTypes.Length == commandArguments.Count - 1 ) + matchingMethods.Add( methods[commandIndex] ); + else + parameterCountMismatch = true; + + commandIndex++; + } + } + } + + if( matchingMethods.Count == 0 ) + { + string _command = commandArguments[0]; + FindCommands( _command, !parameterCountMismatch, matchingMethods ); + + if( matchingMethods.Count == 0 ) + Debug.LogWarning( string.Concat( "ERROR: can't find command '", _command, "'" ) ); + else + { + int commandsLength = _command.Length + 75; + for( int i = 0; i < matchingMethods.Count; i++ ) + commandsLength += matchingMethods[i].signature.Length + 7; + + StringBuilder stringBuilder = new StringBuilder( commandsLength ); + if( parameterCountMismatch ) + stringBuilder.Append( "ERROR: '" ).Append( _command ).Append( "' doesn't take " ).Append( commandArguments.Count - 1 ).Append( " parameter(s). Available command(s):" ); + else + stringBuilder.Append( "ERROR: can't find command '" ).Append( _command ).Append( "'. Did you mean:" ); + + for( int i = 0; i < matchingMethods.Count; i++ ) + stringBuilder.Append( "\n - " ).Append( matchingMethods[i].signature ); + + Debug.LogWarning( stringBuilder.ToString() ); + + // The log that lists method signature(s) for this command should automatically be expanded for better UX + if( DebugLogManager.Instance ) + DebugLogManager.Instance.AdjustLatestPendingLog( true, true ); + } + + return; + } + + ConsoleMethodInfo methodToExecute = null; + object[] parameters = new object[commandArguments.Count - 1]; + string errorMessage = null; + for( int i = 0; i < matchingMethods.Count && methodToExecute == null; i++ ) + { + ConsoleMethodInfo methodInfo = matchingMethods[i]; + + // Parse the parameters into objects + bool success = true; + for( int j = 0; j < methodInfo.parameterTypes.Length && success; j++ ) + { + try + { + string argument = commandArguments[j + 1]; + Type parameterType = methodInfo.parameterTypes[j]; + + object val; + if( ParseArgument( argument, parameterType, out val ) ) + parameters[j] = val; + else + { + success = false; + errorMessage = string.Concat( "ERROR: couldn't parse ", argument, " to ", GetTypeReadableName( parameterType ) ); + } + } + catch( Exception e ) + { + success = false; + errorMessage = "ERROR: " + e.ToString(); + } + } + + if( success ) + methodToExecute = methodInfo; + } + + if( methodToExecute == null ) + Debug.LogWarning( !string.IsNullOrEmpty( errorMessage ) ? errorMessage : "ERROR: something went wrong" ); + else + { + // Execute the method associated with the command + object result = methodToExecute.method.Invoke( methodToExecute.instance, parameters ); + if( methodToExecute.method.ReturnType != typeof( void ) ) + { + // Print the returned value to the console + if( result == null || result.Equals( null ) ) + Debug.Log( "Returned: null" ); + else + Debug.Log( "Returned: " + result.ToString() ); + } + + if( OnCommandExecuted != null ) + OnCommandExecuted( methodToExecute.command, parameters ); + } + } + + public static void FetchArgumentsFromCommand( string command, List commandArguments ) + { + for( int i = 0; i < command.Length; i++ ) + { + if( char.IsWhiteSpace( command[i] ) ) + continue; + + int delimiterIndex = IndexOfDelimiterGroup( command[i] ); + if( delimiterIndex >= 0 ) + { + int endIndex = IndexOfDelimiterGroupEnd( command, delimiterIndex, i + 1 ); + commandArguments.Add( command.Substring( i + 1, endIndex - i - 1 ) ); + i = ( endIndex < command.Length - 1 && command[endIndex + 1] == ',' ) ? endIndex + 1 : endIndex; + } + else + { + int endIndex = IndexOfChar( command, ' ', i + 1 ); + commandArguments.Add( command.Substring( i, command[endIndex - 1] == ',' ? endIndex - 1 - i : endIndex - i ) ); + i = endIndex; + } + } + } + + public static void FindCommands( string commandName, bool allowSubstringMatching, List matchingCommands ) + { + if( allowSubstringMatching ) + { + for( int i = 0; i < methods.Count; i++ ) + { + if( methods[i].IsValid() && caseInsensitiveComparer.IndexOf( methods[i].command, commandName, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) >= 0 ) + matchingCommands.Add( methods[i] ); + } + } + else + { + for( int i = 0; i < methods.Count; i++ ) + { + if( methods[i].IsValid() && caseInsensitiveComparer.Compare( methods[i].command, commandName, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + matchingCommands.Add( methods[i] ); + } + } + } + + // Finds all commands that have a matching signature with command + // - caretIndexIncrements: indices inside "string command" that separate two arguments in the command. This is used to + // figure out which argument the caret is standing on + // - commandName: command's name (first argument) + internal static void GetCommandSuggestions( string command, List matchingCommands, List caretIndexIncrements, ref string commandName, out int numberOfParameters ) + { + bool commandNameCalculated = false; + bool commandNameFullyTyped = false; + numberOfParameters = -1; + for( int i = 0; i < command.Length; i++ ) + { + if( char.IsWhiteSpace( command[i] ) ) + continue; + + int delimiterIndex = IndexOfDelimiterGroup( command[i] ); + if( delimiterIndex >= 0 ) + { + int endIndex = IndexOfDelimiterGroupEnd( command, delimiterIndex, i + 1 ); + if( !commandNameCalculated ) + { + commandNameCalculated = true; + commandNameFullyTyped = command.Length > endIndex; + + int commandNameLength = endIndex - i - 1; + if( commandName == null || commandNameLength == 0 || commandName.Length != commandNameLength || caseInsensitiveComparer.IndexOf( command, commandName, i + 1, commandNameLength, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) != i + 1 ) + commandName = command.Substring( i + 1, commandNameLength ); + } + + i = ( endIndex < command.Length - 1 && command[endIndex + 1] == ',' ) ? endIndex + 1 : endIndex; + caretIndexIncrements.Add( i + 1 ); + } + else + { + int endIndex = IndexOfChar( command, ' ', i + 1 ); + if( !commandNameCalculated ) + { + commandNameCalculated = true; + commandNameFullyTyped = command.Length > endIndex; + + int commandNameLength = command[endIndex - 1] == ',' ? endIndex - 1 - i : endIndex - i; + if( commandName == null || commandNameLength == 0 || commandName.Length != commandNameLength || caseInsensitiveComparer.IndexOf( command, commandName, i, commandNameLength, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) != i ) + commandName = command.Substring( i, commandNameLength ); + } + + i = endIndex; + caretIndexIncrements.Add( i ); + } + + numberOfParameters++; + } + + if( !commandNameCalculated ) + commandName = string.Empty; + + if( !string.IsNullOrEmpty( commandName ) ) + { + int commandIndex = FindCommandIndex( commandName ); + if( commandIndex < 0 ) + commandIndex = ~commandIndex; + + int commandLastIndex = commandIndex; + if( !commandNameFullyTyped ) + { + // Match all commands that start with commandName + if( commandIndex < methods.Count && caseInsensitiveComparer.IsPrefix( methods[commandIndex].command, commandName, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) ) + { + while( commandIndex > 0 && caseInsensitiveComparer.IsPrefix( methods[commandIndex - 1].command, commandName, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) ) + commandIndex--; + while( commandLastIndex < methods.Count - 1 && caseInsensitiveComparer.IsPrefix( methods[commandLastIndex + 1].command, commandName, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) ) + commandLastIndex++; + } + else + commandLastIndex = -1; + } + else + { + // Match only the commands that are equal to commandName + if( commandIndex < methods.Count && caseInsensitiveComparer.Compare( methods[commandIndex].command, commandName, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + { + while( commandIndex > 0 && caseInsensitiveComparer.Compare( methods[commandIndex - 1].command, commandName, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + commandIndex--; + while( commandLastIndex < methods.Count - 1 && caseInsensitiveComparer.Compare( methods[commandLastIndex + 1].command, commandName, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + commandLastIndex++; + } + else + commandLastIndex = -1; + } + + for( ; commandIndex <= commandLastIndex; commandIndex++ ) + { + if( methods[commandIndex].parameterTypes.Length >= numberOfParameters ) + matchingCommands.Add( methods[commandIndex] ); + } + } + } + + // Find the index of the delimiter group that 'c' belongs to + private static int IndexOfDelimiterGroup( char c ) + { + for( int i = 0; i < inputDelimiters.Length; i++ ) + { + if( c == inputDelimiters[i][0] ) + return i; + } + + return -1; + } + + private static int IndexOfDelimiterGroupEnd( string command, int delimiterIndex, int startIndex ) + { + char startChar = inputDelimiters[delimiterIndex][0]; + char endChar = inputDelimiters[delimiterIndex][1]; + + // Check delimiter's depth for array support (e.g. [[1 2] [3 4]] for Vector2 array) + int depth = 1; + + for( int i = startIndex; i < command.Length; i++ ) + { + char c = command[i]; + if( c == endChar && --depth <= 0 ) + return i; + else if( c == startChar ) + depth++; + } + + return command.Length; + } + + // Find the index of char in the string, or return the length of string instead of -1 + private static int IndexOfChar( string command, char c, int startIndex ) + { + int result = command.IndexOf( c, startIndex ); + if( result < 0 ) + result = command.Length; + + return result; + } + + // Find command's index in the list of registered commands using binary search + private static int FindCommandIndex( string command ) + { + int min = 0; + int max = methods.Count - 1; + while( min <= max ) + { + int mid = ( min + max ) / 2; + int comparison = caseInsensitiveComparer.Compare( command, methods[mid].command, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ); + if( comparison == 0 ) + return mid; + else if( comparison < 0 ) + max = mid - 1; + else + min = mid + 1; + } + + return ~min; + } + + public static bool IsSupportedArrayType( Type type ) + { + if( type.IsArray ) + { + if( type.GetArrayRank() != 1 ) + return false; + + type = type.GetElementType(); + } + else if( type.IsGenericType ) + { + if( type.GetGenericTypeDefinition() != typeof( List<> ) ) + return false; + + type = type.GetGenericArguments()[0]; + } + else + return false; + + return parseFunctions.ContainsKey( type ) || typeof( Component ).IsAssignableFrom( type ) || type.IsEnum; + } + + public static string GetTypeReadableName( Type type ) + { + string result; + if( typeReadableNames.TryGetValue( type, out result ) ) + return result; + + if( IsSupportedArrayType( type ) ) + { + Type elementType = type.IsArray ? type.GetElementType() : type.GetGenericArguments()[0]; + if( typeReadableNames.TryGetValue( elementType, out result ) ) + return result + "[]"; + else + return elementType.Name + "[]"; + } + + return type.Name; + } + + public static bool ParseArgument( string input, Type argumentType, out object output ) + { + ParseFunction parseFunction; + if( parseFunctions.TryGetValue( argumentType, out parseFunction ) ) + return parseFunction( input, out output ); + else if( typeof( Component ).IsAssignableFrom( argumentType ) ) + return ParseComponent( input, argumentType, out output ); + else if( argumentType.IsEnum ) + return ParseEnum( input, argumentType, out output ); + else if( IsSupportedArrayType( argumentType ) ) + return ParseArray( input, argumentType, out output ); + else + { + output = null; + return false; + } + } + + public static bool ParseString( string input, out object output ) + { + output = input; + return true; + } + + public static bool ParseBool( string input, out object output ) + { + if( input == "1" || input.ToLowerInvariant() == "true" ) + { + output = true; + return true; + } + + if( input == "0" || input.ToLowerInvariant() == "false" ) + { + output = false; + return true; + } + + output = false; + return false; + } + + public static bool ParseInt( string input, out object output ) + { + int value; + bool result = int.TryParse( input, out value ); + + output = value; + return result; + } + + public static bool ParseUInt( string input, out object output ) + { + uint value; + bool result = uint.TryParse( input, out value ); + + output = value; + return result; + } + + public static bool ParseLong( string input, out object output ) + { + long value; + bool result = long.TryParse( !input.EndsWith( "L", StringComparison.OrdinalIgnoreCase ) ? input : input.Substring( 0, input.Length - 1 ), out value ); + + output = value; + return result; + } + + public static bool ParseULong( string input, out object output ) + { + ulong value; + bool result = ulong.TryParse( !input.EndsWith( "L", StringComparison.OrdinalIgnoreCase ) ? input : input.Substring( 0, input.Length - 1 ), out value ); + + output = value; + return result; + } + + public static bool ParseByte( string input, out object output ) + { + byte value; + bool result = byte.TryParse( input, out value ); + + output = value; + return result; + } + + public static bool ParseSByte( string input, out object output ) + { + sbyte value; + bool result = sbyte.TryParse( input, out value ); + + output = value; + return result; + } + + public static bool ParseShort( string input, out object output ) + { + short value; + bool result = short.TryParse( input, out value ); + + output = value; + return result; + } + + public static bool ParseUShort( string input, out object output ) + { + ushort value; + bool result = ushort.TryParse( input, out value ); + + output = value; + return result; + } + + public static bool ParseChar( string input, out object output ) + { + char value; + bool result = char.TryParse( input, out value ); + + output = value; + return result; + } + + public static bool ParseFloat( string input, out object output ) + { + float value; + bool result = float.TryParse( !input.EndsWith( "f", StringComparison.OrdinalIgnoreCase ) ? input : input.Substring( 0, input.Length - 1 ), NumberStyles.Float, CultureInfo.InvariantCulture, out value ); + + output = value; + return result; + } + + public static bool ParseDouble( string input, out object output ) + { + double value; + bool result = double.TryParse( !input.EndsWith( "f", StringComparison.OrdinalIgnoreCase ) ? input : input.Substring( 0, input.Length - 1 ), NumberStyles.Float, CultureInfo.InvariantCulture, out value ); + + output = value; + return result; + } + + public static bool ParseDecimal( string input, out object output ) + { + decimal value; + bool result = decimal.TryParse( !input.EndsWith( "f", StringComparison.OrdinalIgnoreCase ) ? input : input.Substring( 0, input.Length - 1 ), NumberStyles.Float, CultureInfo.InvariantCulture, out value ); + + output = value; + return result; + } + + public static bool ParseVector2( string input, out object output ) + { + return ParseVector( input, typeof( Vector2 ), out output ); + } + + public static bool ParseVector3( string input, out object output ) + { + return ParseVector( input, typeof( Vector3 ), out output ); + } + + public static bool ParseVector4( string input, out object output ) + { + return ParseVector( input, typeof( Vector4 ), out output ); + } + + public static bool ParseQuaternion( string input, out object output ) + { + return ParseVector( input, typeof( Quaternion ), out output ); + } + + public static bool ParseColor( string input, out object output ) + { + return ParseVector( input, typeof( Color ), out output ); + } + + public static bool ParseColor32( string input, out object output ) + { + return ParseVector( input, typeof( Color32 ), out output ); + } + + public static bool ParseRect( string input, out object output ) + { + return ParseVector( input, typeof( Rect ), out output ); + } + + public static bool ParseRectOffset( string input, out object output ) + { + return ParseVector( input, typeof( RectOffset ), out output ); + } + + public static bool ParseBounds( string input, out object output ) + { + return ParseVector( input, typeof( Bounds ), out output ); + } + + public static bool ParseVector2Int( string input, out object output ) + { + return ParseVector( input, typeof( Vector2Int ), out output ); + } + + public static bool ParseVector3Int( string input, out object output ) + { + return ParseVector( input, typeof( Vector3Int ), out output ); + } + + public static bool ParseRectInt( string input, out object output ) + { + return ParseVector( input, typeof( RectInt ), out output ); + } + + public static bool ParseBoundsInt( string input, out object output ) + { + return ParseVector( input, typeof( BoundsInt ), out output ); + } + + public static bool ParseGameObject( string input, out object output ) + { + output = input == "null" ? null : GameObject.Find( input ); + return true; + } + + public static bool ParseComponent( string input, Type componentType, out object output ) + { + GameObject gameObject = input == "null" ? null : GameObject.Find( input ); + output = gameObject ? gameObject.GetComponent( componentType ) : null; + return true; + } + + public static bool ParseEnum( string input, Type enumType, out object output ) + { + const int NONE = 0, OR = 1, AND = 2; + + int outputInt = 0; + int operation = NONE; // 0: nothing, 1: OR with outputInt, 2: AND with outputInt + for( int i = 0; i < input.Length; i++ ) + { + string enumStr; + int orIndex = input.IndexOf( '|', i ); + int andIndex = input.IndexOf( '&', i ); + if( orIndex < 0 ) + enumStr = input.Substring( i, ( andIndex < 0 ? input.Length : andIndex ) - i ).Trim(); + else + enumStr = input.Substring( i, ( andIndex < 0 ? orIndex : Mathf.Min( andIndex, orIndex ) ) - i ).Trim(); + + int value; + if( !int.TryParse( enumStr, out value ) ) + { + try + { + // Case-insensitive enum parsing + value = Convert.ToInt32( Enum.Parse( enumType, enumStr, true ) ); + } + catch + { + output = null; + return false; + } + } + + if( operation == NONE ) + outputInt = value; + else if( operation == OR ) + outputInt |= value; + else + outputInt &= value; + + if( orIndex >= 0 ) + { + if( andIndex > orIndex ) + { + operation = AND; + i = andIndex; + } + else + { + operation = OR; + i = orIndex; + } + } + else if( andIndex >= 0 ) + { + operation = AND; + i = andIndex; + } + else + i = input.Length; + } + + output = Enum.ToObject( enumType, outputInt ); + return true; + } + + public static bool ParseArray( string input, Type arrayType, out object output ) + { + List valuesToParse = new List( 2 ); + FetchArgumentsFromCommand( input, valuesToParse ); + + IList result = (IList) Activator.CreateInstance( arrayType, new object[1] { valuesToParse.Count } ); + output = result; + + if( arrayType.IsArray ) + { + Type elementType = arrayType.GetElementType(); + for( int i = 0; i < valuesToParse.Count; i++ ) + { + object obj; + if( !ParseArgument( valuesToParse[i], elementType, out obj ) ) + return false; + + result[i] = obj; + } + } + else + { + Type elementType = arrayType.GetGenericArguments()[0]; + for( int i = 0; i < valuesToParse.Count; i++ ) + { + object obj; + if( !ParseArgument( valuesToParse[i], elementType, out obj ) ) + return false; + + result.Add( obj ); + } + } + + return true; + } + + // Create a vector of specified type (fill the blank slots with 0 or ignore unnecessary slots) + private static bool ParseVector( string input, Type vectorType, out object output ) + { + List tokens = new List( input.Replace( ',', ' ' ).Trim().Split( ' ' ) ); + for( int i = tokens.Count - 1; i >= 0; i-- ) + { + tokens[i] = tokens[i].Trim(); + if( tokens[i].Length == 0 ) + tokens.RemoveAt( i ); + } + + float[] tokenValues = new float[tokens.Count]; + for( int i = 0; i < tokens.Count; i++ ) + { + object val; + if( !ParseFloat( tokens[i], out val ) ) + { + if( vectorType == typeof( Vector3 ) ) + output = Vector3.zero; + else if( vectorType == typeof( Vector2 ) ) + output = Vector2.zero; + else + output = Vector4.zero; + + return false; + } + + tokenValues[i] = (float) val; + } + + if( vectorType == typeof( Vector3 ) ) + { + Vector3 result = Vector3.zero; + + for( int i = 0; i < tokenValues.Length && i < 3; i++ ) + result[i] = tokenValues[i]; + + output = result; + } + else if( vectorType == typeof( Vector2 ) ) + { + Vector2 result = Vector2.zero; + + for( int i = 0; i < tokenValues.Length && i < 2; i++ ) + result[i] = tokenValues[i]; + + output = result; + } + else if( vectorType == typeof( Vector4 ) ) + { + Vector4 result = Vector4.zero; + + for( int i = 0; i < tokenValues.Length && i < 4; i++ ) + result[i] = tokenValues[i]; + + output = result; + } + else if( vectorType == typeof( Quaternion ) ) + { + Quaternion result = Quaternion.identity; + + for( int i = 0; i < tokenValues.Length && i < 4; i++ ) + result[i] = tokenValues[i]; + + output = result; + } + else if( vectorType == typeof( Color ) ) + { + Color result = Color.black; + + for( int i = 0; i < tokenValues.Length && i < 4; i++ ) + result[i] = tokenValues[i]; + + output = result; + } + else if( vectorType == typeof( Color32 ) ) + { + Color32 result = new Color32( 0, 0, 0, 255 ); + + if( tokenValues.Length > 0 ) + result.r = (byte) Mathf.RoundToInt( tokenValues[0] ); + if( tokenValues.Length > 1 ) + result.g = (byte) Mathf.RoundToInt( tokenValues[1] ); + if( tokenValues.Length > 2 ) + result.b = (byte) Mathf.RoundToInt( tokenValues[2] ); + if( tokenValues.Length > 3 ) + result.a = (byte) Mathf.RoundToInt( tokenValues[3] ); + + output = result; + } + else if( vectorType == typeof( Rect ) ) + { + Rect result = Rect.zero; + + if( tokenValues.Length > 0 ) + result.x = tokenValues[0]; + if( tokenValues.Length > 1 ) + result.y = tokenValues[1]; + if( tokenValues.Length > 2 ) + result.width = tokenValues[2]; + if( tokenValues.Length > 3 ) + result.height = tokenValues[3]; + + output = result; + } + else if( vectorType == typeof( RectOffset ) ) + { + RectOffset result = new RectOffset(); + + if( tokenValues.Length > 0 ) + result.left = Mathf.RoundToInt( tokenValues[0] ); + if( tokenValues.Length > 1 ) + result.right = Mathf.RoundToInt( tokenValues[1] ); + if( tokenValues.Length > 2 ) + result.top = Mathf.RoundToInt( tokenValues[2] ); + if( tokenValues.Length > 3 ) + result.bottom = Mathf.RoundToInt( tokenValues[3] ); + + output = result; + } + else if( vectorType == typeof( Bounds ) ) + { + Vector3 center = Vector3.zero; + for( int i = 0; i < tokenValues.Length && i < 3; i++ ) + center[i] = tokenValues[i]; + + Vector3 size = Vector3.zero; + for( int i = 3; i < tokenValues.Length && i < 6; i++ ) + size[i - 3] = tokenValues[i]; + + output = new Bounds( center, size ); + } + else if( vectorType == typeof( Vector3Int ) ) + { + Vector3Int result = Vector3Int.zero; + + for( int i = 0; i < tokenValues.Length && i < 3; i++ ) + result[i] = Mathf.RoundToInt( tokenValues[i] ); + + output = result; + } + else if( vectorType == typeof( Vector2Int ) ) + { + Vector2Int result = Vector2Int.zero; + + for( int i = 0; i < tokenValues.Length && i < 2; i++ ) + result[i] = Mathf.RoundToInt( tokenValues[i] ); + + output = result; + } + else if( vectorType == typeof( RectInt ) ) + { + RectInt result = new RectInt(); + + if( tokenValues.Length > 0 ) + result.x = Mathf.RoundToInt( tokenValues[0] ); + if( tokenValues.Length > 1 ) + result.y = Mathf.RoundToInt( tokenValues[1] ); + if( tokenValues.Length > 2 ) + result.width = Mathf.RoundToInt( tokenValues[2] ); + if( tokenValues.Length > 3 ) + result.height = Mathf.RoundToInt( tokenValues[3] ); + + output = result; + } + else if( vectorType == typeof( BoundsInt ) ) + { + Vector3Int center = Vector3Int.zero; + for( int i = 0; i < tokenValues.Length && i < 3; i++ ) + center[i] = Mathf.RoundToInt( tokenValues[i] ); + + Vector3Int size = Vector3Int.zero; + for( int i = 3; i < tokenValues.Length && i < 6; i++ ) + size[i - 3] = Mathf.RoundToInt( tokenValues[i] ); + + output = new BoundsInt( center, size ); + } + else + { + output = null; + return false; + } + + return true; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs.meta new file mode 100644 index 0000000000..fa429dd567 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs.meta @@ -0,0 +1,19 @@ +fileFormatVersion: 2 +guid: d15693a03d0d33b4892c6365a2a97e19 +timeCreated: 1472036503 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 68068 + packageName: In-game Debug Console + packageVersion: 1.8.2 + assetPath: Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs + uploadId: 764785 diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs new file mode 100644 index 0000000000..083f4f7b71 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs @@ -0,0 +1,187 @@ +using System.Collections.Generic; +using System.Globalization; +using System.Text; +using UnityEngine; + +// Container for a simple debug entry +namespace IngameDebugConsole +{ + public class DebugLogEntry + { + private const int HASH_NOT_CALCULATED = -623218; + + public string logString; + public string stackTrace; + private string completeLog; + + // Sprite to show with this entry + public LogType logType; + + // Collapsed count + public int count; + + // Index of this entry among all collapsed entries + public int collapsedIndex; + + private int hashValue; + + public void Initialize( string logString, string stackTrace ) + { + this.logString = logString; + this.stackTrace = stackTrace; + + completeLog = null; + count = 1; + hashValue = HASH_NOT_CALCULATED; + } + + public void Clear() + { + logString = null; + stackTrace = null; + completeLog = null; + } + + // Checks if logString or stackTrace contains the search term + public bool MatchesSearchTerm( string searchTerm ) + { + return ( logString != null && DebugLogConsole.caseInsensitiveComparer.IndexOf( logString, searchTerm, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) >= 0 ) || + ( stackTrace != null && DebugLogConsole.caseInsensitiveComparer.IndexOf( stackTrace, searchTerm, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) >= 0 ); + } + + // Return a string containing complete information about this debug entry + public override string ToString() + { + if( completeLog == null ) + completeLog = string.Concat( logString, "\n", stackTrace ); + + return completeLog; + } + + // Credit: https://stackoverflow.com/a/19250516/2373034 + public int GetContentHashCode() + { + if( hashValue == HASH_NOT_CALCULATED ) + { + unchecked + { + hashValue = 17; + hashValue = hashValue * 23 + ( logString == null ? 0 : logString.GetHashCode() ); + hashValue = hashValue * 23 + ( stackTrace == null ? 0 : stackTrace.GetHashCode() ); + } + } + + return hashValue; + } + } + + public struct QueuedDebugLogEntry + { + public readonly string logString; + public readonly string stackTrace; + public readonly LogType logType; + + public QueuedDebugLogEntry( string logString, string stackTrace, LogType logType ) + { + this.logString = logString; + this.stackTrace = stackTrace; + this.logType = logType; + } + + // Checks if logString or stackTrace contains the search term + public bool MatchesSearchTerm( string searchTerm ) + { + return ( logString != null && DebugLogConsole.caseInsensitiveComparer.IndexOf( logString, searchTerm, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) >= 0 ) || + ( stackTrace != null && DebugLogConsole.caseInsensitiveComparer.IndexOf( stackTrace, searchTerm, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) >= 0 ); + } + } + + public struct DebugLogEntryTimestamp + { + public readonly System.DateTime dateTime; +#if !IDG_OMIT_ELAPSED_TIME + public readonly float elapsedSeconds; +#endif +#if !IDG_OMIT_FRAMECOUNT + public readonly int frameCount; +#endif + +#if !IDG_OMIT_ELAPSED_TIME && !IDG_OMIT_FRAMECOUNT + public DebugLogEntryTimestamp( System.DateTime dateTime, float elapsedSeconds, int frameCount ) +#elif !IDG_OMIT_ELAPSED_TIME + public DebugLogEntryTimestamp( System.DateTime dateTime, float elapsedSeconds ) +#elif !IDG_OMIT_FRAMECOUNT + public DebugLogEntryTimestamp( System.DateTime dateTime, int frameCount ) +#else + public DebugLogEntryTimestamp( System.DateTime dateTime ) +#endif + { + this.dateTime = dateTime; +#if !IDG_OMIT_ELAPSED_TIME + this.elapsedSeconds = elapsedSeconds; +#endif +#if !IDG_OMIT_FRAMECOUNT + this.frameCount = frameCount; +#endif + } + + public void AppendTime( StringBuilder sb ) + { + // Add DateTime in format: [HH:mm:ss] + sb.Append( "[" ); + + int hour = dateTime.Hour; + if( hour >= 10 ) + sb.Append( hour ); + else + sb.Append( "0" ).Append( hour ); + + sb.Append( ":" ); + + int minute = dateTime.Minute; + if( minute >= 10 ) + sb.Append( minute ); + else + sb.Append( "0" ).Append( minute ); + + sb.Append( ":" ); + + int second = dateTime.Second; + if( second >= 10 ) + sb.Append( second ); + else + sb.Append( "0" ).Append( second ); + + sb.Append( "]" ); + } + + public void AppendFullTimestamp( StringBuilder sb ) + { + AppendTime( sb ); + +#if !IDG_OMIT_ELAPSED_TIME && !IDG_OMIT_FRAMECOUNT + // Append elapsed seconds and frame count in format: [1.0s at #Frame] + sb.Append( "[" ).Append( elapsedSeconds.ToString( "F1" ) ).Append( "s at " ).Append( "#" ).Append( frameCount ).Append( "]" ); +#elif !IDG_OMIT_ELAPSED_TIME + // Append elapsed seconds in format: [1.0s] + sb.Append( "[" ).Append( elapsedSeconds.ToString( "F1" ) ).Append( "s]" ); +#elif !IDG_OMIT_FRAMECOUNT + // Append frame count in format: [#Frame] + sb.Append( "[#" ).Append( frameCount ).Append( "]" ); +#endif + } + } + + public class DebugLogEntryContentEqualityComparer : EqualityComparer + { + public override bool Equals( DebugLogEntry x, DebugLogEntry y ) + { + return x.logString == y.logString && x.stackTrace == y.stackTrace; + } + + public override int GetHashCode( DebugLogEntry obj ) + { + return obj.GetContentHashCode(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs.meta new file mode 100644 index 0000000000..081631ec83 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs.meta @@ -0,0 +1,19 @@ +fileFormatVersion: 2 +guid: e7b1a420c564be040bf73b8a377fc2c2 +timeCreated: 1466375168 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 68068 + packageName: In-game Debug Console + packageVersion: 1.8.2 + assetPath: Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs + uploadId: 764785 diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs new file mode 100644 index 0000000000..86c6054bbd --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs @@ -0,0 +1,260 @@ +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; +using System.Text; +using TMPro; +#if UNITY_EDITOR +using UnityEditor; +using System.Text.RegularExpressions; +#endif + +// A UI element to show information about a debug entry +namespace IngameDebugConsole +{ + public class DebugLogItem : MonoBehaviour, IPointerClickHandler + { +#pragma warning disable 0649 + // Cached components + [SerializeField] + private RectTransform transformComponent; + public RectTransform Transform { get { return transformComponent; } } + + [SerializeField] + private Image imageComponent; + public Image Image { get { return imageComponent; } } + + [SerializeField] + private CanvasGroup canvasGroupComponent; + public CanvasGroup CanvasGroup { get { return canvasGroupComponent; } } + + [SerializeField] + private TextMeshProUGUI logText; + [SerializeField] + private Image logTypeImage; + + // Objects related to the collapsed count of the debug entry + [SerializeField] + private GameObject logCountParent; + [SerializeField] + private TextMeshProUGUI logCountText; + + [SerializeField] + private Button copyLogButton; +#pragma warning restore 0649 + + // Debug entry to show with this log item + private DebugLogEntry logEntry; + public DebugLogEntry Entry { get { return logEntry; } } + + private DebugLogEntryTimestamp? logEntryTimestamp; + public DebugLogEntryTimestamp? Timestamp { get { return logEntryTimestamp; } } + + // Index of the entry in the list of entries + [System.NonSerialized] public int Index; + + private bool isExpanded; + public bool Expanded { get { return isExpanded; } } + + private Vector2 logTextOriginalPosition; + private Vector2 logTextOriginalSize; + private float copyLogButtonHeight; + + private DebugLogRecycledListView listView; + + public void Initialize( DebugLogRecycledListView listView ) + { + this.listView = listView; + + logTextOriginalPosition = logText.rectTransform.anchoredPosition; + logTextOriginalSize = logText.rectTransform.sizeDelta; + copyLogButtonHeight = ( copyLogButton.transform as RectTransform ).anchoredPosition.y + ( copyLogButton.transform as RectTransform ).sizeDelta.y + 2f; // 2f: space between text and button + + if (listView.manager.logItemFontOverride != null) + logText.font = listView.manager.logItemFontOverride; + + copyLogButton.onClick.AddListener( CopyLog ); +#if !UNITY_EDITOR && UNITY_WEBGL + copyLogButton.gameObject.AddComponent().Initialize( this ); +#endif + } + + public void SetContent( DebugLogEntry logEntry, DebugLogEntryTimestamp? logEntryTimestamp, int entryIndex, bool isExpanded ) + { + this.logEntry = logEntry; + this.logEntryTimestamp = logEntryTimestamp; + this.Index = entryIndex; + this.isExpanded = isExpanded; + + Vector2 size = transformComponent.sizeDelta; + if( isExpanded ) + { + size.y = listView.SelectedItemHeight; + + if( !copyLogButton.gameObject.activeSelf ) + { + copyLogButton.gameObject.SetActive( true ); + + logText.rectTransform.anchoredPosition = new Vector2( logTextOriginalPosition.x, logTextOriginalPosition.y + copyLogButtonHeight * 0.5f ); + logText.rectTransform.sizeDelta = logTextOriginalSize - new Vector2( 0f, copyLogButtonHeight ); + } + } + else + { + size.y = listView.ItemHeight; + + if( copyLogButton.gameObject.activeSelf ) + { + copyLogButton.gameObject.SetActive( false ); + + logText.rectTransform.anchoredPosition = logTextOriginalPosition; + logText.rectTransform.sizeDelta = logTextOriginalSize; + } + } + + transformComponent.sizeDelta = size; + + SetText( logEntry, logEntryTimestamp, isExpanded ); + logTypeImage.sprite = DebugLogManager.logSpriteRepresentations[(int) logEntry.logType]; + } + + // Show the collapsed count of the debug entry + public void ShowCount() + { + logCountText.SetText( "{0}", logEntry.count ); + + if( !logCountParent.activeSelf ) + logCountParent.SetActive( true ); + } + + // Hide the collapsed count of the debug entry + public void HideCount() + { + if( logCountParent.activeSelf ) + logCountParent.SetActive( false ); + } + + // Update the debug entry's displayed timestamp + public void UpdateTimestamp( DebugLogEntryTimestamp timestamp ) + { + logEntryTimestamp = timestamp; + + if( isExpanded || listView.manager.alwaysDisplayTimestamps ) + SetText( logEntry, timestamp, isExpanded ); + } + + private void SetText(DebugLogEntry logEntry, DebugLogEntryTimestamp? logEntryTimestamp, bool isExpanded) + { + string text = isExpanded ? logEntry.ToString() : logEntry.logString; + int maxLogLength = isExpanded ? listView.manager.maxExpandedLogLength : listView.manager.maxCollapsedLogLength; + + if (!logEntryTimestamp.HasValue || (!isExpanded && !listView.manager.alwaysDisplayTimestamps)) + { + if (text.Length <= maxLogLength) + logText.text = text; + else + { + if (listView.manager.textBuffer.Length < maxLogLength) + listView.manager.textBuffer = new char[maxLogLength]; + + text.CopyTo(0, listView.manager.textBuffer, 0, maxLogLength); + logText.SetText(listView.manager.textBuffer, 0, maxLogLength); + } + } + else + { + StringBuilder sb = listView.manager.sharedStringBuilder; + sb.Length = 0; + + if (isExpanded) + { + logEntryTimestamp.Value.AppendFullTimestamp(sb); + sb.Append(": ").Append(text, 0, Mathf.Min(text.Length, maxLogLength - sb.Length)); + } + else + { + logEntryTimestamp.Value.AppendTime(sb); + sb.Append(" ").Append(text, 0, Mathf.Min(text.Length, maxLogLength - sb.Length)); + } + + if (listView.manager.textBuffer.Length < sb.Length) + listView.manager.textBuffer = new char[sb.Length]; + + sb.CopyTo(0, listView.manager.textBuffer, 0, sb.Length); + logText.SetText(listView.manager.textBuffer, 0, sb.Length); + } + } + + // This log item is clicked, show the debug entry's stack trace + public void OnPointerClick( PointerEventData eventData ) + { +#if UNITY_EDITOR + if( eventData.button == PointerEventData.InputButton.Right ) + { + Match regex = Regex.Match( logEntry.stackTrace, @"\(at .*\.cs:[0-9]+\)$", RegexOptions.Multiline ); + if( regex.Success ) + { + string line = logEntry.stackTrace.Substring( regex.Index + 4, regex.Length - 5 ); + int lineSeparator = line.IndexOf( ':' ); + MonoScript script = AssetDatabase.LoadAssetAtPath( line.Substring( 0, lineSeparator ) ); + if( script != null ) + AssetDatabase.OpenAsset( script, int.Parse( line.Substring( lineSeparator + 1 ) ) ); + } + } + else + listView.OnLogItemClicked( this ); +#else + listView.OnLogItemClicked( this ); +#endif + } + + private void CopyLog() + { +#if UNITY_EDITOR || !UNITY_WEBGL + string log = GetCopyContent(); + if( !string.IsNullOrEmpty( log ) ) + GUIUtility.systemCopyBuffer = log; +#endif + } + + internal string GetCopyContent() + { + if( !logEntryTimestamp.HasValue ) + return logEntry.ToString(); + else + { + StringBuilder sb = listView.manager.sharedStringBuilder; + sb.Length = 0; + + logEntryTimestamp.Value.AppendFullTimestamp( sb ); + sb.Append( ": " ).Append( logEntry.ToString() ); + + return sb.ToString(); + } + } + + /// Here, we're using instead of because the latter doesn't take + /// into account. However, for to work, we need to give it + /// enough space (increase log item's height) and let it regenerate its mesh . + public float CalculateExpandedHeight( DebugLogEntry logEntry, DebugLogEntryTimestamp? logEntryTimestamp ) + { + string text = logText.text; + Vector2 size = ( transform as RectTransform ).sizeDelta; + + ( transform as RectTransform ).sizeDelta = new Vector2( size.x, 10000f ); + SetText( logEntry, logEntryTimestamp, true ); + logText.ForceMeshUpdate(); + float result = logText.GetRenderedValues( true ).y + copyLogButtonHeight; + + ( transform as RectTransform ).sizeDelta = size; + logText.text = text; + + return Mathf.Max( listView.ItemHeight, result ); + } + + // Return a string containing complete information about the debug entry + public override string ToString() + { + return logEntry.ToString(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs.meta new file mode 100644 index 0000000000..41abd64f97 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs.meta @@ -0,0 +1,19 @@ +fileFormatVersion: 2 +guid: d2ea291be9de70a4abfec595203c96c1 +timeCreated: 1465919949 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 68068 + packageName: In-game Debug Console + packageVersion: 1.8.2 + assetPath: Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs + uploadId: 764785 diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItemCopyWebGL.cs b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItemCopyWebGL.cs new file mode 100644 index 0000000000..a02f3ad95d --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItemCopyWebGL.cs @@ -0,0 +1,36 @@ +#if !UNITY_EDITOR && UNITY_WEBGL +using System.Runtime.InteropServices; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace IngameDebugConsole +{ + public class DebugLogItemCopyWebGL : MonoBehaviour, IPointerDownHandler, IPointerUpHandler + { + [DllImport( "__Internal" )] + private static extern void IngameDebugConsoleStartCopy( string textToCopy ); + [DllImport( "__Internal" )] + private static extern void IngameDebugConsoleCancelCopy(); + + private DebugLogItem logItem; + + public void Initialize( DebugLogItem logItem ) + { + this.logItem = logItem; + } + + public void OnPointerDown( PointerEventData eventData ) + { + string log = logItem.GetCopyContent(); + if( !string.IsNullOrEmpty( log ) ) + IngameDebugConsoleStartCopy( log ); + } + + public void OnPointerUp( PointerEventData eventData ) + { + if( eventData.dragging ) + IngameDebugConsoleCancelCopy(); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItemCopyWebGL.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItemCopyWebGL.cs.meta new file mode 100644 index 0000000000..83358b9309 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItemCopyWebGL.cs.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: 5a7d9d894141e704d8160fb4632121ac +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 68068 + packageName: In-game Debug Console + packageVersion: 1.8.2 + assetPath: Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItemCopyWebGL.cs + uploadId: 764785 diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogManager.cs b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogManager.cs new file mode 100644 index 0000000000..83f17e3df1 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogManager.cs @@ -0,0 +1,1877 @@ +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Text; +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; +using TMPro; +#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER +using UnityEngine.InputSystem; +#endif +#if UNITY_EDITOR && UNITY_2021_1_OR_NEWER +using Screen = UnityEngine.Device.Screen; // To support Device Simulator on Unity 2021.1+ +#endif + +// Receives debug entries and custom events (e.g. Clear, Collapse, Filter by Type) +// and notifies the recycled list view of changes to the list of debug entries +// +// - Vocabulary - +// Debug/Log entry: a Debug.Log/LogError/LogWarning/LogException/LogAssertion request made by +// the client and intercepted by this manager object +// Debug/Log item: a visual (uGUI) representation of a debug entry +// +// There can be a lot of debug entries in the system but there will only be a handful of log items +// to show their properties on screen (these log items are recycled as the list is scrolled) + +// An enum to represent filtered log types +namespace IngameDebugConsole +{ + public enum DebugLogFilter + { + None = 0, + Info = 1, + Warning = 2, + Error = 4, + All = ~0 + } + + public enum PopupVisibility + { + Always = 0, + WhenLogReceived = 1, + Never = 2 + } + + public class DebugLogManager : MonoBehaviour + { + public static DebugLogManager Instance { get; private set; } + +#pragma warning disable 0649 + [Header( "Properties" )] + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, console window will persist between scenes (i.e. not be destroyed when scene changes)" )] + private bool singleton = true; + + [SerializeField] + [HideInInspector] + [Tooltip( "Minimum height of the console window" )] + private float minimumHeight = 200f; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, console window can be resized horizontally, as well" )] + private bool enableHorizontalResizing = false; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, console window's resize button will be located at bottom-right corner. Otherwise, it will be located at bottom-left corner" )] + private bool resizeFromRight = true; + + [SerializeField] + [HideInInspector] + [Tooltip( "Minimum width of the console window" )] + private float minimumWidth = 240f; + + [SerializeField] + [HideInInspector] + [Tooltip( "Opacity of the console window" )] + [Range( 0f, 1f )] + private float logWindowOpacity = 1f; + + [SerializeField] + [HideInInspector] + [Tooltip( "Opacity of the popup" )] + [Range( 0f, 1f )] + internal float popupOpacity = 1f; + + [SerializeField] + [HideInInspector] + [Tooltip( "Determines when the popup will show up (after the console window is closed)" )] + private PopupVisibility popupVisibility = PopupVisibility.Always; + + [SerializeField] + [HideInInspector] + [Tooltip( "Determines which log types will show the popup on screen" )] + private DebugLogFilter popupVisibilityLogFilter = DebugLogFilter.All; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, console window will initially be invisible" )] + private bool startMinimized = true; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, pressing the Toggle Key will show/hide (i.e. toggle) the console window at runtime" )] + private bool toggleWithKey = false; + +#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER + [SerializeField] + [HideInInspector] + public InputAction toggleBinding = new InputAction( "Toggle Binding", type: InputActionType.Button, binding: "/backquote", expectedControlType: "Button" ); +#else + [SerializeField] + [HideInInspector] + private KeyCode toggleKey = KeyCode.BackQuote; +#endif + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, the console window will have a searchbar" )] + private bool enableSearchbar = true; + + [SerializeField] + [HideInInspector] + [Tooltip( "Width of the canvas determines whether the searchbar will be located inside the menu bar or underneath the menu bar. This way, the menu bar doesn't get too crowded on narrow screens. This value determines the minimum width of the canvas for the searchbar to appear inside the menu bar" )] + private float topSearchbarMinWidth = 360f; + + [SerializeField, HideInInspector] + [Tooltip("If enabled, clicking the resize button of the console window will copy all logs to clipboard. It'll also play a scale animation to give feedback.")] + internal bool copyAllLogsOnResizeButtonClick; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, the console window will continue receiving logs in the background even if its GameObject is inactive. But the console window's GameObject needs to be activated at least once because its Awake function must be triggered for this to work" )] + private bool receiveLogsWhileInactive = false; + + [SerializeField] + [HideInInspector] + private bool receiveInfoLogs = true, receiveWarningLogs = true, receiveErrorLogs = true, receiveExceptionLogs = true; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, the arrival times of logs will be recorded and displayed when a log is expanded" )] + private bool captureLogTimestamps = false; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, timestamps will be displayed for logs even if they aren't expanded" )] + internal bool alwaysDisplayTimestamps = false; + + [SerializeField] + [HideInInspector] + [Tooltip( "If the number of logs reach this limit, the oldest log(s) will be deleted to limit the RAM usage. It's recommended to set this value as low as possible" )] + private int maxLogCount = int.MaxValue; + + [SerializeField] + [HideInInspector] + [Tooltip( "How many log(s) to delete when the threshold is reached (all logs are iterated during this operation so it should neither be too low nor too high)" )] + private int logsToRemoveAfterMaxLogCount = 16; + + [SerializeField] + [HideInInspector] + [Tooltip( "While the console window is hidden, incoming logs will be queued but not immediately processed until the console window is opened (to avoid wasting CPU resources). When the log queue exceeds this limit, the first logs in the queue will be processed to enforce this limit. Processed logs won't increase RAM usage if they've been seen before (i.e. collapsible logs) but this is not the case for queued logs, so if a log is spammed every frame, it will fill the whole queue in an instant. Which is why there is a queue limit" )] + private int queuedLogLimit = 256; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, the command input field at the bottom of the console window will automatically be cleared after entering a command" )] + private bool clearCommandAfterExecution = true; + + [SerializeField] + [HideInInspector] + [Tooltip( "Console keeps track of the previously entered commands. This value determines the capacity of the command history (you can scroll through the history via up and down arrow keys while the command input field is focused)" )] + private int commandHistorySize = 15; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, while typing a command, all of the matching commands' signatures will be displayed in a popup" )] + private bool showCommandSuggestions = true; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, on Android platform, logcat entries of the application will also be logged to the console with the prefix \"LOGCAT: \". This may come in handy especially if you want to access the native logs of your Android plugins (like Admob)" )] + private bool receiveLogcatLogsInAndroid = false; + +#pragma warning disable 0414 +#pragma warning disable 0169 + [SerializeField] + [HideInInspector] + [Tooltip( "Native logs will be filtered using these arguments. If left blank, all native logs of the application will be logged to the console. But if you want to e.g. see Admob's logs only, you can enter \"-s Ads\" (without quotes) here" )] + private string logcatArguments; +#pragma warning restore 0169 +#pragma warning restore 0414 + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, on Android and iOS devices with notch screens, the console window will be repositioned so that the cutout(s) don't obscure it" )] + private bool avoidScreenCutout = true; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, on Android and iOS devices with notch screens, the console window's popup won't be obscured by the screen cutouts" )] + internal bool popupAvoidsScreenCutout = false; + + [SerializeField] + [Tooltip("If a log that isn't expanded is longer than this limit, it will be truncated. This greatly optimizes scrolling speed of collapsed logs if their log messages are long.")] + internal int maxCollapsedLogLength = 200; + + [SerializeField, UnityEngine.Serialization.FormerlySerializedAs("maxLogLength")] + [Tooltip("If an expanded log is longer than this limit, it will be truncated. This optimizes scrolling speed while an expanded log is visible.")] + internal int maxExpandedLogLength = 10000; + +#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBGL + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, on standalone platforms, command input field will automatically be focused (start receiving keyboard input) after opening the console window" )] + private bool autoFocusOnCommandInputField = true; +#endif + + [Header( "Visuals" )] + [SerializeField] + private DebugLogItem logItemPrefab; + + [SerializeField] + internal TMP_FontAsset logItemFontOverride; + + [SerializeField] + private TextMeshProUGUI commandSuggestionPrefab; + + // Visuals for different log types + [SerializeField] + private Sprite infoLog; + [SerializeField] + private Sprite warningLog; + [SerializeField] + private Sprite errorLog; + + internal static Sprite[] logSpriteRepresentations; + + // Visuals for resize button + [SerializeField] + private Sprite resizeIconAllDirections; + [SerializeField] + private Sprite resizeIconVerticalOnly; + + [SerializeField] + private Color collapseButtonNormalColor; + [SerializeField] + private Color collapseButtonSelectedColor; + + [SerializeField] + private Color filterButtonsNormalColor; + [SerializeField] + private Color filterButtonsSelectedColor; + + [SerializeField] + private string commandSuggestionHighlightStart = ""; + [SerializeField] + private string commandSuggestionHighlightEnd = ""; + + [Header( "Internal References" )] + [SerializeField] + private RectTransform logWindowTR; + + internal RectTransform canvasTR; + + [SerializeField] + private RectTransform logItemsContainer; + + [SerializeField] + private RectTransform commandSuggestionsContainer; + + [SerializeField] + private TMP_InputField commandInputField; + + [SerializeField] + private Button hideButton; + + [SerializeField] + private Button clearButton; + + [SerializeField] + private Image collapseButton; + + [SerializeField] + private Image filterInfoButton; + [SerializeField] + private Image filterWarningButton; + [SerializeField] + private Image filterErrorButton; + + [SerializeField] + private TextMeshProUGUI infoEntryCountText; + [SerializeField] + private TextMeshProUGUI warningEntryCountText; + [SerializeField] + private TextMeshProUGUI errorEntryCountText; + + [SerializeField] + private RectTransform searchbar; + [SerializeField] + private RectTransform searchbarSlotTop; + [SerializeField] + private RectTransform searchbarSlotBottom; + + [SerializeField] + private Image resizeButton; + + [SerializeField] + private GameObject snapToBottomButton; + + // Canvas group to modify visibility of the log window + [SerializeField] + private CanvasGroup logWindowCanvasGroup; + + [SerializeField] + private DebugLogPopup popupManager; + + [SerializeField] + private ScrollRect logItemsScrollRect; + private RectTransform logItemsScrollRectTR; + private Vector2 logItemsScrollRectOriginalSize; + + // Recycled list view to handle the log items efficiently + [SerializeField] + private DebugLogRecycledListView recycledListView; +#pragma warning restore 0649 + + private bool isLogWindowVisible = true; + public bool IsLogWindowVisible { get { return isLogWindowVisible; } } + + public bool PopupEnabled + { + get { return popupManager.gameObject.activeSelf; } + set { popupManager.gameObject.SetActive( value ); } + } + + private bool screenDimensionsChanged = true; + private float logWindowPreviousWidth; + + // Number of entries filtered by their types + private int infoEntryCount = 0, warningEntryCount = 0, errorEntryCount = 0; + private bool entryCountTextsDirty; + + // Number of new entries received this frame + private int newInfoEntryCount = 0, newWarningEntryCount = 0, newErrorEntryCount = 0; + + // Filters to apply to the list of debug entries to show + private bool isCollapseOn = false; + private DebugLogFilter logFilter = DebugLogFilter.All; + + // Search filter + private string searchTerm; + private bool isInSearchMode; + + // If the last log item is completely visible (scrollbar is at the bottom), + // scrollbar will remain at the bottom when new debug entries are received + [System.NonSerialized] + public bool SnapToBottom = true; + + // List of unique debug entries (duplicates of entries are not kept) + private DynamicCircularBuffer collapsedLogEntries; + private DynamicCircularBuffer collapsedLogEntriesTimestamps; + + // Dictionary to quickly find if a log already exists in collapsedLogEntries + private Dictionary collapsedLogEntriesMap; + + // The order the collapsedLogEntries are received + // (duplicate entries have the same value) + private DynamicCircularBuffer uncollapsedLogEntries; + private DynamicCircularBuffer uncollapsedLogEntriesTimestamps; + + // Filtered list of debug entries to show + private DynamicCircularBuffer logEntriesToShow; + private DynamicCircularBuffer timestampsOfLogEntriesToShow; + + // The log entry that must be focused this frame + private int indexOfLogEntryToSelectAndFocus = -1; + + // Whether or not logs list view should be updated this frame + private bool shouldUpdateRecycledListView = true; + + // Logs that should be registered in Update-loop + private DynamicCircularBuffer queuedLogEntries; + private DynamicCircularBuffer queuedLogEntriesTimestamps; + private object logEntriesLock; + private int pendingLogToAutoExpand; + + // Command suggestions that match the currently entered command + private List commandSuggestionInstances; + private int visibleCommandSuggestionInstances = 0; + private List matchingCommandSuggestions; + private List commandCaretIndexIncrements; + private string commandInputFieldPrevCommand; + private string commandInputFieldPrevCommandName; + private int commandInputFieldPrevParamCount = -1; + private int commandInputFieldPrevCaretPos = -1; + private int commandInputFieldPrevCaretArgumentIndex = -1; + + // Value of the command input field when autocomplete was first requested + private string commandInputFieldAutoCompleteBase; + private bool commandInputFieldAutoCompletedNow; + + // Pools for memory efficiency + private Stack pooledLogEntries; + private Stack pooledLogItems; + + /// Variables used by + private bool anyCollapsedLogRemoved; + private int removedLogEntriesToShowCount; + + // History of the previously entered commands + private CircularBuffer commandHistory; + private int commandHistoryIndex = -1; + private string unfinishedCommand; + + // StringBuilder used by various functions + internal StringBuilder sharedStringBuilder; + + /// + /// Used for . + /// + [System.NonSerialized] + internal char[] textBuffer = new char[4096]; + + // Offset of DateTime.Now from DateTime.UtcNow + private System.TimeSpan localTimeUtcOffset; + + // Last recorded values of Time.realtimeSinceStartup and Time.frameCount on the main thread (because these Time properties can't be accessed from other threads) +#if !IDG_OMIT_ELAPSED_TIME + private float lastElapsedSeconds; +#endif +#if !IDG_OMIT_FRAMECOUNT + private int lastFrameCount; +#endif + + private DebugLogEntryTimestamp dummyLogEntryTimestamp; + + // Required in ValidateScrollPosition() function + private PointerEventData nullPointerEventData; + + private System.Action poolLogEntryAction; + private System.Action removeUncollapsedLogEntryAction; + private System.Predicate shouldRemoveCollapsedLogEntryPredicate; + private System.Predicate shouldRemoveLogEntryToShowPredicate; + private System.Action updateLogEntryCollapsedIndexAction; + + // Callbacks for log window show/hide events + public System.Action OnLogWindowShown, OnLogWindowHidden; + + private bool isQuittingApplication; + +#if !UNITY_EDITOR && UNITY_ANDROID && UNITY_ANDROID_JNI + private DebugLogLogcatListener logcatListener; +#endif + + private void Awake() + { + // Only one instance of debug console is allowed + if( !Instance ) + { + Instance = this; + + // If it is a singleton object, don't destroy it between scene changes + if( singleton ) + DontDestroyOnLoad( gameObject ); + } + else if( Instance != this ) + { + Destroy( gameObject ); + return; + } + + pooledLogEntries = new Stack( 64 ); + pooledLogItems = new Stack( 16 ); + commandSuggestionInstances = new List( 8 ); + matchingCommandSuggestions = new List( 8 ); + commandCaretIndexIncrements = new List( 8 ); + queuedLogEntries = new DynamicCircularBuffer( Mathf.Clamp( queuedLogLimit, 16, 4096 ) ); + commandHistory = new CircularBuffer( commandHistorySize ); + + logEntriesLock = new object(); + sharedStringBuilder = new StringBuilder( 1024 ); + + canvasTR = (RectTransform) transform; + logItemsScrollRectTR = (RectTransform) logItemsScrollRect.transform; + logItemsScrollRectOriginalSize = logItemsScrollRectTR.sizeDelta; + + // Associate sprites with log types + logSpriteRepresentations = new Sprite[5]; + logSpriteRepresentations[(int) LogType.Log] = infoLog; + logSpriteRepresentations[(int) LogType.Warning] = warningLog; + logSpriteRepresentations[(int) LogType.Error] = errorLog; + logSpriteRepresentations[(int) LogType.Exception] = errorLog; + logSpriteRepresentations[(int) LogType.Assert] = errorLog; + + // Initially, all log types are visible + filterInfoButton.color = filterButtonsSelectedColor; + filterWarningButton.color = filterButtonsSelectedColor; + filterErrorButton.color = filterButtonsSelectedColor; + + resizeButton.sprite = enableHorizontalResizing ? resizeIconAllDirections : resizeIconVerticalOnly; + + collapsedLogEntries = new DynamicCircularBuffer( 128 ); + collapsedLogEntriesMap = new Dictionary( 128, new DebugLogEntryContentEqualityComparer() ); + uncollapsedLogEntries = new DynamicCircularBuffer( 256 ); + logEntriesToShow = new DynamicCircularBuffer( 256 ); + + if( captureLogTimestamps ) + { + collapsedLogEntriesTimestamps = new DynamicCircularBuffer( 128 ); + uncollapsedLogEntriesTimestamps = new DynamicCircularBuffer( 256 ); + timestampsOfLogEntriesToShow = new DynamicCircularBuffer( 256 ); + queuedLogEntriesTimestamps = new DynamicCircularBuffer( queuedLogEntries.Capacity ); + } + + recycledListView.Initialize( this, logEntriesToShow, timestampsOfLogEntriesToShow, logItemPrefab.Transform.sizeDelta.y ); + + if( minimumWidth < 100f ) + minimumWidth = 100f; + if( minimumHeight < 200f ) + minimumHeight = 200f; + + if( !resizeFromRight ) + { + RectTransform resizeButtonTR = (RectTransform) resizeButton.GetComponentInParent().transform; + resizeButtonTR.anchorMin = new Vector2( 0f, resizeButtonTR.anchorMin.y ); + resizeButtonTR.anchorMax = new Vector2( 0f, resizeButtonTR.anchorMax.y ); + resizeButtonTR.pivot = new Vector2( 0f, resizeButtonTR.pivot.y ); + + ( (RectTransform) commandInputField.transform ).anchoredPosition += new Vector2( resizeButtonTR.sizeDelta.x, 0f ); + } + + if( enableSearchbar ) + searchbar.GetComponent().onValueChanged.AddListener( SearchTermChanged ); + else + { + searchbar = null; + searchbarSlotTop.gameObject.SetActive( false ); + searchbarSlotBottom.gameObject.SetActive( false ); + } + + filterInfoButton.gameObject.SetActive( receiveInfoLogs ); + filterWarningButton.gameObject.SetActive( receiveWarningLogs ); + filterErrorButton.gameObject.SetActive( receiveErrorLogs || receiveExceptionLogs ); + + if( commandSuggestionsContainer.gameObject.activeSelf ) + commandSuggestionsContainer.gameObject.SetActive( false ); + + // Register to UI events + commandInputField.onValidateInput += OnValidateCommand; + commandInputField.onValueChanged.AddListener( OnEditCommand ); + commandInputField.onEndEdit.AddListener( OnEndEditCommand ); + hideButton.onClick.AddListener( HideLogWindow ); + clearButton.onClick.AddListener( ClearLogs ); + collapseButton.GetComponent