www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Shootout analyzer

reply =?iso-8859-1?q?Knud_S=F8rensen?= <12tkvvb02 sneakemail.com> writes:
I wrote a small program to help analyze the shootout result on   
http://shootout.alioth.debian.org/download/ndata.csv
to help find d's weak spots.




Here it is:

/* Shootout  analyzer
   analyze the data files from
   http://shootout.alioth.debian.org/download/ndata.csv
   By Knud Soerensen (20 May 2005)
*/

import std.stream,std.string,std.format;

void main() {
   float[6][char[]]  data;
   char[] line,index,bufr = new char[128];
   char[][] word;

   BufferedFile ndata=new BufferedFile("ndata.csv");
   line=ndata.readLine(bufr);

   while(!ndata.eof) {
      line=ndata.readLine(bufr);
      word=split(line,",");
      index=word[0]~"("~word[3]~")";
      for(int i=0;i<3;i++)
        if (atof(word[6])>0.0)
        {
         float tmp=atof(word[5+i]);

         if (word[1].cmp("dlang")==0) data[index][3+i]=tmp;
         else if (tmp>0 && (data[index][i]==0.0 || (tmp<data[index][i])))
data[\index][i]=tmp;
       }
   }
   ndata.close();

   char[][] secs,kb,lines;

     foreach(char[] id; data.keys){
        secs.length=secs.length+1;
        secs[length-1]=(data[id][3]!=0.0f ?
format("%1.5f",data[id][0]/data[id]\[3]) : "!error")~" "~id;

	kb.length=kb.length+1;
	kb[length-1]=(data[id][4]!=0.0f ? format("%1.5f",data[id][1]/data[id][4\]) :
"!error")~" "~id;

	lines.length=lines.length+1;
	lines[length-1]=(data[id][5]!=0.0f ? format("%1.5f",data[id][2]/data[id\][5])
: "!error")~" "~id;


//       printf("%.*s : %f/%f %f/%f %f/%f
\n",id,data[id][0],data[id][3],data[i\d][1],data[id][4],data[id][2],data[id][5]);

  }
  printf("**********  time  **********\n");
  foreach(char[] val; secs.sort) printf("%.*s \n",val);

  printf("\n**********  memory  **********\n");
  foreach(char[] val; kb.sort) printf("%.*s \n",val);

  printf("\n**********  lines  **********\n");
  foreach(char[] val; lines.sort) printf("%.*s \n",val);

}
May 20 2005
parent "Charlie" <charles jwavro.com> writes:
Here are the output results for the lazy ( like me ).

"Knud Sørensen" <12tkvvb02 sneakemail.com> wrote in message
news:pan.2005.05.20.19.51.30.336192 sneakemail.com...
 I wrote a small program to help analyze the shootout result on
 http://shootout.alioth.debian.org/download/ndata.csv
 to help find d's weak spots.




 Here it is:

 /* Shootout  analyzer
    analyze the data files from
    http://shootout.alioth.debian.org/download/ndata.csv
    By Knud Soerensen (20 May 2005)
 */

 import std.stream,std.string,std.format;

 void main() {
    float[6][char[]]  data;
    char[] line,index,bufr = new char[128];
    char[][] word;

    BufferedFile ndata=new BufferedFile("ndata.csv");
    line=ndata.readLine(bufr);

    while(!ndata.eof) {
       line=ndata.readLine(bufr);
       word=split(line,",");
       index=word[0]~"("~word[3]~")";
       for(int i=0;i<3;i++)
         if (atof(word[6])>0.0)
         {
          float tmp=atof(word[5+i]);

          if (word[1].cmp("dlang")==0) data[index][3+i]=tmp;
          else if (tmp>0 && (data[index][i]==0.0 || (tmp<data[index][i])))
data[\index][i]=tmp;
        }
    }
    ndata.close();

    char[][] secs,kb,lines;

      foreach(char[] id; data.keys){
         secs.length=secs.length+1;
         secs[length-1]=(data[id][3]!=0.0f ?
format("%1.5f",data[id][0]/data[id]\[3]) : "!error")~" "~id;
 kb.length=kb.length+1;
 kb[length-1]=(data[id][4]!=0.0f ? format("%1.5f",data[id][1]/data[id][4\])
: "!error")~" "~id;
 lines.length=lines.length+1;
 lines[length-1]=(data[id][5]!=0.0f ?
format("%1.5f",data[id][2]/data[id\][5]) : "!error")~" "~id;
 //       printf("%.*s : %f/%f %f/%f %f/%f
\n",id,data[id][0],data[id][3],data[i\d][1],data[id][4],data[id][2],data[id] [5]);
   }
   printf("**********  time  **********\n");
   foreach(char[] val; secs.sort) printf("%.*s \n",val);

   printf("\n**********  memory  **********\n");
   foreach(char[] val; kb.sort) printf("%.*s \n",val);

   printf("\n**********  lines  **********\n");
   foreach(char[] val; lines.sort) printf("%.*s \n",val);

 }
begin 666 output.txt M*BHJ*BHJ*BHJ*B =&EM92 *BHJ*BHJ*BHJ* T*(65R<F]R(&9A;FYK=6-H M*#<I( T*(65R<F]R(&9A;FYK=6-H*# I( T*(65R<F]R(&9I8F\H,3(I( T* M(65R<F]R(&AE86QT:" Q,# P*2 -"B%E<G)O<B!H96%L=& H,C P*2 -"B%E M<G)O<B!H96%L=& H-C P*2 -"B%E<G)O<B!H96QL;R Q*2 -"B%E<G)O<B!I M;7!L:6-I=&]D92 Q,"D #0HA97)R;W( :6UP;&EC:71O9&4H,C I( T*(65R M<F]R(&EM<&QI8VET;V1E*#4I( T*(65R<F]R(&EM<&QI8VET;V1E*#4P*2 - M"B%E<G)O<B!L:7-T<R T*2 -"B%E<G)O<B!M871R:7 H,3 I( T*(65R<F]R M(&UE=&AC86QL*#$P,# P,"D #0HA97)R;W( ;F5S=&5D;&]O<" X*2 -"B%E M<G)O<B!P:61I9VET<R Q,# I( T*(65R<F]R(')A;F1O;2 Y,# P*2 -"C N M,#(V,S$ ;V)J:6YS=" Q,# P,# P*2 -"C N,#(Y-#$ ;V)J:6YS=" Q-3 P M,# P*2 -"C N,#,T.# ;65S<V%G92 Q-3 I( T*,"XP,S<U,"!O8FII;G-T M*#<P,# P,"D #0HP+C T,S0W(&]B:FEN<W0H-# P,# P*2 -"C N,#0T,S M;65S<V%G92 Q,# I( T*,"XP-3DR-R!M97-S86=E*#4P*2 -"C N,#8T-3$ M96-H;R T,# P,"D #0HP+C X,S,S(&5X8V5P=" Q,# P,# I( T*,"XP.#8Y M-2!E>&-E<'0H,C P,# P*2 -"C N,3 W,30 97AC97!T*#(U,# P,"D #0HP M+C$Q-S8U(&5X8V5P=" Q-3 P,# I( T*,"XQ,C,V,"!R96=E>&UA=&-H*#$R M,# P*2 -"C N,3(V.#< <F5G97AM871C:" Y,# P*2 -"C N,30V,#< <F5G M97AM871C:" V,# P*2 -"C N,38V-C< 87)Y*#<P,# I( T*,"XR,# P,"!R M86YD;VTH-C P,# P*2 -"C N,C(R,C( ;F5S=&5D;&]O<" Q."D #0HP+C(S M-3(Y('!R;V1C;VYS*#$P,# P,"D #0HP+C(T,# P('!R;V1C;VYS*#$U,# P M,"D #0HP+C(U,# P(&%R>2 U,# P*2 -"C N,C4P,# <')O9&-O;G,H-S P M,# I( T*,"XR-C,Q-B!H96QL;R Q,# I( T*,"XR-C,Q-B!H96QL;R U,"D M#0HP+C(V-S V(&AE;&QO*#$U,"D #0HP+C(W,#(W(&AE;&QO*#(P,"D #0HP M+C(X-3<Q(&%R>2 Y,# P*2 -"C N,C U-S$ <F%N9&]M*#DP,# P,"D #0HP M+C(Y-#$R(&UA=')I>" V,# I( T*,"XS,S,S,R!A<GDH,S P,"D #0HP+C,S M,S,S(&UA=')I>" R,# I( T*,"XS,S,S,R!P<F]D8V]N<R S,# P,"D #0HP M+C,V,S8T(&UA=')I>" T,# I( T*,"XT,# P,"!N97-T961L;V]P*#$V*2 - M"C N-#4T-34 :&%S:" T,# P,"D #0HP+C0V-C8W(&%C:V5R;6%N;B Y*2 - M"C N-# V-#D :&%S:" Q,# P,# I( T*,"XU,# P,"!L:7-T<R Q,BD #0HP M+C4P,# P(&UE=&AC86QL*#<P,# P,"D #0HP+C4R-C,R(&AA<V H-C P,# I M( T*,"XU-C P,"!H87-H*# P,# P*2 -"C N-3<Q-#, ;6%N9&5L8G)O=" S M,# I( T*,"XU-S$T,R!P<F]C97-S*#,P,# I( T*,"XU.#,S,R!M86YD96QB M<F]T*#0P,"D #0HP+C8P,# P('!R;V-E<W,H,C P,"D #0HP+C8P-#$W('1A M:V9P*#$P*2 -"C N-C$U,S =V]R9&9R97$H,3 I( T*,"XV,C(R,B!T86MF M<" Y*2 -"C N-C(U,# 9FEB;R S,BD #0HP+C8T-S Y(')E=F-O;7 H,C4P M,# P,"D #0HP+C8U-C(U(&5C:&\H,34P,# P*2 -"C N-C8V-C< 86-K97)M M86YN*# I( T*,"XV-C8V-R!H96%P<V]R=" T,# P,"D #0HP+C8V-C8W(&UA M;F1E;&)R;W0H,C P*2 -"C N-C8V-C< <')O8V5S<R Q,# P*2 -"C N-C8V M-C< <F%N9&]M*#,P,# P,"D #0HP+C8V-C8W('1C<'-T<F5A;2 S,"D #0HP M+C8V-C8W('=O<F1F<F5Q*#$U*2 -"C N-C X,#, 96-H;R Q,# P,# I( T* M,"XV.34V-2!W;W)D9G)E<2 R,"D #0HP+C<P-3 X(')E=F-O;7 H,C4P,# P M*2 -"C N-S$T,CD =&%K9G H."D #0HP+C<Q-#(Y('1C<'-T<F5A;2 U,"D M#0HP+C<Q-#(Y('=C*#$P,# I( T*,"XW,30R.2!W8R R,# P*2 -"C N-S$T M,CD =V]R9&9R97$H,C4I( T*,"XW,30R.2!W;W)D9G)E<2 U*2 -"C N-S(W M,C< =&-P<W1R96%M*#0P*2 -"C N-S(W,C< =V,H,34P,"D #0HP+C<U,# P M(&%C:V5R;6%N;B W*2 -"C N-S4P,# <VEE=F4H,S P*2 -"C N-S8T-S$ M=V,H,C4P,"D #0HP+C<W-S<X(')E=F5R<V5F:6QE*#(U*2 -"C N-S U,C M96-H;R W,# P,"D #0HP+C P,# P(&UO;65N=',H,3(U*2 -"C N.#$R-3 M;F)O9'DH,3 P,# P*2 -"C N.#$V,# ;F)O9'DH,3 P,# P,"D #0HP+C Q M.3DR(&YB;V1Y*#$P,# P,# P*2 -"C N.#,P-3$ 9F%S=&$H,C4P,# P,"D M#0HP+C S,S,S(&YB;V1Y*#$P,# P*2 -"C N.#4P,# =&-P96-H;R Q,"D M#0HP+C U-S$T(')E=F5R<V5F:6QE*#(P*2 -"C N.#4W,30 <VEE=F4H,3(P M,"D #0HP+C U-S$T('1C<')E<75E<W0H,3(P*2 -"C N.#8W-C4 =&-P<F5Q M=65S=" R,# I( T*,"XX-S4P,"!F87-T82 R-3 P,# I( T*,"XX-S4P,"!M M;VUE;G1S*#(P,"D #0HP+C X.# Y('1C<')E<75E<W0H,38P*2 -"C N.#DT M-S0 <W!E;&QC:&5C:R T*2 -"C N.3 T-S8 :&%R;6]N:6,H,3 P,# P,# I M( T*,"XY,#DP.2!S:65V92 Y,# I( T*,"XY,C,P."!H87)M;VYI8R V,# P M,# P*2 -"C N.30Q,3 :&%R;6]N:6,H.# P,# P,"D #0HP+CDU,# P('-P M96-T<F%L;F]R;2 U,# I( T*,"XY-C(Y-B!S<&5L;&-H96-K*#<I( T*,"XY M-C,S,"!T8W!E8VAO*# I( T*,"XY-S$T,R!S<&5L;&-H96-K*#$P*2 -"C$N M,# P,# 9F%S=&$H,C4P,# I( T*,2XP,# P,"!F:6)O*#(T*2 -"C$N,# P M,# :&%S:#(H-3 I( T*,2XP,# P,"!H96%P<V]R=" Q,# P,# I( T*,2XP M,# P,"!H96%P<V]R=" R,# P,"D #0HQ+C P,# P(&AE87!S;W)T*#8P,# P M*2 -"C$N,# P,# :&5A<'-O<G0H.# P,# I( T*,2XP,# P,"!L:7-T<R Q M-BD #0HQ+C P,# P(&QI<W1S*#$X*2 -"C$N,# P,# ;&ES=',H."D #0HQ M+C P,# P(&UA=')I>&YO<FTH,3 P,"D #0HQ+C P,# P(&UA=')I>&YO<FTH M-3 P*2 -"C$N,# P,# ;65T:&-A;&PH,3 P,# P,"D #0HQ+C P,# P(&UE M=&AC86QL*#0P,# P,"D #0HQ+C P,# P(&UO;65N=',H,C4I( T*,2XP,# P M,"!M;VUE;G1S*#<U*2 -"C$N,# P,# ;F5S=&5D;&]O<" Q,BD #0HQ+C P M,# P(')E9V5X;6%T8V H,3 P*2 -"C$N,# P,# <F5V8V]M<" R-3 P,"D M#0HQ+C P,# P(')E=F5R<V5F:6QE*#$P*2 -"C$N,# P,# <F5V97)S969I M;&4H,34I( T*,2XP,# P,"!S:65V92 V,# I( T*,2XP,# P,"!S<&5C=')A M;&YO<FTH,3 P*2 -"C$N,# P,# <W!E;&QC:&5C:R Q-2D #0HQ+C P,# P M('-T<F-A=" Q,# P,"D #0HQ+C P,# P('-T<F-A=" R,# P,"D #0HQ+C P M,# P('-T<F-A=" S,# P,"D #0HQ+C P,# P('-T<F-A=" T,# P,"D #0HQ M+C P,# P('1C<&5C:&\H-BD #0HQ+C P-C0W(&UA=')I>&YO<FTH,C P,"D M#0HQ+C T-30U(&AA<V R*#$P,"D #0HQ+C U-SDW(&YS:65V96)I=',H.2D M#0HQ+C W,C(Y(&AA<V R*#(P,"D #0HQ+C W.3,W(&AA<V R*#$U,"D #0HQ M+C$R-3 P(&YS:65V96)I=',H-RD #0HQ+C$T,C V(&9A;FYK=6-H*#DI( T* M,2XQ-#(X-B!S<&5C=')A;&YO<FTH,S P*2 -"C$N,34S.#4 <W5M8V]L*#<P M,"D #0HQ+C$U-S Y(&YS:65V96)I=',H."D #0HQ+C$W-S,P('-U;6-O;" X M,# P*2 -"C$N,C(R,C( <W5M8V]L*#$P,# I( T*,2XR.#4W,2!S=6UC;VPH M-# P*2 -"C$N,S,S,S, :VYU8VQE;W1I9&4H,C4P,"D #0HQ+C4P,# P('!I M9&EG:71S*#(P,"D #0HQ+C8V-C8W('!I9&EG:71S*#,P,"D #0HQ+C<S,S,S M(&MN=6-L96]T:61E*#(U,# P*2 -"C$N.#4P-S4 ;G-I979E*#DI( T*,2XY M,S Q,B!K;G5C;&5O=&ED92 R-3 P,# I( T*,BXR,3 U,R!N<VEE=F4H."D M#0HR+C(U,# P(&YS:65V92 W*2 -" T**BHJ*BHJ*BHJ*B ;65M;W)Y(" J M*BHJ*BHJ*BHJ#0HA97)R;W( 9F%N;FMU8V H-RD #0HA97)R;W( 9F%N;FMU M8V H."D #0HA97)R;W( :&5A;'1H*#$P,# I( T*(65R<F]R(&AE86QT:" R M,# I( T*(65R<F]R(&AE86QT:" V,# I( T*(65R<F]R(&AE;&QO*#$I( T* M(65R<F]R(&EM<&QI8VET;V1E*#$P*2 -"B%E<G)O<B!I;7!L:6-I=&]D92 R M,"D #0HA97)R;W( :6UP;&EC:71O9&4H-2D #0HA97)R;W( :6UP;&EC:71O M9&4H-3 I( T*(65R<F]R(&QI<W1S*#0I( T*(65R<F]R(&UA=')I>" Q,"D M#0HA97)R;W( ;65T:&-A;&PH,3 P,# P*2 -"B%E<G)O<B!P:61I9VET<R Q M,# I( T*(65R<F]R(')A;F1O;2 Y,# P*2 -"C N,# T,# 9FEB;R S,BD M#0HP+C P-3(Y(&5X8V5P=" Q,# P,# I( T*,"XP,34V-"!A8VME<FUA;FXH M-RD #0HP+C Q-C,X(&%C:V5R;6%N;B X*2 -"C N,#$V-#D 9FEB;R R-"D M#0HP+C Q-S<T(&%C:V5R;6%N;B Y*2 -"C N,#$X-S8 9FEB;R Q,BD #0HP M+C R,3DP(&YB;V1Y*#$P,# P,"D #0HP+C S,38Q(&YB;V1Y*#$P,# P,# I M( T*,"XP,S S,2!N8F]D>2 Q,# P,"D #0HP+C U-#4R(&AA<V R*#$U,"D M#0HP+C U-#8Q(&AA<V R*#$P,"D #0HP+C U-#8Q(&AA<V R*#(P,"D #0HP M+C U-#8Q(&AA<V R*#4P*2 -"C N,#<P-C$ <VEE=F4H,3(P,"D #0HP+C W M,#8Q('-I979E*#,P,"D #0HP+C W,#8Q('-I979E*#8P,"D #0HP+C W,#8Q M('-I979E*#DP,"D #0HP+C W,C4T(&YB;V1Y*#$P,# P,# P*2 -"C N,# S M-S$ <W1R8V%T*#0P,# P*2 -"C N,# X-30 ;V)J:6YS=" Q,# P,# P*2 - M"C N,# X-30 ;V)J:6YS=" Q-3 P,# P*2 -"C N,# X-30 ;V)J:6YS=" T M,# P,# I( T*,"XP.# U-"!O8FII;G-T*#<P,# P,"D #0HP+C Y.#(W('-T M<F-A=" Q,# P,"D #0HP+C$P,C8T(')E9V5X;6%T8V H,3 P*2 -"C N,3(T M,30 <W1R8V%T*#(P,# P*2 -"C N,3(W-3D <W1R8V%T*#,P,# P*2 -"C N M,3(X,C$ <F5V8V]M<" R-3 P,"D #0HP+C$R.#<Q(&YE<W1E9&QO;W H,38I M( T*,"XQ,C W,2!N97-T961L;V]P*#$X*2 -"C N,3,P,38 :&%S:" X,# P M,"D #0HP+C$U,#4P(&%R>2 W,# P*2 -"C N,34V,34 87)Y*#DP,# I( T* M,"XQ-S$Y-B!E>&-E<'0H,C P,# P*2 -"C N,3<Q.38 97AC97!T*#(U,# P M,"D #0HP+C$W-C<W(&%R>2 U,# P*2 -"C N,3DT-S4 9F%S=&$H,C4P,# P M,"D #0HP+C(Q,C8P('=C*#$P,# I( T*,"XR,3(V,"!W8R Q-3 P*2 -"C N M,C$R-C =V,H,C P,"D #0HP+C(Q,C8P('=C*#(U,# I( T*,"XR,S<W,"!T M86MF<" Q,"D #0HP+C(S-S<P('1A:V9P*# I( T*,"XR,S<W,"!T86MF<" Y M*2 -"C N,C,Y-C< <F%N9&]M*#8P,# P,"D #0HP+C(S.38W(')A;F1O;2 Y M,# P,# I( T*,"XR-3 Q-2!R979C;VUP*#(U,# P,"D #0HP+C(V,3DP(&UA M=')I>&YO<FTH-3 P*2 -"C N,C<Y,#< ;6%T<FEX;F]R;2 Q,# P*2 -"C N M,C<Y-C8 =V]R9&9R97$H,C I( T*,"XR.#DX,R!A<GDH,S P,"D #0HP+C(Y M-#4W(&UA;F1E;&)R;W0H,C P*2 -"C N,CDT-3< ;6%N9&5L8G)O=" S,# I M( T*,"XR.30U-R!M86YD96QB<F]T*#0P,"D #0HP+C,Q,3$Q(&UA=')I>&YO M<FTH,C P,"D #0HP+C,T,SDR(&5X8V5P=" Q-3 P,# I( T*,"XS-#4X-B!F M87-T82 R-3 P,"D #0HP+C,T-3 V(&9A<W1A*#(U,# P,"D #0HP+C,W,S<V M(&YE<W1E9&QO;W H,3(I( T*,"XS.#4Y-B!W;W)D9G)E<2 Q,"D #0HP+C,X M-3DV('=O<F1F<F5Q*#$U*2 -"C N,S U.38 =V]R9&9R97$H,C4I( T*,"XS M.#4Y-B!W;W)D9G)E<2 U*2 -"C N,SDV.34 ;65T:&-A;&PH,3 P,# P,"D M#0HP+C,Y-CDU(&UE=&AC86QL*#0P,# P,"D #0HP+C,Y-CDU(&UE=&AC86QL M*#<P,# P,"D #0HP+C0R,C<V(&AA<FUO;FEC*#$P,# P,# P*2 -"C N-#(R M-S8 :&%R;6]N:6,H-C P,# P,"D #0HP+C0R,C<V(&AA<FUO;FEC*# P,# P M,# I( T*,"XT,CDW-2!R86YD;VTH,S P,# P*2 -"C N-#,R-S8 <&ED:6=I M=',H,C P*2 -"C N-#,R-S8 <&ED:6=I=',H,S P*2 -"C N-#0P.#8 <W!E M;&QC:&5C:R T*2 -"C N-#0P.30 ;6%T<FEX*#(P,"D #0HP+C0T,#DT(&UA M=')I>" T,# I( T*,"XT-# Y-"!M871R:7 H-C P*2 -"C N-#4P-C( ;G-I M979E8FET<R W*2 -"C N-#<W-C$ 96-H;R Q,# P,# I( T*,"XT-S<V,2!E M8VAO*#$U,# P,"D #0HP+C0W-S8Q(&5C:&\H-# P,# I( T*,"XT-S<V,2!E M8VAO*#<P,# P*2 -"C N-# R,3( <F5V8V]M<" R-3 P,# P*2 -"C N-3 W M.30 <F5V97)S969I;&4H,C4I( T*,"XU,S4T-B!N97-T961L;V]P*# I( T* M,"XU,S T-B!S=6UC;VPH,3 P,"D #0HP+C4S.#0V('-U;6-O;" T,# I( T* M,"XU,S T-B!S=6UC;VPH-S P*2 -"C N-3,X-#8 <W5M8V]L*# P,# I( T* M,"XU-#(R.2!H96%P<V]R=" T,# P,"D #0HP+C4U,30P(&UO;65N=',H-S4I M( T*,"XU-34U-B!H96%P<V]R=" R,# P,"D #0HP+C4W.#$S(&AA<V H-# P M,# I( T*,"XU.3 U-2!S<&5C=')A;&YO<FTH,S P*2 -"C N-3DR,# <W!E M8W1R86QN;W)M*#$P,"D #0HP+C4Y,S8Y(')E=F5R<V5F:6QE*#$U*2 -"C N M-3DX-#, <W!E8W1R86QN;W)M*#4P,"D #0HP+C8P.#4V(')E=F5R<V5F:6QE M*#(P*2 -"C N-C$V-C< :&5A<'-O<G0H-C P,# I( T*,"XV,C$X.2!N<VEE M=F5B:71S*# I( T*,"XV,C8P,B!F86YN:W5C:" Y*2 -"C N-C0P,38 :VYU M8VQE;W1I9&4H,C4P,# I( T*,"XV-3(Q,"!S<&5L;&-H96-K*#$P*2 -"C N M-C4R,3 <W!E;&QC:&5C:R Q-2D #0HP+C8U,C$P('-P96QL8VAE8VLH-RD M#0HP+C8W,#(U(&AE87!S;W)T*# P,# P*2 -"C N-C<R,3D ;6]M96YT<R R M,# I( T*,"XV.# P,"!H96QL;R Q-3 I( T*,"XV.#<X,"!M;VUE;G1S*#(U M*2 -"C N-S W,S( ;G-I979E8FET<R Y*2 -"C N-S X-3 :&%S:" V,# P M,"D #0HP+C<Q,#$T(&AA<V H,3 P,# P*2 -"C N-S$P-CD :&5A<'-O<G0H M,3 P,# P*2 -"C N-S,Q,C, :&5L;&\H-3 I( T*,"XW-#4R,B!M;VUE;G1S M*#$R-2D #0HP+C<T-3 V(&QI<W1S*#$R*2 -"C N-S0U.#8 ;&ES=',H,38I M( T*,"XW-#4X-B!L:7-T<R Q."D #0HP+C<V,# W(')E9V5X;6%T8V H,3(P M,# I( T*,"XW-C X-R!R96=E>&UA=&-H*#8P,# I( T*,"XW-C X-R!R96=E M>&UA=&-H*#DP,# I( T*,"XW-C4P,"!H96QL;R R,# I( T*,"XX,3(P,2!R M979E<G-E9FEL92 Q,"D #0HP+C S.#,V(&AE;&QO*#$P,"D #0HP+C S.34P M(&MN=6-L96]T:61E*#(U,# P,"D #0HQ+C$V,#(R(&QI<W1S*# I( T*,2XS M,C,U,R!T8W!S=')E86TH,S I( T*,2XS,C,U,R!T8W!S=')E86TH-# I( T* M,2XS,C,U,R!T8W!S=')E86TH-3 I( T*,2XT-C$X,2!N<VEE=F4H.2D #0HQ M+C8U,S U('!R;V-E<W,H,C P,"D #0HQ+C8W-C8R('!R;V-E<W,H,S P,"D M#0HQ+C<V,S<X('!R;V1C;VYS*#$P,# P,"D #0HQ+C<V,S<X('!R;V1C;VYS M*#$U,# P,"D #0HQ+C<V,S<X('!R;V1C;VYS*#<P,# P*2 -"C$N.#<T,C$ M<')O8V5S<R Q,# P*2 -"C$N.3 S,C0 :VYU8VQE;W1I9&4H,C4P,"D #0HR M+C X-#$V(&YS:65V92 X*2 -"C(N,3 X-#$ =&-P96-H;R Q,"D #0HR+C$X M.#0Q('1C<&5C:&\H-BD #0HR+C$X.#0Q('1C<&5C:&\H."D #0HR+C(P,30T M('1C<')E<75E<W0H,3(P*2 -"C(N,C Q-#0 =&-P<F5Q=65S=" Q-C I( T* M,BXR,#$T-"!T8W!R97%U97-T*#(P,"D #0HR+C(S.3(V(&YS:65V92 W*2 - M"C(N-34Y,#8 <')O9&-O;G,H,S P,# I( T*,RXU-C T-"!M97-S86=E*#$P M,"D #0HS+C4V,#0T(&UE<W-A9V4H,34P*2 -"C,N-38P-#0 ;65S<V%G92 U M,"D #0H-"BHJ*BHJ*BHJ*BH (&QI;F5S(" J*BHJ*BHJ*BHJ#0HA97)R;W( M9F%N;FMU8V H-RD #0HA97)R;W( 9F%N;FMU8V H."D #0HA97)R;W( :&5A M;'1H*#$P,# I( T*(65R<F]R(&AE86QT:" R,# I( T*(65R<F]R(&AE86QT M:" V,# I( T*(65R<F]R(&AE;&QO*#$I( T*(65R<F]R(&EM<&QI8VET;V1E M*#$P*2 -"B%E<G)O<B!I;7!L:6-I=&]D92 R,"D #0HA97)R;W( :6UP;&EC M:71O9&4H-2D #0HA97)R;W( :6UP;&EC:71O9&4H-3 I( T*(65R<F]R(&QI M<W1S*#0I( T*(65R<F]R(&UA=')I>" Q,"D #0HA97)R;W( ;65T:&-A;&PH M,3 P,# P*2 -"B%E<G)O<B!P:61I9VET<R Q,# I( T*(65R<F]R(')A;F1O M;2 Y,# P*2 -"C N,#0P,# =V]R9&9R97$H,3 I( T*,"XP-# P,"!W;W)D M9G)E<2 Q-2D #0HP+C T,# P('=O<F1F<F5Q*#(P*2 -"C N,#0P,# =V]R M9&9R97$H,C4I( T*,"XP-# P,"!W;W)D9G)E<2 U*2 -"C N,#4R-C, =V,H M,3 P,"D #0HP+C U,C8S('=C*#$U,# I( T*,"XP-3(V,R!W8R R,# P*2 - M"C N,#4R-C, =V,H,C4P,"D #0HP+C W,30R(')E=F5R<V5F:6QE*#$P*2 - M"C N,#<Q-#( <F5V97)S969I;&4H,34I( T*,"XP-S$T,B!R979E<G-E9FEL M92 R,"D #0HP+C W,30R(')E=F5R<V5F:6QE*#(U*2 -"C N,3 S-#4 ;&ES M=',H,3(I( T*,"XQ,#,T-2!L:7-T<R Q-BD #0HP+C$P,S0U(&QI<W1S*#$X M*2 -"C N,3 S-#4 ;&ES=',H."D #0HP+C$V,S(W('!R;V-E<W,H,3 P,"D M#0HP+C$V,S(W('!R;V-E<W,H,C P,"D #0HP+C$V,S(W('!R;V-E<W,H,S P M,"D #0HP+C$V-C8W(&YE<W1E9&QO;W H,3(I( T*,"XQ-C8V-R!N97-T961L M;V]P*#$V*2 -"C N,38V-C< ;F5S=&5D;&]O<" Q."D #0HP+C$V-C8W(&YE M<W1E9&QO;W H."D #0HP+C$V-C8W('-U;6-O;" Q,# P*2 -"C N,38V-C< M<W5M8V]L*#0P,"D #0HP+C$V-C8W('-U;6-O;" W,# I( T*,"XQ-C8V-R!S M=6UC;VPH.# P,"D #0HP+C(R-#<R('!I9&EG:71S*#(P,"D #0HP+C(R-#<R M('!I9&EG:71S*#,P,"D #0HP+C(X,S R(&UE<W-A9V4H,3 P*2 -"C N,C S M,#( ;65S<V%G92 Q-3 I( T*,"XR.#,P,B!M97-S86=E*#4P*2 -"C N,CDT M,3( ;V)J:6YS=" Q,# P,# P*2 -"C N,CDT,3( ;V)J:6YS=" Q-3 P,# P M*2 -"C N,CDT,3( ;V)J:6YS=" T,# P,# I( T*,"XR.30Q,B!O8FII;G-T M*#<P,# P,"D #0HP+C(Y-#$R('-P96QL8VAE8VLH,3 I( T*,"XR.30Q,B!S M<&5L;&-H96-K*#$U*2 -"C N,CDT,3( <W!E;&QC:&5C:R T*2 -"C N,CDT M,3( <W!E;&QC:&5C:R W*2 -"C N,CDV,S <F5V8V]M<" R-3 P,"D #0HP M+C(Y-C,P(')E=F-O;7 H,C4P,# P*2 -"C N,S(U,# 9F%N;FMU8V H.2D M#0HP+C,S,S,S(&AA<FUO;FEC*#$P,# P,# P*2 -"C N,S,S,S, :&%R;6]N M:6,H-C P,# P,"D #0HP+C,S,S,S(&AA<FUO;FEC*# P,# P,# I( T*,"XS M,S,S,R!H96QL;R Q,# I( T*,"XS,S,S,R!H96QL;R Q-3 I( T*,"XS,S,S M,R!H96QL;R R,# I( T*,"XS,S,S,R!H96QL;R U,"D #0HP+C,T,S<U(')E M9V5X;6%T8V H,3 P*2 -"C N,S0S-S4 <F5G97AM871C:" Q,C P,"D #0HP M+C,T,S<U(')E9V5X;6%T8V H-C P,"D #0HP+C,T,S<U(')E9V5X;6%T8V H M.3 P,"D #0HP+C,U,3 U(')E=F-O;7 H,C4P,# P,"D #0HP+C,V-C8W(&MN M=6-L96]T:61E*#(U,# I( T*,"XS-C8V-R!K;G5C;&5O=&ED92 R-3 P,"D M#0HP+C,V-C8W(&MN=6-L96]T:61E*#(U,# P,"D #0HP+C,X-#8R(&5X8V5P M=" Q,# P,# I( T*,"XS.#0V,B!E>&-E<'0H,34P,# P*2 -"C N,S T-C( M97AC97!T*#(P,# P,"D #0HP+C,X-#8R(&5X8V5P=" R-3 P,# I( T*,"XS M.#DV,2!M;VUE;G1S*#$R-2D #0HP+C,X.38Q(&UO;65N=',H,C P*2 -"C N M,S Y-C$ ;6]M96YT<R R-2D #0HP+C,X.38Q(&UO;65N=',H-S4I( T*,"XT M,# P,"!P<F]D8V]N<R Q,# P,# I( T*,"XT,# P,"!P<F]D8V]N<R Q-3 P M,# I( T*,"XT,# P,"!P<F]D8V]N<R S,# P,"D #0HP+C0P,# P('!R;V1C M;VYS*#<P,# P*2 -"C N-#(Q,#4 :&%S:#(H,3 P*2 -"C N-#(Q,#4 :&%S M:#(H,34P*2 -"C N-#(Q,#4 :&%S:#(H,C P*2 -"C N-#(Q,#4 :&%S:#(H M-3 I( T*,"XT,C0U,R!F87-T82 R-3 P,"D #0HP+C0R-#4S(&9A<W1A*#(U M,# P,"D #0HP+C0R-#4S(&9A<W1A*#(U,# P,# I( T*,"XT,C U-R!S=')C M870H,3 P,# I( T*,"XT,C U-R!S=')C870H,C P,# I( T*,"XT,C U-R!S M=')C870H,S P,# I( T*,"XT,C U-R!S=')C870H-# P,# I( T*,"XT-# V M."!E8VAO*#$P,# P,"D #0HP+C0T,#8X(&5C:&\H,34P,# P*2 -"C N-#0P M-C 96-H;R T,# P,"D #0HP+C0T,#8X(&5C:&\H-S P,# I( T*,"XT-#0T M-"!F:6)O*#(T*2 -"C N-#0T-#0 9FEB;R S,BD #0HP+C4Q-3$U(&UE=&AC M86QL*#$P,# P,# I( T*,"XU,34Q-2!M971H8V%L;" T,# P,# I( T*,"XU M,34Q-2!M971H8V%L;" W,# P,# I( T*,"XU,CDT,2!R86YD;VTH,S P,# P M*2 -"C N-3(Y-#$ <F%N9&]M*#8P,# P,"D #0HP+C4R.30Q(')A;F1O;2 Y M,# P,# I( T*,"XU,S T-B!M871R:7 H,C P*2 -"C N-3,X-#8 ;6%T<FEX M*#0P,"D #0HP+C4S.#0V(&UA=')I>" V,# I( T*,"XU-#4T-2!A<GDH,S P M,"D #0HP+C4T-30U(&%R>2 U,# P*2 -"C N-30U-#4 87)Y*#<P,# I( T* M,"XU-#4T-2!A<GDH.3 P,"D #0HP+C4U-34V(&9I8F\H,3(I( T*,"XV,34S M."!H87-H*#$P,# P,"D #0HP+C8Q-3,X(&AA<V H-# P,# I( T*,"XV,34S M."!H87-H*#8P,# P*2 -"C N-C$U,S :&%S:" X,# P,"D #0HP+C8Q.3 U M('1C<'-T<F5A;2 S,"D #0HP+C8Q.3 U('1C<'-T<F5A;2 T,"D #0HP+C8Q M.3 U('1C<'-T<F5A;2 U,"D #0HP+C8V-C8W('1C<&5C:&\H,3 I( T*,"XV M-C8V-R!T8W!E8VAO*#8I( T*,"XV-C8V-R!T8W!E8VAO*# I( T*,"XV-C8V M-R!T8W!R97%U97-T*#$R,"D #0HP+C8V-C8W('1C<')E<75E<W0H,38P*2 - M"C N-C8V-C< =&-P<F5Q=65S=" R,# I( T*,"XV-SDV,2!N8F]D>2 Q,# P M,"D #0HP+C8W.38Q(&YB;V1Y*#$P,# P,"D #0HP+C8W.38Q(&YB;V1Y*#$P M,# P,# I( T*,"XV.3<V-R!H96%P<V]R=" Q,# P,# I( T*,"XV.3<V-R!H M96%P<V]R=" R,# P,"D #0HP+C8Y-S8W(&AE87!S;W)T*#0P,# P*2 -"C N M-CDW-C< :&5A<'-O<G0H-C P,# I( T*,"XV.3<V-R!H96%P<V]R=" X,# P M,"D #0HP+C<P-3 X(&UA;F1E;&)R;W0H,C P*2 -"C N-S U.# ;6%N9&5L M8G)O=" S,# I( T*,"XW,#4X."!M86YD96QB<F]T*#0P,"D #0HP+C<Q-#(Y M(&YS:65V92 W*2 -"C N-S$T,CD ;G-I979E*# I( T*,"XW,30R.2!N<VEE M=F4H.2D #0HP+C<Q-#(Y('1A:V9P*#$P*2 -"C N-S$T,CD =&%K9G H."D M#0HP+C<Q-#(Y('1A:V9P*#DI( T*,"XW,S,S,R!S<&5C=')A;&YO<FTH,3 P M*2 -"C N-S,S,S, <W!E8W1R86QN;W)M*#,P,"D #0HP+C<S,S,S('-P96-T M<F%L;F]R;2 U,# I( T*,"XW-3 P,"!A8VME<FUA;FXH-RD #0HP+C<U,# P M(&%C:V5R;6%N;B X*2 -"C N-S4P,# 86-K97)M86YN*#DI( T*,"XX,3 Q M."!N<VEE=F5B:71S*#<I( T*,"XX,3 Q."!N<VEE=F5B:71S*# I( T*,"XX M,3 Q."!N<VEE=F5B:71S*#DI( T*,"XX-#8Q-2!S:65V92 Q,C P*2 -"C N M.#0V,34 <VEE=F4H,S P*2 -"C N.#0V,34 <VEE=F4H-C P*2 -"C N.#0V M,34 <VEE=F4H.3 P*2 -"C N.3,S,S, ;6%T<FEX;F]R;2 Q,# P*2 -"C N M.3,S,S, ;6%T<FEX;F]R;2 R,# P*2 -"C N.3,S,S, ;6%T<FEX;F]R;2 U ,# I( T*,2XP,# P,"!N8F]D>2 Q,# P,# P,"D #0H` ` end
May 20 2005