Keyboard sniffing in DOS

Robert Rothenberg rrothenb at libws4.ic.sunysb.edu
Fri Jan 13 12:34:44 PST 1995


 <m00012 at kanga.stcloud.msus.edu> wrote:

: For Dos operating systems.

  [..]

: But, here it is, the source code for a keyboard sniffer program.

  [..]

: Then, test it out with pgp or other dos based programs that ask
: you for a password (use a fake one), and you will probably see
: how insecure most of these programs are.

: Mike

I've thought about that problem too for terminal as well as crypto,
(after seeing an article in 2600 about sniffing a roommate's passwords
to the "K00L EL1T3 B0ARDZ") and started on a small "secure" keyboard
handler.

Here it is, though in very incomplete form.  It ignores Pause, Cntl-
Break and PrintScreen and doesn't make an annoying noise when the 
buffer is full, and may not work entirely for enhanced keyboards (since
I do not own one to test it on). There's plenty of room for improvement
in this, I'm sure...

It does have some features like random-noise sampling, "SuperKey" codes
and multiple keypress maps (as well as an option to hook into Interrupt
0x16 if security isn't a pariority).

The interface is in Turbo Pascal because I haven't made the migration
to C yet (don't flame).  Any help with fix-ups, improvements a C-
interface and constructive suggestions would be appreciated.

I've tested it with KeyTrap and it *seems* safe from such monitoring
trojans.... 

  Rob <rrothenb at ic.sunysb.edu> PGP Key ID = 0xab1f4831

begin 644 kbisr132.zip
M4$L#!!0``@`(`'<SSQH+2&<'!1L``)%'```'````8V]P>6EN9YU<6W/;R)5^
M'M;R/W3IQ5(5S8F=S65&J511$F4SD2B%I.SH+2#9%!&#`!<-2.:_W^]<NM'@
MQ9E=5R:V2.#TZ=/G\IU+ZZ>?#/Y\&C^93\/Q<#*X,X]/5W>C:X/_AN/IL-OY
MB9_`GR^V=&F1FX\]\[<ZM^;#+[]\Z':Z'7-=;'=E^K*NS/GU!3[^\R\]_M+<
MEM:::;&JWI+2FMNBSI=)!1(],\H7?;QY\L\?__0'<Y\X9P:OMF>ND\V\3)<O
M^.?]P/SNXX??8X6GZ0`4AJ^VW!7@)G5F:\M-6E5V::K"+,"42?*E6::N*M-Y
M75F#9^=@8$-?IM;A]6)EJC5>S=*%S9TURV)1;VQ>]0Q>,(MUDK^D^8M)*Z*?
M%Y5)LJQXL\L^;?PG$<UC:<%?9ED69K:VGIHSJZ(TF\)5QGDAT']+Z]*77-BL
MDF_X\"W9F5U1E]W."B);%AOZRJWY!6R!^<`6J[XQ5SMPGU=EXL!DA<7X[&QN
MRR0SC_4<:W<[=[H=,)WFE<V7LMA+G90)?K:\F/G16O1=M^/9?O\>SVR(55?C
M.5HV[`AKT,.\5T@'7#I3.^A*GX210LIM[HQG+MEN,YP"+<\RXK.P;:7I=AJM
M>><B,>:\H23?F0(OE69;%B]ELC%OZX)(U]6Z*!TDM8%&X,ENIW9RD.#J?%IL
MK+YW2D5;^UL4T!R(<+[K=KS([])YF90[<V)S:>XJFRS[%\8\%[59)#GO=V>4
M'3X`9=KA((NB+_KS=6US\P;Y;FWRC63"PO7<]. at KXJJT*UN6M"6(00^R1QK:
M[6Q+\(!M/F"%X]RY`S6,SS:I2#VZG77R*D<=Z4ED3&)#!QR:<]6B\H5U at B0&
M$4(A7K&X25=$W+RE;GW1"XMA.PN;OA*5NEP0[24.J&2QO5 at 8'[;EWX0"X^?H
M77I(M;:EF'@?>FC`Y4+X9"JYR>V;L.S%?RGJY.E]RXNW0'A9$%%'I"%LIX<T
M*^CERBXJL23V?HX/)[>11$M+XEJ00CE9`!*9I\MN!YI+7HM$:G,V?EU'2!'S
MI-_NFWQ5T.&49, at E;U*>`C<S>:FU#FS<94G%U!>VK!)L&D]L\64Z3[.T2M4U
M$6D1:[=S]&1C>?:()SV$3;%,5Z3+*H];?&6_)YMMAL?TF:,$7;U8F\1+'@);
M6S+#;@<_5BEOF_V(65E0XJ5JN(:75%41>I*"5 at X)D:]I1,'29;,RI+=],3M^
M>4^W\<Z.#:X7M"[2-'Q+;B]H(0 at -H!R!$[>&<N"AC5<+Q!SR2TQ65`?_2K&C
M<$1LU?:8PL`,JK6IWG"ZE=VZ7\WYAPL.7!)-V]*'CG8[YQ\O($:8OFI,%+K>
MUBED2Y)R_&5F7V#X'!,=QVT-BKW668/JSQRD^$#C%97S0>8@*3H4F]#9L6>%
M*];M$&&R'FQ*])_MT^N_:A_Y`$C>^EA=DQZ["N^Y<";B:?,"!$H*4CM>DW?8
MCD4XD='J(`3Q!E+VT?A\8VD9FSF)%%L@"7Q%P.,-E-2%N%B;P+$>'MAY\WK"
MNN1#/RU9X&32/,EZ6$1W13$(P@``V'"T+8MEO1!&.,30*4-5B0*<=D8J0(<1
M$8,WD'CU#D]LZXH#D-><6WHBV_5XG=AM$5O5&M@#\1W+`1201"N$&!:!CY];
M^KZB8`P=)+?+?N6U2)?,PY+\9BG;1HCSBD'!$^::J.Q#=*6=I/DR?4V7-;%E
MBCF[%UDE`!\X@=Q8Z.F"S8_#U#JB@[\1I6R%`-I7;PKE(,7!>;,:L>`WR9)0
MCUED-E$>(06_)S'(>8!;2]%25;)W"DLH!.!C$G]X+F$<UV\`VY8T(5 at S![`"
MNQ1_2E3)<+"+7N/55/&['=&\A:"&54'X$)3_RP/G'T%K?#T;3NZG9C"^,=</
MXYO1;/0PGIK;APE^?'P>C3_US,UH.IN,KI[H*W[P_N%F=#NZ'M`'LH7?]1EI
M'4-6JITL=>Q#0,];47Y3?T%8$@<(E):0C"A$;[-$]9<4I'%'ZR*C\..2G4+B
M#5`KQ-]X$TBC#B%*9.D!]G$@TA?QGST*AV>`W1;R at XMB?!-VP&$CV at 9M@#TB
M-/2,=S-/Q,)Y:4\.AV,1"XU->=O15T2$"(/9]!5'!V5C,L)^L^<L>?M5[3QE
M;K![+"P/J^Q4NUNDS;8H62$8=F`_RD+(0&@3Y/QC[7'>&X<(OB2'0B(H)$IF
ML-8Z>2&YG7^&RX1O6$'.O?`&+<F@?Y'5!/IIC:(FU0<.UJ]S`;%T/N8L7O^,
MT.J0O+Q:"KN^9+D$>&"S<>8,D>6,#6<`W_\J4*)0Z1(..V4GK8TR_&2LVB!K
M41/5BTOQOHSBZLJE[`809D'>ZTQ"?G0%1:GS at Q-0A^U1D5WV%.$Q.7A8N(9B
M$[\"8-C`_"(GG+[B)>F,.4"P?TTKCIGF0.6Z';_V.=RCW1)2RSFE at 2,C]N86
ML)[]&;9ZA.<+"/6K@"$3U*VL":43,4?K^+`4]KDLK`\3'_H">)+=;\E\/;93
M0N]<"_/00<>@G-!VFK.];!`B:N`VV")"@%U&Z0():)LNZJ)VF:P/-\1^'HJ,
M3[9D^0 at _V`@C"64S?HJ(>,M39Z3[6&1)NH%HP+?'!Y?FF[5;,A!2!46#W8Z\
MYWQ$(ZA$:7;+/4KR2`)(YL[F6(9B';87:!-`7PKL;'+,""ZTY0>-X-UX9Z<+
M at 4A6X)@%Y36/\Y&%TY),B1&O0AZXX/7.P58RU7(Q;Y_PR6(*"'=*)E%@66S5
M[=#&`Y2*P!H%YN\^R?=06Y7H8Z-$"@B9INRM/*X[WI.JP^MVQ./AD9I#YT98
M/NFD>QIN16=;V)2]?MM!JN\W1\+,5#?X`6*?%U0V.E!2:`F0^L9:T1?9B+-1
ML/]5!&%,<M$D$(ND=I)^!)2Y2C.)KPN(F.6+?9+%J_H)$4<NE^W<IZHL=_%$
M0L+[I27E:ZJ%\E3?LS(_8(55E<00"$=2 at XC4U#1')H=/=-X0P/EKQFME%6(_
M?^8D%M+>]GRCGK`0X1<9KA<KRJ):^`M^(]%E$A*%5VX*86R?:;ELR)`NG8(+
M'A]X&2PN/.@/1^#A0`X=8R@**+R4D@\G%E3X*A.*4O`^7@)PPG"^468I`B6%
MY2]Q8B6%7>^AR4)(#>7]B"3CRC17EJAZ52X1C4OR(9Q>@K^4(D!)9P-(1>JM
MJI7G10VG0W5&C=1L(RU7:(YZPD0HZ">G4Z=S`L+(?GH>K05%49M03L(;%TT)
MA&MW[`.B?$#4WXN<3TU([!N01EJ;93[`$3W#67-A7E/[MN<LA4R#!\^'WQ>6
MG=BO%(-;8;UR-EOYHJ8_"'`G-"@:<MP/&B%'(#6'O"7WGGBVEE<*&SK$$?]3
MIZ64=83D'K7^!0-^7XOAIS=2I.":GP:;H+J\;&,LG-$"@1!DP`,)4DGCK%9S
M6$R4D_([@IM.FFI/XA85,^;$2>**'.2X9$PHJF1$V>`3>MA9&"-I'*W@/#S<
M0-2OE,A59!:Q3<H)$S9BD^U1B8PKX\U6"XI]80=L6'M.BBLHB=M;G,K;=15>
M:`4#3OB33209O,[>B/-4\3J2TZ2N%7`0DO8B#CO<&*!J2!,B/JW4M[QCTD)F
MD()4FIOZBB2*@A0\?D;J\9W*[ZH!2`-PPJ4NY$%IS8%$JBOX@!-8V5EI7Y)R
MB3#!:H"7S!L%<E]WF^'57M2;(&ZYW%\%/ZK"XDA%$"HJ+S*R=966HGT5K=#D
ML*1&"J`"\RLU!3QW:7!8:TXXFK4X,<+6OMM2DFA?E).*$U5$LJ,BCY(OJA,O
MD#O;1<C%W%&XP!L?Y925I-)*VI#_2UY>2%B>LB9,LA<2S3%2W<X^,&._R1_^
M`+!<T,^)>2VRFKH(*\J<75642,O4VS>;%+C<>*9YZ;UBQ)]Z4U9P2G!.!,'?
M_QCA[V]C?P><A4JX]4CIXP5%L&+^;RK3^)([CG%15^R#"+T=B=#=SM2;X`?F
MXJ-AP'4*;\$_4#5.;4PJ)!!##+4&"X3M+<$::',X%?HLLQP+2ZE?<Z#<P%(`
MMMY3O$^X[\98J\E?>NH'O"%'!8H?`$>-1.TM\5'K*2Y`KM at D90ISJ'VYJ:E!
M4D at 2Y'8).?8B]':XNR08&`/UGGE-LE0(0G(9_';%M3W=V\XF)3>)FHR$L11[
MB5U/<;R"K9S::5+LSK6IR`A*6VP^M:#P:$L/T%5ZL?+V.%#+"0B)?<%'<7S_
MC%JGP2A18_1O.XK3IZ";^7\=Q>*4HJ4YR4&\1Y3X,J#5V,WGI`AAKPUV8M^$
M9;@JEV1@)Q<_Y_&.MI&EU+#B^F1.R)5<*-*^@^J)+TEP5"0"@<48E_UG:^8M
M-X`V"0I(^3UD4TK)R$SKN0\=<SD$PC@,<5H]NE7C::34)NQP<U*.91."*SW$
M#4&M"+<S.TB5F[.WG&W$C$NQ+S@#69["!=:717TKZ(`S?(Y5:DJTTB;?06:8
MU4YRFL2Y8I'Z4AL,(B$SL*LT3Z6 at 2UF:OB`>NDRWTN%><MCS`8[X2[4"QP")
MRO%9EL3XHMD4-OH9"O!*HB<@"+BTM7STUL/?WL&68N/A-B.%%"WU<4>1>Y2A
M?!1@</S>.>7_4HM4TI#3G#.7;H>.ZZ(QBTWR;\8)&V at WH]ESV20Q_0TJ;3.!
M,(X<_(5N$F at +?D7R7K=S%7`>EZ[((;=E0$D61%OG#'"8Z[`6T+"`_40-ELO9
M;1$R$E@=H(IH`<)CD3U0FT at K<*SU8!%B6RQX>9T8842=:&^<U8++X8J#_6N&
M,#Y\-G.Z1^%`$3U&9_3*U/!%S=F!BR!NI"<M[TF-$<+4]<LZ\OJI-O&UBKK9
M(N.*!E\B*GLUJ$@@TJ8PYK\;9$$:)=4E*0`A@>2"O4#>&-[8-I02M25=MM^W
M5"_F]$OQ@/?T$::AMBI5K:`?6^R`X=`;H\?B)`.GUV>_2CTM44AN4R4UA8A*
M8QV%F)0.M-5_/<)8MQ,,T\N9@#?WHX+3E4H8"\2W_OF8*7@$.!=5'$,'T,]4
MI&4S)!188TOBTZ+,B)VT9P'Y)+79\+]5G8FSR=($Z:>"PS_($?K\,,Y823VW
MU5X*YU*J>OINN6B13H.P%PXR("#-"D^]U!>J%4AMN-U7UFHA.?<3!T0EILKM
M]UMD1HBRYL0G=:6T"=?I/*VD,9`E;V&F0%/-PRT)(02>@GKE-*@C/!'O+52^
MURHXU_+EZ8K^A52+J.NY"/HC'"1:.FZ==<6(EYKF7,_T(U'_E]:B\!PV(+G!
M8[O]Y6)HKUKPQ[ZT;ZIT8Q7(_"A#^$_;;@U<[-F3F@)EVMXZO:.#-6MC6[^2
M61:QZG:A,AH[\)S!W-E!5=Q?MR>:LGZ^0UU6BK"A==%574JOK#43HRE<4\%_
M9T*^JDY770+K.,2QYO9:7PKUC5WI%(W@*:3'^/\%G5=CD=K+BORT;.4 at H?M3
MWXQ6$OZY/@.;#;T(BA!E9?Y=+U^X3"A@)LIPI05.\TPK"DC6/[72 at _4="ZH`
MF7/I?F]2G8W4_CGLM[;NHL<@QJLD`V at 6)ZL$:=&Y3NG0SH0OX$1&+DBZ_<J1
M#[_PP9S&%&$UE28(88T]D^E)MT^,FT,)%5=IY1`[3[\LXR`ZKL7OQQV$0B&\
MH^DB:)I+-W4&N[72I9*6">++BZ+0)B`T0Y1<>&T&#2T.E4O]T7L*#PZ.DN&Z
M5](3IJC#"(=#5$DXY##B4]29H#X9=35EL4-VL7O/DPZ1L4=8PB]#+E%P<L'#
M0D5H[VE;9XF`L:#Q$>X0A)^0AC+TP%9DE^*-."'1L552"O#E93R'H`AN2W4K
MCH+\V-RR0<!5EQ320H6)S_H'._!X+VHV'92Y\,^US0A\2T)-(X"Y&*EE1*C!
MF6F0=2[J+($+3LM%O7'LS\7MS9.L<>XVIA_-TX(.USQ]#\<_%;5!]@9P=00T
M-]K/CQ>63NZH5<W;UB4[MB/E/!Q1K2&<?Q(W$,_'N&;@@]H*T-N=UN6X%.AG
M#+4.*"6(M-II%PIX at .KF\NAE>_EUHLD0;3'BT;<9_;@/;?VE5)I^DK3)TUN'
M+;E"+Y1P\399`GD7 at 0%;F1SQMK#E^C^)S9A[/D];X/EF<*C;>:&9$QBZ>")=
M*&3T;S154'(?E`83#YBBPK%7?O9GFLWP,*6Z^B*7RKIC?\IC-XLHXZ.)1'GK
M4LNT]39TGGGDZ^=ED<LQ+!&:ECP?RY-AQJU9>P at Y"@1H51T"NY[#QD$IFS(<
M$P8YO'/42"D.>EVDBB!G>U84*RU/\A&SM!#U$G@:ZTVSS#ED85_5'N;V,)9)
MW'75D;(F9Q]_[OO6WG[5XV>=X-WS9*F+)CNX7^&'7#FM*LF9:8I+:M/8PGS7
M=-7B?%_<=P1;#F:>R%URYN9:G!RF#^+MD^52:ABD#SCX%TO/;]?<TF_M,IK+
M0=B33B"I7>%LLYN>S)<F5?O=UHT'*1#E#!0V!1%IA"'>I':ZA%U2S,RE+[9(
M)/Y&;AJI00&3IK:,$V<?<0G+AXKZZJ4V0.?%<G>B:OU+GZ=U3H[9D[C\9$AI
M7U-N(\O1TYSVJ]PY<3Q6P*/WQ\?M!2 at 0["7SPM_8XI3V%Q-A8V(E!0Q(R?&#
M?[=-2Y[)]Z4K1Z:LK\@U$.(1.)4F*O#"TD+7,G'_,AK%BX014&FM0"5UA),1
MN=*C,Z,2+M4SZ2QQVC5V3@[3/Y'7F[DMFR'7D&%S at 6C%>?_>PP<IB/C0:`I0
MH_$9^W4:+"L]B;->DP5R7/?S(TVA/BK1MD%XF&KS/4K/5E'Z48;66OZ at F^'"
M6RYQ']&+ at _TW/121P^Z8%/9;=+LP8U/X],"_0]GM<7Z.WCWQ4U:_ZWNTZ4=I
M(VMA2'$P'\,3?.*:6\.T3CN(+9O>`^*B==RO)I.S[>#!08&N"!#H;Q)RA9(A
M1(2F:.S\_M,!["UXRGXO^:I*L;%D<XY+N[8I8;HPPZW742C(L?BY(`)#A/HO
M&VYH$OZE2#(Q=[;%\M5KH&`'N*%:1I-!H*DF\$?^3E/KFI"2*C9%R/WILI-,
M7"SA<S3"A'=>Q,-DN_B.U_C!?!U,)H/Q[%DUX4/?7`VO!T_3H9E]'IK'R<.G
MR>#>C*9^O/?&W$Z&0_-P:ZX_#R:?ACUZ;C*D)UK4:- at WHH#''OCGX3]GP_',
M/`XG]Z/9#.2NGLW@\1'4!U=W0W,W^`JA#O]Y/7R<F:^?A^-NYX$6^#H"1]/9
M at -X8C<W7R6 at V&G]BBC12/!E]^CPSGQ_N;H83GCO^&<OSB^9Q,)F-AM-N!YQ\
M&=VT]W4VF(+S,_-U-/O\\#0+_-/^!N-G\_?1^*9GAB.F-/SGXV0XA0C`T\2,
M[L'T$-^.QM=W3S<\U'P%$N.'&62%S8'3V0.+QS_KR8,=+-#MW`\G$.)X-K@:
MW8VP*(U!WXYF8RS"P](#8?[ZZ6Z`?3Q-'A^F0ZH(D1A!!5*?C*9_-P-L3J7[
MCZ=!H`01@\C]8'S-Q[5WG+1C\_SP1!$%6[^[H0=82/P$"6MH;H:WP^O9Z`M.
M&8]BH>G3_5"%/IVQD.[NS'AX#8X'DV<S'4Z^C*Y)%-W.9/@X&.$0:.9[,B$R
M#V/O;S[VZ1"A+\,OI`Q/XSO:\F3XCR=LZHA*$)7!)^@=B30Z_V[GZP@,T$GM
M:T&/W\$7C18\0Z$>S/W at 66;-GU5/B-4PC=Y6#VA'HZB#JP<2Q!4X&C%C8(6D
M0B=U,[@??!I.L>V@#;RXCLCWS/1Q>#VB?^![*"'._$Y$`Y/ZQQ.=)CY0*F:`
M8^7=D4KJT9%%DM:-O;)@]7TK/6\6W]-$5I"[ARGI'9:9#0PSC;^OAO3X9#B&
MS-BV!M?73Q/8&3U!;X"?Z1,L;S3FD^EV:,]LW*/)C;<N%K:Y'8SNGB8'VH:E
M'R!&HLE:%TXEJ-OTHL>J8$:W6.SZLYZA:1GQL_F,\[@:XK'!S9<1N2)9"&3`
MYTCE\J`D5)CJ[OCZ+3;)KQRYG"!7&P9;&B%*O_]*E6(*$@/.;*66.V.L@`^?
MR2./`8XT%CK1:HV at 2\3 at K-@BD"M^:L9!HXM^.F.H0?6%[[O0U`K2&*G#U2Y$
M*4D1-8.GE(,*%%P"7U..(B!)YO at Y4-&%P';`D%@9+BK1(%6KAAK=D`WM:U^B
M;.X&^OIO527:]6K`5)A/+N+6+>$=3J=<LN+M$=?A]8U_FL<3N<E%WVB#AUJ4
MX1*M7+K1F4>@B5>[T[X9H+]3:->,4//`$=%B(F[-%1H&@WX.03*`LX`=SI`-
MY%H4,]N"DR@>&^(Y1-YK+<T.ONY)$`"2"H.<?R&Q, at 4_S1!)X1T0'C7)A/@<
MR<O*`!\D,OV4L#KPS/M?A=C^Q?/=#@LP!0((C)'^ZA?F##>Z.M4Z]\MPW[-U
MV@*;F_MQ. at 5:'1];/785NYDY=RVTV<P:GD96S941N7;O5[EKVG%"YKP]_'UQ
MB+S[IZ00MX8UF5O3"%*ETO8X#4:&8^WI2`MR(H\#R$5Y+'`9KIMHSY(KR1E/
M//K)5`+I1&,_HD/&OR&@3ZV55#W<K#J1#O*1\1UG2M9<V#\5\V,M;R8]6L,L
MITG[\8VHI]I(]))R8VC^C\"S$-C_70B]W_@;#^3J#4U548TAGENALIRX8AYS
MD(NF!*PM#=6518X]R%U(9`IP?VGF"ZJM"9+6;&W/NTE_;28AX95A)#E+OUDM
MEO/,)AYD#^7DNDAK3!<69,/(UZ<<>/Q54@&OWW_$#H\8=-N<#U]?(/G0B[2#
MJ^G#'9#)W7.,L"]9&U013+6#=O^+;_&^O>M'1K'O$II`Q''!9K00B7?/0P@)
MO3<6ZE`^B[N,%UR\BUGI^WF:]6Y+Z2%WUIKQ=<\CLQ'>5]WUMY#;EV=:Z>?)
M"W</*V[B:-NE69![UXYJISNND5"?CUO22.ZX0A%=\SK*G%[:DF8`>P":^MH4
M(/I^`1Z^<6UD8_,:8K,;]_X]^71.Q%V=2E\Y_$Z$<$=&=\R3A'1!FQ^R<"O%
M#B^>^]\*$":J]?V-+2^,7'&'TCBJ`&325<EE/)^ZW71[L*GU-=>,SIJ+.!Z5
MI/!;.?TB`2=W5C_KU'U"8QW;#!&$Q[SX)5)9?Y/DN=@5RUUNO9E3E)SOPEHR
MN]3PP!9#R$6=\=97?XSY5Z3U[Z at GQR..L$\G]YN=T0$:&M!Q%Z%&A]7^1 at R9
MS\GBFRW5%?Y%YEOH5CP49K:#Z17Y7WOF`Y!<F6;\6UP8S<@W/?HM)R[UE]J^
MI`L;RL8G?'`HV&BOJBF4D#+%9\TE$JZ+^$O!X5<SA.Y>&;NHA+K$94&=<G)"
M_(LX0K5';J+1L#O?4:4H(-&+.Y_""P`(CZ#%2T;5>Q?&9:CWQN1]04H\Q9L?
M</6WW9>`>_Z2T)'?#@+@??37 at QPIFOXO4$L#!!0``@`(`'D!+AXM15L&%`H`
M``48```+````:V5Y:&%N9"YT>'2-6&M3&[D2_;Y5^Q]4?`E4[%D at N\GF<:EK
M#"2^`</:IE+4UA8ES\BVEAEIKJ3!\?[Z>[HU,S80PW7E`;;4<[K[].EN"_%5
MK;Y(DR4]7XC[@^1-<MBA]Z96NDR<R"#%2,EL)0;CD=@]>"/^(TTEW4H<O'__
MV][//PG1M^7*Z?DBB-W^'M[]M4L?B9&=*A?P7U at H,ZW<7'R3^9TV\^[E,J=[
M]'>R4$)686&=2*414R52:X),@\K$O99"=0NI<R&#^.1<M/1OG2:^,BL_3516
M'9$5W/:5F\E4B>;X57*9'-OOXN#-X;N.&`=K5N+867O7$<.;CC at X>/=^7UR/
M>\G//Y&%<YTJXX'%9&)W:,W>-^F<-&'U at 3[]U];7V at _M1>GLW,E"X,>94TIX
M.PM+Z=1'L;(5^^=4IGUP>EH%)72 at Q_T"\(7-]&Q%=O!>93+E!%P50;G""SOC
M7SX/K\5G9923N;BJIKE.UZ#Q:'K'+Q"U*=NA&V>$85QC$&<6AF70UGP42N-S
M)^Z5\_A='#;/J`UV**!D91>!!'0G;$D7]X!W)7(9UG?K\#UV?^UE)K1AVPM;
MPJ,%+,+'I<YS2G;EU:S*.V0"A\6WP>3+Y?5$](8WXEMO-.H-)S<?<1C\P*?J
M7D53NBAS#<O+.D>`3Q8N3D?]+[C2.QZ<#R8WY,398#(\'8_%V>5(],15;S09
M]*_/>R-Q=3VZNAR?)D*,%<%29."9$,\X2PACI@(8YFN_;Y!7#W!Y)A;R7B&_
MJ=+W@";!XW+U<N[(B,RMF;.7.+R.XT>A9\+8T!%+IT&78)]FE:ZO$]L1`Y,F
M'?'VW6_B0GHO>O?(95\64Z>S.7Z\Z(G]PX,W[SL;S/^CTNE=%T3LGFB'6)[8
MM"H4:I`LOL#^)Q6`/];D*[@/)X(-*^1\`=NY<HD8!/SLR26DGE*I//&#0JL,
M3J4J(T-WM?;XCO`:;XI!C*VQ0J:I at EN(A#4J$4/<S*SRQ*CXE/8R&5)0#`<K
MAN2A5*E&]/&YAU:D"RJ:O at EY]]@I"5&XDA41?[P"IJ([4O^M@(Z)J0+%U%NJ
MA%=UGH&@KB&999'5J<T4%XM7^8RXMY1<S('TB.P8M6PK#G%R*E?2JZRM(/#:
MH+)8Q1SXK at UY9M*\RIHJ6E\35-(4N4GEIA;H?2IC'<F<JF6^8+*`!*J8(B&,
MKF8J[FN\M;3N+K*NL#Z(/LX4I4:F/)=^;<7;`NXN$2,H-]1U165K%.4!36!O
M`_W`^"#S_.LT0Z?8W0/'S*.W6%W["Y7>G5E7?X9W9Y5)B6S\7$:%W"P9*IZE
MOI<*-.G`\U`Y0R at D4FJZ_RAGQ;W,*T6%0MY"81S3E at S-B1@P1/=3-L`7<)1<
M0BQAB,E#?*2GUJX,9N+V]LOEY=?!<'+PEL5,S9`+2C-("S(5D4>Q08(]F6\B
M2V9(/,G.BBC`[X)8#.^R<M1)T5LI.OB-0\&_<F0^JT!]-SO+Y=SO<FMM0T.,
MHT?QP93N"4\-A?+J?YG1#;&[7&@0&XAE=@]=E'-E*PXJ$466$,U41FOQI`/+
MM5,QQ]K;G#]%[[(%`W8H at 5K"R(KGVO@@"N@:^KTVB$-A@[ZOKY'#4"H*+%-U
MB>C3FZE;E8`/Y&0%+"LJTR(I97H'H+XIHCKKF at ZI"*6-=7!P`N:YP3G[MS2H
M[IJG at U<HRZ at 7+"X(28&<`=>UA_*BU4ZIARSLDIK378/&*P=9Z);6A<?((A8?
MZE956*,#.@"(1(J0)'LM7T8P=F5M/M;_4!QA-%"^GM"4VV!4P]@!9_0/B\.N
M!ZOR/8%^EL%E8S5(4\*FF))(D!]!%_#=`PO*$1Z2E"$*=\HG5']<^UGF2"`Y
M9]1)R`"+!I4.#P?$L at 9O#\?!O3_Y;$,ULD-E;A11WD;7,9Y0P\U4J4Q&";:Q
M$Q<*37%%!U1./,_^2D3/T)SF-NDKAE5QK(,?&'HL'AD!>;9AJ@*#(F'>B=[O
MB"G.UG,#F6$W8FYU5`U.T;I at O2ZJ/$A#?*>XE!0%*G^GV`]`WR5-8;&C&68.
M<G at 483V7D9E8Y:C]B^OSR>#KZ<U%[^H#<EC(LFGCZXI[&-2J'2"X at J_<A2SK
MV#81J+&>5;BCFC:P3E0S*49:U*(?N4+1?MPB=TD%:*#"\(1!_'#_-7F][ISP
MC-Q5Q*[--L?,I=9,\@W#-:IC-:/1)K86%EBSJI/>%`,`4(VTM=T`[HB2^U&L
M;)[<00H0VT$ZT#,E*Q=);%9%_5%1XDEST,2%RKWBL2"CEA[Q#"U&`Z)8WX)M
M!`!*<\+Y\2]/),U`<GN+J>_P][?BP>O4R&G>NA&DFZL0><@MDB+]^SYNO4;B
MTP4],2%C/WZ-,0N`96*&UCY=,>@9V^FP3J/7T,Q`:8VZN-V2;*=G0H!1`171
M`&"64DDV.:419+LI3!V*G&Q'B]O;\?75Z0B4?A((&-\95VB;H.V.^-3+PU$7
MM4I2.(6^<^X[=;?8_L1"08DW7.`RX1Y%SK#53Y\=''A]U&P6/W[%H[\>18F-
M1(B-(4(SQHC>N#\8U`"[SP0T\K9I<='R^7BA9]%.&YO^<'(^O+ZXZIT\C<TG
M*IVG$4GJ:1?=2$E'#-^.`_*Y`\G"A.ZR'5YR=!PYLGK.CK,=J](4ZZE?)VTR
M&O0GCPA'G9I*?1,.FD<]T$8O)W)ZM`?[])CMP.:\CR"^<JUK":MIJ"?YFD4T
M0/.1[;:X=)J=KC$<)WN&1JVJ]>MTB"6M?WKRP*^JY!:\*71K.0.L/]=4 at .;E
MVZ'XVE(=93J\XH51K8/-#M8:W'G&5+U]Q$C&P7^]@2!D3Y`^1\=:<'2ADK^:
M4&RTFD?<0]3OE"JIJG;0 at 79(6#;:#\6)-*L.[+:G1I;FN5VV6^7CV8\:IR[C
MYO1,.34=M:5:[*`4B%CI/`V at 5>[6K7!+&.H!Y=%,PCORP][)G;.9L6YO3RZ'
MDY/3_N7)Z=K8!60GU",*S1ZQOS^(:B+&;="VHV+FQK448P`=CG-V:7E!K6<=
M;(25>B;8$>CU^'0T/#D>3,;K3U!3=2TA^)C<-N?%3T?[4#L9BX2C_`).+XG,
MOIF1@!!;`=@1^T]#C#A);3>U'C#;NIR,1T\)A'83N^.CM:W94"G\M-](@>O/
M\(=)PALD5B_+ at Z57O+A1VU#WFB:W9CN.7^?\^$58-KYHRJU$MB`0&`\DJ$SO
M;7+R12JJM3"ME[X?IBZTL6AF>%*!C*B"W3>(_>\';[<_KKFS4;DL&<DCY!3,
MN(JI9^2D78G:!;'U`@0\'ER.'QR'>(H5EI(-'4R`&;<?CJ-Q;=//Z6O\^F,C
M",UV6R_&_&S^UKB'B?.5_S]\R.CTM)K-`(/KSJFY!J]=XQ1TX0\J/MZOVE<]
M$#[:(4C&ZK6H^>;QI<+=2,#!VV2SU32]HHU;^^W"CU_\W=<FVN[!QIK&ZPB#
MR9H6\&!SW"0=J5&]1M("B7GRF=7PF6K9NC.2MW>J#!SB_P%02P,$%``"``@`
M$9TM'O<.?I*W!0```#````L```!T<&%S8V%L+G1A<NU:;6_;-A#NYP#Y#X>L
M@&S8,RC)<CJY"=:ZZUHT:((H13$$*:`7VE8B4P8IM\Z"_O<=*5F6++O)NM1I
M5]V'V!0?DL?3\>X>,U=>*'AGZHI'WTX((;U>#^0GRNHG(9:N`['VB=7KZI9.
M at .@ZZ>YC_Z,MR$PD+D=5[F&3I<W](#)C80)OO-?.:7]W9W<G9`GE0]>GLC&<
M,3\)8P:O&1HIBMYX`>)L>!['$759'X8N[Q=@[]@=@8,Q]:]>QCR#5X"HQV0:
MT0EEB2L'W$D9.D?5F1OUX>;Q4;JESK%W"9_OI&$^^DYJ%M"[.Y0%G=V=1S^F
ML#@4](I>?\L0<,OYUXEAJ/-/3&)8I"O/OV7I]?G?VOE_*YW@#;VNA@`_1M_?
MW0$X=5EP at N[OA']3.`#3Z#]PA,BA;V<3J=SS,!$VO(]Y4)GL3YHLU'\6!-R&
MDUAM\A[#S<*"VXDX7]K[NFDW&^#_$\AJ^2KAZ!<)%<D#QG_#-,T\_G<1*.-_
MKUO'_VW(E,<C[DY4?#]#/^C+8#\35,#@]*Q=2 at QY.'E%YT["&W,;O.N$-FT0
M"0_9J`^N$'3B150&594Y)/3,]2([19SKO0M,'AK1#;-K]?:?_.9Z?D"'&N)=
M,9%+PR3^"!#,VT!%WA9A&XZ'0T'S"5NZZHQ0SP`[?S^E8A:I1`7SF(.'X[VY
M:OI1D,_C1FTP5$LDL?!*SU.TBZ;0>^D\_G@$+D[DSW. at AT!_7!IW+L*6-[\H
M0Z(E9%R$W"PQV7HL4*W'Y.6&(:LC9,O'5C?=QYA75EPJ)3-1MME/2^-2T48#
MJW"OWBNZ@$^#&:?@C.-/^+9/.,47*;#SH\OEN(&-F4FE2H`3&SXXZ?N6S<LL
M[^SN>'04,H4`^V`UY2CL>QXF](@5OS>TO86/[8&,1?$$IC@&5$S2FF7L.T'A
MZ1_"/X0DQM05KB+4=TZGU$U=`8;H"Y=2'2)'X+Z"1K&0::8H]+<XG:*1N?8Q
M#QHG'\XO+YK-=(&E$L64:[4U\/#+0 at VTE%SLE+I!>FCP*+$DC&!P\(NQOZ+I
MPOP%RX5#8'%2+CG2>9,Q904[,#P"5&XI3*$P1I7PW*$B*9Y&:*I\WE3RX:\0
M3/EB+`W@^&JY`RD5/UATO$X57"EJEOV;%<4ZLZPJ^@W5M(\41C at ANB#B)J+3
MR7>0BMI'27$<NIRLHGMJU+J0N;,(=_BMZ=_M_,_J+7[_,0S=D/G?W*_YW_;X
MGX-.L);^?0_\#C,)ZN8%+R-WM(GA'<]X%G0W`]22%<0]<+_,>ENF?FO-LF[B
MJFTVH%8-5'/#GR3^/S3_TWOY[_^FT24I_R-U_-\F_Y-!K,K_BHFA'"S2\)/S
M at KS4S+MD(3P8\P8<Q8U"#((FI-7:#3R+DE_].,"E7.0>X8C%6)\CI<0:,A2*
M`,!BQ0Z<C7&L[S(L:H&Z(HRNP0T"Q'_^6B+CV)#SF%S]"D5!@I(984^I9$-6
M;3IR at YI6H1R*`>16R`I3+.R1`CQ95*FJ2%ZISA7HB+)1,FXXS:>'I-BU:4A>
MUC<&Q?H]E1?4;SCGY**)M at ZHSU620\HLEU#,/:.'A6J;!<LGA<9&-E%>5IG$
M at 18,E at _3=U/@0;JYB0N6N=Y?\0R2ZRD-;-C36H-X>MUPVGI;<;C<3,UF2]LK
M<Y>*W&2N!<,0DQGZ$.>A.Z+XTI(99ZD-:E96L[*?4V8>Y0_,_XBE6^GOOX:Y
M;UJ*_W5)??^_/?[W#IW@>^-__YF699NJ_P?@UO/_T/6_)6M^=?Z[.C&-^O[G
M`>I_>5JJ]7\Q,-37/_7USV:>I*YRG-E4^<L>"$G5)+G[PD4.\K_#IT?..!PF
MAXPQ5?DB281XF/;ALP[`O[[SJ5S!+.C7 at E&MI5)K1I7+<R??T0$^)M#2VO*6
M:-"TS;8&#3+76H7+HX%D)LUB^;ZD4^M8P*9U4.ZPCCQ4&I*D%OY=6;.^A*KI
M3BVUU%++.OD'4$L#!!0``@`(`.><+1ZJ?SP`^2<```#P```,````:V)I<W)S
M<F,N=&%R[#QM<]LVD_V<F?P'/!_NDLS).LFOB=PTEB4YT1-;<B6YF5PGXZ%(
MR&)-D2I)^273'W^[>"%!$@0I-^G-S42=QK8`+':!?<<"MW,W"IM6M/KI^WU:
MK=;AX2'!G_#)_VSM[K:/2.O at J'5PN-_>/VB15KO=.MB']I_^@<\FBJT04/D&
M1&:(^W_RZ8TO+@:C&?GK^;.W;\FY:U,_HL3R'?)R%/BO/EEA:/GQ(QGZBR!<
M6;$;^.1M]>?YL^?/")DMW8BLP^`FM%8$?EV$E)(H6,3W5DB/R6.P(;;EDY`Z
M;A2'[GP34^+&./M_!R%9!8Z[>$0X\-W&=VA(XB4E,0U7$0D6[(_WHRORGOHT
MM#QRN9E[KIW2`%/C-]&2.F3.X."(,\1A*G`@9P$`9E0=$^I">TCN:!@AE;MR
M#@&P00`GA/+2BA'UD`1K'/@*\'TDGA6G8YMZ\E,J'>+Z#/8R6`-%2X`(--Z[
MGD?FE&PBNMAX#00!G<FGX>S#^&I&NJ//Y%-W,NF.9I^/H7.\#*"5WE$.REVM
M/1<@W\LM"Q8(X6(PZ7V`(=W3X?EP]AF).!O.1H/IE)R-)Z1++KN3V;!W==Z=
MD,NKR>5X.F at 2,J6(%D4`AB5>L%V"971H;+E>).C^#/L:`7*>0Y;6'87]M:E[
M!ZA9Q`[6C]5[AT`L+_!O&)70.5W'8^(NB!_$#7(?NL`N<5#<51R>;FP#>-=N
M-LCAT0&YL**(=.]@+WO6:AZZS at W\>M$EK=WVWIL&N9IVFSCX^;._R%LRC8$1
MK=`A'^"G![O;IPO7IU$=_L_+PO'U]?3J<C#Y./A,U,_ at UROVL_W\V?5U;S0[
M'UU=7';[)5T0RFPR[,T(*8<R&,%V]P9]0Y</X_''X6C6/BSK\OS91_KXZX9N
MZ-3]2C6=VH?/GTU at 62Z#P"OI0EJ<&_2?X:AW?M4?$)@'E[?9C5;8_:<?GW_V
M<TL?E[C^W],#,-O_P_V]P\3^M_:`*<'^PR\_[/\_;O^_W8=K4:**-[EK-_>:
MNPW\;AZ at 7NU;L44FU'+`O9A.R,OV'OFWY6^L\)&TW[PY>,6,K?V*],!HA.[-
M,L:O]W>PC4R".0UC^`':WY]OPAORR?)N7?]F9WSOR=EG8!FL#=C)D/D98%KM
MP(\M&PWPG6L1NK,"LT7`^OX<AAS2B6LWHXW_&,V;U-G\@E!@=+0)%Y9-B>Q^
MV1PW3X,'TM[;/6J`H0C``S at -@^"V04:?&Z3=/GK3DM:$(V+YMQ$8JP[7B'WK
MSG7(QR"VH8'\[-SRWT[6R\?(M:/F)@Y"P#1HVM8OS,HNJ;?FQO`<-'L<W-QX
M-))DOJ?TEHR"&$S32_`Y_)N(NQ11C`Z%3X%:,)-`O>4X\#N`6[@/U'G5$=B1
M@'0=M-5 at YF`TVN>>'WL[IR&U@*+I8S2A?S;X=UTOWNE3KT$NK0WZ1-.ENXAW
M+L-X:@ME_SN8;B^X9VA#%YPZHFLK!`?)>P1/`6THVFSA44&S#0/`(0('*MRL
MX^A=8C68AR2,K\W\"?`";`HVG$T8JH`78;`"2Q^#)@$7DP0^3<#PH0P7`'@Z
MOAKU83KPQ38V. at C-9I-\*5D'ZL-?-BS:K61:.W!H](Z\'!(G\%_$W,,)?.Z)
MT"AFN_2J!%P"!4 at -0MBN;N]C at TP&T\&HWR"SX<4`'+T&H;$-2$D at 8^9F(GPD
MX70XGG+)Z<+V-)#6[!(M-CXC"QU at B\Q`L)`9Q&(`!T0P9$7)30#N->6+_</W
M_^'[__#]I>__;>W at 7TPS=X#U-Z&-ZBR";:8HG1%=S3U8F6ACHTZ#;0<UQHB^
MZ$XOR$&SQ61QAG^`X61AQ%LPAJ"Y8(^W#D-T)CK_T7TW/!OU!V>DX.VSW<A\
M"ULC]+O3T(<'/#1HY68X!CW.A``VM*5#`;3C\$P?30CLU'!%'[SPJ3%N,<#O
M at VXE)<$5?G;;2T07NR7V"@3?!G--=*OY_!FJZVM4UU-ZHX.XWV(04ZT._5;4
MC\7(CW/GS+/`H!='MH_8R/%B@:L'<I7X51"XQIN(\('M_]P5L,!T?PK"V^D:
M/9D<K#<,5 at +A9^C[B^_[:+#6%N at 5&!?A.`&*K>X`F%.#EK54.P$NX*85.MFR
MD]PJ'22J=)H[@JI<IS>'2USFRR",T3_)+_$N+F^.V8;)SH$LQ6$`&@A&,ZZ9
M.ZWBQA]J8&1]6&6\@D0ROFT8KT$A)30%L6\`(?IS""!WU*-61$_=.(O&:PT9
M<^ATQ*3O+6XU:&LVUD$XR#[7$^;?9</Z[*<]!SC<.^=]$8Y#UR&H-`3$P)Q7
M at 6FW$(Q'%R8HFK7-`6%0A"VWQ<KJ(`%[$P,D`*1"PMXZ*."!!IXW*(&"0!@4
MWFWG/+!OP9^T4.<+`*/-:E"*!AO/`$`WW>B>M8X&):/Y8#8:N^F&#\'8AK$6
M>S&:#>?=&/TS%G8X^J2.7)-DHQ.H*B.A!Y(R!+(9:)'Q(A5)57(+&G]XAKJ>
MD#3)Q43F^ASX9NI9T5)5#@>H&2Y#L$<//?#96]F%&K0RK>U<:WMII)(/'+0J
M^)EWV\$)2`N[WX/U!SQC%D5D8;4K1"P'JYV'I3=H0__,NWX-NH"-R\_03J;`
M&2+TQQ$8^84<G94L`*S`,=D!GK9\ADO$',$>L(@%;BUL1D1VZG]$IO%Z$-G%
M]&&;MXU]6FS;Y6VS^Z#8ML?;INY#L>V(M_4YKV3;T"8Q9/[<6."UW/AJHR,:
M9]:\"'4A&L_CT]"R;VFL9E,M"19Y/)]JM9.1J7)+&N6<O0#\X;QA.Q*-IS#A
MKQMP,=7&-PG8HN+=M921>:G9G2=SKE96;LZ]/=$H1V4:#T3C1#/GWJ%H].)4
M]2:-K^6<H*GR:[LGL3UK%RWSWCQI;!4:]_=%(ZC/8J/$EBOG7*/$]@,&ROF1
M<N$O;_I^OO&@+1J%ULPV[HK&/O4*"!V(M9T[`TP-<'&5C4?=);?7+!H*;'L3
M0FR_0'Z*(`;$("J3%F)P9C3*27UK,%@RI_08S/T0PPC/8V'2#MA]"R/3"425
MVQUQE*E);<Y?J&_"5#CHC=W7AV4G!,W2MD2W]<;]0;YQ.GC/TIGX.?T\&T!8
M>WH^[.DA=:?3JPL!PHXZ!`%6]W2 at YV@\^S`<O6\0JOX1I7]H at I7\B<>%91?\
M,=>WO8V#>49 at RZ@`HA1F-[)==S;WFA#N\@W>D7O)$FQ+"N8?%;6K[#IY&=)X
M$_H1\;\V,9 at 3C=1Y1;(J.K\<?%$)Z2'<LR`4O`1;DOV"7$[&/>8"="=%*.M-
MM%P4O[8]M_CE*KCCB__0P!\[[7P7$0<RSL*<EX8%'T209G$8UD/Y-#2J["*@
MC,_.IH,9&=%[)G3#J890>[5F/S^-)WUR.9LPKOD=;/`NN/5?&MII_A!6;_IA
M/)F1DW,KMI>5R-C1-I,?ED\NM-[)*-!./#B?#O3[R07$C.C>0>N-AA8(J-E/
M"*X-^^\VR-RP*Q&TVX;Y'=C8R#6/%UL*7'1]886W-"SO;@,YRM;OF,9$FWE"
M at JTA(:1K*C8LFC]A3[A:%*S2D5]C3H8+#K:)L1TM]S@/1:&2"KM4J-;!FN at W
M72)4'+#0$1\7M0=`N-1HLWL7%BK)I,\WBP78P=H.IUFCJFJD/Q[-^@.M44BZ
M75]?30<L>8.!-P322C)#*K_1H$S[5>F8.6Z,8$>9*#$S8RX19E2!;.:33[":
M,.@\"-:=%%:B+<`N_CY_*-$38*X$GL4V+^"<H4Y0J9/AI]F-T.*7)II*\"P?
M!=%GR1C)V-9#";?FMYMS*ZDA!(D'@XRM^F$)E^]L_2DB66ZVQ90?A;G*_*GP
M[=\VVB:#P,[\N-_U>T[NOQ1[R_1JRB8ZB_F5*\AA-)2.C-I+D=E4LJOX3$ZH
MIG$KW88Z?D/&'O^>R?5^J<G`S.KP$<C"&,'CB0O[IB8(EG?Q)8Q<[EUH?Z5<
MJ(*JO8/VX5,->P:ML><`9NW#WUAF_;]VOZ"C_:2Q7\SN`D-[5X]VQN6L\BDT
MQC,'(744&7JBIFR+U2JH$O9%'?YE#A>PQPV>LN`)^1L\!\94YI:;5>Y=HJ4J
MNL(PIQ-LYA[E$<B_RMU<\$QBK=06R3%Q`JZTR0G&\<Y#?3147=+162L-*#$5
M=]P!Y.#!C9,`*3M#Q\3"K3=<(S^%_>78.NRO?'8%H^"!@$_O*YDE%Y6ERUTE
M+<JG4G"43YU at R\C`)JL#=-_1T%T\RCCX^3-U[SI&9]?HU^8-K.K77OGNMW``
M.#A^TAS2%?S'*FO8$7Q:RX-VU`[=V(5UV&$E*"24&1^V-"R_I$GX"A*Q^,;9
MA/1?IJ3`E9_S+W)?2/_BN[H76VX][#U6A-S3-`?RKL(+T<K^5Q&C]2P_3LC6
M+991`NL+A$GTZXN at 6?EL(6)I]%3TLOY/?:R<NU0<:8FS;,OC(UMGK64-C5OT
MW73!A!I4BG"QG#_3L*)60*V&Z'7]M`R_5?L^9DY)/*V_Q6^*K[>52M>LB72+
MGJS]8XV?(M,HN+E9Z>X\U2KDU:*T"ED!).2\>SHX1^K9LO$\\?V2AKR:,0C=
M&]>W/%F%XFJ0Z(N[`"_?O<KI(L&9V5P'/Q^X<".[*;(KL'_KP-U at L(#Y,UYO
ML$!^Y[6*I*H84)DI$8"T3(=((I'"#'[]3_AOIIS'V:PE(4J!B7%\2W3E!2M5
M79\_ZWKQ=7?:&PYE9SQ)R'8^Q1-429N2#OT/+-93LD*BW!6KOI"%6.47%NM1
MK/&ACN2TYF`RX3N+O1[13R]T2K(&J2)3:,F6A!1C0$Z>6#@E[,N`$+4QR$X5
M$'CF`CP)Z.I0.W"PP#5\DO/"ZJXHGE3AH7*=U%FBS):@;;UBNZY,H'BFPV,"
M5/A*D8"N(P\.T'$?B&I at 72_N'!BBZTSA@'8>AM#)\,8/0K8>(ER0LW9*<ZJJ
M]4(&2DN`#*&0QROQT_-&0\XY at U-9^A$`MLVY3.&_LY6882T*4HA_S>8>;GXG
MBQX_P$N3D`8$+S"MC9"V2U)&2\^$^Q]BJ(HCHIS,ULFP(P"Q/8/;Z.G9-?$:
M1P&OL"EV887E at N.5^BX#K+ZL51*+<B*&.1QM=9EE190&FJ@`..%XZ=<W,8U>
M.6-F=C*;M_+*0^B<**1(=)3,<07H$VGH^YLUGGP5"!=E4,8#E[)MD0[%E,9L
MYG.=ILDF!'(T9;9IZVW)T%;.>%5+E*+4R;&SM=3%8G:)1Y,N58>0&I">JK:$
M3Y`I"3DF/Q/X6Q.U_3%/]C&6=R-@=-TI6LH4OQ#\^YUA1PISG"S@)^H-OKQ2
MD,L3N6D5G5%3\"(;ZFB\2\MQ$O/(?7R#B/4#G_:IG5H;";=#ZB*+^04SKMBC
M!J)[6R'*@'8RZK$"4;TP*7A"AQIH[F^%)L+L)$F)'(-TZG$AUB&9&1MF81YK
M/7A]ZIEYN`2<4L"3NZU<;K*^"?-<6LZWH,SDQM3GH4(1Z_%QV4F48;ZD4TIB
M<A'`LFVZCB->AO\SMK)B?';US.P<\`Q"N1JMA9HT:_T`I]9*3>+3B#EUZCV9
M*R,36UC'8LE)?J6W8K+MMRFIJ4CWJ/-MU4V)T-:<X5QK)]24D'QTP+`[$HNE
M[WC?G+E:)NZ:@ML2:DUQCBO*&4A?B52#RY.M5<GO;$?N5[(5N<IVJT,Z90YO
M:D#8L(ZP(.EB=`RA<8G+%<5ESAO&])A08DJ&7U%T(Q)CE,9RX_!-$.(]3"PC
MA(XNWK`(P7E=!SZ+_GETP.^4K(/(11/';P6F\9XAGZ*4#K/`5-8NRS]0_OCO
MK(98-YS7\O(B&*SZ3<T"5A8WQ._<X==E'60&KH[-@]%2.Y)BSD+Q&5EVA!*N
MQ0$IU/.W]#$JKX69"]Z;&Q*S<V'S=.&3R@,%]__"6N/2X'T0Q. at +Q-4[TL4P
MY<5KR$/!)AAB84.>)'-EH819\VNOJ[TIN32HUXZI,JJSF4E?.UC-79\=W44E
MYTZ9%:R*<C*NYB%>\"/?<0VS)!O7,-5>M9A=N3[X'1E='@#:#^:L5$$`)"U5
MW"\]3%L at 0=X8G,M3R^&K??(^"!P939-Z50-&F4WRT5^JUZFM,4&KC2?Z&#A.
MC+<-"J4$*9Y&D/1W<O5S]D,I_V592CT5G](XK?`\'_2C)U3$Y4[%T0ZCF6)F
M[7Y)?;+Q?8H7K_&]D8C25<3?HI#O1"3SL[<S/'NIG(3CY7N+>`&[=]MZ.++(
M_!%<!V;ME&30-RD"E>JT+(MCRG^7W[&(EJ&`O5]LUGM5$B64AGTS3!T75>6N
M85CK:&D6C19U-#UP-X2EGSLMP8Z?+-!^H&G#5H=G at 4DV[2UNS1H\7IQOUQ37
MI%-L[XCI<-ZZ!#7+:ED!L at -\O.RQ>#KSTO*B@#@!>'E<^J"G>+OB%2D(T#%Y
MR21&O.FP#H,Y.'*/^%3%BH8W^.8$?Z:!0IN[PAG%1/P%$WXC>9O3'2D3NC+]
M:BDQ.40F6R+94/:ILM1U;)CYFH%2T,2<,GQBQ7MR*%@_8[@55@*L,KSSG5,]
M6Z&G'Y#J/_Y:7OGI7T:G1NX77NIN. at 7$&7^S/%=[!OAO?*YE.&),E%S<Y+\F
MUS0;'`90NP68U<KBO[*;ES5`</(D`(B]M"19I)*D'*#[0`N(%@!E,.SD3S?Q
M=1S9B?<HM1>2+PRITOE6J5+H94PGSK=)E)8!*QY!ZR]%<M'Y6Z?&S!J9<"DQ
MO#6E=E*F693\9=G,-:?`9Q#,BJ%L at KQJ>*DJ5![E6LX?KW;V=8Y%44WD,X22
M:T4:ZCTMR]<IO,I1[908@*WGS,A+R:P2KTZU`?J&J4N8^"P(;:HZ_8;R2XUT
MI3?[C]'##N[)B_8+]+O?/4VG<RE7EHS4=VW%6"#M:@U1\22XKRU(.M+2-P2.
MB34/[BAY\;:,-%6?E$^>/X5JMU^+!*$<TZG'<-7V)GG&@/_)'BYHF%FQTO9)
MP[4MD(+EJR$09;Z:9?#_DA0LFAMK'7%A!C;O;!FL"R_BZ5X2ONI2X28Q_$J+
M$<`AMY>]I17V+'Q.38[HB'KVB59BR5/+J-!Q-M at O]*,K;%CY15%2%@?4\O!T
M=0HE<_'RA>I)%.[KZ!>MYJI]@V4KH\6X</H#`#W]2?)O4I(GEZD5]EBC:_,;
M#/(APS2W$LL7*OF;:3Q=:GG$!A;%MUA#);$2T5AD43)<7!4SYH^"7U at OS$[@
M>7"ONWQ5@//UA5E?E\"1=[TEG%U=-3E;]&/CR1>;A"\%%V0V7Z<$V6X%T<Q0
MU"#Z?U[4,%+5J41&=-*_PW[GM'34'$9NH]4L!OAOP"?)M1/DI/6&90:34ZH_
M60%Q51HPO1K#'[SHG;UMX8L7^&`O_-YNX!_B)CF^P]ADSZ1<;N(D.UZ:]*Z(
M]-D5;OV]X^*@R?C\?/S;8&*^9U=Z^=EPK^T4:&.E)YZWS:%@9F#GB52575YE
M0[Z4WRXO7XVJ^]RZ4L_RLK7\-NN.`?FE at AP`[4DA>RGA^;/T)0C>**OX"T>?
M\@!3B+!/K'#NQB$J3GQR8<5AX*&K>#B&W+5?&"#@B]GX3+;YA>P790^&H=C-
ME&>7W3BBWH*\O*=XLAH%(::\7Y&ZV7?U,NB3;I8GQW4RF4WT(RVB_8@[T2&]
M<2.\O5"\H&]\RD3[,(!HFS]L=2*EY2"D3S"[\EJJQD`SYVYJX:6`4>!&-$LA
M?@TN at RN>Y0T!5K`"/R#PZCU(P"[8$5*VA#;FN(ENF)I53[/98AA>-T[>E#-M
M[,75^6SX<?#YHGM9[M:B,&%LC>6R"68K:TU$`:W^K%%/KOXI`$/M1LX!(ORM
MIMSUAV#!R#64D7/O487#'M$5%H at UBL4ZN>0/G8NJ^+IA_=8GP4I8@>GG`FI'
M.UC. at 3@U2!Q2*P8VPX[>8YTPBV1 at O59@\;?30WY<K"VNR58`=1V'%0HI>':V
M*59"#"+VB*5D%Y0341+_KK*"J+`N<JC<-M-]/@WO",+!GRE)*-5*=]A;,E59
M_H at O;@TVDS3E+2:;$]T_Y/\=2=J?_!*C at F"'F#]2U<1TM0Z8"5SH'[.0IS45
M$50%\TNGJO1<N\7JRF4Q`Z/KW@*I]V_>&44)I_O$.^8)E"^8E['-%F6H`K6R
MK%*:GS6AP_ECX\>NI[S^6RK:#XW<$ST90X0\^):T-,'J@[V\D;JA9+F%Q<@L
M]U8L6(<7,XO1J?=DE9KNR;]6JU)/@2GA_YU at L9,\#EX`)L]]Y8/5#55-IL"P
M$H&_7ZQY)$0M82H[X5\':XM4BAOHPACW/XHM^[;F*V^&N@[9-M_J/:6M'@IS
MF<N>=2NU+R\IZJOZ42_YCB+;V85EXSN*JJ7GKS*ZHI4FKR9DWQ>2*KOD'K8R
M2?M0G4&9(BDZ29^77P;!;51X]T7YHE#HIO)'B6\E<6'NU(6UUA,,[M5:*1U0
ML/C?]JZ\NVWCB/_?]_H=8+4I29=D`?`4Y2/R(4>M+#FR':=)W18$(1$V23`$
M:5ON\=D[,[L+[`*[(*E*IM\+F,RS2&"OV6-F=F=_HRDS,=L,FJPH4CS7%\ET
MUP;JKD7%YK$_X=%+L^2BY]+0*`-_\0]9#3#J;C,`V+KXGZU..XG_:;L4_ZO3
M<\KX7V7\SS(&4!D#:&?Q/VFC!97,+Q/_\\`0`'0W\3]O(@)HRR5='/K?BR.*
M/6'%\&:SV:2FO'[Y]/STR:/C5R]UE9!VMH;A,B9 at IL`;X>`A7]LRN.B-?&+O
MXK;%_UKYW^XE\M^U6VV4_RV8K*7\+^5_*?]+^;^S^-^P-*:02M=7`KZV^-^W
M'=P[O!@%%U9>RS#+ZV]P(!,.T8"XCDH7'T"G9Z\H[&FZY^9TQW?,637A+=/3
M8`8+BCGIKU*?6`V#Q:[EO^NP^-^VV^IV7+>,_UW*_U+^E_)_Y_)?7(^^`?O?
M(/YW(O\WLO]O5T4H3?2OY0.R'UV]FE//WY7\;W5QSY_)?]OMT?Y_JUW:_Z7\
M+^5_*?]W(/^9^'].,1AESUL44ML*?V;]'XB;30.L?O7D[(?#DWOWSY\^NW?_
MNV/XNU:WWJVF<VS-\=&;[YZ>$PRWN`U%G^>'C\_/Z'S]Z;.Z13G4+4I<3],H
M(O;D[/'A";D`_9AY(AR?I+PR;XAK`^O24 at 6R:3U36N'4Q[WZTFI_^^,@[Y#\
M7+#N5.(=NG6MX=_IV:N4A:<2#XM9F":[+J\VS*.09\8\!$.$5[S:(M6OYR#Q
MG1^@8\6"@,3CU+ED'I%[B7&\G&+RK.XFKG>0[[^;\WVWJHK*&/P".F(-5YO<
M[RVWAE6<XU467`O<G/=:`L:`12GI[[JUAJ-I+R[%4W&VM-:+2;E-D<T_^[)T
M@^8\FDS./N0=LL1UGTWR2S$%D<D#2]O-7T[^>Q at Y=CF<-&&<[$;_<^P>]_]`
M_:_ET/Y/QVF7^E^I_Y7Z7ZG_[6[_!QV('\M^^@P.<\L-(/FF+%8572`X"Q!I
MC.7HY]"5?.C;BT4TM1RWCQ7HV\SOH2Y=EH4U6P!V1C#TK-X^076BCK2*5WA+
M at UPX@U':@@_>9,6!RG2W#K3A8%)XHBQ^I[AU!BM>'4SW>L6IU"LN4`NH#=0!
MZE:L`WRC8=L])56E!T_[0/M`-E`#Z'ZE;MM]H'U*U6_83D=-]0N\]1$H`%H`
M+8&N@%9`(97E=!L at 2]14$3R=`_T,]!;*<%IUK'7%@^\QI7+;#1`_:JH1/+T`
MN at 0:`[T#>@\T`3J at 5"T74NVKW("Q5/EGA>7_-WCS,]`G(!_H`Z5J`S?:&6X,
MX>D,:`J$_S6!_L1SN<M2`3<ZG1SG*Q9[2T.8J@/<Z+;R_64F3-4%;O0<;2KL
M)SE%Y8\5D:H'W.CM;UM6'[C1[VV="KBQW]DVU7ZWX=C;<L.QVPW'<;9-Y;B0
M:EMN.*[=<-R>F'@$OV.MG7AW8+!\"_0[H-\#?0/T=^/$^T,%AU2]4 at 6J`?VC
MPCNQ+]BDFWC?PUMO@)X"G0.]`OHKT&N at 8^/$.X.G+X#^!?0?:>(=PO>7QHGW
M!)X>`3T#^@[HST!_`3H!&I at F7F4/GOZ73YE_P]\_`?T(]!CH!^/$>P1/3X&>
M`]T#>@#TL"(/FG+B_?HF'M[.L=9./&UV+=LP\?)O.O2OPW(R3#S;@:<N3IL.
M3!^8HBZ6#7^[CI"3FHD'N<#;759+=Q_^%N5"*F??,/%LNPUO0"J[QY8#3.5@
M"E?44"?QY#:Y6$,L%W."6KNN8>*!P0?YMI,E03-HOI*)5Y"JG'@W/?%2X#;3
MY%,4QX:B:N*:2-WB0+?TU52R<FJ3 at I6Y#@<="=W2$A5)\(G5:HC\K)Y5M_I`
M^U;=L>'?-E`'J$O?,4,TD)(+C0)M%=7U*AHV2F8.)'2!6A;>.ZU+<8=$[9+S
M:/2'NL=B/SP0N=?R^KR"Z7!&MNTTC/U@,O%F0;2*)>#7V&HVF]9&F`XFAZDD
M6CP!/Q+.?:9#:4%-6:FYCLA`\N^QU`_2>">"2;W>F(9-O\W^[;7XO^R[\FJ'
M/^JR?]U.)UM:]6Z-[%PPEX),NX2]QBOT))@\(`,^\E<L)B/:[W$T#:P)V/2Q
MN/K/.Q>-]JEW11B[J;6&5MDEF;M at MGKI^\R*OK+BJW at 93)MF#J?W_O2,EVZ*
M9P8#3ZG;_PGI,N(M;OZM/__MM+HN[?^UVR"-VNC_;7=[I?]7N?]7[O^5^W^[
MV_\[!'$Y"QL""0D;>SQ#_^/K[_]Y&!DG#O$FU%X<^"MHPM5>!C^/^#:DEJ&@
M]V#8("X9B)U4EJ2WPWDTGO1LKPJ,^A".<,\/AY4WA^_S18A"A[-0DDDX!5CI
M;(^0T!5H,(D":LTT)K4(TJV+24T2-8*:<Q;Q<-15K-]J%K)(U[6UL:E/@X]4
MD'"Y*T2,D@/.>./T*GF,DPFC[#5!^2R$QCBR$S7K`-_[]N@\\!(P%($U<;9:
M\)\I_RN,([K`NV@>LEV/49#7;BA_+'&0`][#T`>.OO[.PP)4-\C-R=2?0H+R
M!DCU%S\G]??Q!P&+H8%%8ZJ[JRA,#+0'6W?'JOYTA,-SA,NL1S`M-=%`1]]`
M5]]`=TT#7=8NVQUH`3D4,!%+"HTM\$08ZI`!1R;DP)=4T.#_C"0-C73LL:Z1
M\//#`MSTHW1TB>ZYC'`Z\M_7E.GHRW2*RTQ'A%JF^+VX4+NC[\W.PZ((VD=V
MA_=F9Y`#AT%L&?]3DBU5*29P2(2<08U$!SDB,->&G_*H;T/M^VQ6*/@Q!P)6
MTHIFICDA$$PR!0D$%7U9'*+I["CA%V,8 at C-950EPLO80S1%=%EKF"!DH2B]D
M4#+(SU2^LVE$:%WIXH-H at 8N/B"3G3;".`=[*J9FRU0#*(,"FF%*=00&J;/;!
M++CDBX62XVJ&8%F7L_`S+#8B=&H=@6*!BT5+5UZ8,)R8TN<W8_\QQ)N=^7_8
MG;;;2OT_VC;S_RCMO]+^*^V_TO[;G?W'ZY1'_;J._=<@92YF)@-S[%#,MBUB
MVJVYMZH$+)6 at R!0KQMHT"E=.K]&CPKUX_>CD^+%L*ID+S-MR)@0X+2*P%2]#
M:X,/HL.^A^4&@<./0=_"2\,4LNTH6G`#28:S-H%J4T[/0*N at KV<7W^O50]FE
M=%-@['?\VI14JX)@$]F,%01M9OX9\;.Y[RHZ"3T;%.%GLS;730A^%QN.M8V!
M`8OB,63'CQ[F+]FQ;S#317)SCEF(O^VC1EY_ADE6U>W-L-1$,Y6X\13;]0P0
MACXTX#CFL)SKX$?7@@5CE!-B"XY\.>?!QK.)V at N_<>#8-,N!LO&DJ\]MSPFE
MPTW0ETS at L&`'BIRAC1#KAJ<#]QHL:*P8O<]XQ,HCMA^C?%T'$,_[+M=URJZ/
M at 6_9@C1\2PS37Y7]1W#84V^^0_NOW>JD]S\)"Q+LOVYI_Y7V7VG_E?;?[NR_
M<V'N01D8:.+C./3'%&:"SLU$(('-[#\:"_`_ZUOBG#>'#F.G?K%5C5>XT1U;
ME]XTB&N\L$7PRRI<L'CDWC"<A,LKS`PJ!!R'>8#QG"'3Z6JR#!$I,5<Y&%C1
MS`^:S!5'C:"A"V=T`(R93&C"6`BN34U?O,=3R$`*M%$<8UD at FD-FY&$DA0'!
M#.'/$&;S)W%V61R,60W$#'GN05_L%0=D'A:$$<?HY<-Q%KD>M+T];.@>5O!S
ML(B*XX)+%4HVY-&NA[[`^IJ!].6HJ2\X/U/0=XQ*[X^]V67`N`YU:3B:G?)H
MR9O"(T#RG&23%A4C]+T2'<[C+/D3WEK4`ZD#S!%:F.:4'35R?"X^:T5D<:@N
MV__'NZ+T/LQT2-M at B:$Z8KK"+%A82J"@8H7QQ0(2'T*F0I-+?I!51B..EZSU
M^['Y^<A at 7\CII0BS at BV%.F=:4YES*E<:U_T(#SNY at S:+-(6WBIZ\?F%5[9K>
MIDZ=%C`<%%U3PN&M>+HUK3<X9.4:_(P/WMY[8-=I0NSAUSW)<2%.%Y(FY<^D
M'XL?SR3E%%0R*/!]`,H!"_H63.<@SUB`'Y%3LH7&3]%6LPDR0(GH0Z4A9L^(
M7W at JSWNR'\3;1[#]'=[_;;GPA>O_[4Z+W?]ME?@OI?Y?ZO^E_O]UZ/\\@"T6
MQ:/KL7![%*=D[5R0KO_BP,2`.^$TG&"D*ZQ^%`?,EPJ4;I"CYQ(>VJMP&BQL
M/90;?MKV6/8PH]?YQ27MZRWE=::+L+""UO'Y][9%&5C7UD4.K.K0H^AJ;$S.
M_24UH%I+7#=PY!/OFGXJP^>7<\MM=ILNK`ZKA0\&$,5?]?/-%^J>>5]=WENW
ML at X[JH.0.2QD)FY04:2E?(EZ-QQSP&8ID*(</P\_@@',EPTQ3F!2T!UN?3Y"
M4\WF8_ON6)]"!*1*2F-1J;1!TM?75)]&V'/9-'U[O+X9!*HB$G_:O*<*,7W3
M`GRY/L;WX_%$4QU_8BY#?XI3E%N_H,8%0T<8OEGFFCKPBW>XU$3[XL+0X_%X
MH4WA&!J1OKW1`/DRC=AFP="/P-Y&B-3I^/%RH[$PZ6:#4LZTMPE&=L'HE+M*
MSG?XZ0;67'Z"=JT5-TULKHSLX:@71VC3IV_\]C<G7KQ\%?KO%5PM;I`G)^Y"
M_-`ZCMK0!%)QW_O($L7HJ_3D3?HW]YD_N/[^@2Y2. at NZ(AVC,ZD3WW!!N6#&
M3++G8ZL;AAT3N'%H"I9<Q$<V]\2ZH5TS4K?;G*.$Z&/-62-'`C/G+(<B5./?
MZ+J;U3,.66Y5&7"WX>B]A6FV#?F*HCC'GY/>BNG?_AR'6'D,_(J_/D)<F8'J
M$5R<NN&\-=>WJ-2Z0<R,`M\R]"9?0`07].^P?56E0=M7L`Z,TZ5BR'?*&'@4
M+N/C&4_5WS"JN.B>XJ:P@:U?T5C]?3Z\UL0,MQ;^0AJ,CMSC4/U!^DIQCVE%
M<#@S=]@DPK55+LN<@XFK9@=\4VQUW4+`_$+,/:=,J;M]W91Z-_/XAOWAZ-TJ
M7CX&PW)I7%.V*TO-=,`;J&4J[2CGUDQ9_,BK)3/L<..6]6:#I<'2K6L:=LR"
MC6:!,.VG7C@#JW^&`;Y8(7&`+OKAA.T?32)OI`Q1$;=+NL3&C/=TQ.'MM3`B
MLYB'5P\_H\5#6R7,B[^.9UL739)\4L*<O-5O?ZN;X.H4LD:KN9"I:<_E<Q8R
M?!8U16 at RL2EPNIH.P7[&70%CV23`[<0K-'=V at FW%K$$OX+F*0LA2UG>A:0]?
M]RL_6H&Z8OY#FI[2EZRI?60RLDW^.&MF,1_+NA+E$Q+9>TDZ3EIN.:;EP1LN
M*W&*L>99EU$TLL)1X"'W/X9S97^'&/T1CS=PFQ+W;`R')%R`X<R at W:IPV;2J
M=, at EKCUBF7XP0D=4A`3`2W2CB';][M1,&/G2^9<8H\GYE_S#&K>_#0_`-CD$
M,QR$I7.PH+-UE2YOXY2?\E-^RL\N/_\#4$L!`A0`%``"``@`=S//&@M(9P<%
M&P``D4<```<``````````0`@`````````&-O<'EI;F=02P$"%``4``(`"`!Y
M`2X>+45;!A0*```%&```"P`````````!`"`````J&P``:V5Y:&%N9"YT>'10
M2P$"%``4``(`"``1G2T>]PY^DK<%````,```"P`````````!`"````!G)0``
M='!A<V-A;"YT87)02P$"%``4``(`"`#GG"T>JG\\`/DG````\```#```````
M```!`"````!'*P``:V)I<W)S<F,N=&%R4$L%!@`````$``0`X0```&I3````
!````
`
end
sum -r/size 44244/29795 section (from "begin" to "end")
sum -r/size 20996/21601 entire input file





More information about the cypherpunks-legacy mailing list