FWD+ JMئ  # $ % & '@ (g ) *ʥ + , -  .R /p 0 1 2 6L 7v 8 9 : ;Ч < = >C ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <     # $ % & '@ (g ) *ʥ + , -  .R /p 0 1 2 6L 7v 8 9 : ;Ч < = >C ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <   ====3=Q=e=w= =!="=#=$=%D='=(=)=+=,:=.=/=1=2=4 =5(=8f=9=:=;=?*=@O=A=A=Bb=F=G=H=I=J=K/=Lb=M=N=O=Q=R=S =T7=U\=V=Y=Z=\p=_=`=f=g=h=j=p=q=r=t=yS=z={=|=}=<== =#=W=|====  # $ % & '@ (g ) *ʥ + , -  .R /p 0 1 2 6L 7v 8 9 : ;Ч < = >C ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <   ====3=Q=e=w= =!="=#=$=%D='=(=)=+=,:=.=/=1=2=4 =5(=8f=9=:=;=?*=@O=A=A=Bb=F=G=H=I=J=K/=Lb=M=N=O=Q=R=S =T7=U\=V=Y=Z=\p=_=`=f=g=h=j=p=q=r=t=yS=z={=|=}=<== =#=W=|====;; S; l; ; ; ;3;`  # $ % & '@ (g ) *ʥ + , -  .R /p 0 1 2 6L 7v 8 9 : ;Ч < = >C ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <   ====3=Q=e=w= =!="=#=$=%D='=(=)=+=,:=.=/=1=2=4 =5(=8f=9=:=;=?*=@O=A=A=Bb=F=G=H=I=J=K/=Lb=M=N=O=Q=R=S =T7=U\=V=Y=Z=\p=_=`=f=g=h=j=p=q=r=t=yS=z={=|=}=<== =#=W=|====;; S; l; ; ; ;3;`X,:X@SX]X]X_X`XbXdXdHXgXgXkXnXn7Xo\XoXrXsXv[XwsXxXy0XzPX|dX~XXXUXXXXgXXXXX'X-XFXjXXXXXXXXX0XPXXXXXXXX)XAXYXqXXXXX2XfXXXX XFXLXdXpXXXXBXvXXXX2XWXXXXXXHXZXkX X X XXXXXXX X%X=XUXmX ~X!X$X'X(X)<X*cX.X;X<X>X?X@ XB&XCKXE}XGXHXI-XLFXMwXNXO#XS/XT_XUXVXYX[X[ XaDXmfXn~XoXpXpXs5X|X}X~XXXXAXYX_XXXXhXsXyXXXXX4X:XaXXXCXNXTXXXXX X&XEXKXXXXXXXXGXXXX$X=XRXbXXXXXX9X?X EX pX X X XXX XXAX[XfX}XXX"X#X1"X1SX2YX3_X5X6X6X7X8FX9rX>XHXIXIXJ%XTFXUkXUXVXWXYXcXdXd5Xe;XfyXgXhXjXuXwXw=XyCXzNX|TX~ZX`XfXlXrXxX~XXXXXX(XGXfXXXXX1X=XVXvXXXXX XG XR X] Xp X X X X X XG X X X X X X X X, X> Xi X X X X6 XH Xg X X X X X" X: XR X] X X X X XXXXdXlXXXX X X EX oXXXX"eX"X#X$X/9X/XX0}X1X;X;X<<X=bXDXEXGXHXIiXJ|XMXTXUXVXW7XXiXcXeXhPXtXvXyX;XgXXXXX XX-X;XTXfXXXeXX2XXXX\XXXXXXX(XZXXXXXXBXtXXX XIXTXZX`XXXXjX.rX/X4X9  # $ % & '@ (g ) *ʥ + , -  .R /p 0 1 2 6L 7v 8 9 : ;Ч < = >C ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <   ====3=Q=e=w= =!="=#=$=%D='=(=)=+=,:=.=/=1=2=4 =5(=8f=9=:=;=?*=@O=A=A=Bb=F=G=H=I=J=K/=Lb=M=N=O=Q=R=S =T7=U\=V=Y=Z=\p=_=`=f=g=h=j=p=q=r=t=yS=z={=|=}=<== =#=W=|====;; S; l; ; ; ;3;`X,:X@SX]X]X_X`XbXdXdHXgXgXkXnXn7Xo\XoXrXsXv[XwsXxXy0XzPX|dX~XXXUXXXXgXXXXX'X-XFXjXXXXXXXXX0XPXXXXXXXX)XAXYXqXXXXX2XfXXXX XFXLXdXpXXXXBXvXXXX2XWXXXXXXHXZXkX X X XXXXXXX X%X=XUXmX ~X!X$X'X(X)<X*cX.X;X<X>X?X@ XB&XCKXE}XGXHXI-XLFXMwXNXO#XS/XT_XUXVXYX[X[ XaDXmfXn~XoXpXpXs5X|X}X~XXXXAXYX_XXXXhXsXyXXXXX4X:XaXXXCXNXTXXXXX X&XEXKXXXXXXXXGXXXX$X=XRXbXXXXXX9X?X EX pX X X XXX XXAX[XfX}XXX"X#X1"X1SX2YX3_X5X6X6X7X8FX9rX>XHXIXIXJ%XTFXUkXUXVXWXYXcXdXd5Xe;XfyXgXhXjXuXwXw=XyCXzNX|TX~ZX`XfXlXrXxX~XXXXXX(XGXfXXXXX1X=XVXvXXXXX XG XR X] Xp X X X X X XG X X X X X X X X, X> Xi X X X X6 XH Xg X X X X X" X: XR X] X X X X XXXXdXlXXXX X X EX oXXXX"eX"X#X$X/9X/XX0}X1X;X;X<<X=bXDXEXGXHXIiXJ|XMXTXUXVXW7XXiXcXeXhPXtXvXyX;XgXXXXX XX-X;XTXfXXXeXX2XXXX\XXXXXXX(XZXXXXXXBXtXXX XIXTXZX`XXXXjX.rX/X4X9~C#~3#~4#~5#~6#~7#~:#~;$~<.$~=?$~>O$~?`$~@x$~A$~B$~P$~QG%~Re%~S%~U%~V%~W%~X&~Y&~Z5&~[M&~\e&~]}&~^&~_&~a&~b&~c&~d '~e%'~f='~gU'~hm'~j'~s'~t'~u'~v'~w'~x (~x(~y,(~zX(~{(~|(~}(~(~(~)~2)~R)~d)~)~)~)~)~)~)~*~,*~L*~^*~~*~*~*~*~*~*~+~&+~F+~X+~x+~+~+~+~+~+~,~ ,~@,~R,~r,~,~,~,~,~,~$,  # $ % & '@ (g ) *ʥ + , -  .R /p 0 1 2 6L 7v 8 9 : ;Ч < = >C ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <   ====3=Q=e=w= =!="=#=$=%D='=(=)=+=,:=.=/=1=2=4 =5(=8f=9=:=;=?*=@O=A=A=Bb=F=G=H=I=J=K/=Lb=M=N=O=Q=R=S =T7=U\=V=Y=Z=\p=_=`=f=g=h=j=p=q=r=t=yS=z={=|=}=<== =#=W=|====;; S; l; ; ; ;3;`X,:X@SX]X]X_X`XbXdXdHXgXgXkXnXn7Xo\XoXrXsXv[XwsXxXy0XzPX|dX~XXXUXXXXgXXXXX'X-XFXjXXXXXXXXX0XPXXXXXXXX)XAXYXqXXXXX2XfXXXX XFXLXdXpXXXXBXvXXXX2XWXXXXXXHXZXkX X X XXXXXXX X%X=XUXmX ~X!X$X'X(X)<X*cX.X;X<X>X?X@ XB&XCKXE}XGXHXI-XLFXMwXNXO#XS/XT_XUXVXYX[X[ XaDXmfXn~XoXpXpXs5X|X}X~XXXXAXYX_XXXXhXsXyXXXXX4X:XaXXXCXNXTXXXXX X&XEXKXXXXXXXXGXXXX$X=XRXbXXXXXX9X?X EX pX X X XXX XXAX[XfX}XXX"X#X1"X1SX2YX3_X5X6X6X7X8FX9rX>XHXIXIXJ%XTFXUkXUXVXWXYXcXdXd5Xe;XfyXgXhXjXuXwXw=XyCXzNX|TX~ZX`XfXlXrXxX~XXXXXX(XGXfXXXXX1X=XVXvXXXXX XG XR X] Xp X X X X X XG X X X X X X X X, X> Xi X X X X6 XH Xg X X X X X" X: XR X] X X X X XXXXdXlXXXX X X EX oXXXX"eX"X#X$X/9X/XX0}X1X;X;X<<X=bXDXEXGXHXIiXJ|XMXTXUXVXW7XXiXcXeXhPXtXvXyX;XgXXXXX XX-X;XTXfXXXeXX2XXXX\XXXXXXX(XZXXXXXXBXtXXX XIXTXZX`XXXXjX.rX/X4X9~C#~3#~4#~5#~6#~7#~:#~;$~<.$~=?$~>O$~?`$~@x$~A$~B$~P$~QG%~Re%~S%~U%~V%~W%~X&~Y&~Z5&~[M&~\e&~]}&~^&~_&~a&~b&~c&~d '~e%'~f='~gU'~hm'~j'~s'~t'~u'~v'~w'~x (~x(~y,(~zX(~{(~|(~}(~(~(~)~2)~R)~d)~)~)~)~)~)~)~*~,*~L*~^*~~*~*~*~*~*~*~+~&+~F+~X+~x+~+~+~+~+~+~,~ ,~@,~R,~r,~,~,~,~,~,~$,V a/V/V/V/V/V 0V.F0V/0V80V90V:0V;0V< 1V=1V>?1V?Q1V@q1VA1V1  # $ % & '@ (g ) *ʥ + , -  .R /p 0 1 2 6L 7v 8 9 : ;Ч < = >C ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <   ====3=Q=e=w= =!="=#=$=%D='=(=)=+=,:=.=/=1=2=4 =5(=8f=9=:=;=?*=@O=A=A=Bb=F=G=H=I=J=K/=Lb=M=N=O=Q=R=S =T7=U\=V=Y=Z=\p=_=`=f=g=h=j=p=q=r=t=yS=z={=|=}=<== =#=W=|====;; S; l; ; ; ;3;`X,:X@SX]X]X_X`XbXdXdHXgXgXkXnXn7Xo\XoXrXsXv[XwsXxXy0XzPX|dX~XXXUXXXXgXXXXX'X-XFXjXXXXXXXXX0XPXXXXXXXX)XAXYXqXXXXX2XfXXXX XFXLXdXpXXXXBXvXXXX2XWXXXXXXHXZXkX X X XXXXXXX X%X=XUXmX ~X!X$X'X(X)<X*cX.X;X<X>X?X@ XB&XCKXE}XGXHXI-XLFXMwXNXO#XS/XT_XUXVXYX[X[ XaDXmfXn~XoXpXpXs5X|X}X~XXXXAXYX_XXXXhXsXyXXXXX4X:XaXXXCXNXTXXXXX X&XEXKXXXXXXXXGXXXX$X=XRXbXXXXXX9X?X EX pX X X XXX XXAX[XfX}XXX"X#X1"X1SX2YX3_X5X6X6X7X8FX9rX>XHXIXIXJ%XTFXUkXUXVXWXYXcXdXd5Xe;XfyXgXhXjXuXwXw=XyCXzNX|TX~ZX`XfXlXrXxX~XXXXXX(XGXfXXXXX1X=XVXvXXXXX XG XR X] Xp X X X X X XG X X X X X X X X, X> Xi X X X X6 XH Xg X X X X X" X: XR X] X X X X XXXXdXlXXXX X X EX oXXXX"eX"X#X$X/9X/XX0}X1X;X;X<<X=bXDXEXGXHXIiXJ|XMXTXUXVXW7XXiXcXeXhPXtXvXyX;XgXXXXX XX-X;XTXfXXXeXX2XXXX\XXXXXXX(XZXXXXXXBXtXXX XIXTXZX`XXXXjX.rX/X4X9~C#~3#~4#~5#~6#~7#~:#~;$~<.$~=?$~>O$~?`$~@x$~A$~B$~P$~QG%~Re%~S%~U%~V%~W%~X&~Y&~Z5&~[M&~\e&~]}&~^&~_&~a&~b&~c&~d '~e%'~f='~gU'~hm'~j'~s'~t'~u'~v'~w'~x (~x(~y,(~zX(~{(~|(~}(~(~(~)~2)~R)~d)~)~)~)~)~)~)~*~,*~L*~^*~~*~*~*~*~*~*~+~&+~F+~X+~x+~+~+~+~+~+~,~ ,~@,~R,~r,~,~,~,~,~,~$,V a/V/V/V/V/V 0V.F0V/0V80V90V:0V;0V< 1V=1V>?1V?Q1V@q1VA1V1t_3t3t3t& 4t1=4t2O4t3t4t34t54t?4t@4t@4tA 5  # $ % & '@ (g ) *ʥ + , -  .R /p 0 1 2 6L 7v 8 9 : ;Ч < = >C ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <   ====3=Q=e=w= =!="=#=$=%D='=(=)=+=,:=.=/=1=2=4 =5(=8f=9=:=;=?*=@O=A=A=Bb=F=G=H=I=J=K/=Lb=M=N=O=Q=R=S =T7=U\=V=Y=Z=\p=_=`=f=g=h=j=p=q=r=t=yS=z={=|=}=<== =#=W=|====;; S; l; ; ; ;3;`X,:X@SX]X]X_X`XbXdXdHXgXgXkXnXn7Xo\XoXrXsXv[XwsXxXy0XzPX|dX~XXXUXXXXgXXXXX'X-XFXjXXXXXXXXX0XPXXXXXXXX)XAXYXqXXXXX2XfXXXX XFXLXdXpXXXXBXvXXXX2XWXXXXXXHXZXkX X X XXXXXXX X%X=XUXmX ~X!X$X'X(X)<X*cX.X;X<X>X?X@ XB&XCKXE}XGXHXI-XLFXMwXNXO#XS/XT_XUXVXYX[X[ XaDXmfXn~XoXpXpXs5X|X}X~XXXXAXYX_XXXXhXsXyXXXXX4X:XaXXXCXNXTXXXXX X&XEXKXXXXXXXXGXXXX$X=XRXbXXXXXX9X?X EX pX X X XXX XXAX[XfX}XXX"X#X1"X1SX2YX3_X5X6X6X7X8FX9rX>XHXIXIXJ%XTFXUkXUXVXWXYXcXdXd5Xe;XfyXgXhXjXuXwXw=XyCXzNX|TX~ZX`XfXlXrXxX~XXXXXX(XGXfXXXXX1X=XVXvXXXXX XG XR X] Xp X X X X X XG X X X X X X X X, X> Xi X X X X6 XH Xg X X X X X" X: XR X] X X X X XXXXdXlXXXX X X EX oXXXX"eX"X#X$X/9X/XX0}X1X;X;X<<X=bXDXEXGXHXIiXJ|XMXTXUXVXW7XXiXcXeXhPXtXvXyX;XgXXXXX XX-X;XTXfXXXeXX2XXXX\XXXXXXX(XZXXXXXXBXtXXX XIXTXZX`XXXXjX.rX/X4X9~C#~3#~4#~5#~6#~7#~:#~;$~<.$~=?$~>O$~?`$~@x$~A$~B$~P$~QG%~Re%~S%~U%~V%~W%~X&~Y&~Z5&~[M&~\e&~]}&~^&~_&~a&~b&~c&~d '~e%'~f='~gU'~hm'~j'~s'~t'~u'~v'~w'~x (~x(~y,(~zX(~{(~|(~}(~(~(~)~2)~R)~d)~)~)~)~)~)~)~*~,*~L*~^*~~*~*~*~*~*~*~+~&+~F+~X+~x+~+~+~+~+~+~,~ ,~@,~R,~r,~,~,~,~,~,~$,V a/V/V/V/V/V 0V.F0V/0V80V90V:0V;0V< 1V=1V>?1V?Q1V@q1VA1V1t_3t3t3t& 4t1=4t2O4t3t4t34t54t?4t@4t@4tA 5,G;,$`;,-;,.;,0 <,1G<,2<,3<,5=,6?=,7}=,8=,:=,;7>,<u>,=>,?>,@/?,Am?,B?,D?,E'@,Fe@,G@,I@,JA,K]A,LA,NA,OB,PUB,QB,SB,TC,UMC,VC,XC,YD,ZED,[D,]D,^D,_=E,`{E,qE,~ F,XF,F,F,G,G,G,G,gH,H,!I,UI,I,I,J,PJ,J,(K,K,K, L,L,L,L, iM,-M,:?N,:sN,;N,H#O,H?O,IO,VP,csP,pP,}BQ,}^Q,~Q,&R,R,eS,~S,S,S,S,S,:T,T,T,2U,U,/V,V,V,.W,W,W,X,X,X,X,X,X,X,Y,Y,NY,ZY,tY,Y,jZ,pZ,Z,Z,Z,Z,Z,Z,$[,0[,J[,[,!"\,"(\,"A\,"H\,"|\,"\,"\,#\,#\,#\,$ ],%F],%[],&],5^,5^,6,_,D_,D_,E_,SG`,SX`,Tj`,b`,b`,c a,c@a,da,rC ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <   ====3=Q=e=w= =!="=#=$=%D='=(=)=+=,:=.=/=1=2=4 =5(=8f=9=:=;=?*=@O=A=A=Bb=F=G=H=I=J=K/=Lb=M=N=O=Q=R=S =T7=U\=V=Y=Z=\p=_=`=f=g=h=j=p=q=r=t=yS=z={=|=}=<== =#=W=|====;; S; l; ; ; ;3;`X,:X@SX]X]X_X`XbXdXdHXgXgXkXnXn7Xo\XoXrXsXv[XwsXxXy0XzPX|dX~XXXUXXXXgXXXXX'X-XFXjXXXXXXXXX0XPXXXXXXXX)XAXYXqXXXXX2XfXXXX XFXLXdXpXXXXBXvXXXX2XWXXXXXXHXZXkX X X XXXXXXX X%X=XUXmX ~X!X$X'X(X)<X*cX.X;X<X>X?X@ XB&XCKXE}XGXHXI-XLFXMwXNXO#XS/XT_XUXVXYX[X[ XaDXmfXn~XoXpXpXs5X|X}X~XXXXAXYX_XXXXhXsXyXXXXX4X:XaXXXCXNXTXXXXX X&XEXKXXXXXXXXGXXXX$X=XRXbXXXXXX9X?X EX pX X X XXX XXAX[XfX}XXX"X#X1"X1SX2YX3_X5X6X6X7X8FX9rX>XHXIXIXJ%XTFXUkXUXVXWXYXcXdXd5Xe;XfyXgXhXjXuXwXw=XyCXzNX|TX~ZX`XfXlXrXxX~XXXXXX(XGXfXXXXX1X=XVXvXXXXX XG XR X] Xp X X X X X XG X X X X X X X X, X> Xi X X X X6 XH Xg X X X X X" X: XR X] X X X X XXXXdXlXXXX X X EX oXXXX"eX"X#X$X/9X/XX0}X1X;X;X<<X=bXDXEXGXHXIiXJ|XMXTXUXVXW7XXiXcXeXhPXtXvXyX;XgXXXXX XX-X;XTXfXXXeXX2XXXX\XXXXXXX(XZXXXXXXBXtXXX XIXTXZX`XXXXjX.rX/X4X9~C#~3#~4#~5#~6#~7#~:#~;$~<.$~=?$~>O$~?`$~@x$~A$~B$~P$~QG%~Re%~S%~U%~V%~W%~X&~Y&~Z5&~[M&~\e&~]}&~^&~_&~a&~b&~c&~d '~e%'~f='~gU'~hm'~j'~s'~t'~u'~v'~w'~x (~x(~y,(~zX(~{(~|(~}(~(~(~)~2)~R)~d)~)~)~)~)~)~)~*~,*~L*~^*~~*~*~*~*~*~*~+~&+~F+~X+~x+~+~+~+~+~+~,~ ,~@,~R,~r,~,~,~,~,~,~$,V a/V/V/V/V/V 0V.F0V/0V80V90V:0V;0V< 1V=1V>?1V?Q1V@q1VA1V1t_3t3t3t& 4t1=4t2O4t3t4t34t54t?4t@4t@4tA 5,G;,$`;,-;,.;,0 <,1G<,2<,3<,5=,6?=,7}=,8=,:=,;7>,<u>,=>,?>,@/?,Am?,B?,D?,E'@,Fe@,G@,I@,JA,K]A,LA,NA,OB,PUB,QB,SB,TC,UMC,VC,XC,YD,ZED,[D,]D,^D,_=E,`{E,qE,~ F,XF,F,F,G,G,G,G,gH,H,!I,UI,I,I,J,PJ,J,(K,K,K, L,L,L,L, iM,-M,:?N,:sN,;N,H#O,H?O,IO,VP,csP,pP,}BQ,}^Q,~Q,&R,R,eS,~S,S,S,S,S,:T,T,T,2U,U,/V,V,V,.W,W,W,X,X,X,X,X,X,X,Y,Y,NY,ZY,tY,Y,jZ,pZ,Z,Z,Z,Z,Z,Z,$[,0[,J[,[,!"\,"(\,"A\,"H\,"|\,"\,"\,#\,#\,#\,$ ],%F],%[],&],5^,5^,6,_,D_,D_,E_,SG`,SX`,Tj`,b`,b`,c a,c@a,da,ru0Twu0Uu0Xu0Y#v0Zvv0[v0\w0];w0_w0mw0nw0pw0qx0rGx0s|x0tx0ux0x(y0x@y0yyy0yy0zy0zy0{z0{3z0|lz0|z0}z0}z0~{0~&{0_{0w{0{0{0{0|0P|0r|0|0|0|0A}0}0}0}0}0.~0h~0~0~00000 0<0N0$0%0&0'Ā0(ـ0)0)0.E0/K01r02060:0;0<0= 0>50?`0@z0A0B0G0G΂0H0I0K0LK0NP0Oc0P~0b0c0dƒ0fՃ0h0k0l0m0o0pE0ql0q0r0u0v0xE0g00ޅ0 0A0M0f0r00ˆ000B0u  # $ % & '@ (g ) *ʥ + , -  .R /p 0 1 2 6L 7v 8 9 : ;Ч < = >C ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <   ====3=Q=e=w= =!="=#=$=%D='=(=)=+=,:=.=/=1=2=4 =5(=8f=9=:=;=?*=@O=A=A=Bb=F=G=H=I=J=K/=Lb=M=N=O=Q=R=S =T7=U\=V=Y=Z=\p=_=`=f=g=h=j=p=q=r=t=yS=z={=|=}=<== =#=W=|====;; S; l; ; ; ;3;`X,:X@SX]X]X_X`XbXdXdHXgXgXkXnXn7Xo\XoXrXsXv[XwsXxXy0XzPX|dX~XXXUXXXXgXXXXX'X-XFXjXXXXXXXXX0XPXXXXXXXX)XAXYXqXXXXX2XfXXXX XFXLXdXpXXXXBXvXXXX2XWXXXXXXHXZXkX X X XXXXXXX X%X=XUXmX ~X!X$X'X(X)<X*cX.X;X<X>X?X@ XB&XCKXE}XGXHXI-XLFXMwXNXO#XS/XT_XUXVXYX[X[ XaDXmfXn~XoXpXpXs5X|X}X~XXXXAXYX_XXXXhXsXyXXXXX4X:XaXXXCXNXTXXXXX X&XEXKXXXXXXXXGXXXX$X=XRXbXXXXXX9X?X EX pX X X XXX XXAX[XfX}XXX"X#X1"X1SX2YX3_X5X6X6X7X8FX9rX>XHXIXIXJ%XTFXUkXUXVXWXYXcXdXd5Xe;XfyXgXhXjXuXwXw=XyCXzNX|TX~ZX`XfXlXrXxX~XXXXXX(XGXfXXXXX1X=XVXvXXXXX XG XR X] Xp X X X X X XG X X X X X X X X, X> Xi X X X X6 XH Xg X X X X X" X: XR X] X X X X XXXXdXlXXXX X X EX oXXXX"eX"X#X$X/9X/XX0}X1X;X;X<<X=bXDXEXGXHXIiXJ|XMXTXUXVXW7XXiXcXeXhPXtXvXyX;XgXXXXX XX-X;XTXfXXXeXX2XXXX\XXXXXXX(XZXXXXXXBXtXXX XIXTXZX`XXXXjX.rX/X4X9~C#~3#~4#~5#~6#~7#~:#~;$~<.$~=?$~>O$~?`$~@x$~A$~B$~P$~QG%~Re%~S%~U%~V%~W%~X&~Y&~Z5&~[M&~\e&~]}&~^&~_&~a&~b&~c&~d '~e%'~f='~gU'~hm'~j'~s'~t'~u'~v'~w'~x (~x(~y,(~zX(~{(~|(~}(~(~(~)~2)~R)~d)~)~)~)~)~)~)~*~,*~L*~^*~~*~*~*~*~*~*~+~&+~F+~X+~x+~+~+~+~+~+~,~ ,~@,~R,~r,~,~,~,~,~,~$,V a/V/V/V/V/V 0V.F0V/0V80V90V:0V;0V< 1V=1V>?1V?Q1V@q1VA1V1t_3t3t3t& 4t1=4t2O4t3t4t34t54t?4t@4t@4tA 5,G;,$`;,-;,.;,0 <,1G<,2<,3<,5=,6?=,7}=,8=,:=,;7>,<u>,=>,?>,@/?,Am?,B?,D?,E'@,Fe@,G@,I@,JA,K]A,LA,NA,OB,PUB,QB,SB,TC,UMC,VC,XC,YD,ZED,[D,]D,^D,_=E,`{E,qE,~ F,XF,F,F,G,G,G,G,gH,H,!I,UI,I,I,J,PJ,J,(K,K,K, L,L,L,L, iM,-M,:?N,:sN,;N,H#O,H?O,IO,VP,csP,pP,}BQ,}^Q,~Q,&R,R,eS,~S,S,S,S,S,:T,T,T,2U,U,/V,V,V,.W,W,W,X,X,X,X,X,X,X,Y,Y,NY,ZY,tY,Y,jZ,pZ,Z,Z,Z,Z,Z,Z,$[,0[,J[,[,!"\,"(\,"A\,"H\,"|\,"\,"\,#\,#\,#\,$ ],%F],%[],&],5^,5^,6,_,D_,D_,E_,SG`,SX`,Tj`,b`,b`,c a,c@a,da,ru0Twu0Uu0Xu0Y#v0Zvv0[v0\w0];w0_w0mw0nw0pw0qx0rGx0s|x0tx0ux0x(y0x@y0yyy0yy0zy0zy0{z0{3z0|lz0|z0}z0}z0~{0~&{0_{0w{0{0{0{0|0P|0r|0|0|0|0A}0}0}0}0}0.~0h~0~0~00000 0<0N0$0%0&0'Ā0(ـ0)0)0.E0/K01r02060:0;0<0= 0>50?`0@z0A0B0G0G΂0H0I0K0LK0NP0Oc0P~0b0c0dƒ0fՃ0h0k0l0m0o0pE0ql0q0r0u0v0xE0g00ޅ0 0A0M0f0r00ˆ000B0u  l-./ϊ012C3U45   # $ % & '@ (g ) *ʥ + , -  .R /p 0 1 2 6L 7v 8 9 : ;Ч < = >C ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <   ====3=Q=e=w= =!="=#=$=%D='=(=)=+=,:=.=/=1=2=4 =5(=8f=9=:=;=?*=@O=A=A=Bb=F=G=H=I=J=K/=Lb=M=N=O=Q=R=S =T7=U\=V=Y=Z=\p=_=`=f=g=h=j=p=q=r=t=yS=z={=|=}=<== =#=W=|====;; S; l; ; ; ;3;`X,:X@SX]X]X_X`XbXdXdHXgXgXkXnXn7Xo\XoXrXsXv[XwsXxXy0XzPX|dX~XXXUXXXXgXXXXX'X-XFXjXXXXXXXXX0XPXXXXXXXX)XAXYXqXXXXX2XfXXXX XFXLXdXpXXXXBXvXXXX2XWXXXXXXHXZXkX X X XXXXXXX X%X=XUXmX ~X!X$X'X(X)<X*cX.X;X<X>X?X@ XB&XCKXE}XGXHXI-XLFXMwXNXO#XS/XT_XUXVXYX[X[ XaDXmfXn~XoXpXpXs5X|X}X~XXXXAXYX_XXXXhXsXyXXXXX4X:XaXXXCXNXTXXXXX X&XEXKXXXXXXXXGXXXX$X=XRXbXXXXXX9X?X EX pX X X XXX XXAX[XfX}XXX"X#X1"X1SX2YX3_X5X6X6X7X8FX9rX>XHXIXIXJ%XTFXUkXUXVXWXYXcXdXd5Xe;XfyXgXhXjXuXwXw=XyCXzNX|TX~ZX`XfXlXrXxX~XXXXXX(XGXfXXXXX1X=XVXvXXXXX XG XR X] Xp X X X X X XG X X X X X X X X, X> Xi X X X X6 XH Xg X X X X X" X: XR X] X X X X XXXXdXlXXXX X X EX oXXXX"eX"X#X$X/9X/XX0}X1X;X;X<<X=bXDXEXGXHXIiXJ|XMXTXUXVXW7XXiXcXeXhPXtXvXyX;XgXXXXX XX-X;XTXfXXXeXX2XXXX\XXXXXXX(XZXXXXXXBXtXXX XIXTXZX`XXXXjX.rX/X4X9~C#~3#~4#~5#~6#~7#~:#~;$~<.$~=?$~>O$~?`$~@x$~A$~B$~P$~QG%~Re%~S%~U%~V%~W%~X&~Y&~Z5&~[M&~\e&~]}&~^&~_&~a&~b&~c&~d '~e%'~f='~gU'~hm'~j'~s'~t'~u'~v'~w'~x (~x(~y,(~zX(~{(~|(~}(~(~(~)~2)~R)~d)~)~)~)~)~)~)~*~,*~L*~^*~~*~*~*~*~*~*~+~&+~F+~X+~x+~+~+~+~+~+~,~ ,~@,~R,~r,~,~,~,~,~,~$,V a/V/V/V/V/V 0V.F0V/0V80V90V:0V;0V< 1V=1V>?1V?Q1V@q1VA1V1t_3t3t3t& 4t1=4t2O4t3t4t34t54t?4t@4t@4tA 5,G;,$`;,-;,.;,0 <,1G<,2<,3<,5=,6?=,7}=,8=,:=,;7>,<u>,=>,?>,@/?,Am?,B?,D?,E'@,Fe@,G@,I@,JA,K]A,LA,NA,OB,PUB,QB,SB,TC,UMC,VC,XC,YD,ZED,[D,]D,^D,_=E,`{E,qE,~ F,XF,F,F,G,G,G,G,gH,H,!I,UI,I,I,J,PJ,J,(K,K,K, L,L,L,L, iM,-M,:?N,:sN,;N,H#O,H?O,IO,VP,csP,pP,}BQ,}^Q,~Q,&R,R,eS,~S,S,S,S,S,:T,T,T,2U,U,/V,V,V,.W,W,W,X,X,X,X,X,X,X,Y,Y,NY,ZY,tY,Y,jZ,pZ,Z,Z,Z,Z,Z,Z,$[,0[,J[,[,!"\,"(\,"A\,"H\,"|\,"\,"\,#\,#\,#\,$ ],%F],%[],&],5^,5^,6,_,D_,D_,E_,SG`,SX`,Tj`,b`,b`,c a,c@a,da,ru0Twu0Uu0Xu0Y#v0Zvv0[v0\w0];w0_w0mw0nw0pw0qx0rGx0s|x0tx0ux0x(y0x@y0yyy0yy0zy0zy0{z0{3z0|lz0|z0}z0}z0~{0~&{0_{0w{0{0{0{0|0P|0r|0|0|0|0A}0}0}0}0}0.~0h~0~0~00000 0<0N0$0%0&0'Ā0(ـ0)0)0.E0/K01r02060:0;0<0= 0>50?`0@z0A0B0G0G΂0H0I0K0LK0NP0Oc0P~0b0c0dƒ0fՃ0h0k0l0m0o0pE0ql0q0r0u0v0xE0g00ޅ0 0A0M0f0r00ˆ000B0u  l-./ϊ012C3U45 V VʍV܍VV V2V cV!uV"V#V   # $ % & '@ (g ) *ʥ + , -  .R /p 0 1 2 6L 7v 8 9 : ;Ч < = >C ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <   ====3=Q=e=w= =!="=#=$=%D='=(=)=+=,:=.=/=1=2=4 =5(=8f=9=:=;=?*=@O=A=A=Bb=F=G=H=I=J=K/=Lb=M=N=O=Q=R=S =T7=U\=V=Y=Z=\p=_=`=f=g=h=j=p=q=r=t=yS=z={=|=}=<== =#=W=|====;; S; l; ; ; ;3;`X,:X@SX]X]X_X`XbXdXdHXgXgXkXnXn7Xo\XoXrXsXv[XwsXxXy0XzPX|dX~XXXUXXXXgXXXXX'X-XFXjXXXXXXXXX0XPXXXXXXXX)XAXYXqXXXXX2XfXXXX XFXLXdXpXXXXBXvXXXX2XWXXXXXXHXZXkX X X XXXXXXX X%X=XUXmX ~X!X$X'X(X)<X*cX.X;X<X>X?X@ XB&XCKXE}XGXHXI-XLFXMwXNXO#XS/XT_XUXVXYX[X[ XaDXmfXn~XoXpXpXs5X|X}X~XXXXAXYX_XXXXhXsXyXXXXX4X:XaXXXCXNXTXXXXX X&XEXKXXXXXXXXGXXXX$X=XRXbXXXXXX9X?X EX pX X X XXX XXAX[XfX}XXX"X#X1"X1SX2YX3_X5X6X6X7X8FX9rX>XHXIXIXJ%XTFXUkXUXVXWXYXcXdXd5Xe;XfyXgXhXjXuXwXw=XyCXzNX|TX~ZX`XfXlXrXxX~XXXXXX(XGXfXXXXX1X=XVXvXXXXX XG XR X] Xp X X X X X XG X X X X X X X X, X> Xi X X X X6 XH Xg X X X X X" X: XR X] X X X X XXXXdXlXXXX X X EX oXXXX"eX"X#X$X/9X/XX0}X1X;X;X<<X=bXDXEXGXHXIiXJ|XMXTXUXVXW7XXiXcXeXhPXtXvXyX;XgXXXXX XX-X;XTXfXXXeXX2XXXX\XXXXXXX(XZXXXXXXBXtXXX XIXTXZX`XXXXjX.rX/X4X9~C#~3#~4#~5#~6#~7#~:#~;$~<.$~=?$~>O$~?`$~@x$~A$~B$~P$~QG%~Re%~S%~U%~V%~W%~X&~Y&~Z5&~[M&~\e&~]}&~^&~_&~a&~b&~c&~d '~e%'~f='~gU'~hm'~j'~s'~t'~u'~v'~w'~x (~x(~y,(~zX(~{(~|(~}(~(~(~)~2)~R)~d)~)~)~)~)~)~)~*~,*~L*~^*~~*~*~*~*~*~*~+~&+~F+~X+~x+~+~+~+~+~+~,~ ,~@,~R,~r,~,~,~,~,~,~$,V a/V/V/V/V/V 0V.F0V/0V80V90V:0V;0V< 1V=1V>?1V?Q1V@q1VA1V1t_3t3t3t& 4t1=4t2O4t3t4t34t54t?4t@4t@4tA 5,G;,$`;,-;,.;,0 <,1G<,2<,3<,5=,6?=,7}=,8=,:=,;7>,<u>,=>,?>,@/?,Am?,B?,D?,E'@,Fe@,G@,I@,JA,K]A,LA,NA,OB,PUB,QB,SB,TC,UMC,VC,XC,YD,ZED,[D,]D,^D,_=E,`{E,qE,~ F,XF,F,F,G,G,G,G,gH,H,!I,UI,I,I,J,PJ,J,(K,K,K, L,L,L,L, iM,-M,:?N,:sN,;N,H#O,H?O,IO,VP,csP,pP,}BQ,}^Q,~Q,&R,R,eS,~S,S,S,S,S,:T,T,T,2U,U,/V,V,V,.W,W,W,X,X,X,X,X,X,X,Y,Y,NY,ZY,tY,Y,jZ,pZ,Z,Z,Z,Z,Z,Z,$[,0[,J[,[,!"\,"(\,"A\,"H\,"|\,"\,"\,#\,#\,#\,$ ],%F],%[],&],5^,5^,6,_,D_,D_,E_,SG`,SX`,Tj`,b`,b`,c a,c@a,da,ru0Twu0Uu0Xu0Y#v0Zvv0[v0\w0];w0_w0mw0nw0pw0qx0rGx0s|x0tx0ux0x(y0x@y0yyy0yy0zy0zy0{z0{3z0|lz0|z0}z0}z0~{0~&{0_{0w{0{0{0{0|0P|0r|0|0|0|0A}0}0}0}0}0.~0h~0~0~00000 0<0N0$0%0&0'Ā0(ـ0)0)0.E0/K01r02060:0;0<0= 0>50?`0@z0A0B0G0G΂0H0I0K0LK0NP0Oc0P~0b0c0dƒ0fՃ0h0k0l0m0o0pE0ql0q0r0u0v0xE0g00ޅ0 0A0M0f0r00ˆ000B0u  l-./ϊ012C3U45 V VʍV܍VV V2V cV!uV"V#V / ///!/"!/#3/$d/%v  # $ % & '@ (g ) *ʥ + , -  .R /p 0 1 2 6L 7v 8 9 : ;Ч < = >C ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <   ====3=Q=e=w= =!="=#=$=%D='=(=)=+=,:=.=/=1=2=4 =5(=8f=9=:=;=?*=@O=A=A=Bb=F=G=H=I=J=K/=Lb=M=N=O=Q=R=S =T7=U\=V=Y=Z=\p=_=`=f=g=h=j=p=q=r=t=yS=z={=|=}=<== =#=W=|====;; S; l; ; ; ;3;`X,:X@SX]X]X_X`XbXdXdHXgXgXkXnXn7Xo\XoXrXsXv[XwsXxXy0XzPX|dX~XXXUXXXXgXXXXX'X-XFXjXXXXXXXXX0XPXXXXXXXX)XAXYXqXXXXX2XfXXXX XFXLXdXpXXXXBXvXXXX2XWXXXXXXHXZXkX X X XXXXXXX X%X=XUXmX ~X!X$X'X(X)<X*cX.X;X<X>X?X@ XB&XCKXE}XGXHXI-XLFXMwXNXO#XS/XT_XUXVXYX[X[ XaDXmfXn~XoXpXpXs5X|X}X~XXXXAXYX_XXXXhXsXyXXXXX4X:XaXXXCXNXTXXXXX X&XEXKXXXXXXXXGXXXX$X=XRXbXXXXXX9X?X EX pX X X XXX XXAX[XfX}XXX"X#X1"X1SX2YX3_X5X6X6X7X8FX9rX>XHXIXIXJ%XTFXUkXUXVXWXYXcXdXd5Xe;XfyXgXhXjXuXwXw=XyCXzNX|TX~ZX`XfXlXrXxX~XXXXXX(XGXfXXXXX1X=XVXvXXXXX XG XR X] Xp X X X X X XG X X X X X X X X, X> Xi X X X X6 XH Xg X X X X X" X: XR X] X X X X XXXXdXlXXXX X X EX oXXXX"eX"X#X$X/9X/XX0}X1X;X;X<<X=bXDXEXGXHXIiXJ|XMXTXUXVXW7XXiXcXeXhPXtXvXyX;XgXXXXX XX-X;XTXfXXXeXX2XXXX\XXXXXXX(XZXXXXXXBXtXXX XIXTXZX`XXXXjX.rX/X4X9~C#~3#~4#~5#~6#~7#~:#~;$~<.$~=?$~>O$~?`$~@x$~A$~B$~P$~QG%~Re%~S%~U%~V%~W%~X&~Y&~Z5&~[M&~\e&~]}&~^&~_&~a&~b&~c&~d '~e%'~f='~gU'~hm'~j'~s'~t'~u'~v'~w'~x (~x(~y,(~zX(~{(~|(~}(~(~(~)~2)~R)~d)~)~)~)~)~)~)~*~,*~L*~^*~~*~*~*~*~*~*~+~&+~F+~X+~x+~+~+~+~+~+~,~ ,~@,~R,~r,~,~,~,~,~,~$,V a/V/V/V/V/V 0V.F0V/0V80V90V:0V;0V< 1V=1V>?1V?Q1V@q1VA1V1t_3t3t3t& 4t1=4t2O4t3t4t34t54t?4t@4t@4tA 5,G;,$`;,-;,.;,0 <,1G<,2<,3<,5=,6?=,7}=,8=,:=,;7>,<u>,=>,?>,@/?,Am?,B?,D?,E'@,Fe@,G@,I@,JA,K]A,LA,NA,OB,PUB,QB,SB,TC,UMC,VC,XC,YD,ZED,[D,]D,^D,_=E,`{E,qE,~ F,XF,F,F,G,G,G,G,gH,H,!I,UI,I,I,J,PJ,J,(K,K,K, L,L,L,L, iM,-M,:?N,:sN,;N,H#O,H?O,IO,VP,csP,pP,}BQ,}^Q,~Q,&R,R,eS,~S,S,S,S,S,:T,T,T,2U,U,/V,V,V,.W,W,W,X,X,X,X,X,X,X,Y,Y,NY,ZY,tY,Y,jZ,pZ,Z,Z,Z,Z,Z,Z,$[,0[,J[,[,!"\,"(\,"A\,"H\,"|\,"\,"\,#\,#\,#\,$ ],%F],%[],&],5^,5^,6,_,D_,D_,E_,SG`,SX`,Tj`,b`,b`,c a,c@a,da,ru0Twu0Uu0Xu0Y#v0Zvv0[v0\w0];w0_w0mw0nw0pw0qx0rGx0s|x0tx0ux0x(y0x@y0yyy0yy0zy0zy0{z0{3z0|lz0|z0}z0}z0~{0~&{0_{0w{0{0{0{0|0P|0r|0|0|0|0A}0}0}0}0}0.~0h~0~0~00000 0<0N0$0%0&0'Ā0(ـ0)0)0.E0/K01r02060:0;0<0= 0>50?`0@z0A0B0G0G΂0H0I0K0LK0NP0Oc0P~0b0c0dƒ0fՃ0h0k0l0m0o0pE0ql0q0r0u0v0xE0g00ޅ0 0A0M0f0r00ˆ000B0u  l-./ϊ012C3U45 V VʍV܍VV V2V cV!uV"V#V / ///!/"!/#3/$d/%v````W``ߔ`` $`!K`"k`#`$`%˕`&`*?`+Q`,o`-u`-`.і`/`0`15`5a`6`:`;3`<[`=t`?`Dؘ`H`LU`N`O`Pƙ`Q`R`U`Vn`  # $ % & '@ (g ) *ʥ + , -  .R /p 0 1 2 6L 7v 8 9 : ;Ч < = >C ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <   ====3=Q=e=w= =!="=#=$=%D='=(=)=+=,:=.=/=1=2=4 =5(=8f=9=:=;=?*=@O=A=A=Bb=F=G=H=I=J=K/=Lb=M=N=O=Q=R=S =T7=U\=V=Y=Z=\p=_=`=f=g=h=j=p=q=r=t=yS=z={=|=}=<== =#=W=|====;; S; l; ; ; ;3;`X,:X@SX]X]X_X`XbXdXdHXgXgXkXnXn7Xo\XoXrXsXv[XwsXxXy0XzPX|dX~XXXUXXXXgXXXXX'X-XFXjXXXXXXXXX0XPXXXXXXXX)XAXYXqXXXXX2XfXXXX XFXLXdXpXXXXBXvXXXX2XWXXXXXXHXZXkX X X XXXXXXX X%X=XUXmX ~X!X$X'X(X)<X*cX.X;X<X>X?X@ XB&XCKXE}XGXHXI-XLFXMwXNXO#XS/XT_XUXVXYX[X[ XaDXmfXn~XoXpXpXs5X|X}X~XXXXAXYX_XXXXhXsXyXXXXX4X:XaXXXCXNXTXXXXX X&XEXKXXXXXXXXGXXXX$X=XRXbXXXXXX9X?X EX pX X X XXX XXAX[XfX}XXX"X#X1"X1SX2YX3_X5X6X6X7X8FX9rX>XHXIXIXJ%XTFXUkXUXVXWXYXcXdXd5Xe;XfyXgXhXjXuXwXw=XyCXzNX|TX~ZX`XfXlXrXxX~XXXXXX(XGXfXXXXX1X=XVXvXXXXX XG XR X] Xp X X X X X XG X X X X X X X X, X> Xi X X X X6 XH Xg X X X X X" X: XR X] X X X X XXXXdXlXXXX X X EX oXXXX"eX"X#X$X/9X/XX0}X1X;X;X<<X=bXDXEXGXHXIiXJ|XMXTXUXVXW7XXiXcXeXhPXtXvXyX;XgXXXXX XX-X;XTXfXXXeXX2XXXX\XXXXXXX(XZXXXXXXBXtXXX XIXTXZX`XXXXjX.rX/X4X9~C#~3#~4#~5#~6#~7#~:#~;$~<.$~=?$~>O$~?`$~@x$~A$~B$~P$~QG%~Re%~S%~U%~V%~W%~X&~Y&~Z5&~[M&~\e&~]}&~^&~_&~a&~b&~c&~d '~e%'~f='~gU'~hm'~j'~s'~t'~u'~v'~w'~x (~x(~y,(~zX(~{(~|(~}(~(~(~)~2)~R)~d)~)~)~)~)~)~)~*~,*~L*~^*~~*~*~*~*~*~*~+~&+~F+~X+~x+~+~+~+~+~+~,~ ,~@,~R,~r,~,~,~,~,~,~$,V a/V/V/V/V/V 0V.F0V/0V80V90V:0V;0V< 1V=1V>?1V?Q1V@q1VA1V1t_3t3t3t& 4t1=4t2O4t3t4t34t54t?4t@4t@4tA 5,G;,$`;,-;,.;,0 <,1G<,2<,3<,5=,6?=,7}=,8=,:=,;7>,<u>,=>,?>,@/?,Am?,B?,D?,E'@,Fe@,G@,I@,JA,K]A,LA,NA,OB,PUB,QB,SB,TC,UMC,VC,XC,YD,ZED,[D,]D,^D,_=E,`{E,qE,~ F,XF,F,F,G,G,G,G,gH,H,!I,UI,I,I,J,PJ,J,(K,K,K, L,L,L,L, iM,-M,:?N,:sN,;N,H#O,H?O,IO,VP,csP,pP,}BQ,}^Q,~Q,&R,R,eS,~S,S,S,S,S,:T,T,T,2U,U,/V,V,V,.W,W,W,X,X,X,X,X,X,X,Y,Y,NY,ZY,tY,Y,jZ,pZ,Z,Z,Z,Z,Z,Z,$[,0[,J[,[,!"\,"(\,"A\,"H\,"|\,"\,"\,#\,#\,#\,$ ],%F],%[],&],5^,5^,6,_,D_,D_,E_,SG`,SX`,Tj`,b`,b`,c a,c@a,da,ru0Twu0Uu0Xu0Y#v0Zvv0[v0\w0];w0_w0mw0nw0pw0qx0rGx0s|x0tx0ux0x(y0x@y0yyy0yy0zy0zy0{z0{3z0|lz0|z0}z0}z0~{0~&{0_{0w{0{0{0{0|0P|0r|0|0|0|0A}0}0}0}0}0.~0h~0~0~00000 0<0N0$0%0&0'Ā0(ـ0)0)0.E0/K01r02060:0;0<0= 0>50?`0@z0A0B0G0G΂0H0I0K0LK0NP0Oc0P~0b0c0dƒ0fՃ0h0k0l0m0o0pE0ql0q0r0u0v0xE0g00ޅ0 0A0M0f0r00ˆ000B0u  l-./ϊ012C3U45 V VʍV܍VV V2V cV!uV"V#V / ///!/"!/#3/$d/%v````W``ߔ`` $`!K`"k`#`$`%˕`&`*?`+Q`,o`-u`-`.і`/`0`15`5a`6`:`;3`<[`=t`?`Dؘ`H`LU`N`O`Pƙ`Q`R`U`Vn`R4R(bRRʜRRR R!.R#@R/^R+  # $ % & '@ (g ) *ʥ + , -  .R /p 0 1 2 6L 7v 8 9 : ;Ч < = >C ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <   ====3=Q=e=w= =!="=#=$=%D='=(=)=+=,:=.=/=1=2=4 =5(=8f=9=:=;=?*=@O=A=A=Bb=F=G=H=I=J=K/=Lb=M=N=O=Q=R=S =T7=U\=V=Y=Z=\p=_=`=f=g=h=j=p=q=r=t=yS=z={=|=}=<== =#=W=|====;; S; l; ; ; ;3;`X,:X@SX]X]X_X`XbXdXdHXgXgXkXnXn7Xo\XoXrXsXv[XwsXxXy0XzPX|dX~XXXUXXXXgXXXXX'X-XFXjXXXXXXXXX0XPXXXXXXXX)XAXYXqXXXXX2XfXXXX XFXLXdXpXXXXBXvXXXX2XWXXXXXXHXZXkX X X XXXXXXX X%X=XUXmX ~X!X$X'X(X)<X*cX.X;X<X>X?X@ XB&XCKXE}XGXHXI-XLFXMwXNXO#XS/XT_XUXVXYX[X[ XaDXmfXn~XoXpXpXs5X|X}X~XXXXAXYX_XXXXhXsXyXXXXX4X:XaXXXCXNXTXXXXX X&XEXKXXXXXXXXGXXXX$X=XRXbXXXXXX9X?X EX pX X X XXX XXAX[XfX}XXX"X#X1"X1SX2YX3_X5X6X6X7X8FX9rX>XHXIXIXJ%XTFXUkXUXVXWXYXcXdXd5Xe;XfyXgXhXjXuXwXw=XyCXzNX|TX~ZX`XfXlXrXxX~XXXXXX(XGXfXXXXX1X=XVXvXXXXX XG XR X] Xp X X X X X XG X X X X X X X X, X> Xi X X X X6 XH Xg X X X X X" X: XR X] X X X X XXXXdXlXXXX X X EX oXXXX"eX"X#X$X/9X/XX0}X1X;X;X<<X=bXDXEXGXHXIiXJ|XMXTXUXVXW7XXiXcXeXhPXtXvXyX;XgXXXXX XX-X;XTXfXXXeXX2XXXX\XXXXXXX(XZXXXXXXBXtXXX XIXTXZX`XXXXjX.rX/X4X9~C#~3#~4#~5#~6#~7#~:#~;$~<.$~=?$~>O$~?`$~@x$~A$~B$~P$~QG%~Re%~S%~U%~V%~W%~X&~Y&~Z5&~[M&~\e&~]}&~^&~_&~a&~b&~c&~d '~e%'~f='~gU'~hm'~j'~s'~t'~u'~v'~w'~x (~x(~y,(~zX(~{(~|(~}(~(~(~)~2)~R)~d)~)~)~)~)~)~)~*~,*~L*~^*~~*~*~*~*~*~*~+~&+~F+~X+~x+~+~+~+~+~+~,~ ,~@,~R,~r,~,~,~,~,~,~$,V a/V/V/V/V/V 0V.F0V/0V80V90V:0V;0V< 1V=1V>?1V?Q1V@q1VA1V1t_3t3t3t& 4t1=4t2O4t3t4t34t54t?4t@4t@4tA 5,G;,$`;,-;,.;,0 <,1G<,2<,3<,5=,6?=,7}=,8=,:=,;7>,<u>,=>,?>,@/?,Am?,B?,D?,E'@,Fe@,G@,I@,JA,K]A,LA,NA,OB,PUB,QB,SB,TC,UMC,VC,XC,YD,ZED,[D,]D,^D,_=E,`{E,qE,~ F,XF,F,F,G,G,G,G,gH,H,!I,UI,I,I,J,PJ,J,(K,K,K, L,L,L,L, iM,-M,:?N,:sN,;N,H#O,H?O,IO,VP,csP,pP,}BQ,}^Q,~Q,&R,R,eS,~S,S,S,S,S,:T,T,T,2U,U,/V,V,V,.W,W,W,X,X,X,X,X,X,X,Y,Y,NY,ZY,tY,Y,jZ,pZ,Z,Z,Z,Z,Z,Z,$[,0[,J[,[,!"\,"(\,"A\,"H\,"|\,"\,"\,#\,#\,#\,$ ],%F],%[],&],5^,5^,6,_,D_,D_,E_,SG`,SX`,Tj`,b`,b`,c a,c@a,da,ru0Twu0Uu0Xu0Y#v0Zvv0[v0\w0];w0_w0mw0nw0pw0qx0rGx0s|x0tx0ux0x(y0x@y0yyy0yy0zy0zy0{z0{3z0|lz0|z0}z0}z0~{0~&{0_{0w{0{0{0{0|0P|0r|0|0|0|0A}0}0}0}0}0.~0h~0~0~00000 0<0N0$0%0&0'Ā0(ـ0)0)0.E0/K01r02060:0;0<0= 0>50?`0@z0A0B0G0G΂0H0I0K0LK0NP0Oc0P~0b0c0dƒ0fՃ0h0k0l0m0o0pE0ql0q0r0u0v0xE0g00ޅ0 0A0M0f0r00ˆ000B0u  l-./ϊ012C3U45 V VʍV܍VV V2V cV!uV"V#V / ///!/"!/#3/$d/%v````W``ߔ`` $`!K`"k`#`$`%˕`&`*?`+Q`,o`-u`-`.і`/`0`15`5a`6`:`;3`<[`=t`?`Dؘ`H`LU`N`O`Pƙ`Q`R`U`Vn`R4R(bRRʜRRR R!.R#@R/^R+ggVghgzggg g!ˠg"g.g0Bg2xg3g4̡g5g;Eg<]g=pg?gAgCgDgGȢgKgNgP gR?gVog\ghgigk go2gytgzg|g~gg gcgugg  # $ % & '@ (g ) *ʥ + , -  .R /p 0 1 2 6L 7v 8 9 : ;Ч < = >C ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <   ====3=Q=e=w= =!="=#=$=%D='=(=)=+=,:=.=/=1=2=4 =5(=8f=9=:=;=?*=@O=A=A=Bb=F=G=H=I=J=K/=Lb=M=N=O=Q=R=S =T7=U\=V=Y=Z=\p=_=`=f=g=h=j=p=q=r=t=yS=z={=|=}=<== =#=W=|====;; S; l; ; ; ;3;`X,:X@SX]X]X_X`XbXdXdHXgXgXkXnXn7Xo\XoXrXsXv[XwsXxXy0XzPX|dX~XXXUXXXXgXXXXX'X-XFXjXXXXXXXXX0XPXXXXXXXX)XAXYXqXXXXX2XfXXXX XFXLXdXpXXXXBXvXXXX2XWXXXXXXHXZXkX X X XXXXXXX X%X=XUXmX ~X!X$X'X(X)<X*cX.X;X<X>X?X@ XB&XCKXE}XGXHXI-XLFXMwXNXO#XS/XT_XUXVXYX[X[ XaDXmfXn~XoXpXpXs5X|X}X~XXXXAXYX_XXXXhXsXyXXXXX4X:XaXXXCXNXTXXXXX X&XEXKXXXXXXXXGXXXX$X=XRXbXXXXXX9X?X EX pX X X XXX XXAX[XfX}XXX"X#X1"X1SX2YX3_X5X6X6X7X8FX9rX>XHXIXIXJ%XTFXUkXUXVXWXYXcXdXd5Xe;XfyXgXhXjXuXwXw=XyCXzNX|TX~ZX`XfXlXrXxX~XXXXXX(XGXfXXXXX1X=XVXvXXXXX XG XR X] Xp X X X X X XG X X X X X X X X, X> Xi X X X X6 XH Xg X X X X X" X: XR X] X X X X XXXXdXlXXXX X X EX oXXXX"eX"X#X$X/9X/XX0}X1X;X;X<<X=bXDXEXGXHXIiXJ|XMXTXUXVXW7XXiXcXeXhPXtXvXyX;XgXXXXX XX-X;XTXfXXXeXX2XXXX\XXXXXXX(XZXXXXXXBXtXXX XIXTXZX`XXXXjX.rX/X4X9~C#~3#~4#~5#~6#~7#~:#~;$~<.$~=?$~>O$~?`$~@x$~A$~B$~P$~QG%~Re%~S%~U%~V%~W%~X&~Y&~Z5&~[M&~\e&~]}&~^&~_&~a&~b&~c&~d '~e%'~f='~gU'~hm'~j'~s'~t'~u'~v'~w'~x (~x(~y,(~zX(~{(~|(~}(~(~(~)~2)~R)~d)~)~)~)~)~)~)~*~,*~L*~^*~~*~*~*~*~*~*~+~&+~F+~X+~x+~+~+~+~+~+~,~ ,~@,~R,~r,~,~,~,~,~,~$,V a/V/V/V/V/V 0V.F0V/0V80V90V:0V;0V< 1V=1V>?1V?Q1V@q1VA1V1t_3t3t3t& 4t1=4t2O4t3t4t34t54t?4t@4t@4tA 5,G;,$`;,-;,.;,0 <,1G<,2<,3<,5=,6?=,7}=,8=,:=,;7>,<u>,=>,?>,@/?,Am?,B?,D?,E'@,Fe@,G@,I@,JA,K]A,LA,NA,OB,PUB,QB,SB,TC,UMC,VC,XC,YD,ZED,[D,]D,^D,_=E,`{E,qE,~ F,XF,F,F,G,G,G,G,gH,H,!I,UI,I,I,J,PJ,J,(K,K,K, L,L,L,L, iM,-M,:?N,:sN,;N,H#O,H?O,IO,VP,csP,pP,}BQ,}^Q,~Q,&R,R,eS,~S,S,S,S,S,:T,T,T,2U,U,/V,V,V,.W,W,W,X,X,X,X,X,X,X,Y,Y,NY,ZY,tY,Y,jZ,pZ,Z,Z,Z,Z,Z,Z,$[,0[,J[,[,!"\,"(\,"A\,"H\,"|\,"\,"\,#\,#\,#\,$ ],%F],%[],&],5^,5^,6,_,D_,D_,E_,SG`,SX`,Tj`,b`,b`,c a,c@a,da,ru0Twu0Uu0Xu0Y#v0Zvv0[v0\w0];w0_w0mw0nw0pw0qx0rGx0s|x0tx0ux0x(y0x@y0yyy0yy0zy0zy0{z0{3z0|lz0|z0}z0}z0~{0~&{0_{0w{0{0{0{0|0P|0r|0|0|0|0A}0}0}0}0}0.~0h~0~0~00000 0<0N0$0%0&0'Ā0(ـ0)0)0.E0/K01r02060:0;0<0= 0>50?`0@z0A0B0G0G΂0H0I0K0LK0NP0Oc0P~0b0c0dƒ0fՃ0h0k0l0m0o0pE0ql0q0r0u0v0xE0g00ޅ0 0A0M0f0r00ˆ000B0u  l-./ϊ012C3U45 V VʍV܍VV V2V cV!uV"V#V / ///!/"!/#3/$d/%v````W``ߔ`` $`!K`"k`#`$`%˕`&`*?`+Q`,o`-u`-`.і`/`0`15`5a`6`:`;3`<[`=t`?`Dؘ`H`LU`N`O`Pƙ`Q`R`U`Vn`R4R(bRRʜRRR R!.R#@R/^R+ggVghgzggg g!ˠg"g.g0Bg2xg3g4̡g5g;Eg<]g=pg?gAgCgDgGȢgKgNgP gR?gVog\ghgigk go2gytgzg|g~gg gcguggYYѧYYY9Y!KY"Y&ިY)Y-eY.Y/Y1ݩY2 Y7<Y9WY=Y   # $ % & '@ (g ) *ʥ + , -  .R /p 0 1 2 6L 7v 8 9 : ;Ч < = >C ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <   ====3=Q=e=w= =!="=#=$=%D='=(=)=+=,:=.=/=1=2=4 =5(=8f=9=:=;=?*=@O=A=A=Bb=F=G=H=I=J=K/=Lb=M=N=O=Q=R=S =T7=U\=V=Y=Z=\p=_=`=f=g=h=j=p=q=r=t=yS=z={=|=}=<== =#=W=|====;; S; l; ; ; ;3;`X,:X@SX]X]X_X`XbXdXdHXgXgXkXnXn7Xo\XoXrXsXv[XwsXxXy0XzPX|dX~XXXUXXXXgXXXXX'X-XFXjXXXXXXXXX0XPXXXXXXXX)XAXYXqXXXXX2XfXXXX XFXLXdXpXXXXBXvXXXX2XWXXXXXXHXZXkX X X XXXXXXX X%X=XUXmX ~X!X$X'X(X)<X*cX.X;X<X>X?X@ XB&XCKXE}XGXHXI-XLFXMwXNXO#XS/XT_XUXVXYX[X[ XaDXmfXn~XoXpXpXs5X|X}X~XXXXAXYX_XXXXhXsXyXXXXX4X:XaXXXCXNXTXXXXX X&XEXKXXXXXXXXGXXXX$X=XRXbXXXXXX9X?X EX pX X X XXX XXAX[XfX}XXX"X#X1"X1SX2YX3_X5X6X6X7X8FX9rX>XHXIXIXJ%XTFXUkXUXVXWXYXcXdXd5Xe;XfyXgXhXjXuXwXw=XyCXzNX|TX~ZX`XfXlXrXxX~XXXXXX(XGXfXXXXX1X=XVXvXXXXX XG XR X] Xp X X X X X XG X X X X X X X X, X> Xi X X X X6 XH Xg X X X X X" X: XR X] X X X X XXXXdXlXXXX X X EX oXXXX"eX"X#X$X/9X/XX0}X1X;X;X<<X=bXDXEXGXHXIiXJ|XMXTXUXVXW7XXiXcXeXhPXtXvXyX;XgXXXXX XX-X;XTXfXXXeXX2XXXX\XXXXXXX(XZXXXXXXBXtXXX XIXTXZX`XXXXjX.rX/X4X9~C#~3#~4#~5#~6#~7#~:#~;$~<.$~=?$~>O$~?`$~@x$~A$~B$~P$~QG%~Re%~S%~U%~V%~W%~X&~Y&~Z5&~[M&~\e&~]}&~^&~_&~a&~b&~c&~d '~e%'~f='~gU'~hm'~j'~s'~t'~u'~v'~w'~x (~x(~y,(~zX(~{(~|(~}(~(~(~)~2)~R)~d)~)~)~)~)~)~)~*~,*~L*~^*~~*~*~*~*~*~*~+~&+~F+~X+~x+~+~+~+~+~+~,~ ,~@,~R,~r,~,~,~,~,~,~$,V a/V/V/V/V/V 0V.F0V/0V80V90V:0V;0V< 1V=1V>?1V?Q1V@q1VA1V1t_3t3t3t& 4t1=4t2O4t3t4t34t54t?4t@4t@4tA 5,G;,$`;,-;,.;,0 <,1G<,2<,3<,5=,6?=,7}=,8=,:=,;7>,<u>,=>,?>,@/?,Am?,B?,D?,E'@,Fe@,G@,I@,JA,K]A,LA,NA,OB,PUB,QB,SB,TC,UMC,VC,XC,YD,ZED,[D,]D,^D,_=E,`{E,qE,~ F,XF,F,F,G,G,G,G,gH,H,!I,UI,I,I,J,PJ,J,(K,K,K, L,L,L,L, iM,-M,:?N,:sN,;N,H#O,H?O,IO,VP,csP,pP,}BQ,}^Q,~Q,&R,R,eS,~S,S,S,S,S,:T,T,T,2U,U,/V,V,V,.W,W,W,X,X,X,X,X,X,X,Y,Y,NY,ZY,tY,Y,jZ,pZ,Z,Z,Z,Z,Z,Z,$[,0[,J[,[,!"\,"(\,"A\,"H\,"|\,"\,"\,#\,#\,#\,$ ],%F],%[],&],5^,5^,6,_,D_,D_,E_,SG`,SX`,Tj`,b`,b`,c a,c@a,da,ru0Twu0Uu0Xu0Y#v0Zvv0[v0\w0];w0_w0mw0nw0pw0qx0rGx0s|x0tx0ux0x(y0x@y0yyy0yy0zy0zy0{z0{3z0|lz0|z0}z0}z0~{0~&{0_{0w{0{0{0{0|0P|0r|0|0|0|0A}0}0}0}0}0.~0h~0~0~00000 0<0N0$0%0&0'Ā0(ـ0)0)0.E0/K01r02060:0;0<0= 0>50?`0@z0A0B0G0G΂0H0I0K0LK0NP0Oc0P~0b0c0dƒ0fՃ0h0k0l0m0o0pE0ql0q0r0u0v0xE0g00ޅ0 0A0M0f0r00ˆ000B0u  l-./ϊ012C3U45 V VʍV܍VV V2V cV!uV"V#V / ///!/"!/#3/$d/%v````W``ߔ`` $`!K`"k`#`$`%˕`&`*?`+Q`,o`-u`-`.і`/`0`15`5a`6`:`;3`<[`=t`?`Dؘ`H`LU`N`O`Pƙ`Q`R`U`Vn`R4R(bRRʜRRR R!.R#@R/^R+ggVghgzggg g!ˠg"g.g0Bg2xg3g4̡g5g;Eg<]g=pg?gAgCgDgGȢgKgNgP gR?gVog\ghgigk go2gytgzg|g~gg gcguggYYѧYYY9Y!KY"Y&ިY)Y-eY.Y/Y1ݩY2 Y7<Y9WY=Y DDD D:D HD D DǬDD D%D>DWDDDDӭDD D$D?DRDiD  # $ % & '@ (g ) *ʥ + , -  .R /p 0 1 2 6L 7v 8 9 : ;Ч < = >C ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <   ====3=Q=e=w= =!="=#=$=%D='=(=)=+=,:=.=/=1=2=4 =5(=8f=9=:=;=?*=@O=A=A=Bb=F=G=H=I=J=K/=Lb=M=N=O=Q=R=S =T7=U\=V=Y=Z=\p=_=`=f=g=h=j=p=q=r=t=yS=z={=|=}=<== =#=W=|====;; S; l; ; ; ;3;`X,:X@SX]X]X_X`XbXdXdHXgXgXkXnXn7Xo\XoXrXsXv[XwsXxXy0XzPX|dX~XXXUXXXXgXXXXX'X-XFXjXXXXXXXXX0XPXXXXXXXX)XAXYXqXXXXX2XfXXXX XFXLXdXpXXXXBXvXXXX2XWXXXXXXHXZXkX X X XXXXXXX X%X=XUXmX ~X!X$X'X(X)<X*cX.X;X<X>X?X@ XB&XCKXE}XGXHXI-XLFXMwXNXO#XS/XT_XUXVXYX[X[ XaDXmfXn~XoXpXpXs5X|X}X~XXXXAXYX_XXXXhXsXyXXXXX4X:XaXXXCXNXTXXXXX X&XEXKXXXXXXXXGXXXX$X=XRXbXXXXXX9X?X EX pX X X XXX XXAX[XfX}XXX"X#X1"X1SX2YX3_X5X6X6X7X8FX9rX>XHXIXIXJ%XTFXUkXUXVXWXYXcXdXd5Xe;XfyXgXhXjXuXwXw=XyCXzNX|TX~ZX`XfXlXrXxX~XXXXXX(XGXfXXXXX1X=XVXvXXXXX XG XR X] Xp X X X X X XG X X X X X X X X, X> Xi X X X X6 XH Xg X X X X X" X: XR X] X X X X XXXXdXlXXXX X X EX oXXXX"eX"X#X$X/9X/XX0}X1X;X;X<<X=bXDXEXGXHXIiXJ|XMXTXUXVXW7XXiXcXeXhPXtXvXyX;XgXXXXX XX-X;XTXfXXXeXX2XXXX\XXXXXXX(XZXXXXXXBXtXXX XIXTXZX`XXXXjX.rX/X4X9~C#~3#~4#~5#~6#~7#~:#~;$~<.$~=?$~>O$~?`$~@x$~A$~B$~P$~QG%~Re%~S%~U%~V%~W%~X&~Y&~Z5&~[M&~\e&~]}&~^&~_&~a&~b&~c&~d '~e%'~f='~gU'~hm'~j'~s'~t'~u'~v'~w'~x (~x(~y,(~zX(~{(~|(~}(~(~(~)~2)~R)~d)~)~)~)~)~)~)~*~,*~L*~^*~~*~*~*~*~*~*~+~&+~F+~X+~x+~+~+~+~+~+~,~ ,~@,~R,~r,~,~,~,~,~,~$,V a/V/V/V/V/V 0V.F0V/0V80V90V:0V;0V< 1V=1V>?1V?Q1V@q1VA1V1t_3t3t3t& 4t1=4t2O4t3t4t34t54t?4t@4t@4tA 5,G;,$`;,-;,.;,0 <,1G<,2<,3<,5=,6?=,7}=,8=,:=,;7>,<u>,=>,?>,@/?,Am?,B?,D?,E'@,Fe@,G@,I@,JA,K]A,LA,NA,OB,PUB,QB,SB,TC,UMC,VC,XC,YD,ZED,[D,]D,^D,_=E,`{E,qE,~ F,XF,F,F,G,G,G,G,gH,H,!I,UI,I,I,J,PJ,J,(K,K,K, L,L,L,L, iM,-M,:?N,:sN,;N,H#O,H?O,IO,VP,csP,pP,}BQ,}^Q,~Q,&R,R,eS,~S,S,S,S,S,:T,T,T,2U,U,/V,V,V,.W,W,W,X,X,X,X,X,X,X,Y,Y,NY,ZY,tY,Y,jZ,pZ,Z,Z,Z,Z,Z,Z,$[,0[,J[,[,!"\,"(\,"A\,"H\,"|\,"\,"\,#\,#\,#\,$ ],%F],%[],&],5^,5^,6,_,D_,D_,E_,SG`,SX`,Tj`,b`,b`,c a,c@a,da,ru0Twu0Uu0Xu0Y#v0Zvv0[v0\w0];w0_w0mw0nw0pw0qx0rGx0s|x0tx0ux0x(y0x@y0yyy0yy0zy0zy0{z0{3z0|lz0|z0}z0}z0~{0~&{0_{0w{0{0{0{0|0P|0r|0|0|0|0A}0}0}0}0}0.~0h~0~0~00000 0<0N0$0%0&0'Ā0(ـ0)0)0.E0/K01r02060:0;0<0= 0>50?`0@z0A0B0G0G΂0H0I0K0LK0NP0Oc0P~0b0c0dƒ0fՃ0h0k0l0m0o0pE0ql0q0r0u0v0xE0g00ޅ0 0A0M0f0r00ˆ000B0u  l-./ϊ012C3U45 V VʍV܍VV V2V cV!uV"V#V / ///!/"!/#3/$d/%v````W``ߔ`` $`!K`"k`#`$`%˕`&`*?`+Q`,o`-u`-`.і`/`0`15`5a`6`:`;3`<[`=t`?`Dؘ`H`LU`N`O`Pƙ`Q`R`U`Vn`R4R(bRRʜRRR R!.R#@R/^R+ggVghgzggg g!ˠg"g.g0Bg2xg3g4̡g5g;Eg<]g=pg?gAgCgDgGȢgKgNgP gR?gVog\ghgigk go2gytgzg|g~gg gcguggYYѧYYY9Y!KY"Y&ިY)Y-eY.Y/Y1ݩY2 Y7<Y9WY=Y DDD D:D HD D DǬDD D%D>DWDDDDӭDD D$D?DRDiDz3z3z3¯z3Яz3z3z3;z3 rz3 z3 Ͱ  # $ % & '@ (g ) *ʥ + , -  .R /p 0 1 2 6L 7v 8 9 : ;Ч < = >C ?t @ AѨ B C D E F* GL H] I J K' L3 MX O Qʪ R U V9 W} X Z [ \L ] ^Ȭ `  e@ f} g h jҭ n oD pV qh rn s t y z9 {K |] } ~Ư د   7 ^  ΰ    G ~    ) q     >     >     5 m  . @ g  ݶ  ) C U   ߷  B g s     5 : l  Ϲ     f  ʻ   L ] x          7 I  ! "ľ # $ %' &H (f * * + , - .# /D 0e 3 3 4 4 5 6 75 8V 9w : ; <   ====3=Q=e=w= =!="=#=$=%D='=(=)=+=,:=.=/=1=2=4 =5(=8f=9=:=;=?*=@O=A=A=Bb=F=G=H=I=J=K/=Lb=M=N=O=Q=R=S =T7=U\=V=Y=Z=\p=_=`=f=g=h=j=p=q=r=t=yS=z={=|=}=<== =#=W=|====;; S; l; ; ; ;3;`X,:X@SX]X]X_X`XbXdXdHXgXgXkXnXn7Xo\XoXrXsXv[XwsXxXy0XzPX|dX~XXXUXXXXgXXXXX'X-XFXjXXXXXXXXX0XPXXXXXXXX)XAXYXqXXXXX2XfXXXX XFXLXdXpXXXXBXvXXXX2XWXXXXXXHXZXkX X X XXXXXXX X%X=XUXmX ~X!X$X'X(X)<X*cX.X;X<X>X?X@ XB&XCKXE}XGXHXI-XLFXMwXNXO#XS/XT_XUXVXYX[X[ XaDXmfXn~XoXpXpXs5X|X}X~XXXXAXYX_XXXXhXsXyXXXXX4X:XaXXXCXNXTXXXXX X&XEXKXXXXXXXXGXXXX$X=XRXbXXXXXX9X?X EX pX X X XXX XXAX[XfX}XXX"X#X1"X1SX2YX3_X5X6X6X7X8FX9rX>XHXIXIXJ%XTFXUkXUXVXWXYXcXdXd5Xe;XfyXgXhXjXuXwXw=XyCXzNX|TX~ZX`XfXlXrXxX~XXXXXX(XGXfXXXXX1X=XVXvXXXXX XG XR X] Xp X X X X X XG X X X X X X X X, X> Xi X X X X6 XH Xg X X X X X" X: XR X] X X X X XXXXdXlXXXX X X EX oXXXX"eX"X#X$X/9X/XX0}X1X;X;X<<X=bXDXEXGXHXIiXJ|XMXTXUXVXW7XXiXcXeXhPXtXvXyX;XgXXXXX XX-X;XTXfXXXeXX2XXXX\XXXXXXX(XZXXXXXXBXtXXX XIXTXZX`XXXXjX.rX/X4X9~C#~3#~4#~5#~6#~7#~:#~;$~<.$~=?$~>O$~?`$~@x$~A$~B$~P$~QG%~Re%~S%~U%~V%~W%~X&~Y&~Z5&~[M&~\e&~]}&~^&~_&~a&~b&~c&~d '~e%'~f='~gU'~hm'~j'~s'~t'~u'~v'~w'~x (~x(~y,(~zX(~{(~|(~}(~(~(~)~2)~R)~d)~)~)~)~)~)~)~*~,*~L*~^*~~*~*~*~*~*~*~+~&+~F+~X+~x+~+~+~+~+~+~,~ ,~@,~R,~r,~,~,~,~,~,~$,V a/V/V/V/V/V 0V.F0V/0V80V90V:0V;0V< 1V=1V>?1V?Q1V@q1VA1V1t_3t3t3t& 4t1=4t2O4t3t4t34t54t?4t@4t@4tA 5,G;,$`;,-;,.;,0 <,1G<,2<,3<,5=,6?=,7}=,8=,:=,;7>,<u>,=>,?>,@/?,Am?,B?,D?,E'@,Fe@,G@,I@,JA,K]A,LA,NA,OB,PUB,QB,SB,TC,UMC,VC,XC,YD,ZED,[D,]D,^D,_=E,`{E,qE,~ F,XF,F,F,G,G,G,G,gH,H,!I,UI,I,I,J,PJ,J,(K,K,K, L,L,L,L, iM,-M,:?N,:sN,;N,H#O,H?O,IO,VP,csP,pP,}BQ,}^Q,~Q,&R,R,eS,~S,S,S,S,S,:T,T,T,2U,U,/V,V,V,.W,W,W,X,X,X,X,X,X,X,Y,Y,NY,ZY,tY,Y,jZ,pZ,Z,Z,Z,Z,Z,Z,$[,0[,J[,[,!"\,"(\,"A\,"H\,"|\,"\,"\,#\,#\,#\,$ ],%F],%[],&],5^,5^,6,_,D_,D_,E_,SG`,SX`,Tj`,b`,b`,c a,c@a,da,ru0Twu0Uu0Xu0Y#v0Zvv0[v0\w0];w0_w0mw0nw0pw0qx0rGx0s|x0tx0ux0x(y0x@y0yyy0yy0zy0zy0{z0{3z0|lz0|z0}z0}z0~{0~&{0_{0w{0{0{0{0|0P|0r|0|0|0|0A}0}0}0}0}0.~0h~0~0~00000 0<0N0$0%0&0'Ā0(ـ0)0)0.E0/K01r02060:0;0<0= 0>50?`0@z0A0B0G0G΂0H0I0K0LK0NP0Oc0P~0b0c0dƒ0fՃ0h0k0l0m0o0pE0ql0q0r0u0v0xE0g00ޅ0 0A0M0f0r00ˆ000B0u  l-./ϊ012C3U45 V VʍV܍VV V2V cV!uV"V#V / ///!/"!/#3/$d/%v````W``ߔ`` $`!K`"k`#`$`%˕`&`*?`+Q`,o`-u`-`.і`/`0`15`5a`6`:`;3`<[`=t`?`Dؘ`H`LU`N`O`Pƙ`Q`R`U`Vn`R4R(bRRʜRRR R!.R#@R/^R+ggVghgzggg g!ˠg"g.g0Bg2xg3g4̡g5g;Eg<]g=pg?gAgCgDgGȢgKgNgP gR?gVog\ghgigk go2gytgzg|g~gg gcguggYYѧYYY9Y!KY"Y&ިY)Y-eY.Y/Y1ݩY2 Y7<Y9WY=Y DDD D:D HD D DǬDD D%D>DWDDDDӭDD D$D?DRDiDz3z3z3¯z3Яz3z3z3;z3 rz3 z3 Ͱcaurina.transitions.SpecialProperty: X:\ActionScript Classes\com\caurina\transitions\SpecialProperty.as/** * SpecialProperty * A kind of a getter/setter for special properties * * @author Zeh Fernando * @version 1.0.1 */ class caurina.transitions.SpecialProperty { private var parameters:Array; /** * Builds a new special property object. * * @param p_getFunction Function Reference to the function used to get the special property value * @param p_setFunction Function Reference to the function used to set the special property value * @param p_parameters Array Additional parameters that should be passed to the function when executing (so the same function can apply to different special properties) */ public function SpecialProperty (p_getFunction:Function, p_setFunction:Function, p_parameters:Array) { getValue = p_getFunction; setValue = p_setFunction; parameters = p_parameters; } /** * Empty shell for the function that gets the value. */ public function getValue(p_obj:Object, p_parameters:Array):Number { // This is rewritten return null; } /** * Empty shell for the function that sets the value. */ public function setValue(p_obj:Object, p_value:Number, p_parameters:Array):Void { // This is rewritten } /** * Converts the instance to a string that can be used when trace()ing the object */ public function toString():String { var value:String = ""; value += "[SpecialProperty "; value += "getValue:"+getValue.toString(); value += ", "; value += "setValue:"+setValue.toString(); value += ", "; value += "parameters:"+parameters.toString(); value += "]"; return value; } } Magazine: X:\Clientes\Diamond\campanhas\2007\revista_primavera_verao07\Programacao\Classes\Magazine.asimport caurina.transitions.Tweener; import mx.utils.Delegate; class Magazine { private var root_mc:MovieClip; private var targets_mc:MovieClip; private var pagMask_mc:MovieClip; private var menu_mc:MovieClip; private var prevBt_mc:MovieClip; private var nextBt_mc:MovieClip; private var menu_cl:MenuMag; private var loader_cl:Loader; private var loaderStatus_cl:LoaderStatus; private var telaW:Number = 760; private var telaH:Number = 415; private var nGrupos:Number; public var nPaginas:Number; public var targetAtual:Number; public var paginaAtual:Number; public var grupoAtual:Number; private var itens_xml:XML; public var paginas_array:Array; public var url_str:String = "http://www.diamondmall.com.br/"; function Magazine(vroot_mc:MovieClip) { //System.useCodepage = true; root_mc = vroot_mc; targets_mc = root_mc.createEmptyMovieClip("targets_mc",root_mc.getNextHighestDepth()); pagMask_mc = root_mc.mask_mc; targets_mc._y = pagMask_mc._y; targets_mc.setMask(pagMask_mc); menu_mc = root_mc.createEmptyMovieClip("menu_mc",root_mc.getNextHighestDepth()); menu_mc._x = 23; menu_mc._y = 475; prevBt_mc = root_mc.prevBt_mc; nextBt_mc = root_mc.nextBt_mc; prevBt_mc._visible = nextBt_mc._visible = false; loader_cl = new Loader(); menu_cl = new MenuMag(this,menu_mc); itens_xml = new XML(); loadXml(itens_xml,"xml/revista.xml",monta,this); loaderStatus_cl = new LoaderStatus(root_mc,37,"loading_MC"); } private function monta():Void { nGrupos = itens_xml.firstChild.childNodes.length; nPaginas = 0; var i:Number = 0; //índice da página var j:Number = 0; //índice do target paginas_array = new Array(); var loads_array:Array = new Array(); var g:Number, nt:Number, t:Number, np:Number, p:Number, i0:Number, target_mc:MovieClip, src_str:String; for (g=0; g=0 && p!=paginaAtual) { paginaAtual = p; var targetAnt = targetAtual; targetAtual = paginas_array[paginaAtual].j; var target_mc:MovieClip = targets_mc["pag"+paginas_array[paginaAtual].j+"_mc"]; if (targetAnt != undefined) { //existe página atual if (targetAnt != paginas_array[paginaAtual].j) { //outro target if (target_mc.carregou) { exibir(target_mc); } else { loader_cl.reordenaLoad(targetAtual); loaderStatus_cl.display(target_mc.loader_mc,389,215); } esconder(targets_mc["pag"+targetAnt+"_mc"]) } else { paginaOnInit(target_mc); //mesmo target } } else if (target_mc.carregou) { exibir(target_mc); } else { loader_cl.reordenaLoad(targetAtual); loaderStatus_cl.display(target_mc.loader_mc,389,215); } atualizaMenu(); prevBt_mc.enabled = (p>0); nextBt_mc.enabled = (p0) ? 100 : 50; nextBt_mc._alpha = (p>>>>>>>>>>>>>>> r "+target_mc.loader_mc.classe.setFrame); if (fr!=undefined) { target_mc.loader_mc.classe.setFrame(fr); target_mc.loader_mc.classe.onFrameChanged = Delegate.create(this, frameOnChanged); }; atualizaMenu(); } private function atualizaMenu():Void { menu_cl.selecionaPagina(paginaAtual); var g:Number = paginas_array[paginaAtual].g; if (g!=grupoAtual) { grupoAtual = g; menu_cl.selecionaGrupo(grupoAtual); } } private function frameOnChanged():Void { var target_mc:MovieClip = targets_mc["pag"+targetAtual+"_mc"]; var g:Number = paginas_array[paginaAtual].g; var t:Number = paginas_array[paginaAtual].t; var np:Number = itens_xml.firstChild.childNodes[g].childNodes[t].childNodes.length; var i:Number = paginas_array[paginaAtual].i0; var p:Number, fr:String; for (p=0; p 0; } // ---------------------------------------------------------------------------------------------------------------------------------- // filters /** * (filters) * Generic function for the properties of filter objects */ public static function _filter_property_get (p_obj:Object, p_parameters:Array):Number { var f:Array = p_obj.filters; var i:Number; var filterClass:Object = p_parameters[0]; var propertyName:String = p_parameters[1]; for (i = 0; i < f.length; i++) { if (f[i] instanceof filterClass) return (f[i][propertyName]); } // No value found for this property - no filter instance found using this class! // Must return default desired values var defaultValues:Object; switch (filterClass) { case BlurFilter: defaultValues = {blurX:0, blurY:0, quality:NaN}; break; } // When returning NaN, the Tweener engine sets the starting value as being the same as the final value // When returning null, the Tweener engine doesn't tween it at all, just setting it to the final value return defaultValues[propertyName]; } public static function _filter_property_set (p_obj:Object, p_value:Number, p_parameters:Array):Void { var f:Array = p_obj.filters; var i:Number; var filterClass:Object = p_parameters[0]; var propertyName:String = p_parameters[1]; for (i = 0; i < f.length; i++) { if (f[i] instanceof filterClass) { f[i][propertyName] = p_value; p_obj.filters = f; return; } } // The correct filter class wasn't found - create a new one if (f == undefined) f = new Array(); var fi:BitmapFilter; switch (filterClass) { case BlurFilter: fi = new BlurFilter(0, 0); break; } fi[propertyName] = p_value; f.push(fi); p_obj.filters = f; } // ================================================================================================================================== // SPECIAL PROPERTY MODIFIER functions ---------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------------------- // _bezier /** * Given the parameter object passed to this special property, return an array listing the properties that should be modified, and their parameters * * @param p_obj Object Parameter passed to this property * @return Array Array listing name and parameter of each property */ public static function _bezier_modifier (p_obj):Array { var mList:Array = []; // List of properties to be modified var pList:Array; // List of parameters passed, normalized as an array if (p_obj instanceof Array) { // Complex pList = p_obj; } else { pList = [p_obj]; } var i:Number; var istr:String; var mListObj:Object = {}; // Object describing each property name and parameter for (i = 0; i < pList.length; i++) { for (istr in pList[i]) { if (mListObj[istr] == undefined) mListObj[istr] = []; mListObj[istr].push(pList[i][istr]); } } for (istr in mListObj) { mList.push({name:istr, parameters:mListObj[istr]}); } return mList; } /** * Given tweening specifications (beging, end, t), applies the property parameter to it, returning new t * * @param b Number Beginning value of the property * @param e Number Ending (desired) value of the property * @param t Number Current t of this tweening (0-1), after applying the easing equation * @param p Array Array of parameters passed to this specific property * @return Number New t, with the p parameters applied to it */ public static function _bezier_get (b:Number, e:Number, t:Number, p:Array):Number { // This is based on Robert Penner's code if (p.length == 1) { // Simple curve with just one bezier control point return b + t*(2*(1-t)*(p[0]-b) + t*(e - b)); } else { // Array of bezier control points, must find the point between each pair of bezier points var ip:Number = Math.floor(t * p.length); // Position on the bezier list var it:Number = (t - (ip * (1 / p.length))) * p.length; // t inside this ip var p1:Number, p2:Number; if (ip == 0) { // First part: belongs to the first control point, find second midpoint p1 = b; p2 = (p[0]+p[1])/2; } else if (ip == p.length - 1) { // Last part: belongs to the last control point, find first midpoint p1 = (p[ip-1]+p[ip])/2; p2 = e; } else { // Any middle part: find both midpoints p1 = (p[ip-1]+p[ip])/2; p2 = (p[ip]+p[ip+1])/2; } return p1+it*(2*(1-it)*(p[ip]-p1) + it*(p2 - p1)); } } } z3BotaoPadrao: X:\Clientes\Diamond\campanhas\2007\revista_primavera_verao07\Programacao\Classes\BotaoPadrao.asclass BotaoPadrao extends Botao { function BotaoPadrao(f:Number) { if (isNaN(f)) f=1; this.onRollOver = function() { this.colorTo(0x77BFDD,0,"linear"); this.colorTo(null,0.1,"linear"); this.tintTo(0xFFFFFF,30,0.1,"linear"); }; this.onRollOut = this.onDragOut = function() { this.tintTo(null,100,0.3,"linear"); }; this.criaHit(f); } };com.lapisraro.utils.DrawRectangle: X:\ActionScript Classes\com\lapisraro\utils\DrawRectangle.asimport com.lapisraro.utils.*; class DrawRectangle { public static function draw( target:MovieClip, w:Number, h:Number, c:Number, a:Number, style:Boolean, thin:Number ):Void{ target.clear(); (!style) ? target.beginFill(c,a) : target.lineStyle(thin,c,a); target.lineTo(w,0); target.lineTo(w,h); target.lineTo(0,h); target.lineTo(0,0); target.endFill(); } }=MenuMag: X:\Clientes\Diamond\campanhas\2007\revista_primavera_verao07\Programacao\Classes\MenuMag.asimport caurina.transitions.Tweener; import com.lapisraro.utils.*; class MenuMag { private var rootClass:Object; private var menu_mc:MovieClip; private var hint_mc:MovieClip; private var nItens:Number; private var itemAtual:Number; private var menuWidth:Number = 550; private var itemWidth:Number = 16; private var itemHeight:Number = 16; private var itensDist:Number; //distância entre os itens (px) private var itens_array:Array; function MenuMag(vrootClass:Object, vmenu_mc:MovieClip) { rootClass = vrootClass; menu_mc = vmenu_mc; }; public function monta():Void { nItens = rootClass.nPaginas; // itensDist = (menuWidth - (nItens*itemWidth))/(nItens-1); itensDist = 5; var rClass:Object = rootClass; var me:MenuMag = this; var i:Number, item_mc:MovieClip; for (i=0; i"+rootClass.getLabel(p)+""; } private function hideHint():Void { hint_mc._visible=false; hint_mc.stopDrag(); } public function carregouTarget(p:Number):Void { var item_mc:MovieClip = menu_mc["item"+p+"_mc"]; //item_mc.alphaTo(100,0.5); Tweener.addTween(item_mc,{_alpha:100, time:.5}) } }DBotao: X:\Clientes\Diamond\campanhas\2007\revista_primavera_verao07\Programacao\Classes\Botao.asclass Botao extends MovieClip { private var hit_mc:MovieClip; private var bot_mc:MovieClip; function Botao(f:Number) { bot_mc = this; if (isNaN(f)) f=5; criaHit(f); } public function criaHit(f:Number):Void { if (isNaN(f)) f=5; var bounds_obj:Object = bot_mc.getBounds(bot_mc); var xMin:Number = bounds_obj.xMin - f; var xMax:Number = bounds_obj.xMax + f; var yMin:Number = bounds_obj.yMin - f; var yMax:Number = bounds_obj.yMax + f; hit_mc = this.createEmptyMovieClip("hit_mc",1); with (hit_mc) { beginFill(0x000000,50); moveTo(xMin,yMin); lineTo(xMax,yMin); lineTo(xMax,yMax); lineTo(xMin,yMax); lineTo(xMin,yMin); endFill(); } hit_mc._visible = false; this.hitArea = hit_mc; } }Rmx.utils.Delegate: C:\Documents and Settings\antonio\Configurações locais\Dados de aplicativos\Adobe\Flash CS3\en\Configuration\Classes\mx\utils\Delegate.as//**************************************************************************** //Copyright (C) 2003-2004 Macromedia, Inc. All Rights Reserved. //The following is Sample Code and is subject to all restrictions on //such code as contained in the End User License Agreement accompanying //this product. //**************************************************************************** /** The Delegate class creates a function wrapper to let you run a function in the context of the original object, rather than in the context of the second object, when you pass a function from one object to another. */ class mx.utils.Delegate extends Object { /** Creates a functions wrapper for the original function so that it runs in the provided context. @parameter obj Context in which to run the function. @paramater func Function to run. */ static function create(obj:Object, func:Function):Function { var f = function() { var target = arguments.callee.target; var func = arguments.callee.func; return func.apply(target, arguments); }; f.target = obj; f.func = func; return f; } function Delegate(f:Function) { func = f; } private var func:Function; function createDelegate(obj:Object):Function { return create(obj, func); } } Vcaurina.transitions.PropertyInfoObj: X:\ActionScript Classes\com\caurina\transitions\PropertyInfoObj.as/** * PropertyInfoObj * An object containing the updating info for a given property (its starting value, and its final value) * * @author Zeh Fernando * @version 1.0.0 * @private */ class caurina.transitions.PropertyInfoObj { public var valueStart :Number; // Starting value of the tweening (null if not started yet) public var valueComplete :Number; // Final desired value public var hasModifier :Boolean; // Whether or not it has a modifier function public var modifierFunction :Function; // Modifier function, if any public var modifierParameters :Array; // Additional array of modifier parameters // ================================================================================================================================== // CONSTRUCTOR function ------------------------------------------------------------------------------------------------------------- /** * Initializes the basic PropertyInfoObj. * * @param p_valueStart Number Starting value of the tweening (null if not started yet) * @param p_valueComplete Number Final (desired) property value */ function PropertyInfoObj(p_valueStart:Number, p_valueComplete:Number, p_modifierFunction:Function, p_modifierParameters:Array) { valueStart = p_valueStart; valueComplete = p_valueComplete; hasModifier = p_modifierFunction != undefined; modifierFunction = p_modifierFunction; modifierParameters = p_modifierParameters; } // ================================================================================================================================== // OTHER functions ------------------------------------------------------------------------------------------------------------------ /** * Clones this property info and returns the new PropertyInfoObj * * @param omitEvents Boolean Whether or not events such as onStart (and its parameters) should be omitted * @return TweenListObj A copy of this object */ public function clone():PropertyInfoObj { var nProperty:PropertyInfoObj = new PropertyInfoObj(valueStart, valueComplete, modifierFunction, modifierParameters); return nProperty; } /** * Returns this object described as a String. * * @return String The description of this object. */ public function toString():String { var returnStr:String = "\n[PropertyInfoObj "; returnStr += "valueStart:" + String(valueStart); returnStr += ", "; returnStr += "valueComplete:" + String(valueComplete); returnStr += ", "; returnStr += "modifierFunction:" + String(modifierFunction); returnStr += ", "; returnStr += "modifierParameters:" + String(modifierParameters); returnStr += "]\n"; return returnStr; } } Vcaurina.transitions.SpecialPropertyModifier: X:\ActionScript Classes\com\caurina\transitions\SpecialPropertyModifier.as/** * SpecialPropertyModifier * A special property which actually acts on other properties * * @author Zeh Fernando * @version 1.0.0 * @private */ class caurina.transitions.SpecialPropertyModifier { public var modifyValues:Function; public var getValue:Function; /** * Builds a new special property modifier object. * * @param p_modifyFunction Function Function that returns the modifider parameters. */ public function SpecialPropertyModifier (p_modifyFunction:Function, p_getFunction:Function) { modifyValues = p_modifyFunction; getValue = p_getFunction; } /** * Converts the instance to a string that can be used when trace()ing the object */ public function toString():String { var value:String = ""; value += "[SpecialPropertyModifier "; value += "modifyValues:"+modifyValues.toString(); value += ", "; value += "getValue:"+getValue.toString(); value += "]"; return value; } } Xcaurina.transitions.Tweener: X:\ActionScript Classes\com\caurina\transitions\Tweener.as/** * Tweener * Transition controller for movieclips, sounds, textfields and other objects * * @author Zeh Fernando, Nate Chatellier, Arthur Debert * @version 1.25.57 */ /* Licensed under the MIT License Copyright (c) 2006-2007 Zeh Fernando and Nate Chatellier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. http://code.google.com/p/tweener/ http://code.google.com/p/tweener/wiki/License */ import caurina.transitions.Equations; import caurina.transitions.AuxFunctions; import caurina.transitions.SpecialPropertiesDefault; import caurina.transitions.SpecialProperty; import caurina.transitions.SpecialPropertyModifier; import caurina.transitions.SpecialPropertySplitter; import caurina.transitions.TweenListObj; import caurina.transitions.PropertyInfoObj; class caurina.transitions.Tweener { private static var _engineExists:Boolean = false; // Whether or not the engine is currently running private static var _inited:Boolean = false; // Whether or not the class has been initiated private static var _currentTime:Number; // The current time. This is generic for all tweenings for a "time grid" based update private static var _tweenList:Array; // List of active tweens private static var _timeScale:Number = 1; // Time scale (default = 1) private static var _transitionList:Object; // List of "pre-fetched" transition functions private static var _specialPropertyList:Object; // List of special properties private static var _specialPropertyModifierList:Object; // List of special property modifiers private static var _specialPropertySplitterList:Object; // List of special property splitters /** * There's no constructor. */ public function Tweener () { trace ("Tweener is an static class and should not be instantiated.") } // ================================================================================================================================== // TWEENING CONTROL functions ------------------------------------------------------------------------------------------------------- /** * Adds a new tweening * * @param (first-n param) Object Object that should be tweened: a movieclip, textfield, etc.. OR an array of objects * @param (last param) Object Object containing the specified parameters in any order, as well as the properties that should be tweened and their values * @param .time Number Time in seconds or frames for the tweening to take (defaults 2) * @param .delay Number Delay time (defaults 0) * @param .useFrames Boolean Whether to use frames instead of seconds for time control (defaults false) * @param .transition String/Function Type of transition equation... (defaults to "easeoutexpo") * @param .onStart Function * Direct property, See the TweenListObj class * @param .onUpdate Function * Direct property, See the TweenListObj class * @param .onComplete Function * Direct property, See the TweenListObj class * @param .onOverwrite Function * Direct property, See the TweenListObj class * @param .onStartParams Array * Direct property, See the TweenListObj class * @param .onUpdateParams Array * Direct property, See the TweenListObj class * @param .onCompleteParams Array * Direct property, See the TweenListObj class * @param .onOverwriteParams Array * Direct property, See the TweenListObj class * @param .rounded Boolean * Direct property, See the TweenListObj class * @param .skipUpdates Number * Direct property, See the TweenListObj class * @return Boolean TRUE if the tween was successfully added, FALSE if otherwise */ public static function addTween ():Boolean { if (arguments.length < 2 || arguments[0] == undefined) return false; var rScopes:Array = new Array(); // List of objects to tween var i:Number, j:Number, istr:String, jstr:String; if (arguments[0] instanceof Array) { // The first argument is an array for (i = 0; i _tweenList[i].timeStart && p_timeStart < _tweenList[i].timeComplete) { // New time should override the old one... removedLocally = false; for (pName in _tweenList[i].properties) { if (p_properties[pName] != undefined) { // Same object, same property // Finally, remove this old tweening and use the new one if (_tweenList[i].onOverwrite != undefined) { try { _tweenList[i].onOverwrite.apply(_tweenList[i].scope, _tweenList[i].onOverwriteParams); } catch(e:Error) { //trace(e); } } _tweenList[i].properties[pName] = undefined; delete _tweenList[i].properties[pName]; removedLocally = true; removed = true; } } if (removedLocally) { // Verify if this can be deleted if (AuxFunctions.getObjectLength(_tweenList[i].properties) == 0) removeTweenByIndex(i); } } } } return removed; } /** * Remove tweenings from a given object from the tweening list * * @param p_tween Object Object that must have its tweens removed * @param (2nd-last params) Object Property(ies) that must be removed * @return Boolean Whether or not it successfully removed this tweening */ public static function removeTweens (p_scope:Object):Boolean { // Create the property list var properties:Array = new Array(); var i:Number; for (i = 1; i < arguments.length; i++) { if (typeof(arguments[i]) == "string" && !AuxFunctions.isInArray(arguments[i], properties)) properties.push(arguments[i]); } // Call the affect function on the specified properties return affectTweens(removeTweenByIndex, p_scope, properties); } /** * Remove all tweenings from the engine * * @return Boolean Whether or not it successfully removed a tweening */ public static function removeAllTweens ():Boolean { var removed:Boolean = false; var i:Number; for (i = 0; i < _tweenList.length; i++) { removeTweenByIndex(i); removed = true; } return removed; } /** * Pause tweenings from a given object * * @param p_scope Object Object that must have its tweens paused * @param (2nd-last params) Object Property(ies) that must be paused * @return Boolean Whether or not it successfully paused something */ public static function pauseTweens (p_scope:Object):Boolean { // Create the property list var properties:Array = new Array(); var i:Number; for (i = 1; i < arguments.length; i++) { if (typeof(arguments[i]) == "string" && !AuxFunctions.isInArray(arguments[i], properties)) properties.push(arguments[i]); } // Call the affect function on the specified properties return affectTweens(pauseTweenByIndex, p_scope, properties); } /** * Pause all tweenings on the engine * * @return Boolean Whether or not it successfully paused a tweening */ public static function pauseAllTweens ():Boolean { var paused:Boolean = false; var i:Number; for (i = 0; i < _tweenList.length; i++) { pauseTweenByIndex(i); paused = true; } return paused; } /** * Resume tweenings from a given object * * @param p_scope Object Object that must have its tweens resumed * @param (2nd-last params) Object Property(ies) that must be resumed * @return Boolean Whether or not it successfully resumed something */ public static function resumeTweens (p_scope:Object):Boolean { // Create the property list var properties:Array = new Array(); var i:Number; for (i = 1; i < arguments.length; i++) { if (typeof(arguments[i]) == "string" && !AuxFunctions.isInArray(arguments[i], properties)) properties.push(arguments[i]); } // Call the affect function on the specified properties return affectTweens(resumeTweenByIndex, p_scope, properties); } /** * Resume all tweenings on the engine * * @return Boolean Whether or not it successfully resumed a tweening */ public static function resumeAllTweens ():Boolean { var resumed:Boolean = false; var i:Number; for (i = 0; i < _tweenList.length; i++) { resumeTweenByIndex(i); resumed = true; } return resumed; } /** * Do some generic action on specific tweenings (pause, resume, remove, more?) * * @param p_function Function Function to run on the tweenings that match * @param p_scope Object Object that must have its tweens affected by the function * @param p_properties Array Array of strings that must be affected * @return Boolean Whether or not it successfully affected something */ private static function affectTweens (p_affectFunction:Function, p_scope:Object, p_properties:Array):Boolean { var affected:Boolean = false; var i:Number; if (!_tweenList) return false; for (i = 0; i < _tweenList.length; i++) { if (_tweenList[i].scope == p_scope) { if (p_properties.length == 0) { // Can affect everything p_affectFunction(i); affected = true; } else { // Must check whether this tween must have specific properties affected var affectedProperties:Array = new Array(); var j:Number; for (j = 0; j < p_properties.length; j++) { if (_tweenList[i].properties[p_properties[j]] != undefined) { affectedProperties.push(p_properties[j]); } } if (affectedProperties.length > 0) { // This tween has some properties that need to be affected var objectProperties:Number = AuxFunctions.getObjectLength(_tweenList[i].properties); if (objectProperties == affectedProperties.length) { // The list of properties is the same as all properties, so affect it all p_affectFunction(i); affected = true; } else { // The properties are mixed, so split the tween and affect only certain specific properties var slicedTweenIndex:Number = splitTweens(i, affectedProperties); p_affectFunction(slicedTweenIndex); affected = true; } } } } } return affected; } /** * Splits a tweening in two * * @param p_tween Number Object that must have its tweens split * @param p_properties Array Array of strings containing the list of properties that must be separated * @return Number The index number of the new tween */ public static function splitTweens (p_tween:Number, p_properties:Array):Number { // First, duplicates var originalTween:TweenListObj = _tweenList[p_tween]; var newTween:TweenListObj = originalTween.clone(false); // Now, removes tweenings where needed var i:Number; var pName:String; // Removes the specified properties from the old one for (i = 0; i < p_properties.length; i++) { pName = p_properties[i]; if (originalTween.properties[pName] != undefined) { originalTween.properties[pName] = undefined; delete originalTween.properties[pName]; } } // Removes the unspecified properties from the new one var found:Boolean; for (pName in newTween.properties) { found = false; for (i = 0; i < p_properties.length; i++) { if (p_properties[i] == pName) { found = true; break; } } if (!found) { newTween.properties[pName] = undefined; delete newTween.properties[pName]; } } // If there are empty property lists, a cleanup is done on the next updateTweens() cycle _tweenList.push(newTween); return (_tweenList.length - 1); } // ================================================================================================================================== // ENGINE functions ----------------------------------------------------------------------------------------------------------------- /** * Updates all existing tweenings * * @return Boolean FALSE if no update was made because there's no tweening (even delayed ones) */ private static function updateTweens ():Boolean { if (_tweenList.length == 0) return false; var i:Number; for (i = 0; i < _tweenList.length; i++) { // Looping throught each Tweening and updating the values accordingly if (!_tweenList[i].isPaused) { if (!updateTweenByIndex(i)) removeTweenByIndex(i); if (_tweenList[i] == null) { removeTweenByIndex(i, true); i--; } } } return true; } /** * Remove an specific tweening from the tweening list * * @param p_tween Number Index of the tween to be removed on the tweenings list * @return Boolean Whether or not it successfully removed this tweening */ public static function removeTweenByIndex (p_tween:Number, p_finalRemoval:Boolean):Boolean { _tweenList[p_tween] = null; if (p_finalRemoval) _tweenList.splice(p_tween, 1); return true; } /** * Pauses an specific tween * * @param p_tween Number Index of the tween to be paused * @return Boolean Whether or not it successfully paused this tweening */ public static function pauseTweenByIndex (p_tween:Number):Boolean { var tTweening:Object = _tweenList[p_tween]; // Shortcut to this tweening if (tTweening == null || tTweening.isPaused) return false; tTweening.timePaused = _currentTime; tTweening.isPaused = true; return true; } /** * Resumes an specific tween * * @param p_tween Number Index of the tween to be resumed * @return Boolean Whether or not it successfully resumed this tweening */ public static function resumeTweenByIndex (p_tween:Number):Boolean { var tTweening:Object = _tweenList[p_tween]; // Shortcut to this tweening if (tTweening == null || !tTweening.isPaused) return false; tTweening.timeStart += _currentTime - tTweening.timePaused; tTweening.timeComplete += _currentTime - tTweening.timePaused; tTweening.timePaused = undefined; tTweening.isPaused = false; return true; } /** * Updates an specific tween * * @param i Number Index (from the tween list) of the tween that should be updated * @return Boolean FALSE if it's already finished and should be deleted, TRUE if otherwise */ private static function updateTweenByIndex (i:Number):Boolean { var tTweening:Object = _tweenList[i]; // Shortcut to this tweening if (tTweening == null || !tTweening.scope) return false; var isOver:Boolean = false; // Whether or not it's over the update time var mustUpdate:Boolean; // Whether or not it should be updated (skipped if false) var nv:Number; // New value for each property var t:Number; // current time (frames, seconds) var b:Number; // beginning value var c:Number; // change in value var d:Number; // duration (frames, seconds) var pName:String; // Property name, used in loops // Shortcut stuff for speed var tScope:Object; // Current scope var tProperty:Object; // Property being checked if (_currentTime >= tTweening.timeStart) { // Can already start tScope = tTweening.scope; if (tTweening.isCaller) { // It's a 'caller' tween do { t = ((tTweening.timeComplete - tTweening.timeStart)/tTweening.count) * (tTweening.timesCalled+1); b = tTweening.timeStart; c = tTweening.timeComplete - tTweening.timeStart; d = tTweening.timeComplete - tTweening.timeStart; nv = tTweening.transition(t, b, c, d); if (_currentTime >= nv) { if (tTweening.onUpdate != undefined) { try { tTweening.onUpdate.apply(tScope, tTweening.onUpdateParams); } catch(e:Error) { //trace(e); } } tTweening.timesCalled++; if (tTweening.timesCalled >= tTweening.count) { isOver = true; break; } if (tTweening.waitFrames) break; } } while (_currentTime >= nv); } else { // It's a normal transition tween mustUpdate = tTweening.skipUpdates < 1 || tTweening.skipUpdates == undefined || tTweening.updatesSkipped >= tTweening.skipUpdates; if (_currentTime >= tTweening.timeComplete) { isOver = true; mustUpdate = true; } if (!tTweening.hasStarted) { // First update, read all default values (for proper filter tweening) if (tTweening.onStart != undefined) { try { tTweening.onStart.apply(tScope, tTweening.onStartParams); } catch(e:Error) { //trace(e); } } for (pName in tTweening.properties) { var pv:Number = getPropertyValue (tScope, pName); tTweening.properties[pName].valueStart = isNaN(pv) ? tTweening.properties[pName].valueComplete : pv; } mustUpdate = true; tTweening.hasStarted = true; } if (mustUpdate) { for (pName in tTweening.properties) { tProperty = tTweening.properties[pName]; if (isOver) { // Tweening time has finished, just set it to the final value nv = tProperty.valueComplete; } else { if (tProperty.hasModifier) { // Modified t = _currentTime - tTweening.timeStart; d = tTweening.timeComplete - tTweening.timeStart; nv = tTweening.transition(t, 0, 1, d); nv = tProperty.modifierFunction(tProperty.valueStart, tProperty.valueComplete, nv, tProperty.modifierParameters); } else { // Normal update t = _currentTime - tTweening.timeStart; b = tProperty.valueStart; c = tProperty.valueComplete - tProperty.valueStart; d = tTweening.timeComplete - tTweening.timeStart; nv = tTweening.transition(t, b, c, d); } } if (tTweening.rounded) nv = Math.round(nv); setPropertyValue(tScope, pName, nv); } tTweening.updatesSkipped = 0; if (tTweening.onUpdate != undefined) { try { tTweening.onUpdate.apply(tScope, tTweening.onUpdateParams); } catch(e:Error) { //trace(e); } } } else { tTweening.updatesSkipped++; } } if (isOver && tTweening.onComplete != undefined) { try { tTweening.onComplete.apply(tScope, tTweening.onCompleteParams); } catch(e:Error) { //trace(e); } } return (!isOver); } // On delay, hasn't started, so return true return (true); } /** * Initiates the Tweener. Should only be ran once */ private static function init():Void { _inited = true; // Registers all default equations _transitionList = new Object(); Equations.init(); // Registers all default special properties _specialPropertyList = new Object(); _specialPropertyModifierList = new Object(); _specialPropertySplitterList = new Object(); SpecialPropertiesDefault.init(); } /** * Adds a new function to the available transition list "shortcuts" * * @param p_name String Shorthand transition name * @param p_function Function The proper equation function */ public static function registerTransition(p_name:String, p_function:Function): Void { if (!_inited) init(); _transitionList[p_name] = p_function; } /** * Adds a new special property to the available special property list. * * @param p_name Name of the "special" property. * @param p_getFunction Function that gets the value. * @param p_setFunction Function that sets the value. */ public static function registerSpecialProperty(p_name:String, p_getFunction:Function, p_setFunction:Function, p_parameters:Array): Void { if (!_inited) init(); var sp:SpecialProperty = new SpecialProperty(p_getFunction, p_setFunction, p_parameters); _specialPropertyList[p_name] = sp; } /** * Adds a new special property modifier to the available modifier list. * * @param p_name Name of the "special" property modifier. * @param p_modifyFunction Function that modifies the value. * @param p_getFunction Function that gets the value. */ public static function registerSpecialPropertyModifier(p_name:String, p_modifyFunction:Function, p_getFunction:Function): Void { if (!_inited) init(); var spm:SpecialPropertyModifier = new SpecialPropertyModifier(p_modifyFunction, p_getFunction); _specialPropertyModifierList[p_name] = spm; } /** * Adds a new special property splitter to the available splitter list. * * @param p_name Name of the "special" property splitter. * @param p_splitFunction Function that splits the value. */ public static function registerSpecialPropertySplitter(p_name:String, p_splitFunction:Function): Void { if (!_inited) init(); var sps:SpecialPropertySplitter = new SpecialPropertySplitter(p_splitFunction); _specialPropertySplitterList[p_name] = sps; } /** * Starts the Tweener class engine. It is supposed to be running every time a tween exists */ private static function startEngine():Void { _engineExists = true; _tweenList = new Array(); var randomDepth:Number = Math.floor(Math.random() * 999999); var fmc:MovieClip = _root.createEmptyMovieClip(getControllerName(), 31338+randomDepth); fmc.onEnterFrame = function() { Tweener.onEnterFrame(); }; updateTime(); } /** * Stops the Tweener class engine */ private static function stopEngine():Void { _engineExists = false; _tweenList = null; _currentTime = 0; delete _root[getControllerName()].onEnterFrame; _root[getControllerName()].removeMovieClip(); } /** * Gets a property value from an object * * @param p_obj Object Any given object * @param p_prop String The property name * @return Number The value */ private static function getPropertyValue(p_obj:Object, p_prop:String):Number { if (_specialPropertyList[p_prop] != undefined) { // Special property return _specialPropertyList[p_prop].getValue(p_obj, _specialPropertyList[p_prop].parameters); } else { // Regular property return p_obj[p_prop]; } } /** * Sets the value of an object property * * @param p_obj Object Any given object * @param p_prop String The property name * @param p_value Number The new value */ private static function setPropertyValue(p_obj:Object, p_prop:String, p_value:Number): Void { if (_specialPropertyList[p_prop] != undefined) { // Special property _specialPropertyList[p_prop].setValue(p_obj, p_value, _specialPropertyList[p_prop].parameters); } else { // Regular property p_obj[p_prop] = p_value; } } /** * Updates the time to enforce time grid-based updates */ public static function updateTime():Void { _currentTime = getTimer(); } /** * Ran once every frame. It's the main engine, updates all existing tweenings. */ public static function onEnterFrame():Void { updateTime(); var hasUpdated:Boolean = false; hasUpdated = updateTweens(); if (!hasUpdated) stopEngine(); // There's no tweening to update or wait, so it's better to stop the engine } /** * Sets the new time scale. * * @param p_time Number New time scale (0.5 = slow, 1 = normal, 2 = 2x fast forward, etc) */ public static function setTimeScale(p_time:Number):Void { var i:Number; if (isNaN(p_time)) p_time = 1; if (p_time < 0.00001) p_time = 0.00001; if (p_time != _timeScale) { // Multiplies all existing tween times accordingly for (i = 0; i<_tweenList.length; i++) { _tweenList[i].timeStart = _currentTime - ((_currentTime - _tweenList[i].timeStart) * _timeScale / p_time); _tweenList[i].timeComplete = _currentTime - ((_currentTime - _tweenList[i].timeComplete) * _timeScale / p_time); if (_tweenList[i].timePaused != undefined) _tweenList[i].timePaused = _currentTime - ((_currentTime - _tweenList[i].timePaused) * _timeScale / p_time); } // Sets the new timescale value (for new tweenings) _timeScale = p_time; } } // ================================================================================================================================== // AUXILIARY functions -------------------------------------------------------------------------------------------------------------- /** * Finds whether or not an object has any tweening * * @param p_scope Object Target object * @return Boolean Whether or not there's a tweening occuring on this object (paused, delayed, or active) */ public static function isTweening(p_scope:Object):Boolean { var i:Number; for (i = 0; i<_tweenList.length; i++) { if (_tweenList[i].scope == p_scope) { return true; } } return false; } /** * Return an array containing a list of the properties being tweened for this object * * @param p_scope Object Target object * @return Array List of strings with properties being tweened (including delayed or paused) */ public static function getTweens(p_scope:Object):Array { var i:Number; var pName:String; var tList:Array = new Array(); for (i = 0; i<_tweenList.length; i++) { if (_tweenList[i].scope == p_scope) { for (pName in _tweenList[i].properties) tList.push(pName); } } return tList; } /** * Return the number of properties being tweened for this object * * @param p_scope Object Target object * @return Number Total count of properties being tweened (including delayed or paused) */ public static function getTweenCount(p_scope:Object):Number { var i:Number; var c:Number = 0; for (i = 0; i<_tweenList.length; i++) { if (_tweenList[i].scope == p_scope) { c += AuxFunctions.getObjectLength(_tweenList[i].properties); } } return c; } /** * Return the current tweener version * * @return String The number of the current Tweener version */ public static function getVersion():String { return "AS2 1.25.57"; } /** * Return the name for the controller movieclip * * @return String The number of the current Tweener version */ public static function getControllerName():String { return "__tweener_controller__"+Tweener.getVersion(); } // ================================================================================================================================== // DEBUG functions ------------------------------------------------------------------------------------------------------------------ public static function debug_getList():String { var ttl:String = ""; var i:Number; var pName:String; for (i = 0; i<_tweenList.length; i++) { ttl += "["+i+"] ::\n"; for (pName in _tweenList[i].properties) { ttl += " " + pName +" -> " + _tweenList[i].properties[pName].valueComplete + "\n"; } } return ttl; } } YLoaderStatus: X:\Clientes\Diamond\campanhas\2007\revista_primavera_verao07\Programacao\Classes\LoaderStatus.asimport mx.utils.Delegate; class LoaderStatus { //private var loader_mc_status:MovieClip; private var target_mc:MovieClip; private var attach:String ; // Clipe da library private var attach_mc:MovieClip; private var attach_display:MovieClip; private var depth:Number; private var timer:Number; public function LoaderStatus(target:MovieClip, depth:Number, attach:String){ attach_mc = target; this.depth = depth; this.attach = attach; } /** * Exibe o status de download de um movieclip * * @usage LoaderStatus.display( MovieClip ) * @param MovieClip * @return Nada */ public function display( target:MovieClip, x:Number, y:Number){ //if(typeof loader_mc_status != "movieclip") loader_mc_status = _root.createEmptyMovieClip("$loader_mc_status",-322); target_mc = target; attach_display = attach_mc.attachMovie(attach,"$attach",depth,{_x:x, _y:y}); start(); } private function start( Void ):Void{ clearInterval(timer); //loader_mc_status.onEnterFrame = Delegate.create(this,onLoadProgress); timer = setInterval(Delegate.create(this,onLoadProgress),100); } private function onLoadProgress( Void ):Void{ var bt:Number = target_mc.getBytesTotal(); var bl:Number = target_mc.getBytesLoaded(); var r:Number = Math.round(bt/bl*100); if(bl > 0 && bl == bt){ onLoadInit(); } } private function onLoadInit( Void ):Void{ clearInterval(timer); kill(); } private function kill( Void ):Void{ attach_display.removeMovieClip(); } }`Loader: X:\Clientes\Diamond\campanhas\2007\revista_primavera_verao07\Programacao\Classes\Loader.asimport mx.utils.Delegate; import mx.events.EventDispatcher; class Loader { //public var loadAtual:Number; //índice da loads_array original private var nItens:Number; public var loads_array:Array; private var indiceAtual:Number; //índice da loads_array atual private var loader_mcl:MovieClipLoader; private var loaderMcl_obj:Object; private var dispatchEvent:Function; private var addEventListener:Function; private var removeEventListener:Function; public var onInit:Function; public var onLoadStart:Function; public var onLoadProgress:Function; public var onLoadComplete:Function; public var onLoadInit:Function; public var onEnd:Function; function Loader( ) { loaderMcl_obj = new Object(); loaderMcl_obj.onLoadInit = Delegate.create(this,carregou); loaderMcl_obj.onLoadError = Delegate.create(this,carregou); loaderMcl_obj.onLoadProgress = Delegate.create(this,progesso); loader_mcl = new MovieClipLoader(); loader_mcl.addListener(loaderMcl_obj); EventDispatcher.initialize( this ); addEventListener("onInit", this); // início dos downloads addEventListener("onLoadStart", this); // qdo um download começa addEventListener("onLoadProgress", this); // enquanto carrega addEventListener("onLoadComplete", this); // qdo um download termina addEventListener("onLoadInit", this); // qdo o target está pronto addEventListener("onEnd", this); // fim dos downloads } public function iniciar(vloads_array:Array):Void { loads_array = vloads_array; nItens = loads_array.length; var i:Number; for (i=0; i> 16; } /** * Gets the G (00xx00) bits from a number * * @param p_num Number Color number (ie, 0xffff00) * @return Number The G value */ public static function numberToG(p_num:Number):Number { return (p_num & 0xff00) >> 8; } /** * Gets the B (0000xx) bits from a number * * @param p_num Number Color number (ie, 0xffff00) * @return Number The B value */ public static function numberToB(p_num:Number):Number { return (p_num & 0xff); } /** * Checks whether a string is on an array * * @param p_string String String to search for * @param p_array Array Array to be searched * @return Boolean Whether the array contains the string or not */ public static function isInArray(p_string:String, p_array:Array):Boolean { var l:Number = p_array.length; for (var i:Number = 0; i < l; i++) { if (p_array[i] == p_string) return true; } return false; } /** * Returns the number of properties an object has * * @param p_object Object Target object with a number of properties * @return Number Number of total properties the object has */ public static function getObjectLength(p_object:Object):Number { var totalProperties:Number = 0; for (var pName:String in p_object) totalProperties ++; return totalProperties; } }~caurina.transitions.TweenListObj: X:\ActionScript Classes\com\caurina\transitions\TweenListObj.as/** * The tween list object. Stores all of the properties and information that pertain to individual tweens. * * @author Nate Chatellier, Zeh Fernando * @version 1.0.4 */ class caurina.transitions.TweenListObj { public var scope :Object; // Object affected by this tweening public var properties :Object; // List of properties that are tweened (PropertyInfoObj instances) // .valueStart :Number // Initial value of the property // .valueComplete :Number // The value the property should have when completed public var auxProperties :Object; // Dynamic object containing properties used on this tweening public var timeStart :Number; // Time when this tweening should start public var timeComplete :Number; // Time when this tweening should end public var useFrames :Boolean; // Whether or not to use frames instead of time public var transition :Function; // Equation to control the transition animation public var onStart :Function; // Function to be executed on the object when the tween starts (once) public var onUpdate :Function; // Function to be executed on the object when the tween updates (several times) public var onComplete :Function; // Function to be executed on the object when the tween completes (once) public var onOverwrite :Function; // Function to be executed on the object when the tween is overwritten public var onStartParams :Array; // Array of parameters to be passed for the event public var onUpdateParams :Array; // Array of parameters to be passed for the event public var onCompleteParams :Array; // Array of parameters to be passed for the event public var onOverwriteParams :Array; // Array of parameters to be passed for the event public var rounded :Boolean; // Use rounded values when updating public var isPaused :Boolean; // Whether or not this tween is paused public var timePaused :Number; // Time when this tween was paused public var isCaller :Boolean; // Whether or not this tween is a "caller" tween public var count :Number; // Number of times this caller should be called public var timesCalled :Number; // How many times the caller has already been called ("caller" tweens only) public var waitFrames :Boolean; // Whether or not this caller should wait at least one frame for each call execution ("caller" tweens only) public var skipUpdates :Number; // How many updates should be skipped (default = 0; 1 = update-skip-update-skip...) public var updatesSkipped :Number; // How many updates have already been skipped public var hasStarted :Boolean; // Whether or not this tween has already started // ================================================================================================================================== // CONSTRUCTOR function ------------------------------------------------------------------------------------------------------------- /** * Initializes the basic TweenListObj * * @param p_scope Object Object affected by this tweening * @param p_timeStart Number Time when this tweening should start * @param p_timeComplete Number Time when this tweening should end * @param p_useFrames Boolean Whether or not to use frames instead of time * @param p_transition Function Equation to control the transition animation */ function TweenListObj(p_scope:Object, p_timeStart:Number, p_timeComplete:Number, p_useFrames:Boolean, p_transition:Function) { scope = p_scope; timeStart = p_timeStart; timeComplete = p_timeComplete; useFrames = p_useFrames; transition = p_transition; // Other default information auxProperties = new Object(); properties = new Object(); isPaused = false; timePaused = undefined; isCaller = false; updatesSkipped = 0; timesCalled = 0; skipUpdates = 0; hasStarted = false; } // ================================================================================================================================== // OTHER functions ------------------------------------------------------------------------------------------------------------------ /** * Clones this tweening and returns the new TweenListObj * * @param omitEvents Boolean Whether or not events such as onStart (and its parameters) should be omitted * @return TweenListObj A copy of this object */ public function clone(omitEvents:Boolean):TweenListObj { var nTween:TweenListObj = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition); nTween.properties = new Object(); for (var pName:String in properties) { nTween.properties[pName] = properties[pName].clone(); } nTween.skipUpdates = skipUpdates; nTween.updatesSkipped = updatesSkipped; if (!omitEvents) { nTween.onStart = onStart; nTween.onUpdate = onUpdate; nTween.onComplete = onComplete; nTween.onOverwrite = onOverwrite; nTween.onStartParams = onStartParams; nTween.onUpdateParams = onUpdateParams; nTween.onCompleteParams = onCompleteParams; nTween.onOverwriteParams = onOverwriteParams; } nTween.rounded = rounded; nTween.isPaused = isPaused; nTween.timePaused = timePaused; nTween.isCaller = isCaller; nTween.count = count; nTween.timesCalled = timesCalled; nTween.waitFrames = waitFrames; nTween.hasStarted = hasStarted; return nTween; } /** * Returns this object described as a String. * * @return String The description of this object. */ public function toString():String { var returnStr:String = "\n[TweenListObj "; returnStr += "scope:" + String(scope); returnStr += ", properties:"; var isFirst:Boolean = true; for (var i:String in properties) { if (!isFirst) returnStr += ","; returnStr += "[name:"+properties[i].name; returnStr += ",valueStart:"+properties[i].valueStart; returnStr += ",valueComplete:"+properties[i].valueComplete; returnStr += "]"; isFirst = false; } // END FOR returnStr += ", timeStart:" + String(timeStart); returnStr += ", timeComplete:" + String(timeComplete); returnStr += ", useFrames:" + String(useFrames); returnStr += ", transition:" + String(transition); if (skipUpdates) returnStr += ", skipUpdates:" + String(skipUpdates); if (updatesSkipped) returnStr += ", updatesSkipped:" + String(updatesSkipped); if (onStart) returnStr += ", onStart:" + String(onStart); if (onUpdate) returnStr += ", onUpdate:" + String(onUpdate); if (onComplete) returnStr += ", onComplete:" + String(onComplete); if (onOverwrite) returnStr += ", onOverwrite:" + String(onOverwrite); if (onStartParams) returnStr += ", onStartParams:" + String(onStartParams); if (onUpdateParams) returnStr += ", onUpdateParams:" + String(onUpdateParams); if (onCompleteParams) returnStr += ", onCompleteParams:" + String(onCompleteParams); if (onOverwriteParams) returnStr += ", onOverwriteParams:" + String(onOverwriteParams); if (rounded) returnStr += ", rounded:" + String(rounded); if (isPaused) returnStr += ", isPaused:" + String(isPaused); if (timePaused) returnStr += ", timePaused:" + String(timePaused); if (isCaller) returnStr += ", isCaller:" + String(isCaller); if (count) returnStr += ", count:" + String(count); if (timesCalled) returnStr += ", timesCalled:" + String(timesCalled); if (waitFrames) returnStr += ", waitFrames:" + String(waitFrames); if (hasStarted) returnStr += ", hasStarted:" + String(hasStarted); returnStr += "]\n"; return returnStr; } } -Actions for loader: Frame 41 of Layer Name barragotoAndPlay(17);-2d Actions for Scene 1: Frame 1 of Layer Name ac Stage.showMenu = false; Stage.scaleMode = "noScale"; System.useCodepage = true; /** First Preloader */ onEnterFrame = function( Void ):Void{ var t:Number = this.getBytesTotal(); var l:Number = this.getBytesLoaded(); var r:Number = Math.round(l/t*100); pc_txt.text = "Carregando... " + r + "%"; if(t == l && r > 15){ delete this.onEnterFrame; gotoAndStop(10); } } stop(); }o o o o o o o .p Lp vp p pWActions for loading_MC: Frame 1 of Layer Name Layer 3var cores_array:Array = new Array(0xB57163,0xA3D6C8,0xE0E6A4,0xCBBBD9,0xFFDFAD,0x8ABCCC,0xCC99CC); var n:Number = cores_array.length; loader_mc.tintTo(cores_array[Math.floor(n*Math.random())],100,0.5,"linear",0,colore); function colore() { loader_mc.tintTo(cores_array[Math.floor(n*Math.random())],100,1.5,"linear",5*Math.random(),colore); }WlWmWmWm.Actions for Scene 1: Frame 10 of Layer Name acvar magazine:Magazine = new Magazine(this); function watchVideo( obj:MovieClip ):Void{ this.onEnterFrame = function(){ if(obj._name != "$mc_movie") { _root.video.onClose(); delete this.onEnterFrame; } } }; ... .?.M. g