Decompiled source of CWVR v1.2.0
BepInEx/patchers/CWVR/CWVR.Preload.dll
Decompiled a month agousing System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx.Logging; using Microsoft.CodeAnalysis; using Mono.Cecil; using MonoMod.RuntimeDetour; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("DaXcess")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyCopyright("Copyright (c) DaXcess 2025")] [assembly: AssemblyDescription("CWVR Preloader")] [assembly: AssemblyFileVersion("1.2.0.0")] [assembly: AssemblyInformationalVersion("1.2.0+43b532498b65068608dff19c997e64f84668f332")] [assembly: AssemblyProduct("CWVR.Preload")] [assembly: AssemblyTitle("CWVR.Preload")] [assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/DaXcess/CWVR")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.2.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace CWVR.Preload { public class BepInExLogger : ILogger { private static ManualLogSource logSource = Logger.CreateLogSource("CWVR.Preload"); public void Log(object message) { logSource.LogInfo(message); } public void LogInfo(object message) { logSource.LogInfo(message); } public void LogWarning(object message) { logSource.LogWarning(message); } public void LogError(object message) { logSource.LogError(message); } public void LogDebug(object message) { logSource.LogDebug(message); } } public class NopLogger : ILogger { public void Log(object message) { } public void LogInfo(object message) { } public void LogWarning(object message) { } public void LogError(object message) { } public void LogDebug(object message) { } } public interface ILogger { void Log(object message); void LogInfo(object message); void LogWarning(object message); void LogError(object message); void LogDebug(object message); } public static class Preload { private const string VR_MANIFEST = "{\n \"name\": \"OpenXR XR Plugin\",\n \"version\": \"1.8.2\",\n \"libraryName\": \"UnityOpenXR\",\n \"displays\": [\n {\n \"id\": \"OpenXR Display\"\n }\n ],\n \"inputs\": [\n {\n \"id\": \"OpenXR Input\"\n }\n ]\n}"; private static Hook _getTypesHook; public static IEnumerable<string> TargetDLLs { get; } = Array.Empty<string>(); private static ILogger Logger { get; set; } = null; private static void PreloadInit() { Logger = new NopLogger(); InitializeMultiLoader(); PatchAssemblyTypeEnumerator(); } private static void Initialize() { Logger = new BepInExLogger(); InitializeMultiLoader(); } private static void InitializeMultiLoader() { Logger.Log("Setting up VR runtime assets"); SetupRuntimeAssets(); Logger.Log("We're done here. Goodbye!"); } private static void SetupRuntimeAssets() { SetupSubsystemAssets(); SetupPluginAssets(); } private static void SetupSubsystemAssets() { string text = Path.Combine(Path.Combine(Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName), "Content Warning_Data"), "UnitySubsystems"); if (!Directory.Exists(text)) { Directory.CreateDirectory(text); } string text2 = Path.Combine(text, "UnityOpenXR"); if (!Directory.Exists(text2)) { Directory.CreateDirectory(text2); } string path = Path.Combine(text2, "UnitySubsystemsManifest.json"); if (!File.Exists(path)) { File.WriteAllText(path, "{\n \"name\": \"OpenXR XR Plugin\",\n \"version\": \"1.8.2\",\n \"libraryName\": \"UnityOpenXR\",\n \"displays\": [\n {\n \"id\": \"OpenXR Display\"\n }\n ],\n \"inputs\": [\n {\n \"id\": \"OpenXR Input\"\n }\n ]\n}"); } } private static void SetupPluginAssets() { string path = Path.Combine(Path.Combine(Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName), "Content Warning_Data"), "Plugins"); string destFileName = Path.Combine(path, "UnityOpenXR.dll"); string destFileName2 = Path.Combine(path, "openxr_loader.dll"); string? directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); string sourceFileName = Path.Combine(directoryName, "RuntimeDeps/UnityOpenXR.dll"); string sourceFileName2 = Path.Combine(directoryName, "RuntimeDeps/openxr_loader.dll"); File.Copy(sourceFileName, destFileName, overwrite: true); File.Copy(sourceFileName2, destFileName2, overwrite: true); } private static void PatchAssemblyTypeEnumerator() { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Expected O, but got Unknown _getTypesHook = new Hook((MethodBase)typeof(Assembly).GetMethod("GetTypes", BindingFlags.Instance | BindingFlags.Public), typeof(Preload).GetMethod("GetTypesHooked")); } public static Type[] GetTypesHooked(Func<Assembly, Type[]> orig, Assembly self) { try { return orig(self); } catch (ReflectionTypeLoadException ex) { return ex.Types.Where((Type t) => t != null).ToArray(); } } public static void Patch(AssemblyDefinition assembly) { } } }
BepInEx/patchers/CWVR/FixPluginTypesSerialization.dll
Decompiled a month ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; using System.IO.Compression; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text; using System.Threading; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using Costura; using FixPluginTypesSerialization.Patchers; using FixPluginTypesSerialization.UnityPlayer; using FixPluginTypesSerialization.UnityPlayer.Structs.Default; using FixPluginTypesSerialization.Util; using FixPluginTypesSerialization.Util.Platform; using Microsoft.CodeAnalysis; using Microsoft.Deployment.Compression; using Microsoft.Deployment.Compression.Cab; using Mono.Cecil; using MonoMod.RuntimeDetour; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("FixPluginTypesSerialization")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+dd9cf6d1a701772bc1cd6df2b2920cf8e3fc49b7")] [assembly: AssemblyProduct("FixPluginTypesSerialization")] [assembly: AssemblyTitle("FixPluginTypesSerialization")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] internal class <Module> { static <Module>() { AssemblyLoader.Attach(); } } namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NativeIntegerAttribute : Attribute { public readonly bool[] TransformFlags; public NativeIntegerAttribute() { TransformFlags = new bool[1] { true }; } public NativeIntegerAttribute(bool[] P_0) { TransformFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace FixPluginTypesSerialization { internal static class Config { private static readonly ConfigFile _config = new ConfigFile(Path.Combine(Paths.ConfigPath, "FixPluginTypesSerialization.cfg"), true); internal static ConfigEntry<string> UnityVersionOverride = _config.Bind<string>("Overrides", "UnityVersionOverride", "", "Unity version is Major.Minor.Patch format i.e. 2017.2.1." + Environment.NewLine + "If specified, this version will be used instead of auto-detection" + Environment.NewLine + "from executable info. Specify only if the patcher doesn't work otherwise."); internal static ConfigEntry<FunctionOffsetLookup> FunctionOffsetLookupType = _config.Bind<FunctionOffsetLookup>("Overrides", "FunctionOffsetLookupType", FunctionOffsetLookup.PreferSupportedVersions, "PreferSupportedVersions - using values for supported versions, if a version is not supported trying to use pdb." + Environment.NewLine + "PreferPdb - using pdb, it will be downloaded from Unity symbols server,if there is no pdb or download failed trying to use values for supported versions." + Environment.NewLine + "Manual - using offsets from [Cache] section of the config, which you need to specify yourself as hex values."); internal static ConfigEntry<string> LastDownloadedGUID = _config.Bind<string>("Cache", "LastDownloadedGUID", "000000000000000000000000000000000", "The GUID of the last downloaded UnityPlayer pdb file." + Environment.NewLine + "If this GUID matches with the current one," + Environment.NewLine + "the offsets for the functions below will be used" + Environment.NewLine + "instead of generating them at runtime."); internal static ConfigEntry<string> MonoManagerAwakeFromLoadOffset = _config.Bind<string>("Cache", "MonoManagerAwakeFromLoadOffset", "00", "The in-memory offset of the MonoManager::AwakeFromLoad function."); internal static ConfigEntry<string> MonoManagerIsAssemblyCreatedOffset = _config.Bind<string>("Cache", "MonoManagerIsAssemblyCreatedOffset", "00", "The in-memory offset of the MonoManager::IsAssemblyCreated function."); internal static ConfigEntry<string> IsFileCreatedOffset = _config.Bind<string>("Cache", "IsFileCreatedOffset", "00", "The in-memory offset of the IsFileCreated function."); internal static ConfigEntry<string> ScriptingManagerDeconstructorOffset = _config.Bind<string>("Cache", "ScriptingManagerDeconstructorOffset", "00", "The in-memory offset of the ScriptingManagerDeconstructor function."); internal static ConfigEntry<string> ConvertSeparatorsToPlatformOffset = _config.Bind<string>("Cache", "ConvertSeparatorsToPlatformOffset", "00", "The in-memory offset of the ConvertSeparatorsToPlatform function."); internal static ConfigEntry<string> FreeAllocInternalOffset = _config.Bind<string>("Cache", "FreeAllocInternalOffset", "00", "The in-memory offset of the free_alloc_internal function."); internal static ConfigEntry<string> MallocInternalOffset = _config.Bind<string>("Cache", "MallocInternalOffset", "00", "The in-memory offset of the malloc_internal function."); internal static ConfigEntry<string> ScriptingAssembliesOffset = _config.Bind<string>("Cache", "ScriptingAssembliesOffset", "00", "The in-memory offset of the m_ScriptingAssemblies global field."); } internal static class FixPluginTypesSerializationPatcher { public static List<string> PluginPaths = (from f in Directory.GetFiles(Paths.PluginPath, "*.dll", SearchOption.AllDirectories) where IsNetAssembly(f) select f).ToList(); public static List<string> PluginNames = PluginPaths.Select((string p) => Path.GetFileName(p)).ToList(); public static IEnumerable<string> TargetDLLs { get; } = new string[0]; public static bool IsNetAssembly(string fileName) { try { AssemblyName.GetAssemblyName(fileName); } catch (BadImageFormatException) { return false; } return true; } public static void Patch(AssemblyDefinition ass) { } public static void Initialize() { Log.Init(); try { InitializeInternal(); } catch (Exception ex) { Log.Error($"Failed to initialize plugin types serialization fix: ({ex.GetType()}) {ex.Message}. Some plugins may not work properly."); Log.Error(ex); } } private static void InitializeInternal() { DetourUnityPlayer(); } private static void DetourUnityPlayer() { string text = Path.Combine(Paths.GameRootPath, "UnityPlayer.dll"); if (!File.Exists(text)) { text = Paths.ExecutablePath; } PatternDiscoverer patternDiscoverer = new PatternDiscoverer((Process.GetCurrentProcess().Modules.Cast<ProcessModule>().FirstOrDefault(IsUnityPlayer) ?? Process.GetCurrentProcess().MainModule).BaseAddress, text); CommonUnityFunctions.Init(patternDiscoverer); AwakeFromLoad awakeFromLoad = new AwakeFromLoad(); IsAssemblyCreated isAssemblyCreated = new IsAssemblyCreated(); IsFileCreated isFileCreated = new IsFileCreated(); ScriptingManagerDeconstructor scriptingManagerDeconstructor = new ScriptingManagerDeconstructor(); ConvertSeparatorsToPlatform convertSeparatorsToPlatform = new ConvertSeparatorsToPlatform(); awakeFromLoad.Patch(patternDiscoverer, Config.MonoManagerAwakeFromLoadOffset); isAssemblyCreated.Patch(patternDiscoverer, Config.MonoManagerIsAssemblyCreatedOffset); if (!IsAssemblyCreated.IsApplied) { isFileCreated.Patch(patternDiscoverer, Config.IsFileCreatedOffset); } convertSeparatorsToPlatform.Patch(patternDiscoverer, Config.ConvertSeparatorsToPlatformOffset); scriptingManagerDeconstructor.Patch(patternDiscoverer, Config.ScriptingManagerDeconstructorOffset); static bool IsUnityPlayer(ProcessModule p) { return p.ModuleName.ToLowerInvariant().Contains("unityplayer"); } } } internal static class Log { internal static ManualLogSource _logSource; internal static void Init() { _logSource = Logger.CreateLogSource("FixPluginTypesSerialization"); } internal static void Debug(object data) { _logSource.LogDebug(data); } internal static void Error(object data) { _logSource.LogError(data); } internal static void Fatal(object data) { _logSource.LogFatal(data); } internal static void Info(object data) { _logSource.LogInfo(data); } internal static void Message(object data) { _logSource.LogMessage(data); } internal static void Warning(object data) { _logSource.LogWarning(data); } } } namespace FixPluginTypesSerialization.Util { internal class BytePattern { private readonly byte?[] pattern; private int[] jumpTable; public int Length => pattern.Length; public bool IsE8 => ((int?)pattern[0]).GetValueOrDefault() == 232; public BytePattern(string bytes) { pattern = bytes.ParseHexBytes(); CreateJumpTable(); } public BytePattern(byte[] bytes) { pattern = bytes.Cast<byte?>().ToArray(); CreateJumpTable(); } public static implicit operator BytePattern(string pattern) { return new BytePattern(pattern); } public static implicit operator BytePattern(byte[] pattern) { return new BytePattern(pattern); } private void CreateJumpTable() { jumpTable = new int[pattern.Length]; int num = 0; jumpTable[0] = -1; int num2 = 1; while (num2 < pattern.Length) { if (pattern[num2] == pattern[num]) { jumpTable[num2] = jumpTable[num]; } else { jumpTable[num2] = num; while (num >= 0 && pattern[num2] != pattern[num]) { num = jumpTable[num]; } } num2++; num++; } } public unsafe long Match(IntPtr start, long maxSize) { byte* ptr = (byte*)start.ToPointer(); long num = 0L; long num2 = 0L; while (num < maxSize) { if (!pattern[num2].HasValue || ptr[num] == pattern[num2]) { num++; num2++; if (num2 == pattern.Length) { return num - num2; } } else { num2 = jumpTable[num2]; if (num2 < 0) { num++; num2++; } } } return 0L; } } internal class CommonUnityFunctions { public enum AllocateOptions { None, NullIfOutOfMemory } private delegate IntPtr MallocInternalFunc(ulong size, ulong allign, int label, AllocateOptions allocateOptions, IntPtr file, int line); private delegate void FreeAllocInternalV1Func(IntPtr ptr, int label); private delegate void FreeAllocInternalV2Func(IntPtr ptr, int label, IntPtr file, int line); private static MallocInternalFunc mallocInternal; private static FreeAllocInternalV1Func freeAllocInternalV1; private static FreeAllocInternalV2Func freeAllocInternalV2; public static IntPtr ScriptingAssemblies { get; private set; } public static void Init(PatternDiscoverer patternDiscoverer) { IntPtr intPtr = patternDiscoverer.Discover(Config.MallocInternalOffset, new BytePattern[1] { Encoding.ASCII.GetBytes("malloc_internal") }); if (intPtr != IntPtr.Zero) { mallocInternal = (MallocInternalFunc)Marshal.GetDelegateForFunctionPointer(intPtr, typeof(MallocInternalFunc)); } IntPtr intPtr2 = patternDiscoverer.Discover(Config.FreeAllocInternalOffset, new BytePattern[1] { Encoding.ASCII.GetBytes("free_alloc_internal") }); if (intPtr2 != IntPtr.Zero) { if (UseRightStructs.UnityVersion >= new Version(2019, 3)) { freeAllocInternalV2 = (FreeAllocInternalV2Func)Marshal.GetDelegateForFunctionPointer(intPtr2, typeof(FreeAllocInternalV2Func)); } else { freeAllocInternalV1 = (FreeAllocInternalV1Func)Marshal.GetDelegateForFunctionPointer(intPtr2, typeof(FreeAllocInternalV1Func)); } } IntPtr intPtr3 = patternDiscoverer.Discover(Config.ScriptingAssembliesOffset, new BytePattern[1] { Encoding.ASCII.GetBytes("m_ScriptingAssemblies@") }); if (intPtr3 != IntPtr.Zero) { ScriptingAssemblies = intPtr3; } } public unsafe static IntPtr MallocString(string str, int label, out ulong length) { IntPtr intPtr = Marshal.StringToHGlobalAnsi(str); length = (ulong)str.Length; byte* ptr = (byte*)(void*)intPtr + length; while (*ptr != 0) { ptr++; length++; } IntPtr intPtr2 = mallocInternal(length + 1, 16uL, label, AllocateOptions.NullIfOutOfMemory, IntPtr.Zero, 0); for (ulong num = 0uL; num <= length; num++) { ((byte*)(void*)intPtr2)[num] = ((byte*)(void*)intPtr)[num]; } Marshal.FreeHGlobal(intPtr); return intPtr2; } public static IntPtr MallocInternal(ulong size, ulong allign, int label) { return mallocInternal(size, allign, label, AllocateOptions.NullIfOutOfMemory, IntPtr.Zero, 0); } public static void FreeAllocInternal(IntPtr ptr, int label) { if (UseRightStructs.UnityVersion >= new Version(2019, 3)) { freeAllocInternalV2(ptr, label, IntPtr.Zero, 0); } else { freeAllocInternalV1(ptr, label); } } } internal static class DictionaryExtensions { public static void Deconstruct<T1, T2>(this KeyValuePair<T1, T2> tuple, out T1 key, out T2 value) { key = tuple.Key; value = tuple.Value; } public static void Deconstruct(this VersionedHandler versionedHandler, out Version version, out object handler) { version = versionedHandler.version; handler = versionedHandler.handler; } } public enum FunctionOffsetLookup { PreferSupportedVersions, PreferPdb, Manual } public static class FunctionOffsets { public static bool TryGet(Version unityVersion, out Dictionary<string, long> offsets) { offsets = ((IntPtr.Size == 4) ? Get32(unityVersion) : Get64(unityVersion)); return offsets != null; } private static Dictionary<string, long> Get32(Version unityVersion) { return null; } private static Dictionary<string, long> Get64(Version unityVersion) { switch (unityVersion.Major) { case 5: switch (unityVersion.Minor) { case 0: switch (unityVersion.Build) { case 0: return CreateOffsets(1519584L, 0L, 2772736L, 1572448L, 2795760L, 11808L, 9536L, 0L); case 1: return CreateOffsets(1526224L, 0L, 2776448L, 1578976L, 2799424L, 11808L, 9536L, 0L); case 2: return CreateOffsets(1526512L, 0L, 2780208L, 1578704L, 2803280L, 11984L, 9712L, 0L); case 3: return CreateOffsets(1532016L, 0L, 2788720L, 1584288L, 2811408L, 11984L, 9712L, 0L); case 4: return CreateOffsets(1532352L, 0L, 2787216L, 1585264L, 2810400L, 11824L, 9552L, 0L); } break; case 1: switch (unityVersion.Build) { case 0: return CreateOffsets(1539536L, 0L, 2895136L, 1591456L, 2914064L, 11792L, 9520L, 0L); case 1: return CreateOffsets(1532352L, 0L, 2889568L, 1584848L, 2909008L, 11776L, 9504L, 0L); case 2: return CreateOffsets(1536608L, 0L, 2895968L, 1588528L, 2914816L, 11968L, 9696L, 0L); case 3: return CreateOffsets(1534064L, 0L, 2893280L, 1586352L, 2912464L, 11792L, 9520L, 0L); case 4: return CreateOffsets(1534560L, 0L, 2897920L, 1586960L, 2917712L, 11776L, 9504L, 0L); case 5: return CreateOffsets(1536544L, 0L, 2895200L, 1589008L, 2914736L, 11776L, 9504L, 0L); } break; case 2: switch (unityVersion.Build) { case 0: return CreateOffsets(1601024L, 0L, 2917232L, 1653200L, 2938816L, 11936L, 9664L, 0L); case 1: return CreateOffsets(1604832L, 0L, 2921792L, 1657232L, 2942912L, 11776L, 9504L, 0L); case 2: return CreateOffsets(1608448L, 0L, 2921632L, 1660080L, 2943344L, 11952L, 9680L, 0L); case 3: return CreateOffsets(1609760L, 0L, 2918432L, 1661824L, 2940192L, 11824L, 9552L, 0L); case 4: return CreateOffsets(1610208L, 0L, 2923312L, 1661584L, 2945072L, 11760L, 9488L, 0L); case 5: return CreateOffsets(1603040L, 0L, 2920608L, 1655584L, 2942368L, 11760L, 9488L, 0L); } break; case 3: switch (unityVersion.Build) { case 0: return CreateOffsets(2058016L, 0L, 3148928L, 2107216L, 3172256L, 1179552L, 1176448L, 0L); case 1: return CreateOffsets(2054016L, 0L, 3149200L, 2102688L, 3173328L, 1171392L, 1168288L, 0L); case 2: return CreateOffsets(2054240L, 0L, 3147872L, 2103040L, 3172048L, 1176608L, 1173504L, 0L); case 3: return CreateOffsets(2055600L, 0L, 3152432L, 2104288L, 3175856L, 1174752L, 1171648L, 0L); case 4: return CreateOffsets(1996128L, 0L, 3090368L, 2045792L, 3114800L, 1133136L, 1129424L, 0L); case 5: return CreateOffsets(2003360L, 0L, 3112208L, 2052592L, 3136096L, 1137840L, 1133504L, 0L); case 6: return CreateOffsets(2018064L, 0L, 3116768L, 2067408L, 3140608L, 1147680L, 1143344L, 0L); case 7: return CreateOffsets(2025424L, 0L, 3130592L, 2074400L, 3154544L, 1152864L, 1148528L, 0L); case 8: return CreateOffsets(2026160L, 0L, 3131296L, 2075056L, 3155232L, 1158080L, 1153744L, 0L); } break; case 4: switch (unityVersion.Build) { case 0: return CreateOffsets(2151120L, 0L, 3326704L, 2192800L, 3343888L, 1307984L, 1304112L, 0L); case 1: return CreateOffsets(2164448L, 0L, 3345952L, 2206416L, 3362960L, 1322688L, 1318816L, 0L); case 2: return CreateOffsets(2167920L, 0L, 3344976L, 2210608L, 3362080L, 1323072L, 1319200L, 0L); case 3: return CreateOffsets(2157424L, 0L, 3344160L, 2199552L, 3361968L, 1314432L, 1310560L, 0L); case 4: return CreateOffsets(2167120L, 0L, 3346880L, 2209696L, 3363392L, 1325200L, 1321328L, 0L); case 5: return CreateOffsets(2164688L, 0L, 3352400L, 2206656L, 3369104L, 1320624L, 1316752L, 0L); case 6: return CreateOffsets(2167600L, 0L, 3355312L, 2209344L, 3372816L, 1324048L, 1320176L, 0L); } break; case 5: switch (unityVersion.Build) { case 0: return CreateOffsets(3187616L, 0L, 2666208L, 3236944L, 2678768L, 80864L, 77712L, 0L); case 1: return CreateOffsets(3193200L, 0L, 2670816L, 3241920L, 2683376L, 81456L, 78288L, 0L); case 2: return CreateOffsets(3205712L, 0L, 2683728L, 3254592L, 2696288L, 81280L, 78112L, 0L); case 3: return CreateOffsets(3203472L, 0L, 2684544L, 3252048L, 2695808L, 81088L, 77920L, 0L); case 4: return CreateOffsets(3204368L, 0L, 2682752L, 3254256L, 2695376L, 81344L, 78176L, 0L); case 5: return CreateOffsets(3205552L, 0L, 2679536L, 3255328L, 2691840L, 80896L, 77728L, 0L); case 6: return CreateOffsets(3212144L, 0L, 2689424L, 3261824L, 2701120L, 81168L, 78000L, 0L); } break; case 6: switch (unityVersion.Build) { case 0: return CreateOffsets(8607808L, 0L, 7398368L, 6477584L, 7397984L, 8475808L, 8475984L, 0L); case 1: return CreateOffsets(8613168L, 0L, 7402064L, 6478288L, 7401680L, 8481280L, 8481456L, 0L); case 2: return CreateOffsets(8634192L, 0L, 7413264L, 6491008L, 7412880L, 8502496L, 8502672L, 0L); case 3: return CreateOffsets(8641584L, 0L, 7421536L, 6501520L, 7421152L, 8508976L, 8509152L, 0L); case 4: return CreateOffsets(8645968L, 0L, 7425024L, 6502240L, 7424640L, 8515008L, 8515184L, 0L); case 5: return CreateOffsets(8650080L, 0L, 7426080L, 6502768L, 7425696L, 8517088L, 8517264L, 0L); case 6: return CreateOffsets(8644208L, 0L, 7420704L, 6497312L, 7420320L, 8511584L, 8511760L, 0L); case 7: return CreateOffsets(8644208L, 0L, 7420704L, 6497312L, 7420320L, 8511584L, 8511760L, 0L); } break; } break; case 2017: switch (unityVersion.Minor) { case 1: switch (unityVersion.Build) { case 0: return CreateOffsets(5689904L, 0L, 8344128L, 7269760L, 8357424L, 9310656L, 9306960L, 0L); case 1: return CreateOffsets(5693664L, 0L, 8350688L, 7274656L, 8364608L, 9318256L, 9314560L, 0L); case 2: return CreateOffsets(5698352L, 0L, 8350896L, 7277376L, 8364816L, 9322400L, 9318704L, 0L); case 3: return CreateOffsets(5703968L, 0L, 8363488L, 7285696L, 8377360L, 9338048L, 9334352L, 0L); case 4: return CreateOffsets(5713616L, 0L, 8372080L, 7296256L, 8385872L, 9345600L, 9341904L, 0L); case 5: return CreateOffsets(5710224L, 0L, 8372640L, 7292560L, 8386560L, 9345104L, 9341408L, 0L); } break; case 2: switch (unityVersion.Build) { case 0: return CreateOffsets(4525712L, 0L, 3978000L, 4598144L, 3993984L, 1163072L, 1159376L, 0L); case 1: return CreateOffsets(4527072L, 0L, 3981312L, 4599904L, 3997552L, 1159344L, 1155648L, 0L); case 2: return CreateOffsets(4527520L, 0L, 3979856L, 4600704L, 3995840L, 1161024L, 1157328L, 0L); case 3: return CreateOffsets(4535296L, 0L, 3987264L, 4608480L, 4003456L, 1160272L, 1156576L, 0L); case 4: return CreateOffsets(4531840L, 0L, 3980800L, 4605552L, 3997264L, 1161952L, 1158256L, 0L); case 5: return CreateOffsets(4531568L, 0L, 3989296L, 4604384L, 4005408L, 1159136L, 1155440L, 0L); } break; case 3: switch (unityVersion.Build) { case 0: return CreateOffsets(6098128L, 6114480L, 0L, 6201264L, 5566256L, 2970112L, 2969968L, 0L); case 1: return CreateOffsets(6092560L, 6108592L, 0L, 6195360L, 5561584L, 2968608L, 2968464L, 0L); } break; case 4: switch (unityVersion.Build) { case 0: return CreateOffsets(6099152L, 6115168L, 0L, 6200912L, 5570992L, 2962832L, 2962688L, 0L); case 1: return CreateOffsets(6090224L, 6106352L, 0L, 6192160L, 5563088L, 2966992L, 2966848L, 0L); case 2: return CreateOffsets(6089152L, 6105184L, 0L, 6191344L, 5558704L, 2966256L, 2966112L, 0L); case 3: return CreateOffsets(6098288L, 6114416L, 0L, 6200832L, 5569856L, 2976272L, 2976128L, 0L); case 4: return CreateOffsets(6093440L, 6109568L, 0L, 6195728L, 5562016L, 2968944L, 2968800L, 0L); case 5: return CreateOffsets(6105040L, 6121072L, 0L, 6207424L, 5575792L, 2969376L, 2969232L, 0L); case 6: return CreateOffsets(6088256L, 6104304L, 0L, 6190176L, 5555632L, 2970272L, 2970128L, 0L); case 7: return CreateOffsets(6102032L, 6118064L, 0L, 6203936L, 5573216L, 2967184L, 2967040L, 0L); case 8: return CreateOffsets(6105072L, 6121200L, 0L, 6207488L, 5576496L, 2979936L, 2979792L, 0L); case 9: return CreateOffsets(6099504L, 6115632L, 0L, 6202080L, 5567344L, 2969632L, 2969488L, 0L); case 10: return CreateOffsets(6109760L, 6125808L, 0L, 6212096L, 5574160L, 2970560L, 2970416L, 0L); case 11: return CreateOffsets(6109840L, 6125872L, 0L, 6211920L, 5575440L, 2968192L, 2968048L, 0L); case 12: return CreateOffsets(6119152L, 6135168L, 0L, 6221536L, 5589472L, 2973952L, 2973808L, 0L); case 13: return CreateOffsets(6114544L, 6130672L, 0L, 6217040L, 5579888L, 2980080L, 2979936L, 0L); case 14: return CreateOffsets(6117312L, 6133440L, 0L, 6220256L, 5580752L, 2985280L, 2985136L, 0L); case 15: return CreateOffsets(6117904L, 6133936L, 0L, 6221280L, 5581568L, 2981136L, 2980992L, 0L); case 16: return CreateOffsets(6118368L, 6134400L, 0L, 6221312L, 5587808L, 2969936L, 2969792L, 0L); case 17: return CreateOffsets(6121104L, 6137136L, 0L, 6224032L, 5590048L, 2973232L, 2973088L, 0L); case 18: return CreateOffsets(6123024L, 6139152L, 0L, 6226080L, 5591712L, 2970976L, 2970832L, 0L); case 19: return CreateOffsets(6121200L, 6137216L, 0L, 6223728L, 5585680L, 2974192L, 2974048L, 0L); case 20: return CreateOffsets(6116240L, 6132272L, 0L, 6219808L, 5580752L, 2969056L, 2968912L, 0L); case 21: return CreateOffsets(6122640L, 6138688L, 0L, 6225712L, 5589936L, 2980784L, 2980640L, 0L); case 22: return CreateOffsets(6122640L, 6138688L, 0L, 6225712L, 5589936L, 2980784L, 2980640L, 0L); case 23: return CreateOffsets(6123424L, 6139456L, 0L, 6226704L, 5591328L, 2969376L, 2969232L, 0L); case 24: return CreateOffsets(6116784L, 6132800L, 0L, 6219984L, 5585888L, 2982864L, 2982720L, 0L); case 25: return CreateOffsets(6116208L, 6132432L, 0L, 6219616L, 5582304L, 2982720L, 2982576L, 0L); case 26: return CreateOffsets(6120352L, 6136576L, 0L, 6223792L, 5586720L, 2970096L, 2969952L, 0L); case 27: return CreateOffsets(6124624L, 6140848L, 0L, 6228048L, 5592176L, 2980256L, 2980112L, 0L); case 28: return CreateOffsets(6107520L, 6123856L, 0L, 6211152L, 5571904L, 2974000L, 2973856L, 0L); case 29: return CreateOffsets(6107520L, 6123856L, 0L, 6211152L, 5571904L, 2974000L, 2973856L, 0L); case 30: return CreateOffsets(6125328L, 6141680L, 0L, 6228896L, 5586656L, 2982912L, 2982768L, 0L); case 31: return CreateOffsets(6120704L, 6136944L, 0L, 6223984L, 5587728L, 2976064L, 2975920L, 0L); case 32: return CreateOffsets(6108816L, 6125056L, 0L, 6212208L, 5573056L, 2968016L, 2967872L, 0L); case 33: return CreateOffsets(6122272L, 6138624L, 0L, 6225696L, 5585472L, 2984416L, 2984272L, 0L); case 34: return CreateOffsets(6122512L, 6138848L, 0L, 6226176L, 5586752L, 2983696L, 2983552L, 0L); case 35: return CreateOffsets(6122752L, 6138976L, 0L, 6225952L, 5590960L, 2972096L, 2971952L, 0L); case 36: return CreateOffsets(6126272L, 6142496L, 0L, 6229648L, 5592816L, 2986848L, 2986704L, 0L); case 37: return CreateOffsets(6121616L, 6137856L, 0L, 6225232L, 5585360L, 2971200L, 2971056L, 0L); case 38: return CreateOffsets(6121424L, 6137664L, 0L, 6225056L, 5587040L, 2978944L, 2978800L, 0L); case 39: return CreateOffsets(6122736L, 6138976L, 0L, 6226288L, 5591712L, 2985440L, 2985296L, 0L); case 40: return CreateOffsets(6117872L, 6134096L, 0L, 6221616L, 5582608L, 2982928L, 2982784L, 0L); } break; } break; case 2018: switch (unityVersion.Minor) { case 1: switch (unityVersion.Build) { case 0: return CreateOffsets(5841104L, 5860640L, 0L, 5923328L, 5335888L, 2849008L, 2848960L, 0L); case 1: return CreateOffsets(5834512L, 5854048L, 0L, 5916592L, 5330832L, 2848048L, 2837376L, 0L); case 2: return CreateOffsets(5839264L, 5858800L, 0L, 5921712L, 5335696L, 2850784L, 2840256L, 0L); case 3: return CreateOffsets(5835600L, 5855136L, 0L, 5918256L, 5331712L, 2847920L, 2847872L, 0L); case 4: return CreateOffsets(5841024L, 5860560L, 0L, 5923008L, 5335648L, 2846960L, 2846912L, 0L); case 5: return CreateOffsets(5839920L, 5859456L, 0L, 5922656L, 5333936L, 2848240L, 2837568L, 0L); case 6: return CreateOffsets(5839104L, 5858640L, 0L, 5921408L, 5334368L, 2848368L, 2837744L, 0L); case 7: return CreateOffsets(5839888L, 5859424L, 0L, 5922480L, 5336160L, 2853216L, 2842784L, 0L); case 8: return CreateOffsets(5840960L, 5860512L, 0L, 5923280L, 5334480L, 2845504L, 2845456L, 0L); case 9: return CreateOffsets(5838832L, 5858368L, 0L, 5921024L, 5336560L, 2851392L, 2840816L, 0L); } break; case 2: switch (unityVersion.Build) { case 0: return CreateOffsets(6134752L, 6152240L, 0L, 6214400L, 5567824L, 3004448L, 3004400L, 0L); case 1: return CreateOffsets(6136480L, 6154000L, 0L, 6216368L, 5573280L, 3004016L, 3003968L, 0L); case 2: return CreateOffsets(6136784L, 6154272L, 0L, 6216768L, 5572768L, 3003648L, 3003600L, 0L); case 3: return CreateOffsets(6134160L, 6151664L, 0L, 6214032L, 5569712L, 3005856L, 2995456L, 0L); case 4: return CreateOffsets(6137600L, 6155104L, 0L, 6217568L, 5573328L, 3000704L, 2990400L, 0L); case 5: return CreateOffsets(6135904L, 6153408L, 0L, 6217008L, 5572336L, 3002448L, 3002400L, 0L); case 6: return CreateOffsets(6140624L, 6158128L, 0L, 6220336L, 5576304L, 3005888L, 3005840L, 0L); case 7: return CreateOffsets(6141280L, 6158768L, 0L, 6221712L, 5574560L, 3007168L, 3007120L, 0L); case 8: return CreateOffsets(6141072L, 6158560L, 0L, 6220944L, 5574192L, 3006624L, 3006576L, 0L); case 9: return CreateOffsets(6142976L, 6160496L, 0L, 6223184L, 5577760L, 3006608L, 2996400L, 0L); case 10: return CreateOffsets(6144720L, 6162240L, 0L, 6224928L, 5580864L, 3006832L, 2996528L, 0L); case 11: return CreateOffsets(6140448L, 6157936L, 0L, 6220560L, 5574288L, 3005024L, 3004976L, 0L); case 12: return CreateOffsets(6144960L, 6162448L, 0L, 6224608L, 5578288L, 3007536L, 2997088L, 0L); case 13: return CreateOffsets(6144784L, 6162288L, 0L, 6224528L, 5579264L, 3007344L, 2997040L, 0L); case 14: return CreateOffsets(6148432L, 6165920L, 0L, 6228176L, 5582640L, 3008544L, 2998192L, 0L); case 15: return CreateOffsets(6146896L, 6164416L, 0L, 6226704L, 5582336L, 3008848L, 3008800L, 0L); case 16: return CreateOffsets(6147104L, 6164624L, 0L, 6226800L, 5585456L, 3009728L, 3009680L, 0L); case 17: return CreateOffsets(6147104L, 6164624L, 0L, 6226800L, 5585456L, 3009728L, 3009680L, 0L); case 18: return CreateOffsets(6141616L, 6159120L, 0L, 6221296L, 5578512L, 3007008L, 3006960L, 0L); case 19: return CreateOffsets(6145424L, 6162928L, 0L, 6225184L, 5580576L, 3008768L, 3008720L, 0L); case 20: return CreateOffsets(6147296L, 6164800L, 0L, 6227184L, 5583056L, 3007440L, 2997184L, 0L); case 21: return CreateOffsets(6147296L, 6164800L, 0L, 6227184L, 5583056L, 3007440L, 2997184L, 0L); } break; case 3: switch (unityVersion.Build) { case 0: return CreateOffsets(9297584L, 9308880L, 0L, 9330880L, 8839872L, 6427856L, 6427808L, 0L); case 1: return CreateOffsets(9298944L, 9310240L, 0L, 9332240L, 8841232L, 6428736L, 6428688L, 0L); case 2: return CreateOffsets(9298880L, 9310176L, 0L, 9332176L, 8841168L, 6428720L, 6428672L, 0L); case 3: return CreateOffsets(9300864L, 9312160L, 0L, 9334160L, 8843152L, 6430848L, 6430800L, 0L); case 4: return CreateOffsets(9301808L, 9313104L, 0L, 9335104L, 8844096L, 6431776L, 6431728L, 0L); case 5: return CreateOffsets(9303232L, 9314528L, 0L, 9336528L, 8845360L, 6432080L, 6432032L, 0L); case 6: return CreateOffsets(9310592L, 9321872L, 0L, 9343872L, 8852688L, 6439856L, 6439808L, 0L); case 7: return CreateOffsets(9313440L, 9324720L, 0L, 9346720L, 8855536L, 6441168L, 6441120L, 0L); case 8: return CreateOffsets(9316512L, 9327792L, 0L, 9349792L, 8842976L, 6443808L, 6443760L, 0L); case 9: return CreateOffsets(9316768L, 9328048L, 0L, 9350048L, 8843232L, 6444048L, 6444000L, 0L); case 10: return CreateOffsets(9318192L, 9329472L, 0L, 9351472L, 8844400L, 6444848L, 6444800L, 0L); case 11: return CreateOffsets(9318256L, 9329536L, 0L, 9351536L, 8844464L, 6444784L, 6444736L, 0L); case 12: return CreateOffsets(9318160L, 9329440L, 0L, 9351440L, 8844336L, 6446272L, 6446224L, 0L); case 13: return CreateOffsets(9319200L, 9330480L, 0L, 9352480L, 8845168L, 6447104L, 6447056L, 0L); case 14: return CreateOffsets(9317152L, 9328432L, 0L, 9350432L, 8843168L, 6447504L, 6447456L, 0L); } break; case 4: switch (unityVersion.Build) { case 1: return CreateOffsets(9318256L, 9329536L, 0L, 9351536L, 8844272L, 6448576L, 6448528L, 0L); case 2: return CreateOffsets(9320864L, 9332144L, 0L, 9354144L, 8846880L, 6450800L, 6450752L, 0L); case 3: return CreateOffsets(9320768L, 9332048L, 0L, 9354048L, 8846784L, 6450560L, 6450512L, 0L); case 4: return CreateOffsets(9320640L, 9331920L, 0L, 9353920L, 8846640L, 6450688L, 6450640L, 0L); case 5: return CreateOffsets(9321040L, 9332320L, 0L, 9354320L, 8847008L, 6451552L, 6451504L, 0L); case 6: return CreateOffsets(9321952L, 9333232L, 0L, 9355232L, 8847920L, 6451568L, 6451520L, 0L); case 7: return CreateOffsets(9321952L, 9333232L, 0L, 9355232L, 8847920L, 6451568L, 6451520L, 0L); case 8: return CreateOffsets(9320432L, 9331712L, 0L, 9353712L, 8846352L, 6449696L, 6449648L, 0L); case 9: return CreateOffsets(9326096L, 9337376L, 0L, 9359376L, 8851888L, 6453808L, 6453760L, 0L); case 10: return CreateOffsets(9336368L, 9347648L, 0L, 9369648L, 8862128L, 6460048L, 6460000L, 0L); case 11: return CreateOffsets(9336816L, 9348096L, 0L, 9370096L, 8862576L, 6460544L, 6460496L, 0L); case 12: return CreateOffsets(9337168L, 9348448L, 0L, 9370448L, 8862928L, 6460896L, 6460848L, 0L); case 13: return CreateOffsets(9339296L, 9350576L, 0L, 9372576L, 8864832L, 6460512L, 6460464L, 0L); case 14: return CreateOffsets(9343008L, 9354288L, 0L, 9376048L, 8868544L, 6462976L, 6462928L, 0L); case 15: return CreateOffsets(9346320L, 9357600L, 0L, 9379360L, 8871840L, 6465216L, 6465168L, 0L); case 16: return CreateOffsets(9348000L, 9359280L, 0L, 9381040L, 8873504L, 6466592L, 6466544L, 0L); case 17: return CreateOffsets(9349424L, 9360704L, 0L, 9382464L, 8874928L, 6467872L, 6467824L, 0L); case 18: return CreateOffsets(9351392L, 9362672L, 0L, 9384432L, 8875168L, 6468128L, 6468080L, 0L); case 19: return CreateOffsets(9353920L, 9365200L, 0L, 9386960L, 8877696L, 6468832L, 6468784L, 0L); case 20: return CreateOffsets(9354640L, 9365920L, 0L, 9387680L, 8878352L, 6469520L, 6469472L, 0L); case 21: return CreateOffsets(9354608L, 9365888L, 0L, 9387648L, 8878288L, 6469488L, 6469440L, 0L); case 22: return CreateOffsets(9355392L, 9366672L, 0L, 9388432L, 8879072L, 6469920L, 6469872L, 0L); case 23: return CreateOffsets(9349008L, 9360288L, 0L, 9382048L, 8872688L, 6469296L, 6469248L, 0L); case 24: return CreateOffsets(9354976L, 9366256L, 0L, 9388016L, 8878656L, 6474432L, 6474384L, 0L); case 25: return CreateOffsets(9358448L, 9369728L, 0L, 9391488L, 8882128L, 6477616L, 6477568L, 0L); case 26: return CreateOffsets(9360176L, 9371456L, 0L, 9393216L, 8883840L, 6478464L, 6478416L, 0L); case 27: return CreateOffsets(9362704L, 9373984L, 0L, 9395744L, 8885872L, 6478688L, 6478640L, 0L); case 28: return CreateOffsets(9361728L, 9373008L, 0L, 9394768L, 8884896L, 6477680L, 6477632L, 0L); case 29: return CreateOffsets(9363568L, 9374848L, 0L, 9396608L, 8886736L, 6478832L, 6478784L, 0L); case 30: return CreateOffsets(9365728L, 9377008L, 0L, 9398816L, 8888896L, 6479888L, 6479840L, 0L); case 31: return CreateOffsets(9365968L, 9377248L, 0L, 9399056L, 8889136L, 6479904L, 6479856L, 0L); case 32: return CreateOffsets(9366304L, 9377584L, 0L, 9399392L, 8889472L, 6480000L, 6479952L, 0L); case 33: return CreateOffsets(9366320L, 9377600L, 0L, 9399408L, 8889488L, 6480000L, 6479952L, 0L); case 34: return CreateOffsets(9369360L, 9380640L, 0L, 9402448L, 8892528L, 6480000L, 6479952L, 0L); case 35: return CreateOffsets(9369712L, 9380992L, 0L, 9402800L, 8892880L, 6480352L, 6480304L, 0L); case 36: return CreateOffsets(9370320L, 9381600L, 0L, 9403408L, 8893280L, 6480688L, 6480640L, 0L); } break; } break; case 2019: switch (unityVersion.Minor) { case 1: switch (unityVersion.Build) { case 0: return CreateOffsets(9142272L, 9166192L, 0L, 9200784L, 8543344L, 6065712L, 6065664L, 0L); case 1: return CreateOffsets(9143856L, 9167776L, 0L, 9202368L, 8544928L, 6067216L, 6067168L, 0L); case 2: return CreateOffsets(9145552L, 9169472L, 0L, 9204064L, 8546624L, 6067984L, 6067936L, 0L); case 3: return CreateOffsets(9146416L, 9170336L, 0L, 9204928L, 8529248L, 6068992L, 6068944L, 0L); case 4: return CreateOffsets(9138256L, 9162176L, 0L, 9196768L, 8521088L, 6060064L, 6060016L, 0L); case 5: return CreateOffsets(9138256L, 9162176L, 0L, 9196768L, 8521088L, 6060064L, 6060016L, 0L); case 6: return CreateOffsets(9137808L, 9161728L, 0L, 9196320L, 8520512L, 6058848L, 6058800L, 0L); case 7: return CreateOffsets(9138304L, 9162224L, 0L, 9196816L, 8521008L, 6059136L, 6059088L, 0L); case 8: return CreateOffsets(9138224L, 9162144L, 0L, 9196736L, 8520928L, 6058912L, 6058864L, 0L); case 9: return CreateOffsets(9139280L, 9163200L, 0L, 9197792L, 8521984L, 6059792L, 6059744L, 0L); case 10: return CreateOffsets(9138688L, 9162624L, 0L, 9197216L, 8521392L, 6059968L, 6059920L, 0L); case 11: return CreateOffsets(9138720L, 9162656L, 0L, 9197248L, 8521424L, 6059968L, 6059920L, 0L); case 12: return CreateOffsets(9138720L, 9162656L, 0L, 9197248L, 8521424L, 6059968L, 6059920L, 0L); case 13: return CreateOffsets(9139200L, 9163136L, 0L, 9197728L, 8521904L, 6059776L, 6059728L, 0L); case 14: return CreateOffsets(9140224L, 9164160L, 0L, 9198880L, 8522928L, 6060784L, 6060736L, 0L); case 15: return CreateOffsets(9139264L, 9162800L, 0L, 9197344L, 8522992L, 6060784L, 6060736L, 0L); } break; case 2: switch (unityVersion.Build) { case 0: return CreateOffsets(8830144L, 8854096L, 0L, 8888896L, 8195296L, 5738272L, 5738224L, 0L); case 1: return CreateOffsets(8830880L, 8854832L, 0L, 8889632L, 8196048L, 5738352L, 5738304L, 0L); case 2: return CreateOffsets(8832304L, 8856256L, 0L, 8891056L, 8197472L, 5738448L, 5738400L, 0L); case 3: return CreateOffsets(8833472L, 8857424L, 0L, 8892224L, 8198640L, 5739584L, 5739536L, 0L); case 4: return CreateOffsets(8836032L, 8859984L, 0L, 8894784L, 8201200L, 5741568L, 5741520L, 0L); case 5: return CreateOffsets(8836160L, 8860112L, 0L, 8894912L, 8201264L, 5740976L, 5740928L, 0L); case 6: return CreateOffsets(8835888L, 8859840L, 0L, 8894640L, 8200992L, 5740496L, 5740448L, 0L); case 7: return CreateOffsets(8837152L, 8861104L, 0L, 8895664L, 8202256L, 5740416L, 5740368L, 0L); case 8: return CreateOffsets(8837488L, 8861456L, 0L, 8896016L, 8202512L, 5740656L, 5740608L, 0L); case 9: return CreateOffsets(8838368L, 8862336L, 0L, 8896896L, 8203392L, 5741088L, 5741040L, 0L); case 10: return CreateOffsets(8839008L, 8862976L, 0L, 8897536L, 8203888L, 5741600L, 5741552L, 0L); case 11: return CreateOffsets(8839552L, 8863520L, 0L, 8898080L, 8204432L, 5742048L, 5742000L, 0L); case 12: return CreateOffsets(8839696L, 8863664L, 0L, 8898224L, 8204576L, 5742080L, 5742032L, 0L); case 13: return CreateOffsets(8840752L, 8864720L, 0L, 8899280L, 8205632L, 5742160L, 5742112L, 0L); case 14: return CreateOffsets(8842256L, 8866224L, 0L, 8900784L, 8207120L, 5742704L, 5742656L, 0L); case 15: return CreateOffsets(8842736L, 8866704L, 0L, 8901264L, 8207600L, 5743184L, 5743136L, 0L); case 16: return CreateOffsets(8843440L, 8867408L, 0L, 8901968L, 8208272L, 5743728L, 5743680L, 0L); case 17: return CreateOffsets(8845744L, 8869712L, 0L, 8904272L, 8210576L, 5745920L, 5745872L, 0L); case 18: return CreateOffsets(8845136L, 8869104L, 0L, 8903664L, 8209968L, 5744992L, 5744944L, 0L); case 19: return CreateOffsets(8840176L, 8864144L, 0L, 8898704L, 8205008L, 5740032L, 5739984L, 0L); case 20: return CreateOffsets(8840400L, 8864368L, 0L, 8898928L, 8205200L, 5740224L, 5740176L, 0L); case 21: return CreateOffsets(8840400L, 8864368L, 0L, 8898928L, 8205200L, 5740224L, 5740176L, 0L); case 23: return CreateOffsets(8839440L, 8863008L, 0L, 8897392L, 8205264L, 5740224L, 5740176L, 0L); } break; case 3: switch (unityVersion.Build) { case 0: return CreateOffsets(9002592L, 9014576L, 0L, 9035568L, 8329232L, 5734800L, 5734704L, 0L); case 1: return CreateOffsets(9004928L, 9016912L, 0L, 9037904L, 8331648L, 5735296L, 5735200L, 0L); case 2: return CreateOffsets(9006448L, 9018432L, 0L, 9039424L, 8333168L, 5738096L, 5738000L, 0L); case 3: return CreateOffsets(9006592L, 9018576L, 0L, 9039568L, 8333312L, 5738112L, 5738016L, 0L); case 4: return CreateOffsets(9012320L, 9024304L, 0L, 9045296L, 8339040L, 5740016L, 5739920L, 0L); case 5: return CreateOffsets(9014880L, 9026864L, 0L, 9047856L, 8341600L, 5741152L, 5741056L, 0L); case 6: return CreateOffsets(9021328L, 9033312L, 0L, 9054368L, 8347568L, 5745680L, 5745584L, 0L); case 7: return CreateOffsets(9024528L, 9036512L, 0L, 9057568L, 8350736L, 5747968L, 5747872L, 0L); case 8: return CreateOffsets(9033456L, 9045440L, 0L, 9066496L, 8359664L, 5748608L, 5748512L, 0L); case 9: return CreateOffsets(9034000L, 9045984L, 0L, 9067040L, 8360208L, 5747904L, 5747808L, 0L); case 10: return CreateOffsets(9034928L, 9046912L, 0L, 9067968L, 8360784L, 5748128L, 5748032L, 0L); case 11: return CreateOffsets(9041712L, 9053696L, 0L, 9074752L, 8367376L, 5753664L, 5753568L, 0L); case 12: return CreateOffsets(9042576L, 9054560L, 0L, 9075616L, 8367808L, 5754080L, 5753984L, 0L); case 13: return CreateOffsets(9043520L, 9055504L, 0L, 9076560L, 8368720L, 5754912L, 5754816L, 0L); case 14: return CreateOffsets(9045920L, 9057904L, 0L, 9078960L, 8371104L, 5757152L, 5757056L, 0L); case 15: return CreateOffsets(9057024L, 9069008L, 0L, 9090064L, 8382144L, 5765296L, 5765200L, 0L); case 17: return CreateOffsets(9057792L, 9069456L, 0L, 9090400L, 8383936L, 5765664L, 5765568L, 0L); } break; case 4: switch (unityVersion.Build) { case 0: return CreateOffsets(9058752L, 9070736L, 0L, 9091792L, 8383872L, 5765664L, 5765568L, 0L); case 1: return CreateOffsets(9058816L, 9070768L, 0L, 9091856L, 8383936L, 5765664L, 5765568L, 0L); case 2: return CreateOffsets(9060704L, 9072656L, 0L, 9093744L, 8385824L, 5766816L, 5766720L, 0L); case 3: return CreateOffsets(9067440L, 9079392L, 0L, 9100480L, 8392560L, 5771232L, 5771136L, 0L); case 4: return CreateOffsets(9067552L, 9079504L, 0L, 9100592L, 8392672L, 5771232L, 5771136L, 0L); case 5: return CreateOffsets(9068288L, 9080240L, 0L, 9101328L, 8393392L, 5771584L, 5771488L, 0L); case 6: return CreateOffsets(9069664L, 9081616L, 0L, 9102704L, 8394752L, 5772672L, 5772576L, 0L); case 7: return CreateOffsets(9073056L, 9085008L, 0L, 9106096L, 8398112L, 5775648L, 5775552L, 0L); case 8: return CreateOffsets(9073008L, 9084960L, 0L, 9106048L, 8398064L, 5775184L, 5775088L, 0L); case 9: return CreateOffsets(9081712L, 9093664L, 0L, 9114752L, 8406224L, 5776832L, 5776736L, 0L); case 10: return CreateOffsets(9087568L, 9099520L, 0L, 9120608L, 8412080L, 5782096L, 5782000L, 0L); case 11: return CreateOffsets(9089136L, 9101088L, 0L, 9122176L, 8413760L, 5782416L, 5782320L, 0L); case 12: return CreateOffsets(9091056L, 9103008L, 0L, 9124096L, 8415344L, 5785168L, 5785072L, 0L); case 13: return CreateOffsets(9091792L, 9103744L, 0L, 9124832L, 8416080L, 5785440L, 5785344L, 0L); case 14: return CreateOffsets(9092352L, 9104304L, 0L, 9125392L, 8416640L, 5785776L, 5785680L, 0L); case 15: return CreateOffsets(9092848L, 9104800L, 0L, 9125888L, 8416976L, 5786064L, 5785968L, 0L); case 16: return CreateOffsets(9098160L, 9110112L, 0L, 9131232L, 8422144L, 5789232L, 5789136L, 0L); case 17: return CreateOffsets(9101728L, 9113680L, 0L, 9134800L, 8425008L, 5791824L, 5791728L, 0L); case 18: return CreateOffsets(9107216L, 9119168L, 0L, 9140288L, 8430512L, 5795952L, 5795856L, 0L); case 19: return CreateOffsets(9110464L, 9122416L, 0L, 9143536L, 8433616L, 5796864L, 5796768L, 0L); case 20: return CreateOffsets(9115296L, 9127248L, 0L, 9148368L, 8437840L, 5800832L, 5800736L, 0L); case 21: return CreateOffsets(9110672L, 9122688L, 0L, 9143808L, 8433184L, 5795968L, 5795872L, 0L); case 22: return CreateOffsets(9115872L, 9127888L, 0L, 9149008L, 8438336L, 5798352L, 5798256L, 0L); case 23: return CreateOffsets(9138784L, 9150800L, 0L, 9170672L, 8459856L, 5818064L, 5817968L, 0L); case 24: return CreateOffsets(9144336L, 9156320L, 0L, 9176112L, 8465104L, 5825632L, 5825536L, 0L); case 25: return CreateOffsets(9144416L, 9156400L, 0L, 9176192L, 8465248L, 5825712L, 5825616L, 0L); case 26: return CreateOffsets(9146160L, 9158144L, 0L, 9177936L, 8466288L, 5825760L, 5825664L, 0L); case 27: return CreateOffsets(9148608L, 9160592L, 0L, 9180272L, 8468752L, 5827792L, 5827696L, 0L); case 28: return CreateOffsets(9149168L, 9161152L, 0L, 9180832L, 8469280L, 5827984L, 5827888L, 0L); case 29: return CreateOffsets(9154368L, 9166368L, 0L, 9186048L, 8474480L, 5829488L, 5829392L, 0L); case 30: return CreateOffsets(9158224L, 9170224L, 0L, 9189904L, 8478336L, 5832976L, 5832880L, 0L); case 31: return CreateOffsets(9169952L, 9181936L, 0L, 9201616L, 8490064L, 5841152L, 5841056L, 0L); case 32: return CreateOffsets(9171328L, 9183312L, 0L, 9202992L, 8490320L, 5841600L, 5841504L, 0L); case 33: return CreateOffsets(9174592L, 9186576L, 0L, 9206256L, 8493584L, 5842464L, 5842368L, 0L); case 34: return CreateOffsets(9174576L, 9186560L, 0L, 9206240L, 8493568L, 5842416L, 5842320L, 0L); case 35: return CreateOffsets(9177728L, 9189712L, 0L, 9209392L, 8496720L, 5845248L, 5845152L, 0L); case 36: return CreateOffsets(9178992L, 9190976L, 0L, 9210656L, 8497968L, 5846416L, 5846320L, 0L); case 37: return CreateOffsets(9185360L, 9197344L, 0L, 9217008L, 8499712L, 5846544L, 5846448L, 0L); case 38: return CreateOffsets(9186160L, 9198144L, 0L, 9217808L, 8500480L, 5847360L, 5847264L, 0L); case 39: return CreateOffsets(9190464L, 9202448L, 0L, 9222112L, 8504784L, 5851648L, 5851552L, 0L); case 40: return CreateOffsets(9191424L, 9203408L, 0L, 9223072L, 8505728L, 5852480L, 5852384L, 0L); case 41: return CreateOffsets(9190464L, 9202128L, 0L, 9221680L, 8505792L, 5852480L, 5852384L, 0L); } break; } break; case 2020: switch (unityVersion.Minor) { case 1: switch (unityVersion.Build) { case 0: return CreateOffsets(8542848L, 8555104L, 0L, 8573920L, 7836576L, 5291184L, 5291088L, 0L); case 1: return CreateOffsets(8554816L, 8567072L, 0L, 8585888L, 7839760L, 5293008L, 5292912L, 0L); case 2: return CreateOffsets(8555040L, 8567296L, 0L, 8586112L, 7839984L, 5293232L, 5293136L, 0L); case 3: return CreateOffsets(8555136L, 8567392L, 0L, 8586208L, 7839888L, 5292896L, 5292800L, 0L); case 4: return CreateOffsets(8558144L, 8570400L, 0L, 8589216L, 7842480L, 5294512L, 5294416L, 0L); case 5: return CreateOffsets(8559504L, 8571728L, 0L, 8590576L, 7843552L, 5294336L, 5294240L, 0L); case 6: return CreateOffsets(8560112L, 8572336L, 0L, 8591184L, 7844160L, 5294912L, 5294816L, 0L); case 7: return CreateOffsets(8564240L, 8576464L, 0L, 8595312L, 7847888L, 5297120L, 5297024L, 0L); case 8: return CreateOffsets(8564064L, 8576288L, 0L, 8595136L, 7847712L, 5296976L, 5296880L, 0L); case 9: return CreateOffsets(8564496L, 8576720L, 0L, 8595568L, 7848144L, 5296720L, 5296624L, 0L); case 10: return CreateOffsets(8564688L, 8576912L, 0L, 8595760L, 7848336L, 5296992L, 5296896L, 0L); case 11: return CreateOffsets(8566320L, 8578544L, 0L, 8597392L, 7849968L, 5298736L, 5298640L, 0L); case 12: return CreateOffsets(8566672L, 8578896L, 0L, 8597744L, 7850320L, 5298864L, 5298768L, 0L); case 13: return CreateOffsets(8572176L, 8584400L, 0L, 8603248L, 7855856L, 5304352L, 5304256L, 0L); case 14: return CreateOffsets(8577376L, 8589616L, 0L, 8608368L, 7861024L, 5307440L, 5307344L, 0L); case 15: return CreateOffsets(8580352L, 8592592L, 0L, 8611376L, 7863840L, 5309536L, 5309440L, 0L); case 16: return CreateOffsets(8585936L, 8598176L, 0L, 8616960L, 7869040L, 5312880L, 5312784L, 0L); case 17: return CreateOffsets(8586304L, 8598544L, 0L, 8617328L, 7869408L, 5313072L, 5312976L, 0L); case 18: return CreateOffsets(8586368L, 8598112L, 0L, 8616832L, 7869472L, 5313072L, 5312976L, 0L); } break; case 2: switch (unityVersion.Build) { case 0: return CreateOffsets(9087040L, 9101408L, 0L, 9122512L, 8355392L, 5680336L, 5680240L, 26666624L); case 1: return CreateOffsets(9087040L, 9101408L, 0L, 9122512L, 8355392L, 5680336L, 5680240L, 26666624L); case 2: return CreateOffsets(9090976L, 9105344L, 0L, 9126448L, 8358752L, 5682848L, 5682752L, 26670784L); case 3: return CreateOffsets(9100640L, 9115008L, 0L, 9136112L, 8368192L, 5685776L, 5685680L, 26687232L); case 4: return CreateOffsets(9101840L, 9116208L, 0L, 9137344L, 8369392L, 5686848L, 5686752L, 26695488L); case 5: return CreateOffsets(9103824L, 9118192L, 0L, 9139328L, 8371376L, 5688016L, 5687920L, 26699712L); case 6: return CreateOffsets(9099936L, 9114304L, 0L, 9135440L, 8367488L, 5683312L, 5683216L, 26703744L); case 7: return CreateOffsets(9101744L, 9116112L, 0L, 9137248L, 8369296L, 5684752L, 5684656L, 26708096L); case 8: return CreateOffsets(9101808L, 9115600L, 0L, 9136656L, 8369360L, 5684752L, 5684656L, 26708096L); } break; case 3: switch (unityVersion.Build) { case 0: return CreateOffsets(9102800L, 9117168L, 0L, 9138304L, 8370352L, 5684832L, 5684736L, 26708096L); case 1: return CreateOffsets(9135888L, 9150256L, 0L, 9171392L, 8402912L, 5718320L, 5718224L, 26753152L); case 2: return CreateOffsets(9137280L, 9151648L, 0L, 9172784L, 8404144L, 5718288L, 5718192L, 26757248L); case 3: return CreateOffsets(9139248L, 9153616L, 0L, 9174752L, 8406048L, 5719504L, 5719408L, 26757248L); case 4: return CreateOffsets(9139568L, 9153936L, 0L, 9175072L, 8406368L, 5719520L, 5719424L, 26757248L); case 5: return CreateOffsets(9147488L, 9161856L, 0L, 9182992L, 8413136L, 5724112L, 5724016L, 26773696L); case 6: return CreateOffsets(9146384L, 9160752L, 0L, 9181888L, 8412032L, 5724160L, 5724064L, 26769600L); case 7: return CreateOffsets(9147248L, 9161616L, 0L, 9182752L, 8412528L, 5724576L, 5724480L, 26777792L); case 8: return CreateOffsets(9147952L, 9162320L, 0L, 9183456L, 8412240L, 5724080L, 5723984L, 26474688L); case 9: return CreateOffsets(9148192L, 9162560L, 0L, 9183696L, 8412400L, 5724272L, 5724176L, 26538752L); case 10: return CreateOffsets(9156768L, 9171136L, 0L, 9192272L, 8420640L, 5724928L, 5724832L, 26547008L); case 11: return CreateOffsets(9160864L, 9175232L, 0L, 9196368L, 8424768L, 5728624L, 5728528L, 26551232L); case 12: return CreateOffsets(9161808L, 9176176L, 0L, 9197312L, 8425696L, 5729328L, 5729232L, 26543040L); case 13: return CreateOffsets(9163456L, 9177824L, 0L, 9198960L, 8427216L, 5730144L, 5730048L, 26547136L); case 14: return CreateOffsets(9165152L, 9179600L, 0L, 9200736L, 8428912L, 5731824L, 5731728L, 26563520L); case 15: return CreateOffsets(9165120L, 9179568L, 0L, 9200704L, 8428896L, 5731824L, 5731728L, 26563520L); case 16: return CreateOffsets(9168512L, 9182944L, 0L, 9203904L, 8432208L, 5734288L, 5734192L, 26571712L); case 17: return CreateOffsets(9173248L, 9187680L, 0L, 9208640L, 8436928L, 5738592L, 5738496L, 26584256L); case 18: return CreateOffsets(9191056L, 9205488L, 0L, 9226448L, 8454496L, 5755536L, 5755440L, 26600640L); case 19: return CreateOffsets(9191200L, 9205632L, 0L, 9226592L, 8454928L, 5755040L, 5754944L, 26600576L); case 20: return CreateOffsets(9191680L, 9206112L, 0L, 9227072L, 8455296L, 5755216L, 5755120L, 26600576L); case 21: return CreateOffsets(9192784L, 9207216L, 0L, 9228176L, 8455472L, 5755168L, 5755072L, 26625152L); case 22: return CreateOffsets(9196320L, 9210752L, 0L, 9231712L, 8458960L, 5756528L, 5756432L, 26629248L); case 23: return CreateOffsets(9193808L, 9208240L, 0L, 9229200L, 8458000L, 5757024L, 5756928L, 26625344L); case 24: return CreateOffsets(9195328L, 9209760L, 0L, 9230720L, 8459424L, 5758448L, 5758352L, 26695168L); case 25: return CreateOffsets(9202192L, 9216624L, 0L, 9237584L, 8466400L, 5765376L, 5765280L, 26703360L); case 26: return CreateOffsets(9202848L, 9217280L, 0L, 9238240L, 8467040L, 5766048L, 5765952L, 26703360L); case 27: return CreateOffsets(9207264L, 9221696L, 0L, 9242656L, 8470784L, 5769712L, 5769616L, 26707520L); case 28: return CreateOffsets(9209568L, 9224000L, 0L, 9244960L, 8473024L, 5771328L, 5771232L, 26711616L); case 29: return CreateOffsets(9211408L, 9225840L, 0L, 9246800L, 8474864L, 5771968L, 5771872L, 26703552L); case 30: return CreateOffsets(9212528L, 9226960L, 0L, 9247920L, 8475984L, 5772784L, 5772688L, 26703552L); case 31: return CreateOffsets(9244416L, 9259040L, 0L, 9280736L, 8497744L, 5787920L, 5787824L, 26744576L); case 32: return CreateOffsets(9245184L, 9259808L, 0L, 9281504L, 8498496L, 5788320L, 5788224L, 26748672L); case 33: return CreateOffsets(9244608L, 9259232L, 0L, 9280928L, 8497856L, 5787920L, 5787824L, 26748672L); case 34: return CreateOffsets(9244960L, 9259584L, 0L, 9281280L, 8497920L, 5787904L, 5787808L, 26752768L); case 35: return CreateOffsets(9247424L, 9262048L, 0L, 9283744L, 8500256L, 5788576L, 5788480L, 26752768L); case 36: return CreateOffsets(9247872L, 9262496L, 0L, 9284192L, 8500704L, 5788832L, 5788736L, 26760960L); case 37: return CreateOffsets(9251104L, 9265728L, 0L, 9287424L, 8503936L, 5789952L, 5789856L, 26777344L); case 38: return CreateOffsets(9260896L, 9275552L, 0L, 9297248L, 8513648L, 5791632L, 5791536L, 26777472L); case 39: return CreateOffsets(9261504L, 9276160L, 0L, 9297856L, 8512864L, 5791952L, 5791856L, 26818368L); case 40: return CreateOffsets(9262560L, 9277216L, 0L, 9298912L, 8513920L, 5791984L, 5791888L, 26953536L); case 41: return CreateOffsets(9266896L, 9281552L, 0L, 9303248L, 8517680L, 5794032L, 5793936L, 26961920L); case 42: return CreateOffsets(9277136L, 9291792L, 0L, 9313488L, 8527648L, 5803488L, 5803392L, 26974208L); case 43: return CreateOffsets(9280848L, 9295504L, 0L, 9317200L, 8531360L, 5804160L, 5804064L, 26978304L); case 44: return CreateOffsets(9274672L, 9289280L, 0L, 9309952L, 8525120L, 5800848L, 5800752L, 26961856L); case 45: return CreateOffsets(8980480L, 8995088L, 0L, 9015760L, 8230560L, 5502768L, 5502672L, 26986432L); case 46: return CreateOffsets(8981712L, 8996320L, 0L, 9016992L, 8231792L, 5503600L, 5503504L, 26986496L); case 47: return CreateOffsets(8982128L, 8996736L, 0L, 9017408L, 8232208L, 5504064L, 5503968L, 26990592L); case 48: return CreateOffsets(8985392L, 9000000L, 0L, 9020672L, 8235664L, 5506688L, 5506592L, 26990592L); case 49: return CreateOffsets(8985456L, 8999536L, 0L, 9020128L, 8235728L, 5506688L, 5506592L, 26990592L); } break; } break; case 2021: switch (unityVersion.Minor) { case 1: switch (unityVersion.Build) { case 0: return CreateOffsets(9107152L, 9120176L, 0L, 9140112L, 8377760L, 5711216L, 5711120L, 26714752L); case 1: return CreateOffsets(9110304L, 9123328L, 0L, 9143264L, 8380848L, 5712688L, 5712592L, 26722944L); case 2: return CreateOffsets(9113344L, 9126368L, 0L, 9146304L, 8383744L, 5715584L, 5715488L, 26727040L); case 3: return CreateOffsets(9114656L, 9127680L, 0L, 9147616L, 8384640L, 5715888L, 5715792L, 26788480L); case 4: return CreateOffsets(9115632L, 9128656L, 0L, 9148592L, 8384608L, 5715568L, 5715472L, 26792576L); case 5: return CreateOffsets(9114752L, 9127776L, 0L, 9147696L, 8383792L, 5715440L, 5715344L, 26489472L); case 6: return CreateOffsets(9116704L, 9129728L, 0L, 9149648L, 8385456L, 5717264L, 5717168L, 26493568L); case 7: return CreateOffsets(9116688L, 9129712L, 0L, 9149632L, 8385440L, 5717168L, 5717072L, 26493568L); case 9: return CreateOffsets(9119360L, 9132464L, 0L, 9152384L, 8387840L, 5718240L, 5718144L, 26485440L); case 10: return CreateOffsets(9122064L, 9135168L, 0L, 9155088L, 8390288L, 5720304L, 5720208L, 26489536L); case 11: return CreateOffsets(9122064L, 9135168L, 0L, 9155088L, 8390288L, 5720304L, 5720208L, 26489536L); case 12: return CreateOffsets(9122128L, 9135232L, 0L, 9155152L, 8390336L, 5720352L, 5720256L, 26489536L); case 13: return CreateOffsets(9122272L, 9135376L, 0L, 9155296L, 8390480L, 5720496L, 5720400L, 26489536L); case 14: return CreateOffsets(9123696L, 9136800L, 0L, 9156720L, 8391904L, 5721936L, 5721840L, 26493632L); case 15: return CreateOffsets(9124368L, 9137488L, 0L, 9157328L, 8392640L, 5722672L, 5722576L, 26505920L); case 16: return CreateOffsets(9001600L, 9014720L, 0L, 9034560L, 8269728L, 5600688L, 5600592L, 26516224L); case 17: return CreateOffsets(9004032L, 9017152L, 0L, 9036992L, 8272096L, 5602304L, 5602208L, 26520320L); case 18: return CreateOffsets(9020048L, 9033168L, 0L, 9053008L, 8288016L, 5618256L, 5618160L, 26537024L); case 19: return CreateOffsets(9021216L, 9034336L, 0L, 9054176L, 8289184L, 5619216L, 5619120L, 26537024L); case 20: return CreateOffsets(9022272L, 9035392L, 0L, 9055232L, 8290240L, 5620112L, 5620016L, 26541120L); case 21: return CreateOffsets(9022752L, 9035872L, 0L, 9055712L, 8290672L, 5620336L, 5620240L, 26541120L); case 22: return CreateOffsets(9023920L, 9037040L, 0L, 9056880L, 8292032L, 5620320L, 5620224L, 26541120L); case 23: return CreateOffsets(9023392L, 9036512L, 0L, 9056352L, 8291504L, 5620032L, 5619936L, 26541120L); case 24: return CreateOffsets(9022208L, 9035328L, 0L, 9055168L, 8290352L, 5618944L, 5618848L, 26561600L); case 25: return CreateOffsets(9026880L, 9040000L, 0L, 9059840L, 8294112L, 5620704L, 5620608L, 26569792L); case 26: return CreateOffsets(9027472L, 9040592L, 0L, 9060432L, 8294688L, 5621152L, 5621056L, 26569792L); case 27: return CreateOffsets(9026768L, 9039888L, 0L, 9059728L, 8293984L, 5620224L, 5620128L, 26569792L); case 28: return CreateOffsets(9026528L, 9039648L, 0L, 9059488L, 8293680L, 5619808L, 5619712L, 26569792L); case 29: return CreateOffsets(9026592L, 9039104L, 0L, 9058880L, 8293744L, 5619808L, 5619712L, 26569792L); } break; case 2: switch (unityVersion.Build) { case 0: return CreateOffsets(6652704L, 6667376L, 0L, 6692368L, 5807344L, 2872928L, 2872848L, 27258624L); case 1: return CreateOffsets(6652976L, 6667648L, 0L, 6692640L, 5807568L, 2872928L, 2872848L, 27258624L); case 2: return CreateOffsets(6655264L, 6669936L, 0L, 6694928L, 5809856L, 2874560L, 2874480L, 27266880L); case 3: return CreateOffsets(6656032L, 6670704L, 0L, 6695696L, 5810656L, 2874464L, 2874384L, 27271040L); case 4: return CreateOffsets(6655456L, 6670128L, 0L, 6695120L, 5810080L, 2874688L, 2874608L, 27271232L); case 5: return CreateOffsets(6656720L, 6671392L, 0L, 6696384L, 5811344L, 2875344L, 2875264L, 27275200L); case 6: return CreateOffsets(6657024L, 6671696L, 0L, 6696688L, 5811648L, 2875344L, 2875264L, 27275264L); case 7: return CreateOffsets(6657344L, 6672016L, 0L, 6697008L, 5811968L, 2875664L, 2875584L, 27279360L); case 8: return CreateOffsets(6658624L, 6673296L, 0L, 6698288L, 5813216L, 2876048L, 2875968L, 27287616L); case 9: return CreateOffsets(6659744L, 6674416L, 0L, 6699408L, 5814192L, 2876384L, 2876304L, 27291776L); case 10: return CreateOffsets(6660320L, 6674992L, 0L, 6699984L, 5814064L, 2876384L, 2876304L, 27295872L); case 11: return CreateOffsets(6660240L, 6674912L, 0L, 6699904L, 5813984L, 2876272L, 2876192L, 27295872L); case 12: return CreateOffsets(6661344L, 6676016L, 0L, 6701008L, 5815104L, 2876528L, 2876448L, 27300096L); case 13: return CreateOffsets(6661360L, 6676032L, 0L, 6701024L, 5815104L, 2876528L, 2876448L, 27300096L); case 14: return CreateOffsets(6661744L, 6676416L, 0L, 6701408L, 5815488L, 2876528L, 2876448L, 27300096L); case 15: return CreateOffsets(6661744L, 6676416L, 0L, 6701408L, 5815488L, 2876528L, 2876448L, 27304192L); case 16: return CreateOffsets(6661744L, 6676416L, 0L, 6701408L, 5815488L, 2876528L, 2876448L, 27312384L); case 17: return CreateOffsets(6663264L, 6677952L, 0L, 6702672L, 5815616L, 2876528L, 2876448L, 27320576L); case 18: return CreateOffsets(6666800L, 6681488L, 0L, 6706208L, 5819664L, 2877440L, 2877360L, 27324672L); case 19: return CreateOffsets(6666928L, 6681616L, 0L, 6706336L, 5819792L, 2877744L, 2877664L, 27324672L); case 20: return CreateOffsets(6666992L, 0L, 5795600L, 6705840L, 5819856L, 2877744L, 2877664L, 27324672L); } break; case 3: switch (unityVersion.Build) { case 0: return CreateOffsets(6666928L, 6681616L, 0L, 6706336L, 5819792L, 2877744L, 2877664L, 27324672L); case 1: return CreateOffsets(6668880L, 6683568L, 0L, 6708288L, 5821696L, 2877744L, 2877664L, 27328768L); case 2: return CreateOffsets(6669776L, 6684464L, 0L, 6709184L, 5822160L, 2877744L, 2877664L, 27332864L); case 3: return CreateOffsets(6669856L, 6684544L, 0L, 6709264L, 5822240L, 2877840L, 2877760L, 27337024L); case 4: return CreateOffsets(6672928L, 6687616L, 0L, 6712336L, 5825312L, 2878608L, 2878528L, 27345152L); case 5: return CreateOffsets(6674656L, 6689344L, 0L, 6714064L, 5826928L, 2878640L, 2878560L, 27345216L); case 6: return CreateOffsets(6376752L, 6391440L, 0L, 6416160L, 5529024L, 2580704L, 2580624L, 27369792L); case 7: return CreateOffsets(6380896L, 6395584L, 0L, 6420304L, 5533168L, 2583872L, 2583792L, 27373888L); case 8: return CreateOffsets(6381040L, 6395728L, 0L, 6452416L, 5533312L, 2583936L, 2583856L, 27374208L); case 9: return CreateOffsets(6386512L, 6401152L, 0L, 6457664L, 5538928L, 2583632L, 2583552L, 27370112L); case 10: return CreateOffsets(6393664L, 6408304L, 0L, 6464816L, 5546064L, 2584256L, 2584176L, 27386560L); case 11: return CreateOffsets(6395648L, 6410288L, 0L, 6466800L, 5547456L, 2584576L, 2584496L, 27517632L); case 12: return CreateOffsets(6410224L, 6424864L, 0L, 6481392L, 5559296L, 2586112L, 2586032L, 27543424L); case 13: return CreateOffsets(6411888L, 6426528L, 0L, 6483056L, 5560272L, 2586288L, 2586208L, 27551616L); case 14: return CreateOffsets(6413456L, 6428096L, 0L, 6484624L, 5561808L, 2586528L, 2586448L, 27563968L); case 15: return CreateOffsets(6416896L, 6431536L, 0L, 6488064L, 5565216L, 2586608L, 2586528L, 27564032L); case 16: return CreateOffsets(6443840L, 6458480L, 0L, 6515008L, 5591552L, 2611616L, 2611536L, 27736704L); case 17: return CreateOffsets(6445008L, 6459648L, 0L, 6516176L, 5592960L, 2614560L, 2614480L, 27749120L); case 18: return CreateOffsets(6447856L, 6462496L, 0L, 6519040L, 5595792L, 2614864L, 2614784L, 27753344L); case 19: return CreateOffsets(6448480L, 6463120L, 0L, 6519664L, 5596128L, 2615088L, 2615008L, 27769728L); case 20: return CreateOffsets(6449712L, 6464352L, 0L, 6520896L, 5597360L, 2615744L, 2615664L, 27769792L); case 21: return CreateOffsets(6451840L, 6466480L, 0L, 6523024L, 5599184L, 2616480L, 2616400L, 27839424L); case 22: return CreateOffsets(6452016L, 6466656L, 0L, 6523200L, 5599360L, 2616480L, 2616400L, 27839424L); case 23: return CreateOffsets(6452656L, 6467296L, 0L, 6523840L, 5600192L, 2617376L, 2617296L, 27847680L); case 24: return CreateOffsets(6452688L, 6467328L, 0L, 6523872L, 5600176L, 2617376L, 2617296L, 27847680L); case 25: return CreateOffsets(6453056L, 6467696L, 0L, 6524240L, 5601376L, 2617424L, 2617344L, 27843584L); case 26: return CreateOffsets(6454560L, 6469200L, 0L, 6525744L, 5602864L, 2617472L, 2617392L, 27847680L); case 27: return CreateOffsets(6454800L, 6469440L, 0L, 6525984L, 5602880L, 2617472L, 2617392L, 27847680L); case 28: return CreateOffsets(6457680L, 6472320L, 0L, 6528864L, 5605600L, 2617744L, 2617664L, 27855872L); case 29: return CreateOffsets(6441072L, 6455712L, 0L, 6512256L, 5589024L, 2593760L, 2593680L, 27855936L); case 30: return CreateOffsets(6444464L, 6459104L, 0L, 6515648L, 5593776L, 2594128L, 2594048L, 27864128L); case 31: return CreateOffsets(6446528L, 6461168L, 0L, 6517712L, 5594896L, 2595088L, 2595008L, 27921472L); case 32: return CreateOffsets(6448704L, 6463344L, 0L, 6519888L, 5597008L, 2596272L, 2596192L, 27925568L); case 33: return CreateOffsets(6446528L, 6461168L, 0L, 6517712L, 5594304L, 2593680L, 2593600L, 27913152L); case 34: return CreateOffsets(6452272L, 6466912L, 0L, 6524096L, 5599184L, 2594336L, 2594256L, 27925504L); case 35: return CreateOffsets(6452992L, 6467632L, 0L, 6524816L, 5599904L, 2594464L, 2594384L, 27933696L); case 36: return CreateOffsets(6452832L, 6467472L, 0L, 6524656L, 5600048L, 2594528L, 2594448L, 27933696L); case 37: return CreateOffsets(6453200L, 6467840L, 0L, 6525024L, 5599552L, 2593536L, 2593456L, 27937792L); case 38: return CreateOffsets(6453920L, 6468560L, 0L, 6525744L, 5600272L, 2593536L, 2593456L, 27937792L); case 39: return CreateOffsets(6454176L, 6468816L, 0L, 6526048L, 5600528L, 2593248L, 2593168L, 27945984L); case 40: return CreateOffsets(6454912L, 6469552L, 0L, 6526784L, 5601200L, 2593504L, 2593424L, 27954176L); case 41: return CreateOffsets(6460032L, 6474672L, 0L, 6531904L, 5606800L, 2593840L, 2593760L, 27954176L); case 42: return CreateOffsets(6460256L, 6474896L, 0L, 6532128L, 5607024L, 2593840L, 2593760L, 27954176L); case 43: return CreateOffsets(6460304L, 6474944L, 0L, 6532176L, 5607072L, 2593840L, 2593760L, 27884544L); case 44: return CreateOffsets(6477024L, 6491664L, 0L, 6548896L, 5612048L, 2598800L, 2598720L, 27900928L); case 45: switch (unityVersion.Revision) { case 43167: return CreateOffsets(6477072L, 6491712L, 0L, 6548944L, 5612096L, 2598800L, 2598720L, 27905024L); case 63631: return CreateOffsets(6477152L, 0L, 5587744L, 6548560L, 5612176L, 2598800L, 2598720L, 27905024L); } break; case 46: return CreateOffsets(6477072L, 6491712L, 0L, 6548944L, 5612096L, 2598800L, 2598720L, 28011520L); case 47: return CreateOffsets(6477072L, 6491712L, 0L, 6548944L, 5612096L, 2598800L, 2598720L, 28011520L); case 48: return CreateOffsets(6477072L, 6491712L, 0L, 6548944L, 5612096L, 2598800L, 2598720L, 28015616L); case 49: return CreateOffsets(6477072L, 6491712L, 0L, 6548944L, 5612096L, 2598800L, 2598720L, 28015616L); case 50: return CreateOffsets(6477072L, 6491712L, 0L, 6548944L, 5612096L, 2598800L, 2598720L, 28015616L); } break; } break; case 2022: switch (unityVersion.Minor) { case 1: switch (unityVersion.Build) { case 0: return CreateOffsets(6777184L, 6791680L, 0L, 6816768L, 5906960L, 2901088L, 2901008L, 27528640L); case 1: return CreateOffsets(6778016L, 6792528L, 0L, 6817616L, 5907392L, 2901232L, 2901152L, 27528640L); case 2: return CreateOffsets(6780976L, 6795488L, 0L, 6820576L, 5910352L, 2901600L, 2901520L, 27532672L); case 3: return CreateOffsets(6780976L, 6795488L, 0L, 6820576L, 5910352L, 2901600L, 2901520L, 27532672L); case 4: return CreateOffsets(6780608L, 6795120L, 0L, 6820208L, 5909984L, 2901600L, 2901520L, 27532672L); case 5: return CreateOffsets(6780608L, 6795120L, 0L, 6820208L, 5909984L, 2901600L, 2901520L, 27532672L); case 6: return CreateOffsets(6780528L, 6795040L, 0L, 6820128L, 5909600L, 2901600L, 2901520L, 27532672L); case 7: return CreateOffsets(6780528L, 6795040L, 0L, 6820128L, 5909600L, 2901600L, 2901520L, 27536768L); case 8: return CreateOffsets(6780848L, 6795360L, 0L, 6820448L, 5909920L, 2901600L, 2901520L, 27536768L); case 9: return CreateOffsets(6784272L, 6798784L, 0L, 6823872L, 5913344L, 2901888L, 2901808L, 27684224L); case 10: return CreateOffsets(6784272L, 6798784L, 0L, 6856288L, 5913344L, 2901888L, 2901808L, 27684480L); case 11: return CreateOffsets(6784272L, 6798784L, 0L, 6856288L, 5913344L, 2901888L, 2901808L, 27684480L); case 12: return CreateOffsets(6785312L, 6799824L, 0L, 6857344L, 5914368L, 2902112L, 2902032L, 27684544L); case 13: return CreateOffsets(6797280L, 6811792L, 0L, 6869312L, 5926352L, 2902112L, 2902032L, 27696832L); case 14: return CreateOffsets(6797104L, 6811616L, 0L, 6869136L, 5926176L, 2901952L, 2901872L, 27729600L); case 15: return CreateOffsets(6797104L, 6811616L, 0L, 6869136L, 5926176L, 2901952L, 2901872L, 27737792L); case 16: return CreateOffsets(6797360L, 6811872L, 0L, 6869392L, 5926176L, 2901952L, 2901872L, 27737792L); case 17: return CreateOffsets(6798208L, 6812720L, 0L, 6870240L, 5927024L, 2901936L, 2901856L, 27733696L); case 18: return CreateOffsets(6800912L, 6815424L, 0L, 6872944L, 5929184L, 2902288L, 2902208L, 27737920L); case 19: return CreateOffsets(6801392L, 6815904L, 0L, 6873424L, 5929664L, 2902608L, 2902528L, 27737920L); case 20: return CreateOffsets(6801376L, 6815888L, 0L, 6873408L, 5929648L, 2902592L, 2902512L, 27737920L); case 21: return CreateOffsets(6807376L, 6821888L, 0L, 6879408L, 5935264L, 2902992L, 2902912L, 27746176L); case 22: return CreateOffsets(6807568L, 6822080L, 0L, 6879600L, 5935456L, 2902992L, 2902912L, 27746176L); case 23: return CreateOffsets(6807968L, 6822480L, 0L, 6880000L, 5935744L, 2903152L, 2903072L, 27754368L); case 24: return CreateOffsets(6809360L, 6823872L, 0L, 6881392L, 5937024L, 2903152L, 2903072L, 27746176L); case 25: return CreateOffsets(6809424L, 0L, 5912768L, 6881024L, 5937088L, 2903152L, 2903072L, 27746176L); } break; case 2: switch (unityVersion.Build) { case 0: return CreateOffsets(7635360L, 7634128L, 0L, 7719360L, 6690192L, 3458912L, 6453920L, 28917696L); case 1: return CreateOffsets(7637952L, 7636720L, 0L, 7721952L, 6692784L, 3457664L, 6456512L, 28917760L); case 2: return CreateOffsets(7643824L, 7642592L, 0L, 7727824L, 6698096L, 3457296L, 6461824L, 28934144L); case 3: return CreateOffsets(7647840L, 7646608L, 0L, 7731840L, 6702048L, 3460656L, 6461728L, 28933120L); case 4: return CreateOffsets(7666592L, 7665360L, 0L, 7750896L, 6717104L, 3472224L, 6476864L, 28963136L); case 5: return CreateOffsets(7668512L, 7667280L, 0L, 7752832L, 6719024L, 3473280L, 6478784L, 28967168L); case 6: return CreateOffsets(7669008L, 7667776L, 0L, 7753328L, 6719184L, 3473216L, 6478944L, 28967232L); case 7: return CreateOffsets(7681936L, 7680704L, 0L, 7766256L, 6732192L, 3478656L, 6492608L, 28979520L); case 8: return CreateOffsets(7683840L, 7682608L, 0L, 7768160L, 6733888L, 3480368L, 6494320L, 28983616L); case 9: return CreateOffsets(7683616L, 7682384L, 0L, 7767936L, 6735184L, 3481280L, 6495616L, 28991808L); case 10: return CreateOffsets(7685120L, 7683888L, 0L, 7769440L, 6737008L, 3482176L, 6497424L, 28983616L); case 11: return CreateOffsets(7687392L, 7686160L, 0L, 7771712L, 6739120L, 3481888L, 6498848L, 28987776L); case 12: return CreateOffsets(7688928L, 7687696L, 0L, 7773248L, 6740656L, 3480112L, 6500384L, 28995968L); case 13: return CreateOffsets(7686160L, 7684928L, 0L, 7770480L, 6738016L, 3478880L, 6497744L, 28991872L); case 14: return CreateOffsets(7690688L, 7689456L, 0L, 7775008L, 6742544L, 3481072L, 6502272L, 29004224L); case 15: return CreateOffsets(7696432L, 7695200L, 0L, 7780784L, 6748528L, 3482784L, 6508256L, 29012416L); case 16: return CreateOffsets(7698016L, 7696784L, 0L, 7782368L, 6750352L, 3482544L, 6510080L, 29012288L); case 17: return CreateOffsets(7698752L, 7697520L, 0L, 7783104L, 6750816L, 3482528L, 6510528L, 29008128L); case 18: return CreateOffsets(7712128L, 7710896L, 0L, 7796480L, 6764032L, 3482960L, 6523504L, 29032896L); case 19: return CreateOffsets(7713040L, 7711808L, 0L, 7797392L, 6764944L, 3482992L, 6524416L, 29118976L); case 20: return CreateOffsets(7843536L, 7842304L, 0L, 7928272L, 6889552L, 3570320L, 6649504L, 29295232L); case 21: return CreateOffsets(7846064L, 7844832L, 0L, 7930800L, 6892224L, 3570592L, 6652176L, 29295296L); case 23: return CreateOffsets(7847872L, 0L, 6848288L, 7931872L, 6893024L, 3570720L, 6652432L, 29299456L); } break; case 3: switch (unityVersion.Build) { case 0: return CreateOffsets(7847584L, 7846352L, 0L, 7932528L, 6892992L, 3570704L, 6652400L, 29299392L); case 1: return CreateOffsets(7845168L, 7843936L, 0L, 7930080L, 6891360L, 3570512L, 6650848L, 29299456L); case 2: return CreateOffsets(7845584L, 7844352L, 0L, 7930496L, 6891600L, 3570656L, 6651088L, 29299456L); case 3: return CreateOffsets(7844976L, 7843744L, 0L, 7929888L, 6891504L, 3570768L, 6651024L, 29303552L); case 4: return CreateOffsets(7845360L, 7844128L, 0L, 7930272L, 6891872L, 3571136L, 6651392L, 29303552L); case 5: return CreateOffsets(7770736L, 7769504L, 0L, 7855648L, 6816912L, 3496112L, 6575392L, 29305024L); case 6: return CreateOffsets(7770304L, 7769072L, 0L, 7855216L, 6816176L, 3494512L, 6574496L, 29313280L); case 7: return CreateOffsets(7777520L, 7776288L, 0L, 7863936L, 6823312L, 3494432L, 6581392L, 29329856L); case 8: return CreateOffsets(7781552L, 7780320L, 0L, 7868240L, 6827904L, 3495520L, 6585968L, 29338048L); case 9: return CreateOffsets(7782592L, 7781360L, 0L, 7869280L, 6828848L, 3495632L, 6586912L, 29342272L); case 10: return CreateOffsets(7781968L, 7780736L, 0L, 7868656L, 6827888L, 3496800L, 6586336L, 29342208L); case 11: return CreateOffsets(7790496L, 7789264L, 0L, 7877248L, 6833280L, 3499872L, 6593040L, 29341760L); case 12: return CreateOffsets(7791136L, 7789904L, 0L, 7877920L, 6833904L, 3501472L, 6583520L, 29345984L); case 13: return CreateOffsets(7791744L, 7790512L, 0L, 7878528L, 6834000L, 3501568L, 6583616L, 29362368L); case 14: return CreateOffsets(7814944L, 7814464L, 0L, 7904272L, 6854512L, 3502448L, 6601600L, 29481152L); case 15: return CreateOffsets(7815904L, 7815424L, 0L, 7905408L, 6855280L, 3502128L, 6602368L, 29489344L); case 16: return CreateOffsets(7826928L, 7826448L, 0L, 7916400L, 6865920L, 3503072L, 6612752L, 29513984L); case 17: return CreateOffsets(7824736L, 7824256L, 0L, 7914208L, 6864000L, 3503088L, 6610832L, 29509824L); case 18: return CreateOffsets(7824704L, 7824224L, 0L, 7914176L, 6863968L, 3502960L, 6610800L, 29509824L); case 19: return CreateOffsets(7843760L, 7843280L, 0L, 7933232L, 6882768L, 3504816L, 6630560L, 29526336L); case 20: return CreateOffsets(7875552L, 7875072L, 0L, 7965056L, 6914528L, 3508912L, 6662224L, 29559104L); case 21: return CreateOffsets(7862512L, 7862032L, 0L, 7952016L, 6869728L, 3509376L, 6649920L, 29559104L); case 22: return CreateOffsets(7865344L, 7864864L, 0L, 7954848L, 6871856L, 3511008L, 6652048L, 29563200L); case 23: return CreateOffsets(7863952L, 7863472L, 0L, 7953456L, 6870464L, 3510576L, 6650656L, 29567296L); case 24: return CreateOffsets(7862496L, 7862016L, 0L, 7952000L, 6868048L, 3508096L, 6648240L, 29567296L); case 25: return CreateOffsets(7856480L, 7856000L, 0L, 7944384L, 6853104L, 3505952L, 6633520L, 29563200L); case 26: return CreateOffsets(7858592L, 7858112L, 0L, 7946496L, 6852256L, 3505904L, 6632656L, 29563456L); case 27: return CreateOffsets(7858800L, 7858320L, 0L, 7946704L, 6852464L, 3504288L, 6632864L, 29563520L); case 28: return CreateOffsets(7858368L, 7857888L, 0L, 7946272L, 6852032L, 3503968L, 6632432L, 29563520L); case 29: return CreateOffsets(7858448L, 7857968L, 0L, 7946352L, 6852112L, 3504048L, 6632512L, 29563520L); case 30: return CreateOffsets(7861344L, 7860864L, 0L, 7949168L, 6855008L, 3506688L, 6635408L, 29567552L); case 31: return CreateOffsets(7862352L, 7861872L, 0L, 7950176L, 6855824L, 3506848L, 6636224L, 29571648L); case 32: return CreateOffsets(7862496L, 7862016L, 0L, 7950320L, 6855968L, 3506848L, 6636368L, 29571648L); case 33: return CreateOffsets(7863168L, 7862688L, 0L, 7950992L, 6856352L, 3507248L, 6636256L, 29579840L); case 34: return CreateOffsets(7863552L, 7863072L, 0L, 7951376L, 6856752L, 3507440L, 6636656L, 29579904L); case 35: return CreateOffsets(7864592L, 7864112L, 0L, 7952416L, 6857792L, 3507456L, 6637552L, 29579840L); case 36: return CreateOffsets(7857456L, 7856976L, 0L, 7943120L, 6855472L, 3509600L, 6636608L, 29555264L); case 37: return CreateOffsets(7858496L, 7858016L, 0L, 7944160L, 6856512L, 3509504L, 6637696L, 29555264L); case 38: return CreateOffsets(7858352L, 7857872L, 0L, 7944016L, 6856368L, 3509456L, 6637552L, 29559424L); case 39: return CreateOffsets(7863408L, 7862928L, 0L, 7948624L, 6861408L, 3509024L, 6641200L, 29563456L); case 40: return CreateOffsets(7862784L, 7862304L, 0L, 7948000L, 6860784L, 3509216L, 6640592L, 29567552L); case 41: return CreateOffsets(7863360L, 7862880L, 0L, 7948576L, 6861040L, 3509216L, 6640848L, 29563456L); case 42: return CreateOffsets(7868624L, 7868144L, 0L, 7953840L, 6866304L, 3514400L, 6646032L, 29403776L); case 43: return CreateOffsets(7869152L, 7868672L, 0L, 7954432L, 6866832L, 3514560L, 6646560L, 29403712L); case 44: return CreateOffsets(7870288L, 7869808L, 0L, 7955568L, 6866944L, 3514416L, 6646672L, 29407808L); case 45: return CreateOffsets(7870880L, 7870400L, 0L, 7956160L, 6867536L, 3514432L, 6647264L, 29411968L); case 46: return CreateOffsets(7870752L, 7870272L, 0L, 7956032L, 6867408L, 3513872L, 6647136L, 29411968L); case 47: return CreateOffsets(7870944L, 7870464L, 0L, 7956224L, 6867600L, 3514016L, 6647328L, 29411904L); case 48: return CreateOffsets(7870912L, 7870432L, 0L, 7956192L, 6867568L, 3513968L, 6647296L, 29416000L); case 49: return CreateOffsets(7871568L, 7871088L, 0L, 7956848L, 6868224L, 3514624L, 6647952L, 29420096L); case 50: return CreateOffsets(7871440L, 7870960L, 0L, 7956720L, 6868096L, 3514576L, 6647744L, 29420096L); case 51: return CreateOffsets(7872928L, 7872448L, 0L, 7958208L, 6869584L, 3515472L, 6648640L, 29424192L); case 52: return CreateOffsets(7869776L, 7869296L, 0L, 7955056L, 6866432L, 3515584L, 6646816L, 29629312L); case 53: return CreateOffsets(7867584L, 7867104L, 0L, 7952864L, 6864880L, 3516576L, 6645568L, 29621120L); case 54: return CreateOffsets(7867392L, 7866912L, 0L, 7953120L, 6864688L, 3516400L, 6645328L, 29629376L); case 55: return CreateOffsets(7867856L, 7867376L, 0L, 7953584L, 6865136L, 3517040L, 6645776L, 29625408L); case 56: return CreateOffsets(7872736L, 7872256L, 0L, 7958464L, 6869920L, 3517872L, 6650336L, 29629504L); case 57: return CreateOffsets(7872976L, 7872496L, 0L, 7958704L, 6870128L, 3517808L, 6650288L, 29629504L); case 58: return CreateOffsets(7881888L, 7881408L, 0L, 7967616L, 6878304L, 3517008L, 6658576L, 29645888L); case 59: return CreateOffsets(7881376L, 7880896L, 0L, 7967104L, 6877840L, 3516384L, 6658112L, 29645824L); case 60: return CreateOffsets(7881392L, 7880912L, 0L, 7967120L, 6878496L, 3517168L, 6658768L, 29666368L); case 61: return CreateOffsets(7882048L, 7881568L, 0L, 7967776L, 6879040L, 3516880L, 6659184L, 29678656L); case 62: return CreateOffsets(7881008L, 0L, 6889888L, 7965760L, 6876448L, 3517936L, 6655536L, 29674624L); } break; } break; case 2023: switch (unityVersion.Minor) { case 1: switch (unityVersion.Build) { case 0: return CreateOffsets(6824560L, 6824016L, 0L, 6914080L, 5866960L, 2476800L, 5489344L, 28587648L); case 1: return CreateOffsets(6826352L, 6825808L, 0L, 6915872L, 5868752L, 2476976L, 5491168L, 28595840L); case 2: return CreateOffsets(6827456L, 6826912L, 0L, 6916976L, 5870496L, 2477888L, 5492912L, 28595840L); case 3: return CreateOffsets(6816704L, 6816160L, 0L, 6906224L, 5859744L, 2467136L, 5482208L, 28587648L); case 4: return CreateOffsets(6816736L, 6816192L, 0L, 6906256L, 5859776L, 2466688L, 5482192L, 28609600L); case 5: return CreateOffsets(6815968L, 6815424L, 0L, 6905488L, 5858960L, 2467248L, 5481376L, 28609600L); case 6: return CreateOffsets(6816400L, 6815856L, 0L, 6905920L, 5859392L, 2467328L, 5481648L, 28609600L); case 7: return CreateOffsets(6815216L, 6814672L, 0L, 6904736L, 5857920L, 2465872L, 5480176L, 28613696L); case 8: return CreateOffsets(6820336L, 6819792L, 0L, 6909856L, 5863088L, 2465664L, 5485104L, 28617728L); case 9: return CreateOffsets(6822976L, 6822432L, 0L, 6912768L, 5866416L, 2465712L, 5488416L, 28630080L); case 10: return CreateOffsets(6823552L, 6823008L, 0L, 6913344L, 5866944L, 2466208L, 5488944L, 28638272L); case 11: return CreateOffsets(6826448L, 6825904L, 0L, 6916240L, 5867984L, 2466320L, 5489984L, 28638272L); case 12: return CreateOffsets(6828720L, 6828176L, 0L, 6918512L, 5869888L, 2467312L, 5492480L, 28642496L); case 13: return CreateOffsets(6828992L, 6828448L, 0L, 6918784L, 5869984L, 2467872L, 5492560L, 28646592L); case 14: return CreateOffsets(6829424L, 6828880L, 0L, 6919216L, 5870368L, 2467888L, 5492944L, 28646656L); case 15: return CreateOffsets(6828320L, 6827776L, 0L, 6918112L, 5869312L, 2467792L, 5491776L, 28646656L); case 16: return CreateOffsets(6829280L, 6828736L, 0L, 6919072L, 5870272L, 2468448L, 5492352L, 28654848L); case 17: return CreateOffsets(6831440L, 6830896L, 0L, 6921152L, 5872336L, 2470672L, 5495888L, 28679488L); case 18: return CreateOffsets(6831792L, 6831248L, 0L, 6921552L, 5872672L, 2470912L, 5496224L, 28683584L); case 19: return CreateOffsets(6829024L, 6828480L, 0L, 6918784L, 5869904L, 2470928L, 5495696L, 28679488L); case 20: return CreateOffsets(6827824L, 6827280L, 0L, 6917296L, 5871216L, 2475888L, 5497056L, 28695872L); case 22: return CreateOffsets(6827840L, 0L, 5826576L, 6916432L, 5871264L, 2475888L, 5497104L, 28691776L); } break; case 2: switch (unityVersion.Build) { case 0: return CreateOffsets(7015696L, 7015120L, 0L, 7091776L, 6050128L, 2586768L, 2586960L, 29192896L); case 1: return CreateOffsets(7016576L, 7016000L, 0L, 7092672L, 6050928L, 2586416L, 2586608L, 29192896L); case 2: return CreateOffsets(7018288L, 7017712L, 0L, 7094384L, 6052832L, 2587200L, 2587392L, 29192896L); case 3: return CreateOffsets(7018224L, 7017648L, 0L, 7094320L, 6052768L, 2587216L, 2587408L, 29209280L); case 4: return CreateOffsets(7025840L, 7025264L, 0L, 7101952L, 6059616L, 2588864L, 2589056L, 29225664L); case 5: return CreateOffsets(7026144L, 7025568L, 0L, 7102256L, 6059888L, 2588880L, 2589072L, 29229760L); case 6: return CreateOffsets(7026192L, 7025616L, 0L, 7102304L, 6059936L, 2588928L, 2589120L, 29225664L); case 7: return CreateOffsets(7026224L, 7025648L, 0L, 7102336L, 6059968L, 2588928L, 2589120L, 29221568L); case 8: return CreateOffsets(7040464L, 7039888L, 0L, 7116576L, 6073936L, 2589024L, 2589216L, 29225792L); case 9: return CreateOffsets(7040496L, 7039920L, 0L, 7116608L, 6073968L, 2589040L, 2589232L, 29229888L); case 10: return CreateOffsets(7042400L, 7041824L, 0L, 7118512L, 6075856L, 2588944L, 2589136L, 29266816L); case 11: return CreateOffsets(7043184L, 7042608L, 0L, 7119296L, 6076592L, 2589648L, 2589840L, 29270848L); case 12: return CreateOffsets(7043584L, 7043008L, 0L, 7119696L, 6076752L, 2589808L, 2590000L, 29270848L); case 13: return CreateOffsets(7038816L, 7038240L, 0L, 7114928L, 6071552L, 2589904L, 2590096L, 29274944L); case 14: return CreateOffsets(7038928L, 7038352L, 0L, 7115040L, 6071568L, 2589904L, 2590096L, 29274944L); case 15: return CreateOffsets(7038832L, 7038256L, 0L, 7114944L, 6071568L, 2589904L, 2590096L, 29274944L); case 16: return CreateOffsets(7037424L, 7036848L, 0L, 7113536L, 6071664L, 2590000L, 2590192L, 29279040L); case 17: return CreateOffsets(7062768L, 7062192L, 0L, 7137456L, 6086256L, 2593776L, 2593968L, 29365056L); case 18: return CreateOffsets(7058160L, 7057584L, 0L, 7132848L, 6081824L, 2592432L, 2592624L, 29352768L); case 19: return CreateOffsets(7058160L, 7057584L, 0L, 7132848L, 6081824L, 2592432L, 2592624L, 29352768L); case 20: return CreateOffsets(7056848L, 7056272L, 0L, 7131536L, 6080496L, 2592640L, 2592832L, 29360960L); case 22: return CreateOffsets(7056352L, 0L, 6037408L, 7130512L, 6080560L, 2592640L, 2592832L, 29356864L); } break; } break; } return null; } private static Dictionary<string, long> CreateOffsets(long monoManagerAwakeFromLoadOffset, long monoManagerIsAssemblyCreatedOffset, long isFileCreatedOffset, long scriptingManagerDeconstructorOffset, long convertSeparatorsToPlatformOffset, long mallocInternalOffset, long freeAllocInternalOffset, long scriptingAssembliesOffset) { return new Dictionary<string, long> { ["MonoManagerAwakeFromLoadOffset"] = monoManagerAwakeFromLoadOffset, ["MonoManagerIsAssemblyCreatedOffset"] = monoManagerIsAssemblyCreatedOffset, ["IsFileCreatedOffset"] = isFileCreatedOffset, ["ScriptingManagerDeconstructorOffset"] = scriptingManagerDeconstructorOffset, ["ConvertSeparatorsToPlatformOffset"] = convertSeparatorsToPlatformOffset, ["MallocInternalOffset"] = mallocInternalOffset, ["FreeAllocInternalOffset"] = freeAllocInternalOffset, ["ScriptingAssembliesOffset"] = scriptingAssembliesOffset }; } } internal class MiniPdbReader { private readonly PeReader _peReader; private byte[] _pdbFile; internal bool IsPdbAvailable; internal bool UseCache; internal MiniPdbReader(string targetFilePath) { _peReader = new PeReader(targetFilePath); if (_peReader.RsdsPdbFileName == null) { Log.Info("No pdb path found in the pe file. Falling back to supported versions"); return; } UseCache = Config.LastDownloadedGUID.Value == _peReader.PdbGuid; Log.Message((UseCache ? "U" : "Not u") + "sing the config cache"); if (!UseCache) { if (DownloadUnityPdb(_peReader)) { Config.LastDownloadedGUID.Value = _peReader.PdbGuid; IsPdbAvailable = true; } else { Log.Info("Failed to find the linked pdb in the unity symbol server. Falling back to supported versions"); } } else { IsPdbAvailable = true; } } private bool DownloadUnityPdb(PeReader peReader) { if (DownloadUnityPdbCab(peReader)) { return true; } string url = peReader.RsdsPdbFileName + "/" + peReader.PdbGuid + "/" + peReader.RsdsPdbFileName; string text = Path.Combine(Path.GetTempPath(), "UnityEngine.pdb"); if (!Win32.DownloadUnitySymbolFile(url, text)) { return false; } _pdbFile = File.ReadAllBytes(text); File.Delete(text); return true; } private bool DownloadUnityPdbCab(PeReader peReader) { //IL_0068: Unknown result type (might be due to invalid IL or missing references) try { string text = peReader.RsdsPdbFileName.TrimEnd('b') + "_"; string url = peReader.RsdsPdbFileName + "/" + peReader.PdbGuid + "/" + text; string tempPath = Path.GetTempPath(); string text2 = Path.Combine(tempPath, "pdb.cab"); if (!Win32.DownloadUnitySymbolFile(url, text2)) { return false; } CabInfo val = new CabInfo(text2); Log.Info("Unpacking the compressed pdb"); ((ArchiveInfo)val).Unpack(tempPath); string path = Path.Combine(tempPath, "pdb.cab"); _pdbFile = File.ReadAllBytes(text2); File.Delete(text2); File.Delete(path); return true; } catch { return false; } } internal unsafe IntPtr FindFunctionOffset(BytePattern[] bytePatterns) { fixed (byte* ptr = &_pdbFile[0]) { IntPtr pdbStartAddress = (IntPtr)ptr; long sizeOfPdb = _pdbFile.Length; var anon = bytePatterns.Select((BytePattern p) => new { p = p, res = p.Match(pdbStartAddress, sizeOfPdb) }).FirstOrDefault(m => m.res > 0); if (anon == null) { return IntPtr.Zero; } Log.Info($"Found at {anon.res:X} ({pdbStartAddress.ToInt64() + anon.res:X})"); uint* ptr2 = (uint*)(pdbStartAddress.ToInt64() + anon.res - 7); uint num = *ptr2; ushort* ptr3 = (ushort*)(pdbStartAddress.ToInt64() + anon.res - 3); int num2 = *ptr3 - 1; num += _peReader.ImageSectionHeaders[num2].VirtualAddress; Log.Info("Function offset : " + num.ToString("X") + " | PE section : " + num2); return new IntPtr(num); } } } internal static class MonoManagerCommon { public unsafe static void CopyNativeAssemblyListToManagedV0(List<StringStorageDefaultV0> managedAssemblyList, Vector<StringStorageDefaultV0> assemblyNames) { managedAssemblyList.Clear(); for (StringStorageDefaultV0* ptr = assemblyNames.first; ptr != assemblyNames.last; ptr++) { managedAssemblyList.Add(*ptr); } } public unsafe static void AddAssembliesToManagedListV0(List<StringStorageDefaultV0> managedAssemblyList, List<string> pluginAssemblyPaths) { foreach (string pluginAssemblyPath in pluginAssemblyPaths) { string? fileName = Path.GetFileName(pluginAssemblyPath); ulong num = (ulong)fileName.Length; IntPtr intPtr = Marshal.StringToHGlobalAnsi(fileName); byte* ptr = (byte*)(void*)intPtr + num; while (*ptr != 0) { ptr++; num++; } StringStorageDefaultV0 stringStorageDefaultV = default(StringStorageDefaultV0); stringStorageDefaultV.data = intPtr; stringStorageDefaultV.extra1 = num; stringStorageDefaultV.size = num; stringStorageDefaultV.flags = 31uL; stringStorageDefaultV.extra2 = 0uL; StringStorageDefaultV0 item = stringStorageDefaultV; managedAssemblyList.Add(item); } } public unsafe static void AllocNativeAssemblyListFromManagedV0(List<StringStorageDefaultV0> managedAssemblyList, Vector<StringStorageDefaultV0>* assemblyNames) { StringStorageDefaultV0* ptr = (StringStorageDefaultV0*)(void*)Marshal.AllocHGlobal(Marshal.SizeOf(typeof(StringStorageDefaultV0)) * managedAssemblyList.Count); int i = 0; StringStorageDefaultV0* ptr2 = ptr; for (; i < managedAssemblyList.Count; i++) { *ptr2 = managedAssemblyList[i]; ptr2++; } assemblyNames->first = ptr; assemblyNames->last = ptr + managedAssemblyList.Count; assemblyNames->end = assemblyNames->last; } public unsafe static void PrintAssembliesV0(Vector<StringStorageDefaultV0> assemblyNames) { for (StringStorageDefaultV0* ptr = assemblyNames.first; ptr != assemblyNames.last; ptr++) { if (ptr->flags < 16) { Log.Warning("Ass: " + Marshal.PtrToStringAnsi((IntPtr)ptr)); } else { Log.Warning("Ass: " + Marshal.PtrToStringAnsi(ptr->data, (int)ptr->size)); } } } public unsafe static void CopyNativeAssemblyListToManagedV1(List<StringStorageDefaultV1> managedAssemblyList, Vector<StringStorageDefaultV1> assemblyNames) { managedAssemblyList.Clear(); for (StringStorageDefaultV1* ptr = assemblyNames.first; ptr != assemblyNames.last; ptr++) { managedAssemblyList.Add(*ptr); } } public unsafe static void AddAssembliesToManagedListV1(List<StringStorageDefaultV1> managedAssemblyList, List<string> pluginAssemblyPaths) { foreach (string pluginAssemblyPath in pluginAssemblyPaths) { string? fileName = Path.GetFileName(pluginAssemblyPath); ulong num = (ulong)fileName.Length; IntPtr intPtr = Marshal.StringToHGlobalAnsi(fileName); byte* ptr = (byte*)(void*)intPtr + num; while (*ptr != 0) { ptr++; num++; } StringStorageDefaultV1 stringStorageDefaultV = default(StringStorageDefaultV1); stringStorageDefaultV.label = UseRightStructs.LabelMemStringId; stringStorageDefaultV.data = intPtr; stringStorageDefaultV.capacity = num; stringStorageDefaultV.size = num; StringStorageDefaultV1 item = stringStorageDefaultV; managedAssemblyList.Add(item); } } public unsafe static void AllocNativeAssemblyListFromManagedV1(List<StringStorageDefaultV1> managedAssemblyList, Vector<StringStorageDefaultV1>* assemblyNames) { StringStorageDefaultV1* ptr = (StringStorageDefaultV1*)(void*)Marshal.AllocHGlobal(Marshal.SizeOf(typeof(StringStorageDefaultV1)) * managedAssemblyList.Count); int i = 0; StringStorageDefaultV1* ptr2 = ptr; for (; i < managedAssemblyList.Count; i++) { *ptr2 = managedAssemblyList[i]; ptr2++; } assemblyNames->first = ptr; assemblyNames->last = ptr + managedAssemblyList.Count; assemblyNames->end = assemblyNames->last; } public unsafe static void PrintAssembliesV1(Vector<StringStorageDefaultV1> assemblyNames) { for (StringStorageDefaultV1* ptr = assemblyNames.first; ptr != assemblyNames.last; ptr++) { nint ptr2 = ptr->data; if (ptr->data == 0) { ptr2 = (nint)((byte*)ptr + 8); } Log.Warning($"Ass: {Marshal.PtrToStringAnsi(ptr2, (int)ptr->size)} | label : {ptr->label:X}"); } } public unsafe static void CopyNativeAssemblyListToManagedV2(List<StringStorageDefaultV1> managedAssemblyList, DynamicArrayData assemblyNames) { managedAssemblyList.Clear(); ulong num = 0uL; StringStorageDefaultV1* ptr = (StringStorageDefaultV1*)assemblyNames.ptr; for (; num < assemblyNames.size; num++) { managedAssemblyList.Add(*ptr); ptr++; } } public unsafe static void AllocNativeAssemblyListFromManagedV2(List<StringStorageDefaultV1> managedAssemblyList, DynamicArrayData* assemblyNames) { StringStorageDefaultV1* ptr = (StringStorageDefaultV1*)(void*)Marshal.AllocHGlobal(Marshal.SizeOf(typeof(StringStorageDefaultV1)) * managedAssemblyList.Count); int i = 0; StringStorageDefaultV1* ptr2 = ptr; for (; i < managedAssemblyList.Count; i++) { *ptr2 = managedAssemblyList[i]; ptr2++; } assemblyNames->ptr = (nint)ptr; assemblyNames->size = (ulong)managedAssemblyList.Count; assemblyNames->capacity = assemblyNames->size; } public unsafe static void PrintAssembliesV2(DynamicArrayData assemblyNames) { ulong num = 0uL; StringStorageDefaultV1* ptr = (StringStorageDefaultV1*)assemblyNames.ptr; for (; num < assemblyNames.size; num++) { nint ptr2 = ptr->data; if (ptr->data == 0) { ptr2 = (nint)((byte*)ptr + 8); } Log.Warning($"Ass: {Marshal.PtrToStringAnsi(ptr2, (int)ptr->size)} | label : {ptr->label:X}"); ptr++; } } public unsafe static void CopyNativeAssemblyListToManagedV3(List<StringStorageDefaultV2> managedAssemblyList, DynamicArrayData assemblyNames) { managedAssemblyList.Clear(); ulong num = 0uL; StringStorageDefaultV2* ptr = (StringStorageDefaultV2*)assemblyNames.ptr; for (; num < assemblyNames.size; num++) { managedAssemblyList.Add(*ptr); ptr++; } } public unsafe static void AddAssembliesToManagedListV3(List<StringStorageDefaultV2> managedAssemblyList, List<string> pluginAssemblyPaths) { foreach (string pluginAssemblyPath in pluginAssemblyPaths) { string? fileName = Path.GetFileName(pluginAssemblyPath); ulong num = (ulong)fileName.Length; IntPtr intPtr = Marshal.StringToHGlobalAnsi(fileName); byte* ptr = (byte*)(void*)intPtr + num; while (*ptr != 0) { ptr++; num++; } StringStorageDefaultV2 stringStorageDefaultV = default(StringStorageDefaultV2); stringStorageDefaultV.union = new StringStorageDefaultV2Union { heap = new HeapAllocatedRepresentationV2 { data = intPtr, capacity = num, size = num } }; stringStorageDefaultV.data_repr = StringRepresentation.Heap; stringStorageDefaultV.label = UseRightStructs.LabelMemStringId; StringStorageDefaultV2 item = stringStorageDefaultV; managedAssemblyList.Add(item); } } public unsafe static void AllocNativeAssemblyListFromManagedV3(List<StringStorageDefaultV2> managedAssemblyList, DynamicArrayData* assemblyNames) { StringStorageDefaultV2* ptr = (StringStorageDefaultV2*)(void*)Marshal.AllocHGlobal(Marshal.SizeOf(typeof(StringStorageDefaultV2)) * managedAssemblyList.Count); int i = 0; StringStorageDefaultV2* ptr2 = ptr; for (; i < managedAssemblyList.Count; i++) { *ptr2 = managedAssemblyList[i]; ptr2++; } assemblyNames->ptr = (nint)ptr; assemblyNames->size = (ulong)managedAssemblyList.Count; assemblyNames->capacity = assemblyNames->size; } public unsafe static void PrintAssembliesV3(DynamicArrayData assemblyNames) { ulong num = 0uL; StringStorageDefaultV2* ptr = (StringStorageDefaultV2*)assemblyNames.ptr; for (; num < assemblyNames.size; num++) { if (ptr->data_repr == StringRepresentation.Embedded) { Log.Warning($"Ass: {Marshal.PtrToStringAnsi((IntPtr)ptr->union.embedded.data)} | label : {ptr->label:X}"); } else { Log.Warning($"Ass: {Marshal.PtrToStringAnsi(ptr->union.heap.data, (int)ptr->union.heap.size)} | label : {ptr->label:X}"); } ptr++; } } public unsafe static void CopyNativeAssemblyListToManagedV4(List<StringStorageDefaultV3> managedAssemblyList, DynamicArrayData assemblyNames) { managedAssemblyList.Clear(); ulong num = 0uL; StringStorageDefaultV3* ptr = (StringStorageDefaultV3*)assemblyNames.ptr; for (; num < assemblyNames.size; num++) { managedAssemblyList.Add(*ptr); ptr++; } } public unsafe static void AddAssembliesToManagedListV4(List<StringStorageDefaultV3> managedAssemblyList, List<string> pluginAssemblyPaths) { foreach (string pluginAssemblyPath in pluginAssemblyPaths) { string? fileName = Path.GetFileName(pluginAssemblyPath); ulong num = (ulong)fileName.Length; IntPtr intPtr = Marshal.StringToHGlobalAnsi(fileName); byte* ptr = (byte*)(void*)intPtr + num; while (*ptr != 0) { ptr++; num++; } StringStorageDefaultV3 stringStorageDefaultV = default(StringStorageDefaultV3); stringStorageDefaultV.union = new StringStorageDefaultV3Union { heap = new HeapAllocatedRepresentationV3 { data = intPtr, capacity = num, size = num, flags = new StringStorageDefaultV3Flags { IsHeap = true } } }; stringStorageDefaultV.label = UseRightStructs.LabelMemStringId; StringStorageDefaultV3 item = stringStorageDefaultV; managedAssemblyList.Add(item); } } public unsafe static void AllocNativeAssemblyListFromManagedV4(List<StringStorageDefaultV3> managedAssemblyList, DynamicArrayData* assemblyNames) { StringStorageDefaultV3* ptr = (StringStorageDefaultV3*)(void*)Marshal.AllocHGlobal(Marshal.SizeOf(typeof(StringStorageDefaultV3)) * managedAssemblyList.Count); int i = 0; StringStorageDefaultV3* ptr2 = ptr; for (; i < managedAssemblyList.Count; i++) { *ptr2 = managedAssemblyList[i]; ptr2++; } assemblyNames->ptr = (nint)ptr; assemblyNames->size = (ulong)managedAssemblyList.Count; assemblyNames->capacity = assemblyNames->size; } public unsafe static void PrintAssembliesV4(DynamicArrayData assemblyNames) { ulong num = 0uL; StringStorageDefaultV3* ptr = (StringStorageDefaultV3*)assemblyNames.ptr; for (; num < assemblyNames.size; num++) { if (ptr->union.embedded.flags.IsEmbedded) { Log.Warning($"Ass: {Marshal.PtrToStringAnsi((IntPtr)ptr->union.embedded.data)} | label : {ptr->label:X}"); } else
BepInEx/plugins/CWVR/CWVR.dll
Decompiled a month ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; using System.Linq; using System.Reflection; using System.Reflection.Emit; using System.Runtime.CompilerServices; using System.Runtime.ConstrainedExecution; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text; using System.Text.RegularExpressions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using CWVR.Assets; using CWVR.Experiments; using CWVR.Input; using CWVR.Networking; using CWVR.Patches; using CWVR.Player; using CWVR.UI; using CWVR.UI.Settings; using CurvedUI; using HarmonyLib; using HorizonBasedAmbientOcclusion.Universal; using JetBrains.Annotations; using Microsoft.CodeAnalysis; using Microsoft.MixedReality.Toolkit.Experimental.UI; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Photon.Pun; using Steamworks; using TMPro; using Unity.Burst.LowLevel; using Unity.Mathematics; using UnityEngine; using UnityEngine.Animations.Rigging; using UnityEngine.EventSystems; using UnityEngine.Events; using UnityEngine.Experimental.Rendering; using UnityEngine.InputSystem; using UnityEngine.InputSystem.UI; using UnityEngine.InputSystem.XR; using UnityEngine.Rendering; using UnityEngine.Rendering.Universal; using UnityEngine.SceneManagement; using UnityEngine.Serialization; using UnityEngine.SpatialTracking; using UnityEngine.UI; using UnityEngine.XR; using UnityEngine.XR.Interaction.Toolkit; using UnityEngine.XR.Interaction.Toolkit.Interactors; using UnityEngine.XR.Interaction.Toolkit.Interactors.Visuals; using UnityEngine.XR.Interaction.Toolkit.UI; using UnityEngine.XR.Management; using UnityEngine.XR.OpenXR; using UnityEngine.XR.OpenXR.Features; using UnityEngine.XR.OpenXR.Features.Interactions; using Zorro.ControllerSupport; using Zorro.Core; using Zorro.Core.Serizalization; using Zorro.Settings; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("CWVR")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyCopyright("Copyright (c) DaXcess 2025")] [assembly: AssemblyDescription("Recording creatures in VR")] [assembly: AssemblyFileVersion("1.2.0.0")] [assembly: AssemblyInformationalVersion("1.2.0+43b532498b65068608dff19c997e64f84668f332")] [assembly: AssemblyProduct("CWVR")] [assembly: AssemblyTitle("CWVR")] [assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/DaXcess/CWVR")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.2.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace Microsoft.MixedReality.Toolkit.Experimental.UI { public class CapsLockHighlight : MonoBehaviour { [SerializeField] private Image m_Highlight; private NonNativeKeyboard m_Keyboard; private void Start() { m_Keyboard = ((Component)this).GetComponentInParent<NonNativeKeyboard>(); UpdateState(); } private void Update() { UpdateState(); } private void UpdateState() { bool enabled = false; if ((Object)(object)m_Keyboard != (Object)null) { enabled = m_Keyboard.IsCapsLocked; } if ((Object)(object)m_Highlight != (Object)null) { ((Behaviour)m_Highlight).enabled = enabled; } } } [RequireComponent(typeof(Button))] public class KeyboardKeyFunc : MonoBehaviour { public enum Function { Enter, Tab, ABC, Symbol, Previous, Next, Close, Dictate, Shift, CapsLock, Space, Backspace, Macro, UNDEFINED } private NonNativeKeyboard keyboard; [SerializeField] [FormerlySerializedAs("m_ButtonFunction")] private Function buttonFunction = Function.UNDEFINED; [SerializeField] [FormerlySerializedAs("m_MacroText")] private string macroText; public Function ButtonFunction => buttonFunction; public string MacroText => macroText; private void Awake() { if ((Object)(object)keyboard == (Object)null) { keyboard = ((Component)this).GetComponentInParent<NonNativeKeyboard>(); } } private void Start() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Expected O, but got Unknown Button component = ((Component)this).GetComponent<Button>(); ((UnityEventBase)component.onClick).RemoveAllListeners(); ((UnityEvent)component.onClick).AddListener(new UnityAction(FireFunctionKey)); } private void FireFunctionKey() { keyboard.FunctionKey(this); } } [RequireComponent(typeof(Button))] public class KeyboardValueKey : MonoBehaviour { private NonNativeKeyboard keyboard; public string Value; public string ShiftValue; private TextMeshProUGUI m_Text; private Button m_Button; private void Awake() { if ((Object)(object)keyboard == (Object)null) { keyboard = ((Component)this).GetComponentInParent<NonNativeKeyboard>(); } m_Button = ((Component)this).GetComponent<Button>(); } private void Start() { //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Expected O, but got Unknown m_Text = ((Component)this).gameObject.GetComponentInChildren<TextMeshProUGUI>(); ((TMP_Text)m_Text).text = Value; ((UnityEventBase)m_Button.onClick).RemoveAllListeners(); ((UnityEvent)m_Button.onClick).AddListener(new UnityAction(FireAppendValue)); keyboard.OnKeyboardShifted += Shift; } private void FireAppendValue() { keyboard.AppendValue(this); } public void Shift(bool isShifted) { if (isShifted && !string.IsNullOrEmpty(ShiftValue)) { ((TMP_Text)m_Text).text = ShiftValue; } else { ((TMP_Text)m_Text).text = Value; } } } public class NonNativeKeyboard : MonoBehaviour { public enum LayoutType { Alpha, Symbol, URL, Email } public TMP_InputField InputField; public bool SliderEnabled; public bool CloseOnEnter = true; public bool SubmitOnEnter; public bool DisableLayouts = true; public Image NumbersKeyboard; public Image AlphaKeyboard; public Image SymbolKeyboard; public Image AlphaSubKeys; public Image AlphaWebKeys; public Image AlphaMailKeys; private LayoutType m_LastKeyboardLayout; [Header("Positioning")] [SerializeField] private float m_MaxScale = 1f; [SerializeField] private float m_MinScale = 1f; [SerializeField] private float m_MaxDistance = 3.5f; [SerializeField] private float m_MinDistance = 0.25f; public bool CloseOnInactivity = true; public float CloseOnInactivityTime = 15f; private float _closingTime; private bool m_IsShifted; private bool m_IsCapslocked; private int m_CaretPosition; private Vector3 m_StartingScale = Vector3.one; private Vector3 m_ObjectBounds; private AudioSource _audioSource; public bool IsShifted => m_IsShifted; public bool IsCapsLocked => m_IsCapslocked; public event EventHandler OnTextSubmitted = delegate { }; public event Action<string> OnMacroTriggered = delegate { }; public event Action<string> OnTextUpdated = delegate { }; public event EventHandler OnClosed = delegate { }; public event EventHandler OnPrevious = delegate { }; public event EventHandler OnNext = delegate { }; public event EventHandler OnPlacement = delegate { }; public event Action<bool> OnKeyboardShifted = delegate { }; public event Action<KeyboardValueKey> OnKeyboardValueKeyPressed = delegate { }; public event Action<KeyboardKeyFunc> OnKeyboardFunctionKeyPressed = delegate { }; private void Awake() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) m_StartingScale = ((Component)this).transform.localScale; Bounds val = RectTransformUtility.CalculateRelativeRectTransformBounds(((Component)this).transform); RectTransform component = ((Component)this).GetComponent<RectTransform>(); m_ObjectBounds = new Vector3(((Bounds)(ref val)).size.x * ((Transform)component).localScale.x, ((Bounds)(ref val)).size.y * ((Transform)component).localScale.y, ((Bounds)(ref val)).size.z * ((Transform)component).localScale.z); ((Component)this).gameObject.SetActive(false); } protected void Start() { TMP_InputField inputField = InputField; if (inputField != null) { ((UnityEvent<string>)(object)inputField.onValueChanged).AddListener((UnityAction<string>)DoTextUpdated); } } private void DoTextUpdated(string value) { this.OnTextUpdated?.Invoke(value); } private void UpdateCaretPosition(int newPos) { InputField.caretPosition = newPos; } protected void OnDisable() { m_LastKeyboardLayout = LayoutType.Alpha; } public void PresentKeyboard() { ResetClosingTime(); ((Component)this).gameObject.SetActive(true); ActivateSpecificKeyboard(LayoutType.Alpha); this.OnPlacement(this, EventArgs.Empty); TMP_InputField inputField = InputField; if (inputField != null) { inputField.ActivateInputField(); } } public void PresentKeyboard(string startText) { PresentKeyboard(); Clear(); InputField.text = startText; } public void PresentKeyboard(LayoutType keyboardType) { PresentKeyboard(); ActivateSpecificKeyboard(keyboardType); } public void PresentKeyboard(string startText, LayoutType keyboardType) { PresentKeyboard(startText); ActivateSpecificKeyboard(keyboardType); } public void RepositionKeyboard(Vector3 kbPos, float verticalOffset = 0f) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) ((Component)this).transform.position = kbPos; ScaleToSize(); LookAtTargetOrigin(); } public void RepositionKeyboard(Transform objectTransform, BoxCollider aCollider = null, float verticalOffset = 0f) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) ((Component)this).transform.position = objectTransform.position; if ((Object)(object)aCollider != (Object)null) { Bounds bounds = ((Collider)aCollider).bounds; float num = 0f - (((Bounds)(ref bounds)).size.y * 0.5f + verticalOffset); ((Component)this).transform.Translate(0f, num, -0.6f, objectTransform); } else { float num2 = 0f - (m_ObjectBounds.y * 0.5f + verticalOffset); ((Component)this).transform.Translate(0f, num2, -0.6f, objectTransform); } ScaleToSize(); LookAtTargetOrigin(); } private void ScaleToSize() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) Vector3 val = ((Component)this).transform.position - ((Component)Camera.main).transform.position; float magnitude = ((Vector3)(ref val)).magnitude; float num = (magnitude - m_MinDistance) / (m_MaxDistance - m_MinDistance); float num2 = m_MinScale + (m_MaxScale - m_MinScale) * num; num2 = Mathf.Clamp(num2, m_MinScale, m_MaxScale); ((Component)this).transform.localScale = m_StartingScale * num2; Debug.LogFormat("Setting scale: {0} for distance: {1}", new object[2] { num2, magnitude }); } private void LookAtTargetOrigin() { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) ((Component)this).transform.LookAt(((Component)Camera.main).transform.position); ((Component)this).transform.Rotate(Vector3.up, 180f); } private void ActivateSpecificKeyboard(LayoutType keyboardType) { if (DisableLayouts) { DisableAllKeyboards(); ResetKeyboardState(); switch (keyboardType) { case LayoutType.URL: ShowAlphaKeyboard(); TryToShowURLSubkeys(); break; case LayoutType.Email: ShowAlphaKeyboard(); TryToShowEmailSubkeys(); break; case LayoutType.Symbol: ShowSymbolKeyboard(); break; default: ShowAlphaKeyboard(); TryToShowAlphaSubkeys(); break; } } } public void AppendValue(KeyboardValueKey valueKey) { IndicateActivity(); string text = ""; this.OnKeyboardValueKeyPressed(valueKey); if (Object.op_Implicit((Object)(object)InputField)) { text = ((!m_IsShifted || string.IsNullOrEmpty(valueKey.ShiftValue)) ? valueKey.Value : valueKey.ShiftValue); if (!m_IsCapslocked) { Shift(newShiftState: false); } m_CaretPosition = InputField.caretPosition; InputField.text = InputField.text.Insert(m_CaretPosition, text); m_CaretPosition += text.Length; UpdateCaretPosition(m_CaretPosition); } } public void FunctionKey(KeyboardKeyFunc functionKey) { IndicateActivity(); this.OnKeyboardFunctionKeyPressed(functionKey); switch (functionKey.ButtonFunction) { case KeyboardKeyFunc.Function.Enter: Enter(); break; case KeyboardKeyFunc.Function.Tab: Tab(); break; case KeyboardKeyFunc.Function.ABC: ActivateSpecificKeyboard(m_LastKeyboardLayout); break; case KeyboardKeyFunc.Function.Symbol: ActivateSpecificKeyboard(LayoutType.Symbol); break; case KeyboardKeyFunc.Function.Previous: MoveCaretLeft(); break; case KeyboardKeyFunc.Function.Next: MoveCaretRight(); break; case KeyboardKeyFunc.Function.Close: Close(); break; case KeyboardKeyFunc.Function.Shift: Shift(!m_IsShifted); break; case KeyboardKeyFunc.Function.CapsLock: CapsLock(!m_IsCapslocked); break; case KeyboardKeyFunc.Function.Space: Space(); break; case KeyboardKeyFunc.Function.Backspace: Backspace(); break; case KeyboardKeyFunc.Function.Macro: Macro(functionKey.MacroText); break; case KeyboardKeyFunc.Function.UNDEFINED: Debug.LogErrorFormat("The {0} key on this keyboard hasn't been assigned a function.", new object[1] { ((Object)functionKey).name }); break; default: throw new ArgumentOutOfRangeException(); } } public void Backspace() { if (!Object.op_Implicit((Object)(object)InputField)) { return; } if (InputField.selectionFocusPosition != InputField.caretPosition || InputField.selectionAnchorPosition != InputField.caretPosition) { if (InputField.selectionAnchorPosition > InputField.selectionFocusPosition) { InputField.text = InputField.text.Substring(0, InputField.selectionFocusPosition) + InputField.text.Substring(InputField.selectionAnchorPosition); InputField.caretPosition = InputField.selectionFocusPosition; } else { InputField.text = InputField.text.Substring(0, InputField.selectionAnchorPosition) + InputField.text.Substring(InputField.selectionFocusPosition); InputField.caretPosition = InputField.selectionAnchorPosition; } m_CaretPosition = InputField.caretPosition; InputField.selectionAnchorPosition = m_CaretPosition; InputField.selectionFocusPosition = m_CaretPosition; } else { m_CaretPosition = InputField.caretPosition; if (m_CaretPosition > 0) { m_CaretPosition--; InputField.text = InputField.text.Remove(m_CaretPosition, 1); UpdateCaretPosition(m_CaretPosition); } } } public void Previous() { this.OnPrevious(this, EventArgs.Empty); } public void Next() { this.OnNext(this, EventArgs.Empty); } public void Enter() { this.OnTextSubmitted?.Invoke(this, EventArgs.Empty); if (SubmitOnEnter) { InputField.OnSubmit((BaseEventData)null); } if (CloseOnEnter) { Close(); } } public void Macro(string text) { this.OnMacroTriggered?.Invoke(text); } public void Shift(bool newShiftState) { m_IsShifted = newShiftState; this.OnKeyboardShifted(m_IsShifted); if (m_IsCapslocked && !newShiftState) { m_IsCapslocked = false; } } public void CapsLock(bool newCapsLockState) { m_IsCapslocked = newCapsLockState; Shift(newCapsLockState); } public void Space() { m_CaretPosition = InputField.caretPosition; InputField.text = InputField.text.Insert(m_CaretPosition++, " "); UpdateCaretPosition(m_CaretPosition); } public void Tab() { string text = "\t"; m_CaretPosition = InputField.caretPosition; InputField.text = InputField.text.Insert(m_CaretPosition, text); m_CaretPosition += text.Length; UpdateCaretPosition(m_CaretPosition); } public void MoveCaretLeft() { m_CaretPosition = InputField.caretPosition; if (m_CaretPosition > 0) { m_CaretPosition--; UpdateCaretPosition(m_CaretPosition); } } public void MoveCaretRight() { m_CaretPosition = InputField.caretPosition; if (m_CaretPosition < InputField.text.Length) { m_CaretPosition++; UpdateCaretPosition(m_CaretPosition); } } public void Close() { ((Component)this).gameObject.SetActive(false); this.OnClosed(this, EventArgs.Empty); } public void Clear() { ResetKeyboardState(); if (InputField.caretPosition != 0) { InputField.MoveTextStart(false); } InputField.text = ""; m_CaretPosition = InputField.caretPosition; } public void SetScaleSizeValues(float minScale, float maxScale, float minDistance, float maxDistance) { m_MinScale = minScale; m_MaxScale = maxScale; m_MinDistance = minDistance; m_MaxDistance = maxDistance; } public void ShowAlphaKeyboard() { ((Component)NumbersKeyboard).gameObject.SetActive(true); ((Component)AlphaKeyboard).gameObject.SetActive(true); m_LastKeyboardLayout = LayoutType.Alpha; } private bool TryToShowAlphaSubkeys() { if (((UIBehaviour)AlphaKeyboard).IsActive()) { ((Component)AlphaSubKeys).gameObject.SetActive(true); return true; } return false; } private bool TryToShowEmailSubkeys() { if (((UIBehaviour)AlphaKeyboard).IsActive()) { ((Component)AlphaMailKeys).gameObject.SetActive(true); m_LastKeyboardLayout = LayoutType.Email; return true; } return false; } private bool TryToShowURLSubkeys() { if (((UIBehaviour)AlphaKeyboard).IsActive()) { ((Component)AlphaWebKeys).gameObject.SetActive(true); m_LastKeyboardLayout = LayoutType.URL; return true; } return false; } public void ShowSymbolKeyboard() { ((Component)SymbolKeyboard).gameObject.SetActive(true); } private void DisableAllKeyboards() { if (DisableLayouts) { Image numbersKeyboard = NumbersKeyboard; if (numbersKeyboard != null) { ((Component)numbersKeyboard).gameObject.SetActive(false); } Image alphaKeyboard = AlphaKeyboard; if (alphaKeyboard != null) { ((Component)alphaKeyboard).gameObject.SetActive(false); } Image symbolKeyboard = SymbolKeyboard; if (symbolKeyboard != null) { ((Component)symbolKeyboard).gameObject.SetActive(false); } Image alphaWebKeys = AlphaWebKeys; if (alphaWebKeys != null) { ((Component)alphaWebKeys).gameObject.SetActive(false); } Image alphaMailKeys = AlphaMailKeys; if (alphaMailKeys != null) { ((Component)alphaMailKeys).gameObject.SetActive(false); } Image alphaSubKeys = AlphaSubKeys; if (alphaSubKeys != null) { ((Component)alphaSubKeys).gameObject.SetActive(false); } } } private void ResetKeyboardState() { CapsLock(newCapsLockState: false); } private void IndicateActivity() { ResetClosingTime(); if ((Object)(object)_audioSource == (Object)null) { _audioSource = ((Component)this).GetComponent<AudioSource>(); } if ((Object)(object)_audioSource != (Object)null) { _audioSource.Play(); } } private void ResetClosingTime() { if (CloseOnInactivity) { _closingTime = Time.time + CloseOnInactivityTime; } } private void CheckForCloseOnInactivityTimeExpired() { if (Time.time > _closingTime && CloseOnInactivity) { Close(); } } } public class SymbolDisableHighlight : MonoBehaviour { [SerializeField] private Text m_TextField; [SerializeField] private Image m_ImageField; [SerializeField] private Color m_DisabledColor = Color.grey; private Color m_StartingColor = Color.white; private Button m_Button; private void Start() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)m_TextField != (Object)null) { m_StartingColor = ((Graphic)m_TextField).color; } if ((Object)(object)m_ImageField != (Object)null) { m_StartingColor = ((Graphic)m_ImageField).color; } m_Button = ((Component)this).GetComponentInParent<Button>(); UpdateState(); } private void Update() { UpdateState(); } private void UpdateState() { //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)m_TextField != (Object)null && (Object)(object)m_Button != (Object)null) { ((Graphic)m_TextField).color = (((Selectable)m_Button).interactable ? m_StartingColor : m_DisabledColor); } if ((Object)(object)m_ImageField != (Object)null && (Object)(object)m_Button != (Object)null) { ((Graphic)m_ImageField).color = (((Selectable)m_Button).interactable ? m_StartingColor : m_DisabledColor); } } } public class SymbolKeyboard : MonoBehaviour { private NonNativeKeyboard keyboard; [SerializeField] private Button m_PageBck; [SerializeField] private Button m_PageFwd; private void Awake() { if ((Object)(object)keyboard == (Object)null) { keyboard = ((Component)this).GetComponentInParent<NonNativeKeyboard>(); } } private void Update() { ((Selectable)m_PageBck).interactable = keyboard.IsShifted; ((Selectable)m_PageFwd).interactable = !keyboard.IsShifted; } } [AddComponentMenu("Scripts/MRTK/Experimental/UICollection")] [RequireComponent(typeof(RectTransform))] [ExecuteInEditMode] public class UICollection : MonoBehaviour { [SerializeField] private float maxWidth = -1f; [SerializeField] private float maxHeight = -1f; [SerializeField] private float horizontalSpacing; [SerializeField] private float verticalSpacing; private RectTransform rectTransform; public float MaxWidth { get { return maxWidth; } set { maxWidth = value; } } public float MaxHeight { get { return maxHeight; } set { maxHeight = value; } } public float HorizontalSpacing { get { return horizontalSpacing; } set { horizontalSpacing = value; } } public float VerticalSpacing { get { return verticalSpacing; } set { verticalSpacing = value; } } public List<RectTransform> Items { get; private set; } private void Awake() { Items = new List<RectTransform>(); } private void Start() { rectTransform = ((Component)this).GetComponent<RectTransform>(); if (Application.isEditor) { CollectItems(); UpdateLayout(); } } private void Update() { if (Application.isEditor) { CollectItems(); UpdateLayout(); } } public void AddItem(RectTransform item) { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) Items.Add(item); ((Transform)item).SetParent(((Component)this).transform); ((Component)item).transform.localScale = Vector3.one; ((Transform)item).position = Vector3.zero; item.anchoredPosition3D = Vector3.zero; UpdateLayout(); } public void RemoveItem(RectTransform item) { Items.Remove(item); UpdateLayout(); } public void RemoveAllItems() { Items.Clear(); UpdateLayout(); } private void CollectItems() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) Items.Clear(); foreach (Transform item in ((Component)this).transform) { RectTransform component = ((Component)item).GetComponent<RectTransform>(); if ((Object)(object)component != (Object)null) { AddItem(component); } } } protected virtual void UpdateLayout() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0159: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_021e: Unknown result type (might be due to invalid IL or missing references) //IL_023a: Unknown result type (might be due to invalid IL or missing references) Rect rect = rectTransform.rect; Vector2 zero = Vector2.zero; if (maxWidth < 0f) { zero.x = ((Rect)(ref rect)).width; } else { zero.x = maxWidth; } if (maxHeight < 0f) { zero.y = ((Rect)(ref rect)).height; } else { zero.y = maxHeight; } Vector2 zero2 = Vector2.zero; Vector2 up = Vector2.up; float num = 0f; float num2 = 0f; for (int i = 0; i < Items.Count; i++) { Items[i].anchorMin = up; Items[i].anchorMax = up; Items[i].pivot = up; Rect rect2 = Items[i].rect; num = Mathf.Max(((Rect)(ref rect2)).height, num); rect2 = Items[i].rect; if (((Rect)(ref rect2)).width + zero2.x > zero.x) { zero2.y += num + verticalSpacing; zero2.x = 0f; rect2 = Items[i].rect; num = ((Rect)(ref rect2)).height; rect2 = Items[i].rect; if (((Rect)(ref rect2)).height + zero2.y > zero.y) { break; } } Items[i].anchoredPosition = new Vector2(zero2.x, 0f - zero2.y); ref float x = ref zero2.x; float num3 = x; rect2 = Items[i].rect; x = num3 + (((Rect)(ref rect2)).width + horizontalSpacing); num2 = Mathf.Max(zero2.x - horizontalSpacing, num2); } float num4 = ((maxWidth < 0f) ? ((Rect)(ref rect)).width : num2); float num5 = ((maxHeight < 0f) ? ((Rect)(ref rect)).height : (num + zero2.y)); rectTransform.sizeDelta = new Vector2(num4, num5); } } } namespace CWVR { public class Config { public ConfigFile File { get; } public ConfigEntry<bool> DisableVR { get; } public ConfigEntry<bool> DisableRagdollCamera { get; } public ConfigEntry<bool> EnableVerboseLogging { get; } public ConfigEntry<float> RenderScale { get; } public ConfigEntry<UpscalingFilterSelection> UpscalingFilter { get; } public ConfigEntry<bool> EnableOcclusionMesh { get; } public ConfigEntry<TurnProviderOption> TurnProvider { get; } public ConfigEntry<float> SmoothTurnSpeedModifier { get; } public ConfigEntry<int> SnapTurnSize { get; } public ConfigEntry<SprintActivationMode> SprintActivation { get; } public ConfigEntry<bool> InteractToZoom { get; } public ConfigEntry<bool> FirstTimeLaunch { get; } public ConfigEntry<string> OpenXRRuntimeFile { get; } public ConfigEntry<string> ControllerBindingsOverride { get; } public Config(ConfigFile file) { //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Expected O, but got Unknown //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Expected O, but got Unknown //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Expected O, but got Unknown //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Expected O, but got Unknown //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Expected O, but got Unknown //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Expected O, but got Unknown File = file; DisableVR = file.Bind<bool>("General", "DisableVR", false, "Disables the main functionality of this mod, can be used if you want to play without VR while keeping the mod installed."); DisableRagdollCamera = file.Bind<bool>("General", "DisableRagdollCamera", false, "Disable if coward"); EnableVerboseLogging = file.Bind<bool>("General", "EnableVerboseLogging", false, "Enables verbose debug logging during OpenXR initialization"); RenderScale = file.Bind<float>("Graphics", "RenderScale", 1f, new ConfigDescription("The resolution scale to render the game in. Lower values mean more performance, at the cost of quality.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.1f, 2f), Array.Empty<object>())); UpscalingFilter = file.Bind<UpscalingFilterSelection>("Graphics", "UpscalingFilter", (UpscalingFilterSelection)0, new ConfigDescription("The filter to use to perform upscaling back to native resolution. Is only used if the render scale is lower than 1.", (AcceptableValueBase)(object)new AcceptableValueEnum<UpscalingFilterSelection>(), Array.Empty<object>())); EnableOcclusionMesh = file.Bind<bool>("Graphics", "EnableOcclusionMesh", true, "The occlusion mesh will cause the game to stop rendering pixels outside of the lens' views, which increases performance."); TurnProvider = file.Bind<TurnProviderOption>("Input", "TurnProvider", TurnProviderOption.Smooth, new ConfigDescription("Specify which turning provider your player uses, if any.", (AcceptableValueBase)(object)new AcceptableValueEnum<TurnProviderOption>(), Array.Empty<object>())); SmoothTurnSpeedModifier = file.Bind<float>("Input", "SmoothTurnSpeedModifier", 1f, new ConfigDescription("A multiplier that is added to the smooth turning speed. Requires turn provider to be set to smooth.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.25f, 5f), Array.Empty<object>())); SnapTurnSize = file.Bind<int>("Input", "SnapTurnSize", 45, new ConfigDescription("The amount of rotation that is applied when performing a snap turn. Requires turn provider to be set to snap.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(10, 180), Array.Empty<object>())); SprintActivation = file.Bind<SprintActivationMode>("Input", "SprintActivation", SprintActivationMode.Press, new ConfigDescription("Determines the way sprint should be used: whether you need to hold the button, or only press it once.", (AcceptableValueBase)(object)new AcceptableValueEnum<SprintActivationMode>(), Array.Empty<object>())); InteractToZoom = file.Bind<bool>("Input", "InteractToZoom", true, "Require holding the interact button to zoom the camera. Removes the need to hold interact to swap items."); FirstTimeLaunch = file.Bind<bool>("Internal", "FirstTimeLaunch", true, "Keeps track if the game was launched in VR before. For internal use only."); OpenXRRuntimeFile = file.Bind<string>("Internal", "OpenXRRuntimeFile", "", "Overrides the OpenXR plugin to use a specific json file. For internal use only."); ControllerBindingsOverride = file.Bind<string>("Internal", "CustomControls", "", "The custom control schema to use"); base..ctor(); } public void ApplySettings() { //IL_003d: Unknown result type (might be due to invalid IL or missing references) XRPatches.EnableOcclusionMesh = EnableOcclusionMesh.Value; RenderPipelineAsset renderPipeline = QualitySettings.renderPipeline; UniversalRenderPipelineAsset val = (UniversalRenderPipelineAsset)(object)((renderPipeline is UniversalRenderPipelineAsset) ? renderPipeline : null); if (!((Object)(object)val == (Object)null)) { val.renderScale = RenderScale.Value; val.upscalingFilter = UpscalingFilter.Value; } } } internal class AcceptableValueEnum<T> : AcceptableValueBase where T : notnull, Enum { private readonly string[] names = Enum.GetNames(typeof(T)); public AcceptableValueEnum() : base(typeof(T)) { } public override object Clamp(object value) { return value; } public override bool IsValid(object value) { return true; } public override string ToDescriptionString() { return "# Acceptable values: " + string.Join(", ", names); } } public enum TurnProviderOption { Snap, Smooth, Disabled } public enum SprintActivationMode { Hold, Press } [CWVRPatch(CWVRPatchTarget.VROnly)] internal static class VREntrypoint { [HarmonyPatch(typeof(GameAPI), "Awake")] [HarmonyPostfix] private static void OnGameEntered(GameAPI __instance) { if (!(((Object)__instance).name != "MainMenuGame")) { ((Component)__instance).gameObject.AddComponent<MainMenu>(); } } } [CWVRPatch(CWVRPatchTarget.Universal)] internal static class UniversalEntrypoint { [CompilerGenerated] private sealed class <Start>d__1 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <Start>d__1(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Expected O, but got Unknown //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitUntil((Func<bool>)(() => Player.localPlayer != null)); <>1__state = 1; return true; case 1: { <>1__state = -1; Scene activeScene = SceneManager.GetActiveScene(); if (((Scene)(ref activeScene)).name == "MainMenuGame") { return false; } new GameObject("CWVR Session Manager").AddComponent<VRSession>(); return false; } } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [HarmonyPatch(typeof(GameAPI), "Awake")] [HarmonyPostfix] private static void OnGameEntered(GameAPI __instance) { if (((Object)__instance).name == "MainMenuGame") { ((Component)__instance).gameObject.AddComponent<HotSwitcher>(); } else { ((MonoBehaviour)__instance).StartCoroutine(Start()); } } [IteratorStateMachine(typeof(<Start>d__1))] private static IEnumerator Start() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <Start>d__1(0); } } public static class Logger { internal static ManualLogSource source; public static void Log(object message) { ManualLogSource obj = source; if (obj != null) { obj.LogInfo(message); } } public static void LogInfo(object message) { ManualLogSource obj = source; if (obj != null) { obj.LogInfo(message); } } public static void LogWarning(object message) { ManualLogSource obj = source; if (obj != null) { obj.LogWarning(message); } } public static void LogError(object message) { ManualLogSource obj = source; if (obj != null) { obj.LogError(message); } } public static void LogDebug(object message) { ManualLogSource obj = source; if (obj != null) { obj.LogDebug(message); } } } internal static class Native { public static readonly IntPtr HKEY_LOCAL_MACHINE = new IntPtr(2147483650L); [DllImport("Advapi32.dll", CharSet = CharSet.Ansi, EntryPoint = "RegOpenKeyExA")] public static extern int RegOpenKeyEx(IntPtr hKey, [In] string lpSubKey, int ulOptions, int samDesired, out IntPtr phkResult); [DllImport("advapi32.dll", CharSet = CharSet.Ansi)] public static extern int RegQueryValueEx(IntPtr hKey, string lpValueName, int lpReserved, out uint lpType, StringBuilder lpData, ref uint lpcbData); [DllImport("advapi32.dll", CharSet = CharSet.Ansi)] public static extern int RegQueryInfoKey(IntPtr hKey, StringBuilder lpClass, IntPtr lpcbClass, IntPtr lpReserved, out uint lpcSubKeys, out uint lpcbMaxSubKeyLen, out uint lpcbMaxClassLen, out uint lpcValues, out uint lpcbMaxValueNameLen, out uint lpcbMaxValueLen, IntPtr lpSecurityDescriptor, IntPtr lpftLastWriteTime); [DllImport("advapi32.dll", CharSet = CharSet.Ansi, EntryPoint = "RegEnumValueA")] public static extern int RegEnumValue(IntPtr hKey, uint dwIndex, StringBuilder lpValueName, ref uint lpcchValueName, IntPtr lpReserved, IntPtr lpType, IntPtr lpData, IntPtr lpcbData); [DllImport("advapi32.dll")] public static extern int RegCloseKey(IntPtr hKey); [DllImport("kernel32.dll", SetLastError = true)] private static extern IntPtr GetCurrentProcess(); [DllImport("advapi32.dll", SetLastError = true)] private static extern bool OpenProcessToken(IntPtr hProcess, uint dwAccess, out IntPtr hToken); [DllImport("advapi32.dll", SetLastError = true)] private static extern bool GetTokenInformation(IntPtr hToken, uint tokenInformationClass, IntPtr lpData, uint tokenInformationLength, out uint returnLength); [DllImport("kernel32.dll", SetLastError = true)] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] [SuppressUnmanagedCodeSecurity] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool CloseHandle(IntPtr handle); public static bool RegOpenSubKey(ref IntPtr hKey, string lpSubKey, int samDesired) { if (RegOpenKeyEx(hKey, lpSubKey, 0, samDesired, out var phkResult) != 0) { return false; } RegCloseKey(hKey); hKey = phkResult; return true; } public static bool IsElevated() { IntPtr hToken = IntPtr.Zero; IntPtr intPtr = IntPtr.Zero; try { if (!OpenProcessToken(GetCurrentProcess(), 8u, out hToken)) { return false; } intPtr = Marshal.AllocHGlobal(4); if (!GetTokenInformation(hToken, 20u, intPtr, 4u, out var _)) { return false; } return Marshal.ReadIntPtr(intPtr).ToInt32() != 0; } finally { if (hToken != IntPtr.Zero) { CloseHandle(hToken); } if (intPtr != IntPtr.Zero) { Marshal.FreeHGlobal(intPtr); } } } } internal static class OpenXR { public class Runtimes : IReadOnlyCollection<Runtime>, IEnumerable<Runtime>, IEnumerable { [CompilerGenerated] private Runtime[] <runtimes>P; public Runtime? Default => ((IEnumerable<Runtime>)<runtimes>P).Select((Func<Runtime, Runtime?>)((Runtime rt) => rt)).FirstOrDefault((Runtime? rt) => rt.Value.Default); public Runtime[] Array => <runtimes>P; public int Count => <runtimes>P.Length; public Runtimes(Runtime[] runtimes) { <runtimes>P = runtimes; base..ctor(); } public bool TryGetRuntime(string name, out Runtime runtime) { runtime = default(Runtime); try { runtime = <runtimes>P.First((Runtime rt) => rt.Name == name); return true; } catch { return false; } } public bool TryGetRuntimeByPath(string path, out Runtime runtime) { runtime = default(Runtime); try { runtime = <runtimes>P.First((Runtime rt) => rt.Path == path); return true; } catch { return false; } } public IEnumerator<Runtime> GetEnumerator() { return ((IEnumerable<Runtime>)<runtimes>P).GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } } public struct Runtime : IEquatable<Runtime> { public string Name { get; set; } public string Path { get; set; } public bool Default { get; set; } public static bool ReadFromJson(string path, out Runtime runtime) { runtime = default(Runtime); try { JToken val = JsonConvert.DeserializeObject<JToken>(File.ReadAllText(path))[(object)"runtime"]; object name; if (val == null) { name = null; } else { JToken obj = val[(object)"name"]; name = ((obj != null) ? obj.ToObject<string>() : null); } runtime.Name = (string)name; runtime.Path = path; string defaultRuntimePath = GetDefaultRuntimePath(); if (defaultRuntimePath != null) { runtime.Default = string.Equals(path, defaultRuntimePath, StringComparison.CurrentCultureIgnoreCase); } return true; } catch { return false; } } public bool Equals(Runtime other) { return Path == other.Path; } public override bool Equals(object obj) { if (obj is Runtime other) { return Equals(other); } return false; } public override int GetHashCode() { return HashCode.Combine(Path); } } public static class Loader { private static XRGeneralSettings xrGeneralSettings; private static XRManagerSettings xrManagerSettings; private static OpenXRLoader xrLoader; public static bool InitializeXR() { InitializeScripts(); if (Native.IsElevated()) { Logger.LogWarning("Application is elevated! Unable to override the XR runtime! Only the system default OpenXR runtime will be available."); return InitializeXR(null); } Runtimes runtimes = GetRuntimes(); if (runtimes.Count == 0) { Logger.LogWarning("Failed to query runtimes, or no runtimes were found. Falling back to default behavior."); Runtime? runtime; if (!string.IsNullOrEmpty(Plugin.Config.OpenXRRuntimeFile.Value)) { Runtime value = default(Runtime); value.Name = "CWVR OpenXR Override"; value.Path = Plugin.Config.OpenXRRuntimeFile.Value; runtime = value; } else { runtime = null; } return InitializeXR(runtime); } if (!string.IsNullOrEmpty(Plugin.Config.OpenXRRuntimeFile.Value)) { Runtime value2; if (!runtimes.TryGetRuntimeByPath(Plugin.Config.OpenXRRuntimeFile.Value, out var runtime2)) { Runtime value = default(Runtime); value.Name = "CWVR OpenXR Override"; value.Path = Plugin.Config.OpenXRRuntimeFile.Value; value2 = value; } else { value2 = runtime2; } if (InitializeXR(value2)) { return true; } Logger.LogWarning("Loading OpenXR using override failed, falling back to automatic enumeration..."); } Runtime? @default = runtimes.Default; if (@default.HasValue) { Runtime valueOrDefault = @default.GetValueOrDefault(); if (valueOrDefault.Path != Plugin.Config.OpenXRRuntimeFile.Value && InitializeXR(valueOrDefault)) { return true; } } foreach (Runtime item in runtimes.Where((Runtime rt) => rt.Path != Plugin.Config.OpenXRRuntimeFile.Value && !rt.Default)) { if (InitializeXR(item)) { return true; } } Logger.LogError("All available runtimes were attempted but none worked. Aborting..."); return false; } public static void DeinitializeXR() { xrManagerSettings.DeinitializeLoader(); xrGeneralSettings.StopXRSDK(); } private static bool InitializeXR(Runtime? runtime) { if (runtime.HasValue) { Runtime valueOrDefault = runtime.GetValueOrDefault(); Logger.LogInfo("Attempting to initialize OpenXR on " + valueOrDefault.Name); Environment.SetEnvironmentVariable("XR_RUNTIME_JSON", valueOrDefault.Path); } else { Logger.LogInfo("Attempting to initialize OpenXR using default runtime"); Environment.SetEnvironmentVariable("XR_RUNTIME_JSON", null); } xrGeneralSettings.InitXRSDK(); xrGeneralSettings.Start(); List<XRDisplaySubsystem> list = new List<XRDisplaySubsystem>(); SubsystemManager.GetSubsystems<XRDisplaySubsystem>(list); if (Plugin.Config.EnableVerboseLogging.Value) { Logger.LogWarning("OpenXR Diagnostics Report:"); string[] array = GenerateReport().Split("\n"); for (int i = 0; i < array.Length; i++) { Logger.LogWarning(array[i]); } Logger.LogWarning(""); Logger.LogWarning("To prevent diagnostics report from being printed, disable the 'EnableVerboseLogging' option in the settings."); } return list.Count > 0; } private static void InitializeScripts() { if (xrGeneralSettings == null) { xrGeneralSettings = ScriptableObject.CreateInstance<XRGeneralSettings>(); } if (xrManagerSettings == null) { xrManagerSettings = ScriptableObject.CreateInstance<XRManagerSettings>(); } if (xrLoader == null) { xrLoader = ScriptableObject.CreateInstance<OpenXRLoader>(); } xrGeneralSettings.Manager = xrManagerSettings; ((List<XRLoader>)xrManagerSettings.activeLoaders).Clear(); ((List<XRLoader>)xrManagerSettings.activeLoaders).Add((XRLoader)(object)xrLoader); OpenXRSettings.Instance.renderMode = (RenderMode)0; OpenXRSettings.Instance.depthSubmissionMode = (DepthSubmissionMode)0; if (OpenXRSettings.Instance.features.Length == 0) { ValveIndexControllerProfile val = ScriptableObject.CreateInstance<ValveIndexControllerProfile>(); HPReverbG2ControllerProfile val2 = ScriptableObject.CreateInstance<HPReverbG2ControllerProfile>(); HTCViveControllerProfile val3 = ScriptableObject.CreateInstance<HTCViveControllerProfile>(); MicrosoftMotionControllerProfile val4 = ScriptableObject.CreateInstance<MicrosoftMotionControllerProfile>(); KHRSimpleControllerProfile val5 = ScriptableObject.CreateInstance<KHRSimpleControllerProfile>(); MetaQuestTouchProControllerProfile val6 = ScriptableObject.CreateInstance<MetaQuestTouchProControllerProfile>(); OculusTouchControllerProfile val7 = ScriptableObject.CreateInstance<OculusTouchControllerProfile>(); ((OpenXRFeature)val).enabled = true; ((OpenXRFeature)val2).enabled = true; ((OpenXRFeature)val3).enabled = true; ((OpenXRFeature)val4).enabled = true; ((OpenXRFeature)val5).enabled = true; ((OpenXRFeature)val6).enabled = true; ((OpenXRFeature)val7).enabled = true; OpenXRSettings.Instance.features = (OpenXRFeature[])(object)new OpenXRFeature[7] { (OpenXRFeature)val, (OpenXRFeature)val2, (OpenXRFeature)val3, (OpenXRFeature)val4, (OpenXRFeature)val5, (OpenXRFeature)val6, (OpenXRFeature)val7 }; } } } [CompilerGenerated] private sealed class <LocateCommonRuntimes>d__8 : IEnumerable<Runtime>, IEnumerable, IEnumerator<Runtime>, IEnumerator, IDisposable { private int <>1__state; private Runtime <>2__current; private int <>l__initialThreadId; Runtime IEnumerator<Runtime>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <LocateCommonRuntimes>d__8(int <>1__state) { this.<>1__state = <>1__state; <>l__initialThreadId = Environment.CurrentManagedThreadId; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0032: Unknown result type (might be due to invalid IL or missing references) Runtime runtime; string path = default(string); switch (<>1__state) { default: return false; case 0: <>1__state = -1; if (SteamAPI.Init() && SteamApps.GetAppInstallDir(new AppId_t(250820u), ref path, 240u) != 0 && Runtime.ReadFromJson(Path.Combine(path, "steamxr_win64.json"), out runtime)) { <>2__current = runtime; <>1__state = 1; return true; } goto IL_0071; case 1: <>1__state = -1; goto IL_0071; case 2: <>1__state = -1; goto IL_00ac; case 3: { <>1__state = -1; break; } IL_0071: path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "Virtual Desktop Streamer\\OpenXR\\virtualdesktop-openxr.json"); if (File.Exists(path) && Runtime.ReadFromJson(path, out runtime)) { <>2__current = runtime; <>1__state = 2; return true; } goto IL_00ac; IL_00ac: path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "Oculus\\Support\\oculus-runtime\\oculus_openxr_64.json"); if (File.Exists(path) && Runtime.ReadFromJson(path, out runtime)) { <>2__current = runtime; <>1__state = 3; return true; } break; } return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } [DebuggerHidden] IEnumerator<Runtime> IEnumerable<Runtime>.GetEnumerator() { if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId) { <>1__state = 0; return this; } return new <LocateCommonRuntimes>d__8(0); } [DebuggerHidden] IEnumerator IEnumerable.GetEnumerator() { return ((IEnumerable<Runtime>)this).GetEnumerator(); } } [DllImport("UnityOpenXR", EntryPoint = "DiagnosticReport_GenerateReport")] private static extern IntPtr Internal_GenerateReport(); [DllImport("UnityOpenXR", EntryPoint = "DiagnosticReport_ReleaseReport")] private static extern void Internal_ReleaseReport(IntPtr report); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetRuntimeName")] private static extern bool Internal_GetRuntimeName(out IntPtr runtimeNamePtr); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetRuntimeVersion")] private static extern bool Internal_GetRuntimeVersion(out ushort major, out ushort minor, out ushort patch); private static string GenerateReport() { IntPtr intPtr = Internal_GenerateReport(); if (intPtr == IntPtr.Zero) { return ""; } string result = Marshal.PtrToStringAnsi(intPtr); Internal_ReleaseReport(intPtr); return result; } public static Runtimes GetRuntimes() { HashSet<Runtime> hashSet = new HashSet<Runtime>(); foreach (Runtime item2 in LocateCommonRuntimes()) { hashSet.Add(item2); } string defaultRuntimePath = GetDefaultRuntimePath(); if (Native.RegOpenKeyEx(Native.HKEY_LOCAL_MACHINE, "SOFTWARE\\Khronos\\OpenXR\\1", 0, 131097, out var phkResult) != 0) { return new Runtimes(hashSet.ToArray()); } List<string> list = new List<string>(); if (!Native.RegOpenSubKey(ref phkResult, "AvailableRuntimes", 131097) || !EnumRuntimeFiles(phkResult, list)) { if (string.IsNullOrEmpty(defaultRuntimePath)) { return new Runtimes(hashSet.ToArray()); } try { JToken val = JsonConvert.DeserializeObject<JToken>(File.ReadAllText(defaultRuntimePath))[(object)"runtime"]; Runtime item = default(Runtime); object name; if (val == null) { name = null; } else { JToken obj = val[(object)"name"]; name = ((obj != null) ? obj.ToObject<string>() : null); } item.Name = (string)name; item.Path = defaultRuntimePath; item.Default = true; hashSet.Add(item); } catch { } return new Runtimes(hashSet.ToArray()); } if (!list.Contains(defaultRuntimePath)) { list.Add(defaultRuntimePath); } foreach (string item3 in list) { try { JToken val2 = JsonConvert.DeserializeObject<JToken>(File.ReadAllText(item3))[(object)"runtime"]; Runtime item = default(Runtime); object name2; if (val2 == null) { name2 = null; } else { JToken obj3 = val2[(object)"name"]; name2 = ((obj3 != null) ? obj3.ToObject<string>() : null); } item.Name = (string)name2; item.Path = item3; item.Default = item3 == defaultRuntimePath; hashSet.Add(item); } catch (Exception ex) { Logger.LogWarning("Failed to parse " + item3 + ": " + ex.Message + ". Runtime will not be used."); } } return new Runtimes(hashSet.ToArray()); } [CanBeNull] private static string GetDefaultRuntimePath() { if (Native.RegOpenKeyEx(Native.HKEY_LOCAL_MACHINE, "SOFTWARE\\Khronos\\OpenXR\\1", 0, 131097, out var phkResult) != 0) { return null; } string result = null; uint lpcbData = 0u; uint lpType; bool flag = Native.RegQueryValueEx(phkResult, "ActiveRuntime", 0, out lpType, null, ref lpcbData) != 0; if (!flag) { bool flag2 = lpType - 1 <= 1; flag = !flag2; } if (flag) { return null; } StringBuilder stringBuilder = new StringBuilder((int)lpcbData); if (Native.RegQueryValueEx(phkResult, "ActiveRuntime", 0, out lpType, stringBuilder, ref lpcbData) == 0) { result = stringBuilder.ToString(); } return result; } private static bool EnumRuntimeFiles(IntPtr hKey, List<string> files) { if (Native.RegQueryInfoKey(hKey, null, IntPtr.Zero, IntPtr.Zero, out var _, out var _, out var _, out var lpcValues, out var lpcbMaxValueNameLen, out var _, IntPtr.Zero, IntPtr.Zero) != 0) { return false; } for (uint num = 0u; num < lpcValues; num++) { StringBuilder stringBuilder = new StringBuilder((int)(lpcbMaxValueNameLen + 1)); uint lpcchValueName = lpcbMaxValueNameLen + 1; if (Native.RegEnumValue(hKey, num, stringBuilder, ref lpcchValueName, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero) == 0) { files.Add(stringBuilder.ToString()); } } return true; } [IteratorStateMachine(typeof(<LocateCommonRuntimes>d__8))] private static IEnumerable<Runtime> LocateCommonRuntimes() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <LocateCommonRuntimes>d__8(-2); } public static bool GetActiveRuntimeName(out string name) { name = null; if (!Internal_GetRuntimeName(out var runtimeNamePtr)) { return false; } if (runtimeNamePtr == IntPtr.Zero) { return false; } name = Marshal.PtrToStringAnsi(runtimeNamePtr); return true; } public static bool GetActiveRuntimeVersion(out ushort major, out ushort minor, out ushort patch) { return Internal_GetRuntimeVersion(out major, out minor, out patch); } } [ContentWarningPlugin("io.daxcess.cwvr", "1.2.0", true)] [BepInPlugin("io.daxcess.cwvr", "CWVR", "1.2.0")] public class Plugin : BaseUnityPlugin { public const string PLUGIN_GUID = "io.daxcess.cwvr"; public const string PLUGIN_NAME = "CWVR"; public const string PLUGIN_VERSION = "1.2.0"; private const string BANNER = " ,--.,--. \n ,-----.,--. ,--. / // / ,--. ,--.,------. \n' .--./| | | | / // / \\ `.' / | .--. ' \n| | | |.'.| | / // / \\ / | '--'.' \n' '--'\\| ,'. | / // / \\ / | |\\ \\ \n `-----''--' '--' / // / `-' `--' '--' \n `--'`--' \n\n ___________________________ \n < Another VR mod by DaXcess >\n --------------------------- \n \\ ^__^\n \\ (oo)\\_______\n (__)\\ )\\/\\\n ||----w |\n || ||\n"; public static Config Config { get; set; } public static Flags Flags { get; set; } private void Awake() { CultureInfo.CurrentCulture = CultureInfo.InvariantCulture; InputSystem.PerformDefaultPluginInitialization(); Logger.source = ((BaseUnityPlugin)this).Logger; Config = new Config(((BaseUnityPlugin)this).Config); ((BaseUnityPlugin)this).Config.SettingChanged += delegate { Config.ApplySettings(); }; string[] array = " ,--.,--. \n ,-----.,--. ,--. / // / ,--. ,--.,------. \n' .--./| | | | / // / \\ `.' / | .--. ' \n| | | |.'.| | / // / \\ / | '--'.' \n' '--'\\| ,'. | / // / \\ / | |\\ \\ \n `-----''--' '--' / // / `-' `--' '--' \n `--'`--' \n\n ___________________________ \n < Another VR mod by DaXcess >\n --------------------------- \n \\ ^__^\n \\ (oo)\\_______\n (__)\\ )\\/\\\n ||----w |\n || ||\n".Split('\n'); foreach (string text in array) { ((BaseUnityPlugin)this).Logger.LogInfo((object)(" " + text)); } bool flag = Config.DisableVR.Value || Environment.GetCommandLineArgs().Contains<string>("--disable-vr", StringComparer.InvariantCultureIgnoreCase); if (flag) { ((BaseUnityPlugin)this).Logger.LogWarning((object)"VR has been disabled by config or the `--disable-vr` command line flag"); } if (!PreloadRuntimeDependencies()) { ((BaseUnityPlugin)this).Logger.LogError((object)"Disabling mod because required runtime dependencies could not be loaded!"); return; } if (!LoadBurstLibrary()) { ((BaseUnityPlugin)this).Logger.LogError((object)"Disabling mod because required Burst optimizations could not be loaded!"); return; } if (!AssetManager.LoadAssets()) { ((BaseUnityPlugin)this).Logger.LogError((object)"Disabling mod because assets could not be loaded!"); return; } Utils.SetupOrReplaceXRMirrorShader(); HarmonyPatcher.PatchUniversal(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Inserted Universal patches using Harmony"); if (!flag && InitializeVR()) { Flags |= Flags.VR; } Utils.Enqueue(delegate { Config.ApplySettings(); }); } private bool PreloadRuntimeDependencies() { try { string[] files = Directory.GetFiles(Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location), "RuntimeDeps"), "*.dll"); foreach (string path in files) { string fileName = Path.GetFileName(path); if (!(fileName == "lib_burst_generated.dll")) { try { Assembly.LoadFile(path); } catch (Exception ex) { ((BaseUnityPlugin)this).Logger.LogWarning((object)("Failed to preload '" + fileName + "': " + ex.Message)); } } } } catch (Exception ex2) { ((BaseUnityPlugin)this).Logger.LogError((object)("Unexpected error occured while preloading runtime dependencies (incorrect folder structure?): " + ex2.Message)); return false; } return true; } public static void ToggleVR() { if (Flags.HasFlag(Flags.VR)) { OpenXR.Loader.DeinitializeXR(); HarmonyPatcher.UnpatchVR(); Flags &= ~Flags.VR; } else if (InitializeVR()) { Flags |= Flags.VR; } } private static bool LoadBurstLibrary() { string text = Path.Combine(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "RuntimeDeps"), "lib_burst_generated.dll"); if (File.Exists(text)) { return BurstCompilerService.LoadBurstLibrary(text); } return false; } private static bool InitializeVR() { //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Expected O, but got Unknown //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Expected O, but got Unknown Logger.LogInfo("Loading VR..."); if (!OpenXR.Loader.InitializeXR()) { Logger.LogError("Failed to start in VR Mode! Only Non-VR features are available!"); Logger.LogWarning("If your intention is to play without VR, you can ignore the previous error."); Utils.EnqueueModal("VR startup failed", "Something went wrong and we weren't able to launch the game in VR.\nIf you want to play without VR, it is recommended to disable VR completely by pressing the button below.\nIf you need help troubleshooting, grab a copy of the logs, which you can open using the button below.", (ModalOption[])(object)new ModalOption[3] { new ModalOption("Disable VR", (Action)delegate { Config.DisableVR.Value = true; }), new ModalOption("Open Logs", (Action)delegate { Process.Start("notepad.exe", Application.consoleLogPath); }), new ModalOption("Continue", (Action)null) }); return false; } if (OpenXR.GetActiveRuntimeName(out var name) && OpenXR.GetActiveRuntimeVersion(out var major, out var minor, out var patch)) { Logger.LogInfo($"OpenXR Runtime being used: {name} ({major}.{minor}.{patch})"); } else { Logger.LogWarning("Could not get OpenXR Runtime info?"); } HarmonyPatcher.PatchVR(); Logger.LogDebug("Inserted VR patches using Harmony"); return true; } } [Flags] public enum Flags { VR = 1 } internal static class Utils { public static Pose GetPoseData(this TrackedPoseDriver driver) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) Pose result = default(Pose); driver.GetPoseData(driver.m_Device, driver.m_PoseSource, ref result); return result; } public static void SetLayerRecursive(this GameObject go, int layer) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Expected O, but got Unknown go.layer = layer; foreach (Transform item in go.transform) { Transform val = item; ((Component)val).gameObject.layer = layer; if (((Component)val).GetComponentInChildren<Transform>() != null) { ((Component)val).gameObject.SetLayerRecursive(layer); } } } public static string PascalToLongString(string text) { StringBuilder stringBuilder = new StringBuilder(text[0].ToString()); if (stringBuilder.Length <= 0) { return stringBuilder.ToString(); } for (int i = 1; i < text.Length; i++) { char c = text[i - 1]; char c2 = ((i + 1 < text.Length) ? text[i + 1] : '\0'); bool flag = char.IsLower(c2); bool flag2 = char.IsUpper(c2); bool flag3 = char.IsUpper(text[i]); bool flag4 = char.IsLower(c); bool flag5 = char.IsUpper(c); if (!string.IsNullOrWhiteSpace(c.ToString()) && ((flag5 && flag3 && flag) || (flag4 && flag3 && flag) || (flag4 && flag3 && flag2))) { stringBuilder.Append(' '); stringBuilder.Append(text[i]); } else { stringBuilder.Append(text[i]); } } return stringBuilder.ToString(); } public static bool InVR(this Player player) { if (player.IsLocal) { return VRSession.InVR; } if (Object.op_Implicit((Object)(object)VRSession.Instance)) { return VRSession.Instance.NetworkManager.InVR(player); } return false; } public static void Enqueue(Action action) { GameHandlerPatches.EnqueueAction(action); } public static void EnqueueModal(string title, string body, ModalOption[] options = null, Action onClosed = null) { Enqueue(delegate { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown Modal.Show(title, body, (ModalOption[])(((object)options) ?? ((object)new ModalOption[1] { new ModalOption("Ok", (Action)null) })), onClosed); }); } public static void SetupOrReplaceXRMirrorShader() { if ((Object)(object)XRSystem.s_MirrorViewMaterial != (Object)null) { CoreUtils.Destroy((Object)(object)XRSystem.s_MirrorViewMaterial); } XRSystem.s_MirrorViewMaterial = CoreUtils.CreateEngineMaterial(AssetManager.MirrorView); } } } namespace CWVR.UI { public class AutoKeyboard : MonoBehaviour { [CompilerGenerated] private sealed class <PopulateInputsRoutine>d__5 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public AutoKeyboard <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <PopulateInputsRoutine>d__5(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Expected O, but got Unknown int num = <>1__state; AutoKeyboard autoKeyboard = <>4__this; if (num != 0) { if (num != 1) { return false; } <>1__state = -1; } else { <>1__state = -1; } autoKeyboard.RemoveDestroyed(); autoKeyboard.PopulateInputs(); <>2__current = (object)new WaitForSeconds(0.5f); <>1__state = 1; return true; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } private readonly Dictionary<TMP_InputField, UnityAction<string>> inputFields = new Dictionary<TMP_InputField, UnityAction<string>>(); private Coroutine populateCoroutine; public NonNativeKeyboard keyboard; private void OnEnable() { populateCoroutine = ((MonoBehaviour)this).StartCoroutine(PopulateInputsRoutine()); } private void OnDisable() { ((MonoBehaviour)this).StopCoroutine(populateCoroutine); } [IteratorStateMachine(typeof(<PopulateInputsRoutine>d__5))] private IEnumerator PopulateInputsRoutine() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <PopulateInputsRoutine>d__5(0) { <>4__this = this }; } private void RemoveDestroyed() { foreach (KeyValuePair<TMP_InputField, UnityAction<string>> item in inputFields.Where((KeyValuePair<TMP_InputField, UnityAction<string>> kvp) => (Object)(object)kvp.Key == (Object)null).ToList()) { inputFields.Remove(item.Key); } } private void PopulateInputs() { TMP_InputField[] array = Object.FindObjectsByType<TMP_InputField>((FindObjectsInactive)1, (FindObjectsSortMode)0); foreach (TMP_InputField input in array) { if (!inputFields.ContainsKey(input)) { UnityAction<string> val = delegate { keyboard.InputField = input; keyboard.PresentKeyboard(); }; inputFields.Add(input, val); ((UnityEvent<string>)(object)input.onSelect).AddListener(val); } } } private void OnDestroy() { foreach (KeyValuePair<TMP_InputField, UnityAction<string>> inputField in inputFields) { ((UnityEvent<string>)(object)inputField.Key.onSelect).RemoveListener(inputField.Value); } } } public class Customizer : MonoBehaviour { private NonNativeKeyboard keyboard; private PlayerCustomizer customizer; private XRRayInteractor leftHandInteractor; private XRRayInteractor rightHandInteractor; private XRInteractorLineVisual leftHandVisual; private XRInteractorLineVisual rightHandVisual; private bool leftTerminal; private void Awake() { //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) customizer = ((Component)this).GetComponent<PlayerCustomizer>(); ((Component)((Component)this).GetComponentInChildren<Canvas>()).gameObject.AddComponent<TrackedDeviceGraphicRaycaster>(); (leftHandInteractor, leftHandVisual) = CreateInteractorController((XRNode)4); (rightHandInteractor, rightHandVisual) = CreateInteractorController((XRNode)5); ((Behaviour)leftHandInteractor).enabled = false; ((Behaviour)leftHandVisual).enabled = false; ((Behaviour)rightHandInteractor).enabled = false; ((Behaviour)rightHandVisual).enabled = false; keyboard = Object.Instantiate<GameObject>(AssetManager.Keyboard, ((Component)this).transform).GetComponent<NonNativeKeyboard>(); ((Component)keyboard).transform.localPosition = new Vector3(0f, -0.85f, 0.25f); ((Component)keyboard).transform.localEulerAngles = new Vector3(12f, 180f, 0f); ((Component)keyboard).transform.localScale = Vector3.one * 0.0015f; keyboard.OnKeyboardValueKeyPressed += OnKeyPressed; keyboard.OnKeyboardFunctionKeyPressed += OnFnKeyPressed; keyboard.OnClosed += KeyboardOnOnClosed; } private void KeyboardOnOnClosed(object sender, EventArgs e) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) if (!leftTerminal) { customizer.backSound.Play(((Component)this).transform.position, false, 1f, (Transform)null); customizer.view_g.RPC("RPCA_PlayerLeftTerminal", (RpcTarget)0, new object[1] { false }); } } private void OnFnKeyPressed(KeyboardKeyFunc obj) { //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) switch (obj.ButtonFunction) { case KeyboardKeyFunc.Function.Backspace: customizer.backSound.Play(((Component)this).transform.position, false, 1f, (Transform)null); if (((TMP_Text)customizer.faceText).text.Length != 0) { PhotonView view_g = customizer.view_g; object[] array = new object[1]; string text = ((TMP_Text)customizer.faceText).text; array[0] = text.Substring(0, text.Length - 1); view_g.RPC("RCP_SetFaceText", (RpcTarget)0, array); } break; case KeyboardKeyFunc.Function.Enter: customizer.view_g.RPC("RPCA_PlayerLeftTerminal", (RpcTarget)0, new object[1] { true }); customizer.applySound.Play(((Component)this).transform.position, false, 1f, (Transform)null); break; } } private void OnKeyPressed(KeyboardValueKey obj) { //IL_005d: Unknown result type (might be due to invalid IL or missing references) string text = ((keyboard.IsShifted && !string.IsNullOrEmpty(obj.ShiftValue)) ? obj.ShiftValue : obj.Value); if (text.Length >= 1 && ((TMP_Text)customizer.faceText).text.Length < 3) { customizer.typeSound.Play(((Component)this).transform.position, false, 1f, (Transform)null); customizer.view_g.RPC("RCP_SetFaceText", (RpcTarget)0, new object[1] { ((TMP_Text)customizer.faceText).text + text[0] }); } } internal void OnEnter() { leftTerminal = false; ((Behaviour)leftHandInteractor).enabled = true; ((Behaviour)leftHandVisual).enabled = true; ((Behaviour)rightHandInteractor).enabled = true; ((Behaviour)rightHandVisual).enabled = true; keyboard.PresentKeyboard(); } internal void OnLeave() { leftTerminal = true; ((Behaviour)leftHandInteractor).enabled = false; ((Behaviour)leftHandVisual).enabled = false; ((Behaviour)rightHandInteractor).enabled = false; ((Behaviour)rightHandVisual).enabled = false; keyboard.Close(); } private static (XRRayInteractor, XRInteractorLineVisual) CreateInteractorController(XRNode node) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Invalid comparison between Unknown and I4 //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Invalid comparison between Unknown and I4 //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Expected O, but got Unknown //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject($"{node} Controller (Player Customizer)"); val.transform.SetParent(((Component)VRSession.Instance.LocalPlayer.Rig).transform, false); XRController val2 = val.AddComponent<XRController>(); XRRayInteractor val3 = val.AddComponent<XRRayInteractor>(); XRInteractorLineVisual val4 = val.AddComponent<XRInteractorLineVisual>(); LineRenderer component = val.GetComponent<LineRenderer>(); val.AddComponent<SortingGroup>().sortingOrder = 5; Transform rayOriginTransform = val3.rayOriginTransform; Vector3 localEulerAngles; if ((int)node != 4) { if ((int)node != 5) { throw new ArgumentOutOfRangeException("node", node, null); } localEulerAngles = new Vector3(60f, 347f, 270f); } else { localEulerAngles = new Vector3(60f, 347f, 90f); } rayOriginTransform.localEulerAngles = localEulerAngles; val3.raycastMask = LayerMask.op_Implicit(32); val4.lineBendRatio = 1f; Gradient val5 = new Gradient(); val5.mode = (GradientMode)0; val5.alphaKeys = (GradientAlphaKey[])(object)new GradientAlphaKey[2] { new GradientAlphaKey(0.1f, 0f), new GradientAlphaKey(0.1f, 1f) }; val5.colorKeys = (GradientColorKey[])(object)new GradientColorKey[2] { new GradientColorKey(Color.white, 0f), new GradientColorKey(Color.white, 1f) }; val4.invalidColorGradient = val5; ((Behaviour)val4).enabled = true; ((Renderer)component).material = AssetManager.WhiteMat; val2.controllerNode = node; return (val3, val4); } } [CWVRPatch(CWVRPatchTarget.VROnly)] internal static class PlayerCustomizerPatches { [HarmonyPatch(typeof(PlayerCustomizer), "RPCA_EnterTerminal")] [HarmonyPostfix] private static void OnEnterTerminal(PlayerCustomizer __instance) { if (__instance.playerInTerminal.refs.view.IsMine) { ((Component)__instance).GetComponent<Customizer>().OnEnter(); } } [HarmonyPatch(typeof(PlayerCustomizer), "RPCA_PlayerLeftTerminal")] [HarmonyPrefix] private static void OnLeaveTerminal(PlayerCustomizer __instance) { if (__instance.playerInTerminal.refs.view.IsMine) { ((Component)__instance).GetComponent<Customizer>().OnLeave(); } } } public class HUD : MonoBehaviour { private CurvedUISettings curvedUISettings; private Canvas modalCanvas; public Camera UICamera { get; private set; } public Canvas WorldInteractionCanvas { get; private set; } public Canvas LeftHandCanvas { get; private set; } public Canvas RightHandCanvas { get; private set; } public PauseMenu PauseMenu { get; private set; } private void Awake() { //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) //IL_0270: Unknown result type (might be due to invalid IL or missing references) //IL_027a: Expected O, but got Unknown //IL_02db: Unknown result type (might be due to invalid IL or missing references) //IL_02e7: Unknown result type (might be due to invalid IL or missing references) //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_034e: Unknown result type (might be due to invalid IL or missing references) //IL_035a: Unknown result type (might be due to invalid IL or missing references) //IL_0364: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_03b0: Unknown result type (might be due to invalid IL or missing references) //IL_03bc: Unknown result type (might be due to invalid IL or missing references) //IL_03c6: Unknown result type (might be due to invalid IL or missing references) //IL_0406: Unknown result type (might be due to invalid IL or missing references) //IL_0421: Unknown result type (might be due to invalid IL or missing references) //IL_042d: Unknown result type (might be due to invalid IL or missing references) //IL_0437: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_049e: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04e0: Unknown result type (might be due to invalid IL or missing references) //IL_04f9: Unknown result type (might be due to invalid IL or missing references) //IL_053f: Unknown result type (might be due to invalid IL or missing references) //IL_0549: Unknown result type (might be due to invalid IL or missing references) //IL_0579: Unknown result type (might be due to invalid IL or missing references) //IL_0583: Unknown result type (might be due to invalid IL or missing references) Transform transform = Player.localPlayer.refs.rigRoot.transform; UserInterface val = Object.FindFirstObjectByType<UserInterface>(); Transform val2 = transform.Find("Rig/Armature/Hip/Torso/Arm_L/Elbow_L/Hand_L"); Transform val3 = transform.Find("Rig/Armature/Hip/Torso/Arm_R/Elbow_R/Hand_R"); Transform val4 = ((Component)val).transform.Find("Pivot/Others"); string text = JsonUtility.ToJson((object)((Component)val).GetComponent<CurvedUISettings>()); curvedUISettings = ((Component)this).gameObject.AddComponent<CurvedUISettings>(); JsonUtility.FromJsonOverwrite(text, (object)curvedUISettings); curvedUISettings.Angle = 0; WorldInteractionCanvas = new GameObject("World Interaction Canvas").AddComponent<Canvas>(); WorldInteractionCanvas.worldCamera = VRSession.Instance.MainCamera; WorldInteractionCanvas.renderMode = (RenderMode)2; ((Component)WorldInteractionCanvas).transform.localScale = Vector3.one * 0.0066f; ((Component)WorldInteractionCanvas).gameObject.layer = 6; LeftHandCanvas = new GameObject("Left Hand VR Canvas").AddComponent<Canvas>(); LeftHandCanvas.worldCamera = VRSession.Instance.MainCamera; LeftHandCanvas.renderMode = (RenderMode)2; ((Component)LeftHandCanvas).transform.localScale = Vector3.one * 0.001f; ((Component)LeftHandCanvas).gameObject.layer = LayerMask.NameToLayer("UI"); ((Component)LeftHandCanvas).transform.SetParent(val2, false); ((Component)LeftHandCanvas).transform.localPosition = Vector3.zero; ((Component)LeftHandCanvas).transform.localEulerAngles = Vector3.zero; RightHandCanvas = new GameObject("Right Hand VR Canvas").AddComponent<Canvas>(); RightHandCanvas.worldCamera = VRSession.Instance.MainCamera; RightHandCanvas.renderMode = (RenderMode)2; ((Component)RightHandCanvas).transform.localScale = Vector3.one * 0.001f; ((Component)RightHandCanvas).gameObject.layer = LayerMask.NameToLayer("UI"); ((Component)RightHandCanvas).transform.SetParent(val3, false); ((Component)RightHandCanvas).transform.localPosition = Vector3.zero; ((Component)RightHandCanvas).transform.localEulerAngles = Vector3.zero; Transform val5 = val4.Find("InteractionUI"); ((Component)val5).transform.SetParent(((Component)WorldInteractionCanvas).transform, false); TextMeshProUGUI[] componentsInChildren = ((Component)val5).GetComponentsInChildren<TextMeshProUGUI>(); foreach (TextMeshProUGUI obj in componentsInChildren) { ((TMP_Text)obj).fontSharedMaterial = new Material(((TMP_Text)obj).fontSharedMaterial); ((TMP_Text)obj).isOverlay = true; } ((Component)val5.Find("KEY")).gameObject.SetActive(false); Transform val6 = val4.Find("Stamina"); ((Component)val6).transform.SetParent(((Component)LeftHandCanvas).transform, false); val6.localPosition = new Vector3(0f, 450f, -170f); val6.localEulerAngles = Vector3.zero; val6.localScale = new Vector3(1.75f, 2.5f, 1.75f); Transform val7 = val4.Find("O2"); ((Component)val7).transform.SetParent(((Component)LeftHandCanvas).transform, false); val7.localPosition = new Vector3(-55f, 610f, -170f); val7.localEulerAngles = Vector3.zero; val7.localScale = Vector3.one * 3.5f; Transform val8 = val4.Find("Health"); ((Component)val8).transform.SetParent(((Component)LeftHandCanvas).transform, false); val8.localPosition = new Vector3(0f, 520f, -170f); val8.localEulerAngles = Vector3.zero; val8.localScale = Vector3.one * 2.5f; Transform val9 = val4.Find("NextStep/List/GameObject"); ((Component)val9).transform.SetParent(((Component)RightHandCanvas).transform, false); val9.localPosition = new Vector3(250f, 710f, -215f); val9.localEulerAngles = new Vector3(0f, 0f, 270f); val9.localScale = Vector3.one * 2.5f; Transform val10 = val4.Find("Hotbar"); ((Component)val10).transform.SetParent(((Component)RightHandCanvas).transform, false); val10.localPosition = new Vector3(-100f, 800f, -200f); val10.localEulerAngles = new Vector3(0f, 0f, 270f); val10.localScale = Vector3.one * 2.5f; Transform val11 = val4.Find("HelmetMessage"); Transform obj2 = val4.parent.Find("MoneyAdded"); val11.localPosition = new Vector3(0f, 150f, -225f); obj2.localPosition = new Vector3(260f, -115f, -100f); modalCanvas = ((Component)RetrievableResourceSingleton<Modal>.Instance).GetComponent<Canvas>(); modalCanvas.worldCamera = VRSession.Instance.MainCamera; modalCanvas.renderMode = (RenderMode)2; ((Component)modalCanvas).transform.localScale = Vector3.one * 0.001f; ((Component)modalCanvas).gameObject.SetLayerRecursive(6); ((Component)modalCanvas).transform.Find("Image").localScale = Vector3.one * 10f; ((Component)val4.parent.Find("Edge")).gameObject.SetActive(false); ((Component)val4.Find("NextStep")).gameObject.SetActive(false); ((Component)val4.Find("LINE")).gameObject.SetActive(false); ((Component)val4.Find("LINE (1)")).gameObject.SetActive(false); ((Component)val4.Find("EmoteUI")).gameObject.SetActive(false); PauseMenu = Singleton<EscapeMenu>.Instance.m_menu.gameObject.AddComponent<PauseMenu>(); PlayerCustomizer obj3 = Object.FindFirstObjectByType<PlayerCustomizer>(); if (obj3 != null) { ((Component)obj3).gameObject.AddComponent<Customizer>(); } ReplaceCurvedUISettings((Component)val5, (Component)val6, (Component)val7, (Component)val8, (Component)val9, (Component)val10); CreateUICamera(); } private void LateUpdate() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) Transform transform = ((Component)VRSession.Instance.MainCamera).transform; ((Component)modalCanvas).transform.position = ((Component)transform).transform.position + ((Component)transform).transform.forward * 1.5f; ((Component)modalCanvas).transform.rotation = transform.rotation; if (Object.op_Implicit((Object)(object)Singleton<UserInterface>.Instance.interactionUI.m_currentInteractable)) { ((Component)WorldInteractionCanvas).transform.position = ((Component)Singleton<UserInterface>.Instance.interactionUI.m_currentInteractable).transform.position; } ((Component)WorldInteractionCanvas).transform.rotation = Quaternion.LookRotation(((Component)WorldInteractionCanvas).transform.position - transform.position); Transform transform2 = ((Component)WorldInteractionCanvas).transform; transform2.position += ((Component)WorldInteractionCanvas).transform.forward * -0.2f; } private void CreateUICamera() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) Camera mainCamera = VRSession.Instance.MainCamera; UICamera = new GameObject("VR UI Camera").AddComponent<Camera>(); ((Component)UICamera).transform.SetParent(((Component)mainCamera).transform, false); ((Component)UICamera).transform.localPosition = Vector3.zero; ((Component)UICamera).transform.localEulerAngles = Vector3.zero; UICamera.clearFlags = (CameraClearFlags)3; UICamera.depth = 10f; UICamera.cullingMask = 64; mainCamera.cullingMask &= -65; CameraExtensions.GetUniversalAdditionalCameraData(UICamera).renderType = (CameraRenderType)1; CameraExtensions.GetUniversalAdditionalCameraData(mainCamera).cameraStack.Add(UICamera); } private void ReplaceCurvedUISettings(params Component[] sources) { foreach (Component obj in sources) { CurvedUIVertexEffect component = obj.GetComponent<CurvedUIVertexEffect>(); if (Object.op_Implicit((Object)(object)component)) { component.mySettings = curvedUISettings; } CurvedUIVertexEffect[] componentsInChildren = obj.GetComponentsInChildren<CurvedUIVertexEffect>(); for (int j = 0; j < componentsInChildren.Length; j++) { componentsInChildren[j].mySettings = curvedUISettings; } } } } public class MainMenu : MonoBehaviour { [CompilerGenerated] private sealed class <>c__DisplayClass4_0 { public PostVolumeHandler pvh; internal bool <ToggleDoF>b__0() { return pvh.m_volume != null; } internal bool <ToggleDoF>b__1() { return pvh.m_volume.profile != null; } } [CompilerGenerated] private sealed class <AutoRotate>d__5 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public MainMenu <>4__this; private InputAction <action>5__2; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <AutoRotate>d__5(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <action>5__2 = null; <>1__state = -2; } private bool MoveNext() { //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) int num = <>1__state; MainMenu mainMenu = <>4__this; switch (num) { default: return false; case 0: <>1__state = -1; <action>5__2 = Actions.Instance.HeadRotation; break; case 1: <>1__state = -1; break; } Quaternion val = <action>5__2.ReadValue<Quaternion>(); if (((Quaternion)(ref val)).eulerAngles == Vector3.zero) { <>2__current = null; <>1__state = 1; return true; } Transform xrOrigin = mainMenu.xrOrigin; val = <action>5__2.ReadValue<Quaternion>(); xrOrigin.eulerAngles = new Vector3(0f, 180f - ((Quaternion)(ref val)).eulerAngles.y, 0f); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <ToggleDoF>d__4 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; private <>c__DisplayClass4_0 <>8__1; public bool active; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <ToggleDoF>d__4(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>8__1 = null; <>1__state = -2; } private bool MoveNext() { //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Expected O, but got Unknown //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>8__1 = new <>c__DisplayClass4_0(); goto IL_004a; case 1: <>1__state = -1; goto IL_004a; case 2: <>1__state = -1; <>2__current = (object)new WaitUntil((Func<bool>)(() => <>8__1.pvh.m_volume.profile != null)); <>1__state = 3; return true; case 3: { <>1__state = -1; DepthOfField val = default(DepthOfField); if (<>8__1.pvh.m_volume.profile.TryGet<DepthOfField>(ref val)) { ((VolumeComponent)val).active = active; } return false; } IL_004a: if ((<>8__1.pvh = Object.FindFirstObjectByType<PostVolumeHandler>()) == null) { <>2__current = null; <>1__state = 1; return true; } <>2__current = (object)new WaitUntil((Func<bool>)(() => <>8__1.pvh.m_volume != null)); <>1__state = 2; return true; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } private Transform xrOrigin; private TrackedPoseDriver cameraTracker; private void Awake() { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_018a: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing referenc
BepInEx/plugins/CWVR/RuntimeDeps/Unity.XR.CoreUtils.dll
Decompiled a month ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.CodeDom.Compiler; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Serialization; using System.Text; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using Unity.Collections; using Unity.XR.CoreUtils.Bindings.Variables; using Unity.XR.CoreUtils.Collections; using UnityEngine; using UnityEngine.Events; using UnityEngine.InputSystem.XR; using UnityEngine.SceneManagement; using UnityEngine.Serialization; using UnityEngine.SpatialTracking; using UnityEngine.UI; using UnityEngine.XR; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyVersion("0.0.0.0")] [CompilerGenerated] [EditorBrowsable(EditorBrowsableState.Never)] [GeneratedCode("Unity.MonoScriptGenerator.MonoScriptInfoGenerator", null)] internal class UnitySourceGeneratedAssemblyMonoScriptTypes_v1 { private struct MonoScriptData { public byte[] FilePathsData; public byte[] TypesData; public int TotalTypes; public int TotalFiles; public bool IsEditorOnly; } [MethodImpl(MethodImplOptions.AggressiveInlining)] private static MonoScriptData Get() { MonoScriptData result = default(MonoScriptData); result.FilePathsData = new byte[7851] { 0, 0, 0, 1, 0, 0, 0, 113, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 82, 84, 114, 97, 99, 107, 97, 98, 108, 101, 115, 80, 97, 114, 101, 110, 116, 84, 114, 97, 110, 115, 102, 111, 114, 109, 67, 104, 97, 110, 103, 101, 100, 69, 118, 101, 110, 116, 65, 114, 103, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 116, 116, 114, 105, 98, 117, 116, 101, 115, 92, 69, 110, 117, 109, 68, 105, 115, 112, 108, 97, 121, 65, 116, 116, 114, 105, 98, 117, 116, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 103, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 116, 116, 114, 105, 98, 117, 116, 101, 115, 92, 70, 108, 97, 103, 115, 80, 114, 111, 112, 101, 114, 116, 121, 65, 116, 116, 114, 105, 98, 117, 116, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 98, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 116, 116, 114, 105, 98, 117, 116, 101, 115, 92, 82, 101, 97, 100, 79, 110, 108, 121, 65, 116, 116, 114, 105, 98, 117, 116, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 112, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 116, 116, 114, 105, 98, 117, 116, 101, 115, 92, 83, 99, 114, 105, 112, 116, 97, 98, 108, 101, 83, 101, 116, 116, 105, 110, 103, 115, 80, 97, 116, 104, 65, 116, 116, 114, 105, 98, 117, 116, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 92, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 66, 105, 110, 100, 105, 110, 103, 115, 92, 66, 105, 110, 100, 105, 110, 103, 115, 71, 114, 111, 117, 112, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 91, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 66, 105, 110, 100, 105, 110, 103, 115, 92, 69, 118, 101, 110, 116, 66, 105, 110, 100, 105, 110, 103, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 92, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 66, 105, 110, 100, 105, 110, 103, 115, 92, 73, 69, 118, 101, 110, 116, 66, 105, 110, 100, 105, 110, 103, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 66, 105, 110, 100, 105, 110, 103, 115, 92, 86, 97, 114, 105, 97, 98, 108, 101, 115, 92, 66, 105, 110, 100, 97, 98, 108, 101, 69, 110, 117, 109, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 105, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 66, 105, 110, 100, 105, 110, 103, 115, 92, 86, 97, 114, 105, 97, 98, 108, 101, 115, 92, 66, 105, 110, 100, 97, 98, 108, 101, 86, 97, 114, 105, 97, 98, 108, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 110, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 66, 105, 110, 100, 105, 110, 103, 115, 92, 86, 97, 114, 105, 97, 98, 108, 101, 115, 92, 66, 105, 110, 100, 97, 98, 108, 101, 86, 97, 114, 105, 97, 98, 108, 101, 65, 108, 108, 111, 99, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 109, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 66, 105, 110, 100, 105, 110, 103, 115, 92, 86, 97, 114, 105, 97, 98, 108, 101, 115, 92, 66, 105, 110, 100, 97, 98, 108, 101, 86, 97, 114, 105, 97, 98, 108, 101, 66, 97, 115, 101, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 118, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 66, 105, 110, 100, 105, 110, 103, 115, 92, 86, 97, 114, 105, 97, 98, 108, 101, 115, 92, 66, 105, 110, 100, 97, 98, 108, 101, 86, 97, 114, 105, 97, 98, 108, 101, 84, 97, 115, 107, 80, 114, 101, 100, 105, 99, 97, 116, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 114, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 66, 105, 110, 100, 105, 110, 103, 115, 92, 86, 97, 114, 105, 97, 98, 108, 101, 115, 92, 73, 82, 101, 97, 100, 79, 110, 108, 121, 66, 105, 110, 100, 97, 98, 108, 101, 86, 97, 114, 105, 97, 98, 108, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 81, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 66, 111, 117, 110, 100, 115, 85, 116, 105, 108, 115, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 91, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 97, 99, 104, 101, 100, 67, 111, 109, 112, 111, 110, 101, 110, 116, 70, 105, 108, 116, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 105, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 97, 112, 97, 98, 105, 108, 105, 116, 121, 80, 114, 111, 102, 105, 108, 101, 92, 67, 97, 112, 97, 98, 105, 108, 105, 116, 121, 80, 114, 111, 102, 105, 108, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 119, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 97, 112, 97, 98, 105, 108, 105, 116, 121, 80, 114, 111, 102, 105, 108, 101, 92, 68, 105, 99, 116, 105, 111, 110, 97, 114, 121, 92, 67, 97, 112, 97, 98, 105, 108, 105, 116, 121, 68, 105, 99, 116, 105, 111, 110, 97, 114, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 127, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 97, 112, 97, 98, 105, 108, 105, 116, 121, 80, 114, 111, 102, 105, 108, 101, 92, 68, 105, 99, 116, 105, 111, 110, 97, 114, 121, 92, 67, 117, 115, 116, 111, 109, 67, 97, 112, 97, 98, 105, 108, 105, 116, 121, 75, 101, 121, 65, 116, 116, 114, 105, 98, 117, 116, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 118, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 97, 112, 97, 98, 105, 108, 105, 116, 121, 80, 114, 111, 102, 105, 108, 101, 92, 68, 105, 99, 116, 105, 111, 110, 97, 114, 121, 92, 73, 67, 97, 112, 97, 98, 105, 108, 105, 116, 121, 77, 111, 100, 105, 102, 105, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 121, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 97, 112, 97, 98, 105, 108, 105, 116, 121, 80, 114, 111, 102, 105, 108, 101, 92, 68, 105, 99, 116, 105, 111, 110, 97, 114, 121, 92, 83, 116, 97, 110, 100, 97, 114, 100, 67, 97, 112, 97, 98, 105, 108, 105, 116, 121, 75, 101, 121, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 84, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 80, 111, 111, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 93, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 115, 92, 72, 97, 115, 104, 83, 101, 116, 76, 105, 115, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 94, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 115, 92, 82, 101, 97, 100, 79, 110, 108, 121, 76, 105, 115, 116, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 98, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 115, 92, 82, 101, 97, 100, 79, 110, 108, 121, 76, 105, 115, 116, 83, 112, 97, 110, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 104, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 115, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 98, 108, 101, 68, 105, 99, 116, 105, 111, 110, 97, 114, 121, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 84, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 67, 111, 109, 112, 111, 110, 101, 110, 116, 85, 116, 105, 108, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 96, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 68, 97, 116, 117, 109, 115, 92, 65, 110, 105, 109, 97, 116, 105, 111, 110, 67, 117, 114, 118, 101, 68, 97, 116, 117, 109, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 104, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 68, 97, 116, 117, 109, 115, 92, 65, 110, 105, 109, 97, 116, 105, 111, 110, 67, 117, 114, 118, 101, 68, 97, 116, 117, 109, 80, 114, 111, 112, 101, 114, 116, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 82, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 68, 97, 116, 117, 109, 115, 92, 68, 97, 116, 117, 109, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 90, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 68, 97, 116, 117, 109, 115, 92, 68, 97, 116, 117, 109, 80, 114, 111, 112, 101, 114, 116, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 87, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 68, 97, 116, 117, 109, 115, 92, 70, 108, 111, 97, 116, 68, 97, 116, 117, 109, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 68, 97, 116, 117, 109, 115, 92, 70, 108, 111, 97, 116, 68, 97, 116, 117, 109, 80, 114, 111, 112, 101, 114, 116, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 85, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 68, 97, 116, 117, 109, 115, 92, 73, 110, 116, 68, 97, 116, 117, 109, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 93, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 68, 97, 116, 117, 109, 115, 92, 73, 110, 116, 68, 97, 116, 117, 109, 80, 114, 111, 112, 101, 114, 116, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 88, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 68, 97, 116, 117, 109, 115, 92, 83, 116, 114, 105, 110, 103, 68, 97, 116, 117, 109, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 96, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 68, 97, 116, 117, 109, 115, 92, 83, 116, 114, 105, 110, 103, 68, 97, 116, 117, 109, 80, 114, 111, 112, 101, 114, 116, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 80, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 110, 117, 109, 86, 97, 108, 117, 101, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 97, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 66, 111, 117, 110, 100, 115, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 97, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 67, 97, 109, 101, 114, 97, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 68, 105, 99, 116, 105, 111, 110, 97, 114, 121, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 71, 97, 109, 101, 79, 98, 106, 101, 99, 116, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 71, 117, 105, 100, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 98, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 72, 97, 115, 104, 83, 101, 116, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 100, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 76, 97, 121, 101, 114, 77, 97, 115, 107, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 76, 105, 115, 116, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 104, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 77, 111, 110, 111, 66, 101, 104, 97, 118, 105, 111, 117, 114, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 80, 111, 115, 101, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 81, 117, 97, 116, 101, 114, 110, 105, 111, 110, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 100, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 83, 116, 111, 112, 119, 97, 116, 99, 104, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 97, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 83, 116, 114, 105, 110, 103, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 100, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 84, 114, 97, 110, 115, 102, 111, 114, 109, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 84, 121, 112, 101, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 9, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 85, 110, 105, 116, 121, 69, 118, 101, 110, 116, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 98, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 86, 101, 99, 116, 111, 114, 50, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 98, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 86, 101, 99, 116, 111, 114, 51, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 85, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 71, 97, 109, 101, 79, 98, 106, 101, 99, 116, 85, 116, 105, 108, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 83, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 71, 101, 111, 109, 101, 116, 114, 121, 85, 116, 105, 108, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 78, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 71, 117, 105, 100, 85, 116, 105, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 82, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 72, 97, 115, 104, 67, 111, 100, 101, 85, 116, 105, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 83, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 97, 116, 101, 114, 105, 97, 108, 85, 116, 105, 108, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 81, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 77, 97, 116, 104, 85, 116, 105, 108, 105, 116, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 86, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 78, 97, 116, 105, 118, 101, 65, 114, 114, 97, 121, 85, 116, 105, 108, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 80, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 79, 98, 106, 101, 99, 116, 80, 111, 111, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 87, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 79, 110, 68, 101, 115, 116, 114, 111, 121, 78, 111, 116, 105, 102, 105, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 85, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 82, 101, 102, 108, 101, 99, 116, 105, 111, 110, 85, 116, 105, 108, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 88, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 97, 98, 108, 101, 83, 101, 116, 116, 105, 110, 103, 115, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 92, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 97, 98, 108, 101, 83, 101, 116, 116, 105, 110, 103, 115, 66, 97, 115, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 86, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 98, 108, 101, 71, 117, 105, 100, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 90, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 101, 114, 105, 97, 108, 105, 122, 97, 98, 108, 101, 71, 117, 105, 100, 85, 116, 105, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 82, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 84, 101, 120, 116, 117, 114, 101, 85, 116, 105, 108, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 79, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 85, 110, 100, 111, 66, 108, 111, 99, 107, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 86, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 85, 110, 105, 116, 121, 79, 98, 106, 101, 99, 116, 85, 116, 105, 108, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 84, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 88, 82, 76, 111, 103, 103, 105, 110, 103, 85, 116, 105, 108, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 78, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 99, 111, 114, 101, 45, 117, 116, 105, 108, 115, 64, 102, 48, 52, 53, 48, 99, 98, 97, 99, 56, 100, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 88, 82, 79, 114, 105, 103, 105, 110, 46, 99, 115 }; result.TypesData = new byte[4049] { 0, 0, 0, 0, 62, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 65, 82, 84, 114, 97, 99, 107, 97, 98, 108, 101, 115, 80, 97, 114, 101, 110, 116, 84, 114, 97, 110, 115, 102, 111, 114, 109, 67, 104, 97, 110, 103, 101, 100, 69, 118, 101, 110, 116, 65, 114, 103, 115, 0, 0, 0, 0, 43, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 71, 85, 73, 124, 69, 110, 117, 109, 68, 105, 115, 112, 108, 97, 121, 65, 116, 116, 114, 105, 98, 117, 116, 101, 0, 0, 0, 0, 45, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 71, 85, 73, 124, 70, 108, 97, 103, 115, 80, 114, 111, 112, 101, 114, 116, 121, 65, 116, 116, 114, 105, 98, 117, 116, 101, 0, 0, 0, 0, 36, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 82, 101, 97, 100, 79, 110, 108, 121, 65, 116, 116, 114, 105, 98, 117, 116, 101, 0, 0, 0, 0, 50, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 83, 99, 114, 105, 112, 116, 97, 98, 108, 101, 83, 101, 116, 116, 105, 110, 103, 115, 80, 97, 116, 104, 65, 116, 116, 114, 105, 98, 117, 116, 101, 0, 0, 0, 0, 41, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 66, 105, 110, 100, 105, 110, 103, 115, 124, 66, 105, 110, 100, 105, 110, 103, 115, 71, 114, 111, 117, 112, 0, 0, 0, 0, 40, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 66, 105, 110, 100, 105, 110, 103, 115, 124, 69, 118, 101, 110, 116, 66, 105, 110, 100, 105, 110, 103, 0, 0, 0, 0, 41, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 66, 105, 110, 100, 105, 110, 103, 115, 124, 73, 69, 118, 101, 110, 116, 66, 105, 110, 100, 105, 110, 103, 0, 0, 0, 0, 50, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 66, 105, 110, 100, 105, 110, 103, 115, 46, 86, 97, 114, 105, 97, 98, 108, 101, 115, 124, 66, 105, 110, 100, 97, 98, 108, 101, 69, 110, 117, 109, 0, 0, 0, 0, 54, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 66, 105, 110, 100, 105, 110, 103, 115, 46, 86, 97, 114, 105, 97, 98, 108, 101, 115, 124, 66, 105, 110, 100, 97, 98, 108, 101, 86, 97, 114, 105, 97, 98, 108, 101, 0, 0, 0, 0, 59, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 66, 105, 110, 100, 105, 110, 103, 115, 46, 86, 97, 114, 105, 97, 98, 108, 101, 115, 124, 66, 105, 110, 100, 97, 98, 108, 101, 86, 97, 114, 105, 97, 98, 108, 101, 65, 108, 108, 111, 99, 0, 0, 0, 0, 58, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 66, 105, 110, 100, 105, 110, 103, 115, 46, 86, 97, 114, 105, 97, 98, 108, 101, 115, 124, 66, 105, 110, 100, 97, 98, 108, 101, 86, 97, 114, 105, 97, 98, 108, 101, 66, 97, 115, 101, 0, 0, 0, 0, 67, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 66, 105, 110, 100, 105, 110, 103, 115, 46, 86, 97, 114, 105, 97, 98, 108, 101, 115, 124, 66, 105, 110, 100, 97, 98, 108, 101, 86, 97, 114, 105, 97, 98, 108, 101, 84, 97, 115, 107, 80, 114, 101, 100, 105, 99, 97, 116, 101, 0, 0, 0, 0, 63, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 66, 105, 110, 100, 105, 110, 103, 115, 46, 86, 97, 114, 105, 97, 98, 108, 101, 115, 124, 66, 105, 110, 100, 97, 98, 108, 101, 86, 97, 114, 105, 97, 98, 108, 101, 84, 97, 115, 107, 83, 116, 97, 116, 101, 0, 0, 0, 0, 63, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 66, 105, 110, 100, 105, 110, 103, 115, 46, 86, 97, 114, 105, 97, 98, 108, 101, 115, 124, 73, 82, 101, 97, 100, 79, 110, 108, 121, 66, 105, 110, 100, 97, 98, 108, 101, 86, 97, 114, 105, 97, 98, 108, 101, 0, 0, 0, 0, 30, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 66, 111, 117, 110, 100, 115, 85, 116, 105, 108, 115, 0, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 73, 67, 111, 109, 112, 111, 110, 101, 110, 116, 72, 111, 115, 116, 0, 0, 0, 0, 40, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 67, 97, 99, 104, 101, 100, 67, 111, 109, 112, 111, 110, 101, 110, 116, 70, 105, 108, 116, 101, 114, 0, 0, 0, 0, 49, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 67, 97, 112, 97, 98, 105, 108, 105, 116, 105, 101, 115, 124, 67, 97, 112, 97, 98, 105, 108, 105, 116, 121, 80, 114, 111, 102, 105, 108, 101, 0, 0, 0, 0, 52, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 67, 97, 112, 97, 98, 105, 108, 105, 116, 105, 101, 115, 124, 67, 97, 112, 97, 98, 105, 108, 105, 116, 121, 68, 105, 99, 116, 105, 111, 110, 97, 114, 121, 0, 0, 0, 0, 60, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 67, 97, 112, 97, 98, 105, 108, 105, 116, 105, 101, 115, 124, 67, 117, 115, 116, 111, 109, 67, 97, 112, 97, 98, 105, 108, 105, 116, 121, 75, 101, 121, 65, 116, 116, 114, 105, 98, 117, 116, 101, 0, 0, 0, 0, 51, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 67, 97, 112, 97, 98, 105, 108, 105, 116, 105, 101, 115, 124, 73, 67, 97, 112, 97, 98, 105, 108, 105, 116, 121, 77, 111, 100, 105, 102, 105, 101, 114, 0, 0, 0, 0, 54, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 67, 97, 112, 97, 98, 105, 108, 105, 116, 105, 101, 115, 124, 83, 116, 97, 110, 100, 97, 114, 100, 67, 97, 112, 97, 98, 105, 108, 105, 116, 121, 75, 101, 121, 115, 0, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 80, 111, 111, 108, 0, 0, 0, 0, 42, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 115, 124, 72, 97, 115, 104, 83, 101, 116, 76, 105, 115, 116, 0, 0, 0, 0, 43, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 115, 124, 82, 101, 97, 100, 79, 110, 108, 121, 76, 105, 115, 116, 0, 0, 0, 0, 47, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 115, 124, 82, 101, 97, 100, 79, 110, 108, 121, 76, 105, 115, 116, 83, 112, 97, 110, 0, 0, 0, 0, 42, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 115, 46, 124, 69, 110, 117, 109, 101, 114, 97, 116, 111, 114, 0, 0, 0, 0, 53, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 115, 124, 83, 101, 114, 105, 97, 108, 105, 122, 97, 98, 108, 101, 68, 105, 99, 116, 105, 111, 110, 97, 114, 121, 0, 0, 0, 0, 58, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 115, 46, 83, 101, 114, 105, 97, 108, 105, 122, 97, 98, 108, 101, 68, 105, 99, 116, 105, 111, 110, 97, 114, 121, 124, 73, 116, 101, 109, 1, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 67, 111, 109, 112, 111, 110, 101, 110, 116, 85, 116, 105, 108, 115, 1, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 67, 111, 109, 112, 111, 110, 101, 110, 116, 85, 116, 105, 108, 115, 0, 0, 0, 0, 45, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 68, 97, 116, 117, 109, 115, 124, 65, 110, 105, 109, 97, 116, 105, 111, 110, 67, 117, 114, 118, 101, 68, 97, 116, 117, 109, 0, 0, 0, 0, 53, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 68, 97, 116, 117, 109, 115, 124, 65, 110, 105, 109, 97, 116, 105, 111, 110, 67, 117, 114, 118, 101, 68, 97, 116, 117, 109, 80, 114, 111, 112, 101, 114, 116, 121, 0, 0, 0, 0, 31, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 68, 97, 116, 117, 109, 115, 124, 68, 97, 116, 117, 109, 0, 0, 0, 0, 39, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 68, 97, 116, 117, 109, 115, 124, 68, 97, 116, 117, 109, 80, 114, 111, 112, 101, 114, 116, 121, 0, 0, 0, 0, 36, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 68, 97, 116, 117, 109, 115, 124, 70, 108, 111, 97, 116, 68, 97, 116, 117, 109, 0, 0, 0, 0, 44, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 68, 97, 116, 117, 109, 115, 124, 70, 108, 111, 97, 116, 68, 97, 116, 117, 109, 80, 114, 111, 112, 101, 114, 116, 121, 0, 0, 0, 0, 34, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 68, 97, 116, 117, 109, 115, 124, 73, 110, 116, 68, 97, 116, 117, 109, 0, 0, 0, 0, 42, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 68, 97, 116, 117, 109, 115, 124, 73, 110, 116, 68, 97, 116, 117, 109, 80, 114, 111, 112, 101, 114, 116, 121, 0, 0, 0, 0, 37, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 68, 97, 116, 117, 109, 115, 124, 83, 116, 114, 105, 110, 103, 68, 97, 116, 117, 109, 0, 0, 0, 0, 45, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 46, 68, 97, 116, 117, 109, 115, 124, 83, 116, 114, 105, 110, 103, 68, 97, 116, 117, 109, 80, 114, 111, 112, 101, 114, 116, 121, 0, 0, 0, 0, 29, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 69, 110, 117, 109, 86, 97, 108, 117, 101, 115, 0, 0, 0, 0, 35, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 66, 111, 117, 110, 100, 115, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 35, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 67, 97, 109, 101, 114, 97, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 39, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 67, 111, 108, 108, 101, 99, 116, 105, 111, 110, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 39, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 68, 105, 99, 116, 105, 111, 110, 97, 114, 121, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 39, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 71, 97, 109, 101, 79, 98, 106, 101, 99, 116, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 71, 117, 105, 100, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 36, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 72, 97, 115, 104, 83, 101, 116, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 38, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 76, 97, 121, 101, 114, 77, 97, 115, 107, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 76, 105, 115, 116, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 42, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 77, 111, 110, 111, 66, 101, 104, 97, 118, 105, 111, 117, 114, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 80, 111, 115, 101, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 39, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 81, 117, 97, 116, 101, 114, 110, 105, 111, 110, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 38, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 83, 116, 111, 112, 119, 97, 116, 99, 104, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 35, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 83, 116, 114, 105, 110, 103, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 38, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 84, 114, 97, 110, 115, 102, 111, 114, 109, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 84, 121, 112, 101, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 66, 111, 111, 108, 85, 110, 105, 116, 121, 69, 118, 101, 110, 116, 0, 0, 0, 0, 34, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 70, 108, 111, 97, 116, 85, 110, 105, 116, 121, 69, 118, 101, 110, 116, 0, 0, 0, 0, 36, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 86, 101, 99, 116, 111, 114, 50, 85, 110, 105, 116, 121, 69, 118, 101, 110, 116, 0, 0, 0, 0, 36, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 86, 101, 99, 116, 111, 114, 51, 85, 110, 105, 116, 121, 69, 118, 101, 110, 116, 0, 0, 0, 0, 36, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 86, 101, 99, 116, 111, 114, 52, 85, 110, 105, 116, 121, 69, 118, 101, 110, 116, 0, 0, 0, 0, 39, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 81, 117, 97, 116, 101, 114, 110, 105, 111, 110, 85, 110, 105, 116, 121, 69, 118, 101, 110, 116, 0, 0, 0, 0, 32, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 73, 110, 116, 85, 110, 105, 116, 121, 69, 118, 101, 110, 116, 0, 0, 0, 0, 34, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 67, 111, 108, 111, 114, 85, 110, 105, 116, 121, 69, 118, 101, 110, 116, 0, 0, 0, 0, 35, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 83, 116, 114, 105, 110, 103, 85, 110, 105, 116, 121, 69, 118, 101, 110, 116, 0, 0, 0, 0, 36, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 86, 101, 99, 116, 111, 114, 50, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 36, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 86, 101, 99, 116, 111, 114, 51, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 34, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 71, 97, 109, 101, 79, 98, 106, 101, 99, 116, 85, 116, 105, 108, 115, 0, 0, 0, 0, 32, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 71, 101, 111, 109, 101, 116, 114, 121, 85, 116, 105, 108, 115, 0, 0, 0, 0, 27, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 71, 117, 105, 100, 85, 116, 105, 108, 0, 0, 0, 0, 31, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 72, 97, 115, 104, 67, 111, 100, 101, 85, 116, 105, 108, 0, 0, 0, 0, 32, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 77, 97, 116, 101, 114, 105, 97, 108, 85, 116, 105, 108, 115, 0, 0, 0, 0, 30, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 77, 97, 116, 104, 85, 116, 105, 108, 105, 116, 121, 0, 0, 0, 0, 35, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 78, 97, 116, 105, 118, 101, 65, 114, 114, 97, 121, 85, 116, 105, 108, 115, 0, 0, 0, 0, 29, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 79, 98, 106, 101, 99, 116, 80, 111, 111, 108, 0, 0, 0, 0, 36, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 79, 110, 68, 101, 115, 116, 114, 111, 121, 78, 111, 116, 105, 102, 105, 101, 114, 0, 0, 0, 0, 34, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 82, 101, 102, 108, 101, 99, 116, 105, 111, 110, 85, 116, 105, 108, 115, 0, 0, 0, 0, 37, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 83, 99, 114, 105, 112, 116, 97, 98, 108, 101, 83, 101, 116, 116, 105, 110, 103, 115, 1, 0, 0, 0, 41, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 83, 99, 114, 105, 112, 116, 97, 98, 108, 101, 83, 101, 116, 116, 105, 110, 103, 115, 66, 97, 115, 101, 1, 0, 0, 0, 41, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 83, 99, 114, 105, 112, 116, 97, 98, 108, 101, 83, 101, 116, 116, 105, 110, 103, 115, 66, 97, 115, 101, 0, 0, 0, 0, 35, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 83, 101, 114, 105, 97, 108, 105, 122, 97, 98, 108, 101, 71, 117, 105, 100, 0, 0, 0, 0, 39, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 83, 101, 114, 105, 97, 108, 105, 122, 97, 98, 108, 101, 71, 117, 105, 100, 85, 116, 105, 108, 0, 0, 0, 0, 31, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 84, 101, 120, 116, 117, 114, 101, 85, 116, 105, 108, 115, 0, 0, 0, 0, 28, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 85, 110, 100, 111, 66, 108, 111, 99, 107, 0, 0, 0, 0, 35, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 85, 110, 105, 116, 121, 79, 98, 106, 101, 99, 116, 85, 116, 105, 108, 115, 0, 0, 0, 0, 33, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 88, 82, 76, 111, 103, 103, 105, 110, 103, 85, 116, 105, 108, 115, 0, 0, 0, 0, 27, 85, 110, 105, 116, 121, 46, 88, 82, 46, 67, 111, 114, 101, 85, 116, 105, 108, 115, 124, 88, 82, 79, 114, 105, 103, 105, 110 }; result.TotalFiles = 76; result.TotalTypes = 90; result.IsEditorOnly = false; return result; } } namespace Unity.XR.CoreUtils { public readonly struct ARTrackablesParentTransformChangedEventArgs : IEquatable<ARTrackablesParentTransformChangedEventArgs> { public XROrigin Origin { get; } public Transform TrackablesParent { get; } public ARTrackablesParentTransformChangedEventArgs(XROrigin origin, Transform trackablesParent) { if ((Object)(object)origin == (Object)null) { throw new ArgumentNullException("origin"); } if ((Object)(object)trackablesParent == (Object)null) { throw new ArgumentNullException("trackablesParent"); } Origin = origin; TrackablesParent = trackablesParent; } public bool Equals(ARTrackablesParentTransformChangedEventArgs other) { if ((Object)(object)Origin == (Object)(object)other.Origin) { return (Object)(object)TrackablesParent == (Object)(object)other.TrackablesParent; } return false; } public override bool Equals(object obj) { if (obj is ARTrackablesParentTransformChangedEventArgs other) { return Equals(other); } return false; } public override int GetHashCode() { return HashCodeUtil.Combine(HashCodeUtil.ReferenceHash(Origin), HashCodeUtil.ReferenceHash(TrackablesParent)); } public static bool operator ==(ARTrackablesParentTransformChangedEventArgs lhs, ARTrackablesParentTransformChangedEventArgs rhs) { return lhs.Equals(rhs); } public static bool operator !=(ARTrackablesParentTransformChangedEventArgs lhs, ARTrackablesParentTransformChangedEventArgs rhs) { return !lhs.Equals(rhs); } } public class ReadOnlyAttribute : PropertyAttribute { } [AttributeUsage(AttributeTargets.Class)] public class ScriptableSettingsPathAttribute : Attribute { private readonly string m_Path; public string Path => m_Path; public ScriptableSettingsPathAttribute(string path = "") { m_Path = path; } } public static class BoundsUtils { private static readonly List<Renderer> k_Renderers = new List<Renderer>(); private static readonly List<Transform> k_Transforms = new List<Transform>(); public static Bounds GetBounds(List<GameObject> gameObjects) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) Bounds? val = null; foreach (GameObject gameObject in gameObjects) { Bounds bounds = GetBounds(gameObject.transform); if (!val.HasValue) { val = bounds; continue; } ((Bounds)(ref bounds)).Encapsulate(val.Value); val = bounds; } return val.GetValueOrDefault(); } public static Bounds GetBounds(Transform[] transforms) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) Bounds? val = null; for (int i = 0; i < transforms.Length; i++) { Bounds bounds = GetBounds(transforms[i]); if (!val.HasValue) { val = bounds; continue; } ((Bounds)(ref bounds)).Encapsulate(val.Value); val = bounds; } return val.GetValueOrDefault(); } public static Bounds GetBounds(Transform transform) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) ((Component)transform).GetComponentsInChildren<Renderer>(k_Renderers); Bounds bounds = GetBounds(k_Renderers); if (((Bounds)(ref bounds)).size == Vector3.zero) { ((Component)transform).GetComponentsInChildren<Transform>(k_Transforms); if (k_Transforms.Count > 0) { ((Bounds)(ref bounds)).center = k_Transforms[0].position; } foreach (Transform k_Transform in k_Transforms) { ((Bounds)(ref bounds)).Encapsulate(k_Transform.position); } } return bounds; } public static Bounds GetBounds(List<Renderer> renderers) { //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) Bounds result2; if (renderers.Count > 0) { Renderer val = renderers[0]; Bounds result = default(Bounds); ((Bounds)(ref result))..ctor(((Component)val).transform.position, Vector3.zero); { foreach (Renderer renderer in renderers) { result2 = renderer.bounds; if (((Bounds)(ref result2)).size != Vector3.zero) { ((Bounds)(ref result)).Encapsulate(renderer.bounds); } } return result; } } result2 = default(Bounds); return result2; } public static Bounds GetBounds<T>(List<T> colliders) where T : Collider { //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) Bounds result2; if (colliders.Count > 0) { T val = colliders[0]; Bounds result = default(Bounds); ((Bounds)(ref result))..ctor(((Component)(object)val).transform.position, Vector3.zero); { foreach (T collider in colliders) { result2 = ((Collider)collider).bounds; if (((Bounds)(ref result2)).size != Vector3.zero) { ((Bounds)(ref result)).Encapsulate(((Collider)collider).bounds); } } return result; } } result2 = default(Bounds); return result2; } public static Bounds GetBounds(List<Vector3> points) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) Bounds result = default(Bounds); if (points.Count < 1) { return result; } Vector3 val = points[0]; Vector3 val2 = val; for (int i = 1; i < points.Count; i++) { Vector3 val3 = points[i]; if (val3.x < val.x) { val.x = val3.x; } if (val3.y < val.y) { val.y = val3.y; } if (val3.z < val.z) { val.z = val3.z; } if (val3.x > val2.x) { val2.x = val3.x; } if (val3.y > val2.y) { val2.y = val3.y; } if (val3.z > val2.z) { val2.z = val3.z; } } ((Bounds)(ref result)).SetMinMax(val, val2); return result; } } public interface IComponentHost<THostType> where THostType : class { THostType[] HostedComponents { get; } } [Flags] public enum CachedSearchType { Children = 1, Self = 2, Parents = 4 } public class CachedComponentFilter<TFilterType, TRootType> : IDisposable where TFilterType : class where TRootType : Component { private readonly List<TFilterType> m_MasterComponentStorage; private static readonly List<TFilterType> k_TempComponentList = new List<TFilterType>(); private static readonly List<IComponentHost<TFilterType>> k_TempHostComponentList = new List<IComponentHost<TFilterType>>(); private bool m_DisposedValue; public CachedComponentFilter(TRootType componentRoot, CachedSearchType cachedSearchType = CachedSearchType.Children | CachedSearchType.Self, bool includeDisabled = true) { //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) m_MasterComponentStorage = CollectionPool<List<TFilterType>, TFilterType>.GetCollection(); k_TempComponentList.Clear(); k_TempHostComponentList.Clear(); if ((cachedSearchType & CachedSearchType.Self) == CachedSearchType.Self) { ((Component)componentRoot).GetComponents<TFilterType>(k_TempComponentList); ((Component)componentRoot).GetComponents<IComponentHost<TFilterType>>(k_TempHostComponentList); FilteredCopyToMaster(includeDisabled); } if ((cachedSearchType & CachedSearchType.Parents) == CachedSearchType.Parents) { Transform parent = ((Component)componentRoot).transform.parent; while ((Object)(object)parent != (Object)null && !((Object)(object)((Component)parent).GetComponent<TRootType>() != (Object)null)) { ((Component)parent).GetComponents<TFilterType>(k_TempComponentList); ((Component)parent).GetComponents<IComponentHost<TFilterType>>(k_TempHostComponentList); FilteredCopyToMaster(includeDisabled); parent = ((Component)parent).transform.parent; } } if ((cachedSearchType & CachedSearchType.Children) != CachedSearchType.Children) { return; } foreach (Transform item in ((Component)componentRoot).transform) { ((Component)item).GetComponentsInChildren<TFilterType>(k_TempComponentList); ((Component)item).GetComponentsInChildren<IComponentHost<TFilterType>>(k_TempHostComponentList); FilteredCopyToMaster(includeDisabled, componentRoot); } } public CachedComponentFilter(TFilterType[] componentList, bool includeDisabled = true) { if (componentList != null) { m_MasterComponentStorage = CollectionPool<List<TFilterType>, TFilterType>.GetCollection(); k_TempComponentList.Clear(); k_TempComponentList.AddRange(componentList); FilteredCopyToMaster(includeDisabled); } } public void StoreMatchingComponents<TChildType>(List<TChildType> outputList) where TChildType : class, TFilterType { foreach (TFilterType item2 in m_MasterComponentStorage) { if (item2 is TChildType item) { outputList.Add(item); } } } public TChildType[] GetMatchingComponents<TChildType>() where TChildType : class, TFilterType { int num = 0; foreach (TFilterType item in m_MasterComponentStorage) { if (item is TChildType) { num++; } } TChildType[] array = new TChildType[num]; num = 0; foreach (TFilterType item2 in m_MasterComponentStorage) { if (item2 is TChildType val) { array[num] = val; num++; } } return array; } private void FilteredCopyToMaster(bool includeDisabled) { if (includeDisabled) { m_MasterComponentStorage.AddRange(k_TempComponentList); { foreach (IComponentHost<TFilterType> k_TempHostComponent in k_TempHostComponentList) { m_MasterComponentStorage.AddRange(k_TempHostComponent.HostedComponents); } return; } } foreach (TFilterType k_TempComponent in k_TempComponentList) { Behaviour val = (Behaviour)(object)((k_TempComponent is Behaviour) ? k_TempComponent : null); if (!((Object)(object)val != (Object)null) || val.enabled) { m_MasterComponentStorage.Add(k_TempComponent); } } foreach (IComponentHost<TFilterType> k_TempHostComponent2 in k_TempHostComponentList) { Behaviour val2 = (Behaviour)((k_TempHostComponent2 is Behaviour) ? k_TempHostComponent2 : null); if (!((Object)(object)val2 != (Object)null) || val2.enabled) { m_MasterComponentStorage.AddRange(k_TempHostComponent2.HostedComponents); } } } private void FilteredCopyToMaster(bool includeDisabled, TRootType requiredRoot) { if (includeDisabled) { foreach (TFilterType k_TempComponent in k_TempComponentList) { Component val = (Component)(object)((k_TempComponent is Component) ? k_TempComponent : null); if (!((Object)(object)val.transform == (Object)(object)requiredRoot) && !((Object)(object)val.GetComponentInParent<TRootType>() != (Object)(object)requiredRoot)) { m_MasterComponentStorage.Add(k_TempComponent); } } { foreach (IComponentHost<TFilterType> k_TempHostComponent in k_TempHostComponentList) { Component val2 = (Component)((k_TempHostComponent is Component) ? k_TempHostComponent : null); if (!((Object)(object)val2.transform == (Object)(object)requiredRoot) && !((Object)(object)val2.GetComponentInParent<TRootType>() != (Object)(object)requiredRoot)) { m_MasterComponentStorage.AddRange(k_TempHostComponent.HostedComponents); } } return; } } foreach (TFilterType k_TempComponent2 in k_TempComponentList) { Behaviour val3 = (Behaviour)(object)((k_TempComponent2 is Behaviour) ? k_TempComponent2 : null); if (val3.enabled && !((Object)(object)((Component)val3).transform == (Object)(object)requiredRoot) && !((Object)(object)((Component)val3).GetComponentInParent<TRootType>() != (Object)(object)requiredRoot)) { m_MasterComponentStorage.Add(k_TempComponent2); } } foreach (IComponentHost<TFilterType> k_TempHostComponent2 in k_TempHostComponentList) { Behaviour val4 = (Behaviour)((k_TempHostComponent2 is Behaviour) ? k_TempHostComponent2 : null); if (val4.enabled && !((Object)(object)((Component)val4).transform == (Object)(object)requiredRoot) && !((Object)(object)((Component)val4).GetComponentInParent<TRootType>() != (Object)(object)requiredRoot)) { m_MasterComponentStorage.AddRange(k_TempHostComponent2.HostedComponents); } } } protected virtual void Dispose(bool disposing) { if (!m_DisposedValue) { if (disposing && m_MasterComponentStorage != null) { CollectionPool<List<TFilterType>, TFilterType>.RecycleCollection(m_MasterComponentStorage); } m_DisposedValue = true; } } public void Dispose() { Dispose(disposing: true); } } public static class CollectionPool<TCollection, TValue> where TCollection : ICollection<TValue>, new() { private static readonly Queue<TCollection> k_CollectionQueue = new Queue<TCollection>(); public static TCollection GetCollection() { if (k_CollectionQueue.Count <= 0) { return new TCollection(); } return k_CollectionQueue.Dequeue(); } public static void RecycleCollection(TCollection collection) { collection.Clear(); k_CollectionQueue.Enqueue(collection); } } public static class ComponentUtils<T> { private static readonly List<T> k_RetrievalList = new List<T>(); public static T GetComponent(GameObject gameObject) { T result = default(T); gameObject.GetComponents<T>(k_RetrievalList); if (k_RetrievalList.Count > 0) { return k_RetrievalList[0]; } return result; } public static T GetComponentInChildren(GameObject gameObject) { T result = default(T); gameObject.GetComponentsInChildren<T>(k_RetrievalList); if (k_RetrievalList.Count > 0) { return k_RetrievalList[0]; } return result; } } public static class ComponentUtils { public static T GetOrAddIf<T>(GameObject gameObject, bool add) where T : Component { T val = gameObject.GetComponent<T>(); if (add && (Object)(object)val == (Object)null) { val = gameObject.AddComponent<T>(); } return val; } } public static class EnumValues<T> { public static readonly T[] Values = (T[])Enum.GetValues(typeof(T)); } public static class BoundsExtensions { public static bool ContainsCompletely(this Bounds outerBounds, Bounds innerBounds) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) Vector3 max = ((Bounds)(ref outerBounds)).max; Vector3 min = ((Bounds)(ref outerBounds)).min; Vector3 max2 = ((Bounds)(ref innerBounds)).max; Vector3 min2 = ((Bounds)(ref innerBounds)).min; if (max.x >= max2.x && max.y >= max2.y && max.z >= max2.z && min.x <= min2.x && min.y <= min2.y) { return min.z <= min2.z; } return false; } } public static class CameraExtensions { private const float k_OneOverSqrt2 = 0.70710677f; public static float GetVerticalFieldOfView(this Camera camera, float aspectNeutralFieldOfView) { return Mathf.Atan(Mathf.Tan(aspectNeutralFieldOfView * 0.5f * (MathF.PI / 180f)) * 0.70710677f / Mathf.Sqrt(camera.aspect)) * 2f * 57.29578f; } public static float GetHorizontalFieldOfView(this Camera camera) { float num = camera.fieldOfView * 0.5f; return 57.29578f * Mathf.Atan(Mathf.Tan(num * (MathF.PI / 180f)) * camera.aspect); } public static float GetVerticalOrthographicSize(this Camera camera, float size) { return size * 0.70710677f / Mathf.Sqrt(camera.aspect); } } public static class CollectionExtensions { private static readonly StringBuilder k_String = new StringBuilder(); public static string Stringify<T>(this ICollection<T> collection) { k_String.Length = 0; int num = collection.Count - 1; int num2 = 0; foreach (T item in collection) { k_String.AppendFormat((num2++ == num) ? "{0}" : "{0}, ", item); } return k_String.ToString(); } } public static class DictionaryExtensions { public static KeyValuePair<TKey, TValue> First<TKey, TValue>(this Dictionary<TKey, TValue> dictionary) { KeyValuePair<TKey, TValue> result = default(KeyValuePair<TKey, TValue>); Dictionary<TKey, TValue>.Enumerator enumerator = dictionary.GetEnumerator(); if (enumerator.MoveNext()) { result = enumerator.Current; } enumerator.Dispose(); return result; } } public static class GameObjectExtensions { public static void SetHideFlagsRecursively(this GameObject gameObject, HideFlags hideFlags) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) ((Object)gameObject).hideFlags = hideFlags; foreach (Transform item in gameObject.transform) { ((Component)item).gameObject.SetHideFlagsRecursively(hideFlags); } } public static void AddToHideFlagsRecursively(this GameObject gameObject, HideFlags hideFlags) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) ((Object)gameObject).hideFlags = (HideFlags)(((Object)gameObject).hideFlags | hideFlags); foreach (Transform item in gameObject.transform) { ((Component)item).gameObject.AddToHideFlagsRecursively(hideFlags); } } public static void SetLayerRecursively(this GameObject gameObject, int layer) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) gameObject.layer = layer; foreach (Transform item in gameObject.transform) { ((Component)item).gameObject.SetLayerRecursively(layer); } } public static void SetLayerAndAddToHideFlagsRecursively(this GameObject gameObject, int layer, HideFlags hideFlags) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) gameObject.layer = layer; ((Object)gameObject).hideFlags = (HideFlags)(((Object)gameObject).hideFlags | hideFlags); foreach (Transform item in gameObject.transform) { ((Component)item).gameObject.SetLayerAndAddToHideFlagsRecursively(layer, hideFlags); } } public static void SetLayerAndHideFlagsRecursively(this GameObject gameObject, int layer, HideFlags hideFlags) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) gameObject.layer = layer; ((Object)gameObject).hideFlags = hideFlags; foreach (Transform item in gameObject.transform) { ((Component)item).gameObject.SetLayerAndHideFlagsRecursively(layer, hideFlags); } } public static void SetRunInEditModeRecursively(this GameObject gameObject, bool enabled) { } } public static class GuidExtensions { public static void Decompose(this Guid guid, out ulong low, out ulong high) { byte[] value = guid.ToByteArray(); low = BitConverter.ToUInt64(value, 0); high = BitConverter.ToUInt64(value, 8); } } public static class HashSetExtensions { public static void ExceptWithNonAlloc<T>(this HashSet<T> self, HashSet<T> other) { foreach (T item in other) { self.Remove(item); } } public static T First<T>(this HashSet<T> set) { HashSet<T>.Enumerator enumerator = set.GetEnumerator(); T result = (enumerator.MoveNext() ? enumerator.Current : default(T)); enumerator.Dispose(); return result; } } public static class LayerMaskExtensions { public static int GetFirstLayerIndex(this LayerMask layerMask) { if (((LayerMask)(ref layerMask)).value == 0) { return -1; } int num = 0; int num2 = ((LayerMask)(ref layerMask)).value; while ((num2 & 1) == 0) { num2 >>= 1; num++; } return num; } public static bool Contains(this LayerMask mask, int layer) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) return ((uint)LayerMask.op_Implicit(mask) & (1 << layer)) > 0; } } public static class ListExtensions { public static List<T> Fill<T>(this List<T> list, int count) where T : new() { for (int i = 0; i < count; i++) { list.Add(new T()); } return list; } public static void EnsureCapacity<T>(this List<T> list, int capacity) { if (list.Capacity < capacity) { list.Capacity = capacity; } } public static void SwapAtIndices<T>(this List<T> list, int first, int second) { T val = list[second]; T val2 = list[first]; T val4 = (list[first] = val); val4 = (list[second] = val2); } } public static class MonoBehaviourExtensions { } public static class PoseExtensions { public static Pose ApplyOffsetTo(this Pose pose, Pose otherPose) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) Quaternion rotation = pose.rotation; return new Pose(rotation * otherPose.position + pose.position, rotation * otherPose.rotation); } public static Vector3 ApplyOffsetTo(this Pose pose, Vector3 position) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) return pose.rotation * position + pose.position; } public static Vector3 ApplyInverseOffsetTo(this Pose pose, Vector3 position) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) return Quaternion.Inverse(pose.rotation) * (position - pose.position); } } public static class QuaternionExtensions { public static Quaternion ConstrainYaw(this Quaternion rotation) { //IL_0018: Unknown result type (might be due to invalid IL or missing references) rotation.x = 0f; rotation.z = 0f; return rotation; } public static Quaternion ConstrainYawNormalized(this Quaternion rotation) { //IL_001f: Unknown result type (might be due to invalid IL or missing references) rotation.x = 0f; rotation.z = 0f; ((Quaternion)(ref rotation)).Normalize(); return rotation; } public static Quaternion ConstrainYawPitchNormalized(this Quaternion rotation) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) Vector3 eulerAngles = ((Quaternion)(ref rotation)).eulerAngles; eulerAngles.z = 0f; return Quaternion.Euler(eulerAngles); } } public static class StopwatchExtensions { public static void Restart(this Stopwatch stopwatch) { stopwatch.Stop(); stopwatch.Reset(); stopwatch.Start(); } } public static class StringExtensions { private static readonly StringBuilder k_StringBuilder = new StringBuilder(); public static string FirstToUpper(this string str) { if (string.IsNullOrEmpty(str)) { return string.Empty; } if (str.Length == 1) { return char.ToUpper(str[0]).ToString(); } return $"{char.ToUpper(str[0])}{str.Substring(1)}"; } public static string InsertSpacesBetweenWords(this string str) { if (string.IsNullOrEmpty(str)) { return string.Empty; } k_StringBuilder.Length = 0; k_StringBuilder.Append(str[0]); int length = str.Length; for (int i = 0; i < length - 1; i++) { char c = str[i]; char c2 = str[i + 1]; bool flag = char.IsLower(c); bool flag2 = char.IsLower(c2); bool flag3 = flag && !flag2; if (i + 2 < length) { bool flag4 = char.IsLower(str[i + 2]); flag3 = flag3 || (!flag && !flag2 && flag4); } if (flag3) { k_StringBuilder.Append(' '); } k_StringBuilder.Append(c2); } return k_StringBuilder.ToString(); } } public static class TransformExtensions { public static Pose GetLocalPose(this Transform transform) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) Vector3 val = default(Vector3); Quaternion val2 = default(Quaternion); transform.GetLocalPositionAndRotation(ref val, ref val2); return new Pose(val, val2); } public static Pose GetWorldPose(this Transform transform) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) Vector3 val = default(Vector3); Quaternion val2 = default(Quaternion); transform.GetPositionAndRotation(ref val, ref val2); return new Pose(val, val2); } public static void SetLocalPose(this Transform transform, Pose pose) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) transform.SetLocalPositionAndRotation(pose.position, pose.rotation); } public static void SetWorldPose(this Transform transform, Pose pose) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) transform.SetPositionAndRotation(pose.position, pose.rotation); } public static Pose TransformPose(this Transform transform, Pose pose) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) return ((Pose)(ref pose)).GetTransformedBy(transform); } public static Pose InverseTransformPose(this Transform transform, Pose pose) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)transform == (Object)null) { throw new ArgumentNullException("transform"); } Pose result = default(Pose); result.position = transform.InverseTransformPoint(pose.position); result.rotation = Quaternion.Inverse(transform.rotation) * pose.rotation; return result; } public static Ray InverseTransformRay(this Transform transform, Ray ray) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)transform == (Object)null) { throw new ArgumentNullException("transform"); } return new Ray(transform.InverseTransformPoint(((Ray)(ref ray)).origin), transform.InverseTransformDirection(((Ray)(ref ray)).direction)); } } public static class TypeExtensions { private static readonly List<FieldInfo> k_Fields = new List<FieldInfo>(); private static readonly List<string> k_TypeNames = new List<string>(); public static void GetAssignableTypes(this Type type, List<Type> list, Func<Type, bool> predicate = null) { ReflectionUtils.ForEachType(delegate(Type t) { if (type.IsAssignableFrom(t) && !t.IsInterface && !t.IsAbstract && (predicate == null || predicate(t))) { list.Add(t); } }); } public static void GetImplementationsOfInterface(this Type type, List<Type> list) { if (type.IsInterface) { type.GetAssignableTypes(list); } } public static void GetExtensionsOfClass(this Type type, List<Type> list) { if (type.IsClass) { type.GetAssignableTypes(list); } } public static void GetGenericInterfaces(this Type type, Type genericInterface, List<Type> interfaces) { Type[] interfaces2 = type.GetInterfaces(); foreach (Type type2 in interfaces2) { if (type2.IsGenericType && type2.GetGenericTypeDefinition() == genericInterface) { interfaces.Add(type2); } } } public static PropertyInfo GetPropertyRecursively(this Type type, string name, BindingFlags bindingAttr) { PropertyInfo propertyInfo = type.GetProperty(name, bindingAttr); if (propertyInfo != null) { return propertyInfo; } if (type.BaseType != null) { propertyInfo = type.BaseType.GetPropertyRecursively(name, bindingAttr); } return propertyInfo; } public static FieldInfo GetFieldRecursively(this Type type, string name, BindingFlags bindingAttr) { FieldInfo fieldInfo = type.GetField(name, bindingAttr); if (fieldInfo != null) { return fieldInfo; } if (type.BaseType != null) { fieldInfo = type.BaseType.GetFieldRecursively(name, bindingAttr); } return fieldInfo; } public static void GetFieldsRecursively(this Type type, List<FieldInfo> fields, BindingFlags bindingAttr = BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) { while (true) { FieldInfo[] fields2 = type.GetFields(bindingAttr); foreach (FieldInfo item in fields2) { fields.Add(item); } Type baseType = type.BaseType; if (baseType != null) { type = baseType; continue; } break; } } public static void GetPropertiesRecursively(this Type type, List<PropertyInfo> fields, BindingFlags bindingAttr = BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) { while (true) { PropertyInfo[] properties = type.GetProperties(bindingAttr); foreach (PropertyInfo item in properties) { fields.Add(item); } Type baseType = type.BaseType; if (baseType != null) { type = baseType; continue; } break; } } public static void GetInterfaceFieldsFromClasses(this IEnumerable<Type> classes, List<FieldInfo> fields, List<Type> interfaceTypes, BindingFlags bindingAttr) { foreach (Type interfaceType in interfaceTypes) { if (!interfaceType.IsInterface) { throw new ArgumentException($"Type {interfaceType} in interfaceTypes is not an interface!"); } } foreach (Type @class in classes) { if (!@class.IsClass) { throw new ArgumentException($"Type {@class} in classes is not a class!"); } k_Fields.Clear(); @class.GetFieldsRecursively(k_Fields, bindingAttr); foreach (FieldInfo k_Field in k_Fields) { Type[] interfaces = k_Field.FieldType.GetInterfaces(); foreach (Type item in interfaces) { if (interfaceTypes.Contains(item)) { fields.Add(k_Field); break; } } } } } public static TAttribute GetAttribute<TAttribute>(this Type type, bool inherit = false) where TAttribute : Attribute { return (TAttribute)type.GetCustomAttributes(typeof(TAttribute), inherit)[0]; } public static void IsDefinedGetInheritedTypes<TAttribute>(this Type type, List<Type> types) where TAttribute : Attribute { while (type != null) { if (type.IsDefined(typeof(TAttribute), inherit: true)) { types.Add(type); } type = type.BaseType; } } public static FieldInfo GetFieldInTypeOrBaseType(this Type type, string fieldName) { FieldInfo field; while (true) { if (type == null) { return null; } field = type.GetField(fieldName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy); if (field != null) { break; } type = type.BaseType; } return field; } public static string GetNameWithGenericArguments(this Type type) { string name = type.Name; name = name.Replace('+', '.'); if (!type.IsGenericType) { return name; } name = name.Split('`')[0]; Type[] genericArguments = type.GetGenericArguments(); int num = genericArguments.Length; string[] array = new string[num]; for (int i = 0; i < num; i++) { array[i] = genericArguments[i].GetNameWithGenericArguments(); } return name + "<" + string.Join(", ", array) + ">"; } public static string GetNameWithFullGenericArguments(this Type type) { string name = type.Name; name = name.Replace('+', '.'); if (!type.IsGenericType) { return name; } name = name.Split('`')[0]; Type[] genericArguments = type.GetGenericArguments(); int num = genericArguments.Length; string[] array = new string[num]; for (int i = 0; i < num; i++) { array[i] = genericArguments[i].GetFullNameWithGenericArgumentsInternal(); } return name + "<" + string.Join(", ", array
BepInEx/plugins/CWVR/RuntimeDeps/Unity.XR.Interaction.Toolkit.dll
Decompiled a month ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.CodeDom.Compiler; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Security; using System.Security.Permissions; using System.Text; using AOT; using Unity.Burst; using Unity.Collections; using Unity.Jobs; using Unity.Mathematics; using Unity.Profiling; using Unity.XR.CoreUtils; using Unity.XR.CoreUtils.Bindings; using Unity.XR.CoreUtils.Bindings.Variables; using Unity.XR.CoreUtils.Collections; using Unity.XR.CoreUtils.Datums; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.Events; using UnityEngine.Experimental.XR.Interaction; using UnityEngine.InputSystem; using UnityEngine.InputSystem.Controls; using UnityEngine.InputSystem.Layouts; using UnityEngine.InputSystem.LowLevel; using UnityEngine.InputSystem.UI; using UnityEngine.InputSystem.Utilities; using UnityEngine.InputSystem.XR; using UnityEngine.InputSystem.XR.Haptics; using UnityEngine.Pool; using UnityEngine.Rendering; using UnityEngine.SceneManagement; using UnityEngine.Scripting; using UnityEngine.Scripting.APIUpdating; using UnityEngine.Serialization; using UnityEngine.SpatialTracking; using UnityEngine.UI; using UnityEngine.UIElements; using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.Jobs; using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.Receiver; using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.Receiver.Primitives; using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.Rendering; using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.State; using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.Theme; using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.Theme.Audio; using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.Theme.Primitives; using UnityEngine.XR.Interaction.Toolkit.Attachment; using UnityEngine.XR.Interaction.Toolkit.Feedback; using UnityEngine.XR.Interaction.Toolkit.Filtering; using UnityEngine.XR.Interaction.Toolkit.Gaze; using UnityEngine.XR.Interaction.Toolkit.Inputs; using UnityEngine.XR.Interaction.Toolkit.Inputs.Haptics; using UnityEngine.XR.Interaction.Toolkit.Inputs.Haptics.OpenXR; using UnityEngine.XR.Interaction.Toolkit.Inputs.Readers; using UnityEngine.XR.Interaction.Toolkit.Inputs.Simulation.Hands; using UnityEngine.XR.Interaction.Toolkit.Interactables; using UnityEngine.XR.Interaction.Toolkit.Interactables.Visuals; using UnityEngine.XR.Interaction.Toolkit.Interactors; using UnityEngine.XR.Interaction.Toolkit.Interactors.Casters; using UnityEngine.XR.Interaction.Toolkit.Interactors.Visuals; using UnityEngine.XR.Interaction.Toolkit.Locomotion; using UnityEngine.XR.Interaction.Toolkit.Locomotion.Teleportation; using UnityEngine.XR.Interaction.Toolkit.Transformers; using UnityEngine.XR.Interaction.Toolkit.UI; using UnityEngine.XR.Interaction.Toolkit.Utilities; using UnityEngine.XR.Interaction.Toolkit.Utilities.Collections; using UnityEngine.XR.Interaction.Toolkit.Utilities.Curves; using UnityEngine.XR.Interaction.Toolkit.Utilities.Internal; using UnityEngine.XR.Interaction.Toolkit.Utilities.Pooling; using UnityEngine.XR.Interaction.Toolkit.Utilities.Tweenables.Primitives; using UnityEngine.XR.Interaction.Toolkit.Utilities.Tweenables.SmartTweenableVariables; using UnityEngine.XR.OpenXR.Features.Interactions; using UnityEngine.XR.OpenXR.Input; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: InternalsVisibleTo("Unity.XR.Interaction.Toolkit.Editor")] [assembly: InternalsVisibleTo("Unity.XR.Interaction.Toolkit.Samples.StarterAssets.Editor")] [assembly: InternalsVisibleTo("Unity.XR.Interaction.Toolkit.Tests")] [assembly: InternalsVisibleTo("Unity.XR.Interaction.Toolkit.Editor.Tests")] [assembly: InternalsVisibleTo("Unity.XR.Interaction.Toolkit.Samples.StarterAssets")] [assembly: InternalsVisibleTo("Unity.XR.Interaction.Toolkit.Samples.ARStarterAssets")] [assembly: InternalsVisibleTo("Unity.XR.Interaction.Toolkit.Samples.Hands")] [assembly: InternalsVisibleTo("Unity.XR.Interaction.Toolkit.Samples.VisionOS")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.0.0.0")] [module: UnverifiableCode] [CompilerGenerated] [EditorBrowsable(EditorBrowsableState.Never)] [GeneratedCode("Unity.MonoScriptGenerator.MonoScriptInfoGenerator", null)] internal class UnitySourceGeneratedAssemblyMonoScriptTypes_v1 { private struct MonoScriptData { public byte[] FilePathsData; public byte[] TypesData; public int TotalTypes; public int TotalFiles; public bool IsEditorOnly; } [MethodImpl(MethodImplOptions.AggressiveInlining)] private static MonoScriptData Get() { MonoScriptData result = default(MonoScriptData); result.FilePathsData = new byte[43095] { 0, 0, 0, 1, 0, 0, 0, 114, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 74, 111, 98, 115, 92, 67, 111, 108, 111, 114, 84, 119, 101, 101, 110, 74, 111, 98, 46, 99, 115, 0, 0, 0, 4, 0, 0, 0, 114, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 74, 111, 98, 115, 92, 70, 108, 111, 97, 116, 84, 119, 101, 101, 110, 74, 111, 98, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 110, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 74, 111, 98, 115, 92, 73, 84, 119, 101, 101, 110, 74, 111, 98, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 113, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 74, 111, 98, 115, 92, 84, 119, 101, 101, 110, 74, 111, 98, 68, 97, 116, 97, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 134, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 65, 117, 100, 105, 111, 92, 65, 117, 100, 105, 111, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 132, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 66, 97, 115, 101, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 116, 97, 116, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 137, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 66, 97, 115, 101, 65, 115, 121, 110, 99, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 116, 97, 116, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 143, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 66, 97, 115, 101, 83, 121, 110, 99, 104, 114, 111, 110, 111, 117, 115, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 116, 97, 116, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 129, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 73, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 116, 97, 116, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 134, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 73, 65, 115, 121, 110, 99, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 116, 97, 116, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 140, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 73, 83, 121, 110, 99, 104, 114, 111, 110, 111, 117, 115, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 116, 97, 116, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 139, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 80, 114, 105, 109, 105, 116, 105, 118, 101, 115, 92, 67, 111, 108, 111, 114, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 139, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 80, 114, 105, 109, 105, 116, 105, 118, 101, 115, 92, 70, 108, 111, 97, 116, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 144, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 80, 114, 105, 109, 105, 116, 105, 118, 101, 115, 92, 81, 117, 97, 116, 101, 114, 110, 105, 111, 110, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 149, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 80, 114, 105, 109, 105, 116, 105, 118, 101, 115, 92, 81, 117, 97, 116, 101, 114, 110, 105, 111, 110, 69, 117, 108, 101, 114, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 141, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 80, 114, 105, 109, 105, 116, 105, 118, 101, 115, 92, 86, 101, 99, 116, 111, 114, 50, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 141, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 80, 114, 105, 109, 105, 116, 105, 118, 101, 115, 92, 86, 101, 99, 116, 111, 114, 51, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 141, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 80, 114, 105, 109, 105, 116, 105, 118, 101, 115, 92, 86, 101, 99, 116, 111, 114, 52, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 143, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 82, 101, 110, 100, 101, 114, 105, 110, 103, 92, 66, 108, 101, 110, 100, 83, 104, 97, 112, 101, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 158, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 82, 101, 110, 100, 101, 114, 105, 110, 103, 92, 67, 111, 108, 111, 114, 71, 114, 97, 100, 105, 101, 110, 116, 76, 105, 110, 101, 82, 101, 110, 100, 101, 114, 101, 114, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 154, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 82, 101, 110, 100, 101, 114, 105, 110, 103, 92, 67, 111, 108, 111, 114, 77, 97, 116, 101, 114, 105, 97, 108, 80, 114, 111, 112, 101, 114, 116, 121, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 154, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 82, 101, 110, 100, 101, 114, 105, 110, 103, 92, 70, 108, 111, 97, 116, 77, 97, 116, 101, 114, 105, 97, 108, 80, 114, 111, 112, 101, 114, 116, 121, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 156, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 82, 101, 110, 100, 101, 114, 105, 110, 103, 92, 86, 101, 99, 116, 111, 114, 50, 77, 97, 116, 101, 114, 105, 97, 108, 80, 114, 111, 112, 101, 114, 116, 121, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 156, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 82, 101, 110, 100, 101, 114, 105, 110, 103, 92, 86, 101, 99, 116, 111, 114, 51, 77, 97, 116, 101, 114, 105, 97, 108, 80, 114, 111, 112, 101, 114, 116, 121, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 156, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 82, 101, 110, 100, 101, 114, 105, 110, 103, 92, 86, 101, 99, 116, 111, 114, 52, 77, 97, 116, 101, 114, 105, 97, 108, 80, 114, 111, 112, 101, 114, 116, 121, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 159, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 84, 114, 97, 110, 115, 102, 111, 114, 109, 97, 116, 105, 111, 110, 92, 85, 110, 105, 102, 111, 114, 109, 84, 114, 97, 110, 115, 102, 111, 114, 109, 83, 99, 97, 108, 101, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 136, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 99, 101, 105, 118, 101, 114, 92, 85, 73, 92, 73, 109, 97, 103, 101, 67, 111, 108, 111, 114, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 82, 101, 99, 101, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 124, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 110, 100, 101, 114, 105, 110, 103, 92, 77, 97, 116, 101, 114, 105, 97, 108, 72, 101, 108, 112, 101, 114, 66, 97, 115, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 128, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 110, 100, 101, 114, 105, 110, 103, 92, 77, 97, 116, 101, 114, 105, 97, 108, 73, 110, 115, 116, 97, 110, 99, 101, 72, 101, 108, 112, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 133, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 82, 101, 110, 100, 101, 114, 105, 110, 103, 92, 77, 97, 116, 101, 114, 105, 97, 108, 80, 114, 111, 112, 101, 114, 116, 121, 66, 108, 111, 99, 107, 72, 101, 108, 112, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 126, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 83, 116, 97, 116, 101, 92, 68, 97, 116, 97, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 116, 97, 116, 101, 68, 97, 116, 97, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 131, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 83, 116, 97, 116, 101, 92, 68, 97, 116, 97, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 116, 97, 116, 101, 83, 104, 111, 114, 116, 99, 117, 116, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 138, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 83, 116, 97, 116, 101, 92, 80, 114, 111, 118, 105, 100, 101, 114, 92, 66, 97, 115, 101, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 116, 97, 116, 101, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 148, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 83, 116, 97, 116, 101, 92, 80, 114, 111, 118, 105, 100, 101, 114, 92, 88, 82, 73, 110, 116, 101, 114, 97, 99, 116, 97, 98, 108, 101, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 116, 97, 116, 101, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 146, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 83, 116, 97, 116, 101, 92, 80, 114, 111, 118, 105, 100, 101, 114, 92, 88, 82, 73, 110, 116, 101, 114, 97, 99, 116, 111, 114, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 116, 97, 116, 101, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 4, 0, 0, 0, 133, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 84, 104, 101, 109, 101, 92, 65, 117, 100, 105, 111, 92, 65, 117, 100, 105, 111, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 84, 104, 101, 109, 101, 68, 97, 116, 117, 109, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 121, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 84, 104, 101, 109, 101, 92, 66, 97, 115, 101, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 84, 104, 101, 109, 101, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 138, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 84, 104, 101, 109, 101, 92, 80, 114, 105, 109, 105, 116, 105, 118, 101, 115, 92, 67, 111, 108, 111, 114, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 84, 104, 101, 109, 101, 68, 97, 116, 117, 109, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 138, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 84, 104, 101, 109, 101, 92, 80, 114, 105, 109, 105, 116, 105, 118, 101, 115, 92, 70, 108, 111, 97, 116, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 84, 104, 101, 109, 101, 68, 97, 116, 117, 109, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 140, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 84, 104, 101, 109, 101, 92, 80, 114, 105, 109, 105, 116, 105, 118, 101, 115, 92, 86, 101, 99, 116, 111, 114, 50, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 84, 104, 101, 109, 101, 68, 97, 116, 117, 109, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 140, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 84, 104, 101, 109, 101, 92, 80, 114, 105, 109, 105, 116, 105, 118, 101, 115, 92, 86, 101, 99, 116, 111, 114, 51, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 84, 104, 101, 109, 101, 68, 97, 116, 117, 109, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 140, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 83, 121, 115, 116, 101, 109, 92, 84, 104, 101, 109, 101, 92, 80, 114, 105, 109, 105, 116, 105, 118, 101, 115, 92, 86, 101, 99, 116, 111, 114, 52, 65, 102, 102, 111, 114, 100, 97, 110, 99, 101, 84, 104, 101, 109, 101, 68, 97, 116, 117, 109, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 115, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 82, 92, 73, 110, 112, 117, 116, 115, 92, 83, 99, 114, 101, 101, 110, 83, 112, 97, 99, 101, 80, 105, 110, 99, 104, 83, 99, 97, 108, 101, 73, 110, 112, 117, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 113, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 82, 92, 73, 110, 112, 117, 116, 115, 92, 83, 99, 114, 101, 101, 110, 83, 112, 97, 99, 101, 82, 97, 121, 80, 111, 115, 101, 68, 114, 105, 118, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 111, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 82, 92, 73, 110, 112, 117, 116, 115, 92, 83, 99, 114, 101, 101, 110, 83, 112, 97, 99, 101, 82, 111, 116, 97, 116, 101, 73, 110, 112, 117, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 111, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 82, 92, 73, 110, 112, 117, 116, 115, 92, 83, 99, 114, 101, 101, 110, 83, 112, 97, 99, 101, 83, 101, 108, 101, 99, 116, 73, 110, 112, 117, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 118, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 82, 92, 73, 110, 112, 117, 116, 115, 92, 84, 111, 117, 99, 104, 115, 99, 114, 101, 101, 110, 71, 101, 115, 116, 117, 114, 101, 73, 110, 112, 117, 116, 76, 111, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 131, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 82, 92, 73, 110, 116, 101, 114, 97, 99, 116, 97, 98, 108, 101, 115, 92, 65, 82, 65, 110, 110, 111, 116, 97, 116, 105, 111, 110, 73, 110, 116, 101, 114, 97, 99, 116, 97, 98, 108, 101, 46, 100, 101, 112, 114, 101, 99, 97, 116, 101, 100, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 132, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 82, 92, 73, 110, 116, 101, 114, 97, 99, 116, 97, 98, 108, 101, 115, 92, 65, 82, 66, 97, 115, 101, 71, 101, 115, 116, 117, 114, 101, 73, 110, 116, 101, 114, 97, 99, 116, 97, 98, 108, 101, 46, 100, 101, 112, 114, 101, 99, 97, 116, 101, 100, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 130, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 82, 92, 73, 110, 116, 101, 114, 97, 99, 116, 97, 98, 108, 101, 115, 92, 65, 82, 80, 108, 97, 99, 101, 109, 101, 110, 116, 73, 110, 116, 101, 114, 97, 99, 116, 97, 98, 108, 101, 46, 100, 101, 112, 114, 101, 99, 97, 116, 101, 100, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 129, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 82, 92, 73, 110, 116, 101, 114, 97, 99, 116, 97, 98, 108, 101, 115, 92, 65, 82, 82, 111, 116, 97, 116, 105, 111, 110, 73, 110, 116, 101, 114, 97, 99, 116, 97, 98, 108, 101, 46, 100, 101, 112, 114, 101, 99, 97, 116, 101, 100, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 126, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 82, 92, 73, 110, 116, 101, 114, 97, 99, 116, 97, 98, 108, 101, 115, 92, 65, 82, 83, 99, 97, 108, 101, 73, 110, 116, 101, 114, 97, 99, 116, 97, 98, 108, 101, 46, 100, 101, 112, 114, 101, 99, 97, 116, 101, 100, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 130, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 82, 92, 73, 110, 116, 101, 114, 97, 99, 116, 97, 98, 108, 101, 115, 92, 65, 82, 83, 101, 108, 101, 99, 116, 105, 111, 110, 73, 110, 116, 101, 114, 97, 99, 116, 97, 98, 108, 101, 46, 100, 101, 112, 114, 101, 99, 97, 116, 101, 100, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 132, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 82, 92, 73, 110, 116, 101, 114, 97, 99, 116, 97, 98, 108, 101, 115, 92, 65, 82, 84, 114, 97, 110, 115, 108, 97, 116, 105, 111, 110, 73, 110, 116, 101, 114, 97, 99, 116, 97, 98, 108, 101, 46, 100, 101, 112, 114, 101, 99, 97, 116, 101, 100, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 124, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 65, 82, 92, 73, 110, 116, 101, 114, 97, 99, 116, 111, 114, 115, 92, 65, 82, 71, 101, 115, 116, 117, 114, 101, 73, 110, 116, 101, 114, 97, 99, 116, 111, 114, 46, 100, 101, 112, 114, 101, 99, 97, 116, 101, 100, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 107, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 101, 100, 98, 97, 99, 107, 92, 83, 105, 109, 112, 108, 101, 65, 117, 100, 105, 111, 70, 101, 101, 100, 98, 97, 99, 107, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 108, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 101, 100, 98, 97, 99, 107, 92, 83, 105, 109, 112, 108, 101, 72, 97, 112, 116, 105, 99, 70, 101, 101, 100, 98, 97, 99, 107, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 67, 97, 114, 100, 105, 110, 97, 108, 85, 116, 105, 108, 105, 116, 121, 46, 99, 115, 0, 0, 0, 6, 0, 0, 0, 114, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 67, 111, 109, 112, 111, 115, 105, 116, 101, 115, 92, 70, 97, 108, 108, 98, 97, 99, 107, 67, 111, 109, 112, 111, 115, 105, 116, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 120, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 72, 97, 112, 116, 105, 99, 115, 92, 72, 97, 112, 116, 105, 99, 67, 111, 110, 116, 114, 111, 108, 65, 99, 116, 105, 111, 110, 77, 97, 110, 97, 103, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 121, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 72, 97, 112, 116, 105, 99, 115, 92, 72, 97, 112, 116, 105, 99, 73, 109, 112, 117, 108, 115, 101, 67, 111, 109, 109, 97, 110, 100, 67, 104, 97, 110, 110, 101, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 126, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 72, 97, 112, 116, 105, 99, 115, 92, 72, 97, 112, 116, 105, 99, 73, 109, 112, 117, 108, 115, 101, 67, 111, 109, 109, 97, 110, 100, 67, 104, 97, 110, 110, 101, 108, 71, 114, 111, 117, 112, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 113, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 72, 97, 112, 116, 105, 99, 115, 92, 72, 97, 112, 116, 105, 99, 73, 109, 112, 117, 108, 115, 101, 80, 108, 97, 121, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 125, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 72, 97, 112, 116, 105, 99, 115, 92, 72, 97, 112, 116, 105, 99, 73, 109, 112, 117, 108, 115, 101, 83, 105, 110, 103, 108, 101, 67, 104, 97, 110, 110, 101, 108, 71, 114, 111, 117, 112, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 108, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 72, 97, 112, 116, 105, 99, 115, 92, 72, 97, 112, 116, 105, 99, 115, 85, 116, 105, 108, 105, 116, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 117, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 72, 97, 112, 116, 105, 99, 115, 92, 73, 88, 82, 72, 97, 112, 116, 105, 99, 73, 109, 112, 117, 108, 115, 101, 67, 104, 97, 110, 110, 101, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 122, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 72, 97, 112, 116, 105, 99, 115, 92, 73, 88, 82, 72, 97, 112, 116, 105, 99, 73, 109, 112, 117, 108, 115, 101, 67, 104, 97, 110, 110, 101, 108, 71, 114, 111, 117, 112, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 118, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 72, 97, 112, 116, 105, 99, 115, 92, 73, 88, 82, 72, 97, 112, 116, 105, 99, 73, 109, 112, 117, 108, 115, 101, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 127, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 72, 97, 112, 116, 105, 99, 115, 92, 79, 112, 101, 110, 88, 82, 92, 79, 112, 101, 110, 88, 82, 72, 97, 112, 116, 105, 99, 73, 109, 112, 117, 108, 115, 101, 67, 104, 97, 110, 110, 101, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 127, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 72, 97, 112, 116, 105, 99, 115, 92, 88, 82, 73, 110, 112, 117, 116, 68, 101, 118, 105, 99, 101, 72, 97, 112, 116, 105, 99, 73, 109, 112, 117, 108, 115, 101, 67, 104, 97, 110, 110, 101, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 132, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 72, 97, 112, 116, 105, 99, 115, 92, 88, 82, 73, 110, 112, 117, 116, 68, 101, 118, 105, 99, 101, 72, 97, 112, 116, 105, 99, 73, 109, 112, 117, 108, 115, 101, 67, 104, 97, 110, 110, 101, 108, 71, 114, 111, 117, 112, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 128, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 72, 97, 112, 116, 105, 99, 115, 92, 88, 82, 73, 110, 112, 117, 116, 68, 101, 118, 105, 99, 101, 72, 97, 112, 116, 105, 99, 73, 109, 112, 117, 108, 115, 101, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 122, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 72, 97, 112, 116, 105, 99, 115, 92, 88, 82, 73, 110, 112, 117, 116, 72, 97, 112, 116, 105, 99, 73, 109, 112, 117, 108, 115, 101, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 104, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 73, 110, 112, 117, 116, 65, 99, 116, 105, 111, 110, 77, 97, 110, 97, 103, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 115, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 73, 110, 112, 117, 116, 65, 99, 116, 105, 111, 110, 80, 114, 111, 112, 101, 114, 116, 121, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 104, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 73, 110, 112, 117, 116, 65, 99, 116, 105, 111, 110, 85, 116, 105, 108, 105, 116, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 116, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 92, 83, 101, 99, 116, 111, 114, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 117, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 82, 101, 97, 100, 101, 114, 115, 92, 73, 110, 112, 117, 116, 70, 101, 97, 116, 117, 114, 101, 85, 115, 97, 103, 101, 83, 116, 114, 105, 110, 103, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 113, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 82, 101, 97, 100, 101, 114, 115, 92, 88, 82, 73, 110, 112, 117, 116, 66, 117, 116, 116, 111, 110, 82, 101, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 122, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 82, 101, 97, 100, 101, 114, 115, 92, 88, 82, 73, 110, 112, 117, 116, 68, 101, 118, 105, 99, 101, 66, 111, 111, 108, 86, 97, 108, 117, 101, 82, 101, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 119, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 82, 101, 97, 100, 101, 114, 115, 92, 88, 82, 73, 110, 112, 117, 116, 68, 101, 118, 105, 99, 101, 66, 117, 116, 116, 111, 110, 82, 101, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 123, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 82, 101, 97, 100, 101, 114, 115, 92, 88, 82, 73, 110, 112, 117, 116, 68, 101, 118, 105, 99, 101, 70, 108, 111, 97, 116, 86, 97, 108, 117, 101, 82, 101, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 136, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 82, 101, 97, 100, 101, 114, 115, 92, 88, 82, 73, 110, 112, 117, 116, 68, 101, 118, 105, 99, 101, 73, 110, 112, 117, 116, 84, 114, 97, 99, 107, 105, 110, 103, 83, 116, 97, 116, 101, 86, 97, 108, 117, 101, 82, 101, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 128, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 82, 101, 97, 100, 101, 114, 115, 92, 88, 82, 73, 110, 112, 117, 116, 68, 101, 118, 105, 99, 101, 81, 117, 97, 116, 101, 114, 110, 105, 111, 110, 86, 97, 108, 117, 101, 82, 101, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 118, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 82, 101, 97, 100, 101, 114, 115, 92, 88, 82, 73, 110, 112, 117, 116, 68, 101, 118, 105, 99, 101, 86, 97, 108, 117, 101, 82, 101, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 125, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 82, 101, 97, 100, 101, 114, 115, 92, 88, 82, 73, 110, 112, 117, 116, 68, 101, 118, 105, 99, 101, 86, 101, 99, 116, 111, 114, 50, 86, 97, 108, 117, 101, 82, 101, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 125, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 82, 101, 97, 100, 101, 114, 115, 92, 88, 82, 73, 110, 112, 117, 116, 68, 101, 118, 105, 99, 101, 86, 101, 99, 116, 111, 114, 51, 86, 97, 108, 117, 101, 82, 101, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 114, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 82, 101, 97, 100, 101, 114, 115, 92, 88, 82, 73, 110, 112, 117, 116, 82, 101, 97, 100, 101, 114, 85, 116, 105, 108, 105, 116, 121, 46, 99, 115, 0, 0, 0, 5, 0, 0, 0, 112, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 82, 101, 97, 100, 101, 114, 115, 92, 88, 82, 73, 110, 112, 117, 116, 86, 97, 108, 117, 101, 82, 101, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 124, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 83, 105, 109, 117, 108, 97, 116, 105, 111, 110, 92, 72, 97, 110, 100, 115, 92, 72, 97, 110, 100, 69, 120, 112, 114, 101, 115, 115, 105, 111, 110, 67, 97, 112, 116, 117, 114, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 121, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 83, 105, 109, 117, 108, 97, 116, 105, 111, 110, 92, 72, 97, 110, 100, 115, 92, 72, 97, 110, 100, 69, 120, 112, 114, 101, 115, 115, 105, 111, 110, 78, 97, 109, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 123, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 83, 105, 109, 117, 108, 97, 116, 105, 111, 110, 92, 72, 97, 110, 100, 115, 92, 88, 82, 83, 105, 109, 117, 108, 97, 116, 101, 100, 72, 97, 110, 100, 83, 116, 97, 116, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 123, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 83, 105, 109, 117, 108, 97, 116, 105, 111, 110, 92, 83, 105, 109, 117, 108, 97, 116, 101, 100, 73, 110, 112, 117, 116, 76, 97, 121, 111, 117, 116, 76, 111, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 114, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 83, 105, 109, 117, 108, 97, 116, 105, 111, 110, 92, 88, 82, 68, 101, 118, 105, 99, 101, 83, 105, 109, 117, 108, 97, 116, 111, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 120, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 83, 105, 109, 117, 108, 97, 116, 105, 111, 110, 92, 88, 82, 68, 101, 118, 105, 99, 101, 83, 105, 109, 117, 108, 97, 116, 111, 114, 76, 111, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 122, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 83, 105, 109, 117, 108, 97, 116, 105, 111, 110, 92, 88, 82, 68, 101, 118, 105, 99, 101, 83, 105, 109, 117, 108, 97, 116, 111, 114, 83, 101, 116, 116, 105, 110, 103, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 118, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 83, 105, 109, 117, 108, 97, 116, 105, 111, 110, 92, 88, 82, 83, 105, 109, 117, 108, 97, 116, 101, 100, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 123, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 83, 105, 109, 117, 108, 97, 116, 105, 111, 110, 92, 88, 82, 83, 105, 109, 117, 108, 97, 116, 101, 100, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 83, 116, 97, 116, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 111, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 83, 105, 109, 117, 108, 97, 116, 105, 111, 110, 92, 88, 82, 83, 105, 109, 117, 108, 97, 116, 101, 100, 72, 77, 68, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 116, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 83, 105, 109, 117, 108, 97, 116, 105, 111, 110, 92, 88, 82, 83, 105, 109, 117, 108, 97, 116, 101, 100, 72, 77, 68, 83, 116, 97, 116, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 113, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 88, 82, 72, 97, 110, 100, 83, 107, 101, 108, 101, 116, 111, 110, 80, 111, 107, 101, 68, 105, 115, 112, 108, 97, 99, 101, 114, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 108, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 88, 82, 73, 110, 112, 117, 116, 77, 111, 100, 97, 108, 105, 116, 121, 77, 97, 110, 97, 103, 101, 114, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 111, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 88, 82, 73, 110, 112, 117, 116, 84, 114, 97, 99, 107, 105, 110, 103, 65, 103, 103, 114, 101, 103, 97, 116, 111, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 107, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 112, 117, 116, 115, 92, 88, 82, 84, 114, 97, 110, 115, 102, 111, 114, 109, 83, 116, 97, 98, 105, 108, 105, 122, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 128, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 65, 116, 116, 97, 99, 104, 109, 101, 110, 116, 92, 65, 116, 116, 97, 99, 104, 80, 111, 105, 110, 116, 86, 101, 108, 111, 99, 105, 116, 121, 84, 114, 97, 99, 107, 101, 114, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 130, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 65, 116, 116, 97, 99, 104, 109, 101, 110, 116, 92, 73, 65, 116, 116, 97, 99, 104, 80, 111, 105, 110, 116, 86, 101, 108, 111, 99, 105, 116, 121, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 129, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 65, 116, 116, 97, 99, 104, 109, 101, 110, 116, 92, 73, 65, 116, 116, 97, 99, 104, 80, 111, 105, 110, 116, 86, 101, 108, 111, 99, 105, 116, 121, 84, 114, 97, 99, 107, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 120, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 65, 116, 116, 97, 99, 104, 109, 101, 110, 116, 92, 73, 70, 97, 114, 65, 116, 116, 97, 99, 104, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 130, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 65, 116, 116, 97, 99, 104, 109, 101, 110, 116, 92, 73, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 65, 116, 116, 97, 99, 104, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 129, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 65, 116, 116, 97, 99, 104, 109, 101, 110, 116, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 65, 116, 116, 97, 99, 104, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 127, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 65, 116, 116, 114, 105, 98, 117, 116, 101, 115, 92, 67, 97, 110, 70, 111, 99, 117, 115, 77, 117, 108, 116, 105, 112, 108, 101, 65, 116, 116, 114, 105, 98, 117, 116, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 128, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 65, 116, 116, 114, 105, 98, 117, 116, 101, 115, 92, 67, 97, 110, 83, 101, 108, 101, 99, 116, 77, 117, 108, 116, 105, 112, 108, 101, 65, 116, 116, 114, 105, 98, 117, 116, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 135, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 65, 116, 116, 114, 105, 98, 117, 116, 101, 115, 92, 88, 82, 84, 97, 114, 103, 101, 116, 69, 118, 97, 108, 117, 97, 116, 111, 114, 69, 110, 97, 98, 108, 101, 100, 65, 116, 116, 114, 105, 98, 117, 116, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 124, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 115, 92, 65, 99, 116, 105, 111, 110, 66, 97, 115, 101, 100, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 119, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 115, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 83, 116, 97, 116, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 130, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 115, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 83, 116, 97, 116, 101, 46, 100, 101, 112, 114, 101, 99, 97, 116, 101, 100, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 119, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 115, 92, 88, 82, 66, 97, 115, 101, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 115, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 115, 92, 88, 82, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 123, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 115, 92, 88, 82, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 82, 101, 99, 111, 114, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 134, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 115, 92, 88, 82, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 82, 101, 99, 111, 114, 100, 101, 114, 46, 100, 101, 112, 114, 101, 99, 97, 116, 101, 100, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 124, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 115, 92, 88, 82, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 82, 101, 99, 111, 114, 100, 105, 110, 103, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 135, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 115, 92, 88, 82, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 82, 101, 99, 111, 114, 100, 105, 110, 103, 46, 100, 101, 112, 114, 101, 99, 97, 116, 101, 100, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 120, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 115, 92, 88, 82, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 83, 116, 97, 116, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 131, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 115, 92, 88, 82, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 83, 116, 97, 116, 101, 46, 100, 101, 112, 114, 101, 99, 97, 116, 101, 100, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 126, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 115, 92, 88, 82, 83, 99, 114, 101, 101, 110, 83, 112, 97, 99, 101, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 121, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 72, 111, 118, 101, 114, 92, 73, 88, 82, 72, 111, 118, 101, 114, 70, 105, 108, 116, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 129, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 72, 111, 118, 101, 114, 92, 84, 111, 117, 99, 104, 115, 99, 114, 101, 101, 110, 72, 111, 118, 101, 114, 70, 105, 108, 116, 101, 114, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 149, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 83, 116, 114, 101, 110, 103, 116, 104, 92, 73, 88, 82, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 83, 116, 114, 101, 110, 103, 116, 104, 70, 105, 108, 116, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 114, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 73, 88, 82, 70, 105, 108, 116, 101, 114, 76, 105, 115, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 133, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 80, 111, 107, 101, 92, 73, 77, 117, 108, 116, 105, 80, 111, 107, 101, 83, 116, 97, 116, 101, 68, 97, 116, 97, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 128, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 80, 111, 107, 101, 92, 73, 80, 111, 107, 101, 83, 116, 97, 116, 101, 68, 97, 116, 97, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 119, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 80, 111, 107, 101, 92, 73, 88, 82, 80, 111, 107, 101, 70, 105, 108, 116, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 119, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 80, 111, 107, 101, 92, 80, 111, 107, 101, 83, 116, 97, 116, 101, 68, 97, 116, 97, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 123, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 80, 111, 107, 101, 92, 80, 111, 107, 101, 84, 104, 114, 101, 115, 104, 111, 108, 100, 68, 97, 116, 97, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 124, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 80, 111, 107, 101, 92, 80, 111, 107, 101, 84, 104, 114, 101, 115, 104, 111, 108, 100, 68, 97, 116, 117, 109, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 132, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 80, 111, 107, 101, 92, 80, 111, 107, 101, 84, 104, 114, 101, 115, 104, 111, 108, 100, 68, 97, 116, 117, 109, 80, 114, 111, 112, 101, 114, 116, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 118, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 80, 111, 107, 101, 92, 88, 82, 80, 111, 107, 101, 70, 105, 108, 116, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 117, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 80, 111, 107, 101, 92, 88, 82, 80, 111, 107, 101, 76, 111, 103, 105, 99, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 123, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 83, 101, 108, 101, 99, 116, 92, 73, 88, 82, 83, 101, 108, 101, 99, 116, 70, 105, 108, 116, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 145, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 84, 97, 114, 103, 101, 116, 92, 69, 118, 97, 108, 117, 97, 116, 111, 114, 115, 92, 73, 88, 82, 84, 97, 114, 103, 101, 116, 69, 118, 97, 108, 117, 97, 116, 111, 114, 76, 105, 110, 107, 97, 98, 108, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 139, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 84, 97, 114, 103, 101, 116, 92, 69, 118, 97, 108, 117, 97, 116, 111, 114, 115, 92, 88, 82, 65, 110, 103, 108, 101, 71, 97, 122, 101, 69, 118, 97, 108, 117, 97, 116, 111, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 138, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 84, 97, 114, 103, 101, 116, 92, 69, 118, 97, 108, 117, 97, 116, 111, 114, 115, 92, 88, 82, 68, 105, 115, 116, 97, 110, 99, 101, 69, 118, 97, 108, 117, 97, 116, 111, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 142, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 84, 97, 114, 103, 101, 116, 92, 69, 118, 97, 108, 117, 97, 116, 111, 114, 115, 92, 88, 82, 76, 97, 115, 116, 83, 101, 108, 101, 99, 116, 101, 100, 69, 118, 97, 108, 117, 97, 116, 111, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 136, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 84, 97, 114, 103, 101, 116, 92, 69, 118, 97, 108, 117, 97, 116, 111, 114, 115, 92, 88, 82, 84, 97, 114, 103, 101, 116, 69, 118, 97, 108, 117, 97, 116, 111, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 131, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 84, 97, 114, 103, 101, 116, 92, 70, 105, 108, 116, 101, 114, 115, 92, 73, 88, 82, 84, 97, 114, 103, 101, 116, 70, 105, 108, 116, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 134, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 84, 97, 114, 103, 101, 116, 92, 70, 105, 108, 116, 101, 114, 115, 92, 88, 82, 66, 97, 115, 101, 84, 97, 114, 103, 101, 116, 70, 105, 108, 116, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 130, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 70, 105, 108, 116, 101, 114, 105, 110, 103, 92, 84, 97, 114, 103, 101, 116, 92, 70, 105, 108, 116, 101, 114, 115, 92, 88, 82, 84, 97, 114, 103, 101, 116, 70, 105, 108, 116, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 108, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 71, 97, 122, 101, 92, 73, 88, 82, 65, 105, 109, 65, 115, 115, 105, 115, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 122, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52, 101, 100, 100, 53, 101, 54, 97, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 92, 71, 97, 122, 101, 92, 73, 88, 82, 79, 118, 101, 114, 114, 105, 100, 101, 115, 71, 97, 122, 101, 65, 117, 116, 111, 83, 101, 108, 101, 99, 116, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 112, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 116, 111, 111, 108, 107, 105, 116, 64, 57, 55, 55, 52,
BepInEx/plugins/CWVR/RuntimeDeps/Unity.XR.Management.dll
Decompiled a month agousing System; using System.CodeDom.Compiler; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Reflection; using System.Runtime.CompilerServices; using UnityEngine.Analytics; using UnityEngine.Rendering; using UnityEngine.Serialization; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: InternalsVisibleTo("Unity.XR.Management.Editor")] [assembly: InternalsVisibleTo("Unity.XR.Management.Tests")] [assembly: InternalsVisibleTo("Unity.XR.Management.EditorTests")] [assembly: AssemblyVersion("0.0.0.0")] [CompilerGenerated] [EditorBrowsable(EditorBrowsableState.Never)] [GeneratedCode("Unity.MonoScriptGenerator.MonoScriptInfoGenerator", null)] internal class UnitySourceGeneratedAssemblyMonoScriptTypes_v1 { private struct MonoScriptData { public byte[] FilePathsData; public byte[] TypesData; public int TotalTypes; public int TotalFiles; public bool IsEditorOnly; } [MethodImpl(MethodImplOptions.AggressiveInlining)] private static MonoScriptData Get() { MonoScriptData result = default(MonoScriptData); result.FilePathsData = new byte[564] { 0, 0, 0, 1, 0, 0, 0, 89, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 109, 97, 110, 97, 103, 101, 109, 101, 110, 116, 64, 53, 55, 52, 101, 98, 102, 98, 49, 101, 57, 55, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 88, 82, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 68, 97, 116, 97, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 87, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 109, 97, 110, 97, 103, 101, 109, 101, 110, 116, 64, 53, 55, 52, 101, 98, 102, 98, 49, 101, 57, 55, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 88, 82, 71, 101, 110, 101, 114, 97, 108, 83, 101, 116, 116, 105, 110, 103, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 78, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 109, 97, 110, 97, 103, 101, 109, 101, 110, 116, 64, 53, 55, 52, 101, 98, 102, 98, 49, 101, 57, 55, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 88, 82, 76, 111, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 84, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 109, 97, 110, 97, 103, 101, 109, 101, 110, 116, 64, 53, 55, 52, 101, 98, 102, 98, 49, 101, 57, 55, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 88, 82, 76, 111, 97, 100, 101, 114, 72, 101, 108, 112, 101, 114, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 91, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 109, 97, 110, 97, 103, 101, 109, 101, 110, 116, 64, 53, 55, 52, 101, 98, 102, 98, 49, 101, 57, 55, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 88, 82, 77, 97, 110, 97, 103, 101, 109, 101, 110, 116, 65, 110, 97, 108, 121, 116, 105, 99, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 87, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 109, 97, 110, 97, 103, 101, 109, 101, 110, 116, 64, 53, 55, 52, 101, 98, 102, 98, 49, 101, 57, 55, 54, 92, 82, 117, 110, 116, 105, 109, 101, 92, 88, 82, 77, 97, 110, 97, 103, 101, 114, 83, 101, 116, 116, 105, 110, 103, 115, 46, 99, 115 }; result.TypesData = new byte[427] { 0, 0, 0, 0, 54, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 77, 97, 110, 97, 103, 101, 109, 101, 110, 116, 124, 88, 82, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 68, 97, 116, 97, 65, 116, 116, 114, 105, 98, 117, 116, 101, 0, 0, 0, 0, 43, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 77, 97, 110, 97, 103, 101, 109, 101, 110, 116, 124, 88, 82, 71, 101, 110, 101, 114, 97, 108, 83, 101, 116, 116, 105, 110, 103, 115, 0, 0, 0, 0, 34, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 77, 97, 110, 97, 103, 101, 109, 101, 110, 116, 124, 88, 82, 76, 111, 97, 100, 101, 114, 0, 0, 0, 0, 40, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 77, 97, 110, 97, 103, 101, 109, 101, 110, 116, 124, 88, 82, 76, 111, 97, 100, 101, 114, 72, 101, 108, 112, 101, 114, 0, 0, 0, 0, 47, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 77, 97, 110, 97, 103, 101, 109, 101, 110, 116, 124, 88, 82, 77, 97, 110, 97, 103, 101, 109, 101, 110, 116, 65, 110, 97, 108, 121, 116, 105, 99, 115, 0, 0, 0, 0, 58, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 77, 97, 110, 97, 103, 101, 109, 101, 110, 116, 46, 88, 82, 77, 97, 110, 97, 103, 101, 109, 101, 110, 116, 65, 110, 97, 108, 121, 116, 105, 99, 115, 124, 66, 117, 105, 108, 100, 69, 118, 101, 110, 116, 0, 0, 0, 0, 68, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 77, 97, 110, 97, 103, 101, 109, 101, 110, 116, 46, 88, 82, 77, 97, 110, 97, 103, 101, 109, 101, 110, 116, 65, 110, 97, 108, 121, 116, 105, 99, 115, 124, 88, 114, 73, 110, 105, 116, 105, 97, 108, 105, 122, 101, 65, 110, 97, 108, 121, 116, 105, 99, 0, 0, 0, 0, 43, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 77, 97, 110, 97, 103, 101, 109, 101, 110, 116, 124, 88, 82, 77, 97, 110, 97, 103, 101, 114, 83, 101, 116, 116, 105, 110, 103, 115 }; result.TotalFiles = 6; result.TotalTypes = 8; result.IsEditorOnly = false; return result; } } namespace UnityEngine.XR.Management; [AttributeUsage(AttributeTargets.Class)] public sealed class XRConfigurationDataAttribute : Attribute { public string displayName { get; set; } public string buildSettingsKey { get; set; } private XRConfigurationDataAttribute() { } public XRConfigurationDataAttribute(string displayName, string buildSettingsKey) { this.displayName = displayName; this.buildSettingsKey = buildSettingsKey; } } public class XRGeneralSettings : ScriptableObject { public static string k_SettingsKey = "com.unity.xr.management.loader_settings"; internal static XRGeneralSettings s_RuntimeSettingsInstance = null; [SerializeField] internal XRManagerSettings m_LoaderManagerInstance; [SerializeField] [Tooltip("Toggling this on/off will enable/disable the automatic startup of XR at run time.")] internal bool m_InitManagerOnStart = true; private XRManagerSettings m_XRManager; private bool m_ProviderIntialized; private bool m_ProviderStarted; public XRManagerSettings Manager { get { return m_LoaderManagerInstance; } set { m_LoaderManagerInstance = value; } } public static XRGeneralSettings Instance => s_RuntimeSettingsInstance; public XRManagerSettings AssignedSettings => m_LoaderManagerInstance; public bool InitManagerOnStart => m_InitManagerOnStart; private void Awake() { Debug.Log((object)"XRGeneral Settings awakening..."); s_RuntimeSettingsInstance = this; Application.quitting += Quit; Object.DontDestroyOnLoad((Object)(object)s_RuntimeSettingsInstance); } private static void Quit() { XRGeneralSettings instance = Instance; if (!((Object)(object)instance == (Object)null)) { instance.DeInitXRSDK(); } } private void Start() { StartXRSDK(); } private void OnDestroy() { DeInitXRSDK(); } [RuntimeInitializeOnLoadMethod(/*Could not decode attribute arguments.*/)] internal static void AttemptInitializeXRSDKOnLoad() { XRGeneralSettings instance = Instance; if (!((Object)(object)instance == (Object)null) && instance.InitManagerOnStart) { instance.InitXRSDK(); } } [RuntimeInitializeOnLoadMethod(/*Could not decode attribute arguments.*/)] internal static void AttemptStartXRSDKOnBeforeSplashScreen() { XRGeneralSettings instance = Instance; if (!((Object)(object)instance == (Object)null) && instance.InitManagerOnStart) { instance.StartXRSDK(); } } private void InitXRSDK() { if (!((Object)(object)Instance == (Object)null) && !((Object)(object)Instance.m_LoaderManagerInstance == (Object)null) && Instance.m_InitManagerOnStart) { m_XRManager = Instance.m_LoaderManagerInstance; if ((Object)(object)m_XRManager == (Object)null) { Debug.LogError((object)"Assigned GameObject for XR Management loading is invalid. No XR Providers will be automatically loaded."); return; } m_XRManager.automaticLoading = false; m_XRManager.automaticRunning = false; m_XRManager.InitializeLoaderSync(); m_ProviderIntialized = true; } } private void StartXRSDK() { if ((Object)(object)m_XRManager != (Object)null && (Object)(object)m_XRManager.activeLoader != (Object)null) { m_XRManager.StartSubsystems(); m_ProviderStarted = true; } } private void StopXRSDK() { if ((Object)(object)m_XRManager != (Object)null && (Object)(object)m_XRManager.activeLoader != (Object)null) { m_XRManager.StopSubsystems(); m_ProviderStarted = false; } } private void DeInitXRSDK() { if ((Object)(object)m_XRManager != (Object)null && (Object)(object)m_XRManager.activeLoader != (Object)null) { m_XRManager.DeinitializeLoader(); m_XRManager = null; m_ProviderIntialized = false; } } } public abstract class XRLoader : ScriptableObject { public virtual bool Initialize() { return true; } public virtual bool Start() { return true; } public virtual bool Stop() { return true; } public virtual bool Deinitialize() { return true; } public abstract T GetLoadedSubsystem<T>() where T : class, ISubsystem; public virtual List<GraphicsDeviceType> GetSupportedGraphicsDeviceTypes(bool buildingPlayer) { return new List<GraphicsDeviceType>(); } } public abstract class XRLoaderHelper : XRLoader { protected Dictionary<Type, ISubsystem> m_SubsystemInstanceMap = new Dictionary<Type, ISubsystem>(); public override T GetLoadedSubsystem<T>() { Type typeFromHandle = typeof(T); m_SubsystemInstanceMap.TryGetValue(typeFromHandle, out var value); return value as T; } protected void StartSubsystem<T>() where T : class, ISubsystem { T loadedSubsystem = GetLoadedSubsystem<T>(); if (loadedSubsystem != null) { ((ISubsystem)loadedSubsystem).Start(); } } protected void StopSubsystem<T>() where T : class, ISubsystem { T loadedSubsystem = GetLoadedSubsystem<T>(); if (loadedSubsystem != null) { ((ISubsystem)loadedSubsystem).Stop(); } } protected void DestroySubsystem<T>() where T : class, ISubsystem { T loadedSubsystem = GetLoadedSubsystem<T>(); if (loadedSubsystem != null) { Type typeFromHandle = typeof(T); if (m_SubsystemInstanceMap.ContainsKey(typeFromHandle)) { m_SubsystemInstanceMap.Remove(typeFromHandle); } ((ISubsystem)loadedSubsystem).Destroy(); } } protected void CreateSubsystem<TDescriptor, TSubsystem>(List<TDescriptor> descriptors, string id) where TDescriptor : ISubsystemDescriptor where TSubsystem : ISubsystem { if (descriptors == null) { throw new ArgumentNullException("descriptors"); } SubsystemManager.GetSubsystemDescriptors<TDescriptor>(descriptors); if (descriptors.Count <= 0) { return; } foreach (TDescriptor descriptor in descriptors) { ISubsystem val = null; if (string.Compare(((ISubsystemDescriptor)descriptor).id, id, ignoreCase: true) == 0) { val = ((ISubsystemDescriptor)descriptor).Create(); } if (val != null) { m_SubsystemInstanceMap[typeof(TSubsystem)] = val; break; } } } [Obsolete("This method is obsolete. Please use the geenric CreateSubsystem method.", false)] protected void CreateIntegratedSubsystem<TDescriptor, TSubsystem>(List<TDescriptor> descriptors, string id) where TDescriptor : IntegratedSubsystemDescriptor where TSubsystem : IntegratedSubsystem { CreateSubsystem<TDescriptor, TSubsystem>(descriptors, id); } [Obsolete("This method is obsolete. Please use the generic CreateSubsystem method.", false)] protected void CreateStandaloneSubsystem<TDescriptor, TSubsystem>(List<TDescriptor> descriptors, string id) where TDescriptor : SubsystemDescriptor where TSubsystem : Subsystem { CreateSubsystem<TDescriptor, TSubsystem>(descriptors, id); } public override bool Deinitialize() { m_SubsystemInstanceMap.Clear(); return base.Deinitialize(); } } internal static class XRManagementAnalytics { [Serializable] private struct BuildEvent : IData { public string buildGuid; public string buildTarget; public string buildTargetGroup; public string[] assigned_loaders; } [AnalyticInfo("xrmanagment_build", "unity.xrmanagement", 1, 1000, 1000)] private class XrInitializeAnalytic : IAnalytic { private BuildEvent? data; public XrInitializeAnalytic(BuildEvent data) { this.data = data; } public bool TryGatherData(out IData data, [NotNullWhen(false)] out Exception error) { error = null; data = (IData)(object)this.data; return data != null; } } private const int kMaxEventsPerHour = 1000; private const int kMaxNumberOfElements = 1000; private const string kVendorKey = "unity.xrmanagement"; private const string kEventBuild = "xrmanagment_build"; private static bool s_Initialized; private static bool Initialize() { return s_Initialized; } } public sealed class XRManagerSettings : ScriptableObject { [HideInInspector] private bool m_InitializationComplete; [HideInInspector] [SerializeField] private bool m_RequiresSettingsUpdate; [SerializeField] [Tooltip("Determines if the XR Manager instance is responsible for creating and destroying the appropriate loader instance.")] [FormerlySerializedAs("AutomaticLoading")] private bool m_AutomaticLoading; [SerializeField] [Tooltip("Determines if the XR Manager instance is responsible for starting and stopping subsystems for the active loader instance.")] [FormerlySerializedAs("AutomaticRunning")] private bool m_AutomaticRunning; [SerializeField] [Tooltip("List of XR Loader instances arranged in desired load order.")] [FormerlySerializedAs("Loaders")] private List<XRLoader> m_Loaders = new List<XRLoader>(); [SerializeField] [HideInInspector] private HashSet<XRLoader> m_RegisteredLoaders = new HashSet<XRLoader>(); public bool automaticLoading { get { return m_AutomaticLoading; } set { m_AutomaticLoading = value; } } public bool automaticRunning { get { return m_AutomaticRunning; } set { m_AutomaticRunning = value; } } [Obsolete("'XRManagerSettings.loaders' property is obsolete. Use 'XRManagerSettings.activeLoaders' instead to get a list of the current loaders.")] public List<XRLoader> loaders => m_Loaders; public IReadOnlyList<XRLoader> activeLoaders => m_Loaders; public bool isInitializationComplete => m_InitializationComplete; [HideInInspector] public XRLoader activeLoader { get; private set; } internal List<XRLoader> currentLoaders { get { return m_Loaders; } set { m_Loaders = value; } } internal HashSet<XRLoader> registeredLoaders => m_RegisteredLoaders; public T ActiveLoaderAs<T>() where T : XRLoader { return activeLoader as T; } public void InitializeLoaderSync() { if ((Object)(object)activeLoader != (Object)null) { Debug.LogWarning((object)"XR Management has already initialized an active loader in this scene. Please make sure to stop all subsystems and deinitialize the active loader before initializing a new one."); return; } foreach (XRLoader currentLoader in currentLoaders) { if ((Object)(object)currentLoader != (Object)null && CheckGraphicsAPICompatibility(currentLoader) && currentLoader.Initialize()) { activeLoader = currentLoader; m_InitializationComplete = true; return; } } activeLoader = null; } public IEnumerator InitializeLoader() { if ((Object)(object)activeLoader != (Object)null) { Debug.LogWarning((object)"XR Management has already initialized an active loader in this scene. Please make sure to stop all subsystems and deinitialize the active loader before initializing a new one."); yield break; } foreach (XRLoader currentLoader in currentLoaders) { if ((Object)(object)currentLoader != (Object)null && CheckGraphicsAPICompatibility(currentLoader) && currentLoader.Initialize()) { activeLoader = currentLoader; m_InitializationComplete = true; yield break; } yield return null; } activeLoader = null; } public bool TryAddLoader(XRLoader loader, int index = -1) { if ((Object)(object)loader == (Object)null || currentLoaders.Contains(loader)) { return false; } if (!m_RegisteredLoaders.Contains(loader)) { return false; } if (index < 0 || index >= currentLoaders.Count) { currentLoaders.Add(loader); } else { currentLoaders.Insert(index, loader); } return true; } public bool TryRemoveLoader(XRLoader loader) { bool result = true; if (currentLoaders.Contains(loader)) { result = currentLoaders.Remove(loader); } return result; } public bool TrySetLoaders(List<XRLoader> reorderedLoaders) { List<XRLoader> list = new List<XRLoader>(activeLoaders); currentLoaders.Clear(); foreach (XRLoader reorderedLoader in reorderedLoaders) { if (!TryAddLoader(reorderedLoader)) { currentLoaders = list; return false; } } return true; } private void Awake() { foreach (XRLoader currentLoader in currentLoaders) { if (!m_RegisteredLoaders.Contains(currentLoader)) { m_RegisteredLoaders.Add(currentLoader); } } } private bool CheckGraphicsAPICompatibility(XRLoader loader) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) GraphicsDeviceType graphicsDeviceType = SystemInfo.graphicsDeviceType; List<GraphicsDeviceType> supportedGraphicsDeviceTypes = loader.GetSupportedGraphicsDeviceTypes(buildingPlayer: false); if (supportedGraphicsDeviceTypes.Count > 0 && !supportedGraphicsDeviceTypes.Contains(graphicsDeviceType)) { Debug.LogWarning((object)$"The {((Object)loader).name} does not support the initialized graphics device, {((object)(GraphicsDeviceType)(ref graphicsDeviceType)).ToString()}. Please change the preffered Graphics API in PlayerSettings. Attempting to start the next XR loader."); return false; } return true; } public void StartSubsystems() { if (!m_InitializationComplete) { Debug.LogWarning((object)"Call to StartSubsystems without an initialized manager.Please make sure wait for initialization to complete before calling this API."); } else if ((Object)(object)activeLoader != (Object)null) { activeLoader.Start(); } } public void StopSubsystems() { if (!m_InitializationComplete) { Debug.LogWarning((object)"Call to StopSubsystems without an initialized manager.Please make sure wait for initialization to complete before calling this API."); } else if ((Object)(object)activeLoader != (Object)null) { activeLoader.Stop(); } } public void DeinitializeLoader() { if (!m_InitializationComplete) { Debug.LogWarning((object)"Call to DeinitializeLoader without an initialized manager.Please make sure wait for initialization to complete before calling this API."); return; } StopSubsystems(); if ((Object)(object)activeLoader != (Object)null) { activeLoader.Deinitialize(); activeLoader = null; } m_InitializationComplete = false; } private void Start() { if (automaticLoading && automaticRunning) { StartSubsystems(); } } private void OnDisable() { if (automaticLoading && automaticRunning) { StopSubsystems(); } } private void OnDestroy() { if (automaticLoading) { DeinitializeLoader(); } } }
BepInEx/plugins/CWVR/RuntimeDeps/Unity.XR.OpenXR.dll
Decompiled a month ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.CodeDom.Compiler; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Security; using System.Security.Cryptography; using System.Security.Permissions; using System.Text; using System.Threading; using AOT; using UnityEngine.Analytics; using UnityEngine.Events; using UnityEngine.InputSystem; using UnityEngine.InputSystem.Controls; using UnityEngine.InputSystem.Layouts; using UnityEngine.InputSystem.LowLevel; using UnityEngine.InputSystem.Utilities; using UnityEngine.InputSystem.XR; using UnityEngine.Rendering; using UnityEngine.Scripting; using UnityEngine.Serialization; using UnityEngine.XR.Management; using UnityEngine.XR.OpenXR.Features; using UnityEngine.XR.OpenXR.Features.Interactions; using UnityEngine.XR.OpenXR.Input; using UnityEngine.XR.OpenXR.NativeTypes; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: InternalsVisibleTo("Unity.XR.OpenXR.Editor")] [assembly: InternalsVisibleTo("UnityEditor.XR.OpenXR.Tests")] [assembly: InternalsVisibleTo("Unity.XR.OpenXR.Testing")] [assembly: InternalsVisibleTo("Unity.XR.OpenXR.TestTooling.Tests")] [assembly: Preserve] [assembly: InternalsVisibleTo("Unity.XR.OpenXR.TestHelpers")] [assembly: InternalsVisibleTo("Unity.XR.OpenXR.Tests")] [assembly: InternalsVisibleTo("Unity.XR.OpenXR.Editor.Tests")] [assembly: InternalsVisibleTo("Unity.XR.OpenXR.Features.MockRuntime")] [assembly: InternalsVisibleTo("Unity.XR.OpenXR.Features.ConformanceAutomation")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.0.0.0")] [module: UnverifiableCode] [CompilerGenerated] [EditorBrowsable(EditorBrowsableState.Never)] [GeneratedCode("Unity.MonoScriptGenerator.MonoScriptInfoGenerator", null)] internal class UnitySourceGeneratedAssemblyMonoScriptTypes_v1 { private struct MonoScriptData { public byte[] FilePathsData; public byte[] TypesData; public int TotalTypes; public int TotalFiles; public bool IsEditorOnly; } [MethodImpl(MethodImplOptions.AggressiveInlining)] private static MonoScriptData Get() { MonoScriptData result = default(MonoScriptData); result.FilePathsData = new byte[4572] { 0, 0, 0, 2, 0, 0, 0, 114, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 88, 114, 80, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 83, 101, 116, 116, 105, 110, 103, 115, 70, 101, 97, 116, 117, 114, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 112, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 92, 88, 114, 80, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 83, 101, 116, 116, 105, 110, 103, 115, 84, 121, 112, 101, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 70, 111, 118, 101, 97, 116, 101, 100, 82, 101, 110, 100, 101, 114, 105, 110, 103, 70, 101, 97, 116, 117, 114, 101, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 103, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 92, 68, 80, 97, 100, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 106, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 92, 69, 121, 101, 71, 97, 122, 101, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 114, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 92, 72, 97, 110, 100, 67, 111, 109, 109, 111, 110, 80, 111, 115, 101, 115, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 110, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 92, 72, 97, 110, 100, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 80, 114, 111, 102, 105, 108, 101, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 115, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 92, 72, 80, 82, 101, 118, 101, 114, 98, 71, 50, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 112, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 92, 72, 84, 67, 86, 105, 118, 101, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 114, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 92, 75, 72, 82, 83, 105, 109, 112, 108, 101, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 123, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 92, 77, 101, 116, 97, 81, 117, 101, 115, 116, 84, 111, 117, 99, 104, 80, 108, 117, 115, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 122, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 92, 77, 101, 116, 97, 81, 117, 101, 115, 116, 84, 111, 117, 99, 104, 80, 114, 111, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 112, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 92, 77, 105, 99, 114, 111, 115, 111, 102, 116, 72, 97, 110, 100, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 120, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 92, 77, 105, 99, 114, 111, 115, 111, 102, 116, 77, 111, 116, 105, 111, 110, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 116, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 92, 79, 99, 117, 108, 117, 115, 84, 111, 117, 99, 104, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 107, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 92, 80, 97, 108, 109, 80, 111, 115, 101, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 115, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 92, 86, 97, 108, 118, 101, 73, 110, 100, 101, 120, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 88, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 79, 112, 101, 110, 88, 82, 70, 101, 97, 116, 117, 114, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 96, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 79, 112, 101, 110, 88, 82, 70, 101, 97, 116, 117, 114, 101, 73, 110, 116, 101, 114, 110, 97, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 96, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 79, 112, 101, 110, 88, 82, 70, 101, 97, 116, 117, 114, 101, 83, 101, 116, 116, 105, 110, 103, 115, 46, 99, 115, 0, 0, 0, 6, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 79, 112, 101, 110, 88, 82, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 70, 101, 97, 116, 117, 114, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 91, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 70, 101, 97, 116, 117, 114, 101, 115, 92, 83, 112, 97, 99, 101, 87, 97, 114, 112, 70, 101, 97, 116, 117, 114, 101, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 85, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 105, 110, 112, 117, 116, 92, 72, 97, 112, 116, 105, 99, 67, 111, 110, 116, 114, 111, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 84, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 105, 110, 112, 117, 116, 92, 79, 112, 101, 110, 88, 82, 68, 101, 118, 105, 99, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 81, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 105, 110, 112, 117, 116, 92, 79, 112, 101, 110, 88, 82, 72, 109, 100, 46, 99, 115, 0, 0, 0, 4, 0, 0, 0, 83, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 105, 110, 112, 117, 116, 92, 79, 112, 101, 110, 88, 82, 73, 110, 112, 117, 116, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 83, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 105, 110, 112, 117, 116, 92, 80, 111, 115, 101, 67, 111, 110, 116, 114, 111, 108, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 81, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 79, 112, 101, 110, 88, 82, 65, 110, 97, 108, 121, 116, 105, 99, 115, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 94, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 79, 112, 101, 110, 88, 82, 67, 111, 108, 111, 114, 83, 117, 98, 109, 105, 115, 115, 111, 110, 77, 111, 100, 101, 76, 105, 115, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 81, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 79, 112, 101, 110, 88, 82, 67, 111, 110, 115, 116, 97, 110, 116, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 88, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 79, 112, 101, 110, 88, 82, 68, 105, 97, 103, 110, 111, 115, 116, 105, 99, 82, 101, 112, 111, 114, 116, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 78, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 79, 112, 101, 110, 88, 82, 76, 111, 97, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 82, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 79, 112, 101, 110, 88, 82, 76, 111, 97, 100, 101, 114, 66, 97, 115, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 87, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 79, 112, 101, 110, 88, 82, 76, 111, 97, 100, 101, 114, 78, 111, 80, 114, 101, 73, 110, 105, 116, 46, 99, 115, 0, 0, 0, 7, 0, 0, 0, 83, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 79, 112, 101, 110, 88, 82, 78, 97, 116, 105, 118, 101, 84, 121, 112, 101, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 90, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 79, 112, 101, 110, 88, 82, 80, 101, 114, 109, 105, 115, 115, 105, 111, 110, 83, 101, 116, 116, 105, 110, 103, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 86, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 79, 112, 101, 110, 88, 82, 82, 101, 110, 100, 101, 114, 83, 101, 116, 116, 105, 110, 103, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 81, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 79, 112, 101, 110, 88, 82, 82, 101, 115, 116, 97, 114, 116, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 79, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 79, 112, 101, 110, 88, 82, 82, 117, 110, 116, 105, 109, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 80, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 79, 112, 101, 110, 88, 82, 83, 101, 116, 116, 105, 110, 103, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 85, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 79, 112, 101, 110, 88, 82, 83, 112, 97, 99, 101, 83, 101, 116, 116, 105, 110, 103, 115, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 80, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 79, 112, 101, 110, 88, 82, 85, 110, 105, 116, 121, 65, 80, 73, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 79, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 79, 112, 101, 110, 88, 82, 85, 116, 105, 108, 105, 116, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 86, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 111, 112, 101, 110, 120, 114, 64, 48, 53, 102, 98, 49, 97, 55, 100, 55, 53, 100, 49, 92, 82, 117, 110, 116, 105, 109, 101, 92, 87, 97, 105, 116, 70, 111, 114, 82, 101, 115, 116, 97, 114, 116, 70, 105, 110, 105, 115, 104, 46, 99, 115 }; result.TypesData = new byte[5293] { 0, 0, 0, 0, 90, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 80, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 83, 101, 116, 116, 105, 110, 103, 115, 124, 88, 114, 80, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 83, 101, 116, 116, 105, 110, 103, 115, 70, 101, 97, 116, 117, 114, 101, 0, 0, 0, 0, 100, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 80, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 83, 101, 116, 116, 105, 110, 103, 115, 46, 88, 114, 80, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 83, 101, 116, 116, 105, 110, 103, 115, 70, 101, 97, 116, 117, 114, 101, 124, 78, 97, 116, 105, 118, 101, 65, 112, 105, 0, 0, 0, 0, 91, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 80, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 83, 101, 116, 116, 105, 110, 103, 115, 124, 80, 101, 114, 102, 111, 114, 109, 97, 110, 99, 101, 67, 104, 97, 110, 103, 101, 78, 111, 116, 105, 102, 105, 99, 97, 116, 105, 111, 110, 0, 0, 0, 0, 55, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 124, 70, 111, 118, 101, 97, 116, 101, 100, 82, 101, 110, 100, 101, 114, 105, 110, 103, 70, 101, 97, 116, 117, 114, 101, 0, 0, 0, 0, 59, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 124, 68, 80, 97, 100, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 0, 0, 0, 0, 64, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 46, 68, 80, 97, 100, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 124, 68, 80, 97, 100, 0, 0, 0, 0, 62, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 124, 69, 121, 101, 71, 97, 122, 101, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 0, 0, 0, 0, 76, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 46, 69, 121, 101, 71, 97, 122, 101, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 124, 69, 121, 101, 71, 97, 122, 101, 68, 101, 118, 105, 99, 101, 0, 0, 0, 0, 61, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 124, 69, 121, 101, 84, 114, 97, 99, 107, 105, 110, 103, 85, 115, 97, 103, 101, 115, 0, 0, 0, 0, 70, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 124, 72, 97, 110, 100, 67, 111, 109, 109, 111, 110, 80, 111, 115, 101, 115, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 0, 0, 0, 0, 91, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 46, 72, 97, 110, 100, 67, 111, 109, 109, 111, 110, 80, 111, 115, 101, 115, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 124, 72, 97, 110, 100, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 80, 111, 115, 101, 115, 0, 0, 0, 0, 66, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 124, 72, 97, 110, 100, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 80, 114, 111, 102, 105, 108, 101, 0, 0, 0, 0, 82, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 46, 72, 97, 110, 100, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 80, 114, 111, 102, 105, 108, 101, 124, 72, 97, 110, 100, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 0, 0, 0, 0, 71, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 124, 72, 80, 82, 101, 118, 101, 114, 98, 71, 50, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 0, 0, 0, 0, 90, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 46, 72, 80, 82, 101, 118, 101, 114, 98, 71, 50, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 124, 82, 101, 118, 101, 114, 98, 71, 50, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 0, 0, 0, 0, 68, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 124, 72, 84, 67, 86, 105, 118, 101, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 0, 0, 0, 0, 83, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 46, 72, 84, 67, 86, 105, 118, 101, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 124, 86, 105, 118, 101, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 0, 0, 0, 0, 70, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 124, 75, 72, 82, 83, 105, 109, 112, 108, 101, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 0, 0, 0, 0, 90, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 46, 75, 72, 82, 83, 105, 109, 112, 108, 101, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 124, 75, 72, 82, 83, 105, 109, 112, 108, 101, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 0, 0, 0, 0, 79, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 124, 77, 101, 116, 97, 81, 117, 101, 115, 116, 84, 111, 117, 99, 104, 80, 108, 117, 115, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 0, 0, 0, 0, 104, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 46, 77, 101, 116, 97, 81, 117, 101, 115, 116, 84, 111, 117, 99, 104, 80, 108, 117, 115, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 124, 81, 117, 101, 115, 116, 84, 111, 117, 99, 104, 80, 108, 117, 115, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 0, 0, 0, 0, 78, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 124, 77, 101, 116, 97, 81, 117, 101, 115, 116, 84, 111, 117, 99, 104, 80, 114, 111, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 0, 0, 0, 0, 102, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 46, 77, 101, 116, 97, 81, 117, 101, 115, 116, 84, 111, 117, 99, 104, 80, 114, 111, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 124, 81, 117, 101, 115, 116, 80, 114, 111, 84, 111, 117, 99, 104, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 0, 0, 0, 0, 68, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 124, 77, 105, 99, 114, 111, 115, 111, 102, 116, 72, 97, 110, 100, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 0, 0, 0, 0, 81, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 46, 77, 105, 99, 114, 111, 115, 111, 102, 116, 72, 97, 110, 100, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 124, 72, 111, 108, 111, 76, 101, 110, 115, 72, 97, 110, 100, 0, 0, 0, 0, 76, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 124, 77, 105, 99, 114, 111, 115, 111, 102, 116, 77, 111, 116, 105, 111, 110, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 0, 0, 0, 0, 97, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 46, 77, 105, 99, 114, 111, 115, 111, 102, 116, 77, 111, 116, 105, 111, 110, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 124, 87, 77, 82, 83, 112, 97, 116, 105, 97, 108, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 0, 0, 0, 0, 72, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 124, 79, 99, 117, 108, 117, 115, 84, 111, 117, 99, 104, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 0, 0, 0, 0, 94, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 46, 79, 99, 117, 108, 117, 115, 84, 111, 117, 99, 104, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 124, 79, 99, 117, 108, 117, 115, 84, 111, 117, 99, 104, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 0, 0, 0, 0, 63, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 124, 80, 97, 108, 109, 80, 111, 115, 101, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 0, 0, 0, 0, 72, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 46, 80, 97, 108, 109, 80, 111, 115, 101, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 124, 80, 97, 108, 109, 80, 111, 115, 101, 0, 0, 0, 0, 71, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 124, 86, 97, 108, 118, 101, 73, 110, 100, 101, 120, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 0, 0, 0, 0, 92, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 115, 46, 86, 97, 108, 118, 101, 73, 110, 100, 101, 120, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 80, 114, 111, 102, 105, 108, 101, 124, 86, 97, 108, 118, 101, 73, 110, 100, 101, 120, 67, 111, 110, 116, 114, 111, 108, 108, 101, 114, 1, 0, 0, 0, 44, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 124, 79, 112, 101, 110, 88, 82, 70, 101, 97, 116, 117, 114, 101, 1, 0, 0, 0, 44, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 124, 79, 112, 101, 110, 88, 82, 70, 101, 97, 116, 117, 114, 101, 1, 0, 0, 0, 36, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 124, 79, 112, 101, 110, 88, 82, 83, 101, 116, 116, 105, 110, 103, 115, 0, 0, 0, 0, 55, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 124, 79, 112, 101, 110, 88, 82, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 70, 101, 97, 116, 117, 114, 101, 0, 0, 0, 0, 69, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 79, 112, 101, 110, 88, 82, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 70, 101, 97, 116, 117, 114, 101, 124, 65, 99, 116, 105, 111, 110, 66, 105, 110, 100, 105, 110, 103, 0, 0, 0, 0, 68, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 79, 112, 101, 110, 88, 82, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 70, 101, 97, 116, 117, 114, 101, 124, 65, 99, 116, 105, 111, 110, 67, 111, 110, 102, 105, 103, 0, 0, 0, 0, 68, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 79, 112, 101, 110, 88, 82, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 70, 101, 97, 116, 117, 114, 101, 124, 68, 101, 118, 105, 99, 101, 67, 111, 110, 102, 105, 103, 0, 0, 0, 0, 71, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 79, 112, 101, 110, 88, 82, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 70, 101, 97, 116, 117, 114, 101, 124, 65, 99, 116, 105, 111, 110, 77, 97, 112, 67, 111, 110, 102, 105, 103, 0, 0, 0, 0, 65, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 46, 79, 112, 101, 110, 88, 82, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 70, 101, 97, 116, 117, 114, 101, 124, 85, 115, 101, 114, 80, 97, 116, 104, 115, 0, 0, 0, 0, 47, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 70, 101, 97, 116, 117, 114, 101, 115, 124, 83, 112, 97, 99, 101, 87, 97, 114, 112, 70, 101, 97, 116, 117, 114, 101, 0, 0, 0, 0, 34, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 73, 110, 112, 117, 116, 124, 72, 97, 112, 116, 105, 99, 0, 0, 0, 0, 41, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 73, 110, 112, 117, 116, 124, 72, 97, 112, 116, 105, 99, 67, 111, 110, 116, 114, 111, 108, 0, 0, 0, 0, 40, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 73, 110, 112, 117, 116, 124, 79, 112, 101, 110, 88, 82, 68, 101, 118, 105, 99, 101, 0, 0, 0, 0, 37, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 73, 110, 112, 117, 116, 124, 79, 112, 101, 110, 88, 82, 72, 109, 100, 0, 0, 0, 0, 39, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 73, 110, 112, 117, 116, 124, 79, 112, 101, 110, 88, 82, 73, 110, 112, 117, 116, 0, 0, 0, 0, 54, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 73, 110, 112, 117, 116, 46, 79, 112, 101, 110, 88, 82, 73, 110, 112, 117, 116, 124, 83, 101, 114, 105, 97, 108, 105, 122, 101, 100, 71, 117, 105, 100, 0, 0, 0, 0, 57, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 73, 110, 112, 117, 116, 46, 79, 112, 101, 110, 88, 82, 73, 110, 112, 117, 116, 124, 83, 101, 114, 105, 97, 108, 105, 122, 101, 100, 66, 105, 110, 100, 105, 110, 103, 0, 0, 0, 0, 66, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 73, 110, 112, 117, 116, 46, 79, 112, 101, 110, 88, 82, 73, 110, 112, 117, 116, 124, 71, 101, 116, 73, 110, 116, 101, 114, 110, 97, 108, 68, 101, 118, 105, 99, 101, 73, 100, 67, 111, 109, 109, 97, 110, 100, 0, 0, 0, 0, 32, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 73, 110, 112, 117, 116, 124, 80, 111, 115, 101, 0, 0, 0, 0, 39, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 73, 110, 112, 117, 116, 124, 80, 111, 115, 101, 67, 111, 110, 116, 114, 111, 108, 0, 0, 0, 0, 37, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 124, 79, 112, 101, 110, 88, 82, 65, 110, 97, 108, 121, 116, 105, 99, 115, 0, 0, 0, 0, 53, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 79, 112, 101, 110, 88, 82, 65, 110, 97, 108, 121, 116, 105, 99, 115, 124, 73, 110, 105, 116, 105, 97, 108, 105, 122, 101, 69, 118, 101, 110, 116, 0, 0, 0, 0, 58, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 79, 112, 101, 110, 88, 82, 65, 110, 97, 108, 121, 116, 105, 99, 115, 124, 88, 114, 73, 110, 105, 116, 105, 97, 108, 105, 122, 101, 65, 110, 97, 108, 121, 116, 105, 99, 1, 0, 0, 0, 36, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 124, 79, 112, 101, 110, 88, 82, 83, 101, 116, 116, 105, 110, 103, 115, 0, 0, 0, 0, 60, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 79, 112, 101, 110, 88, 82, 83, 101, 116, 116, 105, 110, 103, 115, 124, 67, 111, 108, 111, 114, 83, 117, 98, 109, 105, 115, 115, 105, 111, 110, 77, 111, 100, 101, 76, 105, 115, 116, 0, 0, 0, 0, 31, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 124, 67, 111, 110, 115, 116, 97, 110, 116, 115, 0, 0, 0, 0, 38, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 124, 68, 105, 97, 103, 110, 111, 115, 116, 105, 99, 82, 101, 112, 111, 114, 116, 0, 0, 0, 0, 34, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 124, 79, 112, 101, 110, 88, 82, 76, 111, 97, 100, 101, 114, 1, 0, 0, 0, 38, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 124, 79, 112, 101, 110, 88, 82, 76, 111, 97, 100, 101, 114, 66, 97, 115, 101, 0, 0, 0, 0, 57, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 79, 112, 101, 110, 88, 82, 76, 111, 97, 100, 101, 114, 66, 97, 115, 101, 124, 70, 101, 97, 116, 117, 114, 101, 76, 111, 103, 103, 105, 110, 103, 73, 110, 102, 111, 1, 0, 0, 0, 38, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 124, 79, 112, 101, 110, 88, 82, 76, 111, 97, 100, 101, 114, 66, 97, 115, 101, 0, 0, 0, 0, 43, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 124, 79, 112, 101, 110, 88, 82, 76, 111, 97, 100, 101, 114, 78, 111, 80, 114, 101, 73, 110, 105, 116, 0, 0, 0, 0, 52, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 78, 97, 116, 105, 118, 101, 84, 121, 112, 101, 115, 124, 88, 114, 82, 101, 115, 117, 108, 116, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 51, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 78, 97, 116, 105, 118, 101, 84, 121, 112, 101, 115, 124, 88, 114, 66, 97, 115, 101, 73, 110, 83, 116, 114, 117, 99, 116, 117, 114, 101, 0, 0, 0, 0, 44, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 78, 97, 116, 105, 118, 101, 84, 121, 112, 101, 115, 124, 88, 114, 86, 101, 99, 116, 111, 114, 50, 102, 0, 0, 0, 0, 44, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 78, 97, 116, 105, 118, 101, 84, 121, 112, 101, 115, 124, 88, 114, 86, 101, 99, 116, 111, 114, 51, 102, 0, 0, 0, 0, 47, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 78, 97, 116, 105, 118, 101, 84, 121, 112, 101, 115, 124, 88, 114, 81, 117, 97, 116, 101, 114, 110, 105, 111, 110, 102, 0, 0, 0, 0, 41, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 78, 97, 116, 105, 118, 101, 84, 121, 112, 101, 115, 124, 88, 114, 80, 111, 115, 101, 102, 0, 0, 0, 0, 55, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 78, 97, 116, 105, 118, 101, 84, 121, 112, 101, 115, 124, 88, 114, 83, 119, 97, 112, 99, 104, 97, 105, 110, 67, 114, 101, 97, 116, 101, 73, 110, 102, 111, 1, 0, 0, 0, 36, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 124, 79, 112, 101, 110, 88, 82, 83, 101, 116, 116, 105, 110, 103, 115, 1, 0, 0, 0, 36, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 124, 79, 112, 101, 110, 88, 82, 83, 101, 116, 116, 105, 110, 103, 115, 0, 0, 0, 0, 37, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 124, 79, 112, 101, 110, 88, 82, 82, 101, 115, 116, 97, 114, 116, 101, 114, 0, 0, 0, 0, 35, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 124, 79, 112, 101, 110, 88, 82, 82, 117, 110, 116, 105, 109, 101, 1, 0, 0, 0, 36, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 124, 79, 112, 101, 110, 88, 82, 83, 101, 116, 116, 105, 110, 103, 115, 1, 0, 0, 0, 36, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 124, 79, 112, 101, 110, 88, 82, 83, 101, 116, 116, 105, 110, 103, 115, 0, 0, 0, 0, 44, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 65, 80, 73, 124, 85, 110, 105, 116, 121, 88, 82, 84, 101, 120, 116, 117, 114, 101, 68, 97, 116, 97, 0, 0, 0, 0, 50, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 65, 80, 73, 124, 85, 110, 105, 116, 121, 88, 82, 82, 101, 110, 100, 101, 114, 84, 101, 120, 116, 117, 114, 101, 68, 101, 115, 99, 0, 0, 0, 0, 40, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 46, 65, 80, 73, 124, 85, 110, 105, 116, 121, 88, 82, 68, 105, 115, 112, 108, 97, 121, 0, 0, 0, 0, 35, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 124, 79, 112, 101, 110, 88, 82, 85, 116, 105, 108, 105, 116, 121, 0, 0, 0, 0, 42, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 88, 82, 46, 79, 112, 101, 110, 88, 82, 124, 87, 97, 105, 116, 70, 111, 114, 82, 101, 115, 116, 97, 114, 116, 70, 105, 110, 105, 115, 104 }; result.TotalFiles = 44; result.TotalTypes = 83; result.IsEditorOnly = false; return result; } } namespace UnityEngine.XR.OpenXR { [Serializable] public class OpenXRSettings : ScriptableObject, ISerializationCallbackReceiver { public enum ColorSubmissionModeGroup { [InspectorName("8 bits per channel (LDR, default)")] kRenderTextureFormatGroup8888, [InspectorName("10 bits floating-point per color channel, 2 bit alpha (HDR)")] kRenderTextureFormatGroup1010102_Float, [InspectorName("16 bits floating-point per channel (HDR)")] kRenderTextureFormatGroup16161616_Float, [InspectorName("5,6,5 bit packed (LDR, mobile)")] kRenderTextureFormatGroup565, [InspectorName("11,11,10 bit packed floating-point (HDR)")] kRenderTextureFormatGroup111110_Float } [Serializable] public class ColorSubmissionModeList { public ColorSubmissionModeGroup[] m_List = new ColorSubmissionModeGroup[1]; } public enum RenderMode { MultiPass, SinglePassInstanced } public enum LatencyOptimization { PrioritizeRendering, PrioritizeInputPolling } public enum DepthSubmissionMode { None, Depth16Bit, Depth24Bit } public enum BackendFovationApi : byte { Legacy, SRPFoveation } public enum SpaceWarpMotionVectorTextureFormat { RGBA16f, RG16f } [FormerlySerializedAs("extensions")] [HideInInspector] [SerializeField] internal OpenXRFeature[] features = new OpenXRFeature[0]; public static readonly ColorSubmissionModeGroup kDefaultColorMode; [SerializeField] private RenderMode m_renderMode = RenderMode.SinglePassInstanced; [SerializeField] private LatencyOptimization m_latencyOptimization; [SerializeField] private bool m_autoColorSubmissionMode = true; [SerializeField] private ColorSubmissionModeList m_colorSubmissionModes = new ColorSubmissionModeList(); [SerializeField] private DepthSubmissionMode m_depthSubmissionMode; [SerializeField] private SpaceWarpMotionVectorTextureFormat m_spacewarpMotionVectorTextureFormat; [SerializeField] private bool m_optimizeBufferDiscards; [SerializeField] private bool m_symmetricProjection; [SerializeField] private BackendFovationApi m_foveatedRenderingApi; private const string LibraryName = "UnityOpenXR"; private static OpenXRSettings s_RuntimeInstance; public int featureCount => features.Length; public RenderMode renderMode { get { if ((Object)(object)OpenXRLoaderBase.Instance != (Object)null) { return Internal_GetRenderMode(); } return m_renderMode; } set { if ((Object)(object)OpenXRLoaderBase.Instance != (Object)null) { Internal_SetRenderMode(value); } else { m_renderMode = value; } } } public LatencyOptimization latencyOptimization { get { if ((Object)(object)OpenXRLoaderBase.Instance != (Object)null) { return Internal_GetLatencyOptimization(); } return m_latencyOptimization; } set { m_latencyOptimization = value; } } public bool autoColorSubmissionMode { get { return m_autoColorSubmissionMode; } set { m_autoColorSubmissionMode = value; } } public ColorSubmissionModeGroup[] colorSubmissionModes { get { if (m_autoColorSubmissionMode) { return new ColorSubmissionModeGroup[1] { kDefaultColorMode }; } if ((Object)(object)OpenXRLoaderBase.Instance != (Object)null) { int num = Internal_GetColorSubmissionModes(null, 0); int[] array = new int[num]; Internal_GetColorSubmissionModes(array, num); return array.Select((int i) => (ColorSubmissionModeGroup)i).ToArray(); } return m_colorSubmissionModes.m_List; } set { if ((Object)(object)OpenXRLoaderBase.Instance != (Object)null) { Internal_SetColorSubmissionModes(value.Select((ColorSubmissionModeGroup e) => (int)e).ToArray(), value.Length); } else { m_colorSubmissionModes.m_List = value; } } } public DepthSubmissionMode depthSubmissionMode { get { if ((Object)(object)OpenXRLoaderBase.Instance != (Object)null) { return Internal_GetDepthSubmissionMode(); } return m_depthSubmissionMode; } set { if ((Object)(object)OpenXRLoaderBase.Instance != (Object)null) { Internal_SetDepthSubmissionMode(value); } else { m_depthSubmissionMode = value; } } } public SpaceWarpMotionVectorTextureFormat spacewarpMotionVectorTextureFormat { get { if ((Object)(object)OpenXRLoaderBase.Instance != (Object)null) { return Internal_GetSpaceWarpMotionVectorTextureFormat(); } return m_spacewarpMotionVectorTextureFormat; } set { if ((Object)(object)OpenXRLoaderBase.Instance != (Object)null) { Internal_SetSpaceWarpMotionVectorTextureFormat(value); } else { m_spacewarpMotionVectorTextureFormat = value; } } } public bool optimizeBufferDiscards { get { return m_optimizeBufferDiscards; } set { if ((Object)(object)OpenXRLoaderBase.Instance != (Object)null) { Internal_SetOptimizeBufferDiscards(value); } else { m_optimizeBufferDiscards = value; } } } public bool symmetricProjection { get { return m_symmetricProjection; } set { if ((Object)(object)OpenXRLoaderBase.Instance != (Object)null) { Internal_SetSymmetricProjection(value); } else { m_symmetricProjection = value; } } } public BackendFovationApi foveatedRenderingApi { get { if ((Object)(object)OpenXRLoaderBase.Instance != (Object)null) { return Internal_GetUsedFoveatedRenderingApi(); } return m_foveatedRenderingApi; } set { if ((Object)(object)OpenXRLoaderBase.Instance != (Object)null) { Internal_SetUsedFoveatedRenderingApi(value); } else { m_foveatedRenderingApi = value; } } } public static OpenXRSettings ActiveBuildTargetInstance => GetInstance(useActiveBuildTarget: true); public static OpenXRSettings Instance => GetInstance(useActiveBuildTarget: false); public static bool AllowRecentering => Internal_GetAllowRecentering(); public static float FloorOffset => Internal_GetFloorOffset(); public TFeature GetFeature<TFeature>() where TFeature : OpenXRFeature { return (TFeature)GetFeature(typeof(TFeature)); } public OpenXRFeature GetFeature(Type featureType) { OpenXRFeature[] array = features; foreach (OpenXRFeature openXRFeature in array) { if (featureType.IsInstanceOfType(openXRFeature)) { return openXRFeature; } } return null; } public OpenXRFeature[] GetFeatures<TFeature>() { return GetFeatures(typeof(TFeature)); } public OpenXRFeature[] GetFeatures(Type featureType) { List<OpenXRFeature> list = new List<OpenXRFeature>(); OpenXRFeature[] array = features; foreach (OpenXRFeature openXRFeature in array) { if (featureType.IsInstanceOfType(openXRFeature)) { list.Add(openXRFeature); } } return list.ToArray(); } public int GetFeatures<TFeature>(List<TFeature> featuresOut) where TFeature : OpenXRFeature { featuresOut.Clear(); OpenXRFeature[] array = features; for (int i = 0; i < array.Length; i++) { if (array[i] is TFeature item) { featuresOut.Add(item); } } return featuresOut.Count; } public int GetFeatures(Type featureType, List<OpenXRFeature> featuresOut) { featuresOut.Clear(); OpenXRFeature[] array = features; foreach (OpenXRFeature openXRFeature in array) { if (featureType.IsInstanceOfType(openXRFeature)) { featuresOut.Add(openXRFeature); } } return featuresOut.Count; } public OpenXRFeature[] GetFeatures() { return ((OpenXRFeature[])features?.Clone()) ?? new OpenXRFeature[0]; } public int GetFeatures(List<OpenXRFeature> featuresOut) { featuresOut.Clear(); featuresOut.AddRange(features); return featuresOut.Count; } private void ApplyPermissionSettings() { } [DllImport("UnityOpenXR", EntryPoint = "OculusFoveation_SetHasEyeTrackingPermissions")] internal static extern void Internal_SetHasEyeTrackingPermissions([MarshalAs(UnmanagedType.I1)] bool value); private void ApplyRenderSettings() { Internal_SetSymmetricProjection(m_symmetricProjection); Internal_SetUsedFoveatedRenderingApi(m_foveatedRenderingApi); Internal_SetRenderMode(m_renderMode); Internal_SetLatencyOptimization(m_latencyOptimization); Internal_SetColorSubmissionModes(m_colorSubmissionModes.m_List.Select((ColorSubmissionModeGroup e) => (int)e).ToArray(), m_colorSubmissionModes.m_List.Length); Internal_SetDepthSubmissionMode(m_depthSubmissionMode); Internal_SetSpaceWarpMotionVectorTextureFormat(m_spacewarpMotionVectorTextureFormat); Internal_SetOptimizeBufferDiscards(m_optimizeBufferDiscards); } public void OnBeforeSerialize() { } public void OnAfterDeserialize() { } [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_SetRenderMode")] private static extern void Internal_SetRenderMode(RenderMode renderMode); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetRenderMode")] private static extern RenderMode Internal_GetRenderMode(); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_SetLatencyOptimization")] private static extern void Internal_SetLatencyOptimization(LatencyOptimization latencyOptimzation); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetLatencyOptimization")] private static extern LatencyOptimization Internal_GetLatencyOptimization(); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_SetDepthSubmissionMode")] private static extern void Internal_SetDepthSubmissionMode(DepthSubmissionMode depthSubmissionMode); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetDepthSubmissionMode")] private static extern DepthSubmissionMode Internal_GetDepthSubmissionMode(); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_SetSpaceWarpMotionVectorTextureFormat")] private static extern void Internal_SetSpaceWarpMotionVectorTextureFormat(SpaceWarpMotionVectorTextureFormat spaceWarpMotionVectorTextureFormat); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetSpaceWarpMotionVectorTextureFormat")] private static extern SpaceWarpMotionVectorTextureFormat Internal_GetSpaceWarpMotionVectorTextureFormat(); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_SetSymmetricProjection")] private static extern void Internal_SetSymmetricProjection([MarshalAs(UnmanagedType.I1)] bool enabled); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_SetOptimizeBufferDiscards")] private static extern void Internal_SetOptimizeBufferDiscards([MarshalAs(UnmanagedType.I1)] bool enabled); [DllImport("UnityOpenXR", EntryPoint = "OculusFoveation_SetUsedApi")] private static extern void Internal_SetUsedFoveatedRenderingApi(BackendFovationApi api); [DllImport("UnityOpenXR", EntryPoint = "OculusFoveation_GetUsedApi")] internal static extern BackendFovationApi Internal_GetUsedFoveatedRenderingApi(); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_SetColorSubmissionMode")] private static extern void Internal_SetColorSubmissionMode(ColorSubmissionModeGroup[] colorSubmissionMode); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_SetColorSubmissionModes")] private static extern void Internal_SetColorSubmissionModes(int[] colorSubmissionMode, int arraySize); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetColorSubmissionModes")] private static extern int Internal_GetColorSubmissionModes([Out] int[] colorSubmissionMode, int arraySize); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetIsUsingLegacyXRDisplay")] [return: MarshalAs(UnmanagedType.U1)] private static extern bool Internal_GetIsUsingLegacyXRDisplay(); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetUseOpenXRPredictedTime")] [return: MarshalAs(UnmanagedType.U1)] private static extern bool Internal_GetUseOpenXRPredictedTime(); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_SetUseOpenXRPredictedTime")] private static extern void Internal_SetUseOpenXRPredictedTime([MarshalAs(UnmanagedType.I1)] bool enabled); private void Awake() { s_RuntimeInstance = this; } internal void ApplySettings() { ApplyRenderSettings(); ApplyPermissionSettings(); } private static OpenXRSettings GetInstance(bool useActiveBuildTarget) { OpenXRSettings openXRSettings = null; openXRSettings = s_RuntimeInstance; if ((Object)(object)openXRSettings == (Object)null) { openXRSettings = ScriptableObject.CreateInstance<OpenXRSettings>(); } return openXRSettings; } public static void SetAllowRecentering(bool allowRecentering, float floorOffset = 1.5f) { Internal_SetAllowRecentering(allowRecentering, floorOffset); } public static void RefreshRecenterSpace() { Internal_RegenerateTrackingOrigin(); } [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_SetAllowRecentering")] private static extern void Internal_SetAllowRecentering([MarshalAs(UnmanagedType.U1)] bool active, float height); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_RegenerateTrackingOrigin")] private static extern void Internal_RegenerateTrackingOrigin(); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetAllowRecentering")] [return: MarshalAs(UnmanagedType.U1)] private static extern bool Internal_GetAllowRecentering(); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetFloorOffsetHeight")] private static extern float Internal_GetFloorOffset(); } internal static class OpenXRAnalytics { [Serializable] private struct InitializeEvent : IData { public bool success; public string runtime; public string runtime_version; public string plugin_version; public string api_version; public string[] available_extensions; public string[] enabled_extensions; public string[] enabled_features; public string[] failed_features; } [AnalyticInfo("openxr_initialize", "unity.openxr", 1, 1000, 1000)] private class XrInitializeAnalytic : IAnalytic { private InitializeEvent? data; public XrInitializeAnalytic(InitializeEvent data) { this.data = data; } public bool TryGatherData(out IData data, [NotNullWhen(false)] out Exception error) { error = null; data = (IData)(object)this.data; return data != null; } } private const int kMaxEventsPerHour = 1000; private const int kMaxNumberOfElements = 1000; private const string kVendorKey = "unity.openxr"; private const string kEventInitialize = "openxr_initialize"; private static bool s_Initialized; private static bool Initialize() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) if (s_Initialized) { return true; } if ((int)Analytics.RegisterEvent("openxr_initialize", 1000, 1000, "unity.openxr", "") != 0) { return false; } s_Initialized = true; return true; } public static void SendInitializeEvent(bool success) { if (s_Initialized || Initialize()) { SendPlayerAnalytics(CreateInitializeEvent(success)); } } private static InitializeEvent CreateInitializeEvent(bool success) { InitializeEvent result = default(InitializeEvent); result.success = success; result.runtime = OpenXRRuntime.name; result.runtime_version = OpenXRRuntime.version; result.plugin_version = OpenXRRuntime.pluginVersion; result.api_version = OpenXRRuntime.apiVersion; result.enabled_extensions = (from ext in OpenXRRuntime.GetEnabledExtensions() select $"{ext}_{OpenXRRuntime.GetExtensionVersion(ext)}").ToArray(); result.available_extensions = (from ext in OpenXRRuntime.GetAvailableExtensions() select $"{ext}_{OpenXRRuntime.GetExtensionVersion(ext)}").ToArray(); result.enabled_features = (from f in OpenXRSettings.Instance.features where (Object)(object)f != (Object)null && f.enabled select ((object)f).GetType().FullName + "_" + f.version).ToArray(); result.failed_features = (from f in OpenXRSettings.Instance.features where (Object)(object)f != (Object)null && f.failedInitialization select ((object)f).GetType().FullName + "_" + f.version).ToArray(); return result; } private static void SendPlayerAnalytics(InitializeEvent data) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) Analytics.SendEvent("openxr_initialize", (object)data, 1, ""); } } public static class Constants { public const string k_SettingsKey = "com.unity.xr.openxr.settings4"; } internal class DiagnosticReport { private const string LibraryName = "UnityOpenXR"; public static readonly ulong k_NullSection; [DllImport("UnityOpenXR", EntryPoint = "DiagnosticReport_StartReport")] public static extern void StartReport(); [DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "DiagnosticReport_GetSection")] public static extern ulong GetSection(string sectionName); [DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "DiagnosticReport_AddSectionEntry")] public static extern void AddSectionEntry(ulong sectionHandle, string sectionEntry, string sectionBody); [DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "DiagnosticReport_AddSectionBreak")] public static extern void AddSectionBreak(ulong sectionHandle); [DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "DiagnosticReport_AddEventEntry")] public static extern void AddEventEntry(string eventName, string eventData); [DllImport("UnityOpenXR", EntryPoint = "DiagnosticReport_DumpReport")] private static extern void Internal_DumpReport(); [DllImport("UnityOpenXR", EntryPoint = "DiagnosticReport_DumpReportWithReason")] private static extern void Internal_DumpReport(string reason); [DllImport("UnityOpenXR", EntryPoint = "DiagnosticReport_GenerateReport")] private static extern IntPtr Internal_GenerateReport(); [DllImport("UnityOpenXR", EntryPoint = "DiagnosticReport_ReleaseReport")] private static extern void Internal_ReleaseReport(IntPtr report); internal static string GenerateReport() { string result = ""; IntPtr intPtr = Internal_GenerateReport(); if (intPtr != IntPtr.Zero) { result = Marshal.PtrToStringAnsi(intPtr); Internal_ReleaseReport(intPtr); intPtr = IntPtr.Zero; } return result; } public static void DumpReport(string reason) { Internal_DumpReport(reason); } } public class OpenXRLoader : OpenXRLoaderBase { } public class OpenXRLoaderBase : XRLoaderHelper { private class FeatureLoggingInfo { public string m_nameUi; public string m_version; public string m_company; public string m_openxrExtensionStrings; public FeatureLoggingInfo(string nameUi, string version, string company, string extensionStrings) { m_nameUi = nameUi; m_version = version; m_company = company; m_openxrExtensionStrings = extensionStrings; } } internal enum LoaderState { Uninitialized, InitializeAttempted, Initialized, StartAttempted, Started, StopAttempted, Stopped, DeinitializeAttempted } internal delegate void ReceiveNativeEventDelegate(OpenXRFeature.NativeEvent e, ulong payload); private List<FeatureLoggingInfo> featureLoggingInfo; private const double k_IdlePollingWaitTimeInSeconds = 0.1; private static List<XRDisplaySubsystemDescriptor> s_DisplaySubsystemDescriptors = new List<XRDisplaySubsystemDescriptor>(); private static List<XRInputSubsystemDescriptor> s_InputSubsystemDescriptors = new List<XRInputSubsystemDescriptor>(); private List<LoaderState> validLoaderInitStates = new List<LoaderState> { LoaderState.Uninitialized, LoaderState.InitializeAttempted }; private List<LoaderState> validLoaderStartStates = new List<LoaderState> { LoaderState.Initialized, LoaderState.StartAttempted, LoaderState.Stopped }; private List<LoaderState> validLoaderStopStates = new List<LoaderState> { LoaderState.StartAttempted, LoaderState.Started, LoaderState.StopAttempted }; private List<LoaderState> validLoaderDeinitStates = new List<LoaderState> { LoaderState.InitializeAttempted, LoaderState.Initialized, LoaderState.Stopped, LoaderState.DeinitializeAttempted }; private List<LoaderState> runningStates = new List<LoaderState> { LoaderState.Initialized, LoaderState.StartAttempted, LoaderState.Started }; private OpenXRFeature.NativeEvent currentOpenXRState; private bool actionSetsAttached; private UnhandledExceptionEventHandler unhandledExceptionHandler; internal bool DisableValidationChecksOnEnteringPlaymode; private double lastPollCheckTime; private const string LibraryName = "UnityOpenXR"; internal static OpenXRLoaderBase Instance { get; private set; } internal LoaderState currentLoaderState { get; private set; } internal XRDisplaySubsystem displaySubsystem => ((XRLoaderHelper)this).GetLoadedSubsystem<XRDisplaySubsystem>(); internal XRInputSubsystem inputSubsystem { get { OpenXRLoaderBase instance = Instance; if (instance == null) { return null; } return ((XRLoaderHelper)instance).GetLoadedSubsystem<XRInputSubsystem>(); } } private bool isInitialized { get { if (currentLoaderState != 0) { return currentLoaderState != LoaderState.DeinitializeAttempted; } return false; } } private bool isStarted => runningStates.Contains(currentLoaderState); private static void ExceptionHandler(object sender, UnhandledExceptionEventArgs args) { ulong section = DiagnosticReport.GetSection("Unhandled Exception Report"); DiagnosticReport.AddSectionEntry(section, "Is Terminating", $"{args.IsTerminating}"); Exception ex = (Exception)args.ExceptionObject; DiagnosticReport.AddSectionEntry(section, "Message", ex.Message ?? ""); DiagnosticReport.AddSectionEntry(section, "Source", ex.Source ?? ""); DiagnosticReport.AddSectionEntry(section, "Stack Trace", "\n" + ex.StackTrace); DiagnosticReport.DumpReport("Uncaught Exception"); } public override bool Initialize() { if (currentLoaderState == LoaderState.Initialized) { return true; } if (!validLoaderInitStates.Contains(currentLoaderState)) { return false; } if ((Object)(object)Instance != (Object)null) { Debug.LogError((object)"Only one OpenXRLoader can be initialized at any given time"); return false; } DiagnosticReport.StartReport(); try { if (InitializeInternal()) { return true; } } catch (Exception ex) { Debug.LogException(ex); } ((XRLoader)this).Deinitialize(); Instance = null; OpenXRAnalytics.SendInitializeEvent(success: false); return false; } private bool InitializeInternal() { //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Expected O, but got Unknown Instance = this; currentLoaderState = LoaderState.InitializeAttempted; Internal_SetSuccessfullyInitialized(value: false); OpenXRInput.RegisterLayouts(); OpenXRFeature.Initialize(); if (!LoadOpenXRSymbols()) { Debug.LogError((object)"Failed to load openxr runtime loader."); return false; } OpenXRSettings.Instance.features = (from f in OpenXRSettings.Instance.features where (Object)(object)f != (Object)null orderby f.priority descending, f.nameUi select f).ToArray(); OpenXRFeature.HookGetInstanceProcAddr(); if (!Internal_InitializeSession()) { return false; } RequestOpenXRFeatures(); RegisterOpenXRCallbacks(); if ((Object)null != (Object)(object)OpenXRSettings.Instance) { OpenXRSettings.Instance.ApplySettings(); } if (!CreateSubsystems()) { return false; } if (OpenXRFeature.requiredFeatureFailed) { return false; } SetApplicationInfo(); OpenXRAnalytics.SendInitializeEvent(success: true); OpenXRFeature.ReceiveLoaderEvent(this, OpenXRFeature.LoaderEvent.SubsystemCreate); DebugLogEnabledSpecExtensions(); Application.onBeforeRender += new UnityAction(ProcessOpenXRMessageLoop); currentLoaderState = LoaderState.Initialized; return true; } private bool CreateSubsystems() { if (displaySubsystem == null) { this.CreateSubsystem<XRDisplaySubsystemDescriptor, XRDisplaySubsystem>(s_DisplaySubsystemDescriptors, "OpenXR Display"); if (displaySubsystem == null) { return false; } } if (inputSubsystem == null) { this.CreateSubsystem<XRInputSubsystemDescriptor, XRInputSubsystem>(s_InputSubsystemDescriptors, "OpenXR Input"); if (inputSubsystem == null) { return false; } } return true; } internal void ProcessOpenXRMessageLoop() { if (currentOpenXRState == OpenXRFeature.NativeEvent.XrIdle || currentOpenXRState == OpenXRFeature.NativeEvent.XrStopping || currentOpenXRState == OpenXRFeature.NativeEvent.XrExiting || currentOpenXRState == OpenXRFeature.NativeEvent.XrLossPending || currentOpenXRState == OpenXRFeature.NativeEvent.XrInstanceLossPending) { float realtimeSinceStartup = Time.realtimeSinceStartup; if ((double)realtimeSinceStartup - lastPollCheckTime < 0.1) { return; } lastPollCheckTime = realtimeSinceStartup; } Internal_PumpMessageLoop(); } public override bool Start() { if (currentLoaderState == LoaderState.Started) { return true; } if (!validLoaderStartStates.Contains(currentLoaderState)) { return false; } currentLoaderState = LoaderState.StartAttempted; if (!StartInternal()) { ((XRLoader)this).Stop(); return false; } currentLoaderState = LoaderState.Started; return true; } private bool StartInternal() { if (!Internal_CreateSessionIfNeeded()) { return false; } if (currentOpenXRState != OpenXRFeature.NativeEvent.XrReady || (currentLoaderState != LoaderState.StartAttempted && currentLoaderState != LoaderState.Started)) { return true; } this.StartSubsystem<XRDisplaySubsystem>(); XRDisplaySubsystem obj = displaySubsystem; if (obj != null && !((IntegratedSubsystem)obj).running) { return false; } Internal_BeginSession(); if (!actionSetsAttached) { OpenXRInput.AttachActionSets(); actionSetsAttached = true; } XRDisplaySubsystem obj2 = displaySubsystem; if (obj2 != null && !((IntegratedSubsystem)obj2).running) { this.StartSubsystem<XRDisplaySubsystem>(); } XRInputSubsystem obj3 = inputSubsystem; if (obj3 != null && !((IntegratedSubsystem)obj3).running) { this.StartSubsystem<XRInputSubsystem>(); } XRInputSubsystem obj4 = inputSubsystem; bool num = obj4 != null && ((IntegratedSubsystem)obj4).running; XRDisplaySubsystem obj5 = displaySubsystem; bool flag = obj5 != null && ((IntegratedSubsystem)obj5).running; if (num && flag) { OpenXRFeature.ReceiveLoaderEvent(this, OpenXRFeature.LoaderEvent.SubsystemStart); return true; } return false; } public override bool Stop() { if (currentLoaderState == LoaderState.Stopped) { return true; } if (!validLoaderStopStates.Contains(currentLoaderState)) { return false; } currentLoaderState = LoaderState.StopAttempted; XRInputSubsystem obj = inputSubsystem; bool num = obj != null && ((IntegratedSubsystem)obj).running; XRDisplaySubsystem obj2 = displaySubsystem; bool flag = obj2 != null && ((IntegratedSubsystem)obj2).running; if (num || flag) { OpenXRFeature.ReceiveLoaderEvent(this, OpenXRFeature.LoaderEvent.SubsystemStop); } if (num) { this.StopSubsystem<XRInputSubsystem>(); } if (flag) { this.StopSubsystem<XRDisplaySubsystem>(); } StopInternal(); currentLoaderState = LoaderState.Stopped; return true; } private void StopInternal() { Internal_EndSession(); ProcessOpenXRMessageLoop(); } public override bool Deinitialize() { //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Expected O, but got Unknown if (currentLoaderState == LoaderState.Uninitialized) { return true; } if (!validLoaderDeinitStates.Contains(currentLoaderState)) { return false; } currentLoaderState = LoaderState.DeinitializeAttempted; try { Internal_RequestExitSession(); Application.onBeforeRender -= new UnityAction(ProcessOpenXRMessageLoop); ProcessOpenXRMessageLoop(); OpenXRFeature.ReceiveLoaderEvent(this, OpenXRFeature.LoaderEvent.SubsystemDestroy); this.DestroySubsystem<XRInputSubsystem>(); this.DestroySubsystem<XRDisplaySubsystem>(); DiagnosticReport.DumpReport("System Shutdown"); Internal_DestroySession(); ProcessOpenXRMessageLoop(); Internal_UnloadOpenXRLibrary(); currentLoaderState = LoaderState.Uninitialized; actionSetsAttached = false; if (unhandledExceptionHandler != null) { AppDomain.CurrentDomain.UnhandledException -= unhandledExceptionHandler; unhandledExceptionHandler = null; } return ((XRLoaderHelper)this).Deinitialize(); } finally { Instance = null; } } internal void CreateSubsystem<TDescriptor, TSubsystem>(List<TDescriptor> descriptors, string id) where TDescriptor : ISubsystemDescriptor where TSubsystem : ISubsystem { ((XRLoaderHelper)this).CreateSubsystem<TDescriptor, TSubsystem>(descriptors, id); } internal void StartSubsystem<T>() where T : class, ISubsystem { ((XRLoaderHelper)this).StartSubsystem<T>(); } internal void StopSubsystem<T>() where T : class, ISubsystem { ((XRLoaderHelper)this).StopSubsystem<T>(); } internal void DestroySubsystem<T>() where T : class, ISubsystem { ((XRLoaderHelper)this).DestroySubsystem<T>(); } private void SetApplicationInfo() { byte[] array = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(Application.version)); if (BitConverter.IsLittleEndian) { Array.Reverse(array); } uint applicationVersionHash = BitConverter.ToUInt32(array, 0); Internal_SetApplicationInfo(Application.productName, Application.version, applicationVersionHash, Application.unityVersion); } internal static byte[] StringToWCHAR_T(string s) { return ((Environment.OSVersion.Platform == PlatformID.Unix) ? Encoding.UTF32 : Encoding.Unicode).GetBytes(s + "\0"); } private bool LoadOpenXRSymbols() { if (!Internal_LoadOpenXRLibrary(StringToWCHAR_T("openxr_loader"))) { return false; } return true; } private void RequestOpenXRFeatures() { OpenXRSettings instance = OpenXRSettings.Instance; if ((Object)(object)instance == (Object)null || instance.features == null) { return; } featureLoggingInfo = new List<FeatureLoggingInfo>(instance.featureCount); OpenXRFeature[] features = instance.features; foreach (OpenXRFeature openXRFeature in features) { if ((Object)(object)openXRFeature == (Object)null || !openXRFeature.enabled) { continue; } featureLoggingInfo.Add(new FeatureLoggingInfo(openXRFeature.nameUi, openXRFeature.version, openXRFeature.company, openXRFeature.openxrExtensionStrings)); if (string.IsNullOrEmpty(openXRFeature.openxrExtensionStrings)) { continue; } string[] array = openXRFeature.openxrExtensionStrings.Split(' '); foreach (string text in array) { if (!string.IsNullOrWhiteSpace(text)) { Internal_RequestEnableExtensionString(text); } } } } private void LogRequestedOpenXRFeatures() { OpenXRSettings instance = OpenXRSettings.Instance; if ((Object)(object)instance == (Object)null || instance.features == null) { return; } StringBuilder stringBuilder = new StringBuilder(""); StringBuilder stringBuilder2 = new StringBuilder(""); uint num = 0u; uint num2 = 0u; foreach (FeatureLoggingInfo item in featureLoggingInfo) { stringBuilder.Append(" " + item.m_nameUi + ": Version=" + item.m_version + ", Company=\"" + item.m_company + "\""); if (!string.IsNullOrEmpty(item.m_openxrExtensionStrings)) { stringBuilder.Append(", Extensions=\"" + item.m_openxrExtensionStrings + "\""); string[] array = item.m_openxrExtensionStrings.Split(' '); foreach (string text in array) { if (!string.IsNullOrWhiteSpace(text) && !Internal_IsExtensionEnabled(text)) { num2++; stringBuilder2.Append(" " + text + ": Feature=\"" + item.m_nameUi + "\": Version=" + item.m_version + ", Company=\"" + item.m_company + "\"\n"); } } } stringBuilder.Append("\n"); } ulong section = DiagnosticReport.GetSection("OpenXR Runtime Info"); DiagnosticReport.AddSectionBreak(section); DiagnosticReport.AddSectionEntry(section, "Features requested to be enabled", $"({num})\n{stringBuilder.ToString()}"); DiagnosticReport.AddSectionBreak(section); DiagnosticReport.AddSectionEntry(section, "Requested feature extensions not supported by runtime", $"({num2})\n{stringBuilder2.ToString()}"); } private static void DebugLogEnabledSpecExtensions() { ulong section = DiagnosticReport.GetSection("OpenXR Runtime Info"); DiagnosticReport.AddSectionBreak(section); string[] enabledExtensions = OpenXRRuntime.GetEnabledExtensions(); StringBuilder stringBuilder = new StringBuilder($"({enabledExtensions.Length})\n"); string[] array = enabledExtensions; foreach (string text in array) { stringBuilder.Append($" {text}: Version={OpenXRRuntime.GetExtensionVersion(text)}\n"); } DiagnosticReport.AddSectionEntry(section, "Runtime extensions enabled", stringBuilder.ToString()); } [MonoPInvokeCallback(typeof(ReceiveNativeEventDelegate))] private static void ReceiveNativeEvent(OpenXRFeature.NativeEvent e, ulong payload) { OpenXRLoaderBase instance = Instance; if ((Object)(object)instance != (Object)null) { instance.currentOpenXRState = e; } switch (e) { case OpenXRFeature.NativeEvent.XrRestartRequested: OpenXRRestarter.Instance.ShutdownAndRestart(); break; case OpenXRFeature.NativeEvent.XrReady: instance.StartInternal(); break; case OpenXRFeature.NativeEvent.XrBeginSession: instance.LogRequestedOpenXRFeatures(); break; case OpenXRFeature.NativeEvent.XrFocused: DiagnosticReport.DumpReport("System Startup Completed"); break; case OpenXRFeature.NativeEvent.XrRequestRestartLoop: Debug.Log((object)"XR Initialization failed, will try to restart xr periodically."); OpenXRRestarter.Instance.PauseAndShutdownAndRestart(); break; case OpenXRFeature.NativeEvent.XrRequestGetSystemLoop: OpenXRRestarter.Instance.PauseAndRetryInitialization(); break; case OpenXRFeature.NativeEvent.XrStopping: instance.StopInternal(); break; } OpenXRFeature.ReceiveNativeEvent(e, payload); if ((!((Object)(object)instance == (Object)null) && instance.isStarted) || e == OpenXRFeature.NativeEvent.XrInstanceChanged) { switch (e) { case OpenXRFeature.NativeEvent.XrExiting: OpenXRRestarter.Instance.Shutdown(); break; case OpenXRFeature.NativeEvent.XrLossPending: OpenXRRestarter.Instance.ShutdownAndRestart(); break; case OpenXRFeature.NativeEvent.XrInstanceLossPending: OpenXRRestarter.Instance.Shutdown(); break; } } } internal static void RegisterOpenXRCallbacks() { Internal_SetCallbacks(ReceiveNativeEvent); } [DllImport("UnityOpenXR", EntryPoint = "main_LoadOpenXRLibrary")] [return: MarshalAs(UnmanagedType.U1)] internal static extern bool Internal_LoadOpenXRLibrary(byte[] loaderPath); [DllImport("UnityOpenXR", EntryPoint = "main_UnloadOpenXRLibrary")] internal static extern void Internal_UnloadOpenXRLibrary(); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_SetCallbacks")] private static extern void Internal_SetCallbacks(ReceiveNativeEventDelegate callback); [DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "NativeConfig_SetApplicationInfo")] private static extern void Internal_SetApplicationInfo(string applicationName, string applicationVersion, uint applicationVersionHash, string engineVersion); [DllImport("UnityOpenXR", EntryPoint = "session_RequestExitSession")] internal static extern void Internal_RequestExitSession(); [DllImport("UnityOpenXR", EntryPoint = "session_InitializeSession")] [return: MarshalAs(UnmanagedType.U1)] internal static extern bool Internal_InitializeSession(); [DllImport("UnityOpenXR", EntryPoint = "session_CreateSessionIfNeeded")] [return: MarshalAs(UnmanagedType.U1)] internal static extern bool Internal_CreateSessionIfNeeded(); [DllImport("UnityOpenXR", EntryPoint = "session_BeginSession")] internal static extern void Internal_BeginSession(); [DllImport("UnityOpenXR", EntryPoint = "session_EndSession")] internal static extern void Internal_EndSession(); [DllImport("UnityOpenXR", EntryPoint = "session_DestroySession")] internal static extern void Internal_DestroySession(); [DllImport("UnityOpenXR", EntryPoint = "messagepump_PumpMessageLoop")] private static extern void Internal_PumpMessageLoop(); [DllImport("UnityOpenXR", EntryPoint = "session_SetSuccessfullyInitialized")] internal static extern void Internal_SetSuccessfullyInitialized([MarshalAs(UnmanagedType.I1)] bool value); [DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "unity_ext_RequestEnableExtensionString")] [return: MarshalAs(UnmanagedType.U1)] internal static extern bool Internal_RequestEnableExtensionString(string extensionString); [DllImport("UnityOpenXR", EntryPoint = "unity_ext_IsExtensionEnabled")] [return: MarshalAs(UnmanagedType.U1)] private static extern bool Internal_IsExtensionEnabled(string extensionName); } public class OpenXRLoaderNoPreInit : OpenXRLoaderBase { } internal class OpenXRRestarter : MonoBehaviour { internal Action onAfterRestart; internal Action onAfterShutdown; internal Action onQuit; internal Action onAfterCoroutine; internal Action onAfterSuccessfulRestart; private static OpenXRRestarter s_Instance; private Coroutine m_Coroutine; private static int m_pauseAndRestartCoroutineCount; private Object m_PauseAndRestartCoroutineCountLock = new Object(); private static int m_pauseAndRestartAttempts; public bool isRunning => m_Coroutine != null; public static float TimeBetweenRestartAttempts { get; set; } public static int PauseAndRestartAttempts => m_pauseAndRestartAttempts; internal static int PauseAndRestartCoroutineCount => m_pauseAndRestartCoroutineCount; public static OpenXRRestarter Instance { get { //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown if ((Object)(object)s_Instance == (Object)null) { GameObject val = GameObject.Find("~oxrestarter"); if ((Object)(object)val == (Object)null) { val = new GameObject("~oxrestarter"); ((Object)val).hideFlags = (HideFlags)61; val.AddComponent<OpenXRRestarter>(); } s_Instance = val.GetComponent<OpenXRRestarter>(); } return s_Instance; } } internal static bool DisableApplicationQuit { get; set; } static OpenXRRestarter() { TimeBetweenRestartAttempts = 5f; DisableApplicationQuit = false; } public void ResetCallbacks() { onAfterRestart = null; onAfterSuccessfulRestart = null; onAfterShutdown = null; onAfterCoroutine = null; onQuit = null; m_pauseAndRestartAttempts = 0; } public void Shutdown() { if (!((Object)(object)OpenXRLoaderBase.Instance == (Object)null)) { if (m_Coroutine != null) { Debug.LogError((object)"Only one shutdown or restart can be executed at a time"); } else { m_Coroutine = ((MonoBehaviour)this).StartCoroutine(RestartCoroutine(shouldRestart: false, shouldShutdown: true)); } } } public void ShutdownAndRestart() { if (!((Object)(object)OpenXRLoaderBase.Instance == (Object)null)) { if (m_Coroutine != null) { Debug.LogError((object)"Only one shutdown or restart can be executed at a time"); } else { m_Coroutine = ((MonoBehaviour)this).StartCoroutine(RestartCoroutine(shouldRestart: true, shouldShutdown: true)); } } } public void PauseAndShutdownAndRestart() { if (!((Object)(object)OpenXRLoaderBase.Instance == (Object)null)) { ((MonoBehaviour)this).StartCoroutine(PauseAndShutdownAndRestartCoroutine(TimeBetweenRestartAttempts)); } } public void PauseAndRetryInitialization() { if (!((Object)(object)OpenXRLoaderBase.Instance == (Object)null)) { ((MonoBehaviour)this).StartCoroutine(PauseAndRetryInitializationCoroutine(TimeBetweenRestartAttempts)); } } private void IncrementPauseAndRestartCoroutineCount() { lock (m_PauseAndRestartCoroutineCountLock) { m_pauseAndRestartCoroutineCount++; } } private void DecrementPauseAndRestartCoroutineCount() { lock (m_PauseAndRestartCoroutineCountLock) { m_pauseAndRestartCoroutineCount--; } } private IEnumerator PauseAndShutdownAndRestartCoroutine(float pauseTimeInSeconds) { IncrementPauseAndRestartCoroutineCount(); try { yield return (object)new WaitForSeconds(pauseTimeInSeconds); yield return new WaitForRestartFinish(); m_pauseAndRestartAttempts++; m_Coroutine = ((MonoBehaviour)this).StartCoroutine(RestartCoroutine(shouldRestart: true, shouldShutdown: true)); } finally { onAfterCoroutine?.Invoke(); } DecrementPauseAndRestartCoroutineCount(); } private IEnumerator PauseAndRetryInitializationCoroutine(float pauseTimeInSeconds) { IncrementPauseAndRestartCoroutineCount(); try { yield return (object)new WaitForSeconds(pauseTimeInSeconds); yield return new WaitForRestartFinish(); if (!((Object)(object)XRGeneralSettings.Instance.Manager.activeLoader != (Object)null)) { m_pauseAndRestartAttempts++; m_Coroutine = ((MonoBehaviour)this).StartCoroutine(RestartCoroutine(shouldRestart: true, shouldShutdown: false)); } } finally { onAfterCoroutine?.Invoke(); } DecrementPauseAndRestartCoroutineCount(); } private IEnumerator RestartCoroutine(bool shouldRestart, bool shouldShutdown) { try { if (shouldShutdown) { Debug.Log((object)"Shutting down OpenXR."); yield return null; XRGeneralSettings.Instance.Manager.DeinitializeLoader(); yield return null; onAfterShutdown?.Invoke(); } if (shouldRestart && OpenXRRuntime.ShouldRestart()) { Debug.Log((object)"Initializing OpenXR."); yield return XRGeneralSettings.Instance.Manager.InitializeLoader(); XRGeneralSettings.Instance.Manager.StartSubsystems(); if ((Object)(object)XRGeneralSettings.Instance.Manager.activeLoader != (Object)null) { m_pauseAndRestartAttempts = 0; onAfterSuccessfulRestart?.Invoke(); } onAfterRestart?.Invoke(); } else if (OpenXRRuntime.ShouldQuit()) { onQuit?.Invoke(); if (!DisableApplicationQuit) { Application.Quit(); } } } finally { OpenXRRestarter openXRRestarter = this; openXRRestarter.m_Coroutine = null; openXRRestarter.onAfterCoroutine?.Invoke(); } } } public static class OpenXRRuntime { private const string LibraryName = "UnityOpenXR"; public static string name { get { if (!Internal_GetRuntimeName(out var runtimeNamePtr)) { return ""; } return Marshal.PtrToStringAnsi(runtimeNamePtr); } } public static string version { get { if (!Internal_GetRuntimeVersion(out var major, out var minor, out var patch)) { return ""; } return $"{major}.{minor}.{patch}"; } } public static string apiVersion { get { if (!Internal_GetAPIVersion(out var major, out var minor, out var patch)) { return ""; } return $"{major}.{minor}.{patch}"; } } public static string pluginVersion { get { if (!Internal_GetPluginVersion(out var pluginVersionPtr)) { return ""; } return Marshal.PtrToStringAnsi(pluginVersionPtr); } } public static bool retryInitializationOnFormFactorErrors { get { return Internal_GetSoftRestartLoopAtInitialization(); } set { Internal_SetSoftRestartLoopAtInitialization(value); } } public static event Func<bool> wantsToQuit; public static event Func<bool> wantsToRestart; internal static bool isRuntimeAPIVersionGreaterThan1_1() { if (Internal_GetAPIVersion(out var major, out var minor, out var _) && major >= 1 && minor >= 1) { return true; } return false; } public static bool IsExtensionEnabled(string extensionName) { return Internal_IsExtensionEnabled(extensionName); } public static uint GetExtensionVersion(string extensionName) { return Internal_GetExtensionVersion(extensionName); } public static string[] GetEnabledExtensions() { string[] array = new string[Internal_GetEnabledExtensionCount()]; for (int i = 0; i < array.Length; i++) { Internal_GetEnabledExtensionName((uint)i, out var extensionName); array[i] = extensionName ?? ""; } return array; } public static string[] GetAvailableExtensions() { string[] array = new string[Internal_GetAvailableExtensionCount()]; for (int i = 0; i < array.Length; i++) { Internal_GetAvailableExtensionName((uint)i, out var extensionName); array[i] = extensionName ?? ""; } return array; } private static bool InvokeEvent(Func<bool> func) { if (func == null) { return true; } Delegate[] invocationList = func.GetInvocationList(); for (int i = 0; i < invocationList.Length; i++) { Func<bool> func2 = (Func<bool>)invocationList[i]; try { if (!func2()) { return false; } } catch (Exception ex) { Debug.LogException(ex); } } return true; } internal static bool ShouldQuit() { return InvokeEvent(OpenXRRuntime.wantsToQuit); } internal static bool ShouldRestart() { return InvokeEvent(OpenXRRuntime.wantsToRestart); } [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetRuntimeName")] [return: MarshalAs(UnmanagedType.U1)] private static extern bool Internal_GetRuntimeName(out IntPtr runtimeNamePtr); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetRuntimeVersion")] [return: MarshalAs(UnmanagedType.U1)] private static extern bool Internal_GetRuntimeVersion(out ushort major, out ushort minor, out uint patch); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetAPIVersion")] [return: MarshalAs(UnmanagedType.U1)] private static extern bool Internal_GetAPIVersion(out ushort major, out ushort minor, out uint patch); [DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetPluginVersion")] [return: MarshalAs(UnmanagedType.U1)] private static extern bool Internal_GetPluginVersion(out IntPtr pluginVersionPtr); [DllImport("UnityOpenXR", EntryPoint = "unity_ext_IsExtensionEnabled")] [return: MarshalAs(UnmanagedType.U1)] private static extern bool Internal_IsExtensionEnabled(string extensionName); [DllImport("UnityOpenXR", EntryPoint = "unity_ext_GetExtensionVersion")] private static extern uint Internal_GetExtensionVersion(string extensionName); [DllImport("UnityOpenXR", EntryPoint = "unity_ext_GetEnabledExtensionCount")] private static extern uint Internal_GetEnabledExtensionCount(); [DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "unity_ext_GetEnabledExtensionName")] [return: MarshalAs(UnmanagedType.U1)] private static extern bool Internal_GetEnabledExtensionNamePtr(uint index, out IntPtr outName); [DllImport("UnityOpenXR", EntryPoint = "session_SetSoftRestartLoopAtInitialization")] private static extern void Internal_SetSoftRestartLoopAtInitialization([MarshalAs(UnmanagedType.I1)] bool value); [DllImport("UnityOpenXR", EntryPoint = "session_GetSoftRestartLoopAtInitialization")] [return: MarshalAs(UnmanagedType.U1)] private static extern bool Internal_GetSoftRestartLoopAtInitialization(); private static bool Internal_GetEnabledExtensionName(uint index, out string extensionName) { if (!Internal_GetEnabledExtensionNamePtr(index, out var outName)) { extensionName = ""; return false; } extensionName = Marshal.PtrToStringAnsi(outName); return true; } [DllImport("UnityOpenXR", EntryPoint = "unity_ext_GetAvailableExtensionCount")] private static extern uint Internal_GetAvailableExtensionCount(); [DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "unity_ext_GetAvailableExtensionName")] [return: MarshalAs(UnmanagedType.U1)] private static extern bool Internal_GetAvailableExtensionNamePtr(uint index, out IntPtr extensionName); private static bool Internal_GetAvailableExtensionName(uint index, out string extensionName) { if (!Internal_GetAvailableExtensionNamePtr(index, out var extensionName2)) { extensionName = ""; return false; } extensionName = Marshal.PtrToStringAnsi(extensionName2); return true; } [DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "session_GetLastError")] [return: MarshalAs(UnmanagedType.U1)] private static extern bool Internal_GetLastError(out IntPtr error); internal static bool GetLastError(out string error) { if (!Internal_GetLastError(out var error2)) { error = ""; return false; } error = Marshal.PtrToStringAnsi(error2); return true; } internal static void LogLastError() { if (GetLastError(out var error)) { Debug.LogError((object)error); } } } public static class OpenXRUtility { private const string LibraryName = "UnityOpenXR"; public static bool IsSessionFocused => Internal_IsSessionFocused(); public static bool IsUserPresent => Internal_GetUserPresence(); private static Pose Inverse(Pose p) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) Pose val = default(Pose); val.rotation = Quaternion.Inverse(p.rotation); val.position = val.rotation * -p.position; return val; } public static Pose ComputePoseToWorldSpace(Transform t, Camera camera) { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL
BepInEx/plugins/CWVR/RuntimeDeps/UnityEngine.SpatialTracking.dll
Decompiled a month agousing System; using System.CodeDom.Compiler; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using UnityEngine.Events; using UnityEngine.Experimental.XR.Interaction; using UnityEngine.SpatialTracking; using UnityEngine.XR; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: InternalsVisibleTo("UnityEditor.XR.SpatialTracking")] [assembly: InternalsVisibleTo("UnityEditor.SpatialTracking")] [assembly: AssemblyVersion("0.0.0.0")] [CompilerGenerated] [EditorBrowsable(EditorBrowsableState.Never)] [GeneratedCode("Unity.MonoScriptGenerator.MonoScriptInfoGenerator", null)] internal class UnitySourceGeneratedAssemblyMonoScriptTypes_v1 { private struct MonoScriptData { public byte[] FilePathsData; public byte[] TypesData; public int TotalTypes; public int TotalFiles; public bool IsEditorOnly; } [MethodImpl(MethodImplOptions.AggressiveInlining)] private static MonoScriptData Get() { MonoScriptData result = default(MonoScriptData); result.FilePathsData = new byte[241] { 0, 0, 0, 1, 0, 0, 0, 112, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 108, 101, 103, 97, 99, 121, 105, 110, 112, 117, 116, 104, 101, 108, 112, 101, 114, 115, 64, 98, 55, 53, 55, 57, 101, 56, 54, 102, 51, 98, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 84, 114, 97, 99, 107, 101, 100, 80, 111, 115, 101, 68, 114, 105, 118, 101, 114, 92, 66, 97, 115, 101, 80, 111, 115, 101, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 4, 0, 0, 0, 113, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 120, 114, 46, 108, 101, 103, 97, 99, 121, 105, 110, 112, 117, 116, 104, 101, 108, 112, 101, 114, 115, 64, 98, 55, 53, 55, 57, 101, 56, 54, 102, 51, 98, 52, 92, 82, 117, 110, 116, 105, 109, 101, 92, 84, 114, 97, 99, 107, 101, 100, 80, 111, 115, 101, 68, 114, 105, 118, 101, 114, 92, 84, 114, 97, 99, 107, 101, 100, 80, 111, 115, 101, 68, 114, 105, 118, 101, 114, 46, 99, 115 }; result.TypesData = new byte[297] { 0, 0, 0, 0, 56, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 69, 120, 112, 101, 114, 105, 109, 101, 110, 116, 97, 108, 46, 88, 82, 46, 73, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 124, 66, 97, 115, 101, 80, 111, 115, 101, 80, 114, 111, 118, 105, 100, 101, 114, 0, 0, 0, 0, 60, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 83, 112, 97, 116, 105, 97, 108, 84, 114, 97, 99, 107, 105, 110, 103, 124, 84, 114, 97, 99, 107, 101, 100, 80, 111, 115, 101, 68, 114, 105, 118, 101, 114, 68, 97, 116, 97, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 0, 0, 0, 0, 69, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 83, 112, 97, 116, 105, 97, 108, 84, 114, 97, 99, 107, 105, 110, 103, 46, 84, 114, 97, 99, 107, 101, 100, 80, 111, 115, 101, 68, 114, 105, 118, 101, 114, 68, 97, 116, 97, 68, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 124, 80, 111, 115, 101, 68, 97, 116, 97, 0, 0, 0, 0, 42, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 83, 112, 97, 116, 105, 97, 108, 84, 114, 97, 99, 107, 105, 110, 103, 124, 80, 111, 115, 101, 68, 97, 116, 97, 83, 111, 117, 114, 99, 101, 0, 0, 0, 0, 45, 85, 110, 105, 116, 121, 69, 110, 103, 105, 110, 101, 46, 83, 112, 97, 116, 105, 97, 108, 84, 114, 97, 99, 107, 105, 110, 103, 124, 84, 114, 97, 99, 107, 101, 100, 80, 111, 115, 101, 68, 114, 105, 118, 101, 114 }; result.TotalFiles = 2; result.TotalTypes = 5; result.IsEditorOnly = false; return result; } } namespace UnityEngine.SpatialTracking { internal class TrackedPoseDriverDataDescription { internal struct PoseData { public List<string> PoseNames; public List<TrackedPoseDriver.TrackedPose> Poses; } internal static List<PoseData> DeviceData = new List<PoseData> { new PoseData { PoseNames = new List<string> { "Left Eye", "Right Eye", "Center Eye - HMD Reference", "Head", "Color Camera" }, Poses = new List<TrackedPoseDriver.TrackedPose> { TrackedPoseDriver.TrackedPose.LeftEye, TrackedPoseDriver.TrackedPose.RightEye, TrackedPoseDriver.TrackedPose.Center, TrackedPoseDriver.TrackedPose.Head, TrackedPoseDriver.TrackedPose.ColorCamera } }, new PoseData { PoseNames = new List<string> { "Left Controller", "Right Controller" }, Poses = new List<TrackedPoseDriver.TrackedPose> { TrackedPoseDriver.TrackedPose.LeftPose, TrackedPoseDriver.TrackedPose.RightPose } }, new PoseData { PoseNames = new List<string> { "Device Pose" }, Poses = new List<TrackedPoseDriver.TrackedPose> { TrackedPoseDriver.TrackedPose.RemotePose } } }; } [Flags] public enum PoseDataFlags { NoData = 0, Position = 1, Rotation = 2 } public static class PoseDataSource { internal static List<XRNodeState> nodeStates = new List<XRNodeState>(); internal static PoseDataFlags GetNodePoseData(XRNode node, out Pose resultPose) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) PoseDataFlags poseDataFlags = PoseDataFlags.NoData; InputTracking.GetNodeStates(nodeStates); foreach (XRNodeState nodeState in nodeStates) { XRNodeState current = nodeState; if (((XRNodeState)(ref current)).nodeType == node) { if (((XRNodeState)(ref current)).TryGetPosition(ref resultPose.position)) { poseDataFlags |= PoseDataFlags.Position; } if (((XRNodeState)(ref current)).TryGetRotation(ref resultPose.rotation)) { poseDataFlags |= PoseDataFlags.Rotation; } return poseDataFlags; } } resultPose = Pose.identity; return poseDataFlags; } public static bool TryGetDataFromSource(TrackedPoseDriver.TrackedPose poseSource, out Pose resultPose) { return GetDataFromSource(poseSource, out resultPose) == (PoseDataFlags.Position | PoseDataFlags.Rotation); } public static PoseDataFlags GetDataFromSource(TrackedPoseDriver.TrackedPose poseSource, out Pose resultPose) { //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) switch (poseSource) { case TrackedPoseDriver.TrackedPose.RemotePose: { PoseDataFlags nodePoseData = GetNodePoseData((XRNode)5, out resultPose); if (nodePoseData == PoseDataFlags.NoData) { return GetNodePoseData((XRNode)4, out resultPose); } return nodePoseData; } case TrackedPoseDriver.TrackedPose.LeftEye: return GetNodePoseData((XRNode)0, out resultPose); case TrackedPoseDriver.TrackedPose.RightEye: return GetNodePoseData((XRNode)1, out resultPose); case TrackedPoseDriver.TrackedPose.Head: return GetNodePoseData((XRNode)3, out resultPose); case TrackedPoseDriver.TrackedPose.Center: return GetNodePoseData((XRNode)2, out resultPose); case TrackedPoseDriver.TrackedPose.LeftPose: return GetNodePoseData((XRNode)4, out resultPose); case TrackedPoseDriver.TrackedPose.RightPose: return GetNodePoseData((XRNode)5, out resultPose); case TrackedPoseDriver.TrackedPose.ColorCamera: return GetNodePoseData((XRNode)2, out resultPose); default: Debug.LogWarningFormat("Unable to retrieve pose data for poseSource: {0}", new object[1] { poseSource.ToString() }); resultPose = Pose.identity; return PoseDataFlags.NoData; } } } [Serializable] [DefaultExecutionOrder(-30000)] [AddComponentMenu("XR/Tracked Pose Driver")] [HelpURL("https://docs.unity3d.com/Packages/[email protected]/manual/index.html")] public class TrackedPoseDriver : MonoBehaviour { public enum DeviceType { GenericXRDevice, GenericXRController, GenericXRRemote } public enum TrackedPose { LeftEye, RightEye, Center, Head, LeftPose, RightPose, ColorCamera, DepthCameraDeprecated, FisheyeCameraDeprected, DeviceDeprecated, RemotePose } public enum TrackingType { RotationAndPosition, RotationOnly, PositionOnly } public enum UpdateType { UpdateAndBeforeRender, Update, BeforeRender } [SerializeField] private DeviceType m_Device; [SerializeField] private TrackedPose m_PoseSource = TrackedPose.Center; [SerializeField] private BasePoseProvider m_PoseProviderComponent; [SerializeField] private TrackingType m_TrackingType; [SerializeField] private UpdateType m_UpdateType; [SerializeField] private bool m_UseRelativeTransform; protected Pose m_OriginPose; public DeviceType deviceType { get { return m_Device; } internal set { m_Device = value; } } public TrackedPose poseSource { get { return m_PoseSource; } internal set { m_PoseSource = value; } } public BasePoseProvider poseProviderComponent { get { return m_PoseProviderComponent; } set { m_PoseProviderComponent = value; } } public TrackingType trackingType { get { return m_TrackingType; } set { m_TrackingType = value; } } public UpdateType updateType { get { return m_UpdateType; } set { m_UpdateType = value; } } public bool UseRelativeTransform { get { return m_UseRelativeTransform; } set { m_UseRelativeTransform = value; } } public Pose originPose { get { //IL_0001: Unknown result type (might be due to invalid IL or missing references) return m_OriginPose; } set { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) m_OriginPose = value; } } public bool SetPoseSource(DeviceType deviceType, TrackedPose pose) { if ((int)deviceType < TrackedPoseDriverDataDescription.DeviceData.Count) { TrackedPoseDriverDataDescription.PoseData poseData = TrackedPoseDriverDataDescription.DeviceData[(int)deviceType]; for (int i = 0; i < poseData.Poses.Count; i++) { if (poseData.Poses[i] == pose) { this.deviceType = deviceType; poseSource = pose; return true; } } } return false; } private PoseDataFlags GetPoseData(DeviceType device, TrackedPose poseSource, out Pose resultPose) { if (!((Object)(object)m_PoseProviderComponent != (Object)null)) { return PoseDataSource.GetDataFromSource(poseSource, out resultPose); } return m_PoseProviderComponent.GetPoseFromProvider(out resultPose); } private void CacheLocalPosition() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) m_OriginPose.position = ((Component)this).transform.localPosition; m_OriginPose.rotation = ((Component)this).transform.localRotation; } private void ResetToCachedLocalPosition() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) SetLocalTransform(m_OriginPose.position, m_OriginPose.rotation, PoseDataFlags.Position | PoseDataFlags.Rotation); } protected virtual void Awake() { CacheLocalPosition(); } protected virtual void OnDestroy() { } protected virtual void OnEnable() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown Application.onBeforeRender += new UnityAction(OnBeforeRender); } protected virtual void OnDisable() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown ResetToCachedLocalPosition(); Application.onBeforeRender -= new UnityAction(OnBeforeRender); } protected virtual void FixedUpdate() { if (m_UpdateType == UpdateType.Update || m_UpdateType == UpdateType.UpdateAndBeforeRender) { PerformUpdate(); } } protected virtual void Update() { if (m_UpdateType == UpdateType.Update || m_UpdateType == UpdateType.UpdateAndBeforeRender) { PerformUpdate(); } } [BeforeRenderOrder(-30000)] protected virtual void OnBeforeRender() { if (m_UpdateType == UpdateType.BeforeRender || m_UpdateType == UpdateType.UpdateAndBeforeRender) { PerformUpdate(); } } protected virtual void SetLocalTransform(Vector3 newPosition, Quaternion newRotation, PoseDataFlags poseFlags) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) if ((m_TrackingType == TrackingType.RotationAndPosition || m_TrackingType == TrackingType.RotationOnly) && (poseFlags & PoseDataFlags.Rotation) > PoseDataFlags.NoData) { ((Component)this).transform.localRotation = newRotation; } if ((m_TrackingType == TrackingType.RotationAndPosition || m_TrackingType == TrackingType.PositionOnly) && (poseFlags & PoseDataFlags.Position) > PoseDataFlags.NoData) { ((Component)this).transform.localPosition = newPosition; } } protected Pose TransformPoseByOriginIfNeeded(Pose pose) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) if (m_UseRelativeTransform) { return ((Pose)(ref pose)).GetTransformedBy(m_OriginPose); } return pose; } private bool HasStereoCamera() { Camera component = ((Component)this).GetComponent<Camera>(); if ((Object)(object)component != (Object)null) { return component.stereoEnabled; } return false; } protected virtual void PerformUpdate() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) if (((Behaviour)this).enabled) { Pose resultPose; PoseDataFlags poseData = GetPoseData(m_Device, m_PoseSource, out resultPose); if (poseData != 0) { Pose val = TransformPoseByOriginIfNeeded(resultPose); SetLocalTransform(val.position, val.rotation, poseData); } } } } } namespace UnityEngine.Experimental.XR.Interaction { [Serializable] public abstract class BasePoseProvider : MonoBehaviour { public virtual PoseDataFlags GetPoseFromProvider(out Pose output) { if (TryGetPoseFromProvider(out output)) { return PoseDataFlags.Position | PoseDataFlags.Rotation; } return PoseDataFlags.NoData; } [Obsolete("This function is provided for backwards compatibility with the BasePoseProvider found in com.unity.xr.legacyinputhelpers v1.3.X. Please do not implement this function, instead use the new API via GetPoseFromProvider", false)] public virtual bool TryGetPoseFromProvider(out Pose output) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) output = Pose.identity; return false; } } }