/* proton.c generated by valac 0.56.19, the Vala compiler
 * generated from proton.vala, do not modify */

#include <glib-object.h>
#include "protonplus_core.h"
#include <glib.h>
#include <glib/gi18n-lib.h>
#include <stdlib.h>
#include <string.h>

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif

#define PROTON_PLUS_MODELS_PROVIDERS_TYPE_PROTON_DEFINITIONS (proton_plus_models_providers_proton_definitions_get_type ())
#define PROTON_PLUS_MODELS_PROVIDERS_PROTON_DEFINITIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_MODELS_PROVIDERS_TYPE_PROTON_DEFINITIONS, ProtonPlusModelsProvidersProtonDefinitions))
#define PROTON_PLUS_MODELS_PROVIDERS_PROTON_DEFINITIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_MODELS_PROVIDERS_TYPE_PROTON_DEFINITIONS, ProtonPlusModelsProvidersProtonDefinitionsClass))
#define PROTON_PLUS_MODELS_PROVIDERS_IS_PROTON_DEFINITIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_MODELS_PROVIDERS_TYPE_PROTON_DEFINITIONS))
#define PROTON_PLUS_MODELS_PROVIDERS_IS_PROTON_DEFINITIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_MODELS_PROVIDERS_TYPE_PROTON_DEFINITIONS))
#define PROTON_PLUS_MODELS_PROVIDERS_PROTON_DEFINITIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_MODELS_PROVIDERS_TYPE_PROTON_DEFINITIONS, ProtonPlusModelsProvidersProtonDefinitionsClass))

typedef struct _ProtonPlusModelsProvidersProtonDefinitions ProtonPlusModelsProvidersProtonDefinitions;
typedef struct _ProtonPlusModelsProvidersProtonDefinitionsClass ProtonPlusModelsProvidersProtonDefinitionsClass;
typedef struct _ProtonPlusModelsProvidersProtonDefinitionsPrivate ProtonPlusModelsProvidersProtonDefinitionsPrivate;
enum  {
	PROTON_PLUS_MODELS_PROVIDERS_PROTON_DEFINITIONS_0_PROPERTY,
	PROTON_PLUS_MODELS_PROVIDERS_PROTON_DEFINITIONS_NUM_PROPERTIES
};
static GParamSpec* proton_plus_models_providers_proton_definitions_properties[PROTON_PLUS_MODELS_PROVIDERS_PROTON_DEFINITIONS_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

struct _ProtonPlusModelsProvidersProtonDefinitions {
	GObject parent_instance;
	ProtonPlusModelsProvidersProtonDefinitionsPrivate * priv;
};

struct _ProtonPlusModelsProvidersProtonDefinitionsClass {
	GObjectClass parent_class;
};

static gpointer proton_plus_models_providers_proton_definitions_parent_class = NULL;

VALA_EXTERN GType proton_plus_models_providers_proton_definitions_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ProtonPlusModelsProvidersProviderDefinition** proton_plus_models_providers_proton_definitions_create (gint* result_length1);
VALA_EXTERN ProtonPlusModelsProvidersProtonDefinitions* proton_plus_models_providers_proton_definitions_new (void);
VALA_EXTERN ProtonPlusModelsProvidersProtonDefinitions* proton_plus_models_providers_proton_definitions_construct (GType object_type);
static GType proton_plus_models_providers_proton_definitions_get_type_once (void);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);
static inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

ProtonPlusModelsProvidersProviderDefinition**
proton_plus_models_providers_proton_definitions_create (gint* result_length1)
{
	ProtonPlusModelsVariantCompatibility* _tmp0_;
	ProtonPlusModelsVariantCompatibility* _tmp1_;
	gchar* _tmp2_;
	gchar** _tmp3_;
	gchar** _tmp4_;
	gint _tmp4__length1;
	ProtonPlusModelsProvidersVariantDefinition* _tmp5_;
	ProtonPlusModelsVariantCompatibility* _tmp6_;
	ProtonPlusModelsVariantCompatibility* _tmp7_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp8_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp9_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp10_;
	gint _tmp10__length1;
	ProtonPlusModelsProvidersInstallLayout* _tmp11_;
	ProtonPlusModelsProvidersInstallLayout* _tmp12_;
	ProtonPlusModelsProvidersInstallLayout* _tmp13_;
	ProtonPlusModelsProvidersInstallLayout* _tmp14_;
	ProtonPlusModelsProvidersInstallLayout** _tmp15_;
	ProtonPlusModelsProvidersInstallLayout** _tmp16_;
	gint _tmp16__length1;
	ProtonPlusModelsProvidersProviderDefinition* _tmp17_;
	ProtonPlusModelsVariantCompatibility* _tmp18_;
	ProtonPlusModelsVariantCompatibility* _tmp19_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp20_;
	ProtonPlusModelsVariantCompatibility* _tmp21_;
	ProtonPlusModelsVariantCompatibility* _tmp22_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp23_;
	ProtonPlusModelsVariantCompatibility* _tmp24_;
	ProtonPlusModelsVariantCompatibility* _tmp25_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp26_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp27_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp28_;
	gint _tmp28__length1;
	ProtonPlusModelsProvidersInstallLayout* _tmp29_;
	ProtonPlusModelsProvidersInstallLayout** _tmp30_;
	ProtonPlusModelsProvidersInstallLayout** _tmp31_;
	gint _tmp31__length1;
	ProtonPlusModelsProvidersProviderDefinition* _tmp32_;
	ProtonPlusModelsVariantCompatibility* _tmp33_;
	ProtonPlusModelsVariantCompatibility* _tmp34_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp35_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp36_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp37_;
	gint _tmp37__length1;
	ProtonPlusModelsProvidersInstallLayout* _tmp38_;
	ProtonPlusModelsProvidersInstallLayout** _tmp39_;
	ProtonPlusModelsProvidersInstallLayout** _tmp40_;
	gint _tmp40__length1;
	gchar* _tmp41_;
	gchar** _tmp42_;
	gchar** _tmp43_;
	gint _tmp43__length1;
	ProtonPlusModelsProvidersProviderDefinition* _tmp44_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp45_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp46_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp47_;
	gint _tmp47__length1;
	ProtonPlusModelsProvidersInstallLayout* _tmp48_;
	ProtonPlusModelsProvidersInstallLayout** _tmp49_;
	ProtonPlusModelsProvidersInstallLayout** _tmp50_;
	gint _tmp50__length1;
	ProtonPlusModelsProvidersProviderDefinition* _tmp51_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp52_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp53_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp54_;
	gint _tmp54__length1;
	ProtonPlusModelsProvidersInstallLayout* _tmp55_;
	ProtonPlusModelsProvidersInstallLayout** _tmp56_;
	ProtonPlusModelsProvidersInstallLayout** _tmp57_;
	gint _tmp57__length1;
	ProtonPlusModelsProvidersProviderDefinition* _tmp58_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp59_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp60_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp61_;
	gint _tmp61__length1;
	ProtonPlusModelsProvidersInstallLayout* _tmp62_;
	ProtonPlusModelsProvidersInstallLayout** _tmp63_;
	ProtonPlusModelsProvidersInstallLayout** _tmp64_;
	gint _tmp64__length1;
	ProtonPlusModelsProvidersProviderDefinition* _tmp65_;
	ProtonPlusModelsVariantCompatibility* _tmp66_;
	ProtonPlusModelsVariantCompatibility* _tmp67_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp68_;
	ProtonPlusModelsVariantCompatibility* _tmp69_;
	ProtonPlusModelsVariantCompatibility* _tmp70_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp71_;
	ProtonPlusModelsVariantCompatibility* _tmp72_;
	ProtonPlusModelsVariantCompatibility* _tmp73_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp74_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp75_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp76_;
	gint _tmp76__length1;
	ProtonPlusModelsProvidersInstallLayout* _tmp77_;
	ProtonPlusModelsProvidersInstallLayout** _tmp78_;
	ProtonPlusModelsProvidersInstallLayout** _tmp79_;
	gint _tmp79__length1;
	gchar* _tmp80_;
	gchar** _tmp81_;
	gchar** _tmp82_;
	gint _tmp82__length1;
	ProtonPlusModelsProvidersProviderDefinition* _tmp83_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp84_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp85_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp86_;
	gint _tmp86__length1;
	ProtonPlusModelsProvidersInstallLayout* _tmp87_;
	ProtonPlusModelsProvidersInstallLayout** _tmp88_;
	ProtonPlusModelsProvidersInstallLayout** _tmp89_;
	gint _tmp89__length1;
	ProtonPlusModelsProvidersProviderDefinition* _tmp90_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp91_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp92_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp93_;
	gint _tmp93__length1;
	ProtonPlusModelsProvidersInstallLayout* _tmp94_;
	ProtonPlusModelsProvidersInstallLayout** _tmp95_;
	ProtonPlusModelsProvidersInstallLayout** _tmp96_;
	gint _tmp96__length1;
	ProtonPlusModelsProvidersProviderDefinition* _tmp97_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp98_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp99_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp100_;
	gint _tmp100__length1;
	ProtonPlusModelsProvidersInstallLayout* _tmp101_;
	ProtonPlusModelsProvidersInstallLayout** _tmp102_;
	ProtonPlusModelsProvidersInstallLayout** _tmp103_;
	gint _tmp103__length1;
	ProtonPlusModelsProvidersProviderDefinition* _tmp104_;
	ProtonPlusModelsProvidersProviderDefinition** _tmp105_;
	ProtonPlusModelsProvidersProviderDefinition** _tmp106_;
	gint _tmp106__length1;
	ProtonPlusModelsProvidersProviderDefinition** _tmp107_;
	gint _tmp107__length1;
	ProtonPlusModelsProvidersProviderDefinition** result;
	_tmp0_ = proton_plus_models_variant_compatibility_for_x86_64_level (PROTON_PLUS_MODELS_X86_64LEVEL_BASELINE);
	_tmp1_ = _tmp0_;
	_tmp2_ = g_strdup ("$release_name");
	_tmp3_ = g_new0 (gchar*, 1 + 1);
	_tmp3_[0] = _tmp2_;
	_tmp4_ = _tmp3_;
	_tmp4__length1 = 1;
	_tmp5_ = proton_plus_models_providers_variant_definition_new ("x86", "x86", "$release_name-x86_64", TRUE, _tmp1_, _tmp4_, 1);
	_tmp6_ = proton_plus_models_variant_compatibility_for_aarch64_level (PROTON_PLUS_MODELS_AARCH64_LEVEL_V8_1);
	_tmp7_ = _tmp6_;
	_tmp8_ = proton_plus_models_providers_variant_definition_new ("aarch64", "aarch64", "$release_name-aarch64", FALSE, _tmp7_, NULL, 0);
	_tmp9_ = g_new0 (ProtonPlusModelsProvidersVariantDefinition*, 2 + 1);
	_tmp9_[0] = _tmp5_;
	_tmp9_[1] = _tmp8_;
	_tmp10_ = _tmp9_;
	_tmp10__length1 = 2;
	_tmp11_ = proton_plus_models_providers_install_layout_template ("default", "$release_name");
	_tmp12_ = proton_plus_models_providers_install_layout_conditional ("steam", ".", "Proton-$release_name", "$release_name");
	_tmp13_ = proton_plus_models_providers_install_layout_lowercase ("bottles", "$release_name");
	_tmp14_ = proton_plus_models_providers_install_layout_template ("heroic", "Proton-$release_name");
	_tmp15_ = g_new0 (ProtonPlusModelsProvidersInstallLayout*, 4 + 1);
	_tmp15_[0] = _tmp11_;
	_tmp15_[1] = _tmp12_;
	_tmp15_[2] = _tmp13_;
	_tmp15_[3] = _tmp14_;
	_tmp16_ = _tmp15_;
	_tmp16__length1 = 4;
	_tmp17_ = proton_plus_models_providers_provider_definition_new (PROTON_PLUS_MODELS_PROVIDERS_CATEGORY_PROTON, PROTON_PLUS_MODELS_PROVIDERS_SOURCE_TYPE_GITHUB, "proton-ge", "Proton-GE", N_ ("Steam compatibility tool for running Windows games with improvements o" \
"ver Valve's default Proton."), "https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases", "https://github.com/GloriousEggroll/proton-ge-custom", 2, _tmp10_, 2, _tmp16_, 4, NULL, 0, NULL, 0, "", FALSE, "", PROTON_PLUS_MODELS_PROVIDERS_ARCHIVE_INSTALL_REQUIREMENT_STANDARD, FALSE, NULL, 0);
	_tmp18_ = proton_plus_models_variant_compatibility_for_x86_64_level (PROTON_PLUS_MODELS_X86_64LEVEL_BASELINE);
	_tmp19_ = _tmp18_;
	_tmp20_ = proton_plus_models_providers_variant_definition_new ("x86-64", "x86_64", "proton-$tag_name-x86_64", TRUE, _tmp19_, NULL, 0);
	_tmp21_ = proton_plus_models_variant_compatibility_for_x86_64_level (PROTON_PLUS_MODELS_X86_64LEVEL_V3);
	_tmp22_ = _tmp21_;
	_tmp23_ = proton_plus_models_providers_variant_definition_new ("x86-64-v3", "x86_64_v3", "proton-$tag_name-x86_64_v3", FALSE, _tmp22_, NULL, 0);
	_tmp24_ = proton_plus_models_variant_compatibility_for_aarch64_level (PROTON_PLUS_MODELS_AARCH64_LEVEL_V8_1);
	_tmp25_ = _tmp24_;
	_tmp26_ = proton_plus_models_providers_variant_definition_new ("arm64", "arm64", "proton-$tag_name-arm64", FALSE, _tmp25_, NULL, 0);
	_tmp27_ = g_new0 (ProtonPlusModelsProvidersVariantDefinition*, 3 + 1);
	_tmp27_[0] = _tmp20_;
	_tmp27_[1] = _tmp23_;
	_tmp27_[2] = _tmp26_;
	_tmp28_ = _tmp27_;
	_tmp28__length1 = 3;
	_tmp29_ = proton_plus_models_providers_install_layout_template ("default", "$release_name");
	_tmp30_ = g_new0 (ProtonPlusModelsProvidersInstallLayout*, 1 + 1);
	_tmp30_[0] = _tmp29_;
	_tmp31_ = _tmp30_;
	_tmp31__length1 = 1;
	_tmp32_ = proton_plus_models_providers_provider_definition_new (PROTON_PLUS_MODELS_PROVIDERS_CATEGORY_PROTON, PROTON_PLUS_MODELS_PROVIDERS_SOURCE_TYPE_GITHUB, "proton-cachyos", "Proton-CachyOS", N_ ("Steam compatibility tool from the CachyOS Linux distribution for runni" \
"ng Windows games with improvements over Valve's default Proton."), "https://api.github.com/repos/CachyOS/proton-cachyos/releases", "https://github.com/CachyOS/proton-cachyos", 1, _tmp28_, 3, _tmp31_, 1, NULL, 0, NULL, 0, N_ ("Recommended"), FALSE, "", PROTON_PLUS_MODELS_PROVIDERS_ARCHIVE_INSTALL_REQUIREMENT_STANDARD, FALSE, NULL, 0);
	_tmp33_ = proton_plus_models_variant_compatibility_for_x86_64_level (PROTON_PLUS_MODELS_X86_64LEVEL_BASELINE);
	_tmp34_ = _tmp33_;
	_tmp35_ = proton_plus_models_providers_variant_definition_new ("x86-64", "x86_64", "$tag_name-x86_64", TRUE, _tmp34_, NULL, 0);
	_tmp36_ = g_new0 (ProtonPlusModelsProvidersVariantDefinition*, 1 + 1);
	_tmp36_[0] = _tmp35_;
	_tmp37_ = _tmp36_;
	_tmp37__length1 = 1;
	_tmp38_ = proton_plus_models_providers_install_layout_template ("default", "$release_name");
	_tmp39_ = g_new0 (ProtonPlusModelsProvidersInstallLayout*, 1 + 1);
	_tmp39_[0] = _tmp38_;
	_tmp40_ = _tmp39_;
	_tmp40__length1 = 1;
	_tmp41_ = g_strdup ("https://dawn.wine/api/v1/repos/dawn-winery/dwproton/releases");
	_tmp42_ = g_new0 (gchar*, 1 + 1);
	_tmp42_[0] = _tmp41_;
	_tmp43_ = _tmp42_;
	_tmp43__length1 = 1;
	_tmp44_ = proton_plus_models_providers_provider_definition_new (PROTON_PLUS_MODELS_PROVIDERS_CATEGORY_PROTON, PROTON_PLUS_MODELS_PROVIDERS_SOURCE_TYPE_GITHUB, "dw-proton", "DW-Proton", N_ ("Dawn Winery's custom Proton fork with fixes for various games :xdd:"), "https://api.github.com/repos/dawn-winery/dwproton-mirror/releases", "https://github.com/dawn-winery/dwproton-mirror", 3, _tmp37_, 1, _tmp40_, 1, NULL, 0, NULL, 0, "", FALSE, "", PROTON_PLUS_MODELS_PROVIDERS_ARCHIVE_INSTALL_REQUIREMENT_STANDARD, TRUE, _tmp43_, 1);
	_tmp45_ = proton_plus_models_providers_variant_definition_new ("standard", "default", "$tag_name.tar.gz", TRUE, NULL, NULL, 0);
	_tmp46_ = g_new0 (ProtonPlusModelsProvidersVariantDefinition*, 1 + 1);
	_tmp46_[0] = _tmp45_;
	_tmp47_ = _tmp46_;
	_tmp47__length1 = 1;
	_tmp48_ = proton_plus_models_providers_install_layout_template ("default", "$release_name");
	_tmp49_ = g_new0 (ProtonPlusModelsProvidersInstallLayout*, 1 + 1);
	_tmp49_[0] = _tmp48_;
	_tmp50_ = _tmp49_;
	_tmp50__length1 = 1;
	_tmp51_ = proton_plus_models_providers_provider_definition_new (PROTON_PLUS_MODELS_PROVIDERS_CATEGORY_PROTON, PROTON_PLUS_MODELS_PROVIDERS_SOURCE_TYPE_GITHUB, "proton-ge-rtsp", "Proton-GE RTSP", N_ ("Steam compatibility tool based on Proton-GE with additional patches to" \
" improve RTSP codecs for VRChat."), "https://api.github.com/repos/SpookySkeletons/proton-ge-rtsp/releases", "https://github.com/SpookySkeletons/proton-ge-rtsp", 4, _tmp47_, 1, _tmp50_, 1, NULL, 0, NULL, 0, "", FALSE, "", PROTON_PLUS_MODELS_PROVIDERS_ARCHIVE_INSTALL_REQUIREMENT_STANDARD, FALSE, NULL, 0);
	_tmp52_ = proton_plus_models_providers_variant_definition_new ("standard", "default", "$title-$release_name", TRUE, NULL, NULL, 0);
	_tmp53_ = g_new0 (ProtonPlusModelsProvidersVariantDefinition*, 1 + 1);
	_tmp53_[0] = _tmp52_;
	_tmp54_ = _tmp53_;
	_tmp54__length1 = 1;
	_tmp55_ = proton_plus_models_providers_install_layout_template ("default", "$title-$release_name");
	_tmp56_ = g_new0 (ProtonPlusModelsProvidersInstallLayout*, 1 + 1);
	_tmp56_[0] = _tmp55_;
	_tmp57_ = _tmp56_;
	_tmp57__length1 = 1;
	_tmp58_ = proton_plus_models_providers_provider_definition_new (PROTON_PLUS_MODELS_PROVIDERS_CATEGORY_PROTON, PROTON_PLUS_MODELS_PROVIDERS_SOURCE_TYPE_GITHUB_ACTIONS, "proton-tkg", "Proton-Tkg", N_ ("Custom Proton build for running Windows games, based on Wine-tkg."), "https://api.github.com/repos/Frogging-Family/wine-tkg-git/actions/work" \
"flows/proton-valvexbe-sniper.yml/runs", "https://github.com/Frogging-Family/wine-tkg-git", 5, _tmp54_, 1, _tmp57_, 1, NULL, 0, NULL, 0, "", FALSE, "https://nightly.link/Frogging-Family/wine-tkg-git/actions/runs/{id}/pr" \
"oton-tkg-build.zip", PROTON_PLUS_MODELS_PROVIDERS_ARCHIVE_INSTALL_REQUIREMENT_NESTED_ARCHIVE, TRUE, NULL, 0);
	_tmp59_ = proton_plus_models_providers_variant_definition_new ("standard", "default", "proton-$release_name", TRUE, NULL, NULL, 0);
	_tmp60_ = g_new0 (ProtonPlusModelsProvidersVariantDefinition*, 1 + 1);
	_tmp60_[0] = _tmp59_;
	_tmp61_ = _tmp60_;
	_tmp61__length1 = 1;
	_tmp62_ = proton_plus_models_providers_install_layout_template ("default", "$release_name");
	_tmp63_ = g_new0 (ProtonPlusModelsProvidersInstallLayout*, 1 + 1);
	_tmp63_[0] = _tmp62_;
	_tmp64_ = _tmp63_;
	_tmp64__length1 = 1;
	_tmp65_ = proton_plus_models_providers_provider_definition_new (PROTON_PLUS_MODELS_PROVIDERS_CATEGORY_PROTON, PROTON_PLUS_MODELS_PROVIDERS_SOURCE_TYPE_GITHUB, "proton-em", "Proton-EM", N_ ("Steam compatibility tool for running Windows games with improvements o" \
"ver Valve's default Proton. " "By Etaash Mathamsetty, adding FSR4 support and Wine Wayland tweaks."), "https://api.github.com/repos/Etaash-mathamsetty/Proton/releases", "https://github.com/Etaash-mathamsetty/Proton", 6, _tmp61_, 1, _tmp64_, 1, NULL, 0, NULL, 0, "", FALSE, "", PROTON_PLUS_MODELS_PROVIDERS_ARCHIVE_INSTALL_REQUIREMENT_STANDARD, TRUE, NULL, 0);
	_tmp66_ = proton_plus_models_variant_compatibility_for_x86_64_level (PROTON_PLUS_MODELS_X86_64LEVEL_BASELINE);
	_tmp67_ = _tmp66_;
	_tmp68_ = proton_plus_models_providers_variant_definition_new ("x86-64", "x86_64", "proton-$tag_name-x86_64", TRUE, _tmp67_, NULL, 0);
	_tmp69_ = proton_plus_models_variant_compatibility_for_x86_64_level (PROTON_PLUS_MODELS_X86_64LEVEL_V3);
	_tmp70_ = _tmp69_;
	_tmp71_ = proton_plus_models_providers_variant_definition_new ("x86-64-v3", "x86_64_v3", "proton-$tag_name-x86_64_v3", FALSE, _tmp70_, NULL, 0);
	_tmp72_ = proton_plus_models_variant_compatibility_for_x86_64_level (PROTON_PLUS_MODELS_X86_64LEVEL_BASELINE);
	_tmp73_ = _tmp72_;
	_tmp74_ = proton_plus_models_providers_variant_definition_new ("x86-64-wow64", "x86_64_wow64", "proton-$tag_name-x86_64_wow64", FALSE, _tmp73_, NULL, 0);
	_tmp75_ = g_new0 (ProtonPlusModelsProvidersVariantDefinition*, 3 + 1);
	_tmp75_[0] = _tmp68_;
	_tmp75_[1] = _tmp71_;
	_tmp75_[2] = _tmp74_;
	_tmp76_ = _tmp75_;
	_tmp76__length1 = 3;
	_tmp77_ = proton_plus_models_providers_install_layout_template ("default", "$release_name");
	_tmp78_ = g_new0 (ProtonPlusModelsProvidersInstallLayout*, 1 + 1);
	_tmp78_[0] = _tmp77_;
	_tmp79_ = _tmp78_;
	_tmp79__length1 = 1;
	_tmp80_ = g_strdup ("beta");
	_tmp81_ = g_new0 (gchar*, 1 + 1);
	_tmp81_[0] = _tmp80_;
	_tmp82_ = _tmp81_;
	_tmp82__length1 = 1;
	_tmp83_ = proton_plus_models_providers_provider_definition_new (PROTON_PLUS_MODELS_PROVIDERS_CATEGORY_PROTON, PROTON_PLUS_MODELS_PROVIDERS_SOURCE_TYPE_GITHUB, "proton-cachyos-wineland", "Proton-CachyOS Wineland", N_ ("Steam compatibility tool based on CachyOS Proton with Wayland improvem" \
"ents, especially for Windows launcher applications."), "https://api.github.com/repos/nanomatters/proton-cachyos/releases", "https://github.com/nanomatters/proton-cachyos", 7, _tmp76_, 3, _tmp79_, 1, NULL, 0, _tmp82_, 1, "", FALSE, "", PROTON_PLUS_MODELS_PROVIDERS_ARCHIVE_INSTALL_REQUIREMENT_STANDARD, FALSE, NULL, 0);
	_tmp84_ = proton_plus_models_providers_variant_definition_new ("standard", "default", "luxtorpeda-$release_name", TRUE, NULL, NULL, 0);
	_tmp85_ = g_new0 (ProtonPlusModelsProvidersVariantDefinition*, 1 + 1);
	_tmp85_[0] = _tmp84_;
	_tmp86_ = _tmp85_;
	_tmp86__length1 = 1;
	_tmp87_ = proton_plus_models_providers_install_layout_template ("default", "$title $release_name");
	_tmp88_ = g_new0 (ProtonPlusModelsProvidersInstallLayout*, 1 + 1);
	_tmp88_[0] = _tmp87_;
	_tmp89_ = _tmp88_;
	_tmp89__length1 = 1;
	_tmp90_ = proton_plus_models_providers_provider_definition_new (PROTON_PLUS_MODELS_PROVIDERS_CATEGORY_PROTON, PROTON_PLUS_MODELS_PROVIDERS_SOURCE_TYPE_FORGEJO, "luxtorpeda", "Luxtorpeda", N_ ("Luxtorpeda provides Linux-native game engines for certain Windows-only" \
" games."), "https://codeberg.org/api/v1/repos/luxtorpeda/luxtorpeda/releases", "https://codeberg.org/luxtorpeda/luxtorpeda", 8, _tmp86_, 1, _tmp89_, 1, NULL, 0, NULL, 0, "", FALSE, "", PROTON_PLUS_MODELS_PROVIDERS_ARCHIVE_INSTALL_REQUIREMENT_STANDARD, TRUE, NULL, 0);
	_tmp91_ = proton_plus_models_providers_variant_definition_new ("standard", "default", "boxtron.tar.xz", TRUE, NULL, NULL, 0);
	_tmp92_ = g_new0 (ProtonPlusModelsProvidersVariantDefinition*, 1 + 1);
	_tmp92_[0] = _tmp91_;
	_tmp93_ = _tmp92_;
	_tmp93__length1 = 1;
	_tmp94_ = proton_plus_models_providers_install_layout_template ("default", "$title $release_name");
	_tmp95_ = g_new0 (ProtonPlusModelsProvidersInstallLayout*, 1 + 1);
	_tmp95_[0] = _tmp94_;
	_tmp96_ = _tmp95_;
	_tmp96__length1 = 1;
	_tmp97_ = proton_plus_models_providers_provider_definition_new (PROTON_PLUS_MODELS_PROVIDERS_CATEGORY_PROTON, PROTON_PLUS_MODELS_PROVIDERS_SOURCE_TYPE_GITHUB, "boxtron", "Boxtron", N_ ("Steam compatibility tool for running DOS games using DOSBox for Linux."), "https://api.github.com/repos/dreamer/boxtron/releases", "https://github.com/dreamer/boxtron", 9, _tmp93_, 1, _tmp96_, 1, NULL, 0, NULL, 0, "", TRUE, "", PROTON_PLUS_MODELS_PROVIDERS_ARCHIVE_INSTALL_REQUIREMENT_STANDARD, FALSE, NULL, 0);
	_tmp98_ = proton_plus_models_providers_variant_definition_new ("standard", "default", "roberta.tar.xz", TRUE, NULL, NULL, 0);
	_tmp99_ = g_new0 (ProtonPlusModelsProvidersVariantDefinition*, 1 + 1);
	_tmp99_[0] = _tmp98_;
	_tmp100_ = _tmp99_;
	_tmp100__length1 = 1;
	_tmp101_ = proton_plus_models_providers_install_layout_template ("default", "$title $release_name");
	_tmp102_ = g_new0 (ProtonPlusModelsProvidersInstallLayout*, 1 + 1);
	_tmp102_[0] = _tmp101_;
	_tmp103_ = _tmp102_;
	_tmp103__length1 = 1;
	_tmp104_ = proton_plus_models_providers_provider_definition_new (PROTON_PLUS_MODELS_PROVIDERS_CATEGORY_PROTON, PROTON_PLUS_MODELS_PROVIDERS_SOURCE_TYPE_GITHUB, "roberta", "Roberta", N_ ("Steam compatibility tool for running adventure games using ScummVM for" \
" Linux."), "https://api.github.com/repos/dreamer/roberta/releases", "https://github.com/dreamer/roberta", 10, _tmp100_, 1, _tmp103_, 1, NULL, 0, NULL, 0, "", TRUE, "", PROTON_PLUS_MODELS_PROVIDERS_ARCHIVE_INSTALL_REQUIREMENT_STANDARD, FALSE, NULL, 0);
	_tmp105_ = g_new0 (ProtonPlusModelsProvidersProviderDefinition*, 10 + 1);
	_tmp105_[0] = _tmp17_;
	_tmp105_[1] = _tmp32_;
	_tmp105_[2] = _tmp44_;
	_tmp105_[3] = _tmp51_;
	_tmp105_[4] = _tmp58_;
	_tmp105_[5] = _tmp65_;
	_tmp105_[6] = _tmp83_;
	_tmp105_[7] = _tmp90_;
	_tmp105_[8] = _tmp97_;
	_tmp105_[9] = _tmp104_;
	_tmp106_ = _tmp105_;
	_tmp106__length1 = 10;
	_tmp103_ = (_vala_array_free (_tmp103_, _tmp103__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp100_ = (_vala_array_free (_tmp100_, _tmp100__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp96_ = (_vala_array_free (_tmp96_, _tmp96__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp93_ = (_vala_array_free (_tmp93_, _tmp93__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp89_ = (_vala_array_free (_tmp89_, _tmp89__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp86_ = (_vala_array_free (_tmp86_, _tmp86__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp82_ = (_vala_array_free (_tmp82_, _tmp82__length1, (GDestroyNotify) g_free), NULL);
	_tmp79_ = (_vala_array_free (_tmp79_, _tmp79__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp76_ = (_vala_array_free (_tmp76_, _tmp76__length1, (GDestroyNotify) g_object_unref), NULL);
	_g_object_unref0 (_tmp73_);
	_g_object_unref0 (_tmp70_);
	_g_object_unref0 (_tmp67_);
	_tmp64_ = (_vala_array_free (_tmp64_, _tmp64__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp61_ = (_vala_array_free (_tmp61_, _tmp61__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp57_ = (_vala_array_free (_tmp57_, _tmp57__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp54_ = (_vala_array_free (_tmp54_, _tmp54__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp50_ = (_vala_array_free (_tmp50_, _tmp50__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp47_ = (_vala_array_free (_tmp47_, _tmp47__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp43_ = (_vala_array_free (_tmp43_, _tmp43__length1, (GDestroyNotify) g_free), NULL);
	_tmp40_ = (_vala_array_free (_tmp40_, _tmp40__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp37_ = (_vala_array_free (_tmp37_, _tmp37__length1, (GDestroyNotify) g_object_unref), NULL);
	_g_object_unref0 (_tmp34_);
	_tmp31_ = (_vala_array_free (_tmp31_, _tmp31__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp28_ = (_vala_array_free (_tmp28_, _tmp28__length1, (GDestroyNotify) g_object_unref), NULL);
	_g_object_unref0 (_tmp25_);
	_g_object_unref0 (_tmp22_);
	_g_object_unref0 (_tmp19_);
	_tmp16_ = (_vala_array_free (_tmp16_, _tmp16__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp10_ = (_vala_array_free (_tmp10_, _tmp10__length1, (GDestroyNotify) g_object_unref), NULL);
	_g_object_unref0 (_tmp7_);
	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_tmp1_);
	_tmp107_ = _tmp106_;
	_tmp107__length1 = _tmp106__length1;
	if (result_length1) {
		*result_length1 = _tmp107__length1;
	}
	result = _tmp107_;
	return result;
}

ProtonPlusModelsProvidersProtonDefinitions*
proton_plus_models_providers_proton_definitions_construct (GType object_type)
{
	ProtonPlusModelsProvidersProtonDefinitions * self = NULL;
	self = (ProtonPlusModelsProvidersProtonDefinitions*) g_object_new (object_type, NULL);
	return self;
}

ProtonPlusModelsProvidersProtonDefinitions*
proton_plus_models_providers_proton_definitions_new (void)
{
	return proton_plus_models_providers_proton_definitions_construct (PROTON_PLUS_MODELS_PROVIDERS_TYPE_PROTON_DEFINITIONS);
}

static void
proton_plus_models_providers_proton_definitions_class_init (ProtonPlusModelsProvidersProtonDefinitionsClass * klass,
                                                            gpointer klass_data)
{
	proton_plus_models_providers_proton_definitions_parent_class = g_type_class_peek_parent (klass);
}

static void
proton_plus_models_providers_proton_definitions_instance_init (ProtonPlusModelsProvidersProtonDefinitions * self,
                                                               gpointer klass)
{
}

static GType
proton_plus_models_providers_proton_definitions_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusModelsProvidersProtonDefinitionsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_models_providers_proton_definitions_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusModelsProvidersProtonDefinitions), 0, (GInstanceInitFunc) proton_plus_models_providers_proton_definitions_instance_init, NULL };
	GType proton_plus_models_providers_proton_definitions_type_id;
	proton_plus_models_providers_proton_definitions_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusModelsProvidersProtonDefinitions", &g_define_type_info, 0);
	return proton_plus_models_providers_proton_definitions_type_id;
}

GType
proton_plus_models_providers_proton_definitions_get_type (void)
{
	static volatile gsize proton_plus_models_providers_proton_definitions_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_models_providers_proton_definitions_type_id__once)) {
		GType proton_plus_models_providers_proton_definitions_type_id;
		proton_plus_models_providers_proton_definitions_type_id = proton_plus_models_providers_proton_definitions_get_type_once ();
		g_once_init_leave (&proton_plus_models_providers_proton_definitions_type_id__once, proton_plus_models_providers_proton_definitions_type_id);
	}
	return proton_plus_models_providers_proton_definitions_type_id__once;
}

static void
_vala_array_destroy (gpointer array,
                     gssize array_length,
                     GDestroyNotify destroy_func)
{
	if ((array != NULL) && (destroy_func != NULL)) {
		gssize i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}

static void
_vala_array_free (gpointer array,
                  gssize array_length,
                  GDestroyNotify destroy_func)
{
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}

static inline gpointer
_vala_memdup2 (gconstpointer mem,
               gsize byte_size)
{
	gpointer new_mem;
	if (mem && byte_size != 0) {
		new_mem = g_malloc (byte_size);
		memcpy (new_mem, mem, byte_size);
	} else {
		new_mem = NULL;
	}
	return new_mem;
}

