[comp.sys.nsc.32k] Tarmail

des@musashi.wpd.sgi.com (Des Young) (05/03/90)

Well, here is my tarmail directory. Prepended is atob.c. You need this
to get at the directory. Steps to recover:
	1. save the rest of the file below
	2. feed to "sh", this produces atob.c and tarmail.tar.Z.btoa
	3. compile atob, this is a filter
	4. atob <tarmail.tar.Z.btoa >tarmail.tar.Z
	5. uncompress tarmail.tar
	6. tar xvf tarmail.tar

This produces a tarmail directory. I put crc.c in the directory too.
Sorry about the wasted bandwidth.
Cheers, Des.

------------------------ snip, snip, snip -------------------------
echo Wrapped by des, on musashi
echo x - atob.c
sed '/^X/s///' > atob.c << '/'
X/* atob: version 4.0
X * stream filter to change printable ascii from "btoa" back into 8 bit bytes
X * if bad chars, or Csums do not match: exit(1) [and NO output]
X *
X *  Paul Rutter		Joe Orost
X *  philabs!per		petsd!joe
X *
X *  900308 rpw3		Modified for slightly more user-friendly usage message
X */
X
X#include <stdio.h>
X
X#define reg register
X
X#define streq(s0, s1)  strcmp(s0, s1) == 0
X
X#define times85(x)	((((((x<<2)+x)<<2)+x)<<2)+x)
X
Xlong int Ceor = 0;
Xlong int Csum = 0;
Xlong int Crot = 0;
Xlong int word = 0;
Xlong int bcount = 0;
X
Xfatal() {
X  fprintf(stderr, "bad format or Csum to atob\n");
X  exit(1);
X}
X
X#define DE(c) ((c) - '!')
X
Xdecode(c) 
X  reg c;
X{
X  if (c == 'z') {
X    if (bcount != 0) {
X      fatal();
X    } else {
X      byteout(0);
X      byteout(0);
X      byteout(0);
X      byteout(0);
X    }
X  } else if ((c >= '!') && (c < ('!' + 85))) {
X    if (bcount == 0) {
X      word = DE(c);
X      ++bcount;
X    } else if (bcount < 4) {
X      word = times85(word);
X      word += DE(c);
X      ++bcount;
X    } else {
X      word = times85(word) + DE(c);
X      byteout((int)((word >> 24) & 255));
X      byteout((int)((word >> 16) & 255));
X      byteout((int)((word >> 8) & 255));
X      byteout((int)(word & 255));
X      word = 0;
X      bcount = 0;
X    }
X  } else {
X    fatal();
X  }
X}
X
XFILE *tmp_file;
X
Xbyteout(c) 
X  reg c;
X{
X  Ceor ^= c;
X  Csum += c;
X  Csum += 1;
X  if ((Crot & 0x80000000)) {
X    Crot <<= 1;
X    Crot += 1;
X  } else {
X    Crot <<= 1;
X  }
X  Crot += c;
X  putc(c, tmp_file);
X}
X
Xmain(argc, argv) 
X  char **argv;
X{
X  reg c;
X  reg long int i;
X  char tmp_name[100];
X  char buf[100];
X  long int n1, n2, oeor, osum, orot;
X
X  if (argc != 1) {
X    fprintf(stderr,"%s: no args allowed, please use pipes or re-direction\n", argv[0]);
X    exit(2);
X  }
X  sprintf(tmp_name, "/usr/tmp/atob.%x", getpid());
X  tmp_file = fopen(tmp_name, "w+");
X  if (tmp_file == NULL) {
X    fatal();
X  }
X  unlink(tmp_name);	/* Make file disappear */
X  /*search for header line*/
X  for (;;) {
X    if (fgets(buf, sizeof buf, stdin) == NULL) {
X      fatal();
X    }
X    if (streq(buf, "xbtoa Begin\n")) {
X      break;
X    }
X  }
X
X  while ((c = getchar()) != EOF) {
X    if (c == '\n') {
X      continue;
X    } else if (c == 'x') {
X      break;
X    } else {
X      decode(c);
X    }
X  }
X  if(scanf("btoa End N %ld %lx E %lx S %lx R %lx\n",
X         &n1, &n2, &oeor, &osum, &orot) != 5) {
X    fatal();
X  }
X  if ((n1 != n2) || (oeor != Ceor) || (osum != Csum) || (orot != Crot)) {
X    fatal();
X  } else {
X    /*copy OK tmp file to stdout*/;
X    fseek(tmp_file, 0L, 0);
X    for (i = n1; --i >= 0;) {
X      putchar(getc(tmp_file));
X    }
X  }
X  exit(0);
X}
X
/
echo x - tarmail.tar.Z.btoa
sed '/^X/s///' > tarmail.tar.Z.btoa << '/'
Xxbtoa Begin
X+.\@4_T6F)-4QF\!"pbdaKVAULCb\&S4F4lLl43,e,Wnh7#`-BA8o2+0o!c0,ZB;FEKQ!8(cQ8AX9$
X3C8XV8M=KKTMVpCu#'@+*R[&?i^6'Ed(b-\.sVbiog**D]<P;$dpQn_\iWn4+,C![^]&`h&u-HW7j0
Xk84*&2%D6Ue.m<$lV!IIbi1kiD?;"OnKeh\?Or09%19f_kmp31*B,\ORhH=PnYn:b`VK`0k878?4b?
XW@a(<"D;MdJChA]Z-;0./JRTl2P9M,qJ@M'@0q:#"'e!HFj9ZMM;f[M(EG!40-:F4H&X$CC$T;YMI$
Xq=2NL2_:]!i88V"X3@+N2WP'?8!.&7O.JENamb&1L,,+BP_;4ad(BYnfeLCs\kCA16)cT70_7+Im)(
X4bd?a9f2Bn'2heLSq@BC5f+1$-rInoaJEhuDd%-,*+CJ-a:JIS4Mh>^1=A-lN-m$A^cssP6R*X/!Wi
X?5BL!4FNK>9^A;lW6aQ#KK`lJFFQjefU3=@tMa;em/fDu;.r,W9.@9s!BPm`i`8smZG!M]dj:^"]S5
XeIut6U5<M_,LOToKmqDbVt97/qu5a7j!G\('nWJPS-\5[IfSN2V<Q3%!L_HK3j4S)UVoB'd]6FUm>c
X\W@t4>?_@YX;2-'3UnJ]30#4+[#cc09LE'lYd09k\(&06al[^_o)I^-q#%V\oTiaQhYQ7lDF,Z5N)S
XjL8)@.PZ(PW4[Ke^Rc+?]N*#WSWH"s)si5t;fqiEEB%iJ)QX5]a.0_AdNG0Z4rR[)!b#kIU0f]*-N$
Xm"&a+Yq?A<U]A7IabJus'Dp?H#94Y+EN9Eg?Ne>uCk*X^`p_'45QXQj!SJ.?l5DD`E1gW9(uL&:S&u
X'87L+/]W8[<f1Zn`?$o>\\XrME90uM..]Ko"*>Eoel)>o(?#9.BIJHd-2j8hS^]Rlg0X"B^t/9#-QD
X>"rX/3>c&E%h+Y$c7l'+_W"fT^1*G\:B;EH*a@bAA"K76K2_CqJ+t<\cJ5%]Z,N>*&-S<8&Q3@5"6K
X1>b8LWSG/\GXU:"p\E(T*d0@6Ce:7TA.3sG\mC;2m!tR/_YQF4(p\oLH_>@!>E,;JMpp9scOnIs#.$
X2*Ijgr:r^B#hi6hJh\DnWp>Z4"A<b#cpW*W1XNIeW!&B3H>5O0='OnV+d`$52fI/$R8^CW>IXG`3X'
XTW`6eiG/9_fY739]jDK^:h&@7)aod>kZsum%uXQ^q>e(.YYI))(k]bE-c4tqhuk2_!J__+R`C(X@f&
XfgZ(e/2Mbjic+j>p`:7qh,JtRiD\KM<un@n@Fi,neL?V9MuOS`$SM'2!a#g0r;3C!e).1q3ES>S(U^
Xu1&bdGhdpd)@YA:aKT3+s"<%7Po"FN,(6p'KLCM.8nQNo>4oGIB^U'9$@Db^u9WbJ3t$B!!Ff;<t/'
XCa<*`GLdWLur/g-`[@g;*l2q%m7<lh:XC)3oKHD3q)9"%*&MfG!,.e+PK-XVUIEJ79lX2*P99Q!..B
Xt0CFgFYEP2qh#ZlU[`GfiXY7$kKIjm2%?3u$=F@YsFt.5-iR38X(+.Cbp$IGb2=aIne@#c%kc_T6H"
XCQ)Oe!B.=l95ZN-#(Q7l3IOKD2l:Yec>7,PE=gH9/s;gh<9#j<QVCbCF.VM^k"<i89^s]VNr(%J*jH
X!PqDn))*9<aob_$iLciJ5q#Z_h;VgrN*Z%Oh_KAsm9_u1%\H2[;cDHQ1%JGj3d1Hf4MGKHd>$5!G/#
X[]PmJd388mANNj,Xm?3YeKWm2_cF$;qZlRSjq4o'8>FFSI/AU\l>V.V<LE.VQ^Wsl_AD).9E+>d6>)
XA"Tg^%)"\PE42C>0pZe(P<)D24?:9NW?(=MQ^cpnWiJ`%.(.d9>X"nK7#"Rt\@Zf1o1"=#JO,`KD$i
X<(G`'@[IOFb,N`imeDFL:!OW=A(q=#n>:"@m!e.nO3)r`S]>IsVn278SRr*6;OWE@lD$Qb5C^9j_k$
X(:>9+2O^K$2r)LnY?EV;?B%7:Wf`q[kiu>5C]O`Gn0J:jfK69[cF.ii+'QFpf[gil1RiXj>5oii(R+
Xn1gBGF!2O4P&i3/.+'rc5Xp7&Oo\%Q?$i#Pi`6(bG@^g,81#b7P2-Hu0-9XGo@b\K*qE6Si-5f&!j>
XJUH<C,]7GN.@f12`U_)+Lo;C78d\cJK,&"=[PQ["A%1_WBeH_mM?4RY_*>H&Hue!mi7(,=j<d/&'gr
X:A^-mY!%LHIVOMOYNJq;(DA])s&L->Z@(@^&&.dV!JIke\)!rdfMU^]%<e_JhiEYFR2NsFJhkQ\>k4
XQKneP-XI?j%\^Oj?+RTFWK/=4PC?%<WNP*3kAnefssDGZZemdj+$5%$T,Z9F2*'<e_F=\W6Q^g?$>9
XXT*EY4^e=V&QU\r&<q\SiOLfeA8Q*?loI/<2Hd6RTNr=LRNs6LXM0iLg2N4@JBg?\Zbn/qfIer/'lD
Xrs;8$-rH8a+m#d)&?^]tiC)r*+.f=9"`JiD<rh)8QJ\V1sVWP3Y7?>cN+Y6`*HR0F.1HbpC0$O:'.\
X6+65j,ZdbRPL*N`"86#^0na0M>Ip$6H5=/4M-7-ZiF<X>UYqQVQiA_=i;EtBfX!L`Vkd_N>k8,A4WX
X=5>r?EYoRq[Z$g9lT0UdK2i[JE'Br<MZ-n6rH)=(aL/&]$R#D6cW*RJ9QIBh[X)9d%?L=@f>HHGep,
X0%+%;`:B@G&O_p-k/Cfl2[hg!>DbZq\?>K2l,7f;<5903[OVhsT7('fQE>D/P`8)lE1DpUf`3n%l?B
Xmd-r4[>hinD3shWf_5%Y!"K']'AVMl7X+nJrW7gYn_kllX%4UEnWd?AC[+k/a#sq'e+'Ce0CY9S:.6
X!eOX3k;+\AH[!Z)fsJ0f0&<"1<GK,JKY;+J6L$ol4Q;Lp;s2],Qf\'P$@2s&!7C=T@o2(KTp.V*&_(
X$JRcXE32j=cc4A(tKEum[/oEcE\M:oLpiPV'0BH!BM,$0>sSpi>++V0J%,bAQtBPn3Li3J-NXf)/Gl
X^A.W&=&hBWMB?*mSj'ksWU+2aS)N(4JBf'(+@iB/+/_=Pkk&W.2+9O2LJ*3"Z%N'c4JUc#*Jr1-mGS
XE4qdkII/4"P>fh'@Y%+BgM`+S(,:+:nZS0Eat/"NEc2ifZ(PEAlc!&<N$)FC8?6BLiXN*[abh-P/$q
XF@a3p63J-X1J!!lVC`g4!h!(A=_L7_;(Mhn#NXltCpPeeZA,.j*b8)3/jM8a!WjT6+=;^rYHfo8o.i
X$f#;]:72j6$ZZSF]H1dY+FLo;dGE!?!p"A.MS7rTR_fJk#3.^1*IDIA7Yel2YU#P!o\d/k20YV'TcJ
X<7T#?)&81"!?<,7Ge2;1G^OV-olD-!Z+-+#3^tX!/r3KLlZO5g@?bLF@aAk!d&A_*J\9AE+?!#>g3m
X0dNUA$PD^$O25^HmI3L8IJjYdo>]<MkJ4M?*;AJmB/]k:&F-$HYLato81eG#1:%L1J&2dBb2$h\b>L
XPH:j#1Gc>ZN*TBsT^uiAR,:2ss3q*-jJgZSrNV2c^\RK@<,A,?Ti@30#3g.*4ME&-Q)8"[sO;dbt>=
XE<A1N4QXICl..NRe!&[q;aEu<4t0J%_cc=]#-+I^g`r'MdSN\15">?2[R=#n'02.O"A\GQ[Y%;$##-
XK+8&@QOV1qlt2-;[=6pCtZ1,VEVPs&QP;t!ae;3bmt"]Rf'82*k>89Io+7M8q54'e[_?r`S:"DURU<
X.nscg]fr:24&Ij!kQmK3,h?u`!8;VQT-7U=Z-@OAkU_I9Vga;&!`NL7o</uQX6LcU=hu]"9L$K3(cc
X1l/Pi8L.mh";0c_IBrGs-#t6Vf4D6U;.Ift/;jjf_6RJZ[CGq2t1^ECrFfN9;>#PYY`\6Z[5I#55Oq
XSo'o4+7jS@T;b#mEu5Th?tf6f!r#Yp1pjW@IG;8Fj'>V\V\B#tosD7G)bqj9YmREh8Yo*9tY;b2]'4
X+eK'5T*eboji)7b79S3[Q0^?#04:HqJtVVDT^s$_NKctI[;re\9-p5M.+"P6d%MGjU;#-H>stBtFJ1
X.pU)V6G^8+CJMF/jsUSQtFCBUE:,bli(USNR<-9@qc.\SNLPqf:0,"`J;W^o]2&/33^l1:\g,of,F6
XH2DoIo^]:eWd/WR3C(E=Vd2W=d(dI"@hOM2tqB2TL(eVVPi*fD,h-c'j#HV=*IYu0Xb&2V#Wa`=D&m
XH[HRmqF_#e*DOdJGk_34AUg#Cc>J:i1_0#t"[=W=)>\&@ib(W@HpfmqM?"H9,Bjb6!jT`\IWSRebio
XMlTV/Q8&W*>$hYbl#KVQ(<Z7^"d8GEuktQU?1%"q#EmNKeL;An5LfC/FP[A,;SNW+SKIPd/3"'Xb#_
XoU%$"MQ1n+c9_d)nqpckNmkic@iu#(F0=qCXu\Hni]1'8QX3lD6+5Ki[,qL!2f)tOG%J-uB;]OGl3<
XoX00`%4dUmE1oQ"uJ;'b+t!eCDl.]6+]P`k*(gJ_a/WYhia="M.bZ5K?cb#dDQRtNhlKE[Y"QDd+a=
X1@??k;igZkC$[qH\c,HM_]Zq!>7rP&hah1))25-JIsi&(YU7CLN.a9;RAp*ZqSZM-T2+*5us)pJKG^
X_/!Bs!TJ:,q0*fo\aRY3i^l24]0!=1<deSd[R5uMu)'fMJJjVL)^c]1c#:/D3)`q-&l6(oeW$<gkqi
Xb,(k#gYS"-PO0/*gAk"B>qp!&$u3P_CV#PHCL$\?D0/+ot5<ZR_X]3d(*t>u3d<5X?%V71,+Vd5l>?
X7]]5u\5!6>$eSsP;e8nf#'ZtV9OM:hZnar^\6D3YddgFi.l$?-"'qQ>&\GP'_n3Vj*%-%l_TO@HRqO
XM6NMXh.E\I^B.lgCi!*=AdV+WMQCVABT\\u+n#uF]q'KmtAV_-6sl75<$MaNEV9cE)5Y_iL'$Z6>&*
X)CppcseR"1Bmsp+"jK\.)q#bE!4D;"DgFoqVhXrH:d0Q"aT#c!oks3!XJX$MmFV!\l+IT_4=m'SQ`A
X-Ej1f-M_eQk\C'''(X\R?20!j@=Ye?II<g2`+i?l]"#D(;G_#rR+N$#J"uRO@2?3hh?ir/HZt41Y`^
XY?(M$&in"#?AK-BSBc*!S,_"(<=i@LrW"+9jS`"u1W1Gh\Qq&-E.__dsA]@ut(dAHjl^'i2IXI;'<Z
X/&O&;_kY\I0mEd`9N3c$:<h@V2'<!1:rGa:&igNA6m[7ni5A#pHt8nga4?S;ck]_W<&alb<(p8#0GI
Xti<+4^4>te4.0EYe2WC/TJ1QV]ON!ErK"(jf06raFIn/-;L&i].iKo?7Sd<p6[&q)m[G[\L7?n#Z[`
X/dRo@j&mA.2H@MaG*@j7!Qgu5f>R"b'f]!1bd'LI)qq=aY^9EI9?b3i,CGf"uS(=[bR3Z:]o]$_dlR
XG37+YW49IK<"+bj;1@`Oq*!=8e'1oOK2F%JnSBNm!#0^o)2NS#u*6hn3`7QUF)$/%99GH9@#<?`*0j
Xr9q"j#^Tb;VZjmu.KGC^+j;`]&t]X:3E65X`5S'%(O8e;OY+N6XnO"$"ZSGbC7/OO-UP(G]780-S4g
X?rXm'"#qD*4cIWq!6_W@#!$X-\"!O[YgThI"(?/s37,_kSHCnAcrk0A)_D7SJB0N@&r,2l&WI$#9Em
XG("#uLkgH=%U*Rk0c`5Oh@V;0CA+9Pdu>1cLQ@UKBnN<`stb->ae@W9t9N7M1'!u;?o30;3+rRe-?`
XF%E>fPCYkk0l7C"uq^kc<LQ4h9PPLe712R3]mU;UW5r2b\g)VT7tNj'*_X"fJmiuA&(G'9Er8&`FL+
XD?;(PWJC4+-"(<e5=H(K`:^.qW`+:%q5+U!lm)*"Hdkf@jJ1Ul5%++3#cqU#jfNcT[E7.pPJFnfQM=
X&T#&BfhL!uTkEIU0qZCtXqE`Ro"G4>"HK*!RPa`N5BEF,\L\N5T4B&rA3\1n`B9][1Hm_DA8M`I'LG
XXM[U,bK#C]6@:UKN>LW^`-:1h7k>;ecH3'pd[?'E=\R!U*Qj'q`bgjjWU.W@4;9/+bNYPV0T=)oI)X
X&eaKqtc1/Qaim*os%aBNK!1-cOH4LdS8B'HtU7(h/P/C,O]4(#\Hb6Qu`5Q`B>cS?'TnI,Np%)p$[i
X#M1/JA&p1E8fB,bTKb37P#;]*Tl8?_g#%sfGrCqmDV"L560Qg/0<7bh8D1Tj$]TkcQ!$F%`i^Fbqa7
XbJ?@.0nB3[t`C1fe`EXi6@F-af__8:U4A=.;:=[WP`adi_7K_U`IF;S!g&PI0"-1o4cIHB_c1W\(52
X=V*XckWIdna<"ApiQ?NQb)Pe4>Q$V**jt?./A8aK]"+[(O[kXOWYS"t[L2,E4L?mDWc+fkSgO)'Qpd
XI+-h4'MGOH4q.U"*TRG^j>_5F!`%B_NnE:7`lL=*Q#,T'S_0t_#$+J'QX.RkZ/rk$ghK%,Q#=OES``
XQaiaY4UD`n3(`o3`lk&5Y+9R5B-Xq`[qj0S+9ltk^E*6VV^fj=$t)r97JNSe?`ho%IqD4Ju#Xj>_'&
XOP9k2\"W3XM`SjkuJJY>%&q05Z/t1"`PU>f/knMU+K:;.V[fjf!m:5+\Rap),L][cJg_J!`Tg(d6.p
X?@p9-pPCldF+!%kC!==W"6Nont+@^=M\oObN!uqTA),Z5_Y:'Xt+u_&M/H5;82*V6cW#An(>'^-2Wl
XQ\?bq"_2K&c^ID]^`2TIjdVpo#or:bO^Oa>=k6/e9?g=[QH66>A0pMl2G^Dm9&OOtRslNHS]jjg[+d
X_CJQ+5.]C!:+2ZUE4ohuN)3=Ud1VHZr/.\9KBPfp_S8'LF?'!7*BV^Slgc[e+e9uR4k/Kf\::Y^6[u
X+,qnNe!`H(Zds,(T!XAm+BqQg*;?SY&X#PM($aZj%;2?[\i#NGje7_gZuOFXM,`2`A2YOdWNi.5QL0
XZeA?H1:NPP<,b^>YX+c@fQc1o!0L)qq%[],kU`s`(rb^:FT,Q?6Dd7^H:X'0j\6=E53WVCBb'A[u[Q
XkAq487b@W?Z5(U\9lt9FSb%<69rNquF^8d?U_gWfrSM%u0g6qhc<i7LjIN4%l[AC11AHiDe@2*msMd
X'E.nMc>fYf665[5D?]a1Q#7?j.e\'SL&/6".6l6jZ[onHu5s"Do@PZ3S6]DI>0bZ?\I_>H;KC#e%Ef
XS%b`B.s)@#Lt[';$*8JSF2WsL[<8R&QE7Xo]BNP20<6)Fl1EVd[kB84nEN5B<rt'P"*J!e2LoT=os4
XGb]58f]Aq48\e2-X[C:6#*q.0a9[_;4%4B@,GE$24Nl9FmOX"d+2:[_'V1fXI=!laI/K(S]IK.[es"
Xi^TK*7D?/J7*^#\11kj#Y)+9eroD6==hRCL/k0gernc`RlT]5.bQfJ-c4a)Jm>%@\^+o2b*),3;7KM
X..a)"-J7'!Z@CNkY[A=jmUDO;A9KuN]"1EL!CBb&F5]T+U.F>@*dB[T8ZqNau1\#fMlR4a)(6oL7Ot
Xm\1;%n-#(,S:)9hQ<o)]2<(Zq\`N!$_\_i.6!s""/%&#*CLld^!\.L9-,",!Z2a!%s/&!$]bkF$N"t
X!&.lT"s-;?4WjeO+9Nh7EEkgfUK#*01J6$s0B/_&b7tm>:d#-c"+1Y7$/gA=HU8[^/>ss.ml3$R0T=
X#T"s-;?`Odp=$[V=%!\WC4B:&\ZePjit0B*Ten3R@C+9Ef""!XrO>XC<43!-?Uq@OPdPc8/rBO#HX)
X'n\gGFsE)<B\"9/airt!D!d&EE5-?/#a1eO9&U+:^74-05%]mR9EkhfWlfuLBJeoaTWQCTe!pGWcN-
X8*TDWSHU<1S"5HJLJn5jfF@[E2'uj\foWk&45QX1N0',!L]J9`I;/U(p0jIPdj`V@CYoMOB![Ib"@\
X<oH8-e'>!fnK\*k8W5,#XaP0uV-cgIMC,TdqK5!X`<S*E?;nb?AM.?kPq;\%B/XV&Xu[(^XD?5?1ni
X[X$)4"pe6pE^2o>d'<o(Z>AG?fA!Yu6*h@.HoE!lCGAT;=+#$C'/`W"!klY(f<g3^["6W3:#!$KX#*
Xq<Hl"NY/:euhV#X%bl.L7mQ%"+]+t*e+nM*iV(\(5NS0"n(+-uKEl#IA0h0caDZX]X.0jr=ASJ'2&.
X4r^I$LjC*9Ip88Np^o#$=MW^N%)VFg)\bMCnLbbd*\,1(<s=GBi#"Xd'@J\!*hiJPW/`L8GWo8+-`a
X7Y@q0Z!uWBR(jDU&`Do(6a=Zid/ceKSX)V0$`[e#%>`\tkEDQlF"#";ps-[%qp=QYsUPAsr9?@>TO.
Xe)>R&Y4HL`PK+>C/\cTEEt@XFb"%Qukk>2\j>A#P><n,!Z2p!&!@kMnCeMgehs'-8Ab%]&e)M#-f0'
X+T`nh0Og[Z*_6Oo63<2k1EO'6g`fX_,;I-X0&&nuO.e'O+9DmX)]_p_.a)"-J7'!Z@CNkY[A=jmUDO
X;A9KuN]"1EL!CBb&F5]T+U.F>@*+\Dh+N_QPg,V]tIB=!VMZYT*lR$)hQJJ0nL(G]D$eCV'\J[C!UZ
Xq];^9WK:,&-PA)"?l5Y#quGXiaH:@3EG0lZU2JDg]CMq!j9@SGXMTX:d#-s0aVeAJ[5R)87W(#!k%'
X>>C/[U\L[t08cnOCTN;>1QiJ2;[3q1r.3V:bnW(e4L']P?4V^-L+td%;+-@-;K=<=>0R0Q-3kR3Qgd
X,4u7k??K#Bi?6H_;KP&-PA)"FWNg/T<3P(a#!AA$9QNDZ^k&n/-AAJAkMO]Z;\n#VH-K&?BeO3lW\L
X'3pV">]ERF#6QVl[JuXu>kZgU-)64u,"p#])3:IA^mM-CE/5OoJQmIfI\6eu8Z[MT)OPV;*B+_Q@L)
XP2Sg$E$5QEFu2N,4'#M`0oBdPQ>:qGb3'aCo_g`Z_E!&.lT"s-;?i'IL++Yt1L[G2s(QQn6'a=c4<!
Xfs$*-QiHt?lL+d>:Rg"Aq48%7U`d<\@&.QJ"mhe>>.7]>6D<Zb\ICg<^:[j5q10d#>tA0E!Iu<##-$
XN,V]tIB=!VMZYNFUfp@(BJJ1%@&gf>.eCV'\J[C!UZq];^9Zq0q6inT04UM`T$#h#<ZNeWEA."t2[G
XugBHU8[^/?P'>AT.l+>;@CFL'cdh>C/\>P7k91#'\G"-.;p.QiQ0s;pb\#ihE:>&K*;WGcN"mK9uG-
X_^ffD*Rlrk_uaFj?jH>P!k2'F&2\X2%m%?Y#M_UNK1@IHL'Mle!dgR_8.YnkYQTA>0.h,n&JuUSWFN
X,F>]0]^,k)XpT7Fm\4hSifmg(NH8._hA<]\5NW=rNu!F0V@#6t>aB=7c->$UdRZ6c9$"<pL\"W<Ap/
X&7OPF)ZpUidk<\6@PR0ge"T!AK$qX80'W(`aT2FZCW7*!^H`<jYi%01'cT3DJ:FP>Yr#nFqk4d*8D\
X=,QKN-TEZH.#N.oMO!-;#\@(*9;O8U_`5jRc8-4jG.jlG@$=Fen<Egrr>%W:m&k6<=]=>8F*.O_#$!
XU(f<EfR6H-C%.#Za325X?jGZq];^:#!$LgU']0Zq];^:#!$LgU'[Z.dmsRN=&+^'sE]K5eGQN^ND/K
XQ)V`6e]H>lTSc84#[If`=JgtUY.1L&l`-cQEY&#6Zml.M)Ja+(NOmhOqpVTg)S\*fXMt%?a!tcEMJ^
XNDVBk-%LtQg`)I_)uZ21N&Ma;)3f68@AXg%#kf:R\\?`pr3Xtdhs*k2FCWe7c<YAR1?Z0$2:G&(NqC
XUcZRqYID0(9dnq4Jh-m#>8n?Hb]HY6k1^P&.<T$>-Z(]VnulOHJ5X[eYdaEZ=dPM,cd5b3`q0;ZE2$
XN!qD;IEP4*]ZqNcl(BJnB)gj-/Z^=X<Eq-J%$N`^^ZqZGq8/iC?gU']@[&O28!_E/el]5)Y10GQI>R
XLU>Rk16][U]acB,b>(\JPpq[XTMPDu1[71UhLbVg$<iB4+dJYdYg'#'PNdJ9s7+]R5E+VMk:MZ;nJq
X)a]Ud!g25,Qq+]RG.E1b3M<^`hF5)M/%SkQ\u#k:30_!=PJ(oT/$;MuXIHc,>ItSm]1Jg1XJNSAo"3
XRZ#1#rT`X?n=RfLUC/&.ReAam@NCV3n+^$7,^fin[8gV'NW^#u+S/(;#h)d_fV^>5'ge]Y\p>Is;3X
XR_:Z+@*\YoQ'b3X_btkWY/:_Kei_Q"p3!Q"<8HeHkcpg^q8"0mQY+lbV'W7_=)E\:b2BmT;jWC!$A<
X8*S-c,bU(u2qq%[]/?Bgg7oV3:<&BQX35!`DmDD<iiC%M#81`IKd)8j8`Ca(J=)?f"m)<@kd:@(5oW
X6&hh8XBGc>uZjfSmiQc,W9`a@K%H6B'!(c,arX"-Ms2Ps"/rr5o$-a^-O@0.tTCXNL#1b)K-=lCH*)
X7d7Xg_dWZ!GB&"!IEZoLbY.<HVTm)ZD9[O4k1Y46@BSDFSE2F)dcddXESSjR/^I@4cY7:;^qA"NrQh
X#ed!EpR`>fNsD8Zg1h%0J8/g1FtDT?F6d93Qu<UA,!/^iridcs!Z>)gl]4iT3>l/cg36CcSEc.kIq`
X6L!b5YToqNQau-a#`#*:T`bVc'7j*eVPm6=hW*cmF>TM`FBA*!Y4[*SCY<Tk46aA5(#V:?.VOsi'+9
X_*j*J1Xi#XJe:TpGL5jhqbh1PXfs`Nc<F"2WNnNF+fqdEV;\%Mi+PNW.g2EM89_m7Nmb1'_nZbef8:
X8?E?1B%Ua!b5L]5@&O%G[m5gkgGE`XU)3/Hu1T
Xxbtoa End N 8390 20c6 E d9 S edaeb R 4d5e58e7
/
--
trademarks abound, usual disclaimers apply, opinions are mine
des@pei.com	Des Young	(415) 335-1888
		Protocol Engines Inc., Mountain View, CA