Re: ASP, looping, and stored procedures.... error '800a0bb9' ...

From: Beau (beau_at_webfireinc.com)
Date: 11/30/04


Date: Tue, 30 Nov 2004 11:54:45 -0800

Ok,

The client logs in. They choose a date range and submit.

>From there, this page loops through by month (incrementing) and makes those
SP calls respectively. (thus the to and from dates.)

The output must be formatted to show by month/quarter.

I'm just going to include the .asp page here.

If you can decide another way to do this, please, by all means tell me.

You've already got most of the SP's.

"Bob Barrows [MVP]" <reb01501@NOyahoo.SPAMcom> wrote in message
news:uFxcd2w1EHA.1260@TK2MSFTNGP12.phx.gbl...
> Beau wrote:
> > Ok, the joins made it work a bit faster. There are 8 SP calls on the
> > page PER loop. The looping goes by month from and to dates selected
> > by the user. I am using alot of data and a large date range on a
> > single test box. (specs unknown)
> >
> > The page also has to do a little FSO at the beginning to delete any
> > previous .gif's in the output folder. (the page uses a graphing
> > component to draw out all the data collected/processed by the SP's
> > and ASP code.
> >
> > In pure ASP the page takes about 15 seconds. With the SP's and joins
> > in the SP's that you suggested and graciously helped me with, the
> > page run time is down to 10-11 seconds.(for that particular call,
> > date range, client data, etc. (Keeping test params the same each run.)
> >
> > Anything else I can do to speed this up?
>
> It depends on where your bottlenecks are. You need to quantify where the
> time is being consumed. You can use this type of code to determine this:
>
> dim t
> t=now
> 'do some work
> response.write "this bit took " & datediff("ms",t,now)/1000 & " sec.<BR>"
> 'do some more
> 'etc.
>
>
> If your bottleneck turns out to be occurring in the ASP code itself rather
> than retrieving the results from the database, you might think about
putting
> all this ASP looping into a stored procedure. I'm not sure what your
> objective here is so I really can't get too specific.
>
> If you are unable to think of a way to do all this processing in a single
> stored procedure, then you may want to think about utilizing GetRows
arrays
> instead of recordset loops, which are very inefficient. See
>
> >
> > Oh, and by the way, the test box has SQL server and IIS on it. It's
> > the same box.
> >
> > -Won't I notice an improvement in performance much more in the actual
> > live environment if the SQL boxes are clustered and the IIS boxes are
> > in a farm seperated? (I realize that network speed, server speed,
> > other factors, etc will come into play)
>
> I would think so, yes. SQL Server performs much better if it is given
> sufficient RAM to use/
>
> > -Do SP's reduce network traffic?
>
> Yes. Even if a SP performs a single query, you've just sent a procedure
name
> and parameter values across the wire, instead of a long sql statement. So
> network traffic is reduced even with a simple SP. Now, if you go ahead and
> encapsulate several queries into a single SP, the reduction in network
> traffic can be enormous (one call to the database, instead of calls for
each
> of the queries)
>
> > I know that they share the page's
> > processor burden by making the SQL box work instead of ths IIS's ASP
> > doing it all.
>
> --
> Microsoft MVP -- ASP/ASP.NET
> Please reply to the newsgroup. The email account listed in my From
> header is my spam trap, so I don't check it very often. You will get a
> quicker response by posting to the newsgroup.
>
>

begin 666 sp_graph.asp
M/"$M+2-I;F-L=61E('9I<G1U86P](B]I;F-L=61E<R]H96%D97(N87-P(BTM
M/@T*#0H\)2=M86ME('1H92!C;VYN96-T:6]N('1O('1H92!D871A8F%S90T*
M#0IS970@9&)#;VYN/7-E<G9E<BYC<F5A=&5O8FIE8W0H(F%D;V1B+F-O;FYE
M8W1I;VXB*0T*9&)#;VYN+F]P96X@<W%L0V]N;F5C=&EO;E-T<FEN9PT*#0I2
M97-P;VYS92Y"=69F97(@/2!T<G5E#0I297-P;VYS92Y%>'!I<F5S06)S;VQU
M=&4@/2!N;W<H*0T*#0HE/@T*/"$M+2-I;F-L=61E(&9I;&4](F-H;V]S97)E
M<&]R="YA<W B+2T^#0H\)0T*#0IS=&%R='1I;64];F]W*"D-"@T*#0HG9&5L
M971E($%.62 N9VEF)W,@:6X@=&AE(&]U='!U="!F;VQD97(@=&AA="!A<F4@
M;VQD97(@=&AA;B U(&UI;G5T97,-"FEM86=E;&]C871I;VX@/2 B0SI<5T5"
M4TE415-<5V]R;&1$;V-3:71E7&)E875<:6UA9V5S7"(-"E-E="!F<V\@/2!3
M97)V97(N0W)E871E3V)J96-T*")38W)I<'1I;F<N1FEL95-Y<W1E;4]B:F5C
M="(I#0I3970@9B ](&9S;RY'971&;VQD97(H:6UA9V5L;V-A=&EO;BD-"B @
M(%-E="!F8R ](&8N1FEL97,-"B @($9O<B!%86-H(&8Q(&EN(&9C#0H@(" @
M("!I9B!F,2YD871E8W)E871E9" \(&1A=&5A9&0H(FXB+"TU+&YO=R@I*2!T
M:&5N#0H@(" @( T*"0EF<V\N1&5L971E1FEL92!I;6%G96QO8V%T:6]N("8@
M9C$N;F%M92P@5')U90T*(" @(" -"B @(" @96YD(&EF(" @(" -"B @($YE
M>'0-"G-E="!F<V\@/2!N;W1H:6YG#0H-"@T*#0H-"D9U;F-T:6]N($1A=&5#
M;VUP87)E*$1A=&5!+"!$871E0BD-"@T*("!)9B!$871E1&EF9B@B>2(L($1A
M=&5!+"!$871E0BD@/2 P(%1H96X-"B @("!$871E0V]M<&%R92 ](")E<75A
M;"(-"B @16QS90T*(" @($EF(%EE87(H1&%T94$I(#X@665A<BA$871E0BD@
M5&AE;@T*(" @(" @1&%T94-O;7!A<F4@/2 B;&%R9V5R(@T*(" @($5L<V5)
M9B!996%R*$1A=&5!*2 \(%EE87(H1&%T94(I(%1H96X-"B @(" @($1A=&5#
M;VUP87)E(#T@(G-M86QL97(B#0H@(" @16QS90T*(" @(" @268@36]N=&@H
M1&%T94$I(#X@36]N=&@H1&%T94(I(%1H96X-"B @(" @(" @1&%T94-O;7!A
M<F4@/2 B;&%R9V5R(@T*(" @(" @16QS94EF($UO;G1H*$1A=&5!*2 \($UO
M;G1H*$1A=&5"*2!4:&5N#0H@(" @(" @($1A=&5#;VUP87)E(#T@(G-M86QL
M97(B#0H@(" @("!%;'-E#0H@(" @(" @($EF($1A>2A$871E02D@/B!$87DH
M1&%T94(I(%1H96X-"B @(" @(" @("!$871E0V]M<&%R92 ](")L87)G97(B
M#0H@(" @(" @($5L<V4-"B @(" @(" @("!$871E0V]M<&%R92 ](")S;6%L
M;&5R(@T*(" @(" @("!%;F0@268-"B @(" @($5N9"!)9@T*(" @($5N9"!)
M9@T*("!%;F0@268-"@T*16YD($9U;F-T:6]N#0H-"@T*#0HG;VX@97)R;W(@
M<F5S=6UE(&YE>'0-"@T*)V-R96%T92!T:&4@8VAA<G0@;V)J96-T#0H)"5-E
M="!#:&%R=" ](%-E<G9E<BY#<F5A=&5/8FIE8W0H(F-S1')A=T=R87!H5')I
M86PN1')A=R(I#0H)"5-E="!#:&%R=#(@/2!397)V97(N0W)E871E3V)J96-T
M*")C<T1R87='<F%P:%1R:6%L+D1R87<B*0T*"0E3970@0VAA<G0S(#T@4V5R
M=F5R+D-R96%T94]B:F5C="@B8W-$<F%W1W)A<&A4<FEA;"Y$<F%W(BD-"@D)
M#0H-"B=G970@9W)O=7!#:&]I8V4-"D=R;W5P0VAO:6-E(#T@=')I;2AR97%U
M97-T*")F9W)O=7!C:&]I8V4B*2D-"G-344P@/2 B<V5L96-T($=R;W5P3F%M
M92!F<F]M('1B;$=R;W5P<R!W:&5R92!'<F]U<$E$(#T@)R(@)B!'<F]U<$-H
M;VEC92 F("(G(@T*<V5T(&]B:D=23U503D%-12 ](&1B0V]N;BYE>&5C=71E
M*'-344PI#0I'<F]U<$YA;64@/2!T<FEM*&]B:D=23U503D%-12YF:65L9',H
M(D=R;W5P3F%M92(I*0T*#0HE/@T*/"$M+51H:7,@:7,@=&\@:6YC;'5D92!T
M:&4@9W)A<&@@<V5T=&EN9W,@9F]R(&5A8V@@9W)A<&@M+3X-"CPA+2T@(TE.
M0TQ51$4@1DE,13TB9W)A<&AS971T:6YG<RYA<W B("TM/@T*/"$M+2 C24Y#
M3%5$12!&24Q%/2)G<F%P:'-E='1I;F=S,BYA<W B("TM/@T*/"$M+2 C24Y#
M3%5$12!&24Q%/2)G<F%P:'-E='1I;F=S,RYA<W B("TM/@T*/"4-"@T*"2=M
M86YU86P@9&%T92!R86YG90T*"6-U<G)E;G1S96%R8VAD871E(#T@=')I;2AR
M97%U97-T*")F9G)O;61A=&4B*2D-"@EC=7)R96YT<V5A<F-H9&%T92 ](&1A
M=&5A9&0H(FTB+#$L8W5R<F5N='-E87)C:&1A=&4I#0H)=&]D87ES<75A<G1E
M<F5N9" ]('1R:6TH<F5Q=65S="@B9G1O9&%T92(I*0T*#0HG861D('-T87)T
M:6YG('!O:6YT(&]N(&-H87)T#0IC:&%R='-T87)T<&]I;G0], T*#0IS970@
M<G-T4W1O<F5D4')O8R ](%-E<G9E<BY#<F5A=&5/8FIE8W0H(D%$3T1"+G)E
M8V]R9'-E="(I#0H-"F1O('=H:6QE($1A=&5#;VUP87)E*&-U<G)E;G1S96%R
M8VAD871E+'1O9&%Y<W%U87)T97)E;F0I(#T@(G-M86QL97(B#0H-"@D)9G)O
M;61A=&4@/2!Y96%R*&-U<G)E;G1S96%R8VAD871E*2 F("(O(B F(&UO;G1H
M*&1A=&5A9&0H(FTB+"TQ+&-U<G)E;G1S96%R8VAD871E*2D@)B B+R(@)B!D
M87DH8W5R<F5N='-E87)C:&1A=&4I#0H)"71O9&%T92 ]('EE87(H8W5R<F5N
M='-E87)C:&1A=&4I("8@(B\B("8@;6]N=&@H8W5R<F5N='-E87)C:&1A=&4I
M("8@(B\B("8@9&%Y*&-U<G)E;G1S96%R8VAD871E*0T*"2<)4F5S<&]N<V4N
M5W)I=&4@(F9R;VUD871E+2(@)B!F<F]M9&%T92 F("(\0E(^/$)2/G1O9&%T
M92TB("8@=&]D871E("8@(CQ"<CX\0G(^(B F(&-O=6YT("8@(CQ"4CX\0E(^
M(B -"@DG"5)E<W!O;G-E+D9L=7-H#0H)#0H))V-H87)T('!O<'5L871I;VX-
M"@D)8VAA<G1S=&%R='!O:6YT(#T@8VAA<G1S=&%R='!O:6YT("L@,3 -"@D)
M#0H)"0T*)W1H:7,@:7,@=&\@9V5T('1H92!C;VUP;&5T960@2%)!)W,-"@D-
M"@DG0T%,3"!34"!W:71H;W5T($-/34U!3D0-"@D)9&)C;VYN+G!R;V-?9V5T
M0V]M<&QE=&5(4D%3($=R;W5P0VAO:6-E+'1O9&%T92QR<W13=&]R9610<F]C
M#0H)#0H)"55315)(4D%3(#T@=')I;2AR<W13=&]R9610<F]C+F9I96QD<R@B
M55-%4DA205,B*2D-"@D-"@D)<G-T4W1O<F5D4')O8RY#;&]S90T*"0D-"@D)
M:68@:7-N=6QL*%5315)(4D%3*2!T:&5N( T*"0D)55-%4DA205,@/2 B,"(-
M"@D)96YD(&EF#0H)"4-H87)T+D%D9%!O:6YT(&-H87)T<W1A<G1P;VEN="P@
M55-%4DA205,L("(S,T9&,C(B+" B5&]T86P@0V]M<&QE=&5D($A202=S(@T*
M#0H)"0D-"@DG=&AI<R!I<R!T;R!G970@=&AE(&%V97)A9V4@=&EM92!P97(@
M<V5S<VEO;@T*"0T*"0DG=&]T86P@;6EN=71E<R!S<&5N= T*"0ED8F-O;FXN
M<')O8U]G971397-S:6]N5&EM92!'<F]U<$-H;VEC92QF<F]M9&%T92QT;V1A
M=&4L<G-T4W1O<F5D4')O8PT*"0T*"0ET;W1?;6EN<R ]('1R:6TH<G-T4W1O
M<F5D4')O8RYF:65L9',H(G1O=%]M:6YS(BDI#0H)"0T*"0ER<W13=&]R9610
M<F]C+D-L;W-E#0H)"0T*"0D-"@DG=&]T86P@=7-E<G,@:6X@=&)L;&]G#0H-
M"@D)9&)C;VYN+G!R;V-?9V5T4V5S<VEO;D-O=6YT($=R;W5P0VAO:6-E+&9R
M;VUD871E+'1O9&%T92QR<W13=&]R9610<F]C#0H-"@D)=&]T7W5S97)S(#T@
M=')I;2AR<W13=&]R9610<F]C+F9I96QD<R@B<V5S<VEO;F-O=6YT(BDI#0H)
M"0T*"0ER<W13=&]R9610<F]C+D-L;W-E#0H-"@D)879G7W1I;64@/2!T;W1?
M;6EN<R O('1O=%]U<V5R<PT*"0D-"@D):68@:7-N=6QL*&%V9U]T:6UE*2!T
M:&5N( T*"0D)879G7W1I;64@/2 B,"(-"@D)96YD(&EF#0H)"4-H87)T,BY!
M9&10;VEN="!C:&%R='-T87)T<&]I;G0L(&%V9U]T:6UE+" B1D8P,$9&(BP@
M(D%V9R!-:6XO4V5S<VEO;B(-"@D)#0H)"0T*"0T*"2=G970@879G('!A9V5S
M('!E<B!S97-S:6]N#0H)#0H)"61B8V]N;BYP<F]C7V=E=%!A9V5(:71S($=R
M;W5P0VAO:6-E+&9R;VUD871E+'1O9&%T92QR<W13=&]R9610<F]C#0H-"@D)
M=&]T86Q?:&ET<R ]('1R:6TH<G-T4W1O<F5D4')O8RYF:65L9',H(G1O=&%L
M7VAI=',B*2D-"@D)=&]T7W!A9V5?=7-E<G,@/2!T<FEM*')S=%-T;W)E9%!R
M;V,N9FEE;&1S*")T;W1?<&%G95]U<V5R<R(I*0T*#0H)"7)S=%-T;W)E9%!R
M;V,N0VQO<V4-"@T*"0EI9B!T;W1A;%]H:71S(#P^("(P(B!A;F0@=&]T7W!A
M9V5?=7-E<G,@/#X@(C B('1H96X-"@D)"6%V9U]N=6U?<&%G97,@/2!C9&)L
M*'1O=&%L7VAI=',@+R!T;W1?<&%G95]U<V5R<RD-"@D)96YD(&EF#0H)"0T*
M"0EI9B!I<VYU;&PH879G7VYU;5]P86=E<RD@=&AE;B -"@D)"6%V9U]N=6U?
M<&%G97,@/2 B,"(-"@D)96YD(&EF#0H)"0T*"0EI9B!I<VYU;&PH=&]T86Q?
M:&ET<RD@=&AE;@T*"0D)=&]T86Q?:&ET<R ]("(P(@T*"0EE;F0@:68-"@D)
M#0HG"5)E<W!O;G-E+E=R:71E(")4(B F('1O=&%L7VAI=',@)B B/$)2/E4B
M("8@=&]T7W!A9V5?=7-E<G,@)B B/$)2/D$B("8@879G7VYU;5]P86=E<PT*
M"0D-"@D)0VAA<G0R+D%D9%!O:6YT(&-H87)T<W1A<G1P;VEN="P@879G7VYU
M;5]P86=E<RP@(D9&1D8P,"(L(")!=F<@4&%G97,O4V5S<VEO;B(-"@D)0VAA
M<G0S+D%D9%!O:6YT(&-H87)T<W1A<G1P;VEN="P@=&]T86Q?:&ET<RP@(C P
M,3%$1"(L(")086=E($AI=',B#0H-"@D-"@D-"@DG0T%,3"!34"!W:71H;W5T
M($-/34U!3D0-"@DG9V5T('1O=&%L('5S97(@8V]U;G0-"@D)9&)C;VYN+G!R
M;V-?9V5T57-E<D-O=6YT($=R;W5P0VAO:6-E+'1O9&%T92QR<W13=&]R9610
M<F]C#0H)"0T*"0EU<V5R8V]U;G0@/2!T<FEM*')S=%-T;W)E9%!R;V,N9FEE
M;&1S*")U<V5R8V]U;G0B*2D-"@D)#0H)"7)S=%-T;W)E9%!R;V,N0VQO<V4-
M"@D-"@D))V%D9"!T:&4@<&]I;G0@=&\@=&AE(&-H87)T#0H)"4-H87)T,RY!
M9&10;VEN="!C:&%R='-T87)T<&]I;G0L('5S97)C;W5N="P@(F9F,S,P,"(L
M(")5<V5R($-O=6YT(@T*#0H-"@T*"2=T:&ES(&ES('1H92!P97)C96YT86=E
M(&]F('1H92!T;W1A;"!U<V5R<R!T:&%T(&AA=F4@8V]M<&QE=&5D(&%N($A2
M00D-"@D):68@=7-E<F-O=6YT(#P^("(P(B!T:&5N( T*"0D-"@DG"0E297-P
M;VYS92Y7<FET92!S4U%,("8@(CQ"4CX\0E(^(B F(%1/5$%,55-%4E,@)B B
M/$)2/CQ"4CXB#0H)"0T*"0D)<&5R8V5N=%]U<V5R<U]H<F%S(#T@("A54T52
M2%)!4R J(#$P,"D@+R!U<V5R8V]U;G0-"@D)#0H)"0E#:&%R=#(N061D4&]I
M;G0@8VAA<G1S=&%R='!O:6YT+"!P97)C96YT7W5S97)S7VAR87,L("(W-S$Q
M.3DB+" B)2!5<V5R<R]#;VUP;&5T94A202=S(@T*#0H)"65N9"!I9@T*"0D-
M"@D)"0T*"0D)#0H))W1O=&%L('9I<VET;W)S#0H)"0T*"0ED8F-O;FXN<')O
M8U]G971397-S:6]N0V]U;G0@1W)O=7!#:&]I8V4L9G)O;61A=&4L=&]D871E
M+')S=%-T;W)E9%!R;V,-"@D-"@D)<V5S<VEO;F-O=6YT(#T@=')I;2AR<W13
M=&]R9610<F]C+F9I96QD<R@B<V5S<VEO;F-O=6YT(BDI#0H)"0T*"0ER<W13
M=&]R9610<F]C+D-L;W-E#0H)"0T*"0D-"@D):68@:7-N=6QL*'-E<W-I;VYC
M;W5N="D@=&AE;B -"@D)"7-E<W-I;VYC;W5N=" ]("(P(@T*"0EE;F0@:68-
M"@D)#0H)"2=A9&0@=&AE('!O:6YT('1O('1H92!C:&%R= T*"0E#:&%R="Y!
M9&10;VEN="!C:&%R='-T87)T<&]I;G0L('-E<W-I;VYC;W5N="P@(F9F04$P
M,"(L(")4;W1A;"!6:7-I=&]R<R(-"@D-"@D-"@D-"@DG=6YI<75E('9I<VET
M;W)S"0D-"@D-"@D)9&)C;VYN+G!R;V-?9V5T56YI<75E4V5S<VEO;D-O=6YT
M($=R;W5P0VAO:6-E+&9R;VUD871E+'1O9&%T92QR<W13=&]R9610<F]C#0H)
M"0D-"@D)=6YI<75E<V5S<VEO;F-O=6YT(#T@=')I;2AR<W13=&]R9610<F]C
M+F9I96QD<R@B<V5S<VEO;F-O=6YT(BDI#0H)#0H)"7)S=%-T;W)E9%!R;V,N
M0VQO<V4-"@D)#0H)"0T*"0EI9B!I<VYU;&PH=6YI<75E<V5S<VEO;F-O=6YT
M*2!T:&5N( T*"0D)=6YI<75E<V5S<VEO;F-O=6YT(#T@(C B#0H)"65N9"!I
M9@T*"0DG861D('1H92!P;VEN="!T;R!T:&4@8VAA<G0-"@D)0VAA<G0N061D
M4&]I;G0@8VAA<G1S=&%R='!O:6YT+"!U;FEQ=65S97-S:6]N8V]U;G0L(")!
M04%!,# B+" B56YI<75E(%9I<VET;W)S(@T*"0D)#0H)"0D-"@T*"2=A=F<@
M=FES:71S('!E<B!V:7-I=&]R#0H)"0EI9B!S97-S:6]N8V]U;G0@/B P(&%N
M9"!U;FEQ=65S97-S:6]N8V]U;G0@/B P('1H96X-"@D)"0EA=F=?=FES:71S
M7W!E<E]V:7-I=&]R(#T@<V5S<VEO;F-O=6YT("\@=6YI<75E<V5S<VEO;F-O
M=6YT#0H)"0EE;'-E#0H)"0D)879G7W9I<VET<U]P97)?=FES:71O<B ]("(P
M(@T*"0D)96YD(&EF#0H)"0E#:&%R=#(N061D4&]I;G0@8VAA<G1S=&%R='!O
M:6YT+"!A=F=?=FES:71S7W!E<E]V:7-I=&]R+" B1D8R,C!$(BP@(D%V9R!6
M:7-I=',O5FES:71O<B(-"@D-"@T*#0H))VEN8W)E;65N="!T:&4@8W5R<F5N
M='-E87)C:&1A=&4@86YD(&-U<G)E;G0@<75A<G1E<@T*"0EC=7)R96YT<V5A
M<F-H9&%T92 ](&1A=&5A9&0H(FTB+#$L8W5R<F5N='-E87)C:&1A=&4I#0H)
M"0T*"0D-"@DG;VX@=&AE('%U87)T97(@;6%R:W,L('=R:71E('1H92!T97AT
M(&%M;W5N="!F;W(@=&AE(&QI;F4@86YD('1H92!G<F%D:65N="!A="!T:&4@
M>"!A>&ES(&DN92X@1F]U<G1H,C P- T*"0EI9B!M;VYT:"AC=7)R96YT<V5A
M<F-H9&%T92D@/2 B,2(@=&AE;@T*"0D)0VAA<G0N061D6%9A;'5E(&-H87)T
M<W1A<G1P;VEN="P@(D9I<G-T("(@)B!Y96%R*&-U<G)E;G1S96%R8VAD871E
M*0T*"0D)0VAA<G0R+D%D9%A686QU92!C:&%R='-T87)T<&]I;G0L(")&:7)S
M=" B("8@>65A<BAC=7)R96YT<V5A<F-H9&%T92D-"@D)"4-H87)T,RY!9&18
M5F%L=64@8VAA<G1S=&%R='!O:6YT+" B1FER<W0@(B F('EE87(H8W5R<F5N
M='-E87)C:&1A=&4I#0HG"0D)0VAA<G0N061D3&EN94=R87!H5&5X=" B*"(@
M)B!H:71C;W5N=" F("(I(BP@8VAA<G1S=&%R='!O:6YT+34L(&AI=&-O=6YT
M*S(P+" P"0D)"0D-"B<)"0E#:&%R="Y!9&1,:6YE1W)A<&A497AT("(H(B F
M('5S97)C;W5N=" F("(I(BP@8VAA<G1S=&%R='!O:6YT+34L('5S97)C;W5N
M="LR,"P@, T*)PD)"4-H87)T,BY!9&1,:6YE1W)A<&A497AT("(H(B F('-E
M<W-I;VYC;W5N=" F("(I(BP@8VAA<G1S=&%R='!O:6YT+34L('-E<W-I;VYC
M;W5N="LR,"P@, T*)PD)"4-H87)T,BY!9&1,:6YE1W)A<&A497AT("(H(B F
M('5N:7%U97-E<W-I;VYC;W5N=" F("(I(BP@8VAA<G1S=&%R='!O:6YT+34L
M('5N:7%U97-E<W-I;VYC;W5N="LR,"P@, T*)PD)"4-H87)T,BY!9&1,:6YE
M1W)A<&A497AT("(H(B F(%5315)(4D%3("8@(BDB+"!C:&%R='-T87)T<&]I
M;G0M-2P@55-%4DA205,K,C L(# )"0D)"0T*"0EE;'-E:68@;6]N=&@H8W5R
M<F5N='-E87)C:&1A=&4I(#T@(C0B('1H96X-"@D)"4-H87)T+D%D9%A686QU
M92!C:&%R='-T87)T<&]I;G0L(")396-O;F0@(B F('EE87(H8W5R<F5N='-E
M87)C:&1A=&4I#0H)"0E#:&%R=#(N061D6%9A;'5E(&-H87)T<W1A<G1P;VEN
M="P@(E-E8V]N9" B("8@>65A<BAC=7)R96YT<V5A<F-H9&%T92D-"@D)"4-H
M87)T,RY!9&185F%L=64@8VAA<G1S=&%R='!O:6YT+" B4V5C;VYD("(@)B!Y
M96%R*&-U<G)E;G1S96%R8VAD871E*0T*)PD)"4-H87)T+D%D9$QI;F5'<F%P
M:%1E>'0@(B@B("8@:&ET8V]U;G0@)B B*2(L(&-H87)T<W1A<G1P;VEN="TU
M+"!H:71C;W5N="LR,"P@, D)"0D)#0HG"0D)0VAA<G0N061D3&EN94=R87!H
M5&5X=" B*"(@)B!U<V5R8V]U;G0@)B B*2(L(&-H87)T<W1A<G1P;VEN="TU
M+"!U<V5R8V]U;G0K,C L(# -"B<)"0E#:&%R=#(N061D3&EN94=R87!H5&5X
M=" B*"(@)B!S97-S:6]N8V]U;G0@)B B*2(L(&-H87)T<W1A<G1P;VEN="TU
M+"!S97-S:6]N8V]U;G0K,C L(# -"B<)"0E#:&%R=#(N061D3&EN94=R87!H
M5&5X=" B*"(@)B!U;FEQ=65S97-S:6]N8V]U;G0@)B B*2(L(&-H87)T<W1A
M<G1P;VEN="TU+"!U;FEQ=65S97-S:6]N8V]U;G0K,C L(# -"B<)"0E#:&%R
M=#(N061D3&EN94=R87!H5&5X=" B*"(@)B!54T522%)!4R F("(I(BP@8VAA
M<G1S=&%R='!O:6YT+34L(%5315)(4D%3*S(P+" P"0D)"0D-"@D)96QS96EF
M(&UO;G1H*&-U<G)E;G1S96%R8VAD871E*2 ]("(W(B!T:&5N#0H)"0E#:&%R
M="Y!9&185F%L=64@8VAA<G1S=&%R='!O:6YT+" B5&AI<F0@(B F('EE87(H
M8W5R<F5N='-E87)C:&1A=&4I#0H)"0E#:&%R=#(N061D6%9A;'5E(&-H87)T
M<W1A<G1P;VEN="P@(E1H:7)D("(@)B!Y96%R*&-U<G)E;G1S96%R8VAD871E
M*0T*"0D)0VAA<G0S+D%D9%A686QU92!C:&%R='-T87)T<&]I;G0L(")4:&ER
M9" B("8@>65A<BAC=7)R96YT<V5A<F-H9&%T92D-"B<)"0E#:&%R="Y!9&1,
M:6YE1W)A<&A497AT("(H(B F(&AI=&-O=6YT("8@(BDB+"!C:&%R='-T87)T
M<&]I;G0M-2P@:&ET8V]U;G0K,C L(# )"0D)"0T*)PD)"4-H87)T+D%D9$QI
M;F5'<F%P:%1E>'0@(B@B("8@=7-E<F-O=6YT("8@(BDB+"!C:&%R='-T87)T
M<&]I;G0M-2P@=7-E<F-O=6YT*S(P+" P#0HG"0D)0VAA<G0R+D%D9$QI;F5'
M<F%P:%1E>'0@(B@B("8@<V5S<VEO;F-O=6YT("8@(BDB+"!C:&%R='-T87)T
M<&]I;G0M-2P@<V5S<VEO;F-O=6YT*S(P+" P#0HG"0D)0VAA<G0R+D%D9$QI
M;F5'<F%P:%1E>'0@(B@B("8@=6YI<75E<V5S<VEO;F-O=6YT("8@(BDB+"!C
M:&%R='-T87)T<&]I;G0M-2P@=6YI<75E<V5S<VEO;F-O=6YT*S(P+" P#0HG
M"0D)0VAA<G0R+D%D9$QI;F5'<F%P:%1E>'0@(B@B("8@55-%4DA205,@)B B
M*2(L(&-H87)T<W1A<G1P;VEN="TU+"!54T522%)!4RLR,"P@, D)"0D)#0H)
M"65L<V5I9B!M;VYT:"AC=7)R96YT<V5A<F-H9&%T92D@/2 B,3 B('1H96X-
M"@D)"4-H87)T+D%D9%A686QU92!C:&%R='-T87)T<&]I;G0L(")&;W5R=&@@
M(B F('EE87(H8W5R<F5N='-E87)C:&1A=&4I#0H)"0E#:&%R=#(N061D6%9A
M;'5E(&-H87)T<W1A<G1P;VEN="P@(D9O=7)T:" B("8@>65A<BAC=7)R96YT
M<V5A<F-H9&%T92D-"@D)"4-H87)T,RY!9&185F%L=64@8VAA<G1S=&%R='!O
M:6YT+" B1F]U<G1H("(@)B!Y96%R*&-U<G)E;G1S96%R8VAD871E*0T*)PD)
M"4-H87)T+D%D9$QI;F5'<F%P:%1E>'0@(B@B("8@:&ET8V]U;G0@)B B*2(L
M(&-H87)T<W1A<G1P;VEN="TU+"!H:71C;W5N="LR,"P@, D)"0D)#0HG"0D)
M0VAA<G0N061D3&EN94=R87!H5&5X=" B*"(@)B!U<V5R8V]U;G0@)B B*2(L
M(&-H87)T<W1A<G1P;VEN="TU+"!U<V5R8V]U;G0K,C L(# -"B<)"0E#:&%R
M=#(N061D3&EN94=R87!H5&5X=" B*"(@)B!S97-S:6]N8V]U;G0@)B B*2(L
M(&-H87)T<W1A<G1P;VEN="TU+"!S97-S:6]N8V]U;G0K,C L(# -"B<)"0E#
M:&%R=#(N061D3&EN94=R87!H5&5X=" B*"(@)B!U;FEQ=65S97-S:6]N8V]U
M;G0@)B B*2(L(&-H87)T<W1A<G1P;VEN="TU+"!U;FEQ=65S97-S:6]N8V]U
M;G0K,C L(# -"B<)"0E#:&%R=#(N061D3&EN94=R87!H5&5X=" B*"(@)B!5
M4T522%)!4R F("(I(BP@8VAA<G1S=&%R='!O:6YT+34L(%5315)(4D%3*S(P
M+" P"0D)"0D-"@D)96YD(&EF#0H)"0T*#0H)#0H)#0IL;V]P#0H-"G)A;F1O
M;6EZ92@I#0H-"B<@<F%N9&]M(&YU;6)E<G,@:7,@=&AE('9A<FEA8FQE('1H
M870@=VEL;"!C;VYT86EN(&$@;G5M97)I8R!V86QU90T*)R!B971W965N(&]N
M92!A;F0@,3 P,# P#0IG:69N86UE/6EN="AR;F0J,3 P,# P*2LQ#0IG:69N
M86UE,CUI;G0H<FYD*C$P,# P,"DK,0T*9VEF;F%M93,]:6YT*')N9"HQ,# P
M,# I*S$-"@T*9VEF;&]C871I;VX@/2 B0SI<5T5"4TE415-<5V]R;&1$;V-3
M:71E7&)E875<:6UA9V5S7"(@)B!G:69N86UE("8@("(N9VEF(@T*9VEF;&]C
M871I;VXR(#T@(D,Z7%=%0E-)5$537%=O<FQD1&]C4VET95QB96%U7&EM86=E
M<UPB("8@9VEF;F%M93(@)B @(BYG:68B#0IG:69L;V-A=&EO;C,@/2 B0SI<
M5T5"4TE415-<5V]R;&1$;V-3:71E7&)E875<:6UA9V5S7"(@)B!G:69N86UE
M,R F(" B+F=I9B(-"@T*"0D-"B=S879E(&-H87)T#0I#:&%R="Y3879E1TE&
M3&EN92!G:69L;V-A=&EO;@T*0VAA<G0R+E-A=F5'249,:6YE(&=I9FQO8V%T
M:6]N,@T*0VAA<G0S+E-A=F5'249,:6YE(&=I9FQO8V%T:6]N,PT*)3X-"CQH
M96%D/@T*/&UE=&$@:'1T<"UE<75I=CTB;F\M8V%C:&4B/@T*/"]H96%D/@T*
M#0H-"CQC96YT95(^/&EM9R!S<F,](BXN+VEM86=E<R\\)3UG:69N86UE)3XN
M9VEF(CX\+V-E;G1%4CX-"CQ"4CX-"CQC96YT95(^/&EM9R!S<F,](BXN+VEM
M86=E<R\\)3UG:69N86UE,B4^+F=I9B(^/"]C96YT15(^#0H\0E(^#0H\8V5N
M=&52/CQI;6<@<W)C/2(N+B]I;6%G97,O/"4]9VEF;F%M93,E/BYG:68B/CPO
M8V5N=$52/@T*#0H-"CPE#0IS=&%R='1I;64@/2!D871E9&EF9B@B<R(L<W1A
M<G1T:6UE+&YO=R@I*0T*#0I297-P;VYS92Y7<FET92 B4&%G92!2=6X@5&EM
M93H@/&(^(B F('-T87)T=&EM92 F("(\+V(^<V5C;VYD<R(-"B4^#0H-"@T*
M/"$M+2-I;F-L=61E('9I<G1U86P](B]I;F-L=61E<R]F;V]T97(N87-P(BTM
%/@T*#0H`
`
end


Loading