#ifndef SUPPORT_H
#define SUPPORT_H

typedef unsigned long size_t;
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long uint64_t;
typedef signed char int8_t;
typedef short int int16_t;
typedef int int32_t;
typedef long int64_t;
typedef unsigned long uintptr_t;

#define INT8_MIN (-128)
#define INT8_MAX 127
#define INT16_MIN (-32768)
#define INT16_MAX 32767
#define INT32_MIN (-2147483648)
#define INT32_MAX 2147483647
#define INT64_MIN (-9223372036854775807LL - 1)
#define INT64_MAX 9223372036854775807LL
#define UINT8_MAX 255
#define UINT16_MAX 65535
#define UINT32_MAX 4294967295
#define UINT64_MAX (2 * 9223372036854775807ULL + 1)

#define NULL ((void *)0)

typedef uint32_t X,U4;
typedef uint16_t U2;
enum{Z=UINT16_MAX};

void P(void);

extern const U2 record_layouts[];
extern const uint8_t constant_bytes[];

void s36(U4,char*,U4,int,const char**);
_Noreturn X s87(void);
U4 s52(void);
void s15(U4);
X s75(void*,U2,U2,const X*);
const X*s62(X);
const void*s35(X,U2);
X s27(U2,X);
U2 s09(X);
X s06(X);
X s30(U2,const X*,U2);
X s78(U2,const X*);
X s68(X,U2);
X s31(X,U2);
_Noreturn X s89(void);
_Noreturn X s88(void);
_Noreturn X s53(void);
const X*s33(X,U2);
X s86(size_t,const char*);
X s40(void);
X s24(X);
X s45(void);
X s26(X);
X s00(X,X,X,X);
X s05(X);
X s85(void);
X s66(void);
X s03(X,X,X);
X s72(X);
X s67(X,X,X,X);
X s41(X,X,X,X);
X s18(X);
X s20(X);
X s23(X);
X s92(X);
X s28(X);
X s12(X);
X s93(X,X);
X s19(X,X);
X s47(X,X);
X s84(X);
X s91(X,X);
X s43(X,X);
X s50(X,X);
X s10(X,X);
X s63(X,X);
X s61(X,X);
X s55(X,X);
X s95(X,X,X,X,X,X);
X s56(X);
X s71(X);
X s60(X,X,X,X);
X s97(X,X,X,X);
X s04(X);
X s38(X);
X s32(X,X);
X s14(X);
X s82(X,X,X,X,X);
X s11(X,X,X);
X s39(X,X,X);
X s42(X,X,X);
X s13(X,X);
X s76(X,X,X);
X s46(X,X);
X s54(X,X,X);
X s29(X,X);
X s08(X,X,X);
X s98(X,X);
X s74(X,X,X);
X s01(X,X);
X s17(X,X,X);
X s59(X,X);
X s21(X,X,X);
X s99(X,X);
X s58(X,X,X);
X s80(X,X);

#endif