dillon@CORY.BERKELEY.EDU (Matt Dillon) (10/18/86)
Here are two quick programs I wrote: (1) Grab an active Screen and write it to a file in IFF -IFFENCODE (2) Decode arbitrary IFF files (e.g. see the format of) -IFFDUMP The routine to grab the highest screen in IFFENCODE.C was taken from a similar program Carolyn from amiga wrote and posted (same thing, but it dumped the image to printer). Since the programs require my library to compile, I've also included the uuencoded binaries. Have Fun! I tried to dump Dave Wecker's HAM pictures... the dump worked fine, but every VIEWing program I have either refuses to open an interlace HAM display, or runs out of memory because it keeps a second copy of the picture around (96K pics!). The decoder program is useful to get the general layout of IFF files. It decodes any IFF file down to the CHUNK name and size. It will print additional information only for CHUNK types it knows about... admittedly I did not spend much time making the latter complete. Tell me what ya' think. -Matt #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create: # iff.h # iffdump.c # iffencode.c # iffdump.uue # iffencode.uue # This archive created: Sat Oct 18 01:10:22 1986 export PATH; PATH=/bin:/usr/bin:$PATH echo shar: "extracting 'iff.h'" '(2414 characters)' if test -f 'iff.h' then echo shar: "will not over-write existing file 'iff.h'" else cat << \!Funky!Stuff! > 'iff.h' /* * IFF.H * * Chunk: * char id[4] * long cksize; * uchar ckdata[cksize]; * [0 pad to word boundry] * * Property = Chunk * FORM = Chunk / data = formtype + N-subchunks * * CAT = Chunk / data = type + list of chunks: FORM LIST or CAT * LIST = Chunk / data = type + N-Props + N(FORM LIST CAT) * PROP = Chunk / data = formtype + property * * * ILBM = FORM(ILBM): BMHD [CMAP][GRAB][DEST][SPRT][CAMG][CRNG+][BODY] * */ #include <exec/types.h> #define MAKEID(a,b,c,d) ((a)<<24 | (b)<<16 | (c)<<8 | (d)) #define IFF_FORM MAKEID('F','O','R','M') #define IFF_LIST MAKEID('L','I','S','T') #define IFF_PROP MAKEID('P','R','O','P') #define IFF_CAT MAKEID('C','A','T',' ') #define IFF_FILLER MAKEID(' ',' ',' ',' ') #define TYPE_ILBM MAKEID('I','L','B','M') #define TYPE_FTXT MAKEID('F','T','X','T') #define ILBM_BMHD MAKEID('B','M','H','D') /* PROP */ #define ILBM_CMAP MAKEID('C','M','A','P') /* PROP */ #define ILBM_GRAB MAKEID('G','R','A','B') /* PROP */ #define ILBM_DEST MAKEID('D','E','S','T') /* PROP merging */ #define ILBM_SPRT MAKEID('S','P','R','T') /* PROP body is sprite */ #define ILBM_CAMG MAKEID('C','A','M','G') /* PROP VP mode */ #define ILBM_CRNG MAKEID('C','R','N','G') /* PROP color cycling */ #define ILBM_BODY MAKEID('B','O','D','Y') /* bit mapped body */ /* STRUCTURES */ typedef struct { long id; long cksize; } CHUNK; #define MA_NONE 0 /* masking */ #define MA_HASMASK 1 #define MA_HASTRANSCOLOR 2 #define MA_LASSO 3 #define CP_NONE 0 /* compression */ #define CP_BYTERUN1 1 typedef struct { UWORD w, h; WORD x, y; UBYTE planes; UBYTE masking; UBYTE compression; UBYTE pad1; UWORD transparent_color; UBYTE xaspect, yaspect; WORD pagewidth, pageheight; } X_BMHD; typedef UBYTE X_CMAP[3]; /* each map entry is 3 bytes */ typedef UWORD X_GRAB[2]; /* grab entry x, y */ typedef struct { UBYTE depth; UBYTE pad1; UWORD p_pick; UWORD p_onoff; UWORD p_mask; } X_DEST; typedef UWORD X_SPRT; /* precedence */ typedef struct { ULONG vpmodes; } X_CAMG; typedef struct { WORD pad1; WORD rate; WORD active; UBYTE low, high; } X_CRNG; !Funky!Stuff! fi # end of overwriting check echo shar: "extracting 'iffdump.c'" '(6933 characters)' if test -f 'iffdump.c' then echo shar: "will not over-write existing file 'iffdump.c'" else cat << \!Funky!Stuff! > 'iffdump.c' /* * DECODE IFF formatted files V1.00 * * COMPILE W/ASTARTUP.OBJ and MY.LIB * * iffdump [-vV] file * * -v : display a little more information (only for forms and types * the program knows about) * -V : display additional hex dump of all sections * * * NOTE: The '-v' flag could use *a lot* of expansion... Since I haven't * got the latest IFF documentation. * * * NOTE: This program does almost no format checking (e.g. PROP's only * within LIST's, etc...), it is meant to display the format of * valid IFF files. */ #include "iff.h" #include <graphics/view.h> #define MODE_V1 0x01 #define MODE_V2 0x02 extern char *tabstr(), *ltos(); union { X_BMHD bmhd; X_CMAP cmap[64]; X_GRAB grab; X_DEST dest; X_SPRT sprt; X_CAMG camg; X_CRNG crng; } U; int Modes; main(ac, av) char *av[]; { int i, j; char *str; long fi; long endpos; for (j = 0, i = 1; i < ac; ++i) { str = av[i]; if (*str == '-') { while (*++str) { switch(*str) { case 'v': Modes |= MODE_V1; break; case 'V': Modes |= MODE_V2; break; default: printf ("'%lc' bad option\n", *str); } } } else { if (j) { puts("May specify only one file"); exit(1); } j = i; } } if (j == 0) { puts ("IFFDUMP [-vV] file"); puts ("(c)1986 Matthew Dillon. Public Domain V1.00"); puts (""); puts ("-v show detail on things the prog. knows about"); puts ("-V show hex dump"); exit(1); } fi = xopen(av[j], "r", 8192); if (fi == NULL) { puts ("could not open file"); exit(1); } endpos = xseek(fi, 0, 1); xseek(fi, 0, -1); iffdecode(fi, 0, endpos); xclose(fi); if (checkbreak()) puts ("*BREAK*"); } iffdecode(fi, tab, endpos) { long chunk[2]; long curpos, bytes, curend; long data; char ok; char count = 0; for (;;) { curpos = xseek(fi, 0, 0); if (curpos == endpos) return(1); if (count++ && tab == 0) { puts ("Warning: Garbage after IFF-EOF"); return (0); } if (curpos + 8 > endpos) { puts ("Error: Premature End Of File in header"); return(0); } xread(fi, chunk, 8); curpos += 8; bytes = chunk[1]; curend = curpos + bytes; printf ("%sCHUNK %s (%8ld)", tabstr(tab), ltos(chunk[0]), bytes); if (curend > endpos) { puts ("\nError: Premature End Of File within chunk"); return(0); } ok = 0; switch(chunk[0]) { case IFF_FILLER: printf ("A filler chunk\n"); if (Modes & MODE_V2) hexdump(fi, curpos, bytes, tab); break; case IFF_FORM: case IFF_LIST: case IFF_CAT: case IFF_PROP: xread(fi, &data, 4); curpos += 4; bytes -= 4; printf ("TYPE %s\n", ltos(data)); if (checkbreak()) break; iffdecode(fi, tab + 4, curend); if (checkbreak()) break; break; default: ok = 1; break; } if (ok) { puts (""); if (Modes & MODE_V1) decode_sub(fi, tab, chunk[0], bytes); if (Modes & MODE_V2) hexdump(fi, curpos, bytes, tab); } if (curend & 1) { printf ("%s(Filler Byte)\n", tabstr(tab)); ++curend; } xseek(fi, curend, -1); if (checkbreak()) break; } } decode_sub(fi, tab, name, bytes) { int i, j; tab += 4; switch (name) { case ILBM_BMHD: cs(sizeof(U.bmhd), bytes); xread(fi, &U.bmhd, sizeof(U.bmhd)); printf ("%s width= %-4ld\n", tabstr(tab), U.bmhd.w); printf ("%sheight= %-4ld\n", tabstr(tab), U.bmhd.h); printf ("%splanes= %-4ld\n", tabstr(tab), U.bmhd.planes); printf ("%s x= %-4ld\n", tabstr(tab), U.bmhd.x); printf ("%s y= %-4ld\n", tabstr(tab), U.bmhd.y); printf ("%s mask= x%-2lx\n",tabstr(tab), U.bmhd.masking); printf ("%s comp= x%-2lx\n",tabstr(tab), U.bmhd.compression); printf ("%stcolor= %-2ld\n", tabstr(tab), U.bmhd.transparent_color); printf ("%sxaspct= %-2ld\n", tabstr(tab), U.bmhd.xaspect); printf ("%syaspct= %-2ld\n", tabstr(tab), U.bmhd.yaspect); printf ("%s pagew= %-4ld\n", tabstr(tab), U.bmhd.pagewidth); printf ("%s pageh= %-4ld\n", tabstr(tab), U.bmhd.pageheight); break; case ILBM_CMAP: if (bytes % 3) { puts ("Expected multiples of 3 bytes for colormap"); break; } if (bytes > 32*3) { puts ("Color map is larger than 32 entries"); break; } xread(fi, &U.cmap, bytes); j = bytes/3; for (i = 0; i < j; ++i) { printf ("%scolor %2ld %2lx %2lx %2lx\n", tabstr(tab), i, U.cmap[i][0], U.cmap[i][1], U.cmap[i][2]); } break; case ILBM_GRAB: case ILBM_DEST: case ILBM_SPRT: puts (""); break; case ILBM_CAMG: xread(fi, &U.camg, sizeof(U.camg)); i = U.camg.vpmodes; printf ("%sVP MODES = %8lx (", tabstr(tab), i); if (i & HIRES) printf("HIRES "); if (i & SPRITES) printf("SPRITES "); if (i & VP_HIDE) printf("VP_HIDE "); if (i & HAM) printf ("HAM "); if (i & DUALPF) printf ("DUALPF "); if (i & GENLOCK_AUDIO) printf ("GENLOCK_AUDIO "); if (i & EXTRA_HALFBRITE) printf ("EXTRA_HALFBRITE "); if (i & PFBA) printf ("PFBA "); if (i & LACE) printf ("LACE "); if (i & GENLOCK_VIDEO) printf ("GENLOCK_VIDEO "); puts (")"); break; case ILBM_CRNG: case ILBM_BODY: break; } } hexdump(fi, curpos, bytes, tab) { long pos; UBYTE ch; pos = 0; xseek(fi, curpos, -1); while (bytes) { xread(fi, &ch, 1); if ((pos & 15) == 0) { if (checkbreak()) break; printf("\n%s%5lx ", tabstr(tab+4), pos); } printf ("%2lx ", ch); ++pos; --bytes; } puts(""); } cs(shouldbe, actual) { if (shouldbe != actual) printf ("Expected %ld bytes, got %ld\n", shouldbe, actual); } char * tabstr(tab) { static char space[128]; static int lasttab; static int init = 1; if (init) { bset(space + 1, 127, ' '); init = 0; } if (tab != lasttab) { space[lasttab] = ' '; space[lasttab = tab] = '\0'; } return (space); } char * ltos(data) unsigned long data; { static char buf[5]; buf[0] = (data >> 24) & 0xFF; buf[1] = (data >> 16) & 0xFF; buf[2] = (data >> 8 ) & 0xFF; buf[3] = data & 0xFF; return(buf); } !Funky!Stuff! fi # end of overwriting check echo shar: "extracting 'iffencode.c'" '(7906 characters)' if test -f 'iffencode.c' then echo shar: "will not over-write existing file 'iffencode.c'" else cat << \!Funky!Stuff! > 'iffencode.c' /* * IFFENCODE * * COMPILE W/ASTARTUP.OBJ and MY.LIB * * Grabs the highest screen and dumps it to a file in IFF. * * Screen-Finding routine taken from Carolyn's Printer Dump source. * * */ #include <exec/types.h> #include <exec/memory.h> #include <libraries/dos.h> #include <graphics/gfxbase.h> #include <graphics/rastport.h> #include <graphics/gfx.h> #include <graphics/view.h> #include <intuition/intuition.h> #include <intuition/intuitionbase.h> #define FLAG_NOCOMP 0x01 #define FLAG_NOLACE 0x02 #define FLAG_DEBUG 0x04 typedef struct IntuitionBase IBASE; typedef struct GfxBase GFXBASE; typedef struct Window WIN; typedef struct Screen SCR; typedef struct ViewPort VP; typedef struct RastPort RP; typedef struct ColorMap CM; typedef struct BitMap BM; IBASE *IntuitionBase; GFXBASE *GfxBase; main(ac, av) char *av[]; { char notdone = 1; char buf[80]; char flags = 0; int i; VP *vp; RP *rp; CM *cm; for (i = 1; i < ac; ++i) { if (strcmp(av[i], "NOLACE") == 0) flags |= FLAG_NOLACE; else if (strcmp(av[i], "NOCOMP") == 0) flags |= FLAG_NOCOMP; else if (strcmp(av[i], "DEBUG") == 0) flags |= FLAG_DEBUG; else { puts ("iffencode [NOLACE][NOCOMP]"); puts ("(c)1986 Matthew Dillon. Public Domain V1.00"); puts (""); puts ("NOLACE -save only top half of screen if in interlace"); puts ("NOCOMP -do NOT use BYTERUN1 compression"); exit(1); } } if ((IntuitionBase=(IBASE *)OpenLibrary("intuition.library",0)) == NULL) cleanexit("Can't open Intuition.\n"); if ((GfxBase=(GFXBASE *)OpenLibrary("graphics.library",0)) == NULL) cleanexit("Can't open Graphics.\nn"); do_imopts(&vp, &cm, &rp); while(notdone) { printf("\nSELECT: <W>rite, <N>ewImage, <Q>uit ?"); switch (getch()) { case 'W': printf ("\nWrite to file (leave blank to abort):"); gets(buf); if (buf[0]) { long fi = xopen(buf, "w", 8192); if (fi) { xasync(fi, 1); do_write(flags, vp, cm, rp, fi); xclose(fi); if (checkbreak()) { puts ("*BREAK*, file deleted"); resetbreak(); DeleteFile(buf); } puts ("done"); } else { puts ("could not open file"); } } break; case 'N': do_imopts(&vp, &cm, &rp); break; case 'Q': notdone = 0; break; } } cleanup(); } do_imopts(r_vp, r_cm, r_rp) VP **r_vp; CM **r_cm; RP **r_rp; { puts ("Move Screens so Screen to grab is highest."); printf("press <RET> when ready: "); getch(); getPointers(r_vp, r_cm, r_rp); } getPointers(r_vp, r_cm, r_rp) VP **r_vp; CM **r_cm; RP **r_rp; { SCR *firstscreen, *nextscreen, *highscreen; int topEdge; Forbid(); firstscreen = IntuitionBase->FirstScreen; topEdge = 9999; nextscreen = highscreen = firstscreen; while(nextscreen) { if(nextscreen->TopEdge < topEdge) { topEdge = nextscreen->TopEdge; highscreen = nextscreen; } nextscreen = nextscreen->NextScreen; } Permit(); *r_vp = &(highscreen->ViewPort); *r_cm = (*r_vp)->ColorMap; *r_rp = &(highscreen->RastPort); } getch() { char scr[80]; if (gets(scr)) { if (scr[0] >= 'a' && scr[0] <= 'z') scr[0] = scr[0] - 'a' + 'A'; return ((int)scr[0]); } return(' '); } cleanexit(errMsg) char *errMsg; { printf(errMsg); cleanup(); exit(-1); } cleanup() { if (IntuitionBase) CloseLibrary(IntuitionBase); if (GfxBase) CloseLibrary(GfxBase); } /* * Dump rastport in IFF. */ #include "iff.h" do_write(flags, vp, cm, rp, fi) VP *vp; CM *cm; RP *rp; long fi; { BM *bm = rp->BitMap; X_BMHD x_bmhd; X_CMAP x_cmap[32]; X_CAMG x_camg; int cme, i, j; x_bmhd.w = bm->BytesPerRow << 3; x_bmhd.h = bm->Rows; x_bmhd.x = x_bmhd.y = 0; x_bmhd.planes = bm->Depth; x_bmhd.masking= MA_NONE; x_bmhd.compression = (flags & FLAG_NOCOMP) ? CP_NONE : CP_BYTERUN1; x_bmhd.transparent_color = 0; x_bmhd.xaspect = 10; x_bmhd.yaspect = 11; x_bmhd.pagewidth = x_bmhd.w; x_bmhd.pageheight= x_bmhd.h; j = 1 << x_bmhd.planes; if (j == 64) j = 32; if (j > 32) { printf ("Illegal #colors/#planes: %ld/%ld\n", j, x_bmhd.planes); return(0); } { UWORD *w; for (i = 0, w = (UWORD *)cm->ColorTable; i < j; ++i, ++w) { x_cmap[i][0] = ((*w >> 8) & 0x0F) << 4; x_cmap[i][1] = ((*w >> 4) & 0x0F) << 4; x_cmap[i][2] = ((*w) & 0x0F) << 4; } cme = j; } x_camg.vpmodes = vp->Modes & (PFBA|DUALPF|HIRES|LACE|HAM); if ((flags & FLAG_NOLACE) && (x_camg.vpmodes & LACE)) { x_camg.vpmodes &= ~LACE; x_bmhd.h >>= 1; x_bmhd.pageheight = x_bmhd.h; } printf ("vpmode = (%ldx%ldx%ld) %8lx\n", x_bmhd.w, x_bmhd.h, x_bmhd.planes, x_camg.vpmodes); iff_chunk(fi, IFF_FORM); iff_type (fi, TYPE_ILBM); iff_chunk(fi, ILBM_BMHD); xwrite(fi, &x_bmhd, sizeof(x_bmhd)); iff_chunk(fi, 0); iff_chunk(fi, ILBM_CMAP); xwrite(fi, &x_cmap, sizeof(X_CMAP) * cme); iff_chunk(fi, 0); iff_chunk(fi, ILBM_CAMG); xwrite(fi, &x_camg, sizeof(x_camg)); iff_chunk(fi, 0); iff_chunk(fi, ILBM_BODY); for (i = 0; i < x_bmhd.h; ++i) { for (j = 0; j < x_bmhd.planes; ++j) { dumprow(fi, bm->Planes[j]+(i*bm->BytesPerRow), bm->BytesPerRow, flags); if (checkbreak()) goto outall; } } outall: iff_chunk(fi, 0); iff_chunk(fi, 0); } dumprow(fi, ptr, bytes, flags) UBYTE *ptr; { int i, j, k; /* base, literal end, replicate end */ UBYTE ch; if (flags & FLAG_NOCOMP) return(xwrite(fi, ptr, bytes)); if (flags & FLAG_DEBUG) puts ("SCANLINE"); i = j = k = 0; while (j < bytes) { if (checkbreak()) return(0); for (k = j; k < bytes && ptr[j] == ptr[k]; ++k); if (k - j >= 3) { while (j - i >= 128) { ch = 127; xwrite(fi, &ch, 1); xwrite(fi, ptr + i, 128); i += 128; } if (j - i > 0) { ch = (j - i - 1); xwrite(fi, &ch, 1); xwrite(fi, ptr + i, j - i); } while (k - j >= 128) { ch = -127; xwrite(fi, &ch, 1); xwrite(fi, ptr + j, 1); j += 128; } if (k - j > 0) { ch = -(k - j - 1); xwrite(fi, &ch, 1); xwrite(fi, ptr + j, 1); } i = j = k; } else { j = k; } } /* NOTE: i=start */ while (bytes - i >= 128) { ch = 127; xwrite(fi, &ch, 1); xwrite(fi, ptr + i, 128); i += 128; } if (bytes - i > 0) { ch = (j - i - 1); xwrite(fi, &ch, 1); xwrite(fi, ptr + i, bytes - i); } /* if (xseek(fi, 0, 0) & 1) { ch = 0x80; xwrite(fi, &ch, 1); } */ return (1); } iff_type(fi, type) { xwrite(fi, &type, 4); } iff_chunk(fi, type) { static long seeka[128]; static int idx; long zero = 0; long bytes; long oldpos; if (type) { xwrite(fi, &type, 4); xwrite(fi, &zero, 4); seeka[idx++] = xseek(fi, 0, 0); } else { if (idx) { --idx; oldpos = xseek(fi, 0, 0); bytes = oldpos - seeka[idx]; if (oldpos & 1) { xwrite(fi, &zero, 1); ++oldpos; } xseek(fi, seeka[idx] - 4, -1); xwrite(fi, &bytes, 4); xseek(fi, oldpos, -1); } } } !Funky!Stuff! fi # end of overwriting check echo shar: "extracting 'iffdump.uue'" '(11748 characters)' if test -f 'iffdump.uue' then echo shar: "will not over-write existing file 'iffdump.uue'" else cat << \!Funky!Stuff! > 'iffdump.uue' begin 644 iffdump M```#\P`````````.``````````T```!Q````;@```%0````&````VP````8` M```,```#NP```!0````(````*0```!(````1````$0```^D```!Q(\\````< M(\`````D(\@````H0KD````@+'D````$(\X````$D\E.KO[:*$!*K`"L9P`` MJ&$``6P@;`"LT<C1R"!H`!#1R-'(2.<@,$7Y````K$?Y````+'0!<``0&";* M8`(4V%'(__Q"&B`Y````)"!Y````*!(84X!O'@P!`"!O]%*")LI@"A(84X`, M`0`@;P04P6#R0AI@W$(:0IL@`DS?#`1(>0```"PO`$ZY````:"/`````$$ZY M````>"/`````%"/`````&$ZY`````'``+GD````<3G5A``#&80``L"/````` M($*G+P`D0"`J`"1G$"QY````""!`(B@``$ZN_X(B*@`@9R@D/````^U.KO_B M(\`````0(\`````4(\`````89PKEB"!`*6@`"`"D3KD`````<`!@!"`O``0N M>0```!PO`"QY````!"`Y````"&<"(D!.KOYB2KD````@9PY.KO]\(GD````@ M3J[^AB`?3G5(YP$&+CP``X`'+'@`!$ZN_Y1,WV"`<&1@L$'L`%Q.KOZ`0>P` M7$ZN_HQ.=4*Y````"$/Y```!K"`\````'DZN_=@CP`````AGMDYU``````/L M````&@````$```&Z```!J@```:0```%J```!7@```5````%"```!(@```1P` M``$6````]@```.0```#4````Q@```,````"T````I@```'(```!L````5``` M`$X````@````%`````X````(`````@````(````'```!-````,P````"```` M"@```*X```"Z`````````_`````"97AI=#(```````%``````G!A<FU%>&ET M````F@````)W86ET;7-G`````9`````"9&]M86EN``````$R`````F1O8V]N M<P`````!!`````1F<F]M5V]R:V)E;F-H````````V@````-E>&ET5&]$3U,` M``````%R`````F9R;VU#3$D`````-`````)?97AI=````````3P````";W!E M;D1/4P````&B`````C8D-S4R````````E@````)S=&%R='5P```````````" M-20W-3(```````"2`````C0D-S4R````````B`````(S)#<U,@```````'8` M```",B0W-3(```````!B`````C$D-S4X```````!6`````(Q)#<U,@`````` M`&0````";F]$3U,```````%V`````````_(```/J````;@`!```````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M````````````````9&]S+FQI8G)A<GD````#\`````)697)2978````````` M```"7T1/4T)A<V4````(`````E]S=&1I;@``````$`````-D;W-#;61,96X` M```````D`````VEN:71I86Q34````````!P````#9&]S0VUD0G5F```````` M*`````-A<F=V07)R87D````````L`````E]E<G)N;P``````#`````)?4WES M0F%S90````0````"1$]33F%M90````&L`````V%R9W9"=69F97(``````*P` M```"7W-T9&]U=``````4`````E]S=&1E<G(`````&`````-R971U<FY-<V<` M```````@`````````_(```/K````5````_(```/I````!B!O``0B+P`,("\` M"&<```@0P5.`9OI.=0```_(```/J````VR<E;&,G(&)A9"!O<'1I;VX*`$UA M>2!S<&5C:69Y(&]N;'D@;VYE(&9I;&4`249&1%5-4"!;+79672!F:6QE`"AC M*3$Y.#8@36%T=&AE=R!$:6QL;VXN("!0=6)L:6,@1&]M86EN(%8Q+C`P```M M=B`@('-H;W<@9&5T86EL(&]N('1H:6YG<R!T:&4@<')O9RX@:VYO=W,@86)O M=70`+58@("!S:&]W(&AE>"!D=6UP`'(`8V]U;&0@;F]T(&]P96X@9FEL90`J M0E)%04LJ`%=A<FYI;F<Z($=A<F)A9V4@869T97(@249&+45/1@!%<G)O<CH@ M4')E;6%T=7)E($5N9"!/9B!&:6QE(&EN(&AE861E<@`E<T-(54Y+("5S("@E M.&QD*0`*17)R;W(Z(%!R96UA='5R92!%;F0@3V8@1FEL92!W:71H:6X@8VAU M;FL`02!F:6QL97(@8VAU;FL*`%194$4@)7,*```E<RA&:6QL97(@0GET92D* M`"5S('=I9'1H/2`E+31L9`H`)7-H96EG:'0]("4M-&QD"@`E<W!L86YE<ST@ M)2TT;&0*`"5S("`@("!X/2`E+31L9`H`)7,@("`@('D]("4M-&QD"@`E<R`@ M;6%S:ST@>"4M,FQX"@`E<R`@8V]M<#T@>"4M,FQX"@`E<W1C;VQO<CT@)2TR M;&0*`"5S>&%S<&-T/2`E+3)L9`H`)7-Y87-P8W0]("4M,FQD"@`E<R!P86=E M=ST@)2TT;&0*`"5S('!A9V5H/2`E+31L9`H`17AP96-T960@;75L=&EP;&5S M(&]F(#,@8GET97,@9F]R(&-O;&]R;6%P`$-O;&]R(&UA<"!I<R!L87)G97(@ M=&AA;B`S,B!E;G1R:65S`"5S8V]L;W(@)3)L9"`@("4R;'@@)3)L>"`E,FQX M"@``)7-64"!-3T1%4R`]("4X;'@@*`!(25)%4R``4U!2251%4R``5E!?2$E$ M12``2$%-(`!$54%,4$8@`$=%3DQ/0TM?055$24\@`$585%)!7TA!3$9"4DE4 M12``4$9"02``3$%#12``1T5.3$]#2U]6241%3R``*0`*)7,E-6QX("`@("`` M)3)L>"```$5X<&5C=&5D("5L9"!B>71E<RP@9V]T("5L9`H``````0``"@`` M`````_(```/I````!B!O``1*&&;\D>\`!)'\`````2`(3G4``````_(```/I M````#"!O``0B;P`(("\`#&<``!ZSR&<``!AO```.T<#3P!,@4X!F^DYU$MA3 M@&;Z3G4``````_(```/I```#NTY6_^Q"KO_X<`$M0/_\("[__+"N``AL``"< MY8`@;@`,T<`M4/_T(&[_]!`0#```+694(&[_]%*(+4C_]$H09VP0$$B`2,`, M@````%9G$@R`````=F84"/D``````,-@T@CY``$```##8,@@;O_T$!!(@$C` M+P!(>0````!.N0````!0CV"L2J[_^&<:2'D````23KD```M06(]P`2\`3KD` M``$\6(\M;O_\__A2KO_\8`#_7$JN__AF4DAY````+$ZY```+4%B/2'D````_ M3KD```M06(](>0```&Q.N0``"U!8CTAY````;4ZY```+4%B/2'D```">3KD` M``M06(]P`2\`3KD```$\6(\@+O_XY8`@;@`,T<`O/```(`!(>0```+$O$$ZY M```-S$_O``PM0/_P2H!F&DAY````LTZY```+4%B/<`$O`$ZY```!/%B/<`$O M`$*G+R[_\$ZY```*-$_O``QR_R\!0J<O+O_P+4#_[$ZY```*-$_O``PO+O_L M0J<O+O_P82Q/[P`,+R[_\$ZY```*Z%B/3KD```PD2H!G#DAY````QTZY```+ M4%B/3EY.=4Y6_^)"+O_F<``O`"\`+RX`"$ZY```*-$_O``PM0/_TL*X`$&8& M<`%.7DYU$"[_YE(N_^9*`&<:2JX`#&842'D```#/3KD```M06(]P`$Y>3G4@ M+O_T4("PK@`0;Q1(>0```.Y.N0``"U!8CW``3EY.=7`(+P!(;O_X+RX`"$ZY M```+M$_O``P@+O_T4(`B+O_\+4#_]-"!+RX`#"U`_^PM0?_P80`''EB/+R[_ M^"]```1A``=P6(\O+O_P+P`O+P`(2'D```$53KD`````3^\`$"`N_^RPK@`0 M;Q1(>0```2=.N0``"U!8CW``3EY.=4(N_^<@+O_X<B@$@0````AK``#.L+L8 M"&;P3OL8!E!23U!@``!60T%4(&```$Y,25-48```1D9/4DU@```^("`@(&`` M``)(>0```5).N0````!8CP@Y``$```##9P``B"\N``PO+O_P+R[_]"\N``AA M``623^\`$&!L<`0O`$AN_^@O+@`(3KD```NT3^\`#%BN__19KO_P+R[_Z&$` M!I98CR\`2'D```%B3KD`````4(].N0``#"1*@&8J("X`#%B`+R[_["\`+RX` M"&$`_D)/[P`,3KD```PD2H!G"&`&'7P``?_G2B[_YV=02'D```%K3KD```M0 M6(\(.0``````PV<6+R[_\"\N__@O+@`,+RX`"&%T3^\`$`@Y``$```##9Q@O M+@`,+R[_\"\N__0O+@`(80`$SD_O`!`(+@``_^]G'B\N``QA``6*6(\O`$AY M```!;$ZY`````%"/4J[_['#_+P`O+O_L+RX`"$ZY```*-$_O``Q.N0``#"1* M@&<`_99.<4Y>3G5.5O_T2.<@`%BN``P@+@`0<D`$@0````AK``18L+L8"&;P M3OL8!D)/1%E@``1&0U).1V``!#Y#04U'8``#"E-04E1@``+P1$535&```NA' M4D%"8``"X$--05!@``'\0DU(1&````(O+@`4<!0O`&$`!+)0CW`4+P!(>0`` M```O+@`(3KD```NT3^\`#"\N``QA``2X6(]R`#(Y`````"\!+P!(>0```7U. MN0````!/[P`,+RX`#&$`!))8CW(`,CD````"+P$O`$AY```!CDZY`````$_O M``PO+@`,80`$;%B/<@`2.0````@O`2\`2'D```&?3KD`````3^\`#"\N``QA M``1&6(\R.0````1(P2\!+P!(>0```;!.N0````!/[P`,+RX`#&$`!"!8CS(Y M````!DC!+P$O`$AY```!P4ZY`````$_O``PO+@`,80`#^EB/<@`2.0````DO M`2\`2'D```'23KD`````3^\`#"\N``QA``/46(]R`!(Y````"B\!+P!(>0`` M`>1.N0````!/[P`,+RX`#&$``ZY8CW(`,CD````,+P$O`$AY```!]DZY```` M`$_O``PO+@`,80`#B%B/<@`2.0````XO`2\`2'D```('3KD`````3^\`#"\N M``QA``-B6(]R`!(Y````#R\!+P!(>0```AA.N0````!/[P`,+RX`#&$``SQ8 MCS(Y````$$C!+P$O`$AY```"*4ZY`````$_O``PO+@`,80`#%EB/,CD````2 M2,$O`2\`2'D```(Z3KD`````3^\`#&```AP@+@`4<@-.N0````!*@6<22'D` M``)+3KD```M06(]@``'Z#*X```!@`!1O$DAY```"=DZY```+4%B/8``!WB\N M`!1(>0`````O+@`(3KD```NT3^\`#"`N`!1R`TZY`````$*N__PM0/_X("[_ M_+"N__AL``&F+RX`#&$``G98CR]```0@+O_\<@-.N0`````@0-'\`````'(` M$A`@0-'\`````'0`%"@``2!`T?P`````<``0*``"+P`O`B\!+R[__"\O`!1( M>0```II.N0````!/[P`84J[__&".2'D```*Y3KD```M06(]@``$N<`0O`$AY M`````"\N``A.N0``"[1/[P`,+7D`````__PO+@`,80`!WEB/+R[__"\`2'D` M``*Z3KD`````3^\`#`@N``?__F<.2'D```+.3KD`````6(\(+@`&__YG#DAY M```"U4ZY`````%B/""X`!?_^9PY(>0```MY.N0````!8CP@N``/__F<.2'D` M``+G3KD`````6(\(+@`"__YG#DAY```"[$ZY`````%B/""X``/_^9PY(>0`` M`O1.N0````!8CP@N``?__V<.2'D```,#3KD`````6(\(+@`&__]G#DAY```# M%$ZY`````%B/""X``O__9PY(>0```QI.N0````!8CP@N``'__V<.2'D```,@ M3KD`````6(](>0```R].N0``"U!8CTYQ3-\`!$Y>3G5.5O_Z0J[__'#_+P`O M+@`,+RX`"$ZY```*-$_O``Q*K@`09W)P`2\`2&[_^R\N``A.N0``"[1/[P`, M("[__`*`````#TJ`9BY.N0``#"1*@&9$("X`%%B`+P!A``!T6(\O+O_\+P!( M>0```S%.N0````!/[P`,<``0+O_[+P!(>0```SY.N0````!0CU*N__Q3K@`0 M8(A(>0```T1.N0``"U!8CTY>3G5.5@``("X`""(N``RR@&<4+P$O`$AY```# M14ZY`````$_O``Q.7DYU3E8``$JY```#8F<><"`O`'!_+P!(>0```,5.N0`` M``!/[P`,0KD```-B(#D```%$(BX`"+*`9QP@0-'\````Q!"\`"`@02/(```! M1-'\````Q$(00?D```#$(`A.7DYU3E8``'`8(BX`"."I`H$```#_$\$```%( M<!`B+@`(X*D"@0```/\3P0```4D@+@`(X(@"@````/\3P````4H@+@`(`H`` M``#_$\````%+0?D```%((`A.7DYU3E;_^$CG#P0J;@`(+BX`#"PN`!`,A@`` M``%L4"H'2H9F!-JM`!P@+0`,T(60K0`<*`!M&+BM`!!N$BM$``PK10`<(`5, MWR#P3EY.=2\-3KD```V46(]P_R\`+P4O+0`(3KD```"(3^\`#&`>+PU.N0`` M#918CW`"+P`O!R\M``A.N0```(A/[P`,<``O`"\`+RT`"$ZY````B$_O``PK M0``<*T``&"`M`!Q,WR#P3EY.=0``3E8``$CG``0J;@`(N_P`````9TPO#4ZY M```,U%B/2JT`!&<,(&T`!$*G+PU.D%"/2JT`"&<,+RT`"$ZY````'%B/+RT` M%"\M`").N0```!A0CW`J+P`O#4ZY````&%"/3-\@`$Y>3G5.5O_X2.<#`$ZY M````>"X`+RX`"$ZY`````%B/+``O!B\N``@O!TZY````3$_O``RPAF8D<`$O M`$AY```#:"\'3KD```!,3^\`#$J`9PIP`4S?`,!.7DYU<`!,WP#`3EY.=0`` M3E;_^$CG!PPJ;@`(*&X`#"XN`!!Z`"`M`!"0K0`,+`"\AV\"+`=*AF<F(&T` M(M'M``PO!B\,+PA.N0````!/[P`,V<:>AMJ&W:T`'-VM``Q*AV<0+PU.N0`` M#$18CTJ`9P)@LB`%3-\PX$Y>3G4``'``+P`O`$ZY````,%"/`H```!``5L%$ M`4B!2,$@`4YU3E;_^$CG`P0J;@`(+"T`""\-3KD```V46(\@+0`8(BT`'+*` M9Q*2@$*G+P$O!DZY````B$_O``PO+0`4+RT`(B\&3KD````P3^\`#"X`2H=N M)"`M`!PK0``8<O\O`2\`+P9.N0```(A/[P`,<`!,WR#`3EY.=2`'*T``$"(M M`!S2@"M!`!AP`4S?(,!.7DYU3E;_]$CG!P0J;@`(>@$0+0`@"````&<``)0@ M+0`<D*T`#"X`("T`&+"'9RQ*K0`$9PX@;0`$<`,O`"\-3I!0CR`'D*T`&$*G M+P`O+0`(3KD```"(3^\`#$J59Q0@;0`$<`0O`"\-3I!0CRPM``Q@&"\M``PO M+0`B+RT`"$ZY````3$_O``PL`"`M``RPAF<(>@!*AFH"?``@!]"&*T``&!`M M`"`"`/_^&T``('``*T``$"M```P@!4S?(.!.7DYU3E;__$CG`0`O+@`(80#_ M,EB/+@`@;@`(2J@`!&<.(F@`!'`#+P`O"$Z14(\@!TS?`(!.7DYU``!.5O_T M2.<#'"IN``@H;@`,?``,K@````$`$&P&<`$M0``0+SP``0``<"HO`$ZY```` M`%"/)D"W_`````!G``#6$!0,``!R9A8N/````^T0+``!#```*V8&+CP```/M M$!0,``!W9C@N/````^X0+``!#```*V8H+SP```/M+PU.N0````!0CRP`2H9G M$G`!+P!"IR\&3KD```"(3^\`#$J&9@XO!R\-3KD`````4(\L`$J&9T@G1@`( M("X`$"=``!1"IR\`3KD`````4(\G0``B2H!G''``+P`O`"\&3KD```"(3^\` M#"=``!PG0``88"0O!DZY````'%B/3G%P*B\`+PM.N0```!A0CW``3-\XP$Y> M3G4@"TS?.,!.7DYU``````/L`````P````````%,```!!@```*`````C```` M`@``"BH```HD```*%```"@(```GN```)T```"<@```G"```)M@``":8```F0 M```'D```!WP```<V```'*```!QP```;,```&:@``!D0```8@```%^@``!=0` M``6N```%B```!6````4Z```%%@``!/````3*```$J@```\0```.D```"_@`` M`&0```!:`````0````,```F6````-0````0```N*```)H```"8````EH```) M0@``"2H```D2```(E```"(8```AP```(6@``"$0```@N```(&```"`(```?L M```'U@``!\````>H```'9@``!U````:V```&F@``!G8```90```&*@``!@0` M``7>```%N```!9(```5L```%1@``!2````3Z```$U````_@```.4```#3``` M`NX```*4```">@```A8```'V```!I@```3H```$@````]````.8```#8```` MR@```+P```".````>`````$````%```+9@````$````&```+[@```"@````' M```,6```#`P```L````*I```"H0```C<```'A@``!M8```2T```#+@```C8` M``CT```$(````WP```-:```!G````90```C````$%@```<H```%V```!7@`` M`2@```E(```(F@``!VP```:\```&H````YH```*:```"'````?P```&L```! M0````/H```#L````W@```-````#"````E````"`````)```);@``"3````D8 M```(C```"'8```A@```(2@``"#0```@>```("```!_(```?<```'Q@``!ZX` M``=6```&?```!E8```8P```&"@``!>0```6^```%F```!7(```5,```%)@`` M!0````3:```#_@```U(```+T```"@````'X````1````"@``#L````ZJ```. M8@``#G0```Y,```-4@``#20```R(```,J```#'0```N2```+>```"UH```LD M```*R@``"K8```J6````!@````L```[0```.D@``#?H```PL```+0@``"S0` M```"````#```!N8```:0`````0````T```<4`````````_(```/I````%$CG M`#HH;P`4(&\`&")O`!Q%^@`Z3^__="9/+'D````$3J[]]G#_2AM7R/_\1H!G M$B\`2&\`!$A43KD```!,3^\`#$_O`(Q,WUP`3G46P$YU```#[`````$````* M````.@````````/P`````G-C7W!U=```````3`````-S='5F9D-H87(````` M``!,`````G!S7V5M<'1Y````0@````)?7V1O<')N=``````````"<'-?<VEZ M90`````F`````W!S7V-O;6UO;@```````#`````````#\@```^D````(+P(D M+P`(2&\`#"\"+SD````43KD`````3^\`#"0?3G4```/L`````0````$````. M`````0````@````4`````````_`````"7W!R:6YT9@```````````2Y,-``` M```"`````2Y,,P```````````2Y,,@`````&`````2Y,,0`````<```````` M`_(```/I````*4CG(`(L>0````A,[P`&``Q.KO_B3-]`!$YU```O#BQY```` M""(O``A.KO_<+%].=4CG,`(L>0````A,[P`.`!!.KO_63-]`#$YU``!(YS`" M+'D````(3.\`#@`03J[_T$S?0`Q.=0``+PXL>0````A.KO_*+%].=2\.+'D` M```(3J[_Q"Q?3G5(YS`"+'D````(3.\`#@`03J[_ODS?0`Q.=0`````#[``` M``<````!````C@```'P```!L````4@```#8````@````!@````````/P```` M`E]3965K````````B`````)?3W5T<'5T`````'@````"7TEN<'5T``````!H M`````E]7<FET90``````3`````)?4F5A9````````#`````"7T-L;W-E```` M```<`````E]/<&5N``````````````````/R```#Z0```!(O#BQY````!$SO M``,`"$ZN_SHL7TYU```O#BQY````!")O``@@+P`,3J[_+BQ?3G4O#BQY```` M!$SO``,`"$ZN_LXL7TYU``````/L`````P````$````T````'`````0````` M```#\`````-?4V5T4VEG;F%L```````P`````E]&<F5E365M````&`````-? M06QL;V--96T``````````````````_(```/I````$4CG/``J`6<R:@)$@2@` M9RAJ`D2`0H)V'^.`XY*T@64$E(%2@%'+__(B`KF%:@)$@+.$:@A$@6`$0H%" M@$S?`#Q.=0`````#\@```^D````12.=X`"@`LX1*@&<P:@)$@"0`2H%F!$*` M8")J`D2!)@#&P4A"Q,%(0D)"UH)(0<#!2$!"0-"#2H1J`D2`3-\`'DYU```` #``/R ` end !Funky!Stuff! fi # end of overwriting check echo shar: "extracting 'iffencode.uue'" '(13498 characters)' if test -f 'iffencode.uue' then echo shar: "will not over-write existing file 'iffencode.uue'" else cat << \!Funky!Stuff! > 'iffencode.uue' begin 644 iffencode M```#\P`````````/``````````X```!Q````;@```(,```"'````!@````P` M``1G````%`````@````%````.0```"X```!.````#````!$```/I````<2// M````'"/`````)"/(````*$*Y````("QY````!"/.````!)/)3J[^VBA`2JP` MK&<``*AA``%L(&P`K-'(T<@@:``0T<C1R$CG(#!%^0```*Q'^0```"QT`7`` M$!@FRF`"%-A1R/_\0AH@.0```"0@>0```"@2&%.`;QX,`0`@;_12@B;*8`H2 M&%.`#`$`(&\$%,%@\D(:8-Q"&D*;(`),WPP$2'D````L+P!.N0```&@CP``` M`!!.N0```'@CP````!0CP````!A.N0````!P`"YY````'$YU80``QF$``+`C MP````"!"IR\`)$`@*@`D9Q`L>0````@@0"(H``!.KO^"(BH`(&<H)#P```/M M3J[_XB/`````$"/`````%"/`````&&<*Y8@@0"EH``@`I$ZY`````'``8`0@ M+P`$+GD````<+P`L>0````0@.0````AG`B)`3J[^8DJY````(&<.3J[_?")Y M````($ZN_H8@'TYU2.<!!BX\``.`!RQX``1.KO^43-]@@'!D8+!![`!<3J[^ M@$'L`%Q.KOZ,3G5"N0````A#^0```:P@/````!Y.KOW8(\`````(9[9.=0`` M```#[````!H````!```!N@```:H```&D```!:@```5X```%0```!0@```2(` M``$<```!%@```/8```#D````U````,8```#`````M````*8```!R````;``` M`%0```!.````(````!0````.````"`````(````"````!@```30```#,```` M`@````L```"N````N@````````/P`````F5X:70R```````!0`````)P87)M M17AI=````)H````"=V%I=&US9P````&0`````F1O;6%I;@`````!,@````)D M;V-O;G,``````00````$9G)O;5=O<FMB96YC:````````-H````#97AI=%1O M1$]3```````!<@````)F<F]M0TQ)`````#0````"7V5X:70```````$\```` M`F]P96Y$3U,````!H@````(V)#<U,@```````)8````"<W1A<G1U<``````` M`````C4D-S4R````````D@````(T)#<U,@```````(@````",R0W-3(````` M``!V`````C(D-S4R````````8@````(Q)#<U.````````5@````",20W-3(` M``````!D`````FYO1$]3```````!=@````````/R```#Z@```&X``0`````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M`````````````````````&1O<RYL:6)R87)Y`````_`````"5F5R4F5V```` M`````````E]$3U-"87-E````"`````)?<W1D:6X``````!`````#9&]S0VUD M3&5N````````)`````-I;FET:6%L4U`````````<`````V1O<T-M9$)U9@`` M`````"@````#87)G=D%R<F%Y````````+`````)?97)R;F\```````P````" M7U-Y<T)A<V4````$`````D1/4TYA;64````!K`````-A<F=V0G5F9F5R```` M``"L`````E]S=&1O=70`````%`````)?<W1D97)R`````!@````#<F5T=7)N M37-G````````(`````````/R```#ZP```(,```/R```#Z@```(=.3TQ!0T4` M3D]#3TU0`$1%0E5'`&EF9F5N8V]D92!;3D],04-%75M.3T-/35!=`"AC*3$Y M.#8@36%T=&AE=R!$:6QL;VXN("!0=6)L:6,@1&]M86EN(%8Q+C`P``!.3TQ! M0T4@("US879E(&]N;'D@=&]P(&AA;&8@;V8@<V-R965N(&EF(&EN(&EN=&5R M;&%C90!.3T-/35`@("UD;R!.3U0@=7-E($)95$5254XQ(&-O;7!R97-S:6]N M`&EN='5I=&EO;BYL:6)R87)Y`$-A;B=T(&]P96X@26YT=6ET:6]N+@H`9W)A M<&AI8W,N;&EB<F%R>0!#86XG="!O<&5N($=R87!H:6-S+@IN``I314Q%0U0Z M(#Q7/G)I=&4L(#Q./F5W26UA9V4L(#Q1/G5I="`_``I7<FET92!T;R!F:6QE M("AL96%V92!B;&%N:R!T;R!A8F]R="DZ`'<`*D)214%+*BP@9FEL92!D96QE M=&5D`&1O;F4`8V]U;&0@;F]T(&]P96X@9FEL90!-;W9E(%-C<F5E;G,@<V\@ M4V-R965N('1O(&=R86(@:7,@:&EG:&5S="X`<')E<W,@/%)%5#X@=VAE;B!R M96%D>3H@`$EL;&5G86P@(V-O;&]R<R\C<&QA;F5S.B`E;&0O)6QD"@!V<&UO M9&4@/2`H)6QD>"5L9'@E;&0I("4X;'@*`%-#04Y,24Y%``H```````/R```# MZ0````8@;P`$2AAF_)'O``21_`````$@"$YU``````/R```#Z0````P@;P`$ M(F\`""`O``QG```>L\AG```8;P``#M'`T\`3(%.`9OI.=1+84X!F^DYU```` M``/R```#Z0``!&=.5O^:'7P``?__0B[_KG`!+4#_JB`N_ZJPK@`(;```TN6` M(&X`#-'`2'D`````+Q!.N0``$4A0CTJ`9@H([@`!_ZY@``"D("[_JN6`(&X` M#-'`2'D````'+Q!.N0``$4A0CTJ`9@@([@``_ZY@>B`N_ZKE@"!N``S1P$AY M````#B\03KD``!%(4(]*@&8(".X``O^N8%)(>0```!1.N0``#@A8CTAY```` M+TZY```."%B/2'D```!<3KD```X(6(](>0```%U.N0``#@A8CTAY````DTZY M```."%B/<`$O`$ZY```!/%B/4J[_JF``_R9"ITAY````O$ZY```!(%"/(\`` M````2H!F#$AY````SF$``F!8CT*G2'D```#E3KD```$@4(\CP`````1*@&8, M2'D```#V80`".EB/2&[_HDAN_YY(;O^F80`!+D_O``Q*+O__9P`!&DAY```! M#4ZY`````%B/80`!R`R`````46<``/8,@````$YG``#6#(````!79LI(>0`` M`31.N0````!8CTAN_Z].N0``#:!8CTHN_Z]GJB\\```@`$AY```!6TAN_Z]. MN0``$"A/[P`,+4#_FDJ`9WAR`2\!+P!.N0``"ZQ0CQ`N_ZY(@$C`+R[_FB\N M_Z(O+O^>+R[_IB\`80`!T$_O`!0O+O^:3KD```M$6(].N0``#H!*@&<@2'D` M``%=3KD```X(6(].N0``#FQ(;O^O3KD```"D6(](>0```7-.N0``#@A8CV`` M_Q)(>0```7A.N0``#@A8CV``_P!(;O^B2&[_GDAN_Z9A&$_O``Q@`/[J0B[_ M_V``_N)A``$B3EY.=4Y6``!(>0```8Q.N0``#@A8CTAY```!MTZY`````%B/ M80``EB\N`!`O+@`,+RX`"&$(3^\`#$Y>3G5.5O_P3KD`````(GD`````(&D` M/"U\```G#__P+4C_^"U(__0M2/_\2J[_^&<B(&[_^#`H``I(P+"N__!L""U` M__`M2/_T(&[_^"U0__A@V$ZY````$"!N__30_``L(FX`""*((FX`#"*H``0@ M;O_TT/P`5")N`!`BB$Y>3G5.5O^P2&[_L$ZY```-H%B/2H!G*!`N_[`,``!A M;1(,``!Z;@P$``!A!@``01U`_[`0+O^P2(!(P$Y>3G5P($Y>3G5.5@``+RX` M"$ZY`````%B/81!P_R\`3KD```$\6(].7DYU2KD`````9PXO.0````!.N0`` M`0Q8CTJY````!&<.+SD````$3KD```$,6(].=4Y6_VA(YR``(&X`%"UH``3_ M_"!N__PP$.=`/4#_Z#UH``+_ZG``/4#_[CU`_^P=:``%__!"+O_Q""X````+ M9P1P`&`"<`$=0/_R0F[_]!U\``K_]AU\``O_]SUN_^C_^#UN_^K_^G``$"[_ M\'(!X:$M0?]X#($```!`9@9P("U`_W@@+O]X#(`````@;R1R`!(N__`O`2\` M2'D```'03KD`````3^\`#'``3-\`!$Y>3G5"KO]\(&X`$"UH``3_="`N_WRP MKO]X;$YR`TZY`````'(`(&[_=#(0+T$`#.")`H$````/Z8$=@0B((B\`#.B) M`H$````/Z8$=@0B)(B\`#`*!````#^F!'8$(BE*N_WQ4KO]T8*@M;O]X_X!P M`"!N``PP*``@`H```(Q$+4#_A`@N``$`"V<<"````F<6"(```BU`_X0P+O_J MXD@]0/_J/4#_^G``,"[_Z'(`,B[_ZG0`%"[_\"\N_X0O`B\!+P!(>0```?). MN0````!/[P`4+SQ&3U)-+RX`&&$`!!10CR\\24Q"32\N`!AA``/F4(\O/$)- M2$0O+@`880`#]%"/<!0O`$AN_^@O+@`83KD```^83^\`#$*G+RX`&&$``])0 MCR\\0TU!4"\N`!AA``/"4(\@+O^`<@-.N0`````O`$AN_X@O+@`83KD```^8 M3^\`#$*G+RX`&&$``Y90CR\\0T%-1R\N`!AA``.&4(]P!"\`2&[_A"\N`!A. MN0``#YA/[P`,0J<O+@`880`#9%"/+SQ"3T19+RX`&&$``U10CT*N_WQP`#`N M_^HB+O]\LH!D8$*N_WAP`!`N__`B+O]XLH!D2.6!(&[__%"(T<%P`")N__PP M$2]```@B+O]\3KD`````(E#3P"\N``@O+P`,+PDO+@`883I/[P`03KD```Z` M2H!F#%*N_WA@JE*N_WQ@DD*G+RX`&&$``M90CT*G+RX`&&$``LI0CTS?``1. M7DYU3E;_\@@N````%V<:+RX`$"\N``PO+@`(3KD```^83^\`#$Y>3G4(+@`" M`!=G#DAY```"#TZY```."%B/<``M0/_\+4#_^"U`__0@+O_XL*X`$&P``:!. MN0``#H!*@&<&<`!.7DYU+6[_^/_T("[_]+"N`!!L'"!N``S1[O_X(FX`#-/` M$!`2$;`!9@92KO_T8-H@+O_TD*[_^`R``````VT``4@@+O_XD*[__`R````` M@&U$'7P`?__S<`$O`$AN__,O+@`(3KD```^83^\`#"!N``S1[O_\+SP```"` M+P@O+@`(3KD```^83^\`#`:N````@/_\8*P@+O_XD*[__$J`;SY3@!U`__-P M`2\`2&[_\R\N``A.N0``#YA/[P`,("[__"!N``S1P"(N__B2@"\!+P@O+@`( M3KD```^83^\`#"`N__20KO_X#(````"`;4(=?`"!__-P`2\`2&[_\R\N``A. MN0``#YA/[P`,(&X`#-'N__AP`2\`+P@O+@`(3KD```^83^\`#`:N````@/_X M8*X@+O_TD*[_^$J`;SI3@$2`'4#_\W`!+P!(;O_S+RX`"$ZY```/F$_O``P@ M;@`,T>[_^'`!+P`O""\N``A.N0``#YA/[P`,("[_]"U`__PM0/_X8`#^8BUN M__3_^&``_E@@+@`0D*[__`R`````@&U$'7P`?__S<`$O`$AN__,O+@`(3KD` M``^83^\`#"!N``S1[O_\+SP```"`+P@O+@`(3KD```^83^\`#`:N````@/_\ M8*P@+O_\(BX`$)*`2H%O1"(N__B2@%.!'4'_\W`!+P!(;O_S+RX`"$ZY```/ MF$_O``P@+O_\(&X`#-'`(BX`$)*`+P$O""\N``A.N0``#YA/[P`,<`%.7DYU M3E8``'`$+P!(;@`,+RX`"$ZY```/F$_O``Q.7DYU3E;_\$*N__Q*K@`,9V1P M!"\`2&X`#"\N``A.N0``#YA/[P`,<`0O`$AN__PO+@`(3KD```^83^\`#"`Y M```"".6`4KD```((($#1_`````AP`"\`+P`O+@`(+T@`#$ZY```*D$_O``P@ M;P``((!@``"V2KD```((9P``K%.Y```""'``+P`O`"\N``A.N0``"I!/[P`, M(CD```((Y8$@0='\````""U`__20D"U`__@(+@``__=G&G`!+P!(;O_\+RX` M"$ZY```/F$_O``Q2KO_T(#D```((Y8`@0-'\````""`068!R_R\!+P`O+@`( M3KD```J03^\`#'`$+P!(;O_X+RX`"$ZY```/F$_O``QP_R\`+R[_]"\N``A. MN0``"I!/[P`,3EY.=0``3E;_^$CG#P0J;@`(+BX`#"PN`!`,A@````%L4"H' M2H9F!-JM`!P@+0`,T(60K0`<*`!M&+BM`!!N$BM$``PK10`<(`5,WR#P3EY. M=2\-3KD```]@6(]P_R\`+P4O+0`(3KD```"(3^\`#&`>+PU.N0``#V!8CW`" M+P`O!R\M``A.N0```(A/[P`,<``O`"\`+RT`"$ZY````B$_O``PK0``<*T`` M&"`M`!Q,WR#P3EY.=0``3E8``$CG``0J;@`(N_P`````9TPO#4ZY```.H%B/ M2JT`!&<,(&T`!$*G+PU.D%"/2JT`"&<,+RT`"$ZY````'%B/+RT`%"\M`"). MN0```#A0CW`J+P`O#4ZY````.%"/3-\@`$Y>3G5.5O_\2.<!!"IN``@@+@`, M!(#_____;0``\`R`````!FP``.;E@$[["`)@```68```)&```%Q@``#08``` MJF```+9*E5;`1`!(@$C`3-\@@$Y>3G5*E6<N+PUA``"V6(\O%4ZY````G%B/ M+RT`%"\M`"9.N0```#A0CW``*H`K0``F*T``!'`!3-\@@$Y>3G5*E69(<``O M`"\`3KD`````4(\N`$J'9RI"IR\M`!1.N0```"!0CRM``"9*@&84+P=.N0`` M`)Q8CW``3-\@@$Y>3G4JAT'Z_RHK2``$<`%,WR"`3EY.=2\-82A8CW`!3-\@ M@$Y>3G4O#6$``&A8CW`!3-\@@$Y>3G5P`$S?((!.7DYU3E8``$CG``0J;@`( M2I5G.!`M`"`(```!9RXO%4ZY````^%B/+Q5.N0```.18CW)$+P$O`$ZY```` M.%"/$"T`(`(`__T;0``@3-\@`$Y>3G5.5O_P2.<`/"IN``@@+0`(Y8`D0"\\ M``$``'!$+P!.N0```"!0CR9`($O0_``4(`@G0``*)TL`%"=5`!AP5R=``!P@ M2]#\`"@H2"BJ`"0I;0`B``0I;0`,``@O#6$`_U)8CR\++RH`"$ZY````S%"/ M$"T`(`````(;0``@(&T`(BMM`"8`(BM(`"9,WSP`3EY.=4Y6__A(YP,$*FX` M"'X`3KD```!H+``@3=''<`$O`"\(+P9.N0```#!/[P`,2H!G&E*'(`=3@"!- MT<`0$`P```UG"`P```IFSDYQ2H=G#B`'4X`@3='`0A`@36`"D<@@"$S?(,!. M7DYU3E;_^$CG`P!.N0```'@N`"\N``A.N0````!8CRP`+P8O+@`(+P=.N0`` M`$Q/[P`,L(9F)'`!+P!(>0```A@O!TZY````3$_O``Q*@&<*<`%,WP#`3EY. M=7``3-\`P$Y>3G4``"\\```0`$*G3KD```!D4(].=0``<``O`"\`3KD```!D M4(\"@```$`!6P40!2(%(P2`!3G5.5O_T2.<'!"IN``AZ`1`M`"`(````9P`` ME"`M`!R0K0`,+@`@+0`8L(=G+$JM``1G#B!M``1P`R\`+PU.D%"/(`>0K0`8 M0J<O`"\M``A.N0```(A/[P`,2I5G%"!M``1P!"\`+PU.D%"/+"T`#&`8+RT` M#"\M`"(O+0`(3KD```!,3^\`#"P`("T`#+"&9PAZ`$J&:@)\`"`'T(8K0``8 M$"T`(`(`__X;0``@<``K0``0*T``#"`%3-\@X$Y>3G5.5O_\2.<!`"\N``AA M`/\R6(\N`"!N``A*J``$9PXB:``$<`,O`"\(3I%0CR`'3-\`@$Y>3G4``$Y6 M__Q(YP,,*FX`""AN``PN+@`0("T`%)"M``RPAVT"(`<L`"!M`"+1[0`,+P8O M""\,3KD`````3^\`#)Z&V<;=K0`<(`8B+0`,T($K0``,(BT`$+*`;`0K0``0 M$"T`(`````$;0``@2H=G&B\-3KD```Z@6(\L`$J&9IAP`$S?,,!.7DYU<`%, MWS#`3EY.=4Y6__1(YP,<*FX`""AN``Q\``RN`````0`0;`9P`2U``!`O/``! M``!P*B\`3KD````@4(\F0+?\`````&<``-80%`P``')F%BX\```#[1`L``$, M```K9@8N/````^T0%`P``'=F."X\```#[A`L``$,```K9B@O/````^TO#4ZY M`````%"/+`!*AF<2<`$O`$*G+P9.N0```(A/[P`,2H9F#B\'+PU.N0````!0 MCRP`2H9G2"=&``@@+@`0)T``%$*G+P!.N0```"!0CR=``")*@&<<<``O`"\` M+P9.N0```(A/[P`,)T``'"=``!A@)"\&3KD````<6(].<7`J+P`O"TZY```` M.%"/<`!,WSC`3EY.=2`+3-\XP$Y>3G4``$Y6``!(YP`,*FX`""AN``Q*%6<N M2A1G*A`5$A2P`60*</],WS``3EY.=1`5$A2P`6,*<`%,WS``3EY.=5*-4HQ@ MSA`5$A2P`6;.<`!,WS``3EY.=0```^P````"`````````XH```#B````$``` M``(```I"```*.```"@8```G\```)X@``"=@```FP```)J```":````.T```# MK````YX```.6```"O@```2@```$"````&`````,```Y"```&U@``!38```1< M```"C````GX```)"```",````A````&N```!B````5H```$R```!&@```0P` M``#T````T````,(```"T````I@```)@```!\````5````"H````!````!``` M#AX````!````!0``#\P````S````!@``$`@```M<```+````"N````J"```* M5@``"?(```G$```*;```"BH```F6```)@```"5@```DX```)%@``"-P```B^ M```(>```"%P```@H```(#```!^````>^```'C```!VX```;````%\```!;X` M``6"```"'@``!OX```9R```"!@```?X```'0```!N````SH```&:```&W``` M`H0```)(```"-@```A8```#6````R````+H```"L````G@```(0```!<```` M,@````8````(```%/```!&(```-\```"D@```8X```%@`````P````H```Q( M```,;@``#!`````1````"P``$1P``!$&```0O@``$-```!"H```/'@``#O`` M``Y*```.,```#A(```W$```-L```"X````LF```+$@``"O(```(H````%``` M``P``!$L```0[@``$%8```Z(```.=@``#7@```SF```,W```#2X```Q<```, M]```#"````N>```+D````[H```.D```#!````K@```$@````^@````$````- M```&5`````(````.```%K@``!)`````````#\@```^D````42.<`.BAO`!0@ M;P`8(F\`'$7Z`#I/[_]T)D\L>0````1.KOWV</]*&U?(__Q&@&<2+P!(;P`$ M2%1.N0```$Q/[P`,3^\`C$S?7`!.=1;`3G4```/L`````0````L````Z```` M`````_`````"<V-?<'5T``````!,`````W-T=69F0VAA<@```````$P````" M<'-?96UP='D```!"`````E]?9&]P<FYT``````````)P<U]S:7IE`````"8` M```#<'-?8V]M;6]N````````,`````````/R```#Z0````@O`B0O``A(;P`, M+P(O.0```!1.N0````!/[P`,)!].=0```^P````!`````0````X````!```` M!P```!0````````#\`````)?<')I;G1F```````````!+DPT``````(````! M+DPS```````````!+DPR``````8````!+DPQ`````!P````````#\@```^D` M```%(&\`!""(6)!"J``$(4@`"$YU``````/P`````E].97=,:7-T```````` M``````/R```#Z0```#E(YS\@*"\`(!8O`"<O//____].N0```'PJ`"P%=/^T MA5B/9@9P`&```&XO/``!``%(>``B3KD````@)$#/BDJ'SXI0CV8.+P9.N0`` M`)!P`%B/8$(E1``*%4,`"15\``0`"$(J``X51@`/0J=.N0```%`E0``02H18 MCV<,+PI.N0```*18CV`,2&H`%$ZY`````%B/(`I,WP3\3G5(YR`@)&\`#$JJ M``IG"B\*3KD```"X6(\5?`#_``AT_R5"`!1T`!0J``\O`DZY````D$AX`"(O M"DZY````.$_O``Q,WP0$3G4```/L`````0````D```".````"`````P````V M````%````&X```#*````2@```(````"N````U@````````/P`````2Y,.0`` M```,`````2Y,.``````J`````2Y,-P````!4`````2Y,-@````"(`````2Y, M-0````!\`````2Y,-`````"4`````2Y,,P````!&`````2Y,,@`````D```` M`2Y,,0````"6`````2Y,,3<```"@`````2Y,,38```"<`````2Y,,34```"D M`````2Y,,30```"J`````2Y,,3,```"T`````2Y,,3(```#>`````2Y,,3$` M```$`````2Y,,3```````````U]$96QE=&50;W)T`````)P````#7T-R96%T M95!O<G0```````````````/R```#Z0```"Y(YR`"+'D````(3.\`!@`,3J[_ MXDS?0`1.=0``+PXL>0````@B+P`(3J[_W"Q?3G5(YS`"+'D````(3.\`#@`0 M3J[_UDS?0`Q.=0``2.<P`BQY````"$SO``X`$$ZN_]!,WT`,3G4``"\.+'D` M```(3J[_RBQ?3G4O#BQY````"$ZN_\0L7TYU2.<P`BQY````"$SO``X`$$ZN M_[Y,WT`,3G4``"\.+'D````((B\`"$ZN_[@L7TYU```#[`````@````!```` MJ````(X```!\````;````%(````V````(`````8````````#\`````-?1&5L M971E1FEL90````"D`````E]3965K````````B`````)?3W5T<'5T`````'@` M```"7TEN<'5T``````!H`````E]7<FET90``````3`````)?4F5A9``````` M`#`````"7T-L;W-E```````<`````E]/<&5N``````````````````/R```# MZ0```$XO#BQY````!$ZN_WPL7TYU+PXL>0````1.KO]V+%].=2\.+'D````$ M3.\``P`(3J[_.BQ?3G4``"\.+'D````$(F\`""`O``Q.KO\N+%].=2\.+'D` M```$(F\`"$ZN_MHL7TYU+PXL>0````1,[P`#``A.KO[.+%].=0``+PXL>0`` M``0@+P`(3J[^MBQ?3G4O#BQY````!"`O``A.KOZP+%].=2\.+'D````$(F\` M"$ZN_IXL7TYU+PXL>0````0B;P`(3J[^F"Q?3G4O#BQY````!$SO`P``"$ZN M_I(L7TYU```O#BQY````!"!O``A.KOZ,+%].=2\.+'D````$(&\`"$ZN_H`L M7TYU+PXL>0````0B;P`(3J[^8BQ?3G4O#BQY````!")O``@@+P`,3J[]V"Q? M3G4```/L````#P````$```$D```!$````/P```#H````T````+P```"H```` ME````(````!H````5````#P````D````%`````0````````#\`````-?3W!E M;DQI8G)A<GD```$@````!%]#;&]S94QI8G)A<GD```````$,`````U]786ET M4&]R=````````/@````"7T=E=$US9P````#D`````E]0=71-<V<`````S``` M``)?4F5M4&]R=````+@````"7T%D9%!O<G0```"D`````U]&<F5E4VEG;F%L M`````)`````#7T%L;&]C4VEG;F%L````?`````-?4V5T4VEG;F%L``````!D M`````U]&:6YD5&%S:P```````%`````"7T9R965-96T````X`````U]!;&QO M8TUE;0```````"`````"7U!E<FUI=``````0`````E]&;W)B:60````````` M``````/R```#Z0````Q(YW``)`!G($J!9@1"@&`8)@#&P4A"Q,%(0D)"UH)( M0<#!2$!"0-"#3-\`#DYU``````/R```#Z0```!%(YW@`*`"SA$J`9S!J`D2` M)`!*@68$0H!@(FH"1($F`,;!2$+$P4A"0D+6@DA!P,%(0$)`T(-*A&H"1(!, +WP`>3G4``````_(" ` end !Funky!Stuff! fi # end of overwriting check exit 0 # End of shell archive