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.EventSystems.UIBehaviour
  #include "UnityEngine/EventSystems/UIBehaviour.hpp"
  // Including type: UnityEngine.UI.ICanvasElement
  #include "UnityEngine/UI/ICanvasElement.hpp"
  // Including type: UnityEngine.Color
  #include "UnityEngine/Color.hpp"
  // Including type: UnityEngine.Vector2
  #include "UnityEngine/Vector2.hpp"
  // Including type: UnityEngine.UI.CoroutineTween.ColorTween
  #include "UnityEngine/UI/CoroutineTween/ColorTween.hpp"
  // Including type: UnityEngine.UIVertex
  #include "UnityEngine/UIVertex.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
  namespace UnityEngine {
    // Forward declaring type: Material
    class Material;
    // Forward declaring type: RectTransform
    class RectTransform;
    // Forward declaring type: CanvasRenderer
    class CanvasRenderer;
    // Forward declaring type: Canvas
    class Canvas;
    // Forward declaring type: Mesh
    class Mesh;
    // Forward declaring type: Texture2D
    class Texture2D;
    // Forward declaring type: Texture
    class Texture;
    // Forward declaring type: Transform
    class Transform;
    // Forward declaring type: Camera
    class Camera;
    // Forward declaring type: Rect
    struct Rect;
  }
  // Forward declaring namespace: UnityEngine::Events
  namespace UnityEngine::Events {
    // Forward declaring type: UnityAction
    class UnityAction;
  }
  // Forward declaring namespace: UnityEngine::UI::CoroutineTween
  namespace UnityEngine::UI::CoroutineTween {
    // Forward declaring type: TweenRunner`1<T>
    template<typename T>
    class TweenRunner_1;
  }
  // Forward declaring namespace: UnityEngine::UI
  namespace UnityEngine::UI {
    // Forward declaring type: VertexHelper
    class VertexHelper;
    // Forward declaring type: CanvasUpdate
    struct CanvasUpdate;
  }
  // Forward declaring namespace: System::Collections::Generic
  namespace System::Collections::Generic {
    // Forward declaring type: List`1<T>
    template<typename T>
    class List_1;
  }
  // Completed forward declares
  // Type namespace: UnityEngine.UI
  namespace UnityEngine::UI {
    // Size: 0x89
    #pragma pack(push, 1)
    // Autogenerated type: UnityEngine.UI.Graphic
    // [TokenAttribute] Offset: FFFFFFFF
    // [DisallowMultipleComponent] Offset: FFFFFFFF
    // [RequireComponent] Offset: E5F000
    // [RequireComponent] Offset: E5F000
    // [ExecuteAlways] Offset: FFFFFFFF
    class Graphic : public UnityEngine::EventSystems::UIBehaviour/*, public UnityEngine::UI::ICanvasElement*/ {
      public:
      // [FormerlySerializedAsAttribute] Offset: 0xE60750
      // protected UnityEngine.Material m_Material
      // Size: 0x8
      // Offset: 0x18
      UnityEngine::Material* m_Material;
      // Field size check
      static_assert(sizeof(UnityEngine::Material*) == 0x8);
      // private UnityEngine.Color m_Color
      // Size: 0x10
      // Offset: 0x20
      UnityEngine::Color m_Color;
      // Field size check
      static_assert(sizeof(UnityEngine::Color) == 0x10);
      // protected System.Boolean m_SkipLayoutUpdate
      // Size: 0x1
      // Offset: 0x30
      bool m_SkipLayoutUpdate;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // protected System.Boolean m_SkipMaterialUpdate
      // Size: 0x1
      // Offset: 0x31
      bool m_SkipMaterialUpdate;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // private System.Boolean m_RaycastTarget
      // Size: 0x1
      // Offset: 0x32
      bool m_RaycastTarget;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // Padding between fields: m_RaycastTarget and: m_RectTransform
      char __padding4[0x5] = {};
      // private UnityEngine.RectTransform m_RectTransform
      // Size: 0x8
      // Offset: 0x38
      UnityEngine::RectTransform* m_RectTransform;
      // Field size check
      static_assert(sizeof(UnityEngine::RectTransform*) == 0x8);
      // private UnityEngine.CanvasRenderer m_CanvasRenderer
      // Size: 0x8
      // Offset: 0x40
      UnityEngine::CanvasRenderer* m_CanvasRenderer;
      // Field size check
      static_assert(sizeof(UnityEngine::CanvasRenderer*) == 0x8);
      // private UnityEngine.Canvas m_Canvas
      // Size: 0x8
      // Offset: 0x48
      UnityEngine::Canvas* m_Canvas;
      // Field size check
      static_assert(sizeof(UnityEngine::Canvas*) == 0x8);
      // private System.Boolean m_VertsDirty
      // Size: 0x1
      // Offset: 0x50
      bool m_VertsDirty;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // private System.Boolean m_MaterialDirty
      // Size: 0x1
      // Offset: 0x51
      bool m_MaterialDirty;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // Padding between fields: m_MaterialDirty and: m_OnDirtyLayoutCallback
      char __padding9[0x6] = {};
      // protected UnityEngine.Events.UnityAction m_OnDirtyLayoutCallback
      // Size: 0x8
      // Offset: 0x58
      UnityEngine::Events::UnityAction* m_OnDirtyLayoutCallback;
      // Field size check
      static_assert(sizeof(UnityEngine::Events::UnityAction*) == 0x8);
      // protected UnityEngine.Events.UnityAction m_OnDirtyVertsCallback
      // Size: 0x8
      // Offset: 0x60
      UnityEngine::Events::UnityAction* m_OnDirtyVertsCallback;
      // Field size check
      static_assert(sizeof(UnityEngine::Events::UnityAction*) == 0x8);
      // protected UnityEngine.Events.UnityAction m_OnDirtyMaterialCallback
      // Size: 0x8
      // Offset: 0x68
      UnityEngine::Events::UnityAction* m_OnDirtyMaterialCallback;
      // Field size check
      static_assert(sizeof(UnityEngine::Events::UnityAction*) == 0x8);
      // protected UnityEngine.Mesh m_CachedMesh
      // Size: 0x8
      // Offset: 0x70
      UnityEngine::Mesh* m_CachedMesh;
      // Field size check
      static_assert(sizeof(UnityEngine::Mesh*) == 0x8);
      // protected UnityEngine.Vector2[] m_CachedUvs
      // Size: 0x8
      // Offset: 0x78
      ::Array<UnityEngine::Vector2>* m_CachedUvs;
      // Field size check
      static_assert(sizeof(::Array<UnityEngine::Vector2>*) == 0x8);
      // private readonly UnityEngine.UI.CoroutineTween.TweenRunner`1<UnityEngine.UI.CoroutineTween.ColorTween> m_ColorTweenRunner
      // Size: 0x8
      // Offset: 0x80
      UnityEngine::UI::CoroutineTween::TweenRunner_1<UnityEngine::UI::CoroutineTween::ColorTween>* m_ColorTweenRunner;
      // Field size check
      static_assert(sizeof(UnityEngine::UI::CoroutineTween::TweenRunner_1<UnityEngine::UI::CoroutineTween::ColorTween>*) == 0x8);
      // private System.Boolean <useLegacyMeshGeneration>k__BackingField
      // Size: 0x1
      // Offset: 0x88
      bool useLegacyMeshGeneration;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // Creating value type constructor for type: Graphic
      Graphic(UnityEngine::Material* m_Material_ = {}, UnityEngine::Color m_Color_ = {}, bool m_SkipLayoutUpdate_ = {}, bool m_SkipMaterialUpdate_ = {}, bool m_RaycastTarget_ = {}, UnityEngine::RectTransform* m_RectTransform_ = {}, UnityEngine::CanvasRenderer* m_CanvasRenderer_ = {}, UnityEngine::Canvas* m_Canvas_ = {}, bool m_VertsDirty_ = {}, bool m_MaterialDirty_ = {}, UnityEngine::Events::UnityAction* m_OnDirtyLayoutCallback_ = {}, UnityEngine::Events::UnityAction* m_OnDirtyVertsCallback_ = {}, UnityEngine::Events::UnityAction* m_OnDirtyMaterialCallback_ = {}, UnityEngine::Mesh* m_CachedMesh_ = {}, ::Array<UnityEngine::Vector2>* m_CachedUvs_ = {}, UnityEngine::UI::CoroutineTween::TweenRunner_1<UnityEngine::UI::CoroutineTween::ColorTween>* m_ColorTweenRunner_ = {}, bool useLegacyMeshGeneration_ = {}) noexcept : m_Material{m_Material_}, m_Color{m_Color_}, m_SkipLayoutUpdate{m_SkipLayoutUpdate_}, m_SkipMaterialUpdate{m_SkipMaterialUpdate_}, m_RaycastTarget{m_RaycastTarget_}, m_RectTransform{m_RectTransform_}, m_CanvasRenderer{m_CanvasRenderer_}, m_Canvas{m_Canvas_}, m_VertsDirty{m_VertsDirty_}, m_MaterialDirty{m_MaterialDirty_}, m_OnDirtyLayoutCallback{m_OnDirtyLayoutCallback_}, m_OnDirtyVertsCallback{m_OnDirtyVertsCallback_}, m_OnDirtyMaterialCallback{m_OnDirtyMaterialCallback_}, m_CachedMesh{m_CachedMesh_}, m_CachedUvs{m_CachedUvs_}, m_ColorTweenRunner{m_ColorTweenRunner_}, useLegacyMeshGeneration{useLegacyMeshGeneration_} {}
      // Creating interface conversion operator: operator UnityEngine::UI::ICanvasElement
      operator UnityEngine::UI::ICanvasElement() noexcept {
        return *reinterpret_cast<UnityEngine::UI::ICanvasElement*>(this);
      }
      // Deleting conversion operator: operator System::IntPtr
      constexpr operator System::IntPtr() const noexcept = delete;
      // Get static field: static protected UnityEngine.Material s_DefaultUI
      static UnityEngine::Material* _get_s_DefaultUI();
      // Set static field: static protected UnityEngine.Material s_DefaultUI
      static void _set_s_DefaultUI(UnityEngine::Material* value);
      // Get static field: static protected UnityEngine.Texture2D s_WhiteTexture
      static UnityEngine::Texture2D* _get_s_WhiteTexture();
      // Set static field: static protected UnityEngine.Texture2D s_WhiteTexture
      static void _set_s_WhiteTexture(UnityEngine::Texture2D* value);
      // Get static field: static protected UnityEngine.Mesh s_Mesh
      static UnityEngine::Mesh* _get_s_Mesh();
      // Set static field: static protected UnityEngine.Mesh s_Mesh
      static void _set_s_Mesh(UnityEngine::Mesh* value);
      // Get static field: static private readonly UnityEngine.UI.VertexHelper s_VertexHelper
      static UnityEngine::UI::VertexHelper* _get_s_VertexHelper();
      // Set static field: static private readonly UnityEngine.UI.VertexHelper s_VertexHelper
      static void _set_s_VertexHelper(UnityEngine::UI::VertexHelper* value);
      // Get instance field: protected UnityEngine.Material m_Material
      UnityEngine::Material* _get_m_Material();
      // Set instance field: protected UnityEngine.Material m_Material
      void _set_m_Material(UnityEngine::Material* value);
      // Get instance field: private UnityEngine.Color m_Color
      UnityEngine::Color _get_m_Color();
      // Set instance field: private UnityEngine.Color m_Color
      void _set_m_Color(UnityEngine::Color value);
      // Get instance field: protected System.Boolean m_SkipLayoutUpdate
      bool _get_m_SkipLayoutUpdate();
      // Set instance field: protected System.Boolean m_SkipLayoutUpdate
      void _set_m_SkipLayoutUpdate(bool value);
      // Get instance field: protected System.Boolean m_SkipMaterialUpdate
      bool _get_m_SkipMaterialUpdate();
      // Set instance field: protected System.Boolean m_SkipMaterialUpdate
      void _set_m_SkipMaterialUpdate(bool value);
      // Get instance field: private System.Boolean m_RaycastTarget
      bool _get_m_RaycastTarget();
      // Set instance field: private System.Boolean m_RaycastTarget
      void _set_m_RaycastTarget(bool value);
      // Get instance field: private UnityEngine.RectTransform m_RectTransform
      UnityEngine::RectTransform* _get_m_RectTransform();
      // Set instance field: private UnityEngine.RectTransform m_RectTransform
      void _set_m_RectTransform(UnityEngine::RectTransform* value);
      // Get instance field: private UnityEngine.CanvasRenderer m_CanvasRenderer
      UnityEngine::CanvasRenderer* _get_m_CanvasRenderer();
      // Set instance field: private UnityEngine.CanvasRenderer m_CanvasRenderer
      void _set_m_CanvasRenderer(UnityEngine::CanvasRenderer* value);
      // Get instance field: private UnityEngine.Canvas m_Canvas
      UnityEngine::Canvas* _get_m_Canvas();
      // Set instance field: private UnityEngine.Canvas m_Canvas
      void _set_m_Canvas(UnityEngine::Canvas* value);
      // Get instance field: private System.Boolean m_VertsDirty
      bool _get_m_VertsDirty();
      // Set instance field: private System.Boolean m_VertsDirty
      void _set_m_VertsDirty(bool value);
      // Get instance field: private System.Boolean m_MaterialDirty
      bool _get_m_MaterialDirty();
      // Set instance field: private System.Boolean m_MaterialDirty
      void _set_m_MaterialDirty(bool value);
      // Get instance field: protected UnityEngine.Events.UnityAction m_OnDirtyLayoutCallback
      UnityEngine::Events::UnityAction* _get_m_OnDirtyLayoutCallback();
      // Set instance field: protected UnityEngine.Events.UnityAction m_OnDirtyLayoutCallback
      void _set_m_OnDirtyLayoutCallback(UnityEngine::Events::UnityAction* value);
      // Get instance field: protected UnityEngine.Events.UnityAction m_OnDirtyVertsCallback
      UnityEngine::Events::UnityAction* _get_m_OnDirtyVertsCallback();
      // Set instance field: protected UnityEngine.Events.UnityAction m_OnDirtyVertsCallback
      void _set_m_OnDirtyVertsCallback(UnityEngine::Events::UnityAction* value);
      // Get instance field: protected UnityEngine.Events.UnityAction m_OnDirtyMaterialCallback
      UnityEngine::Events::UnityAction* _get_m_OnDirtyMaterialCallback();
      // Set instance field: protected UnityEngine.Events.UnityAction m_OnDirtyMaterialCallback
      void _set_m_OnDirtyMaterialCallback(UnityEngine::Events::UnityAction* value);
      // Get instance field: protected UnityEngine.Mesh m_CachedMesh
      UnityEngine::Mesh* _get_m_CachedMesh();
      // Set instance field: protected UnityEngine.Mesh m_CachedMesh
      void _set_m_CachedMesh(UnityEngine::Mesh* value);
      // Get instance field: protected UnityEngine.Vector2[] m_CachedUvs
      ::Array<UnityEngine::Vector2>* _get_m_CachedUvs();
      // Set instance field: protected UnityEngine.Vector2[] m_CachedUvs
      void _set_m_CachedUvs(::Array<UnityEngine::Vector2>* value);
      // Get instance field: private readonly UnityEngine.UI.CoroutineTween.TweenRunner`1<UnityEngine.UI.CoroutineTween.ColorTween> m_ColorTweenRunner
      UnityEngine::UI::CoroutineTween::TweenRunner_1<UnityEngine::UI::CoroutineTween::ColorTween>* _get_m_ColorTweenRunner();
      // Set instance field: private readonly UnityEngine.UI.CoroutineTween.TweenRunner`1<UnityEngine.UI.CoroutineTween.ColorTween> m_ColorTweenRunner
      void _set_m_ColorTweenRunner(UnityEngine::UI::CoroutineTween::TweenRunner_1<UnityEngine::UI::CoroutineTween::ColorTween>* value);
      // Get instance field: private System.Boolean <useLegacyMeshGeneration>k__BackingField
      bool _get_$useLegacyMeshGeneration$k__BackingField();
      // Set instance field: private System.Boolean <useLegacyMeshGeneration>k__BackingField
      void _set_$useLegacyMeshGeneration$k__BackingField(bool value);
      // static public UnityEngine.Material get_defaultGraphicMaterial()
      // Offset: 0x15B7740
      static UnityEngine::Material* get_defaultGraphicMaterial();
      // public UnityEngine.Color get_color()
      // Offset: 0x15B7838
      UnityEngine::Color get_color();
      // public System.Void set_color(UnityEngine.Color value)
      // Offset: 0x15B7844
      void set_color(UnityEngine::Color value);
      // public System.Boolean get_raycastTarget()
      // Offset: 0x15B788C
      bool get_raycastTarget();
      // public System.Void set_raycastTarget(System.Boolean value)
      // Offset: 0x15B7894
      void set_raycastTarget(bool value);
      // protected System.Boolean get_useLegacyMeshGeneration()
      // Offset: 0x15B78A0
      bool get_useLegacyMeshGeneration();
      // protected System.Void set_useLegacyMeshGeneration(System.Boolean value)
      // Offset: 0x15B78A8
      void set_useLegacyMeshGeneration(bool value);
      // public System.Int32 get_depth()
      // Offset: 0x15B82F0
      int get_depth();
      // public UnityEngine.RectTransform get_rectTransform()
      // Offset: 0x15B7A7C
      UnityEngine::RectTransform* get_rectTransform();
      // public UnityEngine.Canvas get_canvas()
      // Offset: 0x15B7D90
      UnityEngine::Canvas* get_canvas();
      // public UnityEngine.CanvasRenderer get_canvasRenderer()
      // Offset: 0x15B8310
      UnityEngine::CanvasRenderer* get_canvasRenderer();
      // public UnityEngine.Material get_defaultMaterial()
      // Offset: 0x15B8370
      UnityEngine::Material* get_defaultMaterial();
      // public UnityEngine.Material get_material()
      // Offset: 0x15B83CC
      UnityEngine::Material* get_material();
      // public System.Void set_material(UnityEngine.Material value)
      // Offset: 0x15B8464
      void set_material(UnityEngine::Material* value);
      // public UnityEngine.Material get_materialForRendering()
      // Offset: 0x15B850C
      UnityEngine::Material* get_materialForRendering();
      // public UnityEngine.Texture get_mainTexture()
      // Offset: 0x15B8708
      UnityEngine::Texture* get_mainTexture();
      // static protected UnityEngine.Mesh get_workerMesh()
      // Offset: 0x15B9598
      static UnityEngine::Mesh* get_workerMesh();
      // private UnityEngine.Transform UnityEngine.UI.ICanvasElement.get_transform()
      // Offset: 0x15BA7BC
      UnityEngine::Transform* UnityEngine_UI_ICanvasElement_get_transform();
      // public System.Void SetAllDirty()
      // Offset: 0x15B7960
      void SetAllDirty();
      // public System.Void SetLayoutDirty()
      // Offset: 0x15B79D4
      void SetLayoutDirty();
      // public System.Void SetVerticesDirty()
      // Offset: 0x15B7ADC
      void SetVerticesDirty();
      // public System.Void SetMaterialDirty()
      // Offset: 0x15B7B7C
      void SetMaterialDirty();
      // private System.Void CacheCanvas()
      // Offset: 0x15B8020
      void CacheCanvas();
      // public System.Void OnCullingChanged()
      // Offset: 0x15B8BCC
      void OnCullingChanged();
      // public System.Void Rebuild(UnityEngine.UI.CanvasUpdate update)
      // Offset: 0x15B8C6C
      void Rebuild(UnityEngine::UI::CanvasUpdate update);
      // public System.Void LayoutComplete()
      // Offset: 0x15B8D60
      void LayoutComplete();
      // public System.Void GraphicUpdateComplete()
      // Offset: 0x15B8D64
      void GraphicUpdateComplete();
      // protected System.Void UpdateMaterial()
      // Offset: 0x15B8D68
      void UpdateMaterial();
      // protected System.Void UpdateGeometry()
      // Offset: 0x15B8E24
      void UpdateGeometry();
      // private System.Void DoMeshGeneration()
      // Offset: 0x15B91CC
      void DoMeshGeneration();
      // private System.Void DoLegacyMeshGeneration()
      // Offset: 0x15B8E34
      void DoLegacyMeshGeneration();
      // protected System.Void OnFillVBO(System.Collections.Generic.List`1<UnityEngine.UIVertex> vbo)
      // Offset: 0x15B96DC
      void OnFillVBO(System::Collections::Generic::List_1<UnityEngine::UIVertex>* vbo);
      // protected System.Void OnPopulateMesh(UnityEngine.Mesh m)
      // Offset: 0x15B96E0
      void OnPopulateMesh(UnityEngine::Mesh* m);
      // protected System.Void OnPopulateMesh(UnityEngine.UI.VertexHelper vh)
      // Offset: 0x15B9788
      void OnPopulateMesh(UnityEngine::UI::VertexHelper* vh);
      // public System.Void SetNativeSize()
      // Offset: 0x15B9B38
      void SetNativeSize();
      // public System.Boolean Raycast(UnityEngine.Vector2 sp, UnityEngine.Camera eventCamera)
      // Offset: 0x15B9B3C
      bool Raycast(UnityEngine::Vector2 sp, UnityEngine::Camera* eventCamera);
      // public UnityEngine.Vector2 PixelAdjustPoint(UnityEngine.Vector2 point)
      // Offset: 0x15B9FB4
      UnityEngine::Vector2 PixelAdjustPoint(UnityEngine::Vector2 point);
      // public UnityEngine.Rect GetPixelAdjustedRect()
      // Offset: 0x15B99F0
      UnityEngine::Rect GetPixelAdjustedRect();
      // public System.Void CrossFadeColor(UnityEngine.Color targetColor, System.Single duration, System.Boolean ignoreTimeScale, System.Boolean useAlpha)
      // Offset: 0x15BA100
      void CrossFadeColor(UnityEngine::Color targetColor, float duration, bool ignoreTimeScale, bool useAlpha);
      // public System.Void CrossFadeColor(UnityEngine.Color targetColor, System.Single duration, System.Boolean ignoreTimeScale, System.Boolean useAlpha, System.Boolean useRGB)
      // Offset: 0x15BA11C
      void CrossFadeColor(UnityEngine::Color targetColor, float duration, bool ignoreTimeScale, bool useAlpha, bool useRGB);
      // static private UnityEngine.Color CreateColorFromAlpha(System.Single alpha)
      // Offset: 0x15BA368
      static UnityEngine::Color CreateColorFromAlpha(float alpha);
      // public System.Void CrossFadeAlpha(System.Single alpha, System.Single duration, System.Boolean ignoreTimeScale)
      // Offset: 0x15BA390
      void CrossFadeAlpha(float alpha, float duration, bool ignoreTimeScale);
      // public System.Void RegisterDirtyLayoutCallback(UnityEngine.Events.UnityAction action)
      // Offset: 0x15BA438
      void RegisterDirtyLayoutCallback(UnityEngine::Events::UnityAction* action);
      // public System.Void UnregisterDirtyLayoutCallback(UnityEngine.Events.UnityAction action)
      // Offset: 0x15BA4B8
      void UnregisterDirtyLayoutCallback(UnityEngine::Events::UnityAction* action);
      // public System.Void RegisterDirtyVerticesCallback(UnityEngine.Events.UnityAction action)
      // Offset: 0x15BA538
      void RegisterDirtyVerticesCallback(UnityEngine::Events::UnityAction* action);
      // public System.Void UnregisterDirtyVerticesCallback(UnityEngine.Events.UnityAction action)
      // Offset: 0x15BA5B8
      void UnregisterDirtyVerticesCallback(UnityEngine::Events::UnityAction* action);
      // public System.Void RegisterDirtyMaterialCallback(UnityEngine.Events.UnityAction action)
      // Offset: 0x15BA638
      void RegisterDirtyMaterialCallback(UnityEngine::Events::UnityAction* action);
      // public System.Void UnregisterDirtyMaterialCallback(UnityEngine.Events.UnityAction action)
      // Offset: 0x15BA6B8
      void UnregisterDirtyMaterialCallback(UnityEngine::Events::UnityAction* action);
      // protected System.Void .ctor()
      // Offset: 0x15B78B4
      // Implemented from: UnityEngine.EventSystems.UIBehaviour
      // Base method: System.Void UIBehaviour::.ctor()
      // Base method: System.Void MonoBehaviour::.ctor()
      // Base method: System.Void Behaviour::.ctor()
      // Base method: System.Void Component::.ctor()
      // Base method: System.Void Object::.ctor()
      // Base method: System.Void Object::.ctor()
      template<::il2cpp_utils::CreationType creationType = ::il2cpp_utils::CreationType::Temporary>
      static Graphic* New_ctor() {
        static auto ___internal__logger = ::Logger::get().WithContext("UnityEngine::UI::Graphic::.ctor");
        return THROW_UNLESS((::il2cpp_utils::New<Graphic*, creationType>()));
      }
      // static private System.Void .cctor()
      // Offset: 0x15BA738
      // Implemented from: UnityEngine.Object
      // Base method: System.Void Object::.cctor()
      static void _cctor();
      // protected override System.Void OnRectTransformDimensionsChange()
      // Offset: 0x15B7C1C
      // Implemented from: UnityEngine.EventSystems.UIBehaviour
      // Base method: System.Void UIBehaviour::OnRectTransformDimensionsChange()
      void OnRectTransformDimensionsChange();
      // protected override System.Void OnBeforeTransformParentChanged()
      // Offset: 0x15B7CDC
      // Implemented from: UnityEngine.EventSystems.UIBehaviour
      // Base method: System.Void UIBehaviour::OnBeforeTransformParentChanged()
      void OnBeforeTransformParentChanged();
      // protected override System.Void OnTransformParentChanged()
      // Offset: 0x15B7F5C
      // Implemented from: UnityEngine.EventSystems.UIBehaviour
      // Base method: System.Void UIBehaviour::OnTransformParentChanged()
      void OnTransformParentChanged();
      // protected override System.Void OnEnable()
      // Offset: 0x15B8770
      // Implemented from: UnityEngine.EventSystems.UIBehaviour
      // Base method: System.Void UIBehaviour::OnEnable()
      void OnEnable();
      // protected override System.Void OnDisable()
      // Offset: 0x15B88B0
      // Implemented from: UnityEngine.EventSystems.UIBehaviour
      // Base method: System.Void UIBehaviour::OnDisable()
      void OnDisable();
      // protected override System.Void OnDestroy()
      // Offset: 0x15B89F8
      // Implemented from: UnityEngine.EventSystems.UIBehaviour
      // Base method: System.Void UIBehaviour::OnDestroy()
      void OnDestroy();
      // protected override System.Void OnCanvasHierarchyChanged()
      // Offset: 0x15B8AA8
      // Implemented from: UnityEngine.EventSystems.UIBehaviour
      // Base method: System.Void UIBehaviour::OnCanvasHierarchyChanged()
      void OnCanvasHierarchyChanged();
      // protected override System.Void OnDidApplyAnimationProperties()
      // Offset: 0x15B9B28
      // Implemented from: UnityEngine.EventSystems.UIBehaviour
      // Base method: System.Void UIBehaviour::OnDidApplyAnimationProperties()
      void OnDidApplyAnimationProperties();
    }; // UnityEngine.UI.Graphic
    #pragma pack(pop)
    static check_size<sizeof(Graphic), 136 + sizeof(bool)> __UnityEngine_UI_GraphicSizeCheck;
    static_assert(sizeof(Graphic) == 0x89);
  }
  DEFINE_IL2CPP_ARG_TYPE(UnityEngine::UI::Graphic*, "UnityEngine.UI", "Graphic");
  #include "extern/beatsaber-hook/shared/utils/il2cpp-utils-methods.hpp"
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::get_defaultGraphicMaterial
  // Il2CppName: get_defaultGraphicMaterial
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Material* (*)()>(&UnityEngine::UI::Graphic::get_defaultGraphicMaterial)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "get_defaultGraphicMaterial", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::get_color
  // Il2CppName: get_color
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Color (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::get_color)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "get_color", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::set_color
  // Il2CppName: set_color
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)(UnityEngine::Color)>(&UnityEngine::UI::Graphic::set_color)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("UnityEngine", "Color")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "set_color", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::get_raycastTarget
  // Il2CppName: get_raycastTarget
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::get_raycastTarget)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "get_raycastTarget", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::set_raycastTarget
  // Il2CppName: set_raycastTarget
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)(bool)>(&UnityEngine::UI::Graphic::set_raycastTarget)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("System", "Boolean")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "set_raycastTarget", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::get_useLegacyMeshGeneration
  // Il2CppName: get_useLegacyMeshGeneration
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::get_useLegacyMeshGeneration)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "get_useLegacyMeshGeneration", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::set_useLegacyMeshGeneration
  // Il2CppName: set_useLegacyMeshGeneration
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)(bool)>(&UnityEngine::UI::Graphic::set_useLegacyMeshGeneration)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("System", "Boolean")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "set_useLegacyMeshGeneration", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::get_depth
  // Il2CppName: get_depth
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<int (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::get_depth)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "get_depth", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::get_rectTransform
  // Il2CppName: get_rectTransform
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::RectTransform* (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::get_rectTransform)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "get_rectTransform", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::get_canvas
  // Il2CppName: get_canvas
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Canvas* (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::get_canvas)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "get_canvas", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::get_canvasRenderer
  // Il2CppName: get_canvasRenderer
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::CanvasRenderer* (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::get_canvasRenderer)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "get_canvasRenderer", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::get_defaultMaterial
  // Il2CppName: get_defaultMaterial
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Material* (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::get_defaultMaterial)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "get_defaultMaterial", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::get_material
  // Il2CppName: get_material
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Material* (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::get_material)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "get_material", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::set_material
  // Il2CppName: set_material
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)(UnityEngine::Material*)>(&UnityEngine::UI::Graphic::set_material)> {
    static const MethodInfo* get() {
      static auto* value = &::il2cpp_utils::GetClassFromName("UnityEngine", "Material")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "set_material", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{value});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::get_materialForRendering
  // Il2CppName: get_materialForRendering
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Material* (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::get_materialForRendering)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "get_materialForRendering", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::get_mainTexture
  // Il2CppName: get_mainTexture
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Texture* (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::get_mainTexture)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "get_mainTexture", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::get_workerMesh
  // Il2CppName: get_workerMesh
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Mesh* (*)()>(&UnityEngine::UI::Graphic::get_workerMesh)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "get_workerMesh", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::UnityEngine_UI_ICanvasElement_get_transform
  // Il2CppName: UnityEngine.UI.ICanvasElement.get_transform
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Transform* (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::UnityEngine_UI_ICanvasElement_get_transform)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "UnityEngine.UI.ICanvasElement.get_transform", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::SetAllDirty
  // Il2CppName: SetAllDirty
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::SetAllDirty)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "SetAllDirty", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::SetLayoutDirty
  // Il2CppName: SetLayoutDirty
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::SetLayoutDirty)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "SetLayoutDirty", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::SetVerticesDirty
  // Il2CppName: SetVerticesDirty
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::SetVerticesDirty)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "SetVerticesDirty", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::SetMaterialDirty
  // Il2CppName: SetMaterialDirty
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::SetMaterialDirty)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "SetMaterialDirty", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::CacheCanvas
  // Il2CppName: CacheCanvas
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::CacheCanvas)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "CacheCanvas", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::OnCullingChanged
  // Il2CppName: OnCullingChanged
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::OnCullingChanged)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "OnCullingChanged", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::Rebuild
  // Il2CppName: Rebuild
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)(UnityEngine::UI::CanvasUpdate)>(&UnityEngine::UI::Graphic::Rebuild)> {
    static const MethodInfo* get() {
      static auto* update = &::il2cpp_utils::GetClassFromName("UnityEngine.UI", "CanvasUpdate")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "Rebuild", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{update});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::LayoutComplete
  // Il2CppName: LayoutComplete
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::LayoutComplete)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "LayoutComplete", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::GraphicUpdateComplete
  // Il2CppName: GraphicUpdateComplete
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::GraphicUpdateComplete)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "GraphicUpdateComplete", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::UpdateMaterial
  // Il2CppName: UpdateMaterial
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::UpdateMaterial)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "UpdateMaterial", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::UpdateGeometry
  // Il2CppName: UpdateGeometry
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::UpdateGeometry)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "UpdateGeometry", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::DoMeshGeneration
  // Il2CppName: DoMeshGeneration
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::DoMeshGeneration)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "DoMeshGeneration", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::DoLegacyMeshGeneration
  // Il2CppName: DoLegacyMeshGeneration
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::DoLegacyMeshGeneration)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "DoLegacyMeshGeneration", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::OnFillVBO
  // Il2CppName: OnFillVBO
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)(System::Collections::Generic::List_1<UnityEngine::UIVertex>*)>(&UnityEngine::UI::Graphic::OnFillVBO)> {
    static const MethodInfo* get() {
      static auto* vbo = &::il2cpp_utils::MakeGeneric(::il2cpp_utils::GetClassFromName("System.Collections.Generic", "List`1"), ::std::vector<const Il2CppClass*>{::il2cpp_utils::GetClassFromName("UnityEngine", "UIVertex")})->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "OnFillVBO", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{vbo});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::OnPopulateMesh
  // Il2CppName: OnPopulateMesh
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)(UnityEngine::Mesh*)>(&UnityEngine::UI::Graphic::OnPopulateMesh)> {
    static const MethodInfo* get() {
      static auto* m = &::il2cpp_utils::GetClassFromName("UnityEngine", "Mesh")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "OnPopulateMesh", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{m});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::OnPopulateMesh
  // Il2CppName: OnPopulateMesh
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)(UnityEngine::UI::VertexHelper*)>(&UnityEngine::UI::Graphic::OnPopulateMesh)> {
    static const MethodInfo* get() {
      static auto* vh = &::il2cpp_utils::GetClassFromName("UnityEngine.UI", "VertexHelper")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "OnPopulateMesh", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{vh});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::SetNativeSize
  // Il2CppName: SetNativeSize
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::SetNativeSize)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "SetNativeSize", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::Raycast
  // Il2CppName: Raycast
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<bool (UnityEngine::UI::Graphic::*)(UnityEngine::Vector2, UnityEngine::Camera*)>(&UnityEngine::UI::Graphic::Raycast)> {
    static const MethodInfo* get() {
      static auto* sp = &::il2cpp_utils::GetClassFromName("UnityEngine", "Vector2")->byval_arg;
      static auto* eventCamera = &::il2cpp_utils::GetClassFromName("UnityEngine", "Camera")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "Raycast", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{sp, eventCamera});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::PixelAdjustPoint
  // Il2CppName: PixelAdjustPoint
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Vector2 (UnityEngine::UI::Graphic::*)(UnityEngine::Vector2)>(&UnityEngine::UI::Graphic::PixelAdjustPoint)> {
    static const MethodInfo* get() {
      static auto* point = &::il2cpp_utils::GetClassFromName("UnityEngine", "Vector2")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "PixelAdjustPoint", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{point});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::GetPixelAdjustedRect
  // Il2CppName: GetPixelAdjustedRect
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Rect (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::GetPixelAdjustedRect)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "GetPixelAdjustedRect", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::CrossFadeColor
  // Il2CppName: CrossFadeColor
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)(UnityEngine::Color, float, bool, bool)>(&UnityEngine::UI::Graphic::CrossFadeColor)> {
    static const MethodInfo* get() {
      static auto* targetColor = &::il2cpp_utils::GetClassFromName("UnityEngine", "Color")->byval_arg;
      static auto* duration = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      static auto* ignoreTimeScale = &::il2cpp_utils::GetClassFromName("System", "Boolean")->byval_arg;
      static auto* useAlpha = &::il2cpp_utils::GetClassFromName("System", "Boolean")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "CrossFadeColor", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{targetColor, duration, ignoreTimeScale, useAlpha});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::CrossFadeColor
  // Il2CppName: CrossFadeColor
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)(UnityEngine::Color, float, bool, bool, bool)>(&UnityEngine::UI::Graphic::CrossFadeColor)> {
    static const MethodInfo* get() {
      static auto* targetColor = &::il2cpp_utils::GetClassFromName("UnityEngine", "Color")->byval_arg;
      static auto* duration = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      static auto* ignoreTimeScale = &::il2cpp_utils::GetClassFromName("System", "Boolean")->byval_arg;
      static auto* useAlpha = &::il2cpp_utils::GetClassFromName("System", "Boolean")->byval_arg;
      static auto* useRGB = &::il2cpp_utils::GetClassFromName("System", "Boolean")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "CrossFadeColor", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{targetColor, duration, ignoreTimeScale, useAlpha, useRGB});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::CreateColorFromAlpha
  // Il2CppName: CreateColorFromAlpha
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<UnityEngine::Color (*)(float)>(&UnityEngine::UI::Graphic::CreateColorFromAlpha)> {
    static const MethodInfo* get() {
      static auto* alpha = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "CreateColorFromAlpha", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{alpha});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::CrossFadeAlpha
  // Il2CppName: CrossFadeAlpha
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)(float, float, bool)>(&UnityEngine::UI::Graphic::CrossFadeAlpha)> {
    static const MethodInfo* get() {
      static auto* alpha = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      static auto* duration = &::il2cpp_utils::GetClassFromName("System", "Single")->byval_arg;
      static auto* ignoreTimeScale = &::il2cpp_utils::GetClassFromName("System", "Boolean")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "CrossFadeAlpha", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{alpha, duration, ignoreTimeScale});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::RegisterDirtyLayoutCallback
  // Il2CppName: RegisterDirtyLayoutCallback
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)(UnityEngine::Events::UnityAction*)>(&UnityEngine::UI::Graphic::RegisterDirtyLayoutCallback)> {
    static const MethodInfo* get() {
      static auto* action = &::il2cpp_utils::GetClassFromName("UnityEngine.Events", "UnityAction")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "RegisterDirtyLayoutCallback", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{action});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::UnregisterDirtyLayoutCallback
  // Il2CppName: UnregisterDirtyLayoutCallback
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)(UnityEngine::Events::UnityAction*)>(&UnityEngine::UI::Graphic::UnregisterDirtyLayoutCallback)> {
    static const MethodInfo* get() {
      static auto* action = &::il2cpp_utils::GetClassFromName("UnityEngine.Events", "UnityAction")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "UnregisterDirtyLayoutCallback", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{action});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::RegisterDirtyVerticesCallback
  // Il2CppName: RegisterDirtyVerticesCallback
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)(UnityEngine::Events::UnityAction*)>(&UnityEngine::UI::Graphic::RegisterDirtyVerticesCallback)> {
    static const MethodInfo* get() {
      static auto* action = &::il2cpp_utils::GetClassFromName("UnityEngine.Events", "UnityAction")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "RegisterDirtyVerticesCallback", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{action});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::UnregisterDirtyVerticesCallback
  // Il2CppName: UnregisterDirtyVerticesCallback
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)(UnityEngine::Events::UnityAction*)>(&UnityEngine::UI::Graphic::UnregisterDirtyVerticesCallback)> {
    static const MethodInfo* get() {
      static auto* action = &::il2cpp_utils::GetClassFromName("UnityEngine.Events", "UnityAction")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "UnregisterDirtyVerticesCallback", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{action});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::RegisterDirtyMaterialCallback
  // Il2CppName: RegisterDirtyMaterialCallback
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)(UnityEngine::Events::UnityAction*)>(&UnityEngine::UI::Graphic::RegisterDirtyMaterialCallback)> {
    static const MethodInfo* get() {
      static auto* action = &::il2cpp_utils::GetClassFromName("UnityEngine.Events", "UnityAction")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "RegisterDirtyMaterialCallback", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{action});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::UnregisterDirtyMaterialCallback
  // Il2CppName: UnregisterDirtyMaterialCallback
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)(UnityEngine::Events::UnityAction*)>(&UnityEngine::UI::Graphic::UnregisterDirtyMaterialCallback)> {
    static const MethodInfo* get() {
      static auto* action = &::il2cpp_utils::GetClassFromName("UnityEngine.Events", "UnityAction")->byval_arg;
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "UnregisterDirtyMaterialCallback", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{action});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::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::UI::Graphic::_cctor
  // Il2CppName: .cctor
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (*)()>(&UnityEngine::UI::Graphic::_cctor)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), ".cctor", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::OnRectTransformDimensionsChange
  // Il2CppName: OnRectTransformDimensionsChange
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::OnRectTransformDimensionsChange)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "OnRectTransformDimensionsChange", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::OnBeforeTransformParentChanged
  // Il2CppName: OnBeforeTransformParentChanged
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::OnBeforeTransformParentChanged)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "OnBeforeTransformParentChanged", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::OnTransformParentChanged
  // Il2CppName: OnTransformParentChanged
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::OnTransformParentChanged)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "OnTransformParentChanged", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::OnEnable
  // Il2CppName: OnEnable
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::OnEnable)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "OnEnable", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::OnDisable
  // Il2CppName: OnDisable
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::OnDisable)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "OnDisable", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::OnDestroy
  // Il2CppName: OnDestroy
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::OnDestroy)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "OnDestroy", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::OnCanvasHierarchyChanged
  // Il2CppName: OnCanvasHierarchyChanged
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::OnCanvasHierarchyChanged)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "OnCanvasHierarchyChanged", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  // Writing MetadataGetter for method: UnityEngine::UI::Graphic::OnDidApplyAnimationProperties
  // Il2CppName: OnDidApplyAnimationProperties
  template<>
  struct ::il2cpp_utils::il2cpp_type_check::MetadataGetter<static_cast<void (UnityEngine::UI::Graphic::*)()>(&UnityEngine::UI::Graphic::OnDidApplyAnimationProperties)> {
    static const MethodInfo* get() {
      return ::il2cpp_utils::FindMethod(classof(UnityEngine::UI::Graphic*), "OnDidApplyAnimationProperties", std::vector<Il2CppClass*>(), ::std::vector<const Il2CppType*>{});
    }
  };
  