Decompiled source of OdinArchitect v1.9.5

plugins/OdinArchitect/OdinArchitect.dll

Decompiled 5 hours ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using System.Text;
using System.Text.RegularExpressions;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using HarmonyLib;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using Microsoft.CodeAnalysis;
using SoundMixManager;
using UnityEngine;
using UnityEngine.Audio;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("OdinArchitect")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("OdinArchitect")]
[assembly: AssemblyCopyright("Copyright Raelaziel ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3221d21-4417-4008-b236-9f326008cde4")]
[assembly: AssemblyFileVersion("1.3.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.3.0.0")]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[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]
	[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]
	[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 SoundMixManager
{
	[HarmonyPatch]
	public static class SoundMixMan
	{
		private static readonly List<AssetBundle> Bundles = new List<AssetBundle>();

		private static AudioMixerGroup _sfxGroup;

		private const int MaxFieldDepth = 4;

		private static readonly Dictionary<Type, FieldInfo[]> FieldCache = new Dictionary<Type, FieldInfo[]>();

		public static void PatchAssetBundle(AssetBundle assetBundle)
		{
			if ((Object)(object)assetBundle != (Object)null && !Bundles.Contains(assetBundle))
			{
				Bundles.Add(assetBundle);
			}
		}

		public static void PatchAssetBundle(string assetBundleFileName, string folderName = "assets")
		{
			if (string.IsNullOrEmpty(assetBundleFileName))
			{
				return;
			}
			AssetBundle val = ((IEnumerable<AssetBundle>)Resources.FindObjectsOfTypeAll<AssetBundle>()).FirstOrDefault((Func<AssetBundle, bool>)((AssetBundle a) => ((Object)a).name == assetBundleFileName));
			if ((Object)(object)val == (Object)null)
			{
				Assembly executingAssembly = Assembly.GetExecutingAssembly();
				string name = executingAssembly.GetName().Name + "." + folderName + "." + assetBundleFileName;
				try
				{
					using Stream stream = executingAssembly.GetManifestResourceStream(name);
					if (stream != null)
					{
						val = AssetBundle.LoadFromStream(stream);
					}
				}
				catch
				{
				}
			}
			PatchAssetBundle(val);
		}

		private static AudioMixerGroup ResolveSfxGroup(AudioMixer masterMixer)
		{
			if ((Object)(object)_sfxGroup != (Object)null)
			{
				return _sfxGroup;
			}
			if ((Object)(object)masterMixer == (Object)null)
			{
				return null;
			}
			_sfxGroup = ((IEnumerable<AudioMixerGroup>)masterMixer.FindMatchingGroups(string.Empty)).FirstOrDefault((Func<AudioMixerGroup, bool>)((AudioMixerGroup g) => string.Equals(((Object)g).name, "SFX", StringComparison.OrdinalIgnoreCase))) ?? masterMixer.FindMatchingGroups("SFX").FirstOrDefault() ?? masterMixer.FindMatchingGroups("Sfx").FirstOrDefault();
			return _sfxGroup;
		}

		[HarmonyPostfix]
		[HarmonyPatch(typeof(AudioMan), "Awake")]
		private static void AudioMan_Awake_Postfix(AudioMan __instance)
		{
			if (Bundles.Count == 0 || (Object)(object)__instance == (Object)null)
			{
				return;
			}
			AudioMixerGroup val = ResolveSfxGroup(__instance.m_masterMixer);
			if ((Object)(object)val == (Object)null)
			{
				Debug.LogWarning((object)("[" + Assembly.GetExecutingAssembly().GetName().Name + "] SoundMixMan: Valheim's SFX mixer group was not found; mod sounds will ignore the volume slider."));
				return;
			}
			HashSet<GameObject> hashSet = new HashSet<GameObject>();
			Queue<GameObject> queue = new Queue<GameObject>();
			int num = 0;
			int num2 = 0;
			foreach (AssetBundle bundle in Bundles)
			{
				if ((Object)(object)bundle == (Object)null)
				{
					continue;
				}
				GameObject[] array = bundle.LoadAllAssets<GameObject>();
				foreach (GameObject val2 in array)
				{
					if (!((Object)(object)val2 == (Object)null) && hashSet.Add(val2))
					{
						AudioSource[] componentsInChildren = val2.GetComponentsInChildren<AudioSource>(true);
						for (int j = 0; j < componentsInChildren.Length; j++)
						{
							componentsInChildren[j].outputAudioMixerGroup = val;
							num++;
						}
						CollectReferences(val2, queue);
					}
				}
			}
			while (queue.Count > 0)
			{
				GameObject val3 = queue.Dequeue();
				if ((Object)(object)val3 == (Object)null || !hashSet.Add(val3))
				{
					continue;
				}
				AudioSource[] componentsInChildren = val3.GetComponentsInChildren<AudioSource>(true);
				foreach (AudioSource val4 in componentsInChildren)
				{
					if (!((Object)(object)val4.outputAudioMixerGroup != (Object)null))
					{
						val4.outputAudioMixerGroup = val;
						num2++;
					}
				}
				CollectReferences(val3, queue);
			}
			Debug.Log((object)$"[{Assembly.GetExecutingAssembly().GetName().Name}] SoundMixMan: routed {num} bundled and {num2} referenced AudioSource(s) to mixer group '{((Object)val).name}'.");
		}

		private static void CollectReferences(GameObject prefab, Queue<GameObject> queue)
		{
			Component[] componentsInChildren = prefab.GetComponentsInChildren<Component>(true);
			foreach (Component val in componentsInChildren)
			{
				if (!((Object)(object)val == (Object)null) && !(val is Transform))
				{
					CollectFromObject(val, ((object)val).GetType(), queue, 0);
				}
			}
		}

		private static void CollectFromObject(object owner, Type type, Queue<GameObject> queue, int depth)
		{
			FieldInfo[] fields = GetFields(type);
			foreach (FieldInfo fieldInfo in fields)
			{
				object value;
				try
				{
					value = fieldInfo.GetValue(owner);
				}
				catch
				{
					continue;
				}
				CollectFromValue(value, queue, depth);
			}
		}

		private static void CollectFromValue(object value, Queue<GameObject> queue, int depth)
		{
			if (value == null)
			{
				return;
			}
			GameObject val = (GameObject)((value is GameObject) ? value : null);
			if (val == null)
			{
				Component val2 = (Component)((value is Component) ? value : null);
				if (val2 == null)
				{
					if (value is Object || value is string)
					{
						return;
					}
					if (value is IEnumerable enumerable)
					{
						if (depth >= 4)
						{
							return;
						}
						{
							foreach (object item in enumerable)
							{
								CollectFromValue(item, queue, depth + 1);
							}
							return;
						}
					}
					Type type = value.GetType();
					if (depth < 4 && !type.IsPrimitive && !type.IsEnum && type.IsSerializable)
					{
						CollectFromObject(value, type, queue, depth + 1);
					}
				}
				else if ((Object)(object)val2 != (Object)null)
				{
					queue.Enqueue(val2.gameObject);
				}
			}
			else if ((Object)(object)val != (Object)null)
			{
				queue.Enqueue(val);
			}
		}

		private static FieldInfo[] GetFields(Type type)
		{
			if (FieldCache.TryGetValue(type, out var value))
			{
				return value;
			}
			List<FieldInfo> list = new List<FieldInfo>();
			Type type2 = type;
			while (type2 != null && type2 != typeof(MonoBehaviour) && type2 != typeof(Component) && type2 != typeof(object))
			{
				FieldInfo[] fields = type2.GetFields(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
				foreach (FieldInfo fieldInfo in fields)
				{
					if (!fieldInfo.IsNotSerialized)
					{
						Type fieldType = fieldInfo.FieldType;
						if (!fieldType.IsPrimitive && !fieldType.IsEnum && !(fieldType == typeof(string)) && !(fieldType == typeof(decimal)) && (!fieldInfo.IsPrivate || ((MemberInfo)fieldInfo).GetCustomAttribute<SerializeField>() != null || typeof(Object).IsAssignableFrom(fieldType) || IsCollectionOrSerializable(fieldType)))
						{
							list.Add(fieldInfo);
						}
					}
				}
				type2 = type2.BaseType;
			}
			FieldInfo[] array = list.ToArray();
			FieldCache[type] = array;
			return array;
		}

		private static bool IsCollectionOrSerializable(Type type)
		{
			if (!typeof(IEnumerable).IsAssignableFrom(type))
			{
				return type.IsSerializable;
			}
			return true;
		}
	}
}
namespace OdinArchitect
{
	[BepInPlugin("Raelaziel.OdinArchitect", "OdinArchitect", "1.9.5")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
	public class OdinArchitect : BaseUnityPlugin
	{
		public const string PluginGUID = "Raelaziel.OdinArchitect";

		public const string PluginName = "OdinArchitect";

		public const string PluginVersion = "1.9.5";

		private CustomItem OAN_Odin_hammer;

		private CustomPiece OA_food_smelter;

		private CustomPiece OA_rae_bird_house;

		private CustomPiece OA_rae_fish_trap;

		private CustomPiece OA_rae_compost;

		private CustomPiece OA_rae_woodwall_half;

		private CustomPiece OA_rae_Ashwood_wall_half;

		private CustomPiece OA_rae_woodwall_3;

		private CustomPiece OA_rae_Ashwood_wall_3;

		private CustomPiece OA_rae_woodwall_3_half;

		private CustomPiece OA_rae_woodwall_1;

		private CustomPiece OA_rae_Ashwood_wall_1;

		private CustomPiece OA_rae_woodwall_1_half;

		private CustomPiece OA_rae_woodwall_2;

		private CustomPiece OA_rae_Ashwood_wall_2;

		private CustomPiece OA_rae_woodwall_2_half;

		private CustomPiece OA_rae_woodwall_4;

		private CustomPiece OA_rae_Ashwood_wall_4;

		private CustomPiece OA_rae_woodwall_4_half;

		private CustomPiece OA_wooden_window_small;

		private CustomPiece OA_rae_Ashwood_window_small;

		private CustomPiece OA_wooden_window_big;

		private CustomPiece OA_rae_Ashwood_window_big;

		private CustomPiece OA_wooden_fence_1_big;

		private CustomPiece OA_wooden_fence_1_gate_big;

		private CustomPiece OA_wooden_fence_2_big;

		private CustomPiece OA_wooden_fence_2_gate_big;

		private CustomPiece OA_rae_irondeco_fence_2;

		private CustomPiece OA_rae_darkwooddeco_fence;

		private CustomPiece OA_rae_irondeco_fence;

		private CustomPiece OA_thin_wood_beam_1;

		private CustomPiece OA_rae_Ashwood_thin_beam_1;

		private CustomPiece OA_thin_wood_beam_2;

		private CustomPiece OA_rae_Ashwood_thin_beam_2;

		private CustomPiece OA_thin_wood_pole_1;

		private CustomPiece OA_rae_Ashwood_thin_pole_1;

		private CustomPiece OA_thin_wood_pole_2;

		private CustomPiece OA_rae_Ashwood_thin_pole_2;

		private CustomPiece OA_piece_woodbeam_25_thin;

		private CustomPiece OA_rae_Ashwood_beam_25_thin;

		private CustomPiece OA_piece_woodbeam_45_thin;

		private CustomPiece OA_rae_Ashwood_beam_45_thin;

		private CustomPiece OA_thin_iron_beam_1;

		private CustomPiece OA_thin_iron_beam_2;

		private CustomPiece OA_thin_iron_pole_1;

		private CustomPiece OA_thin_iron_pole_2;

		private CustomPiece OA_thin_rae_crystal_beam_1;

		private CustomPiece OA_thin_rae_crystal_beam_2;

		private CustomPiece OA_thin_rae_crystal_pole_1;

		private CustomPiece OA_thin_rae_crystal_pole_2;

		private CustomPiece OA_piece_ironbeam_25_thin;

		private CustomPiece OA_piece_ironbeam_45_thin;

		private CustomPiece OA_piece_crystalbeam_25_thin;

		private CustomPiece OA_piece_crystalbeam_45_thin;

		private CustomPiece OA_rae_darkwood_arch_1;

		private CustomPiece OA_wooden_arch_1;

		private CustomPiece OA_rae_Ashwood_arch_1;

		private CustomPiece OA_refined_stakewall_1;

		private CustomPiece OA_refined_stakewall_2;

		private CustomPiece OA_refined_sharpstakes;

		private CustomPiece OA_stone_beam_short;

		private CustomPiece OA_rae_Grausten_beam_short;

		private CustomPiece OA_stone_beam_long;

		private CustomPiece OA_rae_Grausten_beam_long;

		private CustomPiece OA_stone_pole_short;

		private CustomPiece OA_rae_Grausten_pole_short;

		private CustomPiece OA_stone_pole_long;

		private CustomPiece OA_rae_Grausten_pole_long;

		private CustomPiece OA_iron_beam_short;

		private CustomPiece OA_iron_beam_long;

		private CustomPiece OA_iron_pole_short;

		private CustomPiece OA_iron_pole_long;

		private CustomPiece OA_rae_crystal_beam_short;

		private CustomPiece OA_rae_crystal_beam_long;

		private CustomPiece OA_rae_crystal_pole_short;

		private CustomPiece OA_rae_crystal_pole_long;

		private CustomPiece OA_stone_window_small;

		private CustomPiece OA_rae_Grausten_window_small;

		private CustomPiece OA_stone_window_big;

		private CustomPiece OA_rae_Grausten_window_big;

		private CustomPiece OA_stone_arch_1;

		private CustomPiece OA_stone_arch_2_small;

		private CustomPiece OA_stone_floor_1_new;

		private CustomPiece OA_stonewall_hardrock_1x1;

		private CustomPiece OA_stonewall_hardrock_2x1;

		private CustomPiece OA_stonewall_hardrock_4x2;

		private CustomPiece OA_stonewall_hardrock_arch;

		private CustomPiece OA_stonewall_hardrock_pillar;

		private CustomPiece OA_stonewall_hardrock_stairs;

		private CustomPiece OA_stonewall_hardrock_stairs_corner;

		private CustomPiece OA_big_pillar;

		private CustomPiece OA_rae_bigcrystal_w;

		private CustomPiece OA_rae_crystal_floorslab_w;

		private CustomPiece OA_wooden_gate_1;

		private CustomPiece OA_rae_elevator_small;

		private CustomPiece OA_rae_elevator;

		private CustomPiece OA_wooden_drawbridge_1;

		private CustomPiece OA_iron_gate_small;

		private CustomPiece OA_iron_gate_big;

		private CustomPiece OA_piece_woodgate_crystal;

		private CustomPiece OA_piece_woodgate_darkwood;

		private CustomPiece OA_piece_woodgate_iron;

		private CustomPiece OA_rae_hidden_door_iron;

		private CustomPiece OA_rae_darkwood_gate_crystal;

		private CustomPiece OA_rae_darkwood_gate_iron;

		private CustomPiece OA_surtling_lantern_1;

		private CustomPiece OA_surtling_lantern_2;

		private CustomPiece OA_surtling_lantern_3;

		private CustomPiece OA_surtling_lantern_4;

		private CustomPiece OA_stone_table_1;

		private CustomPiece OA_stone_throne_1;

		private CustomPiece OA_rae_darkwood_iron_wolf;

		private CustomPiece OA_rae_darkwood_iron_raven;

		private CustomPiece OA_iron_dragon;

		private CustomPiece OA_rae_bronze_storage_small;

		private CustomPiece OA_rae_bronze_storage_big;

		private CustomPiece OA_rae_iron_storage_small;

		private CustomPiece OA_rae_iron_storage_big;

		private CustomPiece OA_IG_Beer_Keg_Big;

		private CustomPiece OA_IG_Beer_Keg_Small;

		private CustomPiece OA_IG_Wall_Swords;

		private CustomPiece OA_IG_Wall_Shield;

		private CustomPiece OA_IG_Skull_1;

		private CustomPiece OA_IG_Skull_2;

		private CustomPiece OA_IG_Barrels_Closed_Down;

		private CustomPiece OA_IG_Barrels_Closed_Up;

		private CustomPiece OA_IG_Wood_Crates;

		private CustomPiece OA_IG_Candle_Tray;

		private CustomPiece OA_rae_woodiron_26;

		private CustomPiece OA_rae_woodiron_45;

		private CustomPiece OA_IG_BrazierCeiling_1;

		private CustomPiece OA_IG_BigBrazierCeiling;

		private CustomPiece OA_IG_BigBrazierCeilingVanilla;

		private CustomPiece OA_rae_chair_1;

		private CustomPiece OA_rae_chair_2;

		private CustomPiece OA_rae_chair_3;

		private CustomPiece OA_rae_table_1;

		private CustomPiece OA_rae_WoodPoleBig_2m;

		private CustomPiece OA_rae_WoodPoleBig_4m;

		private CustomPiece OA_rae_Ashwood_PoleBig_4m;

		private CustomPiece OA_rae_WoodBeamBig_2m;

		private CustomPiece OA_rae_WoodBeamBig_4m;

		private CustomPiece OA_rae_Ashwood_BeamBig_4m;

		private CustomPiece OA_rae_WoodBeamBig46;

		private CustomPiece OA_rae_WoodBeamBig27;

		private CustomPiece OA_rae_BigLogVertical_4m;

		private CustomPiece OA_rae_BigLogVertical_8m;

		private CustomPiece OA_rae_BigLogHorizontal_4m;

		private CustomPiece OA_rae_BigLogHorizontal_8m;

		private CustomPiece OA_rae_BigLog27;

		private CustomPiece OA_rae_BigLog46;

		private CustomPiece OA_rae_StonePillar_4m;

		private CustomPiece OA_rae_Grausten_Pillar_4m;

		private CustomPiece OA_rae_StonePillar_8m;

		private CustomPiece OA_rae_Grausten_Pillar_8m;

		private CustomPiece OA_rae_StoneWallBig;

		private CustomPiece OA_rae_StoneWallBig8x4;

		private CustomPiece OA_rae_Grausten_WallBig8x4;

		private CustomPiece OA_rae_StoneArchBig_short;

		private CustomPiece OA_rae_StoneArchBig;

		private CustomPiece OA_rae_Grausten_ArchBig;

		private CustomPiece OA_rae_big_wood_roof_46;

		private CustomPiece OA_rae_Ashwood_big_roof_46;

		private CustomPiece OA_rae_big_wood_roof;

		private CustomPiece OA_rae_Ashwood_big_roof;

		private CustomPiece OA_rae_big_wood_roof_icorner;

		private CustomPiece OA_rae_Ashwood_big_roof_icorner;

		private CustomPiece OA_rae_big_wood_roof_icorner_46;

		private CustomPiece OA_rae_Ashwood_big_roof_icorner_46;

		private CustomPiece OA_rae_big_wood_roof_ocorner;

		private CustomPiece OA_rae_Ashwood_big_roof_ocorner;

		private CustomPiece OA_rae_big_wood_roof_ocorner_46;

		private CustomPiece OA_rae_Ashwood_big_roof_ocorner_46;

		private CustomPiece OA_rae_big_wood_roof_top;

		private CustomPiece OA_rae_Ashwood_big_roof_top;

		private CustomPiece OA_rae_big_wood_roof_top_46;

		private CustomPiece OA_rae_Ashwood_big_roof_top_46;

		private AssetBundle OdinArchitectBundle;

		public CustomLocalization OA_Localization;

		private ConfigEntry<int> BronzeSmallStorageHeight;

		private ConfigEntry<int> BronzeSmallStorageWidth;

		private ConfigEntry<int> BronzeBigStorageHeight;

		private ConfigEntry<int> BronzeBigStorageWidth;

		private ConfigEntry<int> IronSmallStorageHeight;

		private ConfigEntry<int> IronSmallStorageWidth;

		private ConfigEntry<int> IronBigStorageHeight;

		private ConfigEntry<int> IronBigStorageWidth;

		private ConfigEntry<int> CratesBarrelsHeight;

		private ConfigEntry<int> CratesBarrelsWidth;

		private ConfigEntry<string> HammerTool;

		private CustomPiece OA_wooden_drawbridge_2;

		private CustomPiece OA_rae_wood_ramp_26;

		private CustomPiece OA_rae_wood_ramp_45;

		private CustomPiece OA_rae_brickstone_wall_1x1;

		private CustomPiece OA_rae_brickstone_wall_2x1;

		private CustomPiece OA_rae_brickstone_wall_4x2;

		private CustomPiece OA_rae_brickstone_wall_single;

		private CustomPiece OA_rae_brickstone_wall_singleslab;

		private CustomPiece OA_ig_tall_stairs;

		private CustomPiece OA_IG_Chevron_Floor;

		private CustomPiece OA_IG_Hardwood_Floor;

		private CustomPiece OA_rae_iron_sharpstakes;

		private CustomItemConversion OA_ACS1Conversion;

		private CustomItemConversion OA_ACS2Conversion;

		private CustomItemConversion OA_ACS3Conversion;

		private CustomItemConversion OA_ACS4Conversion;

		private CustomItemConversion OA_ACS5Conversion;

		private CustomItemConversion OA_ACS6Conversion;

		private CustomItemConversion OA_ACS7Conversion;

		private CustomItemConversion OA_ACS8Conversion;

		private CustomItemConversion OA_BHConversion;

		private CustomItemConversion OA_FTConversion;

		private CustomItemConversion OA_1COMPOSTConversion;

		private CustomItemConversion OA_2COMPOSTConversion;

		private CustomItemConversion OA_3COMPOSTConversion;

		private CustomItemConversion OA_4COMPOSTConversion;

		private CustomPiece OA_rae_Big_Stone_Floor_4x4;

		private CustomPiece OA_rae_Grausten_Floor_4x4;

		private CustomPiece OA_IG_Big_Hardwood_Floor;

		private CustomPiece OA_IG_Big_Chevron_Floor;

		private CustomPiece OA_rae_stone_wall_roof;

		private CustomPiece OA_rae_Grausten_wall_roof;

		private CustomPiece OA_rae_stone_wall_roof_alt;

		private CustomPiece OA_rae_Grausten_wall_roof_alt;

		private CustomPiece OA_rae_stone_wall_roof46_alt;

		private CustomPiece OA_rae_Grausten_wall_roof46_alt;

		private CustomPiece OA_rae_stone_wall_roof45;

		private CustomPiece OA_rae_Grausten_wall_roof45;

		private CustomPiece OA_rae_stone_wall_roof_xs;

		private CustomPiece OA_rae_Grausten_wall_roof_xs;

		private CustomPiece OA_rae_stone_wall_roof_x;

		private CustomPiece OA_rae_Grausten_wall_roof_x;

		private CustomPiece OA_rae_Bigger_Stone_Floor_4x4;

		private CustomPiece stonemarble_2x1x2;

		private CustomPiece stonemarble_1x1x1;

		private CustomPiece stonemarble_2x1x1;

		private CustomPiece stonemarble_2x2x2;

		private CustomPiece stonemarble_2x2x2_enforced;

		private CustomPiece stonemarble_arch;

		private CustomPiece stonemarble_base_1;

		private CustomPiece stonemarble_base_2;

		private CustomPiece stonemarble_basecorner;

		private CustomPiece stonemarble_column_1;

		private CustomPiece stonemarble_column_2;

		private CustomPiece stonemarble_column_3;

		private CustomPiece stonemarble_creep_4x1x1;

		private CustomPiece stonemarble_creep_4x1x2;

		private CustomPiece stonemarble_creep_slope_inverted_1x1x2;

		private CustomPiece stonemarble_creep_slope_inverted_2x2x1;

		private CustomPiece stonemarble_floor_triangle;

		private CustomPiece rae_Grausten_floor_triangle;

		private CustomPiece stonemarble_head_big01;

		private CustomPiece stonemarble_head_big02;

		private CustomPiece stonemarble_out_1;

		private CustomPiece stonemarble_out_2;

		private CustomPiece stonemarble_outcorner;

		private CustomPiece stonemarble_slope_1x2;

		private CustomPiece stonemarble_slope_inverted_1x2;

		private CustomPiece stonemarble_stair_corner;

		private CustomPiece stonemarble_stair_corner_left;

		private CustomPiece stonemarble_tile_wall_1x1;

		private CustomPiece stonemarble_tile_wall_2x2;

		private CustomPiece stonemarble_tile_wall_2x4;

		private CustomPiece stonemarble_tip;

		private CustomPiece piece_dvergr_wood_custom;

		private CustomPiece stonemarble_post;

		private CustomItem StoneChisel;

		private CustomPiece piece_dvergr_stake_wall_big;

		private CustomPiece copper_roof;

		private CustomPiece copper_roof_45;

		private CustomPiece rae_Ashwood_planter_2m;

		private CustomPiece rae_Grausten_planter_2m;

		private CustomPiece rae_Ashwood_wall_shelf_1m;

		private CustomPiece rae_Ashwood_balustrade_2m;

		private CustomPiece rae_Grausten_balustrade_2m;

		private CustomPiece rae_Grausten_battlement_2m;

		private CustomPiece rae_Ashwood_palisade_2m;

		private CustomPiece rae_Ashwood_balustrade_half_1m;

		private CustomPiece rae_Ashwood_balustrade_stair_2m;

		private CustomPiece rae_Grausten_balustrade_half_1m;

		private CustomPiece rae_Grausten_balustrade_stair_2m;

		private CustomPiece rae_Wood_balustrade_half_1m;

		private CustomPiece rae_Wood_balustrade_stair_2m;

		private CustomPiece rae_Stone_balustrade_half_1m;

		private CustomPiece rae_Stone_balustrade_stair_2m;

		private CustomPiece rae_BlackMarble_balustrade_half_1m;

		private CustomPiece rae_BlackMarble_balustrade_stair_2m;

		private CustomPiece rae_Iron_balustrade_half_1m;

		private CustomPiece rae_Iron_balustrade_stair_2m;

		private CustomPiece rae_Grausten_battlement_half_1m;

		private CustomPiece rae_Grausten_battlement_stair_2m;

		private CustomPiece rae_Stone_battlement_half_1m;

		private CustomPiece rae_Stone_battlement_stair_2m;

		private CustomPiece rae_BlackMarble_battlement_half_1m;

		private CustomPiece rae_BlackMarble_battlement_stair_2m;

		private CustomPiece rae_Wood_balustrade_2m;

		private CustomPiece rae_Stone_balustrade_2m;

		private CustomPiece rae_BlackMarble_balustrade_2m;

		private CustomPiece rae_Iron_balustrade_2m;

		private CustomPiece rae_Wood_planter_2m;

		private CustomPiece rae_Stone_planter_2m;

		private CustomPiece rae_BlackMarble_planter_2m;

		private CustomPiece rae_Stone_battlement_2m;

		private CustomPiece rae_BlackMarble_battlement_2m;

		private CustomPiece copper_roof_icorner;

		private CustomPiece copper_roof_icorner_45;

		private CustomPiece copper_roof_ocorner;

		private CustomPiece copper_roof_ocorner_45;

		private CustomPiece copper_roof_top;

		private CustomPiece copper_roof_top_45;

		private CustomPiece dvergrprops_wood_floor_custom_big;

		private CustomPiece stonemarble_column_4;

		private CustomPiece stonemarble_slope_2x1x2;

		private CustomPiece stonemarble_slope_2x2;

		private CustomPiece dvergrprops_wood_floor_custom;

		private CustomPiece dvergrprops_wood_stair_custom;

		private static readonly string[] OA_EffectPrefabs = new string[39]
		{
			"sfx_FireAddFuel_OA", "sfx_build_hammer_metal_OA", "sfx_build_hammer_stone_OA", "sfx_build_hammer_wood_OA", "sfx_chest_close_OA", "sfx_chest_open_OA", "sfx_darkwood_door_close_OA", "sfx_darkwood_door_open_OA", "sfx_door_close_OA", "sfx_door_open_OA",
			"sfx_elevator_OA", "sfx_metal_blocked_OA", "sfx_metalgate_close_OA", "sfx_metalgate_open_OA", "sfx_mill_add_OA", "sfx_rock_destroyed_OA", "sfx_rock_hit_OA", "sfx_smelter_add_OA", "sfx_smelter_produce_OA", "sfx_tree_hit_OA",
			"sfx_wood_destroyed_OA", "sfx_wood_hit_OA", "vfx_MarbleDestroyed_OA", "vfx_MarbleHit_OA", "vfx_Place_stone_floor_OA", "vfx_Place_stone_wall_2x1_OA", "vfx_Place_stone_wall_4x2_OA", "vfx_Place_wood_beam_OA", "vfx_Place_wood_floor_OA", "vfx_Place_wood_roof_OA",
			"vfx_Place_wood_stair_OA", "vfx_Place_wood_wall_OA", "vfx_RockDestroyed_OA", "vfx_SawDust_OA", "vfx_dvergr_wood_wall04_destroyed_OA", "vfx_stone_floor_destroyed_OA", "vfx_stone_stair_destroyed_OA", "vfx_stone_wall_4x2_destroyed_OA", "vfx_stonemarble_dvergpost"
		};

		private void Awake()
		{
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_009d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a7: Expected O, but got Unknown
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Initializing OdinArchitect...");
			OA_ConfigEntries();
			PieceConfigMan.Init(((BaseUnityPlugin)this).Config);
			ElevatorSetup.BindConfig(((BaseUnityPlugin)this).Config);
			OA_LoadAssets();
			OA_AddEffects();
			OA_AddItems();
			OA_AddCustomPieceTable();
			OA_AddCustomNewMisc();
			OA_AddCustomConversions();
			OA_AddCustomNewPieces();
			OA_AddCustomNewDoors();
			OA_AddCustomNewDecors();
			OA_AddCustomNewBig();
			OA_AddCustomNewDvergr();
			OA_AddCustomNewExtras();
			OA_Localization = LocalizationManager.Instance.GetLocalization();
			new Harmony("Raelaziel.OdinArchitect").PatchAll(Assembly.GetExecutingAssembly());
			PlantEasilyCompat.TryPatch(new Harmony("Raelaziel.OdinArchitect.planteasily"));
			ContainerSizeMan.Init(new Dictionary<string, (ConfigEntry<int>, ConfigEntry<int>)>
			{
				["rae_bronze_storage_small"] = (BronzeSmallStorageWidth, BronzeSmallStorageHeight),
				["rae_bronze_storage_big"] = (BronzeBigStorageWidth, BronzeBigStorageHeight),
				["rae_iron_storage_small"] = (IronSmallStorageWidth, IronSmallStorageHeight),
				["rae_iron_storage_big"] = (IronBigStorageWidth, IronBigStorageHeight),
				["IG_Barrels_Closed_Up"] = (CratesBarrelsWidth, CratesBarrelsHeight),
				["IG_Barrels_Closed_Down"] = (CratesBarrelsWidth, CratesBarrelsHeight),
				["IG_Wood_Crates"] = (CratesBarrelsWidth, CratesBarrelsHeight)
			});
		}

		public void OA_ConfigEntries()
		{
			//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_0038: Expected O, but got Unknown
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Expected O, but got Unknown
			//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_0073: Expected O, but got Unknown
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007d: Expected O, but got Unknown
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ae: Expected O, but got Unknown
			//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b8: Expected O, but got Unknown
			//IL_00dc: 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_00e9: Expected O, but got Unknown
			//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f3: Expected O, but got Unknown
			//IL_0117: 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_0124: Expected O, but got Unknown
			//IL_0124: Unknown result type (might be due to invalid IL or missing references)
			//IL_012e: Expected O, but got Unknown
			//IL_0152: Unknown result type (might be due to invalid IL or missing references)
			//IL_0157: Unknown result type (might be due to invalid IL or missing references)
			//IL_015f: Expected O, but got Unknown
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0169: Expected O, but got Unknown
			//IL_018d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0192: Unknown result type (might be due to invalid IL or missing references)
			//IL_019a: Expected O, but got Unknown
			//IL_019a: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a4: Expected O, but got Unknown
			//IL_01c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d5: Expected O, but got Unknown
			//IL_01d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01df: Expected O, but got Unknown
			//IL_0208: Unknown result type (might be due to invalid IL or missing references)
			//IL_020d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0215: Expected O, but got Unknown
			//IL_0215: Unknown result type (might be due to invalid IL or missing references)
			//IL_021f: Expected O, but got Unknown
			//IL_0244: Unknown result type (might be due to invalid IL or missing references)
			//IL_0249: Unknown result type (might be due to invalid IL or missing references)
			//IL_0251: Expected O, but got Unknown
			//IL_0251: Unknown result type (might be due to invalid IL or missing references)
			//IL_025b: Expected O, but got Unknown
			//IL_0280: Unknown result type (might be due to invalid IL or missing references)
			//IL_0285: Unknown result type (might be due to invalid IL or missing references)
			//IL_028d: Expected O, but got Unknown
			//IL_028d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0297: Expected O, but got Unknown
			//IL_02bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c9: Expected O, but got Unknown
			//IL_02c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d3: Expected O, but got Unknown
			//IL_02f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0305: Expected O, but got Unknown
			//IL_0305: Unknown result type (might be due to invalid IL or missing references)
			//IL_030f: Expected O, but got Unknown
			//IL_0334: Unknown result type (might be due to invalid IL or missing references)
			//IL_0339: Unknown result type (might be due to invalid IL or missing references)
			//IL_0341: Expected O, but got Unknown
			//IL_0341: Unknown result type (might be due to invalid IL or missing references)
			//IL_034b: Expected O, but got Unknown
			//IL_0370: Unknown result type (might be due to invalid IL or missing references)
			//IL_0375: Unknown result type (might be due to invalid IL or missing references)
			//IL_037d: Expected O, but got Unknown
			//IL_037d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0387: Expected O, but got Unknown
			//IL_03ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b9: Expected O, but got Unknown
			//IL_03b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c3: Expected O, but got Unknown
			//IL_03e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f5: Expected O, but got Unknown
			//IL_03f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ff: Expected O, but got Unknown
			//IL_0424: Unknown result type (might be due to invalid IL or missing references)
			//IL_0429: Unknown result type (might be due to invalid IL or missing references)
			//IL_0431: Expected O, but got Unknown
			//IL_0431: Unknown result type (might be due to invalid IL or missing references)
			//IL_043b: Expected O, but got Unknown
			//IL_0460: Unknown result type (might be due to invalid IL or missing references)
			//IL_0465: Unknown result type (might be due to invalid IL or missing references)
			//IL_046d: Expected O, but got Unknown
			//IL_046d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0477: Expected O, but got Unknown
			((BaseUnityPlugin)this).Config.SaveOnConfigSet = true;
			PlanterConfig.RemovePlants = ((BaseUnityPlugin)this).Config.Bind<bool>("Planters", "Remove Plants When Destroyed", true, new ConfigDescription("When a planter is destroyed or removed, the seedlings growing in it are removed too. Off: they are left floating where they were.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			PlanterConfig.ReturnSeeds = ((BaseUnityPlugin)this).Config.Bind<bool>("Planters", "Return Seeds When Destroyed", false, new ConfigDescription("When the seedlings in a destroyed planter are removed, drop their seeds. Needs 'Remove Plants When Destroyed'.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			PlanterConfig.IgnoreNearbyPieces = ((BaseUnityPlugin)this).Config.Bind<bool>("Planters", "Ignore Nearby Pieces", true, new ConfigDescription("Plants in a planter are not blocked by walls, floors, roofs or other pieces near them. Other plants still need room. Off: vanilla grow space rules.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			PlanterConfig.IgnoreRoof = ((BaseUnityPlugin)this).Config.Bind<bool>("Planters", "Ignore Roof", true, new ConfigDescription("Plants in a planter still grow with a roof overhead. Off: a roof means no sun.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			PlanterConfig.IgnoreWeather = ((BaseUnityPlugin)this).Config.Bind<bool>("Planters", "Ignore Heat And Cold", true, new ConfigDescription("Plants in a planter do not suffer from Ashlands heat or Mountain and Deep North cold. Off: vanilla rules.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			PlanterConfig.IgnoreBiome = ((BaseUnityPlugin)this).Config.Bind<bool>("Planters", "Ignore Biome", true, new ConfigDescription("Seeds can be planted in a planter in any biome and keep growing there. Off: a seed only grows in its own biomes.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			PlanterConfig.PlantEasilyCompat = ((BaseUnityPlugin)this).Config.Bind<bool>("Planters", "PlantEasily Compatibility", true, new ConfigDescription("Only used when the PlantEasily mod is installed: its planting grid keeps its plants at the soil height of our planters (it otherwise drops them to the ground) and its own checks follow the planter settings above. Needs a restart.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			PlanterConfig.PlantEasilyOnlyOnSoil = ((BaseUnityPlugin)this).Config.Bind<bool>("Planters", "PlantEasily Grid Stays On Soil", true, new ConfigDescription("Only used with PlantEasily: when you aim at a planter, grid points that fall off its soil are marked invalid, so nothing is planted on the ground around it. Needs a restart.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			HammerTool = ((BaseUnityPlugin)this).Config.Bind<string>("Hammer", "Hammer Type", "_HammerPieceTable2", new ConfigDescription("Type the piece table You want to use. Odin Hammer is using '_HammerPieceTable2' but normal Hammer is using '_HammerPieceTable'. Take a not that You will be lack of space in normal hammer so You will need to install mod which will expand menu under hammer.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			BronzeSmallStorageHeight = ((BaseUnityPlugin)this).Config.Bind<int>("Small Bronze Storage", "Rows", 3, new ConfigDescription("Define how much rows container should have", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			BronzeSmallStorageWidth = ((BaseUnityPlugin)this).Config.Bind<int>("Small Bronze Storage", "Columns", 6, new ConfigDescription("Define how much columns container should have", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			BronzeBigStorageHeight = ((BaseUnityPlugin)this).Config.Bind<int>("Big Bronze Storage", "Rows", 4, new ConfigDescription("Define how much rows container should have", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			BronzeBigStorageWidth = ((BaseUnityPlugin)this).Config.Bind<int>("Big Bronze Storage", "Columns", 6, new ConfigDescription("Define how much columns container should have", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			IronSmallStorageHeight = ((BaseUnityPlugin)this).Config.Bind<int>("Small Iron Storage", "Rows", 3, new ConfigDescription("Define how much rows container should have", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			IronSmallStorageWidth = ((BaseUnityPlugin)this).Config.Bind<int>("Small Iron Storage", "Columns", 6, new ConfigDescription("Define how much columns container should have", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			IronBigStorageHeight = ((BaseUnityPlugin)this).Config.Bind<int>("Big Iron Storage", "Rows", 4, new ConfigDescription("Define how much rows container should have", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			IronBigStorageWidth = ((BaseUnityPlugin)this).Config.Bind<int>("Big Iron Storage", "Columns", 6, new ConfigDescription("Define how much columns container should have", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			CratesBarrelsHeight = ((BaseUnityPlugin)this).Config.Bind<int>("Crates and Barrels", "Rows", 3, new ConfigDescription("Define how much rows container should have", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			CratesBarrelsWidth = ((BaseUnityPlugin)this).Config.Bind<int>("Crates and Barrels", "Columns", 6, new ConfigDescription("Define how much columns container should have", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			} }));
			SynchronizationManager.OnConfigurationSynchronized += delegate(object obj, ConfigurationSynchronizationEventArgs attr)
			{
				if (attr.InitialSynchronization)
				{
					Logger.LogMessage((object)"Initial Config sync event received");
				}
				else
				{
					Logger.LogMessage((object)"Config sync event received");
				}
			};
			SynchronizationManager.OnAdminStatusChanged += delegate
			{
				Logger.LogMessage((object)("Admin status sync event received: " + (SynchronizationManager.Instance.PlayerIsAdmin ? "You're admin now" : "Downvoted, boy")));
			};
		}

		private void OA_LoadAssets()
		{
			OdinArchitectBundle = AssetUtils.LoadAssetBundleFromResources("odinarchitect", typeof(OdinArchitect).Assembly);
			Logger.LogInfo((object)"All the embedded resources was loaded");
			SoundMixMan.PatchAssetBundle(OdinArchitectBundle);
		}

		private void OA_AddEffects()
		{
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Expected O, but got Unknown
			string[] oA_EffectPrefabs = OA_EffectPrefabs;
			foreach (string text in oA_EffectPrefabs)
			{
				GameObject val = OdinArchitectBundle.LoadAsset<GameObject>(text);
				if ((Object)(object)val == (Object)null)
				{
					Logger.LogWarning((object)("Effect prefab '" + text + "' is not in the odinarchitect bundle; rebuild the bundle."));
				}
				else
				{
					PrefabManager.Instance.AddPrefab(new CustomPrefab(val, true));
				}
			}
		}

		private void OA_AddLocales()
		{
			if (LocalizationManager.Instance == null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"LocalizationManager.Instance is null. Ensure Jotunn is initialized before adding locales.");
				return;
			}
			if (OA_Localization == null)
			{
				OA_Localization = LocalizationManager.Instance.GetLocalization();
				if (OA_Localization == null)
				{
					((BaseUnityPlugin)this).Logger.LogError((object)"Failed to retrieve localization instance from LocalizationManager.");
					return;
				}
			}
			LocalizationManager.Instance.AddLocalization(OA_Localization);
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Added localization for Raelaziel.OdinArchitect.");
			if ((Object)(object)OdinArchitectBundle == (Object)null)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"OdinArchitectBundle is null. Ensure the asset bundle is loaded correctly.");
				return;
			}
			TextAsset[] array = OdinArchitectBundle.LoadAllAssets<TextAsset>();
			if (array != null && array.Length != 0)
			{
				TextAsset[] array2 = array;
				foreach (TextAsset val in array2)
				{
					string text = ((Object)val).name.Replace(".json", string.Empty);
					OA_Localization.AddJsonFile(text, ((object)val).ToString());
					((BaseUnityPlugin)this).Logger.LogInfo((object)("Added localization file for language: " + text));
				}
			}
		}

		private void OA_AddItems()
		{
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Expected O, but got Unknown
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: 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_006f: Expected O, but got Unknown
			//IL_0071: 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)
			//IL_0081: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Expected O, but got Unknown
			//IL_008f: 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)
			//IL_0096: Expected O, but got Unknown
			//IL_009b: Expected O, but got Unknown
			//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c1: Expected O, but got Unknown
			//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: 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_0112: Expected O, but got Unknown
			//IL_0114: Unknown result type (might be due to invalid IL or missing references)
			//IL_0119: 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_012c: Expected O, but got Unknown
			//IL_0132: Unknown result type (might be due to invalid IL or missing references)
			//IL_0137: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Expected O, but got Unknown
			//IL_013e: Expected O, but got Unknown
			GameObject val = OdinArchitectBundle.LoadAsset<GameObject>("odin_hammer");
			ItemManager instance = ItemManager.Instance;
			ItemConfig val2 = new ItemConfig();
			val2.Name = "$odin_hammer";
			val2.Description = "$odin_hammer_desc";
			val2.Enabled = true;
			val2.Amount = 1;
			val2.CraftingStation = "piece_workbench";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "Wood",
					Amount = 5
				},
				new RequirementConfig
				{
					Item = "Stone",
					Amount = 5
				}
			};
			CustomItem val3 = new CustomItem(val, false, val2);
			CustomItem val4 = val3;
			OAN_Odin_hammer = val3;
			instance.AddItem(val4);
			GameObject val5 = OdinArchitectBundle.LoadAsset<GameObject>("StoneChisel");
			ItemManager instance2 = ItemManager.Instance;
			val2 = new ItemConfig();
			val2.Name = "$StoneChisel";
			val2.Description = "$StoneChisel_desc";
			val2.Enabled = true;
			val2.Amount = 10;
			val2.CraftingStation = "piece_stonecutter";
			val2.Requirements = (RequirementConfig[])(object)new RequirementConfig[2]
			{
				new RequirementConfig
				{
					Item = "FineWood",
					Amount = 2
				},
				new RequirementConfig
				{
					Item = "Iron",
					Amount = 1
				}
			};
			CustomItem val6 = new CustomItem(val5, false, val2);
			val4 = val6;
			StoneChisel = val6;
			instance2.AddItem(val4);
		}

		private void OA_AddCustomPieceTable()
		{
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Expected O, but got Unknown
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Expected O, but got Unknown
			GameObject obj = OdinArchitectBundle.LoadAsset<GameObject>("_HammerPieceTable2");
			PieceTableConfig val = new PieceTableConfig();
			val.CanRemovePieces = true;
			val.UseCategories = false;
			val.UseCustomCategories = true;
			val.CustomCategories = new string[6] { "Misc", "Pieces", "Doors", "Decors", "Big", "Dvergr" };
			CustomPieceTable val2 = new CustomPieceTable(obj, val);
			PieceManager.Instance.AddPieceTable(val2);
		}

		private void OA_AddCustomNewExtras()
		{
			for (int i = 1; i <= 6; i++)
			{
				Add($"rae_oa_banner_{i}", "Decors", "piece_workbench", new(string, int)[2]
				{
					("Wood", 2),
					("LeatherScraps", 2)
				});
			}
			Add("ig_wooden_window_big", "Doors", "piece_workbench", new(string, int)[1] { ("Wood", 6) });
			Add("ig_woodeniron_window_big", "Doors", "piece_workbench", new(string, int)[2]
			{
				("Wood", 6),
				("IronNails", 4)
			});
			Add("rae_woodwall_4_quar", "Pieces", "piece_workbench", new(string, int)[1] { ("ElderBark", 1) });
			Add("rae_woodwall_1_1x1", "Pieces", "piece_workbench", new(string, int)[1] { ("Wood", 1) });
			Add("rae_woodwall_2_1x1", "Pieces", "piece_workbench", new(string, int)[1] { ("Wood", 1) });
			Add("rae_woodwall_3_1x1", "Pieces", "piece_workbench", new(string, int)[1] { ("Wood", 1) });
			Add("IG_Hardwood_Floor_1x1", "Pieces", "piece_workbench", new(string, int)[1] { ("Wood", 1) });
			Add("IG_Chevron_Floor_1x1", "Pieces", "piece_workbench", new(string, int)[1] { ("Wood", 1) });
			Add("dvergrprops_wood_floor_custom_1x1", "Dvergr", "piece_workbench", new(string, int)[2]
			{
				("Wood", 1),
				("BronzeNails", 1)
			});
			void Add(string prefabName, string category, string station, (string Item, int Amount)[] costs)
			{
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0041: Unknown result type (might be due to invalid IL or missing references)
				//IL_0054: 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_006f: Expected O, but got Unknown
				//IL_0080: Unknown result type (might be due to invalid IL or missing references)
				//IL_0085: 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_00ac: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
				//IL_00cb: 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: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e5: Expected O, but got Unknown
				GameObject val = OdinArchitectBundle.LoadAsset<GameObject>(prefabName);
				if ((Object)(object)val == (Object)null)
				{
					Logger.LogWarning((object)("'" + prefabName + "' is not in the odinarchitect bundle; skipped."));
				}
				else
				{
					RequirementConfig[] array = (RequirementConfig[])(object)new RequirementConfig[costs.Length];
					for (int j = 0; j < costs.Length; j++)
					{
						array[j] = new RequirementConfig
						{
							Item = costs[j].Item,
							Amount = costs[j].Amount,
							Recover = true
						};
					}
					PieceManager.Instance.AddPiece(PieceConfigMan.Piece(val, new PieceConfig
					{
						Name = "$" + prefabName,
						Description = "$" + prefabName + "_desc",
						Enabled = true,
						PieceTable = HammerTool.Value,
						Category = category,
						AllowedInDungeons = true,
						CraftingStation = station,
						Requirements = array
					}));
				}
			}
		}

		private void OA_AddCustomNewMisc()
		{
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Expected O, but got Unknown
			//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_008d: 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_009d: Expected O, but got Unknown
			//IL_009f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bf: Expected O, but got Unknown
			//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e1: Expected O, but got Unknown
			//IL_0111: Unknown result type (might be due to invalid IL or missing references)
			//IL_0118: Expected O, but got Unknown
			//IL_0174: Unknown result type (might be due to invalid IL or missing references)
			//IL_0179: Unknown result type (might be due to invalid IL or missing references)
			//IL_0184: Unknown result type (might be due to invalid IL or missing references)
			//IL_018b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0193: Expected O, but got Unknown
			//IL_0195: 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_01a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b5: Expected O, but got Unknown
			//IL_01b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bc: 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_01ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d6: Expected O, but got Unknown
			//IL_0206: Unknown result type (might be due to invalid IL or missing references)
			//IL_020d: Expected O, but got Unknown
			//IL_0269: Unknown result type (might be due to invalid IL or missing references)
			//IL_026e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0279: Unknown result type (might be due to invalid IL or missing references)
			//IL_0280: Unknown result type (might be due to invalid IL or missing references)
			//IL_0288: Expected O, but got Unknown
			//IL_028a: Unknown result type (might be due to invalid IL or missing references)
			//IL_028f: Unknown result type (might be due to invalid IL or missing references)
			//IL_029a: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_02aa: Expected O, but got Unknown
			//IL_02ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cc: Expected O, but got Unknown
			//IL_02fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0305: Expected O, but got Unknown
			//IL_0361: Unknown result type (might be due to invalid IL or missing references)
			//IL_0366: Unknown result type (might be due to invalid IL or missing references)
			//IL_0371: Unknown result type (might be due to invalid IL or missing references)
			//IL_0378: Unknown result type (might be due to invalid IL or missing references)
			//IL_0380: Expected O, but got Unknown
			//IL_0382: Unknown result type (might be due to invalid IL or missing references)
			//IL_0387: Unknown result type (might be due to invalid IL or missing references)
			//IL_0392: Unknown result type (might be due to invalid IL or missing references)
			//IL_039a: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a2: Expected O, but got Unknown
			//IL_03a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b4: 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_03c4: Expected O, but got Unknown
			PieceManager instance = PieceManager.Instance;
			GameObject prefab = OdinArchitectBundle.LoadAsset<GameObject>("food_smelter");
			PieceConfig val = new PieceConfig();
			val.Name = "$food_smelter";
			val.Description = "$food_smelter";
			val.PieceTable = HammerTool.Value;
			val.Enabled = true;
			val.Category = "Misc";
			val.AllowedInDungeons = true;
			val.CraftingStation = "piece_workbench";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig
				{
					Item = "Coal",
					Amount = 20,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "SurtlingCore",
					Amount = 10,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Bronze",
					Amount = 15,
					Recover = true
				}
			};
			instance.AddPiece(OA_food_smelter = PieceConfigMan.Piece(prefab, val));
			GameObject prefab2 = OdinArchitectBundle.LoadAsset<GameObject>("rae_bird_house");
			val = new PieceConfig();
			val.Name = "$rae_bird_house";
			val.Description = "$rae_bird_house_desc";
			val.Enabled = true;
			val.PieceTable = HammerTool.Value;
			val.Category = "Misc";
			val.AllowedInDungeons = true;
			val.CraftingStation = "piece_workbench";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig
				{
					Item = "FineWood",
					Amount = 6,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "BronzeNails",
					Amount = 12,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "RoundLog",
					Amount = 2,
					Recover = true
				}
			};
			instance.AddPiece(OA_rae_bird_house = PieceConfigMan.Piece(prefab2, val));
			GameObject prefab3 = OdinArchitectBundle.LoadAsset<GameObject>("rae_fish_trap");
			val = new PieceConfig();
			val.Name = "$rae_fish_trap";
			val.Description = "$rae_fish_trap_desc";
			val.Enabled = true;
			val.PieceTable = HammerTool.Value;
			val.Category = "Misc";
			val.AllowedInDungeons = true;
			val.CraftingStation = "piece_workbench";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig
				{
					Item = "AncientSeed",
					Amount = 4,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "FineWood",
					Amount = 10,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Resin",
					Amount = 15,
					Recover = true
				}
			};
			instance.AddPiece(OA_rae_fish_trap = PieceConfigMan.Piece(prefab3, val));
			GameObject prefab4 = OdinArchitectBundle.LoadAsset<GameObject>("rae_compost");
			val = new PieceConfig();
			val.Name = "$rae_compost";
			val.Description = "$rae_compost_desc";
			val.Enabled = true;
			val.PieceTable = HammerTool.Value;
			val.Category = "Misc";
			val.AllowedInDungeons = true;
			val.CraftingStation = "piece_workbench";
			val.Requirements = (RequirementConfig[])(object)new RequirementConfig[3]
			{
				new RequirementConfig
				{
					Item = "AncientSeed",
					Amount = 6,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "FineWood",
					Amount = 12,
					Recover = true
				},
				new RequirementConfig
				{
					Item = "Resin",
					Amount = 20,
					Recover = true
				}
			};
			instance.AddPiece(OA_rae_compost = PieceConfigMan.Piece(prefab4, val));
		}

		private void OA_AddCustomNewPieces()
		{
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Expected O, but got Unknown
			//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_008d: 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)
			//IL_009c: Expected O, but got Unknown
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d3: Expected O, but got Unknown
			//IL_012f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Unknown result type (might be due to invalid IL or missing references)
			//IL_013f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0146: Unknown result type (might be due to invalid IL or missing references)
			//IL_014e: Expected O, but got Unknown
			//IL_017e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0185: Expected O, but got Unknown
			//IL_01e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0200: Expected O, but got Unknown
			//IL_0232: Unknown result type (might be due to invalid IL or missing references)
			//IL_0239: Expected O, but got Unknown
			//IL_0295: Unknown result type (might be due to invalid IL or missing references)
			//IL_029a: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b4: Expected O, but got Unknown
			//IL_02e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ed: Expected O, but got Unknown
			//IL_0349: 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_0359: Unknown result type (might be due to invalid IL or missing references)
			//IL_0360: Unknown result type (might be due to invalid IL or missing references)
			//IL_0368: Expected O, but got Unknown
			//IL_039a: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a1: Expected O, but got Unknown
			//IL_03fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0402: Unknown result type (might be due to invalid IL or missing references)
			//IL_040d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0414: Unknown result type (might be due to invalid IL or missing references)
			//IL_041c: Expected O, but got Unknown
			//IL_044e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0455: Expected O, but got Unknown
			//IL_04b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d0: Expected O, but got Unknown
			//IL_0502: Unknown result type (might be due to invalid IL or missing references)
			//IL_0509: Expected O, but got Unknown
			//IL_0565: Unknown result type (might be due to invalid IL or missing references)
			//IL_056a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0575: Unknown result type (might be due to invalid IL or missing references)
			//IL_057c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0584: Expected O, but got Unknown
			//IL_05b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_05bd: Expected O, but got Unknown
			//IL_0619: Unknown result type (might be due to invalid IL or missing references)
			//IL_061e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0629: Unknown result type (might be due to invalid IL or missing references)
			//IL_0630: Unknown result type (might be due to invalid IL or missing references)
			//IL_0638: Expected O, but got Unknown
			//IL_066a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0671: Expected O, but got Unknown
			//IL_06cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_06dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ec: Expected O, but got Unknown
			//IL_071e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0725: Expected O, but got Unknown
			//IL_0781: Unknown result type (might be due to invalid IL or missing references)
			//IL_0786: Unknown result type (might be due to invalid IL or missing references)
			//IL_0791: Unknown result type (might be due to invalid IL or missing references)
			//IL_0798: Unknown result type (might be due to invalid IL or missing references)
			//IL_07a0: Expected O, but got Unknown
			//IL_07a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_07a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c1: Expected O, but got Unknown
			//IL_07f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_07fa: Expected O, but got Unknown
			//IL_0856: Unknown result type (might be due to invalid IL or missing references)
			//IL_085b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0866: Unknown result type (might be due to invalid IL or missing references)
			//IL_086d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0875: Expected O, but got Unknown
			//IL_0877: Unknown result type (might be due to invalid IL or missing references)
			//IL_087c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0887: Unknown result type (might be due to invalid IL or missing references)
			//IL_088e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0896: Expected O, but got Unknown
			//IL_08c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_08cf: Expected O, but got Unknown
			//IL_092b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0930: Unknown result type (might be due to invalid IL or missing references)
			//IL_093b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0942: Unknown result type (might be due to invalid IL or missing references)
			//IL_094a: Expected O, but got Unknown
			//IL_094c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0951: Unknown result type (might be due to invalid IL or missing references)
			//IL_095c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0963: Unknown result type (might be due to invalid IL or missing references)
			//IL_096b: Expected O, but got Unknown
			//IL_099d: Unknown result type (might be due to invalid IL or missing references)
			//IL_09a4: Expected O, but got Unknown
			//IL_0a00: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a05: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a10: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a17: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a1f: Expected O, but got Unknown
			//IL_0a21: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a26: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a31: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a38: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a40: Expected O, but got Unknown
			//IL_0a72: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a79: Expected O, but got Unknown
			//IL_0ad5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ada: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ae5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aec: Unknown result type (might be due to invalid IL or missing references)
			//IL_0af4: Expected O, but got Unknown
			//IL_0af6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0afb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b06: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b0d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b15: Expected O, but got Unknown
			//IL_0b47: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b4e: Expected O, but got Unknown
			//IL_0baa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0baf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bba: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bc1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bc9: Expected O, but got Unknown
			//IL_0bcb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bd0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bdb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0be2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bea: Expected O, but got Unknown
			//IL_0c1c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c23: Expected O, but got Unknown
			//IL_0c7f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c84: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c8f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c96: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c9e: Expected O, but got Unknown
			//IL_0cd0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cd7: Expected O, but got Unknown
			//IL_0d33: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d38: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d43: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d4a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d52: Expected O, but got Unknown
			//IL_0d84: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d8b: Expected O, but got Unknown
			//IL_0de7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dec: Unknown result type (might be due to invalid IL or missing references)
			//IL_0df7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dfe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e06: Expected O, but got Unknown
			//IL_0e38: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e3f: Expected O, but got Unknown
			//IL_0e9b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ea0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eab: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eb2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eba: Expected O, but got Unknown
			//IL_0eec: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ef3: Expected O, but got Unknown
			//IL_0f4f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f54: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f5f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f66: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f6e: Expected O, but got Unknown
			//IL_0fa0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fa7: Expected O, but got Unknown
			//IL_1003: Unknown result type (might be due to invalid IL or missing references)
			//IL_1008: Unknown result type (might be due to invalid IL or missing references)
			//IL_1013: Unknown result type (might be due to invalid IL or missing references)
			//IL_101a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1022: Expected O, but got Unknown
			//IL_1054: Unknown result type (might be due to invalid IL or missing references)
			//IL_105b: Expected O, but got Unknown
			//IL_10b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_10bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_10c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_10ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_10d6: Expected O, but got Unknown
			//IL_1108: Unknown result type (might be due to invalid IL or missing references)
			//IL_110f: Expected O, but got Unknown
			//IL_116b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1170: Unknown result type (might be due to invalid IL or missing references)
			//IL_117b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1182: Unknown result type (might be due to invalid IL or missing references)
			//IL_118a: Expected O, but got Unknown
			//IL_11bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_11c3: Expected O, but got Unknown
			//IL_121f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1224: Unknown result type (might be due to invalid IL or missing references)
			//IL_122f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1236: Unknown result type (might be due to invalid IL or missing references)
			//IL_123e: Expected O, but got Unknown
			//IL_1270: Unknown result type (might be due to invalid IL or missing references)
			//IL_1277: Expected O, but got Unknown
			//IL_12d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_12d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_12e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_12ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_12f2: Expected O, but got Unknown
			//IL_1324: Unknown result type (might be due to invalid IL or missing references)
			//IL_132b: Expected O, but got Unknown
			//IL_1387: Unknown result type (might be due to invalid IL or missing references)
			//IL_138c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1397: Unknown result type (might be due to invalid IL or missing references)
			//IL_139e: Unknown result type (might be due to invalid IL or missing references)
			//IL_13a6: Expected O, but got Unknown
			//IL_13d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_13df: Expected O, but got Unknown
			//IL_143b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1440: Unknown result type (might be due to invalid IL or missing references)
			//IL_144b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1452: Unknown result type (might be due to invalid IL or missing references)
			//IL_145a: Expected O, but got Unknown
			//IL_145c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1461: Unknown result type (might be due to invalid IL or missing references)
			//IL_146c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1473: Unknown result type (might be due to invalid IL or missing references)
			//IL_147b: Expected O, but got Unknown
			//IL_14ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_14b4: Expected O, but got Unknown
			//IL_1510: Unknown result type (might be due to invalid IL or missing references)
			//IL_1515: Unknown result type (might be due to invalid IL or missing references)
			//IL_1520: Unknown result type (might be due to invalid IL or missing references)
			//IL_1527: Unknown result type (might be due to invalid IL or missing references)
			//IL_152f: Expected O, but got Unknown
			//IL_1531: Unknown result type (might be due to invalid IL or missing references)
			//IL_1536: Unknown result type (might be due to invalid IL or missing references)
			//IL_1541: Unknown result type (might be due to invalid IL or missing references)
			//IL_1548: Unknown result type (might be due to invalid IL or missing references)
			//IL_1550: Expected O, but got Unknown
			//IL_1582: Unknown result type (might be due to invalid IL or missing references)
			//IL_1589: Expected O, but got Unknown
			//IL_15e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_15ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_15f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_15fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_1604: Expected O, but got Unknown
			//IL_1606: Unknown result type (might be due to invalid IL or missing references)
			//IL_160b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1616: Unknown result type (might be due to invalid IL or missing references)
			//IL_161d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1625: Expected O, but got Unknown
			//IL_1657: Unknown result type (might be due to invalid IL or missing references)
			//IL_165e: Expected O, but got Unknown
			//IL_16ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_16bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_16ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_16d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_16d9: Expected O, but got Unknown
			//IL_170b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1712: Expected O, but got Unknown
			//IL_176e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1773: Unknown result type (might be due to invalid IL or missing references)
			//IL_177e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1785: Unknown result type (might be due to invalid IL or missing references)
			//IL_178d: Expected O, but got Unknown
			//IL_17bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_17c6: Expected O, but got Unknown
			//IL_1822: Unknown result type (might be due to invalid IL or missing references)
			//IL_1827: Unknown result type (might be due to invalid IL or missing references)
			//IL_1832: Unknown result type (might be due to invalid IL or missing references)
			//IL_1839: Unknown result type (might be due to invalid IL or missing references)
			//IL_1841: Expected O, but got Unknown
			//IL_1873: Unknown result type (might be due to invalid IL or missing references)
			//IL_187a: Expected O, but got Unknown
			//IL_18d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_18db: Unknown result type (might be due to invalid IL or missing references)
			//IL_18e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_18ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_18f5: Expected O, but got Unknown
			//IL_1927: Unknown result type (might be due to invalid IL or missing references)
			//IL_192e: Expected O, but got Unknown
			//IL_198a: Unknown result type (might be due to invalid IL or missing references)
			//IL_198f: Unknown result type (might be due to invalid IL or missing references)
			//IL_199a: Unknown result type (might be due to invalid IL or missing references)
			//IL_19a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_19a9: Expected O, but got Unknown
			//IL_19db: Unknown result type (might be due to invalid IL or missing references)
			//IL_19e2: Expected O, but got Unknown
			//IL_1a3e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a43: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a4e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a55: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a5d: Expected O, but got Unknown
			//IL_1a8f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a96: Expected O, but got Unknown
			//IL_1af2: Unknown result type (might be due to invalid IL or missing references)
			//IL_1af7: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b02: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b09: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b11: Expected O, but got Unknown
			//IL_1b43: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b4a: Expected O, but got Unknown
			//IL_1ba6: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bab: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bb6: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bbd: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bc5: Expected O, but got Unknown
			//IL_1bf7: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bfe: Expected O, but got Unknown
			//IL_1c5a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c5f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c6a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c71: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c79: Expected O, but got Unknown
			//IL_1cab: Unknown result type (might be due to invalid IL or missing references)
			//IL_1cb2: Expected O, but got Unknown
			//IL_1d0e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d13: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d1e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d25: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d2d: Expected O, but got Unknown
			//IL_1d5f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1d66: Expected O, but got Unknown
			//IL_1dc2: Unknown result type (might be due to invalid IL or missing references)
			//IL_1dc7: Unknown result type (might be due to invalid IL or missing references)
			//IL_1dd2: Unknown result type (might be due to invalid IL or missing references)
			//IL_1dd9: Unknown result type (might be due to invalid IL or missing references)
			//IL_1de1: Expected O, but got Unknown
			//IL_1e13: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e1a: Expected O, but got Unknown
			//IL_1e76: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e7b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e86: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e8d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1e95: Expected O, but got Unknown
			//IL_1ec7: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ece: Expected O, but got Unknown
			//IL_1f2a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f2f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f3a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f41: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f49: Expected O, but got Unknown
			//IL_1f7b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1f82: Expected O, but got Unknown
			//IL_1fde: Unknown result type (might be due to invalid IL or missing references)
			//IL_1fe3: Unknown result type (might be due to invalid IL or missing references)
			//IL_1fee: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ff5: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ffd: Expected O, but got Unknown
			//IL_202f: Unknown result type (might be due to invalid IL or missing references)
			//IL_2036: Expected O, but got Unknown
			//IL_2092: Unknown result type (might be due to invalid IL or missing references)
			//IL_2097: Unknown result type (might be due to invalid IL or missing references)
			//IL_20a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_20a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_20b1: Expected O, but got Unknown
			//IL_20e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_20ea: Expected O, but got Unknown
			//IL_2146: Unknown result type (might be due to invalid IL or missing references)
			//IL_214b: Unknown result type (might be due to invalid IL or missing references)
			//IL_2156: Unknown result type (might be due to invalid IL or missing references)
			//IL_215d: Unknown result type (might be due to invalid IL or missing references)
			//IL_2165: Expected O, but got Unknown
			//IL_2197: Unknown result type (might be due to invalid IL or missing references)
			//IL_219e: Expected O, but got Unknown
			//IL_21fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_21ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_220a: Unknown result type (might be due to invalid IL or missing references)
			//IL_2211: Unknown result type (might be due to invalid IL or missing references)
			//IL_2219: Expected O, but got Unknown
			//IL_224b: Unknown result type (might be due to invalid IL or missing references)
			//IL_2252: Expected O, but got Unknown
			//IL_22ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_22b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_22be: Unknown result type (might be due to invalid IL or missing references)
			//IL_22c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_22cd: Expected O, but got Unknown
			//IL_22ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_2306: Expected O, but got Unknown
			//IL_2362: Unknown result type (might be due to invalid IL or missing references)
			//IL_2367: Unknown result type (might be due to invalid IL or missing references)
			//IL_2372: Unknown result type (might be due to invalid IL or missing references)
			//IL_2379: Unknown result type (might be due to invalid IL or missing references)
			//IL_2381: Expected O, but got Unknown
			//IL_23b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_23ba: Expected O, but got Unknown
			//IL_2416: Unknown result type (might be due to invalid IL or missing references)
			//IL_241b: Unknown result type (might be due to invalid IL or missing references)
			//IL_2426: Unknown result type (might be due to invalid IL or missing references)
			//IL_242d: Unknown result type (might be due to invalid IL or missing references)
			//IL_2435: Expected O, but got Unknown
			//IL_2467: Unknown result type (might be due to invalid IL or missing references)
			//IL_246e: Expected O, but got Unknown
			//IL_24ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_24cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_24da: Unknown result type (might be due to invalid IL or missing references)
			//IL_24e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_24e9: Expected O, but got Unknown
			//IL_251b: Unknown result type (might be due to invalid IL or missing references)
			//IL_2522: Expected O, but got Unknown
			//IL_257e: Unknown result type (might be due to invalid IL or missing references)
			//IL_2583: Unknown result type (might be due to invalid IL or missing references)
			//IL_258e: Unknown result type (might be due to invalid IL or missing references)
			//IL_2595: Unknown result type (might be due to invalid IL or missing references)
			//IL_259d: Expected O, but got Unknown
			//IL_25cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_25d6: Expected O, but got Unknown
			//IL_2632: Unknown result type (might be due to invalid IL or missing references)
			//IL_2637: Unknown result type (might be due to invalid IL or missing references)
			//IL_2642: Unknown result type (might be due to invalid IL or missing references)
			//IL_2649: Unknown result type (might be due to invalid IL or missing references)
			//IL_2651: Expected O, but got Unknown
			//IL_2683: Unknown result type (might be due to invalid IL or missing references)
			//IL_268a: Expected O, but got Unknown
			//IL_26e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_26eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_26f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_26fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_2705: Expected O, but got Unknown
			//IL_2737: Unknown result type (might be due to invalid IL or missing references)
			//IL_273e: Expected O, but got Unknown
			//IL_279a: Unknown result type (might be due to invalid IL or missing references)
			//IL_279f: Unknown result type (might be due to invalid IL or missing references)
			//IL_27aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_27b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_27b9: Expected O, but got Unknown
			//IL_27bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_27c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_27cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_27d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_27da: Expected O, but got Unknown
			//IL_280c: Unknown result type (might be due to invalid IL or missing references)
			//IL_2813: Expected O, but got Unknown
			//IL_286f: Unknown result type (might be due to invalid IL or missing references)
			//IL_2874: Unknown result type (might be due to invalid IL or missing references)
			//IL_287f: Unknown result type (might be due to invalid IL or missing references)
			//IL_2886: Unknown result type (might be due to invalid IL or missing references)
			//IL_288e: Expected O, but got Unknown
			//IL_2890: Unknown result type (might be due to invalid IL or missing references)
			//IL_2895: Unknown result type (might be due to invalid IL or missing references)
			//IL_28a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_28a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_28af: Expected O, but got Unknown
			//IL_28e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_28e8: Expected O, but got Unknown
			//IL_2944: Unknown result type (might be due to invalid IL or missing references)
			//IL_2949: Unknown result type (might be due to invalid IL or missing references)
			//IL_2954: Unknown result type (might be due to invalid IL or missing references)
			//IL_295b: Unknown result type (might be due to invalid IL or missing references)
			//IL_2963: Expected O, but got Unknown
			//IL_2965: Unknown result type (might be due to invalid IL or missing references)
			//IL_296a: Unknown result type (might be due to invalid IL or missing references)
			//IL_2975: Unknown result type (might be due to invalid IL or missing references)
			//IL_297c: Unknown result type (might be due to invalid IL or missing references)
			//IL_2984: Expected O, but got Unknown
			//IL_29b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_29bd: Expected O, but got Unknown
			//IL_2a19: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a1e: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a29: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a30: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a38: Expected O, but got Unknown
			//IL_2a3a: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a3f: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a4a: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a51: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a59: Expected O, but got Unknown
			//IL_2a8b: Unknown result type (might be due to invalid IL or missing references)
			//IL_2a92: Expected O, but got Unknown
			//IL_2aee: Unknown result type (might be due to invalid IL or missing references)
			//IL_2af3: Unknown result type (might be due to invalid IL or missing references)
			//IL_2afe: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b05: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b0d: Expected O, but got Unknown
			//IL_2b0f: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b14: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b1f: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b26: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b2e: Expected O, but got Unknown
			//IL_2b30: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b35: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b40: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b48: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b50: Expected O, but got Unknown
			//IL_2b82: Unknown result type (might be due to invalid IL or missing references)
			//IL_2b89: Expected O, but got Unknown
			//IL_2be5: Unknown result type (might be due to invalid IL or missing references)
			//IL_2bea: Unknown result type (might be due to invalid IL or missing references)
			//IL_2bf5: Unknown result type (might be due to invalid IL or missing references)
			//IL_2bfc: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c04: Expected O, but got Unknown
			//IL_2c06: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c0b: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c16: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c1d: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c25: Expected O, but got Unknown
			//IL_2c57: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c5e: Expected O, but got Unknown
			//IL_2cba: Unknown result type (might be due to invalid IL or missing references)
			//IL_2cbf: Unknown result type (might be due to invalid IL or missing references)
			//IL_2cca: Unknown result type (might be due to invalid IL or missing references)
			//IL_2cd2: Unknown result type (might be due to invalid IL or missing references)
			//IL_2cda: Expected O, but got Unknown
			//IL_2cdc: Unknown result type (might be due to invalid IL or missing references)
			//IL_2ce1: Unknown result type (might be due to invalid IL or missing references)
			//IL_2cec: Unknown result type (might be due to invalid IL or missing references)
			//IL_2cf4: Unknown result type (might be due to invalid IL or missing references)
			//IL_2cfc: Expected O, but got Unknown
			//IL_2d2e: Unknown result type (might be due to invalid IL or missing references)
			//IL_2d35: Expected O, but got Unknown
			//IL_2d91: Unknown result type (might be due to invalid IL or missing references)
			//IL_2d96: Unknown result type (might be due to invalid IL or missing references)
			//IL_2da1: Unknown result type (might be due to invalid IL or missing references)
			//IL_2da8: Unknown result type (might be due to invalid IL or missing references)
			//IL_2db0: Expected O, but got Unknown
			//IL_2de2: Unknown result type (might be due to invalid IL or missing references)
			//IL_2de9: Expected O, but got Unknown
			//IL_2e45: Unknown result type (might be due to invalid IL or missing references)
			//IL_2e4a: Unknown result type (might be due to invalid IL or missing references)
			//IL_2e55: Unknown result type (might be due to invalid IL or missing references)
			//IL_2e5c: Unknown result type (might be due to invalid IL or missing references)
			//IL_2e64: Expected O, but got Unknown
			//IL_2e96: Unknown result type (might be due to invalid IL or missing references)
			//IL_2e9d: Expected O, but got Unknown
			//IL_2ef9: Unknown result type (might be due to invalid IL or missing references)
			//IL_2efe: Unknown result type (might be due to invalid IL or missing references)
			//IL_2f09: Unknown result type (might be due to invalid IL or missing references)
			//IL_2f10: Unknown result type (might be due to invalid IL or missing references)
			//IL_2f18: Expected O, but got Unknown
			//IL_2f4a: Unknown result type (might be due to invalid IL or missing references)
			//IL_2f51: Expected O, but got Unknown
			//IL_2fad: Unknown result type (might be due to invalid IL or missing references)
			//IL_2fb2: Unknown result type (might be due to invalid IL or missing references)
			//IL_2fbd: Unknown result type (might be due to invalid IL or missing references)
			//IL_2fc4: Unknown result type (might be due to invalid IL or missing references)
			//IL_2fcc: Expected O, but got Unknown
			//IL_2ffe: Unknown result type (might be due to invalid IL or missing references)
			//IL_3005: Expected O, but got Unknown
			//IL_3061: Unknown result type (might be due to invalid IL or missing references)
			//IL_3066: Unknown result type (might be due to invalid IL or missing references)
			//IL_3071: Unknown result type (might be due to invalid IL or missing references)
			//IL_3078: Unknown result type (might be due to invalid IL or missing references)
			//IL_3080: Expected O, but got Unknown
			//IL_30b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_30b9: Expected O, but got Unknown
			//IL_3115: Unknown result type (might be due to invalid IL or missing references)
			//IL_311a: Unknown result type (might be due to invalid IL or missing references)
			//IL_3125: Unknown result type (might be due to invalid IL or missing references)
			//IL_312c: Unknown result type (might be due to invalid IL or missing references)
			//IL_3134: Expected O, but got Unknown
			//IL_3166: Unknown result type (might be due to invalid IL or missing references)
			//IL_316d: Expected O, but got Unknown
			//IL_31c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_31ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_31d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_31e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_31e8: Expected O, but got Unknown
			//IL_321a: Unknown result type (might be due to invalid IL or missing references)
			//IL_3221: Expected O, but got Unknown
			//IL_327d: Unknown result type (might be due to invalid IL or missing references)
			//IL_3282: Unknown result type (might be due to invalid IL or missing references)
			//IL_328d: Unknown result type (might be due to invalid IL or missing references)
			//IL_3294: Unknown result type (might be due to invalid IL or missing references)
			//IL_329c: Expected O, but got Unknown
			//IL_32ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_32d5: Expected O, but got Unknown
			//IL_3331: Unknown result type (might be due to invalid IL or missing references)
			//IL_3336: Unknown result