text: // Autogenerated from CppHeaderCreator
  // Created by Sc2ad
  // =========================================================================
  #pragma once
  // Begin includes
  #include "extern/beatsaber-hook/shared/utils/typedefs.h"
  #include "extern/beatsaber-hook/shared/utils/byref.hpp"
  // Including type: UnityEngine.Playables.PlayableAsset
  #include "UnityEngine/Playables/PlayableAsset.hpp"
  // Including type: UnityEngine.Timeline.IPropertyPreview
  #include "UnityEngine/Timeline/IPropertyPreview.hpp"
  // Including type: UnityEngine.ISerializationCallbackReceiver
  #include "UnityEngine/ISerializationCallbackReceiver.hpp"
  // Including type: UnityEngine.Timeline.ICurvesOwner
  #include "UnityEngine/Timeline/ICurvesOwner.hpp"
  // Including type: UnityEngine.Timeline.DiscreteTime
  #include "UnityEngine/Timeline/DiscreteTime.hpp"
  // Including type: System.Nullable`1
  #include "System/Nullable_1.hpp"
  // Including type: UnityEngine.Timeline.MarkerList
  #include "UnityEngine/Timeline/MarkerList.hpp"
  // Including type: System.Int32
  #include "System/Int32.hpp"
  // Including type: UnityEngine.Playables.Playable
  #include "UnityEngine/Playables/Playable.hpp"
  #include "extern/beatsaber-hook/shared/utils/il2cpp-utils-methods.hpp"
  #include "extern/beatsaber-hook/shared/utils/il2cpp-utils-properties.hpp"
  #include "extern/beatsaber-hook/shared/utils/il2cpp-utils-fields.hpp"
  #include "extern/beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Begin forward declares
  // Forward declaring namespace: UnityEngine::Timeline
  namespace UnityEngine::Timeline {
    // Forward declaring type: TimelineClip
    class TimelineClip;
    // Forward declaring type: TrackBindingTypeAttribute
    class TrackBindingTypeAttribute;
    // Forward declaring type: TimelineAsset
    class TimelineAsset;
    // Forward declaring type: IMarker
    class IMarker;
    // Forward declaring type: IntervalTree`1<T>
    template<typename T>
    class IntervalTree_1;
    // Forward declaring type: RuntimeElement
    class RuntimeElement;
    // Forward declaring type: IPropertyCollector
    class IPropertyCollector;
  }
  // Forward declaring namespace: System
  namespace System {
    // Forward declaring type: String
    class String;
    // Forward declaring type: Action`3<T1, T2, T3>
    template<typename T1, typename T2, typename T3>
    class Action_3;
    // Forward declaring type: Type
    class Type;
  }
  // Forward declaring namespace: UnityEngine
  namespace UnityEngine {
    // Forward declaring type: AnimationClip
    class AnimationClip;
    // Skipping declaration: ScriptableObject because it is already included!
    // Forward declaring type: GameObject
    class GameObject;
    // Skipping declaration: Object because it is already included!
  }
  // Forward declaring namespace: System::Collections::Generic
  namespace System::Collections::Generic {
    // Forward declaring type: List`1<T>
    template<typename T>
    class List_1;
    // Forward declaring type: IEnumerable`1<T>
    template<typename T>
    class IEnumerable_1;
    // Forward declaring type: Dictionary`2<TKey, TValue>
    template<typename TKey, typename TValue>
    class Dictionary_2;
    // Forward declaring type: IList`1<T>
    template<typename T>
    class IList_1;
  }
  // Forward declaring namespace: UnityEngine::Playables
  namespace UnityEngine::Playables {
    // Forward declaring type: PlayableGraph
    struct PlayableGraph;
    // Skipping declaration: IPlayableAsset because it is already included!
    // Forward declaring type: PlayableDirector
    class PlayableDirector;
  }
  // Completed forward declares
  // Type namespace: UnityEngine.Timeline
  namespace UnityEngine::Timeline {
    // WARNING Size may be invalid!
    // Autogenerated type: UnityEngine.Timeline.TrackAsset
    // [TokenAttribute] Offset: FFFFFFFF
    // [IgnoreOnPlayableTrackAttribute] Offset: DFBBA0
    class TrackAsset : public UnityEngine::Playables::PlayableAsset/*, public UnityEngine::Timeline::IPropertyPreview, public UnityEngine::ISerializationCallbackReceiver, public UnityEngine::Timeline::ICurvesOwner*/ {
      public:
      // Nested type: UnityEngine::Timeline::TrackAsset::Versions
      struct Versions;
      // Nested type: UnityEngine::Timeline::TrackAsset::TrackAssetUpgrade
      class TrackAssetUpgrade;
      // Nested type: UnityEngine::Timeline::TrackAsset::TransientBuildData
      struct TransientBuildData;
      // Nested type: UnityEngine::Timeline::TrackAsset::$get_outputs$d__65
      class $get_outputs$d__65;
      // Nested type: UnityEngine::Timeline::TrackAsset::$$c
      class $$c;
      // Size: 0x18
      #pragma pack(push, 1)
      // WARNING Layout: Sequential may not be correctly taken into account!
      // Autogenerated type: UnityEngine.Timeline.TrackAsset/UnityEngine.Timeline.TransientBuildData
      // [TokenAttribute] Offset: FFFFFFFF
      struct TransientBuildData/*, public System::ValueType*/ {
        public:
        // public System.Collections.Generic.List`1<UnityEngine.Timeline.TrackAsset> trackList
        // Size: 0x8
        // Offset: 0x0
        System::Collections::Generic::List_1<UnityEngine::Timeline::TrackAsset*>* trackList;
        // Field size check
        static_assert(sizeof(System::Collections::Generic::List_1<UnityEngine::Timeline::TrackAsset*>*) == 0x8);
        // public System.Collections.Generic.List`1<UnityEngine.Timeline.TimelineClip> clipList
        // Size: 0x8
        // Offset: 0x8
        System::Collections::Generic::List_1<UnityEngine::Timeline::TimelineClip*>* clipList;
        // Field size check
        static_assert(sizeof(System::Collections::Generic::List_1<UnityEngine::Timeline::TimelineClip*>*) == 0x8);
        // public System.Collections.Generic.List`1<UnityEngine.Timeline.IMarker> markerList
        // Size: 0x8
        // Offset: 0x10
        System::Collections::Generic::List_1<UnityEngine::Timeline::IMarker*>* markerList;
        // Field size check
        static_assert(sizeof(System::Collections::Generic::List_1<UnityEngine::Timeline::IMarker*>*) == 0x8);
        // Creating value type constructor for type: TransientBuildData
        constexpr TransientBuildData(System::Collections::Generic::List_1<UnityEngine::Timeline::TrackAsset*>* trackList_ = {}, System::Collections::Generic::List_1<UnityEngine::Timeline::TimelineClip*>* clipList_ = {}, System::Collections::Generic::List_1<UnityEngine::Timeline::IMarker*>* markerList_ = {}) noexcept : trackList{trackList_}, clipList{clipList_}, markerList{markerList_} {}
        // Creating interface conversion operator: operator System::ValueType
        operator System::ValueType() noexcept {
          return *reinterpret_cast<System::ValueType*>(this);
        }
        // Get instance field reference: public System.Collections.Generic.List`1<UnityEngine.Timeline.TrackAsset> trackList
        System::Collections::Generic::List_1<UnityEngine::Timeline::TrackAsset*>*& dyn_trackList();
        // Get instance field reference: public System.Collections.Generic.List`1<UnityEngine.Timeline.TimelineClip> clipList
        System::Collections::Generic::List_1<UnityEngine::Timeline::TimelineClip*>*& dyn_clipList();
        // Get instance field reference: public System.Collections.Generic.List`1<UnityEngine.Timeline.IMarker> markerList
        System::Collections::Generic::List_1<UnityEngine::Timeline::IMarker*>*& dyn_markerList();
        // static public UnityEngine.Timeline.TrackAsset/UnityEngine.Timeline.TransientBuildData Create()
        // Offset: 0x2370A04
        static UnityEngine::Timeline::TrackAsset::TransientBuildData Create();
        // public System.Void Clear()
        // Offset: 0x236E150
        void Clear();
      }; // UnityEngine.Timeline.TrackAsset/UnityEngine.Timeline.TransientBuildData
      #pragma pack(pop)
      static check_size<sizeof(TrackAsset::TransientBuildData), 16 + sizeof(System::Collections::Generic::List_1<UnityEngine::Timeline::IMarker*>*)> __UnityEngine_Timeline_TrackAsset_TransientBuildDataSizeCheck;
      static_assert(sizeof(TrackAsset::TransientBuildData) == 0x18);
      // private System.Int32 m_Version
      // Size: 0x4
      // Offset: 0x18
      int m_Version;
      // Field size check
      static_assert(sizeof(int) == 0x4);
      // [ObsoleteAttribute] Offset: 0xDFCB78
      // [FormerlySerializedAsAttribute] Offset: 0xDFCB78
      // UnityEngine.AnimationClip m_AnimClip
      // Size: 0x8
      // Offset: 0x20
      UnityEngine::AnimationClip* m_AnimClip;
      // Field size check
      static_assert(sizeof(UnityEngine::AnimationClip*) == 0x8);
      // private System.Boolean m_Locked
      // Size: 0x1
      // Offset: 0x28
      bool m_Locked;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // private System.Boolean m_Muted
      // Size: 0x1
      // Offset: 0x29
      bool m_Muted;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // private System.String m_CustomPlayableFullTypename
      // Size: 0x8
      // Offset: 0x30
      ::Il2CppString* m_CustomPlayableFullTypename;
      // Field size check
      static_assert(sizeof(::Il2CppString*) == 0x8);
      // private UnityEngine.AnimationClip m_Curves
      // Size: 0x8
      // Offset: 0x38
      UnityEngine::AnimationClip* m_Curves;
      // Field size check
      static_assert(sizeof(UnityEngine::AnimationClip*) == 0x8);
      // private UnityEngine.Playables.PlayableAsset m_Parent
      // Size: 0x8
      // Offset: 0x40
      UnityEngine::Playables::PlayableAsset* m_Parent;
      // Field size check
      static_assert(sizeof(UnityEngine::Playables::PlayableAsset*) == 0x8);
      // private System.Collections.Generic.List`1<UnityEngine.ScriptableObject> m_Children
      // Size: 0x8
      // Offset: 0x48
      System::Collections::Generic::List_1<UnityEngine::ScriptableObject*>* m_Children;
      // Field size check
      static_assert(sizeof(System::Collections::Generic::List_1<UnityEngine::ScriptableObject*>*) == 0x8);
      // private System.Int32 m_ItemsHash
      // Size: 0x4
      // Offset: 0x50
      int m_ItemsHash;
      // Field size check
      static_assert(sizeof(int) == 0x4);
      // private UnityEngine.Timeline.TimelineClip[] m_ClipsCache
      // Size: 0x8
      // Offset: 0x58
      ::Array<UnityEngine::Timeline::TimelineClip*>* m_ClipsCache;
      // Field size check
      static_assert(sizeof(::Array<UnityEngine::Timeline::TimelineClip*>*) == 0x8);
      // private UnityEngine.Timeline.DiscreteTime m_Start
      // Size: 0x8
      // Offset: 0x60
      UnityEngine::Timeline::DiscreteTime m_Start;
      // Field size check
      static_assert(sizeof(UnityEngine::Timeline::DiscreteTime) == 0x8);
      // private UnityEngine.Timeline.DiscreteTime m_End
      // Size: 0x8
      // Offset: 0x68
      UnityEngine::Timeline::DiscreteTime m_End;
      // Field size check
      static_assert(sizeof(UnityEngine::Timeline::DiscreteTime) == 0x8);
      // private System.Boolean m_CacheSorted
      // Size: 0x1
      // Offset: 0x70
      bool m_CacheSorted;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // private System.Nullable`1<System.Boolean> m_SupportsNotifications
      // Size: 0xFFFFFFFF
      // Offset: 0x71
      System::Nullable_1<bool> m_SupportsNotifications;
      // private System.Collections.Generic.IEnumerable`1<UnityEngine.Timeline.TrackAsset> m_ChildTrackCache
      // Size: 0x8
      // Offset: 0x78
      System::Collections::Generic::IEnumerable_1<UnityEngine::Timeline::TrackAsset*>* m_ChildTrackCache;
      // Field size check
      static_assert(sizeof(System::Collections::Generic::IEnumerable_1<UnityEngine::Timeline::TrackAsset*>*) == 0x8);
      // protected internal System.Collections.Generic.List`1<UnityEngine.Timeline.TimelineClip> m_Clips
      // Size: 0x8
      // Offset: 0x80
      System::Collections::Generic::List_1<UnityEngine::Timeline::TimelineClip*>* m_Clips;
      // Field size check
      static_assert(sizeof(System::Collections::Generic::List_1<UnityEngine::Timeline::TimelineClip*>*) == 0x8);
      // private UnityEngine.Timeline.MarkerList m_Markers
      // Size: 0x12
      // Offset: 0x88
      UnityEngine::Timeline::MarkerList m_Markers;
      // Field size check
      static_assert(sizeof(UnityEngine::Timeline::MarkerList) == 0x12);
      // Creating value type constructor for type: TrackAsset
      TrackAsset(int m_Version_ = {}, UnityEngine::AnimationClip* m_AnimClip_ = {}, bool m_Locked_ = {}, bool m_Muted_ = {}, ::Il2CppString* m_CustomPlayableFullTypename_ = {}, UnityEngine::AnimationClip* m_Curves_ = {}, UnityEngine::Playables::PlayableAsset* m_Parent_ = {}, System::Collections::Generic::List_1<UnityEngine::ScriptableObject*>* m_Children_ = {}, int m_ItemsHash_ = {}, ::Array<UnityEngine::Timeline::TimelineClip*>* m_ClipsCache_ = {}, UnityEngine::Timeline::DiscreteTime m_Start_ = {}, UnityEngine::Timeline::DiscreteTime m_End_ = {}, bool m_CacheSorted_ = {}, System::Nullable_1<bool> m_SupportsNotifications_ = {}, System::Collections::Generic::IEnumerable_1<UnityEngine::Timeline::TrackAsset*>* m_ChildTrackCache_ = {}, System::Collections::Generic::List_1<UnityEngine::Timeline::TimelineClip*>* m_Clips_ = {}, UnityEngine::Timeline::MarkerList m_Markers_ = {}) noexcept : m_Version{m_Version_}, m_AnimClip{m_AnimClip_}, m_Locked{m_Locked_}, m_Muted{m_Muted_}, m_CustomPlayableFullTypename{m_CustomPlayableFullTypename_}, m_Curves{m_Curves_}, m_Parent{m_Parent_}, m_Children{m_Children_}, m_ItemsHash{m_ItemsHash_}, m_ClipsCache{m_ClipsCache_}, m_Start{m_Start_}, m_End{m_End_}, m_CacheSorted{m_CacheSorted_}, m_SupportsNotifications{m_SupportsNotifications_}, m_ChildTrackCache{m_ChildTrackCache_}, m_Clips{m_Clips_}, m_Markers{m_Markers_} {}
      // Creating interface conversion operator: operator UnityEngine::Timeline::IPropertyPreview
      operator UnityEngine::Timeline::IPropertyPreview() noexcept {
        return *reinterpret_cast<UnityEngine::Timeline::IPropertyPreview*>(this);
      }
      // Creating interface conversion operator: operator UnityEngine::ISerializationCallbackReceiver
      operator UnityEngine::ISerializationCallbackReceiver() noexcept {
        return *reinterpret_cast<UnityEngine::ISerializationCallbackReceiver*>(this);
      }
      // Creating interface conversion operator: operator UnityEngine::Timeline::ICurvesOwner
      operator UnityEngine::Timeline::ICurvesOwner() noexcept {
        return *reinterpret_cast<UnityEngine::Timeline::ICurvesOwner*>(this);
      }
      // Deleting conversion operator: operator System::IntPtr
      constexpr operator System::IntPtr() const noexcept = delete;
      // static field const value: static private System.Int32 k_LatestVersion
      static constexpr const int k_LatestVersion = 3;
      // Get static field: static private System.Int32 k_LatestVersion
      static int _get_k_LatestVersion();
      // Set static field: static private System.Int32 k_LatestVersion
      static void _set_k_LatestVersion(int value);
      // Get static field: static private UnityEngine.Timeline.TrackAsset/UnityEngine.Timeline.TransientBuildData s_BuildData
      static UnityEngine::Timeline::TrackAsset::TransientBuildData _get_s_BuildData();
      // Set static field: static private UnityEngine.Timeline.TrackAsset/UnityEngine.Timeline.TransientBuildData s_BuildData
      static void _set_s_BuildData(UnityEngine::Timeline::TrackAsset::TransientBuildData value);
      // static field const value: static System.String kDefaultCurvesName
      static constexpr const char* kDefaultCurvesName = "Track Parameters";
      // Get static field: static System.String kDefaultCurvesName
      static ::Il2CppString* _get_kDefaultCurvesName();
      // Set static field: static System.String kDefaultCurvesName
      static void _set_kDefaultCurvesName(::Il2CppString* value);
      // Get static field: static private System.Action`3<UnityEngine.Timeline.TimelineClip,UnityEngine.GameObject,UnityEngine.Playables.Playable> OnClipPlayableCreate
      static System::Action_3<UnityEngine::Timeline::TimelineClip*, UnityEngine::GameObject*, UnityEngine::Playables::Playable>* _get_OnClipPlayableCreate();
      // Set static field: static private System.Action`3<UnityEngine.Timeline.TimelineClip,UnityEngine.GameObject,UnityEngine.Playables.Playable> OnClipPlayableCreate
      static void _set_OnClipPlayableCreate(System::Action_3<UnityEngine::Timeline::TimelineClip*, UnityEngine::GameObject*, UnityEngine::Playables::Playable>* value);
      // Get static field: static private System.Action`3<UnityEngine.Timeline.TrackAsset,UnityEngine.GameObject,UnityEngine.Playables.Playable> OnTrackAnimationPlayableCreate
      static System::Action_3<UnityEngine::Timeline::TrackAsset*, UnityEngine::GameObject*, UnityEngine::Playables::Playable>* _get_OnTrackAnimationPlayableCreate();
      // Set static field: static private System.Action`3<UnityEngine.Timeline.TrackAsset,UnityEngine.GameObject,UnityEngine.Playables.Playable> OnTrackAnimationPlayableCreate
      static void _set_OnTrackAnimationPlayableCreate(System::Action_3<UnityEngine::Timeline::TrackAsset*, UnityEngine::GameObject*, UnityEngine::Playables::Playable>* value);
      // Get static field: static private UnityEngine.Timeline.TrackAsset[] s_EmptyCache
      static ::Array<UnityEngine::Timeline::TrackAsset*>* _get_s_EmptyCache();
      // Set static field: static private UnityEngine.Timeline.TrackAsset[] s_EmptyCache
      static void _set_s_EmptyCache(::Array<UnityEngine::Timeline::TrackAsset*>* value);
      // Get static field: static private System.Collections.Generic.Dictionary`2<System.Type,UnityEngine.Timeline.TrackBindingTypeAttribute> s_TrackBindingTypeAttributeCache
      static System::Collections::Generic::Dictionary_2<System::Type*, UnityEngine::Timeline::TrackBindingTypeAttribute*>* _get_s_TrackBindingTypeAttributeCache();
      // Set static field: static private System.Collections.Generic.Dictionary`2<System.Type,UnityEngine.Timeline.TrackBindingTypeAttribute> s_TrackBindingTypeAttributeCache
      static void _set_s_TrackBindingTypeAttributeCache(System::Collections::Generic::Dictionary_2<System::Type*, UnityEngine::Timeline::TrackBindingTypeAttribute*>* value);
      // Get instance field reference: private System.Int32 m_Version
      int& dyn_m_Version();
      // Get instance field reference: UnityEngine.AnimationClip m_AnimClip
      UnityEngine::AnimationClip*& dyn_m_AnimClip();
      // Get instance field reference: private System.Boolean m_Locked
      bool& dyn_m_Locked();
      // Get instance field reference: private System.Boolean m_Muted
      bool& dyn_m_Muted();
      // Get instance field reference: private System.String m_CustomPlayableFullTypename
      ::Il2CppString*& dyn_m_CustomPlayableFullTypename();
      // Get instance field reference: private UnityEngine.AnimationClip m_Curves
      UnityEngine::AnimationClip*& dyn_m_Curves();
      // Get instance field reference: private UnityEngine.Playables.PlayableAsset m_Parent
      UnityEngine::Playables::PlayableAsset*& dyn_m_Parent();
      // Get instance field reference: private System.Collections.Generic.List`1<UnityEngine.ScriptableObject> m_Children
      System::Collections::Generic::List_1<UnityEngine::ScriptableObject*>*& dyn_m_Children();
      // Get instance field reference: private System.Int32 m_ItemsHash
      int& dyn_m_ItemsHash();
      // Get instance field reference: private UnityEngine.Timeline.TimelineClip[] m_ClipsCache
      ::Array<UnityEngine::Timeline::TimelineClip*>*& dyn_m_ClipsCache();
      // Get instance field reference: private UnityEngine.Timeline.DiscreteTime m_Start
      UnityEngine::Timeline::DiscreteTime& dyn_m_Start();
      // Get instance field reference: private UnityEngine.Timeline.DiscreteTime m_End
      UnityEngine::Timeline::DiscreteTime& dyn_m_End();
      // Get instance field reference: private System.Boolean m_CacheSorted
      bool& dyn_m_CacheSorted();
      // Get instance field reference: private System.Nullable`1<System.Boolean> m_SupportsNotifications
      System::Nullable_1<bool>& dyn_m_SupportsNotifications();
      // Get instance field reference: private System.Collections.Generic.IEnumerable`1<UnityEngine.Timeline.TrackAsset> m_ChildTrackCache
      System::Collections::Generic::IEnumerable_1<UnityEngine::Timeline::TrackAsset*>*& dyn_m_ChildTrackCache();
      // Get instance field reference: protected internal System.Collections.Generic.List`1<UnityEngine.Timeline.TimelineClip> m_Clips
      System::Collections::Generic::List_1<UnityEngine::Timeline::TimelineClip*>*& dyn_m_Clips();
      // Get instance field reference: private UnityEngine.Timeline.MarkerList m_Markers
      UnityEngine::Timeline::MarkerList& dyn_m_Markers();
      // public System.Double get_start()
      // Offset: 0x236B778
      double get_start();
      // public System.Double get_end()
      // Offset: 0x236B8FC
      double get_end();
      // public System.Boolean get_muted()
      // Offset: 0x236B9F0
      bool get_muted();
      // public System.Void set_muted(System.Boolean value)
      // Offset: 0x236B9F8
      void set_muted(bool value);
      // public System.Boolean get_mutedInHierarchy()
      // Offset: 0x236BA04
      bool get_mutedInHierarchy();
      // public UnityEngine.Timeline.TimelineAsset get_timelineAsset()
      // Offset: 0x2368308
      UnityEngine::Timeline::TimelineAsset* get_timelineAsset();
      // public UnityEngine.Playables.PlayableAsset get_parent()
      // Offset: 0x236BBAC
      UnityEngine::Playables::PlayableAsset* get_parent();
      // System.Void set_parent(UnityEngine.Playables.PlayableAsset value)
      // Offset: 0x236BBB4
      void set_parent(UnityEngine::Playables::PlayableAsset* value);
      // UnityEngine.Timeline.TimelineClip[] get_clips()
      // Offset: 0x236BBC0
      ::Array<UnityEngine::Timeline::TimelineClip*>* get_clips();
      // public System.Boolean get_isEmpty()
      // Offset: 0x236BC5C
      bool get_isEmpty();
      // public System.Boolean get_hasClips()
      // Offset: 0x236BCD4
      bool get_hasClips();
      // public System.Boolean get_hasCurves()
      // Offset: 0x236BD30
      bool get_hasCurves();
      // public System.Boolean get_isSubTrack()
      // Offset: 0x2368BF8
      bool get_isSubTrack();
      // System.String get_customPlayableTypename()
      // Offset: 0x236C054
      ::Il2CppString* get_customPlayableTypename();
      // System.Void set_customPlayableTypename(System.String value)
      // Offset: 0x236C05C
      void set_customPlayableTypename(::Il2CppString* value);
      // public UnityEngine.AnimationClip get_curves()
      // Offset: 0x236C064
      UnityEngine::AnimationClip* get_curves();
      // System.Void set_curves(UnityEngine.AnimationClip value)
      // Offset: 0x236C06C
      void set_curves(UnityEngine::AnimationClip* value);
      // private System.String UnityEngine.Timeline.ICurvesOwner.get_defaultCurvesName()
      // Offset: 0x236C074
      ::Il2CppString* UnityEngine_Timeline_ICurvesOwner_get_defaultCurvesName();
      // private UnityEngine.Object UnityEngine.Timeline.ICurvesOwner.get_asset()
      // Offset: 0x236C0BC
      UnityEngine::Object* UnityEngine_Timeline_ICurvesOwner_get_asset();
      // private UnityEngine.Object UnityEngine.Timeline.ICurvesOwner.get_assetOwner()
      // Offset: 0x236C0C0
      UnityEngine::Object* UnityEngine_Timeline_ICurvesOwner_get_assetOwner();
      // private UnityEngine.Timeline.TrackAsset UnityEngine.Timeline.ICurvesOwner.get_targetTrack()
      // Offset: 0x236C0C4
      UnityEngine::Timeline::TrackAsset* UnityEngine_Timeline_ICurvesOwner_get_targetTrack();
      // System.Collections.Generic.List`1<UnityEngine.ScriptableObject> get_subTracksObjects()
      // Offset: 0x236C0C8
      System::Collections::Generic::List_1<UnityEngine::ScriptableObject*>* get_subTracksObjects();
      // public System.Boolean get_locked()
      // Offset: 0x236C0D0
      bool get_locked();
      // public System.Void set_locked(System.Boolean value)
      // Offset: 0x236C0D8
      void set_locked(bool value);
      // public System.Boolean get_lockedInHierarchy()
      // Offset: 0x236C0E4
      bool get_lockedInHierarchy();
      // public System.Boolean get_supportsNotifications()
      // Offset: 0x236C28C
      bool get_supportsNotifications();
      // static System.Void add_OnClipPlayableCreate(System.Action`3<UnityEngine.Timeline.TimelineClip,UnityEngine.GameObject,UnityEngine.Playables.Playable> value)
      // Offset: 0x236B3B8
      static void add_OnClipPlayableCreate(System::Action_3<UnityEngine::Timeline::TimelineClip*, UnityEngine::GameObject*, UnityEngine::Playables::Playable>* value);
      // static System.Void remove_OnClipPlayableCreate(System.Action`3<UnityEngine.Timeline.TimelineClip,UnityEngine.GameObject,UnityEngine.Playables.Playable> value)
      // Offset: 0x236B4A8
      static void remove_OnClipPlayableCreate(System::Action_3<UnityEngine::Timeline::TimelineClip*, UnityEngine::GameObject*, UnityEngine::Playables::Playable>* value);
      // static System.Void add_OnTrackAnimationPlayableCreate(System.Action`3<UnityEngine.Timeline.TrackAsset,UnityEngine.GameObject,UnityEngine.Playables.Playable> value)
      // Offset: 0x236B598
      static void add_OnTrackAnimationPlayableCreate(System::Action_3<UnityEngine::Timeline::TrackAsset*, UnityEngine::GameObject*, UnityEngine::Playables::Playable>* value);
      // static System.Void remove_OnTrackAnimationPlayableCreate(System.Action`3<UnityEngine.Timeline.TrackAsset,UnityEngine.GameObject,UnityEngine.Playables.Playable> value)
      // Offset: 0x236B688
      static void remove_OnTrackAnimationPlayableCreate(System::Action_3<UnityEngine::Timeline::TrackAsset*, UnityEngine::GameObject*, UnityEngine::Playables::Playable>* value);
      // protected System.Void OnBeforeTrackSerialize()
      // Offset: 0x236AE80
      void OnBeforeTrackSerialize();
      // protected System.Void OnAfterTrackDeserialize()
      // Offset: 0x236AE84
      void OnAfterTrackDeserialize();
      // System.Void OnUpgradeFromVersion(System.Int32 oldVersion)
      // Offset: 0x236AE88
      void OnUpgradeFromVersion(int oldVersion);
      // private System.Void UnityEngine.ISerializationCallbackReceiver.OnBeforeSerialize()
      // Offset: 0x236AE8C
      void UnityEngine_ISerializationCallbackReceiver_OnBeforeSerialize();
      // private System.Void UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize()
      // Offset: 0x236AFEC
      void UnityEngine_ISerializationCallbackReceiver_OnAfterDeserialize();
      // private System.Void UpgradeToLatestVersion()
      // Offset: 0x236B3A8
      void UpgradeToLatestVersion();
      // public System.Collections.Generic.IEnumerable`1<UnityEngine.Timeline.TimelineClip> GetClips()
      // Offset: 0x236BBBC
      System::Collections::Generic::IEnumerable_1<UnityEngine::Timeline::TimelineClip*>* GetClips();
      // public System.Collections.Generic.IEnumerable`1<UnityEngine.Timeline.TrackAsset> GetChildTracks()
      // Offset: 0x236BE90
      System::Collections::Generic::IEnumerable_1<UnityEngine::Timeline::TrackAsset*>* GetChildTracks();
      // private System.Void __internalAwake()
      // Offset: 0x236C330
      void __internalAwake();
      // public System.Void CreateCurves(System.String curvesClipName)
      // Offset: 0x236C3D4
      void CreateCurves(::Il2CppString* curvesClipName);
      // public UnityEngine.Playables.Playable CreateTrackMixer(UnityEngine.Playables.PlayableGraph graph, UnityEngine.GameObject go, System.Int32 inputCount)
      // Offset: 0x236C488
      UnityEngine::Playables::Playable CreateTrackMixer(UnityEngine::Playables::PlayableGraph graph, UnityEngine::GameObject* go, int inputCount);
      // public UnityEngine.Timeline.TimelineClip CreateDefaultClip()
      // Offset: 0x236C568
      UnityEngine::Timeline::TimelineClip* CreateDefaultClip();
      // public UnityEngine.Timeline.TimelineClip CreateClip()
      // Offset: 0xFFFFFFFF
      template<class T>
      UnityEngine::Timeline::TimelineClip* CreateClip() {
        static_assert(std::is_convertible_v<T, UnityEngine::ScriptableObject*> && std::is_base_of_v<UnityEngine::Playables::IPlayableAsset, std::remove_pointer_t<T>>);
        static auto ___internal__logger = ::Logger::get().WithContext("UnityEngine::Timeline::TrackAsset::CreateClip");
        static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "CreateClip", std::vector<Il2CppClass*>{::il2cpp_utils::il2cpp_type_check::il2cpp_no_arg_class<T>::get()}, ::std::vector<const Il2CppType*>{})));
        static auto* ___generic__method = THROW_UNLESS(::il2cpp_utils::MakeGenericMethod(___internal__method, std::vector<Il2CppClass*>{::il2cpp_utils::il2cpp_type_check::il2cpp_no_arg_class<T>::get()}));
        auto ___instance_arg = this;
        return ::il2cpp_utils::RunMethodThrow<UnityEngine::Timeline::TimelineClip*, false>(___instance_arg, ___generic__method);
      }
      // public System.Boolean DeleteClip(UnityEngine.Timeline.TimelineClip clip)
      // Offset: 0x236C83C
      bool DeleteClip(UnityEngine::Timeline::TimelineClip* clip);
      // public UnityEngine.Timeline.IMarker CreateMarker(System.Type type, System.Double time)
      // Offset: 0x236C954
      UnityEngine::Timeline::IMarker* CreateMarker(System::Type* type, double time);
      // public T CreateMarker(System.Double time)
      // Offset: 0xFFFFFFFF
      template<class T>
      T CreateMarker(double time) {
        static_assert(std::is_convertible_v<T, UnityEngine::ScriptableObject*> && std::is_base_of_v<UnityEngine::Timeline::IMarker, std::remove_pointer_t<T>>);
        static auto ___internal__logger = ::Logger::get().WithContext("UnityEngine::Timeline::TrackAsset::CreateMarker");
        static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(this, "CreateMarker", std::vector<Il2CppClass*>{::il2cpp_utils::il2cpp_type_check::il2cpp_no_arg_class<T>::get()}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(time)})));
        static auto* ___generic__method = THROW_UNLESS(::il2cpp_utils::MakeGenericMethod(___internal__method, std::vector<Il2CppClass*>{::il2cpp_utils::il2cpp_type_check::il2cpp_no_arg_class<T>::get()}));
        auto ___instance_arg = this;
        return ::il2cpp_utils::RunMethodThrow<T, false>(___instance_arg, ___generic__method, time);
      }
      // public System.Boolean DeleteMarker(UnityEngine.Timeline.IMarker marker)
      // Offset: 0x236C964
      bool DeleteMarker(UnityEngine::Timeline::IMarker* marker);
      // public System.Collections.Generic.IEnumerable`1<UnityEngine.Timeline.IMarker> GetMarkers()
      // Offset: 0x236B3AC
      System::Collections::Generic::IEnumerable_1<UnityEngine::Timeline::IMarker*>* GetMarkers();
      // public System.Int32 GetMarkerCount()
      // Offset: 0x236BDCC
      int GetMarkerCount();
      // public UnityEngine.Timeline.IMarker GetMarker(System.Int32 idx)
      // Offset: 0x236C970
      UnityEngine::Timeline::IMarker* GetMarker(int idx);
      // UnityEngine.Timeline.TimelineClip CreateClip(System.Type requestedType)
      // Offset: 0x236C97C
      UnityEngine::Timeline::TimelineClip* CreateClip(System::Type* requestedType);
      // UnityEngine.Timeline.TimelineClip CreateAndAddNewClipOfType(System.Type requestedType)
      // Offset: 0x236C808
      UnityEngine::Timeline::TimelineClip* CreateAndAddNewClipOfType(System::Type* requestedType);
      // UnityEngine.Timeline.TimelineClip CreateClipOfType(System.Type requestedType)
      // Offset: 0x236CB08
      UnityEngine::Timeline::TimelineClip* CreateClipOfType(System::Type* requestedType);
      // UnityEngine.Timeline.TimelineClip CreateClipFromPlayableAsset(UnityEngine.Playables.IPlayableAsset asset)
      // Offset: 0x236CFB0
      UnityEngine::Timeline::TimelineClip* CreateClipFromPlayableAsset(UnityEngine::Playables::IPlayableAsset* asset);
      // private UnityEngine.Timeline.TimelineClip CreateClipFromAsset(UnityEngine.ScriptableObject playableAsset)
      // Offset: 0x236CD14
      UnityEngine::Timeline::TimelineClip* CreateClipFromAsset(UnityEngine::ScriptableObject* playableAsset);
      // System.Collections.Generic.IEnumerable`1<UnityEngine.ScriptableObject> GetMarkersRaw()
      // Offset: 0x236D48C
      System::Collections::Generic::IEnumerable_1<UnityEngine::ScriptableObject*>* GetMarkersRaw();
      // System.Void ClearMarkers()
      // Offset: 0x236D494
      void ClearMarkers();
      // System.Void AddMarker(UnityEngine.ScriptableObject e)
      // Offset: 0x236D4A0
      void AddMarker(UnityEngine::ScriptableObject* e);
      // System.Boolean DeleteMarkerRaw(UnityEngine.ScriptableObject marker)
      // Offset: 0x236D4AC
      bool DeleteMarkerRaw(UnityEngine::ScriptableObject* marker);
      // private System.Int32 GetTimeRangeHash()
      // Offset: 0x236D4F0
      int GetTimeRangeHash();
      // System.Void AddClip(UnityEngine.Timeline.TimelineClip newClip)
      // Offset: 0x2365DFC
      void AddClip(UnityEngine::Timeline::TimelineClip* newClip);
      // private UnityEngine.Playables.Playable CreateNotificationsPlayable(UnityEngine.Playables.PlayableGraph graph, UnityEngine.Playables.Playable mixerPlayable, UnityEngine.GameObject go, UnityEngine.Playables.Playable timelinePlayable)
      // Offset: 0x236D96C
      UnityEngine::Playables::Playable CreateNotificationsPlayable(UnityEngine::Playables::PlayableGraph graph, UnityEngine::Playables::Playable mixerPlayable, UnityEngine::GameObject* go, UnityEngine::Playables::Playable timelinePlayable);
      // UnityEngine.Playables.Playable CreatePlayableGraph(UnityEngine.Playables.PlayableGraph graph, UnityEngine.GameObject go, UnityEngine.Timeline.IntervalTree`1<UnityEngine.Timeline.RuntimeElement> tree, UnityEngine.Playables.Playable timelinePlayable)
      // Offset: 0x236A3F4
      UnityEngine::Playables::Playable CreatePlayableGraph(UnityEngine::Playables::PlayableGraph graph, UnityEngine::GameObject* go, UnityEngine::Timeline::IntervalTree_1<UnityEngine::Timeline::RuntimeElement*>* tree, UnityEngine::Playables::Playable timelinePlayable);
      // UnityEngine.Playables.Playable CompileClips(UnityEngine.Playables.PlayableGraph graph, UnityEngine.GameObject go, System.Collections.Generic.IList`1<UnityEngine.Timeline.TimelineClip> timelineClips, UnityEngine.Timeline.IntervalTree`1<UnityEngine.Timeline.RuntimeElement> tree)
      // Offset: 0x236E1D8
      UnityEngine::Playables::Playable CompileClips(UnityEngine::Playables::PlayableGraph graph, UnityEngine::GameObject* go, System::Collections::Generic::IList_1<UnityEngine::Timeline::TimelineClip*>* timelineClips, UnityEngine::Timeline::IntervalTree_1<UnityEngine::Timeline::RuntimeElement*>* tree);
      // private System.Void GatherCompilableTracks(System.Collections.Generic.IList`1<UnityEngine.Timeline.TrackAsset> tracks)
      // Offset: 0x236E724
      void GatherCompilableTracks(System::Collections::Generic::IList_1<UnityEngine::Timeline::TrackAsset*>* tracks);
      // private System.Void GatherNotifications(System.Collections.Generic.List`1<UnityEngine.Timeline.IMarker> markers)
      // Offset: 0x236DB5C
      void GatherNotifications(System::Collections::Generic::List_1<UnityEngine::Timeline::IMarker*>* markers);
      // UnityEngine.Playables.Playable CreateMixerPlayableGraph(UnityEngine.Playables.PlayableGraph graph, UnityEngine.GameObject go, UnityEngine.Timeline.IntervalTree`1<UnityEngine.Timeline.RuntimeElement> tree)
      // Offset: 0x236EAAC
      UnityEngine::Playables::Playable CreateMixerPlayableGraph(UnityEngine::Playables::PlayableGraph graph, UnityEngine::GameObject* go, UnityEngine::Timeline::IntervalTree_1<UnityEngine::Timeline::RuntimeElement*>* tree);
      // System.Void ConfigureTrackAnimation(UnityEngine.Timeline.IntervalTree`1<UnityEngine.Timeline.RuntimeElement> tree, UnityEngine.GameObject go, UnityEngine.Playables.Playable blend)
      // Offset: 0x236E5D0
      void ConfigureTrackAnimation(UnityEngine::Timeline::IntervalTree_1<UnityEngine::Timeline::RuntimeElement*>* tree, UnityEngine::GameObject* go, UnityEngine::Playables::Playable blend);
      // System.Void SortClips()
      // Offset: 0x23697EC
      void SortClips();
      // System.Void ClearClipsInternal()
      // Offset: 0x236F08C
      void ClearClipsInternal();
      // System.Void ClearSubTracksInternal()
      // Offset: 0x236F0F8
      void ClearSubTracksInternal();
      // System.Void OnClipMove()
      // Offset: 0x2365970
      void OnClipMove();
      // UnityEngine.Timeline.TimelineClip CreateNewClipContainerInternal()
      // Offset: 0x236D24C
      UnityEngine::Timeline::TimelineClip* CreateNewClipContainerInternal();
      // System.Void AddChild(UnityEngine.Timeline.TrackAsset child)
      // Offset: 0x236F164
      void AddChild(UnityEngine::Timeline::TrackAsset* child);
      // System.Void MoveLastTrackBefore(UnityEngine.Timeline.TrackAsset asset)
      // Offset: 0x236F220
      void MoveLastTrackBefore(UnityEngine::Timeline::TrackAsset* asset);
      // System.Boolean RemoveSubTrack(UnityEngine.Timeline.TrackAsset child)
      // Offset: 0x236F44C
      bool RemoveSubTrack(UnityEngine::Timeline::TrackAsset* child);
      // System.Void RemoveClip(UnityEngine.Timeline.TimelineClip clip)
      // Offset: 0x2365D8C
      void RemoveClip(UnityEngine::Timeline::TimelineClip* clip);
      // System.Void GetEvaluationTime(out System.Double outStart, out System.Double outDuration)
      // Offset: 0x236F4D8
      void GetEvaluationTime(ByRef<double> outStart, ByRef<double> outDuration);
      // System.Void GetSequenceTime(out System.Double outStart, out System.Double outDuration)
      // Offset: 0x236FA88
      void GetSequenceTime(ByRef<double> outStart, ByRef<double> outDuration);
      // public System.Void GatherProperties(UnityEngine.Playables.PlayableDirector director, UnityEngine.Timeline.IPropertyCollector driver)
      // Offset: 0x236FA98
      void GatherProperties(UnityEngine::Playables::PlayableDirector* director, UnityEngine::Timeline::IPropertyCollector* driver);
      // UnityEngine.GameObject GetGameObjectBinding(UnityEngine.Playables.PlayableDirector director)
      // Offset: 0x237012C
      UnityEngine::GameObject* GetGameObjectBinding(UnityEngine::Playables::PlayableDirector* director);
      // System.Boolean ValidateClipType(System.Type clipType)
      // Offset: 0x2367CC0
      bool ValidateClipType(System::Type* clipType);
      // protected System.Void OnCreateClip(UnityEngine.Timeline.TimelineClip clip)
      // Offset: 0x23702AC
      void OnCreateClip(UnityEngine::Timeline::TimelineClip* clip);
      // private System.Void UpdateDuration()
      // Offset: 0x236B7EC
      void UpdateDuration();
      // protected internal System.Int32 CalculateItemsHash()
      // Offset: 0x23702B0
      int CalculateItemsHash();
      // protected UnityEngine.Playables.Playable CreatePlayable(UnityEngine.Playables.PlayableGraph graph, UnityEngine.GameObject gameObject, UnityEngine.Timeline.TimelineClip clip)
      // Offset: 0x2370560
      UnityEngine::Playables::Playable CreatePlayable(UnityEngine::Playables::PlayableGraph graph, UnityEngine::GameObject* gameObject, UnityEngine::Timeline::TimelineClip* clip);
      // System.Void Invalidate()
      // Offset: 0x236B304
      void Invalidate();
      // System.Double GetNotificationDuration()
      // Offset: 0x236F734
      double GetNotificationDuration();
      // System.Boolean CanCompileClips()
      // Offset: 0x23707D8
      bool CanCompileClips();
      // public System.Boolean CanCreateTrackMixer()
      // Offset: 0x237083C
      bool CanCreateTrackMixer();
      // System.Boolean IsCompilable()
      // Offset: 0x236946C
      bool IsCompilable();
      // private System.Void UpdateChildTrackCache()
      // Offset: 0x236BEB4
      void UpdateChildTrackCache();
      // System.Int32 Hash()
      // Offset: 0x237084C
      int Hash();
      // private System.Int32 GetClipsHash()
      // Offset: 0x2370350
      int GetClipsHash();
      // static protected System.Int32 GetAnimationClipHash(UnityEngine.AnimationClip clip)
      // Offset: 0x2370464
      static int GetAnimationClipHash(UnityEngine::AnimationClip* clip);
      // private System.Boolean HasNotifications()
      // Offset: 0x236F728
      bool HasNotifications();
      // private System.Boolean CanCompileNotifications()
      // Offset: 0x236EA70
      bool CanCompileNotifications();
      // private System.Boolean CanCreateMixerRecursive()
      // Offset: 0x236DE64
      bool CanCreateMixerRecursive();
      // public override System.Double get_duration()
      // Offset: 0x236B970
      // Implemented from: UnityEngine.Playables.PlayableAsset
      // Base method: System.Double PlayableAsset::get_duration()
      double get_duration();
      // public override System.Collections.Generic.IEnumerable`1<UnityEngine.Playables.PlayableBinding> get_outputs()
      // Offset: 0x236BDD8
      // Implemented from: UnityEngine.Playables.PlayableAsset
      // Base method: System.Collections.Generic.IEnumerable`1<UnityEngine.Playables.PlayableBinding> PlayableAsset::get_outputs()
      System::Collections::Generic::IEnumerable_1<UnityEngine::Playables::PlayableBinding>* get_outputs();
      // protected System.Void .ctor()
      // Offset: 0x237088C
      // Implemented from: UnityEngine.Playables.PlayableAsset
      // Base method: System.Void PlayableAsset::.ctor()
      // Base method: System.Void ScriptableObject::.ctor()
      // Base method: System.Void Object::.ctor()
      // Base method: System.Void Object::.ctor()
      template<::il2cpp_utils::CreationType creationType = ::il2cpp_utils::CreationType::Temporary>
      static TrackAsset* New_ctor() {
        static auto ___internal__logger = ::Logger::get().WithContext("UnityEngine::Timeline::TrackAsset::.ctor");
        return THROW_UNLESS((::il2cpp_utils::New<TrackAsset*, creationType>()));
      }
      // static private System.Void .cctor()
      // Offset: 0x2370948
      // Implemented from: UnityEngine.Object
      // Base method: System.Void Object::.cctor()
      static void _cctor();
      // public override UnityEngine.Playables.Playable CreatePlayable(UnityEngine.Playables.PlayableGraph graph, UnityEngine.GameObject go)
      // Offset: 0x236C508
      // Implemented from: UnityEngine.Playables.PlayableAsset
      // Base method: UnityEngine.Playables.Playable PlayableAsset::CreatePlayable(UnityEngine.Playables.PlayableGraph graph, UnityEngine.GameObject go)
      UnityEngine::Playables::Playable CreatePlayable(UnityEngine::Playables::PlayableGraph graph, UnityEngine::GameObject* go);
    }; // UnityEngine.Timeline.TrackAsset
    // WARNING Not writing size check since size may be invalid!
  }
  DEFINE_IL2CPP_ARG_TYPE(UnityEngine::Timeline::TrackAsset*, "UnityEngine.Timeline", "TrackAsset");
  DEFINE_IL2CPP_ARG_TYPE(UnityEngine::Timeline::TrackAsset::TransientBuildData, "UnityEngine.Timeline", "TrackAsset/TransientBuildData");
  #include "extern/beatsaber-hook/shared/utils/il2cpp-utils-methods.hpp"
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_start
  // Il2CppName: get_start
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<double (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_start)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_start", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_end
  // Il2CppName: get_end
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<double (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_end)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_end", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_muted
  // Il2CppName: get_muted
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_muted)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_muted", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::set_muted
  // Il2CppName: set_muted
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(bool)>(&UnityEngine::Timeline::TrackAsset::set_muted)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("System", "Boolean")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "set_muted", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_mutedInHierarchy
  // Il2CppName: get_mutedInHierarchy
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_mutedInHierarchy)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_mutedInHierarchy", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_timelineAsset
  // Il2CppName: get_timelineAsset
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Timeline::TimelineAsset* (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_timelineAsset)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_timelineAsset", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_parent
  // Il2CppName: get_parent
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Playables::PlayableAsset* (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_parent)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_parent", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::set_parent
  // Il2CppName: set_parent
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Playables::PlayableAsset*)>(&UnityEngine::Timeline::TrackAsset::set_parent)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "PlayableAsset")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "set_parent", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_clips
  // Il2CppName: get_clips
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::Array<UnityEngine::Timeline::TimelineClip*>* (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_clips)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_clips", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_isEmpty
  // Il2CppName: get_isEmpty
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_isEmpty)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_isEmpty", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_hasClips
  // Il2CppName: get_hasClips
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_hasClips)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_hasClips", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_hasCurves
  // Il2CppName: get_hasCurves
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_hasCurves)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_hasCurves", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_isSubTrack
  // Il2CppName: get_isSubTrack
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_isSubTrack)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_isSubTrack", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_customPlayableTypename
  // Il2CppName: get_customPlayableTypename
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::Il2CppString* (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_customPlayableTypename)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_customPlayableTypename", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::set_customPlayableTypename
  // Il2CppName: set_customPlayableTypename
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(::Il2CppString*)>(&UnityEngine::Timeline::TrackAsset::set_customPlayableTypename)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("System", "String")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "set_customPlayableTypename", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_curves
  // Il2CppName: get_curves
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::AnimationClip* (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_curves)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_curves", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::set_curves
  // Il2CppName: set_curves
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::AnimationClip*)>(&UnityEngine::Timeline::TrackAsset::set_curves)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("UnityEngine", "AnimationClip")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "set_curves", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::UnityEngine_Timeline_ICurvesOwner_get_defaultCurvesName
  // Il2CppName: UnityEngine.Timeline.ICurvesOwner.get_defaultCurvesName
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<::Il2CppString* (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::UnityEngine_Timeline_ICurvesOwner_get_defaultCurvesName)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "UnityEngine.Timeline.ICurvesOwner.get_defaultCurvesName", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::UnityEngine_Timeline_ICurvesOwner_get_asset
  // Il2CppName: UnityEngine.Timeline.ICurvesOwner.get_asset
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Object* (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::UnityEngine_Timeline_ICurvesOwner_get_asset)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "UnityEngine.Timeline.ICurvesOwner.get_asset", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::UnityEngine_Timeline_ICurvesOwner_get_assetOwner
  // Il2CppName: UnityEngine.Timeline.ICurvesOwner.get_assetOwner
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Object* (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::UnityEngine_Timeline_ICurvesOwner_get_assetOwner)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "UnityEngine.Timeline.ICurvesOwner.get_assetOwner", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::UnityEngine_Timeline_ICurvesOwner_get_targetTrack
  // Il2CppName: UnityEngine.Timeline.ICurvesOwner.get_targetTrack
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Timeline::TrackAsset* (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::UnityEngine_Timeline_ICurvesOwner_get_targetTrack)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "UnityEngine.Timeline.ICurvesOwner.get_targetTrack", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_subTracksObjects
  // Il2CppName: get_subTracksObjects
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<System::Collections::Generic::List_1<UnityEngine::ScriptableObject*>* (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_subTracksObjects)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_subTracksObjects", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_locked
  // Il2CppName: get_locked
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_locked)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_locked", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::set_locked
  // Il2CppName: set_locked
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(bool)>(&UnityEngine::Timeline::TrackAsset::set_locked)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("System", "Boolean")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "set_locked", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_lockedInHierarchy
  // Il2CppName: get_lockedInHierarchy
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_lockedInHierarchy)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_lockedInHierarchy", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_supportsNotifications
  // Il2CppName: get_supportsNotifications
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_supportsNotifications)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_supportsNotifications", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::add_OnClipPlayableCreate
  // Il2CppName: add_OnClipPlayableCreate
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (*)(System::Action_3<UnityEngine::Timeline::TimelineClip*, UnityEngine::GameObject*, UnityEngine::Playables::Playable>*)>(&UnityEngine::Timeline::TrackAsset::add_OnClipPlayableCreate)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::MakeGeneric(::il2cpp_utils::GetClassFromName("System", "Action`3"), ::std::vector<const Il2CppClass*>{::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "TimelineClip"), ::il2cpp_utils::GetClassFromName("UnityEngine", "GameObject"), ::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "Playable")})->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "add_OnClipPlayableCreate", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::remove_OnClipPlayableCreate
  // Il2CppName: remove_OnClipPlayableCreate
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (*)(System::Action_3<UnityEngine::Timeline::TimelineClip*, UnityEngine::GameObject*, UnityEngine::Playables::Playable>*)>(&UnityEngine::Timeline::TrackAsset::remove_OnClipPlayableCreate)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::MakeGeneric(::il2cpp_utils::GetClassFromName("System", "Action`3"), ::std::vector<const Il2CppClass*>{::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "TimelineClip"), ::il2cpp_utils::GetClassFromName("UnityEngine", "GameObject"), ::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "Playable")})->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "remove_OnClipPlayableCreate", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::add_OnTrackAnimationPlayableCreate
  // Il2CppName: add_OnTrackAnimationPlayableCreate
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (*)(System::Action_3<UnityEngine::Timeline::TrackAsset*, UnityEngine::GameObject*, UnityEngine::Playables::Playable>*)>(&UnityEngine::Timeline::TrackAsset::add_OnTrackAnimationPlayableCreate)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::MakeGeneric(::il2cpp_utils::GetClassFromName("System", "Action`3"), ::std::vector<const Il2CppClass*>{::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "TrackAsset"), ::il2cpp_utils::GetClassFromName("UnityEngine", "GameObject"), ::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "Playable")})->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "add_OnTrackAnimationPlayableCreate", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::remove_OnTrackAnimationPlayableCreate
  // Il2CppName: remove_OnTrackAnimationPlayableCreate
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (*)(System::Action_3<UnityEngine::Timeline::TrackAsset*, UnityEngine::GameObject*, UnityEngine::Playables::Playable>*)>(&UnityEngine::Timeline::TrackAsset::remove_OnTrackAnimationPlayableCreate)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::MakeGeneric(::il2cpp_utils::GetClassFromName("System", "Action`3"), ::std::vector<const Il2CppClass*>{::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "TrackAsset"), ::il2cpp_utils::GetClassFromName("UnityEngine", "GameObject"), ::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "Playable")})->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "remove_OnTrackAnimationPlayableCreate", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::OnBeforeTrackSerialize
  // Il2CppName: OnBeforeTrackSerialize
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::OnBeforeTrackSerialize)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "OnBeforeTrackSerialize", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::OnAfterTrackDeserialize
  // Il2CppName: OnAfterTrackDeserialize
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::OnAfterTrackDeserialize)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "OnAfterTrackDeserialize", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::OnUpgradeFromVersion
  // Il2CppName: OnUpgradeFromVersion
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(int)>(&UnityEngine::Timeline::TrackAsset::OnUpgradeFromVersion)> {
    static const MethodInfo* get() {
      static auto* oldVersion = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "OnUpgradeFromVersion", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{oldVersion});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::UnityEngine_ISerializationCallbackReceiver_OnBeforeSerialize
  // Il2CppName: UnityEngine.ISerializationCallbackReceiver.OnBeforeSerialize
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::UnityEngine_ISerializationCallbackReceiver_OnBeforeSerialize)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "UnityEngine.ISerializationCallbackReceiver.OnBeforeSerialize", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::UnityEngine_ISerializationCallbackReceiver_OnAfterDeserialize
  // Il2CppName: UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::UnityEngine_ISerializationCallbackReceiver_OnAfterDeserialize)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::UpgradeToLatestVersion
  // Il2CppName: UpgradeToLatestVersion
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::UpgradeToLatestVersion)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "UpgradeToLatestVersion", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::GetClips
  // Il2CppName: GetClips
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<System::Collections::Generic::IEnumerable_1<UnityEngine::Timeline::TimelineClip*>* (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::GetClips)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "GetClips", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::GetChildTracks
  // Il2CppName: GetChildTracks
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<System::Collections::Generic::IEnumerable_1<UnityEngine::Timeline::TrackAsset*>* (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::GetChildTracks)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "GetChildTracks", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::__internalAwake
  // Il2CppName: __internalAwake
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::__internalAwake)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "__internalAwake", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CreateCurves
  // Il2CppName: CreateCurves
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(::Il2CppString*)>(&UnityEngine::Timeline::TrackAsset::CreateCurves)> {
    static const MethodInfo* get() {
      static auto* curvesClipName = &::il2cpp_utils::GetClassFromName("System", "String")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CreateCurves", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{curvesClipName});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CreateTrackMixer
  // Il2CppName: CreateTrackMixer
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Playables::Playable (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Playables::PlayableGraph, UnityEngine::GameObject*, int)>(&UnityEngine::Timeline::TrackAsset::CreateTrackMixer)> {
    static const MethodInfo* get() {
      static auto* graph = &::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "PlayableGraph")->byval_arg;
      static auto* go = &::il2cpp_utils::GetClassFromName("UnityEngine", "GameObject")->byval_arg;
      static auto* inputCount = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CreateTrackMixer", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{graph, go, inputCount});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CreateDefaultClip
  // Il2CppName: CreateDefaultClip
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Timeline::TimelineClip* (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::CreateDefaultClip)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CreateDefaultClip", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CreateClip
  // Il2CppName: CreateClip
  // Cannot write MetadataGetter for generic methods!
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::DeleteClip
  // Il2CppName: DeleteClip
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Timeline::TimelineClip*)>(&UnityEngine::Timeline::TrackAsset::DeleteClip)> {
    static const MethodInfo* get() {
      static auto* clip = &::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "TimelineClip")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "DeleteClip", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{clip});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CreateMarker
  // Il2CppName: CreateMarker
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Timeline::IMarker* (UnityEngine::Timeline::TrackAsset::*)(System::Type*, double)>(&UnityEngine::Timeline::TrackAsset::CreateMarker)> {
    static const MethodInfo* get() {
      static auto* type = &::il2cpp_utils::GetClassFromName("System", "Type")->byval_arg;
      static auto* time = &::il2cpp_utils::GetClassFromName("System", "Double")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CreateMarker", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{type, time});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CreateMarker
  // Il2CppName: CreateMarker
  // Cannot write MetadataGetter for generic methods!
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::DeleteMarker
  // Il2CppName: DeleteMarker
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Timeline::IMarker*)>(&UnityEngine::Timeline::TrackAsset::DeleteMarker)> {
    static const MethodInfo* get() {
      static auto* marker = &::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "IMarker")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "DeleteMarker", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{marker});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::GetMarkers
  // Il2CppName: GetMarkers
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<System::Collections::Generic::IEnumerable_1<UnityEngine::Timeline::IMarker*>* (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::GetMarkers)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "GetMarkers", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::GetMarkerCount
  // Il2CppName: GetMarkerCount
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::GetMarkerCount)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "GetMarkerCount", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::GetMarker
  // Il2CppName: GetMarker
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Timeline::IMarker* (UnityEngine::Timeline::TrackAsset::*)(int)>(&UnityEngine::Timeline::TrackAsset::GetMarker)> {
    static const MethodInfo* get() {
      static auto* idx = &::il2cpp_utils::GetClassFromName("System", "Int32")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "GetMarker", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{idx});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CreateClip
  // Il2CppName: CreateClip
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Timeline::TimelineClip* (UnityEngine::Timeline::TrackAsset::*)(System::Type*)>(&UnityEngine::Timeline::TrackAsset::CreateClip)> {
    static const MethodInfo* get() {
      static auto* requestedType = &::il2cpp_utils::GetClassFromName("System", "Type")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CreateClip", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{requestedType});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CreateAndAddNewClipOfType
  // Il2CppName: CreateAndAddNewClipOfType
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Timeline::TimelineClip* (UnityEngine::Timeline::TrackAsset::*)(System::Type*)>(&UnityEngine::Timeline::TrackAsset::CreateAndAddNewClipOfType)> {
    static const MethodInfo* get() {
      static auto* requestedType = &::il2cpp_utils::GetClassFromName("System", "Type")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CreateAndAddNewClipOfType", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{requestedType});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CreateClipOfType
  // Il2CppName: CreateClipOfType
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Timeline::TimelineClip* (UnityEngine::Timeline::TrackAsset::*)(System::Type*)>(&UnityEngine::Timeline::TrackAsset::CreateClipOfType)> {
    static const MethodInfo* get() {
      static auto* requestedType = &::il2cpp_utils::GetClassFromName("System", "Type")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CreateClipOfType", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{requestedType});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CreateClipFromPlayableAsset
  // Il2CppName: CreateClipFromPlayableAsset
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Timeline::TimelineClip* (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Playables::IPlayableAsset*)>(&UnityEngine::Timeline::TrackAsset::CreateClipFromPlayableAsset)> {
    static const MethodInfo* get() {
      static auto* asset = &::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "IPlayableAsset")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CreateClipFromPlayableAsset", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{asset});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CreateClipFromAsset
  // Il2CppName: CreateClipFromAsset
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Timeline::TimelineClip* (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::ScriptableObject*)>(&UnityEngine::Timeline::TrackAsset::CreateClipFromAsset)> {
    static const MethodInfo* get() {
      static auto* playableAsset = &::il2cpp_utils::GetClassFromName("UnityEngine", "ScriptableObject")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CreateClipFromAsset", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{playableAsset});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::GetMarkersRaw
  // Il2CppName: GetMarkersRaw
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<System::Collections::Generic::IEnumerable_1<UnityEngine::ScriptableObject*>* (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::GetMarkersRaw)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "GetMarkersRaw", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::ClearMarkers
  // Il2CppName: ClearMarkers
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::ClearMarkers)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "ClearMarkers", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::AddMarker
  // Il2CppName: AddMarker
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::ScriptableObject*)>(&UnityEngine::Timeline::TrackAsset::AddMarker)> {
    static const MethodInfo* get() {
      static auto* e = &::il2cpp_utils::GetClassFromName("UnityEngine", "ScriptableObject")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "AddMarker", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{e});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::DeleteMarkerRaw
  // Il2CppName: DeleteMarkerRaw
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::ScriptableObject*)>(&UnityEngine::Timeline::TrackAsset::DeleteMarkerRaw)> {
    static const MethodInfo* get() {
      static auto* marker = &::il2cpp_utils::GetClassFromName("UnityEngine", "ScriptableObject")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "DeleteMarkerRaw", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{marker});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::GetTimeRangeHash
  // Il2CppName: GetTimeRangeHash
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::GetTimeRangeHash)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "GetTimeRangeHash", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::AddClip
  // Il2CppName: AddClip
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Timeline::TimelineClip*)>(&UnityEngine::Timeline::TrackAsset::AddClip)> {
    static const MethodInfo* get() {
      static auto* newClip = &::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "TimelineClip")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "AddClip", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{newClip});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CreateNotificationsPlayable
  // Il2CppName: CreateNotificationsPlayable
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Playables::Playable (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Playables::PlayableGraph, UnityEngine::Playables::Playable, UnityEngine::GameObject*, UnityEngine::Playables::Playable)>(&UnityEngine::Timeline::TrackAsset::CreateNotificationsPlayable)> {
    static const MethodInfo* get() {
      static auto* graph = &::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "PlayableGraph")->byval_arg;
      static auto* mixerPlayable = &::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "Playable")->byval_arg;
      static auto* go = &::il2cpp_utils::GetClassFromName("UnityEngine", "GameObject")->byval_arg;
      static auto* timelinePlayable = &::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "Playable")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CreateNotificationsPlayable", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{graph, mixerPlayable, go, timelinePlayable});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CreatePlayableGraph
  // Il2CppName: CreatePlayableGraph
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Playables::Playable (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Playables::PlayableGraph, UnityEngine::GameObject*, UnityEngine::Timeline::IntervalTree_1<UnityEngine::Timeline::RuntimeElement*>*, UnityEngine::Playables::Playable)>(&UnityEngine::Timeline::TrackAsset::CreatePlayableGraph)> {
    static const MethodInfo* get() {
      static auto* graph = &::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "PlayableGraph")->byval_arg;
      static auto* go = &::il2cpp_utils::GetClassFromName("UnityEngine", "GameObject")->byval_arg;
      static auto* tree = &::il2cpp_utils::MakeGeneric(::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "IntervalTree`1"), ::std::vector<const Il2CppClass*>{::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "RuntimeElement")})->byval_arg;
      static auto* timelinePlayable = &::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "Playable")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CreatePlayableGraph", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{graph, go, tree, timelinePlayable});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CompileClips
  // Il2CppName: CompileClips
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Playables::Playable (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Playables::PlayableGraph, UnityEngine::GameObject*, System::Collections::Generic::IList_1<UnityEngine::Timeline::TimelineClip*>*, UnityEngine::Timeline::IntervalTree_1<UnityEngine::Timeline::RuntimeElement*>*)>(&UnityEngine::Timeline::TrackAsset::CompileClips)> {
    static const MethodInfo* get() {
      static auto* graph = &::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "PlayableGraph")->byval_arg;
      static auto* go = &::il2cpp_utils::GetClassFromName("UnityEngine", "GameObject")->byval_arg;
      static auto* timelineClips = &::il2cpp_utils::MakeGeneric(::il2cpp_utils::GetClassFromName("System.Collections.Generic", "IList`1"), ::std::vector<const Il2CppClass*>{::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "TimelineClip")})->byval_arg;
      static auto* tree = &::il2cpp_utils::MakeGeneric(::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "IntervalTree`1"), ::std::vector<const Il2CppClass*>{::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "RuntimeElement")})->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CompileClips", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{graph, go, timelineClips, tree});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::GatherCompilableTracks
  // Il2CppName: GatherCompilableTracks
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(System::Collections::Generic::IList_1<UnityEngine::Timeline::TrackAsset*>*)>(&UnityEngine::Timeline::TrackAsset::GatherCompilableTracks)> {
    static const MethodInfo* get() {
      static auto* tracks = &::il2cpp_utils::MakeGeneric(::il2cpp_utils::GetClassFromName("System.Collections.Generic", "IList`1"), ::std::vector<const Il2CppClass*>{::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "TrackAsset")})->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "GatherCompilableTracks", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{tracks});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::GatherNotifications
  // Il2CppName: GatherNotifications
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(System::Collections::Generic::List_1<UnityEngine::Timeline::IMarker*>*)>(&UnityEngine::Timeline::TrackAsset::GatherNotifications)> {
    static const MethodInfo* get() {
      static auto* markers = &::il2cpp_utils::MakeGeneric(::il2cpp_utils::GetClassFromName("System.Collections.Generic", "List`1"), ::std::vector<const Il2CppClass*>{::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "IMarker")})->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "GatherNotifications", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{markers});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CreateMixerPlayableGraph
  // Il2CppName: CreateMixerPlayableGraph
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Playables::Playable (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Playables::PlayableGraph, UnityEngine::GameObject*, UnityEngine::Timeline::IntervalTree_1<UnityEngine::Timeline::RuntimeElement*>*)>(&UnityEngine::Timeline::TrackAsset::CreateMixerPlayableGraph)> {
    static const MethodInfo* get() {
      static auto* graph = &::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "PlayableGraph")->byval_arg;
      static auto* go = &::il2cpp_utils::GetClassFromName("UnityEngine", "GameObject")->byval_arg;
      static auto* tree = &::il2cpp_utils::MakeGeneric(::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "IntervalTree`1"), ::std::vector<const Il2CppClass*>{::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "RuntimeElement")})->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CreateMixerPlayableGraph", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{graph, go, tree});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::ConfigureTrackAnimation
  // Il2CppName: ConfigureTrackAnimation
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Timeline::IntervalTree_1<UnityEngine::Timeline::RuntimeElement*>*, UnityEngine::GameObject*, UnityEngine::Playables::Playable)>(&UnityEngine::Timeline::TrackAsset::ConfigureTrackAnimation)> {
    static const MethodInfo* get() {
      static auto* tree = &::il2cpp_utils::MakeGeneric(::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "IntervalTree`1"), ::std::vector<const Il2CppClass*>{::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "RuntimeElement")})->byval_arg;
      static auto* go = &::il2cpp_utils::GetClassFromName("UnityEngine", "GameObject")->byval_arg;
      static auto* blend = &::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "Playable")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "ConfigureTrackAnimation", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{tree, go, blend});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::SortClips
  // Il2CppName: SortClips
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::SortClips)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "SortClips", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::ClearClipsInternal
  // Il2CppName: ClearClipsInternal
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::ClearClipsInternal)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "ClearClipsInternal", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::ClearSubTracksInternal
  // Il2CppName: ClearSubTracksInternal
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::ClearSubTracksInternal)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "ClearSubTracksInternal", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::OnClipMove
  // Il2CppName: OnClipMove
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::OnClipMove)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "OnClipMove", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CreateNewClipContainerInternal
  // Il2CppName: CreateNewClipContainerInternal
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Timeline::TimelineClip* (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::CreateNewClipContainerInternal)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CreateNewClipContainerInternal", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::AddChild
  // Il2CppName: AddChild
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Timeline::TrackAsset*)>(&UnityEngine::Timeline::TrackAsset::AddChild)> {
    static const MethodInfo* get() {
      static auto* child = &::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "TrackAsset")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "AddChild", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{child});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::MoveLastTrackBefore
  // Il2CppName: MoveLastTrackBefore
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Timeline::TrackAsset*)>(&UnityEngine::Timeline::TrackAsset::MoveLastTrackBefore)> {
    static const MethodInfo* get() {
      static auto* asset = &::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "TrackAsset")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "MoveLastTrackBefore", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{asset});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::RemoveSubTrack
  // Il2CppName: RemoveSubTrack
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Timeline::TrackAsset*)>(&UnityEngine::Timeline::TrackAsset::RemoveSubTrack)> {
    static const MethodInfo* get() {
      static auto* child = &::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "TrackAsset")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "RemoveSubTrack", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{child});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::RemoveClip
  // Il2CppName: RemoveClip
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Timeline::TimelineClip*)>(&UnityEngine::Timeline::TrackAsset::RemoveClip)> {
    static const MethodInfo* get() {
      static auto* clip = &::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "TimelineClip")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "RemoveClip", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{clip});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::GetEvaluationTime
  // Il2CppName: GetEvaluationTime
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(ByRef<double>, ByRef<double>)>(&UnityEngine::Timeline::TrackAsset::GetEvaluationTime)> {
    static const MethodInfo* get() {
      static auto* outStart = &::il2cpp_utils::GetClassFromName("System", "Double")->this_arg;
      static auto* outDuration = &::il2cpp_utils::GetClassFromName("System", "Double")->this_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "GetEvaluationTime", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{outStart, outDuration});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::GetSequenceTime
  // Il2CppName: GetSequenceTime
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(ByRef<double>, ByRef<double>)>(&UnityEngine::Timeline::TrackAsset::GetSequenceTime)> {
    static const MethodInfo* get() {
      static auto* outStart = &::il2cpp_utils::GetClassFromName("System", "Double")->this_arg;
      static auto* outDuration = &::il2cpp_utils::GetClassFromName("System", "Double")->this_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "GetSequenceTime", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{outStart, outDuration});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::GatherProperties
  // Il2CppName: GatherProperties
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Playables::PlayableDirector*, UnityEngine::Timeline::IPropertyCollector*)>(&UnityEngine::Timeline::TrackAsset::GatherProperties)> {
    static const MethodInfo* get() {
      static auto* director = &::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "PlayableDirector")->byval_arg;
      static auto* driver = &::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "IPropertyCollector")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "GatherProperties", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{director, driver});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::GetGameObjectBinding
  // Il2CppName: GetGameObjectBinding
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::GameObject* (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Playables::PlayableDirector*)>(&UnityEngine::Timeline::TrackAsset::GetGameObjectBinding)> {
    static const MethodInfo* get() {
      static auto* director = &::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "PlayableDirector")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "GetGameObjectBinding", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{director});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::ValidateClipType
  // Il2CppName: ValidateClipType
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)(System::Type*)>(&UnityEngine::Timeline::TrackAsset::ValidateClipType)> {
    static const MethodInfo* get() {
      static auto* clipType = &::il2cpp_utils::GetClassFromName("System", "Type")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "ValidateClipType", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{clipType});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::OnCreateClip
  // Il2CppName: OnCreateClip
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Timeline::TimelineClip*)>(&UnityEngine::Timeline::TrackAsset::OnCreateClip)> {
    static const MethodInfo* get() {
      static auto* clip = &::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "TimelineClip")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "OnCreateClip", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{clip});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::UpdateDuration
  // Il2CppName: UpdateDuration
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::UpdateDuration)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "UpdateDuration", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CalculateItemsHash
  // Il2CppName: CalculateItemsHash
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::CalculateItemsHash)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CalculateItemsHash", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CreatePlayable
  // Il2CppName: CreatePlayable
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Playables::Playable (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Playables::PlayableGraph, UnityEngine::GameObject*, UnityEngine::Timeline::TimelineClip*)>(&UnityEngine::Timeline::TrackAsset::CreatePlayable)> {
    static const MethodInfo* get() {
      static auto* graph = &::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "PlayableGraph")->byval_arg;
      static auto* gameObject = &::il2cpp_utils::GetClassFromName("UnityEngine", "GameObject")->byval_arg;
      static auto* clip = &::il2cpp_utils::GetClassFromName("UnityEngine.Timeline", "TimelineClip")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CreatePlayable", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{graph, gameObject, clip});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::Invalidate
  // Il2CppName: Invalidate
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::Invalidate)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "Invalidate", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::GetNotificationDuration
  // Il2CppName: GetNotificationDuration
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<double (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::GetNotificationDuration)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "GetNotificationDuration", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CanCompileClips
  // Il2CppName: CanCompileClips
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::CanCompileClips)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CanCompileClips", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CanCreateTrackMixer
  // Il2CppName: CanCreateTrackMixer
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::CanCreateTrackMixer)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CanCreateTrackMixer", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::IsCompilable
  // Il2CppName: IsCompilable
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::IsCompilable)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "IsCompilable", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::UpdateChildTrackCache
  // Il2CppName: UpdateChildTrackCache
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::UpdateChildTrackCache)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "UpdateChildTrackCache", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::Hash
  // Il2CppName: Hash
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::Hash)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "Hash", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::GetClipsHash
  // Il2CppName: GetClipsHash
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::GetClipsHash)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "GetClipsHash", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::GetAnimationClipHash
  // Il2CppName: GetAnimationClipHash
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (*)(UnityEngine::AnimationClip*)>(&UnityEngine::Timeline::TrackAsset::GetAnimationClipHash)> {
    static const MethodInfo* get() {
      static auto* clip = &::il2cpp_utils::GetClassFromName("UnityEngine", "AnimationClip")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "GetAnimationClipHash", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{clip});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::HasNotifications
  // Il2CppName: HasNotifications
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::HasNotifications)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "HasNotifications", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CanCompileNotifications
  // Il2CppName: CanCompileNotifications
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::CanCompileNotifications)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CanCompileNotifications", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CanCreateMixerRecursive
  // Il2CppName: CanCreateMixerRecursive
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::CanCreateMixerRecursive)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CanCreateMixerRecursive", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_duration
  // Il2CppName: get_duration
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<double (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_duration)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_duration", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::get_outputs
  // Il2CppName: get_outputs
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<System::Collections::Generic::IEnumerable_1<UnityEngine::Playables::PlayableBinding>* (UnityEngine::Timeline::TrackAsset::*)()>(&UnityEngine::Timeline::TrackAsset::get_outputs)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "get_outputs", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::New_ctor
  // Il2CppName: .ctor
  // Cannot get method pointer of value based method overload from template for constructor!
  // Try using FindMethod instead!
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::_cctor
  // Il2CppName: .cctor
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (*)()>(&UnityEngine::Timeline::TrackAsset::_cctor)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), ".cctor", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::Timeline::TrackAsset::CreatePlayable
  // Il2CppName: CreatePlayable
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Playables::Playable (UnityEngine::Timeline::TrackAsset::*)(UnityEngine::Playables::PlayableGraph, UnityEngine::GameObject*)>(&UnityEngine::Timeline::TrackAsset::CreatePlayable)> {
    static const MethodInfo* get() {
      static auto* graph = &::il2cpp_utils::GetClassFromName("UnityEngine.Playables", "PlayableGraph")->byval_arg;
      static auto* go = &::il2cpp_utils::GetClassFromName("UnityEngine", "GameObject")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::Timeline::TrackAsset*), "CreatePlayable", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{graph, go});
    }
  };
  