pub type ElfHalf = u16;
pub type ElfWord = u32;
pub type ElfSword = i32;
pub type ElfXword = u64;
pub type ElfSxword = i64;
pub type Elf32Addr = u32;
pub type Elf32Off = u32;
pub type Elf64Addr = u64;
pub type Elf64Off = u64;
pub mod constant {
use super::*;
pub const EV_NONE: u8 = 0;
pub const EV_CURRENT: u8 = 1;
pub const EI_MAG0: usize = 0;
pub const EI_MAG1: usize = 1;
pub const EI_MAG2: usize = 2;
pub const EI_MAG3: usize = 3;
pub const EI_CLASS: usize = 4;
pub const EI_DATA: usize = 5;
pub const EI_VERSION: usize = 6;
pub const EI_OSABI: usize = 7;
pub const EI_ABIVERSION: usize = 8;
pub const EI_PAD: usize = 9;
pub const EI_NIDENT: usize = 16;
pub const ELFMAG0: u8 = 0x7F;
pub const ELFMAG1: u8 = b'E';
pub const ELFMAG2: u8 = b'L';
pub const ELFMAG3: u8 = b'F';
pub const ELFCLASSNONE: u8 = 0;
pub const ELFCLASS32: u8 = 1;
pub const ELFCLASS64: u8 = 2;
pub const ELFDATANONE: u8 = 0;
pub const ELFDATA2LSB: u8 = 1;
pub const ELFDATA2MSB: u8 = 2;
pub const ET_NONE: ElfHalf = 0;
pub const ET_REL: ElfHalf = 1;
pub const ET_EXEC: ElfHalf = 2;
pub const ET_DYN: ElfHalf = 3;
pub const ET_CORE: ElfHalf = 4;
pub const SHN_UNDEF: ElfHalf = 0;
pub const SHN_LORESERVE: ElfHalf = 0xFF00;
pub const SHN_LOPROC: ElfHalf = 0xFF00;
pub const SHN_HIPROC: ElfHalf = 0xFF1F;
pub const SHN_LOOS: ElfHalf = 0xFF20;
pub const SHN_HIOS: ElfHalf = 0xFF3F;
pub const SHN_ABS: ElfHalf = 0xFFF1;
pub const SHN_COMMON: ElfHalf = 0xFFF2;
pub const SHN_XINDEX: ElfHalf = 0xFFFF;
pub const SHN_HIRESERVE: ElfHalf = 0xFFFF;
pub const SHT_NULL: ElfWord = 0;
pub const SHT_PROGBITS: ElfWord = 1;
pub const SHT_SYMTAB: ElfWord = 2;
pub const SHT_STRTAB: ElfWord = 3;
pub const SHT_RELA: ElfWord = 4;
pub const SHT_HASH: ElfWord = 5;
pub const SHT_DYNAMIC: ElfWord = 6;
pub const SHT_NOTE: ElfWord = 7;
pub const SHT_NOBITS: ElfWord = 8;
pub const SHT_REL: ElfWord = 9;
pub const SHT_SHLIB: ElfWord = 10;
pub const SHT_DYNSYM: ElfWord = 11;
pub const SHT_INIT_ARRAY: ElfWord = 14;
pub const SHT_FINI_ARRAY: ElfWord = 15;
pub const SHT_PREINIT_ARRAY: ElfWord = 16;
pub const SHT_GROUP: ElfWord = 17;
pub const SHT_SYMTAB_SHNDX: ElfWord = 18;
pub const SHT_LOOS: ElfWord = 0x60000000;
pub const SHT_HIOS: ElfWord = 0x6fffffff;
pub const SHT_LOPROC: ElfWord = 0x70000000;
pub const SHT_HIPROC: ElfWord = 0x7FFFFFFF;
pub const SHT_LOUSER: ElfWord = 0x80000000;
pub const SHT_HIUSER: ElfWord = 0xFFFFFFFF;
pub const SHF_WRITE: ElfXword = 0x1;
pub const SHF_ALLOC: ElfXword = 0x2;
pub const SHF_EXECINSTR: ElfXword = 0x4;
pub const SHF_MERGE: ElfXword = 0x10;
pub const SHF_STRINGS: ElfXword = 0x20;
pub const SHF_INFO_LINK: ElfXword = 0x40;
pub const SHF_LINK_ORDER: ElfXword = 0x80;
pub const SHF_OS_NONCONFORMING: ElfXword = 0x100;
pub const SHF_GROUP: ElfXword = 0x200;
pub const SHF_TLS: ElfXword = 0x400;
pub const SHF_MASKOS: ElfXword = 0x0ff00000;
pub const SHF_MASKPROC: ElfXword = 0xF0000000;
pub const PT_NULL: ElfWord = 0;
pub const PT_LOAD: ElfWord = 1;
pub const PT_DYNAMIC: ElfWord = 2;
pub const PT_INTERP: ElfWord = 3;
pub const PT_NOTE: ElfWord = 4;
pub const PT_SHLIB: ElfWord = 5;
pub const PT_PHDR: ElfWord = 6;
pub const PT_TLS: ElfWord = 7;
pub const PT_LOOS: ElfWord = 0x60000000;
pub const PT_HIOS: ElfWord = 0x6fffffff;
pub const PT_LOPROC: ElfWord = 0x70000000;
pub const PT_HIPROC: ElfWord = 0x7FFFFFFF;
pub const PF_X: ElfWord = 1;
pub const PF_W: ElfWord = 2;
pub const PF_R: ElfWord = 4;
pub const PF_MASKOS: ElfWord = 0x0ff00000;
pub const PF_MASKPROC: ElfWord = 0xf0000000;
pub const STB_LOCAL: u8 = 0;
pub const STB_GLOBAL: u8 = 1;
pub const STB_WEAK: u8 = 2;
pub const STB_LOOS: u8 = 10;
pub const STB_HIOS: u8 = 12;
pub const STB_LOPROC: u8 = 13;
pub const STB_HIPROC: u8 = 15;
pub const STT_NOTYPE: u8 = 0;
pub const STT_OBJECT: u8 = 1;
pub const STT_FUNC: u8 = 2;
pub const STT_SECTION: u8 = 3;
pub const STT_FILE: u8 = 4;
pub const STT_COMMON: u8 = 5;
pub const STT_TLS: u8 = 6;
pub const STT_LOOS: u8 = 10;
pub const STT_HIOS: u8 = 12;
pub const STT_LOPROC: u8 = 13;
pub const STT_HIPROC: u8 = 15;
pub const DT_NULL: ElfSxword = 0;
pub const DT_NEEDED: ElfSxword = 1;
pub const DT_PLTRELSZ: ElfSxword = 2;
pub const DT_PLTGOT: ElfSxword = 3;
pub const DT_HASH: ElfSxword = 4;
pub const DT_STRTAB: ElfSxword = 5;
pub const DT_SYMTAB: ElfSxword = 6;
pub const DT_RELA: ElfSxword = 7;
pub const DT_RELASZ: ElfSxword = 8;
pub const DT_RELAENT: ElfSxword = 9;
pub const DT_STRSZ: ElfSxword = 10;
pub const DT_SYMENT: ElfSxword = 11;
pub const DT_INIT: ElfSxword = 12;
pub const DT_FINI: ElfSxword = 13;
pub const DT_SONAME: ElfSxword = 14;
pub const DT_RPATH: ElfSxword = 15;
pub const DT_SYMBOLIC: ElfSxword = 16;
pub const DT_REL: ElfSxword = 17;
pub const DT_RELSZ: ElfSxword = 18;
pub const DT_RELENT: ElfSxword = 19;
pub const DT_PLTREL: ElfSxword = 20;
pub const DT_DEBUG: ElfSxword = 21;
pub const DT_TEXTREL: ElfSxword = 22;
pub const DT_JMPREL: ElfSxword = 23;
pub const DT_BIND_NOW: ElfSxword = 24;
pub const DT_INIT_ARRAY: ElfSxword = 25;
pub const DT_FINI_ARRAY: ElfSxword = 26;
pub const DT_INIT_ARRAYSZ: ElfSxword = 27;
pub const DT_FINI_ARRAYSZ: ElfSxword = 28;
pub const DT_RUNPATH: ElfSxword = 29;
pub const DT_FLAGS: ElfSxword = 30;
pub const DT_ENCODING: ElfSxword = 32;
pub const DT_PREINIT_ARRAY: ElfSxword = 32;
pub const DT_PREINIT_ARRAYSZ: ElfSxword = 33;
pub const DT_MAXPOSTAGS: ElfSxword = 34;
pub const DT_LOOS: ElfSxword = 0x6000000D;
pub const DT_HIOS: ElfSxword = 0x6ffff000;
pub const DT_LOPROC: ElfSxword = 0x70000000;
pub const DT_HIPROC: ElfSxword = 0x7FFFFFFF;
}