#include <stdio.h>
#include <ctype.h>
#include <stdint.h>
#define STRINGSIZE 1024
#define TRUNCSTRINGSIZE (STRINGSIZE/4)
typedef uint8_t int8;
typedef uint16_t int16;
typedef uint32_t int32;
#ifndef NUMWORDS
#define NUMWORDS 16
#endif
#define MAXWORDLEN 32
#define MAXBLOCKLEN (MAXWORDLEN * NUMWORDS)
struct pi_header
{
int32 pih_magic;
int32 pih_numwords;
int16 pih_blocklen;
int16 pih_pad;
};
typedef struct
{
FILE *ifp;
FILE *dfp;
FILE *wfp;
int32 flags;
#define PFOR_WRITE 0x0001
#define PFOR_FLUSH 0x0002
#define PFOR_USEHWMS 0x0004
int32 hwms[256];
struct pi_header header;
int count;
char data[NUMWORDS][MAXWORDLEN];
} PWDICT;
#define PW_WORDS(x) ((x)->header.pih_numwords)
#define PIH_MAGIC 0x70775631
extern PWDICT *PWOpen();
extern char *Mangle();
extern char *FascistCheck();
#define CRACK_TOLOWER(a) (isupper(a)?tolower(a):(a))
#define CRACK_TOUPPER(a) (islower(a)?toupper(a):(a))
#define STRCMP(a,b) strcmp((a),(b))