Return to BSD News archive
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!howland.reston.ans.net!xlink.net!zib-berlin.de!zrz.TU-Berlin.DE!cs.tu-berlin.de!klier From: klier@cs.tu-berlin.de (Jan Klier) Newsgroups: comp.os.386bsd.development Subject: new option for crond - part 1/3 Date: 10 Dec 1993 09:28:47 GMT Organization: Technical University of Berlin, Germany Lines: 469 Message-ID: <2e9fgf$7kp@news.cs.tu-berlin.de> NNTP-Posting-Host: jet.cs.tu-berlin.de Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Summary: patch to introduce new option the the cron daemon The following post includes a patch to the FreeBSD crond and one additional command. All that is intended to add a new option to the crond. The problem that lead to this development was the following: I need my machine running FreeBSD also for running DOS and I have to switch it off during the night. Basically this is not a big deal, but as the machine is not running at night time all the housekeeping that is usually done by /etc/daily, /etc/weekly and /etc/monthly never gets started. Now I could schedule these jobs at times during which the system is usually up. But instead of that I thought about a new feature of the cron daemon: Everytime the deamon gets started he inspects all jobs in his crontabs and for every job in the crontabs he searches the log file he keeps to find out when this job has been run the last time. With these two data at hand, he figures out if this particular job should have been run since the last time, but didn't because the system was down. In this special case, the jobs is run right at this point to keep up with work not done so far. To avoid conflicts, all the jobs that will be run by this keeping-up will run sequently instead of simultanously to avoid possible conflicts of several commands. This new feature of the crond is only active when it gets started with an option introduced for that purpose. Also with this code comes a new command called cronlog that does some housekeeping on the crond's log file. This log file can grow quite fast and as the length of the log file slows down the searches necessary to figure out which jobs should be run, it makes sense to keep the log file short. This new command does exactly this: it scans the log file and keeps one entry per command (always the most recent entry for that command) and deletes all log entries not related to commands, or for commands that have been run at a later time. Thus it keeps exactly that information that is needed (the time when a particular command was executed last time) and throws away everything elese. This command is intended to be included in either /etc/weekly or /etc/monthly to make sure that the crond's log file doesn't grow to big. Below is a tar archive of all the changes. There are the files for this new command, called cronlog, which should be unpacked into /usr/src/usr.bin/cronlog and the files which are necessary to introduce this new feature to the crond, which should be unpacked to /usr/src/libexec/crond. There is one file (crond.c) which replaces the existing file completely, all other files are diffs suitable for the patch command. Still to do with this is for further improvement: For some commands it would be desirable to exclude them from this feature. For example if there is a command which causes network traffic which is more expensive at daytime than at nighttime, than this command shouldn't be run at some other time than the scheduled one. The command line option is not granular enough, thus it would be nice to have a flag in the crontabs which can exluced a single command from that feature. Send any comments, bug reports or flames to klier@cs.tu-berlin.de jan to install: take all articles and remove the headers, concatenate them and run uudecode to get the tar archive, the rest is obious. .tar.uue part 1/3 ************************************************************************ begin 644 crond.tar M=7-R+P M M " @(#<U-2 (" @-# P( @(" Q-S @ " @(" @(" @(" P M(" U-3 Q-C$S-C<U(" @-#8U-0 @ M M M M M M M M !U<W(O<W)C+P M M (" @-S4U( @(" T,# @ " @ M(#$W," (" @(" @(" @(# @(#4U,#$V,3,W,S @(" U-#,T " M M M M M M M M '5S<B]S<F,O=7-R M+F)I;B\ M @ M(" W-34@ " @(#0P," (" @,3<P( @(" @(" @(" @," @-34P,38Q,S<R M,B @(#<P,34 ( M M M M M M M M =7-R+W-R8R]U<W(N8FEN+V-R;VYL;V<O M M " @(#<U-2 (" @-# P( @(" Q-S @ " @(" @ M(" @(" P(" U-3 Q-C$S-S(Q(" Q,#0U-P @ M M M M M M M M !U<W(O<W)C+W5S<BYB:6XO8W)O;FQO M9R]-86ME9FEL90 M (" @-C0T( @(" T M,# @ " @(#$W," (" @(" @(" Q,C,@(#4U,#$R-S$Q-C8@(#$R,38S " M M M M M M M M I04D]' M/0EC<F]N;&]G"E-20U,]"6-R;VYL;V<N8R *0T9,04=3*STM9PI-04XQ/0EC M<F]N;&]G+C$*"BYI;F-L=61E(#QB<V0N<')O9RYM:SX* M M M M M M M M M M =7-R+W-R8R]U<W(N8FEN+V-R;VYL;V<O8W)O;FQO9RXQ M M " @(#8T-" (" @-# P( @(" Q-S @ M " @(" @(" S,#$Q(" U-3 Q,C<Q,38V(" Q,C(V-P @ M M M M M M M M N7"(@)$AE861E<CH@+V$O M8W9S+S,X-D)31"]S<F,O;&EB97AE8R]C<F]N9"]C<F]N9"XX+'8@,2XQ+C$N M,2 Q.3DS+S V+S$R(#$T.C4U.C T(')G<FEM97,@17AP("0*+EPB( HN7"(O M*B!#;W!Y<FEG:'0@,3DY,R!B>2!*86X@2VQI97(*+EPB("H@06QL(')I9VAT M<R!R97-E<G9E9 HN7"(@*@HN7"(@*B!$:7-T<FEB=71E(&9R965L>2P@97AC M97!T.B!D;VXG="!R96UO=F4@;7D@;F%M92!F<F]M('1H92!S;W5R8V4@;W(* M+EPB("H@9&]C=6UE;G1A=&EO;B H9&]N)W0@=&%K92!C<F5D:70@9F]R(&UY M('=O<FLI+"!M87)K('EO=7(@8VAA;F=E<R H9&]N)W0*+EPB("H@9V5T(&UE M(&)L86UE9"!F;W(@>6]U<B!P;W-S:6)L92!B=6=S*2P@9&]N)W0@86QT97(@ M;W(@<F5M;W9E('1H:7,*+EPB("H@;F]T:6-E+B @36%Y(&)E('-O;&0@:68@ M8G5I;&1A8FQE('-O=7)C92!I<R!P<F]V:61E9"!T;R!B=7EE<BX@($YO"BY< M(B J('=A<G)A;G1E92!O9B!A;GD@:VEN9"P@97AP<F5S<R!O<B!I;7!L:65D M+"!I<R!I;F-L=61E9"!W:71H('1H:7,*+EPB("H@<V]F='=A<F4[('5S92!A M="!Y;W5R(&]W;B!R:7-K+"!R97-P;VYS:6)I;&ET>2!F;W(@9&%M86=E<R H M:68@86YY*2!T;PHN7"(@*B!A;GEO;F4@<F5S=6QT:6YG(&9R;VT@=&AE('5S M92!O9B!T:&ES('-O9G1W87)E(')E<W1S(&5N=&ER96QY('=I=&@@=&AE"BY< M(B J('5S97(N"BY<(B J"BY<(B J(%-E;F0@8G5G(')E<&]R=',L(&)U9R!F M:7AE<RP@96YH86YC96UE;G1S+"!R97%U97-T<RP@9FQA;65S+"!E=&,N+"!A M;F0*+EPB("H@22=L;"!T<GD@=&\@:V5E<"!A('9E<G-I;VX@=7 @=&\@9&%T M92X@($D@8V%N(&)E(')E86-H960@87,@9F]L;&]W<SH*+EPB("H@:VQI97) M8W,N='4M8F5R;&EN+F1E("\@:FML:65R+FEP:RYF:&<N9&4@+R Q,# P,C(N M,3<P,$!C;VUP=7-E<G9E+F-O;0HN7"(@*B\*+D1D($YO=B R."P@,3DY,PHN M1'0@0U)/3DQ/1R Q"BY/<R!"4T0@- HN4V@@3D%-10HN3FT@8W)O;FQO9PHN M3F0@:V5E<"!D;W=N('1H92!S:7IE(&]F('1H92!C<F]N9"!L;V<@9FEL90HN M4V@@4UE.3U!325,*+DYM(&-R;VYL;V<*+E-H($1%4T-225!424]."E=H96X* M+DYM(&-R;VYL;V<*:7,@<W1A<G1E9"!I="!R96%D<R!T:&4@8W5R<F5N="!L M;V<@9FEL92 H+W9A<B]C<F]N+VQO9RD@;V8@"BY8<B!C<F]N9" X"F%N9"!R M96UO=F5S(&%L;"!E;G1R:65S(&9R;VT@8V]M;6%N9',@=&AA="!H879E(&)E M96X@<G5N(&%G86EN(&%T(&$@;&%T97(*=&EM92X@5&AI<R!P<F5V96YT<R!T M:&4@;&]G(&9I;&4@9G)O;2!G<F]W:6YG('1O(&)I9RP@=VAI8V@@8V%U<V5S M('1H90HN6'(@8W)O;F0@. ID865M;VX@=&\@8F4@<75I=&4@8G5S>2!K965P M:6YG('5P('=I=&@@;6ES<V5D(&IO8G,@*"UK(&]P=&EO;BDN"BY3:"!&24Q% M4PHN0FP@+71A9R M=VED=&@*+DET(%!A("]V87(O8W)O;B]L;V<*5&AE(&-R M;VYD)W,@;&]G(&9I;&4*+D5L"BY3:"!3144@04Q33PHN6'(@8W)O;F0@. HN M4G,*+B5!($IA;B!+;&EE<BP@:VQI97) 8W,N='4M8F5R;&EN+F1E"BY290H M M M M M M M M M M M M '5S<B]S<F,O=7-R+F)I;B]C<F]N;&]G+V-R;VYL;V<N8P M M @(" V-#0@ " @(#0P," (" @,3<P( @(" @ M(" Q-#,R-B @-34P,3(W,3$V-B @,3(T,#0 ( M M M M M M M M +RH@0V]P>7)I9VAT(#$Y.3,@8GD@ M2F%N($ML:65R"B J($%L;"!R:6=H=',@<F5S97)V960*("H*("H@1&ES=')I M8G5T92!F<F5E;'DL(&5X8V5P=#H@9&]N)W0@<F5M;W9E(&UY(&YA;64@9G)O M;2!T:&4@<V]U<F-E(&]R"B J(&1O8W5M96YT871I;VX@*&1O;B=T('1A:V4@ M8W)E9&ET(&9O<B!M>2!W;W)K*2P@;6%R:R!Y;W5R(&-H86YG97,@*&1O;B=T M"B J(&=E="!M92!B;&%M960@9F]R('EO=7(@<&]S<VEB;&4@8G5G<RDL(&1O M;B=T(&%L=&5R(&]R(')E;6]V92!T:&ES"B J(&YO=&EC92X@($UA>2!B92!S M;VQD(&EF(&)U:6QD86)L92!S;W5R8V4@:7,@<')O=FED960@=&\@8G5Y97(N M("!.;PH@*B!W87)R86YT964@;V8@86YY(&MI;F0L(&5X<')E<W,@;W(@:6UP M;&EE9"P@:7,@:6YC;'5D960@=VET:"!T:&ES"B J('-O9G1W87)E.R!U<V4@ M870@>6]U<B!O=VX@<FES:RP@<F5S<&]N<VEB:6QI='D@9F]R(&1A;6%G97,@ M*&EF(&%N>2D@=&\*("H@86YY;VYE(')E<W5L=&EN9R!F<F]M('1H92!U<V4@ M;V8@=&AI<R!S;V9T=V%R92!R97-T<R!E;G1I<F5L>2!W:71H('1H90H@*B!U M<V5R+@H@*@H@*B!396YD(&)U9R!R97!O<G1S+"!B=6<@9FEX97,L(&5N:&%N M8V5M96YT<RP@<F5Q=65S=',L(&9L86UE<RP@971C+BP@86YD"B J($DG;&P@ M=')Y('1O(&ME97 @82!V97)S:6]N('5P('1O(&1A=&4N("!)(&-A;B!B92!R M96%C:&5D(&%S(&9O;&QO=W,Z"B J(&ML:65R0&-S+G1U+6)E<FQI;BYD92 O M(&IK;&EE<D!I<&LN9FAG+F1E("\@,3 P,#(R+C$W,#! 8V]M<'5S97)V92YC M;VT*("HO"@HC:6YC;'5D92 \<W1D:6\N:#X*(VEN8VQU9&4@/'5N:7-T9"YH M/@HC:6YC;'5D92 \97)R;F\N:#X*(VEN8VQU9&4@/'-T<FEN9RYH/@HC:6YC M;'5D92 \<WES+V9I;&4N:#X*"B-D969I;F4@3$]'7T9)3$4)(B]V87(O8W)O M;B]L;V<B"@HO*B!L;V-A;"!T>7!E(&1E9FEN:71I;VYS"0D)"0D)*B\*='EP M961E9B!S=')U8W0@16YT<GE?<PI[('-T<G5C="!%;G1R>5]S*@E.97AT.PH@ M(&-H87(J"0D)5&5X=#L*?2!%;G1R>5]T.PH*+RH@;&]C86P@9&%T80D)"0D) M"0D)*B\*<W1A=&EC"45N=')Y7W0J"6Q?3&ES=$AE860)"3T@3E5,3#L*<W1A M=&EC"45N=')Y7W0J"6Q?3&ES=%1A:6P)"3T@3E5,3#L*"B\J('!R;W1O='EP M97,@9F]R(&QO8V%L(&9U;F-T:6]N<PD)"0D)*B\*<W1A=&EC"79O:60)"6Q? M4V-A;DQO9T9I;&4)"2A&24Q%*BD["G-T871I8PE%;G1R>5]T*@EL7TQO;VM5 M<$5N=')Y"0DH8VAA<BHI.PH*+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*B\*+RH@;6%I;@D)"0D)"0D)"2HO"B\J(&1E<V-R:7!T:6]N"3H@5&AE(&%P M<&QI8V%T:6]N<R!M86EN(&9U;F-T:6]N+@D)"2HO"B\J('!A<F%M971E<@DZ M('!?07)G0V]U;G0@("T@;G5M8F5R(&]F(&-O;6UA;F1L:6YE(&%R9W5M96YT M<PD)*B\*+RH)"2 @<%]!<F=686QU97,@+2!V86QU97,@;V8@=&AE(&-O;6UA M;F1L:6YE(&%R9W5M96YT<PDJ+PHO*B!R971U<FYS"3H@97AI="!S=&%T=7,@ M"0D)"0D)*B\*+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*B\*:6YT(&UA M:6X*(" H(&EN= D)<%]!<F=#;W5N="P*(" @(&-H87(J"7!?07)G5F%L=65S M6UT*(" I"GL@("!I;G0)"6%?3&]G1F0["B @("!&24Q%*@EA7TQO9T9I;&4[ M"B @("!%;G1R>5]T*@EA7U!T<CL*"B @+RH@0VAE8VL@=&AE(&5X:7-T96YC M92!A;F0@86-C97-S(')I9VAT<R!O9B!T:&4@8W5R<F5N="!L;V<@9FEL92X) M*B\*("!I9BAA8V-E<W,H3$]'7T9)3$4L5U]/2RD@/" P*0H@(" @>R!I9BAE M<G)N;R ]/2!%3D]%3E0I"@ER971U<FXH,"D["0D)+RH@9FEL92!D;V5S(&YO M="!E>&ES="XN+@DJ+PH@(" @("!P97)R;W(H(F-R;VYL;V<@*&-A;B=T(&]P M96X@;&]G(&9I;&4I(BD["B @(" @(')E='5R;B@R*3L)"0DO*B!N;R!W<FET M92!P97)M:7-S:6]N+BXN"2HO"B @("!]"@H@("\J(%)E860@=&AE(&-U<G)E M;G0@;&]G(&9I;&4@86YD('!L86-E(&%L;"!E;G1R:65S('=H:6-H('-H;W5L M9" )*B\*(" O*B!S=&%Y(&EN('1H92!L;V<@9FEL92!I;G1O(&$@9VQO8F%L M(&QI<W0N"0D)"2HO"B @:68H*&%?3&]G1FEL92 ](&9O<&5N*$Q/1U]&24Q% M+")R(BDI(#T]($Y53$PI"B @("![('!E<G)O<B@B8W)O;FQO9R H8V%N)W0@ M;W!E;B!L;V<@9FEL92DB*3L*(" @(" @<F5T=7)N*#(I.PH@(" @?0H@(&Q? M4V-A;DQO9T9I;&4H85],;V=&:6QE*3L*("!F8VQO<V4H85],;V=&:6QE*3L* M"B @+RH@56YL:6YK('1H92!O;&0@;&]G(&9I;&4@86YD(')E8W)E871E(&ET M(&)Y('=R:71I;F<@86QL(&QI<W0@:71E;7,N"2HO"B @=6YL:6YK*$Q/1U]& M24Q%*3L*"B @:68H*&%?3&]G1F0@/2!O<&5N*$Q/1U]&24Q%+$]?5U)/3DQ9 M?$]?05!014Y$?$]?0U)%050L,#8P,"DI(#P@,"D*(" @('L@<&5R<F]R*")C M<F]N;&]G("AC86XG="!O<&5N(&QO9R!F:6QE(&9O<B!W<FET:6YG*2(I.R!R M971U<FXH,BD[('T*("!A7TQO9T9I;&4@/2!F9&]P96XH85],;V=&9"PB=R(I M.PH@(&9O<BAA7U!T<CUL7TQI<W1(96%D.V%?4'1R.V%?4'1R/6%?4'1R+3Y. M97AT*0H@(" @9G!U=',H85]0='(M/E1E>'0L85],;V=&:6QE*3L*("!F8VQO M<V4H85],;V=&:6QE*3L*"B @<F5T=7)N*# I.PI]"@HO*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ+PHO*B!L7U-C86Y,;V=&:6QE"0D)"0D)"2HO"B\J M(&1E<V-R:7!T:6]N"3H@4V-A;B!C<F]N9"=S(&QO9R!F:6QE(&%N9"!B=6EL M9"!T:&4@9VQO8F%L(&QI<W0@;V8)*B\*+RH)"2 @86QL(&5N=')I97,@=&AA M="!S:&]U;&0@8F4@:V5P="X)"0DJ+PHO*B!P87)A;65T97().B!P7T9I;&4@ M+2!H86YD;&4@=&\@=&AE('-T<F5A;2!T:&%T('=A<R!O<&5N960@9F]R"2HO M"B\J"0D)(" @=&AE(&QO9R!F:6QE+@D)"0DJ+PHO*B!R971U<FYS"3H@+2TM M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @*B\*+RH@<VED92!E9F9E8W1S"3H@5&AI<R!F=6YC=&EO;G,@861D M<R!D871A('1O('1H92!G;&]B86P@;&ES="!A;F0@"2HO"B\J"0D@(&UO9&EF M:65S(&5N=')I97,@86QR96%D>2!I;B!T:&4@;&ES="X)"0DJ+PHO*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ+PIS=&%T:6,@=F]I9"!L7U-C86Y,;V=& M:6QE"B @*"!&24Q%*@EP7T9I;&4@*0I[(" @8VAA<@EA7TEN<'5T0G5F9F5R M6S(U-ET["B @("!%;G1R>5]T*@EA7T5N=')Y.PH*("!W:&EL92@Q*0H@(" @ M>R O*B!296%D(&]N92!L;V<@96YT<GD@9G)O;2!T:&4@9FEL90D)"0DJ+PH@ M(" @("!F9V5T<RAA7TEN<'5T0G5F9F5R+'-I>F5O9BAA7TEN<'5T0G5F9F5R M*2QP7T9I;&4I.PH@(" @("!I9BAF97)R;W(H<%]&:6QE*2!\?"!F96]F*'!? M1FEL92DI"@ER971U<FX["@H@(" @(" O*B!#:&5C:R!I9B!T:&ES(&ES(&$@ M8V]M;6%N9"!E;G1R>2X@268@;F]T(&9O<F=E="!I="P@;VYL>0DJ+PH@(" @ M(" O*B!C;VUM86YD(&5N=')I97,@=VEL;"!B92!S879E9"X)"0D)"2HO"B @ M(" @(&EF*"%S=')S='(H85]);G!U=$)U9F9E<BPB0TU$(BDI"@EC;VYT:6YU M93L*"B @(" @("\J($QO;VL@=7 @=&AI<R!E;G1R>2!I;B!T:&4@9VQO8F%L M(&QI<W0L(&EF(&ET(&ES(&%L<F5A9'D@:6X)*B\*(" @(" @+RH@=&AE<F4N M($EF('-O+"!O=F5R=W)I=&4@:70@=VET:"!T:&ES(&YE=V5R(&5N=')Y("AL M;V<@96YT<FEE<PDJ+PH@(" @(" O*B!A<F4@86QW87ES(&]R9&5R960@:6X@ M=&AE(&9I;&4I+"!O=&AE<G=I<V4@87!P96YD(&ET('1O('1H92 )*B\*(" @ M(" @+RH@;&ES="X)"0D)"0D)"2HO"B @(" @(&EF*&%?16YT<GD@/2!L7TQO M;VM5<$5N=')Y*&%?26YP=71"=69F97(I*0H)>R!F<F5E*&%?16YT<GDM/E1E M>'0I.PH)("!I9BAA7T5N=')Y+3Y.97AT*0H)(" @('L@+RH@82!L:71T;&4@ M=')I8VLZ(')O=&%T92!T:&4@;F5X="!E;G1R>2!T;R!T:&4@96YD(&]F"2HO M"@D@(" @(" O*B!T:&4@;&ES="!T;R!K965P('5P('1H92!O<F1E<B!O9B!T M:&4@96YT<FEE<RX)"2HO"@D@(" @("!A7T5N=')Y+3Y497AT(" @(#T@85]% M;G1R>2T^3F5X="T^5&5X=#L*"2 @(" @(&Q?3&ES=%1A:6PM/DYE>'0@/2!A M7T5N=')Y+3Y.97AT.PH)(" @(" @;%],:7-T5&%I;" @(" @(" ](&%?16YT M<GDM/DYE>'0["@D@(" @("!A7T5N=')Y+3Y.97AT(" @(#T@85]%;G1R>2T^ M3F5X="T^3F5X=#L*"2 @(" @(&Q?3&ES=%1A:6PM/E1E>'0@/2!S=')D=7 H M85]);G!U=$)U9F9E<BD["@D@(" @("!L7TQI<W1486EL+3Y.97AT(#T@3E5, M3#L*"2 @("!]"@D@(&5L<V4*(" @"2 @("!A7T5N=')Y+3Y497AT(#T@<W1R M9'5P*&%?26YP=71"=69F97(I.PH)?0H@(" @("!E;'-E"@E[(&%?16YT<GD@ M/2 H16YT<GE?="HI(&UA;&QO8RAS:7IE;V8H16YT<GE?="DI.PH)("!A7T5N M=')Y+3Y.97AT(#T@3E5,3#L*"2 @85]%;G1R>2T^5&5X=" ]('-T<F1U<"AA M7TEN<'5T0G5F9F5R*3L*"@D@(&EF*&Q?3&ES=$AE860I"@D@(" @>R!L7TQI M<W1486EL+3Y.97AT(#T@85]%;G1R>3L*"2 @(" @(&Q?3&ES=%1A:6P@(" @ M(" @/2!A7T5N=')Y.PH)(" @('T*"2 @96QS90H)(" @('L@;%],:7-T2&5A M9" ](&%?16YT<GD["@D@(" @("!L7TQI<W1486EL(#T@85]%;G1R>3L*"2 @ M("!]"@E]"B @("!]"GT*"B\J*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHO M"B\J(&Q?3&]O:U5P16YT<GD)"0D)"0D)*B\*+RH@9&5S8W)I<'1I;VX).B!& M:6YD(&]U="!I9B!A;B!E;G1R>2!W:71H('1H92!S86UE(&-O;6UA;F0@:7,@ M86QR96%D>0DJ+PHO*@D)("!I;B!T:&4@9VQO8F%L(&QI<W0N($EF('-O(')E M='5R;B!T:&ES(&5N=')Y+@D)*B\*+RH@<&%R86UE=&5R"3H@<%]%;G1R>51E M>'0@+2!497AT(&]F('1H92!E;G1R>2!T:&%T(&ES(&QO;VME9"!U< DJ+PHO M*B!R971U<FYS"3H@061D<F5S<R!O9B!T:&4@;6%T8VAI;F<@96YT<GD@=&AA M="!I<R!A;')E861Y(&EN('1H90DJ+PHO*@D)("!L:7-T+"!O<B!.54Q,(&EF M(&YO;B!W87,@9F]U;F0N"0D)*B\*+RH@<F5S=')I8W1I;VYS"3H@5&AI<R!F M=6YC=&EO;B!R96QI97,@;VX@=&AE(&QO9R!E;G1R>2!F;W)M870@=7-E9 DJ M+PHO*@D)("!B>2!C<F]N9"X@5&AE<F4@:7,@;F\@9W5A<F%N=&5E('1H870@ M=&AI<R!F=6YC=&EO;@DJ+PHO*@D)("!S=&EL;"!W;W)K<RP@<VAO=6QD('1H M92!F;W)M870@;V8@=&AE(&QO9R!F:6QE(&)E"2HO"B\J"0D@(&-H86YG960N M"0D)"0D)*B\*+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*B\*<W1A=&EC M($5N=')Y7W0J(&Q?3&]O:U5P16YT<GD*(" H(&-H87(J"7!?16YT<GE497AT M("D*>R @($5N=')Y7W0J"6%?16YT<GD["B @("!C:&%R*@EA7U!T<CL*(" @ M(&-H87(J"6%?4F5F4'1R.PH*(" O*B!4<F%V97)S('1H92!L:7-T(&%N9"!C M;VUP87)E(&5V97)Y(&5N=')Y('=I=&@@=&AE(&YE=R!T97AT+BXN"2HO"B @ M9F]R*&%?16YT<GD];%],:7-T2&5A9#MA7T5N=')Y.V%?16YT<GD]85]%;G1R M>2T^3F5X="D*(" @('L@+RH@0V]M<&%R92!T:&4@='=O('-T<FEN9W,L(&)U M="!S:VEP('1H92!T:6UE('-T86UP('1H870@:7,)*B\*(" @(" @+RH@96YC M;&]S960@:6X@=&AE(&9I<G-T('!A:7(@;V8@<&%R96YT:&5S97,N"0D)*B\* M(" @(" @85]0='(@(" @/2!S=')C:'(H<%]%;G1R>51E>'0L)R@G*3L*(" @ M(" @:68H(6%?4'1R*0H)>R!F<')I;G1F*'-T9&5R<BPB8W)O;FQO9SH@9F]R M;6%T(&9A:6QU<F4@:6X@;&]G(&9I;&5<;B(I.PH)("!E>&ET*#(I.PH)?0H@ M(" @("!I9BAS=')N8VUP*'!?16YT<GE497AT+&%?16YT<GDM/E1E>'0L85]0 M='(M<%]%;G1R>51E>'0I("$](# I"@EC;VYT:6YU93L*"B @(" @(&%?4'1R M(" @(#T@<W1R8VAR*'!?16YT<GE497AT+"<I)RD["B @(" @(&%?4F5F4'1R M(#T@<W1R8VAR*&%?16YT<GDM/E1E>'0L)RDG*3L*(" @(" @:68H(6%?4'1R M('Q\("%A7U)E9E!T<BD*"7L@9G!R:6YT9BAS=&1E<G(L(F-R;VYL;V<Z(&9O M<FUA="!F86EL=7)E(&EN(&QO9R!F:6QE7&XB*3L*"2 @97AI="@R*3L*"7T* M(" @(" @:68H<W1R8VUP*&%?4'1R+&%?4F5F4'1R*2 ]/2 P*0H)<F5T=7)N M*&%?16YT<GDI.PH@(" @?0H*("!R971U<FXH3E5,3"D["GT*"@ M M M M M M M !U<W(O<W)C+VQI8F5X96,O M M (" @-S4U( @(" T,# @ M " @(#$W," (" @(" @(" @(# @(#4U,#(P,S8U-C,@(" W,#4S " M M M M M M M M '5S<B]S<F,O M;&EB97AE8R]C<F]N9"\ M M @(" W-34@ " @(#0P," (" @,3<P( @(" @(" @(" @," @-34P,38Q M-3 Q-R @,3 Q-30 ( M M M M M M M M =7-R+W-R8R]L:6)E>&5C+V-R;VYD+V-R;VYD+C@ M M " @(#8T-" (" @-# P( @(" Q-S @ " @ M(" @(" V,C(P(" U-3 Q-C$T,S P(" Q,30S,0 @ M M M M M M M M N7"(@)$AE861E<CH@+V$O8W9S M+S,X-D)31"]S<F,O;&EB97AE8R]C<F]N9"]C<F]N9"XX+'8@,2XQ+C$N,2 Q M.3DS+S V+S$R(#$T.C4U.C T(')G<FEM97,@17AP("0*+EPB( HN7"(O*B!# M;W!Y<FEG:'0@,3DX."PQ.3DP(&)Y(%!A=6P@5FEX:64*+EPB("H@06QL(')I M9VAT<R!R97-E<G9E9 HN7"(@*@HN7"(@*B!$:7-T<FEB=71E(&9R965L>2P@ M97AC97!T.B!D;VXG="!R96UO=F4@;7D@;F%M92!F<F]M('1H92!S;W5R8V4@ M;W(*+EPB("H@9&]C=6UE;G1A=&EO;B H9&]N)W0@=&%K92!C<F5D:70@9F]R M(&UY('=O<FLI+"!M87)K('EO=7(@8VAA;F=E<R H9&]N)W0*+EPB("H@9V5T M(&UE(&)L86UE9"!F;W(@>6]U<B!P;W-S:6)L92!B=6=S*2P@9&]N)W0@86QT M97(@;W(@<F5M;W9E('1H:7,*+EPB("H@;F]T:6-E+B @36%Y(&)E('-O;&0@ M:68@8G5I;&1A8FQE('-O=7)C92!I<R!P<F]V:61E9"!T;R!B=7EE<BX@($YO M"BY<(B J('=A<G)A;G1E92!O9B!A;GD@:VEN9"P@97AP<F5S<R!O<B!I;7!L M:65D+"!I<R!I;F-L=61E9"!W:71H('1H:7,*+EPB("H@<V]F='=A<F4[('5S M92!A="!Y;W5R(&]W;B!R:7-K+"!R97-P;VYS:6)I;&ET>2!F;W(@9&%M86=E M<R H:68@86YY*2!T;PHN7"(@*B!A;GEO;F4@<F5S=6QT:6YG(&9R;VT@=&AE M('5S92!O9B!T:&ES('-O9G1W87)E(')E<W1S(&5N=&ER96QY('=I=&@@=&AE M"BY<(B J('5S97(N"BY<(B J"BY<(B J(%-E;F0@8G5G(')E<&]R=',L(&)U M9R!F:7AE<RP@96YH86YC96UE;G1S+"!R97%U97-T<RP@9FQA;65S+"!E=&,N M+"!A;F0*+EPB("H@22=L;"!T<GD@=&\@:V5E<"!A('9E<G-I;VX@=7 @=&\@ M9&%T92X@($D@8V%N(&)E(')E86-H960@87,@9F]L;&]W<SH*+EPB("H@4&%U M;"!6:7AI92P@,S(Y($YO92!3=')E970L(%-A;B!&<F%N8VES8V\L($-!+" Y M-#$Q-"P@*#0Q-2D@.#8T+3<P,3,L"BY<(B J('!A=6Q =FEX:64N<V8N8V$N M=7,@?'P@>VAO<'1O860L<&%C8F5L;"QD96-W<FPL8W)A<VA](79I>&EE(7!A M=6P*+EPB("HO"BY$9"!.;W8@,34L(#$Y.#@*+D1T($-23TY$(#$*+D]S($)3 M1" T"BY3:"!.04U%"BY.;2!C<F]N9 HN3F0@9&%E;6]N('1O(&5X96-U=&4@ M<V-H961U;&5D(&-O;6UA;F1S("A6:7AI92!#<F]N*0HN4V@@4UE.3U!325,* M+DYM(&-R;VYD"BY/<"!&;"!K"BY3:"!$15-#4DE05$E/3@HN3FT@0W)O;F0* M<VAO=6QD(&)E('-T87)T960@9G)O;2 O971C+W)C(&]R("]E=&,O<F,N;&]C M86PN("!)="!W:6QL(')E='5R;B!I;6UE9&EA=&5L>2P*<V\@>6]U(&1O;B=T M(&YE960@=&\@<W1A<G0@:70@=VET:" G)B<N"BY0< HN3FT@0W)O;F0*<V5A M<F-H97,@+W9A<B]C<F]N+W1A8G,@9F]R(&-R;VYT86(@9FEL97,@=VAI8V@@ M87)E(&YA;65D(&%F=&5R(&%C8V]U;G1S(&EN"B]E=&,O<&%S<W=D.R!C<F]N M=&%B<R!F;W5N9"!A<F4@;&]A9&5D(&EN=&\@;65M;W)Y+@HN3FT@0W)O;F0* M=&AE;B!W86ME<R!U<"!E=F5R>2!M:6YU=&4L(&5X86UI;FEN9R!A;&P@<W1O M<F5D(&-R;VYT86)S+"!C:&5C:VEN9R!E86-H"F-O;6UA;F0@=&\@<V5E(&EF M(&ET('-H;W5L9"!B92!R=6X@:6X@=&AE(&-U<G)E;G0@;6EN=71E+B @5VAE M;B!E>&5C=71I;F<*8V]M;6%N9',L(&%N>2!O=71P=70@:7,@;6%I;&5D('1O M('1H92!O=VYE<B!O9B!T:&4@8W)O;G1A8B H;W(@=&\@=&AE('5S97(*;F%M M960@:6X@=&AE($U!24Q43R!E;G9I<F]N;65N="!V87)I86)L92!I;B!T:&4@ M8W)O;G1A8BP@:68@<W5C:"!E>&ES=',I+@HN4' *061D:71I;VYA;&QY+ HN M3FT@8W)O;F0*8VAE8VMS(&5A8V@@;6EN=71E('1O('-E92!I9B!I=',@<W!O M;VP@9&ER96-T;W)Y)W,@;6]D=&EM92!H87,@8VAA;F=E9"P@86YD"FEF(&ET M(&AA<RP*+DYM(&-R;VYD"G=I;&P@=&AE;B!E>&%M:6YE('1H92!M;V1T:6UE M(&]N(&%L;"!C<F]N=&%B<R!A;F0@<F5L;V%D('1H;W-E('=H:6-H(&AA=F4* M8VAA;F=E9"X@(%1H=7,*+DYM(&-R;VYD"FYE960@;F]T(&)E(')E<W1A<G1E M9"!W:&5N979E<B!A(&-R;VYT86(@9FEL92!I<R!M;V1I9FEE9"X@($YO=&4@ M=&AA="!T:&4*+EAR(&-R;VYT86(@,0IC;VUM86YD('5P9&%T97,@=&AE(&UO M9'1I;64@;V8@=&AE('-P;V]L(&1I<F5C=&]R>2!W:&5N979E<B!I="!C:&%N M9V5S(&$*8W)O;G1A8BX*+D)L("UT86<@+7=I9'1H(&9L86<*+DET($9L(&L* M5&AI<R!O<'1I;VX@=&5L;',@"BY.;2!C<F]N9 IT;R!E>&%M:6YE('1H92!L M;V<@9FEL92!A="!S=&%R="UU<"X@179E<GD@:F]B('1H870@<VAO=6QD(&AA M=F4@8F5E;B!R=6X@"G-I;F-E(&ET(&AA<R!B965N(')U;B!T:&4@;&%S="!T M:6UE(&%C8V]R9&EN9R!T;R!T:&4@;&]G(&9I;&4L('=I;&P@8F4@<G5N( II M;6UE9&EA=&5L>2!I;B!O<F1E<B!T;R!K965P('5P('=I=&@@:F]B<R!N;W0@ M97AE8W5T960@:6X@=&EM97,@=VAE;B!T:&4@"G-Y<W1E;2!W87,@9&]W;BX* M+E!P"DIO8G,@=&AA="!D;VXG="!A<'!E87(@:6X@=&AE(&QO9R!F:6QE(&%R M92!A<W-U;65D('1O(&AA=F4@8F5E;B!R=6X@;&%S= IT:6UE(&%T('1H92!B M96=I;FYI;F<@;V8@=&AE('EE87(N"BY0< I)9B!A(&IO8B!I<R!R=6X@8F5C M875S92!O9B!T:&ES(&]P=&EO;BP@8W)O;F0@=VEL;"!W86ET(&9O<B!I="!T M;R!C;VUP;&5T90IB969O<F4@<W1A<G1I;F<@;W1H97(@:F]B<RX@5&AI<R!I M<R!N96-E<W-A<GD@=&\@879O:60@<&]S<VEB;&4@8V]N9FQI8W1S"F]F('-I M;75L=&%N;W5S(&IO8G,L('=H:6-H(&ES(&YO<FUA;&QY(&1O;F4@8GD@<V-H M961U;&EN9R!J;V)S(&%T(&1I9F9E<F5N= IT:6UE<R!O9B!T:&4@9&%Y+"!B M=70@9&]E<VXG="!W;W)K(&AE<F4@87,@=&AE('-C:&5D=6QE(&ES(&)R;VME M;B!U<"X@5&AE"F]R9&5R(&IO8G,@87)E(')U;B!A="!D97!E;F1S(&]N('1H M92!T:&5I<B!O<F1E<B!O9B!A<'!E87)A;F-E(&EN('1H92!C<F]N=&%B( IF M:6QE+@HN16P*+E-H($9)3$53"BY";" M=&%G("UW:61T:" *+DET(%!A("]V M87(O8W)O;B]T86)S+RH*5&AE(&-R;VYT86(@9FEL97,@9F]R(&%L;"!U<V5R M<PHN270@4&$@+W9A<B]C<F]N+VQO9PI4:&4@;&]G(&9I;&4@9F]R(&5X96-U M=&5D(&-O;6UA;F1S"BY%; HN4V@@4T5%($%,4T\*+EAR(&-R;VYD;&]G(#$@ M+ HN6'(@8W)O;FQO9R Q("P*+EAR(&-R;VYT86(@,2 L"BY8<B!C<F]N=&%B M(#4*+E)S"BXE02!0875L(%9I>&EE+"!P875L0'9I>&EE+G-F+F-A+G5S"BY2 M90I%4T-225!424]."BY.;2!#<F]N9 IS:&]U;&0@8F4@<W1A<G1E9"!F<F]M M("]E=&,O<F,@;W(@+V5T8R]R8RYL;V-A;"X@($ET('=I;&P@<F5T=7)N(&EM M;65D:6%T96QY+ IS;R!Y;W4@9&]N)W0@;F5E9"!T;R!S=&%R="!I="!W:71H M("<F)RX*+E!P"BY.;2!#<F]N9 IS96%R8VAE<R O=F%R+V-R;VXO=&%B<R!F M;W(@8W)O;G1A8B!F:6QE<R!W:&EC:"!A<F4@;F%M960@869T97(@86-C;W5N M=',@:6X*+V5T8R]P87-S=V0[(&-R;VYT86)S(&9O=6YD(&%R92!L;V%D960@ M:6YT;R!M96UO<GDN"BY.;2!#<F]N9 IT:&5N('=A:V5S('5P(&5V97)Y(&UI M;G5T92P@97AA;6EN:6YG(&%L;"!S=&]R960@8W)O;G1A8G,L(&-H96-K:6YG M(&5A8V@*8V]M;75S<B]S<F,O;&EB97AE8R]C<F]N9"]C<F]N9"YC+G!A=&-H -- *********** Freedom is inversely proportional to security ****************** Jan Klier Berlin, Germany e-mail: klier@cs.tu-berlin.de cis : 100022,1700 | jklier@ipk.fhg.de | 100022.1700@compuserve.com