;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0000.PSH: kPS_DIFFUSE_PER_PIXEL_ILLUM ; ; Texture alpha controls glow. Glow is stored in destination pixel's ; alpha channel. ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ;==---------------------------------------------------------------------------- ; ; Blend diffuse with texel, write glow to alpha ; ;==---------------------------------------------------------------------------- mul r0.rgb,v0.rgb,t0.rgb lrp r0.rgb,t0.a ,t0.rgb,r0.rgb + mov r0.a ,t0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0001.PSH: kPS_DIFFUSE_PER_PIXEL_ENV_A ; ; This pixel shader is an additive environment map. ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ; tex t1 ;==---------------------------------------------------------------------------- ; ; Calculate additive env ; ;==---------------------------------------------------------------------------- mad r0.rgb,t1.rgb,t0.a,t0.rgb mul r0.rgb,r0.rgb,v0.rgb + mov r0.a,c1.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0002.PSH: kPS_DIFFUSE_PER_PIXEL_ENV ; ; This pixel shader is a normal environment map. ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ; tex t1 ;==---------------------------------------------------------------------------- ; ; Calculate normal env ; ;==---------------------------------------------------------------------------- lrp r0.rgb,t0.a,t1.rgb,t0.rgb mul r0.rgb,r0.rgb,v0.rgb + mov r0.a,c1.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0003.PSH: kPS_ALPHA_PER_PIXEL_ILLUM ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ;==---------------------------------------------------------------------------- ; ; Write texel as is ; ;==---------------------------------------------------------------------------- mov r0,t0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0004.PSH: kPS_ALPHA_PER_POLY_ILLUM ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ;==---------------------------------------------------------------------------- ; ; Write texel as is ; ;==---------------------------------------------------------------------------- mul r0.rgb,v0.rgb,t0.rgb lrp r0.rgb,t0.a ,t0.rgb,r0.rgb + mov r0.a ,t0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0005.PSH: kPS_ALPHA_PER_POLY_ENV ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ; tex t1 ;==---------------------------------------------------------------------------- ; ; Calculate env ; ;==---------------------------------------------------------------------------- lrp r0.rgb,c0.a, t1.rgb,t0.rgb mul r0.rgb,r0.rgb,v0.rgb + mov r0.a, t0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0006.PSH: kPS_DETAIL ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ; r0 - loaded prior ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t2 ;==---------------------------------------------------------------------------- ; ; Add detail map ; ;==---------------------------------------------------------------------------- mul_x2 r0.rgb,r0.rgb,t2.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0007.PSH: kPS_DIFFUSE ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ;==---------------------------------------------------------------------------- ; ; Perform diffuse blend ; ;==---------------------------------------------------------------------------- mul r0.rgb,t0.rgb,v0.rgb + mov r0.a,c0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0008.PSH: kPS_ALPHA ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ;==---------------------------------------------------------------------------- ; ; Perform alpha blend ; ;==---------------------------------------------------------------------------- mul r0,t0,v0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0009.PSH: kPS_FULL_POST_EFFECT ; ; This shader is the final post effect. It blends between the source diffuse ; buffer and the depth of field source before adding in the glows. After all ; that the fragment is shifted into the (closest match) PS2 colour space. ; ; Conversion algorithm: ; ; L = RGB * vector3( .2989,.5866,.1144 ) ; L = 0.925 * L + 19.25/255.0 ; RGB = L + 1.115 * (RGB - L) ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 = depth of field map ; tex t1 = rendered frame ; tex t2 = glow buffer ; tex t3 = z-buffer ;==------------------------------------------------------------------------------------------ ; ; Blend between depth of field and fragment( some colour conversion co-issued ) ; ;==------------------------------------------------------------------------------------------ ; dp3 r1.rgb,c4.rgb,t3.rgb + mov_d2 r0.a,t3.a ; 0. r0.a = band index, r1.rgb = g cnd v0.rgb,r0.a,r1.rgb,c5.rgb ; 1. reject all but last z-band ; lrp r1,v0.b,t0,t1 ; 2. lrp between depth and diffuse ; (comment out to see gradient) ;==------------------------------------------------------------------------------------------ ; ; Blend in self illumination ; ;==------------------------------------------------------------------------------------------ ; add r0.rgb,t2.rgb,r1.rgb + sub r0.a,t1.a,c1.b ; 3. add glow to frame / set mask cnd_x2 r0.rgb,r0.a,r1.rgb,r0.rgb ; 4. glow cutoff( saturates ) ; ;==------------------------------------------------------------------------------------------ ; ; Adjust pixel luminance ; ;==------------------------------------------------------------------------------------------ ; mul v0.rgb,r0.rgb,c2.rgb + mov v0.a,c2.a ; 5. mad v0.rgb,v0.rgb,c3.b,v0.a ; 6. sub r0.rgb,r0.rgb,v0.rgb ; 7. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0010.PSH: kPS_XFC ; ;==---------------------------------------------------------------------------- ; ; Saturate colours ; ;==---------------------------------------------------------------------------- mul r0.rgb,r0.rgb,c7.a xfc zero, zero, r0, zero, zero, zero, r0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0011.PSH: kPS_XFC_SATURATE ; ;==---------------------------------------------------------------------------- ; ; Saturate colours ; ;==---------------------------------------------------------------------------- ; v1 = specular channel used for fog xfc v1.a,v1_sat.rgb,r0.rgb,zero_sat.rgb,zero_sat.rgb,zero_sat.rgb,r0_sat.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Pixel shader: kPS_PROJ_PRE_MULTIPLY ; ;==---------------------------------------------------------------------------- mul r1.rgb,t0.rgb,v0.rgb + ; R1.rgb = T0.rgb * V0.rgb mul r1.a ,c7.a ,t3.a ; R1.a = V0.a * T3.a lrp r0.rgb,r1.a,t0.rgb,r1.rgb ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0013.PSH: kPS_DIFFUSE_PER_PIXEL_ILLUM_PROJ ; ; Texture alpha controls glow. Glow is stored in destination pixel's ; alpha channel. ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj uses blue channel to avoid DXT compression artifacts ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; tex t0 ; tex t3 ; ;==---------------------------------------------------------------------------- ; ; Blend projective texture ; ;==---------------------------------------------------------------------------- mul r1.rgb,t0.rgb,v0.rgb + ; r1.rgb = t0.rgb * v0.rgb mul_d2 r1.a,v0.a,t3.b ; r1.a = v0.a * t3.b lrp r0.rgb,r1_sat.a,t0.rgb,r1.rgb ;==---------------------------------------------------------------------------- ; ; Blend diffuse with texel, write glow to alpha ; ;==---------------------------------------------------------------------------- lrp r0.rgb,t0.a ,t0.rgb,r0.rgb + mov r0.a ,t0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0014.PSH: kPS_DIFFUSE_PER_PIXEL_ENV_A_PROJ ; ; This pixel shader is an additive environment map. ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ; tex t1 ; tex t3 ;==---------------------------------------------------------------------------- ; ; Blend projective texture ; ;==---------------------------------------------------------------------------- mul r1.rgb,t0.rgb,v0.rgb + ; r1.rgb = t0.rgb * v0.rgb mul_d2 r1.a,v0.a,t3.b ; r1.a = v0.a * t3.b lrp r0.rgb,r1_sat.a,t0.rgb,r1.rgb ;==---------------------------------------------------------------------------- ; ; Calculate additive env ; ;==---------------------------------------------------------------------------- mul r1.rgb,t1.rgb,v0.rgb mad r0.rgb,r1.rgb,t0.a,r0.rgb ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0015.PSH: kPS_DIFFUSE_PER_PIXEL_ENV_PROJ ; ; This pixel shader is a normal environment map. ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ; tex t1 ; tex t3 ;==---------------------------------------------------------------------------- ; ; Calculate normal env ; ;==---------------------------------------------------------------------------- lrp r0.rgb,t0.a,t1.rgb,t0.rgb + mov r0.a,c1.a ;==---------------------------------------------------------------------------- ; ; Blend projective texture ; ;==---------------------------------------------------------------------------- mul r1.rgb,r0.rgb,v0.rgb + ; r1.rgb = t0.rgb * v0.rgb mul_d2 r1.a,v0.a,t3.b ; r1.a = v0.a * t3.b lrp r0.rgb,r1_sat.a,t0.rgb,r1.rgb ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0016.PSH: kPS_ALPHA_PER_PIXEL_ILLUM_PROJ ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ; tex t3 ;==---------------------------------------------------------------------------- ; ; Blend projective texture ; ;==---------------------------------------------------------------------------- mul r1.rgb,t0.rgb,v0.rgb + ; r1.rgb = t0.rgb * v0.rgb mul_d2 r1.a,v0.a,t3.b ; r1.a = v0.a * t3.b lrp r0.rgb,r1_sat.a,t0.rgb,r1.rgb ;==---------------------------------------------------------------------------- ; ; Write texel as is ; ;==---------------------------------------------------------------------------- mul r0.rgb,r0.rgb,t0.rgb lrp r0.rgb,t0.a ,t0.rgb,r0.rgb + mov r0.a ,t0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0017.PSH: kPS_ALPHA_PER_PIXEL_ILLUM_PROJ ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ; tex t3 ;==---------------------------------------------------------------------------- ; ; Blend projective texture ; ;==---------------------------------------------------------------------------- mul r1.rgb,t0.rgb,v0.rgb + ; r1.rgb = t0.rgb * v0.rgb mul_d2 r1.a,v0.a,t3.b ; r1.a = v0.a * t3.b lrp r0.rgb,r1_sat.a,t0.rgb,r1.rgb ;==---------------------------------------------------------------------------- ; ; Write texel as is ; ;==---------------------------------------------------------------------------- mul r0.rgb,r0.rgb,t0.rgb lrp r0.rgb,t0.a ,t0.rgb,r0.rgb + mov r0.a ,t0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0018.PSH: kPS_ALPHA_PER_POLY_ILLUM_PROJ ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ; tex t3 ;==---------------------------------------------------------------------------- ; ; Blend projective texture ; ;==---------------------------------------------------------------------------- mul r1.rgb,t0.rgb,v0.rgb + ; r1.rgb = t0.rgb * v0.rgb mul_d2 r1.a,v0.a,t3.b ; r1.a = v0.a * t3.b lrp r0.rgb,r1_sat.a,t0.rgb,r1.rgb ;==---------------------------------------------------------------------------- ; ; Write texel as is ; ;==---------------------------------------------------------------------------- mul r0.a,r0.a,t0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0019.PSH: kPS_ALPHA_PER_POLY_ENV_PROJ ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ; tex t1 ; tex t3 ;==---------------------------------------------------------------------------- ; ; Blend projective texture ; ;==---------------------------------------------------------------------------- mul r1.rgb,t0.rgb,v0.rgb + ; r1.rgb = t0.rgb * v0.rgb mul_d2 r1.a,v0.a,t3.b ; r1.a = v0.a * t3.b lrp r0.rgb,r1_sat.a,t0.rgb,r1.rgb ;==---------------------------------------------------------------------------- ; ; Calculate env ; ;==---------------------------------------------------------------------------- lrp r1.rgb,c0.a, t1.rgb,t0.rgb mul r0.rgb,r1.rgb,r0.rgb + mov r0.a, t0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0021.PSH: kPS_DIFFUSE_PROJ ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ;==------------------------------------------------------------------------------------------ ; ; Shift colours to match PS2 ; ;==------------------------------------------------------------------------------------------ ; mul v0.rgb,t0.rgb,c2.rgb + ; 6. v0.rgb = RGB * vector3( .2989,.5866,.1144 ) = L mov v0.a ,c2.a ; v0.a = 19.25/255.0 ; mad v0.rgb,v0.rgb,c3.b,v0.a ; 7. v0.rgb = L = L * 0.925 + 19.25/255.0 ; sub r1.rgb,t0.rgb,v0.rgb ; 8. v1.rgb = (RGB-L) mad r0.rgb,r1.rgb,c3.a,v0.rgb ; 9. r0.rgb = (RGB-L) * 1.115 + L ; ; ; a hack for now ; ; mul v0.rgb,r0.rgb,c2.rgb + ; mov v0.a ,c2.a ; ; mad_d2 v0.rgb,v0.rgb,c3.b,v0.a ; sub_x2 r0.rgb,r0.rgb,v0.rgb ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0021.PSH: kPS_DIFFUSE_PROJ ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ; tex t3 ;==---------------------------------------------------------------------------- ; ; Blend projective texture ; ;==---------------------------------------------------------------------------- mul r1.rgb,t0.rgb,v0.rgb + ; r1.rgb = t0.rgb * v0.rgb mul_d2 r1.a,v0.a,t3.b ; r1.a = v0.a * t3.b lrp r0.rgb,r1_sat.a,t0.rgb,r1.rgb ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0022.PSH: kPS_ALPHA_PROJ ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ; tex t3 ;==---------------------------------------------------------------------------- ; ; Blend projective texture ; ;==---------------------------------------------------------------------------- mul r1.rgb,t0.rgb,v0.rgb + ; r1.rgb = t0.rgb * v0.rgb mul_d2 r1.a,v0.a,t3.b ; r1.a = v0.a * t3.b lrp r0.rgb,r1_sat.a,t0.rgb,r1.rgb + mul r0.a,t0.a,r0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0023.PSH: kPS_XFS_SHADOW (multi-pass) ; ; t0 - diffuse texture ; t1 - env map ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ;==---------------------------------------------------------------------------- ; ; Write black pixel ; ;==---------------------------------------------------------------------------- mov r0,v0 xfc 1-zero, r0, zero, zero, zero, zero, zero ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0024.PSH: kPS_XFS_SHADOW_TEX1 ; ; t0 - diffuse texture ; t1 - env map ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t1 ;==---------------------------------------------------------------------------- ; ; Blend shadows ; ;==---------------------------------------------------------------------------- add r1.a,c0.a,t1.a mul r0.rgb,r0.rgb,r1.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0025.PSH: kPS_XFS_SHADOW_TEX2 ; ; t0 - diffuse texture ; t1 - env map ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t2 ;==---------------------------------------------------------------------------- ; ; Blend shadows ; ;==---------------------------------------------------------------------------- add r1.a,c0.a,t2.a mul r0.rgb,r0.rgb,r1.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0025.PSH: kPS_XFS_SHADOW_TEX3 ; ; t0 - diffuse texture ; t1 - env map ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t3 ;==---------------------------------------------------------------------------- ; ; Blend shadows ; ;==---------------------------------------------------------------------------- add r1.a,c0.a,t3.a mul r0.rgb,r0.rgb,r1.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0027.PSH: kPS_XFS_SHADOW_TEX0 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ;==---------------------------------------------------------------------------- ; ; Isolate desired shadow ; ;==---------------------------------------------------------------------------- ; dp3 r0.rgb,c0.rgb,t0.rgb ; perform dp4 on texel mad r0.a,c0.a,t0.a,r0.b ; R0.a now = 0 if no shadow and 1 otherwise add r0.a,r0.a,v1.b ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0028.PSH: kPS_DEPTH_OF_FIELD ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 = depth of field map ; tex t1 = rendered frame ; tex t3 = z-buffer map ;==---------------------------------------------------------------------------- ; ; Blend = lerp between t1 and t0 using t3.alpha, add t2 ; ;==---------------------------------------------------------------------------- dp3 r0,c0,t3 ; create better alpha range mad r0.a,c0.a,t3.a,r0.b ; <-- this is how to do a dp4 in a pixel shader ; mul r1.a,t3.b,c1.a ; cnd r0.a,r0.a,r1.a,c0.b ; lrp r0,r0.a,t0,t1 ; lerp between t0 and t1( 1.0 = t1 ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0028.PSH: kPS_DISTORTION ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Simple distortion effect ; ;==---------------------------------------------------------------------------- mul r0.rgb,t0.b,v0.rgb + mov r0.a ,c0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0030.PSH: kPS_FORCE_GLOW ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Apply glow cutoff ; ;==---------------------------------------------------------------------------- mul_x2 r0.rgb,c6.rgb,r0.rgb + mov_x2 r0.a,c6.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0007.PSH: kPS_BLITTER ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ;==---------------------------------------------------------------------------- ; ; Perform diffuse blend ; ;==---------------------------------------------------------------------------- mul r0.rgb,t0.rgb,v0.rgb + mov r0.a,c0.a xfc zero, zero, r0, zero, zero, zero, r0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0032.PSH: PER PIXEL POINT LIGHTS ; -------------------------------------------------------------------------- ; ; Formula: ; ; C = 1/sqr(radius) ; V = LightPos-VertPos (per pixel in worldspace) ; D = V dot V (distance to light) ; I = 1-(D*C) (intensity) ; ; c0 = light0 colour ; c1 = light1 colour ; c2 = light2 colour ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; tex t0 = 0: Distance attenuation in volume texture ; tex t1 = 1: Distance attenuation in volume texture ; tex t2 = 2: Distance attenuation in volume texture ; ;==---------------------------------------------------------------------------- ; ; Calculate intensities ; ;==---------------------------------------------------------------------------- ; mul r0.rgb,c0,t0.a ; r0 = LightCol[0]*LightInt[0] mad r0.rgb,c1,t1.a,r0 ; r0 = LightCol[1]*LightInt[1] + r0 mad r0.rgb,c2,t2.a,r0 ; r0 = LightCol[1]*LightInt[1] + r0 add r0.rgb,v0,r0 + ; r0 = Lightmap + vertex colour mov r0.a ,v1.a ; fog intensity ; ;==---------------------------------------------------------------------------- ; ; Use final combiner to calculate blend ; ;==---------------------------------------------------------------------------- xfc zero,zero,r0,zero,zero,zero,r0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0033.PSH: kPS_RGBA_BY_TEX0 ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ;==---------------------------------------------------------------------------- ; ; Perform diffuse blend ; ;==---------------------------------------------------------------------------- mul r0,t0,v0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0034.PSH: kPS_INTENSITY_MAP ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t1 ; tex t2 ;==---------------------------------------------------------------------------- ; ; Munge intensity map so addsigned blend can work ; ;==---------------------------------;------------------------------------------ ; ; ; dp3 r0.rgb,t0.rgb,c0.rgb + ; r0 = light = replicate blue into r0 ; add r0.a ,t0.b ,c1.a ; r0 = r0+1/255 (never allow =128) ; cnd r0 ,r0.a ,r0_bias,-r0 ; r0 = (r0.a>.5) ? bright : dark ; ; ;==---------------------------------; MULTIPLY DECAL AND FRAME BUFFER --------- ; mul r0.rgb,t1.rgb,t0.a ; multiply decal against frame buffer add r0.rgb,r0.rgb,r0.rgb + ; double result mov r0.a,t0.a ; alpha from t0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0035.PSH: kPS_SUBTRACTIVE_MAP ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ;==---------------------------------------------------------------------------- ; ; Write out subtractive pixel( munge if necessary ) ; ;==---------------------------------------------------------------------------- ; mul r0,t0,v0 ; half the input intensity( doubled in post effect ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0036.PSH: kPS_DISTORTION_ENV ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Environment mapped distortion effect( fixed alpha ) ; ;==---------------------------------------------------------------------------- mul r1.rgb,t0.rgb,c7.a ; c7 = distortion mad r0.rgb,t1.rgb,c0.a,r1.rgb ; r0 = t1 * env + distortion mad r0.rgb,r0.rgb,v0.rgb,c6.rgb + ; r0 = r0 * vertex colour mov r0.a,c0.a lrp r0.rgb,r0.a,t0.rgb,r0.rgb + mov_x2 r0.a,c0.b ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0037.PSH: kPS_PROJ_SHADOW1 ; ; Diffuse texture is multiplied by the result of the projected shadow ; ; t0 - diffuse texture ; t1 - proj shadow (128==1.0, so can brighten or darken) ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ; tex t1 ; tex t2 ;==---------------------------------------------------------------------------- ; ; Blend diffuse with texel, write glow to alpha ; ;==---------------------------------------------------------------------------- mul_x2 r0.rgb,t0.rgb,t1.b + mov r0.a,t0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0037.PSH: kPS_PROJ_SHADOW2 ; ; Diffuse texture is multiplied by the result of the first projected shadow, ; and then it's multiplied again by the result of the second projected ; shadow. ; ; t0 - diffuse texture ; t1 - proj shadow (128==1.0, so can brighten or darken) ; t2 - second proj shadow ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ; tex t1 ; tex t2 ;==---------------------------------------------------------------------------- ; ; Blend diffuse with texel, write glow to alpha ; ;==---------------------------------------------------------------------------- mul_x2 r1.rgb,t0.rgb,t1.b mul_x2 r0.rgb,r1.rgb,t2.b + mov r0.a,t0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0007.PSH: kPS_BLITTER_x2 ; ; t0 - diffuse texture ; t1 - env map ; t2 - detail ; t3 - proj ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ; tex t1 ;==---------------------------------------------------------------------------- ; ; Perform diffuse blend ; ;==---------------------------------------------------------------------------- mul r0.rgb,t0.rgb,v0.rgb + mov r0.a,c0.a xfc zero, zero, r0, zero, zero, zero, r0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0032.PSH: PER PIXEL POINT LIGHTS ; -------------------------------------------------------------------------- ; ; Formula: ; ; C = 1/sqr(radius) ; V = LightPos-VertPos (per pixel in worldspace) ; D = V dot V (distance to light) ; I = 1-(D*C) (intensity) ; ; c0 = light0 colour ; c1 = light1 colour ; c2 = light2 colour ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; tex t0 = 0: Distance attenuation in volume texture ; tex t1 = 1: Distance attenuation in volume texture ; tex t2 = 2: Distance attenuation in volume texture ; tex t3 = projective map ; ;==---------------------------------------------------------------------------- ; ; Calculate intensities ; ;==---------------------------------------------------------------------------- ; mul r0.rgb,c0.rgb,t0.a ; r0.rgb = LightCol[0]*LightInt[0] mad r0.rgb,c1.rgb,t1.a,r0.rgb ; r0.rgb = LightCol[1]*LightInt[1] + r0 mad r0.rgb,c2.rgb,t2.a,r0.rgb ; r0.rgb = LightCol[1]*LightInt[1] + r0 ; add r0.rgb,v0.rgb,r0.rgb + ; r0.rgb = Lighting + Vertex Colour mul_d2 r0.a,v0.a,t3.b ; r0.a = Attenuation * projmap ; lrp r0.rgb,r0_sat.a,c0.a,r0.rgb + ; mov r0.a,v1.a ; ; ;==---------------------------------------------------------------------------- ; ; Use final combiner to calculate blend ; ;==---------------------------------------------------------------------------- xfc zero,zero,r0,zero,zero,zero,r0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0041.PSH: Per-pixel-lit punchthru alpha ; ; This shader accomodates punchthru alpha when building the lightmap ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; tex t3 = punchthru texture ; ;==---------------------------------------------------------------------------- ; ; If alpha is zero it must be white, anything else must be black ; ;==---------------------------------------------------------------------------- ; ; ; add r0.a,t0.a,c0.b ; r0.a = t0.a + (0.5-0.5/255) ; cnd r0,r0.a,c0,c1 ; r0.a = (r0.a > 0.5) ? 0.0 : 1.0 ; ; ;==---------------------------------------------------------------------------- ; ; Use final combiner to calculate blend ; ;==---------------------------------------------------------------------------- xfc zero,zero,r0,zero,zero,zero,r0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0037.PSH: kPS_PROJ_SHADOW1 ; ; Diffuse texture is multiplied by the result of the projected shadow ; ; t0 - diffuse texture ; t1 - proj shadow (128==1.0, so can brighten or darken) ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ; tex t1 ;==---------------------------------------------------------------------------- ; ; Blend diffuse with texel, write glow to alpha ; ;==---------------------------------------------------------------------------- mov r0,t0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0043.PSH: kPS_PROJ_SHADOW2_TO_LIGHTMAP ; ; Diffuse texture is multiplied by the result of the first projected shadow, ; and then it's multiplied again by the result of the second projected ; shadow. ; ; t0 - diffuse texture ; t1 - proj shadow (128==1.0, so can brighten or darken) ; t2 - second proj shadow ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tex t0 ; tex t1 ; tex t2 ;==---------------------------------------------------------------------------- ; ; Blend diffuse with texel, write glow to alpha ; ;==---------------------------------------------------------------------------- mul_x2 r0,t0.a,t1.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PS0044.PSH: Per pixel lighting fogging code ; ; A fog map is produced where RGB is the colour and A is the intensity ; after that it's a simple SRCALPHA/INVSRCALPHA to blit the quad over ; the scene. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Blend diffuse with texel, write glow to alpha ; ;==---------------------------------------------------------------------------- ; mov r0.rgb,v1.rgb + mov r0.a,v1.a ; mov r0,v1 xfc zero,zero,r0,zero,zero,zero,r0.a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; VS0000.VSH: oPos_Rigid ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; sge oD1.xyz,v0,v0 ; oD1.xyz = 1.0 (no fog) slt oD1.w ,v0,v0 ; oD1.w = 0.0 add r5,v3,c-50 ; r5 = baked lighting (c-4 = brightness) ; ;==---------------------------------------------------------------------------- ; ; Transform vertex ; ;==---------------------------------------------------------------------------- ; ; TRANSFORM WORLD TO CLIP ; mul r0,c92,v0.x ; dp4 r0.x,v0,c92 mad r0,c93,v0.y,r0 ; dp4 r0.y,v0,c93 mad r0,c94,v0.z,r0 ; dp4 r0.z,v0,c94 mad r0,c95,v0.w,r0 ; dp4 r0.w,v0,c95 ; mov oPos,r0 ; mov r9,r0 ; r9 = pos in clip space ; ; ------------------------- ; TRANSFORM LOCAL TO WORLD/VIEW ; mul r11,c0,v0.x ; dp4 r11.x,v0,c0 mad r11,c1,v0.y,r11 ; dp4 r11.y,v0,c1 mad r11,c2,v0.z,r11 ; dp4 r11.z,v0,c2 mad r11,c3,v0.w,r11 ; dp4 r11.w,v0,c3 ; ; r11 = pos in world/view space ; ; ------------------------- ; TRANSFORM NORMAL TO WORLD/VIEW SPACE ; mul r10.xyz,c0,v1.x ; dp3 r10.x,v1,c0 mad r10.xyz,c1,v1.y,r10 ; dp3 r10.y,v1,c1 mad r10.xyz,c2,v1.z,r10 ; dp3 r10.z,v1,c2 sge r10.w ,v1,v1 ; ; r10 = normal in world/view space ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_OPOS_SKINNED ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; sge oD1.xyz,v0,v0 ; oD1.xyz = 1.0 (no fog) slt oD1.w ,v0,v0 ; oD1.w = 0.0 mov r5 ,c83 ; r5 = ambient add r5,r5,c-50 ; c-4 = brightness ; ;==---------------------------------------------------------------------------- ; ; Apply skin to vertex ; ;==---------------------------------------------------------------------------- ; ; TRANSFORM THROUGH BONES ; mov a0.x,v3.x ; Bone 0 mul r0,c[a0.x+0],v0.x ; dp4 r0.x,v0,c[a0.x+0] mad r0,c[a0.x+1],v0.y,r0 ; dp4 r0.y,v0,c[a0.x+1] mad r0,c[a0.x+2],v0.z,r0 ; dp4 r0.z,v0,c[a0.x+2] mad r0,c[a0.x+3],v0.w,r0 ; dp4 r0.w,v0,c[a0.x+3] ; mov a0.x,v3.y ; Bone 1 mul r1,c[a0.x+0],v0.x ; dp4 r1.x,v0,c[a0.x+0] mad r1,c[a0.x+1],v0.y,r1 ; dp4 r1.y,v0,c[a0.x+1] mad r1,c[a0.x+2],v0.z,r1 ; dp4 r1.z,v0,c[a0.x+2] mad r1,c[a0.x+3],v0.w,r1 ; dp4 r1.w,v0,c[a0.x+3] ; ; ADD WEIGHTS mul r0.xyz,r0.xyz,v2.z ; mul r1.xyz,r1.xyz,v2.w ; add r0.xyz,r0.xyz,r1.xyz ; sge r0.w,v0,v0 ; mov r11,r0 ; R11 = pos in world space ; ; TRANSFORM WORLD TO CLIP ; mul r1,c92,r0.x ; dp4 r1.x, r0, c92 mad r1,c93,r0.y,r1 ; dp4 r1.y, r0, c93 mad r1,c94,r0.z,r1 ; dp4 r1.z, r0, c94 mad r1,c95,r0.w,r1 ; dp4 r1.w, r0, c95 ; mov oPos,r1 ; mov r9,r1 ; R9 = pos in clip space ; ;==---------------------------------------------------------------------------- ; ; Apply skin to normal: r10 = result ; ;==---------------------------------------------------------------------------- ; ; TRANSFORM BONES ; mov a0.x,v3.x ; Bone 0 mul r0.xyz,c[a0.x+0],v1.x ; dp3 r0.x,v1,c[a0.x+0] mad r0.xyz,c[a0.x+1],v1.y,r0 ; dp3 r0.y,v1,c[a0.x+1] mad r0.xyz,c[a0.x+2],v1.z,r0 ; dp3 r0.z,v1,c[a0.x+2] ; mov a0.x,v3.y ; Bone 1 mul r1.xyz,c[a0.x+0],v1.x ; dp3 r1.x,v1,c[a0.x+0] mad r1.xyz,c[a0.x+1],v1.y,r1 ; dp3 r1.y,v1,c[a0.x+1] mad r1.xyz,c[a0.x+2],v1.z,r1 ; dp3 r1.z,v1,c[a0.x+2] ; ; ADD WEIGHTS mul r0.xyz,r0.xyz,v2.z ; mul r1.xyz,r1.xyz,v2.w ; ; SAVE OFF NORMAL add r10.xyz,r0.xyz,r1.xyz ; mov r10.w, r0.w ; R10 = normal in world space ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; VS0002.VSH: kVS_OD0_DIRECTIONAL ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Apply lighting ; ;==---------------------------------------------------------------------------- ;-------------------------------------------------------------------------- ; ; Calculate intensities ; dp3 r1.x,-c84,r10 ; Light 0 - r2 comes from previous shader fragment dp3 r1.y,-c85,r10 ; Light 1 dp3 r1.z,-c86,r10 ; Light 2 dp3 r1.w,-c87,r10 ; Light 3 ; ; Clamp intensities ; slt r3, r1, r1 max r1.x,r1.x,r3 max r1.y,r1.y,r3 max r1.z,r1.z,r3 max r1.w,r1.w,r3 ;-------------------------------------------------------------------------- ; ; Calculate colours ; dp4 r0.x,c88,r1 ; Light 0 dp4 r0.y,c89,r1 ; Light 1 dp4 r0.z,c90,r1 ; Light 2 dp4 r0.w,c91,r1 ; Light 3 add oD0,r0,r5 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_OD0_POINT ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ;==---------------------------------------------------------------------------- ; ; Get lights into local space ; ;==---------------------------------------------------------------------------- ; sub r6.xyz,v0,c84 ; r6.xyz = Lpos-Vpos sub r7.xyz,v0,c86 ; r7.xyz = Lpos-Vpos sub r8.xyz,v0,c88 ; r7.xyz = Lpos-Vpos ; ;==---------------------------------------------------------------------------- ; ; Calculate intensity: light 0 ( r10 = normal in worldspace ) ; ;==---------------------------------------------------------------------------- ; dp3 r6.w,r6,r6 ; r6.xyz = |r0.xyz| rsq r0.y,r6.w ; mul r6.w,r0.y,r6.w ; ; sub r6.w,c84.w,r6.w ; ; rcp r0.y,c84.w ; r6.xyz = dst r6.xyz mul r6.w,r6.w,r0.y ; ; max r6.w,r6.w,c-1.z ; Clamp 0 to 1 min r6.w,r6.w,c-1.w ; ; ;==---------------------------------------------------------------------------- ; ; Calculate intensity: light 1 ; ;==---------------------------------------------------------------------------- ; dp3 r7.w,r7,r7 ; r7.xyz = |r0.xyz| rsq r0.y,r7.w ; mul r7.w,r0.y,r7.w ; ; sub r7.w,c86.w,r7.w ; ; rcp r0.y,c86.w ; r7.xyz = dst r7.xyz mul r7.w,r7.w,r0.y ; ; max r7.w,r7.w,c-1.z ; Clamp 0 to 1 min r7.w,r7.w,c-1.w ; ; ;==---------------------------------------------------------------------------- ; ; Calculate intensity: light 2 ; ;==---------------------------------------------------------------------------- ; dp3 r8.w,r8,r8 ; r8.xyz = |r0.xyz| rsq r0.y,r8.w ; mul r8.w,r0.y,r8.w ; ; sub r8.w,c88.w,r8.w ; ; rcp r0.y,c88.w ; r8.xyz = dst r8.xyz mul r8.w,r8.w,r0.y ; ; max r8.w,r8.w,c-1.z ; Clamp 0 to 1 min r8.w,r8.w,c-1.w ; ; ;==---------------------------------------------------------------------------- ; ; Calculate diffuse colour ; ;==---------------------------------------------------------------------------- ; mul r0.xyz,c85,r6.w ; mad r0.xyz,c87,r7.w,r0.xyz ; mad r0.xyz,c89,r8.w,r0.xyz ; ; ;==---------------------------------------------------------------------------- ; ; Save colour ; ;==---------------------------------------------------------------------------- ; add oD0.xyz,r0,r5 ; sge oD0.w ,v0,v0 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_OD0_BLACK ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Load black only ; ;==---------------------------------------------------------------------------- slt r0,v0,v0 mov r5,r0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_OD0_DIFFUSE ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Load diffuse only ; ;==---------------------------------------------------------------------------- mov oD0,r5 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_OD0_AMBIENT ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Blend ambient ; ;==---------------------------------------------------------------------------- add r0,r5,c83 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_OT0_NORMAL ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Load texture coords ; ;==---------------------------------------------------------------------------- mul r2.xy,v2.xy,c-8.xy add r2.xy,r2.xy,c-9.xy ; scrolling uvs mov oT0.xy,r2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_OT0_CUBE ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Load texture coords ; ;==---------------------------------------------------------------------------- ;-------------------------------------------------------------------------- ; ; Transform point to eye space ; mul r3, c-5, v0.x ; dp4 r3.x,v0, c-5 mad r3, c-4, v0.y, r3 ; dp4 r3.y,v0, c-4 mad r3, c-3, v0.z, r3 ; dp4 r3.z,v0, c-3 mad r3, c-2, v0.w, r3 ; dp4 r3.w,v0, c-2 ; ; Scroll UVs ; add oT1.xyz,r3,c-9 ;-------------------------------------------------------------------------- ; ; Update diffuse coords ; mul r2.xy,v2.xy,c-8.xy add r2.xy,r2.xy,c-9.xy ; scrolling uvs mov oT0.xy,r2 ;-------------------------------------------------------------------------- ; ; Update detail coords ; mul r3.xy,v2,c-9.zw ; scaling mov oT2.xy,r3 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_OT0_ENV ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Load texture coords ; ;==---------------------------------------------------------------------------- ;-------------------------------------------------------------------------- ; ; Transform normal ; mul r1.xyz,c-5,r10.x ; dp3 r1.x,r10,c-5 mad r1.xyz,c-4,r10.y,r1 ; dp3 r1.y,r10,c-4 mad r1.xyz,c-3,r10.z,r1 ; dp3 r1.z,r10,c-3 ;-------------------------------------------------------------------------- ; ; Normalise result ; dp3 r1.w ,r1,r1 rsq r1.w ,r1.w mul r1,r1,r1.w ; ; Force 0-1 ; mul r1 ,r1,c-1.x ; r1 *= 0.5 add oT1.xy,r1,c-1.x ; r1 += 0.5 ;-------------------------------------------------------------------------- ; ; Update diffuse coords ; mul r2.xy,v2.xy,c-8.xy add r2.xy,r2.xy,c-9.xy ; scrolling uvs mov oT0.xy,r2 ;-------------------------------------------------------------------------- ; ; Update detail coords ; mul r3.xy,v2,c-9.zw ; scaling mov oT2.xy,r3 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_PROJ ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Transform vertex ; ;==---------------------------------------------------------------------------- ;-------------------------------------------------------------------------- ; ; Transform world to proj space ; mul r0,c-36,r11.x ; dp4 r0.x,v0,c-36 mad r0,c-35,r11.y,r0 ; dp4 r0.y,v0,c-35 mad r0,c-34,r11.z,r0 ; dp4 r0.z,v0,c-34 mad r0,c-33,r11.w,r0 ; dp4 r0.w,v0,c-33 mov oT3,r0 ;-------------------------------------------------------------------------- ; ; Attenuation ; sub r1,c-32.xyz,r11 ; r1 = Lpos-Vpos (in world space) dp3 r1.w,r1,r1 ; (normalise r1) rsq r1.w, r1.w mul r1,r1,r1.w ; r1 = negative light dir dp3 r3.w,r10,r1 ; r3 = N dot -L add r3.w,r3.w,c-32.w ; r3 = r3 + 0.5 (crank up intensity to compensate for improper falloff) mul oD0.w,r3.w,r0.z ; d0.a = intensity*attenuation ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_RIGID_SHADOW_CASTER ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Transform vertex ; ;==---------------------------------------------------------------------------- ;-------------------------------------------------------------------------- ; ; Transform to projective space ; mul r0, c-31, v0.x ; dp4 r0.x, v0, c-31 mad r0, c-30, v0.y, r0 ; dp4 r0.y, v0, c-30 mad r0, c-29, v0.z, r0 ; dp4 r0.z, v0, c-29 mad r0, c-28, v0.w, r0 ; dp4 r0.w, v0, c-28 ; mov oPos, r0 ; mov oD0,c-27 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_SKINNED_SHADOW_CASTER ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Transform vertex ; ;==---------------------------------------------------------------------------- ;-------------------------------------------------------------------------- ; ; Transform through bones ; mov a0.x,v3.x ; BONE 0 mul r0,c[a0.x+0],v0.x ; dp4 r0.x,v0,c[a0.x+0] mad r0,c[a0.x+1],v0.y,r0 ; dp4 r0.y,v0,c[a0.x+1] mad r0,c[a0.x+2],v0.z,r0 ; dp4 r0.z,v0,c[a0.x+2] mad r0,c[a0.x+3],v0.w,r0 ; dp4 r0.w,v0,c[a0.x+3] ; mov a0.x,v3.y ; BONE 1 mul r1,c[a0.x+0],v0.x ; dp4 r1.x,v0,c[a0.x+0] mad r1,c[a0.x+1],v0.y,r1 ; dp4 r1.y,v0,c[a0.x+1] mad r1,c[a0.x+2],v0.z,r1 ; dp4 r1.z,v0,c[a0.x+2] mad r1,c[a0.x+3],v0.w,r1 ; dp4 r1.w,v0,c[a0.x+3] ;-------------------------------------------------------------------------- ; ; Add weights ; mul r0.xyz, r0.xyz, v2.z mul r1.xyz, r1.xyz, v2.w add r0.xyz, r0.xyz, r1.xyz sge r0.w , v0 , v0 ;-------------------------------------------------------------------------- ; ; Transform world to projector ; mul r1,c-31,r0.x ; dp4 r1.x, r0, c-31 mad r1,c-30,r0.y,r1 ; dp4 r1.y, r0, c-30 mad r1,c-29,r0.z,r1 ; dp4 r1.z, r0, c-29 mad r1,c-28,r0.w,r1 ; dp4 r1.w, r0, c-28 ; mov oPos, r1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_SHADOW_TEX1 ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Calculate UV ; ;==---------------------------------------------------------------------------- ; rcp r1.w,r9.w ; R9 = pos in clip space w=0.00181426 mul r1.xy,r9.xy,r1.w ; r1.xy = r9.xy/r9.w x=0.125,y=0.0625 ; mul r1.xy,r1.xy,c-26 ; r1.x *= 0.5f, r1.y *=-0.5f x=0.0625,y=-0.03125 add r1.xy,r1.xy,c-25.xy ; r1.x += 0.5f, r1.y += 0.5f x=0.5625,y= 0.46875 mul r1.xy,r1.xy,c-24.xy ; ; mul oT1.xy,r1.xy,r9.w ; de-project uvs( we'll let r9.w do it ) mov oT1.zw,r9.zw ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_SHADOW_TEX2 ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Set UV ; ;==---------------------------------------------------------------------------- ; rcp r1.w,r9.w ; R9 = pos in clip space w=0.00181426 mul r1.xy,r9.xy,r1.w ; r1.xy = r9.xy/r9.w x=0.125,y=0.0625 ; mul r1.xy,r1.xy,c-26 ; r1.x *= 0.5f, r1.y *=-0.5f x=0.0625,y=-0.03125 add r1.xy,r1.xy,c-25.xy ; r1.x += 0.5f, r1.y += 0.5f x=0.5625,y= 0.46875 mul r1.xy,r1.xy,c-24.xy ; ; mul oT2.xy,r1.xy,r9.w ; de-project uvs( we'll let r9.w do it ) mov oT2.zw,r9.zw ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_SHADOW_TEX3 ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Set UV ; ;==---------------------------------------------------------------------------- ; rcp r1.w,r9.w ; R9 = pos in clip space w=0.00181426 mul r1.xy,r9.xy,r1.w ; r1.xy = r9.xy/r9.w x=0.125,y=0.0625 ; mul r1.xy,r1.xy,c-26 ; r1.x *= 0.5f, r1.y *=-0.5f x=0.0625,y=-0.03125 add r1.xy,r1.xy,c-25.xy ; r1.x += 0.5f, r1.y += 0.5f x=0.5625,y= 0.46875 mul r1.xy,r1.xy,c-24.xy ; ; mul oT3.xy,r1.xy,r9.w ; de-project uvs( we'll let r9.w do it ) mov oT3.zw ,r9.zw ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_SHADOW_TEX0 ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Transform vertex( L2C ) ; ;==---------------------------------------------------------------------------- mul r0, c-31, v0.x ; dp4 r0.x, v0, c-31 mad r0, c-30, v0.y, r0 ; dp4 r0.y, v0, c-30 mad r0, c-29, v0.z, r0 ; dp4 r0.z, v0, c-29 mad r0, c-28, v0.w, r0 ; dp4 r0.w, v0, c-28 sge r1,-r0.z,-c-27.w ; r0 = r0.z <= 0.0 ? 1.0 : 0.0 ;==---------------------------------------------------------------------------- ; ; Transform normal( L2V ) ; ;==---------------------------------------------------------------------------- mul r2, c80, v1.x ; dp4 r0.x, v0, c80 mad r2, c81, v1.y, r2 ; dp4 r0.y, v0, c81 mad r2, c82, v1.z, r2 ; dp4 r0.z, v0, c82 mad r2, c83, v1.w, r2 ; dp4 r0.w, v0, c83 slt oD1, c83.x, r2.z ; if( r2.z < 0 ) r2 = white else r2 = black ;==---------------------------------------------------------------------------- ; ; Set UV ; ;==---------------------------------------------------------------------------- mad r0.xy,r0.xy,c-26.zw,c-26.xy mov oT0.xyz,r0 mov oD0,r1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; VS0017: kVS_OT0_DISTORTION ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; sge oD0,v0,v0 ; white = colour ; ; -------------------------------- ; CREATE DISTORTION UVs --------------------- ; rcp r1.w ,r9.w ; input r9 = pos in clip space mul r9.xy,r9.xy,r1.w ; ...divide by w gives -1 to 1 ; mad r9.xy,r9.xy,c-1.x,c-1.x ; r9 *= 0.5, r9 += 0.5 -- force 0 to 1 sub r9.y,c-1.z,r9.y ; invert y ; mad r9.xy,c-2.zw,r9.xy,c-2.xy ; r9.xy = uv in screenspace ; ; -------------------------------- ; GET NORMAL IN EYE SPACE ------------------- ; mul r1.xy,c-5,r10.x ; dp3 r1.x, r10, c-5 mad r1.xy,c-4,r10.y,r1 ; dp3 r1.y, r10, c-4 mad r1.xy,c-3,r10.z,r1 ; dp3 r1.z, r10, c-3 ; dp3 r1.w ,r1.xy,r1.xy ; Normalise result rsq r1.w ,r1.w ; mul r1.xy,r1.xy,r1.ww ; ; ; -------------------------------- ; WRITE DISTORTION UVs ---------------------- ; mad r9.xy,r1.xy,c-1.ww,r9.xy ; scale normal mul oT0.xy,r9.xy,r9.ww ; de-project uvs mov oT0.w ,r9.w ; ; ; -------------------------------- ; WRITE ENV MAP UVs ------------------------- ; mad oT1.xy,r1.xy,c-1.xx,c-1.xx ; r1 *= 0.5, r1 += 0.5 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; VS0017: kVS_OD1_FOG ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; sge r1.x,v0,v0 ; r1.x = 1.0f ; ; rcp r2.z,r9.w ; r2.z = 1/clip.w ; mul r2.z,r9.z,r2.z ; r2.z = clip.z * (1/clip.w) ; max r2.z,r2.z,c-47.x ; r2.z = max(r2.z,fog start) ; min r2.z,r2.z,r1.x ; r2.z = min(r2.z,1) ; mov r2.z,r9.w mov r1.y,r2.z ; r1.y = clip.z mul r1.z,r2.z,r2.z ; r1.z = clip.z^2 mul r1.w,r2.z,r1.z ; r1.w = clip.z^3 ; ; mul r0,r1.x,c-46 ; DO POLYNOMIAL APPROXIMATION ; mad r0,r1.y,c-45,r0 ; ; mad r0,r1.z,c-44,r0 ; ; mad r0,r1.w,c-43,r0 ; ; dp4 r0,r1,c-43 ; DO POLYNOMIAL APPROXIMATION ; mov oD1,r0.w ; Load up the fog colour ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_OD0_BLITTER ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Load texture coords ; ;==---------------------------------------------------------------------------- sge r0,v0,v0 sub oT0.y ,c0.y,v2.y mov oT0.x ,v2.x mov oD0,r0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; VS0020.VSH: PER PIXEL POINT LIGHT ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ;==---------------------------------------------------------------------------- ; ; Calculate distance attenuation ; ;==---------------------------------------------------------------------------- ; mov r4.x,c-1.x ; Can only use one const per instruction ; ;==---------------------------------------------------------------------------- ; ; Calculate intensity: light 0 ( r10 = normal in worldspace ) ; ;==---------------------------------------------------------------------------- ; sub r1,v0,c[84] ; r1 = Vpos-Lpos mad r1,r1,c[85],r4.x ; r1 = r1 * 1/2r + 0.5 ; max r1,r1,c[-1].z ; r1 = r1.x clamped 0-1 ; min r1,r1,c[-1].w ; ; ;==---------------------------------------------------------------------------- ; ; Calculate intensity: light 1 ; ;==---------------------------------------------------------------------------- ; sub r2,v0,c[86] ; r2 = Vpos-Lpos mad r2,r2,c[87],r4.x ; r2 = r2 * 1/2r + 0.5 ; max r2,r2,c[-1].z ; r2 = r4.x clamped 0-1 ; min r2,r2,c[-1].w ; ; ;==---------------------------------------------------------------------------- ; ; Calculate intensity: light 2 ; ;==---------------------------------------------------------------------------- ; sub r3,v0,c[88] ; r3 = Vpos-Lpos mad r3,r3,c[89],r4.x ; r3 = r3 * 1/2r + 0.5 ; max r3,r3,c[-1].z ; r3 = r3.x clamped 0-1 ; min r3,r3,c[-1].w ; ; ;==---------------------------------------------------------------------------- ; ; Light activation ; ;==---------------------------------------------------------------------------- ; mul oT0.xyz,r1,c[-3].x ; Turn light on/off mul oT1.xyz,r2,c[-3].y ; Turn light on/off mul oT2.xyz,r3,c[-3].z ; Turn light on/off ; ;==---------------------------------------------------------------------------- ; ; Store diffuse colour ; ;==---------------------------------------------------------------------------- ; mov oD0,r5 ; oD0 = diffuse colour ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_OD0_WHITE ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Load white only ; ;==---------------------------------------------------------------------------- mov oD0,c-7 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_LIGHTMAP_TEX1 ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Calculate UV ; ;==---------------------------------------------------------------------------- ; rcp r1.w,r9.w ; R9 = pos in clip space w=0.00181426 mul r1.xy,r9.xy,r1.w ; r1.xy = r9.xy/r9.w x=0.125,y=0.0625 ; mul r1.xy,r1.xy,c-26 ; r1.x *= 0.5f, r1.y *=-0.5f x=0.0625,y=-0.03125 add r1.xy,r1.xy,c-25.xy ; r1.x += 0.5f, r1.y += 0.5f x=0.5625,y= 0.46875 mul r1.xy,r1.xy,c-24.xy ; ; mul oT1.xy,r1.xy,r9.w ; de-project uvs( we'll let r9.w do it ) mov oT1.zw,r9.zw ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_LIGHTMAP_TEX2 ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Set UV ; ;==---------------------------------------------------------------------------- ; rcp r1.w,r9.w ; R9 = pos in clip space w=0.00181426 mul r1.xy,r9.xy,r1.w ; r1.xy = r9.xy/r9.w x=0.125,y=0.0625 ; mul r1.xy,r1.xy,c-26 ; r1.x *= 0.5f, r1.y *=-0.5f x=0.0625,y=-0.03125 add r1.xy,r1.xy,c-25.xy ; r1.x += 0.5f, r1.y += 0.5f x=0.5625,y= 0.46875 mul r1.xy,r1.xy,c-24.xy ; ; mul oT2.xy,r1.xy,r9.w ; de-project uvs( we'll let r9.w do it ) mov oT2.zw,r9.zw ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_LIGHTMAP_TEX3 ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Set UV ; ;==---------------------------------------------------------------------------- ; rcp r1.w,r9.w ; R9 = pos in clip space w=0.00181426 mul r1.xy,r9.xy,r1.w ; r1.xy = r9.xy/r9.w x=0.125,y=0.0625 ; mul r1.xy,r1.xy,c-26 ; r1.x *= 0.5f, r1.y *=-0.5f x=0.0625,y=-0.03125 add r1.xy,r1.xy,c-25.xy ; r1.x += 0.5f, r1.y += 0.5f x=0.5625,y= 0.46875 mul r1.xy,r1.xy,c-24.xy ; ; mul oT3.xy,r1.xy,r9.w ; de-project uvs( we'll let r9.w do it ) mov oT3.zw ,r9.zw ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; VS0025: kVS_OT0_INTENSITY ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; sge oD0,v0,v0 ; white = colour ; ; ------------------------------ ; CREATE INTENSITY UVs ---------------------- ; rcp r1.w ,r9.w ; input r9 = pos in clip space mul r9.xy,r9.xy,r1.w ; ...divide by w gives -1 to 1 ; mad r9.xy,r9.xy,c-1.x,c-1.x ; r9 *= 0.5, r9 += 0.5 -- force 0 to 1 ; mul r9.xy,c-2.zw,r9.xy ; r9.xy = uv in screenspace sub r9.y ,c-2. w,r9. y ; invert y ; ; ------------------------------ ; WRITE INTENSITY UVs ----------------------- ; mul oT1.xy,r9.xy,r9.w ; de-project uvs mov oT1.w ,r9.w ; ; ; ------------------------------ ; WRITE DIFFUSE UVs ------------------------- ; mov oT0.xy,v9 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_PROJ_SHADOW1 ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Transform vertex ; ;==---------------------------------------------------------------------------- ;-------------------------------------------------------------------------- ; ; Transform world to proj space ; mul r0,c-32,r11.x ; dp4 r0.x,v0,c-32 mad r0,c-31,r11.y,r0 ; dp4 r0.y,v0,c-31 mad r0,c-30,r11.z,r0 ; dp4 r0.z,v0,c-30 mad r0,c-29,r11.w,r0 ; dp4 r0.w,v0,c-29 ;-------------------------------------------------------------------------- ; ; Vertex color is just one ; sge oD0,v0,v0 ; ------------------------------ ; CREATE DISTORTION UVs --------------------- ; ; ; rcp r1.w ,r9.w ; input r9 = pos in clip space ; mul r9.xy,r9.xy,r1.w ; ...divide by w gives -1 to 1 ; ; ; mad r9.xy,r9.xy,c-1.x,c-1.x ; r9 *= 0.5, r9 += 0.5 -- force 0 to 1 ; sub r9.y ,c-1.z,r9.y ; y = 1-y ; ; ; mul r9.xy,c-2.zw,r9.xy ; r9.xy = uv in screenspace ; add r9.xy,r9.xy,c-1.xx ; get into 0.5 to 511.5 range ; ; ;-------------------------------------------------------------------------- ; ; Save coord ; ; mul oT0.xy,r9.xy,r9.w ; de-project uvs ; mov oT0.w ,r9.w ; mov oT0,r0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_PROJ_SHADOW2 ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Transform vertex ; ;==---------------------------------------------------------------------------- ; mul r0,c-32,r11.x ; dp4 r0.x,v0,c-32 mad r0,c-31,r11.y,r0 ; dp4 r0.y,v0,c-31 mad r0,c-30,r11.z,r0 ; dp4 r0.z,v0,c-30 mad r0,c-29,r11.w,r0 ; dp4 r0.w,v0,c-29 ; ------------------------------ ; SET WHITE VERTEX --------------------------- ; sge oD0,v0,v0 ; oD0 = 1,1,1,1 ; ; ------------------------------ ; TRANSFORM WORLD TO PROJ SPACE -------------- ; mul r2,c-36,r11.x ; dp4 r0.x,v0,c-36 mad r2,c-35,r11.y,r2 ; dp4 r0.y,v0,c-35 mad r2,c-34,r11.z,r2 ; dp4 r0.z,v0,c-34 mad r2,c-33,r11.w,r2 ; dp4 r0.w,v0,c-33 ; ; ------------------------------ ; CREATE DISTORTION UVs --------------------- ; ; ; rcp r1.w ,r9.w ; input r9 = pos in clip space ; mul r9.xy,r9.xy,r1.w ; ...divide by w gives -1 to 1 ; ; ; mad r9.xy,r9.xy,c-1.x,c-1.x ; r9 *= 0.5, r9 += 0.5 -- force 0 to 1 ; sub r9.y ,c-1.z,r9.y ; y = 1-y ; ; ; mul r9.xy,c-2.zw,r9.xy ; r9.xy = uv in screenspace ; add r9.xy,r9.xy,c-1.xx ; get into 0.5 to 511.5 range ; ; ; ------------------------------ ; SAVE COORDS -------------------------------- ; ; ; mul oT0.xy,r9.xy,r9.w ; de-project uvs ; mov oT0.w ,r9.w ; clip-space w mov oT0,r0 ; t1 = shadow0 mov oT1,r2 ; t2 = shadow1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Vertex fragment: kVS_PROJECT_BACK ; ; v0.xyz = Position c00-c79 = matrix palette ; v1.xyz = Normal c92-c95 = world to clip ; v2.xy = Uv c88-c91 = light dir mtx ; v2.zw = Weight c84-c87 = light col mtx ; v3.xy = Bone c83 = ambient ; ; c-1 = useful constants ; c-5 = env transform ; c-6 = fog info ; c-95 to -32 = fog table ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;==---------------------------------------------------------------------------- ; ; Transform vertex ; ;==---------------------------------------------------------------------------- ;-------------------------------------------------------------------------- ; ; Vertex color is just one ; sge oD0,v0,v0 ; ------------------------------ ; CREATE DISTORTION UVs --------------------- ; rcp r1.w ,r9.w ; input r9 = pos in clip space mul r9.xy,r9.xy,r1.w ; ...divide by w gives -1 to 1 ; mad r9.xy,r9.xy,c-1.x,c-1.x ; r9 *= 0.5, r9 += 0.5 -- force 0 to 1 sub r9.y ,c-1.z,r9.y ; y = 1-y ; mul r9.xy,c-2.zw,r9.xy ; r9.xy = uv in screenspace add r9.xy,r9.xy,c-1.xx ; get into 0.5 to 511.5 range ; ; ------------------------------ ; WRITE DISTORTION UVs ---------------------- ; mul oT0.xy,r9.xy,r9.w ; de-project uvs mov oT0.w ,r9.w ; w2 Gp"!p#@)$@*0&`'@+@./MP, PN`R Q@`SH IJYKL`T@X0W@U3u4<@`?=5 B`@67@F89 Ca0D@EZ@pd@cfe@g[\]@poppqr@tsmh@likpw`~xyz{|Љ`pp `` p0@p`@pý`ƽĽ`Ƚp @@ pݽp޽ P``p ऽ`ɽ нpʽ˽̽ͽνֽ ѽ ۽0ҽ@@ӽ@Խ ׽pڽ ؽ@Pٽ` @P@ @ ` pp @ 00P@PP` "!@#+$%&'( )` @p@@@ F,ABCD `MGKHIJQ`NUpOTR bcYSVW0]Z[-@r@s@yPtDuvF@z.p` P @ 0 p`P@0  !"#$%p&`'P(@)0* +,--./01234p5`6P7@809 :;<<=>?@ABCpD`EPF@G0H IJKKLMNOPQRpS`TPU@V0W XYZZ[\]^_`apb`cPd@e0f ghiijklmnoppq`rPs@t0u v0 0$P00 @ $ @ D L@ !T/0 !0 0 8 0  !0 8 !0 0 8 0  !0 8 !0 0  !00 8 00  !00 8 !00 `00 8 o00  !o00 8 !o00 0 =8  = !0 8= ! = 0 =8  = !0 8= ! = 000  8 !000  !000  8 !000  !000  =8 !00  = !000  =8 !00  = !000  !000  8 !000  !000  8 !00  = !000  8= !00  = !000  8= !000  !000  8 !0 8 0  !0 8 !0 8 0 8 0 1 !0 0 0 8 0  !0 8 !0 8 0 1 !0 0  0  !00  !!0  < !00  < !!0 00  !00  < !0 00  < !000  < !000 8 < !00 8 00  !00 8 !00 1 !00 `00 o00 8 o00  !o00 8 !o00 00 000 0000  < !0 8 !0  0  00 0 =8  = !0 8= !0 =8  = ! =  = 0 =8  = !0 8= ! = ! = 000  8 !000  !000  !00  = !000  !000  8 !000  1 !000  !000  8 !00  = !000  !000  8 !0  0  ! !00  !!0  ! !00 0 0 00 00  00  00  00  4P74/4`2t8t!P<D=D"A{4ddap0^tᴾt`bfdajdotqtPd!d۾і0ᙾʾa!ƾ"ξ$!Ҿ$)־AIݾȾdd0 &0D(D$$!@ q""TT)\A qI1WP`-qTD!DC$G$" TTA@M@I0/Zd15duw{7<are`mh"Pڿ$$pd!d0п׿ԿݿDD$$"ȿTTA̿I0QÿDD444a40?$Ѫ$7!A`0IyA `gal!4rAv1I)Q@p.T!T<q%$$!`!b"@\4qC4) GAI!MPRU0!Y1~! 0TTA TT! A QI ttA `DQDI 44!@pTT!@`$A@P0@$$Pe'Џ 0P) `VDqZD!4.4"0LtOt)@F$12$A 474I;$Q?$ wtct!hdQkd"n)T{TA@ddIPTTsў@ttQttѱ!P1AI44!$$AP$$InQP4%4bT1gT!PD1)D)0]4,4A@FD12DI<454@AH!RL0U4W4`$$s A QI 0A I ѵA @ddI T1xTA aA@@I@~A@pфI@0A!0*$A$4 4Pt#tPtt $$ .d1d @(4A64 9tt$tA=t$ $4 4@pm1@A@!q@etht@J`@tt@ M!F!@ЌAQ"@pT4W4)@`A@bA\I@ЛѸ@4џ4!@`$Q$"@pdd)@ 1uA@$! $I@Pz@TT@ DaD@DqD@!@A@?I@:@`f!@P`A@UX@@d\!@@pdQdA@@04d6d!@@.QBA@@01FDJNDPDD@"qkDlD DPTT!Dp%D'D"Doqs)DP4Ax4ADP+D}DID44D!Dtqt"DЛ)Dd!dAD ttID#ddD0D D@DA(!Dp)DiAD0IDDBD.D!D0\4_4ADP54d4ID$8$DD!?DA@D@A@DhB44tDpdx tp$dtd`4H <$ &$D)-.2d4468D <$D@XBTEIKOQTVDY$^Tpacgdhkoqsv$yd8{}D$$HTD4,4`$8ܤ̳dT$4HhTTtD4TXpD($Lh, 0 \D4tH $l$4&$*t8/d1@5T9d;TL@DdGtK\NtRWZ]b4g$j$n0s4duTyD{40Dt44Ԏ$КtܤdTX$$4tlt$dh4tt4<Ttt|4l4 $ d(<$`tTD "DP$)+|. 38:=?d4BdD,GIMxOR`T$XTx\D^@b4tfDh4lpqtswd{tp~dԂx Dب4 4@$dD\@x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!@G6x`l(p0x 'l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!@G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p @G6x`l(p0x (l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6! +l6 p @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!Kl* ,jT6$ < l6$Hp @G6x`l(p0x *l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!Kl* ,jT6$ < l6$Hp @G6x`l(p0x 8l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pPKl* ,jT6$ < l6$Hp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p Kl* ,jT6$ < l6$Hp @G6x`l(p0x +l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6! +l6 p Kl* ,jT6$ < l6$Hp @G6x`l(p0x 6l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p Kl* ,jT6$ < l6$Hp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp Kl* ,jT6$ < l6$Hp @G6x`l(p0x 6l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p Kl* ,jT6$ < l6$Hp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!`Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x 1l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!`Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x ?l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pP`Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x 2l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6! +l6 p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x =l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x =l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!Kl* ,jT6$ < l6$Hp @G6x`l(p0x *l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!Kl* ,jT6$ < l6$Hp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!`KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x 4l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!`KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x Bl6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pP`KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x !l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x 5l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6! +l6 p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x @l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x !l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x @l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!`Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x 1l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!`Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!l6p 6P@l(,<Kl(+ ,kV6 T`KlH ,lH \lHU \V\@l(Hp l6Hp Pp0@G6x`l(p0x 4l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!l6p 6P@l(,<Kl(+ ,kV6 T`KlH ,lH \lHU \V\@l(Hp l6Hp Pp0@G6x`l(p0x Bl6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pPl6p 6P@l(,<Kl(+ ,kV6 T`KlH ,lH \lHU \V\@l(Hp l6Hp Pp0@G6x`l(p0x 5l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6! +l6 p l6p 6P@l(,<Kl(+ ,kV6 T`KlH ,lH \lHU \V\@l(Hp l6Hp Pp0@G6x`l(p0x !l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp l6p 6P@l(,<Kl(+ ,kV6 T`KlH ,lH \lHU \V\@l(Hp l6Hp Pp0@G6x`l(p0x @l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p l6p 6P@l(,<Kl(+ ,kV6 T`KlH ,lH \lHU \V\@l(Hp l6Hp Pp0@G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!Kl* ,jT6$ < l6$Hp @G6x`l(p0x *l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!Kl* ,jT6$ < l6$Hp @G6x`l(p0x 8l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pPKl* ,jT6$ < l6$Hp @G6x`l(p0x +l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6! +l6 p Kl* ,jT6$ < l6$Hp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!`Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x 1l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!`Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x 2l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6! +l6 p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!Kl* ,jT6$ < l6$Hp @G6x`l(p0x *l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!Kl* ,jT6$ < l6$Hp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!`KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x 4l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!`KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x Bl6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pP`KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x 5l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6! +l6 p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x !l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x @l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp @G6x`l(p0x Dl6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pPKl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p @G6x`l(p0x #l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p Kl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p @G6x`l(p0x #l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp Kl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p @G6x`l(p0x Bl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p Kl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p @G6x`l(p0x Kl6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pP`Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p @G6x`l(p0x *l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p @G6x`l(p0x *l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p @G6x`l(p0x Il6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p @G6x`l(p0x Nl6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pP`KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p @G6x`l(p0x -l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p @G6x`l(p0x -l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p @G6x`l(p0x Ll6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p @G6x`l(p0x l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! Hl /@l _`lT _l _ l6p @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp @G6x`l(p0x 2l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp  +l6 p @G6x`l(p0x 3l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp  +l6 p @G6x`l(p0x >l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp  l6Tp @G6x`l(p0x >l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p @G6x`l(p0x *l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! Hl /@l `lT l l/ l6p Hl6, l6Hp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p Kl* ,jT6$ < l6$Hp 6P@l(,Hl6,hT6<Il*,@l(Pp l6P8p @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp Kl* ,jT6$ < l6$Hp 6P@l(,Hl6,hT6<Il*,@l(Pp l6P8p @G6x`l(p0x *l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p Kl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p 6P@l(,Hl6,hT6<Il*,@l(Pp l6P8p @G6x`l(p0x %l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(Xp l6X8p @G6x`l(p0x %l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(Xp l6X8p @G6x`l(p0x (l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(Xp l6X8p @G6x`l(p0x (l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(Xp l6X8p @G6x`l(p0x Gl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(Xp l6X8p @G6x`l(p0x 4l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p 6P@l(,Hl6,hT6<Il*,@l(Xp l6X8p @G6x`l(p0x Sl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p 6P@l(,Hl6,hT6<Il*,@l(Xp l6X8p @G6x`l(p0x %l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(`p l6`8p @G6x`l(p0x (l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(`p l6`8p @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!Hlh / lh @lhU `lh l6p  l6Hp @G6x`l(p0x -l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!Hlh / lh @lhU `lh l6p  l6Hp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!Hlh / lh @lhU `lh l6p Glh  /lh  lhU  lh   l6Hp  l6$Pp @G6x`l(p0x 2l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!Hlh / lh @lhU `lh l6p Glh  /lh  lhU  lh   l6Hp  l6$Pp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x ,l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x =l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pPKl* ,jT6$ < l6$Hp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p Kl* ,jT6$ < l6$Hp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x 0l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6! +l6 p Kl* ,jT6$ < l6$Hp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x ;l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p Kl* ,jT6$ < l6$Hp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp Kl* ,jT6$ < l6$Hp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x ;l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p Kl* ,jT6$ < l6$Hp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Dl6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pP`Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x #l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x 7l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6! +l6 p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Bl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x #l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Bl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Gl6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pP`KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x &l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x :l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6! +l6 p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x El6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x &l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x El6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Il6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pPKl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x (l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p Kl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Gl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p Kl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x (l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp Kl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Gl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p Kl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Pl6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pP`Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x /l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x /l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Nl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Sl6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pP`KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x 2l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x 2l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Ql6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x #l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x El6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pPT60@l((&l6 $fT6 pP l6 p @G6x`l(p0x $l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp  +l6 p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Cl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x $l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp  l6Tp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Cl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x /l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x 0l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp  +l6 p Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x #l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp Kl* ,jT6$ < l6$Hp 6P@l(,Hl6,hT6<Il*,@l(Pp l6P8p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Bl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p Kl* ,jT6$ < l6$Hp 6P@l(,Hl6,hT6<Il*,@l(Pp l6P8p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x /l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp Kl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p 6P@l(,Hl6,hT6<Il*,@l(Pp l6P8p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Nl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p Kl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p 6P@l(,Hl6,hT6<Il*,@l(Pp l6P8p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x *l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(Xp l6X8p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Il6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(Xp l6X8p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x -l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(Xp l6X8p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Ll6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(Xp l6X8p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x 6l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p 6P@l(,Hl6,hT6<Il*,@l(Xp l6X8p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Ul6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p 6P@l(,Hl6,hT6<Il*,@l(Xp l6X8p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x 9l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p 6P@l(,Hl6,hT6<Il*,@l(Xp l6X8p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x *l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(`p l6`8p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Il6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(`p l6`8p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x -l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(`p l6`8p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x Ll6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(`p l6`8p T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!Hlh / lh @lhU `lh l6p  l6Hp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x 2l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!Hlh / lh @lhU `lh l6p  l6Hp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x #l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!Hlh / lh @lhU `lh l6p Glh  /lh  lhU  lh   l6Hp  l6$Pp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x 7l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!Hlh / lh @lhU `lh l6p Glh  /lh  lhU  lh   l6Hp  l6$Pp T60@l((&l6 $fT6 pP l6 p @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!l6/UlT6 HHp  l6Hp  l6p @G6x`l(p0x "l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp Kl* ,jT6$ < l6$Hp  l6`p @G6x`l(p0x 6l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp Kl* ,jT6$ < l6$Hp  l6`p @G6x`l(p0x #l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp  +l6 p Kl* ,jT6$ < l6$Hp  l6`p @G6x`l(p0x 7l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp  +l6 p Kl* ,jT6$ < l6$Hp  l6`p @G6x`l(p0x 'l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp Kl* ,jT6$ < l6$Hp T60@l((&l6 $fT6 pP l6 p  l6`p @G6x`l(p0x (l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp  +l6 p Kl* ,jT6$ < l6$Hp T60@l((&l6 $fT6 pP l6 p  l6`p @G6x`l(p0x 3l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp Kl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p  l6`p @G6x`l(p0x 9l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pPKl* ,jT6$ < l6$Hp Jl~ Xp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p Kl* ,jT6$ < l6$Hp Jl~ Xp @G6x`l(p0x ,l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6! +l6 p Kl* ,jT6$ < l6$Hp Jl~ Xp @G6x`l(p0x 7l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p Kl* ,jT6$ < l6$Hp Jl~ Xp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp Kl* ,jT6$ < l6$Hp Jl~ Xp @G6x`l(p0x 7l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p Kl* ,jT6$ < l6$Hp Jl~ Xp @G6x`l(p0x @l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pP`Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Jl~ Xp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Jl~ Xp @G6x`l(p0x 3l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6! +l6 p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Jl~ Xp @G6x`l(p0x >l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Jl~ Xp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Jl~ Xp @G6x`l(p0x >l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Jl~ Xp @G6x`l(p0x Cl6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pP`KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Jl~ Xp @G6x`l(p0x "l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Jl~ Xp @G6x`l(p0x 6l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6! +l6 p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Jl~ Xp @G6x`l(p0x Al6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Jl~ Xp @G6x`l(p0x "l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Jl~ Xp @G6x`l(p0x Al6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Jl~ Xp @G6x`l(p0x El6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pPKl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p Jl~ Xp @G6x`l(p0x $l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p Kl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p Jl~ Xp @G6x`l(p0x $l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp Kl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p Jl~ Xp @G6x`l(p0x Ll6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pP`Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p Jl~ Xp @G6x`l(p0x +l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p Jl~ Xp @G6x`l(p0x +l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p Jl~ Xp @G6x`l(p0x Jl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p Jl~ Xp @G6x`l(p0x Ol6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pP`KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p Jl~ Xp @G6x`l(p0x .l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p Jl~ Xp @G6x`l(p0x .l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p Jl~ Xp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p Kl* ,jT6$ < l6$Hp 6P@l(,Hl6,hT6<Il*,@l(Pp l6P8p Jl~ Xp @G6x`l(p0x &l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(`p l6`8p Jl~ Xp @G6x`l(p0x &l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(`p l6`8p Jl~ Xp @G6x`l(p0x )l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(`p l6`8p Jl~ Xp @G6x`l(p0x )l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(`p l6`8p Jl~ Xp @G6x`l(p0x >l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pPKl* ,jT6$ < l6$Hp T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p Kl* ,jT6$ < l6$Hp T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x 1l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6! +l6 p Kl* ,jT6$ < l6$Hp T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp Kl* ,jT6$ < l6$Hp T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x <l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p Kl* ,jT6$ < l6$Hp T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x El6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pP`Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x $l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x 8l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6! +l6 p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x Cl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x $l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x Cl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x Hl6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pP`KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x 'l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x ;l6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6! +l6 p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x Fl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x 'l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x Fl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x Jl6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pPKl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x )l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp Kl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x Hl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p Kl* ,jT6$ < l6$Hp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x Ql6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pP`Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x 0l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x Ol6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x 0l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x Ol6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x Tl6 p `l6 p `6l6 P/el6TP?l6p Ll / l @lT `l Ul6p Ll / l _@lT _`l _@lT.@l.`h6^l6! l6/Wl /l _lT _l _ l6p  l6/l6p Ll ."l BlT Ul6p Ll ."l ^BlT ^@lT.@l.`h6^ l6!lH7 (lH7 $lH7 "lH7 !`l(60/@lh6(U@lh6$@lh6"@lh6!l(6 ( l(6 $@l(6 "`l(6 !`m6pP`KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x 3l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! +l6 p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x 3l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x Rl6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!vl6`>vl6p>wl6>l6d`!6U@l`!v6 `60@ld`!KlTe`!+le`!l6tp!6U@lp!v6 p60@ltp!KlTup!+lup!l7!6U@l!w6 60@l!KlT!+l!Vl .h  h `m6pPl6p `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp Glh /lh lhU lh  l6`p hn6 l(6!6P@l(/l(60!h6401@lT5p T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x $l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp Kl* ,jT6$ < l6$Hp 6P@l(,Hl6,hT6<Il*,@l(Pp l6P8p T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x +l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `Kl 0/l 0lT 0l 0jl64Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(`p l6`8p T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x .l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6! l6Tp `KlH .lH ^lHU ^l(6!6P@l(/Kl/k6Pp0Kl* ,jT6$ < l6$Hp Jl~ 0, l64Xp 6P@l(,Hl6,hT6<Il*,@l(`p l6`8p T60@l((&l6 $fT6 pP l6 p Jl~ Xp @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp  l6`p @G6x`l(p0`p @G6x`l(p0x l6 p `l6 p el6P?Wl /l lT l  l6p  l6/Ll / n @nT `n Ll ."n BnT l6!+l6 @(vl6?6vl6 ?6$ wl60? 640KlHp Kl$Pp KlT5Xp  l6Tp  l6`p @G6x`l(p0