
/* Automatically generated struct definitions for the Data API.
 * Do not edit manually, changes will be overwritten.           */

#define RNA_RUNTIME

#include <float.h>
#include <stdio.h>
#include <limits.h>
#include <limits>
#include <string.h>

#include <stddef.h>

#include <algorithm>

#include "MEM_guardedalloc.h"

#include "DNA_ID.h"
#include "DNA_scene_types.h"
#include "DNA_node_types.h"
#include "BLI_fileops.h"

#include "BLI_listbase.h"

#include "BLI_path_utils.hh"

#include "BLI_rect.h"

#include "BLI_string.h"

#include "BLI_string_utf8.h"

#include "BLI_utildefines.h"

#include "BKE_context.hh"
#include "BKE_lib_id.hh"
#include "BKE_main.hh"
#include "BKE_report.hh"
#include "RNA_define.hh"
#include "RNA_types.hh"
#include "rna_internal.hh"

#include "rna_prototypes_gen.hh"

#include "rna_ID.cc"

#pragma GCC diagnostic ignored "-Wunused-parameter"

/* Auto-generated Functions. */


extern PropertyRNA &rna_UnknownType_rna_properties;
extern PropertyRNA &rna_UnknownType_rna_type;


extern PropertyRNA &rna_AnyType_rna_properties;
extern PropertyRNA &rna_AnyType_rna_type;


extern PropertyRNA &rna_ID_rna_properties;
extern PropertyRNA &rna_ID_rna_type;
extern PropertyRNA &rna_ID_name;
extern PropertyRNA &rna_ID_name_full;
extern PropertyRNA &rna_ID_id_type;
extern PropertyRNA &rna_ID_session_uid;
extern PropertyRNA &rna_ID_is_evaluated;
extern PropertyRNA &rna_ID_original;
extern PropertyRNA &rna_ID_users;
extern PropertyRNA &rna_ID_use_fake_user;
extern PropertyRNA &rna_ID_use_extra_user;
extern PropertyRNA &rna_ID_is_embedded_data;
extern PropertyRNA &rna_ID_is_missing;
extern PropertyRNA &rna_ID_is_runtime_data;
extern PropertyRNA &rna_ID_is_editable;
extern PropertyRNA &rna_ID_tag;
extern PropertyRNA &rna_ID_is_library_indirect;
extern PropertyRNA &rna_ID_library;
extern PropertyRNA &rna_ID_library_weak_reference;
extern PropertyRNA &rna_ID_asset_data;
extern PropertyRNA &rna_ID_override_library;
extern PropertyRNA &rna_ID_preview;

extern FunctionRNA rna_ID_rename_func;
extern PropertyRNA &rna_ID_rename_name;
extern PropertyRNA &rna_ID_rename_mode;
extern PropertyRNA &rna_ID_rename_id_rename_result;

extern FunctionRNA rna_ID_evaluated_get_func;
extern PropertyRNA &rna_ID_evaluated_get_depsgraph;
extern PropertyRNA &rna_ID_evaluated_get_id;

extern FunctionRNA rna_ID_copy_func;
extern PropertyRNA &rna_ID_copy_id;

extern FunctionRNA rna_ID_asset_mark_func;
extern FunctionRNA rna_ID_asset_clear_func;
extern FunctionRNA rna_ID_asset_generate_preview_func;
extern FunctionRNA rna_ID_override_create_func;
extern PropertyRNA &rna_ID_override_create_id;
extern PropertyRNA &rna_ID_override_create_remap_local_usages;

extern FunctionRNA rna_ID_override_hierarchy_create_func;
extern PropertyRNA &rna_ID_override_hierarchy_create_id;
extern PropertyRNA &rna_ID_override_hierarchy_create_scene;
extern PropertyRNA &rna_ID_override_hierarchy_create_view_layer;
extern PropertyRNA &rna_ID_override_hierarchy_create_reference;
extern PropertyRNA &rna_ID_override_hierarchy_create_do_fully_editable;

extern FunctionRNA rna_ID_user_clear_func;
extern FunctionRNA rna_ID_user_remap_func;
extern PropertyRNA &rna_ID_user_remap_new_id;

extern FunctionRNA rna_ID_make_local_func;
extern PropertyRNA &rna_ID_make_local_clear_proxy;
extern PropertyRNA &rna_ID_make_local_clear_liboverride;
extern PropertyRNA &rna_ID_make_local_clear_asset_data;
extern PropertyRNA &rna_ID_make_local_id;

extern FunctionRNA rna_ID_user_of_id_func;
extern PropertyRNA &rna_ID_user_of_id_id;
extern PropertyRNA &rna_ID_user_of_id_count;

extern FunctionRNA rna_ID_animation_data_create_func;
extern PropertyRNA &rna_ID_animation_data_create_anim_data;

extern FunctionRNA rna_ID_animation_data_clear_func;
extern FunctionRNA rna_ID_update_tag_func;
extern PropertyRNA &rna_ID_update_tag_refresh;

extern FunctionRNA rna_ID_preview_ensure_func;
extern PropertyRNA &rna_ID_preview_ensure_preview_image;



extern PropertyRNA &rna_IDOverrideLibrary_rna_properties;
extern PropertyRNA &rna_IDOverrideLibrary_rna_type;
extern PropertyRNA &rna_IDOverrideLibrary_reference;
extern PropertyRNA &rna_IDOverrideLibrary_hierarchy_root;
extern PropertyRNA &rna_IDOverrideLibrary_is_in_hierarchy;
extern PropertyRNA &rna_IDOverrideLibrary_is_system_override;
extern PropertyRNA &rna_IDOverrideLibrary_properties;

extern FunctionRNA rna_IDOverrideLibrary_operations_update_func;
extern FunctionRNA rna_IDOverrideLibrary_reset_func;
extern PropertyRNA &rna_IDOverrideLibrary_reset_do_hierarchy;
extern PropertyRNA &rna_IDOverrideLibrary_reset_set_system_override;

extern FunctionRNA rna_IDOverrideLibrary_destroy_func;
extern PropertyRNA &rna_IDOverrideLibrary_destroy_do_hierarchy;

extern FunctionRNA rna_IDOverrideLibrary_resync_func;
extern PropertyRNA &rna_IDOverrideLibrary_resync_success;
extern PropertyRNA &rna_IDOverrideLibrary_resync_scene;
extern PropertyRNA &rna_IDOverrideLibrary_resync_view_layer;
extern PropertyRNA &rna_IDOverrideLibrary_resync_residual_storage;
extern PropertyRNA &rna_IDOverrideLibrary_resync_do_hierarchy_enforce;
extern PropertyRNA &rna_IDOverrideLibrary_resync_do_whole_hierarchy;



extern PropertyRNA &rna_IDOverrideLibraryProperties_rna_properties;
extern PropertyRNA &rna_IDOverrideLibraryProperties_rna_type;

extern FunctionRNA rna_IDOverrideLibraryProperties_add_func;
extern PropertyRNA &rna_IDOverrideLibraryProperties_add_property;
extern PropertyRNA &rna_IDOverrideLibraryProperties_add_rna_path;

extern FunctionRNA rna_IDOverrideLibraryProperties_remove_func;
extern PropertyRNA &rna_IDOverrideLibraryProperties_remove_property;



extern PropertyRNA &rna_IDOverrideLibraryProperty_rna_properties;
extern PropertyRNA &rna_IDOverrideLibraryProperty_rna_type;
extern PropertyRNA &rna_IDOverrideLibraryProperty_rna_path;
extern PropertyRNA &rna_IDOverrideLibraryProperty_operations;


extern PropertyRNA &rna_IDOverrideLibraryPropertyOperations_rna_properties;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperations_rna_type;

extern FunctionRNA rna_IDOverrideLibraryPropertyOperations_add_func;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperations_add_operation;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperations_add_use_id;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperations_add_subitem_reference_name;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperations_add_subitem_local_name;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperations_add_subitem_reference_id;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperations_add_subitem_local_id;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperations_add_subitem_reference_index;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperations_add_subitem_local_index;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperations_add_property;

extern FunctionRNA rna_IDOverrideLibraryPropertyOperations_remove_func;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperations_remove_operation;



extern PropertyRNA &rna_IDOverrideLibraryPropertyOperation_rna_properties;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperation_rna_type;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperation_operation;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperation_flag;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperation_subitem_reference_name;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperation_subitem_local_name;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperation_subitem_reference_id;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperation_subitem_local_id;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperation_subitem_reference_index;
extern PropertyRNA &rna_IDOverrideLibraryPropertyOperation_subitem_local_index;


extern PropertyRNA &rna_ImagePreview_rna_properties;
extern PropertyRNA &rna_ImagePreview_rna_type;
extern PropertyRNA &rna_ImagePreview_is_image_custom;
extern PropertyRNA &rna_ImagePreview_image_size;
extern PropertyRNA &rna_ImagePreview_image_pixels;
extern PropertyRNA &rna_ImagePreview_image_pixels_float;
extern PropertyRNA &rna_ImagePreview_is_icon_custom;
extern PropertyRNA &rna_ImagePreview_icon_size;
extern PropertyRNA &rna_ImagePreview_icon_pixels;
extern PropertyRNA &rna_ImagePreview_icon_pixels_float;
extern PropertyRNA &rna_ImagePreview_icon_id;

extern FunctionRNA rna_ImagePreview_reload_func;


extern PropertyRNA &rna_PropertyGroupItem_rna_properties;
extern PropertyRNA &rna_PropertyGroupItem_rna_type;
extern PropertyRNA &rna_PropertyGroupItem_string;
extern PropertyRNA &rna_PropertyGroupItem_int;
extern PropertyRNA &rna_PropertyGroupItem_int_array;
extern PropertyRNA &rna_PropertyGroupItem_float;
extern PropertyRNA &rna_PropertyGroupItem_float_array;
extern PropertyRNA &rna_PropertyGroupItem_double;
extern PropertyRNA &rna_PropertyGroupItem_double_array;
extern PropertyRNA &rna_PropertyGroupItem_bool;
extern PropertyRNA &rna_PropertyGroupItem_bool_array;
extern PropertyRNA &rna_PropertyGroupItem_enum;
extern PropertyRNA &rna_PropertyGroupItem_group;
extern PropertyRNA &rna_PropertyGroupItem_collection;
extern PropertyRNA &rna_PropertyGroupItem_idp_array;
extern PropertyRNA &rna_PropertyGroupItem_id;


extern PropertyRNA &rna_PropertyGroup_rna_properties;
extern PropertyRNA &rna_PropertyGroup_rna_type;
extern PropertyRNA &rna_PropertyGroup_name;


extern PropertyRNA &rna_IDMaterials_rna_properties;
extern PropertyRNA &rna_IDMaterials_rna_type;

extern FunctionRNA rna_IDMaterials_append_func;
extern PropertyRNA &rna_IDMaterials_append_material;

extern FunctionRNA rna_IDMaterials_pop_func;
extern PropertyRNA &rna_IDMaterials_pop_index;
extern PropertyRNA &rna_IDMaterials_pop_material;

extern FunctionRNA rna_IDMaterials_clear_func;


extern PropertyRNA &rna_ID_rna_properties;
extern PropertyRNA &rna_ID_rna_type;
extern PropertyRNA &rna_ID_name;
extern PropertyRNA &rna_ID_name_full;
extern PropertyRNA &rna_ID_id_type;
extern PropertyRNA &rna_ID_session_uid;
extern PropertyRNA &rna_ID_is_evaluated;
extern PropertyRNA &rna_ID_original;
extern PropertyRNA &rna_ID_users;
extern PropertyRNA &rna_ID_use_fake_user;
extern PropertyRNA &rna_ID_use_extra_user;
extern PropertyRNA &rna_ID_is_embedded_data;
extern PropertyRNA &rna_ID_is_missing;
extern PropertyRNA &rna_ID_is_runtime_data;
extern PropertyRNA &rna_ID_is_editable;
extern PropertyRNA &rna_ID_tag;
extern PropertyRNA &rna_ID_is_library_indirect;
extern PropertyRNA &rna_ID_library;
extern PropertyRNA &rna_ID_library_weak_reference;
extern PropertyRNA &rna_ID_asset_data;
extern PropertyRNA &rna_ID_override_library;
extern PropertyRNA &rna_ID_preview;

extern PropertyRNA &rna_Library_filepath;
extern PropertyRNA &rna_Library_parent;
extern PropertyRNA &rna_Library_packed_file;
extern PropertyRNA &rna_Library_version;
extern PropertyRNA &rna_Library_needs_liboverride_resync;
extern PropertyRNA &rna_Library_is_editable;

extern FunctionRNA rna_ID_rename_func;
extern PropertyRNA &rna_ID_rename_name;
extern PropertyRNA &rna_ID_rename_mode;
extern PropertyRNA &rna_ID_rename_id_rename_result;

extern FunctionRNA rna_ID_evaluated_get_func;
extern PropertyRNA &rna_ID_evaluated_get_depsgraph;
extern PropertyRNA &rna_ID_evaluated_get_id;

extern FunctionRNA rna_ID_copy_func;
extern PropertyRNA &rna_ID_copy_id;

extern FunctionRNA rna_ID_asset_mark_func;
extern FunctionRNA rna_ID_asset_clear_func;
extern FunctionRNA rna_ID_asset_generate_preview_func;
extern FunctionRNA rna_ID_override_create_func;
extern PropertyRNA &rna_ID_override_create_id;
extern PropertyRNA &rna_ID_override_create_remap_local_usages;

extern FunctionRNA rna_ID_override_hierarchy_create_func;
extern PropertyRNA &rna_ID_override_hierarchy_create_id;
extern PropertyRNA &rna_ID_override_hierarchy_create_scene;
extern PropertyRNA &rna_ID_override_hierarchy_create_view_layer;
extern PropertyRNA &rna_ID_override_hierarchy_create_reference;
extern PropertyRNA &rna_ID_override_hierarchy_create_do_fully_editable;

extern FunctionRNA rna_ID_user_clear_func;
extern FunctionRNA rna_ID_user_remap_func;
extern PropertyRNA &rna_ID_user_remap_new_id;

extern FunctionRNA rna_ID_make_local_func;
extern PropertyRNA &rna_ID_make_local_clear_proxy;
extern PropertyRNA &rna_ID_make_local_clear_liboverride;
extern PropertyRNA &rna_ID_make_local_clear_asset_data;
extern PropertyRNA &rna_ID_make_local_id;

extern FunctionRNA rna_ID_user_of_id_func;
extern PropertyRNA &rna_ID_user_of_id_id;
extern PropertyRNA &rna_ID_user_of_id_count;

extern FunctionRNA rna_ID_animation_data_create_func;
extern PropertyRNA &rna_ID_animation_data_create_anim_data;

extern FunctionRNA rna_ID_animation_data_clear_func;
extern FunctionRNA rna_ID_update_tag_func;
extern PropertyRNA &rna_ID_update_tag_refresh;

extern FunctionRNA rna_ID_preview_ensure_func;
extern PropertyRNA &rna_ID_preview_ensure_preview_image;


extern FunctionRNA rna_Library_reload_func;


extern PropertyRNA &rna_LibraryWeakReference_rna_properties;
extern PropertyRNA &rna_LibraryWeakReference_rna_type;
extern PropertyRNA &rna_LibraryWeakReference_filepath;
extern PropertyRNA &rna_LibraryWeakReference_id_name;


extern PropertyRNA &rna_IDPropertyWrapPtr_rna_properties;
extern PropertyRNA &rna_IDPropertyWrapPtr_rna_type;

static PointerRNA UnknownType_rna_properties_get(CollectionPropertyIterator *iter)
{
    PropCollectionGetFunc fn = rna_builtin_properties_get;
    return fn(iter);
}

extern void UnknownType_rna_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{

    *iter = {};
    iter->parent = *ptr;
    iter->prop = &rna_UnknownType_rna_properties;

    PropCollectionBeginFunc fn = rna_builtin_properties_begin;
    fn(iter, ptr);

    if (iter->valid) {
        iter->ptr = UnknownType_rna_properties_get(iter);
    }
}

extern void UnknownType_rna_properties_next(CollectionPropertyIterator *iter)
{
    PropCollectionNextFunc fn = rna_builtin_properties_next;
    fn(iter);

    if (iter->valid) {
        iter->ptr = UnknownType_rna_properties_get(iter);
    }
}

extern void UnknownType_rna_properties_end(CollectionPropertyIterator *iter)
{
    PropCollectionEndFunc fn = rna_iterator_listbase_end;
    fn(iter);
}

extern bool UnknownType_rna_properties_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
{
    PropCollectionLookupStringFunc fn = rna_builtin_properties_lookup_string;
    return fn(ptr, key, r_ptr);
}

extern PointerRNA UnknownType_rna_type_get(PointerRNA *ptr)
{
    PropPointerGetFunc fn = rna_builtin_type_get;
    return fn(ptr);
}

static PointerRNA AnyType_rna_properties_get(CollectionPropertyIterator *iter)
{
    PropCollectionGetFunc fn = rna_builtin_properties_get;
    return fn(iter);
}

extern void AnyType_rna_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{

    *iter = {};
    iter->parent = *ptr;
    iter->prop = &rna_AnyType_rna_properties;

    PropCollectionBeginFunc fn = rna_builtin_properties_begin;
    fn(iter, ptr);

    if (iter->valid) {
        iter->ptr = AnyType_rna_properties_get(iter);
    }
}

extern void AnyType_rna_properties_next(CollectionPropertyIterator *iter)
{
    PropCollectionNextFunc fn = rna_builtin_properties_next;
    fn(iter);

    if (iter->valid) {
        iter->ptr = AnyType_rna_properties_get(iter);
    }
}

extern void AnyType_rna_properties_end(CollectionPropertyIterator *iter)
{
    PropCollectionEndFunc fn = rna_iterator_listbase_end;
    fn(iter);
}

extern bool AnyType_rna_properties_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
{
    PropCollectionLookupStringFunc fn = rna_builtin_properties_lookup_string;
    return fn(ptr, key, r_ptr);
}

extern PointerRNA AnyType_rna_type_get(PointerRNA *ptr)
{
    PropPointerGetFunc fn = rna_builtin_type_get;
    return fn(ptr);
}

static PointerRNA ID_rna_properties_get(CollectionPropertyIterator *iter)
{
    PropCollectionGetFunc fn = rna_builtin_properties_get;
    return fn(iter);
}

extern void ID_rna_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{

    *iter = {};
    iter->parent = *ptr;
    iter->prop = &rna_ID_rna_properties;

    PropCollectionBeginFunc fn = rna_builtin_properties_begin;
    fn(iter, ptr);

    if (iter->valid) {
        iter->ptr = ID_rna_properties_get(iter);
    }
}

extern void ID_rna_properties_next(CollectionPropertyIterator *iter)
{
    PropCollectionNextFunc fn = rna_builtin_properties_next;
    fn(iter);

    if (iter->valid) {
        iter->ptr = ID_rna_properties_get(iter);
    }
}

extern void ID_rna_properties_end(CollectionPropertyIterator *iter)
{
    PropCollectionEndFunc fn = rna_iterator_listbase_end;
    fn(iter);
}

extern bool ID_rna_properties_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
{
    PropCollectionLookupStringFunc fn = rna_builtin_properties_lookup_string;
    return fn(ptr, key, r_ptr);
}

extern PointerRNA ID_rna_type_get(PointerRNA *ptr)
{
    PropPointerGetFunc fn = rna_builtin_type_get;
    return fn(ptr);
}

extern void ID_name_get(PointerRNA *ptr, char *value)
{
    PropStringGetFunc fn = rna_ID_name_get;
    fn(ptr, value);
}

extern int ID_name_length(PointerRNA *ptr)
{
    PropStringLengthFunc fn = rna_ID_name_length;
    return fn(ptr);
}

extern void ID_name_set(PointerRNA *ptr, const char *value)
{
    PropStringSetFunc fn = rna_ID_name_set;
    fn(ptr, value);
}

extern void ID_name_full_get(PointerRNA *ptr, char *value)
{
    PropStringGetFunc fn = rna_ID_name_full_get;
    fn(ptr, value);
}

extern int ID_name_full_length(PointerRNA *ptr)
{
    PropStringLengthFunc fn = rna_ID_name_full_length;
    return fn(ptr);
}

extern int ID_id_type_get(PointerRNA *ptr)
{
    PropEnumGetFunc fn = rna_ID_type_get;
    return fn(ptr);
}

extern int ID_session_uid_get(PointerRNA *ptr)
{
    ID *data = (ID *)(ptr->data);
    return (int)(data->session_uid);
}

extern bool ID_is_evaluated_get(PointerRNA *ptr)
{
    PropBooleanGetFunc fn = rna_ID_is_evaluated_get;
    return fn(ptr);
}

extern PointerRNA ID_original_get(PointerRNA *ptr)
{
    PropPointerGetFunc fn = rna_ID_original_get;
    return fn(ptr);
}

extern int ID_users_get(PointerRNA *ptr)
{
    ID *data = (ID *)(ptr->data);
    return (int)(data->us);
}

extern bool ID_use_fake_user_get(PointerRNA *ptr)
{
    ID *data = (ID *)(ptr->data);
    return (((data->flag) & 512) != 0);
}

extern void ID_use_fake_user_set(PointerRNA *ptr, bool value)
{
    PropBooleanSetFunc fn = rna_ID_fake_user_set;
    fn(ptr, value);
}

extern bool ID_use_extra_user_get(PointerRNA *ptr)
{
    ID *data = (ID *)(ptr->data);
    return (((data->tag) & 16) != 0);
}

extern void ID_use_extra_user_set(PointerRNA *ptr, bool value)
{
    PropBooleanSetFunc fn = rna_ID_extra_user_set;
    fn(ptr, value);
}

extern bool ID_is_embedded_data_get(PointerRNA *ptr)
{
    ID *data = (ID *)(ptr->data);
    return (((data->flag) & 1024) != 0);
}

extern bool ID_is_missing_get(PointerRNA *ptr)
{
    ID *data = (ID *)(ptr->data);
    return (((data->tag) & 8) != 0);
}

extern bool ID_is_runtime_data_get(PointerRNA *ptr)
{
    PropBooleanGetFunc fn = rna_ID_is_runtime_get;
    return fn(ptr);
}

extern void ID_is_runtime_data_set(PointerRNA *ptr, bool value)
{
    ID *data = (ID *)(ptr->data);
    if (value) { data->tag |= 4; }
    else { data->tag &= ~4; }
}

extern bool ID_is_editable_get(PointerRNA *ptr)
{
    PropBooleanGetFunc fn = rna_ID_is_editable_get;
    return fn(ptr);
}

extern bool ID_tag_get(PointerRNA *ptr)
{
    ID *data = (ID *)(ptr->data);
    return (((data->tag) & 2147483648LL) != 0);
}

extern void ID_tag_set(PointerRNA *ptr, bool value)
{
    ID *data = (ID *)(ptr->data);
    if (value) { data->tag |= 2147483648LL; }
    else { data->tag &= ~2147483648LL; }
}

extern bool ID_is_library_indirect_get(PointerRNA *ptr)
{
    ID *data = (ID *)(ptr->data);
    return (((data->tag) & 2) != 0);
}

extern PointerRNA ID_library_get(PointerRNA *ptr)
{
    ID *data = (ID *)(ptr->data);
    return RNA_pointer_create_with_parent(*ptr, &RNA_Library, data->lib);
}

extern PointerRNA ID_library_weak_reference_get(PointerRNA *ptr)
{
    ID *data = (ID *)(ptr->data);
    return RNA_pointer_create_with_parent(*ptr, &RNA_LibraryWeakReference, data->library_weak_reference);
}

extern PointerRNA ID_asset_data_get(PointerRNA *ptr)
{
    ID *data = (ID *)(ptr->data);
    return RNA_pointer_create_with_parent(*ptr, &RNA_AssetMetaData, data->asset_data);
}

extern void ID_asset_data_set(PointerRNA *ptr, PointerRNA value, struct ReportList *reports)
{
    PropPointerSetFunc fn = rna_ID_asset_data_set;
    fn(ptr, value, reports);
}

extern PointerRNA ID_override_library_get(PointerRNA *ptr)
{
    ID *data = (ID *)(ptr->data);
    return RNA_pointer_create_with_parent(*ptr, &RNA_IDOverrideLibrary, data->override_library);
}

extern PointerRNA ID_preview_get(PointerRNA *ptr)
{
    PropPointerGetFunc fn = rna_IDPreview_get;
    return fn(ptr);
}

static PointerRNA IDOverrideLibrary_rna_properties_get(CollectionPropertyIterator *iter)
{
    PropCollectionGetFunc fn = rna_builtin_properties_get;
    return fn(iter);
}

extern void IDOverrideLibrary_rna_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{

    *iter = {};
    iter->parent = *ptr;
    iter->prop = &rna_IDOverrideLibrary_rna_properties;

    PropCollectionBeginFunc fn = rna_builtin_properties_begin;
    fn(iter, ptr);

    if (iter->valid) {
        iter->ptr = IDOverrideLibrary_rna_properties_get(iter);
    }
}

extern void IDOverrideLibrary_rna_properties_next(CollectionPropertyIterator *iter)
{
    PropCollectionNextFunc fn = rna_builtin_properties_next;
    fn(iter);

    if (iter->valid) {
        iter->ptr = IDOverrideLibrary_rna_properties_get(iter);
    }
}

extern void IDOverrideLibrary_rna_properties_end(CollectionPropertyIterator *iter)
{
    PropCollectionEndFunc fn = rna_iterator_listbase_end;
    fn(iter);
}

extern bool IDOverrideLibrary_rna_properties_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
{
    PropCollectionLookupStringFunc fn = rna_builtin_properties_lookup_string;
    return fn(ptr, key, r_ptr);
}

extern PointerRNA IDOverrideLibrary_rna_type_get(PointerRNA *ptr)
{
    PropPointerGetFunc fn = rna_builtin_type_get;
    return fn(ptr);
}

extern PointerRNA IDOverrideLibrary_reference_get(PointerRNA *ptr)
{
    IDOverrideLibrary *data = (IDOverrideLibrary *)(ptr->data);
    return RNA_pointer_create_with_parent(*ptr, &RNA_ID, data->reference);
}

extern PointerRNA IDOverrideLibrary_hierarchy_root_get(PointerRNA *ptr)
{
    IDOverrideLibrary *data = (IDOverrideLibrary *)(ptr->data);
    return RNA_pointer_create_with_parent(*ptr, &RNA_ID, data->hierarchy_root);
}

extern bool IDOverrideLibrary_is_in_hierarchy_get(PointerRNA *ptr)
{
    IDOverrideLibrary *data = (IDOverrideLibrary *)(ptr->data);
    return !(((data->flag) & 1) != 0);
}

extern void IDOverrideLibrary_is_in_hierarchy_set(PointerRNA *ptr, bool value)
{
    IDOverrideLibrary *data = (IDOverrideLibrary *)(ptr->data);
    if (!value) { data->flag |= 1; }
    else { data->flag &= ~1; }
}

extern bool IDOverrideLibrary_is_system_override_get(PointerRNA *ptr)
{
    IDOverrideLibrary *data = (IDOverrideLibrary *)(ptr->data);
    return (((data->flag) & 2) != 0);
}

extern void IDOverrideLibrary_is_system_override_set(PointerRNA *ptr, bool value)
{
    IDOverrideLibrary *data = (IDOverrideLibrary *)(ptr->data);
    if (value) { data->flag |= 2; }
    else { data->flag &= ~2; }
}

static PointerRNA IDOverrideLibrary_properties_get(CollectionPropertyIterator *iter)
{
    return RNA_pointer_create_with_parent(iter->parent, &RNA_IDOverrideLibraryProperty, rna_iterator_listbase_get(iter));
}

extern void IDOverrideLibrary_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{
    IDOverrideLibrary *data = (IDOverrideLibrary *)(ptr->data);

    *iter = {};
    iter->parent = *ptr;
    iter->prop = &rna_IDOverrideLibrary_properties;

    rna_iterator_listbase_begin(iter, ptr, &data->properties, nullptr);

    if (iter->valid) {
        iter->ptr = IDOverrideLibrary_properties_get(iter);
    }
}

extern void IDOverrideLibrary_properties_next(CollectionPropertyIterator *iter)
{
    PropCollectionNextFunc fn = rna_iterator_listbase_next;
    fn(iter);

    if (iter->valid) {
        iter->ptr = IDOverrideLibrary_properties_get(iter);
    }
}

extern void IDOverrideLibrary_properties_end(CollectionPropertyIterator *iter)
{
    PropCollectionEndFunc fn = rna_iterator_listbase_end;
    fn(iter);
}

extern bool IDOverrideLibrary_properties_lookup_int(PointerRNA *ptr, int index, PointerRNA *r_ptr)
{
    bool found = false;
    CollectionPropertyIterator iter;

    IDOverrideLibrary_properties_begin(&iter, ptr);

    if (iter.valid) {
        ListBaseIterator *internal = &iter.internal.listbase;
        if (internal->skip) {
            while (index-- > 0 && iter.valid) {
                rna_iterator_listbase_next(&iter);
            }
            found = (index == -1 && iter.valid);
        }
        else {
            while (index-- > 0 && internal->link) {
                internal->link = internal->link->next;
            }
            found = (index == -1 && internal->link);
        }
        if (found) { *r_ptr = IDOverrideLibrary_properties_get(&iter); }
    }

    IDOverrideLibrary_properties_end(&iter);

    return found;
}

static PointerRNA IDOverrideLibraryProperties_rna_properties_get(CollectionPropertyIterator *iter)
{
    PropCollectionGetFunc fn = rna_builtin_properties_get;
    return fn(iter);
}

extern void IDOverrideLibraryProperties_rna_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{

    *iter = {};
    iter->parent = *ptr;
    iter->prop = &rna_IDOverrideLibraryProperties_rna_properties;

    PropCollectionBeginFunc fn = rna_builtin_properties_begin;
    fn(iter, ptr);

    if (iter->valid) {
        iter->ptr = IDOverrideLibraryProperties_rna_properties_get(iter);
    }
}

extern void IDOverrideLibraryProperties_rna_properties_next(CollectionPropertyIterator *iter)
{
    PropCollectionNextFunc fn = rna_builtin_properties_next;
    fn(iter);

    if (iter->valid) {
        iter->ptr = IDOverrideLibraryProperties_rna_properties_get(iter);
    }
}

extern void IDOverrideLibraryProperties_rna_properties_end(CollectionPropertyIterator *iter)
{
    PropCollectionEndFunc fn = rna_iterator_listbase_end;
    fn(iter);
}

extern bool IDOverrideLibraryProperties_rna_properties_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
{
    PropCollectionLookupStringFunc fn = rna_builtin_properties_lookup_string;
    return fn(ptr, key, r_ptr);
}

extern PointerRNA IDOverrideLibraryProperties_rna_type_get(PointerRNA *ptr)
{
    PropPointerGetFunc fn = rna_builtin_type_get;
    return fn(ptr);
}

static PointerRNA IDOverrideLibraryProperty_rna_properties_get(CollectionPropertyIterator *iter)
{
    PropCollectionGetFunc fn = rna_builtin_properties_get;
    return fn(iter);
}

extern void IDOverrideLibraryProperty_rna_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{

    *iter = {};
    iter->parent = *ptr;
    iter->prop = &rna_IDOverrideLibraryProperty_rna_properties;

    PropCollectionBeginFunc fn = rna_builtin_properties_begin;
    fn(iter, ptr);

    if (iter->valid) {
        iter->ptr = IDOverrideLibraryProperty_rna_properties_get(iter);
    }
}

extern void IDOverrideLibraryProperty_rna_properties_next(CollectionPropertyIterator *iter)
{
    PropCollectionNextFunc fn = rna_builtin_properties_next;
    fn(iter);

    if (iter->valid) {
        iter->ptr = IDOverrideLibraryProperty_rna_properties_get(iter);
    }
}

extern void IDOverrideLibraryProperty_rna_properties_end(CollectionPropertyIterator *iter)
{
    PropCollectionEndFunc fn = rna_iterator_listbase_end;
    fn(iter);
}

extern bool IDOverrideLibraryProperty_rna_properties_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
{
    PropCollectionLookupStringFunc fn = rna_builtin_properties_lookup_string;
    return fn(ptr, key, r_ptr);
}

extern PointerRNA IDOverrideLibraryProperty_rna_type_get(PointerRNA *ptr)
{
    PropPointerGetFunc fn = rna_builtin_type_get;
    return fn(ptr);
}

extern void IDOverrideLibraryProperty_rna_path_get(PointerRNA *ptr, char *value)
{
    IDOverrideLibraryProperty *data = (IDOverrideLibraryProperty *)(ptr->data);
    if (data->rna_path == nullptr) {
        *value = '\0';
        return;
    }
    strcpy(value, data->rna_path);
}

extern int IDOverrideLibraryProperty_rna_path_length(PointerRNA *ptr)
{
    IDOverrideLibraryProperty *data = (IDOverrideLibraryProperty *)(ptr->data);
    return (data->rna_path == nullptr) ? 0 : strlen(data->rna_path);
}

static PointerRNA IDOverrideLibraryProperty_operations_get(CollectionPropertyIterator *iter)
{
    return RNA_pointer_create_with_parent(iter->parent, &RNA_IDOverrideLibraryPropertyOperation, rna_iterator_listbase_get(iter));
}

extern void IDOverrideLibraryProperty_operations_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{
    IDOverrideLibraryProperty *data = (IDOverrideLibraryProperty *)(ptr->data);

    *iter = {};
    iter->parent = *ptr;
    iter->prop = &rna_IDOverrideLibraryProperty_operations;

    rna_iterator_listbase_begin(iter, ptr, &data->operations, nullptr);

    if (iter->valid) {
        iter->ptr = IDOverrideLibraryProperty_operations_get(iter);
    }
}

extern void IDOverrideLibraryProperty_operations_next(CollectionPropertyIterator *iter)
{
    PropCollectionNextFunc fn = rna_iterator_listbase_next;
    fn(iter);

    if (iter->valid) {
        iter->ptr = IDOverrideLibraryProperty_operations_get(iter);
    }
}

extern void IDOverrideLibraryProperty_operations_end(CollectionPropertyIterator *iter)
{
    PropCollectionEndFunc fn = rna_iterator_listbase_end;
    fn(iter);
}

extern bool IDOverrideLibraryProperty_operations_lookup_int(PointerRNA *ptr, int index, PointerRNA *r_ptr)
{
    bool found = false;
    CollectionPropertyIterator iter;

    IDOverrideLibraryProperty_operations_begin(&iter, ptr);

    if (iter.valid) {
        ListBaseIterator *internal = &iter.internal.listbase;
        if (internal->skip) {
            while (index-- > 0 && iter.valid) {
                rna_iterator_listbase_next(&iter);
            }
            found = (index == -1 && iter.valid);
        }
        else {
            while (index-- > 0 && internal->link) {
                internal->link = internal->link->next;
            }
            found = (index == -1 && internal->link);
        }
        if (found) { *r_ptr = IDOverrideLibraryProperty_operations_get(&iter); }
    }

    IDOverrideLibraryProperty_operations_end(&iter);

    return found;
}

static PointerRNA IDOverrideLibraryPropertyOperations_rna_properties_get(CollectionPropertyIterator *iter)
{
    PropCollectionGetFunc fn = rna_builtin_properties_get;
    return fn(iter);
}

extern void IDOverrideLibraryPropertyOperations_rna_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{

    *iter = {};
    iter->parent = *ptr;
    iter->prop = &rna_IDOverrideLibraryPropertyOperations_rna_properties;

    PropCollectionBeginFunc fn = rna_builtin_properties_begin;
    fn(iter, ptr);

    if (iter->valid) {
        iter->ptr = IDOverrideLibraryPropertyOperations_rna_properties_get(iter);
    }
}

extern void IDOverrideLibraryPropertyOperations_rna_properties_next(CollectionPropertyIterator *iter)
{
    PropCollectionNextFunc fn = rna_builtin_properties_next;
    fn(iter);

    if (iter->valid) {
        iter->ptr = IDOverrideLibraryPropertyOperations_rna_properties_get(iter);
    }
}

extern void IDOverrideLibraryPropertyOperations_rna_properties_end(CollectionPropertyIterator *iter)
{
    PropCollectionEndFunc fn = rna_iterator_listbase_end;
    fn(iter);
}

extern bool IDOverrideLibraryPropertyOperations_rna_properties_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
{
    PropCollectionLookupStringFunc fn = rna_builtin_properties_lookup_string;
    return fn(ptr, key, r_ptr);
}

extern PointerRNA IDOverrideLibraryPropertyOperations_rna_type_get(PointerRNA *ptr)
{
    PropPointerGetFunc fn = rna_builtin_type_get;
    return fn(ptr);
}

static PointerRNA IDOverrideLibraryPropertyOperation_rna_properties_get(CollectionPropertyIterator *iter)
{
    PropCollectionGetFunc fn = rna_builtin_properties_get;
    return fn(iter);
}

extern void IDOverrideLibraryPropertyOperation_rna_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{

    *iter = {};
    iter->parent = *ptr;
    iter->prop = &rna_IDOverrideLibraryPropertyOperation_rna_properties;

    PropCollectionBeginFunc fn = rna_builtin_properties_begin;
    fn(iter, ptr);

    if (iter->valid) {
        iter->ptr = IDOverrideLibraryPropertyOperation_rna_properties_get(iter);
    }
}

extern void IDOverrideLibraryPropertyOperation_rna_properties_next(CollectionPropertyIterator *iter)
{
    PropCollectionNextFunc fn = rna_builtin_properties_next;
    fn(iter);

    if (iter->valid) {
        iter->ptr = IDOverrideLibraryPropertyOperation_rna_properties_get(iter);
    }
}

extern void IDOverrideLibraryPropertyOperation_rna_properties_end(CollectionPropertyIterator *iter)
{
    PropCollectionEndFunc fn = rna_iterator_listbase_end;
    fn(iter);
}

extern bool IDOverrideLibraryPropertyOperation_rna_properties_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
{
    PropCollectionLookupStringFunc fn = rna_builtin_properties_lookup_string;
    return fn(ptr, key, r_ptr);
}

extern PointerRNA IDOverrideLibraryPropertyOperation_rna_type_get(PointerRNA *ptr)
{
    PropPointerGetFunc fn = rna_builtin_type_get;
    return fn(ptr);
}

extern int IDOverrideLibraryPropertyOperation_operation_get(PointerRNA *ptr)
{
    IDOverrideLibraryPropertyOperation *data = (IDOverrideLibraryPropertyOperation *)(ptr->data);
    return (int)(data->operation);
}

extern int IDOverrideLibraryPropertyOperation_flag_get(PointerRNA *ptr)
{
    IDOverrideLibraryPropertyOperation *data = (IDOverrideLibraryPropertyOperation *)(ptr->data);
    return (int)(data->flag);
}

extern void IDOverrideLibraryPropertyOperation_subitem_reference_name_get(PointerRNA *ptr, char *value)
{
    PropStringGetFunc fn = rna_ID_override_library_property_operation_refname_get;
    fn(ptr, value);
}

extern int IDOverrideLibraryPropertyOperation_subitem_reference_name_length(PointerRNA *ptr)
{
    PropStringLengthFunc fn = rna_ID_override_library_property_operation_refname_length;
    return fn(ptr);
}

extern void IDOverrideLibraryPropertyOperation_subitem_local_name_get(PointerRNA *ptr, char *value)
{
    PropStringGetFunc fn = rna_ID_override_library_property_operation_locname_get;
    fn(ptr, value);
}

extern int IDOverrideLibraryPropertyOperation_subitem_local_name_length(PointerRNA *ptr)
{
    PropStringLengthFunc fn = rna_ID_override_library_property_operation_locname_length;
    return fn(ptr);
}

extern PointerRNA IDOverrideLibraryPropertyOperation_subitem_reference_id_get(PointerRNA *ptr)
{
    IDOverrideLibraryPropertyOperation *data = (IDOverrideLibraryPropertyOperation *)(ptr->data);
    return RNA_pointer_create_with_parent(*ptr, &RNA_ID, data->subitem_reference_id);
}

extern PointerRNA IDOverrideLibraryPropertyOperation_subitem_local_id_get(PointerRNA *ptr)
{
    IDOverrideLibraryPropertyOperation *data = (IDOverrideLibraryPropertyOperation *)(ptr->data);
    return RNA_pointer_create_with_parent(*ptr, &RNA_ID, data->subitem_local_id);
}

extern int IDOverrideLibraryPropertyOperation_subitem_reference_index_get(PointerRNA *ptr)
{
    IDOverrideLibraryPropertyOperation *data = (IDOverrideLibraryPropertyOperation *)(ptr->data);
    return (int)(data->subitem_reference_index);
}

extern int IDOverrideLibraryPropertyOperation_subitem_local_index_get(PointerRNA *ptr)
{
    IDOverrideLibraryPropertyOperation *data = (IDOverrideLibraryPropertyOperation *)(ptr->data);
    return (int)(data->subitem_local_index);
}

static PointerRNA ImagePreview_rna_properties_get(CollectionPropertyIterator *iter)
{
    PropCollectionGetFunc fn = rna_builtin_properties_get;
    return fn(iter);
}

extern void ImagePreview_rna_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{

    *iter = {};
    iter->parent = *ptr;
    iter->prop = &rna_ImagePreview_rna_properties;

    PropCollectionBeginFunc fn = rna_builtin_properties_begin;
    fn(iter, ptr);

    if (iter->valid) {
        iter->ptr = ImagePreview_rna_properties_get(iter);
    }
}

extern void ImagePreview_rna_properties_next(CollectionPropertyIterator *iter)
{
    PropCollectionNextFunc fn = rna_builtin_properties_next;
    fn(iter);

    if (iter->valid) {
        iter->ptr = ImagePreview_rna_properties_get(iter);
    }
}

extern void ImagePreview_rna_properties_end(CollectionPropertyIterator *iter)
{
    PropCollectionEndFunc fn = rna_iterator_listbase_end;
    fn(iter);
}

extern bool ImagePreview_rna_properties_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
{
    PropCollectionLookupStringFunc fn = rna_builtin_properties_lookup_string;
    return fn(ptr, key, r_ptr);
}

extern PointerRNA ImagePreview_rna_type_get(PointerRNA *ptr)
{
    PropPointerGetFunc fn = rna_builtin_type_get;
    return fn(ptr);
}

extern bool ImagePreview_is_image_custom_get(PointerRNA *ptr)
{
    PreviewImage *data = (PreviewImage *)(ptr->data);
    return (((data->flag[ICON_SIZE_PREVIEW]) & 2) != 0);
}

extern void ImagePreview_is_image_custom_set(PointerRNA *ptr, bool value)
{
    PropBooleanSetFunc fn = rna_ImagePreview_is_image_custom_set;
    fn(ptr, value);
}

extern void ImagePreview_image_size_get(PointerRNA *ptr, int values[2])
{
    PropIntArrayGetFunc fn = rna_ImagePreview_image_size_get;
    fn(ptr, values);
}

extern void ImagePreview_image_size_set(PointerRNA *ptr, const int values[2])
{
    PropIntArraySetFunc fn = rna_ImagePreview_image_size_set;
    fn(ptr, values);
}

extern void ImagePreview_image_pixels_get(PointerRNA *ptr, int values[])
{
    PropIntArrayGetFunc fn = rna_ImagePreview_image_pixels_get;
    fn(ptr, values);
}

extern void ImagePreview_image_pixels_set(PointerRNA *ptr, const int values[])
{
    PropIntArraySetFunc fn = rna_ImagePreview_image_pixels_set;
    fn(ptr, values);
}

extern void ImagePreview_image_pixels_float_get(PointerRNA *ptr, float values[])
{
    PropFloatArrayGetFunc fn = rna_ImagePreview_image_pixels_float_get;
    fn(ptr, values);
}

extern void ImagePreview_image_pixels_float_set(PointerRNA *ptr, const float values[])
{
    PropFloatArraySetFunc fn = rna_ImagePreview_image_pixels_float_set;
    fn(ptr, values);
}

extern bool ImagePreview_is_icon_custom_get(PointerRNA *ptr)
{
    PreviewImage *data = (PreviewImage *)(ptr->data);
    return (((data->flag[ICON_SIZE_ICON]) & 2) != 0);
}

extern void ImagePreview_is_icon_custom_set(PointerRNA *ptr, bool value)
{
    PropBooleanSetFunc fn = rna_ImagePreview_is_icon_custom_set;
    fn(ptr, value);
}

extern void ImagePreview_icon_size_get(PointerRNA *ptr, int values[2])
{
    PropIntArrayGetFunc fn = rna_ImagePreview_icon_size_get;
    fn(ptr, values);
}

extern void ImagePreview_icon_size_set(PointerRNA *ptr, const int values[2])
{
    PropIntArraySetFunc fn = rna_ImagePreview_icon_size_set;
    fn(ptr, values);
}

extern void ImagePreview_icon_pixels_get(PointerRNA *ptr, int values[])
{
    PropIntArrayGetFunc fn = rna_ImagePreview_icon_pixels_get;
    fn(ptr, values);
}

extern void ImagePreview_icon_pixels_set(PointerRNA *ptr, const int values[])
{
    PropIntArraySetFunc fn = rna_ImagePreview_icon_pixels_set;
    fn(ptr, values);
}

extern void ImagePreview_icon_pixels_float_get(PointerRNA *ptr, float values[])
{
    PropFloatArrayGetFunc fn = rna_ImagePreview_icon_pixels_float_get;
    fn(ptr, values);
}

extern void ImagePreview_icon_pixels_float_set(PointerRNA *ptr, const float values[])
{
    PropFloatArraySetFunc fn = rna_ImagePreview_icon_pixels_float_set;
    fn(ptr, values);
}

extern int ImagePreview_icon_id_get(PointerRNA *ptr)
{
    PropIntGetFunc fn = rna_ImagePreview_icon_id_get;
    return fn(ptr);
}

static PointerRNA PropertyGroupItem_rna_properties_get(CollectionPropertyIterator *iter)
{
    PropCollectionGetFunc fn = rna_builtin_properties_get;
    return fn(iter);
}

extern void PropertyGroupItem_rna_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{

    *iter = {};
    iter->parent = *ptr;
    iter->prop = &rna_PropertyGroupItem_rna_properties;

    PropCollectionBeginFunc fn = rna_builtin_properties_begin;
    fn(iter, ptr);

    if (iter->valid) {
        iter->ptr = PropertyGroupItem_rna_properties_get(iter);
    }
}

extern void PropertyGroupItem_rna_properties_next(CollectionPropertyIterator *iter)
{
    PropCollectionNextFunc fn = rna_builtin_properties_next;
    fn(iter);

    if (iter->valid) {
        iter->ptr = PropertyGroupItem_rna_properties_get(iter);
    }
}

extern void PropertyGroupItem_rna_properties_end(CollectionPropertyIterator *iter)
{
    PropCollectionEndFunc fn = rna_iterator_listbase_end;
    fn(iter);
}

extern bool PropertyGroupItem_rna_properties_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
{
    PropCollectionLookupStringFunc fn = rna_builtin_properties_lookup_string;
    return fn(ptr, key, r_ptr);
}

extern PointerRNA PropertyGroupItem_rna_type_get(PointerRNA *ptr)
{
    PropPointerGetFunc fn = rna_builtin_type_get;
    return fn(ptr);
}

extern int PropertyGroupItem_idp_array_length(PointerRNA *ptr)
{
    PropCollectionLengthFunc fn = rna_IDPArray_length;
    return fn(ptr);
}

static PointerRNA PropertyGroupItem_idp_array_get(CollectionPropertyIterator *iter)
{
    return RNA_pointer_create_with_parent(iter->parent, &RNA_PropertyGroup, rna_iterator_array_get(iter));
}

extern void PropertyGroupItem_idp_array_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{

    *iter = {};
    iter->parent = *ptr;
    iter->prop = &rna_PropertyGroupItem_idp_array;

    PropCollectionBeginFunc fn = rna_IDPArray_begin;
    fn(iter, ptr);

    if (iter->valid) {
        iter->ptr = PropertyGroupItem_idp_array_get(iter);
    }
}

extern void PropertyGroupItem_idp_array_next(CollectionPropertyIterator *iter)
{
    PropCollectionNextFunc fn = rna_iterator_array_next;
    fn(iter);

    if (iter->valid) {
        iter->ptr = PropertyGroupItem_idp_array_get(iter);
    }
}

extern void PropertyGroupItem_idp_array_end(CollectionPropertyIterator *iter)
{
    PropCollectionEndFunc fn = rna_iterator_array_end;
    fn(iter);
}

static PointerRNA PropertyGroup_rna_properties_get(CollectionPropertyIterator *iter)
{
    PropCollectionGetFunc fn = rna_builtin_properties_get;
    return fn(iter);
}

extern void PropertyGroup_rna_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{

    *iter = {};
    iter->parent = *ptr;
    iter->prop = &rna_PropertyGroup_rna_properties;

    PropCollectionBeginFunc fn = rna_builtin_properties_begin;
    fn(iter, ptr);

    if (iter->valid) {
        iter->ptr = PropertyGroup_rna_properties_get(iter);
    }
}

extern void PropertyGroup_rna_properties_next(CollectionPropertyIterator *iter)
{
    PropCollectionNextFunc fn = rna_builtin_properties_next;
    fn(iter);

    if (iter->valid) {
        iter->ptr = PropertyGroup_rna_properties_get(iter);
    }
}

extern void PropertyGroup_rna_properties_end(CollectionPropertyIterator *iter)
{
    PropCollectionEndFunc fn = rna_iterator_listbase_end;
    fn(iter);
}

extern bool PropertyGroup_rna_properties_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
{
    PropCollectionLookupStringFunc fn = rna_builtin_properties_lookup_string;
    return fn(ptr, key, r_ptr);
}

extern PointerRNA PropertyGroup_rna_type_get(PointerRNA *ptr)
{
    PropPointerGetFunc fn = rna_builtin_type_get;
    return fn(ptr);
}

static PointerRNA IDMaterials_rna_properties_get(CollectionPropertyIterator *iter)
{
    PropCollectionGetFunc fn = rna_builtin_properties_get;
    return fn(iter);
}

extern void IDMaterials_rna_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{

    *iter = {};
    iter->parent = *ptr;
    iter->prop = &rna_IDMaterials_rna_properties;

    PropCollectionBeginFunc fn = rna_builtin_properties_begin;
    fn(iter, ptr);

    if (iter->valid) {
        iter->ptr = IDMaterials_rna_properties_get(iter);
    }
}

extern void IDMaterials_rna_properties_next(CollectionPropertyIterator *iter)
{
    PropCollectionNextFunc fn = rna_builtin_properties_next;
    fn(iter);

    if (iter->valid) {
        iter->ptr = IDMaterials_rna_properties_get(iter);
    }
}

extern void IDMaterials_rna_properties_end(CollectionPropertyIterator *iter)
{
    PropCollectionEndFunc fn = rna_iterator_listbase_end;
    fn(iter);
}

extern bool IDMaterials_rna_properties_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
{
    PropCollectionLookupStringFunc fn = rna_builtin_properties_lookup_string;
    return fn(ptr, key, r_ptr);
}

extern PointerRNA IDMaterials_rna_type_get(PointerRNA *ptr)
{
    PropPointerGetFunc fn = rna_builtin_type_get;
    return fn(ptr);
}

extern void Library_filepath_get(PointerRNA *ptr, char *value)
{
    Library *data = (Library *)(ptr->data);
    strcpy(value, data->filepath);
}

extern int Library_filepath_length(PointerRNA *ptr)
{
    Library *data = (Library *)(ptr->data);
    return strlen(data->filepath);
}

extern void Library_filepath_set(PointerRNA *ptr, const char *value)
{
    PropStringSetFunc fn = rna_Library_filepath_set;
    fn(ptr, value);
}

extern PointerRNA Library_parent_get(PointerRNA *ptr)
{
    PropPointerGetFunc fn = rna_Library_parent_get;
    return fn(ptr);
}

extern PointerRNA Library_packed_file_get(PointerRNA *ptr)
{
    Library *data = (Library *)(ptr->data);
    return RNA_pointer_create_with_parent(*ptr, &RNA_PackedFile, data->packedfile);
}

extern void Library_version_get(PointerRNA *ptr, int values[3])
{
    PropIntArrayGetFunc fn = rna_Library_version_get;
    fn(ptr, values);
}

extern bool Library_needs_liboverride_resync_get(PointerRNA *ptr)
{
    Library *data = (Library *)(ptr->data);
    return (((data->runtime->tag) & 1) != 0);
}

extern void Library_needs_liboverride_resync_set(PointerRNA *ptr, bool value)
{
    Library *data = (Library *)(ptr->data);
    if (value) { data->runtime->tag |= 1; }
    else { data->runtime->tag &= ~1; }
}

extern bool Library_is_editable_get(PointerRNA *ptr)
{
    Library *data = (Library *)(ptr->data);
    return (((data->runtime->tag) & 2) != 0);
}

static PointerRNA LibraryWeakReference_rna_properties_get(CollectionPropertyIterator *iter)
{
    PropCollectionGetFunc fn = rna_builtin_properties_get;
    return fn(iter);
}

extern void LibraryWeakReference_rna_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{

    *iter = {};
    iter->parent = *ptr;
    iter->prop = &rna_LibraryWeakReference_rna_properties;

    PropCollectionBeginFunc fn = rna_builtin_properties_begin;
    fn(iter, ptr);

    if (iter->valid) {
        iter->ptr = LibraryWeakReference_rna_properties_get(iter);
    }
}

extern void LibraryWeakReference_rna_properties_next(CollectionPropertyIterator *iter)
{
    PropCollectionNextFunc fn = rna_builtin_properties_next;
    fn(iter);

    if (iter->valid) {
        iter->ptr = LibraryWeakReference_rna_properties_get(iter);
    }
}

extern void LibraryWeakReference_rna_properties_end(CollectionPropertyIterator *iter)
{
    PropCollectionEndFunc fn = rna_iterator_listbase_end;
    fn(iter);
}

extern bool LibraryWeakReference_rna_properties_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
{
    PropCollectionLookupStringFunc fn = rna_builtin_properties_lookup_string;
    return fn(ptr, key, r_ptr);
}

extern PointerRNA LibraryWeakReference_rna_type_get(PointerRNA *ptr)
{
    PropPointerGetFunc fn = rna_builtin_type_get;
    return fn(ptr);
}

extern void LibraryWeakReference_filepath_get(PointerRNA *ptr, char *value)
{
    LibraryWeakReference *data = (LibraryWeakReference *)(ptr->data);
    strcpy(value, data->library_filepath);
}

extern int LibraryWeakReference_filepath_length(PointerRNA *ptr)
{
    LibraryWeakReference *data = (LibraryWeakReference *)(ptr->data);
    return strlen(data->library_filepath);
}

extern void LibraryWeakReference_filepath_set(PointerRNA *ptr, const char *value)
{
    LibraryWeakReference *data = (LibraryWeakReference *)(ptr->data);
    BLI_strncpy(data->library_filepath, value, 1024);
}

extern void LibraryWeakReference_id_name_get(PointerRNA *ptr, char *value)
{
    LibraryWeakReference *data = (LibraryWeakReference *)(ptr->data);
    strcpy(value, data->library_id_name);
}

extern int LibraryWeakReference_id_name_length(PointerRNA *ptr)
{
    LibraryWeakReference *data = (LibraryWeakReference *)(ptr->data);
    return strlen(data->library_id_name);
}

extern void LibraryWeakReference_id_name_set(PointerRNA *ptr, const char *value)
{
    LibraryWeakReference *data = (LibraryWeakReference *)(ptr->data);
    BLI_strncpy(data->library_id_name, value, 66);
}

static PointerRNA IDPropertyWrapPtr_rna_properties_get(CollectionPropertyIterator *iter)
{
    PropCollectionGetFunc fn = rna_builtin_properties_get;
    return fn(iter);
}

extern void IDPropertyWrapPtr_rna_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{

    *iter = {};
    iter->parent = *ptr;
    iter->prop = &rna_IDPropertyWrapPtr_rna_properties;

    PropCollectionBeginFunc fn = rna_builtin_properties_begin;
    fn(iter, ptr);

    if (iter->valid) {
        iter->ptr = IDPropertyWrapPtr_rna_properties_get(iter);
    }
}

extern void IDPropertyWrapPtr_rna_properties_next(CollectionPropertyIterator *iter)
{
    PropCollectionNextFunc fn = rna_builtin_properties_next;
    fn(iter);

    if (iter->valid) {
        iter->ptr = IDPropertyWrapPtr_rna_properties_get(iter);
    }
}

extern void IDPropertyWrapPtr_rna_properties_end(CollectionPropertyIterator *iter)
{
    PropCollectionEndFunc fn = rna_iterator_listbase_end;
    fn(iter);
}

extern bool IDPropertyWrapPtr_rna_properties_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
{
    PropCollectionLookupStringFunc fn = rna_builtin_properties_lookup_string;
    return fn(ptr, key, r_ptr);
}

extern PointerRNA IDPropertyWrapPtr_rna_type_get(PointerRNA *ptr)
{
    PropPointerGetFunc fn = rna_builtin_type_get;
    return fn(ptr);
}



extern int ID_rename_func(struct ID *_self, Main *bmain, const char * name, int mode)
{
	return rna_ID_rename(_self, bmain, name, mode);
}

static void ID_rename_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	const char * name;
	int mode;
	int id_rename_result;
	char *_data, *_retdata;
	
	_self = (struct ID *)_ptr->data;
	_data = (char *)_parms->data;
	name = *((const char * *)_data);
	_data += 8;
	mode = *((int *)_data);
	_data += 8;
	_retdata = _data;
	
	id_rename_result = rna_ID_rename(_self, CTX_data_main(C), name, mode);
	*((int *)_retdata) = id_rename_result;
}

extern struct ID *ID_evaluated_get_func(struct ID *_self, struct Depsgraph *depsgraph)
{
	return rna_ID_evaluated_get(_self, depsgraph);
}

static void ID_evaluated_get_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	struct Depsgraph *depsgraph;
	struct ID *id;
	char *_data, *_retdata;
	
	_self = (struct ID *)_ptr->data;
	_data = (char *)_parms->data;
	depsgraph = *((struct Depsgraph **)_data);
	_data += 8;
	_retdata = _data;
	
	id = rna_ID_evaluated_get(_self, depsgraph);
	*((struct ID **)_retdata) = id;
}

extern struct ID *ID_copy_func(struct ID *_self, Main *bmain)
{
	return rna_ID_copy(_self, bmain);
}

static void ID_copy_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	struct ID *id;
	char *_data, *_retdata;
	
	_self = (struct ID *)_ptr->data;
	_data = (char *)_parms->data;
	_retdata = _data;
	
	id = rna_ID_copy(_self, CTX_data_main(C));
	*((struct ID **)_retdata) = id;
}

extern void ID_asset_mark_func(struct ID *_self)
{
	rna_ID_asset_mark(_self);
}

static void ID_asset_mark_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	_self = (struct ID *)_ptr->data;
	
	rna_ID_asset_mark(_self);
}

extern void ID_asset_clear_func(struct ID *_self)
{
	rna_ID_asset_clear(_self);
}

static void ID_asset_clear_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	_self = (struct ID *)_ptr->data;
	
	rna_ID_asset_clear(_self);
}

extern void ID_asset_generate_preview_func(struct ID *_self, bContext *C)
{
	rna_ID_asset_generate_preview(_self, C);
}

static void ID_asset_generate_preview_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	_self = (struct ID *)_ptr->data;
	
	rna_ID_asset_generate_preview(_self, C);
}

extern struct ID *ID_override_create_func(struct ID *_self, Main *bmain, bool remap_local_usages)
{
	return rna_ID_override_create(_self, bmain, remap_local_usages);
}

static void ID_override_create_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	struct ID *id;
	bool remap_local_usages;
	char *_data, *_retdata;
	
	_self = (struct ID *)_ptr->data;
	_data = (char *)_parms->data;
	_retdata = _data;
	_data += 8;
	remap_local_usages = *((bool *)_data);
	
	id = rna_ID_override_create(_self, CTX_data_main(C), remap_local_usages);
	*((struct ID **)_retdata) = id;
}

extern struct ID *ID_override_hierarchy_create_func(struct ID *_self, Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, struct ID *reference, bool do_fully_editable)
{
	return rna_ID_override_hierarchy_create(_self, bmain, scene, view_layer, reference, do_fully_editable);
}

static void ID_override_hierarchy_create_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	struct ID *id;
	struct Scene *scene;
	struct ViewLayer *view_layer;
	struct ID *reference;
	bool do_fully_editable;
	char *_data, *_retdata;
	
	_self = (struct ID *)_ptr->data;
	_data = (char *)_parms->data;
	_retdata = _data;
	_data += 8;
	scene = *((struct Scene **)_data);
	_data += 8;
	view_layer = *((struct ViewLayer **)_data);
	_data += 8;
	reference = *((struct ID **)_data);
	_data += 8;
	do_fully_editable = *((bool *)_data);
	
	id = rna_ID_override_hierarchy_create(_self, CTX_data_main(C), scene, view_layer, reference, do_fully_editable);
	*((struct ID **)_retdata) = id;
}

extern void ID_user_clear_func(struct ID *_self)
{
	rna_ID_user_clear(_self);
}

static void ID_user_clear_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	_self = (struct ID *)_ptr->data;
	
	rna_ID_user_clear(_self);
}

extern void ID_user_remap_func(struct ID *_self, Main *bmain, struct ID *new_id)
{
	rna_ID_user_remap(_self, bmain, new_id);
}

static void ID_user_remap_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	struct ID *new_id;
	char *_data;
	
	_self = (struct ID *)_ptr->data;
	_data = (char *)_parms->data;
	new_id = *((struct ID **)_data);
	
	rna_ID_user_remap(_self, CTX_data_main(C), new_id);
}

extern struct ID *ID_make_local_func(struct ID *_self, Main *bmain, bool clear_proxy, bool clear_liboverride, bool clear_asset_data)
{
	return rna_ID_make_local(_self, bmain, clear_proxy, clear_liboverride, clear_asset_data);
}

static void ID_make_local_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	bool clear_proxy;
	bool clear_liboverride;
	bool clear_asset_data;
	struct ID *id;
	char *_data, *_retdata;
	
	_self = (struct ID *)_ptr->data;
	_data = (char *)_parms->data;
	clear_proxy = *((bool *)_data);
	_data += 8;
	clear_liboverride = *((bool *)_data);
	_data += 8;
	clear_asset_data = *((bool *)_data);
	_data += 8;
	_retdata = _data;
	
	id = rna_ID_make_local(_self, CTX_data_main(C), clear_proxy, clear_liboverride, clear_asset_data);
	*((struct ID **)_retdata) = id;
}

extern int ID_user_of_id_func(struct ID *_self, struct ID *id)
{
	return BKE_library_ID_use_ID(_self, id);
}

static void ID_user_of_id_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	struct ID *id;
	int count;
	char *_data, *_retdata;
	
	_self = (struct ID *)_ptr->data;
	_data = (char *)_parms->data;
	id = *((struct ID **)_data);
	_data += 8;
	_retdata = _data;
	
	count = BKE_library_ID_use_ID(_self, id);
	*((int *)_retdata) = count;
}

extern struct AnimData *ID_animation_data_create_func(struct ID *_self, Main *bmain)
{
	return rna_ID_animation_data_create(_self, bmain);
}

static void ID_animation_data_create_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	struct AnimData *anim_data;
	char *_data, *_retdata;
	
	_self = (struct ID *)_ptr->data;
	_data = (char *)_parms->data;
	_retdata = _data;
	
	anim_data = rna_ID_animation_data_create(_self, CTX_data_main(C));
	*((struct AnimData **)_retdata) = anim_data;
}

extern void ID_animation_data_clear_func(struct ID *_self, Main *bmain)
{
	rna_ID_animation_data_free(_self, bmain);
}

static void ID_animation_data_clear_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	_self = (struct ID *)_ptr->data;
	
	rna_ID_animation_data_free(_self, CTX_data_main(C));
}

extern void ID_update_tag_func(struct ID *_self, Main *bmain, ReportList *reports, int refresh)
{
	rna_ID_update_tag(_self, bmain, reports, refresh);
}

static void ID_update_tag_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	int refresh;
	char *_data;
	
	_self = (struct ID *)_ptr->data;
	_data = (char *)_parms->data;
	refresh = *((int *)_data);
	
	rna_ID_update_tag(_self, CTX_data_main(C), reports, refresh);
}

extern struct PreviewImage *ID_preview_ensure_func(struct ID *_self)
{
	return BKE_previewimg_id_ensure(_self);
}

static void ID_preview_ensure_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	struct PreviewImage *preview_image;
	char *_data, *_retdata;
	
	_self = (struct ID *)_ptr->data;
	_data = (char *)_parms->data;
	_retdata = _data;
	
	preview_image = BKE_previewimg_id_ensure(_self);
	*((struct PreviewImage **)_retdata) = preview_image;
}

/* Repeated prototypes to detect errors */

int rna_ID_rename(struct ID *_self, Main *bmain, const char * name, int mode);
struct ID *rna_ID_evaluated_get(struct ID *_self, struct Depsgraph *depsgraph);
struct ID *rna_ID_copy(struct ID *_self, Main *bmain);
void rna_ID_asset_mark(struct ID *_self);
void rna_ID_asset_clear(struct ID *_self);
void rna_ID_asset_generate_preview(struct ID *_self, bContext *C);
struct ID *rna_ID_override_create(struct ID *_self, Main *bmain, bool remap_local_usages);
struct ID *rna_ID_override_hierarchy_create(struct ID *_self, Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, struct ID *reference, bool do_fully_editable);
void rna_ID_user_clear(struct ID *_self);
void rna_ID_user_remap(struct ID *_self, Main *bmain, struct ID *new_id);
struct ID *rna_ID_make_local(struct ID *_self, Main *bmain, bool clear_proxy, bool clear_liboverride, bool clear_asset_data);
int BKE_library_ID_use_ID(struct ID *_self, struct ID *id);
struct AnimData *rna_ID_animation_data_create(struct ID *_self, Main *bmain);
void rna_ID_animation_data_free(struct ID *_self, Main *bmain);
void rna_ID_update_tag(struct ID *_self, Main *bmain, ReportList *reports, int refresh);
struct PreviewImage *BKE_previewimg_id_ensure(struct ID *_self);

extern void IDOverrideLibrary_operations_update_func(struct ID *_selfid, struct IDOverrideLibrary *_self, Main *bmain, ReportList *reports)
{
	rna_ID_override_library_operations_update(_selfid, _self, bmain, reports);
}

static void IDOverrideLibrary_operations_update_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_selfid;
	struct IDOverrideLibrary *_self;
	_selfid = (struct ID *)_ptr->owner_id;
	_self = (struct IDOverrideLibrary *)_ptr->data;
	
	rna_ID_override_library_operations_update(_selfid, _self, CTX_data_main(C), reports);
}

extern void IDOverrideLibrary_reset_func(struct ID *_selfid, struct IDOverrideLibrary *_self, Main *bmain, ReportList *reports, bool do_hierarchy, bool set_system_override)
{
	rna_ID_override_library_reset(_selfid, _self, bmain, reports, do_hierarchy, set_system_override);
}

static void IDOverrideLibrary_reset_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_selfid;
	struct IDOverrideLibrary *_self;
	bool do_hierarchy;
	bool set_system_override;
	char *_data;
	
	_selfid = (struct ID *)_ptr->owner_id;
	_self = (struct IDOverrideLibrary *)_ptr->data;
	_data = (char *)_parms->data;
	do_hierarchy = *((bool *)_data);
	_data += 8;
	set_system_override = *((bool *)_data);
	
	rna_ID_override_library_reset(_selfid, _self, CTX_data_main(C), reports, do_hierarchy, set_system_override);
}

extern void IDOverrideLibrary_destroy_func(struct ID *_selfid, struct IDOverrideLibrary *_self, Main *bmain, ReportList *reports, bool do_hierarchy)
{
	rna_ID_override_library_destroy(_selfid, _self, bmain, reports, do_hierarchy);
}

static void IDOverrideLibrary_destroy_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_selfid;
	struct IDOverrideLibrary *_self;
	bool do_hierarchy;
	char *_data;
	
	_selfid = (struct ID *)_ptr->owner_id;
	_self = (struct IDOverrideLibrary *)_ptr->data;
	_data = (char *)_parms->data;
	do_hierarchy = *((bool *)_data);
	
	rna_ID_override_library_destroy(_selfid, _self, CTX_data_main(C), reports, do_hierarchy);
}

extern bool IDOverrideLibrary_resync_func(struct ID *_selfid, struct IDOverrideLibrary *_self, Main *bmain, ReportList *reports, struct Scene *scene, struct ViewLayer *view_layer, struct Collection *residual_storage, bool do_hierarchy_enforce, bool do_whole_hierarchy)
{
	return rna_ID_override_library_resync(_selfid, _self, bmain, reports, scene, view_layer, residual_storage, do_hierarchy_enforce, do_whole_hierarchy);
}

static void IDOverrideLibrary_resync_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_selfid;
	struct IDOverrideLibrary *_self;
	bool success;
	struct Scene *scene;
	struct ViewLayer *view_layer;
	struct Collection *residual_storage;
	bool do_hierarchy_enforce;
	bool do_whole_hierarchy;
	char *_data, *_retdata;
	
	_selfid = (struct ID *)_ptr->owner_id;
	_self = (struct IDOverrideLibrary *)_ptr->data;
	_data = (char *)_parms->data;
	_retdata = _data;
	_data += 8;
	scene = *((struct Scene **)_data);
	_data += 8;
	view_layer = *((struct ViewLayer **)_data);
	_data += 8;
	residual_storage = *((struct Collection **)_data);
	_data += 8;
	do_hierarchy_enforce = *((bool *)_data);
	_data += 8;
	do_whole_hierarchy = *((bool *)_data);
	
	success = rna_ID_override_library_resync(_selfid, _self, CTX_data_main(C), reports, scene, view_layer, residual_storage, do_hierarchy_enforce, do_whole_hierarchy);
	*((bool *)_retdata) = success;
}

/* Repeated prototypes to detect errors */

void rna_ID_override_library_operations_update(struct ID *_selfid, struct IDOverrideLibrary *_self, Main *bmain, ReportList *reports);
void rna_ID_override_library_reset(struct ID *_selfid, struct IDOverrideLibrary *_self, Main *bmain, ReportList *reports, bool do_hierarchy, bool set_system_override);
void rna_ID_override_library_destroy(struct ID *_selfid, struct IDOverrideLibrary *_self, Main *bmain, ReportList *reports, bool do_hierarchy);
bool rna_ID_override_library_resync(struct ID *_selfid, struct IDOverrideLibrary *_self, Main *bmain, ReportList *reports, struct Scene *scene, struct ViewLayer *view_layer, struct Collection *residual_storage, bool do_hierarchy_enforce, bool do_whole_hierarchy);

extern struct IDOverrideLibraryProperty *IDOverrideLibraryProperties_add_func(struct IDOverrideLibrary *_self, ReportList *reports, const char * rna_path)
{
	return rna_ID_override_library_properties_add(_self, reports, rna_path);
}

static void IDOverrideLibraryProperties_add_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct IDOverrideLibrary *_self;
	struct IDOverrideLibraryProperty *property;
	const char * rna_path;
	char *_data, *_retdata;
	
	_self = (struct IDOverrideLibrary *)_ptr->data;
	_data = (char *)_parms->data;
	_retdata = _data;
	_data += 8;
	rna_path = *((const char * *)_data);
	
	property = rna_ID_override_library_properties_add(_self, reports, rna_path);
	*((struct IDOverrideLibraryProperty **)_retdata) = property;
}

extern void IDOverrideLibraryProperties_remove_func(struct IDOverrideLibrary *_self, ReportList *reports, struct IDOverrideLibraryProperty *property)
{
	rna_ID_override_library_properties_remove(_self, reports, property);
}

static void IDOverrideLibraryProperties_remove_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct IDOverrideLibrary *_self;
	struct IDOverrideLibraryProperty *property;
	char *_data;
	
	_self = (struct IDOverrideLibrary *)_ptr->data;
	_data = (char *)_parms->data;
	property = *((struct IDOverrideLibraryProperty **)_data);
	
	rna_ID_override_library_properties_remove(_self, reports, property);
}

/* Repeated prototypes to detect errors */

struct IDOverrideLibraryProperty *rna_ID_override_library_properties_add(struct IDOverrideLibrary *_self, ReportList *reports, const char * rna_path);
void rna_ID_override_library_properties_remove(struct IDOverrideLibrary *_self, ReportList *reports, struct IDOverrideLibraryProperty *property);


extern struct IDOverrideLibraryPropertyOperation *IDOverrideLibraryPropertyOperations_add_func(struct IDOverrideLibraryProperty *_self, ReportList *reports, int operation, bool use_id, const char * subitem_reference_name, const char * subitem_local_name, struct ID *subitem_reference_id, struct ID *subitem_local_id, int subitem_reference_index, int subitem_local_index)
{
	return rna_ID_override_library_property_operations_add(_self, reports, operation, use_id, subitem_reference_name, subitem_local_name, subitem_reference_id, subitem_local_id, subitem_reference_index, subitem_local_index);
}

static void IDOverrideLibraryPropertyOperations_add_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct IDOverrideLibraryProperty *_self;
	int operation;
	bool use_id;
	const char * subitem_reference_name;
	const char * subitem_local_name;
	struct ID *subitem_reference_id;
	struct ID *subitem_local_id;
	int subitem_reference_index;
	int subitem_local_index;
	struct IDOverrideLibraryPropertyOperation *property;
	char *_data, *_retdata;
	
	_self = (struct IDOverrideLibraryProperty *)_ptr->data;
	_data = (char *)_parms->data;
	operation = *((int *)_data);
	_data += 8;
	use_id = *((bool *)_data);
	_data += 8;
	subitem_reference_name = *((const char * *)_data);
	_data += 8;
	subitem_local_name = *((const char * *)_data);
	_data += 8;
	subitem_reference_id = *((struct ID **)_data);
	_data += 8;
	subitem_local_id = *((struct ID **)_data);
	_data += 8;
	subitem_reference_index = *((int *)_data);
	_data += 8;
	subitem_local_index = *((int *)_data);
	_data += 8;
	_retdata = _data;
	
	property = rna_ID_override_library_property_operations_add(_self, reports, operation, use_id, subitem_reference_name, subitem_local_name, subitem_reference_id, subitem_local_id, subitem_reference_index, subitem_local_index);
	*((struct IDOverrideLibraryPropertyOperation **)_retdata) = property;
}

extern void IDOverrideLibraryPropertyOperations_remove_func(struct IDOverrideLibraryProperty *_self, ReportList *reports, struct IDOverrideLibraryPropertyOperation *operation)
{
	rna_ID_override_library_property_operations_remove(_self, reports, operation);
}

static void IDOverrideLibraryPropertyOperations_remove_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct IDOverrideLibraryProperty *_self;
	struct IDOverrideLibraryPropertyOperation *operation;
	char *_data;
	
	_self = (struct IDOverrideLibraryProperty *)_ptr->data;
	_data = (char *)_parms->data;
	operation = *((struct IDOverrideLibraryPropertyOperation **)_data);
	
	rna_ID_override_library_property_operations_remove(_self, reports, operation);
}

/* Repeated prototypes to detect errors */

struct IDOverrideLibraryPropertyOperation *rna_ID_override_library_property_operations_add(struct IDOverrideLibraryProperty *_self, ReportList *reports, int operation, bool use_id, const char * subitem_reference_name, const char * subitem_local_name, struct ID *subitem_reference_id, struct ID *subitem_local_id, int subitem_reference_index, int subitem_local_index);
void rna_ID_override_library_property_operations_remove(struct IDOverrideLibraryProperty *_self, ReportList *reports, struct IDOverrideLibraryPropertyOperation *operation);


extern int ImagePreview_image_pixels_get_length(PointerRNA *ptr, int *arraylen)
{
	return rna_ImagePreview_image_pixels_get_length(ptr, arraylen);
}

extern int ImagePreview_image_pixels_float_get_length(PointerRNA *ptr, int *arraylen)
{
	return rna_ImagePreview_image_pixels_float_get_length(ptr, arraylen);
}

extern int ImagePreview_icon_pixels_get_length(PointerRNA *ptr, int *arraylen)
{
	return rna_ImagePreview_icon_pixels_get_length(ptr, arraylen);
}

extern int ImagePreview_icon_pixels_float_get_length(PointerRNA *ptr, int *arraylen)
{
	return rna_ImagePreview_icon_pixels_float_get_length(ptr, arraylen);
}

extern void ImagePreview_reload_func(struct PreviewImage *_self)
{
	rna_ImagePreview_icon_reload(_self);
}

static void ImagePreview_reload_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct PreviewImage *_self;
	_self = (struct PreviewImage *)_ptr->data;
	
	rna_ImagePreview_icon_reload(_self);
}

/* Repeated prototypes to detect errors */

void rna_ImagePreview_icon_reload(struct PreviewImage *_self);



extern void IDMaterials_append_func(struct ID *_self, Main *bmain, struct Material *material)
{
	rna_IDMaterials_append_id(_self, bmain, material);
}

static void IDMaterials_append_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	struct Material *material;
	char *_data;
	
	_self = (struct ID *)_ptr->data;
	_data = (char *)_parms->data;
	material = *((struct Material **)_data);
	
	rna_IDMaterials_append_id(_self, CTX_data_main(C), material);
}

extern struct Material *IDMaterials_pop_func(struct ID *_self, Main *bmain, ReportList *reports, int index)
{
	return rna_IDMaterials_pop_id(_self, bmain, reports, index);
}

static void IDMaterials_pop_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	int index;
	struct Material *material;
	char *_data, *_retdata;
	
	_self = (struct ID *)_ptr->data;
	_data = (char *)_parms->data;
	index = *((int *)_data);
	_data += 8;
	_retdata = _data;
	
	material = rna_IDMaterials_pop_id(_self, CTX_data_main(C), reports, index);
	*((struct Material **)_retdata) = material;
}

extern void IDMaterials_clear_func(struct ID *_self, Main *bmain)
{
	rna_IDMaterials_clear_id(_self, bmain);
}

static void IDMaterials_clear_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct ID *_self;
	_self = (struct ID *)_ptr->data;
	
	rna_IDMaterials_clear_id(_self, CTX_data_main(C));
}

/* Repeated prototypes to detect errors */

void rna_IDMaterials_append_id(struct ID *_self, Main *bmain, struct Material *material);
struct Material *rna_IDMaterials_pop_id(struct ID *_self, Main *bmain, ReportList *reports, int index);
void rna_IDMaterials_clear_id(struct ID *_self, Main *bmain);

extern void Library_reload_func(struct Library *_self, bContext *C, ReportList *reports)
{
	rna_Library_reload(_self, C, reports);
}

static void Library_reload_call(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)
{
	struct Library *_self;
	_self = (struct Library *)_ptr->data;
	
	rna_Library_reload(_self, C, reports);
}

/* Repeated prototypes to detect errors */

void rna_Library_reload(struct Library *_self, bContext *C, ReportList *reports);



/* Unknown Type */
static CollectionPropertyRNA rna_UnknownType_rna_properties_ = {
	{&rna_UnknownType_rna_type, nullptr,
	-1, "rna_properties", 0, 0, 0, 1, 0, PropertyPathTemplateType(0), "Properties",
	"RNA property collection",
	0, "*",
	PROP_COLLECTION, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	UnknownType_rna_properties_begin, UnknownType_rna_properties_next, UnknownType_rna_properties_end, UnknownType_rna_properties_get, nullptr, nullptr, UnknownType_rna_properties_lookup_string, nullptr, &RNA_Property
};
PropertyRNA &rna_UnknownType_rna_properties = reinterpret_cast<PropertyRNA &>(rna_UnknownType_rna_properties_);

static PointerPropertyRNA rna_UnknownType_rna_type_ = {
	{nullptr, &rna_UnknownType_rna_properties,
	-1, "rna_type", 8912896, 0, 0, 0, 0, PropertyPathTemplateType(0), "RNA",
	"RNA type definition",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	UnknownType_rna_type_get, nullptr, nullptr, nullptr,&RNA_Struct
};
PropertyRNA &rna_UnknownType_rna_type = reinterpret_cast<PropertyRNA &>(rna_UnknownType_rna_type_);

StructRNA RNA_UnknownType = {
	{(ContainerRNA *)&RNA_AnyType, (ContainerRNA *)&RNA_PrimitiveBoolean,
	nullptr,
	{&rna_UnknownType_rna_properties, &rna_UnknownType_rna_type}},
	"UnknownType", nullptr, nullptr, 516, nullptr, "Unknown Type",
	"Stub RNA type used for pointers to unknown or internal data",
	"*", 61,
	nullptr, &rna_UnknownType_rna_properties,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	{nullptr, nullptr}
};

/* Any Type */
static CollectionPropertyRNA rna_AnyType_rna_properties_ = {
	{&rna_AnyType_rna_type, nullptr,
	-1, "rna_properties", 0, 0, 0, 1, 0, PropertyPathTemplateType(0), "Properties",
	"RNA property collection",
	0, "*",
	PROP_COLLECTION, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	AnyType_rna_properties_begin, AnyType_rna_properties_next, AnyType_rna_properties_end, AnyType_rna_properties_get, nullptr, nullptr, AnyType_rna_properties_lookup_string, nullptr, &RNA_Property
};
PropertyRNA &rna_AnyType_rna_properties = reinterpret_cast<PropertyRNA &>(rna_AnyType_rna_properties_);

static PointerPropertyRNA rna_AnyType_rna_type_ = {
	{nullptr, &rna_AnyType_rna_properties,
	-1, "rna_type", 8912896, 0, 0, 0, 0, PropertyPathTemplateType(0), "RNA",
	"RNA type definition",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	AnyType_rna_type_get, nullptr, nullptr, nullptr,&RNA_Struct
};
PropertyRNA &rna_AnyType_rna_type = reinterpret_cast<PropertyRNA &>(rna_AnyType_rna_type_);

StructRNA RNA_AnyType = {
	{(ContainerRNA *)&RNA_ID, (ContainerRNA *)&RNA_UnknownType,
	nullptr,
	{&rna_AnyType_rna_properties, &rna_AnyType_rna_type}},
	"AnyType", nullptr, nullptr, 516, nullptr, "Any Type",
	"RNA type used for pointers to any possible data",
	"*", 61,
	nullptr, &rna_AnyType_rna_properties,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	{nullptr, nullptr}
};

/* ID */
static CollectionPropertyRNA rna_ID_rna_properties_ = {
	{&rna_ID_rna_type, nullptr,
	-1, "rna_properties", 0, 0, 0, 1, 0, PropertyPathTemplateType(0), "Properties",
	"RNA property collection",
	0, "*",
	PROP_COLLECTION, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_rna_properties_begin, ID_rna_properties_next, ID_rna_properties_end, ID_rna_properties_get, nullptr, nullptr, ID_rna_properties_lookup_string, nullptr, &RNA_Property
};
PropertyRNA &rna_ID_rna_properties = reinterpret_cast<PropertyRNA &>(rna_ID_rna_properties_);

static PointerPropertyRNA rna_ID_rna_type_ = {
	{&rna_ID_name, &rna_ID_rna_properties,
	-1, "rna_type", 8912896, 0, 0, 0, 0, PropertyPathTemplateType(0), "RNA",
	"RNA type definition",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_rna_type_get, nullptr, nullptr, nullptr,&RNA_Struct
};
PropertyRNA &rna_ID_rna_type = reinterpret_cast<PropertyRNA &>(rna_ID_rna_type_);

static StringPropertyRNA rna_ID_name_ = {
	{&rna_ID_name_full, &rna_ID_rna_type,
	-1, "name", 262145, 4, 0, 0, 0, PropertyPathTemplateType(0), "Name",
	"Unique data-block ID name (within a same type and library)",
	0, "*",
	PROP_STRING, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {66, 0, 0}, 0,
	nullptr, 318767109, rna_ID_name_editable, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_name_get, ID_name_length, ID_name_set, nullptr, nullptr, nullptr, nullptr, eStringPropertySearchFlag(0), nullptr, 64, ""
};
PropertyRNA &rna_ID_name = reinterpret_cast<PropertyRNA &>(rna_ID_name_);

static StringPropertyRNA rna_ID_name_full_ = {
	{&rna_ID_id_type, &rna_ID_name,
	-1, "name_full", 262144, 0, 0, 0, 0, PropertyPathTemplateType(0), "Full Name",
	"Unique data-block ID name, including library one is any",
	0, "*",
	PROP_STRING, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_name_full_get, ID_name_full_length, nullptr, nullptr, nullptr, nullptr, nullptr, eStringPropertySearchFlag(0), nullptr, 132, ""
};
PropertyRNA &rna_ID_name_full = reinterpret_cast<PropertyRNA &>(rna_ID_name_full_);

static EnumPropertyRNA rna_ID_id_type_ = {
	{&rna_ID_session_uid, &rna_ID_name_full,
	-1, "id_type", 2, 4, 0, 0, 0, PropertyPathTemplateType(0), "Type",
	"Type identifier of this data-block",
	0, "ID",
	PROP_ENUM, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_id_type_get, nullptr, nullptr, nullptr, nullptr, nullptr, rna_enum_id_type_items, 39, 17217
};
PropertyRNA &rna_ID_id_type = reinterpret_cast<PropertyRNA &>(rna_ID_id_type_);

static IntPropertyRNA rna_ID_session_uid_ = {
	{&rna_ID_is_evaluated, &rna_ID_id_type,
	-1, "session_uid", 2, 0, 0, 4, 0, PropertyPathTemplateType(0), "Session UID",
	"A session-wide unique identifier for the data block that remains the same across renames and internal reallocations, unchanged when reloading the file",
	0, "*",
	PROP_INT, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	offsetof(ID, session_uid), RawPropertyType(0), nullptr},
	ID_session_uid_get, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
	PROP_SCALE_LINEAR, -10000, 10000, INT_MIN, INT_MAX, 1, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ID_session_uid = reinterpret_cast<PropertyRNA &>(rna_ID_session_uid_);

static BoolPropertyRNA rna_ID_is_evaluated_ = {
	{&rna_ID_original, &rna_ID_session_uid,
	-1, "is_evaluated", 2, 0, 0, 0, 0, PropertyPathTemplateType(0), "Is Evaluated",
	"Whether this ID is runtime-only, evaluated data-block, or actual data from .blend file",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_is_evaluated_get, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ID_is_evaluated = reinterpret_cast<PropertyRNA &>(rna_ID_is_evaluated_);

static PointerPropertyRNA rna_ID_original_ = {
	{&rna_ID_users, &rna_ID_is_evaluated,
	-1, "original", 8912896, 2, 0, 32, 0, PropertyPathTemplateType(0), "Original ID",
	"Actual data-block from .blend file (Main database) that generated that evaluated one",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_original_get, nullptr, nullptr, nullptr,&RNA_ID
};
PropertyRNA &rna_ID_original = reinterpret_cast<PropertyRNA &>(rna_ID_original_);

static IntPropertyRNA rna_ID_users_ = {
	{&rna_ID_use_fake_user, &rna_ID_original,
	-1, "users", 2, 0, 0, 4, 0, PropertyPathTemplateType(0), "Users",
	"Number of times this data-block is referenced",
	0, "*",
	PROP_INT, PropertySubType(int(PROP_UNSIGNED) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	offsetof(ID, us), RawPropertyType(0), nullptr},
	ID_users_get, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
	PROP_SCALE_LINEAR, 0, 10000, 0, INT_MAX, 1, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ID_users = reinterpret_cast<PropertyRNA &>(rna_ID_users_);

static BoolPropertyRNA rna_ID_use_fake_user_ = {
	{&rna_ID_use_extra_user, &rna_ID_users,
	-1, "use_fake_user", 4099, 0, 0, 0, 0, PropertyPathTemplateType(0), "Fake User",
	"Save this data-block even if it has no users",
	13, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_use_fake_user_get, ID_use_fake_user_set, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ID_use_fake_user = reinterpret_cast<PropertyRNA &>(rna_ID_use_fake_user_);

static BoolPropertyRNA rna_ID_use_extra_user_ = {
	{&rna_ID_is_embedded_data, &rna_ID_use_fake_user,
	-1, "use_extra_user", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "Extra User",
	"Indicates whether an extra user is set or not (mainly for internal/debug usages)",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_use_extra_user_get, ID_use_extra_user_set, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ID_use_extra_user = reinterpret_cast<PropertyRNA &>(rna_ID_use_extra_user_);

static BoolPropertyRNA rna_ID_is_embedded_data_ = {
	{&rna_ID_is_missing, &rna_ID_use_extra_user,
	-1, "is_embedded_data", 2, 0, 0, 0, 0, PropertyPathTemplateType(0), "Embedded Data",
	"This data-block is not an independent one, but is actually a sub-data of another ID (typical example: root node trees or master collections)",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_is_embedded_data_get, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ID_is_embedded_data = reinterpret_cast<PropertyRNA &>(rna_ID_is_embedded_data_);

static BoolPropertyRNA rna_ID_is_missing_ = {
	{&rna_ID_is_runtime_data, &rna_ID_is_embedded_data,
	-1, "is_missing", 2, 0, 0, 0, 0, PropertyPathTemplateType(0), "Missing Data",
	"This data-block is a place-holder for missing linked data (i.e. it is [an override of] a linked data that could not be found anymore)",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_is_missing_get, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ID_is_missing = reinterpret_cast<PropertyRNA &>(rna_ID_is_missing_);

static BoolPropertyRNA rna_ID_is_runtime_data_ = {
	{&rna_ID_is_editable, &rna_ID_is_missing,
	-1, "is_runtime_data", 3, 2, 0, 0, 0, PropertyPathTemplateType(0), "Runtime Data",
	"This data-block is runtime data, i.e. it won\'t be saved in .blend file. Note that e.g. evaluated IDs are always runtime, so this value is only editable for data-blocks in Main data-base.",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, rna_ID_is_runtime_editable, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_is_runtime_data_get, ID_is_runtime_data_set, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ID_is_runtime_data = reinterpret_cast<PropertyRNA &>(rna_ID_is_runtime_data_);

static BoolPropertyRNA rna_ID_is_editable_ = {
	{&rna_ID_tag, &rna_ID_is_runtime_data,
	-1, "is_editable", 2, 0, 0, 0, 0, PropertyPathTemplateType(0), "Editable",
	"This data-block is editable in the user interface. Linked datablocks are not editable, except if they were loaded as editable assets.",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_is_editable_get, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ID_is_editable = reinterpret_cast<PropertyRNA &>(rna_ID_is_editable_);

static BoolPropertyRNA rna_ID_tag_ = {
	{&rna_ID_is_library_indirect, &rna_ID_is_editable,
	-1, "tag", 65539, 0, 0, 0, 0, PropertyPathTemplateType(0), "Tag",
	"Tools can use this to tag data for their own purposes (initial state is undefined)",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_tag_get, ID_tag_set, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ID_tag = reinterpret_cast<PropertyRNA &>(rna_ID_tag_);

static BoolPropertyRNA rna_ID_is_library_indirect_ = {
	{&rna_ID_library, &rna_ID_tag,
	-1, "is_library_indirect", 2, 0, 0, 0, 0, PropertyPathTemplateType(0), "Is Indirect",
	"Is this ID block linked indirectly",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_is_library_indirect_get, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ID_is_library_indirect = reinterpret_cast<PropertyRNA &>(rna_ID_is_library_indirect_);

static PointerPropertyRNA rna_ID_library_ = {
	{&rna_ID_library_weak_reference, &rna_ID_is_library_indirect,
	-1, "library", 8388800, 2, 0, 0, 0, PropertyPathTemplateType(0), "Library",
	"Library file the data-block is linked from",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_library_get, nullptr, nullptr, nullptr,&RNA_Library
};
PropertyRNA &rna_ID_library = reinterpret_cast<PropertyRNA &>(rna_ID_library_);

static PointerPropertyRNA rna_ID_library_weak_reference_ = {
	{&rna_ID_asset_data, &rna_ID_library,
	-1, "library_weak_reference", 8388608, 2, 0, 0, 0, PropertyPathTemplateType(0), "Library Weak Reference",
	"Weak reference to a data-block in another library .blend file (used to re-use already appended data instead of appending new copies)",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_library_weak_reference_get, nullptr, nullptr, nullptr,&RNA_LibraryWeakReference
};
PropertyRNA &rna_ID_library_weak_reference = reinterpret_cast<PropertyRNA &>(rna_ID_library_weak_reference_);

static PointerPropertyRNA rna_ID_asset_data_ = {
	{&rna_ID_override_library, &rna_ID_library_weak_reference,
	-1, "asset_data", 8388609, 2, 0, 0, 0, PropertyPathTemplateType(0), "Asset Data",
	"Additional data for an asset data-block",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_asset_data_get, ID_asset_data_set, nullptr, nullptr,&RNA_AssetMetaData
};
PropertyRNA &rna_ID_asset_data = reinterpret_cast<PropertyRNA &>(rna_ID_asset_data_);

static PointerPropertyRNA rna_ID_override_library_ = {
	{&rna_ID_preview, &rna_ID_asset_data,
	-1, "override_library", 8388608, 3, 0, 0, 0, PropertyPathTemplateType(0), "Library Override",
	"Library override data",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_override_library_get, nullptr, nullptr, nullptr,&RNA_IDOverrideLibrary
};
PropertyRNA &rna_ID_override_library = reinterpret_cast<PropertyRNA &>(rna_ID_override_library_);

static PointerPropertyRNA rna_ID_preview_ = {
	{nullptr, &rna_ID_override_library,
	-1, "preview", 8388608, 2, 0, 0, 0, PropertyPathTemplateType(0), "Preview",
	"Preview image and icon of this data-block (always None if not supported for this type of data)",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ID_preview_get, nullptr, nullptr, nullptr,&RNA_ImagePreview
};
PropertyRNA &rna_ID_preview = reinterpret_cast<PropertyRNA &>(rna_ID_preview_);

static StringPropertyRNA rna_ID_rename_name_ = {
	{&rna_ID_rename_mode, nullptr,
	-1, "name", 262145, 0, 1, 0, 0, PropertyPathTemplateType(0), "",
	"New name to rename the ID to, if empty will re-use the current ID name",
	0, "*",
	PROP_STRING, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, eStringPropertySearchFlag(0), nullptr, 64, ""
};
PropertyRNA &rna_ID_rename_name = reinterpret_cast<PropertyRNA &>(rna_ID_rename_name_);

static const EnumPropertyItem rna_ID_rename_mode_items[4] = {
	{0, "NEVER", 0, "Never Rename", "Never rename an exisitng ID whose name would conflict, the currently renamed ID will get a numeric suffix appended to its new name"},
	{1, "ALWAYS", 0, "Always Rename", "Always rename an exisitng ID whose name would conflict, ensuring that the currently renamed ID will get requested name"},
	{2, "SAME_ROOT", 0, "Rename If Same Root", "Only rename an exisitng ID whose name would conflict if its name root (everything besides the numerical suffix) is the same as the existing name of the currently renamed ID"},
	{0, nullptr, 0, nullptr, nullptr}
};

static EnumPropertyRNA rna_ID_rename_mode_ = {
	{&rna_ID_rename_id_rename_result, &rna_ID_rename_name,
	-1, "mode", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "",
	"How to handle name collision, in case the requested new name is already used by another ID of the same type",
	0, "*",
	PROP_ENUM, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, rna_ID_rename_mode_items, 3, 0
};
PropertyRNA &rna_ID_rename_mode = reinterpret_cast<PropertyRNA &>(rna_ID_rename_mode_);

static const EnumPropertyItem rna_ID_rename_id_rename_result_items[6] = {
	{0, "UNCHANGED", 0, "Unchanged", "The ID was not renamed, e.g. because it is already named as requested"},
	{1, "UNCHANGED_COLLISION", 0, "Unchanged Due to Collision", "The ID was not renamed, because requested name would have collided with another existing ID\'s name, and the automatically adjusted name was the same as the current ID\'s name"},
	{2, "RENAMED_NO_COLLISION", 0, "Renamed Without Collision", "The ID was renamed as requested, without creating any name collision"},
	{3, "RENAMED_COLLISION_ADJUSTED", 0, "Renamed With Collision", "The ID was renamed with adjustement of the requested name, to avoid a name collision"},
	{4, "RENAMED_COLLISION_FORCED", 0, "Renamed Enforced With Collision", "The ID was renamed as requested, also renaming another ID to avoid a name collision"},
	{0, nullptr, 0, nullptr, nullptr}
};

static EnumPropertyRNA rna_ID_rename_id_rename_result_ = {
	{nullptr, &rna_ID_rename_mode,
	-1, "id_rename_result", 3, 0, 2, 0, 0, PropertyPathTemplateType(0), "",
	"How did the renaming of the data-block went on",
	0, "*",
	PROP_ENUM, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, rna_ID_rename_id_rename_result_items, 5, 0
};
PropertyRNA &rna_ID_rename_id_rename_result = reinterpret_cast<PropertyRNA &>(rna_ID_rename_id_rename_result_);

FunctionRNA rna_ID_rename_func = {
	{(FunctionRNA *)&rna_ID_evaluated_get_func, nullptr,
	nullptr,
	{&rna_ID_rename_name, &rna_ID_rename_id_rename_result}},
	"rename", 4, "More refined handling in case the new name collides with another ID\'s name",
	ID_rename_call,
	&rna_ID_rename_id_rename_result
};

static PointerPropertyRNA rna_ID_evaluated_get_depsgraph_ = {
	{&rna_ID_evaluated_get_id, nullptr,
	-1, "depsgraph", 8650752, 0, 1, 0, 0, PropertyPathTemplateType(0), "",
	"Dependency graph to perform lookup in",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_Depsgraph
};
PropertyRNA &rna_ID_evaluated_get_depsgraph = reinterpret_cast<PropertyRNA &>(rna_ID_evaluated_get_depsgraph_);

static PointerPropertyRNA rna_ID_evaluated_get_id_ = {
	{nullptr, &rna_ID_evaluated_get_depsgraph,
	-1, "id", 8388736, 0, 2, 0, 0, PropertyPathTemplateType(0), "",
	"New copy of the ID",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_ID
};
PropertyRNA &rna_ID_evaluated_get_id = reinterpret_cast<PropertyRNA &>(rna_ID_evaluated_get_id_);

FunctionRNA rna_ID_evaluated_get_func = {
	{(FunctionRNA *)&rna_ID_copy_func, (FunctionRNA *)&rna_ID_rename_func,
	nullptr,
	{&rna_ID_evaluated_get_depsgraph, &rna_ID_evaluated_get_id}},
	"evaluated_get", 0, "Get corresponding evaluated ID from the given dependency graph. Note that this does not ensure the dependency graph is fully evaluated, it just returns the result of the last evaluation.",
	ID_evaluated_get_call,
	&rna_ID_evaluated_get_id
};

static PointerPropertyRNA rna_ID_copy_id_ = {
	{nullptr, nullptr,
	-1, "id", 8388736, 0, 2, 0, 0, PropertyPathTemplateType(0), "",
	"New copy of the ID",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_ID
};
PropertyRNA &rna_ID_copy_id = reinterpret_cast<PropertyRNA &>(rna_ID_copy_id_);

FunctionRNA rna_ID_copy_func = {
	{(FunctionRNA *)&rna_ID_asset_mark_func, (FunctionRNA *)&rna_ID_evaluated_get_func,
	nullptr,
	{&rna_ID_copy_id, &rna_ID_copy_id}},
	"copy", 4, "Create a copy of this data-block (not supported for all data-blocks). The result is added to the Blend-File Data (Main database), with all references to other data-blocks ensured to be from within the same Blend-File Data.",
	ID_copy_call,
	&rna_ID_copy_id
};

FunctionRNA rna_ID_asset_mark_func = {
	{(FunctionRNA *)&rna_ID_asset_clear_func, (FunctionRNA *)&rna_ID_copy_func,
	nullptr,
	{nullptr, nullptr}},
	"asset_mark", 0, "Enable easier reuse of the data-block through the Asset Browser, with the help of customizable metadata (like previews, descriptions and tags)",
	ID_asset_mark_call,
	nullptr
};

FunctionRNA rna_ID_asset_clear_func = {
	{(FunctionRNA *)&rna_ID_asset_generate_preview_func, (FunctionRNA *)&rna_ID_asset_mark_func,
	nullptr,
	{nullptr, nullptr}},
	"asset_clear", 0, "Delete all asset metadata and turn the asset data-block back into a normal data-block",
	ID_asset_clear_call,
	nullptr
};

FunctionRNA rna_ID_asset_generate_preview_func = {
	{(FunctionRNA *)&rna_ID_override_create_func, (FunctionRNA *)&rna_ID_asset_clear_func,
	nullptr,
	{nullptr, nullptr}},
	"asset_generate_preview", 8, "Generate preview image (might be scheduled in a background thread)",
	ID_asset_generate_preview_call,
	nullptr
};

static PointerPropertyRNA rna_ID_override_create_id_ = {
	{&rna_ID_override_create_remap_local_usages, nullptr,
	-1, "id", 8388736, 0, 2, 0, 0, PropertyPathTemplateType(0), "",
	"New overridden local copy of the ID",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_ID
};
PropertyRNA &rna_ID_override_create_id = reinterpret_cast<PropertyRNA &>(rna_ID_override_create_id_);

static BoolPropertyRNA rna_ID_override_create_remap_local_usages_ = {
	{nullptr, &rna_ID_override_create_id,
	-1, "remap_local_usages", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "",
	"Whether local usages of the linked ID should be remapped to the new library override of it",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ID_override_create_remap_local_usages = reinterpret_cast<PropertyRNA &>(rna_ID_override_create_remap_local_usages_);

FunctionRNA rna_ID_override_create_func = {
	{(FunctionRNA *)&rna_ID_override_hierarchy_create_func, (FunctionRNA *)&rna_ID_asset_generate_preview_func,
	nullptr,
	{&rna_ID_override_create_id, &rna_ID_override_create_remap_local_usages}},
	"override_create", 4, "Create an overridden local copy of this linked data-block (not supported for all data-blocks)",
	ID_override_create_call,
	&rna_ID_override_create_id
};

static PointerPropertyRNA rna_ID_override_hierarchy_create_id_ = {
	{&rna_ID_override_hierarchy_create_scene, nullptr,
	-1, "id", 8388736, 0, 2, 0, 0, PropertyPathTemplateType(0), "",
	"New overridden local copy of the root ID",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_ID
};
PropertyRNA &rna_ID_override_hierarchy_create_id = reinterpret_cast<PropertyRNA &>(rna_ID_override_hierarchy_create_id_);

static PointerPropertyRNA rna_ID_override_hierarchy_create_scene_ = {
	{&rna_ID_override_hierarchy_create_view_layer, &rna_ID_override_hierarchy_create_id,
	-1, "scene", 8650880, 0, 1, 0, 0, PropertyPathTemplateType(0), "",
	"In which scene the new overrides should be instantiated",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_Scene
};
PropertyRNA &rna_ID_override_hierarchy_create_scene = reinterpret_cast<PropertyRNA &>(rna_ID_override_hierarchy_create_scene_);

static PointerPropertyRNA rna_ID_override_hierarchy_create_view_layer_ = {
	{&rna_ID_override_hierarchy_create_reference, &rna_ID_override_hierarchy_create_scene,
	-1, "view_layer", 8650752, 0, 1, 0, 0, PropertyPathTemplateType(0), "",
	"In which view layer the new overrides should be instantiated",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_ViewLayer
};
PropertyRNA &rna_ID_override_hierarchy_create_view_layer = reinterpret_cast<PropertyRNA &>(rna_ID_override_hierarchy_create_view_layer_);

static PointerPropertyRNA rna_ID_override_hierarchy_create_reference_ = {
	{&rna_ID_override_hierarchy_create_do_fully_editable, &rna_ID_override_hierarchy_create_view_layer,
	-1, "reference", 8388736, 0, 0, 0, 0, PropertyPathTemplateType(0), "",
	"Another ID (usually an Object or Collection) used as a hint to decide where to instantiate the new overrides",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_ID
};
PropertyRNA &rna_ID_override_hierarchy_create_reference = reinterpret_cast<PropertyRNA &>(rna_ID_override_hierarchy_create_reference_);

static BoolPropertyRNA rna_ID_override_hierarchy_create_do_fully_editable_ = {
	{nullptr, &rna_ID_override_hierarchy_create_reference,
	-1, "do_fully_editable", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "",
	"Make all library overrides generated by this call fully editable by the user (none will be \'system overrides\')",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ID_override_hierarchy_create_do_fully_editable = reinterpret_cast<PropertyRNA &>(rna_ID_override_hierarchy_create_do_fully_editable_);

FunctionRNA rna_ID_override_hierarchy_create_func = {
	{(FunctionRNA *)&rna_ID_user_clear_func, (FunctionRNA *)&rna_ID_override_create_func,
	nullptr,
	{&rna_ID_override_hierarchy_create_id, &rna_ID_override_hierarchy_create_do_fully_editable}},
	"override_hierarchy_create", 4, "Create an overridden local copy of this linked data-block, and most of its dependencies when it is a Collection or and Object",
	ID_override_hierarchy_create_call,
	&rna_ID_override_hierarchy_create_id
};

FunctionRNA rna_ID_user_clear_func = {
	{(FunctionRNA *)&rna_ID_user_remap_func, (FunctionRNA *)&rna_ID_override_hierarchy_create_func,
	nullptr,
	{nullptr, nullptr}},
	"user_clear", 0, "Clear the user count of a data-block so its not saved, on reload the data will be removed",
	ID_user_clear_call,
	nullptr
};

static PointerPropertyRNA rna_ID_user_remap_new_id_ = {
	{nullptr, nullptr,
	-1, "new_id", 8650880, 0, 1, 0, 0, PropertyPathTemplateType(0), "",
	"New ID to use",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_ID
};
PropertyRNA &rna_ID_user_remap_new_id = reinterpret_cast<PropertyRNA &>(rna_ID_user_remap_new_id_);

FunctionRNA rna_ID_user_remap_func = {
	{(FunctionRNA *)&rna_ID_make_local_func, (FunctionRNA *)&rna_ID_user_clear_func,
	nullptr,
	{&rna_ID_user_remap_new_id, &rna_ID_user_remap_new_id}},
	"user_remap", 4, "Replace all usage in the .blend file of this ID by new given one",
	ID_user_remap_call,
	nullptr
};

static BoolPropertyRNA rna_ID_make_local_clear_proxy_ = {
	{&rna_ID_make_local_clear_liboverride, nullptr,
	-1, "clear_proxy", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "",
	"Deprecated, has no effect",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 1, nullptr
};
PropertyRNA &rna_ID_make_local_clear_proxy = reinterpret_cast<PropertyRNA &>(rna_ID_make_local_clear_proxy_);

static BoolPropertyRNA rna_ID_make_local_clear_liboverride_ = {
	{&rna_ID_make_local_clear_asset_data, &rna_ID_make_local_clear_proxy,
	-1, "clear_liboverride", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "",
	"Remove potential library override data from the newly made local data",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ID_make_local_clear_liboverride = reinterpret_cast<PropertyRNA &>(rna_ID_make_local_clear_liboverride_);

static BoolPropertyRNA rna_ID_make_local_clear_asset_data_ = {
	{&rna_ID_make_local_id, &rna_ID_make_local_clear_liboverride,
	-1, "clear_asset_data", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "",
	"Remove potential asset metadata so the newly local data-block is not treated as asset data-block and won\'t show up in asset libraries",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 1, nullptr
};
PropertyRNA &rna_ID_make_local_clear_asset_data = reinterpret_cast<PropertyRNA &>(rna_ID_make_local_clear_asset_data_);

static PointerPropertyRNA rna_ID_make_local_id_ = {
	{nullptr, &rna_ID_make_local_clear_asset_data,
	-1, "id", 8388736, 0, 2, 0, 0, PropertyPathTemplateType(0), "",
	"This ID, or the new ID if it was copied",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_ID
};
PropertyRNA &rna_ID_make_local_id = reinterpret_cast<PropertyRNA &>(rna_ID_make_local_id_);

FunctionRNA rna_ID_make_local_func = {
	{(FunctionRNA *)&rna_ID_user_of_id_func, (FunctionRNA *)&rna_ID_user_remap_func,
	nullptr,
	{&rna_ID_make_local_clear_proxy, &rna_ID_make_local_id}},
	"make_local", 4, "Make this datablock local, return local one (may be a copy of the original, in case it is also indirectly used)",
	ID_make_local_call,
	&rna_ID_make_local_id
};

static PointerPropertyRNA rna_ID_user_of_id_id_ = {
	{&rna_ID_user_of_id_count, nullptr,
	-1, "id", 8650880, 0, 1, 0, 0, PropertyPathTemplateType(0), "",
	"ID to count usages",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_ID
};
PropertyRNA &rna_ID_user_of_id_id = reinterpret_cast<PropertyRNA &>(rna_ID_user_of_id_id_);

static IntPropertyRNA rna_ID_user_of_id_count_ = {
	{nullptr, &rna_ID_user_of_id_id,
	-1, "count", 3, 0, 2, 0, 0, PropertyPathTemplateType(0), "",
	"Number of usages/references of given id by current data-block",
	0, "*",
	PROP_INT, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
	PROP_SCALE_LINEAR, 0, INT_MAX, 0, INT_MAX, 1, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ID_user_of_id_count = reinterpret_cast<PropertyRNA &>(rna_ID_user_of_id_count_);

FunctionRNA rna_ID_user_of_id_func = {
	{(FunctionRNA *)&rna_ID_animation_data_create_func, (FunctionRNA *)&rna_ID_make_local_func,
	nullptr,
	{&rna_ID_user_of_id_id, &rna_ID_user_of_id_count}},
	"user_of_id", 0, "Count the number of times that ID uses/references given one",
	ID_user_of_id_call,
	&rna_ID_user_of_id_count
};

static PointerPropertyRNA rna_ID_animation_data_create_anim_data_ = {
	{nullptr, nullptr,
	-1, "anim_data", 8388608, 0, 2, 0, 0, PropertyPathTemplateType(0), "",
	"New animation data or nullptr",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_AnimData
};
PropertyRNA &rna_ID_animation_data_create_anim_data = reinterpret_cast<PropertyRNA &>(rna_ID_animation_data_create_anim_data_);

FunctionRNA rna_ID_animation_data_create_func = {
	{(FunctionRNA *)&rna_ID_animation_data_clear_func, (FunctionRNA *)&rna_ID_user_of_id_func,
	nullptr,
	{&rna_ID_animation_data_create_anim_data, &rna_ID_animation_data_create_anim_data}},
	"animation_data_create", 4, "Create animation data to this ID, note that not all ID types support this",
	ID_animation_data_create_call,
	&rna_ID_animation_data_create_anim_data
};

FunctionRNA rna_ID_animation_data_clear_func = {
	{(FunctionRNA *)&rna_ID_update_tag_func, (FunctionRNA *)&rna_ID_animation_data_create_func,
	nullptr,
	{nullptr, nullptr}},
	"animation_data_clear", 4, "Clear animation on this ID",
	ID_animation_data_clear_call,
	nullptr
};

static const EnumPropertyItem rna_ID_update_tag_refresh_items[4] = {
	{1, "OBJECT", 0, "Object", ""},
	{2, "DATA", 0, "Data", ""},
	{4, "TIME", 0, "Time", ""},
	{0, nullptr, 0, nullptr, nullptr}
};

static EnumPropertyRNA rna_ID_update_tag_refresh_ = {
	{nullptr, nullptr,
	-1, "refresh", 2097155, 0, 0, 0, 0, PropertyPathTemplateType(0), "",
	"Type of updates to perform",
	0, "*",
	PROP_ENUM, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, rna_ID_update_tag_refresh_items, 3, 0
};
PropertyRNA &rna_ID_update_tag_refresh = reinterpret_cast<PropertyRNA &>(rna_ID_update_tag_refresh_);

FunctionRNA rna_ID_update_tag_func = {
	{(FunctionRNA *)&rna_ID_preview_ensure_func, (FunctionRNA *)&rna_ID_animation_data_clear_func,
	nullptr,
	{&rna_ID_update_tag_refresh, &rna_ID_update_tag_refresh}},
	"update_tag", 20, "Tag the ID to update its display data, e.g. when calling :class:`bpy.types.Scene.update`",
	ID_update_tag_call,
	nullptr
};

static PointerPropertyRNA rna_ID_preview_ensure_preview_image_ = {
	{nullptr, nullptr,
	-1, "preview_image", 8388608, 0, 2, 0, 0, PropertyPathTemplateType(0), "",
	"The existing or created preview",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_ImagePreview
};
PropertyRNA &rna_ID_preview_ensure_preview_image = reinterpret_cast<PropertyRNA &>(rna_ID_preview_ensure_preview_image_);

FunctionRNA rna_ID_preview_ensure_func = {
	{nullptr, (FunctionRNA *)&rna_ID_update_tag_func,
	nullptr,
	{&rna_ID_preview_ensure_preview_image, &rna_ID_preview_ensure_preview_image}},
	"preview_ensure", 0, "Ensure that this ID has preview data (if ID type supports it)",
	ID_preview_ensure_call,
	&rna_ID_preview_ensure_preview_image
};

StructRNA RNA_ID = {
	{(ContainerRNA *)&RNA_IDOverrideLibrary, (ContainerRNA *)&RNA_AnyType,
	nullptr,
	{&rna_ID_rna_properties, &rna_ID_preview}},
	"ID", nullptr, nullptr, 519, nullptr, "ID",
	"Base type for data-blocks, defining a unique name, linking from other libraries and garbage collection",
	"*", 61,
	&rna_ID_name, &rna_ID_rna_properties,
	nullptr,
	nullptr,
	rna_ID_refine,
	nullptr,
	nullptr,
	nullptr,
	rna_ID_instance,
	rna_ID_idprops,
	{(FunctionRNA *)&rna_ID_rename_func, (FunctionRNA *)&rna_ID_preview_ensure_func}
};

/* ID Library Override */
static CollectionPropertyRNA rna_IDOverrideLibrary_rna_properties_ = {
	{&rna_IDOverrideLibrary_rna_type, nullptr,
	-1, "rna_properties", 0, 0, 0, 1, 0, PropertyPathTemplateType(0), "Properties",
	"RNA property collection",
	0, "*",
	PROP_COLLECTION, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibrary_rna_properties_begin, IDOverrideLibrary_rna_properties_next, IDOverrideLibrary_rna_properties_end, IDOverrideLibrary_rna_properties_get, nullptr, nullptr, IDOverrideLibrary_rna_properties_lookup_string, nullptr, &RNA_Property
};
PropertyRNA &rna_IDOverrideLibrary_rna_properties = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibrary_rna_properties_);

static PointerPropertyRNA rna_IDOverrideLibrary_rna_type_ = {
	{&rna_IDOverrideLibrary_reference, &rna_IDOverrideLibrary_rna_properties,
	-1, "rna_type", 8912896, 0, 0, 0, 0, PropertyPathTemplateType(0), "RNA",
	"RNA type definition",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibrary_rna_type_get, nullptr, nullptr, nullptr,&RNA_Struct
};
PropertyRNA &rna_IDOverrideLibrary_rna_type = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibrary_rna_type_);

static PointerPropertyRNA rna_IDOverrideLibrary_reference_ = {
	{&rna_IDOverrideLibrary_hierarchy_root, &rna_IDOverrideLibrary_rna_type,
	-1, "reference", 8388800, 0, 0, 0, 0, PropertyPathTemplateType(0), "Reference ID",
	"Linked ID used as reference by this override",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 17301504, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibrary_reference_get, nullptr, nullptr, nullptr,&RNA_ID
};
PropertyRNA &rna_IDOverrideLibrary_reference = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibrary_reference_);

static PointerPropertyRNA rna_IDOverrideLibrary_hierarchy_root_ = {
	{&rna_IDOverrideLibrary_is_in_hierarchy, &rna_IDOverrideLibrary_reference,
	-1, "hierarchy_root", 8388800, 0, 0, 0, 0, PropertyPathTemplateType(0), "Hierarchy Root ID",
	"Library override ID used as root of the override hierarchy this ID is a member of",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibrary_hierarchy_root_get, nullptr, nullptr, nullptr,&RNA_ID
};
PropertyRNA &rna_IDOverrideLibrary_hierarchy_root = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibrary_hierarchy_root_);

static BoolPropertyRNA rna_IDOverrideLibrary_is_in_hierarchy_ = {
	{&rna_IDOverrideLibrary_is_system_override, &rna_IDOverrideLibrary_hierarchy_root,
	-1, "is_in_hierarchy", 3, 1, 0, 0, 0, PropertyPathTemplateType(0), "Is In Hierarchy",
	"Whether this library override is defined as part of a library hierarchy, or as a single, isolated and autonomous override",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 17301504, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibrary_is_in_hierarchy_get, IDOverrideLibrary_is_in_hierarchy_set, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 1, nullptr
};
PropertyRNA &rna_IDOverrideLibrary_is_in_hierarchy = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibrary_is_in_hierarchy_);

static BoolPropertyRNA rna_IDOverrideLibrary_is_system_override_ = {
	{&rna_IDOverrideLibrary_properties, &rna_IDOverrideLibrary_is_in_hierarchy,
	-1, "is_system_override", 3, 1, 0, 0, 0, PropertyPathTemplateType(0), "Is System Override",
	"Whether this library override exists only for the override hierarchy, or if it is actually editable by the user",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 17301504, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibrary_is_system_override_get, IDOverrideLibrary_is_system_override_set, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_IDOverrideLibrary_is_system_override = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibrary_is_system_override_);

static CollectionPropertyRNA rna_IDOverrideLibrary_properties_ = {
	{nullptr, &rna_IDOverrideLibrary_is_system_override,
	-1, "properties", 0, 0, 0, 0, 0, PropertyPathTemplateType(0), "Properties",
	"List of overridden properties",
	0, "*",
	PROP_COLLECTION, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 17301504, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, &RNA_IDOverrideLibraryProperties},
	IDOverrideLibrary_properties_begin, IDOverrideLibrary_properties_next, IDOverrideLibrary_properties_end, IDOverrideLibrary_properties_get, nullptr, IDOverrideLibrary_properties_lookup_int, nullptr, nullptr, &RNA_IDOverrideLibraryProperty
};
PropertyRNA &rna_IDOverrideLibrary_properties = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibrary_properties_);

FunctionRNA rna_IDOverrideLibrary_operations_update_func = {
	{(FunctionRNA *)&rna_IDOverrideLibrary_reset_func, nullptr,
	nullptr,
	{nullptr, nullptr}},
	"operations_update", 2068, "Update the library override operations based on the differences between this override ID and its reference",
	IDOverrideLibrary_operations_update_call,
	nullptr
};

static BoolPropertyRNA rna_IDOverrideLibrary_reset_do_hierarchy_ = {
	{&rna_IDOverrideLibrary_reset_set_system_override, nullptr,
	-1, "do_hierarchy", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "",
	"Also reset all the dependencies of this override to match their reference linked IDs",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 1, nullptr
};
PropertyRNA &rna_IDOverrideLibrary_reset_do_hierarchy = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibrary_reset_do_hierarchy_);

static BoolPropertyRNA rna_IDOverrideLibrary_reset_set_system_override_ = {
	{nullptr, &rna_IDOverrideLibrary_reset_do_hierarchy,
	-1, "set_system_override", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "",
	"Reset all user-editable overrides as (non-editable) system overrides",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_IDOverrideLibrary_reset_set_system_override = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibrary_reset_set_system_override_);

FunctionRNA rna_IDOverrideLibrary_reset_func = {
	{(FunctionRNA *)&rna_IDOverrideLibrary_destroy_func, (FunctionRNA *)&rna_IDOverrideLibrary_operations_update_func,
	nullptr,
	{&rna_IDOverrideLibrary_reset_do_hierarchy, &rna_IDOverrideLibrary_reset_set_system_override}},
	"reset", 2068, "Reset this override to match again its linked reference ID",
	IDOverrideLibrary_reset_call,
	nullptr
};

static BoolPropertyRNA rna_IDOverrideLibrary_destroy_do_hierarchy_ = {
	{nullptr, nullptr,
	-1, "do_hierarchy", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "",
	"Also delete all the dependencies of this override and remap their usages to their reference linked IDs",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 1, nullptr
};
PropertyRNA &rna_IDOverrideLibrary_destroy_do_hierarchy = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibrary_destroy_do_hierarchy_);

FunctionRNA rna_IDOverrideLibrary_destroy_func = {
	{(FunctionRNA *)&rna_IDOverrideLibrary_resync_func, (FunctionRNA *)&rna_IDOverrideLibrary_reset_func,
	nullptr,
	{&rna_IDOverrideLibrary_destroy_do_hierarchy, &rna_IDOverrideLibrary_destroy_do_hierarchy}},
	"destroy", 2068, "Delete this override ID and remap its usages to its linked reference ID instead",
	IDOverrideLibrary_destroy_call,
	nullptr
};

static BoolPropertyRNA rna_IDOverrideLibrary_resync_success_ = {
	{&rna_IDOverrideLibrary_resync_scene, nullptr,
	-1, "success", 3, 0, 2, 0, 0, PropertyPathTemplateType(0), "Success",
	"Whether the resync process was successful or not",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_IDOverrideLibrary_resync_success = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibrary_resync_success_);

static PointerPropertyRNA rna_IDOverrideLibrary_resync_scene_ = {
	{&rna_IDOverrideLibrary_resync_view_layer, &rna_IDOverrideLibrary_resync_success,
	-1, "scene", 8650880, 0, 1, 0, 0, PropertyPathTemplateType(0), "",
	"The scene to operate in (for contextual things like keeping active object active, ensuring all overridden objects remain instantiated, etc.)",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_Scene
};
PropertyRNA &rna_IDOverrideLibrary_resync_scene = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibrary_resync_scene_);

static PointerPropertyRNA rna_IDOverrideLibrary_resync_view_layer_ = {
	{&rna_IDOverrideLibrary_resync_residual_storage, &rna_IDOverrideLibrary_resync_scene,
	-1, "view_layer", 8388608, 0, 0, 0, 0, PropertyPathTemplateType(0), "",
	"The view layer to operate in (same usage as the ``scene`` data, in case it is not provided the scene\'s collection will be used instead)",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_ViewLayer
};
PropertyRNA &rna_IDOverrideLibrary_resync_view_layer = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibrary_resync_view_layer_);

static PointerPropertyRNA rna_IDOverrideLibrary_resync_residual_storage_ = {
	{&rna_IDOverrideLibrary_resync_do_hierarchy_enforce, &rna_IDOverrideLibrary_resync_view_layer,
	-1, "residual_storage", 8388736, 0, 0, 0, 0, PropertyPathTemplateType(0), "",
	"Collection where to store objects that are instantiated in any other collection anymore (garbage collection, will be created if needed and none is provided)",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_Collection
};
PropertyRNA &rna_IDOverrideLibrary_resync_residual_storage = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibrary_resync_residual_storage_);

static BoolPropertyRNA rna_IDOverrideLibrary_resync_do_hierarchy_enforce_ = {
	{&rna_IDOverrideLibrary_resync_do_whole_hierarchy, &rna_IDOverrideLibrary_resync_residual_storage,
	-1, "do_hierarchy_enforce", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "",
	"Enforce restoring the dependency hierarchy between data-blocks to match the one from the reference linked hierarchy (WARNING: if some ID pointers have been purposedly overridden, these will be reset to their default value)",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_IDOverrideLibrary_resync_do_hierarchy_enforce = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibrary_resync_do_hierarchy_enforce_);

static BoolPropertyRNA rna_IDOverrideLibrary_resync_do_whole_hierarchy_ = {
	{nullptr, &rna_IDOverrideLibrary_resync_do_hierarchy_enforce,
	-1, "do_whole_hierarchy", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "",
	"Resync the whole hierarchy this data-block belongs to, not only its own sub-hierarchy",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_IDOverrideLibrary_resync_do_whole_hierarchy = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibrary_resync_do_whole_hierarchy_);

FunctionRNA rna_IDOverrideLibrary_resync_func = {
	{nullptr, (FunctionRNA *)&rna_IDOverrideLibrary_destroy_func,
	nullptr,
	{&rna_IDOverrideLibrary_resync_success, &rna_IDOverrideLibrary_resync_do_whole_hierarchy}},
	"resync", 2068, "Resync the data-block and its sub-hierarchy, or the whole hierarchy if requested",
	IDOverrideLibrary_resync_call,
	&rna_IDOverrideLibrary_resync_success
};

StructRNA RNA_IDOverrideLibrary = {
	{(ContainerRNA *)&RNA_IDOverrideLibraryProperties, (ContainerRNA *)&RNA_ID,
	nullptr,
	{&rna_IDOverrideLibrary_rna_properties, &rna_IDOverrideLibrary_properties}},
	"IDOverrideLibrary", nullptr, nullptr, 516, nullptr, "ID Library Override",
	"Struct gathering all data needed by overridden linked IDs",
	"*", 61,
	nullptr, &rna_IDOverrideLibrary_rna_properties,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	{(FunctionRNA *)&rna_IDOverrideLibrary_operations_update_func, (FunctionRNA *)&rna_IDOverrideLibrary_resync_func}
};

/* Override Properties */
static CollectionPropertyRNA rna_IDOverrideLibraryProperties_rna_properties_ = {
	{&rna_IDOverrideLibraryProperties_rna_type, nullptr,
	-1, "rna_properties", 0, 0, 0, 1, 0, PropertyPathTemplateType(0), "Properties",
	"RNA property collection",
	0, "*",
	PROP_COLLECTION, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibraryProperties_rna_properties_begin, IDOverrideLibraryProperties_rna_properties_next, IDOverrideLibraryProperties_rna_properties_end, IDOverrideLibraryProperties_rna_properties_get, nullptr, nullptr, IDOverrideLibraryProperties_rna_properties_lookup_string, nullptr, &RNA_Property
};
PropertyRNA &rna_IDOverrideLibraryProperties_rna_properties = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryProperties_rna_properties_);

static PointerPropertyRNA rna_IDOverrideLibraryProperties_rna_type_ = {
	{nullptr, &rna_IDOverrideLibraryProperties_rna_properties,
	-1, "rna_type", 8912896, 0, 0, 0, 0, PropertyPathTemplateType(0), "RNA",
	"RNA type definition",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibraryProperties_rna_type_get, nullptr, nullptr, nullptr,&RNA_Struct
};
PropertyRNA &rna_IDOverrideLibraryProperties_rna_type = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryProperties_rna_type_);

static PointerPropertyRNA rna_IDOverrideLibraryProperties_add_property_ = {
	{&rna_IDOverrideLibraryProperties_add_rna_path, nullptr,
	-1, "property", 8388608, 0, 2, 0, 0, PropertyPathTemplateType(0), "New Property",
	"Newly created override property or existing one",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_IDOverrideLibraryProperty
};
PropertyRNA &rna_IDOverrideLibraryProperties_add_property = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryProperties_add_property_);

static StringPropertyRNA rna_IDOverrideLibraryProperties_add_rna_path_ = {
	{nullptr, &rna_IDOverrideLibraryProperties_add_property,
	-1, "rna_path", 262145, 0, 1, 0, 0, PropertyPathTemplateType(0), "RNA Path",
	"RNA-Path of the property to add",
	0, "*",
	PROP_STRING, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, eStringPropertySearchFlag(0), nullptr, 256, ""
};
PropertyRNA &rna_IDOverrideLibraryProperties_add_rna_path = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryProperties_add_rna_path_);

FunctionRNA rna_IDOverrideLibraryProperties_add_func = {
	{(FunctionRNA *)&rna_IDOverrideLibraryProperties_remove_func, nullptr,
	nullptr,
	{&rna_IDOverrideLibraryProperties_add_property, &rna_IDOverrideLibraryProperties_add_rna_path}},
	"add", 16, "Add a property to the override library when it doesn\'t exist yet",
	IDOverrideLibraryProperties_add_call,
	&rna_IDOverrideLibraryProperties_add_property
};

static PointerPropertyRNA rna_IDOverrideLibraryProperties_remove_property_ = {
	{nullptr, nullptr,
	-1, "property", 8388608, 0, 1, 0, 0, PropertyPathTemplateType(0), "Property",
	"Override property to be deleted",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_IDOverrideLibraryProperty
};
PropertyRNA &rna_IDOverrideLibraryProperties_remove_property = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryProperties_remove_property_);

FunctionRNA rna_IDOverrideLibraryProperties_remove_func = {
	{nullptr, (FunctionRNA *)&rna_IDOverrideLibraryProperties_add_func,
	nullptr,
	{&rna_IDOverrideLibraryProperties_remove_property, &rna_IDOverrideLibraryProperties_remove_property}},
	"remove", 16, "Remove and delete a property",
	IDOverrideLibraryProperties_remove_call,
	nullptr
};

StructRNA RNA_IDOverrideLibraryProperties = {
	{(ContainerRNA *)&RNA_IDOverrideLibraryProperty, (ContainerRNA *)&RNA_IDOverrideLibrary,
	nullptr,
	{&rna_IDOverrideLibraryProperties_rna_properties, &rna_IDOverrideLibraryProperties_rna_type}},
	"IDOverrideLibraryProperties", nullptr, nullptr, 516, nullptr, "Override Properties",
	"Collection of override properties",
	"*", 61,
	nullptr, &rna_IDOverrideLibraryProperties_rna_properties,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	{(FunctionRNA *)&rna_IDOverrideLibraryProperties_add_func, (FunctionRNA *)&rna_IDOverrideLibraryProperties_remove_func}
};

/* ID Library Override Property */
static CollectionPropertyRNA rna_IDOverrideLibraryProperty_rna_properties_ = {
	{&rna_IDOverrideLibraryProperty_rna_type, nullptr,
	-1, "rna_properties", 0, 0, 0, 1, 0, PropertyPathTemplateType(0), "Properties",
	"RNA property collection",
	0, "*",
	PROP_COLLECTION, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibraryProperty_rna_properties_begin, IDOverrideLibraryProperty_rna_properties_next, IDOverrideLibraryProperty_rna_properties_end, IDOverrideLibraryProperty_rna_properties_get, nullptr, nullptr, IDOverrideLibraryProperty_rna_properties_lookup_string, nullptr, &RNA_Property
};
PropertyRNA &rna_IDOverrideLibraryProperty_rna_properties = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryProperty_rna_properties_);

static PointerPropertyRNA rna_IDOverrideLibraryProperty_rna_type_ = {
	{&rna_IDOverrideLibraryProperty_rna_path, &rna_IDOverrideLibraryProperty_rna_properties,
	-1, "rna_type", 8912896, 0, 0, 0, 0, PropertyPathTemplateType(0), "RNA",
	"RNA type definition",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibraryProperty_rna_type_get, nullptr, nullptr, nullptr,&RNA_Struct
};
PropertyRNA &rna_IDOverrideLibraryProperty_rna_type = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryProperty_rna_type_);

static StringPropertyRNA rna_IDOverrideLibraryProperty_rna_path_ = {
	{&rna_IDOverrideLibraryProperty_operations, &rna_IDOverrideLibraryProperty_rna_type,
	-1, "rna_path", 262144, 0, 0, 0, 0, PropertyPathTemplateType(0), "RNA Path",
	"RNA path leading to that property, from owning ID",
	0, "*",
	PROP_STRING, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibraryProperty_rna_path_get, IDOverrideLibraryProperty_rna_path_length, nullptr, nullptr, nullptr, nullptr, nullptr, eStringPropertySearchFlag(0), nullptr, 2147483647, ""
};
PropertyRNA &rna_IDOverrideLibraryProperty_rna_path = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryProperty_rna_path_);

static CollectionPropertyRNA rna_IDOverrideLibraryProperty_operations_ = {
	{nullptr, &rna_IDOverrideLibraryProperty_rna_path,
	-1, "operations", 0, 0, 0, 0, 0, PropertyPathTemplateType(0), "Operations",
	"List of overriding operations for a property",
	0, "*",
	PROP_COLLECTION, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 17301504, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, &RNA_IDOverrideLibraryPropertyOperations},
	IDOverrideLibraryProperty_operations_begin, IDOverrideLibraryProperty_operations_next, IDOverrideLibraryProperty_operations_end, IDOverrideLibraryProperty_operations_get, nullptr, IDOverrideLibraryProperty_operations_lookup_int, nullptr, nullptr, &RNA_IDOverrideLibraryPropertyOperation
};
PropertyRNA &rna_IDOverrideLibraryProperty_operations = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryProperty_operations_);

StructRNA RNA_IDOverrideLibraryProperty = {
	{(ContainerRNA *)&RNA_IDOverrideLibraryPropertyOperations, (ContainerRNA *)&RNA_IDOverrideLibraryProperties,
	nullptr,
	{&rna_IDOverrideLibraryProperty_rna_properties, &rna_IDOverrideLibraryProperty_operations}},
	"IDOverrideLibraryProperty", nullptr, nullptr, 516, nullptr, "ID Library Override Property",
	"Description of an overridden property",
	"*", 61,
	nullptr, &rna_IDOverrideLibraryProperty_rna_properties,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	{nullptr, nullptr}
};

/* Override Operations */
static CollectionPropertyRNA rna_IDOverrideLibraryPropertyOperations_rna_properties_ = {
	{&rna_IDOverrideLibraryPropertyOperations_rna_type, nullptr,
	-1, "rna_properties", 0, 0, 0, 1, 0, PropertyPathTemplateType(0), "Properties",
	"RNA property collection",
	0, "*",
	PROP_COLLECTION, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibraryPropertyOperations_rna_properties_begin, IDOverrideLibraryPropertyOperations_rna_properties_next, IDOverrideLibraryPropertyOperations_rna_properties_end, IDOverrideLibraryPropertyOperations_rna_properties_get, nullptr, nullptr, IDOverrideLibraryPropertyOperations_rna_properties_lookup_string, nullptr, &RNA_Property
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperations_rna_properties = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperations_rna_properties_);

static PointerPropertyRNA rna_IDOverrideLibraryPropertyOperations_rna_type_ = {
	{nullptr, &rna_IDOverrideLibraryPropertyOperations_rna_properties,
	-1, "rna_type", 8912896, 0, 0, 0, 0, PropertyPathTemplateType(0), "RNA",
	"RNA type definition",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibraryPropertyOperations_rna_type_get, nullptr, nullptr, nullptr,&RNA_Struct
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperations_rna_type = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperations_rna_type_);

static const EnumPropertyItem rna_IDOverrideLibraryPropertyOperations_add_operation_items[8] = {
	{0, "NOOP", 0, "No-Op", "Does nothing, prevents adding actual overrides (NOT USED)"},
	{1, "REPLACE", 0, "Replace", "Replace value of reference by overriding one"},
	{101, "DIFF_ADD", 0, "Differential", "Stores and apply difference between reference and local value (NOT USED)"},
	{102, "DIFF_SUB", 0, "Differential", "Stores and apply difference between reference and local value (NOT USED)"},
	{103, "FACT_MULTIPLY", 0, "Factor", "Stores and apply multiplication factor between reference and local value (NOT USED)"},
	{201, "INSERT_AFTER", 0, "Insert After", "Insert a new item into collection after the one referenced in subitem_reference_name/_id or _index"},
	{202, "INSERT_BEFORE", 0, "Insert Before", "Insert a new item into collection before the one referenced in subitem_reference_name/_id or _index (NOT USED)"},
	{0, nullptr, 0, nullptr, nullptr}
};

static EnumPropertyRNA rna_IDOverrideLibraryPropertyOperations_add_operation_ = {
	{&rna_IDOverrideLibraryPropertyOperations_add_use_id, nullptr,
	-1, "operation", 3, 0, 1, 0, 0, PropertyPathTemplateType(0), "Operation",
	"What override operation is performed",
	0, "*",
	PROP_ENUM, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, rna_IDOverrideLibraryPropertyOperations_add_operation_items, 7, 1
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperations_add_operation = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperations_add_operation_);

static BoolPropertyRNA rna_IDOverrideLibraryPropertyOperations_add_use_id_ = {
	{&rna_IDOverrideLibraryPropertyOperations_add_subitem_reference_name, &rna_IDOverrideLibraryPropertyOperations_add_operation,
	-1, "use_id", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "Use ID Pointer Subitem",
	"Whether the found or created liboverride operation should use ID pointers or not",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperations_add_use_id = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperations_add_use_id_);

static StringPropertyRNA rna_IDOverrideLibraryPropertyOperations_add_subitem_reference_name_ = {
	{&rna_IDOverrideLibraryPropertyOperations_add_subitem_local_name, &rna_IDOverrideLibraryPropertyOperations_add_use_id,
	-1, "subitem_reference_name", 262145, 0, 0, 0, 0, PropertyPathTemplateType(0), "Subitem Reference Name",
	"Used to handle insertions or ID replacements into collection",
	0, "*",
	PROP_STRING, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, eStringPropertySearchFlag(0), nullptr, 2147483647, ""
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperations_add_subitem_reference_name = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperations_add_subitem_reference_name_);

static StringPropertyRNA rna_IDOverrideLibraryPropertyOperations_add_subitem_local_name_ = {
	{&rna_IDOverrideLibraryPropertyOperations_add_subitem_reference_id, &rna_IDOverrideLibraryPropertyOperations_add_subitem_reference_name,
	-1, "subitem_local_name", 262145, 0, 0, 0, 0, PropertyPathTemplateType(0), "Subitem Local Name",
	"Used to handle insertions or ID replacements into collection",
	0, "*",
	PROP_STRING, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, eStringPropertySearchFlag(0), nullptr, 2147483647, ""
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperations_add_subitem_local_name = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperations_add_subitem_local_name_);

static PointerPropertyRNA rna_IDOverrideLibraryPropertyOperations_add_subitem_reference_id_ = {
	{&rna_IDOverrideLibraryPropertyOperations_add_subitem_local_id, &rna_IDOverrideLibraryPropertyOperations_add_subitem_local_name,
	-1, "subitem_reference_id", 8388736, 0, 0, 0, 0, PropertyPathTemplateType(0), "Subitem Reference ID",
	"Used to handle ID replacements into collection",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_ID
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperations_add_subitem_reference_id = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperations_add_subitem_reference_id_);

static PointerPropertyRNA rna_IDOverrideLibraryPropertyOperations_add_subitem_local_id_ = {
	{&rna_IDOverrideLibraryPropertyOperations_add_subitem_reference_index, &rna_IDOverrideLibraryPropertyOperations_add_subitem_reference_id,
	-1, "subitem_local_id", 8388736, 0, 0, 0, 0, PropertyPathTemplateType(0), "Subitem Local ID",
	"Used to handle ID replacements into collection",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_ID
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperations_add_subitem_local_id = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperations_add_subitem_local_id_);

static IntPropertyRNA rna_IDOverrideLibraryPropertyOperations_add_subitem_reference_index_ = {
	{&rna_IDOverrideLibraryPropertyOperations_add_subitem_local_index, &rna_IDOverrideLibraryPropertyOperations_add_subitem_local_id,
	-1, "subitem_reference_index", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "Subitem Reference Index",
	"Used to handle insertions or ID replacements into collection",
	0, "*",
	PROP_INT, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
	PROP_SCALE_LINEAR, -1, INT_MAX, -1, INT_MAX, 1, nullptr, nullptr, -1, nullptr
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperations_add_subitem_reference_index = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperations_add_subitem_reference_index_);

static IntPropertyRNA rna_IDOverrideLibraryPropertyOperations_add_subitem_local_index_ = {
	{&rna_IDOverrideLibraryPropertyOperations_add_property, &rna_IDOverrideLibraryPropertyOperations_add_subitem_reference_index,
	-1, "subitem_local_index", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "Subitem Local Index",
	"Used to handle insertions or ID replacements into collection",
	0, "*",
	PROP_INT, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
	PROP_SCALE_LINEAR, -1, INT_MAX, -1, INT_MAX, 1, nullptr, nullptr, -1, nullptr
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperations_add_subitem_local_index = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperations_add_subitem_local_index_);

static PointerPropertyRNA rna_IDOverrideLibraryPropertyOperations_add_property_ = {
	{nullptr, &rna_IDOverrideLibraryPropertyOperations_add_subitem_local_index,
	-1, "property", 8388608, 0, 2, 0, 0, PropertyPathTemplateType(0), "New Operation",
	"Created operation",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_IDOverrideLibraryPropertyOperation
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperations_add_property = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperations_add_property_);

FunctionRNA rna_IDOverrideLibraryPropertyOperations_add_func = {
	{(FunctionRNA *)&rna_IDOverrideLibraryPropertyOperations_remove_func, nullptr,
	nullptr,
	{&rna_IDOverrideLibraryPropertyOperations_add_operation, &rna_IDOverrideLibraryPropertyOperations_add_property}},
	"add", 16, "Add a new operation",
	IDOverrideLibraryPropertyOperations_add_call,
	&rna_IDOverrideLibraryPropertyOperations_add_property
};

static PointerPropertyRNA rna_IDOverrideLibraryPropertyOperations_remove_operation_ = {
	{nullptr, nullptr,
	-1, "operation", 8388608, 0, 1, 0, 0, PropertyPathTemplateType(0), "Operation",
	"Override operation to be deleted",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_IDOverrideLibraryPropertyOperation
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperations_remove_operation = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperations_remove_operation_);

FunctionRNA rna_IDOverrideLibraryPropertyOperations_remove_func = {
	{nullptr, (FunctionRNA *)&rna_IDOverrideLibraryPropertyOperations_add_func,
	nullptr,
	{&rna_IDOverrideLibraryPropertyOperations_remove_operation, &rna_IDOverrideLibraryPropertyOperations_remove_operation}},
	"remove", 16, "Remove and delete an operation",
	IDOverrideLibraryPropertyOperations_remove_call,
	nullptr
};

StructRNA RNA_IDOverrideLibraryPropertyOperations = {
	{(ContainerRNA *)&RNA_IDOverrideLibraryPropertyOperation, (ContainerRNA *)&RNA_IDOverrideLibraryProperty,
	nullptr,
	{&rna_IDOverrideLibraryPropertyOperations_rna_properties, &rna_IDOverrideLibraryPropertyOperations_rna_type}},
	"IDOverrideLibraryPropertyOperations", nullptr, nullptr, 516, nullptr, "Override Operations",
	"Collection of override operations",
	"*", 61,
	nullptr, &rna_IDOverrideLibraryPropertyOperations_rna_properties,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	{(FunctionRNA *)&rna_IDOverrideLibraryPropertyOperations_add_func, (FunctionRNA *)&rna_IDOverrideLibraryPropertyOperations_remove_func}
};

/* ID Library Override Property Operation */
static CollectionPropertyRNA rna_IDOverrideLibraryPropertyOperation_rna_properties_ = {
	{&rna_IDOverrideLibraryPropertyOperation_rna_type, nullptr,
	-1, "rna_properties", 0, 0, 0, 1, 0, PropertyPathTemplateType(0), "Properties",
	"RNA property collection",
	0, "*",
	PROP_COLLECTION, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibraryPropertyOperation_rna_properties_begin, IDOverrideLibraryPropertyOperation_rna_properties_next, IDOverrideLibraryPropertyOperation_rna_properties_end, IDOverrideLibraryPropertyOperation_rna_properties_get, nullptr, nullptr, IDOverrideLibraryPropertyOperation_rna_properties_lookup_string, nullptr, &RNA_Property
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperation_rna_properties = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperation_rna_properties_);

static PointerPropertyRNA rna_IDOverrideLibraryPropertyOperation_rna_type_ = {
	{&rna_IDOverrideLibraryPropertyOperation_operation, &rna_IDOverrideLibraryPropertyOperation_rna_properties,
	-1, "rna_type", 8912896, 0, 0, 0, 0, PropertyPathTemplateType(0), "RNA",
	"RNA type definition",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibraryPropertyOperation_rna_type_get, nullptr, nullptr, nullptr,&RNA_Struct
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperation_rna_type = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperation_rna_type_);

static const EnumPropertyItem rna_IDOverrideLibraryPropertyOperation_operation_items[8] = {
	{0, "NOOP", 0, "No-Op", "Does nothing, prevents adding actual overrides (NOT USED)"},
	{1, "REPLACE", 0, "Replace", "Replace value of reference by overriding one"},
	{101, "DIFF_ADD", 0, "Differential", "Stores and apply difference between reference and local value (NOT USED)"},
	{102, "DIFF_SUB", 0, "Differential", "Stores and apply difference between reference and local value (NOT USED)"},
	{103, "FACT_MULTIPLY", 0, "Factor", "Stores and apply multiplication factor between reference and local value (NOT USED)"},
	{201, "INSERT_AFTER", 0, "Insert After", "Insert a new item into collection after the one referenced in subitem_reference_name/_id or _index"},
	{202, "INSERT_BEFORE", 0, "Insert Before", "Insert a new item into collection before the one referenced in subitem_reference_name/_id or _index (NOT USED)"},
	{0, nullptr, 0, nullptr, nullptr}
};

static EnumPropertyRNA rna_IDOverrideLibraryPropertyOperation_operation_ = {
	{&rna_IDOverrideLibraryPropertyOperation_flag, &rna_IDOverrideLibraryPropertyOperation_rna_type,
	-1, "operation", 2, 0, 0, 4, 0, PropertyPathTemplateType(0), "Operation",
	"What override operation is performed",
	0, "*",
	PROP_ENUM, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	offsetof(IDOverrideLibraryPropertyOperation, operation), RawPropertyType(1), nullptr},
	IDOverrideLibraryPropertyOperation_operation_get, nullptr, nullptr, nullptr, nullptr, nullptr, rna_IDOverrideLibraryPropertyOperation_operation_items, 7, 1
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperation_operation = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperation_operation_);

static const EnumPropertyItem rna_IDOverrideLibraryPropertyOperation_flag_items[5] = {
	{1, "MANDATORY", 0, "Mandatory", "For templates, prevents the user from removing predefined operation (NOT USED)"},
	{2, "LOCKED", 0, "Locked", "Prevents the user from modifying that override operation (NOT USED)"},
	{256, "IDPOINTER_MATCH_REFERENCE", 0, "Match Reference", "The ID pointer overridden by this operation is expected to match the reference hierarchy"},
	{512, "IDPOINTER_ITEM_USE_ID", 0, "ID Item Use ID Pointer", "RNA collections of IDs only, the reference to the item also uses the ID pointer itself, not only its name"},
	{0, nullptr, 0, nullptr, nullptr}
};

static EnumPropertyRNA rna_IDOverrideLibraryPropertyOperation_flag_ = {
	{&rna_IDOverrideLibraryPropertyOperation_subitem_reference_name, &rna_IDOverrideLibraryPropertyOperation_operation,
	-1, "flag", 2097154, 0, 0, 4, 0, PropertyPathTemplateType(0), "Flags",
	"Status flags",
	0, "*",
	PROP_ENUM, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	offsetof(IDOverrideLibraryPropertyOperation, flag), RawPropertyType(1), nullptr},
	IDOverrideLibraryPropertyOperation_flag_get, nullptr, nullptr, nullptr, nullptr, nullptr, rna_IDOverrideLibraryPropertyOperation_flag_items, 4, 1
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperation_flag = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperation_flag_);

static StringPropertyRNA rna_IDOverrideLibraryPropertyOperation_subitem_reference_name_ = {
	{&rna_IDOverrideLibraryPropertyOperation_subitem_local_name, &rna_IDOverrideLibraryPropertyOperation_flag,
	-1, "subitem_reference_name", 262144, 0, 0, 0, 0, PropertyPathTemplateType(0), "Subitem Reference Name",
	"Used to handle changes into collection",
	0, "*",
	PROP_STRING, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibraryPropertyOperation_subitem_reference_name_get, IDOverrideLibraryPropertyOperation_subitem_reference_name_length, nullptr, nullptr, nullptr, nullptr, nullptr, eStringPropertySearchFlag(0), nullptr, 2147483647, ""
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperation_subitem_reference_name = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperation_subitem_reference_name_);

static StringPropertyRNA rna_IDOverrideLibraryPropertyOperation_subitem_local_name_ = {
	{&rna_IDOverrideLibraryPropertyOperation_subitem_reference_id, &rna_IDOverrideLibraryPropertyOperation_subitem_reference_name,
	-1, "subitem_local_name", 262144, 0, 0, 0, 0, PropertyPathTemplateType(0), "Subitem Local Name",
	"Used to handle changes into collection",
	0, "*",
	PROP_STRING, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibraryPropertyOperation_subitem_local_name_get, IDOverrideLibraryPropertyOperation_subitem_local_name_length, nullptr, nullptr, nullptr, nullptr, nullptr, eStringPropertySearchFlag(0), nullptr, 2147483647, ""
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperation_subitem_local_name = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperation_subitem_local_name_);

static PointerPropertyRNA rna_IDOverrideLibraryPropertyOperation_subitem_reference_id_ = {
	{&rna_IDOverrideLibraryPropertyOperation_subitem_local_id, &rna_IDOverrideLibraryPropertyOperation_subitem_local_name,
	-1, "subitem_reference_id", 8388800, 0, 0, 0, 0, PropertyPathTemplateType(0), "Subitem Reference ID",
	"Collection of IDs only, used to disambiguate between potential IDs with same name from different libraries",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibraryPropertyOperation_subitem_reference_id_get, nullptr, nullptr, nullptr,&RNA_ID
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperation_subitem_reference_id = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperation_subitem_reference_id_);

static PointerPropertyRNA rna_IDOverrideLibraryPropertyOperation_subitem_local_id_ = {
	{&rna_IDOverrideLibraryPropertyOperation_subitem_reference_index, &rna_IDOverrideLibraryPropertyOperation_subitem_reference_id,
	-1, "subitem_local_id", 8388800, 0, 0, 0, 0, PropertyPathTemplateType(0), "Subitem Local ID",
	"Collection of IDs only, used to disambiguate between potential IDs with same name from different libraries",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDOverrideLibraryPropertyOperation_subitem_local_id_get, nullptr, nullptr, nullptr,&RNA_ID
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperation_subitem_local_id = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperation_subitem_local_id_);

static IntPropertyRNA rna_IDOverrideLibraryPropertyOperation_subitem_reference_index_ = {
	{&rna_IDOverrideLibraryPropertyOperation_subitem_local_index, &rna_IDOverrideLibraryPropertyOperation_subitem_local_id,
	-1, "subitem_reference_index", 2, 0, 0, 4, 0, PropertyPathTemplateType(0), "Subitem Reference Index",
	"Used to handle changes into collection",
	0, "*",
	PROP_INT, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	offsetof(IDOverrideLibraryPropertyOperation, subitem_reference_index), RawPropertyType(0), nullptr},
	IDOverrideLibraryPropertyOperation_subitem_reference_index_get, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
	PROP_SCALE_LINEAR, -1, INT_MAX, -1, INT_MAX, 1, nullptr, nullptr, -1, nullptr
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperation_subitem_reference_index = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperation_subitem_reference_index_);

static IntPropertyRNA rna_IDOverrideLibraryPropertyOperation_subitem_local_index_ = {
	{nullptr, &rna_IDOverrideLibraryPropertyOperation_subitem_reference_index,
	-1, "subitem_local_index", 2, 0, 0, 4, 0, PropertyPathTemplateType(0), "Subitem Local Index",
	"Used to handle changes into collection",
	0, "*",
	PROP_INT, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	offsetof(IDOverrideLibraryPropertyOperation, subitem_local_index), RawPropertyType(0), nullptr},
	IDOverrideLibraryPropertyOperation_subitem_local_index_get, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
	PROP_SCALE_LINEAR, -1, INT_MAX, -1, INT_MAX, 1, nullptr, nullptr, -1, nullptr
};
PropertyRNA &rna_IDOverrideLibraryPropertyOperation_subitem_local_index = reinterpret_cast<PropertyRNA &>(rna_IDOverrideLibraryPropertyOperation_subitem_local_index_);

StructRNA RNA_IDOverrideLibraryPropertyOperation = {
	{(ContainerRNA *)&RNA_ImagePreview, (ContainerRNA *)&RNA_IDOverrideLibraryPropertyOperations,
	nullptr,
	{&rna_IDOverrideLibraryPropertyOperation_rna_properties, &rna_IDOverrideLibraryPropertyOperation_subitem_local_index}},
	"IDOverrideLibraryPropertyOperation", nullptr, nullptr, 516, nullptr, "ID Library Override Property Operation",
	"Description of an override operation over an overridden property",
	"*", 61,
	nullptr, &rna_IDOverrideLibraryPropertyOperation_rna_properties,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	{nullptr, nullptr}
};

/* Image Preview */
static CollectionPropertyRNA rna_ImagePreview_rna_properties_ = {
	{&rna_ImagePreview_rna_type, nullptr,
	-1, "rna_properties", 0, 0, 0, 1, 0, PropertyPathTemplateType(0), "Properties",
	"RNA property collection",
	0, "*",
	PROP_COLLECTION, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ImagePreview_rna_properties_begin, ImagePreview_rna_properties_next, ImagePreview_rna_properties_end, ImagePreview_rna_properties_get, nullptr, nullptr, ImagePreview_rna_properties_lookup_string, nullptr, &RNA_Property
};
PropertyRNA &rna_ImagePreview_rna_properties = reinterpret_cast<PropertyRNA &>(rna_ImagePreview_rna_properties_);

static PointerPropertyRNA rna_ImagePreview_rna_type_ = {
	{&rna_ImagePreview_is_image_custom, &rna_ImagePreview_rna_properties,
	-1, "rna_type", 8912896, 0, 0, 0, 0, PropertyPathTemplateType(0), "RNA",
	"RNA type definition",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ImagePreview_rna_type_get, nullptr, nullptr, nullptr,&RNA_Struct
};
PropertyRNA &rna_ImagePreview_rna_type = reinterpret_cast<PropertyRNA &>(rna_ImagePreview_rna_type_);

static BoolPropertyRNA rna_ImagePreview_is_image_custom_ = {
	{&rna_ImagePreview_image_size, &rna_ImagePreview_rna_type,
	-1, "is_image_custom", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "Custom Image",
	"True if this preview image has been modified by py script, and is no more auto-generated by Blender",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ImagePreview_is_image_custom_get, ImagePreview_is_image_custom_set, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ImagePreview_is_image_custom = reinterpret_cast<PropertyRNA &>(rna_ImagePreview_is_image_custom_);

static int rna_ImagePreview_image_size_default[2] = {
	0,
	0
};

static IntPropertyRNA rna_ImagePreview_image_size_ = {
	{&rna_ImagePreview_image_pixels, &rna_ImagePreview_is_image_custom,
	-1, "image_size", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "Image Size",
	"Width and height in pixels",
	0, "*",
	PROP_INT, PropertySubType(int(PROP_PIXEL) | int(PROP_UNIT_NONE)), nullptr, 1, {2, 0, 0}, 2,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, ImagePreview_image_size_get, ImagePreview_image_size_set, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
	PROP_SCALE_LINEAR, 0, 0, INT_MIN, INT_MAX, 1, nullptr, nullptr, 0, rna_ImagePreview_image_size_default
};
PropertyRNA &rna_ImagePreview_image_size = reinterpret_cast<PropertyRNA &>(rna_ImagePreview_image_size_);

static IntPropertyRNA rna_ImagePreview_image_pixels_ = {
	{&rna_ImagePreview_image_pixels_float, &rna_ImagePreview_image_size,
	-1, "image_pixels", 131075, 0, 0, 0, 0, PropertyPathTemplateType(0), "Image Pixels",
	"Image pixels, as bytes (always 32-bit RGBA)",
	0, "*",
	PROP_INT, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), rna_ImagePreview_image_pixels_get_length, 1, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, ImagePreview_image_pixels_get, ImagePreview_image_pixels_set, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
	PROP_SCALE_LINEAR, -10000, 10000, INT_MIN, INT_MAX, 1, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ImagePreview_image_pixels = reinterpret_cast<PropertyRNA &>(rna_ImagePreview_image_pixels_);

static FloatPropertyRNA rna_ImagePreview_image_pixels_float_ = {
	{&rna_ImagePreview_is_icon_custom, &rna_ImagePreview_image_pixels,
	-1, "image_pixels_float", 131075, 0, 0, 0, 0, PropertyPathTemplateType(0), "Float Image Pixels",
	"Image pixels components, as floats (RGBA concatenated values)",
	0, "*",
	PROP_FLOAT, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), rna_ImagePreview_image_pixels_float_get_length, 1, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, ImagePreview_image_pixels_float_get, ImagePreview_image_pixels_float_set, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, PROP_SCALE_LINEAR, -10000.0f, 10000.0f, -FLT_MAX, FLT_MAX, 10.0f, 3, nullptr, nullptr, 0.0f, nullptr
};
PropertyRNA &rna_ImagePreview_image_pixels_float = reinterpret_cast<PropertyRNA &>(rna_ImagePreview_image_pixels_float_);

static BoolPropertyRNA rna_ImagePreview_is_icon_custom_ = {
	{&rna_ImagePreview_icon_size, &rna_ImagePreview_image_pixels_float,
	-1, "is_icon_custom", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "Custom Icon",
	"True if this preview icon has been modified by py script, and is no more auto-generated by Blender",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ImagePreview_is_icon_custom_get, ImagePreview_is_icon_custom_set, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ImagePreview_is_icon_custom = reinterpret_cast<PropertyRNA &>(rna_ImagePreview_is_icon_custom_);

static int rna_ImagePreview_icon_size_default[2] = {
	0,
	0
};

static IntPropertyRNA rna_ImagePreview_icon_size_ = {
	{&rna_ImagePreview_icon_pixels, &rna_ImagePreview_is_icon_custom,
	-1, "icon_size", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "Icon Size",
	"Width and height in pixels",
	0, "*",
	PROP_INT, PropertySubType(int(PROP_PIXEL) | int(PROP_UNIT_NONE)), nullptr, 1, {2, 0, 0}, 2,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, ImagePreview_icon_size_get, ImagePreview_icon_size_set, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
	PROP_SCALE_LINEAR, 0, 0, INT_MIN, INT_MAX, 1, nullptr, nullptr, 0, rna_ImagePreview_icon_size_default
};
PropertyRNA &rna_ImagePreview_icon_size = reinterpret_cast<PropertyRNA &>(rna_ImagePreview_icon_size_);

static IntPropertyRNA rna_ImagePreview_icon_pixels_ = {
	{&rna_ImagePreview_icon_pixels_float, &rna_ImagePreview_icon_size,
	-1, "icon_pixels", 131075, 0, 0, 0, 0, PropertyPathTemplateType(0), "Icon Pixels",
	"Icon pixels, as bytes (always 32-bit RGBA)",
	0, "*",
	PROP_INT, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), rna_ImagePreview_icon_pixels_get_length, 1, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, ImagePreview_icon_pixels_get, ImagePreview_icon_pixels_set, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
	PROP_SCALE_LINEAR, -10000, 10000, INT_MIN, INT_MAX, 1, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ImagePreview_icon_pixels = reinterpret_cast<PropertyRNA &>(rna_ImagePreview_icon_pixels_);

static FloatPropertyRNA rna_ImagePreview_icon_pixels_float_ = {
	{&rna_ImagePreview_icon_id, &rna_ImagePreview_icon_pixels,
	-1, "icon_pixels_float", 131075, 0, 0, 0, 0, PropertyPathTemplateType(0), "Float Icon Pixels",
	"Icon pixels components, as floats (RGBA concatenated values)",
	0, "*",
	PROP_FLOAT, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), rna_ImagePreview_icon_pixels_float_get_length, 1, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, ImagePreview_icon_pixels_float_get, ImagePreview_icon_pixels_float_set, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, PROP_SCALE_LINEAR, -10000.0f, 10000.0f, -FLT_MAX, FLT_MAX, 10.0f, 3, nullptr, nullptr, 0.0f, nullptr
};
PropertyRNA &rna_ImagePreview_icon_pixels_float = reinterpret_cast<PropertyRNA &>(rna_ImagePreview_icon_pixels_float_);

static IntPropertyRNA rna_ImagePreview_icon_id_ = {
	{nullptr, &rna_ImagePreview_icon_pixels_float,
	-1, "icon_id", 2, 0, 0, 0, 0, PropertyPathTemplateType(0), "Icon ID",
	"Unique integer identifying this preview as an icon (zero means invalid)",
	0, "*",
	PROP_INT, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	ImagePreview_icon_id_get, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
	PROP_SCALE_LINEAR, INT_MIN, INT_MAX, INT_MIN, INT_MAX, 1, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_ImagePreview_icon_id = reinterpret_cast<PropertyRNA &>(rna_ImagePreview_icon_id_);

FunctionRNA rna_ImagePreview_reload_func = {
	{nullptr, nullptr,
	nullptr,
	{nullptr, nullptr}},
	"reload", 0, "Reload the preview from its source path",
	ImagePreview_reload_call,
	nullptr
};

StructRNA RNA_ImagePreview = {
	{(ContainerRNA *)&RNA_PropertyGroupItem, (ContainerRNA *)&RNA_IDOverrideLibraryPropertyOperation,
	nullptr,
	{&rna_ImagePreview_rna_properties, &rna_ImagePreview_icon_id}},
	"ImagePreview", nullptr, nullptr, 516, nullptr, "Image Preview",
	"Preview image and icon",
	"*", 61,
	nullptr, &rna_ImagePreview_rna_properties,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	{(FunctionRNA *)&rna_ImagePreview_reload_func, (FunctionRNA *)&rna_ImagePreview_reload_func}
};

/* ID Property */
static CollectionPropertyRNA rna_PropertyGroupItem_rna_properties_ = {
	{&rna_PropertyGroupItem_rna_type, nullptr,
	-1, "rna_properties", 0, 0, 0, 1, 0, PropertyPathTemplateType(0), "Properties",
	"RNA property collection",
	0, "*",
	PROP_COLLECTION, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	PropertyGroupItem_rna_properties_begin, PropertyGroupItem_rna_properties_next, PropertyGroupItem_rna_properties_end, PropertyGroupItem_rna_properties_get, nullptr, nullptr, PropertyGroupItem_rna_properties_lookup_string, nullptr, &RNA_Property
};
PropertyRNA &rna_PropertyGroupItem_rna_properties = reinterpret_cast<PropertyRNA &>(rna_PropertyGroupItem_rna_properties_);

static PointerPropertyRNA rna_PropertyGroupItem_rna_type_ = {
	{&rna_PropertyGroupItem_string, &rna_PropertyGroupItem_rna_properties,
	-1, "rna_type", 8912896, 0, 0, 0, 0, PropertyPathTemplateType(0), "RNA",
	"RNA type definition",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	PropertyGroupItem_rna_type_get, nullptr, nullptr, nullptr,&RNA_Struct
};
PropertyRNA &rna_PropertyGroupItem_rna_type = reinterpret_cast<PropertyRNA &>(rna_PropertyGroupItem_rna_type_);

static StringPropertyRNA rna_PropertyGroupItem_string_ = {
	{&rna_PropertyGroupItem_int, &rna_PropertyGroupItem_rna_type,
	-1, "string", 263169, 0, 0, 0, 0, PropertyPathTemplateType(0), "string",
	"",
	0, "*",
	PROP_STRING, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, eStringPropertySearchFlag(0), nullptr, 0, ""
};
PropertyRNA &rna_PropertyGroupItem_string = reinterpret_cast<PropertyRNA &>(rna_PropertyGroupItem_string_);

static IntPropertyRNA rna_PropertyGroupItem_int_ = {
	{&rna_PropertyGroupItem_int_array, &rna_PropertyGroupItem_string,
	-1, "int", 1027, 0, 0, 0, 0, PropertyPathTemplateType(0), "int",
	"",
	0, "*",
	PROP_INT, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
	PROP_SCALE_LINEAR, -10000, 10000, INT_MIN, INT_MAX, 1, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_PropertyGroupItem_int = reinterpret_cast<PropertyRNA &>(rna_PropertyGroupItem_int_);

static int rna_PropertyGroupItem_int_array_default[1] = {
	0
};

static IntPropertyRNA rna_PropertyGroupItem_int_array_ = {
	{&rna_PropertyGroupItem_float, &rna_PropertyGroupItem_int,
	-1, "int_array", 1027, 0, 0, 0, 0, PropertyPathTemplateType(0), "int_array",
	"",
	0, "*",
	PROP_INT, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 1, {1, 0, 0}, 1,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
	PROP_SCALE_LINEAR, -10000, 10000, INT_MIN, INT_MAX, 1, nullptr, nullptr, 0, rna_PropertyGroupItem_int_array_default
};
PropertyRNA &rna_PropertyGroupItem_int_array = reinterpret_cast<PropertyRNA &>(rna_PropertyGroupItem_int_array_);

static FloatPropertyRNA rna_PropertyGroupItem_float_ = {
	{&rna_PropertyGroupItem_float_array, &rna_PropertyGroupItem_int_array,
	-1, "float", 1027, 0, 0, 0, 0, PropertyPathTemplateType(0), "float",
	"",
	0, "*",
	PROP_FLOAT, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, PROP_SCALE_LINEAR, -10000.0f, 10000.0f, -FLT_MAX, FLT_MAX, 10.0f, 3, nullptr, nullptr, 0.0f, nullptr
};
PropertyRNA &rna_PropertyGroupItem_float = reinterpret_cast<PropertyRNA &>(rna_PropertyGroupItem_float_);

static float rna_PropertyGroupItem_float_array_default[1] = {
	0.0f
};

static FloatPropertyRNA rna_PropertyGroupItem_float_array_ = {
	{&rna_PropertyGroupItem_double, &rna_PropertyGroupItem_float,
	-1, "float_array", 1027, 0, 0, 0, 0, PropertyPathTemplateType(0), "float_array",
	"",
	0, "*",
	PROP_FLOAT, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 1, {1, 0, 0}, 1,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, PROP_SCALE_LINEAR, -10000.0f, 10000.0f, -FLT_MAX, FLT_MAX, 10.0f, 3, nullptr, nullptr, 0.0f, rna_PropertyGroupItem_float_array_default
};
PropertyRNA &rna_PropertyGroupItem_float_array = reinterpret_cast<PropertyRNA &>(rna_PropertyGroupItem_float_array_);

static FloatPropertyRNA rna_PropertyGroupItem_double_ = {
	{&rna_PropertyGroupItem_double_array, &rna_PropertyGroupItem_float_array,
	-1, "double", 1027, 0, 0, 0, 0, PropertyPathTemplateType(0), "double",
	"",
	0, "*",
	PROP_FLOAT, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, PROP_SCALE_LINEAR, -10000.0f, 10000.0f, -FLT_MAX, FLT_MAX, 10.0f, 3, nullptr, nullptr, 0.0f, nullptr
};
PropertyRNA &rna_PropertyGroupItem_double = reinterpret_cast<PropertyRNA &>(rna_PropertyGroupItem_double_);

static float rna_PropertyGroupItem_double_array_default[1] = {
	0.0f
};

static FloatPropertyRNA rna_PropertyGroupItem_double_array_ = {
	{&rna_PropertyGroupItem_bool, &rna_PropertyGroupItem_double,
	-1, "double_array", 1027, 0, 0, 0, 0, PropertyPathTemplateType(0), "double_array",
	"",
	0, "*",
	PROP_FLOAT, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 1, {1, 0, 0}, 1,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, PROP_SCALE_LINEAR, -10000.0f, 10000.0f, -FLT_MAX, FLT_MAX, 10.0f, 3, nullptr, nullptr, 0.0f, rna_PropertyGroupItem_double_array_default
};
PropertyRNA &rna_PropertyGroupItem_double_array = reinterpret_cast<PropertyRNA &>(rna_PropertyGroupItem_double_array_);

static BoolPropertyRNA rna_PropertyGroupItem_bool_ = {
	{&rna_PropertyGroupItem_bool_array, &rna_PropertyGroupItem_double_array,
	-1, "bool", 1027, 0, 0, 0, 0, PropertyPathTemplateType(0), "bool",
	"",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_PropertyGroupItem_bool = reinterpret_cast<PropertyRNA &>(rna_PropertyGroupItem_bool_);

static bool rna_PropertyGroupItem_bool_array_default[1] = {
	0
};

static BoolPropertyRNA rna_PropertyGroupItem_bool_array_ = {
	{&rna_PropertyGroupItem_enum, &rna_PropertyGroupItem_bool,
	-1, "bool_array", 1027, 0, 0, 0, 0, PropertyPathTemplateType(0), "bool_array",
	"",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 1, {1, 0, 0}, 1,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, rna_PropertyGroupItem_bool_array_default
};
PropertyRNA &rna_PropertyGroupItem_bool_array = reinterpret_cast<PropertyRNA &>(rna_PropertyGroupItem_bool_array_);

static EnumPropertyRNA rna_PropertyGroupItem_enum_ = {
	{&rna_PropertyGroupItem_group, &rna_PropertyGroupItem_bool_array,
	-1, "enum", 1027, 0, 0, 0, 0, PropertyPathTemplateType(0), "enum",
	"",
	0, "*",
	PROP_ENUM, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, rna_enum_dummy_DEFAULT_items, 1, 0
};
PropertyRNA &rna_PropertyGroupItem_enum = reinterpret_cast<PropertyRNA &>(rna_PropertyGroupItem_enum_);

static PointerPropertyRNA rna_PropertyGroupItem_group_ = {
	{&rna_PropertyGroupItem_collection, &rna_PropertyGroupItem_enum,
	-1, "group", 8389632, 0, 0, 0, 0, PropertyPathTemplateType(0), "group",
	"",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_PropertyGroup
};
PropertyRNA &rna_PropertyGroupItem_group = reinterpret_cast<PropertyRNA &>(rna_PropertyGroupItem_group_);

static CollectionPropertyRNA rna_PropertyGroupItem_collection_ = {
	{&rna_PropertyGroupItem_idp_array, &rna_PropertyGroupItem_group,
	-1, "collection", 1024, 0, 0, 0, 0, PropertyPathTemplateType(0), "collection",
	"",
	0, "*",
	PROP_COLLECTION, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, &RNA_PropertyGroup
};
PropertyRNA &rna_PropertyGroupItem_collection = reinterpret_cast<PropertyRNA &>(rna_PropertyGroupItem_collection_);

static CollectionPropertyRNA rna_PropertyGroupItem_idp_array_ = {
	{&rna_PropertyGroupItem_id, &rna_PropertyGroupItem_collection,
	-1, "idp_array", 1024, 0, 0, 8, 0, PropertyPathTemplateType(0), "idp_array",
	"",
	0, "*",
	PROP_COLLECTION, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	PropertyGroupItem_idp_array_begin, PropertyGroupItem_idp_array_next, PropertyGroupItem_idp_array_end, PropertyGroupItem_idp_array_get, PropertyGroupItem_idp_array_length, nullptr, nullptr, nullptr, &RNA_PropertyGroup
};
PropertyRNA &rna_PropertyGroupItem_idp_array = reinterpret_cast<PropertyRNA &>(rna_PropertyGroupItem_idp_array_);

static PointerPropertyRNA rna_PropertyGroupItem_id_ = {
	{nullptr, &rna_PropertyGroupItem_idp_array,
	-1, "id", 8389761, 0, 0, 0, 0, PropertyPathTemplateType(0), "id",
	"",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_ID
};
PropertyRNA &rna_PropertyGroupItem_id = reinterpret_cast<PropertyRNA &>(rna_PropertyGroupItem_id_);

StructRNA RNA_PropertyGroupItem = {
	{(ContainerRNA *)&RNA_PropertyGroup, (ContainerRNA *)&RNA_ImagePreview,
	nullptr,
	{&rna_PropertyGroupItem_rna_properties, &rna_PropertyGroupItem_id}},
	"PropertyGroupItem", nullptr, nullptr, 516, nullptr, "ID Property",
	"Property that stores arbitrary, user defined properties",
	"*", 61,
	nullptr, &rna_PropertyGroupItem_rna_properties,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	{nullptr, nullptr}
};

/* ID Property Group */
static CollectionPropertyRNA rna_PropertyGroup_rna_properties_ = {
	{&rna_PropertyGroup_rna_type, nullptr,
	-1, "rna_properties", 0, 0, 0, 1, 0, PropertyPathTemplateType(0), "Properties",
	"RNA property collection",
	0, "*",
	PROP_COLLECTION, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	PropertyGroup_rna_properties_begin, PropertyGroup_rna_properties_next, PropertyGroup_rna_properties_end, PropertyGroup_rna_properties_get, nullptr, nullptr, PropertyGroup_rna_properties_lookup_string, nullptr, &RNA_Property
};
PropertyRNA &rna_PropertyGroup_rna_properties = reinterpret_cast<PropertyRNA &>(rna_PropertyGroup_rna_properties_);

static PointerPropertyRNA rna_PropertyGroup_rna_type_ = {
	{&rna_PropertyGroup_name, &rna_PropertyGroup_rna_properties,
	-1, "rna_type", 8912896, 0, 0, 0, 0, PropertyPathTemplateType(0), "RNA",
	"RNA type definition",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	PropertyGroup_rna_type_get, nullptr, nullptr, nullptr,&RNA_Struct
};
PropertyRNA &rna_PropertyGroup_rna_type = reinterpret_cast<PropertyRNA &>(rna_PropertyGroup_rna_type_);

static StringPropertyRNA rna_PropertyGroup_name_ = {
	{nullptr, &rna_PropertyGroup_rna_type,
	-1, "name", 263169, 0, 0, 0, 0, PropertyPathTemplateType(0), "Name",
	"Unique name used in the code and scripting",
	0, "*",
	PROP_STRING, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, eStringPropertySearchFlag(0), nullptr, 0, ""
};
PropertyRNA &rna_PropertyGroup_name = reinterpret_cast<PropertyRNA &>(rna_PropertyGroup_name_);

StructRNA RNA_PropertyGroup = {
	{(ContainerRNA *)&RNA_IDMaterials, (ContainerRNA *)&RNA_PropertyGroupItem,
	nullptr,
	{&rna_PropertyGroup_rna_properties, &rna_PropertyGroup_name}},
	"PropertyGroup", nullptr, nullptr, 516, nullptr, "ID Property Group",
	"Group of ID properties",
	"*", 61,
	&rna_PropertyGroup_name, &rna_PropertyGroup_rna_properties,
	nullptr,
	nullptr,
	rna_PropertyGroup_refine,
	nullptr,
	rna_PropertyGroup_register,
	rna_PropertyGroup_unregister,
	nullptr,
	rna_PropertyGroup_idprops,
	{nullptr, nullptr}
};

/* ID Materials */
static CollectionPropertyRNA rna_IDMaterials_rna_properties_ = {
	{&rna_IDMaterials_rna_type, nullptr,
	-1, "rna_properties", 0, 0, 0, 1, 0, PropertyPathTemplateType(0), "Properties",
	"RNA property collection",
	0, "*",
	PROP_COLLECTION, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDMaterials_rna_properties_begin, IDMaterials_rna_properties_next, IDMaterials_rna_properties_end, IDMaterials_rna_properties_get, nullptr, nullptr, IDMaterials_rna_properties_lookup_string, nullptr, &RNA_Property
};
PropertyRNA &rna_IDMaterials_rna_properties = reinterpret_cast<PropertyRNA &>(rna_IDMaterials_rna_properties_);

static PointerPropertyRNA rna_IDMaterials_rna_type_ = {
	{nullptr, &rna_IDMaterials_rna_properties,
	-1, "rna_type", 8912896, 0, 0, 0, 0, PropertyPathTemplateType(0), "RNA",
	"RNA type definition",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDMaterials_rna_type_get, nullptr, nullptr, nullptr,&RNA_Struct
};
PropertyRNA &rna_IDMaterials_rna_type = reinterpret_cast<PropertyRNA &>(rna_IDMaterials_rna_type_);

static PointerPropertyRNA rna_IDMaterials_append_material_ = {
	{nullptr, nullptr,
	-1, "material", 8388736, 0, 1, 0, 0, PropertyPathTemplateType(0), "",
	"Material to add",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_Material
};
PropertyRNA &rna_IDMaterials_append_material = reinterpret_cast<PropertyRNA &>(rna_IDMaterials_append_material_);

FunctionRNA rna_IDMaterials_append_func = {
	{(FunctionRNA *)&rna_IDMaterials_pop_func, nullptr,
	nullptr,
	{&rna_IDMaterials_append_material, &rna_IDMaterials_append_material}},
	"append", 4, "Add a new material to the data-block",
	IDMaterials_append_call,
	nullptr
};

static IntPropertyRNA rna_IDMaterials_pop_index_ = {
	{&rna_IDMaterials_pop_material, nullptr,
	-1, "index", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "",
	"Index of material to remove",
	0, "*",
	PROP_INT, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
	PROP_SCALE_LINEAR, 0, 32766, -32766, 32766, 1, nullptr, nullptr, -1, nullptr
};
PropertyRNA &rna_IDMaterials_pop_index = reinterpret_cast<PropertyRNA &>(rna_IDMaterials_pop_index_);

static PointerPropertyRNA rna_IDMaterials_pop_material_ = {
	{nullptr, &rna_IDMaterials_pop_index,
	-1, "material", 8388736, 0, 2, 0, 0, PropertyPathTemplateType(0), "",
	"Material to remove",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, nullptr, nullptr,&RNA_Material
};
PropertyRNA &rna_IDMaterials_pop_material = reinterpret_cast<PropertyRNA &>(rna_IDMaterials_pop_material_);

FunctionRNA rna_IDMaterials_pop_func = {
	{(FunctionRNA *)&rna_IDMaterials_clear_func, (FunctionRNA *)&rna_IDMaterials_append_func,
	nullptr,
	{&rna_IDMaterials_pop_index, &rna_IDMaterials_pop_material}},
	"pop", 20, "Remove a material from the data-block",
	IDMaterials_pop_call,
	&rna_IDMaterials_pop_material
};

FunctionRNA rna_IDMaterials_clear_func = {
	{nullptr, (FunctionRNA *)&rna_IDMaterials_pop_func,
	nullptr,
	{nullptr, nullptr}},
	"clear", 4, "Remove all materials from the data-block",
	IDMaterials_clear_call,
	nullptr
};

StructRNA RNA_IDMaterials = {
	{(ContainerRNA *)&RNA_Library, (ContainerRNA *)&RNA_PropertyGroup,
	nullptr,
	{&rna_IDMaterials_rna_properties, &rna_IDMaterials_rna_type}},
	"IDMaterials", nullptr, nullptr, 516, nullptr, "ID Materials",
	"Collection of materials",
	"*", 61,
	nullptr, &rna_IDMaterials_rna_properties,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	{(FunctionRNA *)&rna_IDMaterials_append_func, (FunctionRNA *)&rna_IDMaterials_clear_func}
};

/* Library */
static StringPropertyRNA rna_Library_filepath_ = {
	{&rna_Library_parent, nullptr,
	-1, "filepath", 294913, 0, 0, 0, 0, PropertyPathTemplateType(0), "File Path",
	"Path to the library .blend file",
	0, "*",
	PROP_STRING, PropertySubType(int(PROP_FILEPATH) | int(PROP_UNIT_NONE)), nullptr, 0, {1024, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	Library_filepath_get, Library_filepath_length, Library_filepath_set, nullptr, nullptr, nullptr, nullptr, eStringPropertySearchFlag(0), nullptr, 1024, ""
};
PropertyRNA &rna_Library_filepath = reinterpret_cast<PropertyRNA &>(rna_Library_filepath_);

static PointerPropertyRNA rna_Library_parent_ = {
	{&rna_Library_packed_file, &rna_Library_filepath,
	-1, "parent", 8388736, 2, 0, 0, 0, PropertyPathTemplateType(0), "Parent",
	"",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	Library_parent_get, nullptr, nullptr, nullptr,&RNA_Library
};
PropertyRNA &rna_Library_parent = reinterpret_cast<PropertyRNA &>(rna_Library_parent_);

static PointerPropertyRNA rna_Library_packed_file_ = {
	{&rna_Library_version, &rna_Library_parent,
	-1, "packed_file", 8388608, 0, 0, 0, 0, PropertyPathTemplateType(0), "Packed File",
	"",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	Library_packed_file_get, nullptr, nullptr, nullptr,&RNA_PackedFile
};
PropertyRNA &rna_Library_packed_file = reinterpret_cast<PropertyRNA &>(rna_Library_packed_file_);

static int rna_Library_version_default[3] = {
	0,
	0,
	0
};

static IntPropertyRNA rna_Library_version_ = {
	{&rna_Library_needs_liboverride_resync, &rna_Library_packed_file,
	-1, "version", 8388610, 0, 0, 0, 0, PropertyPathTemplateType(0), "Version",
	"Version of Blender the library .blend was saved with",
	0, "*",
	PROP_INT, PropertySubType(int(PROP_XYZ) | int(PROP_UNIT_NONE)), nullptr, 1, {3, 0, 0}, 3,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	nullptr, nullptr, Library_version_get, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
	PROP_SCALE_LINEAR, 0, INT_MAX, 0, INT_MAX, 1, nullptr, nullptr, 0, rna_Library_version_default
};
PropertyRNA &rna_Library_version = reinterpret_cast<PropertyRNA &>(rna_Library_version_);

static BoolPropertyRNA rna_Library_needs_liboverride_resync_ = {
	{&rna_Library_is_editable, &rna_Library_version,
	-1, "needs_liboverride_resync", 3, 0, 0, 0, 0, PropertyPathTemplateType(0), "Library Overrides Need resync",
	"True if this library contains library overrides that are linked in current blendfile, and that had to be recursively resynced on load (it is recommended to open and re-save that library blendfile then)",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	Library_needs_liboverride_resync_get, Library_needs_liboverride_resync_set, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_Library_needs_liboverride_resync = reinterpret_cast<PropertyRNA &>(rna_Library_needs_liboverride_resync_);

static BoolPropertyRNA rna_Library_is_editable_ = {
	{nullptr, &rna_Library_needs_liboverride_resync,
	-1, "is_editable", 2, 0, 0, 0, 0, PropertyPathTemplateType(0), "Editable",
	"Datablocks in this library are editable despite being linked. Used by brush assets and their dependencies.",
	0, "*",
	PROP_BOOLEAN, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	Library_is_editable_get, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 0, nullptr
};
PropertyRNA &rna_Library_is_editable = reinterpret_cast<PropertyRNA &>(rna_Library_is_editable_);

FunctionRNA rna_Library_reload_func = {
	{nullptr, nullptr,
	nullptr,
	{nullptr, nullptr}},
	"reload", 24, "Reload this library and all its linked data-blocks",
	Library_reload_call,
	nullptr
};

StructRNA RNA_Library = {
	{(ContainerRNA *)&RNA_LibraryWeakReference, (ContainerRNA *)&RNA_IDMaterials,
	nullptr,
	{&rna_Library_filepath, &rna_Library_is_editable}},
	"Library", nullptr, nullptr, 519, nullptr, "Library",
	"External .blend file from which data is linked",
	"*", 212,
	&rna_ID_name, &rna_ID_rna_properties,
	&RNA_ID,
	nullptr,
	rna_ID_refine,
	nullptr,
	nullptr,
	nullptr,
	rna_ID_instance,
	rna_ID_idprops,
	{(FunctionRNA *)&rna_Library_reload_func, (FunctionRNA *)&rna_Library_reload_func}
};

/* LibraryWeakReference */
static CollectionPropertyRNA rna_LibraryWeakReference_rna_properties_ = {
	{&rna_LibraryWeakReference_rna_type, nullptr,
	-1, "rna_properties", 0, 0, 0, 1, 0, PropertyPathTemplateType(0), "Properties",
	"RNA property collection",
	0, "*",
	PROP_COLLECTION, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	LibraryWeakReference_rna_properties_begin, LibraryWeakReference_rna_properties_next, LibraryWeakReference_rna_properties_end, LibraryWeakReference_rna_properties_get, nullptr, nullptr, LibraryWeakReference_rna_properties_lookup_string, nullptr, &RNA_Property
};
PropertyRNA &rna_LibraryWeakReference_rna_properties = reinterpret_cast<PropertyRNA &>(rna_LibraryWeakReference_rna_properties_);

static PointerPropertyRNA rna_LibraryWeakReference_rna_type_ = {
	{&rna_LibraryWeakReference_filepath, &rna_LibraryWeakReference_rna_properties,
	-1, "rna_type", 8912896, 0, 0, 0, 0, PropertyPathTemplateType(0), "RNA",
	"RNA type definition",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	LibraryWeakReference_rna_type_get, nullptr, nullptr, nullptr,&RNA_Struct
};
PropertyRNA &rna_LibraryWeakReference_rna_type = reinterpret_cast<PropertyRNA &>(rna_LibraryWeakReference_rna_type_);

static StringPropertyRNA rna_LibraryWeakReference_filepath_ = {
	{&rna_LibraryWeakReference_id_name, &rna_LibraryWeakReference_rna_type,
	-1, "filepath", 294913, 0, 0, 0, 0, PropertyPathTemplateType(0), "File Path",
	"Path to the library .blend file",
	0, "*",
	PROP_STRING, PropertySubType(int(PROP_FILEPATH) | int(PROP_UNIT_NONE)), nullptr, 0, {1024, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	LibraryWeakReference_filepath_get, LibraryWeakReference_filepath_length, LibraryWeakReference_filepath_set, nullptr, nullptr, nullptr, nullptr, eStringPropertySearchFlag(0), nullptr, 1024, ""
};
PropertyRNA &rna_LibraryWeakReference_filepath = reinterpret_cast<PropertyRNA &>(rna_LibraryWeakReference_filepath_);

static StringPropertyRNA rna_LibraryWeakReference_id_name_ = {
	{nullptr, &rna_LibraryWeakReference_filepath,
	-1, "id_name", 262145, 0, 0, 0, 0, PropertyPathTemplateType(0), "ID name",
	"Full ID name in the library .blend file (including the two leading \'id type\' chars)",
	0, "*",
	PROP_STRING, PropertySubType(int(PROP_FILEPATH) | int(PROP_UNIT_NONE)), nullptr, 0, {66, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	LibraryWeakReference_id_name_get, LibraryWeakReference_id_name_length, LibraryWeakReference_id_name_set, nullptr, nullptr, nullptr, nullptr, eStringPropertySearchFlag(0), nullptr, 66, ""
};
PropertyRNA &rna_LibraryWeakReference_id_name = reinterpret_cast<PropertyRNA &>(rna_LibraryWeakReference_id_name_);

StructRNA RNA_LibraryWeakReference = {
	{(ContainerRNA *)&RNA_IDPropertyWrapPtr, (ContainerRNA *)&RNA_Library,
	nullptr,
	{&rna_LibraryWeakReference_rna_properties, &rna_LibraryWeakReference_id_name}},
	"LibraryWeakReference", nullptr, nullptr, 516, nullptr, "LibraryWeakReference",
	"Read-only external reference to a linked data-block and its library file",
	"*", 61,
	nullptr, &rna_LibraryWeakReference_rna_properties,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	{nullptr, nullptr}
};

/* IDPropertyWrapPtr */
static CollectionPropertyRNA rna_IDPropertyWrapPtr_rna_properties_ = {
	{&rna_IDPropertyWrapPtr_rna_type, nullptr,
	-1, "rna_properties", 0, 0, 0, 1, 0, PropertyPathTemplateType(0), "Properties",
	"RNA property collection",
	0, "*",
	PROP_COLLECTION, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDPropertyWrapPtr_rna_properties_begin, IDPropertyWrapPtr_rna_properties_next, IDPropertyWrapPtr_rna_properties_end, IDPropertyWrapPtr_rna_properties_get, nullptr, nullptr, IDPropertyWrapPtr_rna_properties_lookup_string, nullptr, &RNA_Property
};
PropertyRNA &rna_IDPropertyWrapPtr_rna_properties = reinterpret_cast<PropertyRNA &>(rna_IDPropertyWrapPtr_rna_properties_);

static PointerPropertyRNA rna_IDPropertyWrapPtr_rna_type_ = {
	{nullptr, &rna_IDPropertyWrapPtr_rna_properties,
	-1, "rna_type", 8912896, 0, 0, 0, 0, PropertyPathTemplateType(0), "RNA",
	"RNA type definition",
	0, "*",
	PROP_POINTER, PropertySubType(int(PROP_NONE) | int(PROP_UNIT_NONE)), nullptr, 0, {0, 0, 0}, 0,
	nullptr, 0, nullptr, nullptr, nullptr, nullptr, nullptr,
	0, PROP_RAW_UNSET, nullptr},
	IDPropertyWrapPtr_rna_type_get, nullptr, nullptr, nullptr,&RNA_Struct
};
PropertyRNA &rna_IDPropertyWrapPtr_rna_type = reinterpret_cast<PropertyRNA &>(rna_IDPropertyWrapPtr_rna_type_);

StructRNA RNA_IDPropertyWrapPtr = {
	{(ContainerRNA *)&RNA_Texture, (ContainerRNA *)&RNA_LibraryWeakReference,
	nullptr,
	{&rna_IDPropertyWrapPtr_rna_properties, &rna_IDPropertyWrapPtr_rna_type}},
	"IDPropertyWrapPtr", nullptr, nullptr, 644, nullptr, "IDPropertyWrapPtr",
	"",
	"*", 61,
	nullptr, &rna_IDPropertyWrapPtr_rna_properties,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	nullptr,
	rna_IDPropertyWrapPtr_idprops,
	{nullptr, nullptr}
};

#include "rna_define.cc"

BlenderRNA BLENDER_RNA = {
	/*structs*/ {&RNA_Struct, &RNA_XrEventData},
	/*structs_map*/ nullptr,
	/*structs_len*/ 0,
};

