Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!rutgers!bellcore!wind!tr From: tr@wind.bellcore.com (tom reingold) Newsgroups: comp.sys.ibm.pc Subject: Enclosed are binary and source for uudecode and uuencode for the PC Message-ID: <3249@bellcore.bellcore.com> Date: Mon, 26-Oct-87 08:25:58 EST Article-I.D.: bellcore.3249 Posted: Mon Oct 26 08:25:58 1987 Date-Received: Wed, 28-Oct-87 05:07:47 EST Sender: news@bellcore.bellcore.com Reply-To: tr@wind.UUCP (tom reingold) Organization: Bellcore, Morristown, Noo Joizy Lines: 750 #! /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 the files: # uudecode.c # uuencode.c # uu.uue # This archive created: Mon Oct 26 08:19:58 1987 # By: tom reingold (Bellcore, Morristown, Noo Joizy) export PATH; PATH=/bin:$PATH if test -f 'uudecode.c' then echo shar: will not over-write existing file "'uudecode.c'" else cat << \SHAR_EOF > 'uudecode.c' /* uudecode.c */ #ifndef lint static char sccsid[] = "@(#)uudecode.c 5.1 (Berkeley) 7/2/83"; #endif /* * uudecode [input] * * create the specified file, decoding as you go. * used with uuencode. */ #include #ifndef MSDOS #include #endif #include #include /* single character decode */ #define DEC(c) (((c) - ' ') & 077) main(argc, argv) char **argv; { FILE *in, *out; struct stat sbuf; int mode; char dest[128]; char buf[80]; /* optional input arg */ if (argc > 1) { if ((in = fopen(argv[1], "r")) == NULL) { perror(argv[1]); exit(1); } argv++; argc--; } else in = stdin; if (argc != 1) { printf("Usage: uudecode [infile]\n"); exit(2); } /* search for header line */ for (;;) { if (fgets(buf, sizeof buf, in) == NULL) { fprintf(stderr, "No begin line\n"); exit(3); } if (strncmp(buf, "begin ", 6) == 0) break; } sscanf(buf, "begin %o %s", &mode, dest); /* handle ~user/file format */ #ifndef MSDOS if (dest[0] == '~') { char *sl; struct passwd *getpwnam(); char *index(); struct passwd *user; char dnbuf[100]; sl = index(dest, '/'); if (sl == NULL) { fprintf(stderr, "Illegal ~user\n"); exit(3); } *sl++ = 0; user = getpwnam(dest+1); if (user == NULL) { fprintf(stderr, "No such user as %s\n", dest); exit(4); } strcpy(dnbuf, user->pw_dir); strcat(dnbuf, "/"); strcat(dnbuf, sl); strcpy(dest, dnbuf); } #endif /* create output file */ #ifdef MSDOS /* binary output file */ out = fopen(dest, "wb"); #else out = fopen(dest, "w"); #endif if (out == NULL) { perror(dest); exit(4); } chmod(dest, mode); decode(in, out); if (fgets(buf, sizeof buf, in) == NULL || strcmp(buf, "end\n")) { fprintf(stderr, "No end line\n"); exit(5); } exit(0); } /* * copy from in to out, decoding as you go along. */ decode(in, out) FILE *in; FILE *out; { char buf[80]; char *bp; int n; for (;;) { /* for each input line */ if (fgets(buf, sizeof buf, in) == NULL) { printf("Short file\n"); exit(10); } n = DEC(buf[0]); if (n <= 0) break; bp = &buf[1]; while (n > 0) { outdec(bp, out, n); bp += 4; n -= 3; } } } /* * output a group of 3 bytes (4 input characters). * the input chars are pointed to by p, they are to * be output to file f. n is used to tell us not to * output all of them at the end of the file. */ outdec(p, f, n) char *p; FILE *f; { int c1, c2, c3; c1 = DEC(*p) << 2 | DEC(p[1]) >> 4; c2 = DEC(p[1]) << 4 | DEC(p[2]) >> 2; c3 = DEC(p[2]) << 6 | DEC(p[3]); if (n >= 1) putc(c1, f); if (n >= 2) putc(c2, f); if (n >= 3) putc(c3, f); } /* fr: like read but stdio */ int fr(fd, buf, cnt) FILE *fd; char *buf; int cnt; { int c, i; for (i=0; i 'uuencode.c' /* uuencode.c */ /* uudecode and uuencode are easily implemented under MSDOS as well. Here are the sources for Microsoft C v3.0, but if you have another kind of C compiler, there should be perhaps only 1 change -- the output file of uudecode and the input file of uuencode must be in binary format. (ie. binary files, like .EXE files may have byte patterns that are the same as ^Z, which signals end-of-file in non-binary (text) mode). Don Kneller UUCP: ...ucbvax!ucsfcgl!kneller ARPA: kneller@ucsf-cgl.ARPA BITNET: kneller@ucsfcgl.BITNET */ #ifndef lint static char sccsid[] = "@(#)uuencode.c 5.1 (Berkeley) 7/2/83"; #endif /* * uuencode [input] output * * Encode a file so it can be mailed to a remote system. */ #include #include #include /* ENC is the basic 1 character encoding function to make a char printing */ #define ENC(c) (((c) & 077) + ' ') main(argc, argv) char **argv; { FILE *in; struct stat sbuf; int mode; /* optional 1st argument */ if (argc > 2) { #ifdef MSDOS /* Use binary mode */ if ((in = fopen(argv[1], "rb")) == NULL) { #else if ((in = fopen(argv[1], "r")) == NULL) { #endif perror(argv[1]); exit(1); } argv++; argc--; } else in = stdin; if (argc != 2) { printf("Usage: uuencode [infile] remotefile\n"); exit(2); } /* figure out the input file mode */ fstat(fileno(in), &sbuf); mode = sbuf.st_mode & 0777; printf("begin %o %s\n", mode, argv[1]); encode(in, stdout); printf("end\n"); exit(0); } /* * copy from in to out, encoding as you go along. */ encode(in, out) FILE *in; FILE *out; { char buf[80]; int i, n; for (;;) { /* 1 (up to) 45 character line */ n = fr(in, buf, 45); putc(ENC(n), out); for (i=0; i> 2; c2 = (*p << 4) & 060 | (p[1] >> 4) & 017; c3 = (p[1] << 2) & 074 | (p[2] >> 6) & 03; c4 = p[2] & 077; putc(ENC(c1), f); putc(ENC(c2), f); putc(ENC(c3), f); putc(ENC(c4), f); } /* fr: like read but stdio */ int fr(fd, buf, cnt) FILE *fd; char *buf; int cnt; { int c, i; for (i=0; i 'uu.uue' begin 664 uu.arc M&@AU=61E8V]D92YE>&4`)B$``"\->&!G7M@I```,3;1@"U`!``$`(``0`_#O M7S`!`!``XK&D````'@!`&A```)<`+00PL0B`3(>+MDY"^J>Q7)5%['#1`X!. M'X%!?@@$\',#%Q0`4!9Y,?#OC@!T(@X,(D8@D2$N_Q8`JV-!*%&CZ-8H)28` M5T(8,^0Y?K/ M%E2?0!L98O`/+)O!!J36P8"+#5!Z[5 M@5VD"G0)[%6&@(AQBTD)")?P`0")&^".5'R7$U@J-_.#D#P!^Z'*A/Q<2 M90<_JI%'EA'\W.2&/P.L$TZ##T:("VGHX#"`%4(1T)N+,,H8#3AC+H*,(D<$ M`"8`,0*P2#2Q$#`-/@L(0Z,_:`JP9IO1X-.GF6BJ^2*;,KX9YS3@U,DCF@/L M6>B91^@Y:)N&&H"HHD;H@Q,"`?"!@E7_/&'6'Q#Q`0&+_EBUR`W_'(`(`2J0 MLPYC=ACI#SJ?!+#437X@(("GH(HZ"*D`F,HB/ZJRZBJLLM)J)))QZ,K4I@,` M.U2HHY9Z:J;)MOIJK+,6>:$^Z`PA+0%>4`DA3-'1)(,`5AS#Y$7K]-`EML.6 MVD"7J[:J"+/K)'`A`>C\5-:=/33TX2),KE.5%\C6BBHB##'),`(Y,,G'+NDZ MN"X["*(S$)<8_HL#6G40L(@Q``7`.@.DO?8_H.`%`,'X,Z_\(P"*XX"4C$``1!UB'&AQ7!R<$PA_>`$`=6J`YL!RC M`6613`V.80!/#"`"#/@?`<12@/%];1S&&%O9CD&`2!1@';BP'%B2@4&N("YN MSC.`W38Q-0+\HB-7B`T!H%!!=+@`?^ZY4PZZ1X(,<0,"&,-"A#-.40QGB M4(!-C%0=)&!#ART1["``3D`/$(7PP`"$O(`SO0\0(*H`,&%=B%3`.Q#YG. M`0%3^,<%MC"$(:Q#'KD@S0K"X0M1U),?/9T'*=`!#P+,H!WH`$4^P&(&`(1S M"G0(PQC6$$T[8-,,;'C#'<(93B*DP0YI($,90(!-.4B3L0HP0F*MF08WG`$$ M<'A#9^D``C>\@;2;E2PX%1`+">CB9S)H1S!W`1%:``&.%OA`T?:R`P'$`@*Z M,(0!UE&.6'1`%Y88KC-!G!/B'!3PX,'1D8'8>8V[O?K<(.R!@$3G! M"6GJH()U2,`*Z&!"CVQ8(R#4(0%+)$`='("@=:A@8@4X`@\44`<$&,,B#&L+ M!M9B`#K,XQ^RZUNIE$$[V_4&7,>@HKJT"R]T]($"BX#'`NQ!AP=805P80LH)#_0N8,QKLS(Z-C!F M`TBNRS,8`)C1P8!"2UC([."=`7[GBPBBEP$NGAT^8E-1':,C%`K(GSX$/0<7 MJRQ3CZY9I-FA`".KK!^#>(<"C%$$`R0A$2E+1`W0>XDVV[`(`HCQC&MU95[T MV#VI_IBKP6L`#QQ@$=]`4"X:(@]7!.$>V5C$/N9A"JW]8P;)T$$1_B&'`D`N M"'>[1S06$0PJJOIWSEZ$$Q`PCA[/Z;5`G#5JV`5*UG-*@]T"$``"B`''10`B)Q(D`#& M,*`_/%`,"P#TH'#\0$,?.HX#T)8A+`TP+9@`1^U.FF3?'A`&GPFA!W+P M&0)Z<`>?Q2`=A@"`O/S1D7^@Q2J`^,$*ZG``0#C!'PBPN@$8YH\2'```/>@( M'330`XC0@08].,C;UP&!J4-D'="8^D'6D8P9_(..8%=Z()X!D4"<@TA8_P$= MZ@"!P0,`"`[[892\\8L$!&`=V1Y*UL60,L<#`A<$!7-U1^"Y)&9**GVP*S#6 M(03`(Z!XQL@9(-81`<"3YF>Q3\LZ4,X\#GH0A#(`AE#T`39$J!`3H,->4^#& M(GT@8FLK2W:$;O;`"-:!!U:K@PU,6#X5FNT$(B0A]U'H?=]_,(2L4]O^&">Y M==#@@?:0(`NR;X+QFZ]L=;B`#'_JEQOFQP!38S>Y,#,39C/=118F1P=,4'T2 M5`)%1`E^D1\6@%ZOX&L",'XI1#:3HP'P)T$;@%Z38('S@PZ$X!?48P#[!@R, M8D#`G%WQW MHX="020U8GQ.M1;Z<`0XH0\2Y`TL=!'))@<(@"#J,@<&@`X-``!%\P_J0H/H MT!'#(`JH,``A5PQ"`+E!@LO=`!BP0,3('"P,`&[ MP`T#<`V8,`IJ-@R*0`SK<`\I1FESX7?K<`'"LS,]0P<+@%YJ(`%E,30!X(C& M@#$VX`D!,`?C\&/2QRZ$0!/%@`]&9@#,,0HRA2"CH`8%,`ILP"`&-`I:@(\( M,`IB@$=M6`=.Q`H!\"]=@PUBDP%Z0P<0@`Z54`!&8)!>DY!Z4P?S,!$ET$3I MX`8!((]>4(]H4(]<4(]F4(]@4(]D4`"(8`@O(QL\H`(?\@\&\)$120`'29&/ M,P.LT#4.D)+1$`X_.0`]60!!B0R#D`XPD`A#*9$(>0@**5_;L`#)\#,R&9*[ M)Y,E.1%HT%\<=)(=L0X+,!%LP'5=60`049-=@P_V4`@*V3P+4)8048=0PP2# M\`];4`='(),CZ9)>\"'^P))6YW>*`)AR)E.(T(V!\`]VQ`?O0'<3T04,N9-> M,P`>(%.`<`,!T&1UL`Y-!CFX,`>38V+:XSX"F0ZCX";'T`)C@'8%80=.%`@` M,`#`,`DN\`^GL`P8Y`,A*4$)(#FCD)*C$)*_A`Z,0!X"L`Y)T'[R@`LH`A8Y M<'GM@`NOMP[U@`L0,#GP0(+'R0*3T`"ST`#&`)X-P``.0)[F69[H>9Z\,)[I MZ0"NP)[?>9[!D)OTZ#,MT%SWZ#,AL`X:T)D58)!@X4%E,9J8\P!U:38%$`KW M&#"?N'M&D`X^X`_G&!-84@WVP%T>\(^KD@A'TEP?*4'580#_:!8^4)(^XT3! M41<^0P3--9(2U`/HH`I1@@/H`$G:,S0WH*)TX`$M:A%TD`"%B4C9KJ9#@TV8^\*$+&69$`&[XJ$640?:F(`#8`P'D0-',C8\3RIPT<0$7>C/8DRDT@@^9 MP".)8`7^@&8E20<,@&8?J9$H$`#I``(!\%-'T6+:4YL\0\KH)&;0!?_ MT`(":77XT#8IF0Z'`*I8BJ))PY8$``BEF8Z#X`\0@#5YLR'\`!:4T`!):A<% MT`A%``+:TZL"X)E7,#F5`P,`L`+XL`X[,*O@HZ;_@`-]P`2PH&BQD:OH$`8- ML`XBT*N/,X<68ZBQJY$3`*D+,*FE($"P]@Y$ M`*S]8P2V@`YD($#P,*N=6AW^(*HB,*NBRB#&@`CY9:HOU`!+9`MV,&#Z<[;Y ME25P3HP"D9 MAEZGF4%3H;?=XS-7,*ME`#FS6@1UT`3I%;AR8P2$&P0K@[:.>PUNTK5AR[G^ ML'4B@`XL(+ITL`%D6P<10+@,L`X%0+@5<+ISNPJKBUY&@+=380X'NX_HI0$& M.BU-VJ8GX",^PP'_!0"QP0LS9@/_&`HG60*`@0X.4$-$80#W.`@B:I83&C*$ M,`]U@3D/TSA.20"/PP#H@`H`D!^1\Y6B"6FX`!'HD`7S@%XHL+H[@"$I4U\8 M,*M8&CD-L0X.D+P%@%Z/X#9,(3E8&#(E$,!RMH_X0BQ\X``;S"#*\B_@H@`0 MC`Y'$`]E@87]2Q/Q(`_H!0R@"`_V0`A*6@?TH,!9:@!;6J;*BPXH0,'H4H`@ M`PSH$`SRX*5MFK^38Z!B:A&$I+91@XF0UB6#L`\4T`=JN@]P)C9.-31,?#<( MHFI=`@A/0'5$;&6[``\])B-8XVP"0A.2L``?@B"9L`XD``0DX`^CP,:C(`\# M8`DLU!&#(*?_XP]$8D[V4$]LP0C8X`A&O%]?P,)B,*DE(`_MJ!BBP,=Z@(\$ M,`KE=C&C8`<%((]H.PJ&`)`2U$F9R0,9Z40*$``0`<)S;4'#K$`0:0`'V,`$?0`%1 M'=4H0`%5?=56G=55C0!:G=42D-7R,`%8W0!:Y@-H>T>AD,KK``(/:@K^``@] MD)$&<`1P+4'U\&,K8`Q59M3'IC+WD`Z*(*%!IFJX@`$T`0CP\#MUH0!V:@"\ MW%R0XS-5X0&DO`C/)K.!6JB:8@"DW!8IT%R\[#,0(&>5#;-&@`_R`HF3LR^4 MS2`',*BGK=GF2\HD&M-*R#!TDBF0$V!B#`RC8(@VT,F@W:8J\(@`T`OTERZ M[#,'P`-AP`<#``@LP-9TW0OAPY2\`Y%:P#)G!`Z"@&^T!&A0,JS;98\L@XS0-JNS2,U#K`?(B_\H`\6 M5@>F7QM\*#_3$MC`[&X`XS7@!WTESN+82S7`"D<;"Z?+"T/#`'V\E# M0E=;$6HY<08_4Q=',!G-%=.XVURT3-%]7@#H8`U^D>@^JJ8^T.AU8,+!#>G( M,.F<70`(P$%Z>!$87@`:+LQTD,]V<"N_$(%R$\8BC@XD($"0%C(GX`Y6T%QG M704@#@\L`V\.LVD,Q3VNS\DS(R MB;8KXP2B8PRZWJ;/9D`!8`#3GN96XK]P<.TWPVS]+D%,L`XU(.["XL$2\"_H M_@"M]I2'L_HQ0[')@`TH@_,N@(Y$0IZ&`L#,"?,.N9M6@'.S'C-EP``*;@P[[T`]$'#(>$!/*"A;H<(8DJH>U MZCD^<."7CP6:CP>=SPRH3\1KO@[KT(X3`9,@W-H]GNY&L`XZX'<3`0-\,`,3 MD0-_X`(YD.1U$)8\$/5OP>)8#P"2^0P_&938'PX#8)1(N0CY4/S)G/Q^4(Y> MT!0_$'T$SR[^.PCK8`4QWA8-8#(&!.)?B0`N*4$RGDJF5_BL`YX+0R3/`R#D`_-TW7[10?ML`[HX,5/ M10<90%1P=`_"D!"9W@@68``$0`L_8%35``L*L`XO8`P&8``'T0@68``$0`L_ M8%3"D!\:L"G-`P+3!HK1X!5"`$>YT!&L:``$P-@'``O[8@7#10EK-%R2P(H& M0`#\E0WKH`N/H$,$X`CS-``]Y0MVM),S(`TFP(JNJ$U0X`@&@$^8B`P1AP_5 M9@(X4`!UD`]U6$_($''W4'_Y%00Z``YW(8N:R@,),#<\X,WK@`4]Y0NPN0XK M\`15[CYT$`^+\`Q"L`6+,`P#$`P%\!DE0"0K``Z+P`\>8``?$%>DL/FJL`C+ M\`&^`)L.;";RN\ M\()),`X-P#T`4`1%P`JJH`!3H0_B,`_X#0"Y14I=^`\FH``$0&'P/Q?32#QU M4`'8PSK/9P`WQ#BQ=P"@R#+[PN_?N`,=9#;70("0=@7QEA/\]@_5QFY```05 M^P5D?/Y>/``@0`<.T+]"`&YO`D<@Y0COX,4-7IJP*6_?907-=@`(P@_<,`#PT`E.;DS\*1D6X,5/98V) MIP$"V:P$D`_2R0%9(`>S8PQ4E`X#\`[R]EU68`!3&`).;DP\/0Y@.17GX,5/ M-7*+H`U9IP$"V:S6D`_2R0%XIT;G;]F+(+/RMHG:W24O&[,"T`7"]L`C0,`#PT`JJ M1`?B,`#"8)9N4DY$L$?FL`A'@`"EXPC8L`X38`(_:`&/`P&.W`.'!#DFX`@> MX``J

6X`1. ML`Z:8,?#L.U%X`^JU$3VG01!$`1"\@`_2,`+"D->,)D$(<`_2$`WJ4`?E@"!9,`Q2$`7H(`52T&5?80`?@`YIX&*L4=X? MH`5;0`>A(PT?@PYH@`Y$//;H0,3H0`7H0,3HH`3H0,3H``3H0,2\HV+<[G?H MQ0V9)CSCI$O7]SWA8W_>1PD83:&!A'I@`;_8`QS;1$7@@"C*`!9@-\($%OV8`!&4`!8>@!T ME!:KG$>IPD:TP`-P!%*RL`[V8`!&4`!8>@!TE!82)`.30`L^`$!^(-+*R]6P3RQ1I]`!$Q M\P\%\`_`]@_[T@&GVW5E8#VYL_[L8&4(^'J\_@NFM$9C9T!(P'7H,`4`(`,`($MS8`*#,`P/ M$`W;$`WK$`WK$`W.>@_O-0#9$`KTI$60_$Y&U0`[<`^Y9@&R)`F'H#+1\#%E M+!C/H&K&8``J,OB;^`4`D`7X/79L%%NTP`-&U01>LT9M%$CW$`P=D3(RD`QW M\UMT1!KNY0!T1!JPJ@#V8&MX))!]!`@*X``JTD=_!`!%%0*+,`Q(I50-G@Q` M@`A-%:>'(*.N0PWI$"&AP`GD!`U=,@+#$`CC``#`@`JPVN#+<#CG_R#2-09O(%DN,`8)4`,N$`,@@`)"@$UK M4`9L4`9YD`(@<`,O(`,O@`,S``!3@`;21%IFD`9L4`8HHA$`<'8:`0`'T!&0 M<``"T!&08`!IH1$&0`B?`0EI<1"0@`<=`0DGP)$F@"*0H`"'I!%,8$I%(`>6 M-4W*"@!.\`8@,`=U,`9H``)FD`9L,%G2!`)DX$UE,`9T($UYH!$.)P>?Q09I M,`>D10=O\`;4]`:>!0!%@`=E,`8@8`;2U`;61%ER8%E))P1A0`8@8`9IP`:3 MY09UT`9B@$T:,0!.<%J495IU<`9H``)C($UE`!38U`9I,`=SD`9OX`8@(%EN MD`9E0`8:00!&D`9L,%EE@`=I,`=T`)I#8%ES,`6E70H M`@#\$``$(`!F^0$"``("$`("(`(",`("4`,"$"DRBP4"D`4"D`8"L`>_(@!] M(`!^<($"P`D"T`D"X`D"\`EXXUL"4`P"L(;'(`#((`#@(`#A(`#B(`#C(`#D M(`#R(``#,``$,``E```[,`1?8`1)P`1%\`5)X`1&,!Z0``.!L!%EHQ$:P*\" M@`$-D``,L!$'$'8;(0$-(`%JH1$*@`)N4`=LP`8IL*PO,@(:<0#AI!$'D!`; M`0*0D``H``G*#`D2@`00``D/0`B0H``0``D'$`B00#600`$0``F.#0EI`0D4 M``&00``)`0F_`!H(=75E;F-O9&4N97AE`&4?```O#95@L`TD%X.((!=T!I,0$##)B0,`_)P36%3C6%!:`FR#I4,`UQ2`[AP^?QG MQQNZ"V^5XBID]T]>`3.`=9U48%&Y+L-^ROQ`T"!A%T]B57* MEI_)=130+[+#KY&0XN@4D9I-1O`S@'HY%,@'.<]%-]T#L"C0W7?AC5=>`^CA MHH!=4\QGDQ_^`.#'`.F4\8\7MN&F&RX(S)3#;T`1H$ABT>!38V4S8A(+`=.` M4P(,`"R"S&$!8+)(-#M.@T\)#P"P@#!,\7.8`#H:H&0)`P0YY!%%1@..ER7P MX&0P3.DS)7L`,(5/@X-(!P!UUF&G'7=!>0>>>.29I]]U:+YGURW+*<6FFW`6 MF-UV$]YIH9YVI%=@G_"A0TB@C@7U#W1M3E>=$?H<2F=Z%.)9WGF-/J8/I'9% M0>F@FEJ'CZ>)5I@GJ8XNV9Z?77E`*8JWY?82+@>ATX``5M1W7P\Q7NK@FPW$ M:.\+.?`7$BPE"!CR&0(#]\[,*KBB]9 ML9^,1!B`22J#`$"'`?;4"\2^N#24CB8`]%O6OH`P80`(Z[B3L`$!&,Q`'2DH M0D1BBV`3S3CV'`)%``'4H8%HF:'#0`)9)4($`4_100`L"*PC`"P$(%#O('P< M5`<#%M,(3@&JJNS8RHD08#`!=!2P%0#K#$"R<2[WK!@ZV#S`G,H"//5'!2V_ MS/#,$-ALP#%$0`1`.FLTQ(0`BW#PCXP'D/>NK^P,P@X!5\C;J,7VXJLOO_X" M++`V!=<;`,(*,^RPP@(`0H8![\2&]2+X)`*BP0C4\8#4&6_<\<>'P[`(#ROD MO,`_?DAPQ3]17SSU-!).,>VZ"%$J!H`T9X0(6+L`$+ M+F(!T=2`D8GP`!\"T$@#^"$`7!1-"70A!`,P@5@A#9F ML`T;_,,#2;-A.IC1D5?R(9;:V$66;(G+`AS@`_SX!2`*D`M8)&`%SXC-/%1A M`0L<$QW@(,`N#B(:(D!1@O80!B"2!HA'8&(`0%A"'MB!CCP\P"H0V,4R`[&/ M9N3```%80#E_PX4#\L.8\2($.;A!@!NU`APKTT14S M`("/4Z!#&,:P!C;:88YF8,,;[L!'/A(A#79(`QG*`((YRJ&-)56`$40:QS2X MX0P@@,,;;$H'$+CA#3VEZ4KWJ(!82$`7ZBB`#-K!Q5U`A!9`@*(%/A`PNYQ` M`+&`@"[X4;YRQ*(#NF"``=;A#=T,P@?5TQQ-04`1$B$'<`1&'A`(3#> MZ`K-DO(A^PCN'^FH1Y",8(\2`")-UY%<$992!`4DH@@(2$0=!'",(D"L8(0X M)P22A@L2!*!IN+!%`!*P6K9X`P#V,X)E,=N5,=A$4$:@1PD^```O_22ZY)L& M.M!T77K$8@':G:Y/'E-:ZE[7'MG=;I/.&XL$A/1O=)!!(`0$QTZ4.%].&``YZ#P%4QF-?\MXAB:X4=FINP/ M!S`G%%H80`X,,,`^3."L`WP3`Q:!RP%L;!&'@,``@/L/ML&CPKWP2H!V'0EQ!Z(`=](:`' M=]!7#-)A"`"PQ1\<^0=9I@*('ZR@#@<`A!/\@0!U.VH]!P!`#SA"!PWT`")T MH$$/#A+P=4#@W!!9!S3.?9!U)&,&_[C'=5I$!P0$XAD0"<0Y>,CN']"A#A"X M.`"`\"WZS=D;OTC`;[/1<3'H6N2`P`4I`E#HMT9`=OIX2A\>"HQU"$'B]/Z; M,>H%B'5$`.@"W=?0R[*.71MN>M6[G@R``11];`P1X,,$UB2WE)591Q^(N-@B MC$%JNNF-`,=+'@\D5@<;<,]SX`O9";('B^VYKG/>BSO4K8>]LJ&/=DLAP-+6 M08/C02/7+&"["=[.L;C7X0)/0T<.YH.ME;7O?>O(18]_'*]QP45?3$A[KDN@ MOS),NF46J#`.JBP`QG_O8TS3@.%SO8$*]*A"EX]?!P,@P@0T8%H$9DV'!NC"!@!0=BXR``"H M0G'JHCB^\.O&#@0HU@:`F#/D&>`37'"!T/^@`3J<`0'FM`P!@V`,8B$F=4`. M@Z!D.3`Z@W`,#'!N)J$(!7`$6L8-XF,293=7>&,%ON`6$+<.%\`W]Y(O=+``%;8#>B8`_Q(`)F@, MZF(#>!``*%.Y-`I18C@[`/%-`'-[;`"2Y,/Z[`#B6`!MC``HX`+!Q(->Q&)(3``F;B)[H1*I;@(E>0T`,"*ZU`- MBV`%Z>$$"&`="D`+K"@'!_`]A)`E3:,+`H,-#*`;,0((3X!NG-=B5[`+NC`` M@]`>%.,!!X`+!3`3CC`Q!1`;F;`.)``$).`/HW"-H\`+`V`)XL,1`4@`9.,/ M/!1(P'`@:,$(V.`(P(`..+``7[!^N"`&`8`.&(`/0F8`C6`(HJ".C-`M!#`* MA-`M"#`*B#".P#`*FE``HX`)-T:`-Q0`258"`Y0."A``TR,)!<`1L3$*D.`> M2^21E."1AN"1$#@*@N"1GN"1H+`6!N`(?K(.,I!D+5!]_V``/[D.)Y!D[\8` M21F30+F3]V$!208"==``9R65N:8`2;F339>4/6D$T3(U7Y$5T/,+P&$)!=`5 M4LE9>95D+E`'$I"4$&@$P,&279$'?R$H\)!D;`!OTW.3$&$$299K)`(*`%"6 MB6`(GN`//2`@M=8#1Z`O!=`#6)!KT^(^?^&8_L`=GMD"8Z!O%0``=^`#`P`, MD^`"_W`*TX`A!E"3T].3)J$A=G$(U[(.FM$B_X0+$,`T[:!%Z``*OY4.@UX)D+ MX)D)Y$D+6ND#'6F9H0"2ZP`"1I`.IN`/@-`#)FD`1W"?N58/5[8"QC!B'H"- M@G(/Z:`(_J"$,%$2Z#`']I`W<*$`+I.4-7E6-ZDO4N$!&;D(![`(5X`M1E`Y M5J`/@V!]!9`6*7!6-:DO>*6AM7$`:L(6*,@TS>*B')H):L)A)&JB8N$#M-E] MCX$/"\`I2=-L@;B1G%`;C?07/K"B=:`")P@`?4`"$?IXQD``+6`$0;J+^G`/ MV#`(T@``]Z`-.3JB;&$/@+@6I&42B]`/@_`.&'`E,*"EUW$6_J`U\@"!XG%6RZ0O!\`#87!0 M@,`"\KF??;`2=6`.*OJ-=4`!H2"5C+&3.7@3]I!K?\@TA=4554!Y"LHB,U$$ M]9`WTR.4"?%Y=``!;A@*&5FB&0FB_+`.,\!F&PJC!4*L<`4]:LH/Q#``I,$/ MZ,`"@@H/9]6GM39F+#D'CF$#++D(/L"6*^`/9_63N78`4^8`D_97_($.;4`I MZ?J-=,"NZ-"J65&K$($.N4`/PNJ%U[&MI#HV!L"2`M5#R]1#+'DJ5H`=%"7=B"Q`Z"R+?.J1]H5OC6-L8&R]&`%9]6> M=8`#;%:1RI(I;Q(!!Q2UM1$JBX(A-B"U0X8.ZB`/G`4$2&D`'1F6]E(`!-FO MS#`/$,J>I!H%\[)7?J`$R(JU4TLH$0`*0HFUB_`#=U(`>>(`/22U-B"4Z!`) M8JL49+M69EL;QN`$6F,,34NJ'>H[`9"V_#H38^"V9\>%E9MK3+`.-8"WF$(H M$A`M?OL`X+$(V0`\@UNXVT,`4X,"BTL`C9N4':FEQ_`$T$,,H0MOCP$QFJM` MB@83&X(.^2`/[Q>1DE,@:D*N;%EA!="7(*H/*X`/*X`3H9"DL3``2I*]]9IK M%6"4('=60@D#=9``K#`UE("N88&^!0`#.7@Z?H`5/J"N=)`!OBH4(8H.7O`6 M/G"S^Z)NUOH&`JRN=6`"4X8*\"L6N$8'*.,'^("8$RO`!#S!]E$'`X`.0L`0 M=%IAZ`"_-I&_]MH`N^HG4[8&#ZR@2?L"8NL#7.DRL+`",@,+(#`U^]`/2/N/ M$2`/N``D78$.;AJ_`UP`$%`'%4"I]OHR6'##>#`US%#$<55J'X8.WA`/"YED M*G")ROH7//JW1K`..@!Q208#?#`#298#?^`".<"G!5`'"W#&U9?"0-*^B_`, MT1`.>SP`>AP.`X`,@Y`.HI,/9_Q+:^P'2$B(B?`#8[>YZ&`'\0"#RS!G#1`M M..`[W#)X"&"8!.@.FW>\,=(QQW@X&ID.J%`;OKB+!D`+/P!%X!I&ZZ``?#@` MX]3!69(.3OAIXB(/BZ`/0C(.&Z">K*`#Q$`'%\`#&@!OQK@1:I&11R`.Z_"? MPC"0PS`(^7`X\<8#$MH.ZY"OA]"'^]M-4'0/PI`0+]L(%@`-`^#*WU0-$;(. M+V`,!L#.`*#.[.S.(2`'PM`R&G`3"'`X()`+#?&(`<"*N<`1@.`#["RA!P`+ MS<*+ZT`)K+P.DK#0#5T'V;`.NC!7?WIVN``(4:`+'"$%/V$,!9`EF3`#PK`" MPI`+$*$D+.W2F6#2Z%`*`HL.'*8.4_%FOZ`/!V(,F9`+!W$/^;``T@!O-U$6 MGW0$N"`F-7U=#!#5Z)`TN0`!!K8-4R"WR/`8$J(-47VHY)`(7F`.Z*`%S"32 MN\`16RTDN#"OBZ`-]^`.BP`-Z3(`PC``QQ#63@`.9"T.$YO2@J&)XN"*Y*") MYB`DC^$`<9T)@3P!V@`(Q6`*@3`-SB`!`>`$Z!`!7L#31H``>ETF(VP`H4`& MCF$!9D```6`$FVT%/(W2/<$4]C"\2,`4].#53*&M/H`&!'2P$6[`(PS``P9#2`%`"/+0"X+`( M_.`!!O`!"D4*.*P*B[`,'^`+";X.C(T,!$``Z#?=?`!?V4`!\4*0TX'+F#D\?:I7*!K3Z`*Z]`.1V`, M1;`2N8@.-Z`OT.`$5F`$2;GD0D[<:U@"_;D.X;#C2[`$.S`/]]0*AP"C1""= MOLP-2#U;X/%#(_(/)C#=`4X'`D#@PQ#=U$#=UMV(.;X(NIP/21!)DV1D".`( MQL#>1>`*=:`/17`)Z&@9_1`-Y3``P/8!Z#`$=/T,'CX`/,P.UN0(WD!\23`. M#6`Y`%`$11#D0[[IXC`/APH`4_5#\0?HB0YD,.@6-N@W2BPY91-VS4$T3G<` M_S!VZ]`LE"N$.T`](7,-H5QJ5\"-C,5S!/T/[)WC0``$7OH%@V@TX3P`(%!@ MJ\CHT0#+)#(LM0P(')P.";X(J\R+W!@;_*!8\/#+XU`&&@($[%T',B"WS[`" MRC#K$`!%G#``\-`)L9P`ZY`$+?,"1@#3`*`+UM#.414"%T]X_MQ`U[`.Q<#P M#B_Q%&_QSH;Q&@`]%E#+_[(`';?,`X`/39`.,(V&`>)M!EG_^K M_*@ME5_=V'`@-[`.K7\'!I"T60``.V`,W>=;YXX)Z-`$^M(`_M`$$KL`EFD) M3N`$ZZ`)Y#@,"T'#7`/TC`"+6T,)I-K"'`/TH#_=5`.L9$%PR`%48`.':`O&+"%E@$/ M`R`/]7B/S+\(UK`"UZ`$^.4/6)`%6C`,4P`%W.T!4F#2$!;BZ(!!20&`=?H! M6K`%A([4PR`'"'#>O3('!B`L`!`PT]XKR8<.'#$,HB`(`S!K=3`"WST`X=T` M_CT'#4#@)'550' M:U74/@*P/EG`/9F``.[\(US!V"[`-]SJF M7CH(A".'PM`BNB$#_X`(/F`%CD$62Y4*%"<`M0`"B.`"54``6*)O6<(M@=`H M'*$+*N!L&@!%N7`"06(%SN8$])X.FS!:Z8$,:GZ9[@%OWA@!^9`.;^`/]'P% MJAT)J8`^.;B+@@<`0P!%Z:"8J9`E='`%J0``^"X%]F``<7!C=;`$L"!K!F`% MCF$%SM8#WW0,DT#.(1!.^-X"X_Z(`L"*]Y`-NJ`"SO;*(8!Z"ZT"!+#,#W`/ M+*>*`L"*C;CTM.`#4&0=!N!'"F``5N`85N!L/?!-.Y`.,?!'9`$`(0,:$-%! M_T#/5W`0I+&&:3``67"H"+!4]F``5K!6\"9Q98&89F\95N!L/$#OZ=`*_6`/ M!F`%:P5O$E<6N28#DT`+/@!%UF$`?J0`!F`%CF$%SM8#WX0-]M!HJEVJALAO M#0`(NS<)NRAX`3`$4#0)Z3`+`J`;>0/NOC@.+^"ZX6[?L3'N[!T$]Y`-.[`, M=L`VRQ"=XS(/IF`Q_]"(.K#E=\"S!1`$,E/?P2"'=&,W+X@+8(`_Z``-E)=7 M>Y7O"7Z8=,`'J.@3?V4#:H`<`T"@H('541V`OX$.1C!I-BT,_3`*ICV*J0UQ MB_`-@(`#^I*Z`&`DV-`Q;_#B^V*"=<8'Y[`(WP`(.*`O%8"*XW4,_6\<-L`& MR"$+@[4.'>H!;+!K^<9F;$``[6:9@U=8H\#;"LIH0F83?`#:?4`BO/`6?(`` M"3`BZ3`+;\$'H.T'*,,'")``?4`BGQ`D?*``@7`,;-"A7(``;W8(_I#YL[/7 M1"VF1YW4&W!E0TT&8GK42;UF>YT+,1D`1KWGU#H[?'"Q[V`$;QT`]_`.BGT, M0."Z*]W2+QW3^##3PJ#8UV'A`S`,U0L`0YUO1JT>+ETF.`/:=)D#1.``?P`" M.4`$#E`'((`S(,$'&F`>II(#1.``?+``.4`$#B#'.*/:?4"TA:6@LW`VTQ`` MZ=`"`J`;GX84?M`B3_L+D\+*S88$\(8.=2$')[`.2!!)U!``2$`'$;`#]P"D M9<,4#*!I`.`%5K"! M[4`+//!-39`QNRAX`#`$Y1P,'*%K,I`,,I-5$B=09.L`$B=0^$[+!A`'-\;! M@)`,@*``#E`%!``(NT?.(4#AX73+@)`,0(`(YM3_AW",9W,&^J`;H6`'?V37 MA#@"PQ`(XP``P(`*^&[+RT`9A%AJ=O."D11_1H8#OBH#U-(.]Y`5E!.?;0,( M.=`#43&G!#`%Z.`*_.!_4-&A'-`(0?!;%RN`!YAKV]!CQNOM5@#N35@JWX#T MX\``3$[<`Z`*XH`/4S=-%"Z'PZ!83B`AOL/*C.5^W,@/D]#D9Y8/"G")2)T' M"@`++:`*B`2F8JH-]BT)W-TR`G`/\3`)]Q`/DG`(TT``,,`#.6`'`D``)V#B M_3P,=2`.&?D$K'"387%0\8/Y!C7K$#@=+`/@WX//-`" MG##@[Q8`K,`#.7`''\`","`'&[`QT2`-)_[+&Q,-TK`QT3#=V3`!US``7QJF MZ\`-D]`)\.:E8"JFVC"0"Y01"E#C3)`&8B`'82`'>0`"+0`"*#`$*3`$;P`' M>2`':7`&:-!339`&8_!2<_`&9M!30]!&<``",9`#.'!\F5T';,`&.;53;B!' M;A0&`&W;9`"('`# M+R`#+X`#,V`2L)!O```+!\`1D'```L`1D&``99$1!G",&5$6!P$)19@1)X`$ MJ[TAD."5'`$)3#`I12`'+^5&0`(`3O`&(#`'=3`&:``"9I`&;,!2;00"9)!' M93`&=-!&>9`1!1`$`3 M<]0&:3`'`&>`&=```4E`&`-`?`-`9#-^A``^Q``_!``_1``#R`` M(2``,2``,@`;`C`$`C"K5A!D`H`%`D`&`F`'`D`4>"``>=!Z;",`GR``H"`` MH2``HB``NB``3L4+`M`+`N`+`L`,`M`-`N`-`J#F.S`$7V`$2<`$1?`%2>`$ M1O`$&0$#@:`1(),1)X`";E`';,`&*3!0+0`"(Y`1!\!'&7$`"<$0MP3]`*`% M`,`9EP``M0``U```\P``$1``,)#9`3"O#8$1.G`2I@D`EE!^`#`-`"`/*!0` M+Q``31``;,`1%A!K&-``"<``&G$`]:81$M``$F`6&>$"4#`%O`$%1,`;5*`% M)@$(<&`2'($%!,`["`$)"8`"D/`>D"`!2``!D/``A``)"@`!D'``@0`)$`,) 7%``!D&``@@`)90$)%``!D+`=&1$)&@`! ` end SHAR_EOF if test 22873 -ne "`wc -c < 'uu.uue'`" then echo shar: error transmitting "'uu.uue'" '(should have been 22873 characters)' fi fi # end of overwriting check # End of shell archive exit 0 Tom Reingold INTERNET: tr@bellcore.bellcore.com Bell Communications Research UUCP: !bellcore!tr 435 South St room 2L350 SOUNDNET: (201) 829-5119 [work] Morristown, NJ 07960 (201) 287-2345 [home]