[comp.binaries.atari.st] v03i038: fsck -- Filesystem consistency check/repair

koreth@ssyx.ucsc.edu (Steven Grimm) (12/09/88)

Submitted-by: uunet!unido!fbihh!lohse (Joerg Lohse)
Posting-number: Volume 3, Issue 38
Archive-name: fsck

FSCK - file system consistency check and interactive repair
===========================================================

FSCK is an interactive TOS program and it operated in the following way:

Device (A:, B:, C:, ...) ? 
  Specify drive. The drive is accessed  by BIOS calls.
  Therefore a harddisk driver must be installed if
  harddisk partitions are to be checked.

Repair file system (y/n) ?
  Specify wether to check only or to check and repair.
  "Repairing" means deleting corrupted files and
  directories in order to ensure the consistency of the remaining
  file system. Only if "repair" of the file system is
  requested the next question is asked

Interactive or automatic repair (i/a) ?
  Automatic repair means that every inconsistent file is
  immetiately removed. Interactive repair allows the operator
  to decide wether to delete a file or not. Of course, if a
  inconsitent file is not deleted the file system stays inconsistent.


FSCK was designed in 1986 to check for and ensure correctness of harddisk
partitions. Since then it has been in German PD software libraries and no
bugs have ever been reported. However, the user only is responsible for 
its use.


Normally the harddisk partitions are checked occationally, and
bad files and directories reported by FSCK are written to floppy disk
before the errors are corrected during a second FSCK run.

FSCK was inspired by Unix's 'fsck' and VMS's ANALYZE/DISK_STRUCTURE.

FSCK checks for the following conditions:

 - Overlapping files/directories.
 - Files/directories containing unallocated clusters.
 - Allocated but unused clusters.
 - Files/directories containing more or less clusters than expected
   after examining its directory entry's file length.

FSCK accesses the disk only via BIOS-calls, therefore it is not affected
by the "40-folder-bug". FSCK is written in Personal Pascal.


                                                        Joerg Lohse

---------------------------- code -- (cut here) ----------------------------
begin 644 fsck.tos
M8!H  "R*    -@  Q+(                  "!O  0B:  8T^@ '"/)   L
MP"/)   LQ"/(   LR"Q/W?S__]@ O<EC%"Y.G<@O#B\(0F<_/ !*3D'>_  *
M0IF_R6+Z0GD  "S,G<Y.^0  &S8O#BQ(3E;_^$'Z 9@M2/_\3KD  "J&2'D 
M "]42'H"(C\\ !=.N0  (&Y(>@'</SP -TZY   @;DZY   ?D%B/2'D  "]4
M3KD  !^06(]P #U __H,;C[___IN   8,"[_^G( 0?D  *_H$8$  %)N__I@
MX'  ,\   .[L<@ SP0  [NYT #/"  #NZ'8 ,\,  .[J2'D  "]42'H!4#\\
M !M.N0  (&Y8CTAY   LTDAN__A.N0  (O!.N0  (S!8CS N__AR8;!!;0  
M"@9 _^ ]0/_X=$&00C/   #N\DAY   O5$AZ .@_/  ;3KD  "!N6(](>0  
M+-)(;O_X3KD  "+P3KD  ",P6(\P+O_X<F&P06T   H&0/_@/4#_^'19L$)7
MPWA.L$17Q89%XD-DK+!"5\,SPP  [NCB0V0  &!(>0  +U1(>@!</SP *$ZY
M   @;EB/2'D  "S22&[_^$ZY   B\$ZY   C,%B/,"[_^')AL$%M   *!D#_
MX#U __AT2;!"5\-X0;!$5\6&1>)#9*RP0E?#,\,  .[J3EXL7TYU26YT97)A
M8W1I=F4@;W(@875T;VUA=&EC(')E<&%I<B H:2]A*2 _(%)E<&%I<B!F:6QE
M('-Y<W1E;2 H>2]N*2 _( !$979I8V4@*$$Z+"!".BP@0SHL("XN+BD@/R  
M("T@9FEL92!S>7-T96T@8V]N<VES=&5N8WD@8VAE8VL@86YD(&EN=&5R86-T
M:79E(')E<&%I<@!&4T-+(%8Q+C @8GD@2I1R9R!,;VAS90 O#BQ(3E;_]$'Z
M ,@M2/_\3KD  "J&,#D  .[JXD!D  ",2'D  "]42&X ##\\__].N0  (&Y.
MN0  'Y!8CTAY   O5$AZ )P_/  /3KD  "!N6(](>0  +-)(;O_T3KD  "+P
M3KD  ",P6(\P+O_T<F&P06T   H&0/_@/4#_]'19L$)7PWA.L$17Q89%XD-D
MK+!"5\,]0__VL$1F   *>@$SQ0  [NY@   H2'D  "]42&X ##\\__].N0  
M(&Y.N0  'Y!8CS Y  #NZ#U __8P+O_V3EXL7R!?WOP 4D[04F5P86ER("A9
M+TXI(#\@ $Y6   _+@ (/RX "C\N  PO+@ ./RX $C\\  1.34Y>(%_>_  ,
M3M O#BQ(3E;_]D'Z # M2/_\3KD  "J&0F<@;@ ,+P@_/  !/RX $#\Y  #N
M\DZZ_ZIR +!!5L(]0O_V,"[_]DY>+%\@7UR/3M!.5@  /RX "#\N  H_+@ ,
M+RX #C\N !(_/  $3DU.7B!?WOP #$[0+PXL2$Y6__9!^@ R+4C__$ZY   J
MAC\\  $@;@ ,+P@_/  !/RX $#\Y  #N\DZZ_ZAR +!!5L(]0O_V,"[_]DY>
M+%\@7UR/3M!.5@  /RX "#\\  =.34Y>(%]4CT[0+PXL2$Y6__)!^@ \+4C_
M_$ZY   JAC\Y  #N\DZZ_\PM0/_R<@"P@5?"/4+_]K"!9P  %"! 0_D  #'6
M,M@BV"+8(M@BV# N__9.7BQ?3G4O#BQ(3E;_\D'Z ,@M2/_\3KD  "J&<  S
MP   [O!R #U!__9T 3U"__0V.0  ,=X]0__R,"[_]+!N__)N  "4/R[_]# N
M__130'()XV!!^0  ,>A(<   3KK^AN) 9   :C N__0R.0  ,>#005- /P P
M+O_T4T!T">5@0?D  #'H2'   $ZZ_ECB0&0  #Q(>0  +U1.N0  'Y!.N0  
M'Y!8CTAY   O5$AZ # _/  43KD  "!N3KD  !^06(]P 3U __9@   *4F[_
M]&  _V0P+O_V3EXL7TYU0V%N)W0@<F5A9"!B;W1H($9!5',O#BQ(3E;_^$'Z
M /(M2/_\3KD  "J&,#D  .[PXD!D  #<< $]0/_Z,CD  #'>/4'_^# N__JP
M;O_X;@  3#\N__HP+O_Z4T!R">-@0?D  #'H2'   $ZZ_@CB0&0  "1(>0  
M+U1.N0  'Y!(>@"4/SP $DZY   @;DZY   ?D%B/4F[_^F"J<  ]0/_Z,CD 
M #'>4T$]0?_X,"[_^K!N__AN  !0,#D  #'@,B[_^M!!/P!P">%A0?D  #'H
M2' 0 $ZZ_9SB0&0  "1(>0  +U1.N0  'Y!(>@ H/SP $DZY   @;DZY   ?
MD%B/4F[_^F"F<  SP   [O!.7BQ?3G5#86XG="!W<FET92!T;R!&050O#BQ(
M3E;_]$'Z 5PM2/_\3KD  "J&<  ]0/_V,BX ##0Y   QY+)"7,-X ;)$7\6&
M1>)#9   *$AY   O5$ZY   ?D$AZ 2X_/  W3KD  "!N3KD  !^06(]@  $*
M-CD  #'FXD-D  !^XT$]0?_T=@GF:7H)ZV$Z+O_T/#P!_\I&TD5Z $'Y   Q
MZ!HP$  R+O_T4D'F:7 )X6$P+O_T4D# 1M) <  0,!  X4#:0#U%__0@/   
M__A(Q;J 7,$D/   __](Q;J"7\3"1.)!9   #'+_/4'_]F    8]1?_V8   
M@B8!XDO20SU!__1V">9I>@GK83HN__0\/ '_RD;217H 0?D  #'H&C 0 #(N
M__120>9I< GA83 N__120,!&TD!P ! P$ #A0-I /47_]# N  SB0&0   CH
M33U%__0P/ __RD ]1?_T,CP/^+I!;0  #'3_/4+_]F    8]1?_V,"[_]DY>
M+%\@7U2/3M!);G1E<FYA;"!E<G)O<CH@:6QL96=A;"!C;'5S=&5R('!A<W-E
M9"!T;R B9V5T7V-L=7-T97(B "\.+$A.5O_X0?H!@BU(__Q.N0  *H9P 3/ 
M  #N\#(N  XT.0  ,>2R0ES#> &R1%_%AD7B0V0  "A(>0  +U1.N0  'Y!(
M>@%./SP -TZY   @;DZY   ?D%B/8  !+C8Y   QYN)#9   5.-!/4'_^'8)
MYFEZ">MA.B[_^#P\ ?_*1M)%.BX ## \ /_*0$'Y   QZ!&%$  R+O_X4D'F
M:7H)ZV$Z+O_X4D7*1M)%.BX #.!-$840 &   - F >)+TD,]0?_X=@GF:7H)
MZV$Z+O_X/#P!_\I&TD5Z $'Y   QZ!HP$  R+O_X4D'F:7 )X6$P+O_X4D# 
M1M) <  0,!  X4#:0#U%__HP+@ .XD!D   :< _*0#U%__HR+@ ,Z4':03U%
M__I@   B< S@;7(/RD%T#.5E/47_^C0N  PX/ __Q$3:0CU%__HP+O_XYFAR
M">-@,B[_^,)&T$$R/ #_RD$1A0  ,"[_^%) YFAT">5@-"[_^%)"Q$;00C0N
M__K@2L1!$8(  $Y>+%\@7UB/3M!);G1E<FYA;"!E<G)O<CH@:6QL96=A;"!C
M;'5S=&5R('!A<W-E9"!T;R B<'5T7V-L=7-T97(B "\.+$A.5OWR0?H :"U(
M__Q.N0  *H9P #U __9R #U!__0T.0  ,=A30CU"_?(P+O_TL&[]\FX  #HP
M.0  ,=@R+@ ,54'!P3(Y   QXM!!-"[_]-!"/P!(;OWT3KKY!.) 9   "' !
M/4#_]E)N__1@O# N__9.7BQ?(%]4CT[0+PXL2$Y6P)Y!^@)R+4C__$ZY   J
MAD'Y  "OZ$/NP)XP/ ^_(MA1R/_\<  ]0/_P<@ ]0?_V,"X 8C(Y   QY+!!
M7,)V ;!#7\2$1.)"9   (CU __1!^@+40^[_GA+\ "9T)1+84<K__#U#__!@
M   ./RX 8DZZ^XX]0/_T<@"P068  "!!^@* 0^[_GA+\ "-T(A+84<K__'0!
M/4+_\&   'QT_[!"5\,H+@!>.CD  #':2,6XA5[&QD;B0V0  "!!^@(<0^[_
MGA+\ "=V)A+84<O__'8!/4/_\&   # V+@!B0?D  *_H'# P .)&9   '$/Z
M <)%[O^>%/P *'PG%-E1SO_\? $]1O_P-BX 8GP!0?D  *_H$88P "0N %XV
M.0  ,=I(PY2#+4( 7C@N &(]1/_R/4  8DC!M(%?Q3PN__"*1N)%9 #^ZDC!
MM(%?Q7;_L$-6Q,I$1D;*1N)%9   GDZY   H $AZ 40_/  %3KD  "@22&X 
M##\\__].N0  *!)(>@$"/SP )DZY   H$B!?GOP 4B)/,MAP$R+84<C__$ZZ
M]A[B0&0  $H_+O_R/SS__TZZ^_8P+@!B<@"P05["-CD  #'DL$-=Q,1$XD)D
M   B/RX 8DZZ^B8]0/_T/RX 8D)G3KK[Q# N__0]0 !B8,1P 3/   #N[# N
M__#B0&0  ')(>0  +U1.N0  'Y!(>@"8/SP !4ZY   @;DAN  P_//__3KD 
M "!N3KD  !^06(]![O^>GOP 4B)/,MAP$R+84<C__$ZZ]7;B0&0  !Q![L">
M0_D  *_H,#P/OR+84<C__' !/4#_]G !,\   .[L,"[_]DY>+%\@7][\ %A.
MT"!H87,@;6]R92!C;'5S=&5R<R!A;&QO8V%T960@=&AA;B!U<V5D1FEL92  
M1FEL92!I<R!C>6-L:6,@;W(@;W9E<FQA<',@86YO=&AE<B!F:6QE+D9I;&4@
M<W!A8V4@:7,@;F]T(&-O;7!L971E;'D@86QL;V-A=&5D+@!&:6QE(&-O;G1A
M:6YS('5N86QL;V-A=&5D(&-L=7-T97)S+@!&:6QE(&-O;G1A:6YS(&-L=7-T
M97(H<RD@;W5T(&]F(')A;F=E+B\.+$A.5KYZ0?H''"U(__Q.N0  *H9P #U 
M__9!^0  K^A#[KZ$,CP/OR+84<G__#(N & ]0?V$=  ]0OW:,"[]A'(!L$%?
MPC8Y   QY+!#7,2$1.)"9   'D'Z!W1#[OV($OP *'0G$MA1RO_\/4']VF  
M "I!^0  K^@4,   XD)D   :0_H'%$7N_8@4_  T=#,4V5'*__P]0?W:,B[]
MVN)!90 %^'(!0?D  *_H$8$  '0 /4+][#@Y   QV%-$/42^>C N_>RP;KYZ
M;@ %PC Y   QV#(N_8150<'!,CD  #'BT$$T+OWLT$(_ $AN_?9.NO2:XD!D
M   \2'D  "]43KD  !^02'H&>C\\ !5.N0  (&Y(;@ ,/SS__TZY   @;DZY
M   ?D%B/< $]0/W:8  %5'  /4#][@QN  _][FX !40P+OWNZT ]0/WP<@!!
M[OWV$C   '0 LD)6PW( $C   #@\ .6R1%;%QD7B0V0 !0P]0OWT<@$]0?WR
M#&X "/WR;@  1C N_? R+OWRT$%30'0 0>[]]A0P  !P(+1 9P  (C0N_?12
M0CU"_?0V+OWPUD%30W@ &# P $/N_=X3A"  4F[]\F"R,"[]\%! <@!![OWV
M$C   ' @LD!G  !J,B[]]%)!/4']]'0N0^[]WA."$ !V 3U#_?(,;@ #_?)N
M  !&,"[]\#(N_?+005Y = !![OWV%#   ' @M$!G   B-"[]]%)"/4+]]#8N
M_?#605Y#>  8,#  0^[]WA.$( !2;OWR8+(P+OWT'4#]WC(N_? &00 += !!
M[OWV%# 0 #U"_=PR+OWP!D$ &G8 %C 0 #(N_? &00 ;>  8,!  X4361#U#
M_88R/ $ 2,$M0;Y\."[]\ 9$ !QZ !HP0  X+OWP!D0 '7P '#!  "\!+P9.
MN0  *O0L'TC%VH8X+OWP!D0 'GP '#!  '@0Z:;:AC@N_? &1  ??  <,$  
M>!CIIMJ&+46^@'@0Q$1\ +1&9P "P$AN_=YP_R\ /SP +G3^+P).N0  '4@V
M'^)#9   XC8N_88R+@!@MD%G  #03KD  "@ 2'H$.C\\ !A.N0  *!)(;@ ,
M/SS__TZY   H$B!?GOP 4B)/,MAP$R+84<C__$ZZ\13B0&0  (HP+OWP!D  
M&C(N & T/ #_PD)![OWV$8$  # N_? &0  ;,BX 8.!)$8$  # Y   QV#(N
M_8150<'!,CD  #'BT$$T+OWLT$(_ $AN_?9.NO)&XD!D   R2'D  "]43KD 
M !^02'H#B#\\ !9.N0  (&Y(;@ ,/SS__TZY   @;DZY   ?D%B/< $SP   
M[NQ@  &^2&[]WB\ 2'H#4'8"+P-.N0  '4@R'^)!9   XC(N_88Z+@!>LD5G
M  #03KD  "@ 2'H##C\\ !A.N0  *!)(;@ ,/SS__TZY   H$B!?GOP 4B)/
M,MAP$R+84<C__$ZZ\!CB0&0  (HP+OWP!D  &C(N %XT/ #_PD)![OWV$8$ 
M # N_? &0  ;,BX 7N!)$8$  # Y   QV#(N_8150<'!,CD  #'BT$$T+OWL
MT$(_ $AN_?9.NO%*XD!D   R2'D  "]43KD  !^02'H"C#\\ !9.N0  (&Y(
M;@ ,/SS__TZY   @;DZY   ?D%B/< $SP   [NQ@  #"/R[]AC\N &!.N0  
M* !(;@ ,/SS__TZY   H$DAN_=X_//__3KD  "@2/SP 7#\\__Y.N0  *!(@
M7Y[\ %(B3S+8<!,BV%'(__Q.NOJZXD!D  !N,"[]\#(\ .5![OWV$8$  # Y
M   QV#(N_8150<'!,CD  #'BT$$T+OWLT$(_ $AN_?9.NO!^XD!D   R2'D 
M "]43KD  !^02'H!P#\\ !9.N0  (&Y(;@ ,/SS__TZY   @;DZY   ?D%B/
M8   QDC&NH96P+9&5L* 0N) 9   M#\N_88O+KZ 3KD  "@ 2&X ##\\__].
MN0  *!)(;OW>/SS__TZY   H$B!?GOP 4B)/,MAP$R+84<C__$ZZ]J#B0&0 
M &XP+OWP,CP Y4'N_?81@0  ,#D  #'8,B[]A%5!P<$R.0  ,>+0030N_>S0
M0C\ 2&[]]DZZ[[;B0&0  #)(>0  +U1.N0  'Y!(>@#X/SP %DZY   @;DAN
M  P_//__3KD  "!N3KD  !^06(]2;OWN8 #ZME)N_>Q@ /HV/R[]A$ZZ\AP]
M0/V$<O^P05?"-B[]VH1#XD)D /F0XD-D  !R2'D  "]43KD  !^02'H <C\\
M  =.N0  (&Y(;@ ,/SS__TZY   @;DZY   ?D%B/0>[]B)[\ %(B3S+8<!,B
MV%'(__Q.NNUZXD!D   <0>Z^A$/Y  "OZ# \#[\BV%'(__QP 3U __9P 3/ 
M  #N[# N__9.7BQ?(%_>_ !63M!&;VQD97(@ $)A9"!B86-K+6QI;FL@:6X@
M9F]L9&5R("XN0V%N)W0@=W)I=&4@=&\@9F]L9&5R($)A9"!S96QF+6QI;FL@
M:6X@9F]L9&5R($)A9"!S96-T;W(@:6X@9F]L9&5R( !&;VQD97(@:7,@8WEC
M;&EC(&]R(&]V97)L87!S(&%N;W1H97(@9FEL92!O<B!F;VQD97(N1F]L9&5R
M(&-O;G1A:6YS(&-L=7-T97(H<RD@;W5T(&]F(')A;F=E+B\.+$A.5OW60?H#
MP"U(__Q.N0  *H9P #U _?(R.0  ,=Q303U!_=8P+OWRL&[]UFX  Y@P.0  
M,> R.0  ,=[0030N_?+00C\ 2&[]_$ZZ[4CB0&0  #!(>0  +U1.N0  'Y!(
M>@../SP &4ZY   @;DZY   ?D%B/< $SP   [NQ@  ,^<  ]0/WT#&X #_WT
M;@ #+C N_?3K0#U _?9R $'N_?P2,   = "R0E;#<@ 2,   .#P Y;)$5L7&
M1>)#9  "]CU"_?IR 3U!_?@,;@ (_?AN  !&,"[]]C(N_?C005- = !![OW\
M%#   ' @M$!G   B-"[]^E)"/4+]^C8N_?;605-#>  8,#  0^[]Y!.$( !2
M;OWX8+(P+OWV4$!R $'N_?P2,   <""R0&<  &HR+OWZ4D$]0?WZ="Y#[OWD
M$X(0 '8!/4/]^ QN  /]^&X  $8P+OWV,B[]^-!!7D!T $'N_?P4,   <""T
M0&<  "(T+OWZ4D(]0OWZ-B[]]M9!7D-X !@P, !#[OWD$X0@ %)N_?A@LC N
M_?H=0/WD,B[]]@9!  MT $'N_?P4,!  /4+]XC(N_?8&00 :=@ 6,!  ,B[]
M]@9! !MX !@P$ #A1-9$/4/]X#(\ 0!(P2U!_=@X+OWV!D0 ''H &C!  #@N
M_?8&1  =?  <,$  +P$O!DZY   J]"P?2,7:AC@N_?8&1  >?  <,$  >!#I
MIMJ&."[]]@9$ !]\ !PP0 !X&.FFVH8M1?W<> C$1'P M$9F  %N,"[]XG00
MP$*P1F<  *X_+OW@0F=.N0  * !(;@ ,/SS__TZY   H$DAN_>0_//__3KD 
M "@2/SP 7#\\__Y.N0  *!(@7Y[\ %(B3S+8<!,BV%'(__Q.NO5BXD!D  !8
M,"[]]C(\ .5![OW\$8$  # Y   QX#(Y   QWM!!-"[]\M!"/P!(;OW\3KKK
M+N) 9   )$AY   O5$ZY   ?D$AZ .8_/  =3KD  "!N3KD  !^06(]@  "T
M2,:ZAE; -B[]X+9&5L& 0>) 9   GC\N_> O+OW<3KD  "@ 2&X ##\\__].
MN0  *!)(;OWD/SS__TZY   H$B!?GOP 4B)/,MAP$R+84<C__$ZZ\5KB0&0 
M %@P+OWV,CP Y4'N_?P1@0  ,#D  #'@,CD  #'>T$$T+OWRT$(_ $AN_?Q.
MNNIXXD!D   D2'D  "]43KD  !^02'H ,#\\ !U.N0  (&Y.N0  'Y!8CU)N
M_?1@ /S,4F[]\F  _&!.7BQ?(%_>_ !23M!#86XG="!W<FET92!T;R!M86EN
M+61I<F5C=&]R>0!#86XG="!R96%D(&UA:6XM9&ER96-T;W)Y "\.+$A.5O_V
M0?H P"U(__Q.N0  *H9P #U __IR CU!__@T.0  ,>130CU"__8P+O_XL&[_
M]FX  %I!^0  K^@2,   XD%E  !$/R[_^$ZZ[%YR +!!9P  -#\N__A.NN_(
MXD!D   2/R[_^#\\__!.NNWH8   %C\N__A"9TZZ[=HP+O_Z4D ]0/_Z4F[_
M^&"<,"[_^G( L$%G   N0?H ,$_O_ZXB3Q+\ "MP*A+84<C__$ZZY[KB0&0 
M  9.NNK:< $SP   [NQ.7BQ?3G5$:7-K(&-O;G1A:6YS(&%L;&]C871E9"!B
M=70@=6YU<V5D(&-L=7-T97)S $'Z 7XCR   +,Y!^0  +-)#Z ""(4D =##\
M_P%"F"#\     4*80?D  "]40J@ =##\_P)"F"#\     2#\  $  $ZZY-A.
MNND6XD!D   H2'D  "]43KD  !^02'H!F#\\ !Q.N0  (&Y.N0  'Y!8CV  
M -I.NNDVXD!D   H2'D  "]43KD  !^02'H!/C\\ "E.N0  (&Y.N0  'Y!8
MCV   *I.N0  *  P.0  [O(&0 !!/P _//_^3KD  "@22'H!!C\\  ).N0  
M*!(@7Y[\ %(B3S+8<!,BV%'(__Q.NOH23KKIMC Y  #N[N) 90  !DZZ_@PP
M.0  [NSB0&0  "A(>0  +U1.N0  'Y!(>@"F/SP #TZY   @;DZY   ?D%B/
M8   )$AY   O5$ZY   ?D$AZ &X_/  23KD  "!N3KD  !^06(](>0  +U1.
MN0  'Y!8CTAY   O5$AZ "P_/  83KD  "!N6(](>0  +-).N0  (S!8CTAY
M   O5$ZY   >[D)G3D%0<F5S<R!215154DX@=&\@8V]N=&EN=65.;R!E<G)O
M<G,@9&5T96-T961%<G)O<G,@9&5T96-T960 .EQ#86XG="!R96%D($9!5" M
M(&1I<VL@:7,@<V5V97)E;'D@9&%M86=E9 !#86XG="!G970@0E!"("T@;F\@
M<W5C:"!D:7-K2/D' P  [_1A  #<<@"U"68&4X!F^'(!/P$O"$SY!P,  ._T
M3G5(^0<#  #O]&$  +9R ;4)9@93@&;X<@ _ 2\(3/D' P  [_1.=4CY!P, 
M ._T80  D'( M0EF!E. 9OA@ E7!/P$O"$SY!P,  ._T3G5(^0<#  #O]&%H
M<@&U"68&4X!F^& "4\$_ 2\(3/D' P  [_1.=4CY!P,  ._T84)R +4)9@93
M@&;X8 )2P3\!+PA,^0<#  #O]$YU2/D' P  [_1A''(!M0EF!E. 9OA@ E3!
M/P$O"$SY!P,  ._T3G4CWP  \! @7R ?#(#____^9PPB7TJ :A)P ! 98 PP
M'T/Y  #O\Q* < $B'PR!_____F<,)%]*@6H2<@ 2&F ,,A]%^0  [_,4@7(!
MLH!G7$CY" 0  / (1_D  .[T920T %-":P86V5'*__PD 92 4X)P !; 4<K_
M_" !0_D  .[T8" D 5.":P86VE'*__PD )2!4X)R !;!4<K__$7Y  #N]$SY
M" 0  / (2H!F"' !0_H !"1)+SD  / 03G4@7R)?+P@0*0 !#    6<:#   
M"6<4#    F8J2JD =&<(2FD "FL>81XP*0 *:Q8,0  &91 _ #\\ #XS?/__
M  I.05B/3G4O""(I '@@:0!TDHAG)$CG0, O""\!/RD "C\\ $!.0=[\  Q,
MWP,"2H!O!M' DH!FW"!?3G4@7S0?8 0@7W0 -A\,0@ !;PIR(&$  >I30F#P
M,@-A  '@3M!(^3]_   AGB!?<@UA  '.<@IA  '(+PA,^3]_   AGDYU(%]R
M#&$  ;1.T"!?-!]@!"!?=  B'W@ , %(P+"!9TI*@6H$1(%X 78 0_D  "'>
M>@!P"K* 8P92!=" 8/9\ +* 9022@ O&XHA7S?_T  $ ,!,!4@,B!F;68#8@
M7S0?8 0@7W0 ,A]X $I!:@1$07@!=@!#^0  (=YP # !@/P "C( 2$     P
M$P!2 TI!9NA*!&<&$SP +5(#MD)L#I1#4T)R(&$  1)1RO_X4T,2&6$  091
MR__X3M @7S0?=@!@!B!?-!\V'R)?2D)J!'0 %!E*0VL89Q:T0V4$- -@#I9"
M4T-R(&$  -!1R__X4T)K"A(980  PE'*__A.T"!?=@!@!"!?-A\P'^) 9 I#
M^0  (0%T!& (0_D  "#\= 5*0V<8:Q:T0V4$- -@#I9"4T-R(&$  ()1R__X
M4T(2&6%V4<K_^D[01D%,4T544E5% "!?-A]K F8"=@0R7W0 #$, !&,B- -9
M0G8$8!H@7S8?:P)F G8((E]T  Q#  AC!C0#44)V"%-":PAR(&$H4<K_^E-#
MY4,B">:I D$ #P ! # , 0 Y8P)> 6$*2@-G!%E#8.).T$CY PP  "&.(F\ 
M!!-! ( O"4ZY   AWDSY PP  "&.3G4                             
M                                                            
M                 "A?(E\O#$'I ( 2*0 !# $  F<(# $ "68  )8D*0 &
M2JD =&8F2.<@P"\(+P(_*0 */SP 0$Y!WOP #$S? P1*@&]VT<"4@&;63G4D
M:0!X)FD ?+?*9@1A&&#P<  4V%* M(!G!+?*9O0C2@!XD,!@SDCGX( B*0!X
M(&D ="-( 'B2B&<D2.=@P"\(+P$_*0 */SP 0$Y!WOP #$S? P9*@&\6T<"2
M@&;<3-\!!TYU#"D "  !9@I.=4AY   BV6 *2'D  "*R,#P  R!,3OD  "P4
M4D574DE412!R97%U:7)E9"!P<FEO<B!T;R!74DE412!O<B!0550 1&ES:R!O
M<B!D:7)E8W1O<GD@9G5L;  @7R1?(E=P  QI  0 "F48$"D @$CG@. O"4ZY
M   D^$S?!P$T@$[02.< X"\)3KD  "3X3-\' '  $"D @&#D(%\B5THY  #P
M%F8J2BD !68(#&D !  *91P0*0 #2.> P"\)3KD  "3X3-\# 0QI  0 "F0$
M$"D  THI  5F!$H 9]8,:0 $  ID$$(Y  #P%DHI  5F!$)I  ).T'H!8 )Z
M "!?)%\B5W  = !V $CGM. O"4AY  #P%&$ _T(R.0  \!18CTS?!RT, 0 M
M9@A* V9></]@- P! "!F!DH#9RI@3@0! #!E2 P!  EB0M2":5PH MB$:5;8
MA&E2U(1I3@*!    #]2!4D-**0 #9B , 0 @9Y8,:0 $  IECA(I ( , 0 P
M90@, 0 Y8P#_?DH#9R9* &<"1()*!68,-@)(P[:"9@@T@D[0)().T$AY   D
MV# \  A@"$AZ &@P/  '3OD  "P4(%\D7S ?(E=T "9*4HM**0 #9CI(YZ#P
M+PE(>0  \!1A /YR,CD  / 46(],WP\%#&D !  *9 Q**0 #4/D  / 69@I2
M0K!"9<06P6# L$)E!!2"8 (4@$[0"@!"860@9&EG:70@:6X@;G5M8F5R(&5N
M8V]U;G1E<F5D $]V97)F;&]W(&1U<FEN9R!214%$(&]F(&YU;6)E<@  *%\@
M7R\,0^@ @ PH  $  6<*#"@ "0 !9@ "6$HH  5F  )&)"@ !B1)2J@ =&9L
M2.<@X"\)+P(_*  */SP /TY!WOP #$S?!P1*@&\JT\"4@&;62A!G'@P2  IF
M!")*8,(,$@ :9Q ,$@ -5^@  V8$%+P ($YU2A!G%A2\ "!*:  *9PQ**  #
M9@90Z  #3G4A? #_ /\  DYU2.< X"1H '@F: !\M\IG&G  $MI20+1 9P2W
MRF;TD\ A2@!X3-\' &"$2.<@X"9H '0A2P!X2F@ "F8H85I,WP<$1?,  $I 
M9PX,*@ :__]F!A2\ !I@!!2\  U20$)H (!@("\++SP   ( /R@ "C\\ #].
M0=[\  Q,WP<$2H!L G  U\ A2P!\2H!F /]V3-\' &  _QAR $CG0!!(<Q  
M< $O $)G/SP /TY!WOP #$S?" )201 S$/\,   (9D ,00 !9QA5@4CG0!!(
M>@$7< (,,P @$ !D$' %8 Q304CG0!!(>@$0< (O #\\  $_/ ! 3D'>_  ,
M3-\( F"8#   #68&4T%@  ">#   "F804T%(YT 02'H VG !8   D@P  !IF
M#$CG0!!(>@"\< Q@?@P  !AF-%-!8"A(YT 02'H H' ###, (!  9 )P!B\ 
M/SP  3\\ $!.0=[\  Q,WP@"4<G_UF  _RH,   @9"P3P   )X\ .0!    G
MCTCGP!!(>@!P< (O #\\  $_/ ! 3D'>_  ,3-\( PQ! ?]F /[R2.= $$AZ
M $9P B\ /SP  3\\ $!.0=[\  Q,WP@"( %.=4AZ %(P/  !8 A(>@ D,#P 
M B!,3OD  "P4"" ("" (&W @17AI=" ;<0T*&T->05)E<V5T(')E<75I<F5D
M('!R:6]R('1O(%)E860@;W(@1V5T $%T=&5M<'0@=&\@<F5A9"!P87-T(&5N
M9"UO9BUF:6QE  !(^0,!  #P&B!?,!\B7[ 190PO"$SY P$  / :3G5(>0  
M*A!.^0  +"HO%T(Y  #P0B]\  #P0@ $3G5(^0<'  #P&B!?,!\,0/_^9A(P
M'R)\  #P&!/   #P&' !8 HB7TI :@1P ! 91?D  /!"<@ 2&C0!U$ ,0@#_
M8J 50O__U,%30&L&%-E1R/_\+PA,^0<'  #P&DYU2/D?'P  \!H@7S0?4T)K
M /]T.!\R'R1?<@ 2&K1!8@#_9# ?#$#__F82,!\B?   \!@3P   \!AP 6 *
M(E]*0&H$<  0&38 UD&V1&( _S850___1_(P 4GR$ %30&L.U,(7)+7,9?H4
MV5'(__PO"$SY'Q\  / :3G5(^0</  #P&B!?-!]K /[\,A]306L _O0P'R)?
M<  0&38!UD*V0&( _N)%\3  E2G__]+!D$-30&L&$MI1R/_\+PA,^0</  #P
M&DYU2/D?#P  \!H@7S(?)%]R !(:,!\,0/_^9A(P'R)\  #P&!/   #P&' !
M8 HB7TI :@1P ! 9DD!K'E- :QIV "9*)$E20S0 *$NY"E;*__QG"E*+4<G_
M[$)G8 (_ R\(3/D?#P  \!I.=4CY!P\  / :(%\T'VL _D8R'U-!:P#^/C ?
M#$#__F82,!\B?   \!@3P   \!AP 6 *(E]*0&H$<  0&4I"9Q"R0&( _A V
M =9"ED!O I1#1?D  /!"%,+2P5-":P84V5'*__PO"$SY!P\  / :3G53=')I
M;F<@;W9E<F9L;W< (%]P $HN__QG(# H_^X,:$Y6_^QG-" H_^P,:-_\_^IG
M* QH2 [_ZF >,"C_\@QH3E;_\&<4("C_\@QHW_S_[F<(#&A(#O_N9AY8@&<:
M<@ B3T2 Y(AD C+!4X!K"B+!4X!J^F "(%\B>0  +,#2_ $ L\]E#$AY   J
MX$[Y   L*D[0(]\  /%*(\@  /%&#"X ___\9@HM?   *M  #F (+7P  "K0
M  @@;O_\3M"]^0  \49FV"!Y  #Q2D[04W1A8VL@;W9E<G)U;G,@:&5A< !(
M^0$_  #Q3B!?>@ @'V=":@1$@%)%(A=G.&H$1(%2120 -@'&PDA"2D)G'C@!
M2$%*068LQ,1(0DI"9B36@FD@XD5D D2#+H-@"B0!2$(X &#B0I<O"$SY 3\ 
M /%.3G4PO$YV1/P  D[02/D!?P  \4Y\ 6 *2/D!?P  \4Y\ "!?>@ @'V8&
M,+R P$[0:@1$@%)%(A=G8&H$1(%21;* 9 A*!F=2* %@1&8(> %*!F<\8$1X
M %-$L(1B$+*$8@R"P$H&9P)(03@!8")T +* 8P92 M" 8/9X +* 9022@ 7$
MXHA7RO_T2@9G B@!XDUD D2$+H1@ D*7+PA,^0%_  #Q3DYU(%_?_    "A.
MT"!?,!\O"$AO  0@?   *_HSP   ++Y*>0  ++QF"%B/3M!8CR\/(\@  /%N
M(GP  "R*82 B7V$<(GP  "R1811*>0  +,QG""!Y  #Q;CG 0F=.02\)/SP 
M"4Y!7(].=3 Y   LOD)Y   LODYU(%\SWP  ++Q">0  ++Y.T$)Y   LODYU
M#0HJ*BH@ " J*BH-"@!#;W!Y<FEG:'0@O2 Q.3@V+"!#0T0@86YD($]34RP@
M26YC+@#__P      #@8&+ @6!@X.!@@&'A((" @&#@@*!B &#@@*!C(,#@@*
M!C+,!@P.!@@." H&/@H.!@AB%EH82 8@*@@2)!@6% 8&" X&2 82)!0&#@84
M&!(4!@X&$"X0& 8.!@PH@+8("A@&#@8,,$X! A(8#D@&)'0V, Y$#@X..#00
M!@X.!BH8[ PL+C00& X>!@X.!@&85!P.#DX.'@8.#@8*&!P.#DX.'@8.#@8*
M$@X.#C(.'@8.#@8F#@XR#AX&#@X&/ 8.#@8J&.@,& 8>!@X&"@&06 X.#C(&
M'@8.!BH.#C(&'@8.!FP2&(H\!APJ!@X&%@8.!@P&$ X@$ P&#@8,!@X&" 8(
M#@@&" :.' H<"AX*' H<"AP(("(0!B0B"!*L&#)*G JB$ @!% @,7A06("@J
M"I(4( H8 0%V"&)D% @&" 8,$@84* HJ!D *0@H:!D *( 8H&( .!@@&#@H.
4"!Y6% R&' 8&$ 8," @8!@H&"  4
 
end