/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */

/* THIS FILE IS AUTOGENERATED BY BPFTOOL! */
#ifndef __HELLO_BPF_SKEL_H__
#define __HELLO_BPF_SKEL_H__

#include <errno.h>
#include <stdlib.h>
#include <bpf/libbpf.h>

#define BPF_SKEL_SUPPORTS_MAP_AUTO_ATTACH 1

struct hello_bpf {
	struct bpf_object_skeleton *skeleton;
	struct bpf_object *obj;
	struct {
		struct bpf_map *bss;
	} maps;
	struct {
		struct bpf_program *on_switch;
	} progs;
	struct {
		struct bpf_link *on_switch;
	} links;
	struct hello_bpf__bss {
		int ran;
	} *bss;

#ifdef __cplusplus
	static inline struct hello_bpf *open(const struct bpf_object_open_opts *opts = nullptr);
	static inline struct hello_bpf *open_and_load();
	static inline int load(struct hello_bpf *skel);
	static inline int attach(struct hello_bpf *skel);
	static inline void detach(struct hello_bpf *skel);
	static inline void destroy(struct hello_bpf *skel);
	static inline const void *elf_bytes(size_t *sz);
#endif /* __cplusplus */
};

static void
hello_bpf__destroy(struct hello_bpf *obj)
{
	if (!obj)
		return;
	if (obj->skeleton)
		bpf_object__destroy_skeleton(obj->skeleton);
	free(obj);
}

static inline int
hello_bpf__create_skeleton(struct hello_bpf *obj);

static inline struct hello_bpf *
hello_bpf__open_opts(const struct bpf_object_open_opts *opts)
{
	struct hello_bpf *obj;
	int err;

	obj = (struct hello_bpf *)calloc(1, sizeof(*obj));
	if (!obj) {
		errno = ENOMEM;
		return NULL;
	}

	err = hello_bpf__create_skeleton(obj);
	if (err)
		goto err_out;

	err = bpf_object__open_skeleton(obj->skeleton, opts);
	if (err)
		goto err_out;

	return obj;
err_out:
	hello_bpf__destroy(obj);
	errno = -err;
	return NULL;
}

static inline struct hello_bpf *
hello_bpf__open(void)
{
	return hello_bpf__open_opts(NULL);
}

static inline int
hello_bpf__load(struct hello_bpf *obj)
{
	return bpf_object__load_skeleton(obj->skeleton);
}

static inline struct hello_bpf *
hello_bpf__open_and_load(void)
{
	struct hello_bpf *obj;
	int err;

	obj = hello_bpf__open();
	if (!obj)
		return NULL;
	err = hello_bpf__load(obj);
	if (err) {
		hello_bpf__destroy(obj);
		errno = -err;
		return NULL;
	}
	return obj;
}

static inline int
hello_bpf__attach(struct hello_bpf *obj)
{
	return bpf_object__attach_skeleton(obj->skeleton);
}

static inline void
hello_bpf__detach(struct hello_bpf *obj)
{
	bpf_object__detach_skeleton(obj->skeleton);
}

static inline const void *hello_bpf__elf_bytes(size_t *sz);

static inline int
hello_bpf__create_skeleton(struct hello_bpf *obj)
{
	struct bpf_object_skeleton *s;
	struct bpf_map_skeleton *map __attribute__((unused));
	int err;

	s = (struct bpf_object_skeleton *)calloc(1, sizeof(*s));
	if (!s)	{
		err = -ENOMEM;
		goto err;
	}

	s->sz = sizeof(*s);
	s->name = "hello_bpf";
	s->obj = &obj->obj;

	/* maps */
	s->map_cnt = 1;
	s->map_skel_sz = 24;
	s->maps = (struct bpf_map_skeleton *)calloc(s->map_cnt,
			sizeof(*s->maps) > 24 ? sizeof(*s->maps) : 24);
	if (!s->maps) {
		err = -ENOMEM;
		goto err;
	}

	map = (struct bpf_map_skeleton *)((char *)s->maps + 0 * s->map_skel_sz);
	map->name = "hello_bp.bss";
	map->map = &obj->maps.bss;
	map->mmaped = (void **)&obj->bss;

	/* programs */
	s->prog_cnt = 1;
	s->prog_skel_sz = sizeof(*s->progs);
	s->progs = (struct bpf_prog_skeleton *)calloc(s->prog_cnt, s->prog_skel_sz);
	if (!s->progs) {
		err = -ENOMEM;
		goto err;
	}

	s->progs[0].name = "on_switch";
	s->progs[0].prog = &obj->progs.on_switch;
	s->progs[0].link = &obj->links.on_switch;

	s->data = hello_bpf__elf_bytes(&s->data_sz);

	obj->skeleton = s;
	return 0;
err:
	bpf_object__destroy_skeleton(s);
	return err;
}

static inline const void *hello_bpf__elf_bytes(size_t *sz)
{
	static const char data[] __attribute__((__aligned__(8))) = "\
\x7f\x45\x4c\x46\x02\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\xf7\0\x01\0\0\0\0\0\0\0\0\
\0\0\0\0\0\0\0\0\0\0\0\x58\x09\0\0\0\0\0\0\0\0\0\0\x40\0\0\0\0\0\x40\0\x1a\0\
\x01\0\x18\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xb4\x02\0\0\x01\0\0\0\x63\x21\0\0\0\
\0\0\0\xb4\0\0\0\0\0\0\0\x95\0\0\0\0\0\0\0\x47\x50\x4c\0\x01\x11\x01\x25\x25\
\x13\x05\x03\x25\x72\x17\x10\x17\x1b\x25\x11\x1b\x12\x06\x73\x17\0\0\x02\x34\0\
\x03\x25\x49\x13\x3f\x19\x3a\x0b\x3b\x0b\x02\x18\0\0\x03\x01\x01\x49\x13\0\0\
\x04\x21\0\x49\x13\x37\x0b\0\0\x05\x24\0\x03\x25\x3e\x0b\x0b\x0b\0\0\x06\x24\0\
\x03\x25\x0b\x0b\x3e\x0b\0\0\x07\x2e\x01\x11\x1b\x12\x06\x40\x18\x7a\x19\x03\
\x25\x3a\x0b\x3b\x0b\x27\x19\x49\x13\x3f\x19\0\0\x08\x05\0\x03\x25\x3a\x0b\x3b\
\x0b\x49\x13\0\0\x09\x0f\0\0\0\0\x67\0\0\0\x05\0\x01\x08\0\0\0\0\x01\0\x1d\0\
\x01\x08\0\0\0\0\0\0\0\x02\x02\x30\0\0\0\x08\0\0\0\x02\x03\x2e\0\0\0\0\x0d\x02\
\xa1\0\x03\x3a\0\0\0\x04\x3e\0\0\0\x04\0\x05\x04\x06\x01\x06\x05\x08\x07\x02\
\x06\x4d\0\0\0\0\x04\x02\xa1\x01\x05\x07\x05\x04\x07\x02\x30\0\0\0\x01\x5a\x08\
\0\x07\x4d\0\0\0\x08\x09\0\x07\x69\0\0\0\0\x09\0\x2c\0\0\0\x05\0\0\0\0\0\0\0\
\x27\0\0\0\x33\0\0\0\x7c\0\0\0\x84\0\0\0\x89\0\0\0\x9d\0\0\0\xa1\0\0\0\xa5\0\0\
\0\xaf\0\0\0\x55\x62\x75\x6e\x74\x75\x20\x63\x6c\x61\x6e\x67\x20\x76\x65\x72\
\x73\x69\x6f\x6e\x20\x32\x31\x2e\x31\x2e\x38\x20\x28\x36\x75\x62\x75\x6e\x74\
\x75\x31\x29\0\x68\x65\x6c\x6c\x6f\x2e\x62\x70\x66\x2e\x63\0\x2f\x68\x6f\x6d\
\x65\x2f\x61\x6b\x69\x72\x61\x2f\x67\x68\x71\x2f\x67\x69\x74\x68\x75\x62\x2e\
\x63\x6f\x6d\x2f\x61\x6b\x61\x77\x61\x73\x68\x69\x72\x6f\x2f\x61\x6b\x61\x77\
\x61\x73\x68\x69\x72\x6f\x2e\x63\x6f\x6d\x2f\x61\x72\x74\x69\x63\x6c\x65\x73\
\x2f\x65\x62\x70\x66\x2d\x68\x65\x6c\x6c\x6f\0\x4c\x49\x43\x45\x4e\x53\x45\0\
\x63\x68\x61\x72\0\x5f\x5f\x41\x52\x52\x41\x59\x5f\x53\x49\x5a\x45\x5f\x54\x59\
\x50\x45\x5f\x5f\0\x72\x61\x6e\0\x69\x6e\x74\0\x6f\x6e\x5f\x73\x77\x69\x74\x63\
\x68\0\x63\x74\x78\0\x1c\0\0\0\x05\0\x08\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
\0\0\0\0\0\0\x9f\xeb\x01\0\x18\0\0\0\0\0\0\0\xc4\0\0\0\xc4\0\0\0\xd3\0\0\0\0\0\
\0\0\0\0\0\x02\0\0\0\0\0\0\0\0\x01\0\0\x0d\x03\0\0\0\x01\0\0\0\x01\0\0\0\x05\0\
\0\0\0\0\0\x01\x04\0\0\0\x20\0\0\x01\x09\0\0\0\x01\0\0\x0c\x02\0\0\0\xa1\0\0\0\
\0\0\0\x0e\x03\0\0\0\x01\0\0\0\xa5\0\0\0\0\0\0\x01\x01\0\0\0\x08\0\0\x01\0\0\0\
\0\0\0\0\x03\0\0\0\0\x06\0\0\0\x08\0\0\0\x04\0\0\0\xaa\0\0\0\0\0\0\x01\x04\0\0\
\0\x20\0\0\0\xbe\0\0\0\0\0\0\x0e\x07\0\0\0\x01\0\0\0\xc6\0\0\0\x01\0\0\x0f\0\0\
\0\0\x05\0\0\0\0\0\0\0\x04\0\0\0\xcb\0\0\0\x01\0\0\x0f\0\0\0\0\x09\0\0\0\0\0\0\
\0\x04\0\0\0\0\x63\x74\x78\0\x69\x6e\x74\0\x6f\x6e\x5f\x73\x77\x69\x74\x63\x68\
\0\x74\x72\x61\x63\x65\x70\x6f\x69\x6e\x74\x2f\x73\x63\x68\x65\x64\x2f\x73\x63\
\x68\x65\x64\x5f\x73\x77\x69\x74\x63\x68\0\x2f\x68\x6f\x6d\x65\x2f\x61\x6b\x69\
\x72\x61\x2f\x67\x68\x71\x2f\x67\x69\x74\x68\x75\x62\x2e\x63\x6f\x6d\x2f\x61\
\x6b\x61\x77\x61\x73\x68\x69\x72\x6f\x2f\x61\x6b\x61\x77\x61\x73\x68\x69\x72\
\x6f\x2e\x63\x6f\x6d\x2f\x61\x72\x74\x69\x63\x6c\x65\x73\x2f\x65\x62\x70\x66\
\x2d\x68\x65\x6c\x6c\x6f\x2f\x68\x65\x6c\x6c\x6f\x2e\x62\x70\x66\x2e\x63\0\x20\
\x20\x20\x20\x72\x61\x6e\x20\x3d\x20\x31\x3b\0\x20\x20\x20\x20\x72\x65\x74\x75\
\x72\x6e\x20\x30\x3b\0\x72\x61\x6e\0\x63\x68\x61\x72\0\x5f\x5f\x41\x52\x52\x41\
\x59\x5f\x53\x49\x5a\x45\x5f\x54\x59\x50\x45\x5f\x5f\0\x4c\x49\x43\x45\x4e\x53\
\x45\0\x2e\x62\x73\x73\0\x6c\x69\x63\x65\x6e\x73\x65\0\0\x9f\xeb\x01\0\x20\0\0\
\0\0\0\0\0\x14\0\0\0\x14\0\0\0\x2c\0\0\0\x40\0\0\0\0\0\0\0\x08\0\0\0\x13\0\0\0\
\x01\0\0\0\0\0\0\0\x04\0\0\0\x10\0\0\0\x13\0\0\0\x02\0\0\0\0\0\0\0\x31\0\0\0\
\x86\0\0\0\x09\x24\0\0\x20\0\0\0\x31\0\0\0\x93\0\0\0\x05\x28\0\0\0\0\0\0\x0c\0\
\0\0\xff\xff\xff\xff\x04\0\x08\0\x08\x7c\x0b\0\x14\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
\0\x30\0\0\0\0\0\0\0\x58\0\0\0\x05\0\x08\0\x37\0\0\0\x08\x01\x01\xfb\x0e\x0d\0\
\x01\x01\x01\x01\0\0\0\x01\0\0\x01\x01\x01\x1f\x01\0\0\0\0\x03\x01\x1f\x02\x0f\
\x05\x1e\x01\x49\0\0\0\0\x05\x15\xf5\xdb\x52\x97\x9c\xf3\x46\x5b\x4c\x61\xe5\
\x21\x89\xac\x04\0\x05\x09\x0a\0\x09\x02\0\0\0\0\0\0\0\0\x1a\x05\x05\x4b\x02\
\x02\0\x01\x01\x2f\x68\x6f\x6d\x65\x2f\x61\x6b\x69\x72\x61\x2f\x67\x68\x71\x2f\
\x67\x69\x74\x68\x75\x62\x2e\x63\x6f\x6d\x2f\x61\x6b\x61\x77\x61\x73\x68\x69\
\x72\x6f\x2f\x61\x6b\x61\x77\x61\x73\x68\x69\x72\x6f\x2e\x63\x6f\x6d\x2f\x61\
\x72\x74\x69\x63\x6c\x65\x73\x2f\x65\x62\x70\x66\x2d\x68\x65\x6c\x6c\x6f\0\x68\
\x65\x6c\x6c\x6f\x2e\x62\x70\x66\x2e\x63\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
\0\0\0\0\0\0\0\0\0\0\0\0\0\xe0\0\0\0\x04\0\xf1\xff\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
\0\0\0\0\0\0\x03\0\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x07\0\0\
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x0a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
\0\0\0\0\0\0\x03\0\x0c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x0d\0\0\
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
\0\0\0\0\0\0\x03\0\x15\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x17\0\0\
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x7d\0\0\0\x12\0\x03\0\0\0\0\0\0\0\0\0\x30\0\0\0\
\0\0\0\0\x79\0\0\0\x11\0\x05\0\0\0\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\x05\x01\0\0\
\x11\0\x06\0\0\0\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x0b\0\
\0\0\x08\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x11\0\0\0\0\0\0\0\x03\0\0\0\x04\0\0\
\0\x15\0\0\0\0\0\0\0\x03\0\0\0\x08\0\0\0\x1f\0\0\0\0\0\0\0\x03\0\0\0\x06\0\0\0\
\x08\0\0\0\0\0\0\0\x03\0\0\0\x05\0\0\0\x0c\0\0\0\0\0\0\0\x03\0\0\0\x05\0\0\0\
\x10\0\0\0\0\0\0\0\x03\0\0\0\x05\0\0\0\x14\0\0\0\0\0\0\0\x03\0\0\0\x05\0\0\0\
\x18\0\0\0\0\0\0\0\x03\0\0\0\x05\0\0\0\x1c\0\0\0\0\0\0\0\x03\0\0\0\x05\0\0\0\
\x20\0\0\0\0\0\0\0\x03\0\0\0\x05\0\0\0\x24\0\0\0\0\0\0\0\x03\0\0\0\x05\0\0\0\
\x28\0\0\0\0\0\0\0\x03\0\0\0\x05\0\0\0\x2c\0\0\0\0\0\0\0\x03\0\0\0\x05\0\0\0\
\x08\0\0\0\0\0\0\0\x02\0\0\0\x0c\0\0\0\x10\0\0\0\0\0\0\0\x02\0\0\0\x0b\0\0\0\
\x18\0\0\0\0\0\0\0\x02\0\0\0\x02\0\0\0\xbc\0\0\0\0\0\0\0\x04\0\0\0\x0b\0\0\0\
\xd4\0\0\0\0\0\0\0\x04\0\0\0\x0c\0\0\0\x2c\0\0\0\0\0\0\0\x04\0\0\0\x02\0\0\0\
\x40\0\0\0\0\0\0\0\x04\0\0\0\x02\0\0\0\x50\0\0\0\0\0\0\0\x04\0\0\0\x02\0\0\0\
\x14\0\0\0\0\0\0\0\x03\0\0\0\x07\0\0\0\x18\0\0\0\0\0\0\0\x02\0\0\0\x02\0\0\0\
\x22\0\0\0\0\0\0\0\x03\0\0\0\x09\0\0\0\x2e\0\0\0\0\0\0\0\x03\0\0\0\x09\0\0\0\
\x4b\0\0\0\0\0\0\0\x02\0\0\0\x02\0\0\0\x0a\x0c\0\x2e\x64\x65\x62\x75\x67\x5f\
\x61\x62\x62\x72\x65\x76\0\x2e\x74\x65\x78\x74\0\x2e\x72\x65\x6c\x2e\x42\x54\
\x46\x2e\x65\x78\x74\0\x2e\x72\x65\x6c\x2e\x64\x65\x62\x75\x67\x5f\x73\x74\x72\
\x5f\x6f\x66\x66\x73\x65\x74\x73\0\x2e\x62\x73\x73\0\x2e\x64\x65\x62\x75\x67\
\x5f\x73\x74\x72\0\x2e\x64\x65\x62\x75\x67\x5f\x6c\x69\x6e\x65\x5f\x73\x74\x72\
\0\x2e\x72\x65\x6c\x2e\x64\x65\x62\x75\x67\x5f\x61\x64\x64\x72\0\x2e\x72\x65\
\x6c\x2e\x64\x65\x62\x75\x67\x5f\x69\x6e\x66\x6f\0\x72\x61\x6e\0\x6f\x6e\x5f\
\x73\x77\x69\x74\x63\x68\0\x2e\x72\x65\x6c\x74\x72\x61\x63\x65\x70\x6f\x69\x6e\
\x74\x2f\x73\x63\x68\x65\x64\x2f\x73\x63\x68\x65\x64\x5f\x73\x77\x69\x74\x63\
\x68\0\x2e\x6c\x6c\x76\x6d\x5f\x61\x64\x64\x72\x73\x69\x67\0\x6c\x69\x63\x65\
\x6e\x73\x65\0\x2e\x72\x65\x6c\x2e\x64\x65\x62\x75\x67\x5f\x6c\x69\x6e\x65\0\
\x2e\x72\x65\x6c\x2e\x64\x65\x62\x75\x67\x5f\x66\x72\x61\x6d\x65\0\x68\x65\x6c\
\x6c\x6f\x2e\x62\x70\x66\x2e\x63\0\x2e\x73\x74\x72\x74\x61\x62\0\x2e\x73\x79\
\x6d\x74\x61\x62\0\x2e\x72\x65\x6c\x2e\x42\x54\x46\0\x4c\x49\x43\x45\x4e\x53\
\x45\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xec\0\0\0\x03\0\0\0\
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x4a\x08\0\0\0\0\0\0\x0d\x01\0\0\0\0\0\0\0\0\0\
\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x0f\0\0\0\x01\0\0\0\x06\0\0\0\0\0\
\0\0\0\0\0\0\0\0\0\0\x40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x04\0\0\
\0\0\0\0\0\0\0\0\0\0\0\0\0\x8b\0\0\0\x01\0\0\0\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
\0\x40\0\0\0\0\0\0\0\x30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x08\0\0\0\0\0\0\0\0\0\0\
\0\0\0\0\0\x87\0\0\0\x09\0\0\0\x40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x88\x06\0\0\0\
\0\0\0\x10\0\0\0\0\0\0\0\x19\0\0\0\x03\0\0\0\x08\0\0\0\0\0\0\0\x10\0\0\0\0\0\0\
\0\x39\0\0\0\x08\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x70\0\0\0\0\0\0\0\x04\
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xb7\0\0\0\x01\
\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x70\0\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\0\
\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x01\0\0\0\0\0\0\0\0\
\0\0\0\0\0\0\0\0\0\0\0\x74\0\0\0\0\0\0\0\x7a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x6d\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
\0\0\xee\0\0\0\0\0\0\0\x6b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\
\0\0\0\0\0\0\x69\0\0\0\x09\0\0\0\x40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x98\x06\0\0\
\0\0\0\0\x40\0\0\0\0\0\0\0\x19\0\0\0\x08\0\0\0\x08\0\0\0\0\0\0\0\x10\0\0\0\0\0\
\0\0\x26\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x59\x01\0\0\0\0\0\0\
\x30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x22\0\0\0\
\x09\0\0\0\x40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd8\x06\0\0\0\0\0\0\xa0\0\0\0\0\0\
\0\0\x19\0\0\0\x0a\0\0\0\x08\0\0\0\0\0\0\0\x10\0\0\0\0\0\0\0\x3e\0\0\0\x01\0\0\
\0\x30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x89\x01\0\0\0\0\0\0\xb3\0\0\0\0\0\0\0\0\0\
\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x5d\0\0\0\x01\0\0\0\0\0\0\0\0\
\0\0\0\0\0\0\0\0\0\0\0\x3c\x02\0\0\0\0\0\0\x20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x59\0\0\0\x09\0\0\0\x40\0\0\0\0\0\0\0\0\0\0\
\0\0\0\0\0\x78\x07\0\0\0\0\0\0\x30\0\0\0\0\0\0\0\x19\0\0\0\x0d\0\0\0\x08\0\0\0\
\0\0\0\0\x10\0\0\0\0\0\0\0\0\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
\x5c\x02\0\0\0\0\0\0\xaf\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\0\0\
\0\0\0\0\0\0\xfc\0\0\0\x09\0\0\0\x40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xa8\x07\0\0\
\0\0\0\0\x20\0\0\0\0\0\0\0\x19\0\0\0\x0f\0\0\0\x08\0\0\0\0\0\0\0\x10\0\0\0\0\0\
\0\0\x19\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x0c\x04\0\0\0\0\0\0\
\x60\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15\0\0\0\
\x09\0\0\0\x40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x07\0\0\0\0\0\0\x30\0\0\0\0\0\
\0\0\x19\0\0\0\x11\0\0\0\x08\0\0\0\0\0\0\0\x10\0\0\0\0\0\0\0\xd3\0\0\0\x01\0\0\
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x70\x04\0\0\0\0\0\0\x28\0\0\0\0\0\0\0\0\0\0\
\0\0\0\0\0\x08\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcf\0\0\0\x09\0\0\0\x40\0\0\0\0\0\
\0\0\0\0\0\0\0\0\0\0\xf8\x07\0\0\0\0\0\0\x20\0\0\0\0\0\0\0\x19\0\0\0\x13\0\0\0\
\x08\0\0\0\0\0\0\0\x10\0\0\0\0\0\0\0\xc3\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
\0\0\0\0\0\x98\x04\0\0\0\0\0\0\x5c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\
\0\0\0\0\0\0\0\0\0\0\xbf\0\0\0\x09\0\0\0\x40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18\
\x08\0\0\0\0\0\0\x30\0\0\0\0\0\0\0\x19\0\0\0\x15\0\0\0\x08\0\0\0\0\0\0\0\x10\0\
\0\0\0\0\0\0\x49\0\0\0\x01\0\0\0\x30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf4\x04\0\0\
\0\0\0\0\x55\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\
\xa9\0\0\0\x03\x4c\xff\x6f\0\0\0\x80\0\0\0\0\0\0\0\0\0\0\0\0\x48\x08\0\0\0\0\0\
\0\x02\0\0\0\0\0\0\0\x19\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf4\0\
\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x50\x05\0\0\0\0\0\0\x38\x01\0\0\
\0\0\0\0\x01\0\0\0\x0a\0\0\0\x08\0\0\0\0\0\0\0\x18\0\0\0\0\0\0\0";

	*sz = sizeof(data) - 1;
	return (const void *)data;
}

#ifdef __cplusplus
struct hello_bpf *hello_bpf::open(const struct bpf_object_open_opts *opts) { return hello_bpf__open_opts(opts); }
struct hello_bpf *hello_bpf::open_and_load() { return hello_bpf__open_and_load(); }
int hello_bpf::load(struct hello_bpf *skel) { return hello_bpf__load(skel); }
int hello_bpf::attach(struct hello_bpf *skel) { return hello_bpf__attach(skel); }
void hello_bpf::detach(struct hello_bpf *skel) { hello_bpf__detach(skel); }
void hello_bpf::destroy(struct hello_bpf *skel) { hello_bpf__destroy(skel); }
const void *hello_bpf::elf_bytes(size_t *sz) { return hello_bpf__elf_bytes(sz); }
#endif /* __cplusplus */

__attribute__((unused)) static void
hello_bpf__assert(struct hello_bpf *s __attribute__((unused)))
{
#ifdef __cplusplus
#define _Static_assert static_assert
#endif
	_Static_assert(sizeof(s->bss->ran) == 4, "unexpected size of 'ran'");
#ifdef __cplusplus
#undef _Static_assert
#endif
}

#endif /* __HELLO_BPF_SKEL_H__ */
