extern "C"  void UnityRuntimeServices__cctor_m2127027405 (Il2CppObject * __this /* static, unused */, const MethodInfo* method)
{
	static bool s_Il2CppMethodIntialized;
	if (!s_Il2CppMethodIntialized)
	{
		il2cpp_codegen_initialize_method (UnityRuntimeServices__cctor_m2127027405_MetadataUsageId);
		s_Il2CppMethodIntialized = true;
	}
	{
		UnityRuntimeServices_U24static_initializerU24_m770835859(NULL /*static, unused*/, /*hidden argument*/NULL);
		IL2CPP_RUNTIME_CLASS_INIT(Type_t_il2cpp_TypeInfo_var);
		Type_t * L_0 = Type_GetTypeFromHandle_m3806905434(NULL /*static, unused*/, LoadTypeToken(Extensions_t1330391816_0_0_0_var), /*hidden argument*/NULL);
		IL2CPP_RUNTIME_CLASS_INIT(RuntimeServices_t2273795202_il2cpp_TypeInfo_var);
		RuntimeServices_RegisterExtensions_m245487673(NULL /*static, unused*/, L_0, /*hidden argument*/NULL);
		((UnityRuntimeServices_t1016654613_StaticFields*)UnityRuntimeServices_t1016654613_il2cpp_TypeInfo_var->static_fields)->set_Initialized_2((bool)1);
		return;
	}
}
extern "C"  void UnityRuntimeServices_U24static_initializerU24_m770835859 (Il2CppObject * __this /* static, unused */, const MethodInfo* method)
{
	static bool s_Il2CppMethodIntialized;
	if (!s_Il2CppMethodIntialized)
	{
		il2cpp_codegen_initialize_method (UnityRuntimeServices_U24static_initializerU24_m770835859_MetadataUsageId);
		s_Il2CppMethodIntialized = true;
	}
	{
		NullCheck((Il2CppArray *)(Il2CppArray *)((ObjectU5BU5D_t11523773*)SZArrayNew(ObjectU5BU5D_t11523773_il2cpp_TypeInfo_var, (uint32_t)0)));
		Il2CppObject * L_0 = VirtFuncInvoker0< Il2CppObject * >::Invoke(4 /* System.Collections.IEnumerator System.Array::GetEnumerator() */, (Il2CppArray *)(Il2CppArray *)((ObjectU5BU5D_t11523773*)SZArrayNew(ObjectU5BU5D_t11523773_il2cpp_TypeInfo_var, (uint32_t)0)));
		IL2CPP_RUNTIME_CLASS_INIT(UnityRuntimeServices_t1016654613_il2cpp_TypeInfo_var);
		((UnityRuntimeServices_t1016654613_StaticFields*)UnityRuntimeServices_t1016654613_il2cpp_TypeInfo_var->static_fields)->set_EmptyEnumerator_0(L_0);
		IL2CPP_RUNTIME_CLASS_INIT(Type_t_il2cpp_TypeInfo_var);
		Type_t * L_1 = Type_GetTypeFromHandle_m3806905434(NULL /*static, unused*/, LoadTypeToken(IEnumerator_t287207039_0_0_0_var), /*hidden argument*/NULL);
		((UnityRuntimeServices_t1016654613_StaticFields*)UnityRuntimeServices_t1016654613_il2cpp_TypeInfo_var->static_fields)->set_EnumeratorType_1(L_1);
		return;
	}
}
extern "C" void EqualityComparer_1__cctor_m27412_gshared (Object_t * __this /* static, unused */, const MethodInfo* method)
{
	static bool s_Il2CppMethodIntialized;
	if (!s_Il2CppMethodIntialized)
	{
		GenericEqualityComparer_1_t3564_0_0_0_var = il2cpp_codegen_type_from_index(3752);
		Type_t_il2cpp_TypeInfo_var = il2cpp_codegen_type_info_from_index(44);
		TypeU5BU5D_t720_il2cpp_TypeInfo_var = il2cpp_codegen_type_info_from_index(428);
		s_Il2CppMethodIntialized = true;
	}
	{
		IL2CPP_RUNTIME_CLASS_INIT(Type_t_il2cpp_TypeInfo_var);
		Type_t * L_0 = Type_GetTypeFromHandle_m333(NULL /*static, unused*/, (RuntimeTypeHandle_t1602 )LoadTypeToken(IL2CPP_RGCTX_TYPE(InitializedTypeInfo(method->declaring_type)->rgctx_data, 0)), /*hidden argument*/NULL);
		Type_t * L_1 = Type_GetTypeFromHandle_m333(NULL /*static, unused*/, (RuntimeTypeHandle_t1602 )LoadTypeToken(IL2CPP_RGCTX_TYPE(InitializedTypeInfo(method->declaring_type)->rgctx_data, 1)), /*hidden argument*/NULL);
		NullCheck((Type_t *)L_0);
		bool L_2 = (bool)VirtFuncInvoker1< bool, Type_t * >::Invoke(40 /* System.Boolean System.Type::IsAssignableFrom(System.Type) */, (Type_t *)L_0, (Type_t *)L_1);
		if (!L_2)
		{
			goto IL_0054;
		}
	}
	{
		IL2CPP_RUNTIME_CLASS_INIT(Type_t_il2cpp_TypeInfo_var);
		Type_t * L_3 = Type_GetTypeFromHandle_m333(NULL /*static, unused*/, (RuntimeTypeHandle_t1602 )LoadTypeToken(GenericEqualityComparer_1_t3564_0_0_0_var), /*hidden argument*/NULL);
		TypeU5BU5D_t720* L_4 = (TypeU5BU5D_t720*)((TypeU5BU5D_t720*)SZArrayNew(TypeU5BU5D_t720_il2cpp_TypeInfo_var, 1));
		Type_t * L_5 = Type_GetTypeFromHandle_m333(NULL /*static, unused*/, (RuntimeTypeHandle_t1602 )LoadTypeToken(IL2CPP_RGCTX_TYPE(InitializedTypeInfo(method->declaring_type)->rgctx_data, 1)), /*hidden argument*/NULL);
		NullCheck(L_4);
		IL2CPP_ARRAY_BOUNDS_CHECK(L_4, 0);
		ArrayElementTypeCheck (L_4, L_5);
		*((Type_t **)(Type_t **)SZArrayLdElema(L_4, 0, sizeof(Type_t *))) = (Type_t *)L_5;
		NullCheck((Type_t *)L_3);
		Type_t * L_6 = (Type_t *)VirtFuncInvoker1< Type_t *, TypeU5BU5D_t720* >::Invoke(78 /* System.Type System.Type::MakeGenericType(System.Type[]) */, (Type_t *)L_3, (TypeU5BU5D_t720*)L_4);
		Object_t * L_7 = Activator_CreateInstance_m13379(NULL /*static, unused*/, (Type_t *)L_6, /*hidden argument*/NULL);
		((EqualityComparer_1_t3285_StaticFields*)IL2CPP_RGCTX_DATA(InitializedTypeInfo(method->declaring_type)->rgctx_data, 3)->static_fields)->____default_0 = ((EqualityComparer_1_t3285 *)Castclass(L_7, IL2CPP_RGCTX_DATA(InitializedTypeInfo(method->declaring_type)->rgctx_data, 2)));
		goto IL_005e;
	}

IL_0054:
	{
		DefaultComparer_t3286 * L_8 = (DefaultComparer_t3286 *)il2cpp_codegen_object_new (IL2CPP_RGCTX_DATA(InitializedTypeInfo(method->declaring_type)->rgctx_data, 4));
		(( void (*) (DefaultComparer_t3286 *, const MethodInfo*))IL2CPP_RGCTX_METHOD_INFO(InitializedTypeInfo(method->declaring_type)->rgctx_data, 5)->method)(L_8, /*hidden argument*/IL2CPP_RGCTX_METHOD_INFO(InitializedTypeInfo(method->declaring_type)->rgctx_data, 5));
		((EqualityComparer_1_t3285_StaticFields*)IL2CPP_RGCTX_DATA(InitializedTypeInfo(method->declaring_type)->rgctx_data, 3)->static_fields)->____default_0 = L_8;
	}

IL_005e:
	{
		return;
	}
}
extern "C"  Il2CppObject * UnityRuntimeServices_GetEnumerator_m3009175716 (Il2CppObject * __this /* static, unused */, Il2CppObject * ___obj, const MethodInfo* method)
{
	static bool s_Il2CppMethodIntialized;
	if (!s_Il2CppMethodIntialized)
	{
		il2cpp_codegen_initialize_method (UnityRuntimeServices_GetEnumerator_m3009175716_MetadataUsageId);
		s_Il2CppMethodIntialized = true;
	}
	Il2CppObject * V_0 = NULL;
	Il2CppObject * V_1 = NULL;
	Il2CppObject * G_B12_0 = NULL;
	Il2CppObject * G_B6_0 = NULL;
	Il2CppObject * G_B5_0 = NULL;
	{
		Il2CppObject * L_0 = ___obj;
		if (L_0)
		{
			goto IL_0010;
		}
	}
	{
		IL2CPP_RUNTIME_CLASS_INIT(UnityRuntimeServices_t1016654613_il2cpp_TypeInfo_var);
		Il2CppObject * L_1 = ((UnityRuntimeServices_t1016654613_StaticFields*)UnityRuntimeServices_t1016654613_il2cpp_TypeInfo_var->static_fields)->get_EmptyEnumerator_0();
		G_B12_0 = L_1;
		goto IL_0086;
	}

IL_0010:
	{
		Il2CppObject * L_2 = ___obj;
		IL2CPP_RUNTIME_CLASS_INIT(UnityRuntimeServices_t1016654613_il2cpp_TypeInfo_var);
		bool L_3 = UnityRuntimeServices_IsValueTypeArray_m1162044604(NULL /*static, unused*/, L_2, /*hidden argument*/NULL);
		if (L_3)
		{
			goto IL_0026;
		}
	}
	{
		Il2CppObject * L_4 = ___obj;
		if (!((Array_t1209885965 *)IsInstClass(L_4, Array_t1209885965_il2cpp_TypeInfo_var)))
		{
			goto IL_0050;
		}
	}

IL_0026:
	{
		Il2CppObject * L_5 = ___obj;
		Il2CppObject * L_6 = L_5;
		G_B5_0 = L_6;
		if (((Il2CppObject *)IsInst(L_6, IList_t1612618265_il2cpp_TypeInfo_var)))
		{
			G_B6_0 = L_6;
			goto IL_0041;
		}
	}
	{
		IL2CPP_RUNTIME_CLASS_INIT(Type_t_il2cpp_TypeInfo_var);
		Type_t * L_7 = Type_GetTypeFromHandle_m3806905434(NULL /*static, unused*/, LoadTypeToken(IList_t1612618265_0_0_0_var), /*hidden argument*/NULL);
		IL2CPP_RUNTIME_CLASS_INIT(RuntimeServices_t2273795202_il2cpp_TypeInfo_var);
		Il2CppObject * L_8 = RuntimeServices_Coerce_m3737249806(NULL /*static, unused*/, G_B5_0, L_7, /*hidden argument*/NULL);
		G_B6_0 = L_8;
	}

IL_0041:
	{
		ListUpdateableEnumerator_t2904422009 * L_9 = (ListUpdateableEnumerator_t2904422009 *)il2cpp_codegen_object_new(ListUpdateableEnumerator_t2904422009_il2cpp_TypeInfo_var);
		ListUpdateableEnumerator__ctor_m2956977389(L_9, ((Il2CppObject *)Castclass(G_B6_0, IList_t1612618265_il2cpp_TypeInfo_var)), /*hidden argument*/NULL);
		G_B12_0 = ((Il2CppObject *)(L_9));
		goto IL_0086;
	}

IL_0050:
	{
		Il2CppObject * L_10 = ___obj;
		V_0 = ((Il2CppObject *)IsInst(L_10, IEnumerable_t287189635_il2cpp_TypeInfo_var));
		Il2CppObject * L_11 = V_0;
		if (!L_11)
		{
			goto IL_0068;
		}
	}
	{
		Il2CppObject * L_12 = V_0;
		NullCheck(L_12);
		Il2CppObject * L_13 = InterfaceFuncInvoker0< Il2CppObject * >::Invoke(0 /* System.Collections.IEnumerator System.Collections.IEnumerable::GetEnumerator() */, IEnumerable_t287189635_il2cpp_TypeInfo_var, L_12);
		G_B12_0 = L_13;
		goto IL_0086;
	}

IL_0068:
	{
		Il2CppObject * L_14 = ___obj;
		V_1 = ((Il2CppObject *)IsInst(L_14, IEnumerator_t287207039_il2cpp_TypeInfo_var));
		Il2CppObject * L_15 = V_1;
		if (!L_15)
		{
			goto IL_007b;
		}
	}
	{
		Il2CppObject * L_16 = V_1;
		G_B12_0 = L_16;
		goto IL_0086;
	}

IL_007b:
	{
		Il2CppObject * L_17 = ___obj;
		IL2CPP_RUNTIME_CLASS_INIT(RuntimeServices_t2273795202_il2cpp_TypeInfo_var);
		Il2CppObject * L_18 = RuntimeServices_GetEnumerable_m2581065081(NULL /*static, unused*/, L_17, /*hidden argument*/NULL);
		NullCheck(L_18);
		Il2CppObject * L_19 = InterfaceFuncInvoker0< Il2CppObject * >::Invoke(0 /* System.Collections.IEnumerator System.Collections.IEnumerable::GetEnumerator() */, IEnumerable_t287189635_il2cpp_TypeInfo_var, L_18);
		G_B12_0 = L_19;
	}

IL_0086:
	{
		return G_B12_0;
	}
}