#ifndef _STDIO_H
#define _STDIO_H
#include <sys/feature_tests.h>
#ifdef __cplusplus
extern "C" {
#endif
#if defined(__PRAGMA_REDEFINE_EXTNAME)
#if !defined(_LP64) && _FILE_OFFSET_BITS == 64
#pragma redefine_extname fopen fopen64
#pragma redefine_extname freopen freopen64
#pragma redefine_extname tmpfile tmpfile64
#pragma redefine_extname fgetpos fgetpos64
#pragma redefine_extname fsetpos fsetpos64
#if defined(_LARGEFILE_SOURCE)
#pragma redefine_extname fseeko fseeko64
#pragma redefine_extname ftello ftello64
#endif
#endif
#if defined(_LP64) && defined(_LARGEFILE64_SOURCE)
#pragma redefine_extname fopen64 fopen
#pragma redefine_extname freopen64 freopen
#pragma redefine_extname tmpfile64 tmpfile
#pragma redefine_extname fgetpos64 fgetpos
#pragma redefine_extname fsetpos64 fsetpos
#if defined(_LARGEFILE_SOURCE)
#pragma redefine_extname fseeko64 fseeko
#pragma redefine_extname ftello64 ftello
#endif
#endif
#endif
#ifdef __cplusplus
}
#endif
#include <iso/stdio_iso.h>
#if __cplusplus >= 199711L
using std::FILE;
using std::size_t;
using std::fpos_t;
using std::remove;
using std::rename;
using std::tmpfile;
using std::tmpnam;
using std::fclose;
using std::fflush;
using std::fopen;
using std::freopen;
using std::setbuf;
using std::setvbuf;
using std::fprintf;
using std::fscanf;
using std::printf;
using std::scanf;
using std::sprintf;
using std::sscanf;
using std::vfprintf;
using std::vprintf;
using std::vsprintf;
using std::fgetc;
using std::fgets;
using std::fputc;
using std::fputs;
using std::getc;
using std::getchar;
using std::gets;
using std::putc;
using std::putchar;
using std::puts;
using std::ungetc;
using std::fread;
using std::fwrite;
using std::fgetpos;
using std::fseek;
using std::fsetpos;
using std::ftell;
using std::rewind;
using std::clearerr;
using std::feof;
using std::ferror;
using std::perror;
#ifndef _LP64
using std::__filbuf;
using std::__flsbuf;
#endif
#endif
#include <iso/stdio_c99.h>
#ifdef __cplusplus
extern "C" {
#endif
#if defined(_LARGEFILE_SOURCE) || defined(_XPG5)
#ifndef _OFF_T
#define _OFF_T
#if defined(_LP64) || _FILE_OFFSET_BITS == 32
typedef long off_t;
#else
typedef __longlong_t off_t;
#endif
#ifdef _LARGEFILE64_SOURCE
#ifdef _LP64
typedef off_t off64_t;
#else
typedef __longlong_t off64_t;
#endif
#endif
#endif
#endif
#ifdef _LARGEFILE64_SOURCE
#ifdef _LP64
typedef fpos_t fpos64_t;
#else
typedef __longlong_t fpos64_t;
#endif
#endif
#if defined(_XPG4) && !defined(_VA_LIST)
#define _VA_LIST
typedef __va_list va_list;
#endif
#if defined(__EXTENSIONS__) || !defined(_STRICT_STDC) || \
defined(__XOPEN_OR_POSIX)
#define L_ctermid 9
#if !defined(_XPG6) || defined(__EXTENSIONS__)
#define L_cuserid 9
#endif
#endif
#if defined(__EXTENSIONS__) || \
(!defined(_STRICT_STDC) && !defined(_POSIX_C_SOURCE)) || \
defined(_XOPEN_SOURCE)
#define P_tmpdir "/var/tmp/"
#endif
#ifndef _STDIO_ALLOCATE
extern unsigned char _sibuf[], _sobuf[];
#endif
#if !defined(_LP64) && _FILE_OFFSET_BITS == 64
#if !defined(__PRAGMA_REDEFINE_EXTNAME)
extern FILE *fopen64(const char *, const char *);
extern FILE *freopen64(const char *, const char *, FILE *);
extern FILE *tmpfile64(void);
extern int fgetpos64(FILE *, fpos_t *);
extern int fsetpos64(FILE *, const fpos_t *);
#define fopen fopen64
#define freopen freopen64
#define tmpfile tmpfile64
#define fgetpos fgetpos64
#define fsetpos fsetpos64
#ifdef _LARGEFILE_SOURCE
#define fseeko fseeko64
#define ftello ftello64
#endif
#endif
#endif
#ifndef _LP64
extern unsigned char *_bufendtab[];
extern FILE *_lastbuf;
#endif
#if defined(_LP64) && defined(_LARGEFILE64_SOURCE)
#if !defined(__PRAGMA_REDEFINE_EXTNAME)
#define fopen64 fopen
#define freopen64 freopen
#define tmpfile64 tmpfile
#define fgetpos64 fgetpos
#define fsetpos64 fsetpos
#ifdef _LARGEFILE_SOURCE
#define fseeko64 fseeko
#define ftello64 ftello
#endif
#endif
#endif
#ifndef _SSIZE_T
#define _SSIZE_T
#if defined(_LP64)
typedef long ssize_t;
#else
typedef int ssize_t;
#endif
#endif
#if defined(__EXTENSIONS__) || \
(!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX)) || \
defined(_REENTRANT)
extern char *tmpnam_r(char *);
#endif
#if defined(__EXTENSIONS__) || \
(!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX))
extern int fdclose(FILE *, int *);
extern int fcloseall(void);
extern void setbuffer(FILE *, char *, size_t);
extern int setlinebuf(FILE *);
extern int asprintf(char **, const char *, ...);
extern int vasprintf(char **, const char *, __va_list);
#endif
#if defined(__EXTENSIONS__) || \
(!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX))
extern ssize_t getdelim(char **_RESTRICT_KYWD, size_t *_RESTRICT_KYWD,
int, FILE *_RESTRICT_KYWD);
extern ssize_t getline(char **_RESTRICT_KYWD, size_t *_RESTRICT_KYWD,
FILE *_RESTRICT_KYWD);
#endif
#if defined(__EXTENSIONS__) || \
!defined(_STRICT_STDC) || defined(__XOPEN_OR_POSIX)
extern FILE *fdopen(int, const char *);
extern char *ctermid(char *);
extern int fileno(FILE *);
#endif
#if defined(__EXTENSIONS__) || defined(_REENTRANT) || \
(_POSIX_C_SOURCE - 0 >= 199506L)
extern void flockfile(FILE *);
extern int ftrylockfile(FILE *);
extern void funlockfile(FILE *);
extern int getc_unlocked(FILE *);
extern int getchar_unlocked(void);
extern int putc_unlocked(int, FILE *);
extern int putchar_unlocked(int);
#endif
#if defined(__EXTENSIONS__) || !defined(_STRICT_STDC) || \
defined(_XOPEN_SOURCE)
extern FILE *popen(const char *, const char *);
extern char *tempnam(const char *, const char *);
extern int pclose(FILE *);
#if !defined(_XOPEN_SOURCE)
extern int getsubopt(char **, char *const *, char **);
#endif
#if !defined(_XPG6) || defined(__EXTENSIONS__)
extern char *cuserid(char *);
extern int getopt(int, char *const *, const char *);
extern char *optarg;
extern int optind, opterr, optopt;
extern int getw(FILE *);
extern int putw(int, FILE *);
#endif
#endif
#if defined(_LARGEFILE_SOURCE) || defined(_XPG5)
extern int fseeko(FILE *, off_t, int);
extern off_t ftello(FILE *);
#endif
#if defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \
!defined(__PRAGMA_REDEFINE_EXTNAME))
extern FILE *fopen64(const char *, const char *);
extern FILE *freopen64(const char *, const char *, FILE *);
extern FILE *tmpfile64(void);
extern int fgetpos64(FILE *, fpos64_t *);
extern int fsetpos64(FILE *, const fpos64_t *);
extern int fseeko64(FILE *, off64_t, int);
extern off64_t ftello64(FILE *);
#endif
#if !defined(_STRICT_SYMBOLS) || defined(_XPG7)
extern FILE *fmemopen(void *_RESTRICT_KYWD, size_t,
const char *_RESTRICT_KYWD);
extern FILE *open_memstream(char **, size_t *);
extern int dprintf(int, const char *_RESTRICT_KYWD, ...)
__PRINTFLIKE(2);
extern int vdprintf(int, const char *_RESTRICT_KYWD, __va_list)
__VPRINTFLIKE(2);
#endif
#if defined(__EXTENSIONS__) || defined(_REENTRANT) || \
(_POSIX_C_SOURCE - 0 >= 199506L)
#define getchar_unlocked() getc_unlocked(stdin)
#define putchar_unlocked(x) putc_unlocked((x), stdout)
#endif
#ifdef __cplusplus
}
#endif
#endif