using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
using UnityEngine;
using UnityEngine.Serialization;

namespace RootMotion.FinalIK
{
	// Token: 0x0200044E RID: 1102
	[Token(Token = "0x200044E")]
	[HelpURL("https://www.youtube.com/watch?v=r5jiZnsDH3M")]
	[AddComponentMenu("Scripts/RootMotion.FinalIK/Interaction System/Interaction System")]
	public class InteractionSystem : MonoBehaviour
	{
		// Token: 0x060027B7 RID: 10167 RVA: 0x00057E64 File Offset: 0x00056064
		[Token(Token = "0x60027B7")]
		[Address(RVA = "0x10D9FD0", Offset = "0x10D8DD0", VA = "0x1810D9FD0")]
		[ContextMenu("TUTORIAL VIDEO (PART 1: BASICS)")]
		private void OpenTutorial1()
		{
			Application.OpenURL("https://www.youtube.com/watch?v=r5jiZnsDH3M");
		}

		// Token: 0x060027B8 RID: 10168 RVA: 0x00057E7C File Offset: 0x0005607C
		[Token(Token = "0x60027B8")]
		[Address(RVA = "0x10DA010", Offset = "0x10D8E10", VA = "0x1810DA010")]
		[ContextMenu("TUTORIAL VIDEO (PART 2: PICKING UP...)")]
		private void OpenTutorial2()
		{
			Application.OpenURL("https://www.youtube.com/watch?v=eP9-zycoHLk");
		}

		// Token: 0x060027B9 RID: 10169 RVA: 0x00057E94 File Offset: 0x00056094
		[Token(Token = "0x60027B9")]
		[Address(RVA = "0x10DA050", Offset = "0x10D8E50", VA = "0x1810DA050")]
		[ContextMenu("TUTORIAL VIDEO (PART 3: ANIMATION)")]
		private void OpenTutorial3()
		{
			Application.OpenURL("https://www.youtube.com/watch?v=sQfB2RcT1T4&index=14&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6");
		}

		// Token: 0x060027BA RID: 10170 RVA: 0x00057EAC File Offset: 0x000560AC
		[Token(Token = "0x60027BA")]
		[Address(RVA = "0x10DA090", Offset = "0x10D8E90", VA = "0x1810DA090")]
		[ContextMenu("TUTORIAL VIDEO (PART 4: TRIGGERS)")]
		private void OpenTutorial4()
		{
			Application.OpenURL("https://www.youtube.com/watch?v=-TDZpNjt2mk&index=15&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6");
		}

		// Token: 0x060027BB RID: 10171 RVA: 0x00057EC4 File Offset: 0x000560C4
		[Token(Token = "0x60027BB")]
		[Address(RVA = "0x10DACA0", Offset = "0x10D9AA0", VA = "0x1810DACA0")]
		[ContextMenu("Support Group")]
		private void SupportGroup()
		{
			Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
		}

		// Token: 0x060027BC RID: 10172 RVA: 0x00057EDC File Offset: 0x000560DC
		[Token(Token = "0x60027BC")]
		[Address(RVA = "0x10D7D60", Offset = "0x10D6B60", VA = "0x1810D7D60")]
		[ContextMenu("Asset Store Thread")]
		private void ASThread()
		{
			Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
		}

		// Token: 0x17000280 RID: 640
		// (get) Token: 0x060027BD RID: 10173 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x17000280")]
		public bool inInteraction
		{
			[Token(Token = "0x60027BD")]
			[Address(RVA = "0x10DC530", Offset = "0x10DB330", VA = "0x1810DC530")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x060027BE RID: 10174 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027BE")]
		[Address(RVA = "0x10D8C70", Offset = "0x10D7A70", VA = "0x1810D8C70")]
		public bool IsInInteraction(FullBodyBipedEffector effectorType)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027BF RID: 10175 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027BF")]
		[Address(RVA = "0x10D8E80", Offset = "0x10D7C80", VA = "0x1810D8E80")]
		public bool IsPaused(FullBodyBipedEffector effectorType)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027C0 RID: 10176 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027C0")]
		[Address(RVA = "0x10D8F50", Offset = "0x10D7D50", VA = "0x1810D8F50")]
		public bool IsPaused()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027C1 RID: 10177 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027C1")]
		[Address(RVA = "0x10D8D40", Offset = "0x10D7B40", VA = "0x1810D8D40")]
		public bool IsInSync()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027C2 RID: 10178 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027C2")]
		[Address(RVA = "0x10DA4A0", Offset = "0x10D92A0", VA = "0x1810DA4A0")]
		public bool StartInteraction(FullBodyBipedEffector effectorType, InteractionObject interactionObject, bool interrupt)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027C3 RID: 10179 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027C3")]
		[Address(RVA = "0x10DA1A0", Offset = "0x10D8FA0", VA = "0x1810DA1A0")]
		public bool PauseInteraction(FullBodyBipedEffector effectorType)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027C4 RID: 10180 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027C4")]
		[Address(RVA = "0x10DA410", Offset = "0x10D9210", VA = "0x1810DA410")]
		public bool ResumeInteraction(FullBodyBipedEffector effectorType)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027C5 RID: 10181 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027C5")]
		[Address(RVA = "0x10DAC10", Offset = "0x10D9A10", VA = "0x1810DAC10")]
		public bool StopInteraction(FullBodyBipedEffector effectorType)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027C6 RID: 10182 RVA: 0x00057EF4 File Offset: 0x000560F4
		[Token(Token = "0x60027C6")]
		[Address(RVA = "0x10DA110", Offset = "0x10D8F10", VA = "0x1810DA110")]
		public void PauseAll()
		{
			if (this.IsValid(true))
			{
				InteractionEffector[] array = this.interactionEffectors;
				int num = 0;
				if (num < array.Length)
				{
					bool flag = array[num].Pause();
					InteractionEffector[] array2 = this.interactionEffectors;
					num++;
				}
			}
		}

		// Token: 0x060027C7 RID: 10183 RVA: 0x00057F3C File Offset: 0x0005613C
		[Token(Token = "0x60027C7")]
		[Address(RVA = "0x10DA380", Offset = "0x10D9180", VA = "0x1810DA380")]
		public void ResumeAll()
		{
			if (this.IsValid(true))
			{
				InteractionEffector[] array = this.interactionEffectors;
				int num = 0;
				if (num < array.Length)
				{
					bool flag = array[num].Resume();
					InteractionEffector[] array2 = this.interactionEffectors;
					num++;
				}
			}
		}

		// Token: 0x060027C8 RID: 10184 RVA: 0x00057F84 File Offset: 0x00056184
		[Token(Token = "0x60027C8")]
		[Address(RVA = "0x10DAB90", Offset = "0x10D9990", VA = "0x1810DAB90")]
		public void StopAll()
		{
			InteractionEffector[] array = this.interactionEffectors;
			int num = 0;
			if (num < array.Length)
			{
				bool flag = array[num].Stop();
				InteractionEffector[] array2 = this.interactionEffectors;
				num++;
			}
		}

		// Token: 0x060027C9 RID: 10185 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027C9")]
		[Address(RVA = "0x10D8860", Offset = "0x10D7660", VA = "0x1810D8860")]
		public InteractionObject GetInteractionObject(FullBodyBipedEffector effectorType)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027CA RID: 10186 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027CA")]
		[Address(RVA = "0x10D8A60", Offset = "0x10D7860", VA = "0x1810D8A60")]
		public float GetProgress(FullBodyBipedEffector effectorType)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027CB RID: 10187 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027CB")]
		[Address(RVA = "0x10D88F0", Offset = "0x10D76F0", VA = "0x1810D88F0")]
		public float GetMinActiveProgress()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027CC RID: 10188 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027CC")]
		[Address(RVA = "0x10DB6D0", Offset = "0x10DA4D0", VA = "0x1810DB6D0")]
		public bool TriggerInteraction(int index, bool interrupt)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027CD RID: 10189 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027CD")]
		[Address(RVA = "0x10DB130", Offset = "0x10D9F30", VA = "0x1810DB130")]
		public bool TriggerInteraction(int index, bool interrupt, out InteractionObject interactionObject)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027CE RID: 10190 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027CE")]
		[Address(RVA = "0x10DB390", Offset = "0x10DA190", VA = "0x1810DB390")]
		public bool TriggerInteraction(int index, bool interrupt, out InteractionTarget interactionTarget)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027CF RID: 10191 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027CF")]
		[Address(RVA = "0x10D82E0", Offset = "0x10D70E0", VA = "0x1810D82E0")]
		public InteractionTrigger.Range GetClosestInteractionRange()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027D0 RID: 10192 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027D0")]
		[Address(RVA = "0x10D8140", Offset = "0x10D6F40", VA = "0x1810D8140")]
		public InteractionObject GetClosestInteractionObjectInRange()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027D1 RID: 10193 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027D1")]
		[Address(RVA = "0x10D83E0", Offset = "0x10D71E0", VA = "0x1810D83E0")]
		public InteractionTarget GetClosestInteractionTargetInRange()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027D2 RID: 10194 RVA: 0x00057FC4 File Offset: 0x000561C4
		[Token(Token = "0x60027D2")]
		[Address(RVA = "0x10D8190", Offset = "0x10D6F90", VA = "0x1810D8190")]
		public InteractionObject[] GetClosestInteractionObjectsInRange()
		{
			InteractionObject[] array;
			int num;
			InteractionObject interactionObject;
			for (;;)
			{
				InteractionTrigger.Range closestInteractionRange = this.GetClosestInteractionRange();
				if (closestInteractionRange != 0)
				{
					array = new InteractionObject[closestInteractionRange.interactions.Length];
					num = 0;
					InteractionTrigger.Range.Interaction[] interactions = closestInteractionRange.interactions;
					int length = interactions.Length;
					if (num >= length)
					{
						return array;
					}
					interactionObject = interactions[num].interactionObject;
					if (interactionObject == 0 || length != 0)
					{
						break;
					}
				}
			}
			array[0] = interactionObject;
			num++;
			return array;
		}

		// Token: 0x060027D3 RID: 10195 RVA: 0x0005802C File Offset: 0x0005622C
		[Token(Token = "0x60027D3")]
		[Address(RVA = "0x10D8470", Offset = "0x10D7270", VA = "0x1810D8470")]
		public InteractionTarget[] GetClosestInteractionTargetsInRange()
		{
			InteractionTrigger.Range closestInteractionRange = this.GetClosestInteractionRange();
			if (closestInteractionRange != 0)
			{
				List<InteractionTarget> list = new List();
				InteractionTrigger.Range.Interaction[] interactions = closestInteractionRange.interactions;
				int num = 0;
				int num2 = 0;
				int length = interactions.Length;
				if (num < length)
				{
					InteractionTrigger.Range.Interaction interaction = interactions[num2];
					FullBodyBipedEffector[] effectors = interaction.effectors;
					int num3 = 0;
					if (num3 < effectors.Length)
					{
						InteractionObject interactionObject = interaction.interactionObject;
						FullBodyBipedEffector fullBodyBipedEffector = effectors[num3];
						InteractionTarget target = interactionObject.GetTarget(fullBodyBipedEffector, this);
						list.Add(target);
						num3++;
					}
					num2++;
				}
				return list.ToArray();
			}
			throw new IndexOutOfRangeException();
		}

		// Token: 0x060027D4 RID: 10196 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027D4")]
		[Address(RVA = "0x10DACE0", Offset = "0x10D9AE0", VA = "0x1810DACE0")]
		public bool TriggerEffectorsReady(int index)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027D5 RID: 10197 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027D5")]
		[Address(RVA = "0x10D8AF0", Offset = "0x10D78F0", VA = "0x1810D8AF0")]
		public InteractionTrigger.Range GetTriggerRange(int index)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027D6 RID: 10198 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027D6")]
		[Address(RVA = "0x10D8620", Offset = "0x10D7420", VA = "0x1810D8620")]
		public int GetClosestTriggerIndex()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x17000281 RID: 641
		// (get) Token: 0x060027D7 RID: 10199 RVA: 0x000580C8 File Offset: 0x000562C8
		// (set) Token: 0x060027D8 RID: 10200 RVA: 0x000580DC File Offset: 0x000562DC
		[Token(Token = "0x17000281")]
		public FullBodyBipedIK ik
		{
			[Token(Token = "0x60027D7")]
			[Address(RVA = "0x6D4640", Offset = "0x6D3440", VA = "0x1806D4640")]
			get
			{
				return this.fullBody;
			}
			[Token(Token = "0x60027D8")]
			[Address(RVA = "0x6D4690", Offset = "0x6D3490", VA = "0x1806D4690")]
			set
			{
				/*
An exception occurred when decompiling this method (060027D8)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.InteractionSystem::set_ik(RootMotion.FinalIK.FullBodyBipedIK)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	stfld:FullBodyBipedIK(InteractionSystem::fullBody, ldloc:InteractionSystem(this), ldloc:FullBodyBipedIK(value)); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
			}
		}

		// Token: 0x17000282 RID: 642
		// (get) Token: 0x060027D9 RID: 10201 RVA: 0x000580F0 File Offset: 0x000562F0
		// (set) Token: 0x060027DA RID: 10202 RVA: 0x00058104 File Offset: 0x00056304
		[Token(Token = "0x17000282")]
		public List<InteractionTrigger> triggersInRange
		{
			[Token(Token = "0x60027D9")]
			[Address(RVA = "0x3147B0", Offset = "0x3135B0", VA = "0x1803147B0")]
			[CompilerGenerated]
			get
			{
				return this.<triggersInRange>k__BackingField;
			}
			[Token(Token = "0x60027DA")]
			[Address(RVA = "0x5428D0", Offset = "0x5416D0", VA = "0x1805428D0")]
			[CompilerGenerated]
			private set
			{
				/*
An exception occurred when decompiling this method (060027DA)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.InteractionSystem::set_triggersInRange(System.Collections.Generic.List`1<RootMotion.FinalIK.InteractionTrigger>)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	stfld:class [mscorlib]System.Collections.Generic.List`1<class RootMotion.FinalIK.InteractionTrigger>(InteractionSystem::<triggersInRange>k__BackingField, ldloc:InteractionSystem(this), ldloc:class [mscorlib]System.Collections.Generic.List`1<class RootMotion.FinalIK.InteractionTrigger>(value)); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
			}
		}

		// Token: 0x060027DB RID: 10203 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027DB")]
		[Address(RVA = "0x10DA5B0", Offset = "0x10D93B0", VA = "0x1810DA5B0", Slot = "4")]
		protected virtual void Start()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027DC RID: 10204 RVA: 0x00058118 File Offset: 0x00056318
		[Token(Token = "0x60027DC")]
		[Address(RVA = "0x10D8C30", Offset = "0x10D7A30", VA = "0x1810D8C30")]
		private void InteractionPause(FullBodyBipedEffector effector, InteractionObject interactionObject)
		{
			this.lookAt.isPaused = true;
		}

		// Token: 0x060027DD RID: 10205 RVA: 0x00058138 File Offset: 0x00056338
		[Token(Token = "0x60027DD")]
		[Address(RVA = "0x10D8C50", Offset = "0x10D7A50", VA = "0x1810D8C50")]
		private void InteractionResume(FullBodyBipedEffector effector, InteractionObject interactionObject)
		{
			this.lookAt.isPaused = false;
		}

		// Token: 0x060027DE RID: 10206 RVA: 0x00058158 File Offset: 0x00056358
		[Token(Token = "0x60027DE")]
		[Address(RVA = "0x10D8C50", Offset = "0x10D7A50", VA = "0x1810D8C50")]
		private void InteractionStop(FullBodyBipedEffector effector, InteractionObject interactionObject)
		{
			this.lookAt.isPaused = false;
		}

		// Token: 0x060027DF RID: 10207 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027DF")]
		[Address(RVA = "0x10D92F0", Offset = "0x10D80F0", VA = "0x1810D92F0")]
		private void LookAtInteraction(FullBodyBipedEffector effector, InteractionObject interactionObject)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027E0 RID: 10208 RVA: 0x00058178 File Offset: 0x00056378
		[Token(Token = "0x60027E0")]
		[Address(RVA = "0x10D9D70", Offset = "0x10D8B70", VA = "0x1810D9D70")]
		public void OnTriggerEnter(Collider c)
		{
			FullBodyBipedIK fullBodyBipedIK = this.fullBody;
			int num = 0;
			if (!(fullBodyBipedIK == num))
			{
				InteractionTrigger component = c.GetComponent<InteractionTrigger>();
				int num2 = 0;
				if (!(component == num2) && !this.inContact.Contains(component))
				{
					this.inContact.Add(component);
				}
			}
		}

		// Token: 0x060027E1 RID: 10209 RVA: 0x000581CC File Offset: 0x000563CC
		[Token(Token = "0x60027E1")]
		[Address(RVA = "0x10D9E90", Offset = "0x10D8C90", VA = "0x1810D9E90")]
		public void OnTriggerExit(Collider c)
		{
			FullBodyBipedIK fullBodyBipedIK = this.fullBody;
			int num = 0;
			if (!(fullBodyBipedIK == num))
			{
				InteractionTrigger component = c.GetComponent<InteractionTrigger>();
				int num2 = 0;
				if (!(component == num2))
				{
					bool flag = this.inContact.Remove(component);
				}
			}
		}

		// Token: 0x060027E2 RID: 10210 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027E2")]
		[Address(RVA = "0x10D7DA0", Offset = "0x10D6BA0", VA = "0x1810D7DA0")]
		private bool ContactIsInRange(int index, out int bestRangeIndex)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027E3 RID: 10211 RVA: 0x00058214 File Offset: 0x00056414
		[Token(Token = "0x60027E3")]
		[Address(RVA = "0x10D98F0", Offset = "0x10D86F0", VA = "0x1810D98F0")]
		private void OnDrawGizmosSelected()
		{
			if (!Application.isPlaying)
			{
				FullBodyBipedIK fullBodyBipedIK = this.fullBody;
				int num = 0;
				if (fullBodyBipedIK == num)
				{
					FullBodyBipedIK component = base.GetComponent<FullBodyBipedIK>();
					this.fullBody = component;
				}
				Collider collider = this.characterCollider;
				int num2 = 0;
				if (collider == num2)
				{
					Collider component2 = base.GetComponent<Collider>();
					this.characterCollider = component2;
				}
			}
		}

		// Token: 0x060027E4 RID: 10212 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027E4")]
		[Address(RVA = "0x10DBBB0", Offset = "0x10DA9B0", VA = "0x1810DBBB0")]
		private void Update()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027E5 RID: 10213 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027E5")]
		[Address(RVA = "0x10DA230", Offset = "0x10D9030", VA = "0x1810DA230")]
		private void Raycasting()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027E6 RID: 10214 RVA: 0x00058274 File Offset: 0x00056474
		[Token(Token = "0x60027E6")]
		[Address(RVA = "0x10DB8B0", Offset = "0x10DA6B0", VA = "0x1810DB8B0")]
		private void UpdateTriggerEventBroadcasting()
		{
			Collider collider = this.characterCollider;
			int num = 0;
			if (collider == num)
			{
				Collider collider2 = this.c;
				this.characterCollider = collider2;
			}
			Collider collider3 = this.characterCollider;
			int num2 = 0;
			if (collider3 != num2)
			{
				Collider collider4 = this.characterCollider;
				Collider collider5 = this.c;
				if (collider4 != collider5)
				{
					TriggerEventBroadcaster component = this.characterCollider.GetComponent<TriggerEventBroadcaster>();
					int num3 = 0;
					if (component == num3)
					{
						TriggerEventBroadcaster triggerEventBroadcaster = this.characterCollider.gameObject.AddComponent<TriggerEventBroadcaster>();
						GameObject gameObject = base.gameObject;
						triggerEventBroadcaster.target = gameObject;
					}
					Collider collider6 = this.lastCollider;
					int num4 = 0;
					if (collider6 != num4)
					{
						Collider collider7 = this.lastCollider;
						Collider collider8 = this.c;
						if (collider7 != collider8)
						{
							Collider collider9 = this.lastCollider;
							Collider collider10 = this.characterCollider;
							if (collider9 != collider10)
							{
								TriggerEventBroadcaster component2 = this.lastCollider.GetComponent<TriggerEventBroadcaster>();
								int num5 = 0;
								if (component2 != num5)
								{
									UnityEngine.Object.Destroy(component2);
								}
							}
						}
					}
				}
			}
			Collider collider11 = this.characterCollider;
			this.lastCollider = collider11;
			throw new NullReferenceException();
		}

		// Token: 0x060027E7 RID: 10215 RVA: 0x000583A0 File Offset: 0x000565A0
		[Token(Token = "0x60027E7")]
		[Address(RVA = "0x10D9180", Offset = "0x10D7F80", VA = "0x1810D9180")]
		private void LateUpdate()
		{
			/*
An exception occurred when decompiling this method (060027E7)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RootMotion.FinalIK.InteractionSystem::LateUpdate()

 ---> System.ArgumentOutOfRangeException: Non-negative number required. (Parameter 'length')
   at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)
   at System.Array.Copy(Array sourceArray, Array destinationArray, Int32 length)
   at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 51
   at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 401
   at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 276
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 112
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
		}

		// Token: 0x060027E8 RID: 10216 RVA: 0x0005844C File Offset: 0x0005664C
		[Token(Token = "0x60027E8")]
		[Address(RVA = "0x10D9BD0", Offset = "0x10D89D0", VA = "0x1810D9BD0")]
		private void OnPreFBBIK()
		{
			if (base.enabled)
			{
				FullBodyBipedIK fullBodyBipedIK = this.fullBody;
				int num = 0;
				if (!(fullBodyBipedIK == num))
				{
					InteractionLookAt interactionLookAt = this.lookAt;
					LookAtIK ik = interactionLookAt.ik;
					int num2 = 0;
					bool flag = ik == num2;
					if (!flag && interactionLookAt.firstFBBIKSolve != flag)
					{
						IKSolverLookAt solver = interactionLookAt.ik.solver;
						float headWeight = solver.headWeight;
						int num3 = 0;
						float eyesWeight = solver.eyesWeight;
						solver.headWeight = (float)num3;
						interactionLookAt.ik.solver.eyesWeight = (float)num3;
						interactionLookAt.ik.solver.Update();
						interactionLookAt.ik.solver.headWeight = headWeight;
						interactionLookAt.ik.solver.eyesWeight = eyesWeight;
					}
				}
			}
		}

		// Token: 0x060027E9 RID: 10217 RVA: 0x0005851C File Offset: 0x0005671C
		[Token(Token = "0x60027E9")]
		[Address(RVA = "0x10D9A10", Offset = "0x10D8810", VA = "0x1810D9A10")]
		private void OnPostFBBIK()
		{
			if (base.enabled)
			{
				FullBodyBipedIK fullBodyBipedIK = this.fullBody;
				int num = 0;
				if (!(fullBodyBipedIK == num))
				{
					InteractionEffector[] array = this.interactionEffectors;
					int num2 = 0;
					int num3 = 0;
					if (num3 < array.Length)
					{
						array[num2].OnPostFBBIK();
						InteractionEffector[] array2 = this.interactionEffectors;
						num2++;
					}
					InteractionLookAt interactionLookAt = this.lookAt;
					LookAtIK ik = interactionLookAt.ik;
					int num4 = 0;
					bool flag = ik == num4;
					if (!flag && interactionLookAt.firstFBBIKSolve != flag)
					{
						IKSolverLookAt solver = interactionLookAt.ik.solver;
						float bodyWeight = solver.bodyWeight;
						solver.bodyWeight = 0f;
						interactionLookAt.ik.solver.Update();
						interactionLookAt.ik.solver.bodyWeight = bodyWeight;
						interactionLookAt.firstFBBIKSolve = false;
					}
				}
			}
		}

		// Token: 0x060027EA RID: 10218 RVA: 0x00058600 File Offset: 0x00056800
		[Token(Token = "0x60027EA")]
		[Address(RVA = "0x10D9520", Offset = "0x10D8320", VA = "0x1810D9520")]
		private void OnDestroy()
		{
			IKSolverFullBodyBiped solver;
			Delegate @delegate;
			int num2;
			do
			{
				FullBodyBipedIK fullBodyBipedIK = this.fullBody;
				int num = 0;
				if (fullBodyBipedIK == num)
				{
					return;
				}
				solver = this.fullBody.solver;
				IKSolver.UpdateDelegate onPreUpdate = solver.OnPreUpdate;
				IKSolver.UpdateDelegate updateDelegate = new IKSolver.UpdateDelegate(this.OnPreFBBIK);
				@delegate = Delegate.Remove(onPreUpdate, updateDelegate);
				num2 = 0;
			}
			while (@delegate != 0 && @delegate == 0);
			solver.OnPreUpdate = num2;
			IKSolverFullBodyBiped solver2 = this.fullBody.solver;
			IKSolver.UpdateDelegate onPostUpdate = solver2.OnPostUpdate;
			IKSolver.UpdateDelegate updateDelegate2 = new IKSolver.UpdateDelegate(this.OnPostFBBIK);
			Delegate delegate2 = Delegate.Remove(onPostUpdate, updateDelegate2);
			if (delegate2 == 0 || delegate2 != 0)
			{
				solver2.OnPostUpdate = delegate2;
				InteractionSystem.InteractionDelegate onInteractionStart = this.OnInteractionStart;
				InteractionSystem.InteractionDelegate interactionDelegate = new InteractionSystem.InteractionDelegate(this.LookAtInteraction);
				Delegate delegate3 = Delegate.Remove(onInteractionStart, interactionDelegate);
				if (delegate3 == 0 || delegate3 != 0)
				{
					this.OnInteractionStart = delegate3;
					InteractionSystem.InteractionDelegate onInteractionPause = this.OnInteractionPause;
					InteractionSystem.InteractionDelegate interactionDelegate2 = new InteractionSystem.InteractionDelegate(this.InteractionPause);
					Delegate delegate4 = Delegate.Remove(onInteractionPause, interactionDelegate2);
					if (delegate4 == 0 || delegate4 != 0)
					{
						this.OnInteractionPause = delegate4;
						InteractionSystem.InteractionDelegate onInteractionResume = this.OnInteractionResume;
						InteractionSystem.InteractionDelegate interactionDelegate3 = new InteractionSystem.InteractionDelegate(this.InteractionResume);
						Delegate delegate5 = Delegate.Remove(onInteractionResume, interactionDelegate3);
						if (delegate5 == 0 || delegate5 != 0)
						{
							this.OnInteractionResume = delegate5;
							InteractionSystem.InteractionDelegate onInteractionStop = this.OnInteractionStop;
							InteractionSystem.InteractionDelegate interactionDelegate4 = new InteractionSystem.InteractionDelegate(this.InteractionStop);
							Delegate delegate6 = Delegate.Remove(onInteractionStop, interactionDelegate4);
							if (delegate6 == 0 || delegate6 != 0)
							{
								this.OnInteractionStop = delegate6;
								return;
							}
						}
					}
				}
			}
			throw new InvalidCastException();
		}

		// Token: 0x060027EB RID: 10219 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027EB")]
		[Address(RVA = "0x10D9090", Offset = "0x10D7E90", VA = "0x1810D9090")]
		private bool IsValid(bool log)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027EC RID: 10220 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027EC")]
		[Address(RVA = "0x10DB010", Offset = "0x10D9E10", VA = "0x1810DB010")]
		private bool TriggerIndexIsValid(int index)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027ED RID: 10221 RVA: 0x00058788 File Offset: 0x00056988
		[Token(Token = "0x60027ED")]
		[Address(RVA = "0x10DA0D0", Offset = "0x10D8ED0", VA = "0x1810DA0D0")]
		[ContextMenu("User Manual")]
		private void OpenUserManual()
		{
			Application.OpenURL("http://www.root-motion.com/finalikdox/html/page10.html");
		}

		// Token: 0x060027EE RID: 10222 RVA: 0x000587A0 File Offset: 0x000569A0
		[Token(Token = "0x60027EE")]
		[Address(RVA = "0x10D9F90", Offset = "0x10D8D90", VA = "0x1810D9F90")]
		[ContextMenu("Scrpt Reference")]
		private void OpenScriptReference()
		{
			Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_interaction_system.html");
		}

		// Token: 0x060027EF RID: 10223 RVA: 0x000587B8 File Offset: 0x000569B8
		[Token(Token = "0x60027EF")]
		[Address(RVA = "0x10DBF80", Offset = "0x10DAD80", VA = "0x1810DBF80")]
		public InteractionSystem()
		{
			InteractionEffector[] array;
			InteractionEffector interactionEffector9;
			for (;;)
			{
				this.targetTag = "";
				this.fadeInTime = 0.3f;
				this.speed = 1f;
				this.resetToDefaultsSpeed = 1f;
				this.camRaycastDistance = 1f;
				List<InteractionTrigger> list = new List();
				this.inContact = list;
				List<int> list2 = new List();
				this.bestRangeIndexes = list2;
				this.lookAt = new InteractionLookAt
				{
					lerpSpeed = 5f,
					weightSpeed = 1f
				};
				array = new InteractionEffector[9];
				int num;
				InteractionEffector interactionEffector = new InteractionEffector((FullBodyBipedEffector)num);
				num = 0;
				if (interactionEffector == 0 || interactionEffector != 0)
				{
					array[0] = interactionEffector;
					InteractionEffector interactionEffector2 = new InteractionEffector(FullBodyBipedEffector.LeftFoot);
					if (interactionEffector2 == 0 || interactionEffector2 != 0)
					{
						array[1] = interactionEffector2;
						InteractionEffector interactionEffector3 = new InteractionEffector(FullBodyBipedEffector.LeftHand);
						if (interactionEffector3 == 0 || interactionEffector3 != 0)
						{
							array[2] = interactionEffector3;
							InteractionEffector interactionEffector4 = new InteractionEffector(FullBodyBipedEffector.LeftShoulder);
							if (interactionEffector4 == 0 || interactionEffector4 != 0)
							{
								array[3] = interactionEffector4;
								InteractionEffector interactionEffector5 = new InteractionEffector(FullBodyBipedEffector.LeftThigh);
								if (interactionEffector5 == 0 || interactionEffector5 != 0)
								{
									array[4] = interactionEffector5;
									InteractionEffector interactionEffector6 = new InteractionEffector(FullBodyBipedEffector.RightFoot);
									if (interactionEffector6 == 0 || interactionEffector6 != 0)
									{
										array[5] = interactionEffector6;
										InteractionEffector interactionEffector7 = new InteractionEffector(FullBodyBipedEffector.RightHand);
										if (interactionEffector7 == 0 || interactionEffector7 != 0)
										{
											array[6] = interactionEffector7;
											InteractionEffector interactionEffector8 = new InteractionEffector(FullBodyBipedEffector.RightShoulder);
											if (interactionEffector8 == 0 || interactionEffector8 != 0)
											{
												array[7] = interactionEffector8;
												interactionEffector9 = new InteractionEffector(FullBodyBipedEffector.RightThigh);
												if (interactionEffector9 == 0 || interactionEffector9 != 0)
												{
													break;
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
			array[8] = interactionEffector9;
			this.interactionEffectors = array;
			base..ctor();
		}

		// Token: 0x04003143 RID: 12611
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4003143")]
		[Tooltip("If not empty, only the targets with the specified tag will be used by this Interaction System.")]
		public string targetTag;

		// Token: 0x04003144 RID: 12612
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x4003144")]
		[Tooltip("The fade in time of the interaction.")]
		public float fadeInTime;

		// Token: 0x04003145 RID: 12613
		[FieldOffset(Offset = "0x24")]
		[Token(Token = "0x4003145")]
		[Tooltip("The master speed for all interactions.")]
		public float speed;

		// Token: 0x04003146 RID: 12614
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x4003146")]
		[Tooltip("If > 0, lerps all the FBBIK channels used by the Interaction System back to their default or initial values when not in interaction.")]
		public float resetToDefaultsSpeed;

		// Token: 0x04003147 RID: 12615
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x4003147")]
		[FormerlySerializedAs("collider")]
		[Tooltip("The collider that registers OnTriggerEnter and OnTriggerExit events with InteractionTriggers.")]
		[Header("Triggering")]
		public Collider characterCollider;

		// Token: 0x04003148 RID: 12616
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4003148")]
		[FormerlySerializedAs("camera")]
		[Tooltip("Will be used by Interaction Triggers that need the camera's position. Assign the first person view character camera.")]
		public Transform FPSCamera;

		// Token: 0x04003149 RID: 12617
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x4003149")]
		[Tooltip("The layers that will be raycasted from the camera (along camera.forward). All InteractionTrigger look at target colliders should be included.")]
		public LayerMask camRaycastLayers;

		// Token: 0x0400314A RID: 12618
		[FieldOffset(Offset = "0x44")]
		[Token(Token = "0x400314A")]
		[Tooltip("Max distance of raycasting from the camera.")]
		public float camRaycastDistance;

		// Token: 0x0400314C RID: 12620
		[FieldOffset(Offset = "0x50")]
		[Token(Token = "0x400314C")]
		private List<InteractionTrigger> inContact;

		// Token: 0x0400314D RID: 12621
		[FieldOffset(Offset = "0x58")]
		[Token(Token = "0x400314D")]
		private List<int> bestRangeIndexes;

		// Token: 0x0400314E RID: 12622
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x400314E")]
		public InteractionSystem.InteractionDelegate OnInteractionStart;

		// Token: 0x0400314F RID: 12623
		[FieldOffset(Offset = "0x68")]
		[Token(Token = "0x400314F")]
		public InteractionSystem.InteractionDelegate OnInteractionPause;

		// Token: 0x04003150 RID: 12624
		[FieldOffset(Offset = "0x70")]
		[Token(Token = "0x4003150")]
		public InteractionSystem.InteractionDelegate OnInteractionPickUp;

		// Token: 0x04003151 RID: 12625
		[FieldOffset(Offset = "0x78")]
		[Token(Token = "0x4003151")]
		public InteractionSystem.InteractionDelegate OnInteractionResume;

		// Token: 0x04003152 RID: 12626
		[FieldOffset(Offset = "0x80")]
		[Token(Token = "0x4003152")]
		public InteractionSystem.InteractionDelegate OnInteractionStop;

		// Token: 0x04003153 RID: 12627
		[FieldOffset(Offset = "0x88")]
		[Token(Token = "0x4003153")]
		public InteractionSystem.InteractionEventDelegate OnInteractionEvent;

		// Token: 0x04003154 RID: 12628
		[FieldOffset(Offset = "0x90")]
		[Token(Token = "0x4003154")]
		public RaycastHit raycastHit;

		// Token: 0x04003155 RID: 12629
		[FieldOffset(Offset = "0xC0")]
		[Token(Token = "0x4003155")]
		[Space]
		[SerializeField]
		[Space(10f)]
		[Tooltip("Reference to the FBBIK component.")]
		private FullBodyBipedIK fullBody;

		// Token: 0x04003156 RID: 12630
		[FieldOffset(Offset = "0xC8")]
		[Token(Token = "0x4003156")]
		[Tooltip("Handles looking at the interactions.")]
		public InteractionLookAt lookAt;

		// Token: 0x04003157 RID: 12631
		[FieldOffset(Offset = "0xD0")]
		[Token(Token = "0x4003157")]
		private InteractionEffector[] interactionEffectors;

		// Token: 0x04003158 RID: 12632
		[FieldOffset(Offset = "0xD8")]
		[Token(Token = "0x4003158")]
		private bool initiated;

		// Token: 0x04003159 RID: 12633
		[FieldOffset(Offset = "0xE0")]
		[Token(Token = "0x4003159")]
		private Collider lastCollider;

		// Token: 0x0400315A RID: 12634
		[FieldOffset(Offset = "0xE8")]
		[Token(Token = "0x400315A")]
		private Collider c;

		// Token: 0x0200044F RID: 1103
		[Token(Token = "0x200044F")]
		public sealed class InteractionDelegate : MulticastDelegate
		{
			// Token: 0x060027F0 RID: 10224 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60027F0")]
			[Address(RVA = "0x44EA10", Offset = "0x44D810", VA = "0x18044EA10")]
			public InteractionDelegate(object @object, IntPtr method)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060027F1 RID: 10225 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60027F1")]
			[Address(RVA = "0x47AE20", Offset = "0x479C20", VA = "0x18047AE20", Slot = "12")]
			public void Invoke(FullBodyBipedEffector effectorType, InteractionObject interactionObject)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060027F2 RID: 10226 RVA: 0x00058968 File Offset: 0x00056B68
			[Token(Token = "0x60027F2")]
			[Address(RVA = "0x14EAE90", Offset = "0x14E9C90", VA = "0x1814EAE90", Slot = "13")]
			public IAsyncResult BeginInvoke(FullBodyBipedEffector effectorType, InteractionObject interactionObject, AsyncCallback callback, object @object)
			{
				return typeof(FullBodyBipedEffector).TypeHandle;
			}

			// Token: 0x060027F3 RID: 10227 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60027F3")]
			[Address(RVA = "0x44E730", Offset = "0x44D530", VA = "0x18044E730", Slot = "14")]
			public void EndInvoke(IAsyncResult result)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x02000450 RID: 1104
		[Token(Token = "0x2000450")]
		public sealed class InteractionEventDelegate : MulticastDelegate
		{
			// Token: 0x060027F4 RID: 10228 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60027F4")]
			[Address(RVA = "0x44EA10", Offset = "0x44D810", VA = "0x18044EA10")]
			public InteractionEventDelegate(object @object, IntPtr method)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060027F5 RID: 10229 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60027F5")]
			[Address(RVA = "0x14EAFB0", Offset = "0x14E9DB0", VA = "0x1814EAFB0", Slot = "12")]
			public void Invoke(FullBodyBipedEffector effectorType, InteractionObject interactionObject, InteractionObject.InteractionEvent interactionEvent)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060027F6 RID: 10230 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60027F6")]
			[Address(RVA = "0x14EAF20", Offset = "0x14E9D20", VA = "0x1814EAF20", Slot = "13")]
			public IAsyncResult BeginInvoke(FullBodyBipedEffector effectorType, InteractionObject interactionObject, InteractionObject.InteractionEvent interactionEvent, AsyncCallback callback, object @object)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x060027F7 RID: 10231 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x60027F7")]
			[Address(RVA = "0x44E730", Offset = "0x44D530", VA = "0x18044E730", Slot = "14")]
			public void EndInvoke(IAsyncResult result)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}
	}
}
