From d644096e6d897040f6a638ea777e3ed9d14c1e12 Mon Sep 17 00:00:00 2001 From: "Mr.doob" Date: Mon, 22 Nov 2010 07:31:49 +0000 Subject: [PATCH 1/4] CanvasRenderer and SVGRenderer code clean up. Removed a loop at line projection time. --- build/Three.js | 155 ++++++++++++++++---------------- build/ThreeDebug.js | 149 +++++++++++++++--------------- src/renderers/CanvasRenderer.js | 10 +-- src/renderers/Projector.js | 105 +++++++++++----------- src/renderers/SVGRenderer.js | 10 +-- 5 files changed, 216 insertions(+), 213 deletions(-) diff --git a/build/Three.js b/build/Three.js index 8402dd6a..fb064167 100644 --- a/build/Three.js +++ b/build/Three.js @@ -11,40 +11,40 @@ distanceToSquared:function(a){var c=this.x-a.x,f=this.y-a.y;a=this.z-a.z;return THREE.Vector4.prototype={set:function(a,c,f,b){this.x=a;this.y=c;this.z=f;this.w=b;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=a.w||1;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;this.w=a.w+c.w;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;this.w=a.w-c.w;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w; return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;this.w/=a;return this},lerpSelf:function(a,c){this.x+=(a.x-this.x)*c;this.y+=(a.y-this.y)*c;this.z+=(a.z-this.z)*c;this.w+=(a.w-this.w)*c},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},toString:function(){return"THREE.Vector4 ("+this.x+", "+this.y+", "+this.z+", "+this.w+")"}}; THREE.Ray=function(a,c){this.origin=a||new THREE.Vector3;this.direction=c||new THREE.Vector3}; -THREE.Ray.prototype={intersectScene:function(a){var c,f,b=a.objects,d=[];a=0;for(c=b.length;a0&&A>0&&i+A<1}var f,b,d,j,o,r,e,g,n,h, -l,q=a.geometry,p=q.vertices,s=[];f=0;for(b=q.faces.length;f0&&A>0&&j+A<1}var f,b,d,i,n,r,e,g,m,h, +l,q=a.geometry,o=q.vertices,s=[];f=0;for(b=q.faces.length;f= -0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){r=true;d=b=f=c=0;a()};this.isEmpty=function(){return r};this.toString=function(){return"THREE.Rectangle ( left: "+c+", right: "+b+", top: "+f+", bottom: "+d+", width: "+j+", height: "+o+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; +0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){r=true;d=b=f=c=0;a()};this.isEmpty=function(){return r};this.toString=function(){return"THREE.Rectangle ( left: "+c+", right: "+b+", top: "+f+", bottom: "+d+", width: "+i+", height: "+n+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; THREE.Matrix4=function(){this._x=new THREE.Vector3;this._y=new THREE.Vector3;this._z=new THREE.Vector3}; THREE.Matrix4.prototype={n11:1,n12:0,n13:0,n14:0,n21:0,n22:1,n23:0,n24:0,n31:0,n32:0,n33:1,n34:0,n41:0,n42:0,n43:0,n44:1,identity:function(){this.n11=1;this.n21=this.n14=this.n13=this.n12=0;this.n22=1;this.n32=this.n31=this.n24=this.n23=0;this.n33=1;this.n43=this.n42=this.n41=this.n34=0;this.n44=1},copy:function(a){this.n11=a.n11;this.n12=a.n12;this.n13=a.n13;this.n14=a.n14;this.n21=a.n21;this.n22=a.n22;this.n23=a.n23;this.n24=a.n24;this.n31=a.n31;this.n32=a.n32;this.n33=a.n33;this.n34=a.n34;this.n41= -a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,c,f){var b=this._x,d=this._y,j=this._z;j.sub(a,c);j.normalize();b.cross(f,j);b.normalize();d.cross(j,b);d.normalize();this.n11=b.x;this.n12=b.y;this.n13=b.z;this.n14=-b.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=j.x;this.n32=j.y;this.n33=j.z;this.n34=-j.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var c=a.x,f=a.y,b=a.z,d=a.w?a.w:1;a.x=this.n11*c+this.n12*f+this.n13*b+this.n14* +a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,c,f){var b=this._x,d=this._y,i=this._z;i.sub(a,c);i.normalize();b.cross(f,i);b.normalize();d.cross(i,b);d.normalize();this.n11=b.x;this.n12=b.y;this.n13=b.z;this.n14=-b.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=i.x;this.n32=i.y;this.n33=i.z;this.n34=-i.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var c=a.x,f=a.y,b=a.z,d=a.w?a.w:1;a.x=this.n11*c+this.n12*f+this.n13*b+this.n14* d;a.y=this.n21*c+this.n22*f+this.n23*b+this.n24*d;a.z=this.n31*c+this.n32*f+this.n33*b+this.n34*d;d=this.n41*c+this.n42*f+this.n43*b+this.n44*d;if(a.w)a.w=d;else{a.x/=d;a.y/=d;a.z/=d}return a},crossVector:function(a){var c=new THREE.Vector4;c.x=this.n11*a.x+this.n12*a.y+this.n13*a.z+this.n14*a.w;c.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;c.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+this.n34*a.w;c.w=a.w?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return c},multiply:function(a, c){this.n11=a.n11*c.n11+a.n12*c.n21+a.n13*c.n31+a.n14*c.n41;this.n12=a.n11*c.n12+a.n12*c.n22+a.n13*c.n32+a.n14*c.n42;this.n13=a.n11*c.n13+a.n12*c.n23+a.n13*c.n33+a.n14*c.n43;this.n14=a.n11*c.n14+a.n12*c.n24+a.n13*c.n34+a.n14*c.n44;this.n21=a.n21*c.n11+a.n22*c.n21+a.n23*c.n31+a.n24*c.n41;this.n22=a.n21*c.n12+a.n22*c.n22+a.n23*c.n32+a.n24*c.n42;this.n23=a.n21*c.n13+a.n22*c.n23+a.n23*c.n33+a.n24*c.n43;this.n24=a.n21*c.n14+a.n22*c.n24+a.n23*c.n34+a.n24*c.n44;this.n31=a.n31*c.n11+a.n32*c.n21+a.n33*c.n31+ -a.n34*c.n41;this.n32=a.n31*c.n12+a.n32*c.n22+a.n33*c.n32+a.n34*c.n42;this.n33=a.n31*c.n13+a.n32*c.n23+a.n33*c.n33+a.n34*c.n43;this.n34=a.n31*c.n14+a.n32*c.n24+a.n33*c.n34+a.n34*c.n44;this.n41=a.n41*c.n11+a.n42*c.n21+a.n43*c.n31+a.n44*c.n41;this.n42=a.n41*c.n12+a.n42*c.n22+a.n43*c.n32+a.n44*c.n42;this.n43=a.n41*c.n13+a.n42*c.n23+a.n43*c.n33+a.n44*c.n43;this.n44=a.n41*c.n14+a.n42*c.n24+a.n43*c.n34+a.n44*c.n44},multiplySelf:function(a){var c=this.n11,f=this.n12,b=this.n13,d=this.n14,j=this.n21,o=this.n22, -r=this.n23,e=this.n24,g=this.n31,n=this.n32,h=this.n33,l=this.n34,q=this.n41,p=this.n42,s=this.n43,A=this.n44;this.n11=c*a.n11+f*a.n21+b*a.n31+d*a.n41;this.n12=c*a.n12+f*a.n22+b*a.n32+d*a.n42;this.n13=c*a.n13+f*a.n23+b*a.n33+d*a.n43;this.n14=c*a.n14+f*a.n24+b*a.n34+d*a.n44;this.n21=j*a.n11+o*a.n21+r*a.n31+e*a.n41;this.n22=j*a.n12+o*a.n22+r*a.n32+e*a.n42;this.n23=j*a.n13+o*a.n23+r*a.n33+e*a.n43;this.n24=j*a.n14+o*a.n24+r*a.n34+e*a.n44;this.n31=g*a.n11+n*a.n21+h*a.n31+l*a.n41;this.n32=g*a.n12+n*a.n22+ -h*a.n32+l*a.n42;this.n33=g*a.n13+n*a.n23+h*a.n33+l*a.n43;this.n34=g*a.n14+n*a.n24+h*a.n34+l*a.n44;this.n41=q*a.n11+p*a.n21+s*a.n31+A*a.n41;this.n42=q*a.n12+p*a.n22+s*a.n32+A*a.n42;this.n43=q*a.n13+p*a.n23+s*a.n33+A*a.n43;this.n44=q*a.n14+p*a.n24+s*a.n34+A*a.n44},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a},determinant:function(){return this.n14* +a.n34*c.n41;this.n32=a.n31*c.n12+a.n32*c.n22+a.n33*c.n32+a.n34*c.n42;this.n33=a.n31*c.n13+a.n32*c.n23+a.n33*c.n33+a.n34*c.n43;this.n34=a.n31*c.n14+a.n32*c.n24+a.n33*c.n34+a.n34*c.n44;this.n41=a.n41*c.n11+a.n42*c.n21+a.n43*c.n31+a.n44*c.n41;this.n42=a.n41*c.n12+a.n42*c.n22+a.n43*c.n32+a.n44*c.n42;this.n43=a.n41*c.n13+a.n42*c.n23+a.n43*c.n33+a.n44*c.n43;this.n44=a.n41*c.n14+a.n42*c.n24+a.n43*c.n34+a.n44*c.n44},multiplySelf:function(a){var c=this.n11,f=this.n12,b=this.n13,d=this.n14,i=this.n21,n=this.n22, +r=this.n23,e=this.n24,g=this.n31,m=this.n32,h=this.n33,l=this.n34,q=this.n41,o=this.n42,s=this.n43,A=this.n44;this.n11=c*a.n11+f*a.n21+b*a.n31+d*a.n41;this.n12=c*a.n12+f*a.n22+b*a.n32+d*a.n42;this.n13=c*a.n13+f*a.n23+b*a.n33+d*a.n43;this.n14=c*a.n14+f*a.n24+b*a.n34+d*a.n44;this.n21=i*a.n11+n*a.n21+r*a.n31+e*a.n41;this.n22=i*a.n12+n*a.n22+r*a.n32+e*a.n42;this.n23=i*a.n13+n*a.n23+r*a.n33+e*a.n43;this.n24=i*a.n14+n*a.n24+r*a.n34+e*a.n44;this.n31=g*a.n11+m*a.n21+h*a.n31+l*a.n41;this.n32=g*a.n12+m*a.n22+ +h*a.n32+l*a.n42;this.n33=g*a.n13+m*a.n23+h*a.n33+l*a.n43;this.n34=g*a.n14+m*a.n24+h*a.n34+l*a.n44;this.n41=q*a.n11+o*a.n21+s*a.n31+A*a.n41;this.n42=q*a.n12+o*a.n22+s*a.n32+A*a.n42;this.n43=q*a.n13+o*a.n23+s*a.n33+A*a.n43;this.n44=q*a.n14+o*a.n24+s*a.n34+A*a.n44},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a},determinant:function(){return this.n14* this.n23*this.n32*this.n41-this.n13*this.n24*this.n32*this.n41-this.n14*this.n22*this.n33*this.n41+this.n12*this.n24*this.n33*this.n41+this.n13*this.n22*this.n34*this.n41-this.n12*this.n23*this.n34*this.n41-this.n14*this.n23*this.n31*this.n42+this.n13*this.n24*this.n31*this.n42+this.n14*this.n21*this.n33*this.n42-this.n11*this.n24*this.n33*this.n42-this.n13*this.n21*this.n34*this.n42+this.n11*this.n23*this.n34*this.n42+this.n14*this.n22*this.n31*this.n43-this.n12*this.n24*this.n31*this.n43-this.n14* this.n21*this.n32*this.n43+this.n11*this.n24*this.n32*this.n43+this.n12*this.n21*this.n34*this.n43-this.n11*this.n22*this.n34*this.n43-this.n13*this.n22*this.n31*this.n44+this.n12*this.n23*this.n31*this.n44+this.n13*this.n21*this.n32*this.n44-this.n11*this.n23*this.n32*this.n44-this.n12*this.n21*this.n33*this.n44+this.n11*this.n22*this.n33*this.n44},transpose:function(){function a(c,f,b){var d=c[f];c[f]=c[b];c[b]=d}a(this,"n21","n12");a(this,"n31","n13");a(this,"n32","n23");a(this,"n41","n14");a(this, "n42","n24");a(this,"n43","n34");return this},clone:function(){var a=new THREE.Matrix4;a.n11=this.n11;a.n12=this.n12;a.n13=this.n13;a.n14=this.n14;a.n21=this.n21;a.n22=this.n22;a.n23=this.n23;a.n24=this.n24;a.n31=this.n31;a.n32=this.n32;a.n33=this.n33;a.n34=this.n34;a.n41=this.n41;a.n42=this.n42;a.n43=this.n43;a.n44=this.n44;return a},flatten:function(){return[this.n11,this.n21,this.n31,this.n41,this.n12,this.n22,this.n32,this.n42,this.n13,this.n23,this.n33,this.n43,this.n14,this.n24,this.n34,this.n44]}, toString:function(){return"| "+this.n11+" "+this.n12+" "+this.n13+" "+this.n14+" |\n| "+this.n21+" "+this.n22+" "+this.n23+" "+this.n24+" |\n| "+this.n31+" "+this.n32+" "+this.n33+" "+this.n34+" |\n| "+this.n41+" "+this.n42+" "+this.n43+" "+this.n44+" |"}};THREE.Matrix4.translationMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n14=a;b.n24=c;b.n34=f;return b};THREE.Matrix4.scaleMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n11=a;b.n22=c;b.n33=f;return b}; THREE.Matrix4.rotationXMatrix=function(a){var c=new THREE.Matrix4;c.n22=c.n33=Math.cos(a);c.n32=Math.sin(a);c.n23=-c.n32;return c};THREE.Matrix4.rotationYMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n33=Math.cos(a);c.n13=Math.sin(a);c.n31=-c.n13;return c};THREE.Matrix4.rotationZMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n22=Math.cos(a);c.n21=Math.sin(a);c.n12=-c.n21;return c}; -THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var f=new THREE.Matrix4,b=Math.cos(c),d=Math.sin(c),j=1-b,o=a.x,r=a.y,e=a.z;f.n11=j*o*o+b;f.n12=j*o*r-d*e;f.n13=j*o*e+d*r;f.n21=j*o*r+d*e;f.n22=j*r*r+b;f.n23=j*r*e-d*o;f.n31=j*o*e-d*r;f.n32=j*r*e+d*o;f.n33=j*e*e+b;return f}; +THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var f=new THREE.Matrix4,b=Math.cos(c),d=Math.sin(c),i=1-b,n=a.x,r=a.y,e=a.z;f.n11=i*n*n+b;f.n12=i*n*r-d*e;f.n13=i*n*e+d*r;f.n21=i*n*r+d*e;f.n22=i*r*r+b;f.n23=i*r*e-d*n;f.n31=i*n*e-d*r;f.n32=i*r*e+d*n;f.n33=i*e*e+b;return f}; THREE.Matrix4.makeInvert=function(a){var c=new THREE.Matrix4;c.n11=a.n23*a.n34*a.n42-a.n24*a.n33*a.n42+a.n24*a.n32*a.n43-a.n22*a.n34*a.n43-a.n23*a.n32*a.n44+a.n22*a.n33*a.n44;c.n12=a.n14*a.n33*a.n42-a.n13*a.n34*a.n42-a.n14*a.n32*a.n43+a.n12*a.n34*a.n43+a.n13*a.n32*a.n44-a.n12*a.n33*a.n44;c.n13=a.n13*a.n24*a.n42-a.n14*a.n23*a.n42+a.n14*a.n22*a.n43-a.n12*a.n24*a.n43-a.n13*a.n22*a.n44+a.n12*a.n23*a.n44;c.n14=a.n14*a.n23*a.n32-a.n13*a.n24*a.n32-a.n14*a.n22*a.n33+a.n12*a.n24*a.n33+a.n13*a.n22*a.n34-a.n12* a.n23*a.n34;c.n21=a.n24*a.n33*a.n41-a.n23*a.n34*a.n41-a.n24*a.n31*a.n43+a.n21*a.n34*a.n43+a.n23*a.n31*a.n44-a.n21*a.n33*a.n44;c.n22=a.n13*a.n34*a.n41-a.n14*a.n33*a.n41+a.n14*a.n31*a.n43-a.n11*a.n34*a.n43-a.n13*a.n31*a.n44+a.n11*a.n33*a.n44;c.n23=a.n14*a.n23*a.n41-a.n13*a.n24*a.n41-a.n14*a.n21*a.n43+a.n11*a.n24*a.n43+a.n13*a.n21*a.n44-a.n11*a.n23*a.n44;c.n24=a.n13*a.n24*a.n31-a.n14*a.n23*a.n31+a.n14*a.n21*a.n33-a.n11*a.n24*a.n33-a.n13*a.n21*a.n34+a.n11*a.n23*a.n34;c.n31=a.n22*a.n34*a.n41-a.n24*a.n32* a.n41+a.n24*a.n31*a.n42-a.n21*a.n34*a.n42-a.n22*a.n31*a.n44+a.n21*a.n32*a.n44;c.n32=a.n14*a.n32*a.n41-a.n12*a.n34*a.n41-a.n14*a.n31*a.n42+a.n11*a.n34*a.n42+a.n12*a.n31*a.n44-a.n11*a.n32*a.n44;c.n33=a.n13*a.n24*a.n41-a.n14*a.n22*a.n41+a.n14*a.n21*a.n42-a.n11*a.n24*a.n42-a.n12*a.n21*a.n44+a.n11*a.n22*a.n44;c.n34=a.n14*a.n22*a.n31-a.n12*a.n24*a.n31-a.n14*a.n21*a.n32+a.n11*a.n24*a.n32+a.n12*a.n21*a.n34-a.n11*a.n22*a.n34;c.n41=a.n23*a.n32*a.n41-a.n22*a.n33*a.n41-a.n23*a.n31*a.n42+a.n21*a.n33*a.n42+a.n22* a.n31*a.n43-a.n21*a.n32*a.n43;c.n42=a.n12*a.n33*a.n41-a.n13*a.n32*a.n41+a.n13*a.n31*a.n42-a.n11*a.n33*a.n42-a.n12*a.n31*a.n43+a.n11*a.n32*a.n43;c.n43=a.n13*a.n22*a.n41-a.n12*a.n23*a.n41-a.n13*a.n21*a.n42+a.n11*a.n23*a.n42+a.n12*a.n21*a.n43-a.n11*a.n22*a.n43;c.n44=a.n12*a.n23*a.n31-a.n13*a.n22*a.n31+a.n13*a.n21*a.n32-a.n11*a.n23*a.n32-a.n12*a.n21*a.n33+a.n11*a.n22*a.n33;c.multiplyScalar(1/a.determinant());return c}; -THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=new THREE.Matrix3;var f=c[10]*c[5]-c[6]*c[9],b=-c[10]*c[1]+c[2]*c[9],d=c[6]*c[1]-c[2]*c[5],j=-c[10]*c[4]+c[6]*c[8],o=c[10]*c[0]-c[2]*c[8],r=-c[6]*c[0]+c[2]*c[4],e=c[9]*c[4]-c[5]*c[8],g=-c[9]*c[0]+c[1]*c[8],n=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*j+c[2]*e;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*b;a.m[2]=c*d;a.m[3]=c*j;a.m[4]=c*o;a.m[5]=c*r;a.m[6]=c*e;a.m[7]=c*g;a.m[8]=c*n;return a}; -THREE.Matrix4.makeFrustum=function(a,c,f,b,d,j){var o,r,e;o=new THREE.Matrix4;r=2*d/(c-a);e=2*d/(b-f);a=(c+a)/(c-a);f=(b+f)/(b-f);b=-(j+d)/(j-d);d=-2*j*d/(j-d);o.n11=r;o.n12=0;o.n13=a;o.n14=0;o.n21=0;o.n22=e;o.n23=f;o.n24=0;o.n31=0;o.n32=0;o.n33=b;o.n34=d;o.n41=0;o.n42=0;o.n43=-1;o.n44=0;return o};THREE.Matrix4.makePerspective=function(a,c,f,b){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*c,a*c,d,a,f,b)}; -THREE.Matrix4.makeOrtho=function(a,c,f,b,d,j){var o,r,e,g;o=new THREE.Matrix4;r=c-a;e=f-b;g=j-d;a=(c+a)/r;f=(f+b)/e;d=(j+d)/g;o.n11=2/r;o.n12=0;o.n13=0;o.n14=-a;o.n21=0;o.n22=2/e;o.n23=0;o.n24=-f;o.n31=0;o.n32=0;o.n33=-2/g;o.n34=-d;o.n41=0;o.n42=0;o.n43=0;o.n44=1;return o}; +THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=new THREE.Matrix3;var f=c[10]*c[5]-c[6]*c[9],b=-c[10]*c[1]+c[2]*c[9],d=c[6]*c[1]-c[2]*c[5],i=-c[10]*c[4]+c[6]*c[8],n=c[10]*c[0]-c[2]*c[8],r=-c[6]*c[0]+c[2]*c[4],e=c[9]*c[4]-c[5]*c[8],g=-c[9]*c[0]+c[1]*c[8],m=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*i+c[2]*e;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*b;a.m[2]=c*d;a.m[3]=c*i;a.m[4]=c*n;a.m[5]=c*r;a.m[6]=c*e;a.m[7]=c*g;a.m[8]=c*m;return a}; +THREE.Matrix4.makeFrustum=function(a,c,f,b,d,i){var n,r,e;n=new THREE.Matrix4;r=2*d/(c-a);e=2*d/(b-f);a=(c+a)/(c-a);f=(b+f)/(b-f);b=-(i+d)/(i-d);d=-2*i*d/(i-d);n.n11=r;n.n12=0;n.n13=a;n.n14=0;n.n21=0;n.n22=e;n.n23=f;n.n24=0;n.n31=0;n.n32=0;n.n33=b;n.n34=d;n.n41=0;n.n42=0;n.n43=-1;n.n44=0;return n};THREE.Matrix4.makePerspective=function(a,c,f,b){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*c,a*c,d,a,f,b)}; +THREE.Matrix4.makeOrtho=function(a,c,f,b,d,i){var n,r,e,g;n=new THREE.Matrix4;r=c-a;e=f-b;g=i-d;a=(c+a)/r;f=(f+b)/e;d=(i+d)/g;n.n11=2/r;n.n12=0;n.n13=0;n.n14=-a;n.n21=0;n.n22=2/e;n.n23=0;n.n24=-f;n.n31=0;n.n32=0;n.n33=-2/g;n.n34=-d;n.n41=0;n.n42=0;n.n43=0;n.n44=1;return n}; THREE.Vertex=function(a,c){this.position=a||new THREE.Vector3;this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.normal=c||new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.normalScreen=new THREE.Vector3;this.__visible=true};THREE.Vertex.prototype={toString:function(){return"THREE.Vertex ( position: "+this.position+", normal: "+this.normal+" )"}}; THREE.Face3=function(a,c,f,b,d){this.a=a;this.b=c;this.c=f;this.centroid=new THREE.Vector3;this.normal=b instanceof THREE.Vector3?b:new THREE.Vector3;this.vertexNormals=b instanceof Array?b:[];this.material=d instanceof Array?d:[d]};THREE.Face3.prototype={toString:function(){return"THREE.Face3 ( "+this.a+", "+this.b+", "+this.c+" )"}}; -THREE.Face4=function(a,c,f,b,d,j){this.a=a;this.b=c;this.c=f;this.d=b;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=j instanceof Array?j:[j]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,c){this.u=a||0;this.v=c||0}; +THREE.Face4=function(a,c,f,b,d,i){this.a=a;this.b=c;this.c=f;this.d=b;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=i instanceof Array?i:[i]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,c){this.u=a||0;this.v=c||0}; THREE.UV.prototype={copy:function(a){this.u=a.u;this.v=a.v},toString:function(){return"THREE.UV ("+this.u+", "+this.v+")"}};THREE.Geometry=function(){this.vertices=[];this.faces=[];this.uvs=[]}; THREE.Geometry.prototype={computeCentroids:function(){var a,c,f;a=0;for(c=this.faces.length;a0){this.bbox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y,this.vertices[0].position.y],z:[this.vertices[0].position.z,this.vertices[0].position.z]};for(var a=1,c=this.vertices.length;a +f.centroid.addSelf(this.vertices[f.d].position);f.centroid.divideScalar(4)}}},computeNormals:function(a){var c,f,b,d,i,n,r=new THREE.Vector3,e=new THREE.Vector3;b=0;for(d=this.vertices.length;b0){this.bbox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y,this.vertices[0].position.y],z:[this.vertices[0].position.z,this.vertices[0].position.z]};for(var a=1,c=this.vertices.length;a this.bbox.x[1])this.bbox.x[1]=vertex.position.x;if(vertex.position.ythis.bbox.y[1])this.bbox.y[1]=vertex.position.y;if(vertex.position.zthis.bbox.z[1])this.bbox.z[1]=vertex.position.z}}},toString:function(){return"THREE.Geometry ( vertices: "+this.vertices+", faces: "+this.faces+" )"}}; THREE.Camera=function(a,c,f,b){this.position=new THREE.Vector3(0,0,0);this.target={position:new THREE.Vector3(0,0,0)};this.up=new THREE.Vector3(0,1,0);this.matrix=new THREE.Matrix4;this.projectionMatrix=THREE.Matrix4.makePerspective(a,c,f,b);this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrix.lookAt(this.position,this.target.position,this.up)};this.toString=function(){return"THREE.Camera ( "+this.position+", "+this.target.position+" )"}}; THREE.Light=function(a){this.color=new THREE.Color(-16777216|a)};THREE.AmbientLight=function(a){THREE.Light.call(this,a)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight;THREE.DirectionalLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,1,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight; @@ -53,8 +53,8 @@ THREE.Object3D=function(){this.position=new THREE.Vector3;this.rotation=new THRE this.matrixRotation.multiplySelf(THREE.Matrix4.rotationYMatrix(this.rotation.y));this.matrixRotation.multiplySelf(THREE.Matrix4.rotationZMatrix(this.rotation.z));this.matrixScale=THREE.Matrix4.scaleMatrix(this.scale.x,this.scale.y,this.scale.z);this.matrix.copy(this.matrixPosition);this.matrix.multiplySelf(this.matrixRotation);this.matrix.multiplySelf(this.matrixScale)}};THREE.Particle=function(a){THREE.Object3D.call(this);this.material=a instanceof Array?a:[a];this.autoUpdateMatrix=false}; THREE.Particle.prototype=new THREE.Object3D;THREE.Particle.prototype.constructor=THREE.Particle;THREE.Line=function(a,c){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c]};THREE.Line.prototype=new THREE.Object3D;THREE.Line.prototype.constructor=THREE.Line; THREE.Mesh=function(a,c,f){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c];this.overdraw=this.doubleSided=this.flipSided=false;this.materialFaceGroup={};this.sortFacesByMaterial();f&&this.normalizeUVs();this.geometry.computeBoundingBox()};THREE.Mesh.prototype=new THREE.Object3D;THREE.Mesh.prototype.constructor=THREE.Mesh; -THREE.Mesh.prototype.sortFacesByMaterial=function(){function a(n){var h=[];c=0;for(f=n.length;c65535){g[r].counter+=1;e=g[r].hash+"_"+g[r].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:o,vertices:0}}this.materialFaceGroup[e].faces.push(b);this.materialFaceGroup[e].vertices+=j}};THREE.Mesh.prototype.normalizeUVs=function(){var a,c,f,b,d;a=0;for(c=this.geometry.uvs.length;a65535){g[r].counter+=1;e=g[r].hash+"_"+g[r].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:n,vertices:0}}this.materialFaceGroup[e].faces.push(b);this.materialFaceGroup[e].vertices+=i}};THREE.Mesh.prototype.normalizeUVs=function(){var a,c,f,b,d;a=0;for(c=this.geometry.uvs.length;acolor: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
linewidth: "+ this.linewidth+"
)"}}; @@ -75,49 +75,50 @@ this.blending+"
)"}};THREE.ParticleCircleMaterial=function(a){this.color=new THREE.ParticleDOMMaterial=function(a){this.domElement=a;this.toString=function(){return"THREE.ParticleDOMMaterial ( domElement: "+this.domElement+" )"}};THREE.Texture=function(a,c){this.image=a;this.mapping=c!==undefined?c:THREE.UVMapping;this.toString=function(){return"THREE.Texture (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.UVMapping=0;THREE.ReflectionMap=1;THREE.RefractionMap=2;THREE.Multiply=0;THREE.Mix=1; THREE.TextureCube=function(a,c){this.image=a;this.mapping=c?c:THREE.ReflectionMap;this.toString=function(){return"THREE.TextureCube (
image: "+this.image+"
mapping: "+this.mapping+"
)"}}; THREE.Scene=function(){this.objects=[];this.lights=[];this.addObject=function(a){this.objects.push(a)};this.removeObject=function(a){a=this.objects.indexOf(a);a!==-1&&this.objects.splice(a,1)};this.addLight=function(a){this.lights.push(a)};this.removeLight=function(a){a=this.lights.indexOf(a);a!==-1&&this.lights.splice(a,1)};this.toString=function(){return"THREE.Scene ( "+this.objects+" )"}}; -THREE.Projector=function(){function a(D,B){var m;m=0;var v=1,i=D.z+D.w,P=B.z+B.w,M=-D.z+D.w,x=-B.z+B.w;if(i>=0&&P>=0&&M>=0&&x>=0)m=true;else if(i<0&&P<0||M<0&&x<0)m=false;else{if(i<0)m=Math.max(m,i/(i-P));else if(P<0)v=Math.min(v,i/(i-P));if(M<0)m=Math.max(m,M/(M-x));else if(x<0)v=Math.min(v,M/(M-x));if(v0&&t.z<1}E=x.geometry.faces;i=0;for(P=E.length;i< -P;i++){t=E[i];if(t instanceof THREE.Face3){X=S[t.a];C=S[t.b];L=S[t.c];if(X.__visible&&C.__visible&&L.__visible)if(x.doubleSided||x.flipSided!=(L.positionScreen.x-X.positionScreen.x)*(C.positionScreen.y-X.positionScreen.y)-(L.positionScreen.y-X.positionScreen.y)*(C.positionScreen.x-X.positionScreen.x)<0){f=d[b]=d[b]||new THREE.RenderableFace3;f.v1.positionScreen.copy(X.positionScreen);f.v2.positionScreen.copy(C.positionScreen);f.v3.positionScreen.copy(L.positionScreen);f.normalWorld.copy(t.normal); -x.matrixRotation.transform(f.normalWorld);f.centroidWorld.copy(t.centroid);J.transform(f.centroidWorld);f.centroidScreen.copy(f.centroidWorld);s.transform(f.centroidScreen);f.z=f.centroidScreen.z;f.meshMaterial=x.material;f.faceMaterial=t.material;f.overdraw=x.overdraw;f.uvs=x.geometry.uvs[i];f.color=t.color;c.push(f);b++}}else if(t instanceof THREE.Face4){X=S[t.a];C=S[t.b];L=S[t.c];K=S[t.d];if(X.__visible&&C.__visible&&L.__visible&&K.__visible)if(x.doubleSided||x.flipSided!=((K.positionScreen.x- -X.positionScreen.x)*(C.positionScreen.y-X.positionScreen.y)-(K.positionScreen.y-X.positionScreen.y)*(C.positionScreen.x-X.positionScreen.x)<0||(C.positionScreen.x-L.positionScreen.x)*(K.positionScreen.y-L.positionScreen.y)-(C.positionScreen.y-L.positionScreen.y)*(K.positionScreen.x-L.positionScreen.x)<0)){j=r[o]=r[o]||new THREE.RenderableFace4;j.v1.positionScreen.copy(X.positionScreen);j.v2.positionScreen.copy(C.positionScreen);j.v3.positionScreen.copy(L.positionScreen);j.v4.positionScreen.copy(K.positionScreen); -j.normalWorld.copy(t.normal);x.matrixRotation.transform(j.normalWorld);j.centroidWorld.copy(t.centroid);J.transform(j.centroidWorld);j.centroidScreen.copy(j.centroidWorld);s.transform(j.centroidScreen);j.z=j.centroidScreen.z;j.meshMaterial=x.material;j.faceMaterial=t.material;j.overdraw=x.overdraw;j.uvs=x.geometry.uvs[i];j.color=t.color;c.push(j);o++}}}}else if(x instanceof THREE.Line){A.multiply(s,J);S=x.geometry.vertices;i=0;for(P=S.length;i0&&p.z<1){h=q[l]=q[l]||new THREE.RenderableParticle;h.x=p.x/p.w;h.y=p.y/p.w; -h.z=p.z;h.rotation=x.rotation.z;h.scale.x=x.scale.x*Math.abs(h.x-(p.x+B.projectionMatrix.n11)/(p.w+B.projectionMatrix.n14));h.scale.y=x.scale.y*Math.abs(h.y-(p.y+B.projectionMatrix.n22)/(p.w+B.projectionMatrix.n24));h.material=x.material;c.push(h);l++}}}c.sort(function(R,y){return y.z-R.z});return c};this.unprojectVector=function(D,B){var m=new THREE.Matrix4;m.multiply(THREE.Matrix4.makeInvert(B.matrix),THREE.Matrix4.makeInvert(B.projectionMatrix));m.transform(D);return D}}; -THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,c=new THREE.Projector,f,b,d,j;this.domElement=document.createElement("div");this.setSize=function(o,r){f=o;b=r;d=f/2;j=b/2};this.render=function(o,r){var e,g,n,h,l,q,p,s;a=c.projectScene(o,r);e=0;for(g=a.length;e0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}else if(k instanceof THREE.PointLight){Ja.sub(k.position,N.centroidWorld);Ja.normalize();k=N.normalWorld.dot(Ja)*k.intensity;if(k>0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}}}function c(w,N,H,I,k,G){if(k.opacity!=0){o(k.opacity);r(k.blending);L=w.positionScreen.x; -K=w.positionScreen.y;R=N.positionScreen.x;y=N.positionScreen.y;u=H.positionScreen.x;Q=H.positionScreen.y;if(k.map){fa=k.map.image;na=fa.width-1;oa=fa.height-1;da.u=I.uvs[0].u*na;da.v=I.uvs[0].v*oa;Z.u=I.uvs[1].u*na;Z.v=I.uvs[1].v*oa;ea.u=I.uvs[2].u*na;ea.v=I.uvs[2].v*oa;j(fa,L,K,R,y,u,Q,da.u,da.v,Z.u,Z.v,ea.u,ea.v)}else if(k instanceof THREE.MeshBasicMaterial)b(L,K,R,y,u,Q,k.color,k.wireframe,k.wireframe_linewidth);else if(k instanceof THREE.MeshLambertMaterial){if(Fa){ba.r=ga.r;ba.g=ga.g;ba.b=ga.b; -a(G,I,ba);T.r=k.color.r*ba.r;T.g=k.color.g*ba.g;T.b=k.color.b*ba.b;T.updateStyleString()}else T.__styleString=k.color.__styleString;b(L,K,R,y,u,Q,T,k.wireframe,k.wireframe_linewidth)}else if(k instanceof THREE.MeshDepthMaterial){pa=k.__2near;qa=k.__farPlusNear;ra=k.__farMinusNear;va=~~((1-pa/(qa-w.positionScreen.z*ra))*255);wa=~~((1-pa/(qa-N.positionScreen.z*ra))*255);ma=~~((1-pa/(qa-H.positionScreen.z*ra))*255);fa=h([va,va,va],[wa,wa,wa],[ma,ma,ma],[ma,ma,ma]);da.u=0;da.v=0;Z.u=ka;Z.v=0;ea.u=0;ea.v= -ka;j(fa,L,K,R,y,u,Q,da.u,da.v,Z.u,Z.v,ea.u,ea.v)}else if(k instanceof THREE.MeshNormalMaterial){T.r=l(I.normalWorld.x);T.g=l(I.normalWorld.y);T.b=l(I.normalWorld.z);T.updateStyleString();b(L,K,R,y,u,Q,T,k.wireframe,k.wireframe_linewidth)}}}function f(w,N,H,I,k,G,U,z,W){if(z.opacity!=0){o(z.opacity);r(z.blending);L=w.positionScreen.x;K=w.positionScreen.y;R=N.positionScreen.x;y=N.positionScreen.y;u=H.positionScreen.x;Q=H.positionScreen.y;ha=I.positionScreen.x;O=I.positionScreen.y;Y=k.positionScreen.x; -xa=k.positionScreen.y;Ka=G.positionScreen.x;La=G.positionScreen.y;if(z.map){fa=z.map.image;na=fa.width-1;oa=fa.height-1;da.copy(U.uvs[0]);Z.copy(U.uvs[1]);ea.copy(U.uvs[2]);ia.copy(U.uvs[3]);da.u*=na;da.v*=oa;Z.u*=na;Z.v*=oa;ea.u*=na;ea.v*=oa;ia.u*=na;ia.v*=oa;j(fa,L,K,R,y,ha,O,da.u,da.v,Z.u,Z.v,ia.u,ia.v);j(fa,Y,xa,u,Q,Ka,La,Z.u,Z.v,ea.u,ea.v,ia.u,ia.v)}else if(z instanceof THREE.MeshBasicMaterial)d(L,K,R,y,u,Q,ha,O,z.color,z.wireframe,z.wireframe_linewidth);else if(z instanceof THREE.MeshLambertMaterial){if(Fa){ba.r= -ga.r;ba.g=ga.g;ba.b=ga.b;a(W,U,ba);T.r=z.color.r*ba.r;T.g=z.color.g*ba.g;T.b=z.color.b*ba.b;T.updateStyleString()}else T.__styleString=z.color.__styleString;d(L,K,R,y,u,Q,ha,O,T,z.wireframe,z.wireframe_linewidth)}else if(z instanceof THREE.MeshDepthMaterial){pa=z.__2near;qa=z.__farPlusNear;ra=z.__farMinusNear;va=~~((1-pa/(qa-w.positionScreen.z*ra))*255);wa=~~((1-pa/(qa-N.positionScreen.z*ra))*255);ma=~~((1-pa/(qa-H.positionScreen.z*ra))*255);Ga=~~((1-pa/(qa-I.positionScreen.z*ra))*255);fa=h([va,va, -va],[wa,wa,wa],[Ga,Ga,Ga],[ma,ma,ma]);da.u=0;da.v=0;Z.u=ka;Z.v=0;ea.u=ka;ea.v=ka;ia.u=0;ia.v=ka;j(fa,L,K,R,y,ha,O,da.u,da.v,Z.u,Z.v,ia.u,ia.v);j(fa,Y,xa,u,Q,Ka,La,Z.u,Z.v,ea.u,ea.v,ia.u,ia.v)}else if(z instanceof THREE.MeshNormalMaterial){T.r=l(U.normalWorld.x);T.g=l(U.normalWorld.y);T.b=l(U.normalWorld.z);T.updateStyleString();d(L,K,R,y,u,Q,ha,O,T,z.wireframe,z.wireframe_linewidth)}}}function b(w,N,H,I,k,G,U,z,W){i.beginPath();i.moveTo(w,N);i.lineTo(H,I);i.lineTo(k,G);i.lineTo(w,N);i.closePath(); -if(z){e(W);g(U.__styleString);i.stroke();$.inflate(W*2)}else{n(U.__styleString);i.fill()}}function d(w,N,H,I,k,G,U,z,W,F,ca){i.beginPath();i.moveTo(w,N);i.lineTo(H,I);i.lineTo(k,G);i.lineTo(U,z);i.lineTo(w,N);i.closePath();if(F){e(ca);g(W.__styleString);i.stroke();$.inflate(ca*2)}else{n(W.__styleString);i.fill()}}function j(w,N,H,I,k,G,U,z,W,F,ca,la,sa){i.beginPath();i.moveTo(N,H);i.lineTo(I,k);i.lineTo(G,U);i.closePath();I-=N;k-=H;G-=N;U-=H;F-=z;ca-=W;la-=z;sa-=W;var ta=1/(F*sa-la*ca),Ba=(sa*I-ca* -G)*ta;ca=(sa*k-ca*U)*ta;I=(F*G-la*I)*ta;k=(F*U-la*k)*ta;N=N-Ba*z-I*W;H=H-ca*z-k*W;i.save();i.transform(Ba,ca,I,k,N,H);i.clip();i.drawImage(w,0,0);i.restore()}function o(w){if(P!=w)i.globalAlpha=P=w}function r(w){if(M!=w){switch(w){case THREE.NormalBlending:i.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:i.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:i.globalCompositeOperation="darker"}M=w}}function e(w){if(S!=w)i.lineWidth=S=w}function g(w){if(x!= -w)i.strokeStyle=x=w}function n(w){if(J!=w)i.fillStyle=J=w}function h(w,N,H,I){ja[0]=w[0];ja[1]=w[1];ja[2]=w[2];ja[4]=N[0];ja[5]=N[1];ja[6]=N[2];ja[8]=H[0];ja[9]=H[1];ja[10]=H[2];ja[12]=I[0];ja[13]=I[1];ja[14]=I[2];Ca.putImageData(Ma,0,0);Ha.drawImage(Da,0,0);return Ea}function l(w){return w<0?Math.min((1+w)*0.5,0.5):0.5+Math.min(w*0.5,0.5)}function q(w,N){var H=N.x-w.x,I=N.y-w.y,k=1/Math.sqrt(H*H+I*I);H*=k;I*=k;N.x+=H;N.y+=I;w.x-=H;w.y-=I}var p=null,s=new THREE.Projector,A=document.createElement("canvas"), -D,B,m,v,i=A.getContext("2d"),P=1,M=0,x=null,J=null,S=1,E,t,V,aa,X=new THREE.Vertex,C=new THREE.Vertex,L,K,R,y,u,Q,ha,O,Y,xa,Ka,La,va,wa,ma,Ga,pa,qa,ra,fa,na,oa,ya=new THREE.Rectangle,ua=new THREE.Rectangle,$=new THREE.Rectangle,Fa=false,T=new THREE.Color(4294967295),ba=new THREE.Color(4294967295),ga=new THREE.Color(4278190080),za=new THREE.Color(4278190080),Aa=new THREE.Color(4278190080),Qa=Math.PI*2,Ja=new THREE.Vector3,da=new THREE.UV,Z=new THREE.UV,ea=new THREE.UV,ia=new THREE.UV,Da,Ca,Ma,ja,Ea, -Ha,ka=16;Da=document.createElement("canvas");Da.width=Da.height=2;Ca=Da.getContext("2d");Ca.fillStyle="rgba(0,0,0,1)";Ca.fillRect(0,0,2,2);Ma=Ca.getImageData(0,0,2,2);ja=Ma.data;Ea=document.createElement("canvas");Ea.width=Ea.height=ka;Ha=Ea.getContext("2d");Ha.translate(-ka/2,-ka/2);Ha.scale(ka,ka);ka--;this.domElement=A;this.autoClear=true;this.setSize=function(w,N){D=w;B=N;m=D/2;v=B/2;A.width=D;A.height=B;i.lineJoin="round";i.lineCap="round";ya.set(-m,-v,m,v)};this.clear=function(){if(!ua.isEmpty()){ua.inflate(1); -ua.minSelf(ya);i.setTransform(1,0,0,-1,m,v);i.clearRect(ua.getX(),ua.getY(),ua.getWidth(),ua.getHeight());ua.empty()}};this.render=function(w,N){var H,I,k,G,U,z,W,F;this.autoClear&&this.clear();p=s.projectScene(w,N);i.setTransform(1,0,0,-1,m,v);if(Fa=w.lights.length>0){U=w.lights;ga.setRGB(0,0,0);za.setRGB(0,0,0);Aa.setRGB(0,0,0);H=0;for(I=U.length;H0){K.r+=u.color.r*Q;K.g+=u.color.g*Q;K.b+=u.color.b*Q}}else if(u instanceof THREE.PointLight){J.sub(u.position,L.centroidWorld);J.normalize();Q=L.normalWorld.dot(J)*u.intensity;if(Q>0){K.r+=u.color.r*Q;K.g+=u.color.g*Q;K.b+=u.color.b*Q}}}}function c(C,L,K,R,y,u){t=b(V++);t.setAttribute("d","M "+C.positionScreen.x+ -" "+C.positionScreen.y+" L "+L.positionScreen.x+" "+L.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+"z");if(y instanceof THREE.MeshBasicMaterial)m.__styleString=y.color.__styleString;else if(y instanceof THREE.MeshLambertMaterial)if(B){v.r=i.r;v.g=i.g;v.b=i.b;a(u,R,v);m.r=y.color.r*v.r;m.g=y.color.g*v.g;m.b=y.color.b*v.b;m.updateStyleString()}else m.__styleString=y.color.__styleString;else if(y instanceof THREE.MeshDepthMaterial){x=1-y.__2near/(y.__farPlusNear-R.z*y.__farMinusNear); -m.setRGB(x,x,x)}else y instanceof THREE.MeshNormalMaterial&&m.setRGB(d(R.normalWorld.x),d(R.normalWorld.y),d(R.normalWorld.z));y.wireframe?t.setAttribute("style","fill: none; stroke: "+m.__styleString+"; stroke-width: "+y.wireframe_linewidth+"; stroke-opacity: "+y.opacity+"; stroke-linecap: round; stroke-linejoin: round"):t.setAttribute("style","fill: "+m.__styleString+"; fill-opacity: "+y.opacity);r.appendChild(t)}function f(C,L,K,R,y,u,Q){t=b(V++);t.setAttribute("d","M "+C.positionScreen.x+" "+ -C.positionScreen.y+" L "+L.positionScreen.x+" "+L.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+" L "+R.positionScreen.x+","+R.positionScreen.y+"z");if(u instanceof THREE.MeshBasicMaterial)m.__styleString=u.color.__styleString;else if(u instanceof THREE.MeshLambertMaterial)if(B){v.r=i.r;v.g=i.g;v.b=i.b;a(Q,y,v);m.r=u.color.r*v.r;m.g=u.color.g*v.g;m.b=u.color.b*v.b;m.updateStyleString()}else m.__styleString=u.color.__styleString;else if(u instanceof THREE.MeshDepthMaterial){x=1- -u.__2near/(u.__farPlusNear-y.z*u.__farMinusNear);m.setRGB(x,x,x)}else u instanceof THREE.MeshNormalMaterial&&m.setRGB(d(y.normalWorld.x),d(y.normalWorld.y),d(y.normalWorld.z));u.wireframe?t.setAttribute("style","fill: none; stroke: "+m.__styleString+"; stroke-width: "+u.wireframe_linewidth+"; stroke-opacity: "+u.opacity+"; stroke-linecap: round; stroke-linejoin: round"):t.setAttribute("style","fill: "+m.__styleString+"; fill-opacity: "+u.opacity);r.appendChild(t)}function b(C){if(S[C]==null){S[C]= -document.createElementNS("http://www.w3.org/2000/svg","path");X==0&&S[C].setAttribute("shape-rendering","crispEdges");return S[C]}return S[C]}function d(C){return C<0?Math.min((1+C)*0.5,0.5):0.5+Math.min(C*0.5,0.5)}var j=null,o=new THREE.Projector,r=document.createElementNS("http://www.w3.org/2000/svg","svg"),e,g,n,h,l,q,p,s,A=new THREE.Rectangle,D=new THREE.Rectangle,B=false,m=new THREE.Color(4294967295),v=new THREE.Color(4294967295),i=new THREE.Color(4278190080),P=new THREE.Color(4278190080),M= -new THREE.Color(4278190080),x,J=new THREE.Vector3,S=[],E=[],t,V,aa,X=1;this.domElement=r;this.autoClear=true;this.setQuality=function(C){switch(C){case "high":X=1;break;case "low":X=0}};this.setSize=function(C,L){e=C;g=L;n=e/2;h=g/2;r.setAttribute("viewBox",-n+" "+-h+" "+e+" "+g);r.setAttribute("width",e);r.setAttribute("height",g);A.set(-n,-h,n,h)};this.clear=function(){for(;r.childNodes.length>0;)r.removeChild(r.childNodes[0])};this.render=function(C,L){var K,R,y,u,Q,ha,O,Y;this.autoClear&&this.clear(); -j=o.projectScene(C,L);aa=V=0;if(B=C.lights.length>0){O=C.lights;i.setRGB(0,0,0);P.setRGB(0,0,0);M.setRGB(0,0,0);K=0;for(R=O.length;K=0&&S>=0&&E>=0&&B>=0)return true;else if(C<0&&S<0||E<0&&B<0)return false;else{if(C<0)j=Math.max(j,C/(C-S));else if(S<0)U=Math.min(U,C/(C-S));if(E<0)j=Math.max(j,E/(E-B));else if(B<0)U=Math.min(U,E/(E-B));if(U0&&Q.z<1}fa=B.geometry.faces;C=0;for(S= +fa.length;C0&&o.z<1){h=q[l]=q[l]|| +new THREE.RenderableParticle;h.x=o.x/o.w;h.y=o.y/o.w;h.z=o.z;h.rotation=B.rotation.z;h.scale.x=B.scale.x*Math.abs(h.x-(o.x+t.projectionMatrix.n11)/(o.w+t.projectionMatrix.n14));h.scale.y=B.scale.y*Math.abs(h.y-(o.y+t.projectionMatrix.n22)/(o.w+t.projectionMatrix.n24));h.material=B.material;c.push(h);l++}}}c.sort(function(T,x){return x.z-T.z});return c};this.unprojectVector=function(p,t){var j=new THREE.Matrix4;j.multiply(THREE.Matrix4.makeInvert(t.matrix),THREE.Matrix4.makeInvert(t.projectionMatrix)); +j.transform(p);return p}}; +THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,c=new THREE.Projector,f,b,d,i;this.domElement=document.createElement("div");this.setSize=function(n,r){f=n;b=r;d=f/2;i=b/2};this.render=function(n,r){var e,g,m,h,l,q,o,s;a=c.projectScene(n,r);e=0;for(g=a.length;e0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}else if(k instanceof THREE.PointLight){Ja.sub(k.position,O.centroidWorld);Ja.normalize();k=O.normalWorld.dot(Ja)*k.intensity;if(k>0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}}}function c(v,O,H,I,k,G){if(k.opacity!=0){n(k.opacity);r(k.blending);M=v.positionScreen.x; +K=v.positionScreen.y;T=O.positionScreen.x;x=O.positionScreen.y;u=H.positionScreen.x;R=H.positionScreen.y;if(k.map){ea=k.map.image;na=ea.width-1;oa=ea.height-1;ca.u=I.uvs[0].u*na;ca.v=I.uvs[0].v*oa;Z.u=I.uvs[1].u*na;Z.v=I.uvs[1].v*oa;da.u=I.uvs[2].u*na;da.v=I.uvs[2].v*oa;i(ea,M,K,T,x,u,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(k instanceof THREE.MeshBasicMaterial)b(M,K,T,x,u,R,k.color,k.wireframe,k.wireframe_linewidth);else if(k instanceof THREE.MeshLambertMaterial){if(Fa){aa.r=ga.r;aa.g=ga.g;aa.b=ga.b; +a(G,I,aa);V.r=k.color.r*aa.r;V.g=k.color.g*aa.g;V.b=k.color.b*aa.b;V.updateStyleString()}else V.__styleString=k.color.__styleString;b(M,K,T,x,u,R,V,k.wireframe,k.wireframe_linewidth)}else if(k instanceof THREE.MeshDepthMaterial){pa=k.__2near;qa=k.__farPlusNear;ra=k.__farMinusNear;va=~~((1-pa/(qa-v.positionScreen.z*ra))*255);wa=~~((1-pa/(qa-O.positionScreen.z*ra))*255);ma=~~((1-pa/(qa-H.positionScreen.z*ra))*255);ea=h([va,va,va],[wa,wa,wa],[ma,ma,ma],[ma,ma,ma]);ca.u=0;ca.v=0;Z.u=ka;Z.v=0;da.u=0;da.v= +ka;i(ea,M,K,T,x,u,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(k instanceof THREE.MeshNormalMaterial){V.r=l(I.normalWorld.x);V.g=l(I.normalWorld.y);V.b=l(I.normalWorld.z);V.updateStyleString();b(M,K,T,x,u,R,V,k.wireframe,k.wireframe_linewidth)}}}function f(v,O,H,I,k,G,W,y,X){if(y.opacity!=0){n(y.opacity);r(y.blending);M=v.positionScreen.x;K=v.positionScreen.y;T=O.positionScreen.x;x=O.positionScreen.y;u=H.positionScreen.x;R=H.positionScreen.y;ha=I.positionScreen.x;P=I.positionScreen.y;Y=k.positionScreen.x; +xa=k.positionScreen.y;Ka=G.positionScreen.x;La=G.positionScreen.y;if(y.map){ea=y.map.image;na=ea.width-1;oa=ea.height-1;ca.copy(W.uvs[0]);Z.copy(W.uvs[1]);da.copy(W.uvs[2]);ia.copy(W.uvs[3]);ca.u*=na;ca.v*=oa;Z.u*=na;Z.v*=oa;da.u*=na;da.v*=oa;ia.u*=na;ia.v*=oa;i(ea,M,K,T,x,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);i(ea,Y,xa,u,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(y instanceof THREE.MeshBasicMaterial)d(M,K,T,x,u,R,ha,P,y.color,y.wireframe,y.wireframe_linewidth);else if(y instanceof THREE.MeshLambertMaterial){if(Fa){aa.r= +ga.r;aa.g=ga.g;aa.b=ga.b;a(X,W,aa);V.r=y.color.r*aa.r;V.g=y.color.g*aa.g;V.b=y.color.b*aa.b;V.updateStyleString()}else V.__styleString=y.color.__styleString;d(M,K,T,x,u,R,ha,P,V,y.wireframe,y.wireframe_linewidth)}else if(y instanceof THREE.MeshDepthMaterial){pa=y.__2near;qa=y.__farPlusNear;ra=y.__farMinusNear;va=~~((1-pa/(qa-v.positionScreen.z*ra))*255);wa=~~((1-pa/(qa-O.positionScreen.z*ra))*255);ma=~~((1-pa/(qa-H.positionScreen.z*ra))*255);Ga=~~((1-pa/(qa-I.positionScreen.z*ra))*255);ea=h([va,va, +va],[wa,wa,wa],[Ga,Ga,Ga],[ma,ma,ma]);ca.u=0;ca.v=0;Z.u=ka;Z.v=0;da.u=ka;da.v=ka;ia.u=0;ia.v=ka;i(ea,M,K,T,x,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);i(ea,Y,xa,u,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(y instanceof THREE.MeshNormalMaterial){V.r=l(W.normalWorld.x);V.g=l(W.normalWorld.y);V.b=l(W.normalWorld.z);V.updateStyleString();d(M,K,T,x,u,R,ha,P,V,y.wireframe,y.wireframe_linewidth)}}}function b(v,O,H,I,k,G,W,y,X){j.beginPath();j.moveTo(v,O);j.lineTo(H,I);j.lineTo(k,G);j.lineTo(v,O);j.closePath(); +if(y){e(X);g(W.__styleString);j.stroke();$.inflate(X*2)}else{m(W.__styleString);j.fill()}}function d(v,O,H,I,k,G,W,y,X,F,ba){j.beginPath();j.moveTo(v,O);j.lineTo(H,I);j.lineTo(k,G);j.lineTo(W,y);j.lineTo(v,O);j.closePath();if(F){e(ba);g(X.__styleString);j.stroke();$.inflate(ba*2)}else{m(X.__styleString);j.fill()}}function i(v,O,H,I,k,G,W,y,X,F,ba,la,sa){j.beginPath();j.moveTo(O,H);j.lineTo(I,k);j.lineTo(G,W);j.closePath();I-=O;k-=H;G-=O;W-=H;F-=y;ba-=X;la-=y;sa-=X;var ta=1/(F*sa-la*ba),Ba=(sa*I-ba* +G)*ta;ba=(sa*k-ba*W)*ta;I=(F*G-la*I)*ta;k=(F*W-la*k)*ta;O=O-Ba*y-I*X;H=H-ba*y-k*X;j.save();j.transform(Ba,ba,I,k,O,H);j.clip();j.drawImage(v,0,0);j.restore()}function n(v){if(U!=v)j.globalAlpha=U=v}function r(v){if(C!=v){switch(v){case THREE.NormalBlending:j.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:j.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:j.globalCompositeOperation="darker"}C=v}}function e(v){if(B!=v)j.lineWidth=B=v}function g(v){if(S!= +v)j.strokeStyle=S=v}function m(v){if(E!=v)j.fillStyle=E=v}function h(v,O,H,I){ja[0]=v[0];ja[1]=v[1];ja[2]=v[2];ja[4]=O[0];ja[5]=O[1];ja[6]=O[2];ja[8]=H[0];ja[9]=H[1];ja[10]=H[2];ja[12]=I[0];ja[13]=I[1];ja[14]=I[2];Ca.putImageData(Ma,0,0);Ha.drawImage(Da,0,0);return Ea}function l(v){return v<0?Math.min((1+v)*0.5,0.5):0.5+Math.min(v*0.5,0.5)}function q(v,O){var H=O.x-v.x,I=O.y-v.y,k=1/Math.sqrt(H*H+I*I);H*=k;I*=k;O.x+=H;O.y+=I;v.x-=H;v.y-=I}var o=null,s=new THREE.Projector,A=document.createElement("canvas"), +J,N,p,t,j=A.getContext("2d"),U=1,C=0,S=null,E=null,B=1,L,w,D,Q,fa=new THREE.Vertex,z=new THREE.Vertex,M,K,T,x,u,R,ha,P,Y,xa,Ka,La,va,wa,ma,Ga,pa,qa,ra,ea,na,oa,ya=new THREE.Rectangle,ua=new THREE.Rectangle,$=new THREE.Rectangle,Fa=false,V=new THREE.Color(16777215),aa=new THREE.Color(16777215),ga=new THREE.Color(0),za=new THREE.Color(0),Aa=new THREE.Color(0),Qa=Math.PI*2,Ja=new THREE.Vector3,ca=new THREE.UV,Z=new THREE.UV,da=new THREE.UV,ia=new THREE.UV,Da,Ca,Ma,ja,Ea,Ha,ka=16;Da=document.createElement("canvas"); +Da.width=Da.height=2;Ca=Da.getContext("2d");Ca.fillStyle="rgba(0,0,0,1)";Ca.fillRect(0,0,2,2);Ma=Ca.getImageData(0,0,2,2);ja=Ma.data;Ea=document.createElement("canvas");Ea.width=Ea.height=ka;Ha=Ea.getContext("2d");Ha.translate(-ka/2,-ka/2);Ha.scale(ka,ka);ka--;this.domElement=A;this.autoClear=true;this.setSize=function(v,O){J=v;N=O;p=J/2;t=N/2;A.width=J;A.height=N;j.lineJoin="round";j.lineCap="round";ya.set(-p,-t,p,t)};this.clear=function(){if(!ua.isEmpty()){ua.inflate(1);ua.minSelf(ya);j.setTransform(1, +0,0,-1,p,t);j.clearRect(ua.getX(),ua.getY(),ua.getWidth(),ua.getHeight());ua.empty()}};this.render=function(v,O){var H,I,k,G,W,y,X,F;this.autoClear&&this.clear();o=s.projectScene(v,O);j.setTransform(1,0,0,-1,p,t);if(Fa=v.lights.length>0){W=v.lights;ga.setRGB(0,0,0);za.setRGB(0,0,0);Aa.setRGB(0,0,0);H=0;for(I=W.length;H0){K.r+=u.color.r*R;K.g+=u.color.g*R;K.b+=u.color.b*R}}else if(u instanceof THREE.PointLight){E.sub(u.position,M.centroidWorld);E.normalize();R=M.normalWorld.dot(E)*u.intensity;if(R>0){K.r+=u.color.r*R;K.g+=u.color.g*R;K.b+=u.color.b*R}}}}function c(z,M,K,T,x,u){w=b(D++);w.setAttribute("d","M "+z.positionScreen.x+ +" "+z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+"z");if(x instanceof THREE.MeshBasicMaterial)p.__styleString=x.color.__styleString;else if(x instanceof THREE.MeshLambertMaterial)if(N){t.r=j.r;t.g=j.g;t.b=j.b;a(u,T,t);p.r=x.color.r*t.r;p.g=x.color.g*t.g;p.b=x.color.b*t.b;p.updateStyleString()}else p.__styleString=x.color.__styleString;else if(x instanceof THREE.MeshDepthMaterial){S=1-x.__2near/(x.__farPlusNear-T.z*x.__farMinusNear); +p.setRGB(S,S,S)}else x instanceof THREE.MeshNormalMaterial&&p.setRGB(d(T.normalWorld.x),d(T.normalWorld.y),d(T.normalWorld.z));x.wireframe?w.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+x.wireframe_linewidth+"; stroke-opacity: "+x.opacity+"; stroke-linecap: round; stroke-linejoin: round"):w.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+x.opacity);r.appendChild(w)}function f(z,M,K,T,x,u,R){w=b(D++);w.setAttribute("d","M "+z.positionScreen.x+" "+ +z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+" L "+T.positionScreen.x+","+T.positionScreen.y+"z");if(u instanceof THREE.MeshBasicMaterial)p.__styleString=u.color.__styleString;else if(u instanceof THREE.MeshLambertMaterial)if(N){t.r=j.r;t.g=j.g;t.b=j.b;a(R,x,t);p.r=u.color.r*t.r;p.g=u.color.g*t.g;p.b=u.color.b*t.b;p.updateStyleString()}else p.__styleString=u.color.__styleString;else if(u instanceof THREE.MeshDepthMaterial){S=1- +u.__2near/(u.__farPlusNear-x.z*u.__farMinusNear);p.setRGB(S,S,S)}else u instanceof THREE.MeshNormalMaterial&&p.setRGB(d(x.normalWorld.x),d(x.normalWorld.y),d(x.normalWorld.z));u.wireframe?w.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+u.wireframe_linewidth+"; stroke-opacity: "+u.opacity+"; stroke-linecap: round; stroke-linejoin: round"):w.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+u.opacity);r.appendChild(w)}function b(z){if(B[z]==null){B[z]= +document.createElementNS("http://www.w3.org/2000/svg","path");fa==0&&B[z].setAttribute("shape-rendering","crispEdges");return B[z]}return B[z]}function d(z){return z<0?Math.min((1+z)*0.5,0.5):0.5+Math.min(z*0.5,0.5)}var i=null,n=new THREE.Projector,r=document.createElementNS("http://www.w3.org/2000/svg","svg"),e,g,m,h,l,q,o,s,A=new THREE.Rectangle,J=new THREE.Rectangle,N=false,p=new THREE.Color(16777215),t=new THREE.Color(16777215),j=new THREE.Color(0),U=new THREE.Color(0),C=new THREE.Color(0),S, +E=new THREE.Vector3,B=[],L=[],w,D,Q,fa=1;this.domElement=r;this.autoClear=true;this.setQuality=function(z){switch(z){case "high":fa=1;break;case "low":fa=0}};this.setSize=function(z,M){e=z;g=M;m=e/2;h=g/2;r.setAttribute("viewBox",-m+" "+-h+" "+e+" "+g);r.setAttribute("width",e);r.setAttribute("height",g);A.set(-m,-h,m,h)};this.clear=function(){for(;r.childNodes.length>0;)r.removeChild(r.childNodes[0])};this.render=function(z,M){var K,T,x,u,R,ha,P,Y;this.autoClear&&this.clear();i=n.projectScene(z, +M);Q=D=0;if(N=z.lights.length>0){P=z.lights;j.setRGB(0,0,0);U.setRGB(0,0,0);C.setRGB(0,0,0);K=0;for(T=P.length;K0&&A>0&&h+A<1}var f,b,d,j,o,r,e,g,n,i, -l,q=a.geometry,p=q.vertices,s=[];f=0;for(b=q.faces.length;f0&&A>0&&i+A<1}var f,b,d,j,n,r,e,g,m,h, +l,q=a.geometry,o=q.vertices,s=[];f=0;for(b=q.faces.length;f= -0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){r=true;d=b=f=c=0;a()};this.isEmpty=function(){return r};this.toString=function(){return"THREE.Rectangle ( left: "+c+", right: "+b+", top: "+f+", bottom: "+d+", width: "+j+", height: "+o+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; +0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){r=true;d=b=f=c=0;a()};this.isEmpty=function(){return r};this.toString=function(){return"THREE.Rectangle ( left: "+c+", right: "+b+", top: "+f+", bottom: "+d+", width: "+j+", height: "+n+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; THREE.Matrix4=function(){this._x=new THREE.Vector3;this._y=new THREE.Vector3;this._z=new THREE.Vector3}; THREE.Matrix4.prototype={n11:1,n12:0,n13:0,n14:0,n21:0,n22:1,n23:0,n24:0,n31:0,n32:0,n33:1,n34:0,n41:0,n42:0,n43:0,n44:1,identity:function(){this.n11=1;this.n21=this.n14=this.n13=this.n12=0;this.n22=1;this.n32=this.n31=this.n24=this.n23=0;this.n33=1;this.n43=this.n42=this.n41=this.n34=0;this.n44=1},copy:function(a){this.n11=a.n11;this.n12=a.n12;this.n13=a.n13;this.n14=a.n14;this.n21=a.n21;this.n22=a.n22;this.n23=a.n23;this.n24=a.n24;this.n31=a.n31;this.n32=a.n32;this.n33=a.n33;this.n34=a.n34;this.n41= a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,c,f){var b=this._x,d=this._y,j=this._z;j.sub(a,c);j.normalize();b.cross(f,j);b.normalize();d.cross(j,b);d.normalize();this.n11=b.x;this.n12=b.y;this.n13=b.z;this.n14=-b.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=j.x;this.n32=j.y;this.n33=j.z;this.n34=-j.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var c=a.x,f=a.y,b=a.z,d=a.w?a.w:1;a.x=this.n11*c+this.n12*f+this.n13*b+this.n14* d;a.y=this.n21*c+this.n22*f+this.n23*b+this.n24*d;a.z=this.n31*c+this.n32*f+this.n33*b+this.n34*d;d=this.n41*c+this.n42*f+this.n43*b+this.n44*d;if(a.w)a.w=d;else{a.x/=d;a.y/=d;a.z/=d}return a},crossVector:function(a){var c=new THREE.Vector4;c.x=this.n11*a.x+this.n12*a.y+this.n13*a.z+this.n14*a.w;c.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;c.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+this.n34*a.w;c.w=a.w?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return c},multiply:function(a, c){this.n11=a.n11*c.n11+a.n12*c.n21+a.n13*c.n31+a.n14*c.n41;this.n12=a.n11*c.n12+a.n12*c.n22+a.n13*c.n32+a.n14*c.n42;this.n13=a.n11*c.n13+a.n12*c.n23+a.n13*c.n33+a.n14*c.n43;this.n14=a.n11*c.n14+a.n12*c.n24+a.n13*c.n34+a.n14*c.n44;this.n21=a.n21*c.n11+a.n22*c.n21+a.n23*c.n31+a.n24*c.n41;this.n22=a.n21*c.n12+a.n22*c.n22+a.n23*c.n32+a.n24*c.n42;this.n23=a.n21*c.n13+a.n22*c.n23+a.n23*c.n33+a.n24*c.n43;this.n24=a.n21*c.n14+a.n22*c.n24+a.n23*c.n34+a.n24*c.n44;this.n31=a.n31*c.n11+a.n32*c.n21+a.n33*c.n31+ -a.n34*c.n41;this.n32=a.n31*c.n12+a.n32*c.n22+a.n33*c.n32+a.n34*c.n42;this.n33=a.n31*c.n13+a.n32*c.n23+a.n33*c.n33+a.n34*c.n43;this.n34=a.n31*c.n14+a.n32*c.n24+a.n33*c.n34+a.n34*c.n44;this.n41=a.n41*c.n11+a.n42*c.n21+a.n43*c.n31+a.n44*c.n41;this.n42=a.n41*c.n12+a.n42*c.n22+a.n43*c.n32+a.n44*c.n42;this.n43=a.n41*c.n13+a.n42*c.n23+a.n43*c.n33+a.n44*c.n43;this.n44=a.n41*c.n14+a.n42*c.n24+a.n43*c.n34+a.n44*c.n44},multiplySelf:function(a){var c=this.n11,f=this.n12,b=this.n13,d=this.n14,j=this.n21,o=this.n22, -r=this.n23,e=this.n24,g=this.n31,n=this.n32,i=this.n33,l=this.n34,q=this.n41,p=this.n42,s=this.n43,A=this.n44;this.n11=c*a.n11+f*a.n21+b*a.n31+d*a.n41;this.n12=c*a.n12+f*a.n22+b*a.n32+d*a.n42;this.n13=c*a.n13+f*a.n23+b*a.n33+d*a.n43;this.n14=c*a.n14+f*a.n24+b*a.n34+d*a.n44;this.n21=j*a.n11+o*a.n21+r*a.n31+e*a.n41;this.n22=j*a.n12+o*a.n22+r*a.n32+e*a.n42;this.n23=j*a.n13+o*a.n23+r*a.n33+e*a.n43;this.n24=j*a.n14+o*a.n24+r*a.n34+e*a.n44;this.n31=g*a.n11+n*a.n21+i*a.n31+l*a.n41;this.n32=g*a.n12+n*a.n22+ -i*a.n32+l*a.n42;this.n33=g*a.n13+n*a.n23+i*a.n33+l*a.n43;this.n34=g*a.n14+n*a.n24+i*a.n34+l*a.n44;this.n41=q*a.n11+p*a.n21+s*a.n31+A*a.n41;this.n42=q*a.n12+p*a.n22+s*a.n32+A*a.n42;this.n43=q*a.n13+p*a.n23+s*a.n33+A*a.n43;this.n44=q*a.n14+p*a.n24+s*a.n34+A*a.n44},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a},determinant:function(){return this.n14* +a.n34*c.n41;this.n32=a.n31*c.n12+a.n32*c.n22+a.n33*c.n32+a.n34*c.n42;this.n33=a.n31*c.n13+a.n32*c.n23+a.n33*c.n33+a.n34*c.n43;this.n34=a.n31*c.n14+a.n32*c.n24+a.n33*c.n34+a.n34*c.n44;this.n41=a.n41*c.n11+a.n42*c.n21+a.n43*c.n31+a.n44*c.n41;this.n42=a.n41*c.n12+a.n42*c.n22+a.n43*c.n32+a.n44*c.n42;this.n43=a.n41*c.n13+a.n42*c.n23+a.n43*c.n33+a.n44*c.n43;this.n44=a.n41*c.n14+a.n42*c.n24+a.n43*c.n34+a.n44*c.n44},multiplySelf:function(a){var c=this.n11,f=this.n12,b=this.n13,d=this.n14,j=this.n21,n=this.n22, +r=this.n23,e=this.n24,g=this.n31,m=this.n32,h=this.n33,l=this.n34,q=this.n41,o=this.n42,s=this.n43,A=this.n44;this.n11=c*a.n11+f*a.n21+b*a.n31+d*a.n41;this.n12=c*a.n12+f*a.n22+b*a.n32+d*a.n42;this.n13=c*a.n13+f*a.n23+b*a.n33+d*a.n43;this.n14=c*a.n14+f*a.n24+b*a.n34+d*a.n44;this.n21=j*a.n11+n*a.n21+r*a.n31+e*a.n41;this.n22=j*a.n12+n*a.n22+r*a.n32+e*a.n42;this.n23=j*a.n13+n*a.n23+r*a.n33+e*a.n43;this.n24=j*a.n14+n*a.n24+r*a.n34+e*a.n44;this.n31=g*a.n11+m*a.n21+h*a.n31+l*a.n41;this.n32=g*a.n12+m*a.n22+ +h*a.n32+l*a.n42;this.n33=g*a.n13+m*a.n23+h*a.n33+l*a.n43;this.n34=g*a.n14+m*a.n24+h*a.n34+l*a.n44;this.n41=q*a.n11+o*a.n21+s*a.n31+A*a.n41;this.n42=q*a.n12+o*a.n22+s*a.n32+A*a.n42;this.n43=q*a.n13+o*a.n23+s*a.n33+A*a.n43;this.n44=q*a.n14+o*a.n24+s*a.n34+A*a.n44},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a},determinant:function(){return this.n14* this.n23*this.n32*this.n41-this.n13*this.n24*this.n32*this.n41-this.n14*this.n22*this.n33*this.n41+this.n12*this.n24*this.n33*this.n41+this.n13*this.n22*this.n34*this.n41-this.n12*this.n23*this.n34*this.n41-this.n14*this.n23*this.n31*this.n42+this.n13*this.n24*this.n31*this.n42+this.n14*this.n21*this.n33*this.n42-this.n11*this.n24*this.n33*this.n42-this.n13*this.n21*this.n34*this.n42+this.n11*this.n23*this.n34*this.n42+this.n14*this.n22*this.n31*this.n43-this.n12*this.n24*this.n31*this.n43-this.n14* this.n21*this.n32*this.n43+this.n11*this.n24*this.n32*this.n43+this.n12*this.n21*this.n34*this.n43-this.n11*this.n22*this.n34*this.n43-this.n13*this.n22*this.n31*this.n44+this.n12*this.n23*this.n31*this.n44+this.n13*this.n21*this.n32*this.n44-this.n11*this.n23*this.n32*this.n44-this.n12*this.n21*this.n33*this.n44+this.n11*this.n22*this.n33*this.n44},transpose:function(){function a(c,f,b){var d=c[f];c[f]=c[b];c[b]=d}a(this,"n21","n12");a(this,"n31","n13");a(this,"n32","n23");a(this,"n41","n14");a(this, "n42","n24");a(this,"n43","n34");return this},clone:function(){var a=new THREE.Matrix4;a.n11=this.n11;a.n12=this.n12;a.n13=this.n13;a.n14=this.n14;a.n21=this.n21;a.n22=this.n22;a.n23=this.n23;a.n24=this.n24;a.n31=this.n31;a.n32=this.n32;a.n33=this.n33;a.n34=this.n34;a.n41=this.n41;a.n42=this.n42;a.n43=this.n43;a.n44=this.n44;return a},flatten:function(){return[this.n11,this.n21,this.n31,this.n41,this.n12,this.n22,this.n32,this.n42,this.n13,this.n23,this.n33,this.n43,this.n14,this.n24,this.n34,this.n44]}, toString:function(){return"| "+this.n11+" "+this.n12+" "+this.n13+" "+this.n14+" |\n| "+this.n21+" "+this.n22+" "+this.n23+" "+this.n24+" |\n| "+this.n31+" "+this.n32+" "+this.n33+" "+this.n34+" |\n| "+this.n41+" "+this.n42+" "+this.n43+" "+this.n44+" |"}};THREE.Matrix4.translationMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n14=a;b.n24=c;b.n34=f;return b};THREE.Matrix4.scaleMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n11=a;b.n22=c;b.n33=f;return b}; THREE.Matrix4.rotationXMatrix=function(a){var c=new THREE.Matrix4;c.n22=c.n33=Math.cos(a);c.n32=Math.sin(a);c.n23=-c.n32;return c};THREE.Matrix4.rotationYMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n33=Math.cos(a);c.n13=Math.sin(a);c.n31=-c.n13;return c};THREE.Matrix4.rotationZMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n22=Math.cos(a);c.n21=Math.sin(a);c.n12=-c.n21;return c}; -THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var f=new THREE.Matrix4,b=Math.cos(c),d=Math.sin(c),j=1-b,o=a.x,r=a.y,e=a.z;f.n11=j*o*o+b;f.n12=j*o*r-d*e;f.n13=j*o*e+d*r;f.n21=j*o*r+d*e;f.n22=j*r*r+b;f.n23=j*r*e-d*o;f.n31=j*o*e-d*r;f.n32=j*r*e+d*o;f.n33=j*e*e+b;return f}; +THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var f=new THREE.Matrix4,b=Math.cos(c),d=Math.sin(c),j=1-b,n=a.x,r=a.y,e=a.z;f.n11=j*n*n+b;f.n12=j*n*r-d*e;f.n13=j*n*e+d*r;f.n21=j*n*r+d*e;f.n22=j*r*r+b;f.n23=j*r*e-d*n;f.n31=j*n*e-d*r;f.n32=j*r*e+d*n;f.n33=j*e*e+b;return f}; THREE.Matrix4.makeInvert=function(a){var c=new THREE.Matrix4;c.n11=a.n23*a.n34*a.n42-a.n24*a.n33*a.n42+a.n24*a.n32*a.n43-a.n22*a.n34*a.n43-a.n23*a.n32*a.n44+a.n22*a.n33*a.n44;c.n12=a.n14*a.n33*a.n42-a.n13*a.n34*a.n42-a.n14*a.n32*a.n43+a.n12*a.n34*a.n43+a.n13*a.n32*a.n44-a.n12*a.n33*a.n44;c.n13=a.n13*a.n24*a.n42-a.n14*a.n23*a.n42+a.n14*a.n22*a.n43-a.n12*a.n24*a.n43-a.n13*a.n22*a.n44+a.n12*a.n23*a.n44;c.n14=a.n14*a.n23*a.n32-a.n13*a.n24*a.n32-a.n14*a.n22*a.n33+a.n12*a.n24*a.n33+a.n13*a.n22*a.n34-a.n12* a.n23*a.n34;c.n21=a.n24*a.n33*a.n41-a.n23*a.n34*a.n41-a.n24*a.n31*a.n43+a.n21*a.n34*a.n43+a.n23*a.n31*a.n44-a.n21*a.n33*a.n44;c.n22=a.n13*a.n34*a.n41-a.n14*a.n33*a.n41+a.n14*a.n31*a.n43-a.n11*a.n34*a.n43-a.n13*a.n31*a.n44+a.n11*a.n33*a.n44;c.n23=a.n14*a.n23*a.n41-a.n13*a.n24*a.n41-a.n14*a.n21*a.n43+a.n11*a.n24*a.n43+a.n13*a.n21*a.n44-a.n11*a.n23*a.n44;c.n24=a.n13*a.n24*a.n31-a.n14*a.n23*a.n31+a.n14*a.n21*a.n33-a.n11*a.n24*a.n33-a.n13*a.n21*a.n34+a.n11*a.n23*a.n34;c.n31=a.n22*a.n34*a.n41-a.n24*a.n32* a.n41+a.n24*a.n31*a.n42-a.n21*a.n34*a.n42-a.n22*a.n31*a.n44+a.n21*a.n32*a.n44;c.n32=a.n14*a.n32*a.n41-a.n12*a.n34*a.n41-a.n14*a.n31*a.n42+a.n11*a.n34*a.n42+a.n12*a.n31*a.n44-a.n11*a.n32*a.n44;c.n33=a.n13*a.n24*a.n41-a.n14*a.n22*a.n41+a.n14*a.n21*a.n42-a.n11*a.n24*a.n42-a.n12*a.n21*a.n44+a.n11*a.n22*a.n44;c.n34=a.n14*a.n22*a.n31-a.n12*a.n24*a.n31-a.n14*a.n21*a.n32+a.n11*a.n24*a.n32+a.n12*a.n21*a.n34-a.n11*a.n22*a.n34;c.n41=a.n23*a.n32*a.n41-a.n22*a.n33*a.n41-a.n23*a.n31*a.n42+a.n21*a.n33*a.n42+a.n22* a.n31*a.n43-a.n21*a.n32*a.n43;c.n42=a.n12*a.n33*a.n41-a.n13*a.n32*a.n41+a.n13*a.n31*a.n42-a.n11*a.n33*a.n42-a.n12*a.n31*a.n43+a.n11*a.n32*a.n43;c.n43=a.n13*a.n22*a.n41-a.n12*a.n23*a.n41-a.n13*a.n21*a.n42+a.n11*a.n23*a.n42+a.n12*a.n21*a.n43-a.n11*a.n22*a.n43;c.n44=a.n12*a.n23*a.n31-a.n13*a.n22*a.n31+a.n13*a.n21*a.n32-a.n11*a.n23*a.n32-a.n12*a.n21*a.n33+a.n11*a.n22*a.n33;c.multiplyScalar(1/a.determinant());return c}; -THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=new THREE.Matrix3;var f=c[10]*c[5]-c[6]*c[9],b=-c[10]*c[1]+c[2]*c[9],d=c[6]*c[1]-c[2]*c[5],j=-c[10]*c[4]+c[6]*c[8],o=c[10]*c[0]-c[2]*c[8],r=-c[6]*c[0]+c[2]*c[4],e=c[9]*c[4]-c[5]*c[8],g=-c[9]*c[0]+c[1]*c[8],n=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*j+c[2]*e;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*b;a.m[2]=c*d;a.m[3]=c*j;a.m[4]=c*o;a.m[5]=c*r;a.m[6]=c*e;a.m[7]=c*g;a.m[8]=c*n;return a}; -THREE.Matrix4.makeFrustum=function(a,c,f,b,d,j){var o,r,e;o=new THREE.Matrix4;r=2*d/(c-a);e=2*d/(b-f);a=(c+a)/(c-a);f=(b+f)/(b-f);b=-(j+d)/(j-d);d=-2*j*d/(j-d);o.n11=r;o.n12=0;o.n13=a;o.n14=0;o.n21=0;o.n22=e;o.n23=f;o.n24=0;o.n31=0;o.n32=0;o.n33=b;o.n34=d;o.n41=0;o.n42=0;o.n43=-1;o.n44=0;return o};THREE.Matrix4.makePerspective=function(a,c,f,b){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*c,a*c,d,a,f,b)}; -THREE.Matrix4.makeOrtho=function(a,c,f,b,d,j){var o,r,e,g;o=new THREE.Matrix4;r=c-a;e=f-b;g=j-d;a=(c+a)/r;f=(f+b)/e;d=(j+d)/g;o.n11=2/r;o.n12=0;o.n13=0;o.n14=-a;o.n21=0;o.n22=2/e;o.n23=0;o.n24=-f;o.n31=0;o.n32=0;o.n33=-2/g;o.n34=-d;o.n41=0;o.n42=0;o.n43=0;o.n44=1;return o}; +THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=new THREE.Matrix3;var f=c[10]*c[5]-c[6]*c[9],b=-c[10]*c[1]+c[2]*c[9],d=c[6]*c[1]-c[2]*c[5],j=-c[10]*c[4]+c[6]*c[8],n=c[10]*c[0]-c[2]*c[8],r=-c[6]*c[0]+c[2]*c[4],e=c[9]*c[4]-c[5]*c[8],g=-c[9]*c[0]+c[1]*c[8],m=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*j+c[2]*e;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*b;a.m[2]=c*d;a.m[3]=c*j;a.m[4]=c*n;a.m[5]=c*r;a.m[6]=c*e;a.m[7]=c*g;a.m[8]=c*m;return a}; +THREE.Matrix4.makeFrustum=function(a,c,f,b,d,j){var n,r,e;n=new THREE.Matrix4;r=2*d/(c-a);e=2*d/(b-f);a=(c+a)/(c-a);f=(b+f)/(b-f);b=-(j+d)/(j-d);d=-2*j*d/(j-d);n.n11=r;n.n12=0;n.n13=a;n.n14=0;n.n21=0;n.n22=e;n.n23=f;n.n24=0;n.n31=0;n.n32=0;n.n33=b;n.n34=d;n.n41=0;n.n42=0;n.n43=-1;n.n44=0;return n};THREE.Matrix4.makePerspective=function(a,c,f,b){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*c,a*c,d,a,f,b)}; +THREE.Matrix4.makeOrtho=function(a,c,f,b,d,j){var n,r,e,g;n=new THREE.Matrix4;r=c-a;e=f-b;g=j-d;a=(c+a)/r;f=(f+b)/e;d=(j+d)/g;n.n11=2/r;n.n12=0;n.n13=0;n.n14=-a;n.n21=0;n.n22=2/e;n.n23=0;n.n24=-f;n.n31=0;n.n32=0;n.n33=-2/g;n.n34=-d;n.n41=0;n.n42=0;n.n43=0;n.n44=1;return n}; THREE.Vertex=function(a,c){this.position=a||new THREE.Vector3;this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.normal=c||new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.normalScreen=new THREE.Vector3;this.__visible=true};THREE.Vertex.prototype={toString:function(){return"THREE.Vertex ( position: "+this.position+", normal: "+this.normal+" )"}}; THREE.Face3=function(a,c,f,b,d){this.a=a;this.b=c;this.c=f;this.centroid=new THREE.Vector3;this.normal=b instanceof THREE.Vector3?b:new THREE.Vector3;this.vertexNormals=b instanceof Array?b:[];this.material=d instanceof Array?d:[d]};THREE.Face3.prototype={toString:function(){return"THREE.Face3 ( "+this.a+", "+this.b+", "+this.c+" )"}}; THREE.Face4=function(a,c,f,b,d,j){this.a=a;this.b=c;this.c=f;this.d=b;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=j instanceof Array?j:[j]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,c){this.u=a||0;this.v=c||0}; THREE.UV.prototype={copy:function(a){this.u=a.u;this.v=a.v},toString:function(){return"THREE.UV ("+this.u+", "+this.v+")"}};THREE.Geometry=function(){this.vertices=[];this.faces=[];this.uvs=[]}; THREE.Geometry.prototype={computeCentroids:function(){var a,c,f;a=0;for(c=this.faces.length;a0){this.bbox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y,this.vertices[0].position.y],z:[this.vertices[0].position.z,this.vertices[0].position.z]};for(var a=1,c=this.vertices.length;a this.bbox.x[1])this.bbox.x[1]=vertex.position.x;if(vertex.position.ythis.bbox.y[1])this.bbox.y[1]=vertex.position.y;if(vertex.position.zthis.bbox.z[1])this.bbox.z[1]=vertex.position.z}}},toString:function(){return"THREE.Geometry ( vertices: "+this.vertices+", faces: "+this.faces+" )"}}; THREE.Camera=function(a,c,f,b){this.position=new THREE.Vector3(0,0,0);this.target={position:new THREE.Vector3(0,0,0)};this.up=new THREE.Vector3(0,1,0);this.matrix=new THREE.Matrix4;this.projectionMatrix=THREE.Matrix4.makePerspective(a,c,f,b);this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrix.lookAt(this.position,this.target.position,this.up)};this.toString=function(){return"THREE.Camera ( "+this.position+", "+this.target.position+" )"}}; @@ -53,8 +53,8 @@ THREE.Object3D=function(){this.position=new THREE.Vector3;this.rotation=new THRE this.matrixRotation.multiplySelf(THREE.Matrix4.rotationYMatrix(this.rotation.y));this.matrixRotation.multiplySelf(THREE.Matrix4.rotationZMatrix(this.rotation.z));this.matrixScale=THREE.Matrix4.scaleMatrix(this.scale.x,this.scale.y,this.scale.z);this.matrix.copy(this.matrixPosition);this.matrix.multiplySelf(this.matrixRotation);this.matrix.multiplySelf(this.matrixScale)}};THREE.Particle=function(a){THREE.Object3D.call(this);this.material=a instanceof Array?a:[a];this.autoUpdateMatrix=false}; THREE.Particle.prototype=new THREE.Object3D;THREE.Particle.prototype.constructor=THREE.Particle;THREE.Line=function(a,c){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c]};THREE.Line.prototype=new THREE.Object3D;THREE.Line.prototype.constructor=THREE.Line; THREE.Mesh=function(a,c,f){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c];this.overdraw=this.doubleSided=this.flipSided=false;this.materialFaceGroup={};this.sortFacesByMaterial();f&&this.normalizeUVs();this.geometry.computeBoundingBox()};THREE.Mesh.prototype=new THREE.Object3D;THREE.Mesh.prototype.constructor=THREE.Mesh; -THREE.Mesh.prototype.sortFacesByMaterial=function(){function a(n){var i=[];c=0;for(f=n.length;c65535){g[r].counter+=1;e=g[r].hash+"_"+g[r].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:o,vertices:0}}this.materialFaceGroup[e].faces.push(b);this.materialFaceGroup[e].vertices+=j}};THREE.Mesh.prototype.normalizeUVs=function(){var a,c,f,b,d;a=0;for(c=this.geometry.uvs.length;a65535){g[r].counter+=1;e=g[r].hash+"_"+g[r].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:n,vertices:0}}this.materialFaceGroup[e].faces.push(b);this.materialFaceGroup[e].vertices+=j}};THREE.Mesh.prototype.normalizeUVs=function(){var a,c,f,b,d;a=0;for(c=this.geometry.uvs.length;acolor: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
linewidth: "+ this.linewidth+"
)"}}; @@ -75,49 +75,50 @@ this.blending+"
)"}};THREE.ParticleCircleMaterial=function(a){this.color=new THREE.ParticleDOMMaterial=function(a){this.domElement=a;this.toString=function(){return"THREE.ParticleDOMMaterial ( domElement: "+this.domElement+" )"}};THREE.Texture=function(a,c){this.image=a;this.mapping=c!==undefined?c:THREE.UVMapping;this.toString=function(){return"THREE.Texture (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.UVMapping=0;THREE.ReflectionMap=1;THREE.RefractionMap=2;THREE.Multiply=0;THREE.Mix=1; THREE.TextureCube=function(a,c){this.image=a;this.mapping=c?c:THREE.ReflectionMap;this.toString=function(){return"THREE.TextureCube (
image: "+this.image+"
mapping: "+this.mapping+"
)"}}; THREE.Scene=function(){this.objects=[];this.lights=[];this.addObject=function(a){this.objects.push(a)};this.removeObject=function(a){a=this.objects.indexOf(a);a!==-1&&this.objects.splice(a,1)};this.addLight=function(a){this.lights.push(a)};this.removeLight=function(a){a=this.lights.indexOf(a);a!==-1&&this.lights.splice(a,1)};this.toString=function(){return"THREE.Scene ( "+this.objects+" )"}}; -THREE.Projector=function(){function a(D,B){var m;m=0;var w=1,h=D.z+D.w,P=B.z+B.w,M=-D.z+D.w,y=-B.z+B.w;if(h>=0&&P>=0&&M>=0&&y>=0)m=true;else if(h<0&&P<0||M<0&&y<0)m=false;else{if(h<0)m=Math.max(m,h/(h-P));else if(P<0)w=Math.min(w,h/(h-P));if(M<0)m=Math.max(m,M/(M-y));else if(y<0)w=Math.min(w,M/(M-y));if(w0&&t.z<1}E=y.geometry.faces;h=0;for(P=E.length;h< -P;h++){t=E[h];if(t instanceof THREE.Face3){X=S[t.a];C=S[t.b];L=S[t.c];if(X.__visible&&C.__visible&&L.__visible)if(y.doubleSided||y.flipSided!=(L.positionScreen.x-X.positionScreen.x)*(C.positionScreen.y-X.positionScreen.y)-(L.positionScreen.y-X.positionScreen.y)*(C.positionScreen.x-X.positionScreen.x)<0){f=d[b]=d[b]||new THREE.RenderableFace3;f.v1.positionScreen.copy(X.positionScreen);f.v2.positionScreen.copy(C.positionScreen);f.v3.positionScreen.copy(L.positionScreen);f.normalWorld.copy(t.normal); -y.matrixRotation.transform(f.normalWorld);f.centroidWorld.copy(t.centroid);J.transform(f.centroidWorld);f.centroidScreen.copy(f.centroidWorld);s.transform(f.centroidScreen);f.z=f.centroidScreen.z;f.meshMaterial=y.material;f.faceMaterial=t.material;f.overdraw=y.overdraw;f.uvs=y.geometry.uvs[h];f.color=t.color;c.push(f);b++}}else if(t instanceof THREE.Face4){X=S[t.a];C=S[t.b];L=S[t.c];K=S[t.d];if(X.__visible&&C.__visible&&L.__visible&&K.__visible)if(y.doubleSided||y.flipSided!=((K.positionScreen.x- -X.positionScreen.x)*(C.positionScreen.y-X.positionScreen.y)-(K.positionScreen.y-X.positionScreen.y)*(C.positionScreen.x-X.positionScreen.x)<0||(C.positionScreen.x-L.positionScreen.x)*(K.positionScreen.y-L.positionScreen.y)-(C.positionScreen.y-L.positionScreen.y)*(K.positionScreen.x-L.positionScreen.x)<0)){j=r[o]=r[o]||new THREE.RenderableFace4;j.v1.positionScreen.copy(X.positionScreen);j.v2.positionScreen.copy(C.positionScreen);j.v3.positionScreen.copy(L.positionScreen);j.v4.positionScreen.copy(K.positionScreen); -j.normalWorld.copy(t.normal);y.matrixRotation.transform(j.normalWorld);j.centroidWorld.copy(t.centroid);J.transform(j.centroidWorld);j.centroidScreen.copy(j.centroidWorld);s.transform(j.centroidScreen);j.z=j.centroidScreen.z;j.meshMaterial=y.material;j.faceMaterial=t.material;j.overdraw=y.overdraw;j.uvs=y.geometry.uvs[h];j.color=t.color;c.push(j);o++}}}}else if(y instanceof THREE.Line){A.multiply(s,J);S=y.geometry.vertices;h=0;for(P=S.length;h0&&p.z<1){i=q[l]=q[l]||new THREE.RenderableParticle;i.x=p.x/p.w;i.y=p.y/p.w; -i.z=p.z;i.rotation=y.rotation.z;i.scale.x=y.scale.x*Math.abs(i.x-(p.x+B.projectionMatrix.n11)/(p.w+B.projectionMatrix.n14));i.scale.y=y.scale.y*Math.abs(i.y-(p.y+B.projectionMatrix.n22)/(p.w+B.projectionMatrix.n24));i.material=y.material;c.push(i);l++}}}c.sort(function(R,z){return z.z-R.z});return c};this.unprojectVector=function(D,B){var m=new THREE.Matrix4;m.multiply(THREE.Matrix4.makeInvert(B.matrix),THREE.Matrix4.makeInvert(B.projectionMatrix));m.transform(D);return D}}; -THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,c=new THREE.Projector,f,b,d,j;this.domElement=document.createElement("div");this.setSize=function(o,r){f=o;b=r;d=f/2;j=b/2};this.render=function(o,r){var e,g,n,i,l,q,p,s;a=c.projectScene(o,r);e=0;for(g=a.length;e0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}else if(k instanceof THREE.PointLight){Ja.sub(k.position,N.centroidWorld);Ja.normalize();k=N.normalWorld.dot(Ja)*k.intensity;if(k>0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}}}function c(x,N,H,I,k,G){if(k.opacity!=0){o(k.opacity);r(k.blending);L=x.positionScreen.x; -K=x.positionScreen.y;R=N.positionScreen.x;z=N.positionScreen.y;v=H.positionScreen.x;Q=H.positionScreen.y;if(k.map){fa=k.map.image;pa=fa.width-1;qa=fa.height-1;da.u=I.uvs[0].u*pa;da.v=I.uvs[0].v*qa;Z.u=I.uvs[1].u*pa;Z.v=I.uvs[1].v*qa;ea.u=I.uvs[2].u*pa;ea.v=I.uvs[2].v*qa;j(fa,L,K,R,z,v,Q,da.u,da.v,Z.u,Z.v,ea.u,ea.v)}else if(k instanceof THREE.MeshBasicMaterial)b(L,K,R,z,v,Q,k.color,k.wireframe,k.wireframe_linewidth);else if(k instanceof THREE.MeshLambertMaterial){if(Fa){ba.r=ga.r;ba.g=ga.g;ba.b=ga.b; -a(G,I,ba);T.r=k.color.r*ba.r;T.g=k.color.g*ba.g;T.b=k.color.b*ba.b;T.updateStyleString()}else T.__styleString=k.color.__styleString;b(L,K,R,z,v,Q,T,k.wireframe,k.wireframe_linewidth)}else if(k instanceof THREE.MeshDepthMaterial){ra=k.__2near;sa=k.__farPlusNear;ta=k.__farMinusNear;wa=~~((1-ra/(sa-x.positionScreen.z*ta))*255);xa=~~((1-ra/(sa-N.positionScreen.z*ta))*255);na=~~((1-ra/(sa-H.positionScreen.z*ta))*255);fa=i([wa,wa,wa],[xa,xa,xa],[na,na,na],[na,na,na]);da.u=0;da.v=0;Z.u=la;Z.v=0;ea.u=0;ea.v= -la;j(fa,L,K,R,z,v,Q,da.u,da.v,Z.u,Z.v,ea.u,ea.v)}else if(k instanceof THREE.MeshNormalMaterial){T.r=l(I.normalWorld.x);T.g=l(I.normalWorld.y);T.b=l(I.normalWorld.z);T.updateStyleString();b(L,K,R,z,v,Q,T,k.wireframe,k.wireframe_linewidth)}}}function f(x,N,H,I,k,G,U,u,W){if(u.opacity!=0){o(u.opacity);r(u.blending);L=x.positionScreen.x;K=x.positionScreen.y;R=N.positionScreen.x;z=N.positionScreen.y;v=H.positionScreen.x;Q=H.positionScreen.y;ha=I.positionScreen.x;O=I.positionScreen.y;Y=k.positionScreen.x; -ya=k.positionScreen.y;Ka=G.positionScreen.x;La=G.positionScreen.y;if(u.map){fa=u.map.image;pa=fa.width-1;qa=fa.height-1;da.copy(U.uvs[0]);Z.copy(U.uvs[1]);ea.copy(U.uvs[2]);ia.copy(U.uvs[3]);da.u*=pa;da.v*=qa;Z.u*=pa;Z.v*=qa;ea.u*=pa;ea.v*=qa;ia.u*=pa;ia.v*=qa;j(fa,L,K,R,z,ha,O,da.u,da.v,Z.u,Z.v,ia.u,ia.v);j(fa,Y,ya,v,Q,Ka,La,Z.u,Z.v,ea.u,ea.v,ia.u,ia.v)}else if(u instanceof THREE.MeshBasicMaterial)d(L,K,R,z,v,Q,ha,O,u.color,u.wireframe,u.wireframe_linewidth);else if(u instanceof THREE.MeshLambertMaterial){if(Fa){ba.r= -ga.r;ba.g=ga.g;ba.b=ga.b;a(W,U,ba);T.r=u.color.r*ba.r;T.g=u.color.g*ba.g;T.b=u.color.b*ba.b;T.updateStyleString()}else T.__styleString=u.color.__styleString;d(L,K,R,z,v,Q,ha,O,T,u.wireframe,u.wireframe_linewidth)}else if(u instanceof THREE.MeshDepthMaterial){ra=u.__2near;sa=u.__farPlusNear;ta=u.__farMinusNear;wa=~~((1-ra/(sa-x.positionScreen.z*ta))*255);xa=~~((1-ra/(sa-N.positionScreen.z*ta))*255);na=~~((1-ra/(sa-H.positionScreen.z*ta))*255);Ga=~~((1-ra/(sa-I.positionScreen.z*ta))*255);fa=i([wa,wa, -wa],[xa,xa,xa],[Ga,Ga,Ga],[na,na,na]);da.u=0;da.v=0;Z.u=la;Z.v=0;ea.u=la;ea.v=la;ia.u=0;ia.v=la;j(fa,L,K,R,z,ha,O,da.u,da.v,Z.u,Z.v,ia.u,ia.v);j(fa,Y,ya,v,Q,Ka,La,Z.u,Z.v,ea.u,ea.v,ia.u,ia.v)}else if(u instanceof THREE.MeshNormalMaterial){T.r=l(U.normalWorld.x);T.g=l(U.normalWorld.y);T.b=l(U.normalWorld.z);T.updateStyleString();d(L,K,R,z,v,Q,ha,O,T,u.wireframe,u.wireframe_linewidth)}}}function b(x,N,H,I,k,G,U,u,W){h.beginPath();h.moveTo(x,N);h.lineTo(H,I);h.lineTo(k,G);h.lineTo(x,N);h.closePath(); -if(u){e(W);g(U.__styleString);h.stroke();$.inflate(W*2)}else{n(U.__styleString);h.fill()}}function d(x,N,H,I,k,G,U,u,W,F,ca){h.beginPath();h.moveTo(x,N);h.lineTo(H,I);h.lineTo(k,G);h.lineTo(U,u);h.lineTo(x,N);h.closePath();if(F){e(ca);g(W.__styleString);h.stroke();$.inflate(ca*2)}else{n(W.__styleString);h.fill()}}function j(x,N,H,I,k,G,U,u,W,F,ca,ma,ua){h.beginPath();h.moveTo(N,H);h.lineTo(I,k);h.lineTo(G,U);h.closePath();I-=N;k-=H;G-=N;U-=H;F-=u;ca-=W;ma-=u;ua-=W;var va=1/(F*ua-ma*ca),Ba=(ua*I-ca* -G)*va;ca=(ua*k-ca*U)*va;I=(F*G-ma*I)*va;k=(F*U-ma*k)*va;N=N-Ba*u-I*W;H=H-ca*u-k*W;h.save();h.transform(Ba,ca,I,k,N,H);h.clip();h.drawImage(x,0,0);h.restore()}function o(x){if(P!=x)h.globalAlpha=P=x}function r(x){if(M!=x){switch(x){case THREE.NormalBlending:h.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:h.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:h.globalCompositeOperation="darker"}M=x}}function e(x){if(S!=x)h.lineWidth=S=x}function g(x){if(y!= -x)h.strokeStyle=y=x}function n(x){if(J!=x)h.fillStyle=J=x}function i(x,N,H,I){ja[0]=x[0];ja[1]=x[1];ja[2]=x[2];ja[4]=N[0];ja[5]=N[1];ja[6]=N[2];ja[8]=H[0];ja[9]=H[1];ja[10]=H[2];ja[12]=I[0];ja[13]=I[1];ja[14]=I[2];Ca.putImageData(Ma,0,0);Ha.drawImage(Da,0,0);return Ea}function l(x){return x<0?Math.min((1+x)*0.5,0.5):0.5+Math.min(x*0.5,0.5)}function q(x,N){var H=N.x-x.x,I=N.y-x.y,k=1/Math.sqrt(H*H+I*I);H*=k;I*=k;N.x+=H;N.y+=I;x.x-=H;x.y-=I}var p=null,s=new THREE.Projector,A=document.createElement("canvas"), -D,B,m,w,h=A.getContext("2d"),P=1,M=0,y=null,J=null,S=1,E,t,V,aa,X=new THREE.Vertex,C=new THREE.Vertex,L,K,R,z,v,Q,ha,O,Y,ya,Ka,La,wa,xa,na,Ga,ra,sa,ta,fa,pa,qa,oa=new THREE.Rectangle,ka=new THREE.Rectangle,$=new THREE.Rectangle,Fa=false,T=new THREE.Color(4294967295),ba=new THREE.Color(4294967295),ga=new THREE.Color(4278190080),za=new THREE.Color(4278190080),Aa=new THREE.Color(4278190080),Qa=Math.PI*2,Ja=new THREE.Vector3,da=new THREE.UV,Z=new THREE.UV,ea=new THREE.UV,ia=new THREE.UV,Da,Ca,Ma,ja,Ea, -Ha,la=16;Da=document.createElement("canvas");Da.width=Da.height=2;Ca=Da.getContext("2d");Ca.fillStyle="rgba(0,0,0,1)";Ca.fillRect(0,0,2,2);Ma=Ca.getImageData(0,0,2,2);ja=Ma.data;Ea=document.createElement("canvas");Ea.width=Ea.height=la;Ha=Ea.getContext("2d");Ha.translate(-la/2,-la/2);Ha.scale(la,la);la--;this.domElement=A;this.autoClear=true;this.setSize=function(x,N){D=x;B=N;m=D/2;w=B/2;A.width=D;A.height=B;h.lineJoin="round";h.lineCap="round";oa.set(-m,-w,m,w)};this.clear=function(){if(!ka.isEmpty()){ka.inflate(1); -ka.minSelf(oa);h.setTransform(1,0,0,-1,m,w);h.clearRect(ka.getX(),ka.getY(),ka.getWidth(),ka.getHeight());ka.empty()}};this.render=function(x,N){var H,I,k,G,U,u,W,F;this.autoClear&&this.clear();p=s.projectScene(x,N);h.setTransform(1,0,0,-1,m,w);h.fillStyle="rgba(0, 255, 255, 0.5)";h.fillRect(oa.getX(),oa.getY(),oa.getWidth(),oa.getHeight());if(Fa=x.lights.length>0){U=x.lights;ga.setRGB(0,0,0);za.setRGB(0,0,0);Aa.setRGB(0,0,0);H=0;for(I=U.length;H0){K.r+=v.color.r*Q;K.g+=v.color.g*Q;K.b+=v.color.b*Q}}else if(v instanceof THREE.PointLight){J.sub(v.position,L.centroidWorld);J.normalize();Q=L.normalWorld.dot(J)*v.intensity;if(Q>0){K.r+=v.color.r*Q;K.g+=v.color.g*Q;K.b+=v.color.b*Q}}}}function c(C,L,K,R,z,v){t=b(V++);t.setAttribute("d","M "+C.positionScreen.x+ -" "+C.positionScreen.y+" L "+L.positionScreen.x+" "+L.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+"z");if(z instanceof THREE.MeshBasicMaterial)m.__styleString=z.color.__styleString;else if(z instanceof THREE.MeshLambertMaterial)if(B){w.r=h.r;w.g=h.g;w.b=h.b;a(v,R,w);m.r=z.color.r*w.r;m.g=z.color.g*w.g;m.b=z.color.b*w.b;m.updateStyleString()}else m.__styleString=z.color.__styleString;else if(z instanceof THREE.MeshDepthMaterial){y=1-z.__2near/(z.__farPlusNear-R.z*z.__farMinusNear); -m.setRGB(y,y,y)}else z instanceof THREE.MeshNormalMaterial&&m.setRGB(d(R.normalWorld.x),d(R.normalWorld.y),d(R.normalWorld.z));z.wireframe?t.setAttribute("style","fill: none; stroke: "+m.__styleString+"; stroke-width: "+z.wireframe_linewidth+"; stroke-opacity: "+z.opacity+"; stroke-linecap: round; stroke-linejoin: round"):t.setAttribute("style","fill: "+m.__styleString+"; fill-opacity: "+z.opacity);r.appendChild(t)}function f(C,L,K,R,z,v,Q){t=b(V++);t.setAttribute("d","M "+C.positionScreen.x+" "+ -C.positionScreen.y+" L "+L.positionScreen.x+" "+L.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+" L "+R.positionScreen.x+","+R.positionScreen.y+"z");if(v instanceof THREE.MeshBasicMaterial)m.__styleString=v.color.__styleString;else if(v instanceof THREE.MeshLambertMaterial)if(B){w.r=h.r;w.g=h.g;w.b=h.b;a(Q,z,w);m.r=v.color.r*w.r;m.g=v.color.g*w.g;m.b=v.color.b*w.b;m.updateStyleString()}else m.__styleString=v.color.__styleString;else if(v instanceof THREE.MeshDepthMaterial){y=1- -v.__2near/(v.__farPlusNear-z.z*v.__farMinusNear);m.setRGB(y,y,y)}else v instanceof THREE.MeshNormalMaterial&&m.setRGB(d(z.normalWorld.x),d(z.normalWorld.y),d(z.normalWorld.z));v.wireframe?t.setAttribute("style","fill: none; stroke: "+m.__styleString+"; stroke-width: "+v.wireframe_linewidth+"; stroke-opacity: "+v.opacity+"; stroke-linecap: round; stroke-linejoin: round"):t.setAttribute("style","fill: "+m.__styleString+"; fill-opacity: "+v.opacity);r.appendChild(t)}function b(C){if(S[C]==null){S[C]= -document.createElementNS("http://www.w3.org/2000/svg","path");X==0&&S[C].setAttribute("shape-rendering","crispEdges");return S[C]}return S[C]}function d(C){return C<0?Math.min((1+C)*0.5,0.5):0.5+Math.min(C*0.5,0.5)}var j=null,o=new THREE.Projector,r=document.createElementNS("http://www.w3.org/2000/svg","svg"),e,g,n,i,l,q,p,s,A=new THREE.Rectangle,D=new THREE.Rectangle,B=false,m=new THREE.Color(4294967295),w=new THREE.Color(4294967295),h=new THREE.Color(4278190080),P=new THREE.Color(4278190080),M= -new THREE.Color(4278190080),y,J=new THREE.Vector3,S=[],E=[],t,V,aa,X=1;this.domElement=r;this.autoClear=true;this.setQuality=function(C){switch(C){case "high":X=1;break;case "low":X=0}};this.setSize=function(C,L){e=C;g=L;n=e/2;i=g/2;r.setAttribute("viewBox",-n+" "+-i+" "+e+" "+g);r.setAttribute("width",e);r.setAttribute("height",g);A.set(-n,-i,n,i)};this.clear=function(){for(;r.childNodes.length>0;)r.removeChild(r.childNodes[0])};this.render=function(C,L){var K,R,z,v,Q,ha,O,Y;this.autoClear&&this.clear(); -j=o.projectScene(C,L);aa=V=0;if(B=C.lights.length>0){O=C.lights;h.setRGB(0,0,0);P.setRGB(0,0,0);M.setRGB(0,0,0);K=0;for(R=O.length;K=0&&S>=0&&E>=0&&B>=0)return true;else if(C<0&&S<0||E<0&&B<0)return false;else{if(C<0)i=Math.max(i,C/(C-S));else if(S<0)U=Math.min(U,C/(C-S));if(E<0)i=Math.max(i,E/(E-B));else if(B<0)U=Math.min(U,E/(E-B));if(U0&&Q.z<1}fa=B.geometry.faces;C=0;for(S= +fa.length;C0&&o.z<1){h=q[l]=q[l]|| +new THREE.RenderableParticle;h.x=o.x/o.w;h.y=o.y/o.w;h.z=o.z;h.rotation=B.rotation.z;h.scale.x=B.scale.x*Math.abs(h.x-(o.x+t.projectionMatrix.n11)/(o.w+t.projectionMatrix.n14));h.scale.y=B.scale.y*Math.abs(h.y-(o.y+t.projectionMatrix.n22)/(o.w+t.projectionMatrix.n24));h.material=B.material;c.push(h);l++}}}c.sort(function(T,y){return y.z-T.z});return c};this.unprojectVector=function(p,t){var i=new THREE.Matrix4;i.multiply(THREE.Matrix4.makeInvert(t.matrix),THREE.Matrix4.makeInvert(t.projectionMatrix)); +i.transform(p);return p}}; +THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,c=new THREE.Projector,f,b,d,j;this.domElement=document.createElement("div");this.setSize=function(n,r){f=n;b=r;d=f/2;j=b/2};this.render=function(n,r){var e,g,m,h,l,q,o,s;a=c.projectScene(n,r);e=0;for(g=a.length;e0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}else if(k instanceof THREE.PointLight){Ja.sub(k.position,O.centroidWorld);Ja.normalize();k=O.normalWorld.dot(Ja)*k.intensity;if(k>0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}}}function c(w,O,H,I,k,G){if(k.opacity!=0){n(k.opacity);r(k.blending);M=w.positionScreen.x; +K=w.positionScreen.y;T=O.positionScreen.x;y=O.positionScreen.y;v=H.positionScreen.x;R=H.positionScreen.y;if(k.map){ea=k.map.image;pa=ea.width-1;qa=ea.height-1;ca.u=I.uvs[0].u*pa;ca.v=I.uvs[0].v*qa;Z.u=I.uvs[1].u*pa;Z.v=I.uvs[1].v*qa;da.u=I.uvs[2].u*pa;da.v=I.uvs[2].v*qa;j(ea,M,K,T,y,v,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(k instanceof THREE.MeshBasicMaterial)b(M,K,T,y,v,R,k.color,k.wireframe,k.wireframe_linewidth);else if(k instanceof THREE.MeshLambertMaterial){if(Fa){aa.r=ga.r;aa.g=ga.g;aa.b=ga.b; +a(G,I,aa);V.r=k.color.r*aa.r;V.g=k.color.g*aa.g;V.b=k.color.b*aa.b;V.updateStyleString()}else V.__styleString=k.color.__styleString;b(M,K,T,y,v,R,V,k.wireframe,k.wireframe_linewidth)}else if(k instanceof THREE.MeshDepthMaterial){ra=k.__2near;sa=k.__farPlusNear;ta=k.__farMinusNear;wa=~~((1-ra/(sa-w.positionScreen.z*ta))*255);xa=~~((1-ra/(sa-O.positionScreen.z*ta))*255);na=~~((1-ra/(sa-H.positionScreen.z*ta))*255);ea=h([wa,wa,wa],[xa,xa,xa],[na,na,na],[na,na,na]);ca.u=0;ca.v=0;Z.u=la;Z.v=0;da.u=0;da.v= +la;j(ea,M,K,T,y,v,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(k instanceof THREE.MeshNormalMaterial){V.r=l(I.normalWorld.x);V.g=l(I.normalWorld.y);V.b=l(I.normalWorld.z);V.updateStyleString();b(M,K,T,y,v,R,V,k.wireframe,k.wireframe_linewidth)}}}function f(w,O,H,I,k,G,W,u,X){if(u.opacity!=0){n(u.opacity);r(u.blending);M=w.positionScreen.x;K=w.positionScreen.y;T=O.positionScreen.x;y=O.positionScreen.y;v=H.positionScreen.x;R=H.positionScreen.y;ha=I.positionScreen.x;P=I.positionScreen.y;Y=k.positionScreen.x; +ya=k.positionScreen.y;Ka=G.positionScreen.x;La=G.positionScreen.y;if(u.map){ea=u.map.image;pa=ea.width-1;qa=ea.height-1;ca.copy(W.uvs[0]);Z.copy(W.uvs[1]);da.copy(W.uvs[2]);ia.copy(W.uvs[3]);ca.u*=pa;ca.v*=qa;Z.u*=pa;Z.v*=qa;da.u*=pa;da.v*=qa;ia.u*=pa;ia.v*=qa;j(ea,M,K,T,y,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);j(ea,Y,ya,v,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(u instanceof THREE.MeshBasicMaterial)d(M,K,T,y,v,R,ha,P,u.color,u.wireframe,u.wireframe_linewidth);else if(u instanceof THREE.MeshLambertMaterial){if(Fa){aa.r= +ga.r;aa.g=ga.g;aa.b=ga.b;a(X,W,aa);V.r=u.color.r*aa.r;V.g=u.color.g*aa.g;V.b=u.color.b*aa.b;V.updateStyleString()}else V.__styleString=u.color.__styleString;d(M,K,T,y,v,R,ha,P,V,u.wireframe,u.wireframe_linewidth)}else if(u instanceof THREE.MeshDepthMaterial){ra=u.__2near;sa=u.__farPlusNear;ta=u.__farMinusNear;wa=~~((1-ra/(sa-w.positionScreen.z*ta))*255);xa=~~((1-ra/(sa-O.positionScreen.z*ta))*255);na=~~((1-ra/(sa-H.positionScreen.z*ta))*255);Ga=~~((1-ra/(sa-I.positionScreen.z*ta))*255);ea=h([wa,wa, +wa],[xa,xa,xa],[Ga,Ga,Ga],[na,na,na]);ca.u=0;ca.v=0;Z.u=la;Z.v=0;da.u=la;da.v=la;ia.u=0;ia.v=la;j(ea,M,K,T,y,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);j(ea,Y,ya,v,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(u instanceof THREE.MeshNormalMaterial){V.r=l(W.normalWorld.x);V.g=l(W.normalWorld.y);V.b=l(W.normalWorld.z);V.updateStyleString();d(M,K,T,y,v,R,ha,P,V,u.wireframe,u.wireframe_linewidth)}}}function b(w,O,H,I,k,G,W,u,X){i.beginPath();i.moveTo(w,O);i.lineTo(H,I);i.lineTo(k,G);i.lineTo(w,O);i.closePath(); +if(u){e(X);g(W.__styleString);i.stroke();$.inflate(X*2)}else{m(W.__styleString);i.fill()}}function d(w,O,H,I,k,G,W,u,X,F,ba){i.beginPath();i.moveTo(w,O);i.lineTo(H,I);i.lineTo(k,G);i.lineTo(W,u);i.lineTo(w,O);i.closePath();if(F){e(ba);g(X.__styleString);i.stroke();$.inflate(ba*2)}else{m(X.__styleString);i.fill()}}function j(w,O,H,I,k,G,W,u,X,F,ba,ma,ua){i.beginPath();i.moveTo(O,H);i.lineTo(I,k);i.lineTo(G,W);i.closePath();I-=O;k-=H;G-=O;W-=H;F-=u;ba-=X;ma-=u;ua-=X;var va=1/(F*ua-ma*ba),Ba=(ua*I-ba* +G)*va;ba=(ua*k-ba*W)*va;I=(F*G-ma*I)*va;k=(F*W-ma*k)*va;O=O-Ba*u-I*X;H=H-ba*u-k*X;i.save();i.transform(Ba,ba,I,k,O,H);i.clip();i.drawImage(w,0,0);i.restore()}function n(w){if(U!=w)i.globalAlpha=U=w}function r(w){if(C!=w){switch(w){case THREE.NormalBlending:i.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:i.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:i.globalCompositeOperation="darker"}C=w}}function e(w){if(B!=w)i.lineWidth=B=w}function g(w){if(S!= +w)i.strokeStyle=S=w}function m(w){if(E!=w)i.fillStyle=E=w}function h(w,O,H,I){ja[0]=w[0];ja[1]=w[1];ja[2]=w[2];ja[4]=O[0];ja[5]=O[1];ja[6]=O[2];ja[8]=H[0];ja[9]=H[1];ja[10]=H[2];ja[12]=I[0];ja[13]=I[1];ja[14]=I[2];Ca.putImageData(Ma,0,0);Ha.drawImage(Da,0,0);return Ea}function l(w){return w<0?Math.min((1+w)*0.5,0.5):0.5+Math.min(w*0.5,0.5)}function q(w,O){var H=O.x-w.x,I=O.y-w.y,k=1/Math.sqrt(H*H+I*I);H*=k;I*=k;O.x+=H;O.y+=I;w.x-=H;w.y-=I}var o=null,s=new THREE.Projector,A=document.createElement("canvas"), +J,N,p,t,i=A.getContext("2d"),U=1,C=0,S=null,E=null,B=1,L,x,D,Q,fa=new THREE.Vertex,z=new THREE.Vertex,M,K,T,y,v,R,ha,P,Y,ya,Ka,La,wa,xa,na,Ga,ra,sa,ta,ea,pa,qa,oa=new THREE.Rectangle,ka=new THREE.Rectangle,$=new THREE.Rectangle,Fa=false,V=new THREE.Color(16777215),aa=new THREE.Color(16777215),ga=new THREE.Color(0),za=new THREE.Color(0),Aa=new THREE.Color(0),Qa=Math.PI*2,Ja=new THREE.Vector3,ca=new THREE.UV,Z=new THREE.UV,da=new THREE.UV,ia=new THREE.UV,Da,Ca,Ma,ja,Ea,Ha,la=16;Da=document.createElement("canvas"); +Da.width=Da.height=2;Ca=Da.getContext("2d");Ca.fillStyle="rgba(0,0,0,1)";Ca.fillRect(0,0,2,2);Ma=Ca.getImageData(0,0,2,2);ja=Ma.data;Ea=document.createElement("canvas");Ea.width=Ea.height=la;Ha=Ea.getContext("2d");Ha.translate(-la/2,-la/2);Ha.scale(la,la);la--;this.domElement=A;this.autoClear=true;this.setSize=function(w,O){J=w;N=O;p=J/2;t=N/2;A.width=J;A.height=N;i.lineJoin="round";i.lineCap="round";oa.set(-p,-t,p,t)};this.clear=function(){if(!ka.isEmpty()){ka.inflate(1);ka.minSelf(oa);i.setTransform(1, +0,0,-1,p,t);i.clearRect(ka.getX(),ka.getY(),ka.getWidth(),ka.getHeight());ka.empty()}};this.render=function(w,O){var H,I,k,G,W,u,X,F;this.autoClear&&this.clear();o=s.projectScene(w,O);i.setTransform(1,0,0,-1,p,t);i.fillStyle="rgba(0, 255, 255, 0.5)";i.fillRect(oa.getX(),oa.getY(),oa.getWidth(),oa.getHeight());if(Fa=w.lights.length>0){W=w.lights;ga.setRGB(0,0,0);za.setRGB(0,0,0);Aa.setRGB(0,0,0);H=0;for(I=W.length;H0){K.r+=v.color.r*R;K.g+=v.color.g*R;K.b+=v.color.b*R}}else if(v instanceof THREE.PointLight){E.sub(v.position,M.centroidWorld);E.normalize();R=M.normalWorld.dot(E)*v.intensity;if(R>0){K.r+=v.color.r*R;K.g+=v.color.g*R;K.b+=v.color.b*R}}}}function c(z,M,K,T,y,v){x=b(D++);x.setAttribute("d","M "+z.positionScreen.x+ +" "+z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+"z");if(y instanceof THREE.MeshBasicMaterial)p.__styleString=y.color.__styleString;else if(y instanceof THREE.MeshLambertMaterial)if(N){t.r=i.r;t.g=i.g;t.b=i.b;a(v,T,t);p.r=y.color.r*t.r;p.g=y.color.g*t.g;p.b=y.color.b*t.b;p.updateStyleString()}else p.__styleString=y.color.__styleString;else if(y instanceof THREE.MeshDepthMaterial){S=1-y.__2near/(y.__farPlusNear-T.z*y.__farMinusNear); +p.setRGB(S,S,S)}else y instanceof THREE.MeshNormalMaterial&&p.setRGB(d(T.normalWorld.x),d(T.normalWorld.y),d(T.normalWorld.z));y.wireframe?x.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+y.wireframe_linewidth+"; stroke-opacity: "+y.opacity+"; stroke-linecap: round; stroke-linejoin: round"):x.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+y.opacity);r.appendChild(x)}function f(z,M,K,T,y,v,R){x=b(D++);x.setAttribute("d","M "+z.positionScreen.x+" "+ +z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+" L "+T.positionScreen.x+","+T.positionScreen.y+"z");if(v instanceof THREE.MeshBasicMaterial)p.__styleString=v.color.__styleString;else if(v instanceof THREE.MeshLambertMaterial)if(N){t.r=i.r;t.g=i.g;t.b=i.b;a(R,y,t);p.r=v.color.r*t.r;p.g=v.color.g*t.g;p.b=v.color.b*t.b;p.updateStyleString()}else p.__styleString=v.color.__styleString;else if(v instanceof THREE.MeshDepthMaterial){S=1- +v.__2near/(v.__farPlusNear-y.z*v.__farMinusNear);p.setRGB(S,S,S)}else v instanceof THREE.MeshNormalMaterial&&p.setRGB(d(y.normalWorld.x),d(y.normalWorld.y),d(y.normalWorld.z));v.wireframe?x.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+v.wireframe_linewidth+"; stroke-opacity: "+v.opacity+"; stroke-linecap: round; stroke-linejoin: round"):x.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+v.opacity);r.appendChild(x)}function b(z){if(B[z]==null){B[z]= +document.createElementNS("http://www.w3.org/2000/svg","path");fa==0&&B[z].setAttribute("shape-rendering","crispEdges");return B[z]}return B[z]}function d(z){return z<0?Math.min((1+z)*0.5,0.5):0.5+Math.min(z*0.5,0.5)}var j=null,n=new THREE.Projector,r=document.createElementNS("http://www.w3.org/2000/svg","svg"),e,g,m,h,l,q,o,s,A=new THREE.Rectangle,J=new THREE.Rectangle,N=false,p=new THREE.Color(16777215),t=new THREE.Color(16777215),i=new THREE.Color(0),U=new THREE.Color(0),C=new THREE.Color(0),S, +E=new THREE.Vector3,B=[],L=[],x,D,Q,fa=1;this.domElement=r;this.autoClear=true;this.setQuality=function(z){switch(z){case "high":fa=1;break;case "low":fa=0}};this.setSize=function(z,M){e=z;g=M;m=e/2;h=g/2;r.setAttribute("viewBox",-m+" "+-h+" "+e+" "+g);r.setAttribute("width",e);r.setAttribute("height",g);A.set(-m,-h,m,h)};this.clear=function(){for(;r.childNodes.length>0;)r.removeChild(r.childNodes[0])};this.render=function(z,M){var K,T,y,v,R,ha,P,Y;this.autoClear&&this.clear();j=n.projectScene(z, +M);Q=D=0;if(N=z.lights.length>0){P=z.lights;i.setRGB(0,0,0);U.setRGB(0,0,0);C.setRGB(0,0,0);K=0;for(T=P.length;K 0 && vertexPositionScreen.z < 1; @@ -177,34 +178,33 @@ THREE.Projector = function() { vertices = object.geometry.vertices; - for ( v = 0, vl = vertices.length; v < vl; v++ ) { - - vertex = vertices[ v ]; - - vertex.positionScreen.copy( vertex.position ); - _projScreenObjectMatrix.transform( vertex.positionScreen ); - } + vertex = vertices[ 0 ]; + vertex.positionScreen.copy( vertex.position ); + _projScreenObjectMatrix.transform( vertex.positionScreen ); for ( v = 1, vl = vertices.length; v < vl; v++ ) { - vertex0 = vertices[ v ]; - vertex1 = vertices[ v - 1 ]; - - clippedVertexPositionScreen0.copy( vertex0.positionScreen ); - clippedVertexPositionScreen1.copy( vertex1.positionScreen ); + v1 = vertices[ v ]; - if (clipLineSegmentAgainstNearAndFarPlanes(clippedVertexPositionScreen0, clippedVertexPositionScreen1)) { + v1.positionScreen.copy( v1.position ); + _projScreenObjectMatrix.transform( v1.positionScreen ); + + v2 = vertices[ v - 1 ]; + + _clippedVertex1PositionScreen.copy( v1.positionScreen ); + _clippedVertex2PositionScreen.copy( v2.positionScreen ); + + if ( clipLine( _clippedVertex1PositionScreen, _clippedVertex2PositionScreen ) ) { // Perform the perspective divide - clippedVertexPositionScreen0.multiplyScalar( 1.0 / clippedVertexPositionScreen0.w ); - clippedVertexPositionScreen1.multiplyScalar( 1.0 / clippedVertexPositionScreen1.w ); + _clippedVertex1PositionScreen.multiplyScalar( 1 / _clippedVertex1PositionScreen.w ); + _clippedVertex2PositionScreen.multiplyScalar( 1 / _clippedVertex2PositionScreen.w ); _line = _linePool[ _lineCount ] = _linePool[ _lineCount ] || new THREE.RenderableLine(); - _line.v1.positionScreen.copy( clippedVertexPositionScreen0 ); - _line.v2.positionScreen.copy( clippedVertexPositionScreen1 ); + _line.v1.positionScreen.copy( _clippedVertex1PositionScreen ); + _line.v2.positionScreen.copy( _clippedVertex2PositionScreen ); - // TODO: Use centroids here too. - _line.z = Math.max( clippedVertexPositionScreen0.z, clippedVertexPositionScreen1.z ); + _line.z = Math.max( _clippedVertex1PositionScreen.z, _clippedVertex2PositionScreen.z ); _line.material = object.material; @@ -263,73 +263,74 @@ THREE.Projector = function() { }; - function clipLineSegmentAgainstNearAndFarPlanes( s0, s1 ) { + function clipLine( s1, s2 ) { - var visible, alpha0 = 0, alpha1 = 1, + var alpha1 = 0, alpha2 = 1, // Calculate the boundary coordinate of each vertex for the near and far clip planes, // Z = -1 and Z = +1, respectively. - bc0near = s0.z + s0.w, bc1near = s1.z + s1.w, - bc0far = -s0.z + s0.w, - bc1far = -s1.z + s1.w; + bc2near = s2.z + s2.w, + bc1far = - s1.z + s1.w, + bc2far = - s2.z + s2.w; - if ( bc0near >= 0 && bc1near >= 0 && bc0far >= 0 && bc1far >= 0 ) { + if ( bc1near >= 0 && bc2near >= 0 && bc1far >= 0 && bc2far >= 0 ) { // Both vertices lie entirely within all clip planes. - visible = true; + return true; - } else if ( ( bc0near < 0 && bc1near < 0) || (bc0far < 0 && bc1far < 0 ) ) { + } else if ( ( bc1near < 0 && bc2near < 0) || (bc1far < 0 && bc2far < 0 ) ) { // Both vertices lie entirely outside one of the clip planes. - visible = false; + return false; } else { // The line segment spans at least one clip plane. - if ( bc0near < 0 ) { + if ( bc1near < 0 ) { - // vertex0 lies outside the near plane, vertex1 inside - alpha0 = Math.max( alpha0, bc0near / ( bc0near - bc1near ) ); + // v1 lies outside the near plane, v2 inside + alpha1 = Math.max( alpha1, bc1near / ( bc1near - bc2near ) ); - } else if ( bc1near < 0 ) { + } else if ( bc2near < 0 ) { - // vertex1 lies outside the near plane, vertex0 inside - alpha1 = Math.min( alpha1, bc0near / ( bc0near - bc1near ) ); + // v2 lies outside the near plane, v1 inside + alpha2 = Math.min( alpha2, bc1near / ( bc1near - bc2near ) ); } - if ( bc0far < 0 ) { + if ( bc1far < 0 ) { - // vertex0 lies outside the far plane, vertex1 inside - alpha0 = Math.max( alpha0, bc0far / ( bc0far - bc1far ) ); + // v1 lies outside the far plane, v2 inside + alpha1 = Math.max( alpha1, bc1far / ( bc1far - bc2far ) ); - } else if ( bc1far < 0 ) { + } else if ( bc2far < 0 ) { - // vertex1 lies outside the far plane, vertex1 inside - alpha1 = Math.min( alpha1, bc0far / ( bc0far - bc1far ) ); + // v2 lies outside the far plane, v2 inside + alpha2 = Math.min( alpha2, bc1far / ( bc1far - bc2far ) ); } - if ( alpha1 < alpha0 ) { + if ( alpha2 < alpha1 ) { // The line segment spans two boundaries, but is outside both of them. // (This can't happen when we're only clipping against just near/far but good // to leave the check here for future usage if other clip planes are added.) - visible = false; + return false; } else { - // Update the s0 and s1 vertices to match the clipped line segment. - s0.lerpSelf( s1, alpha0 ); - s1.lerpSelf( s0, 1 - alpha1 ); + // Update the s1 and s2 vertices to match the clipped line segment. + s1.lerpSelf( s2, alpha1 ); + s2.lerpSelf( s1, 1 - alpha2 ); + + return true; - visible = true; } + } - return visible; } }; diff --git a/src/renderers/SVGRenderer.js b/src/renderers/SVGRenderer.js index 5ff5aa53..78377fdc 100644 --- a/src/renderers/SVGRenderer.js +++ b/src/renderers/SVGRenderer.js @@ -15,11 +15,11 @@ THREE.SVGRenderer = function () { _bboxRect = new THREE.Rectangle(), _enableLighting = false, - _color = new THREE.Color( 0xffffffff ), - _light = new THREE.Color( 0xffffffff ), - _ambientLight = new THREE.Color( 0xff000000 ), - _directionalLights = new THREE.Color( 0xff000000 ), - _pointLights = new THREE.Color( 0xff000000 ), + _color = new THREE.Color( 0xffffff ), + _light = new THREE.Color( 0xffffff ), + _ambientLight = new THREE.Color( 0x000000 ), + _directionalLights = new THREE.Color( 0x000000 ), + _pointLights = new THREE.Color( 0x000000 ), _w, // z-buffer to w-buffer _vector3 = new THREE.Vector3(), // Needed for PointLight From 45553e88dbf13f023108717b600549aa1b5abcb0 Mon Sep 17 00:00:00 2001 From: "Mr.doob" Date: Mon, 22 Nov 2010 07:46:59 +0000 Subject: [PATCH 2/4] Merging with alteredq's branch. --- build/Three.js | 320 +++++++++--------- build/ThreeDebug.js | 320 +++++++++--------- examples/materials_cubemap.html | 69 ++-- examples/materials_cubemap_escher.html | 57 ++-- examples/materials_cubemap_refraction.html | 60 ++-- examples/materials_cubemap_sky.html | 77 +++-- .../materials_cubemap_sky_refraction.html | 45 ++- src/materials/textures/TextureCube.js | 20 ++ src/renderers/WebGLRenderer.js | 43 ++- utils/build.py | 2 + 10 files changed, 560 insertions(+), 453 deletions(-) diff --git a/build/Three.js b/build/Three.js index fb064167..9fc8a12a 100644 --- a/build/Three.js +++ b/build/Three.js @@ -1,160 +1,160 @@ -// Three.js r29 - http://github.com/mrdoob/three.js -var THREE=THREE||{};THREE.Color=function(a){this.autoUpdate=true;this.setHex(a)}; -THREE.Color.prototype={setRGB:function(a,c,f){this.r=a;this.g=c;this.b=f;if(this.autoUpdate){this.updateHex();this.updateStyleString()}},setHex:function(a){this.hex=~~a&16777215;if(this.autoUpdate){this.updateRGBA();this.updateStyleString()}},updateHex:function(){this.hex=~~(this.r*255)<<16^~~(this.g*255)<<8^~~(this.b*255)},updateRGBA:function(){this.r=(this.hex>>16&255)/255;this.g=(this.hex>>8&255)/255;this.b=(this.hex&255)/255},updateStyleString:function(){this.__styleString="rgb("+~~(this.r*255)+ -","+~~(this.g*255)+","+~~(this.b*255)+")"},toString:function(){return"THREE.Color ( r: "+this.r+", g: "+this.g+", b: "+this.b+", hex: "+this.hex+" )"}};THREE.Vector2=function(a,c){this.x=a||0;this.y=c||0}; -THREE.Vector2.prototype={set:function(a,c){this.x=a;this.y=c;return this},copy:function(a){this.x=a.x;this.y=a.y;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},unit:function(){this.multiplyScalar(1/this.length());return this},length:function(){return Math.sqrt(this.x* -this.x+this.y*this.y)},lengthSq:function(){return this.x*this.x+this.y*this.y},negate:function(){this.x=-this.x;this.y=-this.y;return this},clone:function(){return new THREE.Vector2(this.x,this.y)},toString:function(){return"THREE.Vector2 ("+this.x+", "+this.y+")"}};THREE.Vector3=function(a,c,f){this.x=a||0;this.y=c||0;this.z=f||0}; -THREE.Vector3.prototype={set:function(a,c,f){this.x=a;this.y=c;this.z=f;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;return this}, -cross:function(a,c){this.x=a.y*c.z-a.z*c.y;this.y=a.z*c.x-a.x*c.z;this.z=a.x*c.y-a.y*c.x;return this},crossSelf:function(a){var c=this.x,f=this.y,b=this.z;this.x=f*a.z-b*a.y;this.y=b*a.x-c*a.z;this.z=c*a.y-f*a.x;return this},multiplySelf:function(a){this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))}, -distanceToSquared:function(a){var c=this.x-a.x,f=this.y-a.y;a=this.z-a.z;return c*c+f*f+a*a},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},normalize:function(){this.length()>0?this.multiplyScalar(1/this.length()):this.multiplyScalar(0);return this},setLength:function(a){return this.normalize().multiplyScalar(a)},isZero:function(){return Math.abs(this.x)< -1.0E-4&&Math.abs(this.y)<1.0E-4&&Math.abs(this.z)<1.0E-4},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)},toString:function(){return"THREE.Vector3 ( "+this.x+", "+this.y+", "+this.z+" )"}};THREE.Vector4=function(a,c,f,b){this.x=a||0;this.y=c||0;this.z=f||0;this.w=b||1}; -THREE.Vector4.prototype={set:function(a,c,f,b){this.x=a;this.y=c;this.z=f;this.w=b;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=a.w||1;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;this.w=a.w+c.w;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;this.w=a.w-c.w;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w; -return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;this.w/=a;return this},lerpSelf:function(a,c){this.x+=(a.x-this.x)*c;this.y+=(a.y-this.y)*c;this.z+=(a.z-this.z)*c;this.w+=(a.w-this.w)*c},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},toString:function(){return"THREE.Vector4 ("+this.x+", "+this.y+", "+this.z+", "+this.w+")"}}; -THREE.Ray=function(a,c){this.origin=a||new THREE.Vector3;this.direction=c||new THREE.Vector3}; -THREE.Ray.prototype={intersectScene:function(a){var c,f,b=a.objects,d=[];a=0;for(c=b.length;a0&&A>0&&j+A<1}var f,b,d,i,n,r,e,g,m,h, -l,q=a.geometry,o=q.vertices,s=[];f=0;for(b=q.faces.length;f= -0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){r=true;d=b=f=c=0;a()};this.isEmpty=function(){return r};this.toString=function(){return"THREE.Rectangle ( left: "+c+", right: "+b+", top: "+f+", bottom: "+d+", width: "+i+", height: "+n+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; -THREE.Matrix4=function(){this._x=new THREE.Vector3;this._y=new THREE.Vector3;this._z=new THREE.Vector3}; -THREE.Matrix4.prototype={n11:1,n12:0,n13:0,n14:0,n21:0,n22:1,n23:0,n24:0,n31:0,n32:0,n33:1,n34:0,n41:0,n42:0,n43:0,n44:1,identity:function(){this.n11=1;this.n21=this.n14=this.n13=this.n12=0;this.n22=1;this.n32=this.n31=this.n24=this.n23=0;this.n33=1;this.n43=this.n42=this.n41=this.n34=0;this.n44=1},copy:function(a){this.n11=a.n11;this.n12=a.n12;this.n13=a.n13;this.n14=a.n14;this.n21=a.n21;this.n22=a.n22;this.n23=a.n23;this.n24=a.n24;this.n31=a.n31;this.n32=a.n32;this.n33=a.n33;this.n34=a.n34;this.n41= -a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,c,f){var b=this._x,d=this._y,i=this._z;i.sub(a,c);i.normalize();b.cross(f,i);b.normalize();d.cross(i,b);d.normalize();this.n11=b.x;this.n12=b.y;this.n13=b.z;this.n14=-b.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=i.x;this.n32=i.y;this.n33=i.z;this.n34=-i.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var c=a.x,f=a.y,b=a.z,d=a.w?a.w:1;a.x=this.n11*c+this.n12*f+this.n13*b+this.n14* -d;a.y=this.n21*c+this.n22*f+this.n23*b+this.n24*d;a.z=this.n31*c+this.n32*f+this.n33*b+this.n34*d;d=this.n41*c+this.n42*f+this.n43*b+this.n44*d;if(a.w)a.w=d;else{a.x/=d;a.y/=d;a.z/=d}return a},crossVector:function(a){var c=new THREE.Vector4;c.x=this.n11*a.x+this.n12*a.y+this.n13*a.z+this.n14*a.w;c.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;c.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+this.n34*a.w;c.w=a.w?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return c},multiply:function(a, -c){this.n11=a.n11*c.n11+a.n12*c.n21+a.n13*c.n31+a.n14*c.n41;this.n12=a.n11*c.n12+a.n12*c.n22+a.n13*c.n32+a.n14*c.n42;this.n13=a.n11*c.n13+a.n12*c.n23+a.n13*c.n33+a.n14*c.n43;this.n14=a.n11*c.n14+a.n12*c.n24+a.n13*c.n34+a.n14*c.n44;this.n21=a.n21*c.n11+a.n22*c.n21+a.n23*c.n31+a.n24*c.n41;this.n22=a.n21*c.n12+a.n22*c.n22+a.n23*c.n32+a.n24*c.n42;this.n23=a.n21*c.n13+a.n22*c.n23+a.n23*c.n33+a.n24*c.n43;this.n24=a.n21*c.n14+a.n22*c.n24+a.n23*c.n34+a.n24*c.n44;this.n31=a.n31*c.n11+a.n32*c.n21+a.n33*c.n31+ -a.n34*c.n41;this.n32=a.n31*c.n12+a.n32*c.n22+a.n33*c.n32+a.n34*c.n42;this.n33=a.n31*c.n13+a.n32*c.n23+a.n33*c.n33+a.n34*c.n43;this.n34=a.n31*c.n14+a.n32*c.n24+a.n33*c.n34+a.n34*c.n44;this.n41=a.n41*c.n11+a.n42*c.n21+a.n43*c.n31+a.n44*c.n41;this.n42=a.n41*c.n12+a.n42*c.n22+a.n43*c.n32+a.n44*c.n42;this.n43=a.n41*c.n13+a.n42*c.n23+a.n43*c.n33+a.n44*c.n43;this.n44=a.n41*c.n14+a.n42*c.n24+a.n43*c.n34+a.n44*c.n44},multiplySelf:function(a){var c=this.n11,f=this.n12,b=this.n13,d=this.n14,i=this.n21,n=this.n22, -r=this.n23,e=this.n24,g=this.n31,m=this.n32,h=this.n33,l=this.n34,q=this.n41,o=this.n42,s=this.n43,A=this.n44;this.n11=c*a.n11+f*a.n21+b*a.n31+d*a.n41;this.n12=c*a.n12+f*a.n22+b*a.n32+d*a.n42;this.n13=c*a.n13+f*a.n23+b*a.n33+d*a.n43;this.n14=c*a.n14+f*a.n24+b*a.n34+d*a.n44;this.n21=i*a.n11+n*a.n21+r*a.n31+e*a.n41;this.n22=i*a.n12+n*a.n22+r*a.n32+e*a.n42;this.n23=i*a.n13+n*a.n23+r*a.n33+e*a.n43;this.n24=i*a.n14+n*a.n24+r*a.n34+e*a.n44;this.n31=g*a.n11+m*a.n21+h*a.n31+l*a.n41;this.n32=g*a.n12+m*a.n22+ -h*a.n32+l*a.n42;this.n33=g*a.n13+m*a.n23+h*a.n33+l*a.n43;this.n34=g*a.n14+m*a.n24+h*a.n34+l*a.n44;this.n41=q*a.n11+o*a.n21+s*a.n31+A*a.n41;this.n42=q*a.n12+o*a.n22+s*a.n32+A*a.n42;this.n43=q*a.n13+o*a.n23+s*a.n33+A*a.n43;this.n44=q*a.n14+o*a.n24+s*a.n34+A*a.n44},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a},determinant:function(){return this.n14* -this.n23*this.n32*this.n41-this.n13*this.n24*this.n32*this.n41-this.n14*this.n22*this.n33*this.n41+this.n12*this.n24*this.n33*this.n41+this.n13*this.n22*this.n34*this.n41-this.n12*this.n23*this.n34*this.n41-this.n14*this.n23*this.n31*this.n42+this.n13*this.n24*this.n31*this.n42+this.n14*this.n21*this.n33*this.n42-this.n11*this.n24*this.n33*this.n42-this.n13*this.n21*this.n34*this.n42+this.n11*this.n23*this.n34*this.n42+this.n14*this.n22*this.n31*this.n43-this.n12*this.n24*this.n31*this.n43-this.n14* -this.n21*this.n32*this.n43+this.n11*this.n24*this.n32*this.n43+this.n12*this.n21*this.n34*this.n43-this.n11*this.n22*this.n34*this.n43-this.n13*this.n22*this.n31*this.n44+this.n12*this.n23*this.n31*this.n44+this.n13*this.n21*this.n32*this.n44-this.n11*this.n23*this.n32*this.n44-this.n12*this.n21*this.n33*this.n44+this.n11*this.n22*this.n33*this.n44},transpose:function(){function a(c,f,b){var d=c[f];c[f]=c[b];c[b]=d}a(this,"n21","n12");a(this,"n31","n13");a(this,"n32","n23");a(this,"n41","n14");a(this, -"n42","n24");a(this,"n43","n34");return this},clone:function(){var a=new THREE.Matrix4;a.n11=this.n11;a.n12=this.n12;a.n13=this.n13;a.n14=this.n14;a.n21=this.n21;a.n22=this.n22;a.n23=this.n23;a.n24=this.n24;a.n31=this.n31;a.n32=this.n32;a.n33=this.n33;a.n34=this.n34;a.n41=this.n41;a.n42=this.n42;a.n43=this.n43;a.n44=this.n44;return a},flatten:function(){return[this.n11,this.n21,this.n31,this.n41,this.n12,this.n22,this.n32,this.n42,this.n13,this.n23,this.n33,this.n43,this.n14,this.n24,this.n34,this.n44]}, -toString:function(){return"| "+this.n11+" "+this.n12+" "+this.n13+" "+this.n14+" |\n| "+this.n21+" "+this.n22+" "+this.n23+" "+this.n24+" |\n| "+this.n31+" "+this.n32+" "+this.n33+" "+this.n34+" |\n| "+this.n41+" "+this.n42+" "+this.n43+" "+this.n44+" |"}};THREE.Matrix4.translationMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n14=a;b.n24=c;b.n34=f;return b};THREE.Matrix4.scaleMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n11=a;b.n22=c;b.n33=f;return b}; -THREE.Matrix4.rotationXMatrix=function(a){var c=new THREE.Matrix4;c.n22=c.n33=Math.cos(a);c.n32=Math.sin(a);c.n23=-c.n32;return c};THREE.Matrix4.rotationYMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n33=Math.cos(a);c.n13=Math.sin(a);c.n31=-c.n13;return c};THREE.Matrix4.rotationZMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n22=Math.cos(a);c.n21=Math.sin(a);c.n12=-c.n21;return c}; -THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var f=new THREE.Matrix4,b=Math.cos(c),d=Math.sin(c),i=1-b,n=a.x,r=a.y,e=a.z;f.n11=i*n*n+b;f.n12=i*n*r-d*e;f.n13=i*n*e+d*r;f.n21=i*n*r+d*e;f.n22=i*r*r+b;f.n23=i*r*e-d*n;f.n31=i*n*e-d*r;f.n32=i*r*e+d*n;f.n33=i*e*e+b;return f}; -THREE.Matrix4.makeInvert=function(a){var c=new THREE.Matrix4;c.n11=a.n23*a.n34*a.n42-a.n24*a.n33*a.n42+a.n24*a.n32*a.n43-a.n22*a.n34*a.n43-a.n23*a.n32*a.n44+a.n22*a.n33*a.n44;c.n12=a.n14*a.n33*a.n42-a.n13*a.n34*a.n42-a.n14*a.n32*a.n43+a.n12*a.n34*a.n43+a.n13*a.n32*a.n44-a.n12*a.n33*a.n44;c.n13=a.n13*a.n24*a.n42-a.n14*a.n23*a.n42+a.n14*a.n22*a.n43-a.n12*a.n24*a.n43-a.n13*a.n22*a.n44+a.n12*a.n23*a.n44;c.n14=a.n14*a.n23*a.n32-a.n13*a.n24*a.n32-a.n14*a.n22*a.n33+a.n12*a.n24*a.n33+a.n13*a.n22*a.n34-a.n12* -a.n23*a.n34;c.n21=a.n24*a.n33*a.n41-a.n23*a.n34*a.n41-a.n24*a.n31*a.n43+a.n21*a.n34*a.n43+a.n23*a.n31*a.n44-a.n21*a.n33*a.n44;c.n22=a.n13*a.n34*a.n41-a.n14*a.n33*a.n41+a.n14*a.n31*a.n43-a.n11*a.n34*a.n43-a.n13*a.n31*a.n44+a.n11*a.n33*a.n44;c.n23=a.n14*a.n23*a.n41-a.n13*a.n24*a.n41-a.n14*a.n21*a.n43+a.n11*a.n24*a.n43+a.n13*a.n21*a.n44-a.n11*a.n23*a.n44;c.n24=a.n13*a.n24*a.n31-a.n14*a.n23*a.n31+a.n14*a.n21*a.n33-a.n11*a.n24*a.n33-a.n13*a.n21*a.n34+a.n11*a.n23*a.n34;c.n31=a.n22*a.n34*a.n41-a.n24*a.n32* -a.n41+a.n24*a.n31*a.n42-a.n21*a.n34*a.n42-a.n22*a.n31*a.n44+a.n21*a.n32*a.n44;c.n32=a.n14*a.n32*a.n41-a.n12*a.n34*a.n41-a.n14*a.n31*a.n42+a.n11*a.n34*a.n42+a.n12*a.n31*a.n44-a.n11*a.n32*a.n44;c.n33=a.n13*a.n24*a.n41-a.n14*a.n22*a.n41+a.n14*a.n21*a.n42-a.n11*a.n24*a.n42-a.n12*a.n21*a.n44+a.n11*a.n22*a.n44;c.n34=a.n14*a.n22*a.n31-a.n12*a.n24*a.n31-a.n14*a.n21*a.n32+a.n11*a.n24*a.n32+a.n12*a.n21*a.n34-a.n11*a.n22*a.n34;c.n41=a.n23*a.n32*a.n41-a.n22*a.n33*a.n41-a.n23*a.n31*a.n42+a.n21*a.n33*a.n42+a.n22* -a.n31*a.n43-a.n21*a.n32*a.n43;c.n42=a.n12*a.n33*a.n41-a.n13*a.n32*a.n41+a.n13*a.n31*a.n42-a.n11*a.n33*a.n42-a.n12*a.n31*a.n43+a.n11*a.n32*a.n43;c.n43=a.n13*a.n22*a.n41-a.n12*a.n23*a.n41-a.n13*a.n21*a.n42+a.n11*a.n23*a.n42+a.n12*a.n21*a.n43-a.n11*a.n22*a.n43;c.n44=a.n12*a.n23*a.n31-a.n13*a.n22*a.n31+a.n13*a.n21*a.n32-a.n11*a.n23*a.n32-a.n12*a.n21*a.n33+a.n11*a.n22*a.n33;c.multiplyScalar(1/a.determinant());return c}; -THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=new THREE.Matrix3;var f=c[10]*c[5]-c[6]*c[9],b=-c[10]*c[1]+c[2]*c[9],d=c[6]*c[1]-c[2]*c[5],i=-c[10]*c[4]+c[6]*c[8],n=c[10]*c[0]-c[2]*c[8],r=-c[6]*c[0]+c[2]*c[4],e=c[9]*c[4]-c[5]*c[8],g=-c[9]*c[0]+c[1]*c[8],m=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*i+c[2]*e;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*b;a.m[2]=c*d;a.m[3]=c*i;a.m[4]=c*n;a.m[5]=c*r;a.m[6]=c*e;a.m[7]=c*g;a.m[8]=c*m;return a}; -THREE.Matrix4.makeFrustum=function(a,c,f,b,d,i){var n,r,e;n=new THREE.Matrix4;r=2*d/(c-a);e=2*d/(b-f);a=(c+a)/(c-a);f=(b+f)/(b-f);b=-(i+d)/(i-d);d=-2*i*d/(i-d);n.n11=r;n.n12=0;n.n13=a;n.n14=0;n.n21=0;n.n22=e;n.n23=f;n.n24=0;n.n31=0;n.n32=0;n.n33=b;n.n34=d;n.n41=0;n.n42=0;n.n43=-1;n.n44=0;return n};THREE.Matrix4.makePerspective=function(a,c,f,b){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*c,a*c,d,a,f,b)}; -THREE.Matrix4.makeOrtho=function(a,c,f,b,d,i){var n,r,e,g;n=new THREE.Matrix4;r=c-a;e=f-b;g=i-d;a=(c+a)/r;f=(f+b)/e;d=(i+d)/g;n.n11=2/r;n.n12=0;n.n13=0;n.n14=-a;n.n21=0;n.n22=2/e;n.n23=0;n.n24=-f;n.n31=0;n.n32=0;n.n33=-2/g;n.n34=-d;n.n41=0;n.n42=0;n.n43=0;n.n44=1;return n}; -THREE.Vertex=function(a,c){this.position=a||new THREE.Vector3;this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.normal=c||new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.normalScreen=new THREE.Vector3;this.__visible=true};THREE.Vertex.prototype={toString:function(){return"THREE.Vertex ( position: "+this.position+", normal: "+this.normal+" )"}}; -THREE.Face3=function(a,c,f,b,d){this.a=a;this.b=c;this.c=f;this.centroid=new THREE.Vector3;this.normal=b instanceof THREE.Vector3?b:new THREE.Vector3;this.vertexNormals=b instanceof Array?b:[];this.material=d instanceof Array?d:[d]};THREE.Face3.prototype={toString:function(){return"THREE.Face3 ( "+this.a+", "+this.b+", "+this.c+" )"}}; -THREE.Face4=function(a,c,f,b,d,i){this.a=a;this.b=c;this.c=f;this.d=b;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=i instanceof Array?i:[i]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,c){this.u=a||0;this.v=c||0}; -THREE.UV.prototype={copy:function(a){this.u=a.u;this.v=a.v},toString:function(){return"THREE.UV ("+this.u+", "+this.v+")"}};THREE.Geometry=function(){this.vertices=[];this.faces=[];this.uvs=[]}; -THREE.Geometry.prototype={computeCentroids:function(){var a,c,f;a=0;for(c=this.faces.length;a0){this.bbox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y,this.vertices[0].position.y],z:[this.vertices[0].position.z,this.vertices[0].position.z]};for(var a=1,c=this.vertices.length;a -this.bbox.x[1])this.bbox.x[1]=vertex.position.x;if(vertex.position.ythis.bbox.y[1])this.bbox.y[1]=vertex.position.y;if(vertex.position.zthis.bbox.z[1])this.bbox.z[1]=vertex.position.z}}},toString:function(){return"THREE.Geometry ( vertices: "+this.vertices+", faces: "+this.faces+" )"}}; -THREE.Camera=function(a,c,f,b){this.position=new THREE.Vector3(0,0,0);this.target={position:new THREE.Vector3(0,0,0)};this.up=new THREE.Vector3(0,1,0);this.matrix=new THREE.Matrix4;this.projectionMatrix=THREE.Matrix4.makePerspective(a,c,f,b);this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrix.lookAt(this.position,this.target.position,this.up)};this.toString=function(){return"THREE.Camera ( "+this.position+", "+this.target.position+" )"}}; -THREE.Light=function(a){this.color=new THREE.Color(-16777216|a)};THREE.AmbientLight=function(a){THREE.Light.call(this,a)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight;THREE.DirectionalLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,1,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight; -THREE.PointLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,0,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.PointLight; -THREE.Object3D=function(){this.position=new THREE.Vector3;this.rotation=new THREE.Vector3;this.scale=new THREE.Vector3(1,1,1);this.matrix=new THREE.Matrix4;this.matrixTranslation=new THREE.Matrix4;this.matrixRotation=new THREE.Matrix4;this.matrixScale=new THREE.Matrix4;this.screen=new THREE.Vector3;this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrixPosition=THREE.Matrix4.translationMatrix(this.position.x,this.position.y,this.position.z);this.matrixRotation=THREE.Matrix4.rotationXMatrix(this.rotation.x); -this.matrixRotation.multiplySelf(THREE.Matrix4.rotationYMatrix(this.rotation.y));this.matrixRotation.multiplySelf(THREE.Matrix4.rotationZMatrix(this.rotation.z));this.matrixScale=THREE.Matrix4.scaleMatrix(this.scale.x,this.scale.y,this.scale.z);this.matrix.copy(this.matrixPosition);this.matrix.multiplySelf(this.matrixRotation);this.matrix.multiplySelf(this.matrixScale)}};THREE.Particle=function(a){THREE.Object3D.call(this);this.material=a instanceof Array?a:[a];this.autoUpdateMatrix=false}; -THREE.Particle.prototype=new THREE.Object3D;THREE.Particle.prototype.constructor=THREE.Particle;THREE.Line=function(a,c){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c]};THREE.Line.prototype=new THREE.Object3D;THREE.Line.prototype.constructor=THREE.Line; -THREE.Mesh=function(a,c,f){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c];this.overdraw=this.doubleSided=this.flipSided=false;this.materialFaceGroup={};this.sortFacesByMaterial();f&&this.normalizeUVs();this.geometry.computeBoundingBox()};THREE.Mesh.prototype=new THREE.Object3D;THREE.Mesh.prototype.constructor=THREE.Mesh; -THREE.Mesh.prototype.sortFacesByMaterial=function(){function a(m){var h=[];c=0;for(f=m.length;c65535){g[r].counter+=1;e=g[r].hash+"_"+g[r].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:n,vertices:0}}this.materialFaceGroup[e].faces.push(b);this.materialFaceGroup[e].vertices+=i}};THREE.Mesh.prototype.normalizeUVs=function(){var a,c,f,b,d;a=0;for(c=this.geometry.uvs.length;acolor: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
linewidth: "+ -this.linewidth+"
)"}}; -THREE.MeshBasicMaterial=function(a){this.id=THREE.MeshBasicMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!== -undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshBasicMaterial (
id: "+ -this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
)"}};THREE.MeshBasicMaterialCounter={value:0}; -THREE.MeshLambertMaterial=function(a){this.id=THREE.MeshLambertMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!== -undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshLambertMaterial (
id: "+ -this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
shading: "+this.shading+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_size: "+this.wireframe_linewidth+"
)"}};THREE.MeshLambertMaterialCounter={value:0}; -THREE.MeshPhongMaterial=function(a){this.id=THREE.MeshPhongMaterialCounter.value++;this.color=new THREE.Color(15658734);this.ambient=new THREE.Color(328965);this.specular=new THREE.Color(1118481);this.shininess=30;this.env_map=this.specular_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){if(a.color!==undefined)this.color= -new THREE.Color(a.color);if(a.ambient!==undefined)this.ambient=new THREE.Color(a.ambient);if(a.specular!==undefined)this.specular=new THREE.Color(a.specular);if(a.shininess!==undefined)this.shininess=a.shininess;if(a.map!==undefined)this.map=a.map;if(a.specular_map!==undefined)this.specular_map=a.specular_map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!==undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio= -a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshPhongMaterial (
id: "+this.id+"
color: "+this.color+"
ambient: "+this.ambient+"
specular: "+this.specular+"
shininess: "+this.shininess+ -"
map: "+this.map+"
specular_map: "+this.specular_map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
shading: "+this.shading+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
"+ +")"}};THREE.MeshPhongMaterialCounter={value:0}; -THREE.MeshDepthMaterial=function(a){this.near=1;this.far=1E3;this.opacity=1;this.blending=THREE.NormalBlending;if(a){if(a.near!==undefined)this.near=a.near;if(a.far!==undefined)this.far=a.far;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.__2near=2*this.near;this.__farPlusNear=this.far+this.near;this.__farMinusNear=this.far-this.near;this.toString=function(){return"THREE.MeshDepthMaterial"}}; -THREE.MeshNormalMaterial=function(a){this.opacity=1;this.shading=THREE.FlatShading;this.blending=THREE.NormalBlending;if(a){if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.MeshNormalMaterial"}};THREE.MeshFaceMaterial=function(){this.toString=function(){return"THREE.MeshFaceMaterial"}}; -THREE.ParticleBasicMaterial=function(a){this.color=new THREE.Color(16711680);this.map=null;this.opacity=1;this.blending=THREE.NormalBlending;this.offset=new THREE.Vector2;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleBasicMaterial (
color: "+this.color+"
map: "+this.map+"
opacity: "+this.opacity+"
blending: "+ -this.blending+"
)"}};THREE.ParticleCircleMaterial=function(a){this.color=new THREE.Color(16711680);this.opacity=1;this.blending=THREE.NormalBlending;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleCircleMaterial (
color: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
)"}}; -THREE.ParticleDOMMaterial=function(a){this.domElement=a;this.toString=function(){return"THREE.ParticleDOMMaterial ( domElement: "+this.domElement+" )"}};THREE.Texture=function(a,c){this.image=a;this.mapping=c!==undefined?c:THREE.UVMapping;this.toString=function(){return"THREE.Texture (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.UVMapping=0;THREE.ReflectionMap=1;THREE.RefractionMap=2;THREE.Multiply=0;THREE.Mix=1; -THREE.TextureCube=function(a,c){this.image=a;this.mapping=c?c:THREE.ReflectionMap;this.toString=function(){return"THREE.TextureCube (
image: "+this.image+"
mapping: "+this.mapping+"
)"}}; -THREE.Scene=function(){this.objects=[];this.lights=[];this.addObject=function(a){this.objects.push(a)};this.removeObject=function(a){a=this.objects.indexOf(a);a!==-1&&this.objects.splice(a,1)};this.addLight=function(a){this.lights.push(a)};this.removeLight=function(a){a=this.lights.indexOf(a);a!==-1&&this.lights.splice(a,1)};this.toString=function(){return"THREE.Scene ( "+this.objects+" )"}}; -THREE.Projector=function(){function a(p,t){var j=0,U=1,C=p.z+p.w,S=t.z+t.w,E=-p.z+p.w,B=-t.z+t.w;if(C>=0&&S>=0&&E>=0&&B>=0)return true;else if(C<0&&S<0||E<0&&B<0)return false;else{if(C<0)j=Math.max(j,C/(C-S));else if(S<0)U=Math.min(U,C/(C-S));if(E<0)j=Math.max(j,E/(E-B));else if(B<0)U=Math.min(U,E/(E-B));if(U0&&Q.z<1}fa=B.geometry.faces;C=0;for(S= -fa.length;C0&&o.z<1){h=q[l]=q[l]|| -new THREE.RenderableParticle;h.x=o.x/o.w;h.y=o.y/o.w;h.z=o.z;h.rotation=B.rotation.z;h.scale.x=B.scale.x*Math.abs(h.x-(o.x+t.projectionMatrix.n11)/(o.w+t.projectionMatrix.n14));h.scale.y=B.scale.y*Math.abs(h.y-(o.y+t.projectionMatrix.n22)/(o.w+t.projectionMatrix.n24));h.material=B.material;c.push(h);l++}}}c.sort(function(T,x){return x.z-T.z});return c};this.unprojectVector=function(p,t){var j=new THREE.Matrix4;j.multiply(THREE.Matrix4.makeInvert(t.matrix),THREE.Matrix4.makeInvert(t.projectionMatrix)); -j.transform(p);return p}}; -THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,c=new THREE.Projector,f,b,d,i;this.domElement=document.createElement("div");this.setSize=function(n,r){f=n;b=r;d=f/2;i=b/2};this.render=function(n,r){var e,g,m,h,l,q,o,s;a=c.projectScene(n,r);e=0;for(g=a.length;e0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}else if(k instanceof THREE.PointLight){Ja.sub(k.position,O.centroidWorld);Ja.normalize();k=O.normalWorld.dot(Ja)*k.intensity;if(k>0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}}}function c(v,O,H,I,k,G){if(k.opacity!=0){n(k.opacity);r(k.blending);M=v.positionScreen.x; -K=v.positionScreen.y;T=O.positionScreen.x;x=O.positionScreen.y;u=H.positionScreen.x;R=H.positionScreen.y;if(k.map){ea=k.map.image;na=ea.width-1;oa=ea.height-1;ca.u=I.uvs[0].u*na;ca.v=I.uvs[0].v*oa;Z.u=I.uvs[1].u*na;Z.v=I.uvs[1].v*oa;da.u=I.uvs[2].u*na;da.v=I.uvs[2].v*oa;i(ea,M,K,T,x,u,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(k instanceof THREE.MeshBasicMaterial)b(M,K,T,x,u,R,k.color,k.wireframe,k.wireframe_linewidth);else if(k instanceof THREE.MeshLambertMaterial){if(Fa){aa.r=ga.r;aa.g=ga.g;aa.b=ga.b; -a(G,I,aa);V.r=k.color.r*aa.r;V.g=k.color.g*aa.g;V.b=k.color.b*aa.b;V.updateStyleString()}else V.__styleString=k.color.__styleString;b(M,K,T,x,u,R,V,k.wireframe,k.wireframe_linewidth)}else if(k instanceof THREE.MeshDepthMaterial){pa=k.__2near;qa=k.__farPlusNear;ra=k.__farMinusNear;va=~~((1-pa/(qa-v.positionScreen.z*ra))*255);wa=~~((1-pa/(qa-O.positionScreen.z*ra))*255);ma=~~((1-pa/(qa-H.positionScreen.z*ra))*255);ea=h([va,va,va],[wa,wa,wa],[ma,ma,ma],[ma,ma,ma]);ca.u=0;ca.v=0;Z.u=ka;Z.v=0;da.u=0;da.v= -ka;i(ea,M,K,T,x,u,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(k instanceof THREE.MeshNormalMaterial){V.r=l(I.normalWorld.x);V.g=l(I.normalWorld.y);V.b=l(I.normalWorld.z);V.updateStyleString();b(M,K,T,x,u,R,V,k.wireframe,k.wireframe_linewidth)}}}function f(v,O,H,I,k,G,W,y,X){if(y.opacity!=0){n(y.opacity);r(y.blending);M=v.positionScreen.x;K=v.positionScreen.y;T=O.positionScreen.x;x=O.positionScreen.y;u=H.positionScreen.x;R=H.positionScreen.y;ha=I.positionScreen.x;P=I.positionScreen.y;Y=k.positionScreen.x; -xa=k.positionScreen.y;Ka=G.positionScreen.x;La=G.positionScreen.y;if(y.map){ea=y.map.image;na=ea.width-1;oa=ea.height-1;ca.copy(W.uvs[0]);Z.copy(W.uvs[1]);da.copy(W.uvs[2]);ia.copy(W.uvs[3]);ca.u*=na;ca.v*=oa;Z.u*=na;Z.v*=oa;da.u*=na;da.v*=oa;ia.u*=na;ia.v*=oa;i(ea,M,K,T,x,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);i(ea,Y,xa,u,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(y instanceof THREE.MeshBasicMaterial)d(M,K,T,x,u,R,ha,P,y.color,y.wireframe,y.wireframe_linewidth);else if(y instanceof THREE.MeshLambertMaterial){if(Fa){aa.r= -ga.r;aa.g=ga.g;aa.b=ga.b;a(X,W,aa);V.r=y.color.r*aa.r;V.g=y.color.g*aa.g;V.b=y.color.b*aa.b;V.updateStyleString()}else V.__styleString=y.color.__styleString;d(M,K,T,x,u,R,ha,P,V,y.wireframe,y.wireframe_linewidth)}else if(y instanceof THREE.MeshDepthMaterial){pa=y.__2near;qa=y.__farPlusNear;ra=y.__farMinusNear;va=~~((1-pa/(qa-v.positionScreen.z*ra))*255);wa=~~((1-pa/(qa-O.positionScreen.z*ra))*255);ma=~~((1-pa/(qa-H.positionScreen.z*ra))*255);Ga=~~((1-pa/(qa-I.positionScreen.z*ra))*255);ea=h([va,va, -va],[wa,wa,wa],[Ga,Ga,Ga],[ma,ma,ma]);ca.u=0;ca.v=0;Z.u=ka;Z.v=0;da.u=ka;da.v=ka;ia.u=0;ia.v=ka;i(ea,M,K,T,x,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);i(ea,Y,xa,u,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(y instanceof THREE.MeshNormalMaterial){V.r=l(W.normalWorld.x);V.g=l(W.normalWorld.y);V.b=l(W.normalWorld.z);V.updateStyleString();d(M,K,T,x,u,R,ha,P,V,y.wireframe,y.wireframe_linewidth)}}}function b(v,O,H,I,k,G,W,y,X){j.beginPath();j.moveTo(v,O);j.lineTo(H,I);j.lineTo(k,G);j.lineTo(v,O);j.closePath(); -if(y){e(X);g(W.__styleString);j.stroke();$.inflate(X*2)}else{m(W.__styleString);j.fill()}}function d(v,O,H,I,k,G,W,y,X,F,ba){j.beginPath();j.moveTo(v,O);j.lineTo(H,I);j.lineTo(k,G);j.lineTo(W,y);j.lineTo(v,O);j.closePath();if(F){e(ba);g(X.__styleString);j.stroke();$.inflate(ba*2)}else{m(X.__styleString);j.fill()}}function i(v,O,H,I,k,G,W,y,X,F,ba,la,sa){j.beginPath();j.moveTo(O,H);j.lineTo(I,k);j.lineTo(G,W);j.closePath();I-=O;k-=H;G-=O;W-=H;F-=y;ba-=X;la-=y;sa-=X;var ta=1/(F*sa-la*ba),Ba=(sa*I-ba* -G)*ta;ba=(sa*k-ba*W)*ta;I=(F*G-la*I)*ta;k=(F*W-la*k)*ta;O=O-Ba*y-I*X;H=H-ba*y-k*X;j.save();j.transform(Ba,ba,I,k,O,H);j.clip();j.drawImage(v,0,0);j.restore()}function n(v){if(U!=v)j.globalAlpha=U=v}function r(v){if(C!=v){switch(v){case THREE.NormalBlending:j.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:j.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:j.globalCompositeOperation="darker"}C=v}}function e(v){if(B!=v)j.lineWidth=B=v}function g(v){if(S!= -v)j.strokeStyle=S=v}function m(v){if(E!=v)j.fillStyle=E=v}function h(v,O,H,I){ja[0]=v[0];ja[1]=v[1];ja[2]=v[2];ja[4]=O[0];ja[5]=O[1];ja[6]=O[2];ja[8]=H[0];ja[9]=H[1];ja[10]=H[2];ja[12]=I[0];ja[13]=I[1];ja[14]=I[2];Ca.putImageData(Ma,0,0);Ha.drawImage(Da,0,0);return Ea}function l(v){return v<0?Math.min((1+v)*0.5,0.5):0.5+Math.min(v*0.5,0.5)}function q(v,O){var H=O.x-v.x,I=O.y-v.y,k=1/Math.sqrt(H*H+I*I);H*=k;I*=k;O.x+=H;O.y+=I;v.x-=H;v.y-=I}var o=null,s=new THREE.Projector,A=document.createElement("canvas"), -J,N,p,t,j=A.getContext("2d"),U=1,C=0,S=null,E=null,B=1,L,w,D,Q,fa=new THREE.Vertex,z=new THREE.Vertex,M,K,T,x,u,R,ha,P,Y,xa,Ka,La,va,wa,ma,Ga,pa,qa,ra,ea,na,oa,ya=new THREE.Rectangle,ua=new THREE.Rectangle,$=new THREE.Rectangle,Fa=false,V=new THREE.Color(16777215),aa=new THREE.Color(16777215),ga=new THREE.Color(0),za=new THREE.Color(0),Aa=new THREE.Color(0),Qa=Math.PI*2,Ja=new THREE.Vector3,ca=new THREE.UV,Z=new THREE.UV,da=new THREE.UV,ia=new THREE.UV,Da,Ca,Ma,ja,Ea,Ha,ka=16;Da=document.createElement("canvas"); -Da.width=Da.height=2;Ca=Da.getContext("2d");Ca.fillStyle="rgba(0,0,0,1)";Ca.fillRect(0,0,2,2);Ma=Ca.getImageData(0,0,2,2);ja=Ma.data;Ea=document.createElement("canvas");Ea.width=Ea.height=ka;Ha=Ea.getContext("2d");Ha.translate(-ka/2,-ka/2);Ha.scale(ka,ka);ka--;this.domElement=A;this.autoClear=true;this.setSize=function(v,O){J=v;N=O;p=J/2;t=N/2;A.width=J;A.height=N;j.lineJoin="round";j.lineCap="round";ya.set(-p,-t,p,t)};this.clear=function(){if(!ua.isEmpty()){ua.inflate(1);ua.minSelf(ya);j.setTransform(1, -0,0,-1,p,t);j.clearRect(ua.getX(),ua.getY(),ua.getWidth(),ua.getHeight());ua.empty()}};this.render=function(v,O){var H,I,k,G,W,y,X,F;this.autoClear&&this.clear();o=s.projectScene(v,O);j.setTransform(1,0,0,-1,p,t);if(Fa=v.lights.length>0){W=v.lights;ga.setRGB(0,0,0);za.setRGB(0,0,0);Aa.setRGB(0,0,0);H=0;for(I=W.length;H0){K.r+=u.color.r*R;K.g+=u.color.g*R;K.b+=u.color.b*R}}else if(u instanceof THREE.PointLight){E.sub(u.position,M.centroidWorld);E.normalize();R=M.normalWorld.dot(E)*u.intensity;if(R>0){K.r+=u.color.r*R;K.g+=u.color.g*R;K.b+=u.color.b*R}}}}function c(z,M,K,T,x,u){w=b(D++);w.setAttribute("d","M "+z.positionScreen.x+ -" "+z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+"z");if(x instanceof THREE.MeshBasicMaterial)p.__styleString=x.color.__styleString;else if(x instanceof THREE.MeshLambertMaterial)if(N){t.r=j.r;t.g=j.g;t.b=j.b;a(u,T,t);p.r=x.color.r*t.r;p.g=x.color.g*t.g;p.b=x.color.b*t.b;p.updateStyleString()}else p.__styleString=x.color.__styleString;else if(x instanceof THREE.MeshDepthMaterial){S=1-x.__2near/(x.__farPlusNear-T.z*x.__farMinusNear); -p.setRGB(S,S,S)}else x instanceof THREE.MeshNormalMaterial&&p.setRGB(d(T.normalWorld.x),d(T.normalWorld.y),d(T.normalWorld.z));x.wireframe?w.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+x.wireframe_linewidth+"; stroke-opacity: "+x.opacity+"; stroke-linecap: round; stroke-linejoin: round"):w.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+x.opacity);r.appendChild(w)}function f(z,M,K,T,x,u,R){w=b(D++);w.setAttribute("d","M "+z.positionScreen.x+" "+ -z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+" L "+T.positionScreen.x+","+T.positionScreen.y+"z");if(u instanceof THREE.MeshBasicMaterial)p.__styleString=u.color.__styleString;else if(u instanceof THREE.MeshLambertMaterial)if(N){t.r=j.r;t.g=j.g;t.b=j.b;a(R,x,t);p.r=u.color.r*t.r;p.g=u.color.g*t.g;p.b=u.color.b*t.b;p.updateStyleString()}else p.__styleString=u.color.__styleString;else if(u instanceof THREE.MeshDepthMaterial){S=1- -u.__2near/(u.__farPlusNear-x.z*u.__farMinusNear);p.setRGB(S,S,S)}else u instanceof THREE.MeshNormalMaterial&&p.setRGB(d(x.normalWorld.x),d(x.normalWorld.y),d(x.normalWorld.z));u.wireframe?w.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+u.wireframe_linewidth+"; stroke-opacity: "+u.opacity+"; stroke-linecap: round; stroke-linejoin: round"):w.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+u.opacity);r.appendChild(w)}function b(z){if(B[z]==null){B[z]= -document.createElementNS("http://www.w3.org/2000/svg","path");fa==0&&B[z].setAttribute("shape-rendering","crispEdges");return B[z]}return B[z]}function d(z){return z<0?Math.min((1+z)*0.5,0.5):0.5+Math.min(z*0.5,0.5)}var i=null,n=new THREE.Projector,r=document.createElementNS("http://www.w3.org/2000/svg","svg"),e,g,m,h,l,q,o,s,A=new THREE.Rectangle,J=new THREE.Rectangle,N=false,p=new THREE.Color(16777215),t=new THREE.Color(16777215),j=new THREE.Color(0),U=new THREE.Color(0),C=new THREE.Color(0),S, -E=new THREE.Vector3,B=[],L=[],w,D,Q,fa=1;this.domElement=r;this.autoClear=true;this.setQuality=function(z){switch(z){case "high":fa=1;break;case "low":fa=0}};this.setSize=function(z,M){e=z;g=M;m=e/2;h=g/2;r.setAttribute("viewBox",-m+" "+-h+" "+e+" "+g);r.setAttribute("width",e);r.setAttribute("height",g);A.set(-m,-h,m,h)};this.clear=function(){for(;r.childNodes.length>0;)r.removeChild(r.childNodes[0])};this.render=function(z,M){var K,T,x,u,R,ha,P,Y;this.autoClear&&this.clear();i=n.projectScene(z, -M);Q=D=0;if(N=z.lights.length>0){P=z.lights;j.setRGB(0,0,0);U.setRGB(0,0,0);C.setRGB(0,0,0);K=0;for(T=P.length;K= 0.0 )": -"",g?"pointSpecularWeight = pow( pointDotNormalHalf, mShininess );":"",g?"pointDiffuse += mColor * pointDiffuseWeight;":"",g?"pointSpecular += mSpecular * pointSpecularWeight;":"",g?"}":"",e?"vec4 dirDiffuse = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"vec4 dirSpecular = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"vec3 dirVector = normalize( lDirection.xyz );":"",e?"vec3 dirHalfVector = normalize( lDirection.xyz + vViewPosition );": -"",e?"float dirDotNormalHalf = dot( normal, dirHalfVector );":"",e?"float dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );":"",e?"float dirSpecularWeight = 0.0;":"",e?"if ( dirDotNormalHalf >= 0.0 )":"",e?"dirSpecularWeight = pow( dirDotNormalHalf, mShininess );":"",e?"dirDiffuse += mColor * dirDiffuseWeight;":"",e?"dirSpecular += mSpecular * dirSpecularWeight;":"",e?"}":"","vec4 totalLight = mAmbient;",e?"totalLight += dirDiffuse + dirSpecular;":"",g?"totalLight += pointDiffuse + pointSpecular;": -"","if ( mixEnvMap ) {\ngl_FragColor = vec4( mix( mapColor.rgb * totalLight.xyz * vLightWeighting, cubeColor.rgb, mReflectivity ), mapColor.a );\n} else {\ngl_FragColor = vec4( mapColor.rgb * cubeColor.rgb * totalLight.xyz * vLightWeighting, mapColor.a );\n}\n} else if ( material == 1 ) {\nif ( mixEnvMap ) {\ngl_FragColor = vec4( mix( mColor.rgb * mapColor.rgb * vLightWeighting, cubeColor.rgb, mReflectivity ), mColor.a * mapColor.a );\n} else {\ngl_FragColor = vec4( mColor.rgb * mapColor.rgb * cubeColor.rgb * vLightWeighting, mColor.a * mapColor.a );\n}\n} else {\nif ( mixEnvMap ) {\ngl_FragColor = mix( mColor * mapColor, cubeColor, mReflectivity );\n} else {\ngl_FragColor = mColor * mapColor * cubeColor;\n}\n}\n}"].join("\n"))); -b.attachShader(d,c("vertex",[e?"#define MAX_DIR_LIGHTS "+e:"",g?"#define MAX_POINT_LIGHTS "+g:"","attribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\nuniform vec3 cameraPosition;\nuniform bool enableLighting;\nuniform bool useRefract;\nuniform int pointLightNumber;\nuniform int directionalLightNumber;\nuniform vec3 ambientLightColor;",e?"uniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];":"",e?"uniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];":"",g?"uniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];": -"",g?"uniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];":"","uniform mat4 objMatrix;\nuniform mat4 viewMatrix;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat3 normalMatrix;\nvarying vec3 vNormal;\nvarying vec2 vUv;\nvarying vec3 vLightWeighting;",g?"varying vec3 vPointLightVector[ MAX_POINT_LIGHTS ];":"","varying vec3 vViewPosition;\nvarying vec3 vReflect;\nuniform float mRefractionRatio;\nvoid main(void) {\nvec4 mPosition = objMatrix * vec4( position, 1.0 );\nvViewPosition = cameraPosition - mPosition.xyz;\nvec3 nWorld = mat3( objMatrix[0].xyz, objMatrix[1].xyz, objMatrix[2].xyz ) * normal;\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\nvec3 transformedNormal = normalize( normalMatrix * normal );\nif ( !enableLighting ) {\nvLightWeighting = vec3( 1.0, 1.0, 1.0 );\n} else {\nvLightWeighting = ambientLightColor;", -e?"for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"float directionalLightWeighting = max( dot( transformedNormal, normalize(lDirection.xyz ) ), 0.0 );":"",e?"vLightWeighting += directionalLightColor[ i ] * directionalLightWeighting;":"",e?"}":"",g?"for( int i = 0; i < MAX_POINT_LIGHTS; i++ ) {":"",g?"vec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );":"",g?"vPointLightVector[ i ] = normalize( lPosition.xyz - mvPosition.xyz );": -"",g?"float pointLightWeighting = max( dot( transformedNormal, vPointLightVector[ i ] ), 0.0 );":"",g?"vLightWeighting += pointLightColor[ i ] * pointLightWeighting;":"",g?"}":"","}\nvNormal = transformedNormal;\nvUv = uv;\nif ( useRefract ) {\nvReflect = refract( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz), mRefractionRatio );\n} else {\nvReflect = reflect( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz) );\n}\ngl_Position = projectionMatrix * mvPosition;\n}"].join("\n"))); -b.linkProgram(d);if(!b.getProgramParameter(d,b.LINK_STATUS)){alert("Could not initialise shaders");alert("VALIDATE_STATUS: "+b.getProgramParameter(d,b.VALIDATE_STATUS));alert(b.getError())}b.useProgram(d);d.viewMatrix=b.getUniformLocation(d,"viewMatrix");d.modelViewMatrix=b.getUniformLocation(d,"modelViewMatrix");d.projectionMatrix=b.getUniformLocation(d,"projectionMatrix");d.normalMatrix=b.getUniformLocation(d,"normalMatrix");d.objMatrix=b.getUniformLocation(d,"objMatrix");d.cameraPosition=b.getUniformLocation(d, -"cameraPosition");d.enableLighting=b.getUniformLocation(d,"enableLighting");d.ambientLightColor=b.getUniformLocation(d,"ambientLightColor");if(e){d.directionalLightNumber=b.getUniformLocation(d,"directionalLightNumber");d.directionalLightColor=b.getUniformLocation(d,"directionalLightColor");d.directionalLightDirection=b.getUniformLocation(d,"directionalLightDirection")}if(g){d.pointLightNumber=b.getUniformLocation(d,"pointLightNumber");d.pointLightColor=b.getUniformLocation(d,"pointLightColor");d.pointLightPosition= -b.getUniformLocation(d,"pointLightPosition")}d.material=b.getUniformLocation(d,"material");d.mColor=b.getUniformLocation(d,"mColor");d.mOpacity=b.getUniformLocation(d,"mOpacity");d.mReflectivity=b.getUniformLocation(d,"mReflectivity");d.mAmbient=b.getUniformLocation(d,"mAmbient");d.mSpecular=b.getUniformLocation(d,"mSpecular");d.mShininess=b.getUniformLocation(d,"mShininess");d.enableMap=b.getUniformLocation(d,"enableMap");b.uniform1i(d.enableMap,0);d.tMap=b.getUniformLocation(d,"tMap");b.uniform1i(d.tMap, -0);d.enableCubeMap=b.getUniformLocation(d,"enableCubeMap");b.uniform1i(d.enableCubeMap,0);d.tCube=b.getUniformLocation(d,"tCube");b.uniform1i(d.tCube,1);d.mixEnvMap=b.getUniformLocation(d,"mixEnvMap");b.uniform1i(d.mixEnvMap,0);d.mRefractionRatio=b.getUniformLocation(d,"mRefractionRatio");d.useRefract=b.getUniformLocation(d,"useRefract");b.uniform1i(d.useRefract,0);d.m2Near=b.getUniformLocation(d,"m2Near");d.mFarPlusNear=b.getUniformLocation(d,"mFarPlusNear");d.mFarMinusNear=b.getUniformLocation(d, -"mFarMinusNear");d.position=b.getAttribLocation(d,"position");b.enableVertexAttribArray(d.position);d.normal=b.getAttribLocation(d,"normal");b.enableVertexAttribArray(d.normal);d.uv=b.getAttribLocation(d,"uv");b.enableVertexAttribArray(d.uv);d.viewMatrixArray=new Float32Array(16);d.modelViewMatrixArray=new Float32Array(16);d.projectionMatrixArray=new Float32Array(16)})(a.directional,a.point);this.setSize=function(e,g){f.width=e;f.height=g;b.viewport(0,0,f.width,f.height)};this.clear=function(){b.clear(b.COLOR_BUFFER_BIT| -b.DEPTH_BUFFER_BIT)};this.setupLights=function(e){var g,m,h,l,q=[],o=[],s=[];l=[];var A=[];b.uniform1i(d.enableLighting,e.lights.length);g=0;for(m=e.lights.length;g>16&255)/255;this.g=(this.hex>>8&255)/255;this.b=(this.hex&255)/255},updateStyleString:function(){this.__styleString="rgb("+~~(this.r*255)+ +","+~~(this.g*255)+","+~~(this.b*255)+")"},toString:function(){return"THREE.Color ( r: "+this.r+", g: "+this.g+", b: "+this.b+", hex: "+this.hex+" )"}};THREE.Vector2=function(a,c){this.x=a||0;this.y=c||0}; +THREE.Vector2.prototype={set:function(a,c){this.x=a;this.y=c;return this},copy:function(a){this.x=a.x;this.y=a.y;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},unit:function(){this.multiplyScalar(1/this.length());return this},length:function(){return Math.sqrt(this.x* +this.x+this.y*this.y)},lengthSq:function(){return this.x*this.x+this.y*this.y},negate:function(){this.x=-this.x;this.y=-this.y;return this},clone:function(){return new THREE.Vector2(this.x,this.y)},toString:function(){return"THREE.Vector2 ("+this.x+", "+this.y+")"}};THREE.Vector3=function(a,c,f){this.x=a||0;this.y=c||0;this.z=f||0}; +THREE.Vector3.prototype={set:function(a,c,f){this.x=a;this.y=c;this.z=f;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;return this}, +cross:function(a,c){this.x=a.y*c.z-a.z*c.y;this.y=a.z*c.x-a.x*c.z;this.z=a.x*c.y-a.y*c.x;return this},crossSelf:function(a){var c=this.x,f=this.y,b=this.z;this.x=f*a.z-b*a.y;this.y=b*a.x-c*a.z;this.z=c*a.y-f*a.x;return this},multiplySelf:function(a){this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))}, +distanceToSquared:function(a){var c=this.x-a.x,f=this.y-a.y;a=this.z-a.z;return c*c+f*f+a*a},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},normalize:function(){this.length()>0?this.multiplyScalar(1/this.length()):this.multiplyScalar(0);return this},setLength:function(a){return this.normalize().multiplyScalar(a)},isZero:function(){return Math.abs(this.x)< +1.0E-4&&Math.abs(this.y)<1.0E-4&&Math.abs(this.z)<1.0E-4},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)},toString:function(){return"THREE.Vector3 ( "+this.x+", "+this.y+", "+this.z+" )"}};THREE.Vector4=function(a,c,f,b){this.x=a||0;this.y=c||0;this.z=f||0;this.w=b||1}; +THREE.Vector4.prototype={set:function(a,c,f,b){this.x=a;this.y=c;this.z=f;this.w=b;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=a.w||1;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;this.w=a.w+c.w;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;this.w=a.w-c.w;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w; +return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;this.w/=a;return this},lerpSelf:function(a,c){this.x+=(a.x-this.x)*c;this.y+=(a.y-this.y)*c;this.z+=(a.z-this.z)*c;this.w+=(a.w-this.w)*c},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},toString:function(){return"THREE.Vector4 ("+this.x+", "+this.y+", "+this.z+", "+this.w+")"}}; +THREE.Ray=function(a,c){this.origin=a||new THREE.Vector3;this.direction=c||new THREE.Vector3}; +THREE.Ray.prototype={intersectScene:function(a){var c,f,b=a.objects,d=[];a=0;for(c=b.length;a0&&A>0&&i+A<1}var f,b,d,j,o,r,e,g,n,h, +l,q=a.geometry,p=q.vertices,s=[];f=0;for(b=q.faces.length;f= +0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){r=true;d=b=f=c=0;a()};this.isEmpty=function(){return r};this.toString=function(){return"THREE.Rectangle ( left: "+c+", right: "+b+", top: "+f+", bottom: "+d+", width: "+j+", height: "+o+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; +THREE.Matrix4=function(){this._x=new THREE.Vector3;this._y=new THREE.Vector3;this._z=new THREE.Vector3}; +THREE.Matrix4.prototype={n11:1,n12:0,n13:0,n14:0,n21:0,n22:1,n23:0,n24:0,n31:0,n32:0,n33:1,n34:0,n41:0,n42:0,n43:0,n44:1,identity:function(){this.n11=1;this.n21=this.n14=this.n13=this.n12=0;this.n22=1;this.n32=this.n31=this.n24=this.n23=0;this.n33=1;this.n43=this.n42=this.n41=this.n34=0;this.n44=1},copy:function(a){this.n11=a.n11;this.n12=a.n12;this.n13=a.n13;this.n14=a.n14;this.n21=a.n21;this.n22=a.n22;this.n23=a.n23;this.n24=a.n24;this.n31=a.n31;this.n32=a.n32;this.n33=a.n33;this.n34=a.n34;this.n41= +a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,c,f){var b=this._x,d=this._y,j=this._z;j.sub(a,c);j.normalize();b.cross(f,j);b.normalize();d.cross(j,b);d.normalize();this.n11=b.x;this.n12=b.y;this.n13=b.z;this.n14=-b.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=j.x;this.n32=j.y;this.n33=j.z;this.n34=-j.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var c=a.x,f=a.y,b=a.z,d=a.w?a.w:1;a.x=this.n11*c+this.n12*f+this.n13*b+this.n14* +d;a.y=this.n21*c+this.n22*f+this.n23*b+this.n24*d;a.z=this.n31*c+this.n32*f+this.n33*b+this.n34*d;d=this.n41*c+this.n42*f+this.n43*b+this.n44*d;if(a.w)a.w=d;else{a.x/=d;a.y/=d;a.z/=d}return a},crossVector:function(a){var c=new THREE.Vector4;c.x=this.n11*a.x+this.n12*a.y+this.n13*a.z+this.n14*a.w;c.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;c.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+this.n34*a.w;c.w=a.w?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return c},multiply:function(a, +c){this.n11=a.n11*c.n11+a.n12*c.n21+a.n13*c.n31+a.n14*c.n41;this.n12=a.n11*c.n12+a.n12*c.n22+a.n13*c.n32+a.n14*c.n42;this.n13=a.n11*c.n13+a.n12*c.n23+a.n13*c.n33+a.n14*c.n43;this.n14=a.n11*c.n14+a.n12*c.n24+a.n13*c.n34+a.n14*c.n44;this.n21=a.n21*c.n11+a.n22*c.n21+a.n23*c.n31+a.n24*c.n41;this.n22=a.n21*c.n12+a.n22*c.n22+a.n23*c.n32+a.n24*c.n42;this.n23=a.n21*c.n13+a.n22*c.n23+a.n23*c.n33+a.n24*c.n43;this.n24=a.n21*c.n14+a.n22*c.n24+a.n23*c.n34+a.n24*c.n44;this.n31=a.n31*c.n11+a.n32*c.n21+a.n33*c.n31+ +a.n34*c.n41;this.n32=a.n31*c.n12+a.n32*c.n22+a.n33*c.n32+a.n34*c.n42;this.n33=a.n31*c.n13+a.n32*c.n23+a.n33*c.n33+a.n34*c.n43;this.n34=a.n31*c.n14+a.n32*c.n24+a.n33*c.n34+a.n34*c.n44;this.n41=a.n41*c.n11+a.n42*c.n21+a.n43*c.n31+a.n44*c.n41;this.n42=a.n41*c.n12+a.n42*c.n22+a.n43*c.n32+a.n44*c.n42;this.n43=a.n41*c.n13+a.n42*c.n23+a.n43*c.n33+a.n44*c.n43;this.n44=a.n41*c.n14+a.n42*c.n24+a.n43*c.n34+a.n44*c.n44},multiplySelf:function(a){var c=this.n11,f=this.n12,b=this.n13,d=this.n14,j=this.n21,o=this.n22, +r=this.n23,e=this.n24,g=this.n31,n=this.n32,h=this.n33,l=this.n34,q=this.n41,p=this.n42,s=this.n43,A=this.n44;this.n11=c*a.n11+f*a.n21+b*a.n31+d*a.n41;this.n12=c*a.n12+f*a.n22+b*a.n32+d*a.n42;this.n13=c*a.n13+f*a.n23+b*a.n33+d*a.n43;this.n14=c*a.n14+f*a.n24+b*a.n34+d*a.n44;this.n21=j*a.n11+o*a.n21+r*a.n31+e*a.n41;this.n22=j*a.n12+o*a.n22+r*a.n32+e*a.n42;this.n23=j*a.n13+o*a.n23+r*a.n33+e*a.n43;this.n24=j*a.n14+o*a.n24+r*a.n34+e*a.n44;this.n31=g*a.n11+n*a.n21+h*a.n31+l*a.n41;this.n32=g*a.n12+n*a.n22+ +h*a.n32+l*a.n42;this.n33=g*a.n13+n*a.n23+h*a.n33+l*a.n43;this.n34=g*a.n14+n*a.n24+h*a.n34+l*a.n44;this.n41=q*a.n11+p*a.n21+s*a.n31+A*a.n41;this.n42=q*a.n12+p*a.n22+s*a.n32+A*a.n42;this.n43=q*a.n13+p*a.n23+s*a.n33+A*a.n43;this.n44=q*a.n14+p*a.n24+s*a.n34+A*a.n44},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a},determinant:function(){return this.n14* +this.n23*this.n32*this.n41-this.n13*this.n24*this.n32*this.n41-this.n14*this.n22*this.n33*this.n41+this.n12*this.n24*this.n33*this.n41+this.n13*this.n22*this.n34*this.n41-this.n12*this.n23*this.n34*this.n41-this.n14*this.n23*this.n31*this.n42+this.n13*this.n24*this.n31*this.n42+this.n14*this.n21*this.n33*this.n42-this.n11*this.n24*this.n33*this.n42-this.n13*this.n21*this.n34*this.n42+this.n11*this.n23*this.n34*this.n42+this.n14*this.n22*this.n31*this.n43-this.n12*this.n24*this.n31*this.n43-this.n14* +this.n21*this.n32*this.n43+this.n11*this.n24*this.n32*this.n43+this.n12*this.n21*this.n34*this.n43-this.n11*this.n22*this.n34*this.n43-this.n13*this.n22*this.n31*this.n44+this.n12*this.n23*this.n31*this.n44+this.n13*this.n21*this.n32*this.n44-this.n11*this.n23*this.n32*this.n44-this.n12*this.n21*this.n33*this.n44+this.n11*this.n22*this.n33*this.n44},transpose:function(){function a(c,f,b){var d=c[f];c[f]=c[b];c[b]=d}a(this,"n21","n12");a(this,"n31","n13");a(this,"n32","n23");a(this,"n41","n14");a(this, +"n42","n24");a(this,"n43","n34");return this},clone:function(){var a=new THREE.Matrix4;a.n11=this.n11;a.n12=this.n12;a.n13=this.n13;a.n14=this.n14;a.n21=this.n21;a.n22=this.n22;a.n23=this.n23;a.n24=this.n24;a.n31=this.n31;a.n32=this.n32;a.n33=this.n33;a.n34=this.n34;a.n41=this.n41;a.n42=this.n42;a.n43=this.n43;a.n44=this.n44;return a},flatten:function(){return[this.n11,this.n21,this.n31,this.n41,this.n12,this.n22,this.n32,this.n42,this.n13,this.n23,this.n33,this.n43,this.n14,this.n24,this.n34,this.n44]}, +toString:function(){return"| "+this.n11+" "+this.n12+" "+this.n13+" "+this.n14+" |\n| "+this.n21+" "+this.n22+" "+this.n23+" "+this.n24+" |\n| "+this.n31+" "+this.n32+" "+this.n33+" "+this.n34+" |\n| "+this.n41+" "+this.n42+" "+this.n43+" "+this.n44+" |"}};THREE.Matrix4.translationMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n14=a;b.n24=c;b.n34=f;return b};THREE.Matrix4.scaleMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n11=a;b.n22=c;b.n33=f;return b}; +THREE.Matrix4.rotationXMatrix=function(a){var c=new THREE.Matrix4;c.n22=c.n33=Math.cos(a);c.n32=Math.sin(a);c.n23=-c.n32;return c};THREE.Matrix4.rotationYMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n33=Math.cos(a);c.n13=Math.sin(a);c.n31=-c.n13;return c};THREE.Matrix4.rotationZMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n22=Math.cos(a);c.n21=Math.sin(a);c.n12=-c.n21;return c}; +THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var f=new THREE.Matrix4,b=Math.cos(c),d=Math.sin(c),j=1-b,o=a.x,r=a.y,e=a.z;f.n11=j*o*o+b;f.n12=j*o*r-d*e;f.n13=j*o*e+d*r;f.n21=j*o*r+d*e;f.n22=j*r*r+b;f.n23=j*r*e-d*o;f.n31=j*o*e-d*r;f.n32=j*r*e+d*o;f.n33=j*e*e+b;return f}; +THREE.Matrix4.makeInvert=function(a){var c=new THREE.Matrix4;c.n11=a.n23*a.n34*a.n42-a.n24*a.n33*a.n42+a.n24*a.n32*a.n43-a.n22*a.n34*a.n43-a.n23*a.n32*a.n44+a.n22*a.n33*a.n44;c.n12=a.n14*a.n33*a.n42-a.n13*a.n34*a.n42-a.n14*a.n32*a.n43+a.n12*a.n34*a.n43+a.n13*a.n32*a.n44-a.n12*a.n33*a.n44;c.n13=a.n13*a.n24*a.n42-a.n14*a.n23*a.n42+a.n14*a.n22*a.n43-a.n12*a.n24*a.n43-a.n13*a.n22*a.n44+a.n12*a.n23*a.n44;c.n14=a.n14*a.n23*a.n32-a.n13*a.n24*a.n32-a.n14*a.n22*a.n33+a.n12*a.n24*a.n33+a.n13*a.n22*a.n34-a.n12* +a.n23*a.n34;c.n21=a.n24*a.n33*a.n41-a.n23*a.n34*a.n41-a.n24*a.n31*a.n43+a.n21*a.n34*a.n43+a.n23*a.n31*a.n44-a.n21*a.n33*a.n44;c.n22=a.n13*a.n34*a.n41-a.n14*a.n33*a.n41+a.n14*a.n31*a.n43-a.n11*a.n34*a.n43-a.n13*a.n31*a.n44+a.n11*a.n33*a.n44;c.n23=a.n14*a.n23*a.n41-a.n13*a.n24*a.n41-a.n14*a.n21*a.n43+a.n11*a.n24*a.n43+a.n13*a.n21*a.n44-a.n11*a.n23*a.n44;c.n24=a.n13*a.n24*a.n31-a.n14*a.n23*a.n31+a.n14*a.n21*a.n33-a.n11*a.n24*a.n33-a.n13*a.n21*a.n34+a.n11*a.n23*a.n34;c.n31=a.n22*a.n34*a.n41-a.n24*a.n32* +a.n41+a.n24*a.n31*a.n42-a.n21*a.n34*a.n42-a.n22*a.n31*a.n44+a.n21*a.n32*a.n44;c.n32=a.n14*a.n32*a.n41-a.n12*a.n34*a.n41-a.n14*a.n31*a.n42+a.n11*a.n34*a.n42+a.n12*a.n31*a.n44-a.n11*a.n32*a.n44;c.n33=a.n13*a.n24*a.n41-a.n14*a.n22*a.n41+a.n14*a.n21*a.n42-a.n11*a.n24*a.n42-a.n12*a.n21*a.n44+a.n11*a.n22*a.n44;c.n34=a.n14*a.n22*a.n31-a.n12*a.n24*a.n31-a.n14*a.n21*a.n32+a.n11*a.n24*a.n32+a.n12*a.n21*a.n34-a.n11*a.n22*a.n34;c.n41=a.n23*a.n32*a.n41-a.n22*a.n33*a.n41-a.n23*a.n31*a.n42+a.n21*a.n33*a.n42+a.n22* +a.n31*a.n43-a.n21*a.n32*a.n43;c.n42=a.n12*a.n33*a.n41-a.n13*a.n32*a.n41+a.n13*a.n31*a.n42-a.n11*a.n33*a.n42-a.n12*a.n31*a.n43+a.n11*a.n32*a.n43;c.n43=a.n13*a.n22*a.n41-a.n12*a.n23*a.n41-a.n13*a.n21*a.n42+a.n11*a.n23*a.n42+a.n12*a.n21*a.n43-a.n11*a.n22*a.n43;c.n44=a.n12*a.n23*a.n31-a.n13*a.n22*a.n31+a.n13*a.n21*a.n32-a.n11*a.n23*a.n32-a.n12*a.n21*a.n33+a.n11*a.n22*a.n33;c.multiplyScalar(1/a.determinant());return c}; +THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=new THREE.Matrix3;var f=c[10]*c[5]-c[6]*c[9],b=-c[10]*c[1]+c[2]*c[9],d=c[6]*c[1]-c[2]*c[5],j=-c[10]*c[4]+c[6]*c[8],o=c[10]*c[0]-c[2]*c[8],r=-c[6]*c[0]+c[2]*c[4],e=c[9]*c[4]-c[5]*c[8],g=-c[9]*c[0]+c[1]*c[8],n=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*j+c[2]*e;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*b;a.m[2]=c*d;a.m[3]=c*j;a.m[4]=c*o;a.m[5]=c*r;a.m[6]=c*e;a.m[7]=c*g;a.m[8]=c*n;return a}; +THREE.Matrix4.makeFrustum=function(a,c,f,b,d,j){var o,r,e;o=new THREE.Matrix4;r=2*d/(c-a);e=2*d/(b-f);a=(c+a)/(c-a);f=(b+f)/(b-f);b=-(j+d)/(j-d);d=-2*j*d/(j-d);o.n11=r;o.n12=0;o.n13=a;o.n14=0;o.n21=0;o.n22=e;o.n23=f;o.n24=0;o.n31=0;o.n32=0;o.n33=b;o.n34=d;o.n41=0;o.n42=0;o.n43=-1;o.n44=0;return o};THREE.Matrix4.makePerspective=function(a,c,f,b){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*c,a*c,d,a,f,b)}; +THREE.Matrix4.makeOrtho=function(a,c,f,b,d,j){var o,r,e,g;o=new THREE.Matrix4;r=c-a;e=f-b;g=j-d;a=(c+a)/r;f=(f+b)/e;d=(j+d)/g;o.n11=2/r;o.n12=0;o.n13=0;o.n14=-a;o.n21=0;o.n22=2/e;o.n23=0;o.n24=-f;o.n31=0;o.n32=0;o.n33=-2/g;o.n34=-d;o.n41=0;o.n42=0;o.n43=0;o.n44=1;return o}; +THREE.Vertex=function(a,c){this.position=a||new THREE.Vector3;this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.normal=c||new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.normalScreen=new THREE.Vector3;this.__visible=true};THREE.Vertex.prototype={toString:function(){return"THREE.Vertex ( position: "+this.position+", normal: "+this.normal+" )"}}; +THREE.Face3=function(a,c,f,b,d){this.a=a;this.b=c;this.c=f;this.centroid=new THREE.Vector3;this.normal=b instanceof THREE.Vector3?b:new THREE.Vector3;this.vertexNormals=b instanceof Array?b:[];this.material=d instanceof Array?d:[d]};THREE.Face3.prototype={toString:function(){return"THREE.Face3 ( "+this.a+", "+this.b+", "+this.c+" )"}}; +THREE.Face4=function(a,c,f,b,d,j){this.a=a;this.b=c;this.c=f;this.d=b;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=j instanceof Array?j:[j]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,c){this.u=a||0;this.v=c||0}; +THREE.UV.prototype={copy:function(a){this.u=a.u;this.v=a.v},toString:function(){return"THREE.UV ("+this.u+", "+this.v+")"}};THREE.Geometry=function(){this.vertices=[];this.faces=[];this.uvs=[]}; +THREE.Geometry.prototype={computeCentroids:function(){var a,c,f;a=0;for(c=this.faces.length;a0){this.bbox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y,this.vertices[0].position.y],z:[this.vertices[0].position.z,this.vertices[0].position.z]};for(var a=1,c=this.vertices.length;a +this.bbox.x[1])this.bbox.x[1]=vertex.position.x;if(vertex.position.ythis.bbox.y[1])this.bbox.y[1]=vertex.position.y;if(vertex.position.zthis.bbox.z[1])this.bbox.z[1]=vertex.position.z}}},toString:function(){return"THREE.Geometry ( vertices: "+this.vertices+", faces: "+this.faces+" )"}}; +THREE.Camera=function(a,c,f,b){this.position=new THREE.Vector3(0,0,0);this.target={position:new THREE.Vector3(0,0,0)};this.up=new THREE.Vector3(0,1,0);this.matrix=new THREE.Matrix4;this.projectionMatrix=THREE.Matrix4.makePerspective(a,c,f,b);this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrix.lookAt(this.position,this.target.position,this.up)};this.toString=function(){return"THREE.Camera ( "+this.position+", "+this.target.position+" )"}}; +THREE.Light=function(a){this.color=new THREE.Color(-16777216|a)};THREE.AmbientLight=function(a){THREE.Light.call(this,a)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight;THREE.DirectionalLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,1,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight; +THREE.PointLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,0,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.PointLight; +THREE.Object3D=function(){this.position=new THREE.Vector3;this.rotation=new THREE.Vector3;this.scale=new THREE.Vector3(1,1,1);this.matrix=new THREE.Matrix4;this.matrixTranslation=new THREE.Matrix4;this.matrixRotation=new THREE.Matrix4;this.matrixScale=new THREE.Matrix4;this.screen=new THREE.Vector3;this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrixPosition=THREE.Matrix4.translationMatrix(this.position.x,this.position.y,this.position.z);this.matrixRotation=THREE.Matrix4.rotationXMatrix(this.rotation.x); +this.matrixRotation.multiplySelf(THREE.Matrix4.rotationYMatrix(this.rotation.y));this.matrixRotation.multiplySelf(THREE.Matrix4.rotationZMatrix(this.rotation.z));this.matrixScale=THREE.Matrix4.scaleMatrix(this.scale.x,this.scale.y,this.scale.z);this.matrix.copy(this.matrixPosition);this.matrix.multiplySelf(this.matrixRotation);this.matrix.multiplySelf(this.matrixScale)}};THREE.Particle=function(a){THREE.Object3D.call(this);this.material=a instanceof Array?a:[a];this.autoUpdateMatrix=false}; +THREE.Particle.prototype=new THREE.Object3D;THREE.Particle.prototype.constructor=THREE.Particle;THREE.Line=function(a,c){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c]};THREE.Line.prototype=new THREE.Object3D;THREE.Line.prototype.constructor=THREE.Line; +THREE.Mesh=function(a,c,f){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c];this.overdraw=this.doubleSided=this.flipSided=false;this.materialFaceGroup={};this.sortFacesByMaterial();f&&this.normalizeUVs();this.geometry.computeBoundingBox()};THREE.Mesh.prototype=new THREE.Object3D;THREE.Mesh.prototype.constructor=THREE.Mesh; +THREE.Mesh.prototype.sortFacesByMaterial=function(){function a(n){var h=[];c=0;for(f=n.length;c65535){g[r].counter+=1;e=g[r].hash+"_"+g[r].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:o,vertices:0}}this.materialFaceGroup[e].faces.push(b);this.materialFaceGroup[e].vertices+=j}};THREE.Mesh.prototype.normalizeUVs=function(){var a,c,f,b,d;a=0;for(c=this.geometry.uvs.length;acolor: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
linewidth: "+ +this.linewidth+"
)"}}; +THREE.MeshBasicMaterial=function(a){this.id=THREE.MeshBasicMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!== +undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshBasicMaterial (
id: "+ +this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
)"}};THREE.MeshBasicMaterialCounter={value:0}; +THREE.MeshLambertMaterial=function(a){this.id=THREE.MeshLambertMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!== +undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshLambertMaterial (
id: "+ +this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
shading: "+this.shading+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_size: "+this.wireframe_linewidth+"
)"}};THREE.MeshLambertMaterialCounter={value:0}; +THREE.MeshPhongMaterial=function(a){this.id=THREE.MeshPhongMaterialCounter.value++;this.color=new THREE.Color(15658734);this.ambient=new THREE.Color(328965);this.specular=new THREE.Color(1118481);this.shininess=30;this.env_map=this.specular_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){if(a.color!==undefined)this.color= +new THREE.Color(a.color);if(a.ambient!==undefined)this.ambient=new THREE.Color(a.ambient);if(a.specular!==undefined)this.specular=new THREE.Color(a.specular);if(a.shininess!==undefined)this.shininess=a.shininess;if(a.map!==undefined)this.map=a.map;if(a.specular_map!==undefined)this.specular_map=a.specular_map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!==undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio= +a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshPhongMaterial (
id: "+this.id+"
color: "+this.color+"
ambient: "+this.ambient+"
specular: "+this.specular+"
shininess: "+this.shininess+ +"
map: "+this.map+"
specular_map: "+this.specular_map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
shading: "+this.shading+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
"+ +")"}};THREE.MeshPhongMaterialCounter={value:0}; +THREE.MeshDepthMaterial=function(a){this.near=1;this.far=1E3;this.opacity=1;this.blending=THREE.NormalBlending;if(a){if(a.near!==undefined)this.near=a.near;if(a.far!==undefined)this.far=a.far;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.__2near=2*this.near;this.__farPlusNear=this.far+this.near;this.__farMinusNear=this.far-this.near;this.toString=function(){return"THREE.MeshDepthMaterial"}}; +THREE.MeshNormalMaterial=function(a){this.opacity=1;this.shading=THREE.FlatShading;this.blending=THREE.NormalBlending;if(a){if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.MeshNormalMaterial"}};THREE.MeshFaceMaterial=function(){this.toString=function(){return"THREE.MeshFaceMaterial"}}; +THREE.MeshCubeMaterial=function(a){this.id=THREE.MeshCubeMaterial.value++;this.env_map=null;this.blending=THREE.NormalBlending;if(a)if(a.env_map!==undefined)this.env_map=a.env_map;this.toString=function(){return"THREE.MeshCubeMaterial( id: "+this.id+"
env_map: "+this.env_map+" )"}};THREE.MeshCubeMaterialCounter={value:0}; +THREE.ParticleBasicMaterial=function(a){this.color=new THREE.Color(16711680);this.map=null;this.opacity=1;this.blending=THREE.NormalBlending;this.offset=new THREE.Vector2;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleBasicMaterial (
color: "+this.color+"
map: "+this.map+"
opacity: "+this.opacity+"
blending: "+ +this.blending+"
)"}};THREE.ParticleCircleMaterial=function(a){this.color=new THREE.Color(16711680);this.opacity=1;this.blending=THREE.NormalBlending;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleCircleMaterial (
color: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
)"}}; +THREE.ParticleDOMMaterial=function(a){this.domElement=a;this.toString=function(){return"THREE.ParticleDOMMaterial ( domElement: "+this.domElement+" )"}};THREE.Texture=function(a,c){this.image=a;this.mapping=c!==undefined?c:THREE.UVMapping;this.toString=function(){return"THREE.Texture (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.UVMapping=0;THREE.ReflectionMap=1;THREE.RefractionMap=2;THREE.Multiply=0;THREE.Mix=1; +THREE.TextureCube=function(a,c){this.image=a;this.mapping=c?c:THREE.ReflectionMap;this.toString=function(){return"THREE.TextureCube (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.loadImageArray=function(a){var c,f=[];for(c=f.loadCount=0;c=0&&P>=0&&M>=0&&x>=0)m=true;else if(i<0&&P<0||M<0&&x<0)m=false;else{if(i<0)m=Math.max(m,i/(i-P));else if(P<0)v=Math.min(v,i/(i-P));if(M<0)m=Math.max(m,M/(M-x));else if(x<0)v=Math.min(v,M/(M-x));if(v0&&t.z<1}E=x.geometry.faces;i=0;for(P=E.length;i< +P;i++){t=E[i];if(t instanceof THREE.Face3){X=S[t.a];D=S[t.b];L=S[t.c];if(X.__visible&&D.__visible&&L.__visible)if(x.doubleSided||x.flipSided!=(L.positionScreen.x-X.positionScreen.x)*(D.positionScreen.y-X.positionScreen.y)-(L.positionScreen.y-X.positionScreen.y)*(D.positionScreen.x-X.positionScreen.x)<0){f=d[b]=d[b]||new THREE.RenderableFace3;f.v1.positionScreen.copy(X.positionScreen);f.v2.positionScreen.copy(D.positionScreen);f.v3.positionScreen.copy(L.positionScreen);f.normalWorld.copy(t.normal); +x.matrixRotation.transform(f.normalWorld);f.centroidWorld.copy(t.centroid);J.transform(f.centroidWorld);f.centroidScreen.copy(f.centroidWorld);s.transform(f.centroidScreen);f.z=f.centroidScreen.z;f.meshMaterial=x.material;f.faceMaterial=t.material;f.overdraw=x.overdraw;f.uvs=x.geometry.uvs[i];f.color=t.color;c.push(f);b++}}else if(t instanceof THREE.Face4){X=S[t.a];D=S[t.b];L=S[t.c];K=S[t.d];if(X.__visible&&D.__visible&&L.__visible&&K.__visible)if(x.doubleSided||x.flipSided!=((K.positionScreen.x- +X.positionScreen.x)*(D.positionScreen.y-X.positionScreen.y)-(K.positionScreen.y-X.positionScreen.y)*(D.positionScreen.x-X.positionScreen.x)<0||(D.positionScreen.x-L.positionScreen.x)*(K.positionScreen.y-L.positionScreen.y)-(D.positionScreen.y-L.positionScreen.y)*(K.positionScreen.x-L.positionScreen.x)<0)){j=r[o]=r[o]||new THREE.RenderableFace4;j.v1.positionScreen.copy(X.positionScreen);j.v2.positionScreen.copy(D.positionScreen);j.v3.positionScreen.copy(L.positionScreen);j.v4.positionScreen.copy(K.positionScreen); +j.normalWorld.copy(t.normal);x.matrixRotation.transform(j.normalWorld);j.centroidWorld.copy(t.centroid);J.transform(j.centroidWorld);j.centroidScreen.copy(j.centroidWorld);s.transform(j.centroidScreen);j.z=j.centroidScreen.z;j.meshMaterial=x.material;j.faceMaterial=t.material;j.overdraw=x.overdraw;j.uvs=x.geometry.uvs[i];j.color=t.color;c.push(j);o++}}}}else if(x instanceof THREE.Line){A.multiply(s,J);S=x.geometry.vertices;i=0;for(P=S.length;i0&&p.z<1){h=q[l]=q[l]||new THREE.RenderableParticle;h.x=p.x/p.w;h.y=p.y/p.w; +h.z=p.z;h.rotation=x.rotation.z;h.scale.x=x.scale.x*Math.abs(h.x-(p.x+B.projectionMatrix.n11)/(p.w+B.projectionMatrix.n14));h.scale.y=x.scale.y*Math.abs(h.y-(p.y+B.projectionMatrix.n22)/(p.w+B.projectionMatrix.n24));h.material=x.material;c.push(h);l++}}}c.sort(function(R,y){return y.z-R.z});return c};this.unprojectVector=function(C,B){var m=new THREE.Matrix4;m.multiply(THREE.Matrix4.makeInvert(B.matrix),THREE.Matrix4.makeInvert(B.projectionMatrix));m.transform(C);return C}}; +THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,c=new THREE.Projector,f,b,d,j;this.domElement=document.createElement("div");this.setSize=function(o,r){f=o;b=r;d=f/2;j=b/2};this.render=function(o,r){var e,g,n,h,l,q,p,s;a=c.projectScene(o,r);e=0;for(g=a.length;e0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}else if(k instanceof THREE.PointLight){Ja.sub(k.position,N.centroidWorld);Ja.normalize();k=N.normalWorld.dot(Ja)*k.intensity;if(k>0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}}}function c(w,N,H,I,k,G){if(k.opacity!=0){o(k.opacity);r(k.blending);L=w.positionScreen.x; +K=w.positionScreen.y;R=N.positionScreen.x;y=N.positionScreen.y;u=H.positionScreen.x;Q=H.positionScreen.y;if(k.map){fa=k.map.image;na=fa.width-1;oa=fa.height-1;da.u=I.uvs[0].u*na;da.v=I.uvs[0].v*oa;Z.u=I.uvs[1].u*na;Z.v=I.uvs[1].v*oa;ea.u=I.uvs[2].u*na;ea.v=I.uvs[2].v*oa;j(fa,L,K,R,y,u,Q,da.u,da.v,Z.u,Z.v,ea.u,ea.v)}else if(k instanceof THREE.MeshBasicMaterial)b(L,K,R,y,u,Q,k.color,k.wireframe,k.wireframe_linewidth);else if(k instanceof THREE.MeshLambertMaterial){if(Fa){ba.r=ga.r;ba.g=ga.g;ba.b=ga.b; +a(G,I,ba);T.r=k.color.r*ba.r;T.g=k.color.g*ba.g;T.b=k.color.b*ba.b;T.updateStyleString()}else T.__styleString=k.color.__styleString;b(L,K,R,y,u,Q,T,k.wireframe,k.wireframe_linewidth)}else if(k instanceof THREE.MeshDepthMaterial){pa=k.__2near;qa=k.__farPlusNear;ra=k.__farMinusNear;va=~~((1-pa/(qa-w.positionScreen.z*ra))*255);wa=~~((1-pa/(qa-N.positionScreen.z*ra))*255);ma=~~((1-pa/(qa-H.positionScreen.z*ra))*255);fa=h([va,va,va],[wa,wa,wa],[ma,ma,ma],[ma,ma,ma]);da.u=0;da.v=0;Z.u=ka;Z.v=0;ea.u=0;ea.v= +ka;j(fa,L,K,R,y,u,Q,da.u,da.v,Z.u,Z.v,ea.u,ea.v)}else if(k instanceof THREE.MeshNormalMaterial){T.r=l(I.normalWorld.x);T.g=l(I.normalWorld.y);T.b=l(I.normalWorld.z);T.updateStyleString();b(L,K,R,y,u,Q,T,k.wireframe,k.wireframe_linewidth)}}}function f(w,N,H,I,k,G,U,z,W){if(z.opacity!=0){o(z.opacity);r(z.blending);L=w.positionScreen.x;K=w.positionScreen.y;R=N.positionScreen.x;y=N.positionScreen.y;u=H.positionScreen.x;Q=H.positionScreen.y;ha=I.positionScreen.x;O=I.positionScreen.y;Y=k.positionScreen.x; +xa=k.positionScreen.y;Ka=G.positionScreen.x;La=G.positionScreen.y;if(z.map){fa=z.map.image;na=fa.width-1;oa=fa.height-1;da.copy(U.uvs[0]);Z.copy(U.uvs[1]);ea.copy(U.uvs[2]);ia.copy(U.uvs[3]);da.u*=na;da.v*=oa;Z.u*=na;Z.v*=oa;ea.u*=na;ea.v*=oa;ia.u*=na;ia.v*=oa;j(fa,L,K,R,y,ha,O,da.u,da.v,Z.u,Z.v,ia.u,ia.v);j(fa,Y,xa,u,Q,Ka,La,Z.u,Z.v,ea.u,ea.v,ia.u,ia.v)}else if(z instanceof THREE.MeshBasicMaterial)d(L,K,R,y,u,Q,ha,O,z.color,z.wireframe,z.wireframe_linewidth);else if(z instanceof THREE.MeshLambertMaterial){if(Fa){ba.r= +ga.r;ba.g=ga.g;ba.b=ga.b;a(W,U,ba);T.r=z.color.r*ba.r;T.g=z.color.g*ba.g;T.b=z.color.b*ba.b;T.updateStyleString()}else T.__styleString=z.color.__styleString;d(L,K,R,y,u,Q,ha,O,T,z.wireframe,z.wireframe_linewidth)}else if(z instanceof THREE.MeshDepthMaterial){pa=z.__2near;qa=z.__farPlusNear;ra=z.__farMinusNear;va=~~((1-pa/(qa-w.positionScreen.z*ra))*255);wa=~~((1-pa/(qa-N.positionScreen.z*ra))*255);ma=~~((1-pa/(qa-H.positionScreen.z*ra))*255);Ga=~~((1-pa/(qa-I.positionScreen.z*ra))*255);fa=h([va,va, +va],[wa,wa,wa],[Ga,Ga,Ga],[ma,ma,ma]);da.u=0;da.v=0;Z.u=ka;Z.v=0;ea.u=ka;ea.v=ka;ia.u=0;ia.v=ka;j(fa,L,K,R,y,ha,O,da.u,da.v,Z.u,Z.v,ia.u,ia.v);j(fa,Y,xa,u,Q,Ka,La,Z.u,Z.v,ea.u,ea.v,ia.u,ia.v)}else if(z instanceof THREE.MeshNormalMaterial){T.r=l(U.normalWorld.x);T.g=l(U.normalWorld.y);T.b=l(U.normalWorld.z);T.updateStyleString();d(L,K,R,y,u,Q,ha,O,T,z.wireframe,z.wireframe_linewidth)}}}function b(w,N,H,I,k,G,U,z,W){i.beginPath();i.moveTo(w,N);i.lineTo(H,I);i.lineTo(k,G);i.lineTo(w,N);i.closePath(); +if(z){e(W);g(U.__styleString);i.stroke();$.inflate(W*2)}else{n(U.__styleString);i.fill()}}function d(w,N,H,I,k,G,U,z,W,F,ca){i.beginPath();i.moveTo(w,N);i.lineTo(H,I);i.lineTo(k,G);i.lineTo(U,z);i.lineTo(w,N);i.closePath();if(F){e(ca);g(W.__styleString);i.stroke();$.inflate(ca*2)}else{n(W.__styleString);i.fill()}}function j(w,N,H,I,k,G,U,z,W,F,ca,la,sa){i.beginPath();i.moveTo(N,H);i.lineTo(I,k);i.lineTo(G,U);i.closePath();I-=N;k-=H;G-=N;U-=H;F-=z;ca-=W;la-=z;sa-=W;var ta=1/(F*sa-la*ca),Ba=(sa*I-ca* +G)*ta;ca=(sa*k-ca*U)*ta;I=(F*G-la*I)*ta;k=(F*U-la*k)*ta;N=N-Ba*z-I*W;H=H-ca*z-k*W;i.save();i.transform(Ba,ca,I,k,N,H);i.clip();i.drawImage(w,0,0);i.restore()}function o(w){if(P!=w)i.globalAlpha=P=w}function r(w){if(M!=w){switch(w){case THREE.NormalBlending:i.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:i.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:i.globalCompositeOperation="darker"}M=w}}function e(w){if(S!=w)i.lineWidth=S=w}function g(w){if(x!= +w)i.strokeStyle=x=w}function n(w){if(J!=w)i.fillStyle=J=w}function h(w,N,H,I){ja[0]=w[0];ja[1]=w[1];ja[2]=w[2];ja[4]=N[0];ja[5]=N[1];ja[6]=N[2];ja[8]=H[0];ja[9]=H[1];ja[10]=H[2];ja[12]=I[0];ja[13]=I[1];ja[14]=I[2];Ca.putImageData(Ma,0,0);Ha.drawImage(Da,0,0);return Ea}function l(w){return w<0?Math.min((1+w)*0.5,0.5):0.5+Math.min(w*0.5,0.5)}function q(w,N){var H=N.x-w.x,I=N.y-w.y,k=1/Math.sqrt(H*H+I*I);H*=k;I*=k;N.x+=H;N.y+=I;w.x-=H;w.y-=I}var p=null,s=new THREE.Projector,A=document.createElement("canvas"), +C,B,m,v,i=A.getContext("2d"),P=1,M=0,x=null,J=null,S=1,E,t,V,aa,X=new THREE.Vertex,D=new THREE.Vertex,L,K,R,y,u,Q,ha,O,Y,xa,Ka,La,va,wa,ma,Ga,pa,qa,ra,fa,na,oa,ya=new THREE.Rectangle,ua=new THREE.Rectangle,$=new THREE.Rectangle,Fa=false,T=new THREE.Color(4294967295),ba=new THREE.Color(4294967295),ga=new THREE.Color(4278190080),za=new THREE.Color(4278190080),Aa=new THREE.Color(4278190080),Qa=Math.PI*2,Ja=new THREE.Vector3,da=new THREE.UV,Z=new THREE.UV,ea=new THREE.UV,ia=new THREE.UV,Da,Ca,Ma,ja,Ea, +Ha,ka=16;Da=document.createElement("canvas");Da.width=Da.height=2;Ca=Da.getContext("2d");Ca.fillStyle="rgba(0,0,0,1)";Ca.fillRect(0,0,2,2);Ma=Ca.getImageData(0,0,2,2);ja=Ma.data;Ea=document.createElement("canvas");Ea.width=Ea.height=ka;Ha=Ea.getContext("2d");Ha.translate(-ka/2,-ka/2);Ha.scale(ka,ka);ka--;this.domElement=A;this.autoClear=true;this.setSize=function(w,N){C=w;B=N;m=C/2;v=B/2;A.width=C;A.height=B;i.lineJoin="round";i.lineCap="round";ya.set(-m,-v,m,v)};this.clear=function(){if(!ua.isEmpty()){ua.inflate(1); +ua.minSelf(ya);i.setTransform(1,0,0,-1,m,v);i.clearRect(ua.getX(),ua.getY(),ua.getWidth(),ua.getHeight());ua.empty()}};this.render=function(w,N){var H,I,k,G,U,z,W,F;this.autoClear&&this.clear();p=s.projectScene(w,N);i.setTransform(1,0,0,-1,m,v);if(Fa=w.lights.length>0){U=w.lights;ga.setRGB(0,0,0);za.setRGB(0,0,0);Aa.setRGB(0,0,0);H=0;for(I=U.length;H0){K.r+=u.color.r*Q;K.g+=u.color.g*Q;K.b+=u.color.b*Q}}else if(u instanceof THREE.PointLight){J.sub(u.position,L.centroidWorld);J.normalize();Q=L.normalWorld.dot(J)*u.intensity;if(Q>0){K.r+=u.color.r*Q;K.g+=u.color.g*Q;K.b+=u.color.b*Q}}}}function c(D,L,K,R,y,u){t=b(V++);t.setAttribute("d","M "+D.positionScreen.x+ +" "+D.positionScreen.y+" L "+L.positionScreen.x+" "+L.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+"z");if(y instanceof THREE.MeshBasicMaterial)m.__styleString=y.color.__styleString;else if(y instanceof THREE.MeshLambertMaterial)if(B){v.r=i.r;v.g=i.g;v.b=i.b;a(u,R,v);m.r=y.color.r*v.r;m.g=y.color.g*v.g;m.b=y.color.b*v.b;m.updateStyleString()}else m.__styleString=y.color.__styleString;else if(y instanceof THREE.MeshDepthMaterial){x=1-y.__2near/(y.__farPlusNear-R.z*y.__farMinusNear); +m.setRGB(x,x,x)}else y instanceof THREE.MeshNormalMaterial&&m.setRGB(d(R.normalWorld.x),d(R.normalWorld.y),d(R.normalWorld.z));y.wireframe?t.setAttribute("style","fill: none; stroke: "+m.__styleString+"; stroke-width: "+y.wireframe_linewidth+"; stroke-opacity: "+y.opacity+"; stroke-linecap: round; stroke-linejoin: round"):t.setAttribute("style","fill: "+m.__styleString+"; fill-opacity: "+y.opacity);r.appendChild(t)}function f(D,L,K,R,y,u,Q){t=b(V++);t.setAttribute("d","M "+D.positionScreen.x+" "+ +D.positionScreen.y+" L "+L.positionScreen.x+" "+L.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+" L "+R.positionScreen.x+","+R.positionScreen.y+"z");if(u instanceof THREE.MeshBasicMaterial)m.__styleString=u.color.__styleString;else if(u instanceof THREE.MeshLambertMaterial)if(B){v.r=i.r;v.g=i.g;v.b=i.b;a(Q,y,v);m.r=u.color.r*v.r;m.g=u.color.g*v.g;m.b=u.color.b*v.b;m.updateStyleString()}else m.__styleString=u.color.__styleString;else if(u instanceof THREE.MeshDepthMaterial){x=1- +u.__2near/(u.__farPlusNear-y.z*u.__farMinusNear);m.setRGB(x,x,x)}else u instanceof THREE.MeshNormalMaterial&&m.setRGB(d(y.normalWorld.x),d(y.normalWorld.y),d(y.normalWorld.z));u.wireframe?t.setAttribute("style","fill: none; stroke: "+m.__styleString+"; stroke-width: "+u.wireframe_linewidth+"; stroke-opacity: "+u.opacity+"; stroke-linecap: round; stroke-linejoin: round"):t.setAttribute("style","fill: "+m.__styleString+"; fill-opacity: "+u.opacity);r.appendChild(t)}function b(D){if(S[D]==null){S[D]= +document.createElementNS("http://www.w3.org/2000/svg","path");X==0&&S[D].setAttribute("shape-rendering","crispEdges");return S[D]}return S[D]}function d(D){return D<0?Math.min((1+D)*0.5,0.5):0.5+Math.min(D*0.5,0.5)}var j=null,o=new THREE.Projector,r=document.createElementNS("http://www.w3.org/2000/svg","svg"),e,g,n,h,l,q,p,s,A=new THREE.Rectangle,C=new THREE.Rectangle,B=false,m=new THREE.Color(4294967295),v=new THREE.Color(4294967295),i=new THREE.Color(4278190080),P=new THREE.Color(4278190080),M= +new THREE.Color(4278190080),x,J=new THREE.Vector3,S=[],E=[],t,V,aa,X=1;this.domElement=r;this.autoClear=true;this.setQuality=function(D){switch(D){case "high":X=1;break;case "low":X=0}};this.setSize=function(D,L){e=D;g=L;n=e/2;h=g/2;r.setAttribute("viewBox",-n+" "+-h+" "+e+" "+g);r.setAttribute("width",e);r.setAttribute("height",g);A.set(-n,-h,n,h)};this.clear=function(){for(;r.childNodes.length>0;)r.removeChild(r.childNodes[0])};this.render=function(D,L){var K,R,y,u,Q,ha,O,Y;this.autoClear&&this.clear(); +j=o.projectScene(D,L);aa=V=0;if(B=D.lights.length>0){O=D.lights;i.setRGB(0,0,0);P.setRGB(0,0,0);M.setRGB(0,0,0);K=0;for(R=O.length;K= 0.0 )": +"",g?"pointSpecularWeight = pow( pointDotNormalHalf, mShininess );":"",g?"pointDiffuse += mColor * pointDiffuseWeight;":"",g?"pointSpecular += mSpecular * pointSpecularWeight;":"",g?"}":"",e?"vec4 dirDiffuse = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"vec4 dirSpecular = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"vec3 dirVector = normalize( lDirection.xyz );":"",e?"vec3 dirHalfVector = normalize( lDirection.xyz + vViewPosition );": +"",e?"float dirDotNormalHalf = dot( normal, dirHalfVector );":"",e?"float dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );":"",e?"float dirSpecularWeight = 0.0;":"",e?"if ( dirDotNormalHalf >= 0.0 )":"",e?"dirSpecularWeight = pow( dirDotNormalHalf, mShininess );":"",e?"dirDiffuse += mColor * dirDiffuseWeight;":"",e?"dirSpecular += mSpecular * dirSpecularWeight;":"",e?"}":"","vec4 totalLight = mAmbient;",e?"totalLight += dirDiffuse + dirSpecular;":"",g?"totalLight += pointDiffuse + pointSpecular;": +"","if ( mixEnvMap ) {\ngl_FragColor = vec4( mix( mapColor.rgb * totalLight.xyz * vLightWeighting, cubeColor.rgb, mReflectivity ), mapColor.a );\n} else {\ngl_FragColor = vec4( mapColor.rgb * cubeColor.rgb * totalLight.xyz * vLightWeighting, mapColor.a );\n}\n} else if ( material == 1 ) {\nif ( mixEnvMap ) {\ngl_FragColor = vec4( mix( mColor.rgb * mapColor.rgb * vLightWeighting, cubeColor.rgb, mReflectivity ), mColor.a * mapColor.a );\n} else {\ngl_FragColor = vec4( mColor.rgb * mapColor.rgb * cubeColor.rgb * vLightWeighting, mColor.a * mapColor.a );\n}\n} else {\nif ( mixEnvMap ) {\ngl_FragColor = mix( mColor * mapColor, cubeColor, mReflectivity );\n} else {\ngl_FragColor = mColor * mapColor * cubeColor;\n}\n}\n}"].join("\n"))); +b.attachShader(d,c("vertex",[e?"#define MAX_DIR_LIGHTS "+e:"",g?"#define MAX_POINT_LIGHTS "+g:"","attribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\nuniform vec3 cameraPosition;\nuniform bool enableLighting;\nuniform bool useRefract;\nuniform int pointLightNumber;\nuniform int directionalLightNumber;\nuniform vec3 ambientLightColor;",e?"uniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];":"",e?"uniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];":"",g?"uniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];": +"",g?"uniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];":"","uniform mat4 objMatrix;\nuniform mat4 viewMatrix;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat3 normalMatrix;\nvarying vec3 vNormal;\nvarying vec2 vUv;\nvarying vec3 vLightWeighting;",g?"varying vec3 vPointLightVector[ MAX_POINT_LIGHTS ];":"","varying vec3 vViewPosition;\nvarying vec3 vReflect;\nuniform float mRefractionRatio;\nvoid main(void) {\nvec4 mPosition = objMatrix * vec4( position, 1.0 );\nvViewPosition = cameraPosition - mPosition.xyz;\nvec3 nWorld = mat3( objMatrix[0].xyz, objMatrix[1].xyz, objMatrix[2].xyz ) * normal;\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\nvec3 transformedNormal = normalize( normalMatrix * normal );\nif ( !enableLighting ) {\nvLightWeighting = vec3( 1.0, 1.0, 1.0 );\n} else {\nvLightWeighting = ambientLightColor;", +e?"for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"float directionalLightWeighting = max( dot( transformedNormal, normalize(lDirection.xyz ) ), 0.0 );":"",e?"vLightWeighting += directionalLightColor[ i ] * directionalLightWeighting;":"",e?"}":"",g?"for( int i = 0; i < MAX_POINT_LIGHTS; i++ ) {":"",g?"vec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );":"",g?"vPointLightVector[ i ] = normalize( lPosition.xyz - mvPosition.xyz );": +"",g?"float pointLightWeighting = max( dot( transformedNormal, vPointLightVector[ i ] ), 0.0 );":"",g?"vLightWeighting += pointLightColor[ i ] * pointLightWeighting;":"",g?"}":"","}\nvNormal = transformedNormal;\nvUv = uv;\nif ( useRefract ) {\nvReflect = refract( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz), mRefractionRatio );\n} else {\nvReflect = reflect( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz) );\n}\ngl_Position = projectionMatrix * mvPosition;\n}"].join("\n"))); +b.linkProgram(d);if(!b.getProgramParameter(d,b.LINK_STATUS)){alert("Could not initialise shaders");alert("VALIDATE_STATUS: "+b.getProgramParameter(d,b.VALIDATE_STATUS));alert(b.getError())}b.useProgram(d);d.viewMatrix=b.getUniformLocation(d,"viewMatrix");d.modelViewMatrix=b.getUniformLocation(d,"modelViewMatrix");d.projectionMatrix=b.getUniformLocation(d,"projectionMatrix");d.normalMatrix=b.getUniformLocation(d,"normalMatrix");d.objMatrix=b.getUniformLocation(d,"objMatrix");d.cameraPosition=b.getUniformLocation(d, +"cameraPosition");d.enableLighting=b.getUniformLocation(d,"enableLighting");d.ambientLightColor=b.getUniformLocation(d,"ambientLightColor");if(e){d.directionalLightNumber=b.getUniformLocation(d,"directionalLightNumber");d.directionalLightColor=b.getUniformLocation(d,"directionalLightColor");d.directionalLightDirection=b.getUniformLocation(d,"directionalLightDirection")}if(g){d.pointLightNumber=b.getUniformLocation(d,"pointLightNumber");d.pointLightColor=b.getUniformLocation(d,"pointLightColor");d.pointLightPosition= +b.getUniformLocation(d,"pointLightPosition")}d.material=b.getUniformLocation(d,"material");d.mColor=b.getUniformLocation(d,"mColor");d.mOpacity=b.getUniformLocation(d,"mOpacity");d.mReflectivity=b.getUniformLocation(d,"mReflectivity");d.mAmbient=b.getUniformLocation(d,"mAmbient");d.mSpecular=b.getUniformLocation(d,"mSpecular");d.mShininess=b.getUniformLocation(d,"mShininess");d.enableMap=b.getUniformLocation(d,"enableMap");b.uniform1i(d.enableMap,0);d.tMap=b.getUniformLocation(d,"tMap");b.uniform1i(d.tMap, +0);d.enableCubeMap=b.getUniformLocation(d,"enableCubeMap");b.uniform1i(d.enableCubeMap,0);d.tCube=b.getUniformLocation(d,"tCube");b.uniform1i(d.tCube,1);d.mixEnvMap=b.getUniformLocation(d,"mixEnvMap");b.uniform1i(d.mixEnvMap,0);d.mRefractionRatio=b.getUniformLocation(d,"mRefractionRatio");d.useRefract=b.getUniformLocation(d,"useRefract");b.uniform1i(d.useRefract,0);d.m2Near=b.getUniformLocation(d,"m2Near");d.mFarPlusNear=b.getUniformLocation(d,"mFarPlusNear");d.mFarMinusNear=b.getUniformLocation(d, +"mFarMinusNear");d.position=b.getAttribLocation(d,"position");b.enableVertexAttribArray(d.position);d.normal=b.getAttribLocation(d,"normal");b.enableVertexAttribArray(d.normal);d.uv=b.getAttribLocation(d,"uv");b.enableVertexAttribArray(d.uv);d.viewMatrixArray=new Float32Array(16);d.modelViewMatrixArray=new Float32Array(16);d.projectionMatrixArray=new Float32Array(16)})(a.directional,a.point);this.setSize=function(e,g){f.width=e;f.height=g;b.viewport(0,0,f.width,f.height)};this.clear=function(){b.clear(b.COLOR_BUFFER_BIT| +b.DEPTH_BUFFER_BIT)};this.setupLights=function(e){var g,n,h,l,q=[],p=[],s=[];l=[];var A=[];b.uniform1i(d.enableLighting,e.lights.length);g=0;for(n=e.lights.length;g>16&255)/255;this.g=(this.hex>>8&255)/255;this.b=(this.hex&255)/255},updateStyleString:function(){this.__styleString="rgb("+~~(this.r*255)+ -","+~~(this.g*255)+","+~~(this.b*255)+")"},toString:function(){return"THREE.Color ( r: "+this.r+", g: "+this.g+", b: "+this.b+", hex: "+this.hex+" )"}};THREE.Vector2=function(a,c){this.x=a||0;this.y=c||0}; -THREE.Vector2.prototype={set:function(a,c){this.x=a;this.y=c;return this},copy:function(a){this.x=a.x;this.y=a.y;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},unit:function(){this.multiplyScalar(1/this.length());return this},length:function(){return Math.sqrt(this.x* -this.x+this.y*this.y)},lengthSq:function(){return this.x*this.x+this.y*this.y},negate:function(){this.x=-this.x;this.y=-this.y;return this},clone:function(){return new THREE.Vector2(this.x,this.y)},toString:function(){return"THREE.Vector2 ("+this.x+", "+this.y+")"}};THREE.Vector3=function(a,c,f){this.x=a||0;this.y=c||0;this.z=f||0}; -THREE.Vector3.prototype={set:function(a,c,f){this.x=a;this.y=c;this.z=f;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;return this}, -cross:function(a,c){this.x=a.y*c.z-a.z*c.y;this.y=a.z*c.x-a.x*c.z;this.z=a.x*c.y-a.y*c.x;return this},crossSelf:function(a){var c=this.x,f=this.y,b=this.z;this.x=f*a.z-b*a.y;this.y=b*a.x-c*a.z;this.z=c*a.y-f*a.x;return this},multiplySelf:function(a){this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))}, -distanceToSquared:function(a){var c=this.x-a.x,f=this.y-a.y;a=this.z-a.z;return c*c+f*f+a*a},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},normalize:function(){this.length()>0?this.multiplyScalar(1/this.length()):this.multiplyScalar(0);return this},setLength:function(a){return this.normalize().multiplyScalar(a)},isZero:function(){return Math.abs(this.x)< -1.0E-4&&Math.abs(this.y)<1.0E-4&&Math.abs(this.z)<1.0E-4},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)},toString:function(){return"THREE.Vector3 ( "+this.x+", "+this.y+", "+this.z+" )"}};THREE.Vector4=function(a,c,f,b){this.x=a||0;this.y=c||0;this.z=f||0;this.w=b||1}; -THREE.Vector4.prototype={set:function(a,c,f,b){this.x=a;this.y=c;this.z=f;this.w=b;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=a.w||1;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;this.w=a.w+c.w;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;this.w=a.w-c.w;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w; -return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;this.w/=a;return this},lerpSelf:function(a,c){this.x+=(a.x-this.x)*c;this.y+=(a.y-this.y)*c;this.z+=(a.z-this.z)*c;this.w+=(a.w-this.w)*c},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},toString:function(){return"THREE.Vector4 ("+this.x+", "+this.y+", "+this.z+", "+this.w+")"}}; -THREE.Ray=function(a,c){this.origin=a||new THREE.Vector3;this.direction=c||new THREE.Vector3}; -THREE.Ray.prototype={intersectScene:function(a){var c,f,b=a.objects,d=[];a=0;for(c=b.length;a0&&A>0&&i+A<1}var f,b,d,j,n,r,e,g,m,h, -l,q=a.geometry,o=q.vertices,s=[];f=0;for(b=q.faces.length;f= -0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){r=true;d=b=f=c=0;a()};this.isEmpty=function(){return r};this.toString=function(){return"THREE.Rectangle ( left: "+c+", right: "+b+", top: "+f+", bottom: "+d+", width: "+j+", height: "+n+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; -THREE.Matrix4=function(){this._x=new THREE.Vector3;this._y=new THREE.Vector3;this._z=new THREE.Vector3}; -THREE.Matrix4.prototype={n11:1,n12:0,n13:0,n14:0,n21:0,n22:1,n23:0,n24:0,n31:0,n32:0,n33:1,n34:0,n41:0,n42:0,n43:0,n44:1,identity:function(){this.n11=1;this.n21=this.n14=this.n13=this.n12=0;this.n22=1;this.n32=this.n31=this.n24=this.n23=0;this.n33=1;this.n43=this.n42=this.n41=this.n34=0;this.n44=1},copy:function(a){this.n11=a.n11;this.n12=a.n12;this.n13=a.n13;this.n14=a.n14;this.n21=a.n21;this.n22=a.n22;this.n23=a.n23;this.n24=a.n24;this.n31=a.n31;this.n32=a.n32;this.n33=a.n33;this.n34=a.n34;this.n41= -a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,c,f){var b=this._x,d=this._y,j=this._z;j.sub(a,c);j.normalize();b.cross(f,j);b.normalize();d.cross(j,b);d.normalize();this.n11=b.x;this.n12=b.y;this.n13=b.z;this.n14=-b.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=j.x;this.n32=j.y;this.n33=j.z;this.n34=-j.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var c=a.x,f=a.y,b=a.z,d=a.w?a.w:1;a.x=this.n11*c+this.n12*f+this.n13*b+this.n14* -d;a.y=this.n21*c+this.n22*f+this.n23*b+this.n24*d;a.z=this.n31*c+this.n32*f+this.n33*b+this.n34*d;d=this.n41*c+this.n42*f+this.n43*b+this.n44*d;if(a.w)a.w=d;else{a.x/=d;a.y/=d;a.z/=d}return a},crossVector:function(a){var c=new THREE.Vector4;c.x=this.n11*a.x+this.n12*a.y+this.n13*a.z+this.n14*a.w;c.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;c.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+this.n34*a.w;c.w=a.w?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return c},multiply:function(a, -c){this.n11=a.n11*c.n11+a.n12*c.n21+a.n13*c.n31+a.n14*c.n41;this.n12=a.n11*c.n12+a.n12*c.n22+a.n13*c.n32+a.n14*c.n42;this.n13=a.n11*c.n13+a.n12*c.n23+a.n13*c.n33+a.n14*c.n43;this.n14=a.n11*c.n14+a.n12*c.n24+a.n13*c.n34+a.n14*c.n44;this.n21=a.n21*c.n11+a.n22*c.n21+a.n23*c.n31+a.n24*c.n41;this.n22=a.n21*c.n12+a.n22*c.n22+a.n23*c.n32+a.n24*c.n42;this.n23=a.n21*c.n13+a.n22*c.n23+a.n23*c.n33+a.n24*c.n43;this.n24=a.n21*c.n14+a.n22*c.n24+a.n23*c.n34+a.n24*c.n44;this.n31=a.n31*c.n11+a.n32*c.n21+a.n33*c.n31+ -a.n34*c.n41;this.n32=a.n31*c.n12+a.n32*c.n22+a.n33*c.n32+a.n34*c.n42;this.n33=a.n31*c.n13+a.n32*c.n23+a.n33*c.n33+a.n34*c.n43;this.n34=a.n31*c.n14+a.n32*c.n24+a.n33*c.n34+a.n34*c.n44;this.n41=a.n41*c.n11+a.n42*c.n21+a.n43*c.n31+a.n44*c.n41;this.n42=a.n41*c.n12+a.n42*c.n22+a.n43*c.n32+a.n44*c.n42;this.n43=a.n41*c.n13+a.n42*c.n23+a.n43*c.n33+a.n44*c.n43;this.n44=a.n41*c.n14+a.n42*c.n24+a.n43*c.n34+a.n44*c.n44},multiplySelf:function(a){var c=this.n11,f=this.n12,b=this.n13,d=this.n14,j=this.n21,n=this.n22, -r=this.n23,e=this.n24,g=this.n31,m=this.n32,h=this.n33,l=this.n34,q=this.n41,o=this.n42,s=this.n43,A=this.n44;this.n11=c*a.n11+f*a.n21+b*a.n31+d*a.n41;this.n12=c*a.n12+f*a.n22+b*a.n32+d*a.n42;this.n13=c*a.n13+f*a.n23+b*a.n33+d*a.n43;this.n14=c*a.n14+f*a.n24+b*a.n34+d*a.n44;this.n21=j*a.n11+n*a.n21+r*a.n31+e*a.n41;this.n22=j*a.n12+n*a.n22+r*a.n32+e*a.n42;this.n23=j*a.n13+n*a.n23+r*a.n33+e*a.n43;this.n24=j*a.n14+n*a.n24+r*a.n34+e*a.n44;this.n31=g*a.n11+m*a.n21+h*a.n31+l*a.n41;this.n32=g*a.n12+m*a.n22+ -h*a.n32+l*a.n42;this.n33=g*a.n13+m*a.n23+h*a.n33+l*a.n43;this.n34=g*a.n14+m*a.n24+h*a.n34+l*a.n44;this.n41=q*a.n11+o*a.n21+s*a.n31+A*a.n41;this.n42=q*a.n12+o*a.n22+s*a.n32+A*a.n42;this.n43=q*a.n13+o*a.n23+s*a.n33+A*a.n43;this.n44=q*a.n14+o*a.n24+s*a.n34+A*a.n44},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a},determinant:function(){return this.n14* -this.n23*this.n32*this.n41-this.n13*this.n24*this.n32*this.n41-this.n14*this.n22*this.n33*this.n41+this.n12*this.n24*this.n33*this.n41+this.n13*this.n22*this.n34*this.n41-this.n12*this.n23*this.n34*this.n41-this.n14*this.n23*this.n31*this.n42+this.n13*this.n24*this.n31*this.n42+this.n14*this.n21*this.n33*this.n42-this.n11*this.n24*this.n33*this.n42-this.n13*this.n21*this.n34*this.n42+this.n11*this.n23*this.n34*this.n42+this.n14*this.n22*this.n31*this.n43-this.n12*this.n24*this.n31*this.n43-this.n14* -this.n21*this.n32*this.n43+this.n11*this.n24*this.n32*this.n43+this.n12*this.n21*this.n34*this.n43-this.n11*this.n22*this.n34*this.n43-this.n13*this.n22*this.n31*this.n44+this.n12*this.n23*this.n31*this.n44+this.n13*this.n21*this.n32*this.n44-this.n11*this.n23*this.n32*this.n44-this.n12*this.n21*this.n33*this.n44+this.n11*this.n22*this.n33*this.n44},transpose:function(){function a(c,f,b){var d=c[f];c[f]=c[b];c[b]=d}a(this,"n21","n12");a(this,"n31","n13");a(this,"n32","n23");a(this,"n41","n14");a(this, -"n42","n24");a(this,"n43","n34");return this},clone:function(){var a=new THREE.Matrix4;a.n11=this.n11;a.n12=this.n12;a.n13=this.n13;a.n14=this.n14;a.n21=this.n21;a.n22=this.n22;a.n23=this.n23;a.n24=this.n24;a.n31=this.n31;a.n32=this.n32;a.n33=this.n33;a.n34=this.n34;a.n41=this.n41;a.n42=this.n42;a.n43=this.n43;a.n44=this.n44;return a},flatten:function(){return[this.n11,this.n21,this.n31,this.n41,this.n12,this.n22,this.n32,this.n42,this.n13,this.n23,this.n33,this.n43,this.n14,this.n24,this.n34,this.n44]}, -toString:function(){return"| "+this.n11+" "+this.n12+" "+this.n13+" "+this.n14+" |\n| "+this.n21+" "+this.n22+" "+this.n23+" "+this.n24+" |\n| "+this.n31+" "+this.n32+" "+this.n33+" "+this.n34+" |\n| "+this.n41+" "+this.n42+" "+this.n43+" "+this.n44+" |"}};THREE.Matrix4.translationMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n14=a;b.n24=c;b.n34=f;return b};THREE.Matrix4.scaleMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n11=a;b.n22=c;b.n33=f;return b}; -THREE.Matrix4.rotationXMatrix=function(a){var c=new THREE.Matrix4;c.n22=c.n33=Math.cos(a);c.n32=Math.sin(a);c.n23=-c.n32;return c};THREE.Matrix4.rotationYMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n33=Math.cos(a);c.n13=Math.sin(a);c.n31=-c.n13;return c};THREE.Matrix4.rotationZMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n22=Math.cos(a);c.n21=Math.sin(a);c.n12=-c.n21;return c}; -THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var f=new THREE.Matrix4,b=Math.cos(c),d=Math.sin(c),j=1-b,n=a.x,r=a.y,e=a.z;f.n11=j*n*n+b;f.n12=j*n*r-d*e;f.n13=j*n*e+d*r;f.n21=j*n*r+d*e;f.n22=j*r*r+b;f.n23=j*r*e-d*n;f.n31=j*n*e-d*r;f.n32=j*r*e+d*n;f.n33=j*e*e+b;return f}; -THREE.Matrix4.makeInvert=function(a){var c=new THREE.Matrix4;c.n11=a.n23*a.n34*a.n42-a.n24*a.n33*a.n42+a.n24*a.n32*a.n43-a.n22*a.n34*a.n43-a.n23*a.n32*a.n44+a.n22*a.n33*a.n44;c.n12=a.n14*a.n33*a.n42-a.n13*a.n34*a.n42-a.n14*a.n32*a.n43+a.n12*a.n34*a.n43+a.n13*a.n32*a.n44-a.n12*a.n33*a.n44;c.n13=a.n13*a.n24*a.n42-a.n14*a.n23*a.n42+a.n14*a.n22*a.n43-a.n12*a.n24*a.n43-a.n13*a.n22*a.n44+a.n12*a.n23*a.n44;c.n14=a.n14*a.n23*a.n32-a.n13*a.n24*a.n32-a.n14*a.n22*a.n33+a.n12*a.n24*a.n33+a.n13*a.n22*a.n34-a.n12* -a.n23*a.n34;c.n21=a.n24*a.n33*a.n41-a.n23*a.n34*a.n41-a.n24*a.n31*a.n43+a.n21*a.n34*a.n43+a.n23*a.n31*a.n44-a.n21*a.n33*a.n44;c.n22=a.n13*a.n34*a.n41-a.n14*a.n33*a.n41+a.n14*a.n31*a.n43-a.n11*a.n34*a.n43-a.n13*a.n31*a.n44+a.n11*a.n33*a.n44;c.n23=a.n14*a.n23*a.n41-a.n13*a.n24*a.n41-a.n14*a.n21*a.n43+a.n11*a.n24*a.n43+a.n13*a.n21*a.n44-a.n11*a.n23*a.n44;c.n24=a.n13*a.n24*a.n31-a.n14*a.n23*a.n31+a.n14*a.n21*a.n33-a.n11*a.n24*a.n33-a.n13*a.n21*a.n34+a.n11*a.n23*a.n34;c.n31=a.n22*a.n34*a.n41-a.n24*a.n32* -a.n41+a.n24*a.n31*a.n42-a.n21*a.n34*a.n42-a.n22*a.n31*a.n44+a.n21*a.n32*a.n44;c.n32=a.n14*a.n32*a.n41-a.n12*a.n34*a.n41-a.n14*a.n31*a.n42+a.n11*a.n34*a.n42+a.n12*a.n31*a.n44-a.n11*a.n32*a.n44;c.n33=a.n13*a.n24*a.n41-a.n14*a.n22*a.n41+a.n14*a.n21*a.n42-a.n11*a.n24*a.n42-a.n12*a.n21*a.n44+a.n11*a.n22*a.n44;c.n34=a.n14*a.n22*a.n31-a.n12*a.n24*a.n31-a.n14*a.n21*a.n32+a.n11*a.n24*a.n32+a.n12*a.n21*a.n34-a.n11*a.n22*a.n34;c.n41=a.n23*a.n32*a.n41-a.n22*a.n33*a.n41-a.n23*a.n31*a.n42+a.n21*a.n33*a.n42+a.n22* -a.n31*a.n43-a.n21*a.n32*a.n43;c.n42=a.n12*a.n33*a.n41-a.n13*a.n32*a.n41+a.n13*a.n31*a.n42-a.n11*a.n33*a.n42-a.n12*a.n31*a.n43+a.n11*a.n32*a.n43;c.n43=a.n13*a.n22*a.n41-a.n12*a.n23*a.n41-a.n13*a.n21*a.n42+a.n11*a.n23*a.n42+a.n12*a.n21*a.n43-a.n11*a.n22*a.n43;c.n44=a.n12*a.n23*a.n31-a.n13*a.n22*a.n31+a.n13*a.n21*a.n32-a.n11*a.n23*a.n32-a.n12*a.n21*a.n33+a.n11*a.n22*a.n33;c.multiplyScalar(1/a.determinant());return c}; -THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=new THREE.Matrix3;var f=c[10]*c[5]-c[6]*c[9],b=-c[10]*c[1]+c[2]*c[9],d=c[6]*c[1]-c[2]*c[5],j=-c[10]*c[4]+c[6]*c[8],n=c[10]*c[0]-c[2]*c[8],r=-c[6]*c[0]+c[2]*c[4],e=c[9]*c[4]-c[5]*c[8],g=-c[9]*c[0]+c[1]*c[8],m=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*j+c[2]*e;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*b;a.m[2]=c*d;a.m[3]=c*j;a.m[4]=c*n;a.m[5]=c*r;a.m[6]=c*e;a.m[7]=c*g;a.m[8]=c*m;return a}; -THREE.Matrix4.makeFrustum=function(a,c,f,b,d,j){var n,r,e;n=new THREE.Matrix4;r=2*d/(c-a);e=2*d/(b-f);a=(c+a)/(c-a);f=(b+f)/(b-f);b=-(j+d)/(j-d);d=-2*j*d/(j-d);n.n11=r;n.n12=0;n.n13=a;n.n14=0;n.n21=0;n.n22=e;n.n23=f;n.n24=0;n.n31=0;n.n32=0;n.n33=b;n.n34=d;n.n41=0;n.n42=0;n.n43=-1;n.n44=0;return n};THREE.Matrix4.makePerspective=function(a,c,f,b){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*c,a*c,d,a,f,b)}; -THREE.Matrix4.makeOrtho=function(a,c,f,b,d,j){var n,r,e,g;n=new THREE.Matrix4;r=c-a;e=f-b;g=j-d;a=(c+a)/r;f=(f+b)/e;d=(j+d)/g;n.n11=2/r;n.n12=0;n.n13=0;n.n14=-a;n.n21=0;n.n22=2/e;n.n23=0;n.n24=-f;n.n31=0;n.n32=0;n.n33=-2/g;n.n34=-d;n.n41=0;n.n42=0;n.n43=0;n.n44=1;return n}; -THREE.Vertex=function(a,c){this.position=a||new THREE.Vector3;this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.normal=c||new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.normalScreen=new THREE.Vector3;this.__visible=true};THREE.Vertex.prototype={toString:function(){return"THREE.Vertex ( position: "+this.position+", normal: "+this.normal+" )"}}; -THREE.Face3=function(a,c,f,b,d){this.a=a;this.b=c;this.c=f;this.centroid=new THREE.Vector3;this.normal=b instanceof THREE.Vector3?b:new THREE.Vector3;this.vertexNormals=b instanceof Array?b:[];this.material=d instanceof Array?d:[d]};THREE.Face3.prototype={toString:function(){return"THREE.Face3 ( "+this.a+", "+this.b+", "+this.c+" )"}}; -THREE.Face4=function(a,c,f,b,d,j){this.a=a;this.b=c;this.c=f;this.d=b;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=j instanceof Array?j:[j]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,c){this.u=a||0;this.v=c||0}; -THREE.UV.prototype={copy:function(a){this.u=a.u;this.v=a.v},toString:function(){return"THREE.UV ("+this.u+", "+this.v+")"}};THREE.Geometry=function(){this.vertices=[];this.faces=[];this.uvs=[]}; -THREE.Geometry.prototype={computeCentroids:function(){var a,c,f;a=0;for(c=this.faces.length;a0){this.bbox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y,this.vertices[0].position.y],z:[this.vertices[0].position.z,this.vertices[0].position.z]};for(var a=1,c=this.vertices.length;a -this.bbox.x[1])this.bbox.x[1]=vertex.position.x;if(vertex.position.ythis.bbox.y[1])this.bbox.y[1]=vertex.position.y;if(vertex.position.zthis.bbox.z[1])this.bbox.z[1]=vertex.position.z}}},toString:function(){return"THREE.Geometry ( vertices: "+this.vertices+", faces: "+this.faces+" )"}}; -THREE.Camera=function(a,c,f,b){this.position=new THREE.Vector3(0,0,0);this.target={position:new THREE.Vector3(0,0,0)};this.up=new THREE.Vector3(0,1,0);this.matrix=new THREE.Matrix4;this.projectionMatrix=THREE.Matrix4.makePerspective(a,c,f,b);this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrix.lookAt(this.position,this.target.position,this.up)};this.toString=function(){return"THREE.Camera ( "+this.position+", "+this.target.position+" )"}}; -THREE.Light=function(a){this.color=new THREE.Color(-16777216|a)};THREE.AmbientLight=function(a){THREE.Light.call(this,a)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight;THREE.DirectionalLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,1,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight; -THREE.PointLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,0,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.PointLight; -THREE.Object3D=function(){this.position=new THREE.Vector3;this.rotation=new THREE.Vector3;this.scale=new THREE.Vector3(1,1,1);this.matrix=new THREE.Matrix4;this.matrixTranslation=new THREE.Matrix4;this.matrixRotation=new THREE.Matrix4;this.matrixScale=new THREE.Matrix4;this.screen=new THREE.Vector3;this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrixPosition=THREE.Matrix4.translationMatrix(this.position.x,this.position.y,this.position.z);this.matrixRotation=THREE.Matrix4.rotationXMatrix(this.rotation.x); -this.matrixRotation.multiplySelf(THREE.Matrix4.rotationYMatrix(this.rotation.y));this.matrixRotation.multiplySelf(THREE.Matrix4.rotationZMatrix(this.rotation.z));this.matrixScale=THREE.Matrix4.scaleMatrix(this.scale.x,this.scale.y,this.scale.z);this.matrix.copy(this.matrixPosition);this.matrix.multiplySelf(this.matrixRotation);this.matrix.multiplySelf(this.matrixScale)}};THREE.Particle=function(a){THREE.Object3D.call(this);this.material=a instanceof Array?a:[a];this.autoUpdateMatrix=false}; -THREE.Particle.prototype=new THREE.Object3D;THREE.Particle.prototype.constructor=THREE.Particle;THREE.Line=function(a,c){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c]};THREE.Line.prototype=new THREE.Object3D;THREE.Line.prototype.constructor=THREE.Line; -THREE.Mesh=function(a,c,f){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c];this.overdraw=this.doubleSided=this.flipSided=false;this.materialFaceGroup={};this.sortFacesByMaterial();f&&this.normalizeUVs();this.geometry.computeBoundingBox()};THREE.Mesh.prototype=new THREE.Object3D;THREE.Mesh.prototype.constructor=THREE.Mesh; -THREE.Mesh.prototype.sortFacesByMaterial=function(){function a(m){var h=[];c=0;for(f=m.length;c65535){g[r].counter+=1;e=g[r].hash+"_"+g[r].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:n,vertices:0}}this.materialFaceGroup[e].faces.push(b);this.materialFaceGroup[e].vertices+=j}};THREE.Mesh.prototype.normalizeUVs=function(){var a,c,f,b,d;a=0;for(c=this.geometry.uvs.length;acolor: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
linewidth: "+ -this.linewidth+"
)"}}; -THREE.MeshBasicMaterial=function(a){this.id=THREE.MeshBasicMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!== -undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshBasicMaterial (
id: "+ -this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
)"}};THREE.MeshBasicMaterialCounter={value:0}; -THREE.MeshLambertMaterial=function(a){this.id=THREE.MeshLambertMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!== -undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshLambertMaterial (
id: "+ -this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
shading: "+this.shading+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_size: "+this.wireframe_linewidth+"
)"}};THREE.MeshLambertMaterialCounter={value:0}; -THREE.MeshPhongMaterial=function(a){this.id=THREE.MeshPhongMaterialCounter.value++;this.color=new THREE.Color(15658734);this.ambient=new THREE.Color(328965);this.specular=new THREE.Color(1118481);this.shininess=30;this.env_map=this.specular_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){if(a.color!==undefined)this.color= -new THREE.Color(a.color);if(a.ambient!==undefined)this.ambient=new THREE.Color(a.ambient);if(a.specular!==undefined)this.specular=new THREE.Color(a.specular);if(a.shininess!==undefined)this.shininess=a.shininess;if(a.map!==undefined)this.map=a.map;if(a.specular_map!==undefined)this.specular_map=a.specular_map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!==undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio= -a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshPhongMaterial (
id: "+this.id+"
color: "+this.color+"
ambient: "+this.ambient+"
specular: "+this.specular+"
shininess: "+this.shininess+ -"
map: "+this.map+"
specular_map: "+this.specular_map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
shading: "+this.shading+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
"+ +")"}};THREE.MeshPhongMaterialCounter={value:0}; -THREE.MeshDepthMaterial=function(a){this.near=1;this.far=1E3;this.opacity=1;this.blending=THREE.NormalBlending;if(a){if(a.near!==undefined)this.near=a.near;if(a.far!==undefined)this.far=a.far;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.__2near=2*this.near;this.__farPlusNear=this.far+this.near;this.__farMinusNear=this.far-this.near;this.toString=function(){return"THREE.MeshDepthMaterial"}}; -THREE.MeshNormalMaterial=function(a){this.opacity=1;this.shading=THREE.FlatShading;this.blending=THREE.NormalBlending;if(a){if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.MeshNormalMaterial"}};THREE.MeshFaceMaterial=function(){this.toString=function(){return"THREE.MeshFaceMaterial"}}; -THREE.ParticleBasicMaterial=function(a){this.color=new THREE.Color(16711680);this.map=null;this.opacity=1;this.blending=THREE.NormalBlending;this.offset=new THREE.Vector2;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleBasicMaterial (
color: "+this.color+"
map: "+this.map+"
opacity: "+this.opacity+"
blending: "+ -this.blending+"
)"}};THREE.ParticleCircleMaterial=function(a){this.color=new THREE.Color(16711680);this.opacity=1;this.blending=THREE.NormalBlending;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleCircleMaterial (
color: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
)"}}; -THREE.ParticleDOMMaterial=function(a){this.domElement=a;this.toString=function(){return"THREE.ParticleDOMMaterial ( domElement: "+this.domElement+" )"}};THREE.Texture=function(a,c){this.image=a;this.mapping=c!==undefined?c:THREE.UVMapping;this.toString=function(){return"THREE.Texture (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.UVMapping=0;THREE.ReflectionMap=1;THREE.RefractionMap=2;THREE.Multiply=0;THREE.Mix=1; -THREE.TextureCube=function(a,c){this.image=a;this.mapping=c?c:THREE.ReflectionMap;this.toString=function(){return"THREE.TextureCube (
image: "+this.image+"
mapping: "+this.mapping+"
)"}}; -THREE.Scene=function(){this.objects=[];this.lights=[];this.addObject=function(a){this.objects.push(a)};this.removeObject=function(a){a=this.objects.indexOf(a);a!==-1&&this.objects.splice(a,1)};this.addLight=function(a){this.lights.push(a)};this.removeLight=function(a){a=this.lights.indexOf(a);a!==-1&&this.lights.splice(a,1)};this.toString=function(){return"THREE.Scene ( "+this.objects+" )"}}; -THREE.Projector=function(){function a(p,t){var i=0,U=1,C=p.z+p.w,S=t.z+t.w,E=-p.z+p.w,B=-t.z+t.w;if(C>=0&&S>=0&&E>=0&&B>=0)return true;else if(C<0&&S<0||E<0&&B<0)return false;else{if(C<0)i=Math.max(i,C/(C-S));else if(S<0)U=Math.min(U,C/(C-S));if(E<0)i=Math.max(i,E/(E-B));else if(B<0)U=Math.min(U,E/(E-B));if(U0&&Q.z<1}fa=B.geometry.faces;C=0;for(S= -fa.length;C0&&o.z<1){h=q[l]=q[l]|| -new THREE.RenderableParticle;h.x=o.x/o.w;h.y=o.y/o.w;h.z=o.z;h.rotation=B.rotation.z;h.scale.x=B.scale.x*Math.abs(h.x-(o.x+t.projectionMatrix.n11)/(o.w+t.projectionMatrix.n14));h.scale.y=B.scale.y*Math.abs(h.y-(o.y+t.projectionMatrix.n22)/(o.w+t.projectionMatrix.n24));h.material=B.material;c.push(h);l++}}}c.sort(function(T,y){return y.z-T.z});return c};this.unprojectVector=function(p,t){var i=new THREE.Matrix4;i.multiply(THREE.Matrix4.makeInvert(t.matrix),THREE.Matrix4.makeInvert(t.projectionMatrix)); -i.transform(p);return p}}; -THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,c=new THREE.Projector,f,b,d,j;this.domElement=document.createElement("div");this.setSize=function(n,r){f=n;b=r;d=f/2;j=b/2};this.render=function(n,r){var e,g,m,h,l,q,o,s;a=c.projectScene(n,r);e=0;for(g=a.length;e0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}else if(k instanceof THREE.PointLight){Ja.sub(k.position,O.centroidWorld);Ja.normalize();k=O.normalWorld.dot(Ja)*k.intensity;if(k>0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}}}function c(w,O,H,I,k,G){if(k.opacity!=0){n(k.opacity);r(k.blending);M=w.positionScreen.x; -K=w.positionScreen.y;T=O.positionScreen.x;y=O.positionScreen.y;v=H.positionScreen.x;R=H.positionScreen.y;if(k.map){ea=k.map.image;pa=ea.width-1;qa=ea.height-1;ca.u=I.uvs[0].u*pa;ca.v=I.uvs[0].v*qa;Z.u=I.uvs[1].u*pa;Z.v=I.uvs[1].v*qa;da.u=I.uvs[2].u*pa;da.v=I.uvs[2].v*qa;j(ea,M,K,T,y,v,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(k instanceof THREE.MeshBasicMaterial)b(M,K,T,y,v,R,k.color,k.wireframe,k.wireframe_linewidth);else if(k instanceof THREE.MeshLambertMaterial){if(Fa){aa.r=ga.r;aa.g=ga.g;aa.b=ga.b; -a(G,I,aa);V.r=k.color.r*aa.r;V.g=k.color.g*aa.g;V.b=k.color.b*aa.b;V.updateStyleString()}else V.__styleString=k.color.__styleString;b(M,K,T,y,v,R,V,k.wireframe,k.wireframe_linewidth)}else if(k instanceof THREE.MeshDepthMaterial){ra=k.__2near;sa=k.__farPlusNear;ta=k.__farMinusNear;wa=~~((1-ra/(sa-w.positionScreen.z*ta))*255);xa=~~((1-ra/(sa-O.positionScreen.z*ta))*255);na=~~((1-ra/(sa-H.positionScreen.z*ta))*255);ea=h([wa,wa,wa],[xa,xa,xa],[na,na,na],[na,na,na]);ca.u=0;ca.v=0;Z.u=la;Z.v=0;da.u=0;da.v= -la;j(ea,M,K,T,y,v,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(k instanceof THREE.MeshNormalMaterial){V.r=l(I.normalWorld.x);V.g=l(I.normalWorld.y);V.b=l(I.normalWorld.z);V.updateStyleString();b(M,K,T,y,v,R,V,k.wireframe,k.wireframe_linewidth)}}}function f(w,O,H,I,k,G,W,u,X){if(u.opacity!=0){n(u.opacity);r(u.blending);M=w.positionScreen.x;K=w.positionScreen.y;T=O.positionScreen.x;y=O.positionScreen.y;v=H.positionScreen.x;R=H.positionScreen.y;ha=I.positionScreen.x;P=I.positionScreen.y;Y=k.positionScreen.x; -ya=k.positionScreen.y;Ka=G.positionScreen.x;La=G.positionScreen.y;if(u.map){ea=u.map.image;pa=ea.width-1;qa=ea.height-1;ca.copy(W.uvs[0]);Z.copy(W.uvs[1]);da.copy(W.uvs[2]);ia.copy(W.uvs[3]);ca.u*=pa;ca.v*=qa;Z.u*=pa;Z.v*=qa;da.u*=pa;da.v*=qa;ia.u*=pa;ia.v*=qa;j(ea,M,K,T,y,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);j(ea,Y,ya,v,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(u instanceof THREE.MeshBasicMaterial)d(M,K,T,y,v,R,ha,P,u.color,u.wireframe,u.wireframe_linewidth);else if(u instanceof THREE.MeshLambertMaterial){if(Fa){aa.r= -ga.r;aa.g=ga.g;aa.b=ga.b;a(X,W,aa);V.r=u.color.r*aa.r;V.g=u.color.g*aa.g;V.b=u.color.b*aa.b;V.updateStyleString()}else V.__styleString=u.color.__styleString;d(M,K,T,y,v,R,ha,P,V,u.wireframe,u.wireframe_linewidth)}else if(u instanceof THREE.MeshDepthMaterial){ra=u.__2near;sa=u.__farPlusNear;ta=u.__farMinusNear;wa=~~((1-ra/(sa-w.positionScreen.z*ta))*255);xa=~~((1-ra/(sa-O.positionScreen.z*ta))*255);na=~~((1-ra/(sa-H.positionScreen.z*ta))*255);Ga=~~((1-ra/(sa-I.positionScreen.z*ta))*255);ea=h([wa,wa, -wa],[xa,xa,xa],[Ga,Ga,Ga],[na,na,na]);ca.u=0;ca.v=0;Z.u=la;Z.v=0;da.u=la;da.v=la;ia.u=0;ia.v=la;j(ea,M,K,T,y,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);j(ea,Y,ya,v,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(u instanceof THREE.MeshNormalMaterial){V.r=l(W.normalWorld.x);V.g=l(W.normalWorld.y);V.b=l(W.normalWorld.z);V.updateStyleString();d(M,K,T,y,v,R,ha,P,V,u.wireframe,u.wireframe_linewidth)}}}function b(w,O,H,I,k,G,W,u,X){i.beginPath();i.moveTo(w,O);i.lineTo(H,I);i.lineTo(k,G);i.lineTo(w,O);i.closePath(); -if(u){e(X);g(W.__styleString);i.stroke();$.inflate(X*2)}else{m(W.__styleString);i.fill()}}function d(w,O,H,I,k,G,W,u,X,F,ba){i.beginPath();i.moveTo(w,O);i.lineTo(H,I);i.lineTo(k,G);i.lineTo(W,u);i.lineTo(w,O);i.closePath();if(F){e(ba);g(X.__styleString);i.stroke();$.inflate(ba*2)}else{m(X.__styleString);i.fill()}}function j(w,O,H,I,k,G,W,u,X,F,ba,ma,ua){i.beginPath();i.moveTo(O,H);i.lineTo(I,k);i.lineTo(G,W);i.closePath();I-=O;k-=H;G-=O;W-=H;F-=u;ba-=X;ma-=u;ua-=X;var va=1/(F*ua-ma*ba),Ba=(ua*I-ba* -G)*va;ba=(ua*k-ba*W)*va;I=(F*G-ma*I)*va;k=(F*W-ma*k)*va;O=O-Ba*u-I*X;H=H-ba*u-k*X;i.save();i.transform(Ba,ba,I,k,O,H);i.clip();i.drawImage(w,0,0);i.restore()}function n(w){if(U!=w)i.globalAlpha=U=w}function r(w){if(C!=w){switch(w){case THREE.NormalBlending:i.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:i.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:i.globalCompositeOperation="darker"}C=w}}function e(w){if(B!=w)i.lineWidth=B=w}function g(w){if(S!= -w)i.strokeStyle=S=w}function m(w){if(E!=w)i.fillStyle=E=w}function h(w,O,H,I){ja[0]=w[0];ja[1]=w[1];ja[2]=w[2];ja[4]=O[0];ja[5]=O[1];ja[6]=O[2];ja[8]=H[0];ja[9]=H[1];ja[10]=H[2];ja[12]=I[0];ja[13]=I[1];ja[14]=I[2];Ca.putImageData(Ma,0,0);Ha.drawImage(Da,0,0);return Ea}function l(w){return w<0?Math.min((1+w)*0.5,0.5):0.5+Math.min(w*0.5,0.5)}function q(w,O){var H=O.x-w.x,I=O.y-w.y,k=1/Math.sqrt(H*H+I*I);H*=k;I*=k;O.x+=H;O.y+=I;w.x-=H;w.y-=I}var o=null,s=new THREE.Projector,A=document.createElement("canvas"), -J,N,p,t,i=A.getContext("2d"),U=1,C=0,S=null,E=null,B=1,L,x,D,Q,fa=new THREE.Vertex,z=new THREE.Vertex,M,K,T,y,v,R,ha,P,Y,ya,Ka,La,wa,xa,na,Ga,ra,sa,ta,ea,pa,qa,oa=new THREE.Rectangle,ka=new THREE.Rectangle,$=new THREE.Rectangle,Fa=false,V=new THREE.Color(16777215),aa=new THREE.Color(16777215),ga=new THREE.Color(0),za=new THREE.Color(0),Aa=new THREE.Color(0),Qa=Math.PI*2,Ja=new THREE.Vector3,ca=new THREE.UV,Z=new THREE.UV,da=new THREE.UV,ia=new THREE.UV,Da,Ca,Ma,ja,Ea,Ha,la=16;Da=document.createElement("canvas"); -Da.width=Da.height=2;Ca=Da.getContext("2d");Ca.fillStyle="rgba(0,0,0,1)";Ca.fillRect(0,0,2,2);Ma=Ca.getImageData(0,0,2,2);ja=Ma.data;Ea=document.createElement("canvas");Ea.width=Ea.height=la;Ha=Ea.getContext("2d");Ha.translate(-la/2,-la/2);Ha.scale(la,la);la--;this.domElement=A;this.autoClear=true;this.setSize=function(w,O){J=w;N=O;p=J/2;t=N/2;A.width=J;A.height=N;i.lineJoin="round";i.lineCap="round";oa.set(-p,-t,p,t)};this.clear=function(){if(!ka.isEmpty()){ka.inflate(1);ka.minSelf(oa);i.setTransform(1, -0,0,-1,p,t);i.clearRect(ka.getX(),ka.getY(),ka.getWidth(),ka.getHeight());ka.empty()}};this.render=function(w,O){var H,I,k,G,W,u,X,F;this.autoClear&&this.clear();o=s.projectScene(w,O);i.setTransform(1,0,0,-1,p,t);i.fillStyle="rgba(0, 255, 255, 0.5)";i.fillRect(oa.getX(),oa.getY(),oa.getWidth(),oa.getHeight());if(Fa=w.lights.length>0){W=w.lights;ga.setRGB(0,0,0);za.setRGB(0,0,0);Aa.setRGB(0,0,0);H=0;for(I=W.length;H0){K.r+=v.color.r*R;K.g+=v.color.g*R;K.b+=v.color.b*R}}else if(v instanceof THREE.PointLight){E.sub(v.position,M.centroidWorld);E.normalize();R=M.normalWorld.dot(E)*v.intensity;if(R>0){K.r+=v.color.r*R;K.g+=v.color.g*R;K.b+=v.color.b*R}}}}function c(z,M,K,T,y,v){x=b(D++);x.setAttribute("d","M "+z.positionScreen.x+ -" "+z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+"z");if(y instanceof THREE.MeshBasicMaterial)p.__styleString=y.color.__styleString;else if(y instanceof THREE.MeshLambertMaterial)if(N){t.r=i.r;t.g=i.g;t.b=i.b;a(v,T,t);p.r=y.color.r*t.r;p.g=y.color.g*t.g;p.b=y.color.b*t.b;p.updateStyleString()}else p.__styleString=y.color.__styleString;else if(y instanceof THREE.MeshDepthMaterial){S=1-y.__2near/(y.__farPlusNear-T.z*y.__farMinusNear); -p.setRGB(S,S,S)}else y instanceof THREE.MeshNormalMaterial&&p.setRGB(d(T.normalWorld.x),d(T.normalWorld.y),d(T.normalWorld.z));y.wireframe?x.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+y.wireframe_linewidth+"; stroke-opacity: "+y.opacity+"; stroke-linecap: round; stroke-linejoin: round"):x.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+y.opacity);r.appendChild(x)}function f(z,M,K,T,y,v,R){x=b(D++);x.setAttribute("d","M "+z.positionScreen.x+" "+ -z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+" L "+T.positionScreen.x+","+T.positionScreen.y+"z");if(v instanceof THREE.MeshBasicMaterial)p.__styleString=v.color.__styleString;else if(v instanceof THREE.MeshLambertMaterial)if(N){t.r=i.r;t.g=i.g;t.b=i.b;a(R,y,t);p.r=v.color.r*t.r;p.g=v.color.g*t.g;p.b=v.color.b*t.b;p.updateStyleString()}else p.__styleString=v.color.__styleString;else if(v instanceof THREE.MeshDepthMaterial){S=1- -v.__2near/(v.__farPlusNear-y.z*v.__farMinusNear);p.setRGB(S,S,S)}else v instanceof THREE.MeshNormalMaterial&&p.setRGB(d(y.normalWorld.x),d(y.normalWorld.y),d(y.normalWorld.z));v.wireframe?x.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+v.wireframe_linewidth+"; stroke-opacity: "+v.opacity+"; stroke-linecap: round; stroke-linejoin: round"):x.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+v.opacity);r.appendChild(x)}function b(z){if(B[z]==null){B[z]= -document.createElementNS("http://www.w3.org/2000/svg","path");fa==0&&B[z].setAttribute("shape-rendering","crispEdges");return B[z]}return B[z]}function d(z){return z<0?Math.min((1+z)*0.5,0.5):0.5+Math.min(z*0.5,0.5)}var j=null,n=new THREE.Projector,r=document.createElementNS("http://www.w3.org/2000/svg","svg"),e,g,m,h,l,q,o,s,A=new THREE.Rectangle,J=new THREE.Rectangle,N=false,p=new THREE.Color(16777215),t=new THREE.Color(16777215),i=new THREE.Color(0),U=new THREE.Color(0),C=new THREE.Color(0),S, -E=new THREE.Vector3,B=[],L=[],x,D,Q,fa=1;this.domElement=r;this.autoClear=true;this.setQuality=function(z){switch(z){case "high":fa=1;break;case "low":fa=0}};this.setSize=function(z,M){e=z;g=M;m=e/2;h=g/2;r.setAttribute("viewBox",-m+" "+-h+" "+e+" "+g);r.setAttribute("width",e);r.setAttribute("height",g);A.set(-m,-h,m,h)};this.clear=function(){for(;r.childNodes.length>0;)r.removeChild(r.childNodes[0])};this.render=function(z,M){var K,T,y,v,R,ha,P,Y;this.autoClear&&this.clear();j=n.projectScene(z, -M);Q=D=0;if(N=z.lights.length>0){P=z.lights;i.setRGB(0,0,0);U.setRGB(0,0,0);C.setRGB(0,0,0);K=0;for(T=P.length;K= 0.0 )": -"",g?"pointSpecularWeight = pow( pointDotNormalHalf, mShininess );":"",g?"pointDiffuse += mColor * pointDiffuseWeight;":"",g?"pointSpecular += mSpecular * pointSpecularWeight;":"",g?"}":"",e?"vec4 dirDiffuse = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"vec4 dirSpecular = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"vec3 dirVector = normalize( lDirection.xyz );":"",e?"vec3 dirHalfVector = normalize( lDirection.xyz + vViewPosition );": -"",e?"float dirDotNormalHalf = dot( normal, dirHalfVector );":"",e?"float dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );":"",e?"float dirSpecularWeight = 0.0;":"",e?"if ( dirDotNormalHalf >= 0.0 )":"",e?"dirSpecularWeight = pow( dirDotNormalHalf, mShininess );":"",e?"dirDiffuse += mColor * dirDiffuseWeight;":"",e?"dirSpecular += mSpecular * dirSpecularWeight;":"",e?"}":"","vec4 totalLight = mAmbient;",e?"totalLight += dirDiffuse + dirSpecular;":"",g?"totalLight += pointDiffuse + pointSpecular;": -"","if ( mixEnvMap ) {\ngl_FragColor = vec4( mix( mapColor.rgb * totalLight.xyz * vLightWeighting, cubeColor.rgb, mReflectivity ), mapColor.a );\n} else {\ngl_FragColor = vec4( mapColor.rgb * cubeColor.rgb * totalLight.xyz * vLightWeighting, mapColor.a );\n}\n} else if ( material == 1 ) {\nif ( mixEnvMap ) {\ngl_FragColor = vec4( mix( mColor.rgb * mapColor.rgb * vLightWeighting, cubeColor.rgb, mReflectivity ), mColor.a * mapColor.a );\n} else {\ngl_FragColor = vec4( mColor.rgb * mapColor.rgb * cubeColor.rgb * vLightWeighting, mColor.a * mapColor.a );\n}\n} else {\nif ( mixEnvMap ) {\ngl_FragColor = mix( mColor * mapColor, cubeColor, mReflectivity );\n} else {\ngl_FragColor = mColor * mapColor * cubeColor;\n}\n}\n}"].join("\n"))); -b.attachShader(d,c("vertex",[e?"#define MAX_DIR_LIGHTS "+e:"",g?"#define MAX_POINT_LIGHTS "+g:"","attribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\nuniform vec3 cameraPosition;\nuniform bool enableLighting;\nuniform bool useRefract;\nuniform int pointLightNumber;\nuniform int directionalLightNumber;\nuniform vec3 ambientLightColor;",e?"uniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];":"",e?"uniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];":"",g?"uniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];": -"",g?"uniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];":"","uniform mat4 objMatrix;\nuniform mat4 viewMatrix;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat3 normalMatrix;\nvarying vec3 vNormal;\nvarying vec2 vUv;\nvarying vec3 vLightWeighting;",g?"varying vec3 vPointLightVector[ MAX_POINT_LIGHTS ];":"","varying vec3 vViewPosition;\nvarying vec3 vReflect;\nuniform float mRefractionRatio;\nvoid main(void) {\nvec4 mPosition = objMatrix * vec4( position, 1.0 );\nvViewPosition = cameraPosition - mPosition.xyz;\nvec3 nWorld = mat3( objMatrix[0].xyz, objMatrix[1].xyz, objMatrix[2].xyz ) * normal;\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\nvec3 transformedNormal = normalize( normalMatrix * normal );\nif ( !enableLighting ) {\nvLightWeighting = vec3( 1.0, 1.0, 1.0 );\n} else {\nvLightWeighting = ambientLightColor;", -e?"for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"float directionalLightWeighting = max( dot( transformedNormal, normalize(lDirection.xyz ) ), 0.0 );":"",e?"vLightWeighting += directionalLightColor[ i ] * directionalLightWeighting;":"",e?"}":"",g?"for( int i = 0; i < MAX_POINT_LIGHTS; i++ ) {":"",g?"vec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );":"",g?"vPointLightVector[ i ] = normalize( lPosition.xyz - mvPosition.xyz );": -"",g?"float pointLightWeighting = max( dot( transformedNormal, vPointLightVector[ i ] ), 0.0 );":"",g?"vLightWeighting += pointLightColor[ i ] * pointLightWeighting;":"",g?"}":"","}\nvNormal = transformedNormal;\nvUv = uv;\nif ( useRefract ) {\nvReflect = refract( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz), mRefractionRatio );\n} else {\nvReflect = reflect( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz) );\n}\ngl_Position = projectionMatrix * mvPosition;\n}"].join("\n"))); -b.linkProgram(d);if(!b.getProgramParameter(d,b.LINK_STATUS)){alert("Could not initialise shaders");alert("VALIDATE_STATUS: "+b.getProgramParameter(d,b.VALIDATE_STATUS));alert(b.getError())}b.useProgram(d);d.viewMatrix=b.getUniformLocation(d,"viewMatrix");d.modelViewMatrix=b.getUniformLocation(d,"modelViewMatrix");d.projectionMatrix=b.getUniformLocation(d,"projectionMatrix");d.normalMatrix=b.getUniformLocation(d,"normalMatrix");d.objMatrix=b.getUniformLocation(d,"objMatrix");d.cameraPosition=b.getUniformLocation(d, -"cameraPosition");d.enableLighting=b.getUniformLocation(d,"enableLighting");d.ambientLightColor=b.getUniformLocation(d,"ambientLightColor");if(e){d.directionalLightNumber=b.getUniformLocation(d,"directionalLightNumber");d.directionalLightColor=b.getUniformLocation(d,"directionalLightColor");d.directionalLightDirection=b.getUniformLocation(d,"directionalLightDirection")}if(g){d.pointLightNumber=b.getUniformLocation(d,"pointLightNumber");d.pointLightColor=b.getUniformLocation(d,"pointLightColor");d.pointLightPosition= -b.getUniformLocation(d,"pointLightPosition")}d.material=b.getUniformLocation(d,"material");d.mColor=b.getUniformLocation(d,"mColor");d.mOpacity=b.getUniformLocation(d,"mOpacity");d.mReflectivity=b.getUniformLocation(d,"mReflectivity");d.mAmbient=b.getUniformLocation(d,"mAmbient");d.mSpecular=b.getUniformLocation(d,"mSpecular");d.mShininess=b.getUniformLocation(d,"mShininess");d.enableMap=b.getUniformLocation(d,"enableMap");b.uniform1i(d.enableMap,0);d.tMap=b.getUniformLocation(d,"tMap");b.uniform1i(d.tMap, -0);d.enableCubeMap=b.getUniformLocation(d,"enableCubeMap");b.uniform1i(d.enableCubeMap,0);d.tCube=b.getUniformLocation(d,"tCube");b.uniform1i(d.tCube,1);d.mixEnvMap=b.getUniformLocation(d,"mixEnvMap");b.uniform1i(d.mixEnvMap,0);d.mRefractionRatio=b.getUniformLocation(d,"mRefractionRatio");d.useRefract=b.getUniformLocation(d,"useRefract");b.uniform1i(d.useRefract,0);d.m2Near=b.getUniformLocation(d,"m2Near");d.mFarPlusNear=b.getUniformLocation(d,"mFarPlusNear");d.mFarMinusNear=b.getUniformLocation(d, -"mFarMinusNear");d.position=b.getAttribLocation(d,"position");b.enableVertexAttribArray(d.position);d.normal=b.getAttribLocation(d,"normal");b.enableVertexAttribArray(d.normal);d.uv=b.getAttribLocation(d,"uv");b.enableVertexAttribArray(d.uv);d.viewMatrixArray=new Float32Array(16);d.modelViewMatrixArray=new Float32Array(16);d.projectionMatrixArray=new Float32Array(16)})(a.directional,a.point);this.setSize=function(e,g){f.width=e;f.height=g;b.viewport(0,0,f.width,f.height)};this.clear=function(){b.clear(b.COLOR_BUFFER_BIT| -b.DEPTH_BUFFER_BIT)};this.setupLights=function(e){var g,m,h,l,q=[],o=[],s=[];l=[];var A=[];b.uniform1i(d.enableLighting,e.lights.length);g=0;for(m=e.lights.length;g>16&255)/255;this.g=(this.hex>>8&255)/255;this.b=(this.hex&255)/255},updateStyleString:function(){this.__styleString="rgb("+~~(this.r*255)+ +","+~~(this.g*255)+","+~~(this.b*255)+")"},toString:function(){return"THREE.Color ( r: "+this.r+", g: "+this.g+", b: "+this.b+", hex: "+this.hex+" )"}};THREE.Vector2=function(a,c){this.x=a||0;this.y=c||0}; +THREE.Vector2.prototype={set:function(a,c){this.x=a;this.y=c;return this},copy:function(a){this.x=a.x;this.y=a.y;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},unit:function(){this.multiplyScalar(1/this.length());return this},length:function(){return Math.sqrt(this.x* +this.x+this.y*this.y)},lengthSq:function(){return this.x*this.x+this.y*this.y},negate:function(){this.x=-this.x;this.y=-this.y;return this},clone:function(){return new THREE.Vector2(this.x,this.y)},toString:function(){return"THREE.Vector2 ("+this.x+", "+this.y+")"}};THREE.Vector3=function(a,c,f){this.x=a||0;this.y=c||0;this.z=f||0}; +THREE.Vector3.prototype={set:function(a,c,f){this.x=a;this.y=c;this.z=f;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;return this}, +cross:function(a,c){this.x=a.y*c.z-a.z*c.y;this.y=a.z*c.x-a.x*c.z;this.z=a.x*c.y-a.y*c.x;return this},crossSelf:function(a){var c=this.x,f=this.y,b=this.z;this.x=f*a.z-b*a.y;this.y=b*a.x-c*a.z;this.z=c*a.y-f*a.x;return this},multiplySelf:function(a){this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))}, +distanceToSquared:function(a){var c=this.x-a.x,f=this.y-a.y;a=this.z-a.z;return c*c+f*f+a*a},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},normalize:function(){this.length()>0?this.multiplyScalar(1/this.length()):this.multiplyScalar(0);return this},setLength:function(a){return this.normalize().multiplyScalar(a)},isZero:function(){return Math.abs(this.x)< +1.0E-4&&Math.abs(this.y)<1.0E-4&&Math.abs(this.z)<1.0E-4},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)},toString:function(){return"THREE.Vector3 ( "+this.x+", "+this.y+", "+this.z+" )"}};THREE.Vector4=function(a,c,f,b){this.x=a||0;this.y=c||0;this.z=f||0;this.w=b||1}; +THREE.Vector4.prototype={set:function(a,c,f,b){this.x=a;this.y=c;this.z=f;this.w=b;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=a.w||1;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;this.w=a.w+c.w;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;this.w=a.w-c.w;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w; +return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;this.w/=a;return this},lerpSelf:function(a,c){this.x+=(a.x-this.x)*c;this.y+=(a.y-this.y)*c;this.z+=(a.z-this.z)*c;this.w+=(a.w-this.w)*c},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},toString:function(){return"THREE.Vector4 ("+this.x+", "+this.y+", "+this.z+", "+this.w+")"}}; +THREE.Ray=function(a,c){this.origin=a||new THREE.Vector3;this.direction=c||new THREE.Vector3}; +THREE.Ray.prototype={intersectScene:function(a){var c,f,b=a.objects,d=[];a=0;for(c=b.length;a0&&A>0&&h+A<1}var f,b,d,j,o,r,e,g,n,i, +l,q=a.geometry,p=q.vertices,s=[];f=0;for(b=q.faces.length;f= +0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){r=true;d=b=f=c=0;a()};this.isEmpty=function(){return r};this.toString=function(){return"THREE.Rectangle ( left: "+c+", right: "+b+", top: "+f+", bottom: "+d+", width: "+j+", height: "+o+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; +THREE.Matrix4=function(){this._x=new THREE.Vector3;this._y=new THREE.Vector3;this._z=new THREE.Vector3}; +THREE.Matrix4.prototype={n11:1,n12:0,n13:0,n14:0,n21:0,n22:1,n23:0,n24:0,n31:0,n32:0,n33:1,n34:0,n41:0,n42:0,n43:0,n44:1,identity:function(){this.n11=1;this.n21=this.n14=this.n13=this.n12=0;this.n22=1;this.n32=this.n31=this.n24=this.n23=0;this.n33=1;this.n43=this.n42=this.n41=this.n34=0;this.n44=1},copy:function(a){this.n11=a.n11;this.n12=a.n12;this.n13=a.n13;this.n14=a.n14;this.n21=a.n21;this.n22=a.n22;this.n23=a.n23;this.n24=a.n24;this.n31=a.n31;this.n32=a.n32;this.n33=a.n33;this.n34=a.n34;this.n41= +a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,c,f){var b=this._x,d=this._y,j=this._z;j.sub(a,c);j.normalize();b.cross(f,j);b.normalize();d.cross(j,b);d.normalize();this.n11=b.x;this.n12=b.y;this.n13=b.z;this.n14=-b.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=j.x;this.n32=j.y;this.n33=j.z;this.n34=-j.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var c=a.x,f=a.y,b=a.z,d=a.w?a.w:1;a.x=this.n11*c+this.n12*f+this.n13*b+this.n14* +d;a.y=this.n21*c+this.n22*f+this.n23*b+this.n24*d;a.z=this.n31*c+this.n32*f+this.n33*b+this.n34*d;d=this.n41*c+this.n42*f+this.n43*b+this.n44*d;if(a.w)a.w=d;else{a.x/=d;a.y/=d;a.z/=d}return a},crossVector:function(a){var c=new THREE.Vector4;c.x=this.n11*a.x+this.n12*a.y+this.n13*a.z+this.n14*a.w;c.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;c.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+this.n34*a.w;c.w=a.w?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return c},multiply:function(a, +c){this.n11=a.n11*c.n11+a.n12*c.n21+a.n13*c.n31+a.n14*c.n41;this.n12=a.n11*c.n12+a.n12*c.n22+a.n13*c.n32+a.n14*c.n42;this.n13=a.n11*c.n13+a.n12*c.n23+a.n13*c.n33+a.n14*c.n43;this.n14=a.n11*c.n14+a.n12*c.n24+a.n13*c.n34+a.n14*c.n44;this.n21=a.n21*c.n11+a.n22*c.n21+a.n23*c.n31+a.n24*c.n41;this.n22=a.n21*c.n12+a.n22*c.n22+a.n23*c.n32+a.n24*c.n42;this.n23=a.n21*c.n13+a.n22*c.n23+a.n23*c.n33+a.n24*c.n43;this.n24=a.n21*c.n14+a.n22*c.n24+a.n23*c.n34+a.n24*c.n44;this.n31=a.n31*c.n11+a.n32*c.n21+a.n33*c.n31+ +a.n34*c.n41;this.n32=a.n31*c.n12+a.n32*c.n22+a.n33*c.n32+a.n34*c.n42;this.n33=a.n31*c.n13+a.n32*c.n23+a.n33*c.n33+a.n34*c.n43;this.n34=a.n31*c.n14+a.n32*c.n24+a.n33*c.n34+a.n34*c.n44;this.n41=a.n41*c.n11+a.n42*c.n21+a.n43*c.n31+a.n44*c.n41;this.n42=a.n41*c.n12+a.n42*c.n22+a.n43*c.n32+a.n44*c.n42;this.n43=a.n41*c.n13+a.n42*c.n23+a.n43*c.n33+a.n44*c.n43;this.n44=a.n41*c.n14+a.n42*c.n24+a.n43*c.n34+a.n44*c.n44},multiplySelf:function(a){var c=this.n11,f=this.n12,b=this.n13,d=this.n14,j=this.n21,o=this.n22, +r=this.n23,e=this.n24,g=this.n31,n=this.n32,i=this.n33,l=this.n34,q=this.n41,p=this.n42,s=this.n43,A=this.n44;this.n11=c*a.n11+f*a.n21+b*a.n31+d*a.n41;this.n12=c*a.n12+f*a.n22+b*a.n32+d*a.n42;this.n13=c*a.n13+f*a.n23+b*a.n33+d*a.n43;this.n14=c*a.n14+f*a.n24+b*a.n34+d*a.n44;this.n21=j*a.n11+o*a.n21+r*a.n31+e*a.n41;this.n22=j*a.n12+o*a.n22+r*a.n32+e*a.n42;this.n23=j*a.n13+o*a.n23+r*a.n33+e*a.n43;this.n24=j*a.n14+o*a.n24+r*a.n34+e*a.n44;this.n31=g*a.n11+n*a.n21+i*a.n31+l*a.n41;this.n32=g*a.n12+n*a.n22+ +i*a.n32+l*a.n42;this.n33=g*a.n13+n*a.n23+i*a.n33+l*a.n43;this.n34=g*a.n14+n*a.n24+i*a.n34+l*a.n44;this.n41=q*a.n11+p*a.n21+s*a.n31+A*a.n41;this.n42=q*a.n12+p*a.n22+s*a.n32+A*a.n42;this.n43=q*a.n13+p*a.n23+s*a.n33+A*a.n43;this.n44=q*a.n14+p*a.n24+s*a.n34+A*a.n44},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a},determinant:function(){return this.n14* +this.n23*this.n32*this.n41-this.n13*this.n24*this.n32*this.n41-this.n14*this.n22*this.n33*this.n41+this.n12*this.n24*this.n33*this.n41+this.n13*this.n22*this.n34*this.n41-this.n12*this.n23*this.n34*this.n41-this.n14*this.n23*this.n31*this.n42+this.n13*this.n24*this.n31*this.n42+this.n14*this.n21*this.n33*this.n42-this.n11*this.n24*this.n33*this.n42-this.n13*this.n21*this.n34*this.n42+this.n11*this.n23*this.n34*this.n42+this.n14*this.n22*this.n31*this.n43-this.n12*this.n24*this.n31*this.n43-this.n14* +this.n21*this.n32*this.n43+this.n11*this.n24*this.n32*this.n43+this.n12*this.n21*this.n34*this.n43-this.n11*this.n22*this.n34*this.n43-this.n13*this.n22*this.n31*this.n44+this.n12*this.n23*this.n31*this.n44+this.n13*this.n21*this.n32*this.n44-this.n11*this.n23*this.n32*this.n44-this.n12*this.n21*this.n33*this.n44+this.n11*this.n22*this.n33*this.n44},transpose:function(){function a(c,f,b){var d=c[f];c[f]=c[b];c[b]=d}a(this,"n21","n12");a(this,"n31","n13");a(this,"n32","n23");a(this,"n41","n14");a(this, +"n42","n24");a(this,"n43","n34");return this},clone:function(){var a=new THREE.Matrix4;a.n11=this.n11;a.n12=this.n12;a.n13=this.n13;a.n14=this.n14;a.n21=this.n21;a.n22=this.n22;a.n23=this.n23;a.n24=this.n24;a.n31=this.n31;a.n32=this.n32;a.n33=this.n33;a.n34=this.n34;a.n41=this.n41;a.n42=this.n42;a.n43=this.n43;a.n44=this.n44;return a},flatten:function(){return[this.n11,this.n21,this.n31,this.n41,this.n12,this.n22,this.n32,this.n42,this.n13,this.n23,this.n33,this.n43,this.n14,this.n24,this.n34,this.n44]}, +toString:function(){return"| "+this.n11+" "+this.n12+" "+this.n13+" "+this.n14+" |\n| "+this.n21+" "+this.n22+" "+this.n23+" "+this.n24+" |\n| "+this.n31+" "+this.n32+" "+this.n33+" "+this.n34+" |\n| "+this.n41+" "+this.n42+" "+this.n43+" "+this.n44+" |"}};THREE.Matrix4.translationMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n14=a;b.n24=c;b.n34=f;return b};THREE.Matrix4.scaleMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n11=a;b.n22=c;b.n33=f;return b}; +THREE.Matrix4.rotationXMatrix=function(a){var c=new THREE.Matrix4;c.n22=c.n33=Math.cos(a);c.n32=Math.sin(a);c.n23=-c.n32;return c};THREE.Matrix4.rotationYMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n33=Math.cos(a);c.n13=Math.sin(a);c.n31=-c.n13;return c};THREE.Matrix4.rotationZMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n22=Math.cos(a);c.n21=Math.sin(a);c.n12=-c.n21;return c}; +THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var f=new THREE.Matrix4,b=Math.cos(c),d=Math.sin(c),j=1-b,o=a.x,r=a.y,e=a.z;f.n11=j*o*o+b;f.n12=j*o*r-d*e;f.n13=j*o*e+d*r;f.n21=j*o*r+d*e;f.n22=j*r*r+b;f.n23=j*r*e-d*o;f.n31=j*o*e-d*r;f.n32=j*r*e+d*o;f.n33=j*e*e+b;return f}; +THREE.Matrix4.makeInvert=function(a){var c=new THREE.Matrix4;c.n11=a.n23*a.n34*a.n42-a.n24*a.n33*a.n42+a.n24*a.n32*a.n43-a.n22*a.n34*a.n43-a.n23*a.n32*a.n44+a.n22*a.n33*a.n44;c.n12=a.n14*a.n33*a.n42-a.n13*a.n34*a.n42-a.n14*a.n32*a.n43+a.n12*a.n34*a.n43+a.n13*a.n32*a.n44-a.n12*a.n33*a.n44;c.n13=a.n13*a.n24*a.n42-a.n14*a.n23*a.n42+a.n14*a.n22*a.n43-a.n12*a.n24*a.n43-a.n13*a.n22*a.n44+a.n12*a.n23*a.n44;c.n14=a.n14*a.n23*a.n32-a.n13*a.n24*a.n32-a.n14*a.n22*a.n33+a.n12*a.n24*a.n33+a.n13*a.n22*a.n34-a.n12* +a.n23*a.n34;c.n21=a.n24*a.n33*a.n41-a.n23*a.n34*a.n41-a.n24*a.n31*a.n43+a.n21*a.n34*a.n43+a.n23*a.n31*a.n44-a.n21*a.n33*a.n44;c.n22=a.n13*a.n34*a.n41-a.n14*a.n33*a.n41+a.n14*a.n31*a.n43-a.n11*a.n34*a.n43-a.n13*a.n31*a.n44+a.n11*a.n33*a.n44;c.n23=a.n14*a.n23*a.n41-a.n13*a.n24*a.n41-a.n14*a.n21*a.n43+a.n11*a.n24*a.n43+a.n13*a.n21*a.n44-a.n11*a.n23*a.n44;c.n24=a.n13*a.n24*a.n31-a.n14*a.n23*a.n31+a.n14*a.n21*a.n33-a.n11*a.n24*a.n33-a.n13*a.n21*a.n34+a.n11*a.n23*a.n34;c.n31=a.n22*a.n34*a.n41-a.n24*a.n32* +a.n41+a.n24*a.n31*a.n42-a.n21*a.n34*a.n42-a.n22*a.n31*a.n44+a.n21*a.n32*a.n44;c.n32=a.n14*a.n32*a.n41-a.n12*a.n34*a.n41-a.n14*a.n31*a.n42+a.n11*a.n34*a.n42+a.n12*a.n31*a.n44-a.n11*a.n32*a.n44;c.n33=a.n13*a.n24*a.n41-a.n14*a.n22*a.n41+a.n14*a.n21*a.n42-a.n11*a.n24*a.n42-a.n12*a.n21*a.n44+a.n11*a.n22*a.n44;c.n34=a.n14*a.n22*a.n31-a.n12*a.n24*a.n31-a.n14*a.n21*a.n32+a.n11*a.n24*a.n32+a.n12*a.n21*a.n34-a.n11*a.n22*a.n34;c.n41=a.n23*a.n32*a.n41-a.n22*a.n33*a.n41-a.n23*a.n31*a.n42+a.n21*a.n33*a.n42+a.n22* +a.n31*a.n43-a.n21*a.n32*a.n43;c.n42=a.n12*a.n33*a.n41-a.n13*a.n32*a.n41+a.n13*a.n31*a.n42-a.n11*a.n33*a.n42-a.n12*a.n31*a.n43+a.n11*a.n32*a.n43;c.n43=a.n13*a.n22*a.n41-a.n12*a.n23*a.n41-a.n13*a.n21*a.n42+a.n11*a.n23*a.n42+a.n12*a.n21*a.n43-a.n11*a.n22*a.n43;c.n44=a.n12*a.n23*a.n31-a.n13*a.n22*a.n31+a.n13*a.n21*a.n32-a.n11*a.n23*a.n32-a.n12*a.n21*a.n33+a.n11*a.n22*a.n33;c.multiplyScalar(1/a.determinant());return c}; +THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=new THREE.Matrix3;var f=c[10]*c[5]-c[6]*c[9],b=-c[10]*c[1]+c[2]*c[9],d=c[6]*c[1]-c[2]*c[5],j=-c[10]*c[4]+c[6]*c[8],o=c[10]*c[0]-c[2]*c[8],r=-c[6]*c[0]+c[2]*c[4],e=c[9]*c[4]-c[5]*c[8],g=-c[9]*c[0]+c[1]*c[8],n=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*j+c[2]*e;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*b;a.m[2]=c*d;a.m[3]=c*j;a.m[4]=c*o;a.m[5]=c*r;a.m[6]=c*e;a.m[7]=c*g;a.m[8]=c*n;return a}; +THREE.Matrix4.makeFrustum=function(a,c,f,b,d,j){var o,r,e;o=new THREE.Matrix4;r=2*d/(c-a);e=2*d/(b-f);a=(c+a)/(c-a);f=(b+f)/(b-f);b=-(j+d)/(j-d);d=-2*j*d/(j-d);o.n11=r;o.n12=0;o.n13=a;o.n14=0;o.n21=0;o.n22=e;o.n23=f;o.n24=0;o.n31=0;o.n32=0;o.n33=b;o.n34=d;o.n41=0;o.n42=0;o.n43=-1;o.n44=0;return o};THREE.Matrix4.makePerspective=function(a,c,f,b){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*c,a*c,d,a,f,b)}; +THREE.Matrix4.makeOrtho=function(a,c,f,b,d,j){var o,r,e,g;o=new THREE.Matrix4;r=c-a;e=f-b;g=j-d;a=(c+a)/r;f=(f+b)/e;d=(j+d)/g;o.n11=2/r;o.n12=0;o.n13=0;o.n14=-a;o.n21=0;o.n22=2/e;o.n23=0;o.n24=-f;o.n31=0;o.n32=0;o.n33=-2/g;o.n34=-d;o.n41=0;o.n42=0;o.n43=0;o.n44=1;return o}; +THREE.Vertex=function(a,c){this.position=a||new THREE.Vector3;this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.normal=c||new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.normalScreen=new THREE.Vector3;this.__visible=true};THREE.Vertex.prototype={toString:function(){return"THREE.Vertex ( position: "+this.position+", normal: "+this.normal+" )"}}; +THREE.Face3=function(a,c,f,b,d){this.a=a;this.b=c;this.c=f;this.centroid=new THREE.Vector3;this.normal=b instanceof THREE.Vector3?b:new THREE.Vector3;this.vertexNormals=b instanceof Array?b:[];this.material=d instanceof Array?d:[d]};THREE.Face3.prototype={toString:function(){return"THREE.Face3 ( "+this.a+", "+this.b+", "+this.c+" )"}}; +THREE.Face4=function(a,c,f,b,d,j){this.a=a;this.b=c;this.c=f;this.d=b;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=j instanceof Array?j:[j]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,c){this.u=a||0;this.v=c||0}; +THREE.UV.prototype={copy:function(a){this.u=a.u;this.v=a.v},toString:function(){return"THREE.UV ("+this.u+", "+this.v+")"}};THREE.Geometry=function(){this.vertices=[];this.faces=[];this.uvs=[]}; +THREE.Geometry.prototype={computeCentroids:function(){var a,c,f;a=0;for(c=this.faces.length;a0){this.bbox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y,this.vertices[0].position.y],z:[this.vertices[0].position.z,this.vertices[0].position.z]};for(var a=1,c=this.vertices.length;a +this.bbox.x[1])this.bbox.x[1]=vertex.position.x;if(vertex.position.ythis.bbox.y[1])this.bbox.y[1]=vertex.position.y;if(vertex.position.zthis.bbox.z[1])this.bbox.z[1]=vertex.position.z}}},toString:function(){return"THREE.Geometry ( vertices: "+this.vertices+", faces: "+this.faces+" )"}}; +THREE.Camera=function(a,c,f,b){this.position=new THREE.Vector3(0,0,0);this.target={position:new THREE.Vector3(0,0,0)};this.up=new THREE.Vector3(0,1,0);this.matrix=new THREE.Matrix4;this.projectionMatrix=THREE.Matrix4.makePerspective(a,c,f,b);this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrix.lookAt(this.position,this.target.position,this.up)};this.toString=function(){return"THREE.Camera ( "+this.position+", "+this.target.position+" )"}}; +THREE.Light=function(a){this.color=new THREE.Color(-16777216|a)};THREE.AmbientLight=function(a){THREE.Light.call(this,a)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight;THREE.DirectionalLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,1,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight; +THREE.PointLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,0,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.PointLight; +THREE.Object3D=function(){this.position=new THREE.Vector3;this.rotation=new THREE.Vector3;this.scale=new THREE.Vector3(1,1,1);this.matrix=new THREE.Matrix4;this.matrixTranslation=new THREE.Matrix4;this.matrixRotation=new THREE.Matrix4;this.matrixScale=new THREE.Matrix4;this.screen=new THREE.Vector3;this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrixPosition=THREE.Matrix4.translationMatrix(this.position.x,this.position.y,this.position.z);this.matrixRotation=THREE.Matrix4.rotationXMatrix(this.rotation.x); +this.matrixRotation.multiplySelf(THREE.Matrix4.rotationYMatrix(this.rotation.y));this.matrixRotation.multiplySelf(THREE.Matrix4.rotationZMatrix(this.rotation.z));this.matrixScale=THREE.Matrix4.scaleMatrix(this.scale.x,this.scale.y,this.scale.z);this.matrix.copy(this.matrixPosition);this.matrix.multiplySelf(this.matrixRotation);this.matrix.multiplySelf(this.matrixScale)}};THREE.Particle=function(a){THREE.Object3D.call(this);this.material=a instanceof Array?a:[a];this.autoUpdateMatrix=false}; +THREE.Particle.prototype=new THREE.Object3D;THREE.Particle.prototype.constructor=THREE.Particle;THREE.Line=function(a,c){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c]};THREE.Line.prototype=new THREE.Object3D;THREE.Line.prototype.constructor=THREE.Line; +THREE.Mesh=function(a,c,f){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c];this.overdraw=this.doubleSided=this.flipSided=false;this.materialFaceGroup={};this.sortFacesByMaterial();f&&this.normalizeUVs();this.geometry.computeBoundingBox()};THREE.Mesh.prototype=new THREE.Object3D;THREE.Mesh.prototype.constructor=THREE.Mesh; +THREE.Mesh.prototype.sortFacesByMaterial=function(){function a(n){var i=[];c=0;for(f=n.length;c65535){g[r].counter+=1;e=g[r].hash+"_"+g[r].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:o,vertices:0}}this.materialFaceGroup[e].faces.push(b);this.materialFaceGroup[e].vertices+=j}};THREE.Mesh.prototype.normalizeUVs=function(){var a,c,f,b,d;a=0;for(c=this.geometry.uvs.length;acolor: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
linewidth: "+ +this.linewidth+"
)"}}; +THREE.MeshBasicMaterial=function(a){this.id=THREE.MeshBasicMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!== +undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshBasicMaterial (
id: "+ +this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
)"}};THREE.MeshBasicMaterialCounter={value:0}; +THREE.MeshLambertMaterial=function(a){this.id=THREE.MeshLambertMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!== +undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshLambertMaterial (
id: "+ +this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
shading: "+this.shading+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_size: "+this.wireframe_linewidth+"
)"}};THREE.MeshLambertMaterialCounter={value:0}; +THREE.MeshPhongMaterial=function(a){this.id=THREE.MeshPhongMaterialCounter.value++;this.color=new THREE.Color(15658734);this.ambient=new THREE.Color(328965);this.specular=new THREE.Color(1118481);this.shininess=30;this.env_map=this.specular_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){if(a.color!==undefined)this.color= +new THREE.Color(a.color);if(a.ambient!==undefined)this.ambient=new THREE.Color(a.ambient);if(a.specular!==undefined)this.specular=new THREE.Color(a.specular);if(a.shininess!==undefined)this.shininess=a.shininess;if(a.map!==undefined)this.map=a.map;if(a.specular_map!==undefined)this.specular_map=a.specular_map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!==undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio= +a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshPhongMaterial (
id: "+this.id+"
color: "+this.color+"
ambient: "+this.ambient+"
specular: "+this.specular+"
shininess: "+this.shininess+ +"
map: "+this.map+"
specular_map: "+this.specular_map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
shading: "+this.shading+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
"+ +")"}};THREE.MeshPhongMaterialCounter={value:0}; +THREE.MeshDepthMaterial=function(a){this.near=1;this.far=1E3;this.opacity=1;this.blending=THREE.NormalBlending;if(a){if(a.near!==undefined)this.near=a.near;if(a.far!==undefined)this.far=a.far;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.__2near=2*this.near;this.__farPlusNear=this.far+this.near;this.__farMinusNear=this.far-this.near;this.toString=function(){return"THREE.MeshDepthMaterial"}}; +THREE.MeshNormalMaterial=function(a){this.opacity=1;this.shading=THREE.FlatShading;this.blending=THREE.NormalBlending;if(a){if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.MeshNormalMaterial"}};THREE.MeshFaceMaterial=function(){this.toString=function(){return"THREE.MeshFaceMaterial"}}; +THREE.MeshCubeMaterial=function(a){this.id=THREE.MeshCubeMaterial.value++;this.env_map=null;this.blending=THREE.NormalBlending;if(a)if(a.env_map!==undefined)this.env_map=a.env_map;this.toString=function(){return"THREE.MeshCubeMaterial( id: "+this.id+"
env_map: "+this.env_map+" )"}};THREE.MeshCubeMaterialCounter={value:0}; +THREE.ParticleBasicMaterial=function(a){this.color=new THREE.Color(16711680);this.map=null;this.opacity=1;this.blending=THREE.NormalBlending;this.offset=new THREE.Vector2;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleBasicMaterial (
color: "+this.color+"
map: "+this.map+"
opacity: "+this.opacity+"
blending: "+ +this.blending+"
)"}};THREE.ParticleCircleMaterial=function(a){this.color=new THREE.Color(16711680);this.opacity=1;this.blending=THREE.NormalBlending;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleCircleMaterial (
color: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
)"}}; +THREE.ParticleDOMMaterial=function(a){this.domElement=a;this.toString=function(){return"THREE.ParticleDOMMaterial ( domElement: "+this.domElement+" )"}};THREE.Texture=function(a,c){this.image=a;this.mapping=c!==undefined?c:THREE.UVMapping;this.toString=function(){return"THREE.Texture (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.UVMapping=0;THREE.ReflectionMap=1;THREE.RefractionMap=2;THREE.Multiply=0;THREE.Mix=1; +THREE.TextureCube=function(a,c){this.image=a;this.mapping=c?c:THREE.ReflectionMap;this.toString=function(){return"THREE.TextureCube (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.loadImageArray=function(a){var c,f=[];for(c=f.loadCount=0;c=0&&P>=0&&M>=0&&y>=0)m=true;else if(h<0&&P<0||M<0&&y<0)m=false;else{if(h<0)m=Math.max(m,h/(h-P));else if(P<0)w=Math.min(w,h/(h-P));if(M<0)m=Math.max(m,M/(M-y));else if(y<0)w=Math.min(w,M/(M-y));if(w0&&t.z<1}E=y.geometry.faces;h=0;for(P=E.length;h< +P;h++){t=E[h];if(t instanceof THREE.Face3){X=S[t.a];D=S[t.b];L=S[t.c];if(X.__visible&&D.__visible&&L.__visible)if(y.doubleSided||y.flipSided!=(L.positionScreen.x-X.positionScreen.x)*(D.positionScreen.y-X.positionScreen.y)-(L.positionScreen.y-X.positionScreen.y)*(D.positionScreen.x-X.positionScreen.x)<0){f=d[b]=d[b]||new THREE.RenderableFace3;f.v1.positionScreen.copy(X.positionScreen);f.v2.positionScreen.copy(D.positionScreen);f.v3.positionScreen.copy(L.positionScreen);f.normalWorld.copy(t.normal); +y.matrixRotation.transform(f.normalWorld);f.centroidWorld.copy(t.centroid);J.transform(f.centroidWorld);f.centroidScreen.copy(f.centroidWorld);s.transform(f.centroidScreen);f.z=f.centroidScreen.z;f.meshMaterial=y.material;f.faceMaterial=t.material;f.overdraw=y.overdraw;f.uvs=y.geometry.uvs[h];f.color=t.color;c.push(f);b++}}else if(t instanceof THREE.Face4){X=S[t.a];D=S[t.b];L=S[t.c];K=S[t.d];if(X.__visible&&D.__visible&&L.__visible&&K.__visible)if(y.doubleSided||y.flipSided!=((K.positionScreen.x- +X.positionScreen.x)*(D.positionScreen.y-X.positionScreen.y)-(K.positionScreen.y-X.positionScreen.y)*(D.positionScreen.x-X.positionScreen.x)<0||(D.positionScreen.x-L.positionScreen.x)*(K.positionScreen.y-L.positionScreen.y)-(D.positionScreen.y-L.positionScreen.y)*(K.positionScreen.x-L.positionScreen.x)<0)){j=r[o]=r[o]||new THREE.RenderableFace4;j.v1.positionScreen.copy(X.positionScreen);j.v2.positionScreen.copy(D.positionScreen);j.v3.positionScreen.copy(L.positionScreen);j.v4.positionScreen.copy(K.positionScreen); +j.normalWorld.copy(t.normal);y.matrixRotation.transform(j.normalWorld);j.centroidWorld.copy(t.centroid);J.transform(j.centroidWorld);j.centroidScreen.copy(j.centroidWorld);s.transform(j.centroidScreen);j.z=j.centroidScreen.z;j.meshMaterial=y.material;j.faceMaterial=t.material;j.overdraw=y.overdraw;j.uvs=y.geometry.uvs[h];j.color=t.color;c.push(j);o++}}}}else if(y instanceof THREE.Line){A.multiply(s,J);S=y.geometry.vertices;h=0;for(P=S.length;h0&&p.z<1){i=q[l]=q[l]||new THREE.RenderableParticle;i.x=p.x/p.w;i.y=p.y/p.w; +i.z=p.z;i.rotation=y.rotation.z;i.scale.x=y.scale.x*Math.abs(i.x-(p.x+B.projectionMatrix.n11)/(p.w+B.projectionMatrix.n14));i.scale.y=y.scale.y*Math.abs(i.y-(p.y+B.projectionMatrix.n22)/(p.w+B.projectionMatrix.n24));i.material=y.material;c.push(i);l++}}}c.sort(function(R,z){return z.z-R.z});return c};this.unprojectVector=function(C,B){var m=new THREE.Matrix4;m.multiply(THREE.Matrix4.makeInvert(B.matrix),THREE.Matrix4.makeInvert(B.projectionMatrix));m.transform(C);return C}}; +THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,c=new THREE.Projector,f,b,d,j;this.domElement=document.createElement("div");this.setSize=function(o,r){f=o;b=r;d=f/2;j=b/2};this.render=function(o,r){var e,g,n,i,l,q,p,s;a=c.projectScene(o,r);e=0;for(g=a.length;e0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}else if(k instanceof THREE.PointLight){Ja.sub(k.position,N.centroidWorld);Ja.normalize();k=N.normalWorld.dot(Ja)*k.intensity;if(k>0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}}}function c(x,N,H,I,k,G){if(k.opacity!=0){o(k.opacity);r(k.blending);L=x.positionScreen.x; +K=x.positionScreen.y;R=N.positionScreen.x;z=N.positionScreen.y;v=H.positionScreen.x;Q=H.positionScreen.y;if(k.map){fa=k.map.image;pa=fa.width-1;qa=fa.height-1;da.u=I.uvs[0].u*pa;da.v=I.uvs[0].v*qa;Z.u=I.uvs[1].u*pa;Z.v=I.uvs[1].v*qa;ea.u=I.uvs[2].u*pa;ea.v=I.uvs[2].v*qa;j(fa,L,K,R,z,v,Q,da.u,da.v,Z.u,Z.v,ea.u,ea.v)}else if(k instanceof THREE.MeshBasicMaterial)b(L,K,R,z,v,Q,k.color,k.wireframe,k.wireframe_linewidth);else if(k instanceof THREE.MeshLambertMaterial){if(Fa){ba.r=ga.r;ba.g=ga.g;ba.b=ga.b; +a(G,I,ba);T.r=k.color.r*ba.r;T.g=k.color.g*ba.g;T.b=k.color.b*ba.b;T.updateStyleString()}else T.__styleString=k.color.__styleString;b(L,K,R,z,v,Q,T,k.wireframe,k.wireframe_linewidth)}else if(k instanceof THREE.MeshDepthMaterial){ra=k.__2near;sa=k.__farPlusNear;ta=k.__farMinusNear;wa=~~((1-ra/(sa-x.positionScreen.z*ta))*255);xa=~~((1-ra/(sa-N.positionScreen.z*ta))*255);na=~~((1-ra/(sa-H.positionScreen.z*ta))*255);fa=i([wa,wa,wa],[xa,xa,xa],[na,na,na],[na,na,na]);da.u=0;da.v=0;Z.u=la;Z.v=0;ea.u=0;ea.v= +la;j(fa,L,K,R,z,v,Q,da.u,da.v,Z.u,Z.v,ea.u,ea.v)}else if(k instanceof THREE.MeshNormalMaterial){T.r=l(I.normalWorld.x);T.g=l(I.normalWorld.y);T.b=l(I.normalWorld.z);T.updateStyleString();b(L,K,R,z,v,Q,T,k.wireframe,k.wireframe_linewidth)}}}function f(x,N,H,I,k,G,U,u,W){if(u.opacity!=0){o(u.opacity);r(u.blending);L=x.positionScreen.x;K=x.positionScreen.y;R=N.positionScreen.x;z=N.positionScreen.y;v=H.positionScreen.x;Q=H.positionScreen.y;ha=I.positionScreen.x;O=I.positionScreen.y;Y=k.positionScreen.x; +ya=k.positionScreen.y;Ka=G.positionScreen.x;La=G.positionScreen.y;if(u.map){fa=u.map.image;pa=fa.width-1;qa=fa.height-1;da.copy(U.uvs[0]);Z.copy(U.uvs[1]);ea.copy(U.uvs[2]);ia.copy(U.uvs[3]);da.u*=pa;da.v*=qa;Z.u*=pa;Z.v*=qa;ea.u*=pa;ea.v*=qa;ia.u*=pa;ia.v*=qa;j(fa,L,K,R,z,ha,O,da.u,da.v,Z.u,Z.v,ia.u,ia.v);j(fa,Y,ya,v,Q,Ka,La,Z.u,Z.v,ea.u,ea.v,ia.u,ia.v)}else if(u instanceof THREE.MeshBasicMaterial)d(L,K,R,z,v,Q,ha,O,u.color,u.wireframe,u.wireframe_linewidth);else if(u instanceof THREE.MeshLambertMaterial){if(Fa){ba.r= +ga.r;ba.g=ga.g;ba.b=ga.b;a(W,U,ba);T.r=u.color.r*ba.r;T.g=u.color.g*ba.g;T.b=u.color.b*ba.b;T.updateStyleString()}else T.__styleString=u.color.__styleString;d(L,K,R,z,v,Q,ha,O,T,u.wireframe,u.wireframe_linewidth)}else if(u instanceof THREE.MeshDepthMaterial){ra=u.__2near;sa=u.__farPlusNear;ta=u.__farMinusNear;wa=~~((1-ra/(sa-x.positionScreen.z*ta))*255);xa=~~((1-ra/(sa-N.positionScreen.z*ta))*255);na=~~((1-ra/(sa-H.positionScreen.z*ta))*255);Ga=~~((1-ra/(sa-I.positionScreen.z*ta))*255);fa=i([wa,wa, +wa],[xa,xa,xa],[Ga,Ga,Ga],[na,na,na]);da.u=0;da.v=0;Z.u=la;Z.v=0;ea.u=la;ea.v=la;ia.u=0;ia.v=la;j(fa,L,K,R,z,ha,O,da.u,da.v,Z.u,Z.v,ia.u,ia.v);j(fa,Y,ya,v,Q,Ka,La,Z.u,Z.v,ea.u,ea.v,ia.u,ia.v)}else if(u instanceof THREE.MeshNormalMaterial){T.r=l(U.normalWorld.x);T.g=l(U.normalWorld.y);T.b=l(U.normalWorld.z);T.updateStyleString();d(L,K,R,z,v,Q,ha,O,T,u.wireframe,u.wireframe_linewidth)}}}function b(x,N,H,I,k,G,U,u,W){h.beginPath();h.moveTo(x,N);h.lineTo(H,I);h.lineTo(k,G);h.lineTo(x,N);h.closePath(); +if(u){e(W);g(U.__styleString);h.stroke();$.inflate(W*2)}else{n(U.__styleString);h.fill()}}function d(x,N,H,I,k,G,U,u,W,F,ca){h.beginPath();h.moveTo(x,N);h.lineTo(H,I);h.lineTo(k,G);h.lineTo(U,u);h.lineTo(x,N);h.closePath();if(F){e(ca);g(W.__styleString);h.stroke();$.inflate(ca*2)}else{n(W.__styleString);h.fill()}}function j(x,N,H,I,k,G,U,u,W,F,ca,ma,ua){h.beginPath();h.moveTo(N,H);h.lineTo(I,k);h.lineTo(G,U);h.closePath();I-=N;k-=H;G-=N;U-=H;F-=u;ca-=W;ma-=u;ua-=W;var va=1/(F*ua-ma*ca),Ba=(ua*I-ca* +G)*va;ca=(ua*k-ca*U)*va;I=(F*G-ma*I)*va;k=(F*U-ma*k)*va;N=N-Ba*u-I*W;H=H-ca*u-k*W;h.save();h.transform(Ba,ca,I,k,N,H);h.clip();h.drawImage(x,0,0);h.restore()}function o(x){if(P!=x)h.globalAlpha=P=x}function r(x){if(M!=x){switch(x){case THREE.NormalBlending:h.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:h.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:h.globalCompositeOperation="darker"}M=x}}function e(x){if(S!=x)h.lineWidth=S=x}function g(x){if(y!= +x)h.strokeStyle=y=x}function n(x){if(J!=x)h.fillStyle=J=x}function i(x,N,H,I){ja[0]=x[0];ja[1]=x[1];ja[2]=x[2];ja[4]=N[0];ja[5]=N[1];ja[6]=N[2];ja[8]=H[0];ja[9]=H[1];ja[10]=H[2];ja[12]=I[0];ja[13]=I[1];ja[14]=I[2];Ca.putImageData(Ma,0,0);Ha.drawImage(Da,0,0);return Ea}function l(x){return x<0?Math.min((1+x)*0.5,0.5):0.5+Math.min(x*0.5,0.5)}function q(x,N){var H=N.x-x.x,I=N.y-x.y,k=1/Math.sqrt(H*H+I*I);H*=k;I*=k;N.x+=H;N.y+=I;x.x-=H;x.y-=I}var p=null,s=new THREE.Projector,A=document.createElement("canvas"), +C,B,m,w,h=A.getContext("2d"),P=1,M=0,y=null,J=null,S=1,E,t,V,aa,X=new THREE.Vertex,D=new THREE.Vertex,L,K,R,z,v,Q,ha,O,Y,ya,Ka,La,wa,xa,na,Ga,ra,sa,ta,fa,pa,qa,oa=new THREE.Rectangle,ka=new THREE.Rectangle,$=new THREE.Rectangle,Fa=false,T=new THREE.Color(4294967295),ba=new THREE.Color(4294967295),ga=new THREE.Color(4278190080),za=new THREE.Color(4278190080),Aa=new THREE.Color(4278190080),Qa=Math.PI*2,Ja=new THREE.Vector3,da=new THREE.UV,Z=new THREE.UV,ea=new THREE.UV,ia=new THREE.UV,Da,Ca,Ma,ja,Ea, +Ha,la=16;Da=document.createElement("canvas");Da.width=Da.height=2;Ca=Da.getContext("2d");Ca.fillStyle="rgba(0,0,0,1)";Ca.fillRect(0,0,2,2);Ma=Ca.getImageData(0,0,2,2);ja=Ma.data;Ea=document.createElement("canvas");Ea.width=Ea.height=la;Ha=Ea.getContext("2d");Ha.translate(-la/2,-la/2);Ha.scale(la,la);la--;this.domElement=A;this.autoClear=true;this.setSize=function(x,N){C=x;B=N;m=C/2;w=B/2;A.width=C;A.height=B;h.lineJoin="round";h.lineCap="round";oa.set(-m,-w,m,w)};this.clear=function(){if(!ka.isEmpty()){ka.inflate(1); +ka.minSelf(oa);h.setTransform(1,0,0,-1,m,w);h.clearRect(ka.getX(),ka.getY(),ka.getWidth(),ka.getHeight());ka.empty()}};this.render=function(x,N){var H,I,k,G,U,u,W,F;this.autoClear&&this.clear();p=s.projectScene(x,N);h.setTransform(1,0,0,-1,m,w);h.fillStyle="rgba(0, 255, 255, 0.5)";h.fillRect(oa.getX(),oa.getY(),oa.getWidth(),oa.getHeight());if(Fa=x.lights.length>0){U=x.lights;ga.setRGB(0,0,0);za.setRGB(0,0,0);Aa.setRGB(0,0,0);H=0;for(I=U.length;H0){K.r+=v.color.r*Q;K.g+=v.color.g*Q;K.b+=v.color.b*Q}}else if(v instanceof THREE.PointLight){J.sub(v.position,L.centroidWorld);J.normalize();Q=L.normalWorld.dot(J)*v.intensity;if(Q>0){K.r+=v.color.r*Q;K.g+=v.color.g*Q;K.b+=v.color.b*Q}}}}function c(D,L,K,R,z,v){t=b(V++);t.setAttribute("d","M "+D.positionScreen.x+ +" "+D.positionScreen.y+" L "+L.positionScreen.x+" "+L.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+"z");if(z instanceof THREE.MeshBasicMaterial)m.__styleString=z.color.__styleString;else if(z instanceof THREE.MeshLambertMaterial)if(B){w.r=h.r;w.g=h.g;w.b=h.b;a(v,R,w);m.r=z.color.r*w.r;m.g=z.color.g*w.g;m.b=z.color.b*w.b;m.updateStyleString()}else m.__styleString=z.color.__styleString;else if(z instanceof THREE.MeshDepthMaterial){y=1-z.__2near/(z.__farPlusNear-R.z*z.__farMinusNear); +m.setRGB(y,y,y)}else z instanceof THREE.MeshNormalMaterial&&m.setRGB(d(R.normalWorld.x),d(R.normalWorld.y),d(R.normalWorld.z));z.wireframe?t.setAttribute("style","fill: none; stroke: "+m.__styleString+"; stroke-width: "+z.wireframe_linewidth+"; stroke-opacity: "+z.opacity+"; stroke-linecap: round; stroke-linejoin: round"):t.setAttribute("style","fill: "+m.__styleString+"; fill-opacity: "+z.opacity);r.appendChild(t)}function f(D,L,K,R,z,v,Q){t=b(V++);t.setAttribute("d","M "+D.positionScreen.x+" "+ +D.positionScreen.y+" L "+L.positionScreen.x+" "+L.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+" L "+R.positionScreen.x+","+R.positionScreen.y+"z");if(v instanceof THREE.MeshBasicMaterial)m.__styleString=v.color.__styleString;else if(v instanceof THREE.MeshLambertMaterial)if(B){w.r=h.r;w.g=h.g;w.b=h.b;a(Q,z,w);m.r=v.color.r*w.r;m.g=v.color.g*w.g;m.b=v.color.b*w.b;m.updateStyleString()}else m.__styleString=v.color.__styleString;else if(v instanceof THREE.MeshDepthMaterial){y=1- +v.__2near/(v.__farPlusNear-z.z*v.__farMinusNear);m.setRGB(y,y,y)}else v instanceof THREE.MeshNormalMaterial&&m.setRGB(d(z.normalWorld.x),d(z.normalWorld.y),d(z.normalWorld.z));v.wireframe?t.setAttribute("style","fill: none; stroke: "+m.__styleString+"; stroke-width: "+v.wireframe_linewidth+"; stroke-opacity: "+v.opacity+"; stroke-linecap: round; stroke-linejoin: round"):t.setAttribute("style","fill: "+m.__styleString+"; fill-opacity: "+v.opacity);r.appendChild(t)}function b(D){if(S[D]==null){S[D]= +document.createElementNS("http://www.w3.org/2000/svg","path");X==0&&S[D].setAttribute("shape-rendering","crispEdges");return S[D]}return S[D]}function d(D){return D<0?Math.min((1+D)*0.5,0.5):0.5+Math.min(D*0.5,0.5)}var j=null,o=new THREE.Projector,r=document.createElementNS("http://www.w3.org/2000/svg","svg"),e,g,n,i,l,q,p,s,A=new THREE.Rectangle,C=new THREE.Rectangle,B=false,m=new THREE.Color(4294967295),w=new THREE.Color(4294967295),h=new THREE.Color(4278190080),P=new THREE.Color(4278190080),M= +new THREE.Color(4278190080),y,J=new THREE.Vector3,S=[],E=[],t,V,aa,X=1;this.domElement=r;this.autoClear=true;this.setQuality=function(D){switch(D){case "high":X=1;break;case "low":X=0}};this.setSize=function(D,L){e=D;g=L;n=e/2;i=g/2;r.setAttribute("viewBox",-n+" "+-i+" "+e+" "+g);r.setAttribute("width",e);r.setAttribute("height",g);A.set(-n,-i,n,i)};this.clear=function(){for(;r.childNodes.length>0;)r.removeChild(r.childNodes[0])};this.render=function(D,L){var K,R,z,v,Q,ha,O,Y;this.autoClear&&this.clear(); +j=o.projectScene(D,L);aa=V=0;if(B=D.lights.length>0){O=D.lights;h.setRGB(0,0,0);P.setRGB(0,0,0);M.setRGB(0,0,0);K=0;for(R=O.length;K= 0.0 )": +"",g?"pointSpecularWeight = pow( pointDotNormalHalf, mShininess );":"",g?"pointDiffuse += mColor * pointDiffuseWeight;":"",g?"pointSpecular += mSpecular * pointSpecularWeight;":"",g?"}":"",e?"vec4 dirDiffuse = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"vec4 dirSpecular = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"vec3 dirVector = normalize( lDirection.xyz );":"",e?"vec3 dirHalfVector = normalize( lDirection.xyz + vViewPosition );": +"",e?"float dirDotNormalHalf = dot( normal, dirHalfVector );":"",e?"float dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );":"",e?"float dirSpecularWeight = 0.0;":"",e?"if ( dirDotNormalHalf >= 0.0 )":"",e?"dirSpecularWeight = pow( dirDotNormalHalf, mShininess );":"",e?"dirDiffuse += mColor * dirDiffuseWeight;":"",e?"dirSpecular += mSpecular * dirSpecularWeight;":"",e?"}":"","vec4 totalLight = mAmbient;",e?"totalLight += dirDiffuse + dirSpecular;":"",g?"totalLight += pointDiffuse + pointSpecular;": +"","if ( mixEnvMap ) {\ngl_FragColor = vec4( mix( mapColor.rgb * totalLight.xyz * vLightWeighting, cubeColor.rgb, mReflectivity ), mapColor.a );\n} else {\ngl_FragColor = vec4( mapColor.rgb * cubeColor.rgb * totalLight.xyz * vLightWeighting, mapColor.a );\n}\n} else if ( material == 1 ) {\nif ( mixEnvMap ) {\ngl_FragColor = vec4( mix( mColor.rgb * mapColor.rgb * vLightWeighting, cubeColor.rgb, mReflectivity ), mColor.a * mapColor.a );\n} else {\ngl_FragColor = vec4( mColor.rgb * mapColor.rgb * cubeColor.rgb * vLightWeighting, mColor.a * mapColor.a );\n}\n} else {\nif ( mixEnvMap ) {\ngl_FragColor = mix( mColor * mapColor, cubeColor, mReflectivity );\n} else {\ngl_FragColor = mColor * mapColor * cubeColor;\n}\n}\n}"].join("\n"))); +b.attachShader(d,c("vertex",[e?"#define MAX_DIR_LIGHTS "+e:"",g?"#define MAX_POINT_LIGHTS "+g:"","attribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\nuniform vec3 cameraPosition;\nuniform bool enableLighting;\nuniform bool useRefract;\nuniform int pointLightNumber;\nuniform int directionalLightNumber;\nuniform vec3 ambientLightColor;",e?"uniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];":"",e?"uniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];":"",g?"uniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];": +"",g?"uniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];":"","uniform mat4 objMatrix;\nuniform mat4 viewMatrix;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat3 normalMatrix;\nvarying vec3 vNormal;\nvarying vec2 vUv;\nvarying vec3 vLightWeighting;",g?"varying vec3 vPointLightVector[ MAX_POINT_LIGHTS ];":"","varying vec3 vViewPosition;\nvarying vec3 vReflect;\nuniform float mRefractionRatio;\nvoid main(void) {\nvec4 mPosition = objMatrix * vec4( position, 1.0 );\nvViewPosition = cameraPosition - mPosition.xyz;\nvec3 nWorld = mat3( objMatrix[0].xyz, objMatrix[1].xyz, objMatrix[2].xyz ) * normal;\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\nvec3 transformedNormal = normalize( normalMatrix * normal );\nif ( !enableLighting ) {\nvLightWeighting = vec3( 1.0, 1.0, 1.0 );\n} else {\nvLightWeighting = ambientLightColor;", +e?"for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"float directionalLightWeighting = max( dot( transformedNormal, normalize(lDirection.xyz ) ), 0.0 );":"",e?"vLightWeighting += directionalLightColor[ i ] * directionalLightWeighting;":"",e?"}":"",g?"for( int i = 0; i < MAX_POINT_LIGHTS; i++ ) {":"",g?"vec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );":"",g?"vPointLightVector[ i ] = normalize( lPosition.xyz - mvPosition.xyz );": +"",g?"float pointLightWeighting = max( dot( transformedNormal, vPointLightVector[ i ] ), 0.0 );":"",g?"vLightWeighting += pointLightColor[ i ] * pointLightWeighting;":"",g?"}":"","}\nvNormal = transformedNormal;\nvUv = uv;\nif ( useRefract ) {\nvReflect = refract( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz), mRefractionRatio );\n} else {\nvReflect = reflect( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz) );\n}\ngl_Position = projectionMatrix * mvPosition;\n}"].join("\n"))); +b.linkProgram(d);if(!b.getProgramParameter(d,b.LINK_STATUS)){alert("Could not initialise shaders");alert("VALIDATE_STATUS: "+b.getProgramParameter(d,b.VALIDATE_STATUS));alert(b.getError())}b.useProgram(d);d.viewMatrix=b.getUniformLocation(d,"viewMatrix");d.modelViewMatrix=b.getUniformLocation(d,"modelViewMatrix");d.projectionMatrix=b.getUniformLocation(d,"projectionMatrix");d.normalMatrix=b.getUniformLocation(d,"normalMatrix");d.objMatrix=b.getUniformLocation(d,"objMatrix");d.cameraPosition=b.getUniformLocation(d, +"cameraPosition");d.enableLighting=b.getUniformLocation(d,"enableLighting");d.ambientLightColor=b.getUniformLocation(d,"ambientLightColor");if(e){d.directionalLightNumber=b.getUniformLocation(d,"directionalLightNumber");d.directionalLightColor=b.getUniformLocation(d,"directionalLightColor");d.directionalLightDirection=b.getUniformLocation(d,"directionalLightDirection")}if(g){d.pointLightNumber=b.getUniformLocation(d,"pointLightNumber");d.pointLightColor=b.getUniformLocation(d,"pointLightColor");d.pointLightPosition= +b.getUniformLocation(d,"pointLightPosition")}d.material=b.getUniformLocation(d,"material");d.mColor=b.getUniformLocation(d,"mColor");d.mOpacity=b.getUniformLocation(d,"mOpacity");d.mReflectivity=b.getUniformLocation(d,"mReflectivity");d.mAmbient=b.getUniformLocation(d,"mAmbient");d.mSpecular=b.getUniformLocation(d,"mSpecular");d.mShininess=b.getUniformLocation(d,"mShininess");d.enableMap=b.getUniformLocation(d,"enableMap");b.uniform1i(d.enableMap,0);d.tMap=b.getUniformLocation(d,"tMap");b.uniform1i(d.tMap, +0);d.enableCubeMap=b.getUniformLocation(d,"enableCubeMap");b.uniform1i(d.enableCubeMap,0);d.tCube=b.getUniformLocation(d,"tCube");b.uniform1i(d.tCube,1);d.mixEnvMap=b.getUniformLocation(d,"mixEnvMap");b.uniform1i(d.mixEnvMap,0);d.mRefractionRatio=b.getUniformLocation(d,"mRefractionRatio");d.useRefract=b.getUniformLocation(d,"useRefract");b.uniform1i(d.useRefract,0);d.m2Near=b.getUniformLocation(d,"m2Near");d.mFarPlusNear=b.getUniformLocation(d,"mFarPlusNear");d.mFarMinusNear=b.getUniformLocation(d, +"mFarMinusNear");d.position=b.getAttribLocation(d,"position");b.enableVertexAttribArray(d.position);d.normal=b.getAttribLocation(d,"normal");b.enableVertexAttribArray(d.normal);d.uv=b.getAttribLocation(d,"uv");b.enableVertexAttribArray(d.uv);d.viewMatrixArray=new Float32Array(16);d.modelViewMatrixArray=new Float32Array(16);d.projectionMatrixArray=new Float32Array(16)})(a.directional,a.point);this.setSize=function(e,g){f.width=e;f.height=g;b.viewport(0,0,f.width,f.height)};this.clear=function(){b.clear(b.COLOR_BUFFER_BIT| +b.DEPTH_BUFFER_BIT)};this.setupLights=function(e){var g,n,i,l,q=[],p=[],s=[];l=[];var A=[];b.uniform1i(d.enableLighting,e.lights.length);g=0;for(n=e.lights.length;g + - + + @@ -77,16 +78,19 @@ r + "py.jpg", r + "ny.jpg", r + "pz.jpg", r + "nz.jpg" ]; - var images = loadImageArray( urls ); + var images = THREE.loadImageArray( urls ); - var material = new THREE.MeshBasicMaterial( { color: 0xffffff, env_map: new THREE.TextureCube( images ) } ) + var textureCube = new THREE.TextureCube( images ); + var material = new THREE.MeshBasicMaterial( { color: 0xffffff, env_map: textureCube } ) var geometry = new Sphere( 100, 96, 64, true ); var mesh = new THREE.Mesh( geometry, material ); mesh.scale.x = mesh.scale.y = mesh.scale.z = 16; scene.addObject( mesh ); - createCube( 6000, images ); + //createCubePlanes( 6000, images ); + //createCube( 6000, images ); + createCubeWebGL( 6000, textureCube ); webglRenderer = new THREE.WebGLRenderer( scene ); webglRenderer.setSize( window.innerWidth, window.innerHeight ); @@ -104,7 +108,7 @@ } - function addMesh( geometry, scale, x, y, z, rx, ry, rz, material ) { + function addCubeMesh( geometry, scale, x, y, z, rx, ry, rz, material ) { mesh = new THREE.Mesh( geometry, material ); mesh.scale.x = mesh.scale.y = mesh.scale.z = scale; @@ -121,34 +125,39 @@ } function createCube( size, images ) { + + var materials = []; + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[1] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[0] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[4] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[5] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[2] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[3] ) } ) ); - var hsize = size/2, plane = new Plane( size, size ), pi2 = Math.PI/2, pi = Math.PI; - - addMesh( plane, 1, 0, 0, -hsize, 0, 0, 0, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[5] ) } ) ); - addMesh( plane, 1, -hsize, 0, 0, 0, pi2, 0, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[0] ) } ) ); - addMesh( plane, 1, hsize, 0, 0, 0, -pi2, 0, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[1] ) } ) ); - addMesh( plane, 1, 0, hsize, 0, pi2, 0, pi, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[2] ) } ) ); - addMesh( plane, 1, 0, -hsize, 0, -pi2, 0, pi, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[3] ) } ) ); + mesh = new THREE.Mesh( new Cube( size, size, size, 1, 1, materials, true ), new THREE.MeshFaceMaterial() ); + scene.addObject( mesh ); } - function loadImageArray( urls ) { + function createCubePlanes( size, images ) { - var i, images = []; + var hsize = size/2, plane = new Plane( size, size ), pi2 = Math.PI/2, pi = Math.PI; - images.loadCount = 0; + addCubeMesh( plane, 1, 0, 0, -hsize, 0, 0, 0, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[5] ) } ) ); + addCubeMesh( plane, 1, -hsize, 0, 0, 0, pi2, 0, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[0] ) } ) ); + addCubeMesh( plane, 1, hsize, 0, 0, 0, -pi2, 0, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[1] ) } ) ); + addCubeMesh( plane, 1, 0, hsize, 0, pi2, 0, pi, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[2] ) } ) ); + addCubeMesh( plane, 1, 0, -hsize, 0, -pi2, 0, pi, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[3] ) } ) ); - for ( i = 0; i < urls.length; ++i ) { - - images[i] = new Image(); - images[i].loaded = 0; - images[i].onload = function() { images.loadCount += 1; this.loaded = 1;/*log( images.loadCount );*/ } - images[i].src = urls[i]; - - } - - return images; + } + function createCubeWebGL( size, textureCube ) { + + var material = new THREE.MeshCubeMaterial( { env_map: textureCube } ); + + mesh = new THREE.Mesh( new Cube( size, size, size, 1, 1, null, true ), material ); + scene.addObject( mesh ); + } function onDocumentMouseMove(event) { diff --git a/examples/materials_cubemap_refraction.html b/examples/materials_cubemap_refraction.html index e7cea08f..da07d172 100644 --- a/examples/materials_cubemap_refraction.html +++ b/examples/materials_cubemap_refraction.html @@ -37,6 +37,7 @@ + @@ -101,12 +102,16 @@ r + "py.jpg", r + "ny.jpg", r + "pz.jpg", r + "nz.jpg" ]; - var images = loadImageArray( urls ); - var cubeMaterial3 = new THREE.MeshBasicMaterial( { color: 0xccddff, env_map: new THREE.TextureCube( images, THREE.RefractionMap ), refraction_ratio: 0.98, reflectivity:0.9 } ); - var cubeMaterial2 = new THREE.MeshBasicMaterial( { color: 0xccfffd, env_map: new THREE.TextureCube( images, THREE.RefractionMap ), refraction_ratio: 0.985 } ); - var cubeMaterial1 = new THREE.MeshBasicMaterial( { color: 0xffffff, env_map: new THREE.TextureCube( images, THREE.RefractionMap ), refraction_ratio: 0.98 } ) + var images = THREE.loadImageArray( urls ); + var textureCube = new THREE.TextureCube( images, THREE.RefractionMap ); - createCube( 10000, images ); + var cubeMaterial3 = new THREE.MeshBasicMaterial( { color: 0xccddff, env_map: textureCube, refraction_ratio: 0.98, reflectivity:0.9 } ); + var cubeMaterial2 = new THREE.MeshBasicMaterial( { color: 0xccfffd, env_map: textureCube, refraction_ratio: 0.985 } ); + var cubeMaterial1 = new THREE.MeshBasicMaterial( { color: 0xffffff, env_map: textureCube, refraction_ratio: 0.98 } ) + + //createCubePlanes( 100000, images ); + //createCube( 100000, images ); + createCubeWebGL( 100000, textureCube ); webglRenderer = new THREE.WebGLRenderer( scene ); webglRenderer.setSize( window.innerWidth, window.innerHeight ); @@ -152,7 +157,7 @@ } - function createCube( size, images ) { + function createCubePlanes( size, images ) { var hsize = size/2, plane = new Plane( size, size ), pi2 = Math.PI/2, pi = Math.PI; @@ -164,6 +169,30 @@ } + function createCubeWebGL( size, textureCube ) { + + var material = new THREE.MeshCubeMaterial( { env_map: textureCube } ); + + mesh = new THREE.Mesh( new Cube( size, size, size, 1, 1, null, true ), material ); + sceneCube.addObject( mesh ); + + } + + function createCube( size, images ) { + + var materials = []; + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[1] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[0] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[4] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[5] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[2] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[3] ) } ) ); + + mesh = new THREE.Mesh( new Cube( size, size, size, 1, 1, materials, true ), new THREE.MeshFaceMaterial() ); + sceneCube.addObject( mesh ); + + } + function createScene( geometry, m1, m2, m3 ) { var s = 1.5, z = -1000; @@ -174,25 +203,6 @@ } - function loadImageArray( urls ) { - - var i, images = []; - - images.loadCount = 0; - - for ( i = 0; i < urls.length; ++i ) { - - images[i] = new Image(); - images[i].loaded = 0; - images[i].onload = function() { images.loadCount += 1; this.loaded = 1;/*log( images.loadCount );*/ } - images[i].src = urls[i]; - - } - - return images; - - } - function onDocumentMouseMove(event) { mouseX = ( event.clientX - windowHalfX ) * 4; diff --git a/examples/materials_cubemap_sky.html b/examples/materials_cubemap_sky.html index 94aa3ccf..70bcfdec 100644 --- a/examples/materials_cubemap_sky.html +++ b/examples/materials_cubemap_sky.html @@ -35,6 +35,7 @@ + @@ -92,26 +93,21 @@ } var r = "textures/skymap_"; - var urls = [ r + "px.jpg", r + "nx.jpg", - r + "py.jpg", r + "ny.jpg", - r + "pz.jpg", r + "nz.jpg" ]; + var urls = [ r + "right1024.jpg", r + "left1024.jpg", + r + "top1024.jpg", r + "bottom1024.jpg", + r + "front1024.jpg", r + "back1024.jpg" ]; - var images = loadImageArray( urls ); - var material = new THREE.MeshBasicMaterial( { color: 0xffffff, env_map: new THREE.TextureCube( images ) } ); + var images = THREE.loadImageArray( urls ); + var textureCube = new THREE.TextureCube( images ); + var material = new THREE.MeshBasicMaterial( { color: 0xffffff, env_map: textureCube } ); var mesh = new THREE.Mesh( geometry, material ); + mesh.position.x = 100; scene.addObject( mesh ); - var materials = []; - - for ( var i = 0; i < 6; i ++ ) { - - materials.push( [ new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[ i ] ) } ) ] ); - - } - - var mesh = new THREE.Mesh( new Cube( 100000, 100000, 100000, 2, 2, materials, true ), new THREE.MeshFaceMaterial() ); - sceneCube.addObject( mesh ); + //createCubePlanes( 100000, images ); + //createCube( 100000, images ); + createCubeWebGL( 100000, textureCube ); webglRenderer = new THREE.WebGLRenderer( scene ); webglRenderer.setSize( window.innerWidth, window.innerHeight ); @@ -130,22 +126,53 @@ } - function loadImageArray( urls ) { + function addCubeMesh( geometry, scale, x, y, z, rx, ry, rz, material ) { - var i, images = []; + mesh = new THREE.Mesh( geometry, material ); + mesh.scale.x = mesh.scale.y = mesh.scale.z = scale; + mesh.position.x = x; + mesh.position.y = y; + mesh.position.z = z; + mesh.rotation.x = rx; + mesh.rotation.y = ry; + mesh.rotation.z = rz; + sceneCube.addObject(mesh); - images.loadCount = 0; + } - for ( i = 0; i < urls.length; ++i ) { + function createCubePlanes( size, images ) { - images[i] = new Image(); - images[i].loaded = 0; - images[i].onload = function() { images.loadCount += 1; this.loaded = 1;/*log( images.loadCount );*/ } - images[i].src = urls[i]; + var hsize = size/2, plane = new Plane( size, size ), pi2 = Math.PI/2, pi = Math.PI; - } + addCubeMesh( plane, 1, 0, 0, -hsize, 0, 0, 0, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[5] ) } ) ); + addCubeMesh( plane, 1, -hsize, 0, 0, 0, pi2, 0, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[0] ) } ) ); + addCubeMesh( plane, 1, hsize, 0, 0, 0, -pi2, 0, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[1] ) } ) ); + addCubeMesh( plane, 1, 0, hsize, 0, pi2, 0, pi, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[2] ) } ) ); + addCubeMesh( plane, 1, 0, -hsize, 0, -pi2, 0, pi, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[3] ) } ) ); - return images; + } + + function createCubeWebGL( size, textureCube ) { + + var material = new THREE.MeshCubeMaterial( { env_map: textureCube } ); + + mesh = new THREE.Mesh( new Cube( size, size, size, 1, 1, null, true ), material ); + sceneCube.addObject( mesh ); + + } + + function createCube( size, images ) { + + var materials = []; + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[1] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[0] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[4] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[5] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[2] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[3] ) } ) ); + + mesh = new THREE.Mesh( new Cube( size, size, size, 1, 1, materials, true ), new THREE.MeshFaceMaterial() ); + sceneCube.addObject( mesh ); } diff --git a/examples/materials_cubemap_sky_refraction.html b/examples/materials_cubemap_sky_refraction.html index aa3d1962..c60989af 100644 --- a/examples/materials_cubemap_sky_refraction.html +++ b/examples/materials_cubemap_sky_refraction.html @@ -36,6 +36,7 @@ + @@ -96,14 +97,17 @@ r + "top1024.jpg", r + "bottom1024.jpg", r + "front1024.jpg", r + "back1024.jpg" ]; - var images = loadImageArray( urls ); - var material = new THREE.MeshBasicMaterial( { color: 0xffffff, env_map: new THREE.TextureCube( images, THREE.RefractionMap ), refraction_ratio: 0.75 } ); + var images = THREE.loadImageArray( urls ); + var textureCube = new THREE.TextureCube( images, THREE.RefractionMap ); + var material = new THREE.MeshBasicMaterial( { color: 0xffffff, env_map: textureCube, refraction_ratio: 0.75 } ); var mesh = new THREE.Mesh( geometry, material ); mesh.position.x = 100; scene.addObject( mesh ); - createCube( 100000, images ); + //createCubePlanes( 100000, images ); + //createCube( 100000, images ); + createCubeWebGL( 100000, textureCube ); webglRenderer = new THREE.WebGLRenderer( scene ); webglRenderer.setSize( window.innerWidth, window.innerHeight ); @@ -136,7 +140,7 @@ } - function createCube( size, images ) { + function createCubePlanes( size, images ) { var hsize = size/2, plane = new Plane( size, size ), pi2 = Math.PI/2, pi = Math.PI; @@ -148,22 +152,27 @@ } - function loadImageArray( urls ) { + function createCubeWebGL( size, textureCube ) { + + var material = new THREE.MeshCubeMaterial( { env_map: textureCube } ); + + mesh = new THREE.Mesh( new Cube( size, size, size, 1, 1, null, true ), material ); + sceneCube.addObject( mesh ); + + } - var i, images = []; + function createCube( size, images ) { + + var materials = []; + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[1] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[0] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[4] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[5] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[2] ) } ) ); + materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[3] ) } ) ); - images.loadCount = 0; - - for ( i = 0; i < urls.length; ++i ) { - - images[i] = new Image(); - images[i].loaded = 0; - images[i].onload = function() { images.loadCount += 1; this.loaded = 1;/*log( images.loadCount );*/ } - images[i].src = urls[i]; - - } - - return images; + mesh = new THREE.Mesh( new Cube( size, size, size, 1, 1, materials, true ), new THREE.MeshFaceMaterial() ); + sceneCube.addObject( mesh ); } diff --git a/src/materials/textures/TextureCube.js b/src/materials/textures/TextureCube.js index d0297492..190b3a8b 100644 --- a/src/materials/textures/TextureCube.js +++ b/src/materials/textures/TextureCube.js @@ -19,3 +19,23 @@ THREE.TextureCube = function ( image, mapping ) { }; }; + +THREE.loadImageArray = function ( urls ) { + + var i, images = []; + + images.loadCount = 0; + + for ( i = 0; i < urls.length; ++i ) { + + images[i] = new Image(); + images[i].loaded = 0; + images[i].onload = function() { images.loadCount += 1; this.loaded = 1; } + images[i].src = urls[i]; + + } + + return images; + +}; + diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index 5352c1a4..444cef95 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -6,8 +6,8 @@ THREE.WebGLRenderer = function ( scene ) { - // Currently you can use just up to 5 directional / point lights total. - // Chrome barfs on shader linking when there are more than 5 lights :( + // Currently you can use just up to 4 directional / point lights total. + // Chrome barfs on shader linking when there are more than 4 lights :( // It seems problem comes from having too many varying vectors. @@ -18,7 +18,7 @@ THREE.WebGLRenderer = function ( scene ) { var _canvas = document.createElement( 'canvas' ), _gl, _program, _modelViewMatrix = new THREE.Matrix4(), _normalMatrix, - BASIC = 0, LAMBERT = 1, PHONG = 2, DEPTH = 3, NORMAL = 4, // material constants used in shader + BASIC = 0, LAMBERT = 1, PHONG = 2, DEPTH = 3, NORMAL = 4, CUBE = 5, // material constants used in shader maxLightCount = allocateLights( scene, 4 ); @@ -460,6 +460,12 @@ THREE.WebGLRenderer = function ( scene ) { _gl.uniform1i( _program.material, BASIC ); + } else if ( material instanceof THREE.MeshCubeMaterial ) { + + _gl.uniform1i( _program.material, CUBE ); + + envMap = material.env_map; + } if ( mMap ) { @@ -496,11 +502,11 @@ THREE.WebGLRenderer = function ( scene ) { material.env_map instanceof THREE.TextureCube && material.env_map.image.length == 6 ) { - if ( !material.__webGLTextureCube && !material.__cubeMapInitialized && material.env_map.image.loadCount == 6 ) { + if ( !material.env_map.image.__webGLTextureCube && !material.env_map.image.__cubeMapInitialized && material.env_map.image.loadCount == 6 ) { - material.__webGLTextureCube = _gl.createTexture(); + material.env_map.image.__webGLTextureCube = _gl.createTexture(); - _gl.bindTexture( _gl.TEXTURE_CUBE_MAP, material.__webGLTextureCube ); + _gl.bindTexture( _gl.TEXTURE_CUBE_MAP, material.env_map.image.__webGLTextureCube ); _gl.texParameteri( _gl.TEXTURE_CUBE_MAP, _gl.TEXTURE_WRAP_S, _gl.CLAMP_TO_EDGE ); _gl.texParameteri( _gl.TEXTURE_CUBE_MAP, _gl.TEXTURE_WRAP_T, _gl.CLAMP_TO_EDGE ); @@ -508,6 +514,8 @@ THREE.WebGLRenderer = function ( scene ) { _gl.texParameteri( _gl.TEXTURE_CUBE_MAP, _gl.TEXTURE_MAG_FILTER, _gl.LINEAR ); _gl.texParameteri( _gl.TEXTURE_CUBE_MAP, _gl.TEXTURE_MIN_FILTER, _gl.LINEAR_MIPMAP_LINEAR ); + //_gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, true ); + _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, material.env_map.image[0] ); _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_NEGATIVE_X, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, material.env_map.image[1] ); _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_Y, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, material.env_map.image[2] ); @@ -515,16 +523,20 @@ THREE.WebGLRenderer = function ( scene ) { _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_Z, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, material.env_map.image[4] ); _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_NEGATIVE_Z, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, material.env_map.image[5] ); + //_gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, false ); + _gl.generateMipmap( _gl.TEXTURE_CUBE_MAP ); _gl.bindTexture( _gl.TEXTURE_CUBE_MAP, null ); - material.__cubeMapInitialized = true; + material.env_map.image.__cubeMapInitialized = true; + + //log( "texture cube initialised " + material ); } _gl.activeTexture( _gl.TEXTURE1 ); - _gl.bindTexture( _gl.TEXTURE_CUBE_MAP, material.__webGLTextureCube ); + _gl.bindTexture( _gl.TEXTURE_CUBE_MAP, material.env_map.image.__webGLTextureCube ); _gl.uniform1i( _program.tCube, 1 ); } @@ -834,7 +846,7 @@ THREE.WebGLRenderer = function ( scene ) { maxDirLights ? "#define MAX_DIR_LIGHTS " + maxDirLights : "", maxPointLights ? "#define MAX_POINT_LIGHTS " + maxPointLights : "", - "uniform int material;", // 0 - Basic, 1 - Lambert, 2 - Phong, 3 - Depth, 4 - Normal + "uniform int material;", // 0 - Basic, 1 - Lambert, 2 - Phong, 3 - Depth, 4 - Normal, 5 - Cube "uniform bool enableMap;", "uniform bool enableCubeMap;", @@ -871,7 +883,9 @@ THREE.WebGLRenderer = function ( scene ) { "varying vec3 vViewPosition;", "varying vec3 vReflect;", - + + "uniform vec3 cameraPosition;", + "void main() {", "vec4 mapColor = vec4( 1.0, 1.0, 1.0, 1.0 );", @@ -893,9 +907,16 @@ THREE.WebGLRenderer = function ( scene ) { "}", + // Cube + + "if ( material == 5 ) { ", + + "vec3 wPos = cameraPosition - vViewPosition;", + "gl_FragColor = textureCube( tCube, vec3( -wPos.x, wPos.yz ) );", + // Normals - "if ( material == 4 ) { ", + "} else if ( material == 4 ) { ", "gl_FragColor = vec4( 0.5*normalize( vNormal ) + vec3(0.5, 0.5, 0.5), mOpacity );", diff --git a/utils/build.py b/utils/build.py index c0d4960c..cb707ba0 100644 --- a/utils/build.py +++ b/utils/build.py @@ -116,6 +116,7 @@ def buildFull(debug): 'materials/MeshDepthMaterial.js', 'materials/MeshNormalMaterial.js', 'materials/MeshFaceMaterial.js', + 'materials/MeshCubeMaterial.js', 'materials/ParticleBasicMaterial.js', 'materials/ParticleCircleMaterial.js', 'materials/ParticleDOMMaterial.js', @@ -219,6 +220,7 @@ def buildWebGL(debug): 'materials/MeshDepthMaterial.js', 'materials/MeshNormalMaterial.js', 'materials/MeshFaceMaterial.js', + 'materials/MeshCubeMaterial.js', 'materials/ParticleBasicMaterial.js', 'materials/ParticleCircleMaterial.js', 'materials/textures/Texture.js', From 3ce86f1a5ba960d08d234f1c362bb8f3284f79fb Mon Sep 17 00:00:00 2001 From: "Mr.doob" Date: Mon, 22 Nov 2010 08:49:45 +0000 Subject: [PATCH 3/4] =?UTF-8?q?THREE.loadImageArray=20=E2=9F=B6=20ImageUti?= =?UTF-8?q?ls.loadArray=20Made=20up=20MeshCubeMaterial=20(missing=20from?= =?UTF-8?q?=20alteredq=20branch)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/Three.js | 323 +++++++++--------- build/ThreeDebug.js | 323 +++++++++--------- examples/materials_cubemap.html | 5 +- examples/materials_cubemap_escher.html | 3 +- examples/materials_cubemap_refraction.html | 3 +- examples/materials_cubemap_sky.html | 9 +- .../materials_cubemap_sky_refraction.html | 9 +- src/extras/ImageUtils.js | 22 ++ src/materials/MeshCubeMaterial.js | 80 +++++ src/materials/textures/TextureCube.js | 20 -- 10 files changed, 445 insertions(+), 352 deletions(-) create mode 100644 src/extras/ImageUtils.js create mode 100644 src/materials/MeshCubeMaterial.js diff --git a/build/Three.js b/build/Three.js index 9fc8a12a..196e0982 100644 --- a/build/Three.js +++ b/build/Three.js @@ -1,160 +1,163 @@ -// Three.js r29 - http://github.com/mrdoob/three.js -var THREE=THREE||{};THREE.Color=function(a){this.autoUpdate=true;this.setHex(a)}; -THREE.Color.prototype={setRGB:function(a,c,f){this.r=a;this.g=c;this.b=f;if(this.autoUpdate){this.updateHex();this.updateStyleString()}},setHex:function(a){this.hex=~~a&16777215;if(this.autoUpdate){this.updateRGBA();this.updateStyleString()}},updateHex:function(){this.hex=~~(this.r*255)<<16^~~(this.g*255)<<8^~~(this.b*255)},updateRGBA:function(){this.r=(this.hex>>16&255)/255;this.g=(this.hex>>8&255)/255;this.b=(this.hex&255)/255},updateStyleString:function(){this.__styleString="rgb("+~~(this.r*255)+ -","+~~(this.g*255)+","+~~(this.b*255)+")"},toString:function(){return"THREE.Color ( r: "+this.r+", g: "+this.g+", b: "+this.b+", hex: "+this.hex+" )"}};THREE.Vector2=function(a,c){this.x=a||0;this.y=c||0}; -THREE.Vector2.prototype={set:function(a,c){this.x=a;this.y=c;return this},copy:function(a){this.x=a.x;this.y=a.y;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},unit:function(){this.multiplyScalar(1/this.length());return this},length:function(){return Math.sqrt(this.x* -this.x+this.y*this.y)},lengthSq:function(){return this.x*this.x+this.y*this.y},negate:function(){this.x=-this.x;this.y=-this.y;return this},clone:function(){return new THREE.Vector2(this.x,this.y)},toString:function(){return"THREE.Vector2 ("+this.x+", "+this.y+")"}};THREE.Vector3=function(a,c,f){this.x=a||0;this.y=c||0;this.z=f||0}; -THREE.Vector3.prototype={set:function(a,c,f){this.x=a;this.y=c;this.z=f;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;return this}, -cross:function(a,c){this.x=a.y*c.z-a.z*c.y;this.y=a.z*c.x-a.x*c.z;this.z=a.x*c.y-a.y*c.x;return this},crossSelf:function(a){var c=this.x,f=this.y,b=this.z;this.x=f*a.z-b*a.y;this.y=b*a.x-c*a.z;this.z=c*a.y-f*a.x;return this},multiplySelf:function(a){this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))}, -distanceToSquared:function(a){var c=this.x-a.x,f=this.y-a.y;a=this.z-a.z;return c*c+f*f+a*a},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},normalize:function(){this.length()>0?this.multiplyScalar(1/this.length()):this.multiplyScalar(0);return this},setLength:function(a){return this.normalize().multiplyScalar(a)},isZero:function(){return Math.abs(this.x)< -1.0E-4&&Math.abs(this.y)<1.0E-4&&Math.abs(this.z)<1.0E-4},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)},toString:function(){return"THREE.Vector3 ( "+this.x+", "+this.y+", "+this.z+" )"}};THREE.Vector4=function(a,c,f,b){this.x=a||0;this.y=c||0;this.z=f||0;this.w=b||1}; -THREE.Vector4.prototype={set:function(a,c,f,b){this.x=a;this.y=c;this.z=f;this.w=b;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=a.w||1;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;this.w=a.w+c.w;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;this.w=a.w-c.w;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w; -return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;this.w/=a;return this},lerpSelf:function(a,c){this.x+=(a.x-this.x)*c;this.y+=(a.y-this.y)*c;this.z+=(a.z-this.z)*c;this.w+=(a.w-this.w)*c},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},toString:function(){return"THREE.Vector4 ("+this.x+", "+this.y+", "+this.z+", "+this.w+")"}}; -THREE.Ray=function(a,c){this.origin=a||new THREE.Vector3;this.direction=c||new THREE.Vector3}; -THREE.Ray.prototype={intersectScene:function(a){var c,f,b=a.objects,d=[];a=0;for(c=b.length;a0&&A>0&&i+A<1}var f,b,d,j,o,r,e,g,n,h, -l,q=a.geometry,p=q.vertices,s=[];f=0;for(b=q.faces.length;f= -0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){r=true;d=b=f=c=0;a()};this.isEmpty=function(){return r};this.toString=function(){return"THREE.Rectangle ( left: "+c+", right: "+b+", top: "+f+", bottom: "+d+", width: "+j+", height: "+o+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; -THREE.Matrix4=function(){this._x=new THREE.Vector3;this._y=new THREE.Vector3;this._z=new THREE.Vector3}; -THREE.Matrix4.prototype={n11:1,n12:0,n13:0,n14:0,n21:0,n22:1,n23:0,n24:0,n31:0,n32:0,n33:1,n34:0,n41:0,n42:0,n43:0,n44:1,identity:function(){this.n11=1;this.n21=this.n14=this.n13=this.n12=0;this.n22=1;this.n32=this.n31=this.n24=this.n23=0;this.n33=1;this.n43=this.n42=this.n41=this.n34=0;this.n44=1},copy:function(a){this.n11=a.n11;this.n12=a.n12;this.n13=a.n13;this.n14=a.n14;this.n21=a.n21;this.n22=a.n22;this.n23=a.n23;this.n24=a.n24;this.n31=a.n31;this.n32=a.n32;this.n33=a.n33;this.n34=a.n34;this.n41= -a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,c,f){var b=this._x,d=this._y,j=this._z;j.sub(a,c);j.normalize();b.cross(f,j);b.normalize();d.cross(j,b);d.normalize();this.n11=b.x;this.n12=b.y;this.n13=b.z;this.n14=-b.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=j.x;this.n32=j.y;this.n33=j.z;this.n34=-j.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var c=a.x,f=a.y,b=a.z,d=a.w?a.w:1;a.x=this.n11*c+this.n12*f+this.n13*b+this.n14* -d;a.y=this.n21*c+this.n22*f+this.n23*b+this.n24*d;a.z=this.n31*c+this.n32*f+this.n33*b+this.n34*d;d=this.n41*c+this.n42*f+this.n43*b+this.n44*d;if(a.w)a.w=d;else{a.x/=d;a.y/=d;a.z/=d}return a},crossVector:function(a){var c=new THREE.Vector4;c.x=this.n11*a.x+this.n12*a.y+this.n13*a.z+this.n14*a.w;c.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;c.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+this.n34*a.w;c.w=a.w?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return c},multiply:function(a, -c){this.n11=a.n11*c.n11+a.n12*c.n21+a.n13*c.n31+a.n14*c.n41;this.n12=a.n11*c.n12+a.n12*c.n22+a.n13*c.n32+a.n14*c.n42;this.n13=a.n11*c.n13+a.n12*c.n23+a.n13*c.n33+a.n14*c.n43;this.n14=a.n11*c.n14+a.n12*c.n24+a.n13*c.n34+a.n14*c.n44;this.n21=a.n21*c.n11+a.n22*c.n21+a.n23*c.n31+a.n24*c.n41;this.n22=a.n21*c.n12+a.n22*c.n22+a.n23*c.n32+a.n24*c.n42;this.n23=a.n21*c.n13+a.n22*c.n23+a.n23*c.n33+a.n24*c.n43;this.n24=a.n21*c.n14+a.n22*c.n24+a.n23*c.n34+a.n24*c.n44;this.n31=a.n31*c.n11+a.n32*c.n21+a.n33*c.n31+ -a.n34*c.n41;this.n32=a.n31*c.n12+a.n32*c.n22+a.n33*c.n32+a.n34*c.n42;this.n33=a.n31*c.n13+a.n32*c.n23+a.n33*c.n33+a.n34*c.n43;this.n34=a.n31*c.n14+a.n32*c.n24+a.n33*c.n34+a.n34*c.n44;this.n41=a.n41*c.n11+a.n42*c.n21+a.n43*c.n31+a.n44*c.n41;this.n42=a.n41*c.n12+a.n42*c.n22+a.n43*c.n32+a.n44*c.n42;this.n43=a.n41*c.n13+a.n42*c.n23+a.n43*c.n33+a.n44*c.n43;this.n44=a.n41*c.n14+a.n42*c.n24+a.n43*c.n34+a.n44*c.n44},multiplySelf:function(a){var c=this.n11,f=this.n12,b=this.n13,d=this.n14,j=this.n21,o=this.n22, -r=this.n23,e=this.n24,g=this.n31,n=this.n32,h=this.n33,l=this.n34,q=this.n41,p=this.n42,s=this.n43,A=this.n44;this.n11=c*a.n11+f*a.n21+b*a.n31+d*a.n41;this.n12=c*a.n12+f*a.n22+b*a.n32+d*a.n42;this.n13=c*a.n13+f*a.n23+b*a.n33+d*a.n43;this.n14=c*a.n14+f*a.n24+b*a.n34+d*a.n44;this.n21=j*a.n11+o*a.n21+r*a.n31+e*a.n41;this.n22=j*a.n12+o*a.n22+r*a.n32+e*a.n42;this.n23=j*a.n13+o*a.n23+r*a.n33+e*a.n43;this.n24=j*a.n14+o*a.n24+r*a.n34+e*a.n44;this.n31=g*a.n11+n*a.n21+h*a.n31+l*a.n41;this.n32=g*a.n12+n*a.n22+ -h*a.n32+l*a.n42;this.n33=g*a.n13+n*a.n23+h*a.n33+l*a.n43;this.n34=g*a.n14+n*a.n24+h*a.n34+l*a.n44;this.n41=q*a.n11+p*a.n21+s*a.n31+A*a.n41;this.n42=q*a.n12+p*a.n22+s*a.n32+A*a.n42;this.n43=q*a.n13+p*a.n23+s*a.n33+A*a.n43;this.n44=q*a.n14+p*a.n24+s*a.n34+A*a.n44},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a},determinant:function(){return this.n14* -this.n23*this.n32*this.n41-this.n13*this.n24*this.n32*this.n41-this.n14*this.n22*this.n33*this.n41+this.n12*this.n24*this.n33*this.n41+this.n13*this.n22*this.n34*this.n41-this.n12*this.n23*this.n34*this.n41-this.n14*this.n23*this.n31*this.n42+this.n13*this.n24*this.n31*this.n42+this.n14*this.n21*this.n33*this.n42-this.n11*this.n24*this.n33*this.n42-this.n13*this.n21*this.n34*this.n42+this.n11*this.n23*this.n34*this.n42+this.n14*this.n22*this.n31*this.n43-this.n12*this.n24*this.n31*this.n43-this.n14* -this.n21*this.n32*this.n43+this.n11*this.n24*this.n32*this.n43+this.n12*this.n21*this.n34*this.n43-this.n11*this.n22*this.n34*this.n43-this.n13*this.n22*this.n31*this.n44+this.n12*this.n23*this.n31*this.n44+this.n13*this.n21*this.n32*this.n44-this.n11*this.n23*this.n32*this.n44-this.n12*this.n21*this.n33*this.n44+this.n11*this.n22*this.n33*this.n44},transpose:function(){function a(c,f,b){var d=c[f];c[f]=c[b];c[b]=d}a(this,"n21","n12");a(this,"n31","n13");a(this,"n32","n23");a(this,"n41","n14");a(this, -"n42","n24");a(this,"n43","n34");return this},clone:function(){var a=new THREE.Matrix4;a.n11=this.n11;a.n12=this.n12;a.n13=this.n13;a.n14=this.n14;a.n21=this.n21;a.n22=this.n22;a.n23=this.n23;a.n24=this.n24;a.n31=this.n31;a.n32=this.n32;a.n33=this.n33;a.n34=this.n34;a.n41=this.n41;a.n42=this.n42;a.n43=this.n43;a.n44=this.n44;return a},flatten:function(){return[this.n11,this.n21,this.n31,this.n41,this.n12,this.n22,this.n32,this.n42,this.n13,this.n23,this.n33,this.n43,this.n14,this.n24,this.n34,this.n44]}, -toString:function(){return"| "+this.n11+" "+this.n12+" "+this.n13+" "+this.n14+" |\n| "+this.n21+" "+this.n22+" "+this.n23+" "+this.n24+" |\n| "+this.n31+" "+this.n32+" "+this.n33+" "+this.n34+" |\n| "+this.n41+" "+this.n42+" "+this.n43+" "+this.n44+" |"}};THREE.Matrix4.translationMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n14=a;b.n24=c;b.n34=f;return b};THREE.Matrix4.scaleMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n11=a;b.n22=c;b.n33=f;return b}; -THREE.Matrix4.rotationXMatrix=function(a){var c=new THREE.Matrix4;c.n22=c.n33=Math.cos(a);c.n32=Math.sin(a);c.n23=-c.n32;return c};THREE.Matrix4.rotationYMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n33=Math.cos(a);c.n13=Math.sin(a);c.n31=-c.n13;return c};THREE.Matrix4.rotationZMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n22=Math.cos(a);c.n21=Math.sin(a);c.n12=-c.n21;return c}; -THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var f=new THREE.Matrix4,b=Math.cos(c),d=Math.sin(c),j=1-b,o=a.x,r=a.y,e=a.z;f.n11=j*o*o+b;f.n12=j*o*r-d*e;f.n13=j*o*e+d*r;f.n21=j*o*r+d*e;f.n22=j*r*r+b;f.n23=j*r*e-d*o;f.n31=j*o*e-d*r;f.n32=j*r*e+d*o;f.n33=j*e*e+b;return f}; -THREE.Matrix4.makeInvert=function(a){var c=new THREE.Matrix4;c.n11=a.n23*a.n34*a.n42-a.n24*a.n33*a.n42+a.n24*a.n32*a.n43-a.n22*a.n34*a.n43-a.n23*a.n32*a.n44+a.n22*a.n33*a.n44;c.n12=a.n14*a.n33*a.n42-a.n13*a.n34*a.n42-a.n14*a.n32*a.n43+a.n12*a.n34*a.n43+a.n13*a.n32*a.n44-a.n12*a.n33*a.n44;c.n13=a.n13*a.n24*a.n42-a.n14*a.n23*a.n42+a.n14*a.n22*a.n43-a.n12*a.n24*a.n43-a.n13*a.n22*a.n44+a.n12*a.n23*a.n44;c.n14=a.n14*a.n23*a.n32-a.n13*a.n24*a.n32-a.n14*a.n22*a.n33+a.n12*a.n24*a.n33+a.n13*a.n22*a.n34-a.n12* -a.n23*a.n34;c.n21=a.n24*a.n33*a.n41-a.n23*a.n34*a.n41-a.n24*a.n31*a.n43+a.n21*a.n34*a.n43+a.n23*a.n31*a.n44-a.n21*a.n33*a.n44;c.n22=a.n13*a.n34*a.n41-a.n14*a.n33*a.n41+a.n14*a.n31*a.n43-a.n11*a.n34*a.n43-a.n13*a.n31*a.n44+a.n11*a.n33*a.n44;c.n23=a.n14*a.n23*a.n41-a.n13*a.n24*a.n41-a.n14*a.n21*a.n43+a.n11*a.n24*a.n43+a.n13*a.n21*a.n44-a.n11*a.n23*a.n44;c.n24=a.n13*a.n24*a.n31-a.n14*a.n23*a.n31+a.n14*a.n21*a.n33-a.n11*a.n24*a.n33-a.n13*a.n21*a.n34+a.n11*a.n23*a.n34;c.n31=a.n22*a.n34*a.n41-a.n24*a.n32* -a.n41+a.n24*a.n31*a.n42-a.n21*a.n34*a.n42-a.n22*a.n31*a.n44+a.n21*a.n32*a.n44;c.n32=a.n14*a.n32*a.n41-a.n12*a.n34*a.n41-a.n14*a.n31*a.n42+a.n11*a.n34*a.n42+a.n12*a.n31*a.n44-a.n11*a.n32*a.n44;c.n33=a.n13*a.n24*a.n41-a.n14*a.n22*a.n41+a.n14*a.n21*a.n42-a.n11*a.n24*a.n42-a.n12*a.n21*a.n44+a.n11*a.n22*a.n44;c.n34=a.n14*a.n22*a.n31-a.n12*a.n24*a.n31-a.n14*a.n21*a.n32+a.n11*a.n24*a.n32+a.n12*a.n21*a.n34-a.n11*a.n22*a.n34;c.n41=a.n23*a.n32*a.n41-a.n22*a.n33*a.n41-a.n23*a.n31*a.n42+a.n21*a.n33*a.n42+a.n22* -a.n31*a.n43-a.n21*a.n32*a.n43;c.n42=a.n12*a.n33*a.n41-a.n13*a.n32*a.n41+a.n13*a.n31*a.n42-a.n11*a.n33*a.n42-a.n12*a.n31*a.n43+a.n11*a.n32*a.n43;c.n43=a.n13*a.n22*a.n41-a.n12*a.n23*a.n41-a.n13*a.n21*a.n42+a.n11*a.n23*a.n42+a.n12*a.n21*a.n43-a.n11*a.n22*a.n43;c.n44=a.n12*a.n23*a.n31-a.n13*a.n22*a.n31+a.n13*a.n21*a.n32-a.n11*a.n23*a.n32-a.n12*a.n21*a.n33+a.n11*a.n22*a.n33;c.multiplyScalar(1/a.determinant());return c}; -THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=new THREE.Matrix3;var f=c[10]*c[5]-c[6]*c[9],b=-c[10]*c[1]+c[2]*c[9],d=c[6]*c[1]-c[2]*c[5],j=-c[10]*c[4]+c[6]*c[8],o=c[10]*c[0]-c[2]*c[8],r=-c[6]*c[0]+c[2]*c[4],e=c[9]*c[4]-c[5]*c[8],g=-c[9]*c[0]+c[1]*c[8],n=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*j+c[2]*e;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*b;a.m[2]=c*d;a.m[3]=c*j;a.m[4]=c*o;a.m[5]=c*r;a.m[6]=c*e;a.m[7]=c*g;a.m[8]=c*n;return a}; -THREE.Matrix4.makeFrustum=function(a,c,f,b,d,j){var o,r,e;o=new THREE.Matrix4;r=2*d/(c-a);e=2*d/(b-f);a=(c+a)/(c-a);f=(b+f)/(b-f);b=-(j+d)/(j-d);d=-2*j*d/(j-d);o.n11=r;o.n12=0;o.n13=a;o.n14=0;o.n21=0;o.n22=e;o.n23=f;o.n24=0;o.n31=0;o.n32=0;o.n33=b;o.n34=d;o.n41=0;o.n42=0;o.n43=-1;o.n44=0;return o};THREE.Matrix4.makePerspective=function(a,c,f,b){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*c,a*c,d,a,f,b)}; -THREE.Matrix4.makeOrtho=function(a,c,f,b,d,j){var o,r,e,g;o=new THREE.Matrix4;r=c-a;e=f-b;g=j-d;a=(c+a)/r;f=(f+b)/e;d=(j+d)/g;o.n11=2/r;o.n12=0;o.n13=0;o.n14=-a;o.n21=0;o.n22=2/e;o.n23=0;o.n24=-f;o.n31=0;o.n32=0;o.n33=-2/g;o.n34=-d;o.n41=0;o.n42=0;o.n43=0;o.n44=1;return o}; -THREE.Vertex=function(a,c){this.position=a||new THREE.Vector3;this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.normal=c||new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.normalScreen=new THREE.Vector3;this.__visible=true};THREE.Vertex.prototype={toString:function(){return"THREE.Vertex ( position: "+this.position+", normal: "+this.normal+" )"}}; -THREE.Face3=function(a,c,f,b,d){this.a=a;this.b=c;this.c=f;this.centroid=new THREE.Vector3;this.normal=b instanceof THREE.Vector3?b:new THREE.Vector3;this.vertexNormals=b instanceof Array?b:[];this.material=d instanceof Array?d:[d]};THREE.Face3.prototype={toString:function(){return"THREE.Face3 ( "+this.a+", "+this.b+", "+this.c+" )"}}; -THREE.Face4=function(a,c,f,b,d,j){this.a=a;this.b=c;this.c=f;this.d=b;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=j instanceof Array?j:[j]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,c){this.u=a||0;this.v=c||0}; -THREE.UV.prototype={copy:function(a){this.u=a.u;this.v=a.v},toString:function(){return"THREE.UV ("+this.u+", "+this.v+")"}};THREE.Geometry=function(){this.vertices=[];this.faces=[];this.uvs=[]}; -THREE.Geometry.prototype={computeCentroids:function(){var a,c,f;a=0;for(c=this.faces.length;a0){this.bbox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y,this.vertices[0].position.y],z:[this.vertices[0].position.z,this.vertices[0].position.z]};for(var a=1,c=this.vertices.length;a -this.bbox.x[1])this.bbox.x[1]=vertex.position.x;if(vertex.position.ythis.bbox.y[1])this.bbox.y[1]=vertex.position.y;if(vertex.position.zthis.bbox.z[1])this.bbox.z[1]=vertex.position.z}}},toString:function(){return"THREE.Geometry ( vertices: "+this.vertices+", faces: "+this.faces+" )"}}; -THREE.Camera=function(a,c,f,b){this.position=new THREE.Vector3(0,0,0);this.target={position:new THREE.Vector3(0,0,0)};this.up=new THREE.Vector3(0,1,0);this.matrix=new THREE.Matrix4;this.projectionMatrix=THREE.Matrix4.makePerspective(a,c,f,b);this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrix.lookAt(this.position,this.target.position,this.up)};this.toString=function(){return"THREE.Camera ( "+this.position+", "+this.target.position+" )"}}; -THREE.Light=function(a){this.color=new THREE.Color(-16777216|a)};THREE.AmbientLight=function(a){THREE.Light.call(this,a)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight;THREE.DirectionalLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,1,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight; -THREE.PointLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,0,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.PointLight; -THREE.Object3D=function(){this.position=new THREE.Vector3;this.rotation=new THREE.Vector3;this.scale=new THREE.Vector3(1,1,1);this.matrix=new THREE.Matrix4;this.matrixTranslation=new THREE.Matrix4;this.matrixRotation=new THREE.Matrix4;this.matrixScale=new THREE.Matrix4;this.screen=new THREE.Vector3;this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrixPosition=THREE.Matrix4.translationMatrix(this.position.x,this.position.y,this.position.z);this.matrixRotation=THREE.Matrix4.rotationXMatrix(this.rotation.x); -this.matrixRotation.multiplySelf(THREE.Matrix4.rotationYMatrix(this.rotation.y));this.matrixRotation.multiplySelf(THREE.Matrix4.rotationZMatrix(this.rotation.z));this.matrixScale=THREE.Matrix4.scaleMatrix(this.scale.x,this.scale.y,this.scale.z);this.matrix.copy(this.matrixPosition);this.matrix.multiplySelf(this.matrixRotation);this.matrix.multiplySelf(this.matrixScale)}};THREE.Particle=function(a){THREE.Object3D.call(this);this.material=a instanceof Array?a:[a];this.autoUpdateMatrix=false}; -THREE.Particle.prototype=new THREE.Object3D;THREE.Particle.prototype.constructor=THREE.Particle;THREE.Line=function(a,c){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c]};THREE.Line.prototype=new THREE.Object3D;THREE.Line.prototype.constructor=THREE.Line; -THREE.Mesh=function(a,c,f){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c];this.overdraw=this.doubleSided=this.flipSided=false;this.materialFaceGroup={};this.sortFacesByMaterial();f&&this.normalizeUVs();this.geometry.computeBoundingBox()};THREE.Mesh.prototype=new THREE.Object3D;THREE.Mesh.prototype.constructor=THREE.Mesh; -THREE.Mesh.prototype.sortFacesByMaterial=function(){function a(n){var h=[];c=0;for(f=n.length;c65535){g[r].counter+=1;e=g[r].hash+"_"+g[r].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:o,vertices:0}}this.materialFaceGroup[e].faces.push(b);this.materialFaceGroup[e].vertices+=j}};THREE.Mesh.prototype.normalizeUVs=function(){var a,c,f,b,d;a=0;for(c=this.geometry.uvs.length;acolor: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
linewidth: "+ -this.linewidth+"
)"}}; -THREE.MeshBasicMaterial=function(a){this.id=THREE.MeshBasicMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!== -undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshBasicMaterial (
id: "+ -this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
)"}};THREE.MeshBasicMaterialCounter={value:0}; -THREE.MeshLambertMaterial=function(a){this.id=THREE.MeshLambertMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!== -undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshLambertMaterial (
id: "+ -this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
shading: "+this.shading+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_size: "+this.wireframe_linewidth+"
)"}};THREE.MeshLambertMaterialCounter={value:0}; -THREE.MeshPhongMaterial=function(a){this.id=THREE.MeshPhongMaterialCounter.value++;this.color=new THREE.Color(15658734);this.ambient=new THREE.Color(328965);this.specular=new THREE.Color(1118481);this.shininess=30;this.env_map=this.specular_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){if(a.color!==undefined)this.color= -new THREE.Color(a.color);if(a.ambient!==undefined)this.ambient=new THREE.Color(a.ambient);if(a.specular!==undefined)this.specular=new THREE.Color(a.specular);if(a.shininess!==undefined)this.shininess=a.shininess;if(a.map!==undefined)this.map=a.map;if(a.specular_map!==undefined)this.specular_map=a.specular_map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!==undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio= -a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshPhongMaterial (
id: "+this.id+"
color: "+this.color+"
ambient: "+this.ambient+"
specular: "+this.specular+"
shininess: "+this.shininess+ -"
map: "+this.map+"
specular_map: "+this.specular_map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
shading: "+this.shading+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
"+ +")"}};THREE.MeshPhongMaterialCounter={value:0}; -THREE.MeshDepthMaterial=function(a){this.near=1;this.far=1E3;this.opacity=1;this.blending=THREE.NormalBlending;if(a){if(a.near!==undefined)this.near=a.near;if(a.far!==undefined)this.far=a.far;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.__2near=2*this.near;this.__farPlusNear=this.far+this.near;this.__farMinusNear=this.far-this.near;this.toString=function(){return"THREE.MeshDepthMaterial"}}; -THREE.MeshNormalMaterial=function(a){this.opacity=1;this.shading=THREE.FlatShading;this.blending=THREE.NormalBlending;if(a){if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.MeshNormalMaterial"}};THREE.MeshFaceMaterial=function(){this.toString=function(){return"THREE.MeshFaceMaterial"}}; -THREE.MeshCubeMaterial=function(a){this.id=THREE.MeshCubeMaterial.value++;this.env_map=null;this.blending=THREE.NormalBlending;if(a)if(a.env_map!==undefined)this.env_map=a.env_map;this.toString=function(){return"THREE.MeshCubeMaterial( id: "+this.id+"
env_map: "+this.env_map+" )"}};THREE.MeshCubeMaterialCounter={value:0}; -THREE.ParticleBasicMaterial=function(a){this.color=new THREE.Color(16711680);this.map=null;this.opacity=1;this.blending=THREE.NormalBlending;this.offset=new THREE.Vector2;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleBasicMaterial (
color: "+this.color+"
map: "+this.map+"
opacity: "+this.opacity+"
blending: "+ -this.blending+"
)"}};THREE.ParticleCircleMaterial=function(a){this.color=new THREE.Color(16711680);this.opacity=1;this.blending=THREE.NormalBlending;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleCircleMaterial (
color: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
)"}}; -THREE.ParticleDOMMaterial=function(a){this.domElement=a;this.toString=function(){return"THREE.ParticleDOMMaterial ( domElement: "+this.domElement+" )"}};THREE.Texture=function(a,c){this.image=a;this.mapping=c!==undefined?c:THREE.UVMapping;this.toString=function(){return"THREE.Texture (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.UVMapping=0;THREE.ReflectionMap=1;THREE.RefractionMap=2;THREE.Multiply=0;THREE.Mix=1; -THREE.TextureCube=function(a,c){this.image=a;this.mapping=c?c:THREE.ReflectionMap;this.toString=function(){return"THREE.TextureCube (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.loadImageArray=function(a){var c,f=[];for(c=f.loadCount=0;c=0&&P>=0&&M>=0&&x>=0)m=true;else if(i<0&&P<0||M<0&&x<0)m=false;else{if(i<0)m=Math.max(m,i/(i-P));else if(P<0)v=Math.min(v,i/(i-P));if(M<0)m=Math.max(m,M/(M-x));else if(x<0)v=Math.min(v,M/(M-x));if(v0&&t.z<1}E=x.geometry.faces;i=0;for(P=E.length;i< -P;i++){t=E[i];if(t instanceof THREE.Face3){X=S[t.a];D=S[t.b];L=S[t.c];if(X.__visible&&D.__visible&&L.__visible)if(x.doubleSided||x.flipSided!=(L.positionScreen.x-X.positionScreen.x)*(D.positionScreen.y-X.positionScreen.y)-(L.positionScreen.y-X.positionScreen.y)*(D.positionScreen.x-X.positionScreen.x)<0){f=d[b]=d[b]||new THREE.RenderableFace3;f.v1.positionScreen.copy(X.positionScreen);f.v2.positionScreen.copy(D.positionScreen);f.v3.positionScreen.copy(L.positionScreen);f.normalWorld.copy(t.normal); -x.matrixRotation.transform(f.normalWorld);f.centroidWorld.copy(t.centroid);J.transform(f.centroidWorld);f.centroidScreen.copy(f.centroidWorld);s.transform(f.centroidScreen);f.z=f.centroidScreen.z;f.meshMaterial=x.material;f.faceMaterial=t.material;f.overdraw=x.overdraw;f.uvs=x.geometry.uvs[i];f.color=t.color;c.push(f);b++}}else if(t instanceof THREE.Face4){X=S[t.a];D=S[t.b];L=S[t.c];K=S[t.d];if(X.__visible&&D.__visible&&L.__visible&&K.__visible)if(x.doubleSided||x.flipSided!=((K.positionScreen.x- -X.positionScreen.x)*(D.positionScreen.y-X.positionScreen.y)-(K.positionScreen.y-X.positionScreen.y)*(D.positionScreen.x-X.positionScreen.x)<0||(D.positionScreen.x-L.positionScreen.x)*(K.positionScreen.y-L.positionScreen.y)-(D.positionScreen.y-L.positionScreen.y)*(K.positionScreen.x-L.positionScreen.x)<0)){j=r[o]=r[o]||new THREE.RenderableFace4;j.v1.positionScreen.copy(X.positionScreen);j.v2.positionScreen.copy(D.positionScreen);j.v3.positionScreen.copy(L.positionScreen);j.v4.positionScreen.copy(K.positionScreen); -j.normalWorld.copy(t.normal);x.matrixRotation.transform(j.normalWorld);j.centroidWorld.copy(t.centroid);J.transform(j.centroidWorld);j.centroidScreen.copy(j.centroidWorld);s.transform(j.centroidScreen);j.z=j.centroidScreen.z;j.meshMaterial=x.material;j.faceMaterial=t.material;j.overdraw=x.overdraw;j.uvs=x.geometry.uvs[i];j.color=t.color;c.push(j);o++}}}}else if(x instanceof THREE.Line){A.multiply(s,J);S=x.geometry.vertices;i=0;for(P=S.length;i0&&p.z<1){h=q[l]=q[l]||new THREE.RenderableParticle;h.x=p.x/p.w;h.y=p.y/p.w; -h.z=p.z;h.rotation=x.rotation.z;h.scale.x=x.scale.x*Math.abs(h.x-(p.x+B.projectionMatrix.n11)/(p.w+B.projectionMatrix.n14));h.scale.y=x.scale.y*Math.abs(h.y-(p.y+B.projectionMatrix.n22)/(p.w+B.projectionMatrix.n24));h.material=x.material;c.push(h);l++}}}c.sort(function(R,y){return y.z-R.z});return c};this.unprojectVector=function(C,B){var m=new THREE.Matrix4;m.multiply(THREE.Matrix4.makeInvert(B.matrix),THREE.Matrix4.makeInvert(B.projectionMatrix));m.transform(C);return C}}; -THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,c=new THREE.Projector,f,b,d,j;this.domElement=document.createElement("div");this.setSize=function(o,r){f=o;b=r;d=f/2;j=b/2};this.render=function(o,r){var e,g,n,h,l,q,p,s;a=c.projectScene(o,r);e=0;for(g=a.length;e0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}else if(k instanceof THREE.PointLight){Ja.sub(k.position,N.centroidWorld);Ja.normalize();k=N.normalWorld.dot(Ja)*k.intensity;if(k>0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}}}function c(w,N,H,I,k,G){if(k.opacity!=0){o(k.opacity);r(k.blending);L=w.positionScreen.x; -K=w.positionScreen.y;R=N.positionScreen.x;y=N.positionScreen.y;u=H.positionScreen.x;Q=H.positionScreen.y;if(k.map){fa=k.map.image;na=fa.width-1;oa=fa.height-1;da.u=I.uvs[0].u*na;da.v=I.uvs[0].v*oa;Z.u=I.uvs[1].u*na;Z.v=I.uvs[1].v*oa;ea.u=I.uvs[2].u*na;ea.v=I.uvs[2].v*oa;j(fa,L,K,R,y,u,Q,da.u,da.v,Z.u,Z.v,ea.u,ea.v)}else if(k instanceof THREE.MeshBasicMaterial)b(L,K,R,y,u,Q,k.color,k.wireframe,k.wireframe_linewidth);else if(k instanceof THREE.MeshLambertMaterial){if(Fa){ba.r=ga.r;ba.g=ga.g;ba.b=ga.b; -a(G,I,ba);T.r=k.color.r*ba.r;T.g=k.color.g*ba.g;T.b=k.color.b*ba.b;T.updateStyleString()}else T.__styleString=k.color.__styleString;b(L,K,R,y,u,Q,T,k.wireframe,k.wireframe_linewidth)}else if(k instanceof THREE.MeshDepthMaterial){pa=k.__2near;qa=k.__farPlusNear;ra=k.__farMinusNear;va=~~((1-pa/(qa-w.positionScreen.z*ra))*255);wa=~~((1-pa/(qa-N.positionScreen.z*ra))*255);ma=~~((1-pa/(qa-H.positionScreen.z*ra))*255);fa=h([va,va,va],[wa,wa,wa],[ma,ma,ma],[ma,ma,ma]);da.u=0;da.v=0;Z.u=ka;Z.v=0;ea.u=0;ea.v= -ka;j(fa,L,K,R,y,u,Q,da.u,da.v,Z.u,Z.v,ea.u,ea.v)}else if(k instanceof THREE.MeshNormalMaterial){T.r=l(I.normalWorld.x);T.g=l(I.normalWorld.y);T.b=l(I.normalWorld.z);T.updateStyleString();b(L,K,R,y,u,Q,T,k.wireframe,k.wireframe_linewidth)}}}function f(w,N,H,I,k,G,U,z,W){if(z.opacity!=0){o(z.opacity);r(z.blending);L=w.positionScreen.x;K=w.positionScreen.y;R=N.positionScreen.x;y=N.positionScreen.y;u=H.positionScreen.x;Q=H.positionScreen.y;ha=I.positionScreen.x;O=I.positionScreen.y;Y=k.positionScreen.x; -xa=k.positionScreen.y;Ka=G.positionScreen.x;La=G.positionScreen.y;if(z.map){fa=z.map.image;na=fa.width-1;oa=fa.height-1;da.copy(U.uvs[0]);Z.copy(U.uvs[1]);ea.copy(U.uvs[2]);ia.copy(U.uvs[3]);da.u*=na;da.v*=oa;Z.u*=na;Z.v*=oa;ea.u*=na;ea.v*=oa;ia.u*=na;ia.v*=oa;j(fa,L,K,R,y,ha,O,da.u,da.v,Z.u,Z.v,ia.u,ia.v);j(fa,Y,xa,u,Q,Ka,La,Z.u,Z.v,ea.u,ea.v,ia.u,ia.v)}else if(z instanceof THREE.MeshBasicMaterial)d(L,K,R,y,u,Q,ha,O,z.color,z.wireframe,z.wireframe_linewidth);else if(z instanceof THREE.MeshLambertMaterial){if(Fa){ba.r= -ga.r;ba.g=ga.g;ba.b=ga.b;a(W,U,ba);T.r=z.color.r*ba.r;T.g=z.color.g*ba.g;T.b=z.color.b*ba.b;T.updateStyleString()}else T.__styleString=z.color.__styleString;d(L,K,R,y,u,Q,ha,O,T,z.wireframe,z.wireframe_linewidth)}else if(z instanceof THREE.MeshDepthMaterial){pa=z.__2near;qa=z.__farPlusNear;ra=z.__farMinusNear;va=~~((1-pa/(qa-w.positionScreen.z*ra))*255);wa=~~((1-pa/(qa-N.positionScreen.z*ra))*255);ma=~~((1-pa/(qa-H.positionScreen.z*ra))*255);Ga=~~((1-pa/(qa-I.positionScreen.z*ra))*255);fa=h([va,va, -va],[wa,wa,wa],[Ga,Ga,Ga],[ma,ma,ma]);da.u=0;da.v=0;Z.u=ka;Z.v=0;ea.u=ka;ea.v=ka;ia.u=0;ia.v=ka;j(fa,L,K,R,y,ha,O,da.u,da.v,Z.u,Z.v,ia.u,ia.v);j(fa,Y,xa,u,Q,Ka,La,Z.u,Z.v,ea.u,ea.v,ia.u,ia.v)}else if(z instanceof THREE.MeshNormalMaterial){T.r=l(U.normalWorld.x);T.g=l(U.normalWorld.y);T.b=l(U.normalWorld.z);T.updateStyleString();d(L,K,R,y,u,Q,ha,O,T,z.wireframe,z.wireframe_linewidth)}}}function b(w,N,H,I,k,G,U,z,W){i.beginPath();i.moveTo(w,N);i.lineTo(H,I);i.lineTo(k,G);i.lineTo(w,N);i.closePath(); -if(z){e(W);g(U.__styleString);i.stroke();$.inflate(W*2)}else{n(U.__styleString);i.fill()}}function d(w,N,H,I,k,G,U,z,W,F,ca){i.beginPath();i.moveTo(w,N);i.lineTo(H,I);i.lineTo(k,G);i.lineTo(U,z);i.lineTo(w,N);i.closePath();if(F){e(ca);g(W.__styleString);i.stroke();$.inflate(ca*2)}else{n(W.__styleString);i.fill()}}function j(w,N,H,I,k,G,U,z,W,F,ca,la,sa){i.beginPath();i.moveTo(N,H);i.lineTo(I,k);i.lineTo(G,U);i.closePath();I-=N;k-=H;G-=N;U-=H;F-=z;ca-=W;la-=z;sa-=W;var ta=1/(F*sa-la*ca),Ba=(sa*I-ca* -G)*ta;ca=(sa*k-ca*U)*ta;I=(F*G-la*I)*ta;k=(F*U-la*k)*ta;N=N-Ba*z-I*W;H=H-ca*z-k*W;i.save();i.transform(Ba,ca,I,k,N,H);i.clip();i.drawImage(w,0,0);i.restore()}function o(w){if(P!=w)i.globalAlpha=P=w}function r(w){if(M!=w){switch(w){case THREE.NormalBlending:i.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:i.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:i.globalCompositeOperation="darker"}M=w}}function e(w){if(S!=w)i.lineWidth=S=w}function g(w){if(x!= -w)i.strokeStyle=x=w}function n(w){if(J!=w)i.fillStyle=J=w}function h(w,N,H,I){ja[0]=w[0];ja[1]=w[1];ja[2]=w[2];ja[4]=N[0];ja[5]=N[1];ja[6]=N[2];ja[8]=H[0];ja[9]=H[1];ja[10]=H[2];ja[12]=I[0];ja[13]=I[1];ja[14]=I[2];Ca.putImageData(Ma,0,0);Ha.drawImage(Da,0,0);return Ea}function l(w){return w<0?Math.min((1+w)*0.5,0.5):0.5+Math.min(w*0.5,0.5)}function q(w,N){var H=N.x-w.x,I=N.y-w.y,k=1/Math.sqrt(H*H+I*I);H*=k;I*=k;N.x+=H;N.y+=I;w.x-=H;w.y-=I}var p=null,s=new THREE.Projector,A=document.createElement("canvas"), -C,B,m,v,i=A.getContext("2d"),P=1,M=0,x=null,J=null,S=1,E,t,V,aa,X=new THREE.Vertex,D=new THREE.Vertex,L,K,R,y,u,Q,ha,O,Y,xa,Ka,La,va,wa,ma,Ga,pa,qa,ra,fa,na,oa,ya=new THREE.Rectangle,ua=new THREE.Rectangle,$=new THREE.Rectangle,Fa=false,T=new THREE.Color(4294967295),ba=new THREE.Color(4294967295),ga=new THREE.Color(4278190080),za=new THREE.Color(4278190080),Aa=new THREE.Color(4278190080),Qa=Math.PI*2,Ja=new THREE.Vector3,da=new THREE.UV,Z=new THREE.UV,ea=new THREE.UV,ia=new THREE.UV,Da,Ca,Ma,ja,Ea, -Ha,ka=16;Da=document.createElement("canvas");Da.width=Da.height=2;Ca=Da.getContext("2d");Ca.fillStyle="rgba(0,0,0,1)";Ca.fillRect(0,0,2,2);Ma=Ca.getImageData(0,0,2,2);ja=Ma.data;Ea=document.createElement("canvas");Ea.width=Ea.height=ka;Ha=Ea.getContext("2d");Ha.translate(-ka/2,-ka/2);Ha.scale(ka,ka);ka--;this.domElement=A;this.autoClear=true;this.setSize=function(w,N){C=w;B=N;m=C/2;v=B/2;A.width=C;A.height=B;i.lineJoin="round";i.lineCap="round";ya.set(-m,-v,m,v)};this.clear=function(){if(!ua.isEmpty()){ua.inflate(1); -ua.minSelf(ya);i.setTransform(1,0,0,-1,m,v);i.clearRect(ua.getX(),ua.getY(),ua.getWidth(),ua.getHeight());ua.empty()}};this.render=function(w,N){var H,I,k,G,U,z,W,F;this.autoClear&&this.clear();p=s.projectScene(w,N);i.setTransform(1,0,0,-1,m,v);if(Fa=w.lights.length>0){U=w.lights;ga.setRGB(0,0,0);za.setRGB(0,0,0);Aa.setRGB(0,0,0);H=0;for(I=U.length;H0){K.r+=u.color.r*Q;K.g+=u.color.g*Q;K.b+=u.color.b*Q}}else if(u instanceof THREE.PointLight){J.sub(u.position,L.centroidWorld);J.normalize();Q=L.normalWorld.dot(J)*u.intensity;if(Q>0){K.r+=u.color.r*Q;K.g+=u.color.g*Q;K.b+=u.color.b*Q}}}}function c(D,L,K,R,y,u){t=b(V++);t.setAttribute("d","M "+D.positionScreen.x+ -" "+D.positionScreen.y+" L "+L.positionScreen.x+" "+L.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+"z");if(y instanceof THREE.MeshBasicMaterial)m.__styleString=y.color.__styleString;else if(y instanceof THREE.MeshLambertMaterial)if(B){v.r=i.r;v.g=i.g;v.b=i.b;a(u,R,v);m.r=y.color.r*v.r;m.g=y.color.g*v.g;m.b=y.color.b*v.b;m.updateStyleString()}else m.__styleString=y.color.__styleString;else if(y instanceof THREE.MeshDepthMaterial){x=1-y.__2near/(y.__farPlusNear-R.z*y.__farMinusNear); -m.setRGB(x,x,x)}else y instanceof THREE.MeshNormalMaterial&&m.setRGB(d(R.normalWorld.x),d(R.normalWorld.y),d(R.normalWorld.z));y.wireframe?t.setAttribute("style","fill: none; stroke: "+m.__styleString+"; stroke-width: "+y.wireframe_linewidth+"; stroke-opacity: "+y.opacity+"; stroke-linecap: round; stroke-linejoin: round"):t.setAttribute("style","fill: "+m.__styleString+"; fill-opacity: "+y.opacity);r.appendChild(t)}function f(D,L,K,R,y,u,Q){t=b(V++);t.setAttribute("d","M "+D.positionScreen.x+" "+ -D.positionScreen.y+" L "+L.positionScreen.x+" "+L.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+" L "+R.positionScreen.x+","+R.positionScreen.y+"z");if(u instanceof THREE.MeshBasicMaterial)m.__styleString=u.color.__styleString;else if(u instanceof THREE.MeshLambertMaterial)if(B){v.r=i.r;v.g=i.g;v.b=i.b;a(Q,y,v);m.r=u.color.r*v.r;m.g=u.color.g*v.g;m.b=u.color.b*v.b;m.updateStyleString()}else m.__styleString=u.color.__styleString;else if(u instanceof THREE.MeshDepthMaterial){x=1- -u.__2near/(u.__farPlusNear-y.z*u.__farMinusNear);m.setRGB(x,x,x)}else u instanceof THREE.MeshNormalMaterial&&m.setRGB(d(y.normalWorld.x),d(y.normalWorld.y),d(y.normalWorld.z));u.wireframe?t.setAttribute("style","fill: none; stroke: "+m.__styleString+"; stroke-width: "+u.wireframe_linewidth+"; stroke-opacity: "+u.opacity+"; stroke-linecap: round; stroke-linejoin: round"):t.setAttribute("style","fill: "+m.__styleString+"; fill-opacity: "+u.opacity);r.appendChild(t)}function b(D){if(S[D]==null){S[D]= -document.createElementNS("http://www.w3.org/2000/svg","path");X==0&&S[D].setAttribute("shape-rendering","crispEdges");return S[D]}return S[D]}function d(D){return D<0?Math.min((1+D)*0.5,0.5):0.5+Math.min(D*0.5,0.5)}var j=null,o=new THREE.Projector,r=document.createElementNS("http://www.w3.org/2000/svg","svg"),e,g,n,h,l,q,p,s,A=new THREE.Rectangle,C=new THREE.Rectangle,B=false,m=new THREE.Color(4294967295),v=new THREE.Color(4294967295),i=new THREE.Color(4278190080),P=new THREE.Color(4278190080),M= -new THREE.Color(4278190080),x,J=new THREE.Vector3,S=[],E=[],t,V,aa,X=1;this.domElement=r;this.autoClear=true;this.setQuality=function(D){switch(D){case "high":X=1;break;case "low":X=0}};this.setSize=function(D,L){e=D;g=L;n=e/2;h=g/2;r.setAttribute("viewBox",-n+" "+-h+" "+e+" "+g);r.setAttribute("width",e);r.setAttribute("height",g);A.set(-n,-h,n,h)};this.clear=function(){for(;r.childNodes.length>0;)r.removeChild(r.childNodes[0])};this.render=function(D,L){var K,R,y,u,Q,ha,O,Y;this.autoClear&&this.clear(); -j=o.projectScene(D,L);aa=V=0;if(B=D.lights.length>0){O=D.lights;i.setRGB(0,0,0);P.setRGB(0,0,0);M.setRGB(0,0,0);K=0;for(R=O.length;K= 0.0 )": -"",g?"pointSpecularWeight = pow( pointDotNormalHalf, mShininess );":"",g?"pointDiffuse += mColor * pointDiffuseWeight;":"",g?"pointSpecular += mSpecular * pointSpecularWeight;":"",g?"}":"",e?"vec4 dirDiffuse = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"vec4 dirSpecular = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"vec3 dirVector = normalize( lDirection.xyz );":"",e?"vec3 dirHalfVector = normalize( lDirection.xyz + vViewPosition );": -"",e?"float dirDotNormalHalf = dot( normal, dirHalfVector );":"",e?"float dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );":"",e?"float dirSpecularWeight = 0.0;":"",e?"if ( dirDotNormalHalf >= 0.0 )":"",e?"dirSpecularWeight = pow( dirDotNormalHalf, mShininess );":"",e?"dirDiffuse += mColor * dirDiffuseWeight;":"",e?"dirSpecular += mSpecular * dirSpecularWeight;":"",e?"}":"","vec4 totalLight = mAmbient;",e?"totalLight += dirDiffuse + dirSpecular;":"",g?"totalLight += pointDiffuse + pointSpecular;": -"","if ( mixEnvMap ) {\ngl_FragColor = vec4( mix( mapColor.rgb * totalLight.xyz * vLightWeighting, cubeColor.rgb, mReflectivity ), mapColor.a );\n} else {\ngl_FragColor = vec4( mapColor.rgb * cubeColor.rgb * totalLight.xyz * vLightWeighting, mapColor.a );\n}\n} else if ( material == 1 ) {\nif ( mixEnvMap ) {\ngl_FragColor = vec4( mix( mColor.rgb * mapColor.rgb * vLightWeighting, cubeColor.rgb, mReflectivity ), mColor.a * mapColor.a );\n} else {\ngl_FragColor = vec4( mColor.rgb * mapColor.rgb * cubeColor.rgb * vLightWeighting, mColor.a * mapColor.a );\n}\n} else {\nif ( mixEnvMap ) {\ngl_FragColor = mix( mColor * mapColor, cubeColor, mReflectivity );\n} else {\ngl_FragColor = mColor * mapColor * cubeColor;\n}\n}\n}"].join("\n"))); -b.attachShader(d,c("vertex",[e?"#define MAX_DIR_LIGHTS "+e:"",g?"#define MAX_POINT_LIGHTS "+g:"","attribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\nuniform vec3 cameraPosition;\nuniform bool enableLighting;\nuniform bool useRefract;\nuniform int pointLightNumber;\nuniform int directionalLightNumber;\nuniform vec3 ambientLightColor;",e?"uniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];":"",e?"uniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];":"",g?"uniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];": -"",g?"uniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];":"","uniform mat4 objMatrix;\nuniform mat4 viewMatrix;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat3 normalMatrix;\nvarying vec3 vNormal;\nvarying vec2 vUv;\nvarying vec3 vLightWeighting;",g?"varying vec3 vPointLightVector[ MAX_POINT_LIGHTS ];":"","varying vec3 vViewPosition;\nvarying vec3 vReflect;\nuniform float mRefractionRatio;\nvoid main(void) {\nvec4 mPosition = objMatrix * vec4( position, 1.0 );\nvViewPosition = cameraPosition - mPosition.xyz;\nvec3 nWorld = mat3( objMatrix[0].xyz, objMatrix[1].xyz, objMatrix[2].xyz ) * normal;\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\nvec3 transformedNormal = normalize( normalMatrix * normal );\nif ( !enableLighting ) {\nvLightWeighting = vec3( 1.0, 1.0, 1.0 );\n} else {\nvLightWeighting = ambientLightColor;", -e?"for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"float directionalLightWeighting = max( dot( transformedNormal, normalize(lDirection.xyz ) ), 0.0 );":"",e?"vLightWeighting += directionalLightColor[ i ] * directionalLightWeighting;":"",e?"}":"",g?"for( int i = 0; i < MAX_POINT_LIGHTS; i++ ) {":"",g?"vec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );":"",g?"vPointLightVector[ i ] = normalize( lPosition.xyz - mvPosition.xyz );": -"",g?"float pointLightWeighting = max( dot( transformedNormal, vPointLightVector[ i ] ), 0.0 );":"",g?"vLightWeighting += pointLightColor[ i ] * pointLightWeighting;":"",g?"}":"","}\nvNormal = transformedNormal;\nvUv = uv;\nif ( useRefract ) {\nvReflect = refract( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz), mRefractionRatio );\n} else {\nvReflect = reflect( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz) );\n}\ngl_Position = projectionMatrix * mvPosition;\n}"].join("\n"))); -b.linkProgram(d);if(!b.getProgramParameter(d,b.LINK_STATUS)){alert("Could not initialise shaders");alert("VALIDATE_STATUS: "+b.getProgramParameter(d,b.VALIDATE_STATUS));alert(b.getError())}b.useProgram(d);d.viewMatrix=b.getUniformLocation(d,"viewMatrix");d.modelViewMatrix=b.getUniformLocation(d,"modelViewMatrix");d.projectionMatrix=b.getUniformLocation(d,"projectionMatrix");d.normalMatrix=b.getUniformLocation(d,"normalMatrix");d.objMatrix=b.getUniformLocation(d,"objMatrix");d.cameraPosition=b.getUniformLocation(d, -"cameraPosition");d.enableLighting=b.getUniformLocation(d,"enableLighting");d.ambientLightColor=b.getUniformLocation(d,"ambientLightColor");if(e){d.directionalLightNumber=b.getUniformLocation(d,"directionalLightNumber");d.directionalLightColor=b.getUniformLocation(d,"directionalLightColor");d.directionalLightDirection=b.getUniformLocation(d,"directionalLightDirection")}if(g){d.pointLightNumber=b.getUniformLocation(d,"pointLightNumber");d.pointLightColor=b.getUniformLocation(d,"pointLightColor");d.pointLightPosition= -b.getUniformLocation(d,"pointLightPosition")}d.material=b.getUniformLocation(d,"material");d.mColor=b.getUniformLocation(d,"mColor");d.mOpacity=b.getUniformLocation(d,"mOpacity");d.mReflectivity=b.getUniformLocation(d,"mReflectivity");d.mAmbient=b.getUniformLocation(d,"mAmbient");d.mSpecular=b.getUniformLocation(d,"mSpecular");d.mShininess=b.getUniformLocation(d,"mShininess");d.enableMap=b.getUniformLocation(d,"enableMap");b.uniform1i(d.enableMap,0);d.tMap=b.getUniformLocation(d,"tMap");b.uniform1i(d.tMap, -0);d.enableCubeMap=b.getUniformLocation(d,"enableCubeMap");b.uniform1i(d.enableCubeMap,0);d.tCube=b.getUniformLocation(d,"tCube");b.uniform1i(d.tCube,1);d.mixEnvMap=b.getUniformLocation(d,"mixEnvMap");b.uniform1i(d.mixEnvMap,0);d.mRefractionRatio=b.getUniformLocation(d,"mRefractionRatio");d.useRefract=b.getUniformLocation(d,"useRefract");b.uniform1i(d.useRefract,0);d.m2Near=b.getUniformLocation(d,"m2Near");d.mFarPlusNear=b.getUniformLocation(d,"mFarPlusNear");d.mFarMinusNear=b.getUniformLocation(d, -"mFarMinusNear");d.position=b.getAttribLocation(d,"position");b.enableVertexAttribArray(d.position);d.normal=b.getAttribLocation(d,"normal");b.enableVertexAttribArray(d.normal);d.uv=b.getAttribLocation(d,"uv");b.enableVertexAttribArray(d.uv);d.viewMatrixArray=new Float32Array(16);d.modelViewMatrixArray=new Float32Array(16);d.projectionMatrixArray=new Float32Array(16)})(a.directional,a.point);this.setSize=function(e,g){f.width=e;f.height=g;b.viewport(0,0,f.width,f.height)};this.clear=function(){b.clear(b.COLOR_BUFFER_BIT| -b.DEPTH_BUFFER_BIT)};this.setupLights=function(e){var g,n,h,l,q=[],p=[],s=[];l=[];var A=[];b.uniform1i(d.enableLighting,e.lights.length);g=0;for(n=e.lights.length;g>16&255)/255;this.g=(this.hex>>8&255)/255;this.b=(this.hex&255)/255},updateStyleString:function(){this.__styleString="rgb("+~~(this.r*255)+ +","+~~(this.g*255)+","+~~(this.b*255)+")"},toString:function(){return"THREE.Color ( r: "+this.r+", g: "+this.g+", b: "+this.b+", hex: "+this.hex+" )"}};THREE.Vector2=function(a,c){this.x=a||0;this.y=c||0}; +THREE.Vector2.prototype={set:function(a,c){this.x=a;this.y=c;return this},copy:function(a){this.x=a.x;this.y=a.y;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},unit:function(){this.multiplyScalar(1/this.length());return this},length:function(){return Math.sqrt(this.x* +this.x+this.y*this.y)},lengthSq:function(){return this.x*this.x+this.y*this.y},negate:function(){this.x=-this.x;this.y=-this.y;return this},clone:function(){return new THREE.Vector2(this.x,this.y)},toString:function(){return"THREE.Vector2 ("+this.x+", "+this.y+")"}};THREE.Vector3=function(a,c,f){this.x=a||0;this.y=c||0;this.z=f||0}; +THREE.Vector3.prototype={set:function(a,c,f){this.x=a;this.y=c;this.z=f;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;return this}, +cross:function(a,c){this.x=a.y*c.z-a.z*c.y;this.y=a.z*c.x-a.x*c.z;this.z=a.x*c.y-a.y*c.x;return this},crossSelf:function(a){var c=this.x,f=this.y,b=this.z;this.x=f*a.z-b*a.y;this.y=b*a.x-c*a.z;this.z=c*a.y-f*a.x;return this},multiplySelf:function(a){this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))}, +distanceToSquared:function(a){var c=this.x-a.x,f=this.y-a.y;a=this.z-a.z;return c*c+f*f+a*a},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},normalize:function(){this.length()>0?this.multiplyScalar(1/this.length()):this.multiplyScalar(0);return this},setLength:function(a){return this.normalize().multiplyScalar(a)},isZero:function(){return Math.abs(this.x)< +1.0E-4&&Math.abs(this.y)<1.0E-4&&Math.abs(this.z)<1.0E-4},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)},toString:function(){return"THREE.Vector3 ( "+this.x+", "+this.y+", "+this.z+" )"}};THREE.Vector4=function(a,c,f,b){this.x=a||0;this.y=c||0;this.z=f||0;this.w=b||1}; +THREE.Vector4.prototype={set:function(a,c,f,b){this.x=a;this.y=c;this.z=f;this.w=b;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=a.w||1;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;this.w=a.w+c.w;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;this.w=a.w-c.w;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w; +return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;this.w/=a;return this},lerpSelf:function(a,c){this.x+=(a.x-this.x)*c;this.y+=(a.y-this.y)*c;this.z+=(a.z-this.z)*c;this.w+=(a.w-this.w)*c},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},toString:function(){return"THREE.Vector4 ("+this.x+", "+this.y+", "+this.z+", "+this.w+")"}}; +THREE.Ray=function(a,c){this.origin=a||new THREE.Vector3;this.direction=c||new THREE.Vector3}; +THREE.Ray.prototype={intersectScene:function(a){var c,f,b=a.objects,d=[];a=0;for(c=b.length;a0&&A>0&&j+A<1}var f,b,d,i,n,r,e,g,m,h, +l,q=a.geometry,o=q.vertices,s=[];f=0;for(b=q.faces.length;f= +0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){r=true;d=b=f=c=0;a()};this.isEmpty=function(){return r};this.toString=function(){return"THREE.Rectangle ( left: "+c+", right: "+b+", top: "+f+", bottom: "+d+", width: "+i+", height: "+n+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; +THREE.Matrix4=function(){this._x=new THREE.Vector3;this._y=new THREE.Vector3;this._z=new THREE.Vector3}; +THREE.Matrix4.prototype={n11:1,n12:0,n13:0,n14:0,n21:0,n22:1,n23:0,n24:0,n31:0,n32:0,n33:1,n34:0,n41:0,n42:0,n43:0,n44:1,identity:function(){this.n11=1;this.n21=this.n14=this.n13=this.n12=0;this.n22=1;this.n32=this.n31=this.n24=this.n23=0;this.n33=1;this.n43=this.n42=this.n41=this.n34=0;this.n44=1},copy:function(a){this.n11=a.n11;this.n12=a.n12;this.n13=a.n13;this.n14=a.n14;this.n21=a.n21;this.n22=a.n22;this.n23=a.n23;this.n24=a.n24;this.n31=a.n31;this.n32=a.n32;this.n33=a.n33;this.n34=a.n34;this.n41= +a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,c,f){var b=this._x,d=this._y,i=this._z;i.sub(a,c);i.normalize();b.cross(f,i);b.normalize();d.cross(i,b);d.normalize();this.n11=b.x;this.n12=b.y;this.n13=b.z;this.n14=-b.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=i.x;this.n32=i.y;this.n33=i.z;this.n34=-i.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var c=a.x,f=a.y,b=a.z,d=a.w?a.w:1;a.x=this.n11*c+this.n12*f+this.n13*b+this.n14* +d;a.y=this.n21*c+this.n22*f+this.n23*b+this.n24*d;a.z=this.n31*c+this.n32*f+this.n33*b+this.n34*d;d=this.n41*c+this.n42*f+this.n43*b+this.n44*d;if(a.w)a.w=d;else{a.x/=d;a.y/=d;a.z/=d}return a},crossVector:function(a){var c=new THREE.Vector4;c.x=this.n11*a.x+this.n12*a.y+this.n13*a.z+this.n14*a.w;c.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;c.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+this.n34*a.w;c.w=a.w?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return c},multiply:function(a, +c){this.n11=a.n11*c.n11+a.n12*c.n21+a.n13*c.n31+a.n14*c.n41;this.n12=a.n11*c.n12+a.n12*c.n22+a.n13*c.n32+a.n14*c.n42;this.n13=a.n11*c.n13+a.n12*c.n23+a.n13*c.n33+a.n14*c.n43;this.n14=a.n11*c.n14+a.n12*c.n24+a.n13*c.n34+a.n14*c.n44;this.n21=a.n21*c.n11+a.n22*c.n21+a.n23*c.n31+a.n24*c.n41;this.n22=a.n21*c.n12+a.n22*c.n22+a.n23*c.n32+a.n24*c.n42;this.n23=a.n21*c.n13+a.n22*c.n23+a.n23*c.n33+a.n24*c.n43;this.n24=a.n21*c.n14+a.n22*c.n24+a.n23*c.n34+a.n24*c.n44;this.n31=a.n31*c.n11+a.n32*c.n21+a.n33*c.n31+ +a.n34*c.n41;this.n32=a.n31*c.n12+a.n32*c.n22+a.n33*c.n32+a.n34*c.n42;this.n33=a.n31*c.n13+a.n32*c.n23+a.n33*c.n33+a.n34*c.n43;this.n34=a.n31*c.n14+a.n32*c.n24+a.n33*c.n34+a.n34*c.n44;this.n41=a.n41*c.n11+a.n42*c.n21+a.n43*c.n31+a.n44*c.n41;this.n42=a.n41*c.n12+a.n42*c.n22+a.n43*c.n32+a.n44*c.n42;this.n43=a.n41*c.n13+a.n42*c.n23+a.n43*c.n33+a.n44*c.n43;this.n44=a.n41*c.n14+a.n42*c.n24+a.n43*c.n34+a.n44*c.n44},multiplySelf:function(a){var c=this.n11,f=this.n12,b=this.n13,d=this.n14,i=this.n21,n=this.n22, +r=this.n23,e=this.n24,g=this.n31,m=this.n32,h=this.n33,l=this.n34,q=this.n41,o=this.n42,s=this.n43,A=this.n44;this.n11=c*a.n11+f*a.n21+b*a.n31+d*a.n41;this.n12=c*a.n12+f*a.n22+b*a.n32+d*a.n42;this.n13=c*a.n13+f*a.n23+b*a.n33+d*a.n43;this.n14=c*a.n14+f*a.n24+b*a.n34+d*a.n44;this.n21=i*a.n11+n*a.n21+r*a.n31+e*a.n41;this.n22=i*a.n12+n*a.n22+r*a.n32+e*a.n42;this.n23=i*a.n13+n*a.n23+r*a.n33+e*a.n43;this.n24=i*a.n14+n*a.n24+r*a.n34+e*a.n44;this.n31=g*a.n11+m*a.n21+h*a.n31+l*a.n41;this.n32=g*a.n12+m*a.n22+ +h*a.n32+l*a.n42;this.n33=g*a.n13+m*a.n23+h*a.n33+l*a.n43;this.n34=g*a.n14+m*a.n24+h*a.n34+l*a.n44;this.n41=q*a.n11+o*a.n21+s*a.n31+A*a.n41;this.n42=q*a.n12+o*a.n22+s*a.n32+A*a.n42;this.n43=q*a.n13+o*a.n23+s*a.n33+A*a.n43;this.n44=q*a.n14+o*a.n24+s*a.n34+A*a.n44},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a},determinant:function(){return this.n14* +this.n23*this.n32*this.n41-this.n13*this.n24*this.n32*this.n41-this.n14*this.n22*this.n33*this.n41+this.n12*this.n24*this.n33*this.n41+this.n13*this.n22*this.n34*this.n41-this.n12*this.n23*this.n34*this.n41-this.n14*this.n23*this.n31*this.n42+this.n13*this.n24*this.n31*this.n42+this.n14*this.n21*this.n33*this.n42-this.n11*this.n24*this.n33*this.n42-this.n13*this.n21*this.n34*this.n42+this.n11*this.n23*this.n34*this.n42+this.n14*this.n22*this.n31*this.n43-this.n12*this.n24*this.n31*this.n43-this.n14* +this.n21*this.n32*this.n43+this.n11*this.n24*this.n32*this.n43+this.n12*this.n21*this.n34*this.n43-this.n11*this.n22*this.n34*this.n43-this.n13*this.n22*this.n31*this.n44+this.n12*this.n23*this.n31*this.n44+this.n13*this.n21*this.n32*this.n44-this.n11*this.n23*this.n32*this.n44-this.n12*this.n21*this.n33*this.n44+this.n11*this.n22*this.n33*this.n44},transpose:function(){function a(c,f,b){var d=c[f];c[f]=c[b];c[b]=d}a(this,"n21","n12");a(this,"n31","n13");a(this,"n32","n23");a(this,"n41","n14");a(this, +"n42","n24");a(this,"n43","n34");return this},clone:function(){var a=new THREE.Matrix4;a.n11=this.n11;a.n12=this.n12;a.n13=this.n13;a.n14=this.n14;a.n21=this.n21;a.n22=this.n22;a.n23=this.n23;a.n24=this.n24;a.n31=this.n31;a.n32=this.n32;a.n33=this.n33;a.n34=this.n34;a.n41=this.n41;a.n42=this.n42;a.n43=this.n43;a.n44=this.n44;return a},flatten:function(){return[this.n11,this.n21,this.n31,this.n41,this.n12,this.n22,this.n32,this.n42,this.n13,this.n23,this.n33,this.n43,this.n14,this.n24,this.n34,this.n44]}, +toString:function(){return"| "+this.n11+" "+this.n12+" "+this.n13+" "+this.n14+" |\n| "+this.n21+" "+this.n22+" "+this.n23+" "+this.n24+" |\n| "+this.n31+" "+this.n32+" "+this.n33+" "+this.n34+" |\n| "+this.n41+" "+this.n42+" "+this.n43+" "+this.n44+" |"}};THREE.Matrix4.translationMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n14=a;b.n24=c;b.n34=f;return b};THREE.Matrix4.scaleMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n11=a;b.n22=c;b.n33=f;return b}; +THREE.Matrix4.rotationXMatrix=function(a){var c=new THREE.Matrix4;c.n22=c.n33=Math.cos(a);c.n32=Math.sin(a);c.n23=-c.n32;return c};THREE.Matrix4.rotationYMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n33=Math.cos(a);c.n13=Math.sin(a);c.n31=-c.n13;return c};THREE.Matrix4.rotationZMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n22=Math.cos(a);c.n21=Math.sin(a);c.n12=-c.n21;return c}; +THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var f=new THREE.Matrix4,b=Math.cos(c),d=Math.sin(c),i=1-b,n=a.x,r=a.y,e=a.z;f.n11=i*n*n+b;f.n12=i*n*r-d*e;f.n13=i*n*e+d*r;f.n21=i*n*r+d*e;f.n22=i*r*r+b;f.n23=i*r*e-d*n;f.n31=i*n*e-d*r;f.n32=i*r*e+d*n;f.n33=i*e*e+b;return f}; +THREE.Matrix4.makeInvert=function(a){var c=new THREE.Matrix4;c.n11=a.n23*a.n34*a.n42-a.n24*a.n33*a.n42+a.n24*a.n32*a.n43-a.n22*a.n34*a.n43-a.n23*a.n32*a.n44+a.n22*a.n33*a.n44;c.n12=a.n14*a.n33*a.n42-a.n13*a.n34*a.n42-a.n14*a.n32*a.n43+a.n12*a.n34*a.n43+a.n13*a.n32*a.n44-a.n12*a.n33*a.n44;c.n13=a.n13*a.n24*a.n42-a.n14*a.n23*a.n42+a.n14*a.n22*a.n43-a.n12*a.n24*a.n43-a.n13*a.n22*a.n44+a.n12*a.n23*a.n44;c.n14=a.n14*a.n23*a.n32-a.n13*a.n24*a.n32-a.n14*a.n22*a.n33+a.n12*a.n24*a.n33+a.n13*a.n22*a.n34-a.n12* +a.n23*a.n34;c.n21=a.n24*a.n33*a.n41-a.n23*a.n34*a.n41-a.n24*a.n31*a.n43+a.n21*a.n34*a.n43+a.n23*a.n31*a.n44-a.n21*a.n33*a.n44;c.n22=a.n13*a.n34*a.n41-a.n14*a.n33*a.n41+a.n14*a.n31*a.n43-a.n11*a.n34*a.n43-a.n13*a.n31*a.n44+a.n11*a.n33*a.n44;c.n23=a.n14*a.n23*a.n41-a.n13*a.n24*a.n41-a.n14*a.n21*a.n43+a.n11*a.n24*a.n43+a.n13*a.n21*a.n44-a.n11*a.n23*a.n44;c.n24=a.n13*a.n24*a.n31-a.n14*a.n23*a.n31+a.n14*a.n21*a.n33-a.n11*a.n24*a.n33-a.n13*a.n21*a.n34+a.n11*a.n23*a.n34;c.n31=a.n22*a.n34*a.n41-a.n24*a.n32* +a.n41+a.n24*a.n31*a.n42-a.n21*a.n34*a.n42-a.n22*a.n31*a.n44+a.n21*a.n32*a.n44;c.n32=a.n14*a.n32*a.n41-a.n12*a.n34*a.n41-a.n14*a.n31*a.n42+a.n11*a.n34*a.n42+a.n12*a.n31*a.n44-a.n11*a.n32*a.n44;c.n33=a.n13*a.n24*a.n41-a.n14*a.n22*a.n41+a.n14*a.n21*a.n42-a.n11*a.n24*a.n42-a.n12*a.n21*a.n44+a.n11*a.n22*a.n44;c.n34=a.n14*a.n22*a.n31-a.n12*a.n24*a.n31-a.n14*a.n21*a.n32+a.n11*a.n24*a.n32+a.n12*a.n21*a.n34-a.n11*a.n22*a.n34;c.n41=a.n23*a.n32*a.n41-a.n22*a.n33*a.n41-a.n23*a.n31*a.n42+a.n21*a.n33*a.n42+a.n22* +a.n31*a.n43-a.n21*a.n32*a.n43;c.n42=a.n12*a.n33*a.n41-a.n13*a.n32*a.n41+a.n13*a.n31*a.n42-a.n11*a.n33*a.n42-a.n12*a.n31*a.n43+a.n11*a.n32*a.n43;c.n43=a.n13*a.n22*a.n41-a.n12*a.n23*a.n41-a.n13*a.n21*a.n42+a.n11*a.n23*a.n42+a.n12*a.n21*a.n43-a.n11*a.n22*a.n43;c.n44=a.n12*a.n23*a.n31-a.n13*a.n22*a.n31+a.n13*a.n21*a.n32-a.n11*a.n23*a.n32-a.n12*a.n21*a.n33+a.n11*a.n22*a.n33;c.multiplyScalar(1/a.determinant());return c}; +THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=new THREE.Matrix3;var f=c[10]*c[5]-c[6]*c[9],b=-c[10]*c[1]+c[2]*c[9],d=c[6]*c[1]-c[2]*c[5],i=-c[10]*c[4]+c[6]*c[8],n=c[10]*c[0]-c[2]*c[8],r=-c[6]*c[0]+c[2]*c[4],e=c[9]*c[4]-c[5]*c[8],g=-c[9]*c[0]+c[1]*c[8],m=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*i+c[2]*e;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*b;a.m[2]=c*d;a.m[3]=c*i;a.m[4]=c*n;a.m[5]=c*r;a.m[6]=c*e;a.m[7]=c*g;a.m[8]=c*m;return a}; +THREE.Matrix4.makeFrustum=function(a,c,f,b,d,i){var n,r,e;n=new THREE.Matrix4;r=2*d/(c-a);e=2*d/(b-f);a=(c+a)/(c-a);f=(b+f)/(b-f);b=-(i+d)/(i-d);d=-2*i*d/(i-d);n.n11=r;n.n12=0;n.n13=a;n.n14=0;n.n21=0;n.n22=e;n.n23=f;n.n24=0;n.n31=0;n.n32=0;n.n33=b;n.n34=d;n.n41=0;n.n42=0;n.n43=-1;n.n44=0;return n};THREE.Matrix4.makePerspective=function(a,c,f,b){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*c,a*c,d,a,f,b)}; +THREE.Matrix4.makeOrtho=function(a,c,f,b,d,i){var n,r,e,g;n=new THREE.Matrix4;r=c-a;e=f-b;g=i-d;a=(c+a)/r;f=(f+b)/e;d=(i+d)/g;n.n11=2/r;n.n12=0;n.n13=0;n.n14=-a;n.n21=0;n.n22=2/e;n.n23=0;n.n24=-f;n.n31=0;n.n32=0;n.n33=-2/g;n.n34=-d;n.n41=0;n.n42=0;n.n43=0;n.n44=1;return n}; +THREE.Vertex=function(a,c){this.position=a||new THREE.Vector3;this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.normal=c||new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.normalScreen=new THREE.Vector3;this.__visible=true};THREE.Vertex.prototype={toString:function(){return"THREE.Vertex ( position: "+this.position+", normal: "+this.normal+" )"}}; +THREE.Face3=function(a,c,f,b,d){this.a=a;this.b=c;this.c=f;this.centroid=new THREE.Vector3;this.normal=b instanceof THREE.Vector3?b:new THREE.Vector3;this.vertexNormals=b instanceof Array?b:[];this.material=d instanceof Array?d:[d]};THREE.Face3.prototype={toString:function(){return"THREE.Face3 ( "+this.a+", "+this.b+", "+this.c+" )"}}; +THREE.Face4=function(a,c,f,b,d,i){this.a=a;this.b=c;this.c=f;this.d=b;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=i instanceof Array?i:[i]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,c){this.u=a||0;this.v=c||0}; +THREE.UV.prototype={copy:function(a){this.u=a.u;this.v=a.v},toString:function(){return"THREE.UV ("+this.u+", "+this.v+")"}};THREE.Geometry=function(){this.vertices=[];this.faces=[];this.uvs=[]}; +THREE.Geometry.prototype={computeCentroids:function(){var a,c,f;a=0;for(c=this.faces.length;a0){this.bbox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y,this.vertices[0].position.y],z:[this.vertices[0].position.z,this.vertices[0].position.z]};for(var a=1,c=this.vertices.length;a +this.bbox.x[1])this.bbox.x[1]=vertex.position.x;if(vertex.position.ythis.bbox.y[1])this.bbox.y[1]=vertex.position.y;if(vertex.position.zthis.bbox.z[1])this.bbox.z[1]=vertex.position.z}}},toString:function(){return"THREE.Geometry ( vertices: "+this.vertices+", faces: "+this.faces+" )"}}; +THREE.Camera=function(a,c,f,b){this.position=new THREE.Vector3(0,0,0);this.target={position:new THREE.Vector3(0,0,0)};this.up=new THREE.Vector3(0,1,0);this.matrix=new THREE.Matrix4;this.projectionMatrix=THREE.Matrix4.makePerspective(a,c,f,b);this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrix.lookAt(this.position,this.target.position,this.up)};this.toString=function(){return"THREE.Camera ( "+this.position+", "+this.target.position+" )"}}; +THREE.Light=function(a){this.color=new THREE.Color(-16777216|a)};THREE.AmbientLight=function(a){THREE.Light.call(this,a)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight;THREE.DirectionalLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,1,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight; +THREE.PointLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,0,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.PointLight; +THREE.Object3D=function(){this.position=new THREE.Vector3;this.rotation=new THREE.Vector3;this.scale=new THREE.Vector3(1,1,1);this.matrix=new THREE.Matrix4;this.matrixTranslation=new THREE.Matrix4;this.matrixRotation=new THREE.Matrix4;this.matrixScale=new THREE.Matrix4;this.screen=new THREE.Vector3;this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrixPosition=THREE.Matrix4.translationMatrix(this.position.x,this.position.y,this.position.z);this.matrixRotation=THREE.Matrix4.rotationXMatrix(this.rotation.x); +this.matrixRotation.multiplySelf(THREE.Matrix4.rotationYMatrix(this.rotation.y));this.matrixRotation.multiplySelf(THREE.Matrix4.rotationZMatrix(this.rotation.z));this.matrixScale=THREE.Matrix4.scaleMatrix(this.scale.x,this.scale.y,this.scale.z);this.matrix.copy(this.matrixPosition);this.matrix.multiplySelf(this.matrixRotation);this.matrix.multiplySelf(this.matrixScale)}};THREE.Particle=function(a){THREE.Object3D.call(this);this.material=a instanceof Array?a:[a];this.autoUpdateMatrix=false}; +THREE.Particle.prototype=new THREE.Object3D;THREE.Particle.prototype.constructor=THREE.Particle;THREE.Line=function(a,c){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c]};THREE.Line.prototype=new THREE.Object3D;THREE.Line.prototype.constructor=THREE.Line; +THREE.Mesh=function(a,c,f){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c];this.overdraw=this.doubleSided=this.flipSided=false;this.materialFaceGroup={};this.sortFacesByMaterial();f&&this.normalizeUVs();this.geometry.computeBoundingBox()};THREE.Mesh.prototype=new THREE.Object3D;THREE.Mesh.prototype.constructor=THREE.Mesh; +THREE.Mesh.prototype.sortFacesByMaterial=function(){function a(m){var h=[];c=0;for(f=m.length;c65535){g[r].counter+=1;e=g[r].hash+"_"+g[r].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:n,vertices:0}}this.materialFaceGroup[e].faces.push(b);this.materialFaceGroup[e].vertices+=i}};THREE.Mesh.prototype.normalizeUVs=function(){var a,c,f,b,d;a=0;for(c=this.geometry.uvs.length;acolor: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
linewidth: "+ +this.linewidth+"
)"}}; +THREE.MeshBasicMaterial=function(a){this.id=THREE.MeshBasicMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!== +undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshBasicMaterial (
id: "+ +this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
)"}};THREE.MeshBasicMaterialCounter={value:0}; +THREE.MeshLambertMaterial=function(a){this.id=THREE.MeshLambertMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!== +undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshLambertMaterial (
id: "+ +this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
shading: "+this.shading+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_size: "+this.wireframe_linewidth+"
)"}};THREE.MeshLambertMaterialCounter={value:0}; +THREE.MeshPhongMaterial=function(a){this.id=THREE.MeshPhongMaterialCounter.value++;this.color=new THREE.Color(15658734);this.ambient=new THREE.Color(328965);this.specular=new THREE.Color(1118481);this.shininess=30;this.env_map=this.specular_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){if(a.color!==undefined)this.color= +new THREE.Color(a.color);if(a.ambient!==undefined)this.ambient=new THREE.Color(a.ambient);if(a.specular!==undefined)this.specular=new THREE.Color(a.specular);if(a.shininess!==undefined)this.shininess=a.shininess;if(a.map!==undefined)this.map=a.map;if(a.specular_map!==undefined)this.specular_map=a.specular_map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!==undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio= +a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshPhongMaterial (
id: "+this.id+"
color: "+this.color+"
ambient: "+this.ambient+"
specular: "+this.specular+"
shininess: "+this.shininess+ +"
map: "+this.map+"
specular_map: "+this.specular_map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
shading: "+this.shading+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
"+ +")"}};THREE.MeshPhongMaterialCounter={value:0}; +THREE.MeshDepthMaterial=function(a){this.near=1;this.far=1E3;this.opacity=1;this.blending=THREE.NormalBlending;if(a){if(a.near!==undefined)this.near=a.near;if(a.far!==undefined)this.far=a.far;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.__2near=2*this.near;this.__farPlusNear=this.far+this.near;this.__farMinusNear=this.far-this.near;this.toString=function(){return"THREE.MeshDepthMaterial"}}; +THREE.MeshNormalMaterial=function(a){this.opacity=1;this.shading=THREE.FlatShading;this.blending=THREE.NormalBlending;if(a){if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.MeshNormalMaterial"}};THREE.MeshFaceMaterial=function(){this.toString=function(){return"THREE.MeshFaceMaterial"}}; +THREE.MeshCubeMaterial=function(a){this.id=THREE.MeshCubeMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!== +undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshCubeMaterial (
id: "+ +this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
)"}};THREE.MeshCubeMaterialCounter={value:0}; +THREE.ParticleBasicMaterial=function(a){this.color=new THREE.Color(16711680);this.map=null;this.opacity=1;this.blending=THREE.NormalBlending;this.offset=new THREE.Vector2;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleBasicMaterial (
color: "+this.color+"
map: "+this.map+"
opacity: "+this.opacity+"
blending: "+ +this.blending+"
)"}};THREE.ParticleCircleMaterial=function(a){this.color=new THREE.Color(16711680);this.opacity=1;this.blending=THREE.NormalBlending;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleCircleMaterial (
color: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
)"}}; +THREE.ParticleDOMMaterial=function(a){this.domElement=a;this.toString=function(){return"THREE.ParticleDOMMaterial ( domElement: "+this.domElement+" )"}};THREE.Texture=function(a,c){this.image=a;this.mapping=c!==undefined?c:THREE.UVMapping;this.toString=function(){return"THREE.Texture (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.UVMapping=0;THREE.ReflectionMap=1;THREE.RefractionMap=2;THREE.Multiply=0;THREE.Mix=1; +THREE.TextureCube=function(a,c){this.image=a;this.mapping=c?c:THREE.ReflectionMap;this.toString=function(){return"THREE.TextureCube (
image: "+this.image+"
mapping: "+this.mapping+"
)"}}; +THREE.Scene=function(){this.objects=[];this.lights=[];this.addObject=function(a){this.objects.push(a)};this.removeObject=function(a){a=this.objects.indexOf(a);a!==-1&&this.objects.splice(a,1)};this.addLight=function(a){this.lights.push(a)};this.removeLight=function(a){a=this.lights.indexOf(a);a!==-1&&this.lights.splice(a,1)};this.toString=function(){return"THREE.Scene ( "+this.objects+" )"}}; +THREE.Projector=function(){function a(p,t){var j=0,U=1,C=p.z+p.w,S=t.z+t.w,E=-p.z+p.w,B=-t.z+t.w;if(C>=0&&S>=0&&E>=0&&B>=0)return true;else if(C<0&&S<0||E<0&&B<0)return false;else{if(C<0)j=Math.max(j,C/(C-S));else if(S<0)U=Math.min(U,C/(C-S));if(E<0)j=Math.max(j,E/(E-B));else if(B<0)U=Math.min(U,E/(E-B));if(U0&&Q.z<1}fa=B.geometry.faces;C=0;for(S= +fa.length;C0&&o.z<1){h=q[l]=q[l]|| +new THREE.RenderableParticle;h.x=o.x/o.w;h.y=o.y/o.w;h.z=o.z;h.rotation=B.rotation.z;h.scale.x=B.scale.x*Math.abs(h.x-(o.x+t.projectionMatrix.n11)/(o.w+t.projectionMatrix.n14));h.scale.y=B.scale.y*Math.abs(h.y-(o.y+t.projectionMatrix.n22)/(o.w+t.projectionMatrix.n24));h.material=B.material;c.push(h);l++}}}c.sort(function(T,x){return x.z-T.z});return c};this.unprojectVector=function(p,t){var j=new THREE.Matrix4;j.multiply(THREE.Matrix4.makeInvert(t.matrix),THREE.Matrix4.makeInvert(t.projectionMatrix)); +j.transform(p);return p}}; +THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,c=new THREE.Projector,f,b,d,i;this.domElement=document.createElement("div");this.setSize=function(n,r){f=n;b=r;d=f/2;i=b/2};this.render=function(n,r){var e,g,m,h,l,q,o,s;a=c.projectScene(n,r);e=0;for(g=a.length;e0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}else if(k instanceof THREE.PointLight){Ja.sub(k.position,O.centroidWorld);Ja.normalize();k=O.normalWorld.dot(Ja)*k.intensity;if(k>0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}}}function c(v,O,H,I,k,G){if(k.opacity!=0){n(k.opacity);r(k.blending);M=v.positionScreen.x; +K=v.positionScreen.y;T=O.positionScreen.x;x=O.positionScreen.y;u=H.positionScreen.x;R=H.positionScreen.y;if(k.map){ea=k.map.image;na=ea.width-1;oa=ea.height-1;ca.u=I.uvs[0].u*na;ca.v=I.uvs[0].v*oa;Z.u=I.uvs[1].u*na;Z.v=I.uvs[1].v*oa;da.u=I.uvs[2].u*na;da.v=I.uvs[2].v*oa;i(ea,M,K,T,x,u,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(k instanceof THREE.MeshBasicMaterial)b(M,K,T,x,u,R,k.color,k.wireframe,k.wireframe_linewidth);else if(k instanceof THREE.MeshLambertMaterial){if(Fa){aa.r=ga.r;aa.g=ga.g;aa.b=ga.b; +a(G,I,aa);V.r=k.color.r*aa.r;V.g=k.color.g*aa.g;V.b=k.color.b*aa.b;V.updateStyleString()}else V.__styleString=k.color.__styleString;b(M,K,T,x,u,R,V,k.wireframe,k.wireframe_linewidth)}else if(k instanceof THREE.MeshDepthMaterial){pa=k.__2near;qa=k.__farPlusNear;ra=k.__farMinusNear;va=~~((1-pa/(qa-v.positionScreen.z*ra))*255);wa=~~((1-pa/(qa-O.positionScreen.z*ra))*255);ma=~~((1-pa/(qa-H.positionScreen.z*ra))*255);ea=h([va,va,va],[wa,wa,wa],[ma,ma,ma],[ma,ma,ma]);ca.u=0;ca.v=0;Z.u=ka;Z.v=0;da.u=0;da.v= +ka;i(ea,M,K,T,x,u,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(k instanceof THREE.MeshNormalMaterial){V.r=l(I.normalWorld.x);V.g=l(I.normalWorld.y);V.b=l(I.normalWorld.z);V.updateStyleString();b(M,K,T,x,u,R,V,k.wireframe,k.wireframe_linewidth)}}}function f(v,O,H,I,k,G,W,y,X){if(y.opacity!=0){n(y.opacity);r(y.blending);M=v.positionScreen.x;K=v.positionScreen.y;T=O.positionScreen.x;x=O.positionScreen.y;u=H.positionScreen.x;R=H.positionScreen.y;ha=I.positionScreen.x;P=I.positionScreen.y;Y=k.positionScreen.x; +xa=k.positionScreen.y;Ka=G.positionScreen.x;La=G.positionScreen.y;if(y.map){ea=y.map.image;na=ea.width-1;oa=ea.height-1;ca.copy(W.uvs[0]);Z.copy(W.uvs[1]);da.copy(W.uvs[2]);ia.copy(W.uvs[3]);ca.u*=na;ca.v*=oa;Z.u*=na;Z.v*=oa;da.u*=na;da.v*=oa;ia.u*=na;ia.v*=oa;i(ea,M,K,T,x,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);i(ea,Y,xa,u,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(y instanceof THREE.MeshBasicMaterial)d(M,K,T,x,u,R,ha,P,y.color,y.wireframe,y.wireframe_linewidth);else if(y instanceof THREE.MeshLambertMaterial){if(Fa){aa.r= +ga.r;aa.g=ga.g;aa.b=ga.b;a(X,W,aa);V.r=y.color.r*aa.r;V.g=y.color.g*aa.g;V.b=y.color.b*aa.b;V.updateStyleString()}else V.__styleString=y.color.__styleString;d(M,K,T,x,u,R,ha,P,V,y.wireframe,y.wireframe_linewidth)}else if(y instanceof THREE.MeshDepthMaterial){pa=y.__2near;qa=y.__farPlusNear;ra=y.__farMinusNear;va=~~((1-pa/(qa-v.positionScreen.z*ra))*255);wa=~~((1-pa/(qa-O.positionScreen.z*ra))*255);ma=~~((1-pa/(qa-H.positionScreen.z*ra))*255);Ga=~~((1-pa/(qa-I.positionScreen.z*ra))*255);ea=h([va,va, +va],[wa,wa,wa],[Ga,Ga,Ga],[ma,ma,ma]);ca.u=0;ca.v=0;Z.u=ka;Z.v=0;da.u=ka;da.v=ka;ia.u=0;ia.v=ka;i(ea,M,K,T,x,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);i(ea,Y,xa,u,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(y instanceof THREE.MeshNormalMaterial){V.r=l(W.normalWorld.x);V.g=l(W.normalWorld.y);V.b=l(W.normalWorld.z);V.updateStyleString();d(M,K,T,x,u,R,ha,P,V,y.wireframe,y.wireframe_linewidth)}}}function b(v,O,H,I,k,G,W,y,X){j.beginPath();j.moveTo(v,O);j.lineTo(H,I);j.lineTo(k,G);j.lineTo(v,O);j.closePath(); +if(y){e(X);g(W.__styleString);j.stroke();$.inflate(X*2)}else{m(W.__styleString);j.fill()}}function d(v,O,H,I,k,G,W,y,X,F,ba){j.beginPath();j.moveTo(v,O);j.lineTo(H,I);j.lineTo(k,G);j.lineTo(W,y);j.lineTo(v,O);j.closePath();if(F){e(ba);g(X.__styleString);j.stroke();$.inflate(ba*2)}else{m(X.__styleString);j.fill()}}function i(v,O,H,I,k,G,W,y,X,F,ba,la,sa){j.beginPath();j.moveTo(O,H);j.lineTo(I,k);j.lineTo(G,W);j.closePath();I-=O;k-=H;G-=O;W-=H;F-=y;ba-=X;la-=y;sa-=X;var ta=1/(F*sa-la*ba),Ba=(sa*I-ba* +G)*ta;ba=(sa*k-ba*W)*ta;I=(F*G-la*I)*ta;k=(F*W-la*k)*ta;O=O-Ba*y-I*X;H=H-ba*y-k*X;j.save();j.transform(Ba,ba,I,k,O,H);j.clip();j.drawImage(v,0,0);j.restore()}function n(v){if(U!=v)j.globalAlpha=U=v}function r(v){if(C!=v){switch(v){case THREE.NormalBlending:j.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:j.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:j.globalCompositeOperation="darker"}C=v}}function e(v){if(B!=v)j.lineWidth=B=v}function g(v){if(S!= +v)j.strokeStyle=S=v}function m(v){if(E!=v)j.fillStyle=E=v}function h(v,O,H,I){ja[0]=v[0];ja[1]=v[1];ja[2]=v[2];ja[4]=O[0];ja[5]=O[1];ja[6]=O[2];ja[8]=H[0];ja[9]=H[1];ja[10]=H[2];ja[12]=I[0];ja[13]=I[1];ja[14]=I[2];Ca.putImageData(Ma,0,0);Ha.drawImage(Da,0,0);return Ea}function l(v){return v<0?Math.min((1+v)*0.5,0.5):0.5+Math.min(v*0.5,0.5)}function q(v,O){var H=O.x-v.x,I=O.y-v.y,k=1/Math.sqrt(H*H+I*I);H*=k;I*=k;O.x+=H;O.y+=I;v.x-=H;v.y-=I}var o=null,s=new THREE.Projector,A=document.createElement("canvas"), +J,N,p,t,j=A.getContext("2d"),U=1,C=0,S=null,E=null,B=1,L,w,D,Q,fa=new THREE.Vertex,z=new THREE.Vertex,M,K,T,x,u,R,ha,P,Y,xa,Ka,La,va,wa,ma,Ga,pa,qa,ra,ea,na,oa,ya=new THREE.Rectangle,ua=new THREE.Rectangle,$=new THREE.Rectangle,Fa=false,V=new THREE.Color(16777215),aa=new THREE.Color(16777215),ga=new THREE.Color(0),za=new THREE.Color(0),Aa=new THREE.Color(0),Qa=Math.PI*2,Ja=new THREE.Vector3,ca=new THREE.UV,Z=new THREE.UV,da=new THREE.UV,ia=new THREE.UV,Da,Ca,Ma,ja,Ea,Ha,ka=16;Da=document.createElement("canvas"); +Da.width=Da.height=2;Ca=Da.getContext("2d");Ca.fillStyle="rgba(0,0,0,1)";Ca.fillRect(0,0,2,2);Ma=Ca.getImageData(0,0,2,2);ja=Ma.data;Ea=document.createElement("canvas");Ea.width=Ea.height=ka;Ha=Ea.getContext("2d");Ha.translate(-ka/2,-ka/2);Ha.scale(ka,ka);ka--;this.domElement=A;this.autoClear=true;this.setSize=function(v,O){J=v;N=O;p=J/2;t=N/2;A.width=J;A.height=N;j.lineJoin="round";j.lineCap="round";ya.set(-p,-t,p,t)};this.clear=function(){if(!ua.isEmpty()){ua.inflate(1);ua.minSelf(ya);j.setTransform(1, +0,0,-1,p,t);j.clearRect(ua.getX(),ua.getY(),ua.getWidth(),ua.getHeight());ua.empty()}};this.render=function(v,O){var H,I,k,G,W,y,X,F;this.autoClear&&this.clear();o=s.projectScene(v,O);j.setTransform(1,0,0,-1,p,t);if(Fa=v.lights.length>0){W=v.lights;ga.setRGB(0,0,0);za.setRGB(0,0,0);Aa.setRGB(0,0,0);H=0;for(I=W.length;H0){K.r+=u.color.r*R;K.g+=u.color.g*R;K.b+=u.color.b*R}}else if(u instanceof THREE.PointLight){E.sub(u.position,M.centroidWorld);E.normalize();R=M.normalWorld.dot(E)*u.intensity;if(R>0){K.r+=u.color.r*R;K.g+=u.color.g*R;K.b+=u.color.b*R}}}}function c(z,M,K,T,x,u){w=b(D++);w.setAttribute("d","M "+z.positionScreen.x+ +" "+z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+"z");if(x instanceof THREE.MeshBasicMaterial)p.__styleString=x.color.__styleString;else if(x instanceof THREE.MeshLambertMaterial)if(N){t.r=j.r;t.g=j.g;t.b=j.b;a(u,T,t);p.r=x.color.r*t.r;p.g=x.color.g*t.g;p.b=x.color.b*t.b;p.updateStyleString()}else p.__styleString=x.color.__styleString;else if(x instanceof THREE.MeshDepthMaterial){S=1-x.__2near/(x.__farPlusNear-T.z*x.__farMinusNear); +p.setRGB(S,S,S)}else x instanceof THREE.MeshNormalMaterial&&p.setRGB(d(T.normalWorld.x),d(T.normalWorld.y),d(T.normalWorld.z));x.wireframe?w.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+x.wireframe_linewidth+"; stroke-opacity: "+x.opacity+"; stroke-linecap: round; stroke-linejoin: round"):w.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+x.opacity);r.appendChild(w)}function f(z,M,K,T,x,u,R){w=b(D++);w.setAttribute("d","M "+z.positionScreen.x+" "+ +z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+" L "+T.positionScreen.x+","+T.positionScreen.y+"z");if(u instanceof THREE.MeshBasicMaterial)p.__styleString=u.color.__styleString;else if(u instanceof THREE.MeshLambertMaterial)if(N){t.r=j.r;t.g=j.g;t.b=j.b;a(R,x,t);p.r=u.color.r*t.r;p.g=u.color.g*t.g;p.b=u.color.b*t.b;p.updateStyleString()}else p.__styleString=u.color.__styleString;else if(u instanceof THREE.MeshDepthMaterial){S=1- +u.__2near/(u.__farPlusNear-x.z*u.__farMinusNear);p.setRGB(S,S,S)}else u instanceof THREE.MeshNormalMaterial&&p.setRGB(d(x.normalWorld.x),d(x.normalWorld.y),d(x.normalWorld.z));u.wireframe?w.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+u.wireframe_linewidth+"; stroke-opacity: "+u.opacity+"; stroke-linecap: round; stroke-linejoin: round"):w.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+u.opacity);r.appendChild(w)}function b(z){if(B[z]==null){B[z]= +document.createElementNS("http://www.w3.org/2000/svg","path");fa==0&&B[z].setAttribute("shape-rendering","crispEdges");return B[z]}return B[z]}function d(z){return z<0?Math.min((1+z)*0.5,0.5):0.5+Math.min(z*0.5,0.5)}var i=null,n=new THREE.Projector,r=document.createElementNS("http://www.w3.org/2000/svg","svg"),e,g,m,h,l,q,o,s,A=new THREE.Rectangle,J=new THREE.Rectangle,N=false,p=new THREE.Color(16777215),t=new THREE.Color(16777215),j=new THREE.Color(0),U=new THREE.Color(0),C=new THREE.Color(0),S, +E=new THREE.Vector3,B=[],L=[],w,D,Q,fa=1;this.domElement=r;this.autoClear=true;this.setQuality=function(z){switch(z){case "high":fa=1;break;case "low":fa=0}};this.setSize=function(z,M){e=z;g=M;m=e/2;h=g/2;r.setAttribute("viewBox",-m+" "+-h+" "+e+" "+g);r.setAttribute("width",e);r.setAttribute("height",g);A.set(-m,-h,m,h)};this.clear=function(){for(;r.childNodes.length>0;)r.removeChild(r.childNodes[0])};this.render=function(z,M){var K,T,x,u,R,ha,P,Y;this.autoClear&&this.clear();i=n.projectScene(z, +M);Q=D=0;if(N=z.lights.length>0){P=z.lights;j.setRGB(0,0,0);U.setRGB(0,0,0);C.setRGB(0,0,0);K=0;for(T=P.length;K= 0.0 )": +"",g?"pointSpecularWeight = pow( pointDotNormalHalf, mShininess );":"",g?"pointDiffuse += mColor * pointDiffuseWeight;":"",g?"pointSpecular += mSpecular * pointSpecularWeight;":"",g?"}":"",e?"vec4 dirDiffuse = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"vec4 dirSpecular = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"vec3 dirVector = normalize( lDirection.xyz );":"",e?"vec3 dirHalfVector = normalize( lDirection.xyz + vViewPosition );": +"",e?"float dirDotNormalHalf = dot( normal, dirHalfVector );":"",e?"float dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );":"",e?"float dirSpecularWeight = 0.0;":"",e?"if ( dirDotNormalHalf >= 0.0 )":"",e?"dirSpecularWeight = pow( dirDotNormalHalf, mShininess );":"",e?"dirDiffuse += mColor * dirDiffuseWeight;":"",e?"dirSpecular += mSpecular * dirSpecularWeight;":"",e?"}":"","vec4 totalLight = mAmbient;",e?"totalLight += dirDiffuse + dirSpecular;":"",g?"totalLight += pointDiffuse + pointSpecular;": +"","if ( mixEnvMap ) {\ngl_FragColor = vec4( mix( mapColor.rgb * totalLight.xyz * vLightWeighting, cubeColor.rgb, mReflectivity ), mapColor.a );\n} else {\ngl_FragColor = vec4( mapColor.rgb * cubeColor.rgb * totalLight.xyz * vLightWeighting, mapColor.a );\n}\n} else if ( material == 1 ) {\nif ( mixEnvMap ) {\ngl_FragColor = vec4( mix( mColor.rgb * mapColor.rgb * vLightWeighting, cubeColor.rgb, mReflectivity ), mColor.a * mapColor.a );\n} else {\ngl_FragColor = vec4( mColor.rgb * mapColor.rgb * cubeColor.rgb * vLightWeighting, mColor.a * mapColor.a );\n}\n} else {\nif ( mixEnvMap ) {\ngl_FragColor = mix( mColor * mapColor, cubeColor, mReflectivity );\n} else {\ngl_FragColor = mColor * mapColor * cubeColor;\n}\n}\n}"].join("\n"))); +b.attachShader(d,c("vertex",[e?"#define MAX_DIR_LIGHTS "+e:"",g?"#define MAX_POINT_LIGHTS "+g:"","attribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\nuniform vec3 cameraPosition;\nuniform bool enableLighting;\nuniform bool useRefract;\nuniform int pointLightNumber;\nuniform int directionalLightNumber;\nuniform vec3 ambientLightColor;",e?"uniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];":"",e?"uniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];":"",g?"uniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];": +"",g?"uniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];":"","uniform mat4 objMatrix;\nuniform mat4 viewMatrix;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat3 normalMatrix;\nvarying vec3 vNormal;\nvarying vec2 vUv;\nvarying vec3 vLightWeighting;",g?"varying vec3 vPointLightVector[ MAX_POINT_LIGHTS ];":"","varying vec3 vViewPosition;\nvarying vec3 vReflect;\nuniform float mRefractionRatio;\nvoid main(void) {\nvec4 mPosition = objMatrix * vec4( position, 1.0 );\nvViewPosition = cameraPosition - mPosition.xyz;\nvec3 nWorld = mat3( objMatrix[0].xyz, objMatrix[1].xyz, objMatrix[2].xyz ) * normal;\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\nvec3 transformedNormal = normalize( normalMatrix * normal );\nif ( !enableLighting ) {\nvLightWeighting = vec3( 1.0, 1.0, 1.0 );\n} else {\nvLightWeighting = ambientLightColor;", +e?"for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"float directionalLightWeighting = max( dot( transformedNormal, normalize(lDirection.xyz ) ), 0.0 );":"",e?"vLightWeighting += directionalLightColor[ i ] * directionalLightWeighting;":"",e?"}":"",g?"for( int i = 0; i < MAX_POINT_LIGHTS; i++ ) {":"",g?"vec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );":"",g?"vPointLightVector[ i ] = normalize( lPosition.xyz - mvPosition.xyz );": +"",g?"float pointLightWeighting = max( dot( transformedNormal, vPointLightVector[ i ] ), 0.0 );":"",g?"vLightWeighting += pointLightColor[ i ] * pointLightWeighting;":"",g?"}":"","}\nvNormal = transformedNormal;\nvUv = uv;\nif ( useRefract ) {\nvReflect = refract( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz), mRefractionRatio );\n} else {\nvReflect = reflect( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz) );\n}\ngl_Position = projectionMatrix * mvPosition;\n}"].join("\n"))); +b.linkProgram(d);if(!b.getProgramParameter(d,b.LINK_STATUS)){alert("Could not initialise shaders");alert("VALIDATE_STATUS: "+b.getProgramParameter(d,b.VALIDATE_STATUS));alert(b.getError())}b.useProgram(d);d.viewMatrix=b.getUniformLocation(d,"viewMatrix");d.modelViewMatrix=b.getUniformLocation(d,"modelViewMatrix");d.projectionMatrix=b.getUniformLocation(d,"projectionMatrix");d.normalMatrix=b.getUniformLocation(d,"normalMatrix");d.objMatrix=b.getUniformLocation(d,"objMatrix");d.cameraPosition=b.getUniformLocation(d, +"cameraPosition");d.enableLighting=b.getUniformLocation(d,"enableLighting");d.ambientLightColor=b.getUniformLocation(d,"ambientLightColor");if(e){d.directionalLightNumber=b.getUniformLocation(d,"directionalLightNumber");d.directionalLightColor=b.getUniformLocation(d,"directionalLightColor");d.directionalLightDirection=b.getUniformLocation(d,"directionalLightDirection")}if(g){d.pointLightNumber=b.getUniformLocation(d,"pointLightNumber");d.pointLightColor=b.getUniformLocation(d,"pointLightColor");d.pointLightPosition= +b.getUniformLocation(d,"pointLightPosition")}d.material=b.getUniformLocation(d,"material");d.mColor=b.getUniformLocation(d,"mColor");d.mOpacity=b.getUniformLocation(d,"mOpacity");d.mReflectivity=b.getUniformLocation(d,"mReflectivity");d.mAmbient=b.getUniformLocation(d,"mAmbient");d.mSpecular=b.getUniformLocation(d,"mSpecular");d.mShininess=b.getUniformLocation(d,"mShininess");d.enableMap=b.getUniformLocation(d,"enableMap");b.uniform1i(d.enableMap,0);d.tMap=b.getUniformLocation(d,"tMap");b.uniform1i(d.tMap, +0);d.enableCubeMap=b.getUniformLocation(d,"enableCubeMap");b.uniform1i(d.enableCubeMap,0);d.tCube=b.getUniformLocation(d,"tCube");b.uniform1i(d.tCube,1);d.mixEnvMap=b.getUniformLocation(d,"mixEnvMap");b.uniform1i(d.mixEnvMap,0);d.mRefractionRatio=b.getUniformLocation(d,"mRefractionRatio");d.useRefract=b.getUniformLocation(d,"useRefract");b.uniform1i(d.useRefract,0);d.m2Near=b.getUniformLocation(d,"m2Near");d.mFarPlusNear=b.getUniformLocation(d,"mFarPlusNear");d.mFarMinusNear=b.getUniformLocation(d, +"mFarMinusNear");d.position=b.getAttribLocation(d,"position");b.enableVertexAttribArray(d.position);d.normal=b.getAttribLocation(d,"normal");b.enableVertexAttribArray(d.normal);d.uv=b.getAttribLocation(d,"uv");b.enableVertexAttribArray(d.uv);d.viewMatrixArray=new Float32Array(16);d.modelViewMatrixArray=new Float32Array(16);d.projectionMatrixArray=new Float32Array(16)})(a.directional,a.point);this.setSize=function(e,g){f.width=e;f.height=g;b.viewport(0,0,f.width,f.height)};this.clear=function(){b.clear(b.COLOR_BUFFER_BIT| +b.DEPTH_BUFFER_BIT)};this.setupLights=function(e){var g,m,h,l,q=[],o=[],s=[];l=[];var A=[];b.uniform1i(d.enableLighting,e.lights.length);g=0;for(m=e.lights.length;g>16&255)/255;this.g=(this.hex>>8&255)/255;this.b=(this.hex&255)/255},updateStyleString:function(){this.__styleString="rgb("+~~(this.r*255)+ -","+~~(this.g*255)+","+~~(this.b*255)+")"},toString:function(){return"THREE.Color ( r: "+this.r+", g: "+this.g+", b: "+this.b+", hex: "+this.hex+" )"}};THREE.Vector2=function(a,c){this.x=a||0;this.y=c||0}; -THREE.Vector2.prototype={set:function(a,c){this.x=a;this.y=c;return this},copy:function(a){this.x=a.x;this.y=a.y;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},unit:function(){this.multiplyScalar(1/this.length());return this},length:function(){return Math.sqrt(this.x* -this.x+this.y*this.y)},lengthSq:function(){return this.x*this.x+this.y*this.y},negate:function(){this.x=-this.x;this.y=-this.y;return this},clone:function(){return new THREE.Vector2(this.x,this.y)},toString:function(){return"THREE.Vector2 ("+this.x+", "+this.y+")"}};THREE.Vector3=function(a,c,f){this.x=a||0;this.y=c||0;this.z=f||0}; -THREE.Vector3.prototype={set:function(a,c,f){this.x=a;this.y=c;this.z=f;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;return this}, -cross:function(a,c){this.x=a.y*c.z-a.z*c.y;this.y=a.z*c.x-a.x*c.z;this.z=a.x*c.y-a.y*c.x;return this},crossSelf:function(a){var c=this.x,f=this.y,b=this.z;this.x=f*a.z-b*a.y;this.y=b*a.x-c*a.z;this.z=c*a.y-f*a.x;return this},multiplySelf:function(a){this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))}, -distanceToSquared:function(a){var c=this.x-a.x,f=this.y-a.y;a=this.z-a.z;return c*c+f*f+a*a},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},normalize:function(){this.length()>0?this.multiplyScalar(1/this.length()):this.multiplyScalar(0);return this},setLength:function(a){return this.normalize().multiplyScalar(a)},isZero:function(){return Math.abs(this.x)< -1.0E-4&&Math.abs(this.y)<1.0E-4&&Math.abs(this.z)<1.0E-4},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)},toString:function(){return"THREE.Vector3 ( "+this.x+", "+this.y+", "+this.z+" )"}};THREE.Vector4=function(a,c,f,b){this.x=a||0;this.y=c||0;this.z=f||0;this.w=b||1}; -THREE.Vector4.prototype={set:function(a,c,f,b){this.x=a;this.y=c;this.z=f;this.w=b;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=a.w||1;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;this.w=a.w+c.w;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;this.w=a.w-c.w;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w; -return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;this.w/=a;return this},lerpSelf:function(a,c){this.x+=(a.x-this.x)*c;this.y+=(a.y-this.y)*c;this.z+=(a.z-this.z)*c;this.w+=(a.w-this.w)*c},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},toString:function(){return"THREE.Vector4 ("+this.x+", "+this.y+", "+this.z+", "+this.w+")"}}; -THREE.Ray=function(a,c){this.origin=a||new THREE.Vector3;this.direction=c||new THREE.Vector3}; -THREE.Ray.prototype={intersectScene:function(a){var c,f,b=a.objects,d=[];a=0;for(c=b.length;a0&&A>0&&h+A<1}var f,b,d,j,o,r,e,g,n,i, -l,q=a.geometry,p=q.vertices,s=[];f=0;for(b=q.faces.length;f= -0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){r=true;d=b=f=c=0;a()};this.isEmpty=function(){return r};this.toString=function(){return"THREE.Rectangle ( left: "+c+", right: "+b+", top: "+f+", bottom: "+d+", width: "+j+", height: "+o+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; -THREE.Matrix4=function(){this._x=new THREE.Vector3;this._y=new THREE.Vector3;this._z=new THREE.Vector3}; -THREE.Matrix4.prototype={n11:1,n12:0,n13:0,n14:0,n21:0,n22:1,n23:0,n24:0,n31:0,n32:0,n33:1,n34:0,n41:0,n42:0,n43:0,n44:1,identity:function(){this.n11=1;this.n21=this.n14=this.n13=this.n12=0;this.n22=1;this.n32=this.n31=this.n24=this.n23=0;this.n33=1;this.n43=this.n42=this.n41=this.n34=0;this.n44=1},copy:function(a){this.n11=a.n11;this.n12=a.n12;this.n13=a.n13;this.n14=a.n14;this.n21=a.n21;this.n22=a.n22;this.n23=a.n23;this.n24=a.n24;this.n31=a.n31;this.n32=a.n32;this.n33=a.n33;this.n34=a.n34;this.n41= -a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,c,f){var b=this._x,d=this._y,j=this._z;j.sub(a,c);j.normalize();b.cross(f,j);b.normalize();d.cross(j,b);d.normalize();this.n11=b.x;this.n12=b.y;this.n13=b.z;this.n14=-b.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=j.x;this.n32=j.y;this.n33=j.z;this.n34=-j.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var c=a.x,f=a.y,b=a.z,d=a.w?a.w:1;a.x=this.n11*c+this.n12*f+this.n13*b+this.n14* -d;a.y=this.n21*c+this.n22*f+this.n23*b+this.n24*d;a.z=this.n31*c+this.n32*f+this.n33*b+this.n34*d;d=this.n41*c+this.n42*f+this.n43*b+this.n44*d;if(a.w)a.w=d;else{a.x/=d;a.y/=d;a.z/=d}return a},crossVector:function(a){var c=new THREE.Vector4;c.x=this.n11*a.x+this.n12*a.y+this.n13*a.z+this.n14*a.w;c.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;c.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+this.n34*a.w;c.w=a.w?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return c},multiply:function(a, -c){this.n11=a.n11*c.n11+a.n12*c.n21+a.n13*c.n31+a.n14*c.n41;this.n12=a.n11*c.n12+a.n12*c.n22+a.n13*c.n32+a.n14*c.n42;this.n13=a.n11*c.n13+a.n12*c.n23+a.n13*c.n33+a.n14*c.n43;this.n14=a.n11*c.n14+a.n12*c.n24+a.n13*c.n34+a.n14*c.n44;this.n21=a.n21*c.n11+a.n22*c.n21+a.n23*c.n31+a.n24*c.n41;this.n22=a.n21*c.n12+a.n22*c.n22+a.n23*c.n32+a.n24*c.n42;this.n23=a.n21*c.n13+a.n22*c.n23+a.n23*c.n33+a.n24*c.n43;this.n24=a.n21*c.n14+a.n22*c.n24+a.n23*c.n34+a.n24*c.n44;this.n31=a.n31*c.n11+a.n32*c.n21+a.n33*c.n31+ -a.n34*c.n41;this.n32=a.n31*c.n12+a.n32*c.n22+a.n33*c.n32+a.n34*c.n42;this.n33=a.n31*c.n13+a.n32*c.n23+a.n33*c.n33+a.n34*c.n43;this.n34=a.n31*c.n14+a.n32*c.n24+a.n33*c.n34+a.n34*c.n44;this.n41=a.n41*c.n11+a.n42*c.n21+a.n43*c.n31+a.n44*c.n41;this.n42=a.n41*c.n12+a.n42*c.n22+a.n43*c.n32+a.n44*c.n42;this.n43=a.n41*c.n13+a.n42*c.n23+a.n43*c.n33+a.n44*c.n43;this.n44=a.n41*c.n14+a.n42*c.n24+a.n43*c.n34+a.n44*c.n44},multiplySelf:function(a){var c=this.n11,f=this.n12,b=this.n13,d=this.n14,j=this.n21,o=this.n22, -r=this.n23,e=this.n24,g=this.n31,n=this.n32,i=this.n33,l=this.n34,q=this.n41,p=this.n42,s=this.n43,A=this.n44;this.n11=c*a.n11+f*a.n21+b*a.n31+d*a.n41;this.n12=c*a.n12+f*a.n22+b*a.n32+d*a.n42;this.n13=c*a.n13+f*a.n23+b*a.n33+d*a.n43;this.n14=c*a.n14+f*a.n24+b*a.n34+d*a.n44;this.n21=j*a.n11+o*a.n21+r*a.n31+e*a.n41;this.n22=j*a.n12+o*a.n22+r*a.n32+e*a.n42;this.n23=j*a.n13+o*a.n23+r*a.n33+e*a.n43;this.n24=j*a.n14+o*a.n24+r*a.n34+e*a.n44;this.n31=g*a.n11+n*a.n21+i*a.n31+l*a.n41;this.n32=g*a.n12+n*a.n22+ -i*a.n32+l*a.n42;this.n33=g*a.n13+n*a.n23+i*a.n33+l*a.n43;this.n34=g*a.n14+n*a.n24+i*a.n34+l*a.n44;this.n41=q*a.n11+p*a.n21+s*a.n31+A*a.n41;this.n42=q*a.n12+p*a.n22+s*a.n32+A*a.n42;this.n43=q*a.n13+p*a.n23+s*a.n33+A*a.n43;this.n44=q*a.n14+p*a.n24+s*a.n34+A*a.n44},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a},determinant:function(){return this.n14* -this.n23*this.n32*this.n41-this.n13*this.n24*this.n32*this.n41-this.n14*this.n22*this.n33*this.n41+this.n12*this.n24*this.n33*this.n41+this.n13*this.n22*this.n34*this.n41-this.n12*this.n23*this.n34*this.n41-this.n14*this.n23*this.n31*this.n42+this.n13*this.n24*this.n31*this.n42+this.n14*this.n21*this.n33*this.n42-this.n11*this.n24*this.n33*this.n42-this.n13*this.n21*this.n34*this.n42+this.n11*this.n23*this.n34*this.n42+this.n14*this.n22*this.n31*this.n43-this.n12*this.n24*this.n31*this.n43-this.n14* -this.n21*this.n32*this.n43+this.n11*this.n24*this.n32*this.n43+this.n12*this.n21*this.n34*this.n43-this.n11*this.n22*this.n34*this.n43-this.n13*this.n22*this.n31*this.n44+this.n12*this.n23*this.n31*this.n44+this.n13*this.n21*this.n32*this.n44-this.n11*this.n23*this.n32*this.n44-this.n12*this.n21*this.n33*this.n44+this.n11*this.n22*this.n33*this.n44},transpose:function(){function a(c,f,b){var d=c[f];c[f]=c[b];c[b]=d}a(this,"n21","n12");a(this,"n31","n13");a(this,"n32","n23");a(this,"n41","n14");a(this, -"n42","n24");a(this,"n43","n34");return this},clone:function(){var a=new THREE.Matrix4;a.n11=this.n11;a.n12=this.n12;a.n13=this.n13;a.n14=this.n14;a.n21=this.n21;a.n22=this.n22;a.n23=this.n23;a.n24=this.n24;a.n31=this.n31;a.n32=this.n32;a.n33=this.n33;a.n34=this.n34;a.n41=this.n41;a.n42=this.n42;a.n43=this.n43;a.n44=this.n44;return a},flatten:function(){return[this.n11,this.n21,this.n31,this.n41,this.n12,this.n22,this.n32,this.n42,this.n13,this.n23,this.n33,this.n43,this.n14,this.n24,this.n34,this.n44]}, -toString:function(){return"| "+this.n11+" "+this.n12+" "+this.n13+" "+this.n14+" |\n| "+this.n21+" "+this.n22+" "+this.n23+" "+this.n24+" |\n| "+this.n31+" "+this.n32+" "+this.n33+" "+this.n34+" |\n| "+this.n41+" "+this.n42+" "+this.n43+" "+this.n44+" |"}};THREE.Matrix4.translationMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n14=a;b.n24=c;b.n34=f;return b};THREE.Matrix4.scaleMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n11=a;b.n22=c;b.n33=f;return b}; -THREE.Matrix4.rotationXMatrix=function(a){var c=new THREE.Matrix4;c.n22=c.n33=Math.cos(a);c.n32=Math.sin(a);c.n23=-c.n32;return c};THREE.Matrix4.rotationYMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n33=Math.cos(a);c.n13=Math.sin(a);c.n31=-c.n13;return c};THREE.Matrix4.rotationZMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n22=Math.cos(a);c.n21=Math.sin(a);c.n12=-c.n21;return c}; -THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var f=new THREE.Matrix4,b=Math.cos(c),d=Math.sin(c),j=1-b,o=a.x,r=a.y,e=a.z;f.n11=j*o*o+b;f.n12=j*o*r-d*e;f.n13=j*o*e+d*r;f.n21=j*o*r+d*e;f.n22=j*r*r+b;f.n23=j*r*e-d*o;f.n31=j*o*e-d*r;f.n32=j*r*e+d*o;f.n33=j*e*e+b;return f}; -THREE.Matrix4.makeInvert=function(a){var c=new THREE.Matrix4;c.n11=a.n23*a.n34*a.n42-a.n24*a.n33*a.n42+a.n24*a.n32*a.n43-a.n22*a.n34*a.n43-a.n23*a.n32*a.n44+a.n22*a.n33*a.n44;c.n12=a.n14*a.n33*a.n42-a.n13*a.n34*a.n42-a.n14*a.n32*a.n43+a.n12*a.n34*a.n43+a.n13*a.n32*a.n44-a.n12*a.n33*a.n44;c.n13=a.n13*a.n24*a.n42-a.n14*a.n23*a.n42+a.n14*a.n22*a.n43-a.n12*a.n24*a.n43-a.n13*a.n22*a.n44+a.n12*a.n23*a.n44;c.n14=a.n14*a.n23*a.n32-a.n13*a.n24*a.n32-a.n14*a.n22*a.n33+a.n12*a.n24*a.n33+a.n13*a.n22*a.n34-a.n12* -a.n23*a.n34;c.n21=a.n24*a.n33*a.n41-a.n23*a.n34*a.n41-a.n24*a.n31*a.n43+a.n21*a.n34*a.n43+a.n23*a.n31*a.n44-a.n21*a.n33*a.n44;c.n22=a.n13*a.n34*a.n41-a.n14*a.n33*a.n41+a.n14*a.n31*a.n43-a.n11*a.n34*a.n43-a.n13*a.n31*a.n44+a.n11*a.n33*a.n44;c.n23=a.n14*a.n23*a.n41-a.n13*a.n24*a.n41-a.n14*a.n21*a.n43+a.n11*a.n24*a.n43+a.n13*a.n21*a.n44-a.n11*a.n23*a.n44;c.n24=a.n13*a.n24*a.n31-a.n14*a.n23*a.n31+a.n14*a.n21*a.n33-a.n11*a.n24*a.n33-a.n13*a.n21*a.n34+a.n11*a.n23*a.n34;c.n31=a.n22*a.n34*a.n41-a.n24*a.n32* -a.n41+a.n24*a.n31*a.n42-a.n21*a.n34*a.n42-a.n22*a.n31*a.n44+a.n21*a.n32*a.n44;c.n32=a.n14*a.n32*a.n41-a.n12*a.n34*a.n41-a.n14*a.n31*a.n42+a.n11*a.n34*a.n42+a.n12*a.n31*a.n44-a.n11*a.n32*a.n44;c.n33=a.n13*a.n24*a.n41-a.n14*a.n22*a.n41+a.n14*a.n21*a.n42-a.n11*a.n24*a.n42-a.n12*a.n21*a.n44+a.n11*a.n22*a.n44;c.n34=a.n14*a.n22*a.n31-a.n12*a.n24*a.n31-a.n14*a.n21*a.n32+a.n11*a.n24*a.n32+a.n12*a.n21*a.n34-a.n11*a.n22*a.n34;c.n41=a.n23*a.n32*a.n41-a.n22*a.n33*a.n41-a.n23*a.n31*a.n42+a.n21*a.n33*a.n42+a.n22* -a.n31*a.n43-a.n21*a.n32*a.n43;c.n42=a.n12*a.n33*a.n41-a.n13*a.n32*a.n41+a.n13*a.n31*a.n42-a.n11*a.n33*a.n42-a.n12*a.n31*a.n43+a.n11*a.n32*a.n43;c.n43=a.n13*a.n22*a.n41-a.n12*a.n23*a.n41-a.n13*a.n21*a.n42+a.n11*a.n23*a.n42+a.n12*a.n21*a.n43-a.n11*a.n22*a.n43;c.n44=a.n12*a.n23*a.n31-a.n13*a.n22*a.n31+a.n13*a.n21*a.n32-a.n11*a.n23*a.n32-a.n12*a.n21*a.n33+a.n11*a.n22*a.n33;c.multiplyScalar(1/a.determinant());return c}; -THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=new THREE.Matrix3;var f=c[10]*c[5]-c[6]*c[9],b=-c[10]*c[1]+c[2]*c[9],d=c[6]*c[1]-c[2]*c[5],j=-c[10]*c[4]+c[6]*c[8],o=c[10]*c[0]-c[2]*c[8],r=-c[6]*c[0]+c[2]*c[4],e=c[9]*c[4]-c[5]*c[8],g=-c[9]*c[0]+c[1]*c[8],n=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*j+c[2]*e;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*b;a.m[2]=c*d;a.m[3]=c*j;a.m[4]=c*o;a.m[5]=c*r;a.m[6]=c*e;a.m[7]=c*g;a.m[8]=c*n;return a}; -THREE.Matrix4.makeFrustum=function(a,c,f,b,d,j){var o,r,e;o=new THREE.Matrix4;r=2*d/(c-a);e=2*d/(b-f);a=(c+a)/(c-a);f=(b+f)/(b-f);b=-(j+d)/(j-d);d=-2*j*d/(j-d);o.n11=r;o.n12=0;o.n13=a;o.n14=0;o.n21=0;o.n22=e;o.n23=f;o.n24=0;o.n31=0;o.n32=0;o.n33=b;o.n34=d;o.n41=0;o.n42=0;o.n43=-1;o.n44=0;return o};THREE.Matrix4.makePerspective=function(a,c,f,b){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*c,a*c,d,a,f,b)}; -THREE.Matrix4.makeOrtho=function(a,c,f,b,d,j){var o,r,e,g;o=new THREE.Matrix4;r=c-a;e=f-b;g=j-d;a=(c+a)/r;f=(f+b)/e;d=(j+d)/g;o.n11=2/r;o.n12=0;o.n13=0;o.n14=-a;o.n21=0;o.n22=2/e;o.n23=0;o.n24=-f;o.n31=0;o.n32=0;o.n33=-2/g;o.n34=-d;o.n41=0;o.n42=0;o.n43=0;o.n44=1;return o}; -THREE.Vertex=function(a,c){this.position=a||new THREE.Vector3;this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.normal=c||new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.normalScreen=new THREE.Vector3;this.__visible=true};THREE.Vertex.prototype={toString:function(){return"THREE.Vertex ( position: "+this.position+", normal: "+this.normal+" )"}}; -THREE.Face3=function(a,c,f,b,d){this.a=a;this.b=c;this.c=f;this.centroid=new THREE.Vector3;this.normal=b instanceof THREE.Vector3?b:new THREE.Vector3;this.vertexNormals=b instanceof Array?b:[];this.material=d instanceof Array?d:[d]};THREE.Face3.prototype={toString:function(){return"THREE.Face3 ( "+this.a+", "+this.b+", "+this.c+" )"}}; -THREE.Face4=function(a,c,f,b,d,j){this.a=a;this.b=c;this.c=f;this.d=b;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=j instanceof Array?j:[j]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,c){this.u=a||0;this.v=c||0}; -THREE.UV.prototype={copy:function(a){this.u=a.u;this.v=a.v},toString:function(){return"THREE.UV ("+this.u+", "+this.v+")"}};THREE.Geometry=function(){this.vertices=[];this.faces=[];this.uvs=[]}; -THREE.Geometry.prototype={computeCentroids:function(){var a,c,f;a=0;for(c=this.faces.length;a0){this.bbox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y,this.vertices[0].position.y],z:[this.vertices[0].position.z,this.vertices[0].position.z]};for(var a=1,c=this.vertices.length;a -this.bbox.x[1])this.bbox.x[1]=vertex.position.x;if(vertex.position.ythis.bbox.y[1])this.bbox.y[1]=vertex.position.y;if(vertex.position.zthis.bbox.z[1])this.bbox.z[1]=vertex.position.z}}},toString:function(){return"THREE.Geometry ( vertices: "+this.vertices+", faces: "+this.faces+" )"}}; -THREE.Camera=function(a,c,f,b){this.position=new THREE.Vector3(0,0,0);this.target={position:new THREE.Vector3(0,0,0)};this.up=new THREE.Vector3(0,1,0);this.matrix=new THREE.Matrix4;this.projectionMatrix=THREE.Matrix4.makePerspective(a,c,f,b);this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrix.lookAt(this.position,this.target.position,this.up)};this.toString=function(){return"THREE.Camera ( "+this.position+", "+this.target.position+" )"}}; -THREE.Light=function(a){this.color=new THREE.Color(-16777216|a)};THREE.AmbientLight=function(a){THREE.Light.call(this,a)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight;THREE.DirectionalLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,1,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight; -THREE.PointLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,0,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.PointLight; -THREE.Object3D=function(){this.position=new THREE.Vector3;this.rotation=new THREE.Vector3;this.scale=new THREE.Vector3(1,1,1);this.matrix=new THREE.Matrix4;this.matrixTranslation=new THREE.Matrix4;this.matrixRotation=new THREE.Matrix4;this.matrixScale=new THREE.Matrix4;this.screen=new THREE.Vector3;this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrixPosition=THREE.Matrix4.translationMatrix(this.position.x,this.position.y,this.position.z);this.matrixRotation=THREE.Matrix4.rotationXMatrix(this.rotation.x); -this.matrixRotation.multiplySelf(THREE.Matrix4.rotationYMatrix(this.rotation.y));this.matrixRotation.multiplySelf(THREE.Matrix4.rotationZMatrix(this.rotation.z));this.matrixScale=THREE.Matrix4.scaleMatrix(this.scale.x,this.scale.y,this.scale.z);this.matrix.copy(this.matrixPosition);this.matrix.multiplySelf(this.matrixRotation);this.matrix.multiplySelf(this.matrixScale)}};THREE.Particle=function(a){THREE.Object3D.call(this);this.material=a instanceof Array?a:[a];this.autoUpdateMatrix=false}; -THREE.Particle.prototype=new THREE.Object3D;THREE.Particle.prototype.constructor=THREE.Particle;THREE.Line=function(a,c){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c]};THREE.Line.prototype=new THREE.Object3D;THREE.Line.prototype.constructor=THREE.Line; -THREE.Mesh=function(a,c,f){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c];this.overdraw=this.doubleSided=this.flipSided=false;this.materialFaceGroup={};this.sortFacesByMaterial();f&&this.normalizeUVs();this.geometry.computeBoundingBox()};THREE.Mesh.prototype=new THREE.Object3D;THREE.Mesh.prototype.constructor=THREE.Mesh; -THREE.Mesh.prototype.sortFacesByMaterial=function(){function a(n){var i=[];c=0;for(f=n.length;c65535){g[r].counter+=1;e=g[r].hash+"_"+g[r].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:o,vertices:0}}this.materialFaceGroup[e].faces.push(b);this.materialFaceGroup[e].vertices+=j}};THREE.Mesh.prototype.normalizeUVs=function(){var a,c,f,b,d;a=0;for(c=this.geometry.uvs.length;acolor: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
linewidth: "+ -this.linewidth+"
)"}}; -THREE.MeshBasicMaterial=function(a){this.id=THREE.MeshBasicMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!== -undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshBasicMaterial (
id: "+ -this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
)"}};THREE.MeshBasicMaterialCounter={value:0}; -THREE.MeshLambertMaterial=function(a){this.id=THREE.MeshLambertMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!== -undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshLambertMaterial (
id: "+ -this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
shading: "+this.shading+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_size: "+this.wireframe_linewidth+"
)"}};THREE.MeshLambertMaterialCounter={value:0}; -THREE.MeshPhongMaterial=function(a){this.id=THREE.MeshPhongMaterialCounter.value++;this.color=new THREE.Color(15658734);this.ambient=new THREE.Color(328965);this.specular=new THREE.Color(1118481);this.shininess=30;this.env_map=this.specular_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){if(a.color!==undefined)this.color= -new THREE.Color(a.color);if(a.ambient!==undefined)this.ambient=new THREE.Color(a.ambient);if(a.specular!==undefined)this.specular=new THREE.Color(a.specular);if(a.shininess!==undefined)this.shininess=a.shininess;if(a.map!==undefined)this.map=a.map;if(a.specular_map!==undefined)this.specular_map=a.specular_map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!==undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio= -a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshPhongMaterial (
id: "+this.id+"
color: "+this.color+"
ambient: "+this.ambient+"
specular: "+this.specular+"
shininess: "+this.shininess+ -"
map: "+this.map+"
specular_map: "+this.specular_map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
shading: "+this.shading+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
"+ +")"}};THREE.MeshPhongMaterialCounter={value:0}; -THREE.MeshDepthMaterial=function(a){this.near=1;this.far=1E3;this.opacity=1;this.blending=THREE.NormalBlending;if(a){if(a.near!==undefined)this.near=a.near;if(a.far!==undefined)this.far=a.far;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.__2near=2*this.near;this.__farPlusNear=this.far+this.near;this.__farMinusNear=this.far-this.near;this.toString=function(){return"THREE.MeshDepthMaterial"}}; -THREE.MeshNormalMaterial=function(a){this.opacity=1;this.shading=THREE.FlatShading;this.blending=THREE.NormalBlending;if(a){if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.MeshNormalMaterial"}};THREE.MeshFaceMaterial=function(){this.toString=function(){return"THREE.MeshFaceMaterial"}}; -THREE.MeshCubeMaterial=function(a){this.id=THREE.MeshCubeMaterial.value++;this.env_map=null;this.blending=THREE.NormalBlending;if(a)if(a.env_map!==undefined)this.env_map=a.env_map;this.toString=function(){return"THREE.MeshCubeMaterial( id: "+this.id+"
env_map: "+this.env_map+" )"}};THREE.MeshCubeMaterialCounter={value:0}; -THREE.ParticleBasicMaterial=function(a){this.color=new THREE.Color(16711680);this.map=null;this.opacity=1;this.blending=THREE.NormalBlending;this.offset=new THREE.Vector2;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleBasicMaterial (
color: "+this.color+"
map: "+this.map+"
opacity: "+this.opacity+"
blending: "+ -this.blending+"
)"}};THREE.ParticleCircleMaterial=function(a){this.color=new THREE.Color(16711680);this.opacity=1;this.blending=THREE.NormalBlending;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleCircleMaterial (
color: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
)"}}; -THREE.ParticleDOMMaterial=function(a){this.domElement=a;this.toString=function(){return"THREE.ParticleDOMMaterial ( domElement: "+this.domElement+" )"}};THREE.Texture=function(a,c){this.image=a;this.mapping=c!==undefined?c:THREE.UVMapping;this.toString=function(){return"THREE.Texture (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.UVMapping=0;THREE.ReflectionMap=1;THREE.RefractionMap=2;THREE.Multiply=0;THREE.Mix=1; -THREE.TextureCube=function(a,c){this.image=a;this.mapping=c?c:THREE.ReflectionMap;this.toString=function(){return"THREE.TextureCube (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.loadImageArray=function(a){var c,f=[];for(c=f.loadCount=0;c=0&&P>=0&&M>=0&&y>=0)m=true;else if(h<0&&P<0||M<0&&y<0)m=false;else{if(h<0)m=Math.max(m,h/(h-P));else if(P<0)w=Math.min(w,h/(h-P));if(M<0)m=Math.max(m,M/(M-y));else if(y<0)w=Math.min(w,M/(M-y));if(w0&&t.z<1}E=y.geometry.faces;h=0;for(P=E.length;h< -P;h++){t=E[h];if(t instanceof THREE.Face3){X=S[t.a];D=S[t.b];L=S[t.c];if(X.__visible&&D.__visible&&L.__visible)if(y.doubleSided||y.flipSided!=(L.positionScreen.x-X.positionScreen.x)*(D.positionScreen.y-X.positionScreen.y)-(L.positionScreen.y-X.positionScreen.y)*(D.positionScreen.x-X.positionScreen.x)<0){f=d[b]=d[b]||new THREE.RenderableFace3;f.v1.positionScreen.copy(X.positionScreen);f.v2.positionScreen.copy(D.positionScreen);f.v3.positionScreen.copy(L.positionScreen);f.normalWorld.copy(t.normal); -y.matrixRotation.transform(f.normalWorld);f.centroidWorld.copy(t.centroid);J.transform(f.centroidWorld);f.centroidScreen.copy(f.centroidWorld);s.transform(f.centroidScreen);f.z=f.centroidScreen.z;f.meshMaterial=y.material;f.faceMaterial=t.material;f.overdraw=y.overdraw;f.uvs=y.geometry.uvs[h];f.color=t.color;c.push(f);b++}}else if(t instanceof THREE.Face4){X=S[t.a];D=S[t.b];L=S[t.c];K=S[t.d];if(X.__visible&&D.__visible&&L.__visible&&K.__visible)if(y.doubleSided||y.flipSided!=((K.positionScreen.x- -X.positionScreen.x)*(D.positionScreen.y-X.positionScreen.y)-(K.positionScreen.y-X.positionScreen.y)*(D.positionScreen.x-X.positionScreen.x)<0||(D.positionScreen.x-L.positionScreen.x)*(K.positionScreen.y-L.positionScreen.y)-(D.positionScreen.y-L.positionScreen.y)*(K.positionScreen.x-L.positionScreen.x)<0)){j=r[o]=r[o]||new THREE.RenderableFace4;j.v1.positionScreen.copy(X.positionScreen);j.v2.positionScreen.copy(D.positionScreen);j.v3.positionScreen.copy(L.positionScreen);j.v4.positionScreen.copy(K.positionScreen); -j.normalWorld.copy(t.normal);y.matrixRotation.transform(j.normalWorld);j.centroidWorld.copy(t.centroid);J.transform(j.centroidWorld);j.centroidScreen.copy(j.centroidWorld);s.transform(j.centroidScreen);j.z=j.centroidScreen.z;j.meshMaterial=y.material;j.faceMaterial=t.material;j.overdraw=y.overdraw;j.uvs=y.geometry.uvs[h];j.color=t.color;c.push(j);o++}}}}else if(y instanceof THREE.Line){A.multiply(s,J);S=y.geometry.vertices;h=0;for(P=S.length;h0&&p.z<1){i=q[l]=q[l]||new THREE.RenderableParticle;i.x=p.x/p.w;i.y=p.y/p.w; -i.z=p.z;i.rotation=y.rotation.z;i.scale.x=y.scale.x*Math.abs(i.x-(p.x+B.projectionMatrix.n11)/(p.w+B.projectionMatrix.n14));i.scale.y=y.scale.y*Math.abs(i.y-(p.y+B.projectionMatrix.n22)/(p.w+B.projectionMatrix.n24));i.material=y.material;c.push(i);l++}}}c.sort(function(R,z){return z.z-R.z});return c};this.unprojectVector=function(C,B){var m=new THREE.Matrix4;m.multiply(THREE.Matrix4.makeInvert(B.matrix),THREE.Matrix4.makeInvert(B.projectionMatrix));m.transform(C);return C}}; -THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,c=new THREE.Projector,f,b,d,j;this.domElement=document.createElement("div");this.setSize=function(o,r){f=o;b=r;d=f/2;j=b/2};this.render=function(o,r){var e,g,n,i,l,q,p,s;a=c.projectScene(o,r);e=0;for(g=a.length;e0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}else if(k instanceof THREE.PointLight){Ja.sub(k.position,N.centroidWorld);Ja.normalize();k=N.normalWorld.dot(Ja)*k.intensity;if(k>0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}}}function c(x,N,H,I,k,G){if(k.opacity!=0){o(k.opacity);r(k.blending);L=x.positionScreen.x; -K=x.positionScreen.y;R=N.positionScreen.x;z=N.positionScreen.y;v=H.positionScreen.x;Q=H.positionScreen.y;if(k.map){fa=k.map.image;pa=fa.width-1;qa=fa.height-1;da.u=I.uvs[0].u*pa;da.v=I.uvs[0].v*qa;Z.u=I.uvs[1].u*pa;Z.v=I.uvs[1].v*qa;ea.u=I.uvs[2].u*pa;ea.v=I.uvs[2].v*qa;j(fa,L,K,R,z,v,Q,da.u,da.v,Z.u,Z.v,ea.u,ea.v)}else if(k instanceof THREE.MeshBasicMaterial)b(L,K,R,z,v,Q,k.color,k.wireframe,k.wireframe_linewidth);else if(k instanceof THREE.MeshLambertMaterial){if(Fa){ba.r=ga.r;ba.g=ga.g;ba.b=ga.b; -a(G,I,ba);T.r=k.color.r*ba.r;T.g=k.color.g*ba.g;T.b=k.color.b*ba.b;T.updateStyleString()}else T.__styleString=k.color.__styleString;b(L,K,R,z,v,Q,T,k.wireframe,k.wireframe_linewidth)}else if(k instanceof THREE.MeshDepthMaterial){ra=k.__2near;sa=k.__farPlusNear;ta=k.__farMinusNear;wa=~~((1-ra/(sa-x.positionScreen.z*ta))*255);xa=~~((1-ra/(sa-N.positionScreen.z*ta))*255);na=~~((1-ra/(sa-H.positionScreen.z*ta))*255);fa=i([wa,wa,wa],[xa,xa,xa],[na,na,na],[na,na,na]);da.u=0;da.v=0;Z.u=la;Z.v=0;ea.u=0;ea.v= -la;j(fa,L,K,R,z,v,Q,da.u,da.v,Z.u,Z.v,ea.u,ea.v)}else if(k instanceof THREE.MeshNormalMaterial){T.r=l(I.normalWorld.x);T.g=l(I.normalWorld.y);T.b=l(I.normalWorld.z);T.updateStyleString();b(L,K,R,z,v,Q,T,k.wireframe,k.wireframe_linewidth)}}}function f(x,N,H,I,k,G,U,u,W){if(u.opacity!=0){o(u.opacity);r(u.blending);L=x.positionScreen.x;K=x.positionScreen.y;R=N.positionScreen.x;z=N.positionScreen.y;v=H.positionScreen.x;Q=H.positionScreen.y;ha=I.positionScreen.x;O=I.positionScreen.y;Y=k.positionScreen.x; -ya=k.positionScreen.y;Ka=G.positionScreen.x;La=G.positionScreen.y;if(u.map){fa=u.map.image;pa=fa.width-1;qa=fa.height-1;da.copy(U.uvs[0]);Z.copy(U.uvs[1]);ea.copy(U.uvs[2]);ia.copy(U.uvs[3]);da.u*=pa;da.v*=qa;Z.u*=pa;Z.v*=qa;ea.u*=pa;ea.v*=qa;ia.u*=pa;ia.v*=qa;j(fa,L,K,R,z,ha,O,da.u,da.v,Z.u,Z.v,ia.u,ia.v);j(fa,Y,ya,v,Q,Ka,La,Z.u,Z.v,ea.u,ea.v,ia.u,ia.v)}else if(u instanceof THREE.MeshBasicMaterial)d(L,K,R,z,v,Q,ha,O,u.color,u.wireframe,u.wireframe_linewidth);else if(u instanceof THREE.MeshLambertMaterial){if(Fa){ba.r= -ga.r;ba.g=ga.g;ba.b=ga.b;a(W,U,ba);T.r=u.color.r*ba.r;T.g=u.color.g*ba.g;T.b=u.color.b*ba.b;T.updateStyleString()}else T.__styleString=u.color.__styleString;d(L,K,R,z,v,Q,ha,O,T,u.wireframe,u.wireframe_linewidth)}else if(u instanceof THREE.MeshDepthMaterial){ra=u.__2near;sa=u.__farPlusNear;ta=u.__farMinusNear;wa=~~((1-ra/(sa-x.positionScreen.z*ta))*255);xa=~~((1-ra/(sa-N.positionScreen.z*ta))*255);na=~~((1-ra/(sa-H.positionScreen.z*ta))*255);Ga=~~((1-ra/(sa-I.positionScreen.z*ta))*255);fa=i([wa,wa, -wa],[xa,xa,xa],[Ga,Ga,Ga],[na,na,na]);da.u=0;da.v=0;Z.u=la;Z.v=0;ea.u=la;ea.v=la;ia.u=0;ia.v=la;j(fa,L,K,R,z,ha,O,da.u,da.v,Z.u,Z.v,ia.u,ia.v);j(fa,Y,ya,v,Q,Ka,La,Z.u,Z.v,ea.u,ea.v,ia.u,ia.v)}else if(u instanceof THREE.MeshNormalMaterial){T.r=l(U.normalWorld.x);T.g=l(U.normalWorld.y);T.b=l(U.normalWorld.z);T.updateStyleString();d(L,K,R,z,v,Q,ha,O,T,u.wireframe,u.wireframe_linewidth)}}}function b(x,N,H,I,k,G,U,u,W){h.beginPath();h.moveTo(x,N);h.lineTo(H,I);h.lineTo(k,G);h.lineTo(x,N);h.closePath(); -if(u){e(W);g(U.__styleString);h.stroke();$.inflate(W*2)}else{n(U.__styleString);h.fill()}}function d(x,N,H,I,k,G,U,u,W,F,ca){h.beginPath();h.moveTo(x,N);h.lineTo(H,I);h.lineTo(k,G);h.lineTo(U,u);h.lineTo(x,N);h.closePath();if(F){e(ca);g(W.__styleString);h.stroke();$.inflate(ca*2)}else{n(W.__styleString);h.fill()}}function j(x,N,H,I,k,G,U,u,W,F,ca,ma,ua){h.beginPath();h.moveTo(N,H);h.lineTo(I,k);h.lineTo(G,U);h.closePath();I-=N;k-=H;G-=N;U-=H;F-=u;ca-=W;ma-=u;ua-=W;var va=1/(F*ua-ma*ca),Ba=(ua*I-ca* -G)*va;ca=(ua*k-ca*U)*va;I=(F*G-ma*I)*va;k=(F*U-ma*k)*va;N=N-Ba*u-I*W;H=H-ca*u-k*W;h.save();h.transform(Ba,ca,I,k,N,H);h.clip();h.drawImage(x,0,0);h.restore()}function o(x){if(P!=x)h.globalAlpha=P=x}function r(x){if(M!=x){switch(x){case THREE.NormalBlending:h.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:h.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:h.globalCompositeOperation="darker"}M=x}}function e(x){if(S!=x)h.lineWidth=S=x}function g(x){if(y!= -x)h.strokeStyle=y=x}function n(x){if(J!=x)h.fillStyle=J=x}function i(x,N,H,I){ja[0]=x[0];ja[1]=x[1];ja[2]=x[2];ja[4]=N[0];ja[5]=N[1];ja[6]=N[2];ja[8]=H[0];ja[9]=H[1];ja[10]=H[2];ja[12]=I[0];ja[13]=I[1];ja[14]=I[2];Ca.putImageData(Ma,0,0);Ha.drawImage(Da,0,0);return Ea}function l(x){return x<0?Math.min((1+x)*0.5,0.5):0.5+Math.min(x*0.5,0.5)}function q(x,N){var H=N.x-x.x,I=N.y-x.y,k=1/Math.sqrt(H*H+I*I);H*=k;I*=k;N.x+=H;N.y+=I;x.x-=H;x.y-=I}var p=null,s=new THREE.Projector,A=document.createElement("canvas"), -C,B,m,w,h=A.getContext("2d"),P=1,M=0,y=null,J=null,S=1,E,t,V,aa,X=new THREE.Vertex,D=new THREE.Vertex,L,K,R,z,v,Q,ha,O,Y,ya,Ka,La,wa,xa,na,Ga,ra,sa,ta,fa,pa,qa,oa=new THREE.Rectangle,ka=new THREE.Rectangle,$=new THREE.Rectangle,Fa=false,T=new THREE.Color(4294967295),ba=new THREE.Color(4294967295),ga=new THREE.Color(4278190080),za=new THREE.Color(4278190080),Aa=new THREE.Color(4278190080),Qa=Math.PI*2,Ja=new THREE.Vector3,da=new THREE.UV,Z=new THREE.UV,ea=new THREE.UV,ia=new THREE.UV,Da,Ca,Ma,ja,Ea, -Ha,la=16;Da=document.createElement("canvas");Da.width=Da.height=2;Ca=Da.getContext("2d");Ca.fillStyle="rgba(0,0,0,1)";Ca.fillRect(0,0,2,2);Ma=Ca.getImageData(0,0,2,2);ja=Ma.data;Ea=document.createElement("canvas");Ea.width=Ea.height=la;Ha=Ea.getContext("2d");Ha.translate(-la/2,-la/2);Ha.scale(la,la);la--;this.domElement=A;this.autoClear=true;this.setSize=function(x,N){C=x;B=N;m=C/2;w=B/2;A.width=C;A.height=B;h.lineJoin="round";h.lineCap="round";oa.set(-m,-w,m,w)};this.clear=function(){if(!ka.isEmpty()){ka.inflate(1); -ka.minSelf(oa);h.setTransform(1,0,0,-1,m,w);h.clearRect(ka.getX(),ka.getY(),ka.getWidth(),ka.getHeight());ka.empty()}};this.render=function(x,N){var H,I,k,G,U,u,W,F;this.autoClear&&this.clear();p=s.projectScene(x,N);h.setTransform(1,0,0,-1,m,w);h.fillStyle="rgba(0, 255, 255, 0.5)";h.fillRect(oa.getX(),oa.getY(),oa.getWidth(),oa.getHeight());if(Fa=x.lights.length>0){U=x.lights;ga.setRGB(0,0,0);za.setRGB(0,0,0);Aa.setRGB(0,0,0);H=0;for(I=U.length;H0){K.r+=v.color.r*Q;K.g+=v.color.g*Q;K.b+=v.color.b*Q}}else if(v instanceof THREE.PointLight){J.sub(v.position,L.centroidWorld);J.normalize();Q=L.normalWorld.dot(J)*v.intensity;if(Q>0){K.r+=v.color.r*Q;K.g+=v.color.g*Q;K.b+=v.color.b*Q}}}}function c(D,L,K,R,z,v){t=b(V++);t.setAttribute("d","M "+D.positionScreen.x+ -" "+D.positionScreen.y+" L "+L.positionScreen.x+" "+L.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+"z");if(z instanceof THREE.MeshBasicMaterial)m.__styleString=z.color.__styleString;else if(z instanceof THREE.MeshLambertMaterial)if(B){w.r=h.r;w.g=h.g;w.b=h.b;a(v,R,w);m.r=z.color.r*w.r;m.g=z.color.g*w.g;m.b=z.color.b*w.b;m.updateStyleString()}else m.__styleString=z.color.__styleString;else if(z instanceof THREE.MeshDepthMaterial){y=1-z.__2near/(z.__farPlusNear-R.z*z.__farMinusNear); -m.setRGB(y,y,y)}else z instanceof THREE.MeshNormalMaterial&&m.setRGB(d(R.normalWorld.x),d(R.normalWorld.y),d(R.normalWorld.z));z.wireframe?t.setAttribute("style","fill: none; stroke: "+m.__styleString+"; stroke-width: "+z.wireframe_linewidth+"; stroke-opacity: "+z.opacity+"; stroke-linecap: round; stroke-linejoin: round"):t.setAttribute("style","fill: "+m.__styleString+"; fill-opacity: "+z.opacity);r.appendChild(t)}function f(D,L,K,R,z,v,Q){t=b(V++);t.setAttribute("d","M "+D.positionScreen.x+" "+ -D.positionScreen.y+" L "+L.positionScreen.x+" "+L.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+" L "+R.positionScreen.x+","+R.positionScreen.y+"z");if(v instanceof THREE.MeshBasicMaterial)m.__styleString=v.color.__styleString;else if(v instanceof THREE.MeshLambertMaterial)if(B){w.r=h.r;w.g=h.g;w.b=h.b;a(Q,z,w);m.r=v.color.r*w.r;m.g=v.color.g*w.g;m.b=v.color.b*w.b;m.updateStyleString()}else m.__styleString=v.color.__styleString;else if(v instanceof THREE.MeshDepthMaterial){y=1- -v.__2near/(v.__farPlusNear-z.z*v.__farMinusNear);m.setRGB(y,y,y)}else v instanceof THREE.MeshNormalMaterial&&m.setRGB(d(z.normalWorld.x),d(z.normalWorld.y),d(z.normalWorld.z));v.wireframe?t.setAttribute("style","fill: none; stroke: "+m.__styleString+"; stroke-width: "+v.wireframe_linewidth+"; stroke-opacity: "+v.opacity+"; stroke-linecap: round; stroke-linejoin: round"):t.setAttribute("style","fill: "+m.__styleString+"; fill-opacity: "+v.opacity);r.appendChild(t)}function b(D){if(S[D]==null){S[D]= -document.createElementNS("http://www.w3.org/2000/svg","path");X==0&&S[D].setAttribute("shape-rendering","crispEdges");return S[D]}return S[D]}function d(D){return D<0?Math.min((1+D)*0.5,0.5):0.5+Math.min(D*0.5,0.5)}var j=null,o=new THREE.Projector,r=document.createElementNS("http://www.w3.org/2000/svg","svg"),e,g,n,i,l,q,p,s,A=new THREE.Rectangle,C=new THREE.Rectangle,B=false,m=new THREE.Color(4294967295),w=new THREE.Color(4294967295),h=new THREE.Color(4278190080),P=new THREE.Color(4278190080),M= -new THREE.Color(4278190080),y,J=new THREE.Vector3,S=[],E=[],t,V,aa,X=1;this.domElement=r;this.autoClear=true;this.setQuality=function(D){switch(D){case "high":X=1;break;case "low":X=0}};this.setSize=function(D,L){e=D;g=L;n=e/2;i=g/2;r.setAttribute("viewBox",-n+" "+-i+" "+e+" "+g);r.setAttribute("width",e);r.setAttribute("height",g);A.set(-n,-i,n,i)};this.clear=function(){for(;r.childNodes.length>0;)r.removeChild(r.childNodes[0])};this.render=function(D,L){var K,R,z,v,Q,ha,O,Y;this.autoClear&&this.clear(); -j=o.projectScene(D,L);aa=V=0;if(B=D.lights.length>0){O=D.lights;h.setRGB(0,0,0);P.setRGB(0,0,0);M.setRGB(0,0,0);K=0;for(R=O.length;K= 0.0 )": -"",g?"pointSpecularWeight = pow( pointDotNormalHalf, mShininess );":"",g?"pointDiffuse += mColor * pointDiffuseWeight;":"",g?"pointSpecular += mSpecular * pointSpecularWeight;":"",g?"}":"",e?"vec4 dirDiffuse = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"vec4 dirSpecular = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"vec3 dirVector = normalize( lDirection.xyz );":"",e?"vec3 dirHalfVector = normalize( lDirection.xyz + vViewPosition );": -"",e?"float dirDotNormalHalf = dot( normal, dirHalfVector );":"",e?"float dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );":"",e?"float dirSpecularWeight = 0.0;":"",e?"if ( dirDotNormalHalf >= 0.0 )":"",e?"dirSpecularWeight = pow( dirDotNormalHalf, mShininess );":"",e?"dirDiffuse += mColor * dirDiffuseWeight;":"",e?"dirSpecular += mSpecular * dirSpecularWeight;":"",e?"}":"","vec4 totalLight = mAmbient;",e?"totalLight += dirDiffuse + dirSpecular;":"",g?"totalLight += pointDiffuse + pointSpecular;": -"","if ( mixEnvMap ) {\ngl_FragColor = vec4( mix( mapColor.rgb * totalLight.xyz * vLightWeighting, cubeColor.rgb, mReflectivity ), mapColor.a );\n} else {\ngl_FragColor = vec4( mapColor.rgb * cubeColor.rgb * totalLight.xyz * vLightWeighting, mapColor.a );\n}\n} else if ( material == 1 ) {\nif ( mixEnvMap ) {\ngl_FragColor = vec4( mix( mColor.rgb * mapColor.rgb * vLightWeighting, cubeColor.rgb, mReflectivity ), mColor.a * mapColor.a );\n} else {\ngl_FragColor = vec4( mColor.rgb * mapColor.rgb * cubeColor.rgb * vLightWeighting, mColor.a * mapColor.a );\n}\n} else {\nif ( mixEnvMap ) {\ngl_FragColor = mix( mColor * mapColor, cubeColor, mReflectivity );\n} else {\ngl_FragColor = mColor * mapColor * cubeColor;\n}\n}\n}"].join("\n"))); -b.attachShader(d,c("vertex",[e?"#define MAX_DIR_LIGHTS "+e:"",g?"#define MAX_POINT_LIGHTS "+g:"","attribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\nuniform vec3 cameraPosition;\nuniform bool enableLighting;\nuniform bool useRefract;\nuniform int pointLightNumber;\nuniform int directionalLightNumber;\nuniform vec3 ambientLightColor;",e?"uniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];":"",e?"uniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];":"",g?"uniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];": -"",g?"uniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];":"","uniform mat4 objMatrix;\nuniform mat4 viewMatrix;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat3 normalMatrix;\nvarying vec3 vNormal;\nvarying vec2 vUv;\nvarying vec3 vLightWeighting;",g?"varying vec3 vPointLightVector[ MAX_POINT_LIGHTS ];":"","varying vec3 vViewPosition;\nvarying vec3 vReflect;\nuniform float mRefractionRatio;\nvoid main(void) {\nvec4 mPosition = objMatrix * vec4( position, 1.0 );\nvViewPosition = cameraPosition - mPosition.xyz;\nvec3 nWorld = mat3( objMatrix[0].xyz, objMatrix[1].xyz, objMatrix[2].xyz ) * normal;\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\nvec3 transformedNormal = normalize( normalMatrix * normal );\nif ( !enableLighting ) {\nvLightWeighting = vec3( 1.0, 1.0, 1.0 );\n} else {\nvLightWeighting = ambientLightColor;", -e?"for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"float directionalLightWeighting = max( dot( transformedNormal, normalize(lDirection.xyz ) ), 0.0 );":"",e?"vLightWeighting += directionalLightColor[ i ] * directionalLightWeighting;":"",e?"}":"",g?"for( int i = 0; i < MAX_POINT_LIGHTS; i++ ) {":"",g?"vec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );":"",g?"vPointLightVector[ i ] = normalize( lPosition.xyz - mvPosition.xyz );": -"",g?"float pointLightWeighting = max( dot( transformedNormal, vPointLightVector[ i ] ), 0.0 );":"",g?"vLightWeighting += pointLightColor[ i ] * pointLightWeighting;":"",g?"}":"","}\nvNormal = transformedNormal;\nvUv = uv;\nif ( useRefract ) {\nvReflect = refract( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz), mRefractionRatio );\n} else {\nvReflect = reflect( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz) );\n}\ngl_Position = projectionMatrix * mvPosition;\n}"].join("\n"))); -b.linkProgram(d);if(!b.getProgramParameter(d,b.LINK_STATUS)){alert("Could not initialise shaders");alert("VALIDATE_STATUS: "+b.getProgramParameter(d,b.VALIDATE_STATUS));alert(b.getError())}b.useProgram(d);d.viewMatrix=b.getUniformLocation(d,"viewMatrix");d.modelViewMatrix=b.getUniformLocation(d,"modelViewMatrix");d.projectionMatrix=b.getUniformLocation(d,"projectionMatrix");d.normalMatrix=b.getUniformLocation(d,"normalMatrix");d.objMatrix=b.getUniformLocation(d,"objMatrix");d.cameraPosition=b.getUniformLocation(d, -"cameraPosition");d.enableLighting=b.getUniformLocation(d,"enableLighting");d.ambientLightColor=b.getUniformLocation(d,"ambientLightColor");if(e){d.directionalLightNumber=b.getUniformLocation(d,"directionalLightNumber");d.directionalLightColor=b.getUniformLocation(d,"directionalLightColor");d.directionalLightDirection=b.getUniformLocation(d,"directionalLightDirection")}if(g){d.pointLightNumber=b.getUniformLocation(d,"pointLightNumber");d.pointLightColor=b.getUniformLocation(d,"pointLightColor");d.pointLightPosition= -b.getUniformLocation(d,"pointLightPosition")}d.material=b.getUniformLocation(d,"material");d.mColor=b.getUniformLocation(d,"mColor");d.mOpacity=b.getUniformLocation(d,"mOpacity");d.mReflectivity=b.getUniformLocation(d,"mReflectivity");d.mAmbient=b.getUniformLocation(d,"mAmbient");d.mSpecular=b.getUniformLocation(d,"mSpecular");d.mShininess=b.getUniformLocation(d,"mShininess");d.enableMap=b.getUniformLocation(d,"enableMap");b.uniform1i(d.enableMap,0);d.tMap=b.getUniformLocation(d,"tMap");b.uniform1i(d.tMap, -0);d.enableCubeMap=b.getUniformLocation(d,"enableCubeMap");b.uniform1i(d.enableCubeMap,0);d.tCube=b.getUniformLocation(d,"tCube");b.uniform1i(d.tCube,1);d.mixEnvMap=b.getUniformLocation(d,"mixEnvMap");b.uniform1i(d.mixEnvMap,0);d.mRefractionRatio=b.getUniformLocation(d,"mRefractionRatio");d.useRefract=b.getUniformLocation(d,"useRefract");b.uniform1i(d.useRefract,0);d.m2Near=b.getUniformLocation(d,"m2Near");d.mFarPlusNear=b.getUniformLocation(d,"mFarPlusNear");d.mFarMinusNear=b.getUniformLocation(d, -"mFarMinusNear");d.position=b.getAttribLocation(d,"position");b.enableVertexAttribArray(d.position);d.normal=b.getAttribLocation(d,"normal");b.enableVertexAttribArray(d.normal);d.uv=b.getAttribLocation(d,"uv");b.enableVertexAttribArray(d.uv);d.viewMatrixArray=new Float32Array(16);d.modelViewMatrixArray=new Float32Array(16);d.projectionMatrixArray=new Float32Array(16)})(a.directional,a.point);this.setSize=function(e,g){f.width=e;f.height=g;b.viewport(0,0,f.width,f.height)};this.clear=function(){b.clear(b.COLOR_BUFFER_BIT| -b.DEPTH_BUFFER_BIT)};this.setupLights=function(e){var g,n,i,l,q=[],p=[],s=[];l=[];var A=[];b.uniform1i(d.enableLighting,e.lights.length);g=0;for(n=e.lights.length;g>16&255)/255;this.g=(this.hex>>8&255)/255;this.b=(this.hex&255)/255},updateStyleString:function(){this.__styleString="rgb("+~~(this.r*255)+ +","+~~(this.g*255)+","+~~(this.b*255)+")"},toString:function(){return"THREE.Color ( r: "+this.r+", g: "+this.g+", b: "+this.b+", hex: "+this.hex+" )"}};THREE.Vector2=function(a,c){this.x=a||0;this.y=c||0}; +THREE.Vector2.prototype={set:function(a,c){this.x=a;this.y=c;return this},copy:function(a){this.x=a.x;this.y=a.y;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},unit:function(){this.multiplyScalar(1/this.length());return this},length:function(){return Math.sqrt(this.x* +this.x+this.y*this.y)},lengthSq:function(){return this.x*this.x+this.y*this.y},negate:function(){this.x=-this.x;this.y=-this.y;return this},clone:function(){return new THREE.Vector2(this.x,this.y)},toString:function(){return"THREE.Vector2 ("+this.x+", "+this.y+")"}};THREE.Vector3=function(a,c,f){this.x=a||0;this.y=c||0;this.z=f||0}; +THREE.Vector3.prototype={set:function(a,c,f){this.x=a;this.y=c;this.z=f;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;return this}, +cross:function(a,c){this.x=a.y*c.z-a.z*c.y;this.y=a.z*c.x-a.x*c.z;this.z=a.x*c.y-a.y*c.x;return this},crossSelf:function(a){var c=this.x,f=this.y,b=this.z;this.x=f*a.z-b*a.y;this.y=b*a.x-c*a.z;this.z=c*a.y-f*a.x;return this},multiplySelf:function(a){this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))}, +distanceToSquared:function(a){var c=this.x-a.x,f=this.y-a.y;a=this.z-a.z;return c*c+f*f+a*a},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},normalize:function(){this.length()>0?this.multiplyScalar(1/this.length()):this.multiplyScalar(0);return this},setLength:function(a){return this.normalize().multiplyScalar(a)},isZero:function(){return Math.abs(this.x)< +1.0E-4&&Math.abs(this.y)<1.0E-4&&Math.abs(this.z)<1.0E-4},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)},toString:function(){return"THREE.Vector3 ( "+this.x+", "+this.y+", "+this.z+" )"}};THREE.Vector4=function(a,c,f,b){this.x=a||0;this.y=c||0;this.z=f||0;this.w=b||1}; +THREE.Vector4.prototype={set:function(a,c,f,b){this.x=a;this.y=c;this.z=f;this.w=b;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=a.w||1;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;this.w=a.w+c.w;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;this.w=a.w-c.w;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w; +return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;this.w/=a;return this},lerpSelf:function(a,c){this.x+=(a.x-this.x)*c;this.y+=(a.y-this.y)*c;this.z+=(a.z-this.z)*c;this.w+=(a.w-this.w)*c},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},toString:function(){return"THREE.Vector4 ("+this.x+", "+this.y+", "+this.z+", "+this.w+")"}}; +THREE.Ray=function(a,c){this.origin=a||new THREE.Vector3;this.direction=c||new THREE.Vector3}; +THREE.Ray.prototype={intersectScene:function(a){var c,f,b=a.objects,d=[];a=0;for(c=b.length;a0&&A>0&&i+A<1}var f,b,d,j,n,r,e,g,m,h, +l,q=a.geometry,o=q.vertices,s=[];f=0;for(b=q.faces.length;f= +0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){r=true;d=b=f=c=0;a()};this.isEmpty=function(){return r};this.toString=function(){return"THREE.Rectangle ( left: "+c+", right: "+b+", top: "+f+", bottom: "+d+", width: "+j+", height: "+n+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; +THREE.Matrix4=function(){this._x=new THREE.Vector3;this._y=new THREE.Vector3;this._z=new THREE.Vector3}; +THREE.Matrix4.prototype={n11:1,n12:0,n13:0,n14:0,n21:0,n22:1,n23:0,n24:0,n31:0,n32:0,n33:1,n34:0,n41:0,n42:0,n43:0,n44:1,identity:function(){this.n11=1;this.n21=this.n14=this.n13=this.n12=0;this.n22=1;this.n32=this.n31=this.n24=this.n23=0;this.n33=1;this.n43=this.n42=this.n41=this.n34=0;this.n44=1},copy:function(a){this.n11=a.n11;this.n12=a.n12;this.n13=a.n13;this.n14=a.n14;this.n21=a.n21;this.n22=a.n22;this.n23=a.n23;this.n24=a.n24;this.n31=a.n31;this.n32=a.n32;this.n33=a.n33;this.n34=a.n34;this.n41= +a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,c,f){var b=this._x,d=this._y,j=this._z;j.sub(a,c);j.normalize();b.cross(f,j);b.normalize();d.cross(j,b);d.normalize();this.n11=b.x;this.n12=b.y;this.n13=b.z;this.n14=-b.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=j.x;this.n32=j.y;this.n33=j.z;this.n34=-j.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var c=a.x,f=a.y,b=a.z,d=a.w?a.w:1;a.x=this.n11*c+this.n12*f+this.n13*b+this.n14* +d;a.y=this.n21*c+this.n22*f+this.n23*b+this.n24*d;a.z=this.n31*c+this.n32*f+this.n33*b+this.n34*d;d=this.n41*c+this.n42*f+this.n43*b+this.n44*d;if(a.w)a.w=d;else{a.x/=d;a.y/=d;a.z/=d}return a},crossVector:function(a){var c=new THREE.Vector4;c.x=this.n11*a.x+this.n12*a.y+this.n13*a.z+this.n14*a.w;c.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;c.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+this.n34*a.w;c.w=a.w?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return c},multiply:function(a, +c){this.n11=a.n11*c.n11+a.n12*c.n21+a.n13*c.n31+a.n14*c.n41;this.n12=a.n11*c.n12+a.n12*c.n22+a.n13*c.n32+a.n14*c.n42;this.n13=a.n11*c.n13+a.n12*c.n23+a.n13*c.n33+a.n14*c.n43;this.n14=a.n11*c.n14+a.n12*c.n24+a.n13*c.n34+a.n14*c.n44;this.n21=a.n21*c.n11+a.n22*c.n21+a.n23*c.n31+a.n24*c.n41;this.n22=a.n21*c.n12+a.n22*c.n22+a.n23*c.n32+a.n24*c.n42;this.n23=a.n21*c.n13+a.n22*c.n23+a.n23*c.n33+a.n24*c.n43;this.n24=a.n21*c.n14+a.n22*c.n24+a.n23*c.n34+a.n24*c.n44;this.n31=a.n31*c.n11+a.n32*c.n21+a.n33*c.n31+ +a.n34*c.n41;this.n32=a.n31*c.n12+a.n32*c.n22+a.n33*c.n32+a.n34*c.n42;this.n33=a.n31*c.n13+a.n32*c.n23+a.n33*c.n33+a.n34*c.n43;this.n34=a.n31*c.n14+a.n32*c.n24+a.n33*c.n34+a.n34*c.n44;this.n41=a.n41*c.n11+a.n42*c.n21+a.n43*c.n31+a.n44*c.n41;this.n42=a.n41*c.n12+a.n42*c.n22+a.n43*c.n32+a.n44*c.n42;this.n43=a.n41*c.n13+a.n42*c.n23+a.n43*c.n33+a.n44*c.n43;this.n44=a.n41*c.n14+a.n42*c.n24+a.n43*c.n34+a.n44*c.n44},multiplySelf:function(a){var c=this.n11,f=this.n12,b=this.n13,d=this.n14,j=this.n21,n=this.n22, +r=this.n23,e=this.n24,g=this.n31,m=this.n32,h=this.n33,l=this.n34,q=this.n41,o=this.n42,s=this.n43,A=this.n44;this.n11=c*a.n11+f*a.n21+b*a.n31+d*a.n41;this.n12=c*a.n12+f*a.n22+b*a.n32+d*a.n42;this.n13=c*a.n13+f*a.n23+b*a.n33+d*a.n43;this.n14=c*a.n14+f*a.n24+b*a.n34+d*a.n44;this.n21=j*a.n11+n*a.n21+r*a.n31+e*a.n41;this.n22=j*a.n12+n*a.n22+r*a.n32+e*a.n42;this.n23=j*a.n13+n*a.n23+r*a.n33+e*a.n43;this.n24=j*a.n14+n*a.n24+r*a.n34+e*a.n44;this.n31=g*a.n11+m*a.n21+h*a.n31+l*a.n41;this.n32=g*a.n12+m*a.n22+ +h*a.n32+l*a.n42;this.n33=g*a.n13+m*a.n23+h*a.n33+l*a.n43;this.n34=g*a.n14+m*a.n24+h*a.n34+l*a.n44;this.n41=q*a.n11+o*a.n21+s*a.n31+A*a.n41;this.n42=q*a.n12+o*a.n22+s*a.n32+A*a.n42;this.n43=q*a.n13+o*a.n23+s*a.n33+A*a.n43;this.n44=q*a.n14+o*a.n24+s*a.n34+A*a.n44},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a},determinant:function(){return this.n14* +this.n23*this.n32*this.n41-this.n13*this.n24*this.n32*this.n41-this.n14*this.n22*this.n33*this.n41+this.n12*this.n24*this.n33*this.n41+this.n13*this.n22*this.n34*this.n41-this.n12*this.n23*this.n34*this.n41-this.n14*this.n23*this.n31*this.n42+this.n13*this.n24*this.n31*this.n42+this.n14*this.n21*this.n33*this.n42-this.n11*this.n24*this.n33*this.n42-this.n13*this.n21*this.n34*this.n42+this.n11*this.n23*this.n34*this.n42+this.n14*this.n22*this.n31*this.n43-this.n12*this.n24*this.n31*this.n43-this.n14* +this.n21*this.n32*this.n43+this.n11*this.n24*this.n32*this.n43+this.n12*this.n21*this.n34*this.n43-this.n11*this.n22*this.n34*this.n43-this.n13*this.n22*this.n31*this.n44+this.n12*this.n23*this.n31*this.n44+this.n13*this.n21*this.n32*this.n44-this.n11*this.n23*this.n32*this.n44-this.n12*this.n21*this.n33*this.n44+this.n11*this.n22*this.n33*this.n44},transpose:function(){function a(c,f,b){var d=c[f];c[f]=c[b];c[b]=d}a(this,"n21","n12");a(this,"n31","n13");a(this,"n32","n23");a(this,"n41","n14");a(this, +"n42","n24");a(this,"n43","n34");return this},clone:function(){var a=new THREE.Matrix4;a.n11=this.n11;a.n12=this.n12;a.n13=this.n13;a.n14=this.n14;a.n21=this.n21;a.n22=this.n22;a.n23=this.n23;a.n24=this.n24;a.n31=this.n31;a.n32=this.n32;a.n33=this.n33;a.n34=this.n34;a.n41=this.n41;a.n42=this.n42;a.n43=this.n43;a.n44=this.n44;return a},flatten:function(){return[this.n11,this.n21,this.n31,this.n41,this.n12,this.n22,this.n32,this.n42,this.n13,this.n23,this.n33,this.n43,this.n14,this.n24,this.n34,this.n44]}, +toString:function(){return"| "+this.n11+" "+this.n12+" "+this.n13+" "+this.n14+" |\n| "+this.n21+" "+this.n22+" "+this.n23+" "+this.n24+" |\n| "+this.n31+" "+this.n32+" "+this.n33+" "+this.n34+" |\n| "+this.n41+" "+this.n42+" "+this.n43+" "+this.n44+" |"}};THREE.Matrix4.translationMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n14=a;b.n24=c;b.n34=f;return b};THREE.Matrix4.scaleMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n11=a;b.n22=c;b.n33=f;return b}; +THREE.Matrix4.rotationXMatrix=function(a){var c=new THREE.Matrix4;c.n22=c.n33=Math.cos(a);c.n32=Math.sin(a);c.n23=-c.n32;return c};THREE.Matrix4.rotationYMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n33=Math.cos(a);c.n13=Math.sin(a);c.n31=-c.n13;return c};THREE.Matrix4.rotationZMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n22=Math.cos(a);c.n21=Math.sin(a);c.n12=-c.n21;return c}; +THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var f=new THREE.Matrix4,b=Math.cos(c),d=Math.sin(c),j=1-b,n=a.x,r=a.y,e=a.z;f.n11=j*n*n+b;f.n12=j*n*r-d*e;f.n13=j*n*e+d*r;f.n21=j*n*r+d*e;f.n22=j*r*r+b;f.n23=j*r*e-d*n;f.n31=j*n*e-d*r;f.n32=j*r*e+d*n;f.n33=j*e*e+b;return f}; +THREE.Matrix4.makeInvert=function(a){var c=new THREE.Matrix4;c.n11=a.n23*a.n34*a.n42-a.n24*a.n33*a.n42+a.n24*a.n32*a.n43-a.n22*a.n34*a.n43-a.n23*a.n32*a.n44+a.n22*a.n33*a.n44;c.n12=a.n14*a.n33*a.n42-a.n13*a.n34*a.n42-a.n14*a.n32*a.n43+a.n12*a.n34*a.n43+a.n13*a.n32*a.n44-a.n12*a.n33*a.n44;c.n13=a.n13*a.n24*a.n42-a.n14*a.n23*a.n42+a.n14*a.n22*a.n43-a.n12*a.n24*a.n43-a.n13*a.n22*a.n44+a.n12*a.n23*a.n44;c.n14=a.n14*a.n23*a.n32-a.n13*a.n24*a.n32-a.n14*a.n22*a.n33+a.n12*a.n24*a.n33+a.n13*a.n22*a.n34-a.n12* +a.n23*a.n34;c.n21=a.n24*a.n33*a.n41-a.n23*a.n34*a.n41-a.n24*a.n31*a.n43+a.n21*a.n34*a.n43+a.n23*a.n31*a.n44-a.n21*a.n33*a.n44;c.n22=a.n13*a.n34*a.n41-a.n14*a.n33*a.n41+a.n14*a.n31*a.n43-a.n11*a.n34*a.n43-a.n13*a.n31*a.n44+a.n11*a.n33*a.n44;c.n23=a.n14*a.n23*a.n41-a.n13*a.n24*a.n41-a.n14*a.n21*a.n43+a.n11*a.n24*a.n43+a.n13*a.n21*a.n44-a.n11*a.n23*a.n44;c.n24=a.n13*a.n24*a.n31-a.n14*a.n23*a.n31+a.n14*a.n21*a.n33-a.n11*a.n24*a.n33-a.n13*a.n21*a.n34+a.n11*a.n23*a.n34;c.n31=a.n22*a.n34*a.n41-a.n24*a.n32* +a.n41+a.n24*a.n31*a.n42-a.n21*a.n34*a.n42-a.n22*a.n31*a.n44+a.n21*a.n32*a.n44;c.n32=a.n14*a.n32*a.n41-a.n12*a.n34*a.n41-a.n14*a.n31*a.n42+a.n11*a.n34*a.n42+a.n12*a.n31*a.n44-a.n11*a.n32*a.n44;c.n33=a.n13*a.n24*a.n41-a.n14*a.n22*a.n41+a.n14*a.n21*a.n42-a.n11*a.n24*a.n42-a.n12*a.n21*a.n44+a.n11*a.n22*a.n44;c.n34=a.n14*a.n22*a.n31-a.n12*a.n24*a.n31-a.n14*a.n21*a.n32+a.n11*a.n24*a.n32+a.n12*a.n21*a.n34-a.n11*a.n22*a.n34;c.n41=a.n23*a.n32*a.n41-a.n22*a.n33*a.n41-a.n23*a.n31*a.n42+a.n21*a.n33*a.n42+a.n22* +a.n31*a.n43-a.n21*a.n32*a.n43;c.n42=a.n12*a.n33*a.n41-a.n13*a.n32*a.n41+a.n13*a.n31*a.n42-a.n11*a.n33*a.n42-a.n12*a.n31*a.n43+a.n11*a.n32*a.n43;c.n43=a.n13*a.n22*a.n41-a.n12*a.n23*a.n41-a.n13*a.n21*a.n42+a.n11*a.n23*a.n42+a.n12*a.n21*a.n43-a.n11*a.n22*a.n43;c.n44=a.n12*a.n23*a.n31-a.n13*a.n22*a.n31+a.n13*a.n21*a.n32-a.n11*a.n23*a.n32-a.n12*a.n21*a.n33+a.n11*a.n22*a.n33;c.multiplyScalar(1/a.determinant());return c}; +THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=new THREE.Matrix3;var f=c[10]*c[5]-c[6]*c[9],b=-c[10]*c[1]+c[2]*c[9],d=c[6]*c[1]-c[2]*c[5],j=-c[10]*c[4]+c[6]*c[8],n=c[10]*c[0]-c[2]*c[8],r=-c[6]*c[0]+c[2]*c[4],e=c[9]*c[4]-c[5]*c[8],g=-c[9]*c[0]+c[1]*c[8],m=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*j+c[2]*e;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*b;a.m[2]=c*d;a.m[3]=c*j;a.m[4]=c*n;a.m[5]=c*r;a.m[6]=c*e;a.m[7]=c*g;a.m[8]=c*m;return a}; +THREE.Matrix4.makeFrustum=function(a,c,f,b,d,j){var n,r,e;n=new THREE.Matrix4;r=2*d/(c-a);e=2*d/(b-f);a=(c+a)/(c-a);f=(b+f)/(b-f);b=-(j+d)/(j-d);d=-2*j*d/(j-d);n.n11=r;n.n12=0;n.n13=a;n.n14=0;n.n21=0;n.n22=e;n.n23=f;n.n24=0;n.n31=0;n.n32=0;n.n33=b;n.n34=d;n.n41=0;n.n42=0;n.n43=-1;n.n44=0;return n};THREE.Matrix4.makePerspective=function(a,c,f,b){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*c,a*c,d,a,f,b)}; +THREE.Matrix4.makeOrtho=function(a,c,f,b,d,j){var n,r,e,g;n=new THREE.Matrix4;r=c-a;e=f-b;g=j-d;a=(c+a)/r;f=(f+b)/e;d=(j+d)/g;n.n11=2/r;n.n12=0;n.n13=0;n.n14=-a;n.n21=0;n.n22=2/e;n.n23=0;n.n24=-f;n.n31=0;n.n32=0;n.n33=-2/g;n.n34=-d;n.n41=0;n.n42=0;n.n43=0;n.n44=1;return n}; +THREE.Vertex=function(a,c){this.position=a||new THREE.Vector3;this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.normal=c||new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.normalScreen=new THREE.Vector3;this.__visible=true};THREE.Vertex.prototype={toString:function(){return"THREE.Vertex ( position: "+this.position+", normal: "+this.normal+" )"}}; +THREE.Face3=function(a,c,f,b,d){this.a=a;this.b=c;this.c=f;this.centroid=new THREE.Vector3;this.normal=b instanceof THREE.Vector3?b:new THREE.Vector3;this.vertexNormals=b instanceof Array?b:[];this.material=d instanceof Array?d:[d]};THREE.Face3.prototype={toString:function(){return"THREE.Face3 ( "+this.a+", "+this.b+", "+this.c+" )"}}; +THREE.Face4=function(a,c,f,b,d,j){this.a=a;this.b=c;this.c=f;this.d=b;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=j instanceof Array?j:[j]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,c){this.u=a||0;this.v=c||0}; +THREE.UV.prototype={copy:function(a){this.u=a.u;this.v=a.v},toString:function(){return"THREE.UV ("+this.u+", "+this.v+")"}};THREE.Geometry=function(){this.vertices=[];this.faces=[];this.uvs=[]}; +THREE.Geometry.prototype={computeCentroids:function(){var a,c,f;a=0;for(c=this.faces.length;a0){this.bbox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y,this.vertices[0].position.y],z:[this.vertices[0].position.z,this.vertices[0].position.z]};for(var a=1,c=this.vertices.length;a +this.bbox.x[1])this.bbox.x[1]=vertex.position.x;if(vertex.position.ythis.bbox.y[1])this.bbox.y[1]=vertex.position.y;if(vertex.position.zthis.bbox.z[1])this.bbox.z[1]=vertex.position.z}}},toString:function(){return"THREE.Geometry ( vertices: "+this.vertices+", faces: "+this.faces+" )"}}; +THREE.Camera=function(a,c,f,b){this.position=new THREE.Vector3(0,0,0);this.target={position:new THREE.Vector3(0,0,0)};this.up=new THREE.Vector3(0,1,0);this.matrix=new THREE.Matrix4;this.projectionMatrix=THREE.Matrix4.makePerspective(a,c,f,b);this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrix.lookAt(this.position,this.target.position,this.up)};this.toString=function(){return"THREE.Camera ( "+this.position+", "+this.target.position+" )"}}; +THREE.Light=function(a){this.color=new THREE.Color(-16777216|a)};THREE.AmbientLight=function(a){THREE.Light.call(this,a)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight;THREE.DirectionalLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,1,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight; +THREE.PointLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,0,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.PointLight; +THREE.Object3D=function(){this.position=new THREE.Vector3;this.rotation=new THREE.Vector3;this.scale=new THREE.Vector3(1,1,1);this.matrix=new THREE.Matrix4;this.matrixTranslation=new THREE.Matrix4;this.matrixRotation=new THREE.Matrix4;this.matrixScale=new THREE.Matrix4;this.screen=new THREE.Vector3;this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrixPosition=THREE.Matrix4.translationMatrix(this.position.x,this.position.y,this.position.z);this.matrixRotation=THREE.Matrix4.rotationXMatrix(this.rotation.x); +this.matrixRotation.multiplySelf(THREE.Matrix4.rotationYMatrix(this.rotation.y));this.matrixRotation.multiplySelf(THREE.Matrix4.rotationZMatrix(this.rotation.z));this.matrixScale=THREE.Matrix4.scaleMatrix(this.scale.x,this.scale.y,this.scale.z);this.matrix.copy(this.matrixPosition);this.matrix.multiplySelf(this.matrixRotation);this.matrix.multiplySelf(this.matrixScale)}};THREE.Particle=function(a){THREE.Object3D.call(this);this.material=a instanceof Array?a:[a];this.autoUpdateMatrix=false}; +THREE.Particle.prototype=new THREE.Object3D;THREE.Particle.prototype.constructor=THREE.Particle;THREE.Line=function(a,c){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c]};THREE.Line.prototype=new THREE.Object3D;THREE.Line.prototype.constructor=THREE.Line; +THREE.Mesh=function(a,c,f){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c];this.overdraw=this.doubleSided=this.flipSided=false;this.materialFaceGroup={};this.sortFacesByMaterial();f&&this.normalizeUVs();this.geometry.computeBoundingBox()};THREE.Mesh.prototype=new THREE.Object3D;THREE.Mesh.prototype.constructor=THREE.Mesh; +THREE.Mesh.prototype.sortFacesByMaterial=function(){function a(m){var h=[];c=0;for(f=m.length;c65535){g[r].counter+=1;e=g[r].hash+"_"+g[r].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:n,vertices:0}}this.materialFaceGroup[e].faces.push(b);this.materialFaceGroup[e].vertices+=j}};THREE.Mesh.prototype.normalizeUVs=function(){var a,c,f,b,d;a=0;for(c=this.geometry.uvs.length;acolor: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
linewidth: "+ +this.linewidth+"
)"}}; +THREE.MeshBasicMaterial=function(a){this.id=THREE.MeshBasicMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!== +undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshBasicMaterial (
id: "+ +this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
)"}};THREE.MeshBasicMaterialCounter={value:0}; +THREE.MeshLambertMaterial=function(a){this.id=THREE.MeshLambertMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!== +undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshLambertMaterial (
id: "+ +this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
shading: "+this.shading+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_size: "+this.wireframe_linewidth+"
)"}};THREE.MeshLambertMaterialCounter={value:0}; +THREE.MeshPhongMaterial=function(a){this.id=THREE.MeshPhongMaterialCounter.value++;this.color=new THREE.Color(15658734);this.ambient=new THREE.Color(328965);this.specular=new THREE.Color(1118481);this.shininess=30;this.env_map=this.specular_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){if(a.color!==undefined)this.color= +new THREE.Color(a.color);if(a.ambient!==undefined)this.ambient=new THREE.Color(a.ambient);if(a.specular!==undefined)this.specular=new THREE.Color(a.specular);if(a.shininess!==undefined)this.shininess=a.shininess;if(a.map!==undefined)this.map=a.map;if(a.specular_map!==undefined)this.specular_map=a.specular_map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!==undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio= +a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshPhongMaterial (
id: "+this.id+"
color: "+this.color+"
ambient: "+this.ambient+"
specular: "+this.specular+"
shininess: "+this.shininess+ +"
map: "+this.map+"
specular_map: "+this.specular_map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
shading: "+this.shading+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
"+ +")"}};THREE.MeshPhongMaterialCounter={value:0}; +THREE.MeshDepthMaterial=function(a){this.near=1;this.far=1E3;this.opacity=1;this.blending=THREE.NormalBlending;if(a){if(a.near!==undefined)this.near=a.near;if(a.far!==undefined)this.far=a.far;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.__2near=2*this.near;this.__farPlusNear=this.far+this.near;this.__farMinusNear=this.far-this.near;this.toString=function(){return"THREE.MeshDepthMaterial"}}; +THREE.MeshNormalMaterial=function(a){this.opacity=1;this.shading=THREE.FlatShading;this.blending=THREE.NormalBlending;if(a){if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.MeshNormalMaterial"}};THREE.MeshFaceMaterial=function(){this.toString=function(){return"THREE.MeshFaceMaterial"}}; +THREE.MeshCubeMaterial=function(a){this.id=THREE.MeshCubeMaterialCounter.value++;this.color=new THREE.Color(15658734);this.env_map=this.map=null;this.combine=THREE.Multiply;this.reflectivity=1;this.refraction_ratio=0.98;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!== +undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth}this.toString=function(){return"THREE.MeshCubeMaterial (
id: "+ +this.id+"
color: "+this.color+"
map: "+this.map+"
env_map: "+this.env_map+"
combine: "+this.combine+"
reflectivity: "+this.reflectivity+"
refraction_ratio: "+this.refraction_ratio+"
opacity: "+this.opacity+"
blending: "+this.blending+"
wireframe: "+this.wireframe+"
wireframe_linewidth: "+this.wireframe_linewidth+"
)"}};THREE.MeshCubeMaterialCounter={value:0}; +THREE.ParticleBasicMaterial=function(a){this.color=new THREE.Color(16711680);this.map=null;this.opacity=1;this.blending=THREE.NormalBlending;this.offset=new THREE.Vector2;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleBasicMaterial (
color: "+this.color+"
map: "+this.map+"
opacity: "+this.opacity+"
blending: "+ +this.blending+"
)"}};THREE.ParticleCircleMaterial=function(a){this.color=new THREE.Color(16711680);this.opacity=1;this.blending=THREE.NormalBlending;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}this.toString=function(){return"THREE.ParticleCircleMaterial (
color: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
)"}}; +THREE.ParticleDOMMaterial=function(a){this.domElement=a;this.toString=function(){return"THREE.ParticleDOMMaterial ( domElement: "+this.domElement+" )"}};THREE.Texture=function(a,c){this.image=a;this.mapping=c!==undefined?c:THREE.UVMapping;this.toString=function(){return"THREE.Texture (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.UVMapping=0;THREE.ReflectionMap=1;THREE.RefractionMap=2;THREE.Multiply=0;THREE.Mix=1; +THREE.TextureCube=function(a,c){this.image=a;this.mapping=c?c:THREE.ReflectionMap;this.toString=function(){return"THREE.TextureCube (
image: "+this.image+"
mapping: "+this.mapping+"
)"}}; +THREE.Scene=function(){this.objects=[];this.lights=[];this.addObject=function(a){this.objects.push(a)};this.removeObject=function(a){a=this.objects.indexOf(a);a!==-1&&this.objects.splice(a,1)};this.addLight=function(a){this.lights.push(a)};this.removeLight=function(a){a=this.lights.indexOf(a);a!==-1&&this.lights.splice(a,1)};this.toString=function(){return"THREE.Scene ( "+this.objects+" )"}}; +THREE.Projector=function(){function a(p,t){var i=0,U=1,C=p.z+p.w,S=t.z+t.w,E=-p.z+p.w,B=-t.z+t.w;if(C>=0&&S>=0&&E>=0&&B>=0)return true;else if(C<0&&S<0||E<0&&B<0)return false;else{if(C<0)i=Math.max(i,C/(C-S));else if(S<0)U=Math.min(U,C/(C-S));if(E<0)i=Math.max(i,E/(E-B));else if(B<0)U=Math.min(U,E/(E-B));if(U0&&Q.z<1}fa=B.geometry.faces;C=0;for(S= +fa.length;C0&&o.z<1){h=q[l]=q[l]|| +new THREE.RenderableParticle;h.x=o.x/o.w;h.y=o.y/o.w;h.z=o.z;h.rotation=B.rotation.z;h.scale.x=B.scale.x*Math.abs(h.x-(o.x+t.projectionMatrix.n11)/(o.w+t.projectionMatrix.n14));h.scale.y=B.scale.y*Math.abs(h.y-(o.y+t.projectionMatrix.n22)/(o.w+t.projectionMatrix.n24));h.material=B.material;c.push(h);l++}}}c.sort(function(T,y){return y.z-T.z});return c};this.unprojectVector=function(p,t){var i=new THREE.Matrix4;i.multiply(THREE.Matrix4.makeInvert(t.matrix),THREE.Matrix4.makeInvert(t.projectionMatrix)); +i.transform(p);return p}}; +THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,c=new THREE.Projector,f,b,d,j;this.domElement=document.createElement("div");this.setSize=function(n,r){f=n;b=r;d=f/2;j=b/2};this.render=function(n,r){var e,g,m,h,l,q,o,s;a=c.projectScene(n,r);e=0;for(g=a.length;e0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}else if(k instanceof THREE.PointLight){Ja.sub(k.position,O.centroidWorld);Ja.normalize();k=O.normalWorld.dot(Ja)*k.intensity;if(k>0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}}}function c(w,O,H,I,k,G){if(k.opacity!=0){n(k.opacity);r(k.blending);M=w.positionScreen.x; +K=w.positionScreen.y;T=O.positionScreen.x;y=O.positionScreen.y;v=H.positionScreen.x;R=H.positionScreen.y;if(k.map){ea=k.map.image;pa=ea.width-1;qa=ea.height-1;ca.u=I.uvs[0].u*pa;ca.v=I.uvs[0].v*qa;Z.u=I.uvs[1].u*pa;Z.v=I.uvs[1].v*qa;da.u=I.uvs[2].u*pa;da.v=I.uvs[2].v*qa;j(ea,M,K,T,y,v,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(k instanceof THREE.MeshBasicMaterial)b(M,K,T,y,v,R,k.color,k.wireframe,k.wireframe_linewidth);else if(k instanceof THREE.MeshLambertMaterial){if(Fa){aa.r=ga.r;aa.g=ga.g;aa.b=ga.b; +a(G,I,aa);V.r=k.color.r*aa.r;V.g=k.color.g*aa.g;V.b=k.color.b*aa.b;V.updateStyleString()}else V.__styleString=k.color.__styleString;b(M,K,T,y,v,R,V,k.wireframe,k.wireframe_linewidth)}else if(k instanceof THREE.MeshDepthMaterial){ra=k.__2near;sa=k.__farPlusNear;ta=k.__farMinusNear;wa=~~((1-ra/(sa-w.positionScreen.z*ta))*255);xa=~~((1-ra/(sa-O.positionScreen.z*ta))*255);na=~~((1-ra/(sa-H.positionScreen.z*ta))*255);ea=h([wa,wa,wa],[xa,xa,xa],[na,na,na],[na,na,na]);ca.u=0;ca.v=0;Z.u=la;Z.v=0;da.u=0;da.v= +la;j(ea,M,K,T,y,v,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(k instanceof THREE.MeshNormalMaterial){V.r=l(I.normalWorld.x);V.g=l(I.normalWorld.y);V.b=l(I.normalWorld.z);V.updateStyleString();b(M,K,T,y,v,R,V,k.wireframe,k.wireframe_linewidth)}}}function f(w,O,H,I,k,G,W,u,X){if(u.opacity!=0){n(u.opacity);r(u.blending);M=w.positionScreen.x;K=w.positionScreen.y;T=O.positionScreen.x;y=O.positionScreen.y;v=H.positionScreen.x;R=H.positionScreen.y;ha=I.positionScreen.x;P=I.positionScreen.y;Y=k.positionScreen.x; +ya=k.positionScreen.y;Ka=G.positionScreen.x;La=G.positionScreen.y;if(u.map){ea=u.map.image;pa=ea.width-1;qa=ea.height-1;ca.copy(W.uvs[0]);Z.copy(W.uvs[1]);da.copy(W.uvs[2]);ia.copy(W.uvs[3]);ca.u*=pa;ca.v*=qa;Z.u*=pa;Z.v*=qa;da.u*=pa;da.v*=qa;ia.u*=pa;ia.v*=qa;j(ea,M,K,T,y,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);j(ea,Y,ya,v,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(u instanceof THREE.MeshBasicMaterial)d(M,K,T,y,v,R,ha,P,u.color,u.wireframe,u.wireframe_linewidth);else if(u instanceof THREE.MeshLambertMaterial){if(Fa){aa.r= +ga.r;aa.g=ga.g;aa.b=ga.b;a(X,W,aa);V.r=u.color.r*aa.r;V.g=u.color.g*aa.g;V.b=u.color.b*aa.b;V.updateStyleString()}else V.__styleString=u.color.__styleString;d(M,K,T,y,v,R,ha,P,V,u.wireframe,u.wireframe_linewidth)}else if(u instanceof THREE.MeshDepthMaterial){ra=u.__2near;sa=u.__farPlusNear;ta=u.__farMinusNear;wa=~~((1-ra/(sa-w.positionScreen.z*ta))*255);xa=~~((1-ra/(sa-O.positionScreen.z*ta))*255);na=~~((1-ra/(sa-H.positionScreen.z*ta))*255);Ga=~~((1-ra/(sa-I.positionScreen.z*ta))*255);ea=h([wa,wa, +wa],[xa,xa,xa],[Ga,Ga,Ga],[na,na,na]);ca.u=0;ca.v=0;Z.u=la;Z.v=0;da.u=la;da.v=la;ia.u=0;ia.v=la;j(ea,M,K,T,y,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);j(ea,Y,ya,v,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(u instanceof THREE.MeshNormalMaterial){V.r=l(W.normalWorld.x);V.g=l(W.normalWorld.y);V.b=l(W.normalWorld.z);V.updateStyleString();d(M,K,T,y,v,R,ha,P,V,u.wireframe,u.wireframe_linewidth)}}}function b(w,O,H,I,k,G,W,u,X){i.beginPath();i.moveTo(w,O);i.lineTo(H,I);i.lineTo(k,G);i.lineTo(w,O);i.closePath(); +if(u){e(X);g(W.__styleString);i.stroke();$.inflate(X*2)}else{m(W.__styleString);i.fill()}}function d(w,O,H,I,k,G,W,u,X,F,ba){i.beginPath();i.moveTo(w,O);i.lineTo(H,I);i.lineTo(k,G);i.lineTo(W,u);i.lineTo(w,O);i.closePath();if(F){e(ba);g(X.__styleString);i.stroke();$.inflate(ba*2)}else{m(X.__styleString);i.fill()}}function j(w,O,H,I,k,G,W,u,X,F,ba,ma,ua){i.beginPath();i.moveTo(O,H);i.lineTo(I,k);i.lineTo(G,W);i.closePath();I-=O;k-=H;G-=O;W-=H;F-=u;ba-=X;ma-=u;ua-=X;var va=1/(F*ua-ma*ba),Ba=(ua*I-ba* +G)*va;ba=(ua*k-ba*W)*va;I=(F*G-ma*I)*va;k=(F*W-ma*k)*va;O=O-Ba*u-I*X;H=H-ba*u-k*X;i.save();i.transform(Ba,ba,I,k,O,H);i.clip();i.drawImage(w,0,0);i.restore()}function n(w){if(U!=w)i.globalAlpha=U=w}function r(w){if(C!=w){switch(w){case THREE.NormalBlending:i.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:i.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:i.globalCompositeOperation="darker"}C=w}}function e(w){if(B!=w)i.lineWidth=B=w}function g(w){if(S!= +w)i.strokeStyle=S=w}function m(w){if(E!=w)i.fillStyle=E=w}function h(w,O,H,I){ja[0]=w[0];ja[1]=w[1];ja[2]=w[2];ja[4]=O[0];ja[5]=O[1];ja[6]=O[2];ja[8]=H[0];ja[9]=H[1];ja[10]=H[2];ja[12]=I[0];ja[13]=I[1];ja[14]=I[2];Ca.putImageData(Ma,0,0);Ha.drawImage(Da,0,0);return Ea}function l(w){return w<0?Math.min((1+w)*0.5,0.5):0.5+Math.min(w*0.5,0.5)}function q(w,O){var H=O.x-w.x,I=O.y-w.y,k=1/Math.sqrt(H*H+I*I);H*=k;I*=k;O.x+=H;O.y+=I;w.x-=H;w.y-=I}var o=null,s=new THREE.Projector,A=document.createElement("canvas"), +J,N,p,t,i=A.getContext("2d"),U=1,C=0,S=null,E=null,B=1,L,x,D,Q,fa=new THREE.Vertex,z=new THREE.Vertex,M,K,T,y,v,R,ha,P,Y,ya,Ka,La,wa,xa,na,Ga,ra,sa,ta,ea,pa,qa,oa=new THREE.Rectangle,ka=new THREE.Rectangle,$=new THREE.Rectangle,Fa=false,V=new THREE.Color(16777215),aa=new THREE.Color(16777215),ga=new THREE.Color(0),za=new THREE.Color(0),Aa=new THREE.Color(0),Qa=Math.PI*2,Ja=new THREE.Vector3,ca=new THREE.UV,Z=new THREE.UV,da=new THREE.UV,ia=new THREE.UV,Da,Ca,Ma,ja,Ea,Ha,la=16;Da=document.createElement("canvas"); +Da.width=Da.height=2;Ca=Da.getContext("2d");Ca.fillStyle="rgba(0,0,0,1)";Ca.fillRect(0,0,2,2);Ma=Ca.getImageData(0,0,2,2);ja=Ma.data;Ea=document.createElement("canvas");Ea.width=Ea.height=la;Ha=Ea.getContext("2d");Ha.translate(-la/2,-la/2);Ha.scale(la,la);la--;this.domElement=A;this.autoClear=true;this.setSize=function(w,O){J=w;N=O;p=J/2;t=N/2;A.width=J;A.height=N;i.lineJoin="round";i.lineCap="round";oa.set(-p,-t,p,t)};this.clear=function(){if(!ka.isEmpty()){ka.inflate(1);ka.minSelf(oa);i.setTransform(1, +0,0,-1,p,t);i.clearRect(ka.getX(),ka.getY(),ka.getWidth(),ka.getHeight());ka.empty()}};this.render=function(w,O){var H,I,k,G,W,u,X,F;this.autoClear&&this.clear();o=s.projectScene(w,O);i.setTransform(1,0,0,-1,p,t);i.fillStyle="rgba(0, 255, 255, 0.5)";i.fillRect(oa.getX(),oa.getY(),oa.getWidth(),oa.getHeight());if(Fa=w.lights.length>0){W=w.lights;ga.setRGB(0,0,0);za.setRGB(0,0,0);Aa.setRGB(0,0,0);H=0;for(I=W.length;H0){K.r+=v.color.r*R;K.g+=v.color.g*R;K.b+=v.color.b*R}}else if(v instanceof THREE.PointLight){E.sub(v.position,M.centroidWorld);E.normalize();R=M.normalWorld.dot(E)*v.intensity;if(R>0){K.r+=v.color.r*R;K.g+=v.color.g*R;K.b+=v.color.b*R}}}}function c(z,M,K,T,y,v){x=b(D++);x.setAttribute("d","M "+z.positionScreen.x+ +" "+z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+"z");if(y instanceof THREE.MeshBasicMaterial)p.__styleString=y.color.__styleString;else if(y instanceof THREE.MeshLambertMaterial)if(N){t.r=i.r;t.g=i.g;t.b=i.b;a(v,T,t);p.r=y.color.r*t.r;p.g=y.color.g*t.g;p.b=y.color.b*t.b;p.updateStyleString()}else p.__styleString=y.color.__styleString;else if(y instanceof THREE.MeshDepthMaterial){S=1-y.__2near/(y.__farPlusNear-T.z*y.__farMinusNear); +p.setRGB(S,S,S)}else y instanceof THREE.MeshNormalMaterial&&p.setRGB(d(T.normalWorld.x),d(T.normalWorld.y),d(T.normalWorld.z));y.wireframe?x.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+y.wireframe_linewidth+"; stroke-opacity: "+y.opacity+"; stroke-linecap: round; stroke-linejoin: round"):x.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+y.opacity);r.appendChild(x)}function f(z,M,K,T,y,v,R){x=b(D++);x.setAttribute("d","M "+z.positionScreen.x+" "+ +z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+" L "+T.positionScreen.x+","+T.positionScreen.y+"z");if(v instanceof THREE.MeshBasicMaterial)p.__styleString=v.color.__styleString;else if(v instanceof THREE.MeshLambertMaterial)if(N){t.r=i.r;t.g=i.g;t.b=i.b;a(R,y,t);p.r=v.color.r*t.r;p.g=v.color.g*t.g;p.b=v.color.b*t.b;p.updateStyleString()}else p.__styleString=v.color.__styleString;else if(v instanceof THREE.MeshDepthMaterial){S=1- +v.__2near/(v.__farPlusNear-y.z*v.__farMinusNear);p.setRGB(S,S,S)}else v instanceof THREE.MeshNormalMaterial&&p.setRGB(d(y.normalWorld.x),d(y.normalWorld.y),d(y.normalWorld.z));v.wireframe?x.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+v.wireframe_linewidth+"; stroke-opacity: "+v.opacity+"; stroke-linecap: round; stroke-linejoin: round"):x.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+v.opacity);r.appendChild(x)}function b(z){if(B[z]==null){B[z]= +document.createElementNS("http://www.w3.org/2000/svg","path");fa==0&&B[z].setAttribute("shape-rendering","crispEdges");return B[z]}return B[z]}function d(z){return z<0?Math.min((1+z)*0.5,0.5):0.5+Math.min(z*0.5,0.5)}var j=null,n=new THREE.Projector,r=document.createElementNS("http://www.w3.org/2000/svg","svg"),e,g,m,h,l,q,o,s,A=new THREE.Rectangle,J=new THREE.Rectangle,N=false,p=new THREE.Color(16777215),t=new THREE.Color(16777215),i=new THREE.Color(0),U=new THREE.Color(0),C=new THREE.Color(0),S, +E=new THREE.Vector3,B=[],L=[],x,D,Q,fa=1;this.domElement=r;this.autoClear=true;this.setQuality=function(z){switch(z){case "high":fa=1;break;case "low":fa=0}};this.setSize=function(z,M){e=z;g=M;m=e/2;h=g/2;r.setAttribute("viewBox",-m+" "+-h+" "+e+" "+g);r.setAttribute("width",e);r.setAttribute("height",g);A.set(-m,-h,m,h)};this.clear=function(){for(;r.childNodes.length>0;)r.removeChild(r.childNodes[0])};this.render=function(z,M){var K,T,y,v,R,ha,P,Y;this.autoClear&&this.clear();j=n.projectScene(z, +M);Q=D=0;if(N=z.lights.length>0){P=z.lights;i.setRGB(0,0,0);U.setRGB(0,0,0);C.setRGB(0,0,0);K=0;for(T=P.length;K= 0.0 )": +"",g?"pointSpecularWeight = pow( pointDotNormalHalf, mShininess );":"",g?"pointDiffuse += mColor * pointDiffuseWeight;":"",g?"pointSpecular += mSpecular * pointSpecularWeight;":"",g?"}":"",e?"vec4 dirDiffuse = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"vec4 dirSpecular = vec4( 0.0, 0.0, 0.0, 0.0 );":"",e?"for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"vec3 dirVector = normalize( lDirection.xyz );":"",e?"vec3 dirHalfVector = normalize( lDirection.xyz + vViewPosition );": +"",e?"float dirDotNormalHalf = dot( normal, dirHalfVector );":"",e?"float dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );":"",e?"float dirSpecularWeight = 0.0;":"",e?"if ( dirDotNormalHalf >= 0.0 )":"",e?"dirSpecularWeight = pow( dirDotNormalHalf, mShininess );":"",e?"dirDiffuse += mColor * dirDiffuseWeight;":"",e?"dirSpecular += mSpecular * dirSpecularWeight;":"",e?"}":"","vec4 totalLight = mAmbient;",e?"totalLight += dirDiffuse + dirSpecular;":"",g?"totalLight += pointDiffuse + pointSpecular;": +"","if ( mixEnvMap ) {\ngl_FragColor = vec4( mix( mapColor.rgb * totalLight.xyz * vLightWeighting, cubeColor.rgb, mReflectivity ), mapColor.a );\n} else {\ngl_FragColor = vec4( mapColor.rgb * cubeColor.rgb * totalLight.xyz * vLightWeighting, mapColor.a );\n}\n} else if ( material == 1 ) {\nif ( mixEnvMap ) {\ngl_FragColor = vec4( mix( mColor.rgb * mapColor.rgb * vLightWeighting, cubeColor.rgb, mReflectivity ), mColor.a * mapColor.a );\n} else {\ngl_FragColor = vec4( mColor.rgb * mapColor.rgb * cubeColor.rgb * vLightWeighting, mColor.a * mapColor.a );\n}\n} else {\nif ( mixEnvMap ) {\ngl_FragColor = mix( mColor * mapColor, cubeColor, mReflectivity );\n} else {\ngl_FragColor = mColor * mapColor * cubeColor;\n}\n}\n}"].join("\n"))); +b.attachShader(d,c("vertex",[e?"#define MAX_DIR_LIGHTS "+e:"",g?"#define MAX_POINT_LIGHTS "+g:"","attribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\nuniform vec3 cameraPosition;\nuniform bool enableLighting;\nuniform bool useRefract;\nuniform int pointLightNumber;\nuniform int directionalLightNumber;\nuniform vec3 ambientLightColor;",e?"uniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];":"",e?"uniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];":"",g?"uniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];": +"",g?"uniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];":"","uniform mat4 objMatrix;\nuniform mat4 viewMatrix;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat3 normalMatrix;\nvarying vec3 vNormal;\nvarying vec2 vUv;\nvarying vec3 vLightWeighting;",g?"varying vec3 vPointLightVector[ MAX_POINT_LIGHTS ];":"","varying vec3 vViewPosition;\nvarying vec3 vReflect;\nuniform float mRefractionRatio;\nvoid main(void) {\nvec4 mPosition = objMatrix * vec4( position, 1.0 );\nvViewPosition = cameraPosition - mPosition.xyz;\nvec3 nWorld = mat3( objMatrix[0].xyz, objMatrix[1].xyz, objMatrix[2].xyz ) * normal;\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\nvec3 transformedNormal = normalize( normalMatrix * normal );\nif ( !enableLighting ) {\nvLightWeighting = vec3( 1.0, 1.0, 1.0 );\n} else {\nvLightWeighting = ambientLightColor;", +e?"for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {":"",e?"vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );":"",e?"float directionalLightWeighting = max( dot( transformedNormal, normalize(lDirection.xyz ) ), 0.0 );":"",e?"vLightWeighting += directionalLightColor[ i ] * directionalLightWeighting;":"",e?"}":"",g?"for( int i = 0; i < MAX_POINT_LIGHTS; i++ ) {":"",g?"vec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );":"",g?"vPointLightVector[ i ] = normalize( lPosition.xyz - mvPosition.xyz );": +"",g?"float pointLightWeighting = max( dot( transformedNormal, vPointLightVector[ i ] ), 0.0 );":"",g?"vLightWeighting += pointLightColor[ i ] * pointLightWeighting;":"",g?"}":"","}\nvNormal = transformedNormal;\nvUv = uv;\nif ( useRefract ) {\nvReflect = refract( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz), mRefractionRatio );\n} else {\nvReflect = reflect( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz) );\n}\ngl_Position = projectionMatrix * mvPosition;\n}"].join("\n"))); +b.linkProgram(d);if(!b.getProgramParameter(d,b.LINK_STATUS)){alert("Could not initialise shaders");alert("VALIDATE_STATUS: "+b.getProgramParameter(d,b.VALIDATE_STATUS));alert(b.getError())}b.useProgram(d);d.viewMatrix=b.getUniformLocation(d,"viewMatrix");d.modelViewMatrix=b.getUniformLocation(d,"modelViewMatrix");d.projectionMatrix=b.getUniformLocation(d,"projectionMatrix");d.normalMatrix=b.getUniformLocation(d,"normalMatrix");d.objMatrix=b.getUniformLocation(d,"objMatrix");d.cameraPosition=b.getUniformLocation(d, +"cameraPosition");d.enableLighting=b.getUniformLocation(d,"enableLighting");d.ambientLightColor=b.getUniformLocation(d,"ambientLightColor");if(e){d.directionalLightNumber=b.getUniformLocation(d,"directionalLightNumber");d.directionalLightColor=b.getUniformLocation(d,"directionalLightColor");d.directionalLightDirection=b.getUniformLocation(d,"directionalLightDirection")}if(g){d.pointLightNumber=b.getUniformLocation(d,"pointLightNumber");d.pointLightColor=b.getUniformLocation(d,"pointLightColor");d.pointLightPosition= +b.getUniformLocation(d,"pointLightPosition")}d.material=b.getUniformLocation(d,"material");d.mColor=b.getUniformLocation(d,"mColor");d.mOpacity=b.getUniformLocation(d,"mOpacity");d.mReflectivity=b.getUniformLocation(d,"mReflectivity");d.mAmbient=b.getUniformLocation(d,"mAmbient");d.mSpecular=b.getUniformLocation(d,"mSpecular");d.mShininess=b.getUniformLocation(d,"mShininess");d.enableMap=b.getUniformLocation(d,"enableMap");b.uniform1i(d.enableMap,0);d.tMap=b.getUniformLocation(d,"tMap");b.uniform1i(d.tMap, +0);d.enableCubeMap=b.getUniformLocation(d,"enableCubeMap");b.uniform1i(d.enableCubeMap,0);d.tCube=b.getUniformLocation(d,"tCube");b.uniform1i(d.tCube,1);d.mixEnvMap=b.getUniformLocation(d,"mixEnvMap");b.uniform1i(d.mixEnvMap,0);d.mRefractionRatio=b.getUniformLocation(d,"mRefractionRatio");d.useRefract=b.getUniformLocation(d,"useRefract");b.uniform1i(d.useRefract,0);d.m2Near=b.getUniformLocation(d,"m2Near");d.mFarPlusNear=b.getUniformLocation(d,"mFarPlusNear");d.mFarMinusNear=b.getUniformLocation(d, +"mFarMinusNear");d.position=b.getAttribLocation(d,"position");b.enableVertexAttribArray(d.position);d.normal=b.getAttribLocation(d,"normal");b.enableVertexAttribArray(d.normal);d.uv=b.getAttribLocation(d,"uv");b.enableVertexAttribArray(d.uv);d.viewMatrixArray=new Float32Array(16);d.modelViewMatrixArray=new Float32Array(16);d.projectionMatrixArray=new Float32Array(16)})(a.directional,a.point);this.setSize=function(e,g){f.width=e;f.height=g;b.viewport(0,0,f.width,f.height)};this.clear=function(){b.clear(b.COLOR_BUFFER_BIT| +b.DEPTH_BUFFER_BIT)};this.setupLights=function(e){var g,m,h,l,q=[],o=[],s=[];l=[];var A=[];b.uniform1i(d.enableLighting,e.lights.length);g=0;for(m=e.lights.length;g - + + + @@ -78,7 +79,7 @@ r + "py.jpg", r + "ny.jpg", r + "pz.jpg", r + "nz.jpg" ]; - var images = THREE.loadImageArray( urls ); + var images = ImageUtils.loadArray( urls ); var textureCube = new THREE.TextureCube( images ); var material = new THREE.MeshBasicMaterial( { color: 0xffffff, env_map: textureCube } ) diff --git a/examples/materials_cubemap_refraction.html b/examples/materials_cubemap_refraction.html index da07d172..7c874485 100644 --- a/examples/materials_cubemap_refraction.html +++ b/examples/materials_cubemap_refraction.html @@ -39,6 +39,7 @@ + @@ -102,7 +103,7 @@ r + "py.jpg", r + "ny.jpg", r + "pz.jpg", r + "nz.jpg" ]; - var images = THREE.loadImageArray( urls ); + var images = ImageUtils.loadArray( urls ); var textureCube = new THREE.TextureCube( images, THREE.RefractionMap ); var cubeMaterial3 = new THREE.MeshBasicMaterial( { color: 0xccddff, env_map: textureCube, refraction_ratio: 0.98, reflectivity:0.9 } ); diff --git a/examples/materials_cubemap_sky.html b/examples/materials_cubemap_sky.html index 70bcfdec..f6b9b17d 100644 --- a/examples/materials_cubemap_sky.html +++ b/examples/materials_cubemap_sky.html @@ -38,6 +38,7 @@ + @@ -93,11 +94,11 @@ } var r = "textures/skymap_"; - var urls = [ r + "right1024.jpg", r + "left1024.jpg", - r + "top1024.jpg", r + "bottom1024.jpg", - r + "front1024.jpg", r + "back1024.jpg" ]; + var urls = [ r + "px.jpg", r + "nx.jpg", + r + "py.jpg", r + "ny.jpg", + r + "nz.jpg", r + "pz.jpg" ]; - var images = THREE.loadImageArray( urls ); + var images = ImageUtils.loadArray( urls ); var textureCube = new THREE.TextureCube( images ); var material = new THREE.MeshBasicMaterial( { color: 0xffffff, env_map: textureCube } ); diff --git a/examples/materials_cubemap_sky_refraction.html b/examples/materials_cubemap_sky_refraction.html index c60989af..66c8114a 100644 --- a/examples/materials_cubemap_sky_refraction.html +++ b/examples/materials_cubemap_sky_refraction.html @@ -38,6 +38,7 @@ + @@ -93,11 +94,11 @@ } var r = "textures/skymap_"; - var urls = [ r + "right1024.jpg", r + "left1024.jpg", - r + "top1024.jpg", r + "bottom1024.jpg", - r + "front1024.jpg", r + "back1024.jpg" ]; + var urls = [ r + "px.jpg", r + "nx.jpg", + r + "py.jpg", r + "ny.jpg", + r + "nz.jpg", r + "pz.jpg" ]; - var images = THREE.loadImageArray( urls ); + var images = ImageUtils.loadArray( urls ); var textureCube = new THREE.TextureCube( images, THREE.RefractionMap ); var material = new THREE.MeshBasicMaterial( { color: 0xffffff, env_map: textureCube, refraction_ratio: 0.75 } ); diff --git a/src/extras/ImageUtils.js b/src/extras/ImageUtils.js new file mode 100644 index 00000000..b6b3e98c --- /dev/null +++ b/src/extras/ImageUtils.js @@ -0,0 +1,22 @@ +var ImageUtils = { + + loadArray: function ( array ) { + + var i, l, images = []; + + images.loadCount = 0; + + for ( i = 0, l = array.length; i < l; ++i ) { + + images[ i ] = new Image(); + images[ i ].loaded = 0; + images[ i ].onload = function () { images.loadCount += 1; this.loaded = 1; } + images[ i ].src = array[ i ]; + + } + + return images; + + } + +} diff --git a/src/materials/MeshCubeMaterial.js b/src/materials/MeshCubeMaterial.js new file mode 100644 index 00000000..0c7521cf --- /dev/null +++ b/src/materials/MeshCubeMaterial.js @@ -0,0 +1,80 @@ +/** + * @author mr.doob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * + * parameters = { + * color: , + * map: new THREE.Texture( ), + + * env_map: new THREE.TextureCube( [posx, negx, posy, negy, posz, negz] ), + * combine: THREE.Multiply, + * reflectivity: , + * refraction_ratio: , + + * opacity: , + * shading: THREE.SmoothShading, + * blending: THREE.NormalBlending, + * wireframe: , + * wireframe_linewidth: + * } + */ + +THREE.MeshCubeMaterial = function ( parameters ) { + + this.id = THREE.MeshCubeMaterialCounter.value ++; + + this.color = new THREE.Color( 0xeeeeee ); + this.map = null; + + this.env_map = null; + this.combine = THREE.Multiply; + this.reflectivity = 1; + this.refraction_ratio = 0.98; + + this.opacity = 1; + this.shading = THREE.SmoothShading; + this.blending = THREE.NormalBlending; + this.wireframe = false; + this.wireframe_linewidth = 1; + + if ( parameters ) { + + if ( parameters.color !== undefined ) this.color.setHex( parameters.color ); + if ( parameters.map !== undefined ) this.map = parameters.map; + + if ( parameters.env_map !== undefined ) this.env_map = parameters.env_map; + if ( parameters.combine !== undefined ) this.combine = parameters.combine; + if ( parameters.reflectivity !== undefined ) this.reflectivity = parameters.reflectivity; + if ( parameters.refraction_ratio !== undefined ) this.refraction_ratio = parameters.refraction_ratio; + + if ( parameters.opacity !== undefined ) this.opacity = parameters.opacity; + if ( parameters.shading !== undefined ) this.shading = parameters.shading; + if ( parameters.blending !== undefined ) this.blending = parameters.blending; + if ( parameters.wireframe !== undefined ) this.wireframe = parameters.wireframe; + if ( parameters.wireframe_linewidth !== undefined ) this.wireframe_linewidth = parameters.wireframe_linewidth; + + } + + this.toString = function () { + + return 'THREE.MeshCubeMaterial (
' + + 'id: ' + this.id + '
' + + 'color: ' + this.color + '
' + + 'map: ' + this.map + '
' + + + 'env_map: ' + this.env_map + '
' + + 'combine: ' + this.combine + '
' + + 'reflectivity: ' + this.reflectivity + '
' + + 'refraction_ratio: ' + this.refraction_ratio + '
' + + + 'opacity: ' + this.opacity + '
' + + 'blending: ' + this.blending + '
' + + 'wireframe: ' + this.wireframe + '
' + + 'wireframe_linewidth: ' + this.wireframe_linewidth +'
' + + ')'; + + }; + +} + +THREE.MeshCubeMaterialCounter = { value: 0 }; diff --git a/src/materials/textures/TextureCube.js b/src/materials/textures/TextureCube.js index 190b3a8b..d0297492 100644 --- a/src/materials/textures/TextureCube.js +++ b/src/materials/textures/TextureCube.js @@ -19,23 +19,3 @@ THREE.TextureCube = function ( image, mapping ) { }; }; - -THREE.loadImageArray = function ( urls ) { - - var i, images = []; - - images.loadCount = 0; - - for ( i = 0; i < urls.length; ++i ) { - - images[i] = new Image(); - images[i].loaded = 0; - images[i].onload = function() { images.loadCount += 1; this.loaded = 1; } - images[i].src = urls[i]; - - } - - return images; - -}; - From a1d014c1102626dc2661bb5febc90a8e577c1713 Mon Sep 17 00:00:00 2001 From: "Mr.doob" Date: Mon, 22 Nov 2010 11:45:42 +0000 Subject: [PATCH 4/4] Cube.js matching WebGLRenderer cubemap. --- build/Three.js | 169 +++-- build/ThreeDebug.js | 167 +++-- examples/geometry_vr.html | 14 +- examples/materials_cubemap.html | 15 +- ...> materials_cubemap_balls_reflection.html} | 16 +- ...> materials_cubemap_balls_refraction.html} | 11 +- examples/textures/cube/pisa/nx.png | Bin 0 -> 62951 bytes examples/textures/cube/pisa/ny.png | Bin 0 -> 82197 bytes examples/textures/cube/pisa/nz.png | Bin 0 -> 85026 bytes examples/textures/cube/pisa/px.png | Bin 0 -> 72934 bytes examples/textures/cube/pisa/py.png | Bin 0 -> 76608 bytes examples/textures/cube/pisa/pz.png | Bin 0 -> 88709 bytes .../{skymap_nx.jpg => cube/skybox/nx.jpg} | Bin .../{skymap_ny.jpg => cube/skybox/ny.jpg} | Bin .../{skymap_pz.jpg => cube/skybox/nz.jpg} | Bin .../{skymap_px.jpg => cube/skybox/px.jpg} | Bin .../{skymap_py.jpg => cube/skybox/py.jpg} | Bin .../{skymap_nz.jpg => cube/skybox/pz.jpg} | Bin examples/textures/cube/skybox_test/nx.jpg | Bin 0 -> 62211 bytes examples/textures/cube/skybox_test/ny.jpg | Bin 0 -> 60236 bytes examples/textures/cube/skybox_test/nz.jpg | Bin 0 -> 59480 bytes examples/textures/cube/skybox_test/px.jpg | Bin 0 -> 68338 bytes examples/textures/cube/skybox_test/py.jpg | Bin 0 -> 29479 bytes examples/textures/cube/skybox_test/pz.jpg | Bin 0 -> 65330 bytes src/extras/primitives/Cube.js | 12 +- src/renderers/WebGLRenderer.js | 657 +++++++++--------- 26 files changed, 537 insertions(+), 524 deletions(-) rename examples/{materials_cubemap_sky.html => materials_cubemap_balls_reflection.html} (94%) rename examples/{materials_cubemap_sky_refraction.html => materials_cubemap_balls_refraction.html} (96%) create mode 100644 examples/textures/cube/pisa/nx.png create mode 100644 examples/textures/cube/pisa/ny.png create mode 100644 examples/textures/cube/pisa/nz.png create mode 100644 examples/textures/cube/pisa/px.png create mode 100644 examples/textures/cube/pisa/py.png create mode 100644 examples/textures/cube/pisa/pz.png rename examples/textures/{skymap_nx.jpg => cube/skybox/nx.jpg} (100%) rename examples/textures/{skymap_ny.jpg => cube/skybox/ny.jpg} (100%) rename examples/textures/{skymap_pz.jpg => cube/skybox/nz.jpg} (100%) rename examples/textures/{skymap_px.jpg => cube/skybox/px.jpg} (100%) rename examples/textures/{skymap_py.jpg => cube/skybox/py.jpg} (100%) rename examples/textures/{skymap_nz.jpg => cube/skybox/pz.jpg} (100%) create mode 100644 examples/textures/cube/skybox_test/nx.jpg create mode 100644 examples/textures/cube/skybox_test/ny.jpg create mode 100644 examples/textures/cube/skybox_test/nz.jpg create mode 100644 examples/textures/cube/skybox_test/px.jpg create mode 100644 examples/textures/cube/skybox_test/py.jpg create mode 100644 examples/textures/cube/skybox_test/pz.jpg diff --git a/build/Three.js b/build/Three.js index 196e0982..fcd3ee9a 100644 --- a/build/Three.js +++ b/build/Three.js @@ -11,40 +11,40 @@ distanceToSquared:function(a){var c=this.x-a.x,f=this.y-a.y;a=this.z-a.z;return THREE.Vector4.prototype={set:function(a,c,f,b){this.x=a;this.y=c;this.z=f;this.w=b;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=a.w||1;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;this.w=a.w+c.w;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;this.w=a.w-c.w;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w; return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;this.w/=a;return this},lerpSelf:function(a,c){this.x+=(a.x-this.x)*c;this.y+=(a.y-this.y)*c;this.z+=(a.z-this.z)*c;this.w+=(a.w-this.w)*c},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},toString:function(){return"THREE.Vector4 ("+this.x+", "+this.y+", "+this.z+", "+this.w+")"}}; THREE.Ray=function(a,c){this.origin=a||new THREE.Vector3;this.direction=c||new THREE.Vector3}; -THREE.Ray.prototype={intersectScene:function(a){var c,f,b=a.objects,d=[];a=0;for(c=b.length;a0&&A>0&&j+A<1}var f,b,d,i,n,r,e,g,m,h, -l,q=a.geometry,o=q.vertices,s=[];f=0;for(b=q.faces.length;f= -0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){r=true;d=b=f=c=0;a()};this.isEmpty=function(){return r};this.toString=function(){return"THREE.Rectangle ( left: "+c+", right: "+b+", top: "+f+", bottom: "+d+", width: "+i+", height: "+n+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; +THREE.Ray.prototype={intersectScene:function(a){var c,f,b=a.objects,d=[];a=0;for(c=b.length;a0&&A>0&&k+A<1}var f,b,d,j,n,q,e,g,m,h, +o,i=a.geometry,r=i.vertices,w=[];f=0;for(b=i.faces.length;f= +0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){q=true;d=b=f=c=0;a()};this.isEmpty=function(){return q};this.toString=function(){return"THREE.Rectangle ( left: "+c+", right: "+b+", top: "+f+", bottom: "+d+", width: "+j+", height: "+n+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; THREE.Matrix4=function(){this._x=new THREE.Vector3;this._y=new THREE.Vector3;this._z=new THREE.Vector3}; THREE.Matrix4.prototype={n11:1,n12:0,n13:0,n14:0,n21:0,n22:1,n23:0,n24:0,n31:0,n32:0,n33:1,n34:0,n41:0,n42:0,n43:0,n44:1,identity:function(){this.n11=1;this.n21=this.n14=this.n13=this.n12=0;this.n22=1;this.n32=this.n31=this.n24=this.n23=0;this.n33=1;this.n43=this.n42=this.n41=this.n34=0;this.n44=1},copy:function(a){this.n11=a.n11;this.n12=a.n12;this.n13=a.n13;this.n14=a.n14;this.n21=a.n21;this.n22=a.n22;this.n23=a.n23;this.n24=a.n24;this.n31=a.n31;this.n32=a.n32;this.n33=a.n33;this.n34=a.n34;this.n41= -a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,c,f){var b=this._x,d=this._y,i=this._z;i.sub(a,c);i.normalize();b.cross(f,i);b.normalize();d.cross(i,b);d.normalize();this.n11=b.x;this.n12=b.y;this.n13=b.z;this.n14=-b.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=i.x;this.n32=i.y;this.n33=i.z;this.n34=-i.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var c=a.x,f=a.y,b=a.z,d=a.w?a.w:1;a.x=this.n11*c+this.n12*f+this.n13*b+this.n14* +a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,c,f){var b=this._x,d=this._y,j=this._z;j.sub(a,c);j.normalize();b.cross(f,j);b.normalize();d.cross(j,b);d.normalize();this.n11=b.x;this.n12=b.y;this.n13=b.z;this.n14=-b.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=j.x;this.n32=j.y;this.n33=j.z;this.n34=-j.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var c=a.x,f=a.y,b=a.z,d=a.w?a.w:1;a.x=this.n11*c+this.n12*f+this.n13*b+this.n14* d;a.y=this.n21*c+this.n22*f+this.n23*b+this.n24*d;a.z=this.n31*c+this.n32*f+this.n33*b+this.n34*d;d=this.n41*c+this.n42*f+this.n43*b+this.n44*d;if(a.w)a.w=d;else{a.x/=d;a.y/=d;a.z/=d}return a},crossVector:function(a){var c=new THREE.Vector4;c.x=this.n11*a.x+this.n12*a.y+this.n13*a.z+this.n14*a.w;c.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;c.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+this.n34*a.w;c.w=a.w?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return c},multiply:function(a, c){this.n11=a.n11*c.n11+a.n12*c.n21+a.n13*c.n31+a.n14*c.n41;this.n12=a.n11*c.n12+a.n12*c.n22+a.n13*c.n32+a.n14*c.n42;this.n13=a.n11*c.n13+a.n12*c.n23+a.n13*c.n33+a.n14*c.n43;this.n14=a.n11*c.n14+a.n12*c.n24+a.n13*c.n34+a.n14*c.n44;this.n21=a.n21*c.n11+a.n22*c.n21+a.n23*c.n31+a.n24*c.n41;this.n22=a.n21*c.n12+a.n22*c.n22+a.n23*c.n32+a.n24*c.n42;this.n23=a.n21*c.n13+a.n22*c.n23+a.n23*c.n33+a.n24*c.n43;this.n24=a.n21*c.n14+a.n22*c.n24+a.n23*c.n34+a.n24*c.n44;this.n31=a.n31*c.n11+a.n32*c.n21+a.n33*c.n31+ -a.n34*c.n41;this.n32=a.n31*c.n12+a.n32*c.n22+a.n33*c.n32+a.n34*c.n42;this.n33=a.n31*c.n13+a.n32*c.n23+a.n33*c.n33+a.n34*c.n43;this.n34=a.n31*c.n14+a.n32*c.n24+a.n33*c.n34+a.n34*c.n44;this.n41=a.n41*c.n11+a.n42*c.n21+a.n43*c.n31+a.n44*c.n41;this.n42=a.n41*c.n12+a.n42*c.n22+a.n43*c.n32+a.n44*c.n42;this.n43=a.n41*c.n13+a.n42*c.n23+a.n43*c.n33+a.n44*c.n43;this.n44=a.n41*c.n14+a.n42*c.n24+a.n43*c.n34+a.n44*c.n44},multiplySelf:function(a){var c=this.n11,f=this.n12,b=this.n13,d=this.n14,i=this.n21,n=this.n22, -r=this.n23,e=this.n24,g=this.n31,m=this.n32,h=this.n33,l=this.n34,q=this.n41,o=this.n42,s=this.n43,A=this.n44;this.n11=c*a.n11+f*a.n21+b*a.n31+d*a.n41;this.n12=c*a.n12+f*a.n22+b*a.n32+d*a.n42;this.n13=c*a.n13+f*a.n23+b*a.n33+d*a.n43;this.n14=c*a.n14+f*a.n24+b*a.n34+d*a.n44;this.n21=i*a.n11+n*a.n21+r*a.n31+e*a.n41;this.n22=i*a.n12+n*a.n22+r*a.n32+e*a.n42;this.n23=i*a.n13+n*a.n23+r*a.n33+e*a.n43;this.n24=i*a.n14+n*a.n24+r*a.n34+e*a.n44;this.n31=g*a.n11+m*a.n21+h*a.n31+l*a.n41;this.n32=g*a.n12+m*a.n22+ -h*a.n32+l*a.n42;this.n33=g*a.n13+m*a.n23+h*a.n33+l*a.n43;this.n34=g*a.n14+m*a.n24+h*a.n34+l*a.n44;this.n41=q*a.n11+o*a.n21+s*a.n31+A*a.n41;this.n42=q*a.n12+o*a.n22+s*a.n32+A*a.n42;this.n43=q*a.n13+o*a.n23+s*a.n33+A*a.n43;this.n44=q*a.n14+o*a.n24+s*a.n34+A*a.n44},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a},determinant:function(){return this.n14* +a.n34*c.n41;this.n32=a.n31*c.n12+a.n32*c.n22+a.n33*c.n32+a.n34*c.n42;this.n33=a.n31*c.n13+a.n32*c.n23+a.n33*c.n33+a.n34*c.n43;this.n34=a.n31*c.n14+a.n32*c.n24+a.n33*c.n34+a.n34*c.n44;this.n41=a.n41*c.n11+a.n42*c.n21+a.n43*c.n31+a.n44*c.n41;this.n42=a.n41*c.n12+a.n42*c.n22+a.n43*c.n32+a.n44*c.n42;this.n43=a.n41*c.n13+a.n42*c.n23+a.n43*c.n33+a.n44*c.n43;this.n44=a.n41*c.n14+a.n42*c.n24+a.n43*c.n34+a.n44*c.n44},multiplySelf:function(a){var c=this.n11,f=this.n12,b=this.n13,d=this.n14,j=this.n21,n=this.n22, +q=this.n23,e=this.n24,g=this.n31,m=this.n32,h=this.n33,o=this.n34,i=this.n41,r=this.n42,w=this.n43,A=this.n44;this.n11=c*a.n11+f*a.n21+b*a.n31+d*a.n41;this.n12=c*a.n12+f*a.n22+b*a.n32+d*a.n42;this.n13=c*a.n13+f*a.n23+b*a.n33+d*a.n43;this.n14=c*a.n14+f*a.n24+b*a.n34+d*a.n44;this.n21=j*a.n11+n*a.n21+q*a.n31+e*a.n41;this.n22=j*a.n12+n*a.n22+q*a.n32+e*a.n42;this.n23=j*a.n13+n*a.n23+q*a.n33+e*a.n43;this.n24=j*a.n14+n*a.n24+q*a.n34+e*a.n44;this.n31=g*a.n11+m*a.n21+h*a.n31+o*a.n41;this.n32=g*a.n12+m*a.n22+ +h*a.n32+o*a.n42;this.n33=g*a.n13+m*a.n23+h*a.n33+o*a.n43;this.n34=g*a.n14+m*a.n24+h*a.n34+o*a.n44;this.n41=i*a.n11+r*a.n21+w*a.n31+A*a.n41;this.n42=i*a.n12+r*a.n22+w*a.n32+A*a.n42;this.n43=i*a.n13+r*a.n23+w*a.n33+A*a.n43;this.n44=i*a.n14+r*a.n24+w*a.n34+A*a.n44},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a},determinant:function(){return this.n14* this.n23*this.n32*this.n41-this.n13*this.n24*this.n32*this.n41-this.n14*this.n22*this.n33*this.n41+this.n12*this.n24*this.n33*this.n41+this.n13*this.n22*this.n34*this.n41-this.n12*this.n23*this.n34*this.n41-this.n14*this.n23*this.n31*this.n42+this.n13*this.n24*this.n31*this.n42+this.n14*this.n21*this.n33*this.n42-this.n11*this.n24*this.n33*this.n42-this.n13*this.n21*this.n34*this.n42+this.n11*this.n23*this.n34*this.n42+this.n14*this.n22*this.n31*this.n43-this.n12*this.n24*this.n31*this.n43-this.n14* this.n21*this.n32*this.n43+this.n11*this.n24*this.n32*this.n43+this.n12*this.n21*this.n34*this.n43-this.n11*this.n22*this.n34*this.n43-this.n13*this.n22*this.n31*this.n44+this.n12*this.n23*this.n31*this.n44+this.n13*this.n21*this.n32*this.n44-this.n11*this.n23*this.n32*this.n44-this.n12*this.n21*this.n33*this.n44+this.n11*this.n22*this.n33*this.n44},transpose:function(){function a(c,f,b){var d=c[f];c[f]=c[b];c[b]=d}a(this,"n21","n12");a(this,"n31","n13");a(this,"n32","n23");a(this,"n41","n14");a(this, "n42","n24");a(this,"n43","n34");return this},clone:function(){var a=new THREE.Matrix4;a.n11=this.n11;a.n12=this.n12;a.n13=this.n13;a.n14=this.n14;a.n21=this.n21;a.n22=this.n22;a.n23=this.n23;a.n24=this.n24;a.n31=this.n31;a.n32=this.n32;a.n33=this.n33;a.n34=this.n34;a.n41=this.n41;a.n42=this.n42;a.n43=this.n43;a.n44=this.n44;return a},flatten:function(){return[this.n11,this.n21,this.n31,this.n41,this.n12,this.n22,this.n32,this.n42,this.n13,this.n23,this.n33,this.n43,this.n14,this.n24,this.n34,this.n44]}, toString:function(){return"| "+this.n11+" "+this.n12+" "+this.n13+" "+this.n14+" |\n| "+this.n21+" "+this.n22+" "+this.n23+" "+this.n24+" |\n| "+this.n31+" "+this.n32+" "+this.n33+" "+this.n34+" |\n| "+this.n41+" "+this.n42+" "+this.n43+" "+this.n44+" |"}};THREE.Matrix4.translationMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n14=a;b.n24=c;b.n34=f;return b};THREE.Matrix4.scaleMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n11=a;b.n22=c;b.n33=f;return b}; THREE.Matrix4.rotationXMatrix=function(a){var c=new THREE.Matrix4;c.n22=c.n33=Math.cos(a);c.n32=Math.sin(a);c.n23=-c.n32;return c};THREE.Matrix4.rotationYMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n33=Math.cos(a);c.n13=Math.sin(a);c.n31=-c.n13;return c};THREE.Matrix4.rotationZMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n22=Math.cos(a);c.n21=Math.sin(a);c.n12=-c.n21;return c}; -THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var f=new THREE.Matrix4,b=Math.cos(c),d=Math.sin(c),i=1-b,n=a.x,r=a.y,e=a.z;f.n11=i*n*n+b;f.n12=i*n*r-d*e;f.n13=i*n*e+d*r;f.n21=i*n*r+d*e;f.n22=i*r*r+b;f.n23=i*r*e-d*n;f.n31=i*n*e-d*r;f.n32=i*r*e+d*n;f.n33=i*e*e+b;return f}; +THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var f=new THREE.Matrix4,b=Math.cos(c),d=Math.sin(c),j=1-b,n=a.x,q=a.y,e=a.z;f.n11=j*n*n+b;f.n12=j*n*q-d*e;f.n13=j*n*e+d*q;f.n21=j*n*q+d*e;f.n22=j*q*q+b;f.n23=j*q*e-d*n;f.n31=j*n*e-d*q;f.n32=j*q*e+d*n;f.n33=j*e*e+b;return f}; THREE.Matrix4.makeInvert=function(a){var c=new THREE.Matrix4;c.n11=a.n23*a.n34*a.n42-a.n24*a.n33*a.n42+a.n24*a.n32*a.n43-a.n22*a.n34*a.n43-a.n23*a.n32*a.n44+a.n22*a.n33*a.n44;c.n12=a.n14*a.n33*a.n42-a.n13*a.n34*a.n42-a.n14*a.n32*a.n43+a.n12*a.n34*a.n43+a.n13*a.n32*a.n44-a.n12*a.n33*a.n44;c.n13=a.n13*a.n24*a.n42-a.n14*a.n23*a.n42+a.n14*a.n22*a.n43-a.n12*a.n24*a.n43-a.n13*a.n22*a.n44+a.n12*a.n23*a.n44;c.n14=a.n14*a.n23*a.n32-a.n13*a.n24*a.n32-a.n14*a.n22*a.n33+a.n12*a.n24*a.n33+a.n13*a.n22*a.n34-a.n12* a.n23*a.n34;c.n21=a.n24*a.n33*a.n41-a.n23*a.n34*a.n41-a.n24*a.n31*a.n43+a.n21*a.n34*a.n43+a.n23*a.n31*a.n44-a.n21*a.n33*a.n44;c.n22=a.n13*a.n34*a.n41-a.n14*a.n33*a.n41+a.n14*a.n31*a.n43-a.n11*a.n34*a.n43-a.n13*a.n31*a.n44+a.n11*a.n33*a.n44;c.n23=a.n14*a.n23*a.n41-a.n13*a.n24*a.n41-a.n14*a.n21*a.n43+a.n11*a.n24*a.n43+a.n13*a.n21*a.n44-a.n11*a.n23*a.n44;c.n24=a.n13*a.n24*a.n31-a.n14*a.n23*a.n31+a.n14*a.n21*a.n33-a.n11*a.n24*a.n33-a.n13*a.n21*a.n34+a.n11*a.n23*a.n34;c.n31=a.n22*a.n34*a.n41-a.n24*a.n32* a.n41+a.n24*a.n31*a.n42-a.n21*a.n34*a.n42-a.n22*a.n31*a.n44+a.n21*a.n32*a.n44;c.n32=a.n14*a.n32*a.n41-a.n12*a.n34*a.n41-a.n14*a.n31*a.n42+a.n11*a.n34*a.n42+a.n12*a.n31*a.n44-a.n11*a.n32*a.n44;c.n33=a.n13*a.n24*a.n41-a.n14*a.n22*a.n41+a.n14*a.n21*a.n42-a.n11*a.n24*a.n42-a.n12*a.n21*a.n44+a.n11*a.n22*a.n44;c.n34=a.n14*a.n22*a.n31-a.n12*a.n24*a.n31-a.n14*a.n21*a.n32+a.n11*a.n24*a.n32+a.n12*a.n21*a.n34-a.n11*a.n22*a.n34;c.n41=a.n23*a.n32*a.n41-a.n22*a.n33*a.n41-a.n23*a.n31*a.n42+a.n21*a.n33*a.n42+a.n22* a.n31*a.n43-a.n21*a.n32*a.n43;c.n42=a.n12*a.n33*a.n41-a.n13*a.n32*a.n41+a.n13*a.n31*a.n42-a.n11*a.n33*a.n42-a.n12*a.n31*a.n43+a.n11*a.n32*a.n43;c.n43=a.n13*a.n22*a.n41-a.n12*a.n23*a.n41-a.n13*a.n21*a.n42+a.n11*a.n23*a.n42+a.n12*a.n21*a.n43-a.n11*a.n22*a.n43;c.n44=a.n12*a.n23*a.n31-a.n13*a.n22*a.n31+a.n13*a.n21*a.n32-a.n11*a.n23*a.n32-a.n12*a.n21*a.n33+a.n11*a.n22*a.n33;c.multiplyScalar(1/a.determinant());return c}; -THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=new THREE.Matrix3;var f=c[10]*c[5]-c[6]*c[9],b=-c[10]*c[1]+c[2]*c[9],d=c[6]*c[1]-c[2]*c[5],i=-c[10]*c[4]+c[6]*c[8],n=c[10]*c[0]-c[2]*c[8],r=-c[6]*c[0]+c[2]*c[4],e=c[9]*c[4]-c[5]*c[8],g=-c[9]*c[0]+c[1]*c[8],m=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*i+c[2]*e;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*b;a.m[2]=c*d;a.m[3]=c*i;a.m[4]=c*n;a.m[5]=c*r;a.m[6]=c*e;a.m[7]=c*g;a.m[8]=c*m;return a}; -THREE.Matrix4.makeFrustum=function(a,c,f,b,d,i){var n,r,e;n=new THREE.Matrix4;r=2*d/(c-a);e=2*d/(b-f);a=(c+a)/(c-a);f=(b+f)/(b-f);b=-(i+d)/(i-d);d=-2*i*d/(i-d);n.n11=r;n.n12=0;n.n13=a;n.n14=0;n.n21=0;n.n22=e;n.n23=f;n.n24=0;n.n31=0;n.n32=0;n.n33=b;n.n34=d;n.n41=0;n.n42=0;n.n43=-1;n.n44=0;return n};THREE.Matrix4.makePerspective=function(a,c,f,b){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*c,a*c,d,a,f,b)}; -THREE.Matrix4.makeOrtho=function(a,c,f,b,d,i){var n,r,e,g;n=new THREE.Matrix4;r=c-a;e=f-b;g=i-d;a=(c+a)/r;f=(f+b)/e;d=(i+d)/g;n.n11=2/r;n.n12=0;n.n13=0;n.n14=-a;n.n21=0;n.n22=2/e;n.n23=0;n.n24=-f;n.n31=0;n.n32=0;n.n33=-2/g;n.n34=-d;n.n41=0;n.n42=0;n.n43=0;n.n44=1;return n}; +THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=new THREE.Matrix3;var f=c[10]*c[5]-c[6]*c[9],b=-c[10]*c[1]+c[2]*c[9],d=c[6]*c[1]-c[2]*c[5],j=-c[10]*c[4]+c[6]*c[8],n=c[10]*c[0]-c[2]*c[8],q=-c[6]*c[0]+c[2]*c[4],e=c[9]*c[4]-c[5]*c[8],g=-c[9]*c[0]+c[1]*c[8],m=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*j+c[2]*e;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*b;a.m[2]=c*d;a.m[3]=c*j;a.m[4]=c*n;a.m[5]=c*q;a.m[6]=c*e;a.m[7]=c*g;a.m[8]=c*m;return a}; +THREE.Matrix4.makeFrustum=function(a,c,f,b,d,j){var n,q,e;n=new THREE.Matrix4;q=2*d/(c-a);e=2*d/(b-f);a=(c+a)/(c-a);f=(b+f)/(b-f);b=-(j+d)/(j-d);d=-2*j*d/(j-d);n.n11=q;n.n12=0;n.n13=a;n.n14=0;n.n21=0;n.n22=e;n.n23=f;n.n24=0;n.n31=0;n.n32=0;n.n33=b;n.n34=d;n.n41=0;n.n42=0;n.n43=-1;n.n44=0;return n};THREE.Matrix4.makePerspective=function(a,c,f,b){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*c,a*c,d,a,f,b)}; +THREE.Matrix4.makeOrtho=function(a,c,f,b,d,j){var n,q,e,g;n=new THREE.Matrix4;q=c-a;e=f-b;g=j-d;a=(c+a)/q;f=(f+b)/e;d=(j+d)/g;n.n11=2/q;n.n12=0;n.n13=0;n.n14=-a;n.n21=0;n.n22=2/e;n.n23=0;n.n24=-f;n.n31=0;n.n32=0;n.n33=-2/g;n.n34=-d;n.n41=0;n.n42=0;n.n43=0;n.n44=1;return n}; THREE.Vertex=function(a,c){this.position=a||new THREE.Vector3;this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.normal=c||new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.normalScreen=new THREE.Vector3;this.__visible=true};THREE.Vertex.prototype={toString:function(){return"THREE.Vertex ( position: "+this.position+", normal: "+this.normal+" )"}}; THREE.Face3=function(a,c,f,b,d){this.a=a;this.b=c;this.c=f;this.centroid=new THREE.Vector3;this.normal=b instanceof THREE.Vector3?b:new THREE.Vector3;this.vertexNormals=b instanceof Array?b:[];this.material=d instanceof Array?d:[d]};THREE.Face3.prototype={toString:function(){return"THREE.Face3 ( "+this.a+", "+this.b+", "+this.c+" )"}}; -THREE.Face4=function(a,c,f,b,d,i){this.a=a;this.b=c;this.c=f;this.d=b;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=i instanceof Array?i:[i]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,c){this.u=a||0;this.v=c||0}; +THREE.Face4=function(a,c,f,b,d,j){this.a=a;this.b=c;this.c=f;this.d=b;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=j instanceof Array?j:[j]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,c){this.u=a||0;this.v=c||0}; THREE.UV.prototype={copy:function(a){this.u=a.u;this.v=a.v},toString:function(){return"THREE.UV ("+this.u+", "+this.v+")"}};THREE.Geometry=function(){this.vertices=[];this.faces=[];this.uvs=[]}; THREE.Geometry.prototype={computeCentroids:function(){var a,c,f;a=0;for(c=this.faces.length;a0){this.bbox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y,this.vertices[0].position.y],z:[this.vertices[0].position.z,this.vertices[0].position.z]};for(var a=1,c=this.vertices.length;a +f.centroid.addSelf(this.vertices[f.d].position);f.centroid.divideScalar(4)}}},computeNormals:function(a){var c,f,b,d,j,n,q=new THREE.Vector3,e=new THREE.Vector3;b=0;for(d=this.vertices.length;b0){this.bbox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y,this.vertices[0].position.y],z:[this.vertices[0].position.z,this.vertices[0].position.z]};for(var a=1,c=this.vertices.length;a this.bbox.x[1])this.bbox.x[1]=vertex.position.x;if(vertex.position.ythis.bbox.y[1])this.bbox.y[1]=vertex.position.y;if(vertex.position.zthis.bbox.z[1])this.bbox.z[1]=vertex.position.z}}},toString:function(){return"THREE.Geometry ( vertices: "+this.vertices+", faces: "+this.faces+" )"}}; THREE.Camera=function(a,c,f,b){this.position=new THREE.Vector3(0,0,0);this.target={position:new THREE.Vector3(0,0,0)};this.up=new THREE.Vector3(0,1,0);this.matrix=new THREE.Matrix4;this.projectionMatrix=THREE.Matrix4.makePerspective(a,c,f,b);this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrix.lookAt(this.position,this.target.position,this.up)};this.toString=function(){return"THREE.Camera ( "+this.position+", "+this.target.position+" )"}}; THREE.Light=function(a){this.color=new THREE.Color(-16777216|a)};THREE.AmbientLight=function(a){THREE.Light.call(this,a)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight;THREE.DirectionalLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,1,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight; @@ -53,8 +53,8 @@ THREE.Object3D=function(){this.position=new THREE.Vector3;this.rotation=new THRE this.matrixRotation.multiplySelf(THREE.Matrix4.rotationYMatrix(this.rotation.y));this.matrixRotation.multiplySelf(THREE.Matrix4.rotationZMatrix(this.rotation.z));this.matrixScale=THREE.Matrix4.scaleMatrix(this.scale.x,this.scale.y,this.scale.z);this.matrix.copy(this.matrixPosition);this.matrix.multiplySelf(this.matrixRotation);this.matrix.multiplySelf(this.matrixScale)}};THREE.Particle=function(a){THREE.Object3D.call(this);this.material=a instanceof Array?a:[a];this.autoUpdateMatrix=false}; THREE.Particle.prototype=new THREE.Object3D;THREE.Particle.prototype.constructor=THREE.Particle;THREE.Line=function(a,c){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c]};THREE.Line.prototype=new THREE.Object3D;THREE.Line.prototype.constructor=THREE.Line; THREE.Mesh=function(a,c,f){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c];this.overdraw=this.doubleSided=this.flipSided=false;this.materialFaceGroup={};this.sortFacesByMaterial();f&&this.normalizeUVs();this.geometry.computeBoundingBox()};THREE.Mesh.prototype=new THREE.Object3D;THREE.Mesh.prototype.constructor=THREE.Mesh; -THREE.Mesh.prototype.sortFacesByMaterial=function(){function a(m){var h=[];c=0;for(f=m.length;c65535){g[r].counter+=1;e=g[r].hash+"_"+g[r].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:n,vertices:0}}this.materialFaceGroup[e].faces.push(b);this.materialFaceGroup[e].vertices+=i}};THREE.Mesh.prototype.normalizeUVs=function(){var a,c,f,b,d;a=0;for(c=this.geometry.uvs.length;a65535){g[q].counter+=1;e=g[q].hash+"_"+g[q].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:n,vertices:0}}this.materialFaceGroup[e].faces.push(b);this.materialFaceGroup[e].vertices+=j}};THREE.Mesh.prototype.normalizeUVs=function(){var a,c,f,b,d;a=0;for(c=this.geometry.uvs.length;acolor: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
linewidth: "+ this.linewidth+"
)"}}; @@ -78,51 +78,51 @@ this.blending+"
)"}};THREE.ParticleCircleMaterial=function(a){this.color=new THREE.ParticleDOMMaterial=function(a){this.domElement=a;this.toString=function(){return"THREE.ParticleDOMMaterial ( domElement: "+this.domElement+" )"}};THREE.Texture=function(a,c){this.image=a;this.mapping=c!==undefined?c:THREE.UVMapping;this.toString=function(){return"THREE.Texture (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.UVMapping=0;THREE.ReflectionMap=1;THREE.RefractionMap=2;THREE.Multiply=0;THREE.Mix=1; THREE.TextureCube=function(a,c){this.image=a;this.mapping=c?c:THREE.ReflectionMap;this.toString=function(){return"THREE.TextureCube (
image: "+this.image+"
mapping: "+this.mapping+"
)"}}; THREE.Scene=function(){this.objects=[];this.lights=[];this.addObject=function(a){this.objects.push(a)};this.removeObject=function(a){a=this.objects.indexOf(a);a!==-1&&this.objects.splice(a,1)};this.addLight=function(a){this.lights.push(a)};this.removeLight=function(a){a=this.lights.indexOf(a);a!==-1&&this.lights.splice(a,1)};this.toString=function(){return"THREE.Scene ( "+this.objects+" )"}}; -THREE.Projector=function(){function a(p,t){var j=0,U=1,C=p.z+p.w,S=t.z+t.w,E=-p.z+p.w,B=-t.z+t.w;if(C>=0&&S>=0&&E>=0&&B>=0)return true;else if(C<0&&S<0||E<0&&B<0)return false;else{if(C<0)j=Math.max(j,C/(C-S));else if(S<0)U=Math.min(U,C/(C-S));if(E<0)j=Math.max(j,E/(E-B));else if(B<0)U=Math.min(U,E/(E-B));if(U0&&Q.z<1}fa=B.geometry.faces;C=0;for(S= -fa.length;C0&&o.z<1){h=q[l]=q[l]|| -new THREE.RenderableParticle;h.x=o.x/o.w;h.y=o.y/o.w;h.z=o.z;h.rotation=B.rotation.z;h.scale.x=B.scale.x*Math.abs(h.x-(o.x+t.projectionMatrix.n11)/(o.w+t.projectionMatrix.n14));h.scale.y=B.scale.y*Math.abs(h.y-(o.y+t.projectionMatrix.n22)/(o.w+t.projectionMatrix.n24));h.material=B.material;c.push(h);l++}}}c.sort(function(T,x){return x.z-T.z});return c};this.unprojectVector=function(p,t){var j=new THREE.Matrix4;j.multiply(THREE.Matrix4.makeInvert(t.matrix),THREE.Matrix4.makeInvert(t.projectionMatrix)); -j.transform(p);return p}}; -THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,c=new THREE.Projector,f,b,d,i;this.domElement=document.createElement("div");this.setSize=function(n,r){f=n;b=r;d=f/2;i=b/2};this.render=function(n,r){var e,g,m,h,l,q,o,s;a=c.projectScene(n,r);e=0;for(g=a.length;e0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}else if(k instanceof THREE.PointLight){Ja.sub(k.position,O.centroidWorld);Ja.normalize();k=O.normalWorld.dot(Ja)*k.intensity;if(k>0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}}}function c(v,O,H,I,k,G){if(k.opacity!=0){n(k.opacity);r(k.blending);M=v.positionScreen.x; -K=v.positionScreen.y;T=O.positionScreen.x;x=O.positionScreen.y;u=H.positionScreen.x;R=H.positionScreen.y;if(k.map){ea=k.map.image;na=ea.width-1;oa=ea.height-1;ca.u=I.uvs[0].u*na;ca.v=I.uvs[0].v*oa;Z.u=I.uvs[1].u*na;Z.v=I.uvs[1].v*oa;da.u=I.uvs[2].u*na;da.v=I.uvs[2].v*oa;i(ea,M,K,T,x,u,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(k instanceof THREE.MeshBasicMaterial)b(M,K,T,x,u,R,k.color,k.wireframe,k.wireframe_linewidth);else if(k instanceof THREE.MeshLambertMaterial){if(Fa){aa.r=ga.r;aa.g=ga.g;aa.b=ga.b; -a(G,I,aa);V.r=k.color.r*aa.r;V.g=k.color.g*aa.g;V.b=k.color.b*aa.b;V.updateStyleString()}else V.__styleString=k.color.__styleString;b(M,K,T,x,u,R,V,k.wireframe,k.wireframe_linewidth)}else if(k instanceof THREE.MeshDepthMaterial){pa=k.__2near;qa=k.__farPlusNear;ra=k.__farMinusNear;va=~~((1-pa/(qa-v.positionScreen.z*ra))*255);wa=~~((1-pa/(qa-O.positionScreen.z*ra))*255);ma=~~((1-pa/(qa-H.positionScreen.z*ra))*255);ea=h([va,va,va],[wa,wa,wa],[ma,ma,ma],[ma,ma,ma]);ca.u=0;ca.v=0;Z.u=ka;Z.v=0;da.u=0;da.v= -ka;i(ea,M,K,T,x,u,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(k instanceof THREE.MeshNormalMaterial){V.r=l(I.normalWorld.x);V.g=l(I.normalWorld.y);V.b=l(I.normalWorld.z);V.updateStyleString();b(M,K,T,x,u,R,V,k.wireframe,k.wireframe_linewidth)}}}function f(v,O,H,I,k,G,W,y,X){if(y.opacity!=0){n(y.opacity);r(y.blending);M=v.positionScreen.x;K=v.positionScreen.y;T=O.positionScreen.x;x=O.positionScreen.y;u=H.positionScreen.x;R=H.positionScreen.y;ha=I.positionScreen.x;P=I.positionScreen.y;Y=k.positionScreen.x; -xa=k.positionScreen.y;Ka=G.positionScreen.x;La=G.positionScreen.y;if(y.map){ea=y.map.image;na=ea.width-1;oa=ea.height-1;ca.copy(W.uvs[0]);Z.copy(W.uvs[1]);da.copy(W.uvs[2]);ia.copy(W.uvs[3]);ca.u*=na;ca.v*=oa;Z.u*=na;Z.v*=oa;da.u*=na;da.v*=oa;ia.u*=na;ia.v*=oa;i(ea,M,K,T,x,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);i(ea,Y,xa,u,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(y instanceof THREE.MeshBasicMaterial)d(M,K,T,x,u,R,ha,P,y.color,y.wireframe,y.wireframe_linewidth);else if(y instanceof THREE.MeshLambertMaterial){if(Fa){aa.r= -ga.r;aa.g=ga.g;aa.b=ga.b;a(X,W,aa);V.r=y.color.r*aa.r;V.g=y.color.g*aa.g;V.b=y.color.b*aa.b;V.updateStyleString()}else V.__styleString=y.color.__styleString;d(M,K,T,x,u,R,ha,P,V,y.wireframe,y.wireframe_linewidth)}else if(y instanceof THREE.MeshDepthMaterial){pa=y.__2near;qa=y.__farPlusNear;ra=y.__farMinusNear;va=~~((1-pa/(qa-v.positionScreen.z*ra))*255);wa=~~((1-pa/(qa-O.positionScreen.z*ra))*255);ma=~~((1-pa/(qa-H.positionScreen.z*ra))*255);Ga=~~((1-pa/(qa-I.positionScreen.z*ra))*255);ea=h([va,va, -va],[wa,wa,wa],[Ga,Ga,Ga],[ma,ma,ma]);ca.u=0;ca.v=0;Z.u=ka;Z.v=0;da.u=ka;da.v=ka;ia.u=0;ia.v=ka;i(ea,M,K,T,x,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);i(ea,Y,xa,u,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(y instanceof THREE.MeshNormalMaterial){V.r=l(W.normalWorld.x);V.g=l(W.normalWorld.y);V.b=l(W.normalWorld.z);V.updateStyleString();d(M,K,T,x,u,R,ha,P,V,y.wireframe,y.wireframe_linewidth)}}}function b(v,O,H,I,k,G,W,y,X){j.beginPath();j.moveTo(v,O);j.lineTo(H,I);j.lineTo(k,G);j.lineTo(v,O);j.closePath(); -if(y){e(X);g(W.__styleString);j.stroke();$.inflate(X*2)}else{m(W.__styleString);j.fill()}}function d(v,O,H,I,k,G,W,y,X,F,ba){j.beginPath();j.moveTo(v,O);j.lineTo(H,I);j.lineTo(k,G);j.lineTo(W,y);j.lineTo(v,O);j.closePath();if(F){e(ba);g(X.__styleString);j.stroke();$.inflate(ba*2)}else{m(X.__styleString);j.fill()}}function i(v,O,H,I,k,G,W,y,X,F,ba,la,sa){j.beginPath();j.moveTo(O,H);j.lineTo(I,k);j.lineTo(G,W);j.closePath();I-=O;k-=H;G-=O;W-=H;F-=y;ba-=X;la-=y;sa-=X;var ta=1/(F*sa-la*ba),Ba=(sa*I-ba* -G)*ta;ba=(sa*k-ba*W)*ta;I=(F*G-la*I)*ta;k=(F*W-la*k)*ta;O=O-Ba*y-I*X;H=H-ba*y-k*X;j.save();j.transform(Ba,ba,I,k,O,H);j.clip();j.drawImage(v,0,0);j.restore()}function n(v){if(U!=v)j.globalAlpha=U=v}function r(v){if(C!=v){switch(v){case THREE.NormalBlending:j.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:j.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:j.globalCompositeOperation="darker"}C=v}}function e(v){if(B!=v)j.lineWidth=B=v}function g(v){if(S!= -v)j.strokeStyle=S=v}function m(v){if(E!=v)j.fillStyle=E=v}function h(v,O,H,I){ja[0]=v[0];ja[1]=v[1];ja[2]=v[2];ja[4]=O[0];ja[5]=O[1];ja[6]=O[2];ja[8]=H[0];ja[9]=H[1];ja[10]=H[2];ja[12]=I[0];ja[13]=I[1];ja[14]=I[2];Ca.putImageData(Ma,0,0);Ha.drawImage(Da,0,0);return Ea}function l(v){return v<0?Math.min((1+v)*0.5,0.5):0.5+Math.min(v*0.5,0.5)}function q(v,O){var H=O.x-v.x,I=O.y-v.y,k=1/Math.sqrt(H*H+I*I);H*=k;I*=k;O.x+=H;O.y+=I;v.x-=H;v.y-=I}var o=null,s=new THREE.Projector,A=document.createElement("canvas"), -J,N,p,t,j=A.getContext("2d"),U=1,C=0,S=null,E=null,B=1,L,w,D,Q,fa=new THREE.Vertex,z=new THREE.Vertex,M,K,T,x,u,R,ha,P,Y,xa,Ka,La,va,wa,ma,Ga,pa,qa,ra,ea,na,oa,ya=new THREE.Rectangle,ua=new THREE.Rectangle,$=new THREE.Rectangle,Fa=false,V=new THREE.Color(16777215),aa=new THREE.Color(16777215),ga=new THREE.Color(0),za=new THREE.Color(0),Aa=new THREE.Color(0),Qa=Math.PI*2,Ja=new THREE.Vector3,ca=new THREE.UV,Z=new THREE.UV,da=new THREE.UV,ia=new THREE.UV,Da,Ca,Ma,ja,Ea,Ha,ka=16;Da=document.createElement("canvas"); -Da.width=Da.height=2;Ca=Da.getContext("2d");Ca.fillStyle="rgba(0,0,0,1)";Ca.fillRect(0,0,2,2);Ma=Ca.getImageData(0,0,2,2);ja=Ma.data;Ea=document.createElement("canvas");Ea.width=Ea.height=ka;Ha=Ea.getContext("2d");Ha.translate(-ka/2,-ka/2);Ha.scale(ka,ka);ka--;this.domElement=A;this.autoClear=true;this.setSize=function(v,O){J=v;N=O;p=J/2;t=N/2;A.width=J;A.height=N;j.lineJoin="round";j.lineCap="round";ya.set(-p,-t,p,t)};this.clear=function(){if(!ua.isEmpty()){ua.inflate(1);ua.minSelf(ya);j.setTransform(1, -0,0,-1,p,t);j.clearRect(ua.getX(),ua.getY(),ua.getWidth(),ua.getHeight());ua.empty()}};this.render=function(v,O){var H,I,k,G,W,y,X,F;this.autoClear&&this.clear();o=s.projectScene(v,O);j.setTransform(1,0,0,-1,p,t);if(Fa=v.lights.length>0){W=v.lights;ga.setRGB(0,0,0);za.setRGB(0,0,0);Aa.setRGB(0,0,0);H=0;for(I=W.length;H0){K.r+=u.color.r*R;K.g+=u.color.g*R;K.b+=u.color.b*R}}else if(u instanceof THREE.PointLight){E.sub(u.position,M.centroidWorld);E.normalize();R=M.normalWorld.dot(E)*u.intensity;if(R>0){K.r+=u.color.r*R;K.g+=u.color.g*R;K.b+=u.color.b*R}}}}function c(z,M,K,T,x,u){w=b(D++);w.setAttribute("d","M "+z.positionScreen.x+ -" "+z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+"z");if(x instanceof THREE.MeshBasicMaterial)p.__styleString=x.color.__styleString;else if(x instanceof THREE.MeshLambertMaterial)if(N){t.r=j.r;t.g=j.g;t.b=j.b;a(u,T,t);p.r=x.color.r*t.r;p.g=x.color.g*t.g;p.b=x.color.b*t.b;p.updateStyleString()}else p.__styleString=x.color.__styleString;else if(x instanceof THREE.MeshDepthMaterial){S=1-x.__2near/(x.__farPlusNear-T.z*x.__farMinusNear); -p.setRGB(S,S,S)}else x instanceof THREE.MeshNormalMaterial&&p.setRGB(d(T.normalWorld.x),d(T.normalWorld.y),d(T.normalWorld.z));x.wireframe?w.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+x.wireframe_linewidth+"; stroke-opacity: "+x.opacity+"; stroke-linecap: round; stroke-linejoin: round"):w.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+x.opacity);r.appendChild(w)}function f(z,M,K,T,x,u,R){w=b(D++);w.setAttribute("d","M "+z.positionScreen.x+" "+ -z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+" L "+T.positionScreen.x+","+T.positionScreen.y+"z");if(u instanceof THREE.MeshBasicMaterial)p.__styleString=u.color.__styleString;else if(u instanceof THREE.MeshLambertMaterial)if(N){t.r=j.r;t.g=j.g;t.b=j.b;a(R,x,t);p.r=u.color.r*t.r;p.g=u.color.g*t.g;p.b=u.color.b*t.b;p.updateStyleString()}else p.__styleString=u.color.__styleString;else if(u instanceof THREE.MeshDepthMaterial){S=1- -u.__2near/(u.__farPlusNear-x.z*u.__farMinusNear);p.setRGB(S,S,S)}else u instanceof THREE.MeshNormalMaterial&&p.setRGB(d(x.normalWorld.x),d(x.normalWorld.y),d(x.normalWorld.z));u.wireframe?w.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+u.wireframe_linewidth+"; stroke-opacity: "+u.opacity+"; stroke-linecap: round; stroke-linejoin: round"):w.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+u.opacity);r.appendChild(w)}function b(z){if(B[z]==null){B[z]= -document.createElementNS("http://www.w3.org/2000/svg","path");fa==0&&B[z].setAttribute("shape-rendering","crispEdges");return B[z]}return B[z]}function d(z){return z<0?Math.min((1+z)*0.5,0.5):0.5+Math.min(z*0.5,0.5)}var i=null,n=new THREE.Projector,r=document.createElementNS("http://www.w3.org/2000/svg","svg"),e,g,m,h,l,q,o,s,A=new THREE.Rectangle,J=new THREE.Rectangle,N=false,p=new THREE.Color(16777215),t=new THREE.Color(16777215),j=new THREE.Color(0),U=new THREE.Color(0),C=new THREE.Color(0),S, -E=new THREE.Vector3,B=[],L=[],w,D,Q,fa=1;this.domElement=r;this.autoClear=true;this.setQuality=function(z){switch(z){case "high":fa=1;break;case "low":fa=0}};this.setSize=function(z,M){e=z;g=M;m=e/2;h=g/2;r.setAttribute("viewBox",-m+" "+-h+" "+e+" "+g);r.setAttribute("width",e);r.setAttribute("height",g);A.set(-m,-h,m,h)};this.clear=function(){for(;r.childNodes.length>0;)r.removeChild(r.childNodes[0])};this.render=function(z,M){var K,T,x,u,R,ha,P,Y;this.autoClear&&this.clear();i=n.projectScene(z, -M);Q=D=0;if(N=z.lights.length>0){P=z.lights;j.setRGB(0,0,0);U.setRGB(0,0,0);C.setRGB(0,0,0);K=0;for(T=P.length;K=0&&W>=0&&D>=0&&B>=0)return true;else if(K<0&&W<0||D<0&&B<0)return false;else{if(K<0)k=Math.max(k,K/(K-W));else if(W<0)T=Math.min(T,K/(K-W));if(D<0)k=Math.max(k,D/(D-B));else if(B<0)T=Math.min(T,D/(D-B));if(T0&&Q.z<1}fa=B.geometry.faces;K=0;for(W= +fa.length;K0&&r.z<1){h=i[o]=i[o]|| +new THREE.RenderableParticle;h.x=r.x/r.w;h.y=r.y/r.w;h.z=r.z;h.rotation=B.rotation.z;h.scale.x=B.scale.x*Math.abs(h.x-(r.x+s.projectionMatrix.n11)/(r.w+s.projectionMatrix.n14));h.scale.y=B.scale.y*Math.abs(h.y-(r.y+s.projectionMatrix.n22)/(r.w+s.projectionMatrix.n24));h.material=B.material;c.push(h);o++}}}c.sort(function(S,x){return x.z-S.z});return c};this.unprojectVector=function(p,s){var k=new THREE.Matrix4;k.multiply(THREE.Matrix4.makeInvert(s.matrix),THREE.Matrix4.makeInvert(s.projectionMatrix)); +k.transform(p);return p}}; +THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,c=new THREE.Projector,f,b,d,j;this.domElement=document.createElement("div");this.setSize=function(n,q){f=n;b=q;d=f/2;j=b/2};this.render=function(n,q){var e,g,m,h,o,i,r,w;a=c.projectScene(n,q);e=0;for(g=a.length;e0){G.r+=F.r*l;G.g+=F.g*l;G.b+=F.b*l}}else if(l instanceof THREE.PointLight){Ja.sub(l.position,O.centroidWorld);Ja.normalize();l=O.normalWorld.dot(Ja)*l.intensity;if(l>0){G.r+=F.r*l;G.g+=F.g*l;G.b+=F.b*l}}}}function c(u,O,G,H,l,F){if(l.opacity!=0){n(l.opacity);q(l.blending);M=u.positionScreen.x; +J=u.positionScreen.y;S=O.positionScreen.x;x=O.positionScreen.y;t=G.positionScreen.x;R=G.positionScreen.y;if(l.map){ea=l.map.image;na=ea.width-1;oa=ea.height-1;ca.u=H.uvs[0].u*na;ca.v=H.uvs[0].v*oa;Z.u=H.uvs[1].u*na;Z.v=H.uvs[1].v*oa;da.u=H.uvs[2].u*na;da.v=H.uvs[2].v*oa;j(ea,M,J,S,x,t,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(l instanceof THREE.MeshBasicMaterial)b(M,J,S,x,t,R,l.color,l.wireframe,l.wireframe_linewidth);else if(l instanceof THREE.MeshLambertMaterial){if(Fa){aa.r=ga.r;aa.g=ga.g;aa.b=ga.b; +a(F,H,aa);U.r=l.color.r*aa.r;U.g=l.color.g*aa.g;U.b=l.color.b*aa.b;U.updateStyleString()}else U.__styleString=l.color.__styleString;b(M,J,S,x,t,R,U,l.wireframe,l.wireframe_linewidth)}else if(l instanceof THREE.MeshDepthMaterial){pa=l.__2near;qa=l.__farPlusNear;ra=l.__farMinusNear;va=~~((1-pa/(qa-u.positionScreen.z*ra))*255);wa=~~((1-pa/(qa-O.positionScreen.z*ra))*255);ma=~~((1-pa/(qa-G.positionScreen.z*ra))*255);ea=h([va,va,va],[wa,wa,wa],[ma,ma,ma],[ma,ma,ma]);ca.u=0;ca.v=0;Z.u=ka;Z.v=0;da.u=0;da.v= +ka;j(ea,M,J,S,x,t,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(l instanceof THREE.MeshNormalMaterial){U.r=o(H.normalWorld.x);U.g=o(H.normalWorld.y);U.b=o(H.normalWorld.z);U.updateStyleString();b(M,J,S,x,t,R,U,l.wireframe,l.wireframe_linewidth)}}}function f(u,O,G,H,l,F,V,y,X){if(y.opacity!=0){n(y.opacity);q(y.blending);M=u.positionScreen.x;J=u.positionScreen.y;S=O.positionScreen.x;x=O.positionScreen.y;t=G.positionScreen.x;R=G.positionScreen.y;ha=H.positionScreen.x;P=H.positionScreen.y;Y=l.positionScreen.x; +xa=l.positionScreen.y;Ka=F.positionScreen.x;La=F.positionScreen.y;if(y.map){ea=y.map.image;na=ea.width-1;oa=ea.height-1;ca.copy(V.uvs[0]);Z.copy(V.uvs[1]);da.copy(V.uvs[2]);ia.copy(V.uvs[3]);ca.u*=na;ca.v*=oa;Z.u*=na;Z.v*=oa;da.u*=na;da.v*=oa;ia.u*=na;ia.v*=oa;j(ea,M,J,S,x,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);j(ea,Y,xa,t,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(y instanceof THREE.MeshBasicMaterial)d(M,J,S,x,t,R,ha,P,y.color,y.wireframe,y.wireframe_linewidth);else if(y instanceof THREE.MeshLambertMaterial){if(Fa){aa.r= +ga.r;aa.g=ga.g;aa.b=ga.b;a(X,V,aa);U.r=y.color.r*aa.r;U.g=y.color.g*aa.g;U.b=y.color.b*aa.b;U.updateStyleString()}else U.__styleString=y.color.__styleString;d(M,J,S,x,t,R,ha,P,U,y.wireframe,y.wireframe_linewidth)}else if(y instanceof THREE.MeshDepthMaterial){pa=y.__2near;qa=y.__farPlusNear;ra=y.__farMinusNear;va=~~((1-pa/(qa-u.positionScreen.z*ra))*255);wa=~~((1-pa/(qa-O.positionScreen.z*ra))*255);ma=~~((1-pa/(qa-G.positionScreen.z*ra))*255);Ga=~~((1-pa/(qa-H.positionScreen.z*ra))*255);ea=h([va,va, +va],[wa,wa,wa],[Ga,Ga,Ga],[ma,ma,ma]);ca.u=0;ca.v=0;Z.u=ka;Z.v=0;da.u=ka;da.v=ka;ia.u=0;ia.v=ka;j(ea,M,J,S,x,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);j(ea,Y,xa,t,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(y instanceof THREE.MeshNormalMaterial){U.r=o(V.normalWorld.x);U.g=o(V.normalWorld.y);U.b=o(V.normalWorld.z);U.updateStyleString();d(M,J,S,x,t,R,ha,P,U,y.wireframe,y.wireframe_linewidth)}}}function b(u,O,G,H,l,F,V,y,X){k.beginPath();k.moveTo(u,O);k.lineTo(G,H);k.lineTo(l,F);k.lineTo(u,O);k.closePath(); +if(y){e(X);g(V.__styleString);k.stroke();$.inflate(X*2)}else{m(V.__styleString);k.fill()}}function d(u,O,G,H,l,F,V,y,X,E,ba){k.beginPath();k.moveTo(u,O);k.lineTo(G,H);k.lineTo(l,F);k.lineTo(V,y);k.lineTo(u,O);k.closePath();if(E){e(ba);g(X.__styleString);k.stroke();$.inflate(ba*2)}else{m(X.__styleString);k.fill()}}function j(u,O,G,H,l,F,V,y,X,E,ba,la,sa){k.beginPath();k.moveTo(O,G);k.lineTo(H,l);k.lineTo(F,V);k.closePath();H-=O;l-=G;F-=O;V-=G;E-=y;ba-=X;la-=y;sa-=X;var ta=1/(E*sa-la*ba),Ba=(sa*H-ba* +F)*ta;ba=(sa*l-ba*V)*ta;H=(E*F-la*H)*ta;l=(E*V-la*l)*ta;O=O-Ba*y-H*X;G=G-ba*y-l*X;k.save();k.transform(Ba,ba,H,l,O,G);k.clip();k.drawImage(u,0,0);k.restore()}function n(u){if(T!=u)k.globalAlpha=T=u}function q(u){if(K!=u){switch(u){case THREE.NormalBlending:k.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:k.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:k.globalCompositeOperation="darker"}K=u}}function e(u){if(B!=u)k.lineWidth=B=u}function g(u){if(W!= +u)k.strokeStyle=W=u}function m(u){if(D!=u)k.fillStyle=D=u}function h(u,O,G,H){ja[0]=u[0];ja[1]=u[1];ja[2]=u[2];ja[4]=O[0];ja[5]=O[1];ja[6]=O[2];ja[8]=G[0];ja[9]=G[1];ja[10]=G[2];ja[12]=H[0];ja[13]=H[1];ja[14]=H[2];Ca.putImageData(Ma,0,0);Ha.drawImage(Da,0,0);return Ea}function o(u){return u<0?Math.min((1+u)*0.5,0.5):0.5+Math.min(u*0.5,0.5)}function i(u,O){var G=O.x-u.x,H=O.y-u.y,l=1/Math.sqrt(G*G+H*H);G*=l;H*=l;O.x+=G;O.y+=H;u.x-=G;u.y-=H}var r=null,w=new THREE.Projector,A=document.createElement("canvas"), +I,N,p,s,k=A.getContext("2d"),T=1,K=0,W=null,D=null,B=1,L,v,C,Q,fa=new THREE.Vertex,z=new THREE.Vertex,M,J,S,x,t,R,ha,P,Y,xa,Ka,La,va,wa,ma,Ga,pa,qa,ra,ea,na,oa,ya=new THREE.Rectangle,ua=new THREE.Rectangle,$=new THREE.Rectangle,Fa=false,U=new THREE.Color(16777215),aa=new THREE.Color(16777215),ga=new THREE.Color(0),za=new THREE.Color(0),Aa=new THREE.Color(0),Qa=Math.PI*2,Ja=new THREE.Vector3,ca=new THREE.UV,Z=new THREE.UV,da=new THREE.UV,ia=new THREE.UV,Da,Ca,Ma,ja,Ea,Ha,ka=16;Da=document.createElement("canvas"); +Da.width=Da.height=2;Ca=Da.getContext("2d");Ca.fillStyle="rgba(0,0,0,1)";Ca.fillRect(0,0,2,2);Ma=Ca.getImageData(0,0,2,2);ja=Ma.data;Ea=document.createElement("canvas");Ea.width=Ea.height=ka;Ha=Ea.getContext("2d");Ha.translate(-ka/2,-ka/2);Ha.scale(ka,ka);ka--;this.domElement=A;this.autoClear=true;this.setSize=function(u,O){I=u;N=O;p=I/2;s=N/2;A.width=I;A.height=N;k.lineJoin="round";k.lineCap="round";ya.set(-p,-s,p,s)};this.clear=function(){if(!ua.isEmpty()){ua.inflate(1);ua.minSelf(ya);k.setTransform(1, +0,0,-1,p,s);k.clearRect(ua.getX(),ua.getY(),ua.getWidth(),ua.getHeight());ua.empty()}};this.render=function(u,O){var G,H,l,F,V,y,X,E;this.autoClear&&this.clear();r=w.projectScene(u,O);k.setTransform(1,0,0,-1,p,s);if(Fa=u.lights.length>0){V=u.lights;ga.setRGB(0,0,0);za.setRGB(0,0,0);Aa.setRGB(0,0,0);G=0;for(H=V.length;G0){J.r+=t.color.r*R;J.g+=t.color.g*R;J.b+=t.color.b*R}}else if(t instanceof THREE.PointLight){D.sub(t.position,M.centroidWorld);D.normalize();R=M.normalWorld.dot(D)*t.intensity;if(R>0){J.r+=t.color.r*R;J.g+=t.color.g*R;J.b+=t.color.b*R}}}}function c(z,M,J,S,x,t){v=b(C++);v.setAttribute("d","M "+z.positionScreen.x+ +" "+z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+J.positionScreen.x+","+J.positionScreen.y+"z");if(x instanceof THREE.MeshBasicMaterial)p.__styleString=x.color.__styleString;else if(x instanceof THREE.MeshLambertMaterial)if(N){s.r=k.r;s.g=k.g;s.b=k.b;a(t,S,s);p.r=x.color.r*s.r;p.g=x.color.g*s.g;p.b=x.color.b*s.b;p.updateStyleString()}else p.__styleString=x.color.__styleString;else if(x instanceof THREE.MeshDepthMaterial){W=1-x.__2near/(x.__farPlusNear-S.z*x.__farMinusNear); +p.setRGB(W,W,W)}else x instanceof THREE.MeshNormalMaterial&&p.setRGB(d(S.normalWorld.x),d(S.normalWorld.y),d(S.normalWorld.z));x.wireframe?v.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+x.wireframe_linewidth+"; stroke-opacity: "+x.opacity+"; stroke-linecap: round; stroke-linejoin: round"):v.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+x.opacity);q.appendChild(v)}function f(z,M,J,S,x,t,R){v=b(C++);v.setAttribute("d","M "+z.positionScreen.x+" "+ +z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+J.positionScreen.x+","+J.positionScreen.y+" L "+S.positionScreen.x+","+S.positionScreen.y+"z");if(t instanceof THREE.MeshBasicMaterial)p.__styleString=t.color.__styleString;else if(t instanceof THREE.MeshLambertMaterial)if(N){s.r=k.r;s.g=k.g;s.b=k.b;a(R,x,s);p.r=t.color.r*s.r;p.g=t.color.g*s.g;p.b=t.color.b*s.b;p.updateStyleString()}else p.__styleString=t.color.__styleString;else if(t instanceof THREE.MeshDepthMaterial){W=1- +t.__2near/(t.__farPlusNear-x.z*t.__farMinusNear);p.setRGB(W,W,W)}else t instanceof THREE.MeshNormalMaterial&&p.setRGB(d(x.normalWorld.x),d(x.normalWorld.y),d(x.normalWorld.z));t.wireframe?v.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+t.wireframe_linewidth+"; stroke-opacity: "+t.opacity+"; stroke-linecap: round; stroke-linejoin: round"):v.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+t.opacity);q.appendChild(v)}function b(z){if(B[z]==null){B[z]= +document.createElementNS("http://www.w3.org/2000/svg","path");fa==0&&B[z].setAttribute("shape-rendering","crispEdges");return B[z]}return B[z]}function d(z){return z<0?Math.min((1+z)*0.5,0.5):0.5+Math.min(z*0.5,0.5)}var j=null,n=new THREE.Projector,q=document.createElementNS("http://www.w3.org/2000/svg","svg"),e,g,m,h,o,i,r,w,A=new THREE.Rectangle,I=new THREE.Rectangle,N=false,p=new THREE.Color(16777215),s=new THREE.Color(16777215),k=new THREE.Color(0),T=new THREE.Color(0),K=new THREE.Color(0),W, +D=new THREE.Vector3,B=[],L=[],v,C,Q,fa=1;this.domElement=q;this.autoClear=true;this.setQuality=function(z){switch(z){case "high":fa=1;break;case "low":fa=0}};this.setSize=function(z,M){e=z;g=M;m=e/2;h=g/2;q.setAttribute("viewBox",-m+" "+-h+" "+e+" "+g);q.setAttribute("width",e);q.setAttribute("height",g);A.set(-m,-h,m,h)};this.clear=function(){for(;q.childNodes.length>0;)q.removeChild(q.childNodes[0])};this.render=function(z,M){var J,S,x,t,R,ha,P,Y;this.autoClear&&this.clear();j=n.projectScene(z, +M);Q=C=0;if(N=z.lights.length>0){P=z.lights;k.setRGB(0,0,0);T.setRGB(0,0,0);K.setRGB(0,0,0);J=0;for(S=P.length;J= 0.0 )": @@ -138,26 +138,25 @@ b.linkProgram(d);if(!b.getProgramParameter(d,b.LINK_STATUS)){alert("Could not in b.getUniformLocation(d,"pointLightPosition")}d.material=b.getUniformLocation(d,"material");d.mColor=b.getUniformLocation(d,"mColor");d.mOpacity=b.getUniformLocation(d,"mOpacity");d.mReflectivity=b.getUniformLocation(d,"mReflectivity");d.mAmbient=b.getUniformLocation(d,"mAmbient");d.mSpecular=b.getUniformLocation(d,"mSpecular");d.mShininess=b.getUniformLocation(d,"mShininess");d.enableMap=b.getUniformLocation(d,"enableMap");b.uniform1i(d.enableMap,0);d.tMap=b.getUniformLocation(d,"tMap");b.uniform1i(d.tMap, 0);d.enableCubeMap=b.getUniformLocation(d,"enableCubeMap");b.uniform1i(d.enableCubeMap,0);d.tCube=b.getUniformLocation(d,"tCube");b.uniform1i(d.tCube,1);d.mixEnvMap=b.getUniformLocation(d,"mixEnvMap");b.uniform1i(d.mixEnvMap,0);d.mRefractionRatio=b.getUniformLocation(d,"mRefractionRatio");d.useRefract=b.getUniformLocation(d,"useRefract");b.uniform1i(d.useRefract,0);d.m2Near=b.getUniformLocation(d,"m2Near");d.mFarPlusNear=b.getUniformLocation(d,"mFarPlusNear");d.mFarMinusNear=b.getUniformLocation(d, "mFarMinusNear");d.position=b.getAttribLocation(d,"position");b.enableVertexAttribArray(d.position);d.normal=b.getAttribLocation(d,"normal");b.enableVertexAttribArray(d.normal);d.uv=b.getAttribLocation(d,"uv");b.enableVertexAttribArray(d.uv);d.viewMatrixArray=new Float32Array(16);d.modelViewMatrixArray=new Float32Array(16);d.projectionMatrixArray=new Float32Array(16)})(a.directional,a.point);this.setSize=function(e,g){f.width=e;f.height=g;b.viewport(0,0,f.width,f.height)};this.clear=function(){b.clear(b.COLOR_BUFFER_BIT| -b.DEPTH_BUFFER_BIT)};this.setupLights=function(e){var g,m,h,l,q=[],o=[],s=[];l=[];var A=[];b.uniform1i(d.enableLighting,e.lights.length);g=0;for(m=e.lights.length;g0&&A>0&&i+A<1}var f,b,d,j,n,r,e,g,m,h, -l,q=a.geometry,o=q.vertices,s=[];f=0;for(b=q.faces.length;f= -0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){r=true;d=b=f=c=0;a()};this.isEmpty=function(){return r};this.toString=function(){return"THREE.Rectangle ( left: "+c+", right: "+b+", top: "+f+", bottom: "+d+", width: "+j+", height: "+n+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; +THREE.Ray.prototype={intersectScene:function(a){var c,f,b=a.objects,d=[];a=0;for(c=b.length;a0&&A>0&&i+A<1}var f,b,d,k,n,q,e,g,m,h, +o,j=a.geometry,r=j.vertices,x=[];f=0;for(b=j.faces.length;f= +0&&Math.min(d,e.getBottom())-Math.max(f,e.getTop())>=0};this.empty=function(){q=true;d=b=f=c=0;a()};this.isEmpty=function(){return q};this.toString=function(){return"THREE.Rectangle ( left: "+c+", right: "+b+", top: "+f+", bottom: "+d+", width: "+k+", height: "+n+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a;a=this.m[1];this.m[1]=this.m[3];this.m[3]=a;a=this.m[2];this.m[2]=this.m[6];this.m[6]=a;a=this.m[5];this.m[5]=this.m[7];this.m[7]=a;return this}}; THREE.Matrix4=function(){this._x=new THREE.Vector3;this._y=new THREE.Vector3;this._z=new THREE.Vector3}; THREE.Matrix4.prototype={n11:1,n12:0,n13:0,n14:0,n21:0,n22:1,n23:0,n24:0,n31:0,n32:0,n33:1,n34:0,n41:0,n42:0,n43:0,n44:1,identity:function(){this.n11=1;this.n21=this.n14=this.n13=this.n12=0;this.n22=1;this.n32=this.n31=this.n24=this.n23=0;this.n33=1;this.n43=this.n42=this.n41=this.n34=0;this.n44=1},copy:function(a){this.n11=a.n11;this.n12=a.n12;this.n13=a.n13;this.n14=a.n14;this.n21=a.n21;this.n22=a.n22;this.n23=a.n23;this.n24=a.n24;this.n31=a.n31;this.n32=a.n32;this.n33=a.n33;this.n34=a.n34;this.n41= -a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,c,f){var b=this._x,d=this._y,j=this._z;j.sub(a,c);j.normalize();b.cross(f,j);b.normalize();d.cross(j,b);d.normalize();this.n11=b.x;this.n12=b.y;this.n13=b.z;this.n14=-b.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=j.x;this.n32=j.y;this.n33=j.z;this.n34=-j.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var c=a.x,f=a.y,b=a.z,d=a.w?a.w:1;a.x=this.n11*c+this.n12*f+this.n13*b+this.n14* +a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44},lookAt:function(a,c,f){var b=this._x,d=this._y,k=this._z;k.sub(a,c);k.normalize();b.cross(f,k);b.normalize();d.cross(k,b);d.normalize();this.n11=b.x;this.n12=b.y;this.n13=b.z;this.n14=-b.dot(a);this.n21=d.x;this.n22=d.y;this.n23=d.z;this.n24=-d.dot(a);this.n31=k.x;this.n32=k.y;this.n33=k.z;this.n34=-k.dot(a);this.n43=this.n42=this.n41=0;this.n44=1},transform:function(a){var c=a.x,f=a.y,b=a.z,d=a.w?a.w:1;a.x=this.n11*c+this.n12*f+this.n13*b+this.n14* d;a.y=this.n21*c+this.n22*f+this.n23*b+this.n24*d;a.z=this.n31*c+this.n32*f+this.n33*b+this.n34*d;d=this.n41*c+this.n42*f+this.n43*b+this.n44*d;if(a.w)a.w=d;else{a.x/=d;a.y/=d;a.z/=d}return a},crossVector:function(a){var c=new THREE.Vector4;c.x=this.n11*a.x+this.n12*a.y+this.n13*a.z+this.n14*a.w;c.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;c.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+this.n34*a.w;c.w=a.w?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return c},multiply:function(a, c){this.n11=a.n11*c.n11+a.n12*c.n21+a.n13*c.n31+a.n14*c.n41;this.n12=a.n11*c.n12+a.n12*c.n22+a.n13*c.n32+a.n14*c.n42;this.n13=a.n11*c.n13+a.n12*c.n23+a.n13*c.n33+a.n14*c.n43;this.n14=a.n11*c.n14+a.n12*c.n24+a.n13*c.n34+a.n14*c.n44;this.n21=a.n21*c.n11+a.n22*c.n21+a.n23*c.n31+a.n24*c.n41;this.n22=a.n21*c.n12+a.n22*c.n22+a.n23*c.n32+a.n24*c.n42;this.n23=a.n21*c.n13+a.n22*c.n23+a.n23*c.n33+a.n24*c.n43;this.n24=a.n21*c.n14+a.n22*c.n24+a.n23*c.n34+a.n24*c.n44;this.n31=a.n31*c.n11+a.n32*c.n21+a.n33*c.n31+ -a.n34*c.n41;this.n32=a.n31*c.n12+a.n32*c.n22+a.n33*c.n32+a.n34*c.n42;this.n33=a.n31*c.n13+a.n32*c.n23+a.n33*c.n33+a.n34*c.n43;this.n34=a.n31*c.n14+a.n32*c.n24+a.n33*c.n34+a.n34*c.n44;this.n41=a.n41*c.n11+a.n42*c.n21+a.n43*c.n31+a.n44*c.n41;this.n42=a.n41*c.n12+a.n42*c.n22+a.n43*c.n32+a.n44*c.n42;this.n43=a.n41*c.n13+a.n42*c.n23+a.n43*c.n33+a.n44*c.n43;this.n44=a.n41*c.n14+a.n42*c.n24+a.n43*c.n34+a.n44*c.n44},multiplySelf:function(a){var c=this.n11,f=this.n12,b=this.n13,d=this.n14,j=this.n21,n=this.n22, -r=this.n23,e=this.n24,g=this.n31,m=this.n32,h=this.n33,l=this.n34,q=this.n41,o=this.n42,s=this.n43,A=this.n44;this.n11=c*a.n11+f*a.n21+b*a.n31+d*a.n41;this.n12=c*a.n12+f*a.n22+b*a.n32+d*a.n42;this.n13=c*a.n13+f*a.n23+b*a.n33+d*a.n43;this.n14=c*a.n14+f*a.n24+b*a.n34+d*a.n44;this.n21=j*a.n11+n*a.n21+r*a.n31+e*a.n41;this.n22=j*a.n12+n*a.n22+r*a.n32+e*a.n42;this.n23=j*a.n13+n*a.n23+r*a.n33+e*a.n43;this.n24=j*a.n14+n*a.n24+r*a.n34+e*a.n44;this.n31=g*a.n11+m*a.n21+h*a.n31+l*a.n41;this.n32=g*a.n12+m*a.n22+ -h*a.n32+l*a.n42;this.n33=g*a.n13+m*a.n23+h*a.n33+l*a.n43;this.n34=g*a.n14+m*a.n24+h*a.n34+l*a.n44;this.n41=q*a.n11+o*a.n21+s*a.n31+A*a.n41;this.n42=q*a.n12+o*a.n22+s*a.n32+A*a.n42;this.n43=q*a.n13+o*a.n23+s*a.n33+A*a.n43;this.n44=q*a.n14+o*a.n24+s*a.n34+A*a.n44},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a},determinant:function(){return this.n14* +a.n34*c.n41;this.n32=a.n31*c.n12+a.n32*c.n22+a.n33*c.n32+a.n34*c.n42;this.n33=a.n31*c.n13+a.n32*c.n23+a.n33*c.n33+a.n34*c.n43;this.n34=a.n31*c.n14+a.n32*c.n24+a.n33*c.n34+a.n34*c.n44;this.n41=a.n41*c.n11+a.n42*c.n21+a.n43*c.n31+a.n44*c.n41;this.n42=a.n41*c.n12+a.n42*c.n22+a.n43*c.n32+a.n44*c.n42;this.n43=a.n41*c.n13+a.n42*c.n23+a.n43*c.n33+a.n44*c.n43;this.n44=a.n41*c.n14+a.n42*c.n24+a.n43*c.n34+a.n44*c.n44},multiplySelf:function(a){var c=this.n11,f=this.n12,b=this.n13,d=this.n14,k=this.n21,n=this.n22, +q=this.n23,e=this.n24,g=this.n31,m=this.n32,h=this.n33,o=this.n34,j=this.n41,r=this.n42,x=this.n43,A=this.n44;this.n11=c*a.n11+f*a.n21+b*a.n31+d*a.n41;this.n12=c*a.n12+f*a.n22+b*a.n32+d*a.n42;this.n13=c*a.n13+f*a.n23+b*a.n33+d*a.n43;this.n14=c*a.n14+f*a.n24+b*a.n34+d*a.n44;this.n21=k*a.n11+n*a.n21+q*a.n31+e*a.n41;this.n22=k*a.n12+n*a.n22+q*a.n32+e*a.n42;this.n23=k*a.n13+n*a.n23+q*a.n33+e*a.n43;this.n24=k*a.n14+n*a.n24+q*a.n34+e*a.n44;this.n31=g*a.n11+m*a.n21+h*a.n31+o*a.n41;this.n32=g*a.n12+m*a.n22+ +h*a.n32+o*a.n42;this.n33=g*a.n13+m*a.n23+h*a.n33+o*a.n43;this.n34=g*a.n14+m*a.n24+h*a.n34+o*a.n44;this.n41=j*a.n11+r*a.n21+x*a.n31+A*a.n41;this.n42=j*a.n12+r*a.n22+x*a.n32+A*a.n42;this.n43=j*a.n13+r*a.n23+x*a.n33+A*a.n43;this.n44=j*a.n14+r*a.n24+x*a.n34+A*a.n44},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a},determinant:function(){return this.n14* this.n23*this.n32*this.n41-this.n13*this.n24*this.n32*this.n41-this.n14*this.n22*this.n33*this.n41+this.n12*this.n24*this.n33*this.n41+this.n13*this.n22*this.n34*this.n41-this.n12*this.n23*this.n34*this.n41-this.n14*this.n23*this.n31*this.n42+this.n13*this.n24*this.n31*this.n42+this.n14*this.n21*this.n33*this.n42-this.n11*this.n24*this.n33*this.n42-this.n13*this.n21*this.n34*this.n42+this.n11*this.n23*this.n34*this.n42+this.n14*this.n22*this.n31*this.n43-this.n12*this.n24*this.n31*this.n43-this.n14* this.n21*this.n32*this.n43+this.n11*this.n24*this.n32*this.n43+this.n12*this.n21*this.n34*this.n43-this.n11*this.n22*this.n34*this.n43-this.n13*this.n22*this.n31*this.n44+this.n12*this.n23*this.n31*this.n44+this.n13*this.n21*this.n32*this.n44-this.n11*this.n23*this.n32*this.n44-this.n12*this.n21*this.n33*this.n44+this.n11*this.n22*this.n33*this.n44},transpose:function(){function a(c,f,b){var d=c[f];c[f]=c[b];c[b]=d}a(this,"n21","n12");a(this,"n31","n13");a(this,"n32","n23");a(this,"n41","n14");a(this, "n42","n24");a(this,"n43","n34");return this},clone:function(){var a=new THREE.Matrix4;a.n11=this.n11;a.n12=this.n12;a.n13=this.n13;a.n14=this.n14;a.n21=this.n21;a.n22=this.n22;a.n23=this.n23;a.n24=this.n24;a.n31=this.n31;a.n32=this.n32;a.n33=this.n33;a.n34=this.n34;a.n41=this.n41;a.n42=this.n42;a.n43=this.n43;a.n44=this.n44;return a},flatten:function(){return[this.n11,this.n21,this.n31,this.n41,this.n12,this.n22,this.n32,this.n42,this.n13,this.n23,this.n33,this.n43,this.n14,this.n24,this.n34,this.n44]}, toString:function(){return"| "+this.n11+" "+this.n12+" "+this.n13+" "+this.n14+" |\n| "+this.n21+" "+this.n22+" "+this.n23+" "+this.n24+" |\n| "+this.n31+" "+this.n32+" "+this.n33+" "+this.n34+" |\n| "+this.n41+" "+this.n42+" "+this.n43+" "+this.n44+" |"}};THREE.Matrix4.translationMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n14=a;b.n24=c;b.n34=f;return b};THREE.Matrix4.scaleMatrix=function(a,c,f){var b=new THREE.Matrix4;b.n11=a;b.n22=c;b.n33=f;return b}; THREE.Matrix4.rotationXMatrix=function(a){var c=new THREE.Matrix4;c.n22=c.n33=Math.cos(a);c.n32=Math.sin(a);c.n23=-c.n32;return c};THREE.Matrix4.rotationYMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n33=Math.cos(a);c.n13=Math.sin(a);c.n31=-c.n13;return c};THREE.Matrix4.rotationZMatrix=function(a){var c=new THREE.Matrix4;c.n11=c.n22=Math.cos(a);c.n21=Math.sin(a);c.n12=-c.n21;return c}; -THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var f=new THREE.Matrix4,b=Math.cos(c),d=Math.sin(c),j=1-b,n=a.x,r=a.y,e=a.z;f.n11=j*n*n+b;f.n12=j*n*r-d*e;f.n13=j*n*e+d*r;f.n21=j*n*r+d*e;f.n22=j*r*r+b;f.n23=j*r*e-d*n;f.n31=j*n*e-d*r;f.n32=j*r*e+d*n;f.n33=j*e*e+b;return f}; +THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var f=new THREE.Matrix4,b=Math.cos(c),d=Math.sin(c),k=1-b,n=a.x,q=a.y,e=a.z;f.n11=k*n*n+b;f.n12=k*n*q-d*e;f.n13=k*n*e+d*q;f.n21=k*n*q+d*e;f.n22=k*q*q+b;f.n23=k*q*e-d*n;f.n31=k*n*e-d*q;f.n32=k*q*e+d*n;f.n33=k*e*e+b;return f}; THREE.Matrix4.makeInvert=function(a){var c=new THREE.Matrix4;c.n11=a.n23*a.n34*a.n42-a.n24*a.n33*a.n42+a.n24*a.n32*a.n43-a.n22*a.n34*a.n43-a.n23*a.n32*a.n44+a.n22*a.n33*a.n44;c.n12=a.n14*a.n33*a.n42-a.n13*a.n34*a.n42-a.n14*a.n32*a.n43+a.n12*a.n34*a.n43+a.n13*a.n32*a.n44-a.n12*a.n33*a.n44;c.n13=a.n13*a.n24*a.n42-a.n14*a.n23*a.n42+a.n14*a.n22*a.n43-a.n12*a.n24*a.n43-a.n13*a.n22*a.n44+a.n12*a.n23*a.n44;c.n14=a.n14*a.n23*a.n32-a.n13*a.n24*a.n32-a.n14*a.n22*a.n33+a.n12*a.n24*a.n33+a.n13*a.n22*a.n34-a.n12* a.n23*a.n34;c.n21=a.n24*a.n33*a.n41-a.n23*a.n34*a.n41-a.n24*a.n31*a.n43+a.n21*a.n34*a.n43+a.n23*a.n31*a.n44-a.n21*a.n33*a.n44;c.n22=a.n13*a.n34*a.n41-a.n14*a.n33*a.n41+a.n14*a.n31*a.n43-a.n11*a.n34*a.n43-a.n13*a.n31*a.n44+a.n11*a.n33*a.n44;c.n23=a.n14*a.n23*a.n41-a.n13*a.n24*a.n41-a.n14*a.n21*a.n43+a.n11*a.n24*a.n43+a.n13*a.n21*a.n44-a.n11*a.n23*a.n44;c.n24=a.n13*a.n24*a.n31-a.n14*a.n23*a.n31+a.n14*a.n21*a.n33-a.n11*a.n24*a.n33-a.n13*a.n21*a.n34+a.n11*a.n23*a.n34;c.n31=a.n22*a.n34*a.n41-a.n24*a.n32* a.n41+a.n24*a.n31*a.n42-a.n21*a.n34*a.n42-a.n22*a.n31*a.n44+a.n21*a.n32*a.n44;c.n32=a.n14*a.n32*a.n41-a.n12*a.n34*a.n41-a.n14*a.n31*a.n42+a.n11*a.n34*a.n42+a.n12*a.n31*a.n44-a.n11*a.n32*a.n44;c.n33=a.n13*a.n24*a.n41-a.n14*a.n22*a.n41+a.n14*a.n21*a.n42-a.n11*a.n24*a.n42-a.n12*a.n21*a.n44+a.n11*a.n22*a.n44;c.n34=a.n14*a.n22*a.n31-a.n12*a.n24*a.n31-a.n14*a.n21*a.n32+a.n11*a.n24*a.n32+a.n12*a.n21*a.n34-a.n11*a.n22*a.n34;c.n41=a.n23*a.n32*a.n41-a.n22*a.n33*a.n41-a.n23*a.n31*a.n42+a.n21*a.n33*a.n42+a.n22* a.n31*a.n43-a.n21*a.n32*a.n43;c.n42=a.n12*a.n33*a.n41-a.n13*a.n32*a.n41+a.n13*a.n31*a.n42-a.n11*a.n33*a.n42-a.n12*a.n31*a.n43+a.n11*a.n32*a.n43;c.n43=a.n13*a.n22*a.n41-a.n12*a.n23*a.n41-a.n13*a.n21*a.n42+a.n11*a.n23*a.n42+a.n12*a.n21*a.n43-a.n11*a.n22*a.n43;c.n44=a.n12*a.n23*a.n31-a.n13*a.n22*a.n31+a.n13*a.n21*a.n32-a.n11*a.n23*a.n32-a.n12*a.n21*a.n33+a.n11*a.n22*a.n33;c.multiplyScalar(1/a.determinant());return c}; -THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=new THREE.Matrix3;var f=c[10]*c[5]-c[6]*c[9],b=-c[10]*c[1]+c[2]*c[9],d=c[6]*c[1]-c[2]*c[5],j=-c[10]*c[4]+c[6]*c[8],n=c[10]*c[0]-c[2]*c[8],r=-c[6]*c[0]+c[2]*c[4],e=c[9]*c[4]-c[5]*c[8],g=-c[9]*c[0]+c[1]*c[8],m=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*j+c[2]*e;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*b;a.m[2]=c*d;a.m[3]=c*j;a.m[4]=c*n;a.m[5]=c*r;a.m[6]=c*e;a.m[7]=c*g;a.m[8]=c*m;return a}; -THREE.Matrix4.makeFrustum=function(a,c,f,b,d,j){var n,r,e;n=new THREE.Matrix4;r=2*d/(c-a);e=2*d/(b-f);a=(c+a)/(c-a);f=(b+f)/(b-f);b=-(j+d)/(j-d);d=-2*j*d/(j-d);n.n11=r;n.n12=0;n.n13=a;n.n14=0;n.n21=0;n.n22=e;n.n23=f;n.n24=0;n.n31=0;n.n32=0;n.n33=b;n.n34=d;n.n41=0;n.n42=0;n.n43=-1;n.n44=0;return n};THREE.Matrix4.makePerspective=function(a,c,f,b){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*c,a*c,d,a,f,b)}; -THREE.Matrix4.makeOrtho=function(a,c,f,b,d,j){var n,r,e,g;n=new THREE.Matrix4;r=c-a;e=f-b;g=j-d;a=(c+a)/r;f=(f+b)/e;d=(j+d)/g;n.n11=2/r;n.n12=0;n.n13=0;n.n14=-a;n.n21=0;n.n22=2/e;n.n23=0;n.n24=-f;n.n31=0;n.n32=0;n.n33=-2/g;n.n34=-d;n.n41=0;n.n42=0;n.n43=0;n.n44=1;return n}; +THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=new THREE.Matrix3;var f=c[10]*c[5]-c[6]*c[9],b=-c[10]*c[1]+c[2]*c[9],d=c[6]*c[1]-c[2]*c[5],k=-c[10]*c[4]+c[6]*c[8],n=c[10]*c[0]-c[2]*c[8],q=-c[6]*c[0]+c[2]*c[4],e=c[9]*c[4]-c[5]*c[8],g=-c[9]*c[0]+c[1]*c[8],m=c[5]*c[0]-c[1]*c[4];c=c[0]*f+c[1]*k+c[2]*e;if(c==0)throw"matrix not invertible";c=1/c;a.m[0]=c*f;a.m[1]=c*b;a.m[2]=c*d;a.m[3]=c*k;a.m[4]=c*n;a.m[5]=c*q;a.m[6]=c*e;a.m[7]=c*g;a.m[8]=c*m;return a}; +THREE.Matrix4.makeFrustum=function(a,c,f,b,d,k){var n,q,e;n=new THREE.Matrix4;q=2*d/(c-a);e=2*d/(b-f);a=(c+a)/(c-a);f=(b+f)/(b-f);b=-(k+d)/(k-d);d=-2*k*d/(k-d);n.n11=q;n.n12=0;n.n13=a;n.n14=0;n.n21=0;n.n22=e;n.n23=f;n.n24=0;n.n31=0;n.n32=0;n.n33=b;n.n34=d;n.n41=0;n.n42=0;n.n43=-1;n.n44=0;return n};THREE.Matrix4.makePerspective=function(a,c,f,b){var d;a=f*Math.tan(a*Math.PI/360);d=-a;return THREE.Matrix4.makeFrustum(d*c,a*c,d,a,f,b)}; +THREE.Matrix4.makeOrtho=function(a,c,f,b,d,k){var n,q,e,g;n=new THREE.Matrix4;q=c-a;e=f-b;g=k-d;a=(c+a)/q;f=(f+b)/e;d=(k+d)/g;n.n11=2/q;n.n12=0;n.n13=0;n.n14=-a;n.n21=0;n.n22=2/e;n.n23=0;n.n24=-f;n.n31=0;n.n32=0;n.n33=-2/g;n.n34=-d;n.n41=0;n.n42=0;n.n43=0;n.n44=1;return n}; THREE.Vertex=function(a,c){this.position=a||new THREE.Vector3;this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.normal=c||new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.normalScreen=new THREE.Vector3;this.__visible=true};THREE.Vertex.prototype={toString:function(){return"THREE.Vertex ( position: "+this.position+", normal: "+this.normal+" )"}}; THREE.Face3=function(a,c,f,b,d){this.a=a;this.b=c;this.c=f;this.centroid=new THREE.Vector3;this.normal=b instanceof THREE.Vector3?b:new THREE.Vector3;this.vertexNormals=b instanceof Array?b:[];this.material=d instanceof Array?d:[d]};THREE.Face3.prototype={toString:function(){return"THREE.Face3 ( "+this.a+", "+this.b+", "+this.c+" )"}}; -THREE.Face4=function(a,c,f,b,d,j){this.a=a;this.b=c;this.c=f;this.d=b;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=j instanceof Array?j:[j]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,c){this.u=a||0;this.v=c||0}; +THREE.Face4=function(a,c,f,b,d,k){this.a=a;this.b=c;this.c=f;this.d=b;this.centroid=new THREE.Vector3;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.material=k instanceof Array?k:[k]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,c){this.u=a||0;this.v=c||0}; THREE.UV.prototype={copy:function(a){this.u=a.u;this.v=a.v},toString:function(){return"THREE.UV ("+this.u+", "+this.v+")"}};THREE.Geometry=function(){this.vertices=[];this.faces=[];this.uvs=[]}; THREE.Geometry.prototype={computeCentroids:function(){var a,c,f;a=0;for(c=this.faces.length;a0){this.bbox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y,this.vertices[0].position.y],z:[this.vertices[0].position.z,this.vertices[0].position.z]};for(var a=1,c=this.vertices.length;a +f.centroid.addSelf(this.vertices[f.d].position);f.centroid.divideScalar(4)}}},computeNormals:function(a){var c,f,b,d,k,n,q=new THREE.Vector3,e=new THREE.Vector3;b=0;for(d=this.vertices.length;b0){this.bbox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y,this.vertices[0].position.y],z:[this.vertices[0].position.z,this.vertices[0].position.z]};for(var a=1,c=this.vertices.length;a this.bbox.x[1])this.bbox.x[1]=vertex.position.x;if(vertex.position.ythis.bbox.y[1])this.bbox.y[1]=vertex.position.y;if(vertex.position.zthis.bbox.z[1])this.bbox.z[1]=vertex.position.z}}},toString:function(){return"THREE.Geometry ( vertices: "+this.vertices+", faces: "+this.faces+" )"}}; THREE.Camera=function(a,c,f,b){this.position=new THREE.Vector3(0,0,0);this.target={position:new THREE.Vector3(0,0,0)};this.up=new THREE.Vector3(0,1,0);this.matrix=new THREE.Matrix4;this.projectionMatrix=THREE.Matrix4.makePerspective(a,c,f,b);this.autoUpdateMatrix=true;this.updateMatrix=function(){this.matrix.lookAt(this.position,this.target.position,this.up)};this.toString=function(){return"THREE.Camera ( "+this.position+", "+this.target.position+" )"}}; THREE.Light=function(a){this.color=new THREE.Color(-16777216|a)};THREE.AmbientLight=function(a){THREE.Light.call(this,a)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight;THREE.DirectionalLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,1,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight; @@ -53,8 +53,8 @@ THREE.Object3D=function(){this.position=new THREE.Vector3;this.rotation=new THRE this.matrixRotation.multiplySelf(THREE.Matrix4.rotationYMatrix(this.rotation.y));this.matrixRotation.multiplySelf(THREE.Matrix4.rotationZMatrix(this.rotation.z));this.matrixScale=THREE.Matrix4.scaleMatrix(this.scale.x,this.scale.y,this.scale.z);this.matrix.copy(this.matrixPosition);this.matrix.multiplySelf(this.matrixRotation);this.matrix.multiplySelf(this.matrixScale)}};THREE.Particle=function(a){THREE.Object3D.call(this);this.material=a instanceof Array?a:[a];this.autoUpdateMatrix=false}; THREE.Particle.prototype=new THREE.Object3D;THREE.Particle.prototype.constructor=THREE.Particle;THREE.Line=function(a,c){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c]};THREE.Line.prototype=new THREE.Object3D;THREE.Line.prototype.constructor=THREE.Line; THREE.Mesh=function(a,c,f){THREE.Object3D.call(this);this.geometry=a;this.material=c instanceof Array?c:[c];this.overdraw=this.doubleSided=this.flipSided=false;this.materialFaceGroup={};this.sortFacesByMaterial();f&&this.normalizeUVs();this.geometry.computeBoundingBox()};THREE.Mesh.prototype=new THREE.Object3D;THREE.Mesh.prototype.constructor=THREE.Mesh; -THREE.Mesh.prototype.sortFacesByMaterial=function(){function a(m){var h=[];c=0;for(f=m.length;c65535){g[r].counter+=1;e=g[r].hash+"_"+g[r].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:n,vertices:0}}this.materialFaceGroup[e].faces.push(b);this.materialFaceGroup[e].vertices+=j}};THREE.Mesh.prototype.normalizeUVs=function(){var a,c,f,b,d;a=0;for(c=this.geometry.uvs.length;a65535){g[q].counter+=1;e=g[q].hash+"_"+g[q].counter;if(this.materialFaceGroup[e]==undefined)this.materialFaceGroup[e]={faces:[],material:n,vertices:0}}this.materialFaceGroup[e].faces.push(b);this.materialFaceGroup[e].vertices+=k}};THREE.Mesh.prototype.normalizeUVs=function(){var a,c,f,b,d;a=0;for(c=this.geometry.uvs.length;acolor: "+this.color+"
opacity: "+this.opacity+"
blending: "+this.blending+"
linewidth: "+ this.linewidth+"
)"}}; @@ -78,51 +78,51 @@ this.blending+"
)"}};THREE.ParticleCircleMaterial=function(a){this.color=new THREE.ParticleDOMMaterial=function(a){this.domElement=a;this.toString=function(){return"THREE.ParticleDOMMaterial ( domElement: "+this.domElement+" )"}};THREE.Texture=function(a,c){this.image=a;this.mapping=c!==undefined?c:THREE.UVMapping;this.toString=function(){return"THREE.Texture (
image: "+this.image+"
mapping: "+this.mapping+"
)"}};THREE.UVMapping=0;THREE.ReflectionMap=1;THREE.RefractionMap=2;THREE.Multiply=0;THREE.Mix=1; THREE.TextureCube=function(a,c){this.image=a;this.mapping=c?c:THREE.ReflectionMap;this.toString=function(){return"THREE.TextureCube (
image: "+this.image+"
mapping: "+this.mapping+"
)"}}; THREE.Scene=function(){this.objects=[];this.lights=[];this.addObject=function(a){this.objects.push(a)};this.removeObject=function(a){a=this.objects.indexOf(a);a!==-1&&this.objects.splice(a,1)};this.addLight=function(a){this.lights.push(a)};this.removeLight=function(a){a=this.lights.indexOf(a);a!==-1&&this.lights.splice(a,1)};this.toString=function(){return"THREE.Scene ( "+this.objects+" )"}}; -THREE.Projector=function(){function a(p,t){var i=0,U=1,C=p.z+p.w,S=t.z+t.w,E=-p.z+p.w,B=-t.z+t.w;if(C>=0&&S>=0&&E>=0&&B>=0)return true;else if(C<0&&S<0||E<0&&B<0)return false;else{if(C<0)i=Math.max(i,C/(C-S));else if(S<0)U=Math.min(U,C/(C-S));if(E<0)i=Math.max(i,E/(E-B));else if(B<0)U=Math.min(U,E/(E-B));if(U0&&Q.z<1}fa=B.geometry.faces;C=0;for(S= -fa.length;C0&&o.z<1){h=q[l]=q[l]|| -new THREE.RenderableParticle;h.x=o.x/o.w;h.y=o.y/o.w;h.z=o.z;h.rotation=B.rotation.z;h.scale.x=B.scale.x*Math.abs(h.x-(o.x+t.projectionMatrix.n11)/(o.w+t.projectionMatrix.n14));h.scale.y=B.scale.y*Math.abs(h.y-(o.y+t.projectionMatrix.n22)/(o.w+t.projectionMatrix.n24));h.material=B.material;c.push(h);l++}}}c.sort(function(T,y){return y.z-T.z});return c};this.unprojectVector=function(p,t){var i=new THREE.Matrix4;i.multiply(THREE.Matrix4.makeInvert(t.matrix),THREE.Matrix4.makeInvert(t.projectionMatrix)); +THREE.Projector=function(){function a(p,s){var i=0,T=1,K=p.z+p.w,W=s.z+s.w,D=-p.z+p.w,B=-s.z+s.w;if(K>=0&&W>=0&&D>=0&&B>=0)return true;else if(K<0&&W<0||D<0&&B<0)return false;else{if(K<0)i=Math.max(i,K/(K-W));else if(W<0)T=Math.min(T,K/(K-W));if(D<0)i=Math.max(i,D/(D-B));else if(B<0)T=Math.min(T,D/(D-B));if(T0&&Q.z<1}fa=B.geometry.faces;K=0;for(W= +fa.length;K0&&r.z<1){h=j[o]=j[o]|| +new THREE.RenderableParticle;h.x=r.x/r.w;h.y=r.y/r.w;h.z=r.z;h.rotation=B.rotation.z;h.scale.x=B.scale.x*Math.abs(h.x-(r.x+s.projectionMatrix.n11)/(r.w+s.projectionMatrix.n14));h.scale.y=B.scale.y*Math.abs(h.y-(r.y+s.projectionMatrix.n22)/(r.w+s.projectionMatrix.n24));h.material=B.material;c.push(h);o++}}}c.sort(function(S,y){return y.z-S.z});return c};this.unprojectVector=function(p,s){var i=new THREE.Matrix4;i.multiply(THREE.Matrix4.makeInvert(s.matrix),THREE.Matrix4.makeInvert(s.projectionMatrix)); i.transform(p);return p}}; -THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,c=new THREE.Projector,f,b,d,j;this.domElement=document.createElement("div");this.setSize=function(n,r){f=n;b=r;d=f/2;j=b/2};this.render=function(n,r){var e,g,m,h,l,q,o,s;a=c.projectScene(n,r);e=0;for(g=a.length;e0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}else if(k instanceof THREE.PointLight){Ja.sub(k.position,O.centroidWorld);Ja.normalize();k=O.normalWorld.dot(Ja)*k.intensity;if(k>0){H.r+=G.r*k;H.g+=G.g*k;H.b+=G.b*k}}}}function c(w,O,H,I,k,G){if(k.opacity!=0){n(k.opacity);r(k.blending);M=w.positionScreen.x; -K=w.positionScreen.y;T=O.positionScreen.x;y=O.positionScreen.y;v=H.positionScreen.x;R=H.positionScreen.y;if(k.map){ea=k.map.image;pa=ea.width-1;qa=ea.height-1;ca.u=I.uvs[0].u*pa;ca.v=I.uvs[0].v*qa;Z.u=I.uvs[1].u*pa;Z.v=I.uvs[1].v*qa;da.u=I.uvs[2].u*pa;da.v=I.uvs[2].v*qa;j(ea,M,K,T,y,v,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(k instanceof THREE.MeshBasicMaterial)b(M,K,T,y,v,R,k.color,k.wireframe,k.wireframe_linewidth);else if(k instanceof THREE.MeshLambertMaterial){if(Fa){aa.r=ga.r;aa.g=ga.g;aa.b=ga.b; -a(G,I,aa);V.r=k.color.r*aa.r;V.g=k.color.g*aa.g;V.b=k.color.b*aa.b;V.updateStyleString()}else V.__styleString=k.color.__styleString;b(M,K,T,y,v,R,V,k.wireframe,k.wireframe_linewidth)}else if(k instanceof THREE.MeshDepthMaterial){ra=k.__2near;sa=k.__farPlusNear;ta=k.__farMinusNear;wa=~~((1-ra/(sa-w.positionScreen.z*ta))*255);xa=~~((1-ra/(sa-O.positionScreen.z*ta))*255);na=~~((1-ra/(sa-H.positionScreen.z*ta))*255);ea=h([wa,wa,wa],[xa,xa,xa],[na,na,na],[na,na,na]);ca.u=0;ca.v=0;Z.u=la;Z.v=0;da.u=0;da.v= -la;j(ea,M,K,T,y,v,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(k instanceof THREE.MeshNormalMaterial){V.r=l(I.normalWorld.x);V.g=l(I.normalWorld.y);V.b=l(I.normalWorld.z);V.updateStyleString();b(M,K,T,y,v,R,V,k.wireframe,k.wireframe_linewidth)}}}function f(w,O,H,I,k,G,W,u,X){if(u.opacity!=0){n(u.opacity);r(u.blending);M=w.positionScreen.x;K=w.positionScreen.y;T=O.positionScreen.x;y=O.positionScreen.y;v=H.positionScreen.x;R=H.positionScreen.y;ha=I.positionScreen.x;P=I.positionScreen.y;Y=k.positionScreen.x; -ya=k.positionScreen.y;Ka=G.positionScreen.x;La=G.positionScreen.y;if(u.map){ea=u.map.image;pa=ea.width-1;qa=ea.height-1;ca.copy(W.uvs[0]);Z.copy(W.uvs[1]);da.copy(W.uvs[2]);ia.copy(W.uvs[3]);ca.u*=pa;ca.v*=qa;Z.u*=pa;Z.v*=qa;da.u*=pa;da.v*=qa;ia.u*=pa;ia.v*=qa;j(ea,M,K,T,y,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);j(ea,Y,ya,v,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(u instanceof THREE.MeshBasicMaterial)d(M,K,T,y,v,R,ha,P,u.color,u.wireframe,u.wireframe_linewidth);else if(u instanceof THREE.MeshLambertMaterial){if(Fa){aa.r= -ga.r;aa.g=ga.g;aa.b=ga.b;a(X,W,aa);V.r=u.color.r*aa.r;V.g=u.color.g*aa.g;V.b=u.color.b*aa.b;V.updateStyleString()}else V.__styleString=u.color.__styleString;d(M,K,T,y,v,R,ha,P,V,u.wireframe,u.wireframe_linewidth)}else if(u instanceof THREE.MeshDepthMaterial){ra=u.__2near;sa=u.__farPlusNear;ta=u.__farMinusNear;wa=~~((1-ra/(sa-w.positionScreen.z*ta))*255);xa=~~((1-ra/(sa-O.positionScreen.z*ta))*255);na=~~((1-ra/(sa-H.positionScreen.z*ta))*255);Ga=~~((1-ra/(sa-I.positionScreen.z*ta))*255);ea=h([wa,wa, -wa],[xa,xa,xa],[Ga,Ga,Ga],[na,na,na]);ca.u=0;ca.v=0;Z.u=la;Z.v=0;da.u=la;da.v=la;ia.u=0;ia.v=la;j(ea,M,K,T,y,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);j(ea,Y,ya,v,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(u instanceof THREE.MeshNormalMaterial){V.r=l(W.normalWorld.x);V.g=l(W.normalWorld.y);V.b=l(W.normalWorld.z);V.updateStyleString();d(M,K,T,y,v,R,ha,P,V,u.wireframe,u.wireframe_linewidth)}}}function b(w,O,H,I,k,G,W,u,X){i.beginPath();i.moveTo(w,O);i.lineTo(H,I);i.lineTo(k,G);i.lineTo(w,O);i.closePath(); -if(u){e(X);g(W.__styleString);i.stroke();$.inflate(X*2)}else{m(W.__styleString);i.fill()}}function d(w,O,H,I,k,G,W,u,X,F,ba){i.beginPath();i.moveTo(w,O);i.lineTo(H,I);i.lineTo(k,G);i.lineTo(W,u);i.lineTo(w,O);i.closePath();if(F){e(ba);g(X.__styleString);i.stroke();$.inflate(ba*2)}else{m(X.__styleString);i.fill()}}function j(w,O,H,I,k,G,W,u,X,F,ba,ma,ua){i.beginPath();i.moveTo(O,H);i.lineTo(I,k);i.lineTo(G,W);i.closePath();I-=O;k-=H;G-=O;W-=H;F-=u;ba-=X;ma-=u;ua-=X;var va=1/(F*ua-ma*ba),Ba=(ua*I-ba* -G)*va;ba=(ua*k-ba*W)*va;I=(F*G-ma*I)*va;k=(F*W-ma*k)*va;O=O-Ba*u-I*X;H=H-ba*u-k*X;i.save();i.transform(Ba,ba,I,k,O,H);i.clip();i.drawImage(w,0,0);i.restore()}function n(w){if(U!=w)i.globalAlpha=U=w}function r(w){if(C!=w){switch(w){case THREE.NormalBlending:i.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:i.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:i.globalCompositeOperation="darker"}C=w}}function e(w){if(B!=w)i.lineWidth=B=w}function g(w){if(S!= -w)i.strokeStyle=S=w}function m(w){if(E!=w)i.fillStyle=E=w}function h(w,O,H,I){ja[0]=w[0];ja[1]=w[1];ja[2]=w[2];ja[4]=O[0];ja[5]=O[1];ja[6]=O[2];ja[8]=H[0];ja[9]=H[1];ja[10]=H[2];ja[12]=I[0];ja[13]=I[1];ja[14]=I[2];Ca.putImageData(Ma,0,0);Ha.drawImage(Da,0,0);return Ea}function l(w){return w<0?Math.min((1+w)*0.5,0.5):0.5+Math.min(w*0.5,0.5)}function q(w,O){var H=O.x-w.x,I=O.y-w.y,k=1/Math.sqrt(H*H+I*I);H*=k;I*=k;O.x+=H;O.y+=I;w.x-=H;w.y-=I}var o=null,s=new THREE.Projector,A=document.createElement("canvas"), -J,N,p,t,i=A.getContext("2d"),U=1,C=0,S=null,E=null,B=1,L,x,D,Q,fa=new THREE.Vertex,z=new THREE.Vertex,M,K,T,y,v,R,ha,P,Y,ya,Ka,La,wa,xa,na,Ga,ra,sa,ta,ea,pa,qa,oa=new THREE.Rectangle,ka=new THREE.Rectangle,$=new THREE.Rectangle,Fa=false,V=new THREE.Color(16777215),aa=new THREE.Color(16777215),ga=new THREE.Color(0),za=new THREE.Color(0),Aa=new THREE.Color(0),Qa=Math.PI*2,Ja=new THREE.Vector3,ca=new THREE.UV,Z=new THREE.UV,da=new THREE.UV,ia=new THREE.UV,Da,Ca,Ma,ja,Ea,Ha,la=16;Da=document.createElement("canvas"); -Da.width=Da.height=2;Ca=Da.getContext("2d");Ca.fillStyle="rgba(0,0,0,1)";Ca.fillRect(0,0,2,2);Ma=Ca.getImageData(0,0,2,2);ja=Ma.data;Ea=document.createElement("canvas");Ea.width=Ea.height=la;Ha=Ea.getContext("2d");Ha.translate(-la/2,-la/2);Ha.scale(la,la);la--;this.domElement=A;this.autoClear=true;this.setSize=function(w,O){J=w;N=O;p=J/2;t=N/2;A.width=J;A.height=N;i.lineJoin="round";i.lineCap="round";oa.set(-p,-t,p,t)};this.clear=function(){if(!ka.isEmpty()){ka.inflate(1);ka.minSelf(oa);i.setTransform(1, -0,0,-1,p,t);i.clearRect(ka.getX(),ka.getY(),ka.getWidth(),ka.getHeight());ka.empty()}};this.render=function(w,O){var H,I,k,G,W,u,X,F;this.autoClear&&this.clear();o=s.projectScene(w,O);i.setTransform(1,0,0,-1,p,t);i.fillStyle="rgba(0, 255, 255, 0.5)";i.fillRect(oa.getX(),oa.getY(),oa.getWidth(),oa.getHeight());if(Fa=w.lights.length>0){W=w.lights;ga.setRGB(0,0,0);za.setRGB(0,0,0);Aa.setRGB(0,0,0);H=0;for(I=W.length;H0){K.r+=v.color.r*R;K.g+=v.color.g*R;K.b+=v.color.b*R}}else if(v instanceof THREE.PointLight){E.sub(v.position,M.centroidWorld);E.normalize();R=M.normalWorld.dot(E)*v.intensity;if(R>0){K.r+=v.color.r*R;K.g+=v.color.g*R;K.b+=v.color.b*R}}}}function c(z,M,K,T,y,v){x=b(D++);x.setAttribute("d","M "+z.positionScreen.x+ -" "+z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+"z");if(y instanceof THREE.MeshBasicMaterial)p.__styleString=y.color.__styleString;else if(y instanceof THREE.MeshLambertMaterial)if(N){t.r=i.r;t.g=i.g;t.b=i.b;a(v,T,t);p.r=y.color.r*t.r;p.g=y.color.g*t.g;p.b=y.color.b*t.b;p.updateStyleString()}else p.__styleString=y.color.__styleString;else if(y instanceof THREE.MeshDepthMaterial){S=1-y.__2near/(y.__farPlusNear-T.z*y.__farMinusNear); -p.setRGB(S,S,S)}else y instanceof THREE.MeshNormalMaterial&&p.setRGB(d(T.normalWorld.x),d(T.normalWorld.y),d(T.normalWorld.z));y.wireframe?x.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+y.wireframe_linewidth+"; stroke-opacity: "+y.opacity+"; stroke-linecap: round; stroke-linejoin: round"):x.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+y.opacity);r.appendChild(x)}function f(z,M,K,T,y,v,R){x=b(D++);x.setAttribute("d","M "+z.positionScreen.x+" "+ -z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+K.positionScreen.x+","+K.positionScreen.y+" L "+T.positionScreen.x+","+T.positionScreen.y+"z");if(v instanceof THREE.MeshBasicMaterial)p.__styleString=v.color.__styleString;else if(v instanceof THREE.MeshLambertMaterial)if(N){t.r=i.r;t.g=i.g;t.b=i.b;a(R,y,t);p.r=v.color.r*t.r;p.g=v.color.g*t.g;p.b=v.color.b*t.b;p.updateStyleString()}else p.__styleString=v.color.__styleString;else if(v instanceof THREE.MeshDepthMaterial){S=1- -v.__2near/(v.__farPlusNear-y.z*v.__farMinusNear);p.setRGB(S,S,S)}else v instanceof THREE.MeshNormalMaterial&&p.setRGB(d(y.normalWorld.x),d(y.normalWorld.y),d(y.normalWorld.z));v.wireframe?x.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+v.wireframe_linewidth+"; stroke-opacity: "+v.opacity+"; stroke-linecap: round; stroke-linejoin: round"):x.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+v.opacity);r.appendChild(x)}function b(z){if(B[z]==null){B[z]= -document.createElementNS("http://www.w3.org/2000/svg","path");fa==0&&B[z].setAttribute("shape-rendering","crispEdges");return B[z]}return B[z]}function d(z){return z<0?Math.min((1+z)*0.5,0.5):0.5+Math.min(z*0.5,0.5)}var j=null,n=new THREE.Projector,r=document.createElementNS("http://www.w3.org/2000/svg","svg"),e,g,m,h,l,q,o,s,A=new THREE.Rectangle,J=new THREE.Rectangle,N=false,p=new THREE.Color(16777215),t=new THREE.Color(16777215),i=new THREE.Color(0),U=new THREE.Color(0),C=new THREE.Color(0),S, -E=new THREE.Vector3,B=[],L=[],x,D,Q,fa=1;this.domElement=r;this.autoClear=true;this.setQuality=function(z){switch(z){case "high":fa=1;break;case "low":fa=0}};this.setSize=function(z,M){e=z;g=M;m=e/2;h=g/2;r.setAttribute("viewBox",-m+" "+-h+" "+e+" "+g);r.setAttribute("width",e);r.setAttribute("height",g);A.set(-m,-h,m,h)};this.clear=function(){for(;r.childNodes.length>0;)r.removeChild(r.childNodes[0])};this.render=function(z,M){var K,T,y,v,R,ha,P,Y;this.autoClear&&this.clear();j=n.projectScene(z, -M);Q=D=0;if(N=z.lights.length>0){P=z.lights;i.setRGB(0,0,0);U.setRGB(0,0,0);C.setRGB(0,0,0);K=0;for(T=P.length;K0){G.r+=F.r*l;G.g+=F.g*l;G.b+=F.b*l}}else if(l instanceof THREE.PointLight){Ja.sub(l.position,O.centroidWorld);Ja.normalize();l=O.normalWorld.dot(Ja)*l.intensity;if(l>0){G.r+=F.r*l;G.g+=F.g*l;G.b+=F.b*l}}}}function c(v,O,G,H,l,F){if(l.opacity!=0){n(l.opacity);q(l.blending);M=v.positionScreen.x; +J=v.positionScreen.y;S=O.positionScreen.x;y=O.positionScreen.y;u=G.positionScreen.x;R=G.positionScreen.y;if(l.map){ea=l.map.image;pa=ea.width-1;qa=ea.height-1;ca.u=H.uvs[0].u*pa;ca.v=H.uvs[0].v*qa;Z.u=H.uvs[1].u*pa;Z.v=H.uvs[1].v*qa;da.u=H.uvs[2].u*pa;da.v=H.uvs[2].v*qa;k(ea,M,J,S,y,u,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(l instanceof THREE.MeshBasicMaterial)b(M,J,S,y,u,R,l.color,l.wireframe,l.wireframe_linewidth);else if(l instanceof THREE.MeshLambertMaterial){if(Fa){aa.r=ga.r;aa.g=ga.g;aa.b=ga.b; +a(F,H,aa);U.r=l.color.r*aa.r;U.g=l.color.g*aa.g;U.b=l.color.b*aa.b;U.updateStyleString()}else U.__styleString=l.color.__styleString;b(M,J,S,y,u,R,U,l.wireframe,l.wireframe_linewidth)}else if(l instanceof THREE.MeshDepthMaterial){ra=l.__2near;sa=l.__farPlusNear;ta=l.__farMinusNear;wa=~~((1-ra/(sa-v.positionScreen.z*ta))*255);xa=~~((1-ra/(sa-O.positionScreen.z*ta))*255);na=~~((1-ra/(sa-G.positionScreen.z*ta))*255);ea=h([wa,wa,wa],[xa,xa,xa],[na,na,na],[na,na,na]);ca.u=0;ca.v=0;Z.u=la;Z.v=0;da.u=0;da.v= +la;k(ea,M,J,S,y,u,R,ca.u,ca.v,Z.u,Z.v,da.u,da.v)}else if(l instanceof THREE.MeshNormalMaterial){U.r=o(H.normalWorld.x);U.g=o(H.normalWorld.y);U.b=o(H.normalWorld.z);U.updateStyleString();b(M,J,S,y,u,R,U,l.wireframe,l.wireframe_linewidth)}}}function f(v,O,G,H,l,F,V,t,X){if(t.opacity!=0){n(t.opacity);q(t.blending);M=v.positionScreen.x;J=v.positionScreen.y;S=O.positionScreen.x;y=O.positionScreen.y;u=G.positionScreen.x;R=G.positionScreen.y;ha=H.positionScreen.x;P=H.positionScreen.y;Y=l.positionScreen.x; +ya=l.positionScreen.y;Ka=F.positionScreen.x;La=F.positionScreen.y;if(t.map){ea=t.map.image;pa=ea.width-1;qa=ea.height-1;ca.copy(V.uvs[0]);Z.copy(V.uvs[1]);da.copy(V.uvs[2]);ia.copy(V.uvs[3]);ca.u*=pa;ca.v*=qa;Z.u*=pa;Z.v*=qa;da.u*=pa;da.v*=qa;ia.u*=pa;ia.v*=qa;k(ea,M,J,S,y,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);k(ea,Y,ya,u,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(t instanceof THREE.MeshBasicMaterial)d(M,J,S,y,u,R,ha,P,t.color,t.wireframe,t.wireframe_linewidth);else if(t instanceof THREE.MeshLambertMaterial){if(Fa){aa.r= +ga.r;aa.g=ga.g;aa.b=ga.b;a(X,V,aa);U.r=t.color.r*aa.r;U.g=t.color.g*aa.g;U.b=t.color.b*aa.b;U.updateStyleString()}else U.__styleString=t.color.__styleString;d(M,J,S,y,u,R,ha,P,U,t.wireframe,t.wireframe_linewidth)}else if(t instanceof THREE.MeshDepthMaterial){ra=t.__2near;sa=t.__farPlusNear;ta=t.__farMinusNear;wa=~~((1-ra/(sa-v.positionScreen.z*ta))*255);xa=~~((1-ra/(sa-O.positionScreen.z*ta))*255);na=~~((1-ra/(sa-G.positionScreen.z*ta))*255);Ga=~~((1-ra/(sa-H.positionScreen.z*ta))*255);ea=h([wa,wa, +wa],[xa,xa,xa],[Ga,Ga,Ga],[na,na,na]);ca.u=0;ca.v=0;Z.u=la;Z.v=0;da.u=la;da.v=la;ia.u=0;ia.v=la;k(ea,M,J,S,y,ha,P,ca.u,ca.v,Z.u,Z.v,ia.u,ia.v);k(ea,Y,ya,u,R,Ka,La,Z.u,Z.v,da.u,da.v,ia.u,ia.v)}else if(t instanceof THREE.MeshNormalMaterial){U.r=o(V.normalWorld.x);U.g=o(V.normalWorld.y);U.b=o(V.normalWorld.z);U.updateStyleString();d(M,J,S,y,u,R,ha,P,U,t.wireframe,t.wireframe_linewidth)}}}function b(v,O,G,H,l,F,V,t,X){i.beginPath();i.moveTo(v,O);i.lineTo(G,H);i.lineTo(l,F);i.lineTo(v,O);i.closePath(); +if(t){e(X);g(V.__styleString);i.stroke();$.inflate(X*2)}else{m(V.__styleString);i.fill()}}function d(v,O,G,H,l,F,V,t,X,E,ba){i.beginPath();i.moveTo(v,O);i.lineTo(G,H);i.lineTo(l,F);i.lineTo(V,t);i.lineTo(v,O);i.closePath();if(E){e(ba);g(X.__styleString);i.stroke();$.inflate(ba*2)}else{m(X.__styleString);i.fill()}}function k(v,O,G,H,l,F,V,t,X,E,ba,ma,ua){i.beginPath();i.moveTo(O,G);i.lineTo(H,l);i.lineTo(F,V);i.closePath();H-=O;l-=G;F-=O;V-=G;E-=t;ba-=X;ma-=t;ua-=X;var va=1/(E*ua-ma*ba),Ba=(ua*H-ba* +F)*va;ba=(ua*l-ba*V)*va;H=(E*F-ma*H)*va;l=(E*V-ma*l)*va;O=O-Ba*t-H*X;G=G-ba*t-l*X;i.save();i.transform(Ba,ba,H,l,O,G);i.clip();i.drawImage(v,0,0);i.restore()}function n(v){if(T!=v)i.globalAlpha=T=v}function q(v){if(K!=v){switch(v){case THREE.NormalBlending:i.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:i.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:i.globalCompositeOperation="darker"}K=v}}function e(v){if(B!=v)i.lineWidth=B=v}function g(v){if(W!= +v)i.strokeStyle=W=v}function m(v){if(D!=v)i.fillStyle=D=v}function h(v,O,G,H){ja[0]=v[0];ja[1]=v[1];ja[2]=v[2];ja[4]=O[0];ja[5]=O[1];ja[6]=O[2];ja[8]=G[0];ja[9]=G[1];ja[10]=G[2];ja[12]=H[0];ja[13]=H[1];ja[14]=H[2];Ca.putImageData(Ma,0,0);Ha.drawImage(Da,0,0);return Ea}function o(v){return v<0?Math.min((1+v)*0.5,0.5):0.5+Math.min(v*0.5,0.5)}function j(v,O){var G=O.x-v.x,H=O.y-v.y,l=1/Math.sqrt(G*G+H*H);G*=l;H*=l;O.x+=G;O.y+=H;v.x-=G;v.y-=H}var r=null,x=new THREE.Projector,A=document.createElement("canvas"), +I,N,p,s,i=A.getContext("2d"),T=1,K=0,W=null,D=null,B=1,L,w,C,Q,fa=new THREE.Vertex,z=new THREE.Vertex,M,J,S,y,u,R,ha,P,Y,ya,Ka,La,wa,xa,na,Ga,ra,sa,ta,ea,pa,qa,oa=new THREE.Rectangle,ka=new THREE.Rectangle,$=new THREE.Rectangle,Fa=false,U=new THREE.Color(16777215),aa=new THREE.Color(16777215),ga=new THREE.Color(0),za=new THREE.Color(0),Aa=new THREE.Color(0),Qa=Math.PI*2,Ja=new THREE.Vector3,ca=new THREE.UV,Z=new THREE.UV,da=new THREE.UV,ia=new THREE.UV,Da,Ca,Ma,ja,Ea,Ha,la=16;Da=document.createElement("canvas"); +Da.width=Da.height=2;Ca=Da.getContext("2d");Ca.fillStyle="rgba(0,0,0,1)";Ca.fillRect(0,0,2,2);Ma=Ca.getImageData(0,0,2,2);ja=Ma.data;Ea=document.createElement("canvas");Ea.width=Ea.height=la;Ha=Ea.getContext("2d");Ha.translate(-la/2,-la/2);Ha.scale(la,la);la--;this.domElement=A;this.autoClear=true;this.setSize=function(v,O){I=v;N=O;p=I/2;s=N/2;A.width=I;A.height=N;i.lineJoin="round";i.lineCap="round";oa.set(-p,-s,p,s)};this.clear=function(){if(!ka.isEmpty()){ka.inflate(1);ka.minSelf(oa);i.setTransform(1, +0,0,-1,p,s);i.clearRect(ka.getX(),ka.getY(),ka.getWidth(),ka.getHeight());ka.empty()}};this.render=function(v,O){var G,H,l,F,V,t,X,E;this.autoClear&&this.clear();r=x.projectScene(v,O);i.setTransform(1,0,0,-1,p,s);i.fillStyle="rgba(0, 255, 255, 0.5)";i.fillRect(oa.getX(),oa.getY(),oa.getWidth(),oa.getHeight());if(Fa=v.lights.length>0){V=v.lights;ga.setRGB(0,0,0);za.setRGB(0,0,0);Aa.setRGB(0,0,0);G=0;for(H=V.length;G0){J.r+=u.color.r*R;J.g+=u.color.g*R;J.b+=u.color.b*R}}else if(u instanceof THREE.PointLight){D.sub(u.position,M.centroidWorld);D.normalize();R=M.normalWorld.dot(D)*u.intensity;if(R>0){J.r+=u.color.r*R;J.g+=u.color.g*R;J.b+=u.color.b*R}}}}function c(z,M,J,S,y,u){w=b(C++);w.setAttribute("d","M "+z.positionScreen.x+ +" "+z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+J.positionScreen.x+","+J.positionScreen.y+"z");if(y instanceof THREE.MeshBasicMaterial)p.__styleString=y.color.__styleString;else if(y instanceof THREE.MeshLambertMaterial)if(N){s.r=i.r;s.g=i.g;s.b=i.b;a(u,S,s);p.r=y.color.r*s.r;p.g=y.color.g*s.g;p.b=y.color.b*s.b;p.updateStyleString()}else p.__styleString=y.color.__styleString;else if(y instanceof THREE.MeshDepthMaterial){W=1-y.__2near/(y.__farPlusNear-S.z*y.__farMinusNear); +p.setRGB(W,W,W)}else y instanceof THREE.MeshNormalMaterial&&p.setRGB(d(S.normalWorld.x),d(S.normalWorld.y),d(S.normalWorld.z));y.wireframe?w.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+y.wireframe_linewidth+"; stroke-opacity: "+y.opacity+"; stroke-linecap: round; stroke-linejoin: round"):w.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+y.opacity);q.appendChild(w)}function f(z,M,J,S,y,u,R){w=b(C++);w.setAttribute("d","M "+z.positionScreen.x+" "+ +z.positionScreen.y+" L "+M.positionScreen.x+" "+M.positionScreen.y+" L "+J.positionScreen.x+","+J.positionScreen.y+" L "+S.positionScreen.x+","+S.positionScreen.y+"z");if(u instanceof THREE.MeshBasicMaterial)p.__styleString=u.color.__styleString;else if(u instanceof THREE.MeshLambertMaterial)if(N){s.r=i.r;s.g=i.g;s.b=i.b;a(R,y,s);p.r=u.color.r*s.r;p.g=u.color.g*s.g;p.b=u.color.b*s.b;p.updateStyleString()}else p.__styleString=u.color.__styleString;else if(u instanceof THREE.MeshDepthMaterial){W=1- +u.__2near/(u.__farPlusNear-y.z*u.__farMinusNear);p.setRGB(W,W,W)}else u instanceof THREE.MeshNormalMaterial&&p.setRGB(d(y.normalWorld.x),d(y.normalWorld.y),d(y.normalWorld.z));u.wireframe?w.setAttribute("style","fill: none; stroke: "+p.__styleString+"; stroke-width: "+u.wireframe_linewidth+"; stroke-opacity: "+u.opacity+"; stroke-linecap: round; stroke-linejoin: round"):w.setAttribute("style","fill: "+p.__styleString+"; fill-opacity: "+u.opacity);q.appendChild(w)}function b(z){if(B[z]==null){B[z]= +document.createElementNS("http://www.w3.org/2000/svg","path");fa==0&&B[z].setAttribute("shape-rendering","crispEdges");return B[z]}return B[z]}function d(z){return z<0?Math.min((1+z)*0.5,0.5):0.5+Math.min(z*0.5,0.5)}var k=null,n=new THREE.Projector,q=document.createElementNS("http://www.w3.org/2000/svg","svg"),e,g,m,h,o,j,r,x,A=new THREE.Rectangle,I=new THREE.Rectangle,N=false,p=new THREE.Color(16777215),s=new THREE.Color(16777215),i=new THREE.Color(0),T=new THREE.Color(0),K=new THREE.Color(0),W, +D=new THREE.Vector3,B=[],L=[],w,C,Q,fa=1;this.domElement=q;this.autoClear=true;this.setQuality=function(z){switch(z){case "high":fa=1;break;case "low":fa=0}};this.setSize=function(z,M){e=z;g=M;m=e/2;h=g/2;q.setAttribute("viewBox",-m+" "+-h+" "+e+" "+g);q.setAttribute("width",e);q.setAttribute("height",g);A.set(-m,-h,m,h)};this.clear=function(){for(;q.childNodes.length>0;)q.removeChild(q.childNodes[0])};this.render=function(z,M){var J,S,y,u,R,ha,P,Y;this.autoClear&&this.clear();k=n.projectScene(z, +M);Q=C=0;if(N=z.lights.length>0){P=z.lights;i.setRGB(0,0,0);T.setRGB(0,0,0);K.setRGB(0,0,0);J=0;for(S=P.length;J= 0.0 )": @@ -138,26 +138,25 @@ b.linkProgram(d);if(!b.getProgramParameter(d,b.LINK_STATUS)){alert("Could not in b.getUniformLocation(d,"pointLightPosition")}d.material=b.getUniformLocation(d,"material");d.mColor=b.getUniformLocation(d,"mColor");d.mOpacity=b.getUniformLocation(d,"mOpacity");d.mReflectivity=b.getUniformLocation(d,"mReflectivity");d.mAmbient=b.getUniformLocation(d,"mAmbient");d.mSpecular=b.getUniformLocation(d,"mSpecular");d.mShininess=b.getUniformLocation(d,"mShininess");d.enableMap=b.getUniformLocation(d,"enableMap");b.uniform1i(d.enableMap,0);d.tMap=b.getUniformLocation(d,"tMap");b.uniform1i(d.tMap, 0);d.enableCubeMap=b.getUniformLocation(d,"enableCubeMap");b.uniform1i(d.enableCubeMap,0);d.tCube=b.getUniformLocation(d,"tCube");b.uniform1i(d.tCube,1);d.mixEnvMap=b.getUniformLocation(d,"mixEnvMap");b.uniform1i(d.mixEnvMap,0);d.mRefractionRatio=b.getUniformLocation(d,"mRefractionRatio");d.useRefract=b.getUniformLocation(d,"useRefract");b.uniform1i(d.useRefract,0);d.m2Near=b.getUniformLocation(d,"m2Near");d.mFarPlusNear=b.getUniformLocation(d,"mFarPlusNear");d.mFarMinusNear=b.getUniformLocation(d, "mFarMinusNear");d.position=b.getAttribLocation(d,"position");b.enableVertexAttribArray(d.position);d.normal=b.getAttribLocation(d,"normal");b.enableVertexAttribArray(d.normal);d.uv=b.getAttribLocation(d,"uv");b.enableVertexAttribArray(d.uv);d.viewMatrixArray=new Float32Array(16);d.modelViewMatrixArray=new Float32Array(16);d.projectionMatrixArray=new Float32Array(16)})(a.directional,a.point);this.setSize=function(e,g){f.width=e;f.height=g;b.viewport(0,0,f.width,f.height)};this.clear=function(){b.clear(b.COLOR_BUFFER_BIT| -b.DEPTH_BUFFER_BIT)};this.setupLights=function(e){var g,m,h,l,q=[],o=[],s=[];l=[];var A=[];b.uniform1i(d.enableLighting,e.lights.length);g=0;for(m=e.lights.length;g -
three.js - webgl cube reflection demo. skybox by Jochum Skoglund
+
three.js - webgl cube reflection demo. skybox by Paul Debevec
@@ -91,15 +91,21 @@ // Merging spheres in a single geometry GeometryUtils.merge( geometry, sphere ); + } - var r = "textures/skymap_"; - var urls = [ r + "px.jpg", r + "nx.jpg", - r + "py.jpg", r + "ny.jpg", - r + "nz.jpg", r + "pz.jpg" ]; + var path = "textures/cube/pisa/"; + var format = '.png'; + var urls = [ + path + 'px' + format, path + 'nx' + format, + path + 'py' + format, path + 'ny' + format, + path + 'pz' + format, path + 'nz' + format + ]; var images = ImageUtils.loadArray( urls ); var textureCube = new THREE.TextureCube( images ); + // var textureCube = new THREE.TextureCube( images, THREE.RefractionMap ); + var material = new THREE.MeshBasicMaterial( { color: 0xffffff, env_map: textureCube } ); var mesh = new THREE.Mesh( geometry, material ); diff --git a/examples/materials_cubemap_sky_refraction.html b/examples/materials_cubemap_balls_refraction.html similarity index 96% rename from examples/materials_cubemap_sky_refraction.html rename to examples/materials_cubemap_balls_refraction.html index 66c8114a..01a8e96f 100644 --- a/examples/materials_cubemap_sky_refraction.html +++ b/examples/materials_cubemap_balls_refraction.html @@ -93,10 +93,13 @@ GeometryUtils.merge( geometry, sphere ); } - var r = "textures/skymap_"; - var urls = [ r + "px.jpg", r + "nx.jpg", - r + "py.jpg", r + "ny.jpg", - r + "nz.jpg", r + "pz.jpg" ]; + var path = "textures/cube/skybox/"; + var format = '.jpg'; + var urls = [ + path + 'px' + format, path + 'nx' + format, + path + 'py' + format, path + 'ny' + format, + path + 'pz' + format, path + 'nz' + format + ]; var images = ImageUtils.loadArray( urls ); var textureCube = new THREE.TextureCube( images, THREE.RefractionMap ); diff --git a/examples/textures/cube/pisa/nx.png b/examples/textures/cube/pisa/nx.png new file mode 100644 index 0000000000000000000000000000000000000000..d55788cd41a78fa27cf48580c7edf52122418d94 GIT binary patch literal 62951 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

2?bmTH4r>pg37b1eoQp8bLO5NBeZ>mMG zCh-)zt7-?@736V;=+sfOv7f!mng*i5T-TZm zVYn$6B`JdbRfPPBY@eCxdnAL<6r&h{mtP!bqt8v~M>b3lTJ`kv zOk^7+=|OUN_Jo`HzJOgjSH7tPF z0t3do-`{|sT~FfTRP z)p5O%Ek^J1B}hPBZ}ev>ezK)qkFS&YhNi|0SzfE2XXFaqI)M%a?C#MQL^ytE4r9U& zq4v>gJKUTsAx+5?k%Ns&h}hMrN}bAfI(5$LAga3WuPNsMnji4E37iZE8K}?v*)!BDvz3Ft_aEL-Vvrsv^|ETw%{Ih8pCy6R6qAdL|)578FH<_ z5zko)AtC5?qV@*O;b`U9U3>4bu28Ry0!Ncuj>tkMP``YXmvN^z|_J?g7Nj!1@T%WGSg9ffNYg) z2QB)yj%0V?99JWVnz!IxTcv*PkUrJ|aII@azS1LvCFUj{=-GQS`2Cxe8@sB5T?1!7 zE!mJQQ6+|zQ)g$R2J9lhCVBuFwV6&vcLkX1g4J*8s%;uIpx{U_4CV!M5FvM2-gq;k zLu7cQA!m*g;pVJ6Xk?k{b{(~WeLrZp9>biT=S^01>rwUd*tQjCCQ5bHb6X_?^$O;? z^7o&=6FwazvqkUn&xOQ%?=Z})62c=@oT8j7!lHk3lx{)H9BKU9TEP-xE#JY8Yqr5w zQe0Q>r@EY<8<-hLX~b#J2ugaY*IJIHeX27Pwb815qpNG91r@yA%`w;R=Xw7A`*9^! zyNsO7mD42Z{@Qzg?cU(JE=wB95(!Tt`nXztC4*|!;7g0-*w96di8FDo))ps?cLjVh-VylI9ieF z4LIA9B`2D(gnCNVuE(E=H(at=&B7CR$!1q94`Zn7qQ)=p;Ae8_5`4fia9OV|o+v;Gtdk#@|x1@7oe4#t5uxhsyse`O@ zu1K6>NT*w{zCbw9GzLPyfB*jV`E~jh_Bi+lADieCgi1E`&2o!Ga2Fcf41rIhYwt$Y zR^+~K%lL}9&N)L?RH8$dmoY2tPNA( z(ek+I>)SWL3GyiknQ^_Y>$NfvjB8!j6@ij-73sWM}OPwKS85$-Ye(E19p1j~~B1 zt^3*g`KrCU9(yplJAviPHlm?mjD`NX7{PTJ<=@@^4@;`8ji5belK=n!07*qoM6N<$ Ef*^VZ#sB~S literal 0 HcmV?d00001 diff --git a/examples/textures/cube/pisa/ny.png b/examples/textures/cube/pisa/ny.png new file mode 100644 index 0000000000000000000000000000000000000000..8b1facd7dd66ebb1b665af142d84e4d3f768c4de GIT binary patch literal 82197 zcmV(}K+wO5P)HY8Y2)fjj zE@UPeZMh4~bXSJEE~5G)0T_UR^~}^yW`zGmg8%#f@jpuvLy$o1kRtU|J{mu&zN08oX5Bq`V|l1lFchE-6~Mqit~wGPw)N`U8AI01r`WFmWuOcJ0# z2c7v{Bnc2e5I7-47O_4)&d<;N^}CTE@{S zkxkQ=_RfAu0E0Saoj}Djp}5`K*#Swe;~|xkzP|YU?ekCnYDy9T+f*g_{_SsCr)s4) z5+oq)P?~2{TCl-c+C+l;w{n(s0s#?1Fo=;5NB~eGHQyYvowNlA2;f+N#I;sQ0Byu` z5dfL)S(-pVxk|@_P(nhibs^us|21yFh64iubFXT*0IED&js-F?2(A@X0#XDBrk1Ke znzYUC^Eg1p2owUS6%t9@R_z2Nl6eg(0hDU~owa7s zu#S2>EV2q@))E73?k572D3NsgeYb2o-mts9?d(^j*?aeX#gQoH-tXW#bbg=~!Z6$E zB!JzC+wC~9fFO<`&U5u{BACae66NlFUA``~-6o2)NCj~>ZGs5eK`l@vQ3V!2A&CKy z5LGOaaf3?WZGhon9!(Zms#K-cy+&dpNQ5MbZ951kg7-6$D6#i!W)VsdkO~A*fU)|T2d65y5!hgm^z3lPlsq+6&?-uqLeg6##CF53 zqzEutbv(`kIEzBlT~y3;@4aJ?MgQDom|Y$6avRuv&7<3UzpfX~4<1JyN7VsP>rj<| zN*4tRfsS)JWMbcsX})Lx2x!k6C)L*lgf{E|cFeLQVXcSiR4wZ6T}X4f?J5GWIpu^x zVjJKroY@Hi2)o_w%R5*J?5~BF(y&wy9S2r9a65KlCY*brkO)(wXTg);ypAADlBs61 zOi3!Q7YT}#0IaIH3{XgQ|$h!QBzD*4$h2$H2*Ye~{9-T(Se@ZLc- z;v$Jq4Cyx9DnU%py+P=DmRn>T*j2UaIF5%NkKWhwx~|ukpI^D2v?&3EDmG#eAP9!GXGz=Lvl4`9U(kIM5X~5H=U#^*$%Ybht!_gF7((_=w`~$jC<$p2 zPI_62| zP=j-WK`y`)H^2xH&b7t8uXNwQ=3V9i818%b+>1N7@yQZ7n*re6RY)K}G+#bLD^xiSr0(`JevvCs9N?}yVQmxvCrPxg`u#un_|$qhosd)r z#Pi%mB?IGvZn6w>&_G{+vla=vA!gbaBA}xf(fJE3+J6RILZfLhJ>Vcn|F(8Y@ zcafIr*w>Z3TL*6jkb#c~X%KPH&*MB2UXe&(Z9ZPC#f!x5rm#q>Y>RZ_ebbm(R|>K( zYw0Z9z<#zJa)b8_5+ADL00a^P^ehc0pp*nRPM9?w1hWeg5F)vz6W`_h=avC;e_9Mh z24U=O+gi)%eeLNxz;M%aNYbAD0NpjII;QO%EvZgpYC6e^d^|pEx0@*SOqYS-9wSkt>bW8B1I-=Qasw=vytj19Y+obPH)a z0J?`$fe2EyKuu+c1Jd1GC6#5?l++NUlr(U!`&;6Wc*8*g9CFW?Dgf)f?13BJCc#wL zAcT>~8Lr>GoumPvNvb%FW;6pNfU7vYD~76$g}%CH^BQid5{LuRDMVEON<^r~=Z1Rs zI+uYEX;0B%)e!ib08}Btn-Z~VT7R(n^^M~kQR%)eV$gOd#3~K`>+40;U0He`l#eyV zK|z!0O{3X`Wk(f)wI1i^kB`sKzx}`e4{Om1S_mX((+0V(i^s`T`+8Qr+b#hu?;W5u zq@@FTZ&XPNkSRBHAilfuTIqe4IT9EgHw_&`pi-3vQ4E?UYMt&LbOc*#AeB`_kZ!J( zz2Qxx)^Z%*oG=VSs*=v@iGu<{*&#+!lkK=E(eb`Qxqj5~i{aoq*gJ>$Xn?ttz)c1T zVkT9J*tT$l7;+YX>)^1uySxsHG(B^f)-JV?r z*aqyav=YtUL)zWm&@nq?fX7)+CnF)HK70N8jpG}Kbuyj!;{0rcM<7sX zySKd&1F2H2y5*_q+C-6}(CuzdoAevSVCwg*R`VvsxGNw*7V_2@-X9)7I+u(oMYyq> z9Nz^J7>Q~a*n0;cL8OpLRK+TEueH{Bs+IueeUG=)2uWbIU4SIV5y>}tQ9;7UN{-34 z$(q;0_j6G_$DK)Wfq z%GU*N2=`;DMOB^Wh+_aL#=UF>48$n{Z>0kSr|Gjw>o~mkqDUIIGdK zCQf(v#k7$0p7JLV_f7L&DZ^8tcC&;kAk*G?bJVvU!}9s3*0ISAUizSpdod(J+6V-4 zI|c&5q0OKusb)!vWI~76Yws%vAef*TDC`{8_fyjxo$4;Icng5=t?j>YG{or% zjTnsH*zwjfryLH*&Re3r!NWXz5G*7W2+{OlY9z&*czaKevJD%3X)S8KS@x``1&szp zYIqJ|FG*xQe&9IW-Ot|{>lR)OgQ`^VerAkEwTu%=4(_TdB> z8SjB`B5so1yZ3hQxnI5eTgEL6`*lUSko4aBiZrem5!GRvjOJM<N!$11PC786RMOovZi@7VgSU1xn(!?8+d>(MX|~5(F(Z+&N$$Eb zRTTp~-o)YlYot5({?9g&$S(M?uTm>5w#L2W!E5HUoh4u7qv7`?`dXQb`Qbplshr03d0% zC2K_s1f{`+aKH)>DH@Ii_v{=yp^fQ>(o~>%(4iF+LU%~5;_T0O;BDY|r`y*n-rUdS z#<6rP*4x5#$3Z+beiW+gOTl{oHU?Fry^Kuf&RbRTz7?@{K!a2PG=|RBIQb$+5*WL7 zZs0Dk4!V^db0%b1CI+lG?Chjhp7gW&x073g3ugVP+R0sm`c`t*kwN^h_@66v1E~Uo zy&va!9LJzHjET#M4CJlb{B(MMF4vzz=X{~zwzI&e#j&P-LW7xqHVD4=%Fp}0-+daO z38%R#38fBD1r@=nRkfJgZeRd6;{@ycU>amTy1QK51Zxx69j?Aq}!j`Ks04*=>t z?MVX(jM(k$&`GG>+oMGf~85NczDZ>*9CiAmX4d` zxsu#FHcrsUKve*tq%|1p@4qVz@JE4gfK!4fOdBrcX|t{ zw^KV_>&WE``{eV1uMa#620D95p)ZJ0D+^HZC~F!f6UVpfm)-y zjmb`_x9!2kQ92#g;cYwHfkHQ?Fb`|eTwt%GypD+s(LGG;mM9Urs}9EsA%(YE`O{$K zfa2N4$3ZE3W5jyNF{ShI%l`i6O6y4XIx54O?7p5DIXICjRsDM5IHwZ@1V>>k-mw_~ zW^Tmh1lgrCF(uyFij+$9ec1?DU^^&=Yq_@)NXQlpuEgOQ2}LCgs!62ff%$_0C3mz= zxYK=W|E$2gF;cHg27o)pSb5cRC^(Nbk)m_YN}DoF3LfO?L&Gh&N-Q+A+g* zPO}O-nI(yz)q0dYJO3#a-mX^OTw%BY!x2BYY>Pj|P~zUunPAT#CdaAOHVxlMy(FT0 zO2E5GdN$(hsNv~Q*-r0dpnfw2z}>gyK4Q@g;0%yeL81GGMU?l&+PHILv&Y3M#0=28 z>bPq%vmIoMwSj0sfN)*UIzNS=H&_%^%67UZEK^d0iCOBg|1^B@8csPXwX`xH1K!%1 z7Xj5;E8R{2v!PlNlCJA(!L3#22|KoXs}}AbwcmFXf#!XS?vAu-`MMU5L3i^;hb<8+ zYq`7kO9_uhU{ooLciy02N@DP~HxW>sUP#8)R&kwq>*xUDPNW*90h5&AO%zq1A0JjzwTQOm}m?>hU>nonyNVcN$5Pbh3_<2{l2d zTi+S{n!EuUiCXSXwr;y2xp5EB&08BVZUK;Y0O4&5vW~UZylDX>>~M?{qTf4*xcTJ% z{yq04`Cb+xROSL#c%)2loVYib!8oOQi`EO-#7fn>_++#DX*h)pD?}@8jb$ zBL~klFkm_GeoBjA$oMvjflzC3wWv3`o<8=j)f`7Wq~vsRhcTz(6T^?k{F<6I*a;)^ zR~2I>4L)D5jxBBkxMuphn|cKumN(%G+YaJ?L{R?8(E;LZALNo(?7! zIxt|Q=y*KNi1m2D4e9nTVmoRRiUFf2-V52i_fKtm4}=AhMm%(WViyD@b-S`lK`FD?F$V8 z*|$15FF@;v>Q+o`?2AMAY+TAE>ljjHGxgL8*b>|Jole9%;9ZdJ@8X?rROf@4n>geaUDXt^w z=iY6z1W{D3t?^z*_18jz?spzyMm9nUwT4sjIJ>Xd6B}a^DN+w8jY|_--z2z-0&->Y z;ECdqdhdknEUn(moxcLuA^H+BB*{e5Y@;`9f>!wsc8*|kD;M&0kn1>?-TT_l=k6Y( z1_-)iPt!A*(IEhh-atT0(u7cBV^T2jomRdpe?UgJFEJA=Z}A7x)I-ZTy@cpR?sm;>&0K0;+A%X_PH z;s6Ak9_pN;!3GBx(7Q?@dqU^ZZQ`!AB_h3dt+Rd4H%O)P%*cgyKvPAXAD_OJ_aUn- zsqIwRAuuI*QeU?lP0oX=((s#wKE^h>o~1&vU?HUiD&2Oc_wdSYqc;+#8qgp~_Un7zRe5k^mFU_6YXs;_UvS_iZsRu$Jmdivk%>$i0K`)giF zBe%}+h6i_OfDx>>iq28}NC(-yM*^C>2@=q?U^tt+ThQ16Ap9;t!K8p^pepGr*Rx+c zjeWgZ+$yZYki{gO=51p`WKF(?%smvaREtxmMh!#YPQPjh!=2he-OjgogTomT0IAX3 z62w2}2Zj%126>owMq$ui0;oF3>?#c@l*bh=WehAr$fG7w>f>1KF86evdE65rDlxtW zOChN9M6HZRGY-Yfh`dqot?TP;Bn4>m^{s5xf~}y|K`QN9$KdDey{ghLDIyoKs({p5 z5)T!6pQ}`rwV;~(eD=O)*re{ApeJlSNhR`*$W-~d6oi$%@p{^B5WD;PdHwCT>$>7i zd+%!xs2IBk><&mCONrWA$C7|3aC|%-KUS5yIF5qn-uu3*0VV_rQi;sq zpt%6?4)g8T6D5p>`PSxSr^&+B^!v=iFJ3OTbsb0ewd3F-Y`6#XF#%f91k9@T+R4pLBZdv2*|F=4IYcr!Jy$xBZysss#neUsAyHPa} z3GdeccqTvT0C20e;eUPw_q^dT!jk+964pQe^PgpFsKYxoL1c0Vur>R>uaZ=%sv;&P zMF94w7#RvCbycVueh!dpU$0p~<|uBxz!`NLzB3w*zyy3;J4-Wa0Rnxf*pE3M-| z(%m)mB&g$nges=pSJhEf9`3FM5vtzX1f1o4etdWWPBz?OO~_=ncw!Bh6416cj|Z#V zEk?E}EO8xsUzkCykI$dEj8#0=L8kla=VqNe&ue$FSa%(PH%Y2GOh)~P1xj*25z$&8 zK>2!&Iy8@qF{f)$H{kTG$&6*!gMTq}dX#qdE#10(377BTNWo5D$cEly2De~e!-G7= zg#^~yZMuW#ql5SH%Y_AiD5*xRDzb7de8X3*Be?hF8-L-}CCMVgTi3>TF>Y!lF2XFW zb#D(Fgj68Bcj;zq93vkS=X+YaN88h3@RDQCaIa&NU|hRIPRN z_3So#OIYV&XY$D;DvG<-ihIqy@7F{&6yBYFWb1e3yJHLBZBMJOW^l{)f+=bjN-62^6QPvt-xITYq#DH56r`F28u&;OOWF`k^J!-IlZWUBB z={*z0Q)&ak9)+#`$AABC&!j0!t?IY`)%UE8+UbDDQXS(=4)z)^6G+4C)-6U=*He=cb zcW|5^sv>z^ul@Qi9qV|E*CUC&l|*Hty(fd@?X=>9;Yl1xEh4B67J@(y^ARX5Lw= zQqr37-6g4{o9>F;?!N5peYvmQdq2N>Z)b90mGhI=tH|I&Z#bO>v3(7i+7mQ`@@diM2-uj70G zB`v*|Z|?AA)^VackvumUiFJ_OZc97W@^d9ylj$3VuK7U!CKc25=^=qwzT6S0kn|*m-h^-sMs+OJj zn!#csJ6NATO!ep|*Gr|U)xB#SlU90%y^IM0-Djdi_v}U1I_A8f-90B<__}f~+uXg* zL+jCEB-m9EG=m^Tu3Ifhts~vSJG}Lte;=uFXjSWx^<#wmQCR9t&6vIN9C=ae(TQTI z;CnRe9)_Q(3;?|snOaeyuYSGGa{KG|?2Tf&wQ5-D zdVC(|=a`W}DolsHD_u#FzAm`=dRBV!;oFY8-1T_G7Cf^bwAbxhNo!eObL$xZ03ZNK zL_t&xRaFG)JUh=0nt1L`tww8(-4RDw&+Fyqv-WkpzOU=s{c69O4H~eqv0uKfJYRiX zcs=|1wD;HRtJ@czue{<7Y);G_-W?KHXAjUk)~}yGK35%&AHTi6@p{Sb>zloU^mT0; z$~~4olWg|x>-_Nx*HPzrEPbw%$j5nV9bU)r@nh`!!87;#B;elf;8$|TC>kUaX$iDA zXM`lVz{ihI9iLZH-@nhe?Epn|lhisA47?tDg~I^b6MF<_$Yc^F@~kTTNPYCXgfq|} zY3AtP3s-c82aaC>$1f)7&V6RlgefucLD(X>4%N}!=zTs;ogWEeXKzDuFxhy?KeZl= zmp99G5a2B;-pl_E8jbS7=`>hoM?RUv8>P zcJsy^F;dB>(T)hRDOPW z_tLqM&&T81Eurf8Si)V$!|Qu>6ey|m5ku(DKkVms_BB$5ySWx7;<2~Zic~t_9?cSh zG6$K&$D`06Bx=>KzkY-G?XT;{A2#P9*-u9DsINF&kmUL5L-J0O^8A}2uv%_MYj|A}0m3yvV zw<7Y6ZM+ZAm~!#X0ZqgKv$kz8SjSTgh=@hl=x(~nb5McrW-n_MMtyE{ zb~lhncBt4n4qY1)c9rL-DW*62)~Y;HZZq*&2fPGp}}49S@{SOA(N2ftCFNE6A#H7A11V z4Tb@s){!_BV(qVg|K;&1XutY{7*V6Yzw-FRwBy(JAAbCy+rGZ*@gXYi{rLd2&W~c0 zth%V`Ywz!;RAE@_BC$kxqJ3inoqega*JrxX0|-WpR@V~d*`vXVnLQ(YudB}=kB=X} zUeB+*zRr(dNb1*LzV?%^XX2FVSjgJmhc`(d>m8x#Boxg%vUW!cmH-y8qpp)f7;aJ% zGU`j*0HO6VPAS*3Y<(cNvMcdiDt$-G_?Q>7}aykB*oua{QQm&l!YZG|vG zTZVz$US&)Xd-KjROq?Mz9x^y@S`k?wQhW~vLa}>8f)Hu4{3F8kUEZHavqm(fFfSb=Q;o{Y&J65YqyV@ zbO2OhB(1gf^Scrr>pt_tE@ai(?VJy}0-)z?sRH8O5+S|5f5&bqSnK@LACG>?mufw~ zt~$B|LHn0K{QlQ}qj7932vn)M&C;s1-LnUvaxC816-liXfISDsekjhB>|N_|i!9)R z)z3i*CAly8@AP)J1Qq76s>#>*{%MwqqiiIJ*ZEMb893={*Nu1rWX|#&D2R~mds-1; zt<2y!g3=ra%fUFqnuZ*U^_Rc=%h(42zQ4Xg>Eq$5z4uycQYde=D`9A7UjgUn#5p@G za{*4>3_Vp9z&f}NRp1vO)qy~{PkCrhMmHkaP4`;Mdz;WYybYMEY$VY%)f@7KthjYw zfjhXa*F7I$!&&P{9r^l=N$8KqgV!^@I=$-QMscJs)>=0_v|S5Gm2P(i;2bMd2Su$l zIWddSg2VmV=_Q@#XR&5PMHJwgIdogn{{A}GIsP^!)qRSISnX>P1kc~U2xOZi`@-IG zXYV*zhkCDgUl+C|^7{$5?1y*&*srA`vgY6ua^qA!+sVcLl1t zME>|g$KFqShidojg>s_TQCh$_LV*cL!rn|A+TPao%%ep!ZH36M3V@oTi~aZFW^9-+ zf>db^V3mRzg}0K@qRPqj`aV?0@!(npdjz~IoR8?zrzaGa~sxVb^P{5qxQrGKw&zG|15Hii-4n60_^&H_hfM%dM z*E$X@y5fHIIv=<9caPwqy(frp$4%xDri<#?qqz?NtDmeNoLdSoIPYgzrq&{anUU{{ ztY|$UQF;DmVWK|Lx})9TeXip`J+~;f@7!3Ajl8&4aH@W|{;bD8=K1fVJv!OfUZ0QS z@abuOjT8Zy|1Fst;E-*c1*us>3&Tcjyu?HgJxZG#k=?S>*a|Z zy{_-CM)vMk_v`x^=Y`teUvS?F6wg;~Gx7MobKhRIc*?WS9 zv?XdXp0JswVt--IMRa7ikoR)7phjR?pG4lsuKE|nH60x zEtwU+`un*kOYa~nMY$bB1(QAMmDk=Q3($Sl9DUV$FbUUz+c@Mseh;Uw(QkNs#NQO4 z(`f)pboflwwG9fIqhpZv-XQikYhYOEeV+iEgIqZO6g~X$Pdxq?{P7p8kNo>rfBl>A zyQcEgs=bTc$T_ygsL|`pBCEy_P~z7sb|>wo7DY2mNs~uC7a1@gKiU=vT*_Yj##*fBxg_yxU*3POboX_n zu6=>o?{Hc{ji84i-1#WmGrsA8>D>jakI%d0zvZ6njblwll^{#KdyXlMG^W^~usa-b zr<@zZQ3k|j((+iEIZQFVf2NQS>%Dj8Ff%O5iRDwT*R^)*c^&5wXD37stqqbX&8!hF zfIo>4+eDpqSFP*SwV1H>rS)jEBq;a)Z~z2Z zv9e!*fJ*w>AhgaP*X^PW&$p5GrWTW06|kWFvX4KKF00t$A8lKnM4jH3v?e6y1V!5b?x1FJZvMRYR<=t zV0`fPtjEWGZdP&ceLbbBRnqeJ?>s(sU+X+^uKl`tXD#OZ+^;XqFpV#spZ)!Nq-(!c z;O{S;MqdE`N4%F=D1bndJwuV6!(LW)4l67B{lCl3bT`>#HwmDsGT)1E`?Cj& z1aFX%szPOEyl`_h)t_#{Qe~EJ!!rg|R1_&idgOis1j%Hb5jr#>YSwpD7E7d9rY%@C zQJj&*GT5Lf*2&h|2vYD-VUbs!{I`dtM3fx~$F;5KdDRXq z5-b&mAYw#kt3#xC;Xfr4RbgV4tW4S{LUp8{bv!vI+uG+*nPb}{E6zjnP#u}!YvDsZ zKqf1Z0Ue;OwMfC(0SyP`bLc(i5BS}u9JlTDK0e((zii)q_wp+I4yBKCe|PM!nf&?3 z`~Ual$9Vf!w#tn-19=>xS>Y+l2zS?QxNS;sH>}`VY1;VRkYvCHgs zz5hR+`^y@O_O0o-76l-s5%6gs!K{Y1rUA5)Sn20dQ^Dej zs*=LWV&)UT{X6=jI$PKx56KGBK&{GbHU{ac0ZQlbs*nK)4D1z769xMoX4+8Tgj=Pk zrl&^~f%7Sa0*@?#LnPFEu{N{2cZP`{#K5{PNw4e*XM<%55K? z%6C8aa6@SpiLZ{o{d(L(ZomKZ(@!sd`qS^u$B;PviqFlr=OKfYp{xvl7WU_nv7%(7 zpvs1xzBHqR8J&Vhoo7<1V}-9Q0=iG5AiPLdOYMM5Rz$hydQLSzpL&1genVunAzyTg zBGw^{b?*BOQJF3!>s+kpGLK}G%oPrix$pa!l3t>5K2DK2XFcAdAS-lAMMU9)GTssN ztT7Z2GXltfXu9XHspgTi*}xyq!1f)A6Ddl~r|x$i&x%vb+5ra?DsYjVui#Zj84-aj zu?s<3C}BZIt(7RL3wjCB^w1*E97}$v+jRH9hfRW^wVRVzrEMS%r2Ld-J~Ns7|eV+_l46{(Km2(A-OKmWK5g;|Wjbd;i1+{fAACIJ`@8)(0WENOzMotochu)kdvPyLjI2yN zPtFk(A;UcYsw&e(BUHvnR=QV2b-NK5v2^bAwM5&e=^kU>i5zpw3~~oxLn|g#p_0Pm zJmvPXfaNtFZ{z-H<*7D#o@OJS57}?xu7qZ$+F5}WL1vMegCyYs&V3&;nG!3CV)Fjw zZ#r&PIG%^zcB1?|K>5>vK^`semp42q@)mEqB{{FO~X(q^7#8MB(#5=FJ+ zXxX&@0q1sK?{DqpyhbtY)q0s|Nk<$4AZg)CKhXGW+^<iumh)&|~{=e}oL6j%k1S`EC5$mw&eH zyU(8qzW(mj@AsG8P_;=zc5aIIO>OZ4TgF-;CJ0h;t+83oVWbczzzkI_KVd`02I1ko zwJp2QA^iYaxoH10bX8FNS0^Dwfk&)2MOugqUidXD=gd> z6@phfu~9m#PVxX9?Z46ua+$|FBYDLtgm$!-O{5S&s3=&ZG^D{UYy=T4zeHx0n#VE~ zCatr%A~rU!kj8q2Q3U%$w( z!OUUWj%rpRT##Osm6Di7C(o606e^P;(4m8(RXhvszapOYcHUkF3%?vIkUyN~whxr( z{X74?$`JqlyFv+MRQ-NaRFWvxZLi1tq0V1&t*DZ9Vjo^Pwp$(tA~{Abw|&p|Z?+|~ zz)JU(H7il@Z(rv9(>jm#0u4+-J+{|KpVgIf#`8JGBmqdos>l^F2v*Mh&U7kog}BCb`yMZre37n3CPpZ@u$5=xb^lZ9Xh zeuZr|Y0KXAVQo{4s#7i|Tmyt#5-gah6j&+1Py-VMs);bGe4QeqI!g#qWUTHoDxm60 zzFmV5NUBN!m+cnWA9fu>RO>vLfk=Qb&E+5F$W(x~t#l$=?>5^MAT=^QR%O`zk1zYn z58vNG)a$3`w(t9{A|S>#KYx1p-EG`2=WYLF@`6M_X!EZ>zvc0#ZnmSE=nzw>Qc9rI zG=a_L^D%<1|IKm zKB|N&pdeOO2MK1K=K-A1(@&^zZn15p2+{Z<(^H`;vv^0SWV$Fo?PWpl_F zny|}CDS}Yd6N+AjZkK&8i=NjA{@;gtrDe(R>HbBHHv6hIS5BB!VX(OfzSr(| z7aQOI@xT8L#1OfSF?uZlXkn|;mdqgK3+t@q0d)L!Y}>#6`>*TyZ(X=*gvdu+^+VG( zv+@YB$Tf7(2E%!tIG&w*^-P*J6gK>{dGp7c?6(5*+gHGOyVrjA3mOvTYqLQ=GvfX6 zcDT=NN*1eDq;0!opd9<%<}?$CN`=gAv!M}IDP|d&vE=#OhYT}S6CKC<7v1)?7Qi64 zxd|FbK^gOcM7GB=T+F1srM^;S?AvHyV+P3533so6jIq63p6WbtdESuOoX)1^$o2k4 zUn2`(LNv~8+hAK}A>7Q`C0ZbSwHd5enUE{s!pi`CO+&a4Yah)3?V`C>#k^*se(3_n z#t4XfSfW>B&?trs&7jax+Coj%74FQy6&puTqEbsT8Ombx?B-cb@k7Sd>kv+{#%iMk zN-NFF5#ZfE(!Fk~qqCBi-CBx?5<;!~M4r+B!z=qkQET|9k{s%uah_#mQpCL0%d8?x zrHcOc=lAFTOyD=0kus4BWYPejRJ!-cW>oz8?_XYiy5BZM)ifxSGFeNygGVhrT|^#V zX``8%2*J4KyR z$m99s9CN>WR^&1c8bmaq@W&Vlv!Y}M_Pd#xj+K!s6yR<1+!Jwd>{Mpf^IZ@ct1@M~ z?YEskR;IOGF^Ga#i|vb|S+Ne3i<%USv(6Qn)j>?sp%BCPZWRX@*EPXa64Vr^fKcQL zcafrL10jFgXljQF2@y%*$Mjpvm#n2@>mPdWcfspqzGV7qfrk&d^AbS`K&2?i&0VWetB!)s_lQnN}bt!aA*#**k>VP;jXfLa2a!^W;+ z0HQ)WQw2;B@|Try9DWrh_<^6l;^)8C-~UT03F**u3YFwG{<7KMWc15I3;U+9??}yr zuM?EYm|{=Jxels!LMW!mzN@fNspIxK=Fm9>Ftq@ba(bS}`Fy@*W%|nVFp*R{&ILc| zOVl>gT}{f*=fW7Yc{khVoMVg3saoscu;2(^Jdb+5+3mi~q2XMIFlo~>@a69#PJ2G3 zZ<%UmRq603F!yb01S6T%t-qZV>r6e=8aoiI6Xj%i0ytxV$YQl>XI5sJ%OOj)lUvY| z%q;iS{3!ww-32POoRwG1(ypGoYfMt1YJ+?-v#V86$x2~q_hnt|t)5h+b8xuko2%5f z>2K&tj=m5{*S(TL{rw+)>S<`0qLBc?Dr#nd-nrro)Q8!qLk8Cp4njt{)dkOKg*%f< z5mkyHL(t8~C{cbm`1*^u>?l|JXZLwr)0tepa)?+7C}OBOkEjGB(m}m;ds%@JGm5Nr ziVZ_KY7-fil3bOU3_l~H!D$BQ>%V;e^7`r1R-`LBVX`d?Y}#A)3D0>YnFe`z>NE z5zn+aWelNsCQZU4npj*eHuZQ`TL*_sk!eZ_vvMtHRx)jjVgB}>>F*h~-<4o>%WF`Y z=P@2tw%;6_`;CN}M5M<_0O>aNOhiV1S1(!J6yY5O=-gSH=N#iQ$wft@o;W!^tI8lY zLuG|+StvqlDNcl=OU0{*%ByllsuN+jjGKoqjip3;K-g;svt|=1N^JCY?ZVJEnos`0 zZ@lhoogi&-P{?kj2Aa^B6$sKwt?kiD z@hBN0I%x`FM)*2O3>Au@IV&)Yf< z2(^e5XL!7BLsZ~$_Y(bq-$aRjnS0UoO z+R>@&JUg%v_Q~gWR=IJpB;@r-?TqiJLmHdZ9X#lpXqUdRs@P1p0@V^_2$0&U1E|{u zh*vU#qQxtaE!TAyAM+1B5;P6{>nEu$xwWq`*S-~(u3rT}fB#QET!lIwVAIG_DpgcP zKZ^RG6eXko5|REFUwgJL6BmkV8@$`6dG%Hk?U9biQbmTSijMA@yd1jM4d#;U>T-FI ztfUkw)>(;!Ccr2#ZCF(ysy>RVhDy__6X-5av)NaK-hv!(o7+0Q>Fn!B+5hE#{L4=Q zDN=Npm`>A{y5%>dIDh%mzvi4zwYY5$+hmMwjQ{noKgaqL;sipep^WEq2*c#GskvRMFgLRio(xY=c<;Y1%@o zV`)-^*d+HK_^B!K7|i9S%Rto zGR~q*Gwgd-DMf9R>UusER2yyP5&)w3?H+htYKsjzlaJ#8zeVk@tbV`TP$Y^JOR$KB zk_tdmdKOp_)M&uPRd+=ZWPgl^if|FlSS7lTEsKDpYDOzkV7Z~2L%|FkBc)U|Gbjof zU96DH$q=wqDx96@mM*&%q>EZK8Ld}_Dpla&?Yz@&-YPD?N@5D2m8h!fT7<9>L=&o! zbBtU^dR6`$Rm-s%=z&<}1zBgw^1OflI{-u!>-gypIrm*i)0vp;F7nFSB7cPkCsZVF zFYf0p>+}eLs@nZEkEaTAyJe%f=uPElr!*FX_1Gu>|Ki&FaqnD z`JfV6YP~e&wXT9NOK{;>G*q9l(DxgduqWQts^2v98#xpunJU>)Y%r=a4%9xo&ZMKmXV1?D| z4;bnIoeY)Nh>mcgs!}k<>`Jy$iIj7F^L&2&_Lx81^L(!J8FBd2k12Nl>2@IiD5fNy`; zf)u8T!~X5}W0EK`^zMfgw2a~At&7@ED~{T`rAGdIcMqTtr*T8L+y8e-s7F;9NWT+7 z92aDkR@#3wUPrFB)_$V1%KGfT1)^~jScGYiivivKP@2lx0rcQ9ytP%wSo^0IH}oce zI|Ww4b8;OnEvkZ>B*c#L=h)$sLWF3-O?GKremN`H2&E=U(`yR3i+LbjLY}+m8w&g%% zVb0riS3{ZzpnbtNr+(eAL0>B#Ch*Gpo^gGk_yEU1HE2%EHb)%)$$|_}oFtF1HIiTB z1C!2(EzR2uR*MPSIa`F3s?|mlK{%rkhOqh#_&w7rA3PBnI47|Q&_X??PX^v{b)4;b zDTLVJ#NQnKdScd7=NQv5O7z3Ume0yIu~XO2H@5*x44Q?cAm2zm8jJ*1ejoMgudQtE z0Ej)$qSH{fvk?4<9Ds_*PWoQnOM#C4`(A^1RRvQU9T0ydp91Q&IP1!9LTs!LP z{Oq_CMrEo`fh>LV!51eraO3w(Nx}+G8ow?#PkMWfW7BjgW%75ViwpC;x_h6Gt@h`$ z*o<0dS*OVsJo(nK3e=&3B*h2!DZJs{J5@rVjz62ugNUYR9UR(WP+vxCmXw%>Zfxmr zHceDCcoo#{CXN8K+N@_cm4f*_8%y7Me{TU1;2Dt4RsTt&!>de1vZPqxQXuMV^$kY+ zNen#|^$i&p%`~qzV!BBf&Wm_%$Txoa)LXW~<`imtem97uu&>dl;F>e`l)>eGPmBy~ zNdONEQKS;OH03{u>tf*uIN3h+@Tj6{{@6l5xHXnKL6mu}a{Zu^7oo~^`m6mu@P*Y%=OKEJIt`9L%Do= zn_$^NzsagkPxSZY#=ziwGN2p*fw|AYbK>3lcb4V@lm#aZs^=TkWo}NI*P91zk*~y` ze8S$)4-R`ikSxFi2C)oR%?1a}`pd9BVHmrLW1G=BmpivW6fzHA$+SOv-Hr{A9bRf< z4V4|3s6kUWrs>h!k52%SKlt!~Ifs_oe*Pt4FTe~3hS93VR=$0%W;b+bXXik+)>o|f zocXoZv*>VcY2R0>+zWqHCD|Dh$H#mPeg^CF>BksZxZ6QHtl&lI-k+bXA8_HW()f-I zGc*YpjnZD+leNcGXD?y>^0a!GmVrjkN*89JCNIW3k95`GQd#Q$qB#WJ?g& zfF&QMpJ5B!SQHP)9gl#V-^d+Pk|KstU#`X~?mM?1DmVUNoo>NB%jZ`|_E(mupt&F1 z)sx4WCT5o%{Wa(HSicDsrfC3-oJ?25C&zixIj;&)H2+>dX+p4YQ#I3c&pgPGeGs_(p_l@{|Jh5J4TyFE(& zR~=8PK17{bo(?O|{OCXwo7_5d(}#JqZPMt*!RDiYDRX%JaKhF7>7Tx{T|-=z?a(nF zEVOIHzb|Zgn3B7A=+=uR$=a{yUL-kVX;rK*Rxs>oL|^(!XeO@|3^6_%Vswd9N_LRGm5IL9lqXd2!JGqL7GI{DdaCDtxgc z9nVhll@TWktKpP<^d?&6U7Uy zXAp~Xj%ca*{WX~jT!S{AtJJo?oX$64f`BGJ&pP{~+3yjtEP1qxs*RfEdU^*Flbl|`zbr2}Zx85VV-aDHr5JUt{Zq*_F zJ?2_{{QaO}cK+fLSQ%JTW}0;Vn3E9@DRwq|D4^g`tYR0r;&HoKy}U<6#ZsdrH!z&5 z^qkmGSJ(Up3PfGa15)x7XE+r3(_Xgx<`JzO^ROCEG+E#%AJw+LIs`vU zQ4tEQU*WLhVwZ~wIWWAW<6%$Tq2v@(`{ox^)kyb7ndZ4S)75i8ydD}RVk8((CZFE# zyBq$g_vx00>F+^tVzbF@>b`#>lfL|eKXg(agte_7m8d=dl#Wt|Q^Qt_Guy~~8O;DT_iubwUN=q2(AW?PYy15$k?J@2VpFNs% z??A6cDQ|ujY<&Dw_9?H3y0cFg-ex>L<$vB!sJxBe_^d-+n|%A0#~OM90zNX$v;e;u|h z?pFHAuPAR&_Wdw65mPN4`|-=XeRu18q1Data4f?E$g$f0Gjx3ihZ}v$G+Xn>t=5a@ z52F)ycP*xDT^9Dc@MAS_OMs4nSfsSOel!}L%XLD)!SLUWfu3!-$njx52Ip1p3zeQx z;d=QAmciJJO4gXooWJHQdksPeyr4n>!Dz&v`DO=3i(F@GJ3Ej=9d5nYCCh8P4z%B@ zSV8o1ZsqQBC))4P#dWg25FyHZe{08JYDXx1m!8fbQM5(z9R+r)!+e&w2DWDKX0)2Q z=!Hv`orW5}%4p;p08})RhT9oAh=TYswYfD{2#b9G;USnJ8Fr{FWYli{_T5c6Edt&#+0_uTILI7PjHvG?-V6?w zC~iL)*J)g9Z*UrWB*<+~oUw30s}Pfp)BKPmu+Y?*a>A}=KV0rRF7u)?n>PyM`&UY@ zHF0x0b4zMy=|5P$kTPBD%VkE*c|He$7(TJR!7P`n>rN>Hq!?pkUr;Ab%0o&bH6^g0 z2YAi4#t)acB{BdTps232-b zF)V9%P;IidX-W0&g?^;P)7ScTBHb2WH%DKPkdv(H*=ADEUB!G+->dK2cO;(w^mi;c z8wf1RiEXA<{~#gUR)wGT=NAX>R~YsXTC|G?;j8@KHdXMR3-75-_AF)npUqW~;~iIX z6U=?_?h>XLw3U&nIif#{+yR zV1q9`b6s6tCIF^GV9tGsA$hj$K+{j19$)QJb7@TCq-9@bEdTK%1=vQfo|*OZ$39Yc zLMUYr$;yT6jMq={ApU-Hal40oWLMSX44*w@S?&8t7Fe(jKR>6-X9Ux&IW+UEJ{O#7 zP#GW!QFs4@Z5xW$SEW}rLA3=BmXRlapA1lXA3oLkKQ&_ zO@&E-ojvVxq639 z3K6Xw@A_R-RvYeE6sNEpl4nBtTrbv6+3>;gL_F&>*H6)~i5f%Gh~&*SZRk_!Sy?e4 zRYjtkdv_&LSXD2f*rGf0t(r3?u?9{40>+h4i@r4_N|}CLYH>&gIb%tVf|gY@I>+Zf z3mV11LkbI*dEBr`qxWFr@e}RWUt^4i(m(bDy|Wd3Vy7n#pagw*d3F_cvryl9n~e(^ zF5!HQ69RCfwX!=|yLL+}wQD{C_NqUFnRk}js%W9csZx{cnYO}F;pAmlL6pAqc;b4I zcTy``7fX_;T0-o)%&=eG)ArujhBeIL<#W)0H!GpZ%NNz7|Iibh4nz!S+u&X&nOtx7P&8OKT@9;Dm79R~ZktG@f@b~jTP&jPvf z{J&z~kupW4cgVjmL?BHpsVbN|c*OJDp|sqSMq0^fUWr=kuGNJf=>?0mS#+d&64#N% zw51f!)eM8L#B3V>!%-XDynDwabAIK2Bk!A^^unh}VCM3OMd-$aK?)?jsr*G_LDT{2 z(50a8I1T|*$LAE<0$0@v#Ik{Vy9zWx|5*T@sDxZ$?`|*q$VR{yXD+u#R;`Z}4ezxc z;xpp;NNW;nRR;a(D!$8QTwdU-NkqPMx9;v?y65Mszec^woF#fZd;JSO@kS zm0uykuhx=cT$}5kD!UH`3PWp9xa z3PCNVx=*q}Z6JKnT$kPNZsoy~lf0-|TT}g$oEV>ruZp`}_xv6$$8s0L;s+3>V)-pG zlNFS-b8Ef{oF8*5wK+ALfKDlPsVsB1oyLTN6z*7I%<1i}5+_&8yOZkx7W1*u_M&ya z_1zio=kH?BFCTw_*;;|@%fh1`!6|6F++xe2atlSu-1Ii~>QH9>5%kG1uPUM=$N@ww z9#BW1)3~u&h*;Ns+*MJhc6*(HL*M<~E2whJkw3U|&Vr;$naeejV-#Mr=}sLUB8DG8uk1@VD}*Cf~dg zoc>~Ace*1+BX>ZftO&b17*^05hi7rIY))y~Bqm6WUnY2{2#U7yxzTdPsqO-km-b&Q zyTjnz-9c{xI5l}+yZo^2bf6}HR5}bK@rcnixYMw+{ptJfo>Nh(ig5e51J!O5-MQ>7 z<)zxQ29hMtMFqUEJIkJl@~KDLc?MX@t!44n8u~Q@^l)QO?iQXD?A?ytHbnU*254>RtrFB(~1_lY)j{auuklhd8sR$e|EowZIno!jwe z7M-!S&3@F{f>nMy7rL$W%hkL`HYutqg}<0h%;VfRZUIJ#3Kn9>8NO;}4@02_PW|`l z3lLo13S$feSJ1qj-JN&1K2Hk1JTlRstFyAn*4{o~Gecx(z6~OpQ;(MVbAaq8dql^| z7j4xK*(&9BimIa?In?BZ!KBJ~klulLZROvVHAf+<$~9JVkbui3-*K!9DzF^Txs2Bq zRg0Rt`S>*@aEwE|#EY)!`@>@3 zmr%=PEl^B&N(%D6_A$Uiqj9e_(D&X=cD2&M30HBzO>^Eqae?;54~lHtVVPIr>1ra% zl`4x*C1Y@mI}%hDj(=FNb}C)@-ad!C{{c&(pxm0P8-wek1>VO@;0ZDghA2jZZyyHJ zZ0y9m6So|q`G#Pe_xhu&Fb}}q) zvwvwu&pgFi~J#o8SY!|m^8&v%Gv8O3wPHEl)6kJashN@4w&Jqv&*hY z1E$EaXIJ-nukvRq0WU|037nE;m!m)H2HemNzvBIhn*0#Zt2~VND4G2Jt9TV@R3B~E+mCr&eQG( z_1p54B0CHA{hv5`sWi9=L=n_Gqa=*FBf(b@G73j#CT>GDs@L zs5YeK^I?D}Ej~?$c&sL_!vk!Qqi;d(Dw$}4VLzt!yr>!|6VbE<%svRxjLQ(F?QtiR zd`A;GqZ-Y%nkk{!oZKl$KX5zBvgz!`j7el_(w!2*2`Py6^XsMI6LkS z?Yxs%bm2@@Q6h~XRYknQz^y`MScZ=m+C4DC-Lk7Up0h#neVbR9Ou9b3&p%M9p^qsL zT_zte$8aC0_MiJZ%fI}3tI<4v_&Ha(<~T)kV^gxfFLwLG;+C;xj*~pASD0MrjhLmC zZdmkqQOuI%fh@*%udP>(wZ2WpBy_+%$@UABZ^U%1X*J82elnsm`^aUeVw8BFZo5$@ zptGM9*S7uIXEKkVntIB7*hVy6Oj5RfF&%*dHNKJsh8Hgq&KOK5HOMS+mmiS&3by?cU+Uj&9P+}m?FOBu$}7L)Be z&7og_x@4cIYxf*_YlFGxY_X2wxA>)32$*xv%fT{UY9+9Pjk^|uFh8Hd90Qs2dT@S| z!N_JJ@2Nc?^)z24Puj?yn-d8XYa_Lhd&1%Im2F8Sjqs5j&o=*7WCCFRYW)UVAbYnO zpGzWN%u>;R6YH4*Luy4jf`HaclrENx$j?uQnn4H>i z^ZF#9_XcGfcY2WhdRNtRK0tsjz`-U=sblaW&GlaYz9E)mwQy{on2b1~oTaVG!q`&-Ldx_M6oqKWFBwr784&>))EdD!C3A^ zjD7q%xc08IWw^^8mLAn@36htIIhCKR=8VPk$9|YbO81Y>HD*j(zXV>Rd0%eE0a5GQa(;E|U4VEvM~Sjg#5+P;r{zk2s&`0%zo<0zyy8GlOj z;Yz6MjiGbK!($3A%^Xw&qYRBbK?9OaP9HguUPxOmvy@#V2Aj6!|4n=l>!YTxCGzA$ zX(7@2&H8)`oH+|`3(78gool;ID5qJ5PcW`7dKSTUE+ZEF@q0_YuIbD?$T6S2mTP*r zMqsM>JYir1A{}<8aQihRxaaEn!1LdFyyMoF^{=-1>m1IrD-}V7%HauJ`@b5`A1x-G z)a0_%%+}IqxNJtE6dv>RAa$+{y#E={qvpZaan0E3a~f! zxwdylTw+*rih&~%>Od?jxt9%4Aq3kODp$?@XD6dx@PbN`RrhBpEUKW_c|3FM+f6Xh zeh(FP(nG-zWRyoai^wLXY33FOC4X0DWLT{SVxo@t%&FgC(%)5)M(StANdL@kS)K)> z^y$U~^dF^RGf)ih$)~dN;Ai9$?pRI7em+UA^x%NlVp4waH+Gv;q3YYUh-GeI7N3LO z7euAWITBAlsw|=UnVu$PC%_XQ%tmUg#|vg#!rZGq5bq7oSjK!BK(C1vYtC^Sp7LjH z23UPpHJE{TspEkdl{eQ+V!H?3Pt%=wiZ`W3u*gjI(K?wgALdC5IVmL_x-c>mEz9nh z`TV5e`Q2Qk3$wK#KMxIUMLdy%p%G-N%(A|zMtoY1zdS_tdp1m>Sic~2QF`f9z13ny z#$oWc06S>e&U)CTl|1@bZe3<;efKa04AY_2ThZbh{cgsgFV2K!6t7-leit{WSDr=q9P1xcpty_8e`>a$HdDf98XM0DJNozi zDkJH-5CQwWqO>-JNxn-Tz*S@$s;7EH*Z}8ET>Qk zZi}uRls*|Vaz6)d9HMhGNmWs#w!IiGLO`UFJdJ5&yoAMy%oKGay(Wv=_g;wv?aK-N z8MSy@tb3*1e5K6rTiRr9{lB*Pf&|?5Zap`pS*nArSYX{OCm$H@4WHHuznVP=kHpOnCyR9CnIbHJ@gn!}uqPhS;!Ag5)eZ7lTr1U2J;As!U5A z>)<%#TkZnq`0@KZV%t&AsH0_KE0rc_wYu1B;%!0b^zm&L_ivlJU&;!)Fkfi8&UfG5 z*<^qw9t%vgWSl}@fEbih=^qjD9$fjTcv?JjJ5)zEQnDxXXOIgfsn5+`b?(pZF6NGX zOLzacBI((aac_f_pzQfJWNenZgQ+q8kWXo9C0gVY5r=n~F$2Wj^#PTg9Hyk`?K1yW z#(wDa**~3(9!tB+EcTY4?WrBhmM-HfriNA73Q3eflOq&HQ$X>bSKOWYS-Y}NVAU%} zH#fI8Pj0XO^9*Iijopxoi>uOczCLGi?u_D&5e#lf9Ko#Ja@wNW{GM&S}bd|6~4wyYNWgg z=(vhk(^ZT}JQntmEP zEo{@G;09=!7)}Vl(YsP~&P`RzX*s{I)@}KqjGnSjE{-nI0tTXw{%I#rJ&-EGGvfk! zJ>o2PM5by|RRc60rCCNt3K4Mqk#%u-=YfreNBGX4Eid3$!}@!d{=4|+|Dz3)bgms< zd9yhd5NwPcI#j|bE_aQFI$8&X)Yc@z-^70$o*91t+8jo5VL6!%#b z9}shhKFx=j?HmucFV?hA1ireF4c6;+d*9uwUJNzq#MdtBl|)tUhM2AJ?dBLccbr&Y z4a;F%Z}_@N_~zgLX!AK+E2)b0h2xP-|VpX$8!4v|LWL=pewXt(4T0uIhipi)(N6;Q``BrwDz=dKoj(a+ig97 z`IxpTHcyl>KU|XIr(T77`=|+Hc}O?w_Kf4|tE6p<)7(Jp^OdHdtM$-+$N1;S6i?=} z%S+K;Ph&tQ8AjO&$BpMV!SZ~;SN>rEH~K8j`tp*V`8cBXmBT}!TB>pE3N{qmt>G=H zz-m$3-j_9@Qk$AS);NX?&bJUIj-XF3{siNWDBmQthPYlHuSiN4EEUHFZc_ z%f(omNjbNrtLkekVY|7c^G29`TR=_E~AQ;ucb*N!%0xL%tRJQ@iH7mYd^yj}$w zG}xGV$I52VcggR6T}-5-A1)}smLowQO)D|?1~FEf)S1pDnSX5ZEJHwp5-|7!6Jr*9 z^@!r;KetE3lH{{H{0w9`8P#$@WsNPzzfrskPw|^B(}4K%&qRcatfIOzKe(2&WUVFC zfWM2;kc+lci&U*M+Z3eo&LBTa@IT@zo;PCGS9!P@J{da^9*4`NY@Y7Yc);H1xa zAGTSjVe%%OBQ+N_BY*op#DS&KA#8jWp+aQMS#5JEJ3LO}!ic}PS@(ia|BJoJKgO}l zwQ&KZ)T#`H2Q2!7>ScD3B68&M0PjWxB_G?PZ6SSC2+db&K0)t#XcsrM^O=oH?~nkP z-NDAh4oZ?n-Xm}H(U~|sH1#Wdao=qRXt>BmQ7|W9$SIj6THB7@$?(k0PnnM2L`IcL zN>aJOv)b@Awr2|LC&Uy=SFi8s9&PT;a&$yr&zAJ@=@#y{S;jl#xJ)^32MJhlta8x+LYe=*8g#{ey6_KsBKlgx$ibuz z{-bPOfGtZ?w$I;Wz^h3sCll$_`FU_woYsC`4E%MlCGKs1#g9cnA-YzAzpqR(lC2>u zk;>I&$AGxpb%}7S8)V7nQQiP)Ii`HH52+ptkXO5H@@FSbbldBweVv#kv+9f z)`f1@-`(yDaq-CGG&Qxz4zdh0GjaIuL3Pip|CG8i)#s$y`R~%6tS0nqc=r>x`1>+SQPDND0H( zY>7=R-52845#!sP6u11AW`!uWE}-)u?d)QD9D2anwRXAGzN0EU(=tcBnZ=t;({w#v zaBKo#U3~2Skr#Mr%BPy}&R|5Qx(O&DzO`hvrw|p&s=ND&tTbReqfJ3!Wv`aUrP_y1 zF6MO4q+I{Flx=uv?>#$M8(8sbz$57H_-a@<>|ZMGDRG${@lywfVh+s83u4@{;w+wN zSN84|3vPH_`o8IZHSBuz2uY#r5F!iM`X9>u9HH+k9>lYdzA6ys3-)^ThX{N)ef(UN{7zteSVvdV}(LBrqx*U{0EYDKHR3d zqug({Xz9eyI~^x|;#{%xjCwE^o9yixXkmq#MUaLmeC;EF`n&qzHC+|#y!tVSpF71T{ zXH@er6__O`S>X7v`>SEzg6W*z>!zcV7^*(G{;mn8H{4W zuImJADriz(Sq#41^1iR4ZszCyo;|yv=R+1{)p}Ug1Q-$nribf>ZXS!-^76S%9yYI? zPzP?3{u^#zp?z&ENaM!b1ejxL)ERQk_UU?3NU-r9KxW?NQ;AW7wq>s2T8nF~YOBu`G zNTmsK)pY=B^WY5%CYhoJN`S0k zcZa~LomYz7S)y@HSv7Cxd5HCE)iF1lXBDUg97o&Mn&Us!*j~qScW2F1sbR0vldBN< z0@|#cShTw1=7nr|ONd8d?CHg>nQT%g;~c%dUQ{;m7Xw<65vK`)-|bhAueX!>7p{8G zwc*InY?yqA>h^r+Kxd7N(8Dh1l&LmDvp#vj*8=GR3+Qu)%Xr$!zbo4vD!EMBUkk)9_S{DlWNjvj$G z41_jvnOx2gL!nv9biUh#{##fbCmaz49nlR00L$2FYB;kP+zwU9WvE$4xFfVjICVT-7XvG`Mol35b!wFyi77=6-*H zk?PabQQ!}3s_Ocn=14;zdeit#bDOMkwxs}lPSvLY>Zy1rl_ZzSxVrqLV@1;C|O{@|0Y|$cKXcCQ>9e7g+Wi!n{l-gmWdpe-oz%|Y-++A zo2rnl9p(#;F4)WIYU^)2|ABmBDzlpX^u4;LZ@}_gPTKhHnH{g&?&vN*N00;cauXsNx+-=Bfn2*kJ6f?`Y|& zI0ruQrXV3yjNDw>Q)ZP7(zX#IEZI&Gz)ZIyrAne>I3u`}8-~}Xq-+l_4r^B}w|tbc;T0~(PpK^qIlDMfQX+Q1SKfh+ z{|*`=UVm@-3{{7*RkyNnRL3nP-yR+9HF)gTs-EgBH*xmex~+sxm0^S5A5nNLa=ykK zU!483UA+(VuE$y=nu*)mrLFtGNm-rGZyr3Q7o=@jup(;#i54__XrHXF=lCQH+l}O8 zd{UR?Da7{u>=QhMKkypMUH+YdOqjm(8=_j{pZ0dK=(|!$V1&`Jpbwhui+mj{N!R9G z0$*(U8A&o61%vym+vfe;axx*3Vh-`%%x>{#mq_R0KS)lV|5!avoTlIQ>TSSk1%*Z< zN}xg|KYk_9cNkwQU_uXAJ59{vC10@G1`Hc#QJHW#YmBBUngb2gRborY#0F~^T%3Ra zDw8zKTDM@oc1$j$xp2tA0V$6`@&Ax((ExwZXey;l95?}a?UR93VUq(*2f!c1AB#YR zK9`pGa}D&nr|1$DUbE>k34qH_9i<9c{=>5+_ipMQY00VaU>*2dJ1|XStn>#50kuXa zgVihG2vE>gD^0Xn`9}#$j%0d+q6*{a;4_2s1Rd+@coOI&g}THUrNj;n8x+?2qKQ`I zx#ced+SRb$g8KR-5}C&#w_M^I_iJD&8M6uK{JX?|;kj71tF^O`iLDZ_acb&M?1!6N z{N8mH3N7=W^caVBKVh~l^u0q(u4nQ?>izt-Zq04^Dx7q;GxjaR9czhAv>9@~Y|LrL_|>P~^X zb7E{=WOSswS?Fgxvyq<%q{um+6IpA9KwuDjn02b1>IKES0K0G-hbm6q&x*B>ux#KQ zFZVNmczFyt8G-H#!^CaN1Q{AOk!9$4B2F)3l-eJHBj7ho4+ozOofq9o*GBgQ*N(w@ z7E{0}w8p9>g{Kb7JJ6yo7km9o(%Ml8JIY5u$=Bb83*EZ2738JPXr46CaKV_5%?sIF zL?gNeDfsJAe>Qx`vRg$fPJ+nJYuDGU+sJ!EE+&t2vpB*l`RZrCzq<;-F_&(mHe@eK%2y5?f9;F1ug$6LG9v6JL{(JUmP; z;`%QVLfo8pM3G&kUm>BPmAtShF9+vw=#76o18nsck!I~2kcd<=eF<1;oq}j~d z*2jiGJrXlA{~M1M$Tpsp5k5OZJcN9Q090AC_~w)tVB%FaQWPDC+jP z&bn-|bkXI%cOvE81>48D$L}$BjCb1sH? z{#h7_`XMBmX}t?e9-Z5QdTs^_v&*<+iAIXg_MEOR{MwAhX`pa*I(kdNigfsCjoQ68 zfwJMw&Q+aDUBRSt!B>omYVvezhY8czj@1dN#zQh%ZusEN;3k*xN5~io%mYK&;I|7s zRenZFRS&u!iZo9nNj3EOOvoiIA(b|O1SFlCr>!_?7E->4jGgj)dT7^h+p<+&0YVHm zN@)7bT&iLht?0_Pg2H>5SqxJ$@TF}PTql$S<`B%|O&tM~4i1z@PD~y*&ds)r{6%HW z@itQz(hna8kC~)tpC4G`0@&g!>lHw%Ab-+eZl@Gv8zr8_BAhoRy@NFW?^;ZQ{p)J@ z*IrMuGS~4>wT(ZrP5$WR5y-M??{XZ|?_!clpfAlfvP@=@rW2IBymT@`?W$4pcH>#L zKiU-XS&D91-{$D+PeeS~V#RIlAor_sNU##nv z@=ryH*nerx{OO1qX*y7iJlR943>`ZaA06G`&s}h)rRzf>c(hq2V!CHWN|%Q#{7Pj% zriGzRDJ2sN1P<^G@4cq|A7wlo(GKy4!#2c_6JQ$j_gt?-?xt zDI_w4Pn$a>UsOq`(K>9jOzTe|a>e6{o`o0BKKuO4oy7#Ss)xi>oMM@E1P#zK$z{k* z16Up}Nlh1ZrQWQJR22_bwNw$j@8)E!)<_SHy*JZjN!iB9Chc!!mFq|=S5koH0%W1_ zHNTty2|lc9|KB#d)fUvb{~+bk7HT2u{xiiQ>LW?1p??mFCV zZtoM*PrsBH_nej-)|eK#oA~k1^pZD>53RBom0pF(s@mC=-W}h2`YbG+h6U8PO?NfK zbCtVd)&A**UEdgOG`9=Avh2%maY=Zd$6}ipAnTofcV2hZFKczTwa~WO`reTl^F9lA;9r|uyZXUnJxo>aZ`$|iO*bruC*=PNjn8w zXFhOhF%QU5T=m14OEr@BM4MlkD3g1-;nk5oNoPG1Z**r*&rpkZA$!V8{D%hM7Dr;? zqM3a-QYknA{`RZF&a$ABu7Ho9x3bCb30`<5-4H2$-L?4nYXqFab5{_6BB(KbK-(x; zT>K8<&>4|zSZV7(MmQ%`&Bp~AVirp6H3NGmHv( zpTU~OSMo7(+%JZ9<>i7tp~RffH8pGaWGyc~ug9*ZEt5>oAo-;`v}}-ZS;a%^Z~yyV zE?Q{YbvL7M>yE`@by@EW8GQ1RJi@-ThhY_tUSfBJfZN_Kn<{o8!mztN57JoXt-4Bv zh($dZOXIGB{K`J&$(hk0KpkA%Qob0Hyf;-C3utN&RUHd>pj`ABK?v4#YZvBtJsk6+ zFTHfWP3@oKuS&f5cQm^WLfpuXr;7TUim8A%c$)oLzE#rVV0Fj@-D_0=QC7n~Iw6T~ zi<^|2_kF7Ti9T^HQ8&NNEAL)cS^hOh#NZG*zLMC|NZceuN~tEacQ}`itjt8E_}=zN z1?XKC`K5Y%&tazIKmEz3MlYyJb-AI0Xv=O*;A7nJk3f$>H61~1@L&&dtz@xCiLaI@ zqkyfzP=#aBP?U{ZPk&Fr@UBb-iclS<66HAkj7vj3JZOFPd>b2344mM6<>q}^N03Cz z-3pJ^qacoAab};^RrVx*C7l zy1#QorrLZ>%8!i@m;vA;d-O5t5a?#>I5 z21v}mNNOtKfrT7$A>=AjZ}=Y0d+4Na4XtMSUvy)?Sisqp4>1nrolf>+OgzOr9c&+{2B(C~1d8y{j^e`3^2!SUu6 z;}Q06S>gIr=pbzO;^;-cs3?D>osn+}!+u9^;!{yItb3KIs9w`iWi{UD@=3$x<+{R9 zeVC?RR8BUIKQZRt!6C2qHd6zD#t3hT!9B`^_%)suEJ2nXKp7&! z-|Cs4YVti(4ZCMD0!B~?1al_~=IhpW4-cyIndpyjNgLOF8ze(1L%{bl!rNZBP)iX0 zMOCe$q3R`9Uq%fXE0=P!y_mWf3Lw8s6lY-CdJ?I}_Zg%e)tKs2yWG{1NHSJRNnr2^ z%_C;k?sAoaMvv+{ME(YD&x-RP%DF-Suy=%|;M7OsS{3Gy5a9hoOf94JZ>^)0D1rii znrNJ;Q}+yvnl!de6+UB&%V+=aK$-LpWuV{rxQyx=7JJNkxAs2l-)iWcf7mUu{vd2Q z;9|2rdt?PYlvz=E5^-YjEjQwwWHpiTn$R0K`l4gMzH60reGLb}wXax>o9ZRuE}B+1 z{NixkuFsWQ zS`aKi+ty;#)nft_K@4N(Zw5wcAuFfBLF1e=r2rKo@1`w2+D&&cjO`cmdyW6I6hL#& z>w$;VQm^MaG`!S6Wd$)`vvuoFdObu9(v-{5S&C7S@U#vlVmeY)q7P+;aNe?wadm$s zBJc7!OsU_YzP9dna*}Z{=(_&yq`Q9)dGkURd!tFdzev~ka?lXLtzy0P*v=(sy^-O^ zdou0_j6wTzuAF7;>h%+8RyXVd$zh#E-<`F5pPR51?tK^s)lwjS5dhYB8Yr)2Mc_0$ z<>A$5izTg8|HAh2tGE1;Ws1_=fzvDHjwWgqU$@_td9z#}ECs*(3coY|YkvDY_^i&z z<6ZCip;HUKHC1Q&m=b&%99K*S2hGXk0g2ON5UP>Gw91C2W8fDFBn>DQTL}c8XIU7? z&O%X{#8&4IUM(3NZRtZm5!o+)`C{r(L(X|>^EZr0ld=!v6th|$NhO*Uqwtp_3}QjY z(E3W{&Wz^d?nMnc6@0Bp3RQcha1)hMM@7M<9-yY)$$1%JQFEHv%k&=x+ zqMina=5YeV_!ygmJ$)-;uKszH*WWA@s5Hi|2arjrHa(*BcGVLnhn5>fv_rN@_sr_ zVC9cKjd|tAf-IlH==Hr5=SGE%-p=%#G+K38A{#!FFv$HG@pE&`?G#NLmVKhs@C2(y1L~rSfM1V%==DkH4NdY zn8{vA-H5J4RC`aD&-oO`4lA~b+Huj*#f?-~^@2_p(r$rQDd9B&opH~)Eb#-X@^g*vHz1JRlxqYMS*GKxI0Wywx zLYkWDR|Q!(y>vN=bcvK}^No3uP7igjaV@j6%6UmNF@0f%!;H z9!SSDp5j&ocQ!4RD6UvgFFczCjF;N#H?!0}L71k+GaFAGkVrTmcyIrDEUVgbl49_kj7~f*^@De=QryA#(~DfJ z+^Pad%$RR>kSzZ8?CgPF>8H(z8nScv_1SJg)gRnp!E*RrzK4Rk?8;-Gz)&~s#j$xZ z09-(l-hCo}y+v71{EsX~W^#GfohdjPquAHqo1qsx+NPZ(i4_53+e9C81!5=k3-ul; zfNDI>-#wH#Vgs-!{Ml_aba3P(7Z8!1==in(U?WhBKJgpmw||%N{^B^{!9SVLcjHM# z>PM-HP&$5LZ9<`bW5JgSRp#N;isZDT(*j0i)25jCNMjETDPoo2PQUgQBjYGwWw@GZ z6w|xj2fW6LK}iuxb7FD>6NVjmrk_Zhh0~J_Q}g%eaJ-F_Dd@uSMLiQI$#s9((U!}x z;5&`kWO=xjQoN|zq^B$^>KWDD$X)y0d&u1N4(3V!zqy@-{Z?Vk3xO>b>dr0eupW zTi;zjWRMN}d%j;O2ib0Xxd5;kUkRi}gH&`d<1M|;sJ9k5)vaBJ4K_l((5wysDindY7kYDcnFGQ+%~#3D^X_h zU9c$`xJEJo2tWI^4f*`ku}X4|eh=fQ-(Cm)9{`6yc)ylPR^`mq9Ko88^&NU%9s^-` zIi{A5ky)O{BVhA*#(2*Ev#0ofe*6Fb^Dj>8U6ic}M5HcmJwl4=nO2OMi7Bw&dXVEh zTI;K(NS~rDc>x_r>3uhAyxk}ox%`a*v4{X9!!O9JTn}j>x4yUA{kiRr=ePX!$NlTS zt3rgQpOvX(ZF`1WdkF!L4{7G%^dVwdAq)GNxjc;Z8C<>k-l{6UX8#v6k<8`RlFz8f zN&==;!L`Ja%5)Z^7GFY;v3$A}5CNARCP9k8USFgLAJ1_zvx%)ub6=MHaFN3o)o# zv1XhGqu#fc?`2{ zs7=DX5%l?0cHuKc^G9?F5(;(puA~29FlN%J%vql2Xy~OZQtR=NymX9}o0dWqFPrC=*}Rz@w9yIVpo5rR4e9$80at(c^_C-5?RV4g28FQk0faMPL}{fBJv^uYc-V`s4hq&hX);!ny_K3jFdi+>WYi z#Mmy&3}s0ZGZMqABA|gpI#(Pc&CE=0*9%!?icB(3wOJ()2sV6AveS$OvXWn7H!31> zyIf~jtwMmC8*62vvLgk~CpiE!oA(+!=i&P$3XBz!(Io@g@KrtCtS|oeGaeW~+h*#4 z#X7+dg|e?deN!13Gc%Jkk(oJ?24e#h*(jQD(7)8@VLMH^3yLb zpPw5rybU)qnw?I!qFpc7ZD_x~diRdcw`hh%CTTPw3T7$e(^YdGnL`?5fBtQ)UH^@o z%iE9J(_XczBIj*H`ZhYldd6H?ZF%!TR1UIi6l%?R@sU+VWv(Nrf)Mnrh@6Wea|M;h zz0M>?Wk$?-?rSq4p(!H?Q4cfx!13bSNGhm&`Mh7Q*e+~eta}2-aWIdvjn#>ALM7!* z@X6C&dj_3XV`p))pz$CEb*r46BabeiU|)az9u=&UV%yv+AN#hAVJ-m;i!cY9;I7Cx z){4mcoO90G%X4PB(K^T5U1mA~6N52}4HwS?)>0~m48$9}z97R|>P z&!7LO`~Sx0?T2qKm+R$X^4LV%Hn~Y^^*kxha#qS%DI$;zbOv6u)yO=n3`;Ult}|n( zC6)biL;HAX#&sN>L5|KMk2Ie5Qc|FN-Z(~4w|T_RKknNVwn>_im4OV{s@yE@qtTIxx#mqS&$^7a1`il7ZFF*an zd39Nh>#JAqzWVydKmWt8a#4P(#~s_iHpCc5Ez1P7Dr?Pc^e%t|Ewi%Z6iJ0-q^VZ2 zG7k5V_b^$-3RtuxJ{Dy_N}6kpOh}m+*K2mPZm|Uk-GdUf$m8=bS0A9Cp*NyekSCy>k+QFH@kFI-|+f=j2mBQ60VU1tph{Jpd^C{)a!YVepcPax;oV zwlvyo+r|);iMe8~%w<^yY7Ew(su4K(;}qOP?|yuFRg{LNe;ryRX)~S0Qo+ zLm*RguHJ7y-=9l-f@)&t5;VSH$$bFgD`>SS%Km%3zZNx zEQn1bSVCtxD>Cd%u|5G|^br-6b$@<#g!y)s9%QZql`^Zy2g~i`GN1IqssMjE?piM; zV_{b1&wt*pZ{&k5!bQqln{9uA4^6vn9R+`*tUImC&aX6ASF}N`C*`ySQ(YG^_!qck8C&DnlB;* z#Qnh7hO~}5#f_Zvt^#~8A`7*!X3Q1azTa;z569;p=U;T*fA_=FaN9{7Cm4q)vy3%l zCZ?2$6tGrzjbZDl*5)27I+na5z;jWRabg_E$|`owMU@j~ zj;bTq{pbH%^Jh>;tZ~1M*KZ()%*}ml0pNaD+Xiy+v;Y8^IQ0!|TYY8dOV^8{sE!eM z7zMrrD6y?iq_>WgZAQs;0!0a^YGurMuL(H{2^-dS-)-2F1MH=Kbm2hmB3JWv(-inR|QR5Odx$HWugl<$zc07h%=cpT7Hl|LcGG74FM# z?ilIDbk{1?qIs4fmdu$EW<8=|OdpqQ7*fDis)kT;(iYZc7Va6b*Jn&xE%>F^P#Fbe z#cfojGf2JMy*&c})V~EQ5<|!w+YVk8Yxus=3;$R+70y{1$Gv#kdQHr+v64P|l9`z* zRac)!F87w%n>u6_5rK#YaNJj>F`?}!@b=={l|CQ~FxK*p z%LXD7nUx{)hk>h$89Td#FJ(~M(;r;|suG1vbzU)0ou`hn?|%4Gm;0=&sBAGs_Xr}6 znX#yrRnyFzr`gL}nM$1#U=*WP6)3POqkMn*>Z|$k+$OdX0OXtrHrh05tpcbqHr%ER z7ayF98nxo6RW1WW(PZZP<<;k(|8=+szmN0b+aEUf>vc$Fwcw*c2!4`$Q*I<_$ckDs zL8~bDj43IQC`bf5Gdo#j`-MJ8ZmNxi{-t?JZ8YheUM+OVVARLAhC-xqMCPO@MKqAQO+0FzXE2 zVruMz>aBITk1^;f4Ie|qeT7UJVXl(QBr&tL%d3~qe=G<7SI++Q>hk`p-QY?$6O^W0 z%L))1^xe-r&!p{HVP-*iF$K<5a>fb}88RFD1=2xfU75E|AY#`AZe|8qy4$K5I^ZyF~bIj5~aJ1cvBkz_wEI`G&4 zqti|Q>X`?MuFblzE2N7sODl0jL`i-g5r2$oCN1Y*?OiiNs zrpQd80*ykURs*qWC8EwWo~+EuHFK_YyWg2;s z_fOltjoN&m7e%Pf0qVzoR@!;LjH(_}BEbyn8^J1C0+v}6=TU0w%B}8qZJU}kQmF#W zIv2y-vMSfzfReL)&l0-V008`cztcC#vbx$3ssdFR84+_LGpehW5f#zXp$sZf zWit3h;vg~a_Z1|V9Oi|}4A455tY(=x5j{<=wMfn=>w;1WgaazG!jv5mZZ7xg zbFkQ}oI2CHm>Gl%)_~-QZ1p6{%qd0WsVuIFO636?nS}}+&y=h-z**5+<(}%dzF3vE zT_|gOIn2%hP>(hHLRSYtCcmVxs6RLhweup2 z#tJ*DDuOGI72RpfS)vVRAmtL)F>e`UIVy6gDvQ_a#j@611wCCasK|Nj5_{5IP#N8r zD`%DR_1JPn$2n$2Y2Q@?Rf$2_c6re;*JMIQb7QF(LSbC32$tIjDr2e=L3$&(yKe5)l+GRSy!*aqq}zzb zBd&$YZQk_suBzs%nzzr4#ZKnEJ#UvMQQCGqa^&-op51HUI2Ar!6m|d0c5`*z^99yc z4}(}2L79~(`|jJXTL&kj4;yBzLNU4~iHv^7s`JI0KtlaTavG#n0e~x4ty=fY1;94n z_Ur5GWw+7Q<#DW|V{Mo#8s3bOtqi!A31D`bJY{2t9NPdYVI@&oQe|~^=h&{X{#cOx zbI*s5e|p-t%XRZX0Par0G=`Wav#lyf87!Gm$OsTtMe`-|78_?4n7P~sBxbog-Fk#5 zQ8e2ISgpr|gbLc|lA=`-YfS@5mCVq{=-A!pd!Rl)|9m{Zgj_($j(O}NI_)G+pj-dQ zQ(pI213<{rozTXYX4{;3c)-~xchAsCN>vo?{Wo8U>gK+xoXp7knxvVGg!^#PP=%6& zHCHCYMn(f&EM}g&W$)D(OE80vJmxKCRb@rTzy>kQ3xTMai&D)Q0p5>9;TpLNJLZ(cvWdA)Ci#;MWF#^cE;6>Qs`2vbE4 z5J=zl1)wrkc!fkCqs$Z`bDBC&9xcc3cH%7Vl@&nS&jm8SEMH|aSI#>qRaqssOH%Rt zXWuR~Pcm*l9Wix(;kd|LG1IKFGUJ?JM)oMb!{PfU{bcRJ|6FA~gmL&Eq(LnX%@eQ- zqU^&r9|%-t6nwwz`>5k6b8`dBPOto9r7Vib2%6l;tZX!Br?OBERICyWij`S$KUR@I zt~}!^QCtxL8p}-pR938#tWatXC5!YbLP<7kjuI`M%!sO$ao?Wa-2Nzp{%7aa$4_sb zuKVk&4-LU73aJJdBztj_tFj7EM4_s4R;sGX&E&(Z(^{89KK2Ki!D$joW`W)<(R?&v z286l=JOg_mVQkl+>bQ?8dwNA0-EP19XhfN z3Jr4wqJ1!wB>KuS}@+VNxxdxVc0nk&h1e~A< zSWA}IDwb5eI*ZIo$jr^Fj*PX=5ofOgItHTv)(Q$bGuFEf1JX5spft$1f&k|v73Uth zP6rVQBEp!>E$pP@%7juYb80zCtU#7;!xguqYMFDhC-d zQYsn4cMwv{awS4p8P6*>fVPpN2#cUQOpF!?^u`laAkxaHEW0h(DM)5Ec|;Wzu@os>bmPp{|IjaqrC2KtX+tG&R8~neg9VcX=2~X*&@EOVRd$D1 znVE=ruWgJ?3rP!w5D zL!I*nRwWW3D1(@pZBbJ%!itSXJh2dfNbgiVbv05YC_vkH2RP>vqq4(hmG9n5q$b#v9KOG6}5?#T(n~znl!pU!E!IT+DNH8HGudyQT5dvk7ES;M^ z8^hL|2N$S}dzD2jGrWEO_NTx6A(Z&1$Hw-w?=cj&pWYpK^Y-0s&MaJ!EJD7JTx;|3 z605j&RM?i5nNyJNw;ZMlWM#Y%Y2+X!iwXyaigWJfOU5d$82R&XBMq!LUd;IX{JARQ zejlLR_v@wnnpu_eNzmK3rjg?3+h?w+tYKEK-?x-HBI2cBssL$XCRtH1u636rd0PT_ z%B))$UG4lL&&PcMRlzRF>VyITuutE9L=_`eEV&Q2Tq~e)ePulcm1v}?oi#uXxjkk~ z`M^X+CQO4STK`&;jOTpdtaC&bD+8GYx<+Oe^{}lOAE47h#IfMxnD^7}DH#COQ4mZ9 z<`Ugel+1SuD9!mBBzXQy&fAZl{4$c@{r+yh*yTxPXPWJ{K~!S+wun)9g=CKDstQQ%>12@ zJ^wl9+wcF6%hT9oYu!dHzdUKU(aN~VtHC#BBw4YU&*3OlWTKEYTuIe&rx_zznLtt% z)v%_loISH6hIp&0V>*gvWfsRoOBH~OI5je0w$5e09&7rVetAW6pg_%IN~8u)TNM+G z<7Px=oi#@z3Vn1>3zh)N8u>u*48<$-UG4EsWi}ueJ=nyfqWJFnZ_m)Y=0|+-jXh+g z#ZpD%fM6XVMxN1=y&y|#+Nd0$oRW*2YrWi`*sr|T_!J2>-O2V&3pqD8S8%AwksYvLu5f(_q$8%2=7_~A!UYD$(-nUC?Bd% z^z*b$XXm)5x-sS{oa=RL6$|#U$DsY&HG209*oZMMF^>}pSFn@I9+D7odfTcblj#(H z6EHVn#jK2qOu;2oMC6JU0CHwz_B>8(=k>}}fC!T!il7&;Ds?vRWL@PcQD$yq*nl}P zWCb7IdqqQHzg%v&Tjl>emGL)!-hKSAZ^kF#b{j?R`+dzScm{0DwFJjnG-Kt=kV$f6 zY8ZUWSfjAa*E%W@Yd#Tv*=@U=J^@06ZF?onwldSa$;O(?dzL86$d&=e3b0pWEzU7Y zx6J(M{~Om=Es>kIXP41O$r2?p$T;p^Nq4c!@yB$(Um`trJQ0bfF91Ese*}j$VDt+W z>*1n@MEmsVtVjGZY|5s3!O$=uBa zwga_$Wc%{v(xZTgezz+Y645J4N3tmAV~g>!X4J~Lnqb@#)g)xN%_He!BZyeBUtaxz zlK}A5hY#B>RMa{)c$qS*j)~zbmsYJ7jFAABm@^&J7!#Ed%#yNe=BgYq?fQBZbKb{x zO|zU!q-=m?VrH~9GjkPz6>>B8$^gKMGS)GD+lpnoF3Ee^{9EW^fDWL6azu~2EUSku`n zvoag)&3)u9iZVngA!>nJ|BTBjf&D#K0_%;`kI z;{{-3^_q)qZy`H2<3WZ4VBdZBN$sLJ;~kL^$4XE@pr!aMqXv4yDw=vZpy6)TioRF? z421RF?tjNsB zSUu{^blE8qM_k5ue)*?J^xw~U|MBD7_pf0Van#FQW2;Ict+X=D+{^$8wVJ-MX1cFj zs&XnZG7eE2WoDn=zyDk{fB9wDR@+d74JTpl4-h^^y9-Q2f}A1@C?=32ROu3RXZn+YaJxz<{kg>4uzkDM^GRg77&vg4JEFq0cZSo37^ zi%CaBuhc=AOSTs*)T=f0ZacCXB?Ua>i z3jgrm|6C~BM!9)}_CXWOX`VjT{a&#mBVxHcv>nF{nE^baOpIVez^scFgWNAAt=rEL zv;A6KXrD!hP_)cWW=RkW$XJz0_5`xb96q2e&(RM6O7p`~&VT|@kjn^WRRs$+2CG)5O%$yggtb;iMMCao!`)aBkrlAv#)@2opQztTsxlKG zI!A2vz_^1^D;6a4?x)-5OrsLn{^!mrErXiS4bb3acT_&IjZtisM!V4psq6mo^WQkJ z{ol*^`rD7M-&|&`Izlv7I;72kTm_dyv<#tRWPoJf{pph#ksS=i>KJU1 zW}rpYFjZt!g>$6SGwvdu@8ENBb|nIuni z()kv}j@h8g=UNkz^{%>>dN#yD&g1@kEKo*Wz1xgjg-Ez7iO)a&PP^f6|MacxJM+FJ z$L3|8EM_ra+sG9OCkt|ym9@t(iQ-%d_!#B`RW7>ulC3qF*nH5G2&^drVpg!rcS+;~ zcr359v1MeJjGl5j$hK_;5VvQ_5>TexDdQK=PglD< z>zjV+w`3C!UTB_)NXQ=aK4zi-s$ieK{rd3>dNLywv(Xo^JyV}^65VqWRp^Wr87qsfsuc5fGjo_F zmA#;vFN0y@DxJ2;VMZH;&e~;C^M13KJ~s7+xbHXsDpAO&R=H*JwC42ow{y8YTNQUM z0zj&F9_JM3yYD`o3TYcwS?w&=>9lF(C}c|exqh{q_$!@H-+i4(-d?uryRuzOGegUZ>135`Ma*0#KQd$9p91#kb)oTB z%v@_8B;D<{jzRh`sKv$xA2F91Biq1{M#?=3tVJ7%swfu#nER>{MI~sUVjU#sI;Z>D zL;wIF07*naRCK?M>)W=YXTeY~>%l&VAar})FIV_DNm!@C=26;{nN_jam)ESH{30QB z*bKV5Xvy>`ggYlcI^$K@VVFYZ7nO2JbQevzYRyt5Fe7Kys!9o<(}wvlI?IsOad)w} z)_S?Y2F-fHdb-*TbTb-iHG!a$bLtdtqw0)l%|uns$^xQR2O-TPS7sDi%o15H&Ustw zm{_Q?ERVMJS!F&)AZ|~u_h0WG{%U8UUT$|=7Dysz^!M2c8Yq}e4l*nAI5X#KTm5mJQ{uQR-5leE!LUmNol6h2Z zk=vWE`Zo1rJ%Pwt(YSuLd27zO=25WHKHyZ)QJd&ym0UX<^DnJ=knMcq!RGzY!p7Hot$K5jI`>e|O zqS{ZGPbEN@Wmd8>7DP!a(>i1zqEI3M>x~palM>|Fos+#Yu5&feQibTO_*3$OsJ8s`c1^##FK>Bh85Ho@eyJz1KUR2debz2_u(7F6jk7&hI_23 zZ9rhj*t-T6M;q39&5#+*sRlX(fkVnutwD#cI5Lvv1TfRcl3Xy@qD%%uL_os?~eOXUAL_(~i$2W3KDdt1`>` zFGizpW=>O9t%8mh+b^OeN^9D-qk(Wu*{V|oCv$682_fi`R?bj4?XH6qU+qTVz&cPv$fGQ$b=P3YnQvD}z8WD%@P-RK${`msx=`FKt?4ZS5oz>Ch z4aH-IZqL47n)8|GB#B+WxBJn^CUo_XpJ4K=ssXU7Cq<{a^W2f02o?MA^;Zq_wC;r^ zf_Z9rBD1nTzL-eb0FXMfmSkRM-3~wo2rv@FwhaTba>Wu_m`Z}N){N+D-TG*rGh0=^ z>2&9k$&=(rl8mSX%}6c;&HU<2-eYD4%*Y&O6HAhz7HGvXot2!*gsWtcjY#me5eJ#sn`(-o1$0^m1Ra63Ng@_q3kmXyf zL#@JSYoXBnV^V`Zm7 zNo=*;LU|O-o8V%_(GxAxFe0009j(1m^&f^^Cwi7|_Wb<2aLj!3{RhU}_E$kdmdBx! zj42h%Nl8a!3CM~{0+H25 zrz9DRfb0yjFbZRv^Zs%?Gw)lbU*FKY$v^IPPG}^c)>?{#a=PKP;}&{K_)tINeAWXX zGWpl#z&VqwQ__5jBF+!2Lcu~ zq}|U9z+rBNimuawwBduMBHee>^UD$O8&^uddH?$Q=JlACt*xaRV0i_EIb6%S$m!}|E;HPC_B1Rk{z z9@=QM9<)^s=rKR=Sbf>IpFS0-eUK;89hq2JnVDt88IvZSi2o`8t0E#>1lxMKtU^Q; z=%b<31l`;Pv!V0d$?GhapngYMk(q+3GBboSnag`8+;1w;?4>}kMj2(wjG_~nbU)` zqbw99=2{K@6NgpF8L?o>%8aA829g;o?DiQL^kULCZKYAJN0GE>#LiR%HT`OlHUg z%w%R_t_a#_CbYRK3ofxiM=+C%*}32}(b3BqpmG6Xq?0OQRfB>dP-;qVuM1lUb!t$v zOwu++k&;0f@sh!{c$BLW*slKk%l+55ng5&4SKohK_s2A{qy$bEB10%S`j8CaAFk9k9jy!zI9Mi^V%NspW=fN-6Q|TO{ratnK~c$)pH$I zQaWEYr$xBkl(EoR096zPKn2^u8PWq%2V^x(O{YEcLSW7g(k8+u;{HI0LV5#wul)g%b~i{ z%}PWP%xsr#HQE%Cee>ySiAJ$iXh^Dh-$$y)N$TH2B&!l~^#Fl&S~JbvduajyG-LZ# zdWO2Si-7R4t1;b0ITWSSMCTvf9NQ+B@J z(TMYlxu4KQ64a0vqbsY5x9?v4_~UO-DgCGa@TuasR{7K0$OwQa2}O&HEO=!vGP4LW zBS0Ezj4i8>xo=y^&xF%Vpdvyvuxcd=2d}j4dA$9_KkgW)7o7C*QpPyx1lyX2kw&9= zWtn+`z4HkQz?z|T8`sw~&#GY6^N%*3PVkAT$U1KB{?{8D$#6g&6 zhC~}?%qrz-+1vZ;McV~cW8c-Nj#yb0xwgw?Y!}-$p@J$zu32&W<)tFFh`0wKS0=|s znYK%wWh-o45si~@naQ0tVy#%w`+gc$D=blFFmtoL%z6pSMy_vrnLj3&XQU0OlF-Av zssv9bKp{Fbxay0-5>?(xqjpZZCzuiE4)4R)Uu7n%lX5^d{;)DjK3e@?{Z)#{ij1sW z5ivvkj?kS(tLb`kb@HuPm2x*$(LlHi8H*4Va|LAL0#tcgMNuZBl(EzZ^-T77iIh74 zPb5KOM8QhN4(w^uv(q3{WUt?k`|-;>G{{7tR4j;@BAE%pcHN(U`R&*yzxxm0$Y?Wt zY@oMb5$C3eV#@7AgJ+bO#GFU0Rgnpe3^xzLOh%OHejJ$7H!m@xtOCA=J#AK1cE|$0 zD^>GYfL~Y@2+jo`nVGSiDD#M=oaQ@QAT4FY%8B`W-Co(Yw@kX$l8r{NwQ`{{{FHpA zbx;iesdoWH`;!S!r^5Nfqo9CO1>Kp9XET7FoB+USo@Em(lB}wTxzvMhc zDq;~;!z0!pJu9;|DUKOYIsbp^-lom2BRSGEbN7gIGZP>|5+GS4wYqyV^E~?h|7mtT zQdI$Y?}>1?S@^jqE!FDMN97I#h|ENu6X73buPs#Vs#TJ-A1i1uD<`4%y;dbFK}oqw zL)_r{daqRgwphTU#a5HKX8d^0kC?AYTIHLaweN=W;8}Xq-ZWPw%#phQ@0mQ% zH4KOXDwDa<@pI&^RHgiQp3VZ)-UFaOl<+;mO8`_xW>r76Pm4;k3%f7CzaXKrx@{)F zD@?n;ApiN7pIZBA=KVg`y3QuNv@r79~HD7wL}m(`;U%9+&;9xKz9IsaLQiYmbD~*KUz1;zV;oYJ1whN zTXfQ4w)WC~KjtgP(e~GiieTPZOn_;f?(vLQ?L6TAXy7@!^A-Pv)YGWexS7yRq(yHa?5;_VVI@a0<3^G@V}>8Mgt&JRmc?_jlaqZZy zrYx}OD{yuur;I?R%^5~!o@nF`an%&-d3R-r&a`#e)L)p%~v zomiQX$ru3A079Qr zORFq*4+|O-wjO`B^Zkg4F^$}NIXiFLE?-p^FBLR;v2}TSFA5N@8{m@2_0&g~Wvkx` zeP0PYrJ%s~-oU^7_JyQ*7@a*g1z2@i$$Feh^?J#?*JnhdxzNK}7_N=4!BC=kwaK_S55=r|slkI{}ERB1!z7N8g8?o~NykY!%3Opynv zR2m9=lmaSd${>YU+M>HV3f~t90$1sFv-vXLzy2+Wh5p)vI`b<@ok@8cs{QI0nM9hh{WZlF}D$Mk<~z>%$osxJ&rcQN z(7OY7R`((1$6>?WNz)wD8j0v`;oX4&Wd@HphIfYeh$ng)DKoRtdytfEsNaGup|-)i zn1$3vZBe_nnVnTc_3~sG!CF{!R%R%}t4D*Qw)_%PPgqoDt@pyta<86m|4uqluB7NXN3DOC1V2G>-=t5F(iqU zRF}50FaJyBPd@eQvL>MD`RiwHWa&~l*EJ5kDw>W?y%uNLGbH)%zklh|+3aFZ z_g~SnJ&~mXaJ#*Bn4gLwgLyieEe4dMp?sP~vvZvI`8%xC^lpO`I8MJp+I zDNnz*6LyK9{~{wY?^3>x@E(x0PAI~n1(fYW=XxUjvhiuV!PhD5R$Q_ zwFOo0zw9s7SJPo2i)eKl2xE-tjoip`H?xQcv4+`U9aEK5LVLuxM5iz-6Dbsj`*0IB zwV})+wK7k!HZ~D9cfcCy3ipDMBL;$L4tJTE$=#-R5x~Fyho4?Q{FkPS{_^=#6)3G- zd7cO2_VH6m9X_itvevl(xDRtKB@E0AcOTBIX$E@jQ{io`KIWtwdbiZepCXm1hBz5e z%j_IKrl5=X4|&})9`=Dg%%UH}s)Pjd+Bu-{`i3~r<`&fnJu;1i2UUhL71im~R)W@! z<3(nYO33FL!8$+2O_%V%*v$RQsKu+MX_sT06?*7t?api_Gpov)zoV+kt={-vmd5@( zi12WCvcb!_cUHP{JblH@BdUf(rdwbF)se5JbCF%~z$=xzSf`RNa~z;r-ML{Uufp_;s=1`kQ&q zJS8HpCEE4JMEaNCK6j@qD0e=6Eky3V2gCcrdPdZ)mxz|yUc6gewgVPKbCjCIRnp4E zXYG&bH>EC(bg$7Gm~|QA+hSi4bI#G5Hc1`a4O*C&a`b+(>D$>$4^_c3`@W&%ZlVjg zlDtWv<`@phIqZ`6HV1|yG)!yJaGp8G5Ox*h-3syT<>l+w|8nKf-~abNxFg^dc` z(KxG^x*ONm8nD~M4y&*}3VTSO0Eo1>wNY5G+_|gn_dhv!GoNoiblBtbX=)v`zVCEv zFC*zDF!!d4=;F$SpGtJe88Z{zmb7Wg8~z4utX#BFWw)6m=fSsm zsD#AE9cFa`S*aR1w5n1nUOcVL60kdbvZFZiYQ53^FPU0bM5=be5-g)dw2U39ES1pw zFb;RKBD8aOv@y@jEgXSk9@BkaGC_t1=|XdlT~eBcd8Gm(Ybyn>y{9{<8(0Xp8n^NK z`jOyy{^!32|KtDu@80`ORS|l8o%1#381Bb$t4k38E18=FRnG9FiJd_wWYL%aDqm(4 z4PXL$ojcPiGq?60BS0rAfiOPoDF0YbRoXBel;u6b_d17{?{6}i3f9S64q%LFpvR!K zLZ-@Cwc~t$Ic^+Bf9kbPmtdwR`jFQq3Rhoi*AsqmP+E}BeoDKxxfDVDXtLot1bUZz z!J<)hErk8kPamb--ov&ym1nU#B=_w#(Ly^rIDy|Qxe-Tukesb8{E$!G~!Zb;1UuFBlf&Jqf1QAntO zAhY&kZwEwS1f?n^c~Iph$j}e&5vCj zkpAV%&wkwI@nRi*F^2o_nC4zp-|nZ!91&)oU9%L-N3C_PvN6JEH|#0gAMa=GowatZ z$9hY3Mkm?>+$~WKj$6z@afZ!KmEi^GXid|M<#2(`K)8?ot3+A<@fHju?wsKiq2Hb z!+}+K7+{eqrm8gQV}uIqm`}ivM$)6#w?D;^*oE_!Q64KmY!_$I+fa8zU^}E+F^XI~l{ws%p0t%^bkm zYd>d4yQ*rp$V7Q9+f;IQ?@8$1s&WeofQ<JACyU&FJtQw%q zl)LQ#Sj&JyKZjPtfHhP$M)Yd4yF2A>pruO4ljCSd`L3fFAF-*gEL1)KeA4}6d}F@* z)VX%ss9IQ4C1qYC8n#uTsuEb(+XZP&pY$l2tGXc`W7wQm8dl-T6|+nGY0rHYE@Mnf zpTB#)z8CUDN6hyM7=o_X2vwjA4C^I83&LPT?RDBX;y9GMD(kwxSV)2vQIw07y9@Qc zY24$x0uR?lx; z?{^3Y|N8YF<5+tS50gMos%KLN3F&NP&{73#%cWfjT9Af>hl6XEn}yg;`|SHHF>I{d zWu+MI23FD~n_}LM$NfJ}I8@ZR@6$b9_uOeC^PSi}bUxB5S3Yd*y%vX6seGR2GN#Yv zU1n6eXzto|#ekyB{Csb0=%#@ddl%OQNDJfMD@u=CLYhAP88z!6mHDlFexovVyZQUq zuQcv;_bL#C$;c`*7nnQ2FgJ7C^4gVIk(;kH+6Hnju4QAEq@4hm1vjYV)*}8@sl6-) zd&l#fa$dK=HCVr150TOqNWV^b{6!PWQu*gEzjOdzvssi|scS3Tu%v3xkLpTzg@JC~ z@0pYCaYfQR1*pcSAE8CBg1bve^kLB2rjq%0(WoSP(46Eh8Qp0{RV59(s%_C5<&4ZT zVx+3fFv24&v6U^vn-&`vOS&>wrHz>-2j&Pj=1wy=XA)-c<6v=j1Q5Y+lesn421N~8 zl9hX_kcmv*r943*a`=nLz5XKvq(A-ocdYYm-#>hOgZa7F2l%(g;|O1?5YCk}a5!4* zIbH+i$6+WH^Zgs(R*ST=ZFi+Du__`!Is{kkjTkqd7D1y~gom3Q!{WFN!^F3ni@4M2 z!p;4s7mHbMpFTbAf86Wcp>Syga2_Lk-YksnKBqaaQWuuzV&&U>9DOWtjb1)Nm{ z4(T)zRb|QS**<4Pt|e&*`F_uN+`^D(^4Q9~p%>$$WKFrx6wHY~o#(4Xz>GRmDTR5S z%VCk)UQ|uRL)!%-3Q4#Kt6mSftV}2?=lr%7%W>$V?TD9`y%vlv6$d#v4pnwWP|y2inzZ#& z_D^5^*wF)@*2_2nqhuvDO@~NWbamCmF57E@_8?OK!gcV(L$vClsp#E@ zP`xny<=4-kjhIjac!Y~An)B_MO{YMeJ! zGUnPzZmAQFom}^GWgQ+E-kb1`AAfl4Ghh}ZeKwJAc;!wJ;ZPlGB1Wfn|NA}tx7WA%`Z9xgKD6bkAYQ)w{=ahNpZ~wtIO6ug7%I&$c?{9r7&Gr* z!|lv7Nvv%#Hj0^kamzI3*kkhX$jY95mk?v(TD4p-lB`@DORtRi1J|_2pw3gu1DrS>vB(!7uSZhTwyZ@9em4H<+zGcx?km(MiUGdfk7SILvvOXJ#WWpNDBvPzX6 z(S;66kgE0t5TdATGBjW^cm&L`Q_8GDrlC0z9T77ML@uejeYUu+R1Oa340rRY+$a{L zO4YOwFvfJ+(Q44%w-b{jkraeZ;*KuG>M5|AF}-a$x!v<|4|lqqSx)1yYmqMNBkKFK zSmwHJRdolpO-}kefFhjmuyMctI}S!a{rvfuaZHuWA#=OA|1tRf&;RcbO=k19YrFfZ zv>3go-#gt$Ql!~>mHbE=ny1<>qKM{$ZYrEtEdXfGn2 zCel?yr?GOM&sLl0GN#Lx+*eYnnTTCE_8MAy|OAZdtC>@o@sr(^is!8LaLw@ujpfc2K`kpFa@h}GdFYk z&g~IOtb8o=C0Ir}EY*n1_QXB4utE_IJ|3q<7_hR=TAi{gHAX1M2uq!)s+we8W>N+n zLTWWnwXPDg0?~Wz4(UvY^f`}zzjxr%&%eCBn1u%wF;k2&{&;`4wPu;UyjJG0Kq;$O zqI;^$pmq9j>?~{ETK~g(grEqmZACY~be`HylX>Bipj++ho6cRFa+ly%-!kC0DwxqB zue(dZ`xS0ih1#T5u50pGRr`!S-Jz{IAMbYm^LY6Pz+*J=k`b-D=}@CKA*yObwCcc_^540nfEWj1uZZ>1`^(@cik)lz=a3Di!wnMGU8D60l!2;K&=D&=!uXJM!wOq1No zBSw|pcQz?w0RjS`$A(7CxWp&X8|;$QS+XSDMPeya5mu>gBr31qGi)mt!n7)-Fw2fC zE@Yqdb$O27cfBtg!pu`Tq5W zh~vdQ+A@nU+?&8?*dJ7qRUrpsr=e0h=2ox9A~;~jVOJpJPP zUq8`nihpVBFLe)rdZI%0jDv3#UH`95scKOKp6>?w%`p0}zyC^z9zLe`|8zkldO7Xx zuFPHKZkO++1lsla`crpv4j9yf9TZZMw()AOjT+{x{n#5$!zIY5=Vt?+uC>a7ENuX1DI&Z|W<q?;||wj=VEZDc!u~zJ9#W-QCQCM#iA3Y?=hKRIU5hn_Im7Kp!Z;pz~p4 zR+e2)C>@szs{rNc?!7A3g@ovS*9kPYyj5@4?*agvUBd`^UI%Tp0Z90l-@cgH-V5fq zf*X4hGaJF)uToDgpJRSWWstQjyJx*uTVv4)0Y)=A9JNJrBi+iV$}Gik9LEe=$Lavy zHJJnbuVZEsz3Fi%7h2LZ=P=_=m6^Mv+1y5D?zL$?#`H{gU&yQ1FJ+$&vaEWn6*0Ka zazD397DnuS+-}UOl#{)zcCv!8p{8OCr!sD@KahXQD%6XaO1m^XoKegeJ}gKUeE(G! zWFJ3%WYu(D`~w5I_Y$h6%{7MS2^wn6mlsvJ`>q^gYM&!!bXqFeo5_avjCosoS<2jZ zC90a42!JWkYVWXCkJ)a!2#y!edi>LHM^%^%4@WA$1;lW&!|g`p**d*8oLG$9%Ouch zZ*!B`KJUKI@%BSQWy|b*zmE~>gWs%=c6LYw;2sjtTLnEwoaE&Jz<2rPQx7dXb<)=| zSpVW7?nc0W{q3`v+ZE|`Ddl=zrRQa%=cYkMiy+|c#un`~?YwfGtz$bgFXEC}^CJvs zU$(=lYF7&I7!BRc>No+4lEFMoT$xO@B4dn6ql~ro&PyyrA;}0@?krTBS)dX$=RO}L zFUUNyQZ3?BF3HSZCY_PlQvHd3XKGU}yDN{k*Kgm>qNQ@9 zVnj=YlM)p^MU63m`fCkFKmGRmbU$t`W&tnmr^jA*2@_#6uIpNI`p$&K&O&a0JC_67 zZROG~poV+fAoF~{Jyp4vdlZFAMUK2r=qd#l!RoC(v1p~2HwR53zr$D8Ih*3LboDrZ5mNFQ`a$3xo=4O-|!8%X6 z(+J7k&6t@^5958E0DMlna#R7Mo2j;uBG)Q+%PpnGF&M_IZ2w=glFlr0xEYX!mAMlM z?(=Rjnk65CvK;(+e;{jL`6V#74q|U%rFk=8igrWoz4!n53-IxWAKq^BcDs!^4CUr0 zR;{I_BM!U0SS3A%m=WE$X)UMCW6pWZlE$raUqc7dP(EgMgj{Z9hDYs1AY!IFD_a7j zW_O310P~%)h$HNMJs{88#n&@Fg%7QVIfV(WfkF)U6WrOyU?oL*Gb~ZSzQ0GVm)DON zhXGlrwE!X?K8AVF-P-)!54AZ-AEWaGp6gybNuPXjfV$dYYsIfg$VJe#?=?OJ5&r8R zemB3~t_H@l`+bP+d#$y1t_78osIA4a?$IepYgb7fieRLH?w+;Px>gtn?dP7s1G!04kWlV)^R8KY;8~ShMS~KlQlW|J z#|+CfH=|Xl6@xyfQZ{UQR2JQ|R*qruZChU#xyGw zP+?Bf`?tSBL;Ta1FUP?Mm>Zyz#JY>2+&)Gs%|qfiI+7aCAs;KZ_V(jgYkO^<1G(K@ zwamtdu`^NW<7jW5dF<4n$#5~nNL0B6j0tf5fLh4ALAf7@55-w#n}gQjR$+Qj*{~2u zq?5?KRNH*Wqs}`$+JI&2{r2&bY!Fxgl!R#Te%zjL9Qwfni*G?`vg{@vMCtuiQ_OIvCa%4m$KFf zL!}X{J-qR!KFqptafhRqs2;2oD{&kz|A)?jU;ps;FSikH!+;XQcTt_Buq$3(Ocp+? zPUi0Qytxaee82*=&z*ig6fs1<-H0Sl|Ac3tp=Nks9i*LQBX>n(OqDcGE?@N zRpNARW$p1}+HshF?qj-#vbcK7xxqMMrTZPdA7>?i;u;j~UHZNl>fUKI)L`vX3%aKAYPp)Q7is*++>-$tZ` zu_rY^IgP~L%NwXv#RkSh&*Pvm?4*Ply&;CI*(y6X(2;*&os+yBp<^ENKxyaR=Pn@J zR+e|G)xdh9vVf9si+JpfXf875jE-|?wMka`F?&T|K`2isoP;fu3_~Ps@5f*i?d5I0 zfBm=L18<*yiLenhx*#D-Y4mzL{Ptqtal4(FQ5A1*SxGW0LuCv%+a)*CP928M7_De7T&*3hy=yrg*1^*Cmy!No+S_ZK z=tg+wME4)*A8}g%?2=B`#Rd9pmuQB%V$QVFFLF@P+{gTGGA7ZPs3n<)hd1TR%_9b` zFVrOXoZ+2ZnN|IckQRNnMYvrF2+d-2s2n1hxeMNGxz-y=KxJorB&kyElhi%cz=%%I zk!r6Uyxe{=8)INZ?qtO9!K%Gh7-^v5V#dIaUj z$4;-JTXnQ4BeiZm&Fx;|`7l_XYwZ=S42zLnoUDy2e+2-g3`%W@Hv&b;Y*BLTF=Czf zwBzOoduN^D!*m+k3wD*~?I9u2Qb>y+jppPPJT!#y@+Nv#?VYjS$J>u^Z{0EhWj46a z30Qo8+WFk(_C)e(+tm3v>KqwAlKe=*ZY zD$&f{JC7xW#s|^8uMsl`g@*EgsS1nskrY^xI&X%(g+Kvo?G1Pg^jB3-N-U=rFw9#! z;$(r`RS=0>3$(r0$~uNU&hyMIans7=DfQ~H3Tpia&-=sY@V4p@j4<`P$*rBDU*Egd%FkfF-lOnEFdB}3|JDBC9`-tT3+R`QuMj=+`MhLab&)GwTHsn{qa1W?Mlh2?6~2Tr>Mxy z`Px6?lv6DhdV~d#wl;~E*S9P4 zSO9VEqFe49x5LC3^XvP&;C+aDizUR1`IY@@2txJWku~GGjvTmG4RZGOL-H|Nutb_* zj?OKqBHVq~Hnhb%gE-g!-cab*Uw`m37;i1qhkX(Oh{9m~SP|_ZN$J`9NdGf!cofya~L5h5FBv{m6VD(0=zl zUZc_LscJq1zr)P+bbhsGjn}HUaE(ww$$$OBZ&%WQSyc%PHoClZmaVlZJgf9xjkWnQ zOEfa`8VE)})%9YbaILY_OIaJkJ^Y##(dbTRm{obnR1p*2=cln_IQH(@Qp0!K6;x2T zUFi2Q$BY)%t!7GuPmeap10ax;RI~FxfDOK%?+}bKzj~vEbmx`K+=8p;>cb6VME4$| zj2s3Zp{p;8midN7c4ic1efd*n5miQq6(o)cY5%L=fggYRdAz;M$ay=MMfYudtTjuF zX=vqdUtB&UjU&%@B4j`%jeBjA;O^$iMAe+5Y?w9#AF(0qGzbK%di;PY4~MbLb7cX{ z>ZwDeEO;fhy-aODU1l6Tmt*nkVqB&be)b!G}L4raxMO{El zgpYYZQtrO#ssl!gc6l9YwJP?d$ft;r%D=ic&98Mm`cdq?mrqef5j#2wG_fC!ht|d4w zX>b3Ml4|YiXvX!pUJt*XRYJDY@hIe8^|c+)h@-AxqS&7+$V(rM-*Ror`hd%rf&W)Y(W)qCw=Tqi28TZra} zFh(1VjWU%BwMz7tm&4tnQ~y-2ELMRW9)M8FeYRRZ!e$`QVlF{)VTMH_cMY=^z-@!2 z+^?)0m6l<)zqHCOeXV8;RATs;9@Zdi8ZlyUWzh|+!r>mqImX+E5A$~XtF8d|xG}?H zuc`z~se?1eFuB|CIT;2ov;y9GKmDpRA9&;dNhVzU$%-ldy zF-QM&3rG=y9S6;~q`e&GSQxjo7mn9I{r`Nu+pc8Eu_R_@?y+)L^@WGcZjwhDK>Gjh z67(QoM&cp6YG+u@8udqad6%2P|c)ru- zPO#B}z&)0_3@A`l?sZ)v6YjuL26cC@$Cvx{`k%XJe)`kTYay>|!3BP9s`oCWto3Ez zpVDk?)qSU%*H^&HjW0j+>k|xjVfK>ia_zNNM-0~2RT+y!tYxF?X17A7s=P8O*4_oO z3)QifyUOie$Th@2>a#YLU&P4RgJ>_@`Q@YTJ(!Qjyb{^_2E{i*KSfoq=fC`V#d-iB zykF0&w;n&7I{W)IoRUc8+I!07=I}ld3OJc4BjGVe0zEPz4Dl=5?8AzUs7LQuAdvCr zUw^56!}ec$`Ot_Q1XwD6&8 zjZjYjXH=R8MP+ggi zwQl>Q%!v|wp*9{ygaox|p_m}SL>kpc&J}SENLAOJ~3K~%nce17}?t)~3* zFMo+kA9k*FOSP4JQ$c)@7zD%1UZIwSJ}oa3ingj z$KdZ!RzLUix$e)efBGdJUnfhv09D2Hn3^U^s8UR!*kDShIsh})&%FKa9C~xR=Zz<#dahSb{jj$-AgSvZ<&vR6Mu99dVBCE=ZtlF=; zd%K&x=_UdC1Pa+n4QW+-JH~d}khVJ%5_k8pe-Sm&lbUu}Ho#EMY={GB5EjXi;ld)tS-7ePuWD8k&{viD8;p|&(BX}#N$E@R5rAvdRHojZSCsw=?~w6Gyd7= zzye{EfQaP$;l4#x@58YPLe6&7s9mY7DI(LXALf)f$13v6!zW)~FzB9er=$8D?)HEu z$d4~=?`n~tEK1Q-O5omHMhfbDMDGYz-4#FTkN`w)4uFn{qw;j-Dq;*;_xIl)UDpqP zG6e(F?#}zk>jPlVAqyQ>3ye800cxTVLFt6Nan9uPSWiE;XL7O+TzX!V1CHa}P94Ag z?YH2W^83uke%~W!uWtAJX_|0cA1%(IAvp6yjdY-S@T?G0m(=5c#^FrWy|8<##b_ zMi5;EDf61(EC3{SBSEb-rvr!mjwLr6B$P3#kh~r-RrO#2?%qV2EnX2Fd{E!+&tO=H zs>jMJv)Yq$!SMg!9QgBJ{*rX49_z8ezN-y`v2xzX)B@!yyJ9yVi__jUyg;ncJ3?!C z7(5<(5^rjxql2s_&KYakl1!p~O6jU<-<%1O?A~{0uRoEvtEC5HN~UhH)%Wi1_+VT; z89gTT5i0;gGFRzC`A|MOKg!k5e|@E{AOAG_3rLuLed@YQ4jDYE90T2ZPK|d01kQ6z z;*9>s_A*ny{T}pjbpHO&Q5rtCO9Mzy4U9hGXfWP0jN5t!^Pc+!825m( zaXbmRu30zkd%voJXd?i-`)(+7I+^8RC5%DY2Np^8R zcfnefkM6U}n&il5dPFXonhY|IV}&NTa+&OVD~=67NA&f62uDxHf&MXC_Yopbv|-GBS_FDsdDC=&SGxA)!D_4Vg}|LuSMxBun8{MUc{Kg$iV zsvj{fq1|ik`|ftj2{zNUF}FMraaFgDmugH!%XH8PEsnFuRF2_7!6|9n?l71Gw7dJU zlCE!`Md%^L6WU(Qwd1Sf1My&fK_oI;S8PR}TY{cH%j2Ok6WE=CY zF-#2Sbq2Zj4CeQX{ucC|qhjE&u5sv7vSRhFA~|pgCe%a*wF38zwMIF35~=AuaWNrC zz3Wr~jqb%QcTLP#btuqXhJmmxR<*jpbQP2$_@8|tG`J#Py-60aQuk|zqU ztY$Q@v{sT$i4Z2o#D^P=DMqW--@Wd@%$&g{PG8fwA%^e%TETuBn+1##sdjh zJbN7vhDrXRj5E4E_3wXspT6vFO0{3(Jv+S^WUk9q z?kRG`(FI|$F3$fqfZ3zEbf8L{k^LQ}GkVg-i2J49n5W$iaM0KBy}Xwnl0?0b4ux&(mk9Wkm^0oIoJw23Xx7$>#af(iglO14^ zks)~7F~jw!TwzACi>cm~j}OwXD!j#s*UDK?ciro8^)3}>l8H=+rmFe%>(`(D{O6FR zmaL3>e~){w#|MIY7kk%!V!yPa8zauk$75hzMoPiDBh$5uF{5k6P1wAo#* zh}Zxp&=MqQZ}4cCr`Za?2-{yak@oApcgN2atK1Bw0w;-NOay3XkOc7vI=lBl@EIUo z+rIPrKh{sbF>-_rug~AtX9w178r^l&(fDI`K93R3 zE_@b;_rpaE#uGU{FQPV~kwC&V+}r*9{to{?8i_bR>?ov1jcxa~ow7s81u1jlOq^8TT5Z^z)cC6haSF8KA zX|C(BsnI%d?+v(iMAUWl^AkXj1=P%$II^{&KziRNT@tS9GIZtaU5=y!5USbL*mBJY zT!W4%%4kLFA{aoRL!^>GtkqU^(R;MMii>dg*$@;2^YKF~p*#sb5h9xKw15B-MA2u9 z`r}#XGu|H&#A#SMmEf4ty3@F#h`Q{~n4t=Y|KE0fyI_mv6V*brRxcc)(kX zS3N`g+003R`-Dmi=%i`7F;F(i@Ue5vXfw}ozdN?w8{-h0|Ndk=lQD6yJ(NZ$Pz}r$ z?U6DckZYi!*+${WOyd6h9+~zDT!Dp@yQ}Jo=v{>TJ}4+ji9T%~(xirg(zZiE7it=K z=JWtG;wc9eLf?*$51?(b+lklil}pv0Ts~tiy`>4^1*EZ!Hn@C0E?Mer@7H5pl}l|Z zwU!%^51G4Pb>Con*Nsq@=!{S%q2t-fC2;6QLX_^>r+~puP7e`jGt>7Co}8x9+)G3? zU5LQF3$VTlcdxa5DRa(D*kA&n_(1dZyCM-WA3fubVdWlV3Z99f^YcIQ;|s|ej%D9L zX+22L1yWUrn3T?l=$R_U3~7(6ee`fXz!T{=IB8?}FOXpOd1>CAi=Je_qXl9dynFs( zNU;{_{kmaiCZ(kwVQHqNk-O5UcE$*Wgm#Ilj>!4W3KN;) z;B=3mXW)ZFLc7J(d=^TE*?}G_K`{e1>6Yw@xEi+c#8>5dB04`nE#d>4?wW_d{=hTzyq_=TgVmU5^0v?sxcAM; zMJD|GSAPCu{rG1i7=kX;D-;-n7lu1Eq_iY;TgMH1j!qBZ;6rl_kS;qzID&@50uWZr zTyu+#>jGJO8y&y>{jcu{>wSxarYL-FinS8m9>J{`k(2i`&-{Q_e*{j?_d0XdbhRAz zfF?!sTP~1#*Z9rGY3UGZoV?{jSjV(;zUhncq+!~|=HEaY7IRoe1sMw`ANVZM>i_Px zsWKcZUgi}`;$3yT%rRWbyrgmX6k>)C8KH3R5eKgIXcv?l9T4eq-*-uwM8RAiACE7F zx8@r&%w<#9ZOsTM!g#t8OR#fV6GY1F{roPaLi^-E4XugpsxH%lNzRx2aYvJVZ z#DM%w!X2QiclYqXJs{E{)W87kSTSZ`z(G}a%n40k;%QD=ZUf}`T;#mcS%5Ycd7d;3u=g0botxupPza}PxVw3K(q`H zNnm;h2-Ft3d5=il`K7rA$y6kd>uFMpZ&yxGsfKs&GyV5rc`=yJczUK%i9@%ZS`E31 zAy~Dy@^TltIX7u{{Pyc_^Fns_-sKaIHvr)Pt#S{)_6P22Pge>sW$psju^T<6F@-_L#{x<44#lWYn-0at9Fk)N z)$~efQZ1yzrXNYt%t&|Ly-ogkwY zbn3fiNoBlzqWyKuDnPsIrXso{Y7bz7=KZan|My4Z@#9Zcc3gyUKS`Tvz=Qu(=i{0I zxCe+I|N7BH@L->_K}P(cbU4^LfHnqrKa4<+OcZBDcKr2kzuE&&Hc!AUA~;f?12biu z>@1Cvp{01N6%mZcb>Zv`B&l52$0J7-6_G&^xmG?NF?n)SJRW1VH5}`qwRrr_Tbb+e zcw-Wu>&p+<<3aJuPd`VlkDq=X2Xn-Uhsl-h&RAc6{`tqRKl;9Jc;Zdmy~Un1?MNO` z^O)4S!3fgy_3_KU{qlT%%ZzK7>Z^Mr0XH(O$7e z#0Yl8)Y>6R>Q`k)jE+2;wH@YlsQs2&AVe=`*mkf?f_yfYf7$3Bgl_TULUk1 zIWnXL$GRNh+Hl9mm;Ux2`M74`!$@eyZtd2}GB{CLz?IhwoW<#Q5)}Oj29?aIZcGZ48+xzs* z*G(6yXx}W>r^{Tt7irshJ z*c(;q>e}Z#cXjBJ1?}E#=XJ^ZRWE$}aQAKofX>w+-vw7>v^k-E6!mrjEuQEgcMom{ zI9wCy4p=tP7s!a)?F^O;UDw*xqXDxT&E9jXBjC)nz1J*OLGR}Efi7qT)m>p;VqO`s z-g0xqnRDS&DS=#<{d(435^|lABeJ_)caqG--lMOE$omx^UtP^^<(h-i(4?|)=rde2 z>>>~@7{rPgDN2)@_1*h>pvA)eWWCf|^^E=uzvP$td+%@e{i)B_mmh!D^@Z~dVAuUE zBG?@vMoxe08^1>lCxfZCKzno#;EeSHch1O)^IDwnKR`r?DK&CU+WCT=i!pHjn*$$fCb$+tg-TnH^*`RC~ zFFV$<{i>UO^Y5>lxjaA_qdcy)`s`=??#Fs`ztYLnB{p;07hO#3XK1RTeAlZP?oN33 zM#SFxU;F0$lKq0>^HYz9y8F6nKW8%r!Q$>`K2Li^-`|0Xc(iZXyIy38TJ=35J|e3u zu^a*I{bIkEmrd~%D)WVMa1e~Dev6x+I#0&23yY8y$?t8cW^~(?3H7@&UPu{z`8j-1^ z&0%h{I@a^-79$^CZ?o@Vl zW*kTVp;?q)za}7}aBM>Wrfdc0w-Ia`okyReF{F|$5V>4cJjI6W?(QhkE_k2{50PHY z{NQdzfDyswJ!Hkxx82{rfA5Iz-~I!&Z&trPH(YgJAx7S1|NbxThM>A*U8B&55j)Q? z5UlQM@c9JMy?wu^sQcCX)m44pbNRX(ug}MIk=YbY=f}pwyb6hUKx=Wt)k{+7q4Xy9c z`*JgKgcY7^XZOH}^R;1nKv)5a41(f}u(`l^KJPdYkV6~HAgH0{KyrMt;f6>pU>{ni zgWf&MdQSo4A5;<8OaeZ7FT36I4?_D5rWu6ch$M^x<-42D&uC+FwQ_Vs~D%>a~W*gPk$ z3#W8BGLvou4Y8#Z6YC<$jC#GI6{o)Knm>^esnUp?4=i@yMMl+# z$LnO{On{(5)0iFEu3dM`joMSxiCB+65@&}eF7a+Tepw_K0ki^6R(e5WdpCzxW0HI|Eox?5!St*BELmGe$zrz(Q;G> zgEh|;Fbd*%0N`$8%q8dB!cp*$@%O*~m2@1b!%1%YM)9 zZ$-x02lz)?-hJx6YLNso1XlKA|6MREd*LjqUk zrlXw^ZKrs8Um2_xRfg}Kl-36hkqsERa=y{b)m0N!0!%H^ksKG$wfUafu5S1D&4-jh z5IgNc5xM$vseJ-SdaQzzlYZpGyQTuljY zquzN9-fWnJOIp{eHwgfq(|s=7fxPD`H~}VN^}7L<8M&_EC7C%4Z+V0)obR5a|JvaEi*M@@9?mE3QY64w8 zto9jm(2WJT2E{7p)o#`}<}J?YQ4qWCaWe>zCT{HHnG90x=1Hg-0inPp5C2q!F8W?3 z6|ZJAI->U;nd&&uE$)_I_onY|SKZax<;?C@27p~{H@Lfs?Nlhz6U;IPXPi)s0WdH> zTQ}?#(E#rIT1kEeo~q|u*y#pFI|+)r?)~}cw;Gv%soJlC`uSawGGTXbOnz-f*Y>_K zO-k^H=E`zd;AR%5QF2Z2{GTApdj;L9XPQQP0++7`?Zq6I{mOrOc1l2gfVn*g` zG$g0naYFMLVDFw~Y&^sbyyo=5<~h=4J7hKXXyNv&ywQG#C2+T|+VSPF@9pY|zJlpk z=;nQkA!Q83?is0Dz!YWm9)tA}?lH0e!i9^vP~TMBoPxpE1K-y3|6+eg9ba7OCF1CdOwhmpB9K8DWh1;zPS|luL2+AV=p(pc@KB4A^zrZ{EI0 z0FL3mJpMe+@4!bAwyrBbK6FSy5a8>6m1}P1h_GF|_PuN0JUzj~Fd2449*lG*KC0h# z1mnDFGyRWDy4t;8y^Rb8=r)77B4p9jT|LzMWRH*ht)9>79x>w#_p^?VC~(_VJ?4Um z;$pq1$hg49vo2b4iQxd}PK3bY8zmIObCs<=}IHHHY>hAWCErngci^i2= ze=a`*h6^;jy>AHUtq>y2G2NQvM0B06&_yt=4+EmOu3_fN#(oV_Gs?Ca0{b{a&SQJJ zPtE`|n2=-TdVEkC7~&|92Jt)(;nDUSU9?!;&*!u6t@B5c`+jjo?udB~BXX^^GOv#> z075xP+LfauI zd9Zu3NO!y1T{vRh0vf34>U&oZ;BAR(Vw^9mn$YutDM&r5zsI#c9zuiI`xfK!NK}N(bJ>~+ zz}!U@vty0;&lU?2bhAOJ~3K~zyk+p{+mjgv#}c-ROeZP!E6 zSeKP(&q9wXjrXJ7J|K79uL&a@=&-s)F)xBKtGqlf zZ!+e_xjWJoyN9f+ZvKI(fOMC;x-*x^y}Mv!w(M4U80yd zH^Nx9b>8(B8>45c=p#_*BGK%J21YfRH3><3c9_DLz2VH9gM0*c1JFfKrzc!(5 zJel4HKMmzzP5XGr)%VU|ZwK9xul-!r`gn|&RthWn`MIt~y8|di-%k<)E>}mM=Pb%A<`EszGa#tC6Jzw?u z9F{Jxi3l}3wMU%WbH;iBjf%WZuj;J)z(~Dik92=lZRtqNq{!=f2lU}6Mc8DxS-q_Y z#Z+LnLXjlB+koDk0CVUJ-Iw%kCj;}<+$|wO1fgBEt_uw-M92+=co-y+aqtQEyw7tJ zw$Zq*9Mc>;bTSEC83j-={!fzoe)j!Y$}19?-lbp!Y&cij3T|6&lWr@RWJiplr=PDF zBk)>tvea(YJ<-LxJ5U{~x~mIqP1tkDfjbQKl5-TQe}T|fNHG4hf1dMVc+=_YI6dM6*epFba7_09E;KA*}tBl*T!Kq6#} z%XiEt!Hn{yOk-tm2wivZ43`JRTr}X4_O5ur%C&OMIcUG zkF5c1Ch7?1yLDCHHQAjpn>Fp^dD7>XHTnxFCI{xdSPus9=BCiIt`SpAHiNNF*q=_^ zQ0;x5IQy8Q6d(}9z58uv4#or=?)$d1GLFqG}Lm0x`H7%Q$?fq5aA0#DCfi!qQG3hP>pCm20uQ6Yc!mE&u%!X)VZ|grl5rG$tLo7Xl82hK$_xt zJf>eeAh_qri_>igRvo%vLT1oLgTgqJ_MR52@kt7(eQ$O~l7aR_N6pzsj%LLp7z4>E z^HC_twt@jOx%WmU_O1g`5u;*LJSzL2r2fDVvAC=m2o zySrb{YkioANKmeu3ikl2oC8|}k-na>uA7PHO{x3D-w)x}Ga?fNstXEC_kzT>Mcnsw zJ;u4l<8Q~HE;KAzq1f|(N_c|hK@2aZ%#VQ8twE-wpUGcZS{q>El zzV$7U1DcBA?pR4;-*?*>zW2PZSdTB>uZWni5udkyzT-ZGw%c7@_ga_4aw{@3>n=zh z_0oLuXFx*lI(bG$gaF#LXPVFaBPhkj?6`-t!bID{Br{M)A`+oDkUSir*kz{27DU!4 zQpwDRUGE67xe7QnW4d6KJ!CY%kb~tlfGT2)R&nOMF9aE_$2o@9og`a=< z_3Pd*k69QvG72Mf=#GJUXOd01Q6!%CsI1mX!x4*-V>B<=yJn~=5ZjD|9cYP>VMf<} zYrN`+nhY>lHN3CZw0c5AJb)7pa89H4+$wEsUZsmvA;n1EvnEB(g zsQp6kk670aKaoMIVc#!B4z>*nujlo+_@DI4DN~$bM>gX4RnDS05D57P%WI>$s-AzJAWR%GdE$m9#3vK3 z1h9AJ71X$XIe^CGCC40Znh{8LbOq_&XlKaAX=WYu>&Uy61Fyg%@f^hV9x)MXZhx-pKZ4Jx;5}vxx6KB+Kst2O)xO=&&(|=368H`et~qbJTWBEd z%mthWx?#GacV{%C?J+2wXET$B92`P1nsh`TT@)tCXBfwj>@o3#4MaS>ZeH6eL|aob zH2HU~Iw6gs#jdXBcb;_em>lNXFOQ&R1Z{jbVi~9!5_i%X=K^~3zB-_yPkrhe8#-XT zyANmtKmr5RhU@hmaP3{j_3<^XFOlo99-2efWMnX+dRNa!z&WQ}rSml^2uO&OB%4Gk z+XWcU(jBqfqi-c6+Z>YR3^f2jtu;e2Gu&RY z58#i#y#G3HuTC*3j-HYuz!`%ZX3LtLiwCltP+H&5etwfX73ZG9yN{r&&_?(D`rK6m zdXw^8cqc@NBnm1;fgeA7IaTi6UwXCYRZt$=U!bljX4)%_lO?G;s6hfNExR9Dky-Cgp**{0v9QQ zsT0~mxhBiS@8VP_Soe+c8WDAO#9CdlN5azzM-;;mDRIW_-Un$8nld3xwUk9f zR`>BB*ybrIb9Y7nUbCneWN(GoiWC$XF)=@9VjqJir_2VR`%XsmmQoRIckc#WJEY8H z%9%8-bpamK(%q;%_BWdy%lSc)4c4vRHH_s#e6s*H(&Xg5W6GZ%7P6AHC zk->=BzYKLq(o*a_Qlv?5=1?z@!$!4T5*m0J&ESZFhC7hD`rfbJ<=V}-BVHuFeo3ia z!*WbsY10%&rdsc-91*)+VDCMH)If?ht#tLwD&_7eXNZ`yW!gPqZ?laT`?dFN`>wDf z7X*juEv_A3`Q5y~e`jq)vKw|+QKR!4UsO(4Q!ej5 zfbsj`6g`r1FxIjrCaC95v5}d1t-W`wL!6(1h9~(@q0v^)jyDuD1rZUN85`hOoepo- zz4z|A@!n|%6(OYvLR84^uHraoCuMrBwEHfTkz+RJ+t&pV?)!E3@Fw%tFflmK^e_QD z>xzO}u`)ujFw4dXq&1|I>Cs zFU~=NoYm#f=lh;L3x-{;tqk`L_Q*X8;N0KB7GK;912Y{@u z>7k{iIf(ZEe{A<*=j!RIM1-5F2=4={MQ&3Obsb0`;BKZW!l#~Y9OZ$?EY{JoU#U8q z=na6qp+-SXnSqnl#l=!eHk#@*c!12KFd*ULN|KS5FK*+E0hz$ME;}zMFf+i^4G8K$ zU%9D@^%=NeHB-I>%M(v-gS^99QH}tJUT%yog{7>+-EiL@?uovg3Rk-4LqQ zs_jeSe&25VX;P#M@FG$O2dhg>A~I>+(xZ|S1Z(LS);E|zjL7Ovr%47wl_X;vkz4pW zGv$T=TgY)a%V#h~M2<-!a>|gXA>s%iMMma$y$FciK*VuxWh9~37*#hQ>`kzCZ9{3H z*Wdr+&wu@oo34#&$Hf!TY9LiTuIq4O=WXjC1CgGJgd#9<&Y>7vTn%)0VZ?RLDxr3T z6i*)^+a6}~W6n_oA@6lFBQmy(P}n$8LlUuT5xV9KDaL>uuQ9|RkZ1Br02xw7@0FQ3 z(neLA^}Cf%WrSL+F7X{7U-)?Q$I=XPQm=RqE)a<50=j&(7@Rmw84OR_l9Cuk-Nz74 zc@c4@mpc7+Xq8jkbRui_aR5G7f{(vlU3;pt_j5#tQMiWf4^`3AV5pzzqdabH8rmM#JTtw(T@hTo18R^T*SpHeNXwgDc z9j*X```E@90s=voRv4)9KS|o?+yKWwAb`D>ASLs<#+W%~=1fA}$uQKFYN-gv&mRYg z4g1}95WAK#+peG|wvDQw7Y%%Vef_up@!tUvWZQ%eyWvI#!LNJue3`uinVHx-2Pfjn zd^yIbszr4X8mweQl%_3`mC zfLO&$1ZppxTMyo36r*~xtJT41veyzYbLN=s`_a8-3`E38`S@3N{#g0P#tXG)|A}6z zm1A~S1S3bUJM%bTX?K_-QJ$0A(n)LYY@O@sum=a&@2}pA_5%jNs5Yd2(qwfe{KvEj z^g%x%q5gWz=)oYy6*1&&yx~gmY`HoD2nS&!W^1T+$lNWsG<-gcj zK-I`WFPngK+UQRjfZOrZunWhN4Z|XdKYsoC?<*5lLc?+JHR<-j4Luv9Mjqhons_9eDJF*!SZ<) z-FO)KB3lp>WbLMka@Uz|w~qnp9wT{8|D^-*jDP^NyS&Z`1k*y|vIoaFSh?$U=tB=96{rNtZ3RUJeoifO8z0g6=0rl?c+H=mFFV~H_ zj|hC8Cd-S?zx4dalg`|IgzXZX|7YB&)*I?jkLwll#W8Cyr_eUPbv)rh6I3@MtNQEn z>(4*`eB}I|I;j141Zc9W_mSloDDk8eX9hdKq?dQtxbUdsB45AW;^$iUi(7uo1{jPNveQPCLT49PZGDn*7s=YUp%xHgGNRQ4L z92OIbT@uoz6%3+mInFq~D+0(M6h<_Te{jnb3J~EF?WD^mXzqd_)($2TT?IxMrqp3M z*&1W^oZcb5rB?6OUb{z*KxeX5>hcoWy&(twQD*V2qZuEymUm_Pzl><`ct}s6LPrk8 zcz^xYx}OEbdY2Q9WAx^Me-0wb?~&-)BaTSUFe?BCy0qUS-e14>*XMcKpBX8RcFa;x zbnVr(wBAr%IbsZsVanDltpzQ9Z6()u*LeMSXn??9x(1dx0xKXRknznJ^!?WRGav%v zs5&CZUA6Z~X7+a9d&?M$A$-s)N=5>xb-Mtj)TnloahH8-9W-?2x!Sg7T9>z>QZ*3b zfeHj?q-9RQkuY9xSX2(C+G%?TXIxTDwi9!E5PPkh=eisj@nB!IR->hol_Nmyc4z@- zUXeNG%-I5~)7T+S9Ei6uZ({5Ycq{9Jo*!RSCp$AUW<#Z|-Xjx;5)iq4VF&lRg$9~t z2}{Wsb69D0_&-U&yLx|p$&qR5e&T07MvnfSdI!qfZ$6a%#*Gb5YKoFMMCzU~_l*NAVIB>9XNC-|19WHUUL83^+$dVKZ%0nb0? z1O=bOjCRl(6MEXIs=e!GT8!?0{@^(N$TDWt_AN)6-Z{0zZcAt&a|BJTp11S)iu;V8 z0BV_V@|IG&&Z%D=!|j1glhn{bVv+>A%LWtgKI&x+m`OM5`cCIf$KH45q_ptPn3F>kk2Zvg*y^>n)((OvL<2F> ziy2+}(26mdsa9H@YGV>b_oVnfA=!n#cPr-45z1s$We%U&ae!zA13ca(R5L=gIL4E$ z1`+)F^T*F$$msx&vjgN{=65WWVwe;;RBRmR_K2JTST-B!x580y-|s_%UB%j7eSBU& zRFYHHHM-jK6RgySx{KXXcURrFgH=RF9F#cZFHDbSm0^MjW~!?tM?MhJ!%)W+*9B z?Brg!Kh;4B1qhkZT^Iv8pJVETXm>=_$|fR92(nw3vDd=~5&TX@a~uKHD}+E}+6lvS zQG?j9whM?MZ4#*BGmRWehU&N$J&Pmo`rFC27trsHSown-8w-Ww2+!dHAwA1uLvlZO zb!3!d2_qO8&P4T-V6hzCqtP=4+@kJl3D44CVE`U+w9i(ZtH1^oIG~Ey`+kiShOrRE zaK>32MTmx42;|Z8_qI$IvDUrzu6Eu@SeHjowIJ6#n^P(^|M>gg*T4N+%~a+IeRG_f zqp8ZTC7f#ui6<_d!68YJ0d#G*flA;AAcTIeeO<3;A8jbKPpo1Gf!01h)Sa&n1J%A1 zoRvm~3wk2}o%30K`wVGGVB^3Wb7! z4kiE{2cUK-(4XPDk@OPUFwx+ZdX1WeLz{w{R~ zoCxAOTCMaUnT>9gy4KE*A8J{(Rgvg@1V|+9e!Yf=HOGu`xu?O$cN}0K;(Gn~mtTL&(tYpG zulw`sZn+ax`~B|ImFx8zYPr4@tzfp8r#?t_&#Bdjz4pBf(6tTiwvX}KwQxi*#0lPt zJhFgRm+m_`6cgih{rbbSwn=u=6e61f}i;e`}ePn9;p6GpJr)Lz=ihYwY;3`D)}q4lZBP0(YOO%-+1+osnal6d8LW zqWTa!AczndjGR>GoQPDdF7sapL;oIbJka0}Y2l^Up*VkS1!`3v_^37^)m^nk#<+q9 zQg&Dw;`;Hg|Koz?%KUedkNw_#W7J*;Ch86*rN|*#TB>&FOjR8gaI1HV z}~)Y^Qc$wTsJQdR`@*Glval088z|1oQKN-j&{Ls z!ihQ;!H5xVbr}vYPcv)Y4@Y+?a=d>0xBut={_}tT&t0XiuA-0+>^kNw=d}m1H^XU8 zFc}+}BJL{NRa8aN+`g6CtE&~mKc?R|9+{ru&F7_n2)h&wAs})bn)|2|51KF0L9?0E zsS0Ie*J>gnTW|xl!zlQ??(~U5Ie&UBKp+wAMA(IxRrib$46y^j7%j=_Y(tx^GPGM|XVNJ$09zH2C56PU3^t+O z1alD05~xZ<$BC*5xW1q}Lv6e}PGE=JBCcfk*A&6t;Ay*prAGw1j>N~pAVX#OvZ!s; z*QnoPzSi0?uRdKtg&g){9(jWRxK^dR_85`ldhdOZOsP$I+&5pB!SlUWRoAXTh&(X( z17lb*AT-g|oE!YfYwo=vS4mJ3a|9Igk~GGw%)K_fm@!XGs0|&ws3=qt-!5AEDCTwb$;wooVo$Y2nTI8_&Ww zYY-eGt|0Hb*2)~?bs4*$NSQ@Gd^159a18bl#%Qk%2wgy1Fh|t!mG*wnCnmY80Kjbk z5w+I{_TI4YE)GTC;C6zz1*nA9Y7Qf%<1r&w6=GVe-z|vRcS2O4>x2-^v8&5kLSPCA zU_{2q%u_GgZS5rNh3h8hRv3GD%#PBwwTM2Ds2uIswe6;G>{XvJz$$}szBqL-Ignt? z>qi{D5S(^Mvxf%(%K*n1F_L{#jr}IT-gGssOZmDHlb%?*(aV@9Gcz-C(uG5&PSAZX zAEJ3s`GTPZhNO_j$46Pbgrio#(d-<(KY>h+jLax#t;GkPA4Gn<*51ydV@5NO*ZlY; zb?sGsaHL=+>(+V`8tK-0HgNrT{rLHFTvv_}5mi>j2nOIAj%{n5ND`YE=qd2j)Pz+k zBgX)B-?ggxI2_vB_(N;ZSA$=v%pCdgf~s3j z!l;DESu|_aVl;ZcKgkH@MGlggRqgI(GV3!4t`>gruTM45+lV3jyM%;awDKf1I;9nSBwN0V*se}^Paz2Wy?sa!!Xe{`PgX(6|P%I;wn;OOII-|OH`uK5O^9WsBLnMr(S~(`VyLSZD zyB*-rjT{-r)yQzdS_g!*`DA~L+4~;jmBC)!j^8+8U5+6;&=~|~Vk8l(JDwTltjUsb zD_9MRBMHILyrqBHk!CcIgpRCV_79nP>7D#W`7mNsuU=aW4$>uUkzZKjno_G#=jJsL z(-M}NCxr?U2H{f~sOAJh)e2^Y1!hwyv?7?tW{`+@q^*%xOTE{*0s6ql0a_p!5gP2h zf`_rnD(^0l**plG#hhNQ+73{4m=FZohl2EUvdQ=|4&Q!4eaR?4Yu367>hAGkMpXtO zX6Mh{&Hek+-=Bmr{dX?}_FjG}%=&?76F6Rg zt+70BL+loW>MhBBbLZAu<1pq6&E77LMlw|!fFVg^`-bQFZO9)v;$VgC^FV65(Vv?1 zoz8{sew0~=7+dm|eULatl7k_&n>ph8$V?z&?&L33f3=n4MszEhaEj+7cQzz}(D2tk1444PvIRycUuCP?c2y;>v zAOw$QS&w1?Cb1%$XZBu9<;RO_^l$b`%URE9#P`xs< zj`uF0j^|O+E*^S@l!5~gRJMlm5L!F{F-|6uJTspIzB2=)5pYkOZb)-$H3e5q`SGJ! zG987cc%)g5HZezFR|=t!G78+accjk&W(3F7zUe6Vb4YnTbm_d2K(?bjV&IIx*+T#M zn;##HOM)z@RtKVSc-!D<9&iMmUwb2FM-o>MqV_ttw>0L3T1LRTYrH(Y4_pUyhzB2QbTe{Q*SZse z+LhqXSA&yAlL27%XQFJZNiz4FTE52|ZD^1pD2!qB(@{<_uL8SEh}!D?K2uHabRv^l zT|vy(#msXn9z)7;_qN?po&pYrZWz?L4W@xbXT3BZ*P8xs4j&Wg;|$qu%{UT9L7t8vbj%-6X;(0M@Af2m0z162C=l%uEBkICF>_|^ z{Vbg+6-PqK$h{ZB$&g}(hr&>I4s^729S-FMGe@e$?C#^RhbZS4B{L{gcQO@JSDYgP z-4zj(#vC*?J;r%=4ofNt5m`bvI%N^qi|ea?Ctm_r4Am5_#L(%Wk+Vmw%&WQu)w&6a zA{K3(n!_ykwpP!s4V<(H2Cb;{-f$K#9i0cxw1ZW4PM<--icF*SQb+fAefS&swqez2 z^^BH=5GP&6>xy8Fnul-Jp4SDk9ePnk)AiL7V$NTG|JTny|GBNSNALGL=WM99eLy8e z&Oxxdz%W~Tpn9QmoUy)}kqP#(elmmI9qGZ@l#05mcgbV4?~SS;s@L!)2ld`OLWAS_ z_ivY;t<7;}AVy(B(TXYtGbcPa3ACP5Baz9%Ga*97a_)xgW=tW~HR%nJVh^{#1A|%B zlR&b`==NeLDw>66OrJGsr%$3wwQmO`NJzGmt-SOp^JLIRtkt=;GBdI7FOJJmf~w-t zkX3+EF(-nkB0FMAc{t@b+oSup!g{F)9f6+PZjRzCK)cHt{89#fIKbIk+va7~TOy?q zsr_v=imI>P?~sJy7QkA~6B0=wn4|B{98(cpwRXL7w*14W+jbuxhc3^vh614mx!!Lx zR|h&vb}L7$!ZZ3Z$Ivm~BJ%`>r<Mzh5K*BL*)A+?6wA#+dfC?Y;b~|M74C zGxj!~Loh~E@9JkWV=}^4HJr&_stP)`kbQq0Wyle~7k~mp8VidjrjcZ{7z}dn-Q9}3 z=EX6)cFyd*J+4G3{lG$zqjt$M;K+tDhjj1zHz2aXtgpA?stmGyH$R~x)#T!h~A5}RjS_K zD&j}rZ+5|)0;~|;Yf&hRn0NV(&tn(Jt{o6_ZhPZw(}^$%!fr5?z z`&L*t#ti8C_}G8`Bj-oLp~$H2qXanvZ9|9?j=)Rn1mJl56C)Bv$9a^;IS(qG*)qw>X=T_L`MMsR5}N=NswwhJ6fKPqzHOOOf zg_>{;*Qu!Tk*PvvT6CHr5WOA1>1g@A??7#4YDlB^Vouc-xof+otGWU#y?a*IPIa;- zbjLJ%Ng<%Vf7j^3R=Mojc8ON+YV6%oz2Cdv?^jpODX{Jv5xv&SX`J01p>^lH&YVqJ z#Id^^sX}$SWh?!N0*@}H)-Ads1d*{1u6R;VQCrTZ^4^aSFb=KS2*&HjkBI16%Llxy zXI5rHqGZv-G0>{TfU3B9YLt3WY^j|z|(=sK{>8HE{EabOH|vsR8-fSoS=zLhBwtpObe zUbiC0HIy^sQg^*Sg%EZkfgL8fyqxv6U=H2&`P&Gz87wh+97hsx?n(RPG9q&b#c|m@ zvbtowtHe1SrC!2NHz@0>!#Oq+O08SF6dh_r6m~nmGKJDWTB;rAySDp925KaeA>vHl zD`Si~I9`|^!6skmVy2x;3k}JAotK&8V(1r)rt)5v9H7^=h-%UY7!Ww24sHn4|5R&D5@$xxK+; zLUKH{n_0-{t{BFO#{Ykv=-z}*{sJR$uGUvE0*GFBWX7C??KSGXOhi?1-ETs^ zm}2C2xP3SJ$g~Bx`Y!-}k6->5CY76rWuv#jr^FFnz&5tsrxZ1lB4^kxD>} z*L)G4E}1z>>Xe&x5mx;G=l~G&L7Kan?8*_uV2&Y3BgXKLbo8wJj@2K{_!z9ciV4nm z{m1z6x353{-}`_5x9i6T^>gMchZxRJ@rpGonSvmgc{G3L;t+tk?{qThUUS$rbrcldY6Rwg z{;&VlpLn;ve*d%gl1`TmA?Aqld!FCdBxCPowKBSy&Nm62O0-j1T;7-sM5~XnP^Mtw zfjIpWotoD7@6VDr@_+GGbT9H9~4M96r8x0KNvR>TtS7RLz`ZX693v%AtDfrbFBmfb;oelSjb9i@p$KtEHE+$Gkr$513NP!A1f!5Y1NHC z>y)(iA}A&~0*pEJpwA$IjuWTLBT*-06}ks0>9`Y<#DwfDO3!$!53nIn5y529)v zrU&8Rl&ZsWA`?*Ujrrof8zNZ_gMk>sxe@4+32)Pi-5DXsgM*GPBgm+=m=?@qx1iSA z#wLtDsZ2Z@rgX|b1GU%N<6;IWcQ=xZZO+zTUm5pecURZ$<5>65a9(nz36JCH;P*dF zD62c?2SDw+84)jQG404W=i|{^S$}Z0N&yY7cr`|gi9cUaBc|eKT9yHe zZ9NR0xE`;_>ZY+vlD#vT-LGGN z8N@$Oc>6c1MH;jy6aVmPDpVC9XDl3PEO<~z`zpl=D2G=zLLu8L%jgo0J;((1!4rtH6%i2_URVKS)R-|ogN!j zSMA~)=1`6vt88XVIFlFgM0H2+ZIxkHpH4xX$GD|d?R$;!%K5U2FZ#RF6Sh#rnEN46 z`7l0dxm5KLH`DC{4q_;CRy3vmUcAyq1=EUd?|OHywWcGQeJ8<00}kkPIz$eG2BNGE zs*ahA@#s|M2f)0m0VPAUeU>m<7pVRIWQ5cDXT%_0Gv^o?WF3%G2cKsB|GoU$*Y3S3jWJ1Jt%wM7EuIQ8nS&3-JYFxY+an|8vf(%ks9Y%) zcuuBnow#)g;5JIT3UxwHffM`ZpWG?GM5-UQ6;uQaRukH5)tc7}q_uW73_d0GX2HAF z%O$WKGi+bj$>l=g8KfdQK!sniy5@+BZ}Yv{1wH z9%i1FTmv`-dYJqt`i7WpU>gBA`DmxIKFUiQzH|qU0cA~8^Ew=+a7U{-7d%Q zk@W1+Zmb{}-+vh}xbL@biXeBlJcfH+vl3G{oJAzZw7kUVp!%%S=|iqtdqX-X%(=>V z#8Dn>x`MDf&nu>pP@>1jD=ONaZqxVv4mvH)=jkT!-&Z~i5 zi%`{$miP4x)>`fI1D$Em|G~Hc8>PF0mZQA0l& zL8rX#-MgF@DAL{?Yq4_9)=7mmGXbA9V-!$pRaNaK5IKBgMfb`N(B~L^sqq@}&DC$5-f7bnvy1y#_Xign*xc{yl3CWr1gn(ML3QR za00{W%VUmd41ZTy_X~tPSHOpIsyoKCSOWlZ0?HhI6z1y{){|I+2|36RElRJCpZ-L5 z)v*{Dq-3-ML+gg5YLWq)%jH-YH}2)R89_&lXHs2NRxY$qT{328gCmd;Ge@Coz0v*g z`FD7@A=1)!l=jRjK}>56Euwk;5}QjXFNj`_e%c_Pkz{_TD<30HaOxG8nmcJ;pr% z2rFb{sp8{p01v%K)ZPphm^rFDGSL$HdR=PuxlE#^&(Gg6XLmEj)0BZ2Lx}Dz@Q7!s z*fr-&2A`Izy_QQ945;z2>j&eF9Kqhz3{+dO3dUfrK1Y}yoR5hEw@A`HgOy*fh+q!v zont^Um@wynCkoSDnXBJx?+}ogInmqFN0JFD2T`N9pOS8=w;Kr^pOO&AJh#19lx~gi zezW$SyEz6!sOo5YGaQ)bmcLrdxsLcYlkl7&4OZ0vGG_se-eA=_s2w9x)LXCyb+eb} zB@-SxPI^32qG+Oet9GErJb9a*H@mhYOV7(M^8w)%N|sKu(L0Jeo_YYB4)< zmq*F^W`9hB9uyWhNDhv|MBRk6_t|i|c2!IBnqus(lMGpX|MSm`M_^P1QmTlky?QTH zSx_#zRdUXc9~@a@^j|{lEi`1U>JnGqlgIa4!Q?XaxG1 zo%Y^t23;130CT)7G7*z8_F65x#`HuYf-%n2o@sO0j~~DOc>PR9fXT=)PMU_lTIf4U zL@l)x@qXW`9ncjcM(%Fi@1JwLe*W!#zfXD&qZz$cj;XU5M?~Vp6CGXf7?<=M;>eO# z-D?l#-(&nJNPU0Ad*CPcUdvdk)U{S5IR+ym z615|8%!{XnBM=Z-eGKKyVUPFTf6dy*C+1dd3XwP*p(j_VwryN?e4Y!Cfo3q=sQJC* zVAUYlg|1qghQx$Yk8y!a^6T?6t`CeUren=lt?Cv+W1f_bN8#9BG9oyx{NwNX@zbMx z26K#@^PxHtF?B2;4wj07c_N=Up)q}h-$GTrKK^L4ALsGP$EAKCf26B)0zBm=8ndcY ztJSr?xPHI#3cfP0jEKzI??9J1&~M$of5-5O1!O*l2+v)fUKkDdqP~9nRyzq1&;!kj z&$+Dg2K4@onL?e@!H!!0@;ct8~hbux6%d0y*&$PwF! zy!+{-ftw;B7$L%`B+vfQXT^@=Ic|A1ITMy&%E%#LOC79$^FK^&#G~GTdd%Upc&e4L zTiaQS-7%(br0Qm*YCGP(s-QMMO@^wqH(UzBCu{P+NubY85HWys&8@LBN^y?d^Y*v3 zr5;wh0E&41_=y}un6Y<4*NB-Q(5l+&wzI?^&im`D?ghwXuRrtz)NLgrPNGTuxe z_59$DI+GcVBRjwyR$&@^JB>ULfiQ)2uAcDZ@=&^tU+C)X-Ma5Pq~S{ll3HU-Jw7-; zj?YJl~${DE7#D<4tJ5x^>AZ#8Lm_UR-Vy|Kzhgt;!F2%N%hE3Uind9=? z=^x^~+ixmHM1<4FXb-xdr0xlfkrKAn%nzwcJ?7P|+FOzA2Tic{*Kv|9p&R=lTuw3q zXtiusZz&N(jLhg=wM&u7`2F>!!*C?b2r4t21EB8r*Ka;du;(V!j`_g`VxTviBPFmE zbN-t1{`>?n)LdT?<2ikv^a#)lv?1ejx7#uF%>YPVW(z&M&+=%+c)bh_DS$qaEoCK@ zWHg6Wrp8hlua8@*{S^fAM+nZa?I;g*PNnHJ!~uJa6D3(svTpTa|oi)!4_-pXknyk_qy}?*iU?9Rf$3udXpGN zolM9@5j7jWV3C;8{H+yDhqr*-xLn&d3GkiIvquaQHp&uWDzk z3r(e1jhuOcwA4ALYDf8~J_=TRUy%T$7$bv-$T4fJfn-Fj+e-y%cP)W)T&=DuPrb%= zNeJA|CaA7m$muus8yw8DgryH8(h+dI_c6~ptA#mYP5@Hxy=vF|xEu@_kuBv&wf*L* zmi#75uG-aJBF5{5eLH8-^Tcs_gJ?O8Zy!h&ery2;7x8##pL?t79*-kF2p#wz0^3$y zBSlqavzbS-<$f9+`tP#^<{u5PRxx__Bz2ZEzmsQRJd6I};+#6+i4l?cey@*1lgrSg z$u7q9&*LL9a#(d9!L9>71M2QM#{<#QIIF70HS1nx7`j%}9pgtkCU6%s3&ld!en3@$ z90vXU{_R@lani|SInUSmv(L-`vm}u=nR-I?D}H!Jveixoc#5hYYmt8?<)}w5It_&! zFnhE|=TBF!`yO+;dsFTWvts5v2xol=P?=UFHqg7@?-e7}_Z6hijc_!{W83Slj-YK~ zP!+%+(rlPmT@e(=Ics56zm4jm@zG#yh0tohlWH*|BVA;7zrW@+uh)kcLrKA4rju)9 zj9m*5y3cUf)j&{gRq?0cRF(&VIH41bc;FE;c?TtQH;#v`$jolL*FhGKM%RZmPC5i^ zK1A0Tv+3Wjy_|tjgw}hg7iZ>2W)VoWY9SID2kc=U#k}MF5t1@YON*`$h5$CG`!jz1 z2Y>$&Q8CWX&ZsIzdj32hr2a}k;WMZC!j2r(RnYx@=ljbih4FHXDfO7wUQ4wFRc-8@ z^Xm1^G5PvX@AK?JXM{LA@`I%wp2h!jpG-b<#X|^tf%6~RY74WfyqHOJB@Aj?Vr>S% zI|)&Rjxuc)46=5`uqm7D<}-~6sI|*pkSgmS_wyRZ7`s}nT5nGotV%}RH<esJ- z88L9&h62DGs?NxD-_C0f(82j;AYtr}$iEElzH^*mLOL*AZqGhkB7sxxCq>X&76SS4 z(S1O1M=bgcIUj>dsw2)N;_)fc7Zw;>+UsjDTOUGlK(z*$KYt#DzE3pb;c6X3ApmQ? zb6khka3miQLip~)!PpL5s`HsMQ=lO}tFUA@DG3Q=w}(dApxfQGZn8Np^-f+G6I}wj zHgoK~u$Jm3LfdxVVrJwVdOkm&L-ciX!fg(V)xwjk?>8~dEDFF150eIGw6;!zl=j;3 z9sc9Jg6A7Lmq7s4Gs0I)2-Wf^8=2^iz=>$+Bel&jPeKXoxa;@lCxcO~y&SmUBLfJ$G4(#aD~1Lr5z4(ji5apV~3RFP8a z{`{Ojf906TXHBAuB4HjQd=1mzvz!3q5IPTDEjixGY-4x3bLKoRk@Qn_@U`RP^F+f) zAPVJbpSIis@INJxj8a(^9*VOKo9glR6j8!^y>F`P?u_H+L{6(s+$pLH5w%^=pLKD zZ){3A^1hc*#O}8ITVhp_u)0}(In~(j`TAi^HFE%sZiN0nKcR}W@`5k-00000NkvXX Hu0mjf9=XJ7 literal 0 HcmV?d00001 diff --git a/examples/textures/cube/pisa/nz.png b/examples/textures/cube/pisa/nz.png new file mode 100644 index 0000000000000000000000000000000000000000..0aeb5b9ebab7134fa111b3eceade32d6ae62e8ee GIT binary patch literal 85026 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�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%0Dy=>0h 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%0D}sYj3A*{>_QP) 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

-PV!kN1Y{sZVzT)urf=|N!w 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 IM6N<$f)9;R%m4rY literal 0 HcmV?d00001 diff --git a/examples/textures/cube/pisa/py.png b/examples/textures/cube/pisa/py.png new file mode 100644 index 0000000000000000000000000000000000000000..83389825bbf1066987cc4b6f23baaed132e0a75f GIT binary patch literal 76608 zcmV)FK)=6x*g5mLS57AX5QFj(tAO5rNmydt-aB=x(Kf3vzZ6+Dugc6OQ@&Eik zKK|^3m;ds+`J=fcDVl-1*ZS}O-Dm&Tm;USzfAHdZrn^HffQc*DepYK_=|NH0ly-|#oT`TFmF@p%!-bojF$z5KhMe(~#9>x)16 zU+UF&MU#Z+yaW;;B*tjr0$Z;@P!!O9I6;Vj36(TJF%J?!5%CJa_OrLst^!C1WPjBN z2|%A}0F28B?XPfe<9A*p0Z3#lQR{gO>ijartMM*DP!RX4;`RQg+Mn#V)_!fg3?ID_ zL5d(?(IHF8ESZx9kfCX=X-Jgda>7iK}=Ql6j zU6;kO@$vr4&%S=|yWhIXvm`;a`kXV}X(%y$j1e(f1DL05$*!JUZ)*XW5)E>ABC^2@ zi7>{(3xfAW5!)2R+&ExkrDK%mODYj?hb7xeb%7A4qsdJ!(v1SlA&}w^-k(n=-B)w% zN(91)Cx>)|FQ=1HQ^L`3op70Wo$Y2yPcNo-t`0AsUVila>WMkz1n3^JQj0HOn(~Hp z%m&gWLKhb^1a~3jDNVvY&=4^xRC|2cnF4r!TaZEtL;yY}4NZbWlD#*2)*iI~W0TSN z4dniLr_R@^-@M&J5Ss3ZkoC^QEfrcC16N=AF$9J5 z^Q@;bAPsdhOU%iVQD#*zGpacFuoM>)tgE1-t`i)wBs7va)j$6ifB4ST@h5-%cer|b zd%L`Pb4tuV`*;8T&BhOZ@O={`mFlOpLYh;8oJNrrMo9u-kdfI~Ps`oi$pIrEC8H79 zXvWY1hT2jF5M&rAk}ft&2@hk?W~dp^kccoXCU;2NTBIb@vhAyXPVcGDJ2JYZl_IHXbjKp(!5NUPI3Sd*IIyfOSxt~(;v{z`jWEzjLNA`?|KY#;(=V3%^;d8HgFpY1Pd@qW z*I&PS^UXJp>+;cezw^^y{d!$DGOdn{xmGutJRpXV>JAbzySh2l*+SvxoDG$I6ebH5 z9*#NuW?MprwTt1ww->Ho_C)Gth{9QoxVoj> zJtm#7_%&yv2etxIq6C3!)kP-d67N=B9}?(^GLmFC?7&u`RL?JTWW9O!>1OHsAN|3@ z{o}*xr~A8`n+r&mlBHZ~EoL47s?C?vkYwQ(QnJG#ueCr;LDVLp2Q`dPr^`ce%+^}# z8li3vEX`dJY``ck&)N?bNy9u~n2O5ilva=Vr4 zoQ@h{t9S+l;%{ll5O)EB2zIIc-LDQJ8VYD0ilkbksI$)nwa{@(`&fsVAmKv^x#Otr zXVKI@&XbW=1JiWnG!AN1Ou**xWBudZ(e@(^Is&QKCJV_1?mPf zc>x{X&_6)ZLWL4QAc01@D?$tb2r;EGM95%3MSz_?+lCH3;T%|D%u*Y?6BJzWvk7T7 z(^l5C0!lgU3)q)E1!@F8c>iMh`Fgt^*8?xEkM$ou|MFgC%J+A-X*zJ4zxv`;zBwKa zGinuaeQ|`LQVEnPS@o@${LTG(_3i`}2xYC9CWDrW$A|Uwc#08c!@AVF)9H{74NNyU zwM$iZn6Z%I4s>SYxq}A^%7BJ(ARr_ToY14fGd=01v>9r3GrY&d0E7_MCQ?JN_c`3{ zbR)*j{X=JI)c6^lJA}^IghDr`(O5l-fQ6ECw^wiZhdno|7q345{NMgRf3+A+>x!JS znGsNxT<)NmTyXRSjA2=#q*9A$rjB+jLJ&5O&E|L7Jj%gfLf~YgQy^Qg*@xN2+vd3< z<-|N&RTVSATHlT!B(i!Ffcc%vtH1l^i`RC#vFn@pdd`W*i<{%+vzv9RrPTHI_Lr|- z83{89zAV>Qm(x5UrA&~VFE20Of9KgpFRzc2Z*`$9YXuL7IhVR^jyHFAGy`y)rw8|~ zlnW-PLf&Mo8$L934w=-x&aLNN`Zc&oKf~9t#OK$KSazS?9p$_wW8=GbHDI^4Z+%Ez z`1Zhf*EP1dU^nIVmRsshCQKH2t~CTCT3~nWq~{pT&QWz5mED!0N5A7HWWO?5C&a=6?wNu%f=KAT>h><-eDzgf5G;z*Z3ri`-8 znafffN=Cw{T4N3f7!xUX(RTwy7|ps+hU5<_C|thaqCuA0VtY^m3G$!^2=(lMfz^yrlh)sQb9;TTL$Ajr5C5WUoFSSlAg@@odmx-UH{&DGrd+X)dR2{^xGcB}bgBe5?$RW_?6}*upHoPqc^kziI5{n zgy`p(7X%e}cZcM=%h>5~KeLa+^s>hU>Wq!p@7M)Q9ldvopf}P(EpXhp1trqB`Hs~( zu{-2C)P?5)Km5E!Fri@jb`-z&j68RZMCXP_``$g$Q2eI0Ab=dKONM7lWcW4*Q;f3E z9yh<9Eu(-CPmaxr+o+x|rllQ%;(mY|KL> z-~Q4W3xrM?o*C>Wc#VkRS?+8AsUeZ-QgU`94v}n^oB{li^koYohc_AFMBKv9y!hFz zTH@#I{$19`1^d6A_EUE<076u|s>PtYPW9Z!|1TTu+;6Pi+(Mu%%S|d$kz68eN_H`& z3{M7&=#zH02{t8qN@=O^mT@G}!U~rc7b2LO?7#n4|M@%fG(t8PwykcCT8iWm+jxuQ z5U~V}Ubd~ccc&PjrIpad~w*y}GXp)8XCg7e`wj7BLNbn+OF{=vdqzYuy@RKuVU#@bK>LlEb#D zQgyp*WFlBYTj#^2*G(WOo7J)zLmEcaM-xAZk_~Zb`Lf6m_Of8 z**f&GaZS$<_BVU_sV7{~ExKzLvXq)VL^v8Yni1pj&Jli(7(6t_MrS+-^Rsf zW*!KVplPkMi%?f+5n%AonM#BURdTP8%y^tqrYzhcRK@$v&C+Cb&S|Tt5oxwmjR4hJ zw<-ZN+&seU7vt9Ml%s@h@O0Kq;Ymot?Zm?~1G?H)UB1_>HKSV}}f z<7p((eIl>2%~Vd7Q!-;A?$!dPj5?)MT=mRj8DLU%uL6KXyz?~utN-y|UQvWxRo)`f z8tUBRvXD44qnTaNG zv+Dlp>(`5_QJYYT^YQWHfBe;_U%uV|NomS=52vk^DyBT43BH9arfda%?y0&y{rHBzx?w5mNS|u+IcUGLH$s}`a!dC0!{iD5jvGi_E$3rQ;xx3AlChaCuJvpKg??`Hs z(S=UKOzvv%Rw}rQiP*T*2$s%1f&DW({@8VIm%Fo%=!~BW0qhv8W$)M{)$U=VRiVo_ z+n5@xX%MLW+6mJh&7hCEg?0l#Mf*(>ySW=oX!Os{grMUvTkY!b2=`UmQ)Yalx2>KE6%UqeEyKr;`rtP zuE%9bQp#z%xQHUZtHX5j&hz8*Cr^%tiKN%lT2|*wTpUuOxe>&4n9F*9+EyN)B+E@= z&NI7_@b9nz``7-8n%A;cMLjA6RRQbpTZpLREk-8Ruput?5Uk^+rWFJkd8lsS$4%7V z>Wk4m@DSXlejHrQ-t>;mcvi)rR(d`9*;FZz#ORq}}XcFY|;+!Ip ztN-v{eE%>1@~3Ova!RT7JPyslN*NXyTjKVAGZO$ILly}1}9am2(%yxbnXetfbzFCz+v8QjdC zXGnPWTkj{UwW>GaU+#l9*4al9A3>84mw%yltU43Tt zh;CiO;n5-MX7er4X|l3oh^TCc*uSYk2M0TLQr9JFi0Y`Y*c*>1ZCtS9FLd6v8)PMRiqOrNA{*RLjR0ihR)R5f8NnnJ>%rz&q?jk`q96uqE%s5x z>KDo!v_P`%eLjzeTuUugB)oWC%jz32v)P>1)VbfUWXt>!KY^_yooA7^2ssH z-;|vB&edg5>+ZgmDzLg-UefX1>uI|yHFz5LEhT434QfUlhQmB>Yc0i9ZIN|B8z9E^ z-*+Z&hblN%hEe+6n()SnMxLyfXLs-ruznEv9Bwr5QWxd%L+EHi0AOm=WI(E3YS7Jj zC|*whJ4ne119v{M3-9nV&D-tKd)wdBb!mL6IjOkoh$!|R4;|`y+AD;c`*H*6aCp7; z#~(c5vkW6Ld`=Wtn2Mv+l8EcsW@<`}mMNBAp9*cB4aYfo5UIgtwL8db5R3%sKmXGo zAIm9QrwH74eu2mUg|clDZnYOL{;)3#O*YMN=77gB1-7M{N_}|G?@T-8itue?b-Ww)=jJWyKAdGsp#2SWdB$o-btzCO%GSqF`s%)A{t*dA`SCWv-b~y{j z(uL;u&c)TTeEr~?gZB@=`uUf?`Q_^`zg}*qi)`t%)-XYIHz`GC12~W-rvdOeB~{!# zK&sV}0jjl$o0yEtRs@n0EVUVIEN3(IJ@h*h)W{WtaqYr1B&k6bwV!Xj9r&>g6l{#@ zE`Vs3tGj~E`)JQYd0*$QghaT1z6GX2bw^VOih(=m?_fs*y$p2J{n*Ik>^=iMZ;2*H zodRk<`d+~FM+yko8$TQ<>}1>4^#S`9OdW~AVnc6-z|^7 z{4KwKb$Gw(m*wIYuWNqon{a<~nU@845(&P|CAnDwTMAFL8hQWuEBp5QKmF=tW}Igf zZEI~NPRPJkD*!v(^s3-K9(IcvZZYWjMv`Uf|#xP^y*=Ka*+)_ z8ESP}PO)LYES#Z*Mmg)#PsGF?T zR_J-NEY^x@O@t&RT$7U-vZYPF)$12|!V2qkNKLr7hmSxdfADht>3V!cd;j7v-+lJ_ zmZxPw&Ysf4!^77X^K486lBL6Bn+_>e`H7w{4r$xIIMu6^%Ed)qw>+ViTDB^=C8HUs zRiZJ?SCJJANo%R@fphyN`7ZZoR$UEjjB=>Ghzdi@Tcdrwy=xTDs_R2b0#gqfYS?ea z0yJFF@P1IU;bPUrkE2IBDBnBMJJVh=a(6rG`(5MlS9g=AU3aa zO5w>e>5-`u%m5*qIo#R=d0>oCPv4@Nv!%NoiP+98(->#lW)f3Jbz(@8Scg%OReFQG z>YL+;LpD5=B2QG=N+HTxO<;t-9c*@d8a3ad`20Ih(of1#5{`H;1LQm3{jhG^vN?$_ zUcK3>d@IJ-PCzTwfa%HglQ*Z!7tg=*oy#j?xw@Dh9&QelSWERdcLOlh&D~Psd?{<$ z9=!z)*!T7g86CyRF=RWV^9Q%mlCl~Bz^)SGXE(sztDIx4AeB1w==i#kj}ZJUe=)wD>ij5=y!r9ocQT?ok*fMkm69Jmew1yq6A?vKy z96J>xdcCpbhtH;8-C_|ET;%3N6~HO$X5y*%>Z71}epr{QIVGzSmQv>_HSUEpsL~>D z=3QySIwVEyF$kt9%}m?6YMy9h#p1XQu*vbU@TP4BO?{R?(URmbUY9pNU_IQ39hl4s zhr>lJ4yRH!x2>`;O{g8+(r{Ll9kxL_+|1X@{oRtw(Vjn@FJCRw)$v)rsMSGQ%8~-q zm(ADelB@c%)=w+GZ5$6Yk(gBipsuNx>jz|kw|Rs+D-jA@IkM! zRfuw1Q}5o2P5H=9#IccGZRNFhWGKw<;Hoh_y{~75!?91q*aCaY93N%}4W#G}nETcC z@O#g0K6$|121u4rg-x)EoOF?aQWsewt9&WQrb9}}9N<=JvZkSkZN%y%C}@<0)(0hK ztWeq3QqtJR$dp>uCmOl7yV6(|KO1xSjVAQ*dT@s=tHWk9MXGEI%2sQw;PL8`oNiGr zP_tB;C$(UcI;ThgGJ9XA-!9iD%U4&^O7q=*J@eYRs>0Dp8L}6%h?hFJvc?TAOoa@fz|%Wm;~z*6VVpglgdr( zhA1|BIh{4FPSx<-Sa)u}2M1@u)sPj_(AiF##_y?D+4eXM1E-nxgN&LQw1ZumDD;Ad zL3#CYhkGHC`jYi#cNHM|&Ja|b#lZo*LeJ?O+puDE;s49!di#5q+sjMKW?7iY;#gh9 z0oT=p%Sj1Ji8duoxx}$MS&3Lm@x5qEEj1&J!%F%|Cz^n4Ciir6d3l%#kd&)>o3QS| zx`Xa;G?pmgTt3?7_LdD5Jh(YEdZ?PoQEDwN%cf)oovH?uvW|X+5X2H0@Pp_1?!h0G z^Yg0@j#kSiz+e{PdDNa!nVgLW{0=ClvNfn2AlCah)c?B!LTDRg5QaS*j ze6L_=zX%$BsX4yjH%FDvnLQq2f?n_7Xr*#tOTEosOT&cl)js5I)O+@-$&FeJ!re1S zXXpfyjVca?1qthIO_>G{zkiF5Tgzh68}m)KW# z33eDROB503ZNK zL_t&=h;l=iPHR&+GN2StsuM^=-D+KyHRgWLV#M}yQ3(3mzZmM>5_{F{4bug}LJ;|nIGn5QBGcP9g^A4@LgPb!_S*n;V7>5{!=&8~Z z2_!nfjS@WPq~c}U{E))n7>S+kYY|x%oUxG~W0{)!qIv8U1R6z76A>(bB;=JWAEx7! zb54FLo_Jd8in-5Y=Lbnb20?MeqAHXx=bO{rn`QDtdVYid;_~LJT2<>We|h^`9A!*7 z=fgxAfhmcE+)-+lmg07G)OuQr=EM~&=-ZpK30St(k;$o{iDu@9OmYBQwF39X{f|nU zCSrjNn$vfV^l1~3Gkg%%oZU3GgU=GWt_*YC<-1XF+OxsNo}U^psmn2%7LUu{QoTKY z*K^Ok`{B0xT5wb}HE|cBPA1l$0jP(L*+{J+s6;!@vDqjviV4jlJ%aA-*y@l4w&Ohn z3NqDq^E$u0`q`K3#x%`#d$;)UK-rXKW>Z&Sg2}B2Fw99Hw&Hn8hPO^BQIrsaqEh4c z>I8!q=yxLXec)I za;2yV9V=_@F#8b8=j)RdoQRqFAPZJZkAM03qU%ffqX8);-!_9TE{-|pbXPB5JU<+A zB2oQR^d$2!QZG?9GSBYS-Qy&(e%L@z7LDQQhw z>+6HWrBuPDtenP8L^4U$N#a1!v}|RbQv_j+AC^E=wbSP&qky`WbuEPCv^Xr`EW>B5 zbjHw&U1FiEYqxr-%ei%F$I&r43IWo~jlVDmK zOBAW`4vq#AD!uu>0}C9PfDXi+XQrx~L7tDYyO20grZv-)uCHi!3l_;XvPJf20ZAKF z+df9LBQ|@a)H5A6+^K+U=*UNKAe|eH#=vmc4hORIq~8DN>BYyd>pk+6G#i&Sw)t4j z9Ml$poTUmUQ}P43Z6zmyNNrDy(=K)ZlJ1(wKKT(GJwC%aqu2Kfct1h+O=0F)Wzu$GpUUVQ&KezM(ddXZhE zTnh%AOq>{Tb%xNxOkTFP+8oIF&*X+R9!mtS)@HN{v*SY#;?m8IJa2e`$zlnZj&#H7E)Mq)4RiK@z zV!Y)Y+Yh_nQBy}-+_MK~*9^W!Z7gR1j$?L00|AItP47h2R(M8?JnCDVEX+)ZaT{bB z1Xp)>?JmQuG(EoBPCtC2m$?=Z0G=OVB!qV|T*Cqe>OD zlq9Kcm4W+O;d-CS-Kcq^cO-SHy3goYh|J;aW7tWE>7ZEV`8ZklhMVJ*B)d3%u_W~( zva|W81|==H(J#`?>GaLXH~HzOpZxvD_domjn=elJ#`3ytlp7JgkjB|~q%P=FHY4uu z9+c;+>*Im3kt`0G#5_;iR_j(_Qzt2Q7}E!_V_P<%Ia7lD?_to5ymR*8I}R`+0*vj-Ku%>{viVB zTM@!0`$+Y5Kj2~%kEwgcF_ULQZ>4onPNF=(!g)f^`UxNGP$^ss8r~p)V_m;{OjEJX zH)iTM@liwo9UwL@Mda2sAPOSs`ZAl@K-?8%X zoASd;TAKgrx2HSV_Uo_gcr0&j*XwyYCsRVSTyihBcX#RdbjlZ(vwW?!q6_;xr)8_v zop$U;eMRzm#DBxEbV}!pTd_SOHfT$>eR2aTqHA`SvNI4e3@Up7U>)TL6d5gZxW=w} z@s6R@91@^YfVnz!XmEnP(!Bc^5PfeO8hg`(u~n7!Noes#+vn06=~`tN?IF^7W3%OW z9Yosi89GTw%B^ecQ=k@K4#?5IcT}jBeTGSswr{06WB%lnnRqd2DRmPO$4#^8nh}zF zN^}`@b(of|<{WbzXit0)+0TA^c`=cuQs=`o9}n5cyw-Bh6lFde-b7N~;;BID!lf z4vpwwfDbk0G$`P^dU!+jQ*WBqHXfz5LXE|%{l*Ov5$NUCBg7szJnLgK_D%Zx=`jHj zNg}J&Z4CK7i~p^8gPvry7y-I*jlsN^*7@oD%Qw|&7ZaDQu0>V#Fy)?8fF+{VwK643 zEXPA$)?%p*FJ?HZlQ40z&{EZ{`ox|b2jUPRHuA4Wzh^aug6Ntrxt`D?IqnPCWWoru z!Jf##`eR%h9cXynhKfA03fjK3Y zSBIpnYOB63TfKdpKK$^#oDN`y`?75`d7;MxcsM7!i|sP`NJhNT#l5Lss}^h`Hd0R! z*$&f*T@~2fgu<|eKtUH1*ntV2dre+;%Xm?x}I{@NNxgD$#oog-t zBL?s$W%1z#FHFI^hE0(}&&u8O^yZg$ek%1a=e77&MU;8U5Wpn*l&lur7r)Lad6`mP zw&jqS_Ut?brQ;#$L_yW;t7xVf!bZ}4&BJcN^vjl>hm;cP$vlQLOx22)J@q~$u_NKmJEICK(mqjf z)WpGVF_W)X<88v3KzrhAD&QZ`_p0Gzo!)eDP$@*@eq2WV1 zhX}?!T3!qo0YlfVv%QzY%tsQZ)A^<*DjkppGtqOC-Ks}X*BKl_?-z##GAu+NH%3-C zl+G01boh~X=(2oZ5Y^cur)0Qss^&xN0bz6@q63-?uqlHcmZly7jL&bya=*_kB1Jv_I zdvxceqZMbvoQw~~X-0l}6#QVx<*dGJTe{2@aB21Vk=qj$we11@bf{)Z72)1T@8pl~ zeZ9_4p5nj0n!YOQQt|mKzpMFpac~L7l*~vO1=cE+dOsbEJk0j`lg~f9ySFqu>Bdyc zR;%38@u+^@bvKM-xz(#C$GmH}|6#K_^~I4g7_PsOG^13rgAj~x;VnQS!A-#=2P!w= zcihalU56!oYcR%faXi-p0T)6sE@GjgGO{g7IkqKV+%9H15hHkx!)(GAUX zB5PN<77OIAd2I94judF~VWe{;&!n-VAMGh9-5SCdCPI`i4@;@-I6Xl{&D4XtJqv5^-LN%^yg&C4t+sHi zBAm>M8Hx$?a@ri)Y9S^UI3M-u{*yXAf5$5D**0C}YJ;t4n`96NR|g0F;#*JZFY2AA zXT)X3MRNDLeD=j(+B?_t>9iFUpHj*>QJUv`dGYAaZa%o0lj`B>3Lm`p(F?x*?U#2C zivakxmFkksmwluS_Ylz7BTsc?AH8V@2E;I%e zegk|rHp~+UqP9jfSYz(z7qJ1?{;|}~^z7KZd8Iw@9GD)FMhJ7Gp5Yd2*x^p zqN4gHKTf#_Yw=nf!jz1X5lPj|iey%vJiQh&z?|vJ$z6iXU}9Cn0fN9N7>t7_)O~AP z;$cCoO?!l`-ZC&_;gn2}(t2X$U;M@2KEhP%ZOLm3bB0MA;3vi@J5Em? zmscCA87+YcmYyHdx@_-#@bZIiz4+++AHDqEhnMd@J-mFT>#H|c*B3e4R$P8{F@5y( z^2U8CHJgD<9?&tR>DcZtxUNp+4)GkGa13jN=dniWY0e#=40F)(q3W8`WiIUDxUvxk zqp-A9stHo7@r>t2fT%pXeQT!w>VxBN=CvJO-)-#KmpTLkq>jxra#CzaFMjVphZs`e zW83in@c|3i{$b45pp6LS0jRilgk7;v38OkRYVWcGf1jA6F{fg#X-w<_vRjlDG^?)+)pke3Ml!y z)nwVGgES7sN6+;%8!7eOM|+TXM$hc)*O4l^4k@*xF&c)UI`RhEAyR$S(Rbjbvqc}Q zd>EttNVL8s?aU9T=L+PVvfO=?&PkyGqoWrN<(8iUMyXuOGH3|(8IbDgq;aFByG@gK zXwzGY?Ca1X1jIh`hNG2XX+Z2jSyM;K!`rD>ZZ{~`q7c$3U9We4aHA{KQhhQmn=eIM zaj$Mf0w<%vEm;+5%E{h)|6NsobAKvGkmRM=slb{M^*VqanQ-7q#Ho%wITmG{yP}KZ zAZmeFPTTzSNluxnwrwYIHmPiX`|H<^B;#jGZayATJAUijOaP9L-kDx6x(7E;|Mu(p zzyI|&|N6G3!@PQ{$#6NU(>=MH3&mfZ{Iu5Vqsf7sD=Bv+veYd$&spjQ?RQM1Fd}*l z^xY2R;eNnUKgz4?L^lJ@5eT;n14yA2d&kF zp=Xi+7$UZ7j;j}tvi7arQHA4UMG3G!oKGFUMf}t6mD(Qgw$u&LwN1DK6!w1Y`bi9x zv53DbcXoH&r)kXCPd}Q9RIw|#n*NmA&Rh^~a5Dn)_V|PA@@_8f_41G@Ukf}AA_bg^ zePL!vo)Rz}^Pm08f9{W`IIw?E&W>hw%v%wR0uBvTj(PT$z^?*@gkivBYSD@bGP5Zk zGms$R@!?_JO1Zy>@X427t;yWI+H`6MzwfN}fLU}I@btrLZT!00^!!*K7yIY~KDjzv zOkaHV<)@#1{mY+z`sr`J{Nn4|ufM*#zhAc7`}SQ^FLiiJAxYAht;^#CAE9@%{s05iA_rF{27my3SA;gIZc*_O>MrEGx5 z?>%V*cMKyQ6XfU_+%tC@A&b|PrsFi# zboun!nKwt;mS2AI#Y&yt+<)V`hE>;>C12*1KoY8vY8hHdA}f_Iri;hB&F5{J-Zh-& z>E+FVpeK`1A(8GnRexC4W#h{a-Z=uNhsV3)Y{!Xqa$qv%<1tQ%aM6$zl z*MPGDfVxp_DIptHu5$xz(RvPmK=3o|y*;hm0z-riX(hMpJ7(e!YSg;*L~PT6Zg~J7 z3D?$B4f7ctFzuq%2R9T8+;f<_@;9Zj9kahy``MIdaL zxoaZcxyp-RX4;z0hm~t-n?VZ_0+R`_yVHBu$3rczO8RKxB*w<3UR(jOGhoE?H@AQLkI9cZ`E-AKdU?FI#LQ$= zil=%@B%P+iY-)o;(R^EG`y2ezxOmlW`}%{v@B&4+zi%moKds{*pzHS zKTtw__`txf2s;b`sO)B}J19q(e=&5cG1UTLa$|O|mde9CA0{xRl#UnE%L4_{{qO(& z(>uv&Vt%8kSD-6_*7%cwvGI(jpWN#&>cvkEPp)q+Bc&%qj?xgVn@xrcnf$9yzW92n zE>yX<2kP*6G1nN59Xie*6i~M@UHsXO3~SWfU}|GIsYU}eo7}Bt2LO1POY z`$%I>IxrYg)V8z_8gmx~4nc*Qo$T(U=kCwaUZKzJ;D?^tYg0>bq`kV_wx|^xo!`r) zh+f$`sDdW_4K0pj#~Am}bCQN`VJtvSSc3i}ub$EaW6xyE$nLA;?c^qp6>}qi`j&_4 zH*h^$Z@+&{(3tF)v~9(Uw|$pXqGlpxqhn4~bqA_Pu4f$0*Mq2j9@c&+0f*MN{8t-6 zgR;#hDHNo5A|AhfC9l3!8lFA7Npe;H>Nl^xDz(ZS`t6BB@f7>5cT_G3mvbtQ%U7Sh z`tO^3;~X`#8E(w*w8k)}dER^hAH3wXhB?%frFxhAi)5&ZY}}ih1@QXRq&w7el^B zgVEo?7d1qL!6kGT*Tu6zsm^bs`#a}e<2%|I*(Lj>D4RoL{Fl%=>0aVb_b6wPNp8ajv=ZI*!-v~vB zEcQTHyZb@s`_C{^OvT8=5B-Ob8iykyo@u!kEQ}9!&(xFQEmr7>#@rJwa43Zhu*M{g zE=E)mL-eTVW4EX12y(E)jh=+grT`5Rnh7ts9xm|lovqF}aVy1@b4Et;=U})^+--~F>$1kO>Gl_0M2G{5_Oe)t*1F%9V`Pb$^EB)|HThq zUSDE1lrOe)or^V2Ah_e^Hwkc>zV+a?}2+x=!~%5|wVc4UfXc-(~QOcOeYj4DKS$ji4xlN~pl!Srrrb{zo-r=qsB zZ((U7IM55nIfv-N(d06_xu@KF<_w|B&MNPX7%2D-Wk zvz67iem1pie{!U($BR8WAk`0J?slQ&%0neH7?e4?i2ywworpolj@pz!Hr*0f+bPO^ zidyW=_waQV?0cIh)%I9L62MJaetb3k^3m=*O^Iu*Qu179#B&oh&6b4i6zSuR23vNk z+b;kPw|y6#*t|_Vca*L;aI$5Qo`WXj%UHVVb%#9^)LX(>s}mnS^F z_@f_P9sTRC%m2sKn=MP0CD&nV`93Ei?!7r@RabR&b$3RqM>J;+2oh$M`IKyU(qCeZ-d)kDowX5J~{ob5{w?!HeX3XQ6pc_YrSw-3vg4|}=4 zHv@>B*_Ykdu6g&+ICYNE9RWTwD^{Scb`odi6A25oseuF8Tz?j0R>YZbpL+e8Wf*}- zH-_+}4eJ})Jil+L995Q(g;fTHilQVoGmJV;CWH~u^)D;#KeabEwmz1p*$z;eW?ZFU zrFnVl!GU2=C-tb=EnJ7uvWDL&?1Qob0cYoP$Gb(S0BN)zNQ9Y+gU84k=f@JUpFJJj zIQ!}S%XYor|MJTP&6eIzt6{>9iemlAwIUB3^Nh)YiDJ~UM2(uIDu-HRho_<1OI=aZ z27<~dj3Os#p3S;6O>IBRbvRs%{Wao0|Ll{uf9t!4*5G=n=}j(3i^P`m-t(|QRqsXBjzcfxtkLsHrL_ zw;5&AQng#g3h2BcH~qsvnnNGFnC5s3E8Z#Ug0dzy*p2vxn-%y2$f^6|`|A(h-0xgd zW0Rjw{j_R1c^sS)No6YufU+Hj8|AyF*`LsjW!7||9D?hs%mqe;_YR-0@$w`Ti& zGw-*{8oq{RzAj(<>Z=#s?>j+!zP7P8$V0_znMF6@-K+(S#z`JoDz|UH6)=Z-(x_{Pdg4-Nf&_ zVXhl%4;4pN#_=--c{o0^nH}G(_H@>>xj&jakH`P`m)CmySinp+LTg`ofBC3C`_|(} z=*ww2t-kcGHaWm`Sp*o{e6fkkCc|C^Xp82U)^`XikH~F()D=71{NR>IRPRF_g8=3{D@Q4O$Gvj(D4@hIdQ0 zH=lOvj|$tNv#6!a2moZ==b-WG*VEZTm!(gx#iOhzjqZ}g4=Mtgbxa*N>w6w~ z8J=awRVPQMkLUjQ>c>y^zq;RjbH7dihCq40t=%mP=h;_58d*t;001BWNkl13KK z5olE=L-0|rsZz2iTVjkz)i8jBi_JXZ=O)S46}#qu%s92(ZpQvl`fP2N&C9?Jj#9lD(RDih;+u=_K6ia}^UcD`{l#*7_vR0tJepy& z4uIA{zj`p=-o09NaCfPbBpqg5-Q6H-<9zIr(oGXk!kYH$4BZqODY`dzTxIDXVY=hl&ShQyTv*m6UFQQkM~I?raLag)c2e?hE61IHoqtk^4zl82*; zh0S=Se38x;&;o4bg0<7}z5V@npI?}-7nAvNS{HY--8=~zMYK`7*K|hz10p)qbEg@w zZMfhaHM zgv`wKoe#df^l1TaKD+(DKkonAAAfXx*x%eA`*FpxPHW$(U#dSi9dTTa)9kL*(XEki zlJe!W2xjwc3+C!yi9R=FP+?n+n0FJSL=P!v+JLRU<|Xx4md9T=SgJb>B0sEP#Dl>a zg;MD}4y~`s^5opSfDOErcVWm_l811jo3@ulMw=m}#OCXeqPHzgenMg6H&H{}==^+L z<%h?(5mo40bn;NEfEjt0b0RC+s}NHFlx$eNS$roKH6x&$Hp2?za#J+UdZ%J!6@Ybp zetPk}=NIgLH5u2V3lroyRNYlYduu3l-6M3P35=K{*3iNNWiKV7fhJo76!p~IWf!}B zvo3#nus(C27`63vmHc1)vp>H+_AUa`i*CW81gR7UFIr#bAMyIhtCgvw|nEq z-+%P{(eb!^etrMp=P!Tx#mkRBeevNhzxe5&et6U7H+KNh0jD*{eEsHjL7Un%(dIC6 z8{E~fT4AX+1B^5&8j{KZ_zM&jc0$V3rXCn0`YJviB2bimSj6bc4g#VeOf7rJ<>-Yk z5v3JD(@MA;nZZuDuz7)$)^pzyzp8N00kw_NK>_F_Q%5w^)X8AxKji z{%V#kGoPUXkX@0~XpE!)_cJO$*glr)n1)>mnV^Cz5F(>FLRSY6CqPQ({qgC=`)@q@ z#h1s6xgAf7OKUjjVPc}*lV@8NuPT5rc+X)Q1eqPjs!!0MZo))J-lloIyPwUB{dQTV zncw^2J0E}e>DtUsPS^c6FR%OV7Mj?;Jhf*BpFzl-oB)CiSWXMp(_43UU+e1G8&BT( z>IJUmtJQ7Z&lK65fhO(I;c&6`^?vPuT63^VBCno4yn1o>;?GEN28(hvmW7AY-N z0S|&95J0vZRJpx=z@cpfFT#%~E06}P2~%*!1D_eQ*(IyvC1B>cX_iGX73E@oc*Kfzew5Qwk;X$ z>s&Popr`2+|10A9<&R|WSpq!5pmye>L;0%1oeWXBrlt5=ZUorY(+?i$(HzGLv4~q~=vQVc zHpgXNb>AuL%9dGR^Pf^Q)C2&+DzoX-S6|oV`WEZ5-o1G1?KcSolVsMu_{C>mpL`J= z{PKiO`f)uqOW4sU?`!Xew;nF{xF^l~8@7IM(LVpxSIh2j1AcQ_zq~zuetq}xXJ6i3 z9G*QjH(;ko+0&r+eW1Dct1PQJFJ{#lsHh3EpZ<~Wo7!o2xHwFEsc{Jw)nSjRPpp}Dx5>K; z4b#qZC|n^CjHN1`qflTG3qldiVdqO-Q~+ttRDT<`p-ghyv4ls8qFLs|2&B8J4+ z>hZ`*uT2r&-)#4n8F_duBr zS)Sk0#uUF{iabO1E}*IGe~zJO6<%VF<*-tTmGFZZAS>g#vkIz0T~-H(3p#R`{r ze}CIr`{hS3zVqWZ-iCj5oPK$Y`Lj>9>bvwf7vfXa=)g3pSopv{YceCyE)L#Ly?bACy3z2g*ra)EC(Cz+!M92T zBs6-xlPXr7g;rQfr83fyVoUVQRF@P+6{C*v3?m(cp;KX0qu7LzR25J)lb$M_j|$2( zQp@RB5&#Kh+|s!bAk<JCY9Jc|1B!`m}Dg#oTMJ13!f3!WSUk?&34*Rkc(kingExYHp18XYR?PSX-o|_fR%%w=68(ML%tO%}DjcK7kf}RE; z-Hr_gc4#beS%X=kvgH6ob64yOFdYu!z1$DG!`;hkkgc^}|Ce9>3l zej(7;wYBM||Mow>_ua?OAM7umJpbmakN@P~{^C}gwBGUX#yfA$T^*PoT^v7A-{Zgk zYY*=5;`8e-e#$GH`tIS?o@i#6d9|KC>(jiOZNH0#$&0Iteq3I@eCfChLZN^FleQ_e zvbloMM-o2cEdERFz+h%#Ig@aQJM6`kV)AXqT3Y0_rlQc}~ zyfkR23o~OG_H^r04Hse+qj8jfBBwk#t0R4+xf4wkS6ujqo7xnGQ;2G$T?;I1{v}GE z%XDZcA?tYyIRL0Z%?WH`O?n~I>PMhiMslU45@1n47OI>x`qL?Db4(nd^=ut$XR@M0 zMajvBT~Ou+fDDo~4zSIxiLmyjD(YrmU)`VN?!az8A9nNZ>Wbc*_~K@njL*LN#*S)J zoR);v`&ZYe8%L*K_EUT7+ory|c)-Kq*~3GfxuZvSr&ln2_NBh~=BA=6mvTaX@<%`0A9fdq{d@1d11SpTVYF5rdGFf&g{WNWyG}-`@7c$>zd(>Jzw|XF*!} zpZ?h|Y&X66!CN~&nY6Bp0NtOyIO#7x{^FbK<=yYRaUgDvr-f~vroQw*7H_?CdArcA z9)EhWCqI7wt#_VdzrTgOIT6Y-NGbI@}h^iM6E~3BLt7mv-YFTGi7{Kquz?^wFoc|Ho(R;f<$k{_tXcxSyY0 z?w>z-^v2T%PoF+~^MReNZ||1VdRm**$bG{SA^Us~hX*~A#I)=xs9xOuYwA*E!ey$4 ze&#KW z;}ktr11yw355JafKjksIdFuaw_&Zi^DM59;+Tgs>xD@fIOq6cHJ)lbZDd9!_&s^iA z@=8La!%2S>GYfsJBTMTmKFUNE$EH-7disYkhh9J{rLVw1MP6(`idj@n{S~rrAiw;4 z_Fz+rr#n2@3wrt4*C(1$^WpH-XV+Jh(TsHWfAhzGae1+S>oU+rjf6;W06><&mLtMaDN7D<&Xn0EOEJW?c6iGWCrK#cT<%6TsIq33)XOGKA}l7y zoFS6470Xz{N}{ttd7S@J`H*2CZ3>@Q^iaH0^aRAD2TrBJ$vy#PJi-Pu0$fC-TfsO1 zhvGzQG3Nmw`*T%I1l&A)p6gUYyhzqSLY8AlFAtW5h{f8dG1SY+u~|A)zB$#XlQy}x zdB(cjEz;84>iE`^`IAr3wJt}pee>zdm#5xN_wWAT-M{?#mu+g+cA)*?AO7@z`iK8* zTB>G{e79@sox(=9*4E|l;OeLU>DRwL?4Iu0yyFDFI_ziTG}(T?dkB8{;=11-vxn|< zJofJJdH*2hGiBp{O3a`#R2GwEv-3xQ$g{z>02g4)%^+&B^rk9de%k9L(6Q!~nB7Dq zQ<$O=Yhq*)F;2g>T1nOUs5L4Kk!iHb9mHdJrfSket3=a*?0*ta{8IY*Gge6@_n9tG zHIHf7)PZFF84aRINm3#-AikA13%6B3~Gj%^sLQ9e-K3SV%qfEqw zIHs<6A@lA*7-1CPra4L5U6eD0>VVEYqWjpi*!tKxk1&7Z(1SchVF3VgG@#Rkee=5o zq)*f3qX%Ez++SYobUe}y*5>ANKmMzK@+W`r2S0h^{qKD8%dcJ-K=tm62t)4?l~K^L zcAw^0qXwL=@7l{3U)(OQ3||`#(=-wLi=6@UZkjIkyLswgyjX6ojgz-FoleKz8`yT2 zGAqXx>tQNht8Ax+*)JMxTa0qWp-nQz40#7&;#n^{11W*TCj^E?OEqn~L! zVe&KynY91_^eN2y*4h~|I_B!g84Y+j9?l?ki%~vhACN*;ImQte)E}7|lrpX`PEPl# zvQ=edGyqzNfb5K0E_b2wGNCaW>uc#GDu&UvLb-U+RqeaU?oQ3femw3Tw%vovX}P;u z`@)l2b2I=t`Okjw;(OnD{?~u^2mkt?|NHK}&AZ7V_jcG*2sv2FOoUZ@`qs1izxe!k zcfDLbI^N!zwb@{|MhTcov>irOcmKTg#JuH zDju!JF{cl+H)O83?;PN?S^8mRON7$f$4?mm`nXHAXUF}cyud z2nku{IUpwy#n}mdEtuI_nJ8u&X~ANrb2BY9MnVmNNlK_REMtm*5SrKZ{?*OZZk~Nn z_ftRJKYUa&Y~8!4`}-SGfAr7(-O|^;@elu=LEbyqT%H|jlhL&|3vuaz(zP$EaDc(q7+SgAG=^yiTh z103h8M5aFdqK#rMqm0SRqu{%8sO{hsD%=)WwJoyDxanL{k=(bCvq23-wunQBGj6mY z5<-qW$m>)`Nn-ai1_vBmYli3fn>c`M@aSMv%%iLWha4BCNTP)(?rX|LROA{GW1)6n z&}%?YW(mZKk*?Mrj0S8bmK;2h6bH#D6Tw6sYY?wvTZV&KaFj&xR?Vz>V2?Bc&C6}) z2!9sft(s7zb5*Eegl%HZGP*~ziFe2QRRnR;{=p0&?Z*fzavZZtZ<_Ki-{uSr*&(HZ98< z6iSBnIm&9-w}Bj^c%l3N&OVcMoOUjhXYLQryc`rVntcB_PpIN89G$Vmx>R31^6|fZup_R5N>hYZHI3{04z^U-=o^!k554q-DWe zxxu7$Fb(HGAq2}J_ZBZEw8U|xJ_9gjj9E05%IG4CO~S24h#Z!@9AYlA=NqvuGLm~a z1#=7_sZwx}$#>ADvER9u1jH(j2l9y3K!hvHrNBf@?5EYQE-#yzP0rS4`F^&^TN+>z zlrIa7|N8&^<3IRE|IP3I{@?lk{>i_a=gEWhs^VO*J$?6?xoCvEmn$Y{!3Mvr~z9n=$_pLBV#i;}F zpLH#1bcCmQhynnVtB*6w!_J(Es7k1jp%%q4h)iYj$ED(LWm$~N!v2x}ab`rmg>5Q7 zo=Y~MO}@Zp25KR~4DhTA)5hixkXDh5j|-NI8<(r)%_EYOJZ^ZPk(3LCccKwaHdLe< zPg0h(lw%7%whPE34eYVFmB&cPl-yEi7OJ*IXU7nOjNZ6<8YP#eP>_g4N*r>DF=A-~ z!3|_dXu5o`!`jqZU)Iyo9`E+kdODqc__u!e^FR78tHX>ggLiAq0Ilnv|NP6}eE-?g zeY?9|*{1HC6rRjZ*Vn78aUazm6Rnlwff1{gb^X8o<sbis#1~++zVr5z!y87kTwDGfCyvZRkjeQx)qFIk|Q|s!6Vh@3SA7dTM=n3 zZ5R&JQFF}Itah#nDv;z+K3E~K)L&IXLa2d49KTQU#wi0W;YP9QBP~&Eq?JuX)e)T= zgVLx(jp^IsKh;B(_l|1NG}ZynxSh8u#!Qx45Ua=lXQte0sKB-a;rW#2HZPl7m_18b zY*?N;BL6rR#>eiFt-fp}yk#;*X*verN*|F_V#G7KW5X^7Qg5gAcyl}LC&`!7GRg1m zPA_=;Tfg(}zyFg@mgDNawy2%=Zf2kU<*)wQ55M)>|KNAO_&@)J8I3$SryXb}whJ>L z&POAg$>s7UxNCp4_v8K7M}KfSEf4q0M<4H7n;RP$-fR{7>BJyXYZX=6%<A-_Es)b1vR_;(h8XJdtracE3$7H6wRtV4y!LH{1#*w~Am4hLPMvXYBqUy3; zAhRxU7@92NO1~r^qJk8FpjFJZ%xyR0_QeaHj;_PB-dM9M?r+!AlV=zApWjgq?_3wj zsYdsI^@o4<`~ToK-+Xpyz+LpU+dNIJ&24voylxjy)@9Ii^=fKUo2=d5-8}rk`#<~q z>)V??VFg@$g&Z!L9q+n7*$wJ%FdZBEANiRLpoDeVEM9<c@UA#@JX=obqsXn3&{9Y z=HNEr-qwR>uT5^xI38rIV`yYm5);$FZ*`6Qg$8m=;8PwU=54YZW36H?S#A@NlgKlC z)p&}SSyhIC?iu)wvYxRRgUu{BQ}!v*a(R+*_cEP~g`~(PcSU+J54#cM&`k9E2%`7^EbcN{a^dmw{HIFpS)a5RDhxIJ9jUxU*6+KfBUzNr_+3Sfj9%t)!nZ@ ze);ORpFPEjto1fC12F;f)b`{K`s5DNLs3_lvLalh(!kbm%8c&8A%slTkjs zpip_ZQuRd0nV;gBgccBuxy1wc428(-VgnE<5fL>|SU8JP1y~+d>4haYWFyT@f~TN& zI@l`6$mc^I1;ZhMrEiW(%#ZLoex+anIrL-%(uS;x*h~P+<8z>x{8g0@WLS`HYh0}? z0~if4XPHBu-5wx1(Sp5l1!G0hD)XL#?b%f@;x&{9FsDZ!1_#(1=7kk@xo0jS6}Uc0 z)w6YaBvEQ7kuz~icOxQEd6Vo6k9j1@VGzOp1dG}yPR(xbZg%SPe!o9l?9`t=*{$E4 zUM$DI`}@E1hyVEB+^?ADo%dz!opMTl^iTiY-~IbPxo9&Tkr?Rm$=#k_ofJpP!mTxE zGV^BY9dgQ@`1J0GrcS+J#+29bxa?)u<%Cpua>@%52qzict z)`>;Sc1ugjEoz1hkVWg(X24i-hcS9lG1VoDlgC*?86`wA3q(1DmI_-zD}Yg^kFyv( zO&!N;0vu{kz`WC=u$|Uv!t9)tM!|F0 zlh3Z$R4m&&+J`V=|FX=9Cz;Y;xGzj!3S>x(51|uS3D63k>OW;ejjE!wNV`TXo=~G~ z5-hDdvmT*Xh#{;IyN50z@=sf=K9Cbtp|p|A001BWNkl2P_` z9aE!xJp#uzbvbD7zWIb-znU(0Z$F(uuLIHZpI`s{<2y7LRtcb4>&wz6E~62`MdaZY zlIV`932ft_oD$-SY_YA1w!N;xSXG>g`oLHuD`doCdI}tc%g{(BStVs78;}HUv829% ztKqy0v!>xs8MlfFUi%hUdX{p`GQCOioZ~SIL$x5el0YCu+tmgZ5nEEz4W>5u?lPi~}3He&$1JVF*;bTX{6o zAiW`EnQ6vcNY& zVpV>_p+#YrOk-9^ln_)l1FS`3hE?fy6X0vraSjH2p7 zWk*WZ5NnZt9DR~mi4fy`iKZwnQhqpPB{w#wb)8);z>?LSL!FER;qVNg<(Zzz^>D<3 z$-9oWE~4BE3O0>=Sn{n>)^spSJW8FM^7^!IFP>r$*UNLFiq1@p1!2N46k(z|K2 zFnNoUEZtZ3SR`*8Icyvj!?nY#JU@3J$e4Ir{ z>B@%44il5V9_lU(yP3Z!=TcO$zorKP<;(mtJ!t-#qqw`S=EXzhy-?-H8u)Z`N)ZKT z?r*s10YKtIaq&1kwyIH6YfEqfyp%=tv!@Sqf~#9wQ5~C zP5asOtLs1c^N)V;!FK>RnwhzLb)m0>%%-U|dSA?X$5;2e-bM_*EPa(k z_9%f(!{`Nb&&(CDW#NGW%^A~FJoPH9VnQ+HDi6(89gsm;9j52BXiN&esVJ-amc#iwEC+=Zla3#mnBNY3k}NQ|yGV6=g;Stko2G_LsTBWn7>UNhi|F z?-ah|xLOs*1BL20wb9tn=-UfkEnLf)BT(+v5L+-pf{_dWnbf1;Op}uqoq}SJh_amC z(ioYF?cAJUIGCIzQkhQ`){pU=u@+$?44KD}pvp^)o!n$?54^>u$cfxZGV_w#j<;Rl>UF zIR}9^(qyQ-`6hH{)wc=vFetC{6b%rN^{fn~glUtiZE-UotB+A8^MNSxU&@&xWycAS z@-lWV_IO|`9;H$WEFY4+GMS7C*8!0p#n^eDbPdeFEb`{%6-JUOFcZK+wK4cIZr1Bf zV(4;?pg$wbw)d?%&@9N0c_s0bgsPAp6-qHffh?#&U_7tE0P%!@AQNmBbQu>yqMNGq zk0&u@UODu^KyMs7N~Wbl1y-?HO!uD#fz?vcLq+pofr1iDC{R`N+X1g31va4Z%r?z1 z+g}})`y(Kk8MF$glLS6A-%SK5Yk%)Y?|t#nNB`g-{oY~M41th!cRWQQ1Ig3%{fq0< zpM7=x&F%d=Pxh_*ez&`5Y>F0wpy`wCD9L7xAU~J3fHcEA#~y61k{aY`(ei~>3hR|T zs^wMVFC);)(ul<0x+rNhX5aPL+mS=8?PaBqIRuAv zFwz^yqiD|}|586kySqKkPoCJatoO&`{X*~YNZr`2_0}dWhbf)^-+b%M7q4FZ&QHEW z<2>1_zOFrjKX*<0oeY2W^N&94<_@?^?k)#*?$I6HFj#`v5ijiz1QDKggKhb|B-o4G zVd(?YwWYujg$y?UlQ^n!C<$Pc*1jB3MbSMBSf$BAPaMg0Yh)uR^{6<9DvFMHCPLC_ zpiR^$hSH4&_9|nxElpdfM1`A>I$85k@`|iTCV5f~R3;4mIcqQS#l{fQc$#J*%8I_i z3}%d^#TX+CZ<26cuTipKwQ4%)6-%Be-e$|nNN*g)hW)pl%_un}Kf#Q!S#n9L0*!%> z0Z0LgoVi=cPmm?vkvsE|edl;Qf)-BNrHXdA;oHyOyu^Aut!wYy)h73@-EQ*LUF+>~Yg6x?(*5GA1llS$!ltSC zxu8KcoIw~3=H}NF%UZFFgE*|lnU&hse*60f14h$&;_>`3wJS3TG!F6O$Q*IAw^>$@ z@RdrTEz&*Xb+T1(6Z0vvWQ7%+*B1CTrWmOCm{#UIo{eX*bw1v}h8Weq={iuhJ)fjj zDOed#yT66y@m}iYgTFfaebEhJgN7c23-ttZTV3%ckRT+=x6%>C?7Re?;dh(PDuTk( zZO}EDpL`5U^k#io-22kIuZtX)6X&)6 z=y3f^w_Mhx`~9NBe&*?D>dmHSk1qT#e)Yp2zCW3)wHCrLO#w?90pSFbOVZ8S(FJmM zabWMA=9>~%xp*1lG~{`7=6050y)}{pEGlM$K(ai3k>{6ENzUMyGQAoXjDnV0<4O+D zvpymZT*=XHHgu~Z=`#x!jCk@oR2$Uk+2|`F`VUy-T*yYkgQCmojKIlBxUR{ z+-HBq$16A^V)REfr9)R$vBK6fz0& zljCrpk={iM$I^@-ez?2&7H(v=%8t(I;-K~Jbbk-&`#<{r(%hD{84s;t=`obW&=^BY zB@`U#kb1Y>+}7?&gNst+fX>6b5kMW!QwDo1YkYk30)=6SDkP|-DHBo>!L&q`6BxS{ zfoZm0d&GUFDElZaORhFp(w63y$cB|bDXc9?ieWgMY~hX{N=XEGPQFZ27!drd75F@A z1d&Ao^x(xIAB|%DYpYf*#D$z3K|#LyYzR4`c5AD8SEc#V71$%IHe z9j21j8ZLJeBv_mG^VBA-E=F0HzISm5*JVHRCr_U2Pp95RqwjZ5 z4Xb#6cYOQXj|tg4fwZxn($QM?b;{bf1P3XBS@@oRED2EQNg5%=SIW!`@!W*D?v@Ip zvRVSrwj|C-mX(JodM6GIj7c|6G!dixKLJJtPnproYPS%7GA4qH+#0-T+>UK%B*m6m zoS-EnsL1f46@wfrz$I83{s9WYEzlU1r!cU{4wip9^NF=YA=m~?Kw}wiOVU+f`MW}W z3EUj=G$dhDxEc82rW3<9Ad2s;j6)h|8&$MkFeX!n8-D|2>7I|bh#Lj0Pq#WyYwqF} zI+V60$rfP>0MOy)TH_{WB5XgOZjUnhvMjEd>T$ZBMR_0J*`0p0yNLl1OV`zd2M1fH z?w1dC)8S${F6y1`U#y+2;r4d-{Ic~9se2fzkT;jHyVgGN!^WW(Kq=Ew|0xw7E;c`Y zwxA`=Rlrc6j}1u=o)nIZ=aD2w(u~R6!7Y(0Gw&{D@9!XBQ*adtr3fFlHomlc+@_Oc zQYOCT>89$i?lP~{V-mlPS_;Tw>TyAkXpbzW$VQpvfQj1xxmsM71>GV_vfkE{jH~Qh zR%LBXKpRLZ51I>3D;BEcHQz-Td|p}Jbh<;gGV67H|uFV z!A{-m>d{K+cxvqKy_tFDp}h+?cly!qe&B15;}InHD8p}a130(n#VId8gf)cAixe39 z*f!}eRD{7h)M6Eu(gr;?O{$d`5rV39q-@-fB3UN`DkO>lqjC5wcj?L+nB?@L!_T7` zBv{^3ZH(I&d=Ja%LuCQv>Axkrb%kIAGha_+8Y(GU2D#%YbQ?RSwBbC9Ge=6U;+c`w z4QCbFRe6A*1|k3$OPdMklqA&*X91AYC1Pdz71sQUff;KFINZ;mc1H+-GG77C*ZT-u(cOoyu4kG7k+}fAkt#aK$~gSc4=5_ zli0M=$RXh6#fD*f-5`aC=bB~CwrpwoeGRXk;4yz&9CGm{aqox=8!(Zmc|SBauxp&a zg@U*OXv*?^H+Y%cFm0VQZZ$LklvGBGi zt7~e=( zYhgQsH4-lLCFLa4R8}IAoag{XuPt2Rz|sw340WKXs(A^Xdlpr3^_k=-!Fv!ye65ta zJctHG(*oPX-4JWkJlq9@6 zVoI6hBT1KUzo~->sv%*?;S6+y+z6|{9XM+SNI**wlSf~{P&Z3|5ep_nLZC+gtqmGL z!p=_1a%$7z>H^$pn$Z2!2lxvz&YC1*^5wT5-_7g2(@gl)ufJZ`lS5{$QMN9(w?_l$ zx(WW-dy1u8U}M|OgiS+;g|bFv+6Q*dKVKDNhIr3)Wyjw1tLz%T1`$#5RCDz7EC*XfmQ9kM7Jq zW)3i`!S;h0QA{8J$yRVsPiNsWGU-*?o8_5FvE*Mx7As6eV?w$PWSLX0wUPx(7n^mO zF($oyUNDKNPvN~3rY;ez$FVV0{}UcKni_^lLv8-1da1eT&gG>WiuP6w#z#RZBIEJYcym$m#>KYT9VpXlmP&8 z+;-UnV*GEo%aS@2{u#bOV3x-Og|{s|$jZ(psjaj(tk}_VzAQz#C2%&d*NrrsiqcsZ z`KEl0%CF{U7+gFX((0>%AFFbPUh-l>D;pQ8#jMUq7&vH9vNi%tD=!Wc7_+@nd+K0j zY`+gDU3in(+7;nJge?+;o^f`@9wB476KT0or9SEkMM(w2VEe}A4EK_74A8&22w0mScfjQUJA}!gKKRGP9U8!=&~TawmVqd2 z61K4*L<(+QWc*Xe1PJC}Th?526#Y|ogb+jc+(!RWPHPFd?O>GurcTuIs^mm@U~RhI z3|3K@qQQ)cXDtUKpibjmDSa3jGZ+Sr7hpQ$;T0tcMR05aH&Eb!L=}`*H(?9l&I-b! z3!;W>5_M?l27?gv3BRvMbo-0hgpQ^Aq}H}Sr(8+ zBKiL1>FMd#m!+@$Km3RP*wt6?c(I%OL;+?F$UEXWLq$VY6TA%~ZNr4s2wSx)WysEw z{N>H-nL-1SUCBkSY!}WLz|t8n+DG~83XPMKZ{?Sr~Q`LpDdYBT2eEr~2z|Ap~wxkS2 zagP-lQAAJKoUwRT2g6$drqHQ~5-dA6SuiWNOj|Lg2r2GXjDC`tsTJqEQ*355ykv)D zQE}|$>40Qbkz{zOF1gluVxE_0Px;AZ6XlYDhs%R?zwf?sYSU~F9$xr@3g-z_(~Sv$ zd*->xCpbOWkzMn}g|#;Oy4xMT{k=E$5ot|ET4N%_aL;RIdN%n_wk=m7#Uf}?RbW-* zH<1fghCF~@Zk(s9^T+;+YC*qFpbZw-uXHa#7D#TE%L!WEpqGq1iQiG_7fA%ZPQV-z^v>gvL1O z#&QyA(`hhM)Ws=J@{ZtWW7~7|Nin>!VMcNW8z zjA5eIO4_=4cj(98fAIVlAHsNHxM<|@bl2t&9z1^kH{RPJLoYKUvN(c3Yc@P<31!)u z+B_)BUcw=y_r`e-K!G8gaSJH#m)yRiILcwiYRi$9F@JU-lj{z~=xK_SZ8Nr*QzY_9 z%2K2g5wNdrQD|jCZVlKQUzpztTeC9(y;PK zXpuKnLN?YLlZYO~nv-4|Ug9FfRx@{q;Y#8tAQL*_&@6R}&dxXysJLdDnd!8ggq2O? zt`XF{^;-!RVWM)6hI} zud;zq$qg12Wk?jz;z)sz`&f^$nepe`g%L*N#Vz3#iEW%s*xiPfagMwRov!<9Cw5a) zcP+ggTC~eZXqL`5)jXhuFEA6y)qnfP@4UFy&9ZWud4F7YQ}^ZZvo~%&{p`*Q3sV5R z`yi-ui^|NE-x@!JyBSQhH`N|J9SMlk2xh{NMFiV1t6io zOlz4QL#ZW&Tf{VPzF(p5y8uMALHEl;lZiefRserEB8E9Wr|aajS@;i}0@jp0&I z5E*0`_Ncq0t*2Kv_uo29kS^xe0Lp&y?mLP8LkS1|6@XEa$^$5d`suYQ+u8rd3A#-{w zB`Mgj*|67iDR2%o*CB>LO}Az0;84lxts$asp|TA*Ikd*&X68QTe2zGAq$q5wkm)Wx!FD(WgHZ^;VjJ$rz^=RpMj#%+PNIx@lyup_ z&O{tX&!z=50G&$Wq+nM{RC$$Au$0;uqY(+9iEF?!GKby^unc(8`UYC`WK8OCFR&PN zF}r_MGFCBZ1u;M|{X=#W2c*Xv!CZ}#iKS#H29sMD{(zMt=2-b|05-o1FWzga^=q$-+& zP$lz)8;3*P(HIF#^qxkzB`9M;6>es%pizoz zSyW3U&}LAQQd89`Z^LuSVZDZc2RRtPx5UZ>SNb#6@95^vHGrgNC|xs>xplnvk}f}YW9J|(x;VI6t`K}Jn1FBh4(iYZlZRG2Pq$SnLCf_R4B z1B3?BhLZhh)=CY_`k+KPAi7%Oimc3G6Gw_Yn*tT+caY`od(3&rzCLnm&{8+|SPPydrMy_ZNA6_+BUzhpf;-7zm zS8NXWdBs|ZYb-7*r^4`g!U}rV-H8$!`umsI-`w6cqZI9?ks>y08!S|AX35t;ju^Mn zfQ|(!$F>Y$khz}%E+I#$Jheo%lBqVRAdfk9$1%q5s9fkqI~A-*myAKWXFi6(OI9K> z{d^Q01v`V{A_c1mq@aC#Kip2_0hq-sq4q5gHKbe8?_T}^2@gq&NmzqF6~@Rtq~6Eg zdDcO|h)E#OBGEjhsA;%F7RkeU8&v-&1AwWh&ww7G=iI`VvFJ>fRxY4`c%Iyy5~h%0 z6`%{Kgffs}QOM!;Fnk19htxZad4gOjj+1rTaanPpD}OM6ZMXOP=G_`~fArn_Qu~MO zv+_s)fSs6X@CeJJqh47=gS-3HgMEx6Z%r=`mk*Ug7|gphLu)3P)tIhL{D-So{j1op zfpk)l{p`ar62}JrT|%FEGZqXT+LOy%)6q8hEAu3x(r^-M+*RJs%SjC?F^Q=*;u0y25M4ZkseoeF$t6`E6{1Oj?}N#YLrlfj1uh?cezB+xNHho+aXvkTZCMnpCj8 zT!rkLxDPqY-y#47vS6x0jf;n#;4|Y5);&Qs?DXz65~~+W4O07<{5hZ<|$~* ziAJC@1)sLuhYKR7#6jo2s=5$Y*I2drpEj~?I6Fq9k@!88czm@t=3 zIH@p778e`buT)N&K=V2aAPY`2nCN4RG2+6^35w2=b zu6grFe5nR4_opR$XaL}1H(gv@cxw(fdKUz=#*815sXW(# za(qhpR#~pXO!4>WGq>r`8@oKFfaiLGNz0WjGCy) z64o>#Vq!AR*v(HnO;NwbT*=&1aVqX7%PHd-ybxP~IZ@5>>j7o*ExfrZ>sleQm(Q!N zk1T)kNV$70Nd`d7W;CxFrFb+{CLA?INkC4eP`S4e#-8t*Z5^c}a!kuupA~>UDhtXk zRqT`@nSj1ol?<~(&ZyMRP^fH6&3g#ITJ=kLbI}}4n36CJwn~s^)pTaoBH&|dSbM*G z_V8i{HG|nb4Pc8{jPfkmMf0-0C6j5b1XWhxG!Vgv$JF}gEyYMZAj{t1Zcpx}s-Djz{jL~ePb&=RAOXohLfvpkDhLKMdu zDv)qULe^0uatJNaQZTh8z7B@*%M#E4`pjCt@j|R(4OUs{Kq_CKC3F0&OfVN3k;l0ChdkxSM&_eOg6i^(tOGdUd& zboV-^0T!o=$Q%JtEOJyT_gF2Y?pWQ|Y1iu{6Wt$S4W8VOTrlhI%<{kV;Tsx*hR4h( zvUoLYqI%{qh8d|MnR6~E1h6Ck`NZiZ(n^frtG;3!EG9>)4)tEMnB4V)H^A?D9Tr&yF8Wo&4QoG7Y*Io5>5HR4QrNlf_wnWw5iag;@D zDr%}TA0y;Zj+mvuN!zMslct7>k^$CRx@E>56B)638T|ADXQrwaqXZYV5!kRlF^+{$ z`JXUgg^P37GOcTXEQW`StVu#sRL&#YB~rc$ZImMmLPBzO-z~@W*iLsVNx7z-y*hTk z5XnjCHBYW*WU30I&?Jw1eAID?6P>WYyqqR1i}y8!xjF(B3sy0F76oDub)^)=1#nBB z>)czU0&UhBBU6S14}rN0(PDE>mg*Jv@sez9s}C!DpRxiv)j;Mk0$B(8|C9A*+m>C& zmDrrI_CDv{Yyc1-01|}2uGmvlsVUi`{9yaVUr-=ogMm=XJcP5_C_d(Yj?TG7my(Ja5zlFaYAMh5mV_x0V*WJ`WCp(>;W z<^_%6VH3sSWWWF}7a*L#s8$|U9bQKfQ76~gg%B2op^CN({zMPbZ;m^otqx|BGKhf~ zRozjBD%Ut?pRkQdnVG(tV1K7_FDY5Y0@W_feShl~I@2A#<8nBmV&|B77^_CqWu)Vw zLRgP(((f`SiBKDXb;R|9ZCTa_*LhG$xL=#f04m4Q=d)2nK!D+nFjoxEVOLkn3&$bv z4cgprIAB?T2-*PG#Y)DC?@2rQ5p<&h$K5krz@w%FxPRwjwX@B+Sn<40S-AYoOW9i8 zP^d|mI;yLvCeh}17nytAYiV8~%)n9eoSmJ9()B&7M|1Lz>>vi|jA5dwE35*#Ub|xD z+_#Yj(#Y4P;MQcUV4hV&!YoFXFXX)>*6RL7_YWyLPJOG6^BP8R@$4zkds-KY``VB* zsxL^Sh`ZoROB(=|bQb29Z;1l-#SK-$z3bV57{19N{^4Qw^_qj;~M7p1_gh zLcy{?_}(Dn2m~h(h-t)(L-<1a7O@^b_QKUz*JbJaOn$tIx7AmTo)eNmOOC-}#CjM& z&OZj01=$*!j%!Y{Mboz9%ZE*sq_U-o3 z!GM1 zML6N%k+XOQH*$_;k`r9Ua=zbU2H+mP0frbZFJy&0U52Qxn5cTig9943`2D>tOASW? z%rFdIY1imiEXgmQ$ATf{S9_aN{tE^WyI6n-E5?IFO^rdVY}Y;1H9wNAiH0btA0vua zr8rPQ0tQuqSb-lS8;i>>?nGQFg$JCRYG`CC*rJ$SA+odr%=7lL+QuxFM(?UxAc+ak z!iEbzDS!o$@v7FphMcw_>ERIOVbw@j5~4&HYhBZJWcErAz|N*-9zhu|LoGFW*HR#v zHObYo&)&bi>Ht}J>a?R%P?$gD5;8M#nxGbsa&(NIg$1w?0kOFss}nx)H|PJZV{1L zxv?x`8Q2qHCd(~(X@Kih>sy&OVY`AY7haQ)UgA)}`FAp$J2Kb%;~u}9cOER0OUBm@#uP^G^D0@5oPtx1{+CP2W4 z0>GtWpbO&=048jo#XN$bi|fpL=Sr5jWyXL8sE8;QIdxO~8xjRNT2cv{93jA=O z3Lmt>y;r-Bsr7GlDPp2{)RZ&I|G-r?!7z?M)g*V0h71qYR3Mm1QL++vD$`&Aw%zLo z9c!L`6>!9}F|HR}T`k*oes;UrYLAC^SQGp1Xse1_?94+TVD7$6D_}v#Sj-OVSXa&y z9rL`A^z$~3S(co*WtaN?Rpd{uTa?euutsm#3zgO>!Y-W&(@JOzu^>{F^rQL}_35%b zP;};~*fi94#HcxNR#o9MU^VSY4= zuDzFJUnmuh4%PTGtY%TS*zJD_owyVi>Ez;0Q!dgmF|2|Pc40?3QqKUuGf$VChmtj3 zR=iaCaxYaZL7Axx5_;`3E1p9bN_nIt(cV$>PC~%UbhxT=242auQCvl$$LuZbk}y`H zgh5Blq(;pcwEMF=?r!efiDj(oa)XgG@l~l2U`2V|7?Q&0D&5a#z*~2-H^68%mKJ8q z(PP^-ix{ovD!sb=QW^ImYP4&D^cA$S=nd}s?a0$hP;C|IyS1O`4YYJ}y(!xWi=hcq z%)M1>OFc~ct3p|TxCv&_r5q6ei$N%Fkg;sm3yD3C@((OSMLk_&h@M$nUza1uhsg&f zfIUJWnbk!4P{{3pK#cm~EFe`OT~hYhrvyMlh)|qsKAXI5`P2ff!f&;2N{CkYAn+P{ zVFY#^*xh|ed>>kt?m!rV?AI&+SC(Y=Ds+zA_^9P`YcLx?6^Il>Ri}@Agd<)STNmTH zY~fjF@&JySC#LP8&cxc!sHmG}?B*QXdj0HfR(Kn+ZD74Zz{xQ(zO*X#Z8nURABU<; zP^;cTuVvSlGSuzAprVnsyS(qcST>q@-)K;EaZzWT71Z2y<|&Dnn85UJIU%NNOjNAtS##VV0#r%q~A$_7-hN*jdik=fMrh| ztjRwbshiuBRZ|Ieu$zB$(4Yki-Lu3O+AVa}sZz%KW|W=EuX&V4$1eS8qx&)hU}~Ea z(8!ha!bMP(Xb{X|aH}ryd;%+MYCvZ9LmM8pH_1f+mK9vY9N5Nc>tX;0xw@E@7c2W;4u99s(YY)JH>emwZmi1Y0K)HM-HpgpoHAxaXmRaYZ_%bY% zlah&!xcFI?_3alAWbrjrM~&!rtQOInJeztVW~sWo5+-GyKLgi1uO_kh5Urh=?6Mwt zuy#9D%b-csE^fO~0L*&d=zPWcEyA?uI_MYh3n-Tx>caHH2rH7PtT-K<6`(!y+Ht`deJ(jg&gW9Dps{t6hv5^ zVNv{Ep0Hf4m@VsU!^$i^tyn6;pt*pGlJuIj=GM~3uF=+FHRY4WTwAXNQ5`@OGc9;o zsi_LZ3NQWtB{{7B1oXzVCtwMHXH|2HYm?Oh_iAcp8S#vaYv%#jZWHwk5gzVk8Z@mj z-^T*xj&PgK^WAoLIs_%m`;X1?W!eLV(b=mj~H7nIYCPyjkQ;NZC{bhOh zCLcg@t)0B|zRXif6N_7{7Gw;AF&1DTgWVX3KXhITGY4S<14P)&#in9#D-XxA=Y6D7 zezgwPFd$3ww0M?}FM;0ICS|%lhoA~nlhi4DTdybiOJ1MMskJb_v|goXAx1DGzFzsf zOV@2NLRFPwYqB*ZHA!4&PE}Ezsg588jFX6Nl!^3-$!kR@TU_s2a@4jyPlYi+DQ%Sk zGa|;wN``FJnA_?6{+%a7ec9c>y=tLsNI*|ZkQnQ7>&uo?5kX!Z0Q2pfRbKbgXSnY< zv?k7XLDy;(1OfI4ti)I!DSEn0U+yg1E+&iL0&11qZ}bwxlIbmw#Hc^CC1FIS^duog z0c5_cHA?(og3~gn@)8=$iin!O$vTuJNf*_wG0QV$zY7xPpudu+*4`5Q1p6|$EvKav zQuHzv>Ta*R7X^8$VjP zX{l#93xdP5z9#k}JP7M&RFFjqvXdRSOE9v7C7>Chc^+q>X(qDAB#~o|Go`YOWf{W= zsxkV>%@*10tCu3GALOrgu z0vE8WV`QPr*f*a=JY7Pj3q=9io1kqX_7`A2bsn)PQ&7ie)YS;&Se^z~)e9(ykOz!f zNRr58etN6-ww1~vHQGU<_Ch4ZM9E%j)Ke}%m;PHJv>+mjbRh@;7-JYhk{)6+DVc9S z3#g>UP#mTruYl#Lx3vxXs;VuR(!mr<#UCNhn1(Pnae@r1x$*!yOr1xO zfAef|hqPsaY4x2w<}%@FdFv`qKm(?W4WA^~4VQuneWTo_-~t=x(`JkLIj${FTQ;lR z@47h$UJru^=-+K zEJx{ys{hMwww~xpG`e#OzZx*i8F9MblK2^@jGk~-#v#r9OA>-XILxAwybP}EGS+pQ zK6Ah{5#b|(^oz6Vq9CO07`tSBx9htrNYmC}phUA)GnXY4vsA6N;b|TnO}*v z;x)t0M6naMWQFT$2~afC`3IA|PZlW^RrV!nP4{hZDHv;&YdLmyfNguaE*nHtT$OQurvdktDl7^KtOk`mBXCki5SI$!A=g5c(Up22l7Thq+l z#mH_?6j_^iC^I|+3y5GA?-anCSmudh2jJxS?rz?nKr?dE5I&O;je2Y?X*e%wnU=Zq zjq)jA@guurCv(teBev^~o`fY3ckv_8SB!;&LubvX_M}XD0JC;nExZf_8UiIxA%`Gn zo@!tdAj3jaEdf|fv+~+)XQ=YXEnp7Oe?&z9R1aF>-}04Gyfznk`RuVO|Cf&_h)kJ) zB*mLR!cK`YOsrh$bD+|t+V=_$kWq4PUVGX6PI`196x{eZ(Em&p3BHYg#<{7};PQE$jc35(%d#hwS zLsei;gXBdE0)rnHf5GR1FvMv(Jg%>=!^Zjk6w@)c#XKT5uhEPAecl3EQDxuXBxA1=x}{3srjo zu)vuLJOjMj;`?ts{hiwc;_h_+Iy^aN>LR95+ruj8X||uWz1R=q2(?0D8ba;}I4}olbz5{z2F) zOWu1L@Zg2Vk54DN9&_{m`1im1WxUVZdxhQ;!7cy!<0BPP!2%UB~8fjo!oal|y-@3{u@0vP5`5mP#lEk_Ie>u!I+NLmdIjU(Y zNG{<1ONR2|H!t^*mP7*=AxRH#CPShFtZnWiYOLg? zV=vM0$gV4s&NR)c&*cwLu%)VZQr7Y=Zmt_%r4?SbsJMLUt zS%D~%azQ}s0136;21MBCqogTdXe?Qis>sN7ppk#DsG|z946YDvs$>I>8qB2qrh2>N zVUo!AdiKOuvnrItc9g5o#iOER$|8El)Y9%Kv+$9Bx~YCA2KpLNQ=f$gBE>tW<*POX zANh5Gh9p)EBx<8FHx#Nk*ryui25GiW{za5do}ykr6=ACCsV~)@Ks6h+$DxQ8fU^qc zq-928<`;=lLOGVwc|9_aZ4f}fm*sH%crhZ3SI1>pX0Xn*Cyj$-?w*`}_QFf2!-LPf`UywTzdkDg;UNt`!NW$j7ps~!JX?lJtSh8zL(|Y_ z*Nomh_BQ2@^$G);@K+pLMp=QlT&vnc>S!2c)UXXzuIs-LdF=ZrgVg#22%Pd;G_3=XP zQxJElYANfF<|4-apm{I(>bylwgJ&&tnxj49Yyg$ zY?A>9ZWoWY9VD2C`PKE|bQ@<|Y%I%)xrNzqOfwyc5I~G7fKN06o$;C5J;cU}esR67$4snoSe{ z*^~5@Z?52oBy{Q|6_Rk)h+kBlQYGh$ue59&HKigVe4EQSZu2$>#tc8-o+4so%bO#z zb2B5vD%Q@v;(5mDoB#1|t{0BQuK(zb!x-QE8OfgX@w+r z^VwDv$hmStSdALA8*G0WySSt_UC`M zjM91}4=9TfC80XFKUU`8-NWw19#-K^{@VVnb=@0SUrBFl$o6?xNtIQZ9*jQh2ST78x@g9ZeXR+YD^i*Y6)@60oQJZ zstLV{Nd=mPXuSRqNJ29LnmU0IU6m9BTpXChJeklSF47Um0k;=i02#4h+H#opw*xRZ zw#^XMbx~DL2S$Xuj{bJIJ=<_UmKPsCesp+ra$x#myfXgs!S&z&=uI2LmSuWm?k6T} zUBfW9z|8Q+nl(mo&t)hi(^;0tK(?x>$0?n?R6-^D5a?w^sO|5qcDnpVYco=kD0Z~E zsmgQaHmBg`eQUf@*|};!>db5THBw`%d4Z_2FlCQdG?0sR1YACwtJYP4co|^!rGb8v z8pP7y3YLuJ3dR1WG;okZ39_z}%icrKs`8Y35>Ygb;<%8_ZQpn4Q>D3fVbs|rYkehJ zF{fpNsur=_a8fNk!)wY*ue-p9#@2}4NFsL>D+dC@BN0@d-IHLy=^!?T0H)aj0;dyf zY;()!zCCSW44OJd01MBC!31ex!?*aWUu{2s`~DNpKZoP>-4^$E+dQ9tyRLuz?SH;{ z?keV_`?8E&z8Nt=f(t!j+ijYvBt!5+g0!c1!L+H-vW%)?5jWIkUCz5l{}sC8EovsnK$o@zVRRHSGf67@HWNJa_iknVrDcQ6C}eh-U@o(Q19)WRL=|HxR4?OKh^&|+#Z ze*>TV6;KIKA(yhFQGix?T=`!x5V3`RNij?kQd*5}{bWTcR_dA4M?xBlVqJW|?q+5#}&=xYw$%-HSMiGMnju zGH>POtEoj07RaZHl%rb5bj;jUF(SgJ+Zet%Y&dwn-*UoCR`pxBM~6;g@<4K+Sl)H?r)#nh2#FiyKtZ3hvS+tG!Wr_yjmk-4D?6~ zv?}haY9dDEvY7J>+dpU}3LupGM5Ul=)SNanQXe|MyPMR!zM`!{J#wO`>9+fh5u*yg z(Sby|ZH9>|CG@gHu;^lpmeRKU6hKHG)CeRDO5&}$lzAd zOtDQXUtO2gHvrY@w8trnqzZ9?p6GYj7qEP1eW|>UOHf(78|XTY!PR44PJkti8Mj%f zD9t)mMJ+9;5S(3^3GP1v)aBaR?x=#5cHV>X0Mkuw^ZxcG3Hk~pNVsy$srN>J+pT|V zJbv?MPY>6Resa(6eE(-JU)iS~K0I##aK1aGc?}?Dm<@NiJV&g@BWZE=@VRF__XV$* zvj>^hm)e-OxYnAND#(&UTqFz32sCMWym#J8D`JJhSsN=fS~sx%t0IOh%rjTGms?H@ z^jR-OEP}xaCgYT+8`Z?~bog@PuDW6}_D20u5s4G!$n-7kHH*^90N6?b)fv18IlY#_ z98s!k6zYZ%T-qgDOI(ReR995nDFquDi2TdJ%=*qTi_ZtttUD6S9`5|I?e~4ml!AT@Vqm9@qK7d8{_)91(NQ#itN}hTCNZ zByR5f+wpLD=l(9%zk7fC_0QgV{hD8T?(w_p)iR8>j3CZagAoQWCxVuRd0Fg4ZrgUf zFbSV#mryZczE?%7S`&i7J|nX-!ylFYi(+GzC(a+SS{qoAJNfNQH?WSTEGxSs#Oh5- zOPOQjfQuo2xthZI`@0x31j|lK1uRis!%M_a29282qXW*x*(I;a;*X>nBEb9ZdpSZ| zfn2UUkF(-ULAzF=oYfcN(ZUeR?uW~~S8;ZtAVssGnzpFjXU*?!L6yYkcG-?lfmHBXrgHsxoM;(ofRuw|S*Vns zAuK~?#WD&SfO62aoKZr+-5zH}j2wbhDy8KowW8YXiRvUNYf@#H_4vCi7DktkD_%uC zr(IkmN6~)qq5xCZD-q8c&fY_ z$^=K{Uz_In$g@&L7ry_s@K3qn1Q?!xUang&UzAnO`_&nH==24`BIJ5oS}q ziOhX?UR(Ay!fJTmVslP+=VFQfCr74<=H2%9_W1Pn>BUz+{`SrGpT7Uw@c5J0uKxQk ze&T7s-hOs`e6`H&>Fv#MY-8En=eF_iz?PMEz7*+Yu|dZ4>Dy8o5XcpB_HqZBy4G15gn%`gEZ>`}L)1N@ zoSpu0F~kLW8pU7ch6|%#l$Yeo<~!#Ru(|mW;dGtcmRL1V>B_S2p82nid;ru`NN=#L z`xE8)DxTB+M702hT#kXv87+%X3tugc1UM!Lv!Eg3bT|L{_6pBzTaUlI_5b~QzsB@G zdF{c!|I+Jsv=eNex0?@dBK-Pr-0to-5scaFa}G1) z4iq>929wYtVI_5vj*^L;Jjmi11fhe`qnxM2t$zrhPI1&XFCoe-3!0zn=?v0`yhPdM zwmYO!T5`6ipOKg{-@H&wb7nRE<(|%aB}T@cRJc|LtXwtc}8EPTtGcw|Dkj$ zUn)tKgq@2Xo0ocsOABj_AL3H7f#PGlRC`2gh3=LT&a!a%|7Zu&EUa!N^8vWayDHbh zdL#p;yV|cSEK1{GGI&zXS`HFP%2&xNE$G7;%P`~B)oKfGZf>@19^)9{wuv)-IYN zPUfo!em#<;a=&kf*93J^ib7tQ|ME|b#miI+^_GdRE!+hvt8&Ozgve2gg#e-w%;niw z2o3coxq{GB?F-WB5$xTO0br>MkcC)E&h=ypbK`<#S2F!<^GEKTvIvP`{ljG<402tUBQyg3ra3u7d#9WuXmQ#x=%j z_I@1SeCq3Rz1^LDxbeH+{skBN^H+|4`jt0MhTC&|>#cWQdiMig*5#qw;Q9X6NScwH z?jr_0upDd*65;MK;=BP79@}=xr^4=zyK=pEOmbhFSRd7vcschA9H5OT{oi#U#X13T z9=^SyY?L{^T{HP-h-2Tr7vHK`)i-1n$DH+CI@ z#^6fXBqY(YiqPfaLd$j|E$g3lRvX`ovOl(_t)yH^xh_d+AOcgJ%+Y&PS4Xc=E71Of z^|9!vVE=g)ibfq@l{=X0(#@BFvLJP9CYlN$La81kbfHC_+RbVH=XXz^c=zq`oiQ9_wo;mkx^q0c9R8lyCJ{===gM&AKGy`EXsr>msklaY z<=QW+*oQLgxwVqTs`Rb!_(^H@B(^Dy>ht z-Mxce+6s54luxLHp6yN5vRx5`%tw?3uPvz@;C>J;Yw&GBrT_?6Q4rGNCvleMUlbG4 zJ7>3TAcxRVWyhJB%XE1xHk{y$XLlQeXW04K{eOLL{>%5@G{&EO^1;9T#%E4ur@PaC zes_)^{P@Gqf9}WM`4t1l2M^udjB`%dIG@7~OCUHb% z=UMV;p}9jGt!tqMs~k-Uh|AqyM77No?(Am@QpeVCiU$cmoxr&fK?KGH<-e3_u^@Cx z#z-Gr><_8IRj9@x-LNpVrtt0>P%au3IOLW25tCnOWN&x^BEF&K! zLdUae;-b}rh|qJ3&dW;u2sjPW_|6yQs6?-xFl~4qr2{k9sTIq;tsF}PaC`dJd;ZIR z{MU80zx?F&pMK*r_rdMv{{Q-br@#Nf@f-ioFN3Gk*@igf@aZ1o!S!Oc06w<` zv~e&qM7Rf+#Rxkvd^S+YDdNeW1e%A7%vlx`@y>I!q7$sC%ezEs_d9uzK4qUC6|z(n z1E++9Ff?_dqqHjL&dgvAmRG@M$z#h_oBYD!5<(M+65T?Xm(CFa9zxM-AZU4S1uGb_ zM}%ng&@BL+3?PG0o-W_tqJxHVG9&c9%8|)Mz^SZ=T%m)k+3+$FatwjYj|V_Z8Z*fo zSO(AAT#Z4Sv4dW9XbC z$XV2}U$v((DyFl-3|gRun5amM>|fjP{cyEa?x@f)984%dFZ ztrs|iJ4@`b;f_FZ zBWj03P@Uzzov?`3#<5F3i$d7#&+dc--XyuzZju@ZME2A4=GNZUlcht;5(ajQ(=JQc ze=awi)!-|$kX5egWd+#1$@!@Luh+QdJ#}Y05!nPYI_7~4vs$$GAQ*v3jR@O6n&)(0 zWO%bN&1>q+~BC$=u z-b*MFyI`Ygs)KayT9Gkv8EGK$a7Wa+Zy{8{=H`t8FA`H@`^^$ub$dlAdE5S7&1%=n zJmj-m85FSUaaqA`KE2h@2L+x`{eAn0GTte>f>Ze_l2PuHGs+s}$BTGs#e-}cBB$0# z=bU6VhM5G56)uR~faws}f^IqP2xEYw%OcQ)hXIhwVI9jl-JKpYur9A(`KQ13nGKkC zr|;wXAOG8T|NM=Q|K{Nf@BI9?IR`1nfZm+vx*nD>aRgb^Fcy@qZXfBd zN%0y5U1WdD7ims`OrMowE2g!*lC{ELm`I6rJril%+anW|N5N}?It@_fq=0@_%}28w zLbDAS_5Wx~P_Vze#cu7h{;GnQx)m&FI`%H31!P8zMoY}&Iv<32Yr_<;j+|TV)qIk; z;4+IYwKT%k)wk{G*~7!;E2Otqid!jkQTQz&FqcExh)04rS+J)lHCl=pNB$Hc{m z*TIjp7No$1Lg13`z$pD{D{lQGZQ^>IX9WgTnwlc=2V=w&iPU~Z*5FA~V}ErTc4;n8 zNoks?rlMr5;^QTnS(S#NwW<7v?~E^kAH?k3OfF z@$U4d9l!ZEKlsKqPM>-GTYvMDxozuV*=32gtOj?T{~3N5T;_cF`tbPLC&%2*>(!d0 z7Z@=(Y#@BboM}^oBqk**RtX&_@)EY_(Y6f2ya;bGNT|qvs3zhv$C{QhtR5MFrhAbL zERf7~=dNAQQ^-L(7XUvm;&t&daQXm+L9~Tlk?&4n)V{QY?@***kV9McKih-r_3B8U^L+Xh*Z=LCKls|!TtD;4zy0Qq)-eVHHq02|V_DY2dboNpZIH1n z%NWagbvVGj@Cb?awz(`}K0VJ&;+P}bjFUE?B3E((?iOJp5)1}r$|5;C7F8x}QFtY2 zo^6U1+6a$EOFt{cTt-BN%IwhT5~2{u8B^Sk!7004ha|Fts8Xu7+E$;BGGZ<`qq|4Z zfRt5A*_I)1&tIWL$-jO=E5@n?yO3)=i+TVIj_T$@C&}uDU{Ld!Spfp7aJau{9bvbK z)d_v&1YGDmE~vS@Q#jF)aT@2+NEB)>N>q1MIMMM`nwF~GuD};?8a*_pQOC}qS)hF^ zqClpl3MHtc!WJSzxu`7vwE>5%3nPx#SFx_YwX6U2n?L;0!};7Bum14Izcrt8p2@MD zP7y&48_RKF_<3#<0Eg~;|NFOI`}~XPm_}?D-~%(pVwU<-Z=L+ll1B~10v|E7tg@qejCvp|rywDa9_-gLRT_UJ6f6#2{zZ}Le#g2< z>E2S_B5z~+({h(!!IR2YaKBygfIEy9lV9GvV7cIWDPd}Yenm<^8b(u;-|r&@U+TF~ zUNrhKM`wo9DND$>v&U@$SfePiC#F{~AxMqCDAI;H>8VvkzAn3rYOn^Ca0xYr1uR>T zV1dnq{VXIMQdb?c905#ANfJFfB4*_cvJ~OC@CA^B?b_Ixf~7~j}h>Qtb;pT9ivCWxKGgN$_AEM z3i=3hL>TH^#60p(HE`gT9ZTi#a}3)BT$XhlEnXj;4<-Pii~?9Fyh_dxpw}qm37F7W zc@b+f*o2RMtKPv9RMh1qydAWZ=A{)jlz&2H_FKYP&sQ>%HldJR#fUP+<&coxQXEV* z_zJ652g3dWRWRvM)_y75Un*5vh>JtJxc4Talru*B!4E-=>I5oH+qSAr0g}IpUactp zKX-;O+ET@yxhS^}mr#}602PZ6I8)E@B=kPhru;%etzzk1X zCWpe_p3gZ|(cQ}?I>;r~uxT(QO<_@Kue2C}k^YPOdxJ4Rf)g1ElOCL2QGJk=*4D^@D1BOYLSB^Ev|Ce6TJC#6(2+*~dt4>gk?CrYAcu3-GFu&4HoU zOS&cud5*MlRA{+ zQYDz=k7?Z*ISMz;UFIAVn$dIw4@Re=KvmSBWM7AuDr3p|Mw$U)cZo#=>bE}N6VXg+ zd6zcr)!ah#1a0PX?ng>AfRVQf?f^c7a-xL1uf2z+)X(OE^?OFuk?&Dyfx~^|U6Fs< zw&AH?QNtYjg9=%q^JAGE&!{_x!vz2=fe_gY<$1^OGC=u#B0fKidK#c(C9SAmHaYY)xkd+IE^@g9gmW zrjij-a%ufEB9h&uYvI#W6Ub6I{fLKo=1niykEm);cBON5TZ~35C@HTjsb=ceR$pLg zDMg@8VNUBOMjuP|y&4v2Tn$DmS2KGQQ{9zy(z@zbC~lro{k~1HgwPAB5?_UZEXbmO zH2H&yMj=l`jM6D)jA3YaFHV4@spmTR8dJQmUrAK5DAN*Th({?EPL=RrP-l9GT2+=; zmy$DXY5^e4Gojn+26`2MM&%Z4pOTv&%fOaZc_dnjB*V?4Hd!T$n_>wN965_$#*p*o z^w=D+0Wl7TTjz%#24`&U0iWA8x49V13_f3Y?qSe={C7V#ql3r8IwFE}_+dHF7BHr9 zM4UZt=cI6F%sCm`)#18^&{$Qzb607V;^g{_Vn}&W`j8u7b#_pJ_3$vnF?AnE=B&eh>6Q-KvSrIMIK7YfJ&RDWy~`7GFG@S zc2%xms!6CYLoe}%{S$ddk($aX6g4I-66y&oisbuOAVcR|&aQzdCZS+VeYldlsH3&C zA=x4y&CS-LRA|Uda#1kMqibl@(V6GRAqZzxX8|Bw2_rp0O%=<7=ffDo5rf2tKDj$G z08CG&vYF;aMGU9mmRL zr4U+sfP7@H@1gZO8^YLGibP16^Q4ZJQpKtM@v0>uk<(AT(hDI6)JJ$_T+VV*3HljM zPOYP~q)%^0d7aj|3yZ>zIh31<_MDBzw7rI4)KTT>^F)U_BKE3ivd<<%8J?;t^_tiW zh9jKeV@?ZTura~NbeZitGo{bA(a!fL8qeo5!&l>Jn|5_I&)fNYZ;p{ACkS(Y{R^Lp ztB3FX=6xH3Hl|O|)?u&_K2P^&cV7S?9P}-Y>o78p9ODd{G6A)0g;*HnUyZR`*7Q_r z$%>tmoPo1Ir^{Z_AqFY;$FhV`9$KbiWUY9vUgNNR{0gC=YZxK;nxeM=L*`wwnxNBa z>LA*gNE0Mf+}+F`=VTFt_&|A)cGNs^)8J7_rfd4N2~I!U^u4_H}& zR%we^{E~yprwR>^_E0Lx!vbc53BzDS1a+>=P_r0jPN=2@jdR|+aakTcz8+&8jCEQ4 z{xrt2uE*&m59+5mAk2WjCt@vs~Z%Xx+wVZ-20fA^c? zq9q>|r{LAdv_)*&c6GdpIe9^9l`@-b(k^6~stg3fJZzerWgat;pq#+4IuV>IJ;+L! zoOCuWdLvOj8W*=oMboP7r(f)GLb0N%y(2KxNYqHIANwQWg$Zb}N&+$vQ4LZ#z(&<6 z1KqXAPLih3urxwgrXp0-G45$%6Ngh)r}d8A8a zJxWQX?72^2V@ywqhR7|b3Zf*YGPV+^wx2SvRx({gl5S9;0W(~s zD&BTcMEB9LV)tSg2_W`bz#>wlbI|CrR=Be9lN!r|N)*)7CIkR^K!(3n0Kh6JuXpX? zZ4&Veal0Fn`kNs-K`Sebfyx*5ZT!QEG5 zEX#TG0LNHk#_{R^8xG8E4&plQ|Mlkn?O*pe%nVb4NHCr4n}i{vi{}AD423YMd^E!IP$()% z7AP-3m3&-~MKDtp&_(q!5?->H8^M*_*ot_goqIv{)Uc>2^wIXO0T|E;gwR7HMJ{VF z2+{;n>S=PR()X7*a3qnDevGO#aT_{^> zk(yx_rT>+;~j_lddxlMwG438`h4c*jo$gX>O z++o&{&_L=_I@=gxl;C+XdR15hG0i^w@Fwoh?hcQ2EVdZIdD?6&hwJMD@VUSE>Whya zJp16;^qJOwK^%NO^cgzN-fTM~%pP2YP$ovfuy9O(aSD#`37twkW+waKQUdk7hOU+-ggNXf-=)bnjC@7JiXi`gwQtnG* zfRZ>xw6cC$A1rvGGYoP#3d{qEYC`K%HODDhk@w0hWu3#3oMr>GD$38eQDZ}3Rui~o z&X8P?g$yL*Y@&6H9Iok@(%~XrMUUoblQ0hVFok^p1M$M+2PoIhf8h(yFIR{A^R`|cZtl(xA3c0<>?DNP2qJQ6q0$rFf8qub&p3zthW z%GSz6lc=s*sRZSoE(q^zqbUNKV1?1G61B>0r-ePC*syh~$V=wQOS(>exdtwj2BdbR znJTTiz}j>K1vgFiOZ|4~VP0HpX9-(LHHeEU3YN_(7?o9)^)`?bVv$6thE4qBC%W3F zl+Kh3n?%JZiFIUrTGw-2pdQW`HuAwou|AW5h~eH~$-)^PRPo&cX4#<=8xxWx$SZ1# zx|(_HtxxreHy=L5Vipqt#$2zC*AE_#u^8eC^Z4?|9zFhKoQJ#HFk6JKf#f-hJ$P9DJr#IUE-wpS|~9Hs+9n90+egiTy-)hE0nL%t0@@ za1n0HXXX%1rW4o!7$`ibmrnT*sAz#5GU9p4i@Nfy8j5`9OS5f^wfoBckMh}i_VP20 zC(>Od#2=~>-Hm)+PjyN};|o@KcD`gjVg8(T5nJpL21DmVTj>%|(}1|U0rYh*kd0MP zQID4BBttTbc1FAHz#gmTa|fWq>R4x1NBXxwFs3#9X{<%Sykrqf>Q+hFz`jVt?z7o8 z-jfWCh-_qz4{bb~zU7a2#9)kUo5WHW%(@s-NRtgNi{?|91e!&B?1hJcI7h7TmF|Ig ze}{zzeDTk|dUrnm!}or8bMq|RnQ_K>{+rjIdvtexaP!Rl{QmvMn-3lz?09|k^!M*o z8i|L6S;w}y#|%H;3D*J4!;TfSr&&O7xa2O1%t=yzWC+ZhP+}?b2!q_?bs|Ag~d?*~a&N{`7tuHiPbYpibU4 z7+dTI`&5}p3cq55u>HFp5o4iGGd_F&X}BA>tjqfNQOs?^N5sd*`N^{ z^GHEqi73n~-zajkK{|LVy&8OFMXJdYQ#sPMB$2PwrUqGqA|H zxuN6hnC)jUF1(bm>{s3m`vnYO7PFV>>yx=E?5!$`lKjw-P#2a;Sf~^r!cJ zh9Z&_=bAVLu{kMp(Mnphi|vJYsc*@+u*&(;Ov|2!RoWypT(&Gvq**0ukWy5Do6a~Q zJK2>*&cSjHIFz&^^4K-Y7CHllyC!1kvHv zQ2(s_a#WXQ(HaaO25nA~@cHqVpR>Ri0@vH=ojyP_|*J-{>7W0yFNTV-O}glkB%AF0Cu~`M8ST zG|M02Ky$i{uw9toiiq2sY6bU96Gk}kK9(Q9`E2|6r`~^h|H?5vtrOwN=Loy?ozrgi zo^^SEC2yeTmz`!2$o_&tH4|^1~0-2mkjko}L~Z0l+PYzxqFa;K1WY zk0Kl#`3%6h zZLhp|{pyP!`#-+<-9P@s$Nrc9`IAB9m|lwo?~J#8`X;{iQW%|leEQ(M^Yq8h=QOxU zJFLgC9?mq_)bj3wqTH|qQr10l^8zkN2#^*3p(7_y2Dr8rk)pE5^|zB@C@~yXl2KE= zJBX#1I|7PaiMF{4YIeDx4n*QE_+$}FV)kTkt8k*cOWAs1@hpGLVIXy4K*BIokSiiS z%6ex#OGiRca#{-ANUdF}p3h1MLr<2`tq~B_pbe2nl(LA^tiT|Nm$1l#*Gp5P@nFTboVKXUm1I@wc zN4y9nA&um(Lb5&zVkvtgDMN)GxyM=Bxo3Pz`V|QfrA0)5RyA>ZAwyiGSj+TD>16kK zA>|hhZ1o}%2-NGz=r*Rg{K1foXkAFFBDx*rAG-+IF7JhMb(%YvwmE=s#Vm3Y`LFAp zqhHxP%pLG>pTHBd@BZ}Z``0i3=y!LIe)Wql{rj)HcR!zeaD#0Q2vjx^o6l)PjzFxE zRViv3IMkrL%p8b|atHA6xUQ?gr_Xt~Isn|x+x4U8&i8Ykx5QHGVa1%Uy!7x>FFyX> zcYgAzM_1235ZRhq7=#^SU9;&OzyEN4^^d=PfAj2kTmU+`oqT2FG4XM}C5AG+qUSCS zQqS6@G=RAYf<`HAvss|14kd!5vwOQiV3qAA>;DPWjV8QFj)J}z*<+d4EMvD@EhT{r zEpSEarPW8VH?{JFp@;Wo4Tbe{)I}*fd}+VQVvmBTm{f@RV$w<5cP&`{xvJ|+DK1=C z%3HJ!$p`4~7OER%b!b-BA;oMomAG5b_K=Z)gqlN`_lhdVNvIEPfIgsJ*?jpbrpOwH zjrKbnzW=k+)7L)tgYW$ED=*j!U;6aBH|M9fzODz1!9}HeX@4?vV^B05K+ty9mFgx{ zlbBi*5M*RQk=f?40e2e?*AD=jbAtTo_x^D;uFEpdXT^$lH(&YUr*3RKf_?V-W`u`T z5)xs?1>3y?#BhA)d%r$D_n1bkhlHbKIG30KU@WV2bl)gco-3o+G-h5-jKspi02$AK zVHn0GBZ?dzkwPvazvDqIcSP3h$O4)uI2qmSdoA*X&86mrvH-4R2m80sW_UOMHQzzT zH04>=nT0N-r=lIxsg+IRDF3qKnYaYhl6|?%PJi1TESEnkP3u;ZXyt74CpWZwF^7nl2#ZUg`zx>0$ z`?F8Y=N`WM?DXNy`S!z`MNn9@S)L=~ls(S^QOz$BJqjS);KoTJLKH2506iich~pTT z9=ErQIeo$%GZ0*khr@&8VO?U*^WEJG&tE@!c>Li{{`HSO_xh(_e+Ym%ku9KLemuOt z+nk(+fBMx zJltGoC^EYDGolts4lcT8L!IC1Zwr z=_~KwouAxpH&1Q`$D`wNeOMQsPc!P)+U}txqa2RJ5}9?Y3Bu()jSkSgo1vXCEXLfH zu_hVpKCcdk?R*}~fy2f!4#WQ9FTVWbjvxN|y;qLg(Vv3`j82#WB|o3Jl8C#pK7Q$W zpEn@PbcWoFuyLeLFm)>fTy@TJ@_U7WJbNYVnK4tgdH@{t_S${b)}tsCn*rMYN7kD* zOL8SwV#od7h{(*h)ru+Q2ZJ5Xu=?f7|0>Gc7)-Xt)E04@{_8qA(D7Mc{atPAa%|0_iH#KTTzKQ z>T>=DG3ISe^xcI%xPK;h?|ys#_%4lmfAP-o<#@cFE>16pVOTKjExXh)kcyZJkyp|A zrE*I_Fk8X>3{t}(HKGC*O$rlKGXY4__uEn!6{5^(EOo_POD&>9PFHCfA3mRs?!5iR z?GN5v5VnOVn>F3#Iwiz)LfBap(r_OVr4ZpGdH2Z9oRQ`ZB^JBZ!VGCU zCk}rqM5;E--Bmi-k8@6(2mq%<%Az8*GE>(jPM}(Q(!c!6_uu%@tKWU}`3pndOI3lS z+QPSL349xa|G3nv9_7pJAsqF{0k z0V#+ePxWgE^3KclYX+5Cg-%#m*W-2}!MY+mp{bA!$7^Y)aFA~KP1qT*3JmrGVseIJ zc61s}gqph~Fq;f(kfSX;x1kX!8U1R$!>ZlQW!R8VYIxr2ESvdP%nfDDgs4_U6`d4c zmHaP1`yRY^a^v>HfBNW;|M-<@(VwiR=O>$S0!cYs46D5*_uaG2Wbt6?BYz&Y#?yyx ziO2>slHZLA+GN4R0IOvd**n%iGM1!F;5t>+3NS-Erg1C^>T~W%Gs{;`HZR@WdwqXo zmCC+xu-O^{v`kN*UkKqJfAf96=s+V~bVPns+ii56KQbRwL$x zPlpD40lkMR?vW`>ckkS}T~Md? z%;9iOp+du;s)bWJJgCZLl9UvA&(^MRSrVF2Bmk;NY>Zl4qY{?SPD#zZAPk0Ex^NE>)|p#Shs2FknN4?S8e$X#oGw=i zm;@L8nFbF4-cZ6WUIB$eYoKYjLNdrq_=JF9(p&=O&$FM#C)-bS=euZ58awo1fZ8|# z`xqe>pT%md%PtG#p?2d@P3tQdHfTiPGaVG{JIFQqj-^7MrvB%jou7Pra^=t7d$6I! z`Ni$`Ub);(r9gEgl_T9%Wq}EW zl33V)Bq~IjSfM1|lCr&67ovv`9s{u%LWNRJx$6nn_WI@K;=#%I+DkWI+&;@v)gX&E zkh<`yN`lrZXWS153s5anAs#4+LWp!6H-!igR;9#$uv!fu>uV{hZ{i=oV{eBd@nt;22iHv~ zS?W08(r)DHUyk`zYKlTlYQx0F7dc&qFy$e)Mmab2YM4KMj`nf!Z}*X2luwZgY2e>a zN&NSGm>Jwy)5*mg;xf|I5$5Tl7nM_l^4xPp=NtUE5oa z^=wm5*7f4~`KsrG!@bOc>sP;ibh;p29~_R#q7dSuP@U6AexDMpvN3n3dXlK&Qn3ym zN0U~2!AXIuS63>s?D}zh)J{zV+r2X*Jd>K?&+> z>r{x4ncsi=&M!YbrbWj&rvykrQGgN?rjm3bO3IW_Jas`JAJgf0!7IxVWG&nH6I*n{ z(aURL6tgA*lP0#5sy}#fmNH7;nlObSr)IVQYGHIU@J9bN7N3k?cAMNnkiZ}9b$2#9 z;N5vrioaO;!hX5MrN$3|T9K*4A7-M|;sOM|*(pP%7&+peYsUJ3<=x1}N6lc#Rb@vX zD2|{(Jt4JWMbYCD%aAdXr$7l50|NE<}Z@+SK z>-M*w{c!tmNqxRtm(xu>Sx;p%?hpCK!D_YW^UYhI{_Cf=wbaGlx4-^OnA=D41DiJHtPi z*u^_EQq3*ah+jcdo{+m;e$s!a4T-R)>Jd6bZolTz$%ef{%9=IzfOc0+*d0w|62QCw*k3&y>Cw-B`^WFx9EauSAAQmdSwvKT z#D!8tNfhmFvs`=F0$4_j2vBB)KV|VJWyMSoPPs}=oR`Dt#dgtk>(jH<;et3K48>1A zxO;ST<=&SkFWhnCBjEatVz1N@C?r>OSBfk1!=r|dJEM<|bG>W_A z%%~C(ETFF7Hb^Iv6+0NDCb7j^galMps|Bv=;M6EWG5K{k<0h63E@~*5#5t)(L z2vqJMsv(0=Q8TAOySj*nOuzxV0fn6`AGu}sED*73*omf`%@ofuiH3)Q6@j;^Co=(X zXXZ#eQcRvRX1~+Ai$(tX4^Zd?u@xq_JakAcSFSk>L5GRr4qFe4Q76*GjoK2^n zeD$XvytK?Xd-Q-IT9p$Ekd&*iEnSI^b$En@11{G0E}{*CJ*Qne@q4E4+#rz9!hmrrQ!E>jAKGpae1(5VHp@QwEb(7c=K7 zJWm@`se^8>uCsmGVVxbO8#bPe-yeuk6XXU%?H4#YO&iRhrg_eQg%HkJxEX9in-vct zD&kwmH38dPAl0LaChWSSknjU=lkK%sjrwfv0!rD*rBpqg&Y4NQ8`G}T`kF*7_Op1^0&&%# zIha%whgbK9(?m?QiZSOXWz~1Dzx(p_)#{6fmv6jz_bxr@Br8yyiDYYJWU1C#SrdWM zvmc&T-6rjkNRdIEY)?T-39HNax!dp$-#!QCO;MVK*RbgA_FN~Olcxy4VJuCncMWDBt^%4th&~2|YRkFl zj^>lU!){V{T>xx=93eW!6pBgpX{L{+8ve)U=m*8~d}V?mAx%@q)e zs1zjRZ0Dy8EX`suPIIw&XthNvQe=Iwn$7 z=`PnJ^$AkSIAK|sv?^3=Z$he?h`CI)Dq?sWBCl&^CMgk9b&2uk?87eDF&77(fd|b{ zD;Y{=kl1`mHCN!)93EWTLyDfcX0EO6CL=~D$96$#v1*8b<9nSWSOmTg*)#<-3H4bP z+L&~waKfm=7m2Y^w~;n;f~~=pCW;MyV}}ED$qquiiELbwrSl-JK^g==^Z_e!9QID1 zuHQ0A^kpciZ?jWFxN0WLO%lNhdq`AO3-mkbe)A9au3p(6{`~##j>q)b7k~WcZ=RL1 zKHqLe83iIpgrU!iMb@D|Ip6SRedpF;?rivh3K(5SIhU!FS}1iQQhX$w2CWzNJTiVl zfj8Cn2(_e@-DVQYNZ8pC?=R$dOSOzsRnb%x&_DSPAH1@{7tf{}ue|YNJV{hx9j}{7 z`%Fa8;1xjtk_c1jv~cRdG>$^dDbXkvB&$rDOaiT$c}R?^QRf+0AL_J_c9`uMyYYgO zBu6(s6HV3UCVT&dx)l>~vXHfQbft zc2Ks-u6;p#F?N22S+OAkzB({ypUU2p3osAE~M?j>FHT)O`0**KkCym)QD>(lJz$Vz*xKuw`U z%$ZYFsP`g!<_P4^*PbI(Sd~G_TG;1Ocw3JL30CT%BvL2oh?RWUZns=*$8vdjnf8}o ze)z?me*4aAdl0q4p@V~kJrqxyc&#P@)G>~Z4lYm5SZx&&Dh;H*uPk*vUN2___)rn-}5RRHQI!nxl_leVPk97EF#FhZ88@t{rHqR}OSF2I@Xus#&f zYX_n=AwoC@as@=IBWNF?nZhlw`noi~HV^Dge#q^PI~MO_j8X`-YWqt{pFN&_`0~k> zAHVf@v3l|kAARuljr_v(vy1h1lI3uSiKC3QKgh=lZX>jDur^sbBPLBs0c9<$Rm0O6K3An6}G(u1!+-I&D~I@3E=&sgR|3% zIxK$qub;j9*2{0-@F850451_-mFkfY37L0NPI!2>R^mQqA`~8!hGg@HNI7>yUH||J zdskbGrv+L1MF|{>VXVs3!kR{d%!H4lZi(}1&sFSA)M8Bkfd_#hwC-I%YIOxB&|aF~ zw1MC-z+IEZ=XnQ)lP26Y=z4*k8&9GgYaXD#Ns_;qS`jI=s-;jD+D%Yv%hmnOjFfKASzVrs^h&Ocgz04l%9P1@YSKd^y)S0vs!ZpLxBn* zsU#{O&a6Hn1q4b_wP8xE^B+8~@6|ID3((z(u?G%t7eUcjoQFJ4n_4FB()l!1N_%_5 znD?)>~n%PhqBse7+2tkG(lh$w81E0%|S#3Hv878X_phP6N<@dt~p*ZWm02vcY_CT z9?xp8wFzpo$r}B14pY1`z6ojo5jUzc+HL?vU6CRN-(^<3ma%rbboS#W1yYb@A7IK3pYCgeSrO3HJfgTxQ6+As+Mb6J)N&Ns9Jl!nRuM3zsQ|R-hgxKPxn;_% z)9-)r(VxEa@-3XQEEt$#BD^z2V(?u>ZT$=sQm1jXS|(dpz8&v8eZ0J}_gw;MW#Upb z=Or;o(W!3L_Pc9zERhD=LrnnG4H{d01R6OGQWEFt4ZNy%xkp|f4g69AKhZX280x|^m7>3xgnv6zC9KMpXeCq8 z*}y=X){FpIw1d<9HGll1h?!Tj@YAeOO$~F@>G|E#>^MTe9DZ1otOoprbWQwC=|BJV z_p74&Z@vC)D8mN?X({2Mzl_qMEiujKCOmMm&4b`r93@*^9Ju<+0Tnk zzzxNViWgtlV}f=$t+zTHt*ppO0S(T?9=`gFUQc=0S^6|OD8WVw`noZ{BQvxFC0!gW zHtXZnA`b&~Ohu3qugdo7e*eY`2dLW`k669I*dUsbb1LdQ&nl-ZIcHMUAuoRVA8&tp zoIm}q|INOr%cQa)N>d#dizO}_->*Ku$)BRA)hok?qX5FnN|iMK+t@A~vNnh3Op@AQ z!*JZ}aNkXZ28@QM$ZZ~f;c#EO6W{ugS+ls3$1cw3u=^^G zOs|U{TipuWor`OPd-0YBZt;NyBoP3bAJ84Agcv+CS9}l-FsXPZxJuV? zFWBE-5TH+=^m;ROdkQco0;)jsvPdNrrYWGL5%AW}o)qGPTqw+)%Tk+cZi*h^H#O5p zA*wcm#z*(Z57BHt8;k0OPeZC{PQUq&2;o&s0yY}VRPhUKH{?cFl_@e6ea+(CCYOOUB7C9|C9u{dF z7Qg-U;r=+ieRqGgH+0LPs;zht8zZAI8kp6}$V3pa52qA<(F#(D+VET=Se)ub1f(kF znxz?8uSBtvFsjK4XsBaVB4t_(Lnfv!=`{Z2$8WrUV@*1dBI-^x;IdVykX8vE0VU_m zy6C&yX92x_W3NldsH7@loWD%lO~+hwno2wwV$y0)%x2)QUz-9c>NY~t{duytUPs&+ zJ?~z{8E}vY6~03enCr)P9Eftm29CudsT;rRpgMl)Z*`dr*2T#=kGA65J$(_{Mov?E z?70iF8}DHyT(K8~<{Q-6aL2vv;u*hwGV2gw6~aZC1#h4Rgjh)07%gLzxk*2Vy=;7m z3BTFr0z5+Zi;tdOoJoG?wMW-(fBoyPe@vU(@7+Bc>tcQT@GA|c3=7jn+dM%=x1+!JcoS1TAOI4Twl2AoN5sbx?&HT@ecm$7N zK(w>a&`P7BU`6gS=Z-FwY@q?5WePW{3>EB>SUAkYJSy z1aNfQSp04&SEo_~h(*53>B$INshJ+TwYWhJN5<_IBbBk^;buT&Crlaa+d%yj-4a;+ zOn@H%suR&uEI$0`aXPxb-djD}Nd15Q`GXJc>e0dZRL4=qQYTR=Ws%d+=Yf&?e6l+H z^!N9#tS{ev|Ak@MbKhGw*>ef16hKvMVSpHCp`s#+l-YZEm58`TOag;AVv#w=a6J!? z-Pfr^a0Q#LpM+QJ7f5GMsJq{#g3gY(z!bjmEM z+p!j{pf2<3)=h;VcPwIBgq#U=n}}6Y)ub%O;ke5p_Vz}b>!v<6!i0vEjqy|$IBv`@ z1-t2kQr$@f2yp;sGRgKA>Q8Nil(RJ))P&K+7EVNPtySfGP$8wiz}jx8qij7 zuNAss{%%cQe(|WgdSktRaR0&S&1Vna{;T)T37bhbqtsGGluBLXv>0-qId}ZL-@o_q zgPY^Un?JhUEfRMf{5F+Tt<0Hxx#t8e8tgq)@d8f+cMwYqg}#gU&MR2| zC?HXjt?mkgZ1RuLvFfvNqaKd=N$^_eHi6FMMk9;l-o4e; z1TtyAtY%FchCqPtGbhQNFl$vD_@R$q~(}R?qjKjf0R0jOB_`b4r$^8 zDMFoi68}FbjaY6LeZPoS{Tdi0ycx|mzxxS(%`qSK6-U=E4-OuE_w<$X=P!Qn#);}?E8|qODk)TC(ea{7L!vyS?`!_qzq zp&L@lo%t7mwH1b8O=^P;NtD?Va|HxuW)P`Pr2;H~)Y{tc$(2FDzLG=`D_9J_npO02 zIQv!tktnQ=4KP8FJ`q)^mCE_~mHov?=oB+E1|qR})KE)%G60;NocyQ%vLm;1lL1e z;O#Tv4QWfWl#vCAjwm9Km^(p}#b$yV_(7BYfFLfPYQ@+)vPrBEjxxR(p19*_@H%X{ z$I@PP)NubFNc=4L8l~&=`Mb$?<(Zp5D5hP^(jOkMMN0l7i8wI$g~0gP^GV^vv`zB_ zL{UHwC4ctSsdfituiG3P-v8w%AG~<5|G}H5Q<=s(78S91(b6X}1xSnTt8;zy@wcxZ z@|{<%_p8p9f0^Lgc^5eF`Ia!!%$~Ie15@<|ICW2Z< zENquOL=ag=ZSq1>B4}o&BHfjJRoQGu>e7@u52C;zUrT2D;H}@*HyenbWh_HZ@PiF2$^-&RH-8e6&ET4bbqY&FB)bZ>OGx1T87GlbrI=)AKim zlM5vYv&{3>T)#6SRd4n)drYo2k)a~Yv0aFND8)`LykWKGZJL{NuY{(Vaevu6eJKrfj~;=?sw?nx>#hscg%tYqPnbf@Jk>DNoa8wV+x`V&aslMZyyE ziW89+0f`B%-5sm?{5LxaMP(3?O+GOLqyR*?OG+8t(1W+zwQeV11yxXLwnSXVz!thN zDe&m*tkZET0^sn<;raQAmV9$B5j3e(n>bBL6dmc%5dnGVw&R*;2~#VFqSm6tM9ON3 zVOajQRmOxhvvtBYOIcf9B2a%kcdF_w{uUiNEf(fF6nv+2ZAT~?YHApoy!4zDgcz^x z(q!?LG&tVG88MNH5tVmshW^mWu%?8NO2SWV=ACLR2l;ThA|YPLe^wnOT~tVFt98 zGS*57#8f$zNE}JKHwDFZ4ZEIpj0AWaBw1OdI;jjpeLD1+`+nr~@X5(vzkTyE;jqCqtnyVE~nggS2K6R(aYDitXxu}s$~+@N>CAO#!AHN z%~-Z2Qo8LyFk8B4=03^#hQr>&N~1l&s;v{i!3kzWPq5A!_3{ReHQ6px4s$5XLmP-ITY{fh4+n1#>rcZ3OONdS&VxC8X(W0zIYl;R$~C^KTCe9lm^PbLGmHzyId-@#L*Pe|J6f zn{C-{%Q#h0K&4~!OpA{Cp11o4zy0K4dVKumo#oZ*d&^a?iAA+)t6GCps3?j+bWG_~ z6LpEYT)+ih^8+u2CMH^s<=N?WEMTuA1E9iw3`!(Wfe<%_%@MA5j5q~{>cGxlGMy2T z)b|(9&-3v)s8GsMrOd<#fk+wRSw<#NR$-9>bX0Er=>!re z95*aavkv;jk$p^4Qkt)iJh~0TK6}Fkdjbua__Ql0SSHwSSVe(z&cC_8dH(t17hbzP zy>RV|4c5Q?{7-Hz_FsBoU39ytn@P6glz>b~Og;0^QSQ@8xBBRp-yUt&@4a=sUvkNC}5GzIBYFE7tCfGQ~)h$W{VsFim* zQV_Dr2NM~SFt+t%98lOCsuEO1hi=?VM_2aOTT!N3R6$%tGXa!hR%DD$w!$25;(qz< zA3xJYs=6SaCh2pz`2POtr>_?%sp@8f3bn0gpt7w1jnkC!vV|x99DE7Tj5sXt_3;mu zz>Ps}JL3#EoP!PSVX}e)>*RJbtIp6sggEB-*z6SJPob@!uF?OIUsk9MuLh(okC8B+ z8g#o-EQ~>fk8WnQg0h`<2(zrPN$o(mX5#t z>e{vCaOVXQnJZ6XdiQc~xOn``#xPe!<(=3lei?9RLLl-v$PO>Hsq=;Nod@V)oDrHlRLU^kE?>~J;!#-}`dUoyR zm%sbsjk9(DBo6Au$!r^~naJ~P@Ux9+ zh-gwvW|a{&M01$oCLZLKp65W6byZLvZukmPGuGfAmDl)M9{o&A> z6QBq}REe^xPM{xZ_rTVE-+Eo9UOKC2a813 zB0>Zb6(X=ohGf(PwMC^w1g%m8gWH0+O#(nPKAS*@+LI1Rb7I*~HCHr%IE~Yg8N?9D ztf;kxynf1IkzkX>l@ihA)00>3-Z;2&4V+VE56Sy1L`iI>ZO>g|$_j{JT5kwitMuK% zcv=J@jmR1)0^a-b_ja4ukuv~bP0Ar~A^N)tLrx|5G@0-PE(h#ZqyaGZN9vD_6cAE& zWof7st~+yyTm%A!*rksK8P!7RaK6$St*}!{`z@2zL=z2t@p2f|Kv1(_03P;zSZ5jepc#KWK*!+Oj>IK za!x}+mwD(J!*Ks(#PQ|r6<&P%PCszYovIh$IZ3N9!be3jVa)vb8UN@1?Y|63Yv$#m zyY=!dNkfte@T@ZtkwByp5v3#|Qi@l~+OyVbP=sff2C-T_&+uy!0aENE0}+u3h^pgU zQ80;sz$qn4Dypiv@4!|b>m`+bK@MX%0Z=XAC!6#<$?dn_8J|C1?(Od#?ro0GH&b;1 z1wktVl#*G|#oj^z5*ZfUW) zLM|{RrbYkobi`)c@ArqRy}m=v*4X7J&0;qZ z6%mWRq|aZS^Z)+8{!On{lvBq3{(b?8NZ$Q zAAbDp^RK@D(VzV!5B*ehyR9^IZ8UWi5w>0TDyqyWaZ;l5^NlH_y0Hv%>Gnv%{U`N# z-5R4G5;>*SNO00Hy}~n~(U8=ZKO)x|kk^@VtP_WCqx1qpYN?p!9N^%`85Y<`DAx%G zAuZ?(FcSzbI2h$Xeo)gOPn(enfAIw%f-XBoSv^$ zWjPE7tV5S8sE|KEyIvbc|x`)WxS$DQ-2W=fJ*7Q&Kdg% zGaG&lQdQkjessK%<7e;xWAABa!;z3)%P%MZVJcdxwg&dX<MjUYjYLsG3P&thChrNM`ik}A))W_*MV z-)RoRVu?2GHK+|Gq_!V2L>l1)G@_&??cp13Ul9mEzW?C)(W8g&{P+%CIXJJFCK*c| zrz)jFBqh#_1=F(Qu1nKu@B610aEXwetwE7Dx%aEkvf%SQdOD8G4TQvNq14Lg$XHl)a6ybm?|bwWflo2=T^i-yt#dX z&p)&xPHOcAEpdS0)C54SB$`te71(0yGWq_oh~+V(EHG15dUTm(tUvzK50YMz)2r`^>>ZLn4ucFp+Vj6lpH^ z<*riFe#cJ7#D!q7MTEW0Kf-N;^`x0KG=@ycD+zb;3@Ovj_c|T}2lYm?kP%=g3mPmO zh*FC|F(Vn3##j=xv8Lg;!Ve>S7ljlzl3=}^tX$cPaL1mrs>PwxKo zwQ0GSicFJki&b}us%GY%(KD7k4~y<%SbYD(aW1;o=L4=s`(0jk-l3wta?R%Qh>GDH zBz`KZzxhvp``XK|U3>if3kxOg$Njx~TfN+Drp>0?%K=^q>hpF~RUs)SbUi?+UrgJn zUk-2^NpTh$5D!fA3gPez1gH?$;z;#F7i-K`WPlWjkW_{tkyfdt%Y8d#1(JyPP9#(U zv{uN&)3RXbbSYfB2Kby4G+`CLT@=lBVd)GV=`UO;og0Z$Jg7QsSdR6R4e+GX!=} zNi#?-d?p~OT@eJiHspioP>vcsw$_CNFSezq>d_c(<&FQQW6dr{{16Qg9yw_AbIwg` zu3wQ-opQKll}Bx5OB1cXfJ6D>RL zI~s<3nit=F`(&BA<&X|CUES|f9}P1e&?!Z_*My%EPu!jVaC~zZ-g)(Ae)ol%^2xRw zUv5A9o4@U}99_Rk0lFzg*3*RmQz;4*L4txHQkh67RdDXRI&IplTZOf=>~Oh$Tq-t+ z$*CKVMWYJa8)Rg=VY2uwa3WIxUayTqQa8@Fs5(kxRRKzX)H-qh-II&`qos%@0_wP3 zU()5$t(6jhalQHS@BbFVaQpcl*^CoJ8PXB;IW79!C8S07OuHZMJzJ%`x9IkhUfUbEbGluF4X|&hf%}R1 zq+5RRoStmD8}GdT@dnfJdULt?{NvB}r}f^|8=GhMMOiqPD&uxkl_c7Asg^>4&)DY{ zfzmLlC7)qjqT{ZT-QsPwV*bS*lks`c6X=f)^c&XZ+ z7wG94pL}ueg{!MRDRLe+Sr(TI_DbuEC4yE-bFGoU7 zgwMC7!5TIsU=xDW8{$J)ZGO7Zg)wN&I)ajUe4FJRdEua-TvV<4M^!ng)!uP~Jx(wA z1tvnJu+!mh4Uh2-1eXxdLY@X7B6#(X&GX*L8QTbqFbSr&ZmdnWdB;Ws&S|0^VRLAR z6)X|Z_6>)+D8jUbQuz00xBVj1SZk@7&?Q=QY0;-HgBFYDg`Ph-SwfEXR|_py4wq_s z7Ngq0tdiOyB&dRv>6nMV`=>8XA3lHeUU!eSt#!6a&Rdun zcdQ8mXLift=TZqE8mG$1XlkUsmns3PEm`CrZQojmzdJ#n)Bd&9b}F2(?7MN?j^ky{ zB)&05pFBCe{?e_f6x){rpkFPC01@to_9(+e2R{g7Njyj99A22jDCD+a)T@X!c7(%+ z9!A5CS@9@3Hi5Tq_2purUae!op^~x<*h17w2iqDoKQ<%HrmdPqCk}}W3?KJEXlm`7 zFq#O$&}GgLU5_$!i`)%FS<2Xn5a?_(ZMIt`lBx<7(VTM;?T22ro2b+ZBnxgD2cQk2 zw{La1pvJrJ3Ttu!o2?|bNA8IM!xj`akwRwOBC50n6^w2a;@3!hFK&xG{E2(mtsb~3Fn9L)8SHq| z5cxQ)xHj-KR+&m->NBr$T6JkLa9J+yoop^n&ik$#y1b{`qoXAf!O}rhLybjMB--0W z=^`)x<)a6ukB>QVnYIVl4oRlx&ySb=P((JD>x*fu+Y3oNDmf)4PC40w){2xGAn@Z9 zcdUF;`NNOC&|%n4HTQj&yFO#JH*7ZBMNU0Lzyg+jwdlKX9Q(dAf?mccLjgX!JZ;9w z{vbB%+B3EkRSZ1Gx(MmDCq2ujP3dL(zpa$vFrz6Rcx=Sh*~~WTKNf2Sd*6t6M=BN{ zBdQmg_4d-Y;1VKh;aH3srlSb6-Com-F9C%_W<}?F3|6=KNi|oEaD=mAV9!Pb1Ee(L zsGayQFjs&e2G}=;697i3J;|a=%PuebJoIT??S1{^e0#p`yKcdJ#O3PMJxx3dlRSD!t4eE(@C9jEcm>u-MayHC5W!+MjuZnN3mdh_j%e)oH=)*+*1vnf*% z5mhA>0TD53WvC{LX)B~uDaBj_z+@9eG`yp#rw!HrPIi$|H{_@7Np%WPM7H0+ihJr5 z8wj|1i)@%9_$FYpSKmL_aMgn=`yJPDD%)`!E3Y?OsYQs!^RtAi(Aw=?TwYLOD}l6! z#9dd*v{@H_5)=s_BR>eFJ_=MI383|X;KB(i2YKEO{v&xXZaEOn=l)093;e`pMm zI>{8Ru0Z43B1d69%S&%WBl8ugDm-EU!O)6OWCCZ#(C1a3_Ie%`dAr*G_R*OdjulidE^fSX_w3~4_+ry7mz8*XvA+7k zo#&4ps-jk{Rmbf(O%tgm+be0O$xNI`0WBn@gXEN?DBN6-P1Itd82MmT`wFlG&anrj zktKj?^@xfa+E8Yq#I;tX*xIF#YC|8AEd)_YqEPFQ#K|-;;p}2liKLXNh>Y8=>xhPa z@7n9Hy-ccGrPcm0bXjXfsrHD5y@f6B=sN?`R`O|rt3YY0%1W&+#Mndj{h=BXV8g0C z234q#z_Gkb>MV6ugg}6Tm0RK&@YI{14$&VvQ04Wp^X)^*;89U{2FOeIjo!TD1 z#%KZ6;4TqBD3Zv5ZfO3g2N=z8Qy6mu=8HguK*o8Im*`OgxWSW?y3+%N4?>G2bDw$H z=VhPr(5;8Pdk>zasV*0bmCBW6TCRF?hF;`lJRblNRaDPV@R<7t)AF;g@0~tB?p1Qv z-+A@TZ@&I+JB^!1Pr9ztsor?`^^bn{5ouMWI+Z>Xi4b!wg>wd{L?mrVjtT?G=C-R= zA%JSt8vI?gM`&_GAWvp`V#0dN9V+`Ns)g-Icd}_B)TPw*wJMZJMXK7YEg>&NtR6Y= zM(M%nCMUjp{=5_*_lYXyZc(v5d)~8b*Ak?J9`2cmAhcOVW}JswsPC^N(}&30B+=nzqZGkNd;yLr@rN^_Fe z&pm9Y0#-#QlninzrKWlFFH+>;JT>7JyLJyD)@ICsHt3ynr;e30jD@ya4J+d2PCadA zNDdU_`RsApJpvTlN9?#(Ls||gE&J1c_3iy9d7Kuj#S(IDKQC8ZAPB0km{Uwhnr~C^ zCifpd*nIzRd;H`{y|_rjVtamZ{q9@$?%lgMIn7nOE}uSsdUXB9`Ms}SD&=*i*I&5N z<%GndQi+KZn~@@_Og0uy+1kQL$^=z`hy}JbO4H6%8X(rj|Ao8t>bE#;0KO3|GLWhw zQ^i!Kl)IwPQrK~m73>>Qa!`7_uD|)@USfLj?Ki8Uj9V?!G)~*9%e{leY9Gs$5WQixI z$eB$)1uxnc1Wm&pH_xbrK?;_TNA=6II(K*X2$U2gWDCA$_>VaNas3Gg;P{=IdB^Tk z(sr#aYA5G;$cv+bK`=#dk?{{F;r#S2=Yl1;dyHgM$?+uw3!*k6~?my|KX>qU` z>Ui^DNPW_%3`Ud(xIt5h1%|*n_rLz^>9y-`{Q9^5N&;RTo}8XuIlBJC!w2c&@@U+= z`tmCkwdO_tbb2{mJIFF^r|o)g@9_Ne`N6^dqX&-_w;%j)zMWQ_NNOo%OKz?u6O~%a zc1@@Zi7w??_+W%dgD)-+){WcJV;bFzHP(E2kP9d|1+E$`wuA&POt3>T?W#VY+(80q ztGNrn;aW=33`P#)EnyN@F8*%!JT~pj7*lBkee1Y^1NtB#5d_<;0a05Nmk_tDI}vys zn#O<7oYNd~XmeRgJEm~XwrQwFrseQti|5CuJeI}5UO#ScTwQU`o(UxPP2`jKp|D7R zRCSa3Uw--g(brFk?5Fc*H;KCObTgI?^1}A?<+}%mS6{~A!De|hE{4PR-dWe}7f;Sk zzd3pO=ozeBjTw+4n1n#GWY2FUBwJ5JOn`PdTXb3t{W-(wM`w;aEK}SY;KtQH!Zg7^ zh5tZ^IOj}EL*jCN3aOO3ZI#0u(xhI_574x{PWnZK)N(mZJ<^h)l*{S)Wj8FlMVEvt z;mPr3U2xf`N{wa8==xryLUDY0d^Hll&5VLbC@>DJ0E5Wuy4||7THMM3>RcG@=I26# z_nKB~k;E&=gH(Sz(DOkK$wf2mqOeABx)PjXvs;YtEkGF<6%yG@5pMZEM@8^B?} z27FV5xdHoKhsiV34Ho^IuMR=?3q`9dc&eDQ_b*X!{cZ{1v6y~G z{+rKF&+cnFzSyk4{`Tcp-}=Y@`uA6^9)0`!Pu~8^zxwLIH(3clX0FQCH_(%vPf<_q zi-q3IOeqT^L4W#aC&^c)xE33ikZQTszRV~ zDngtHOep~cmK7#z7Q-b>XWiiYHifU? z=f+F{m{h$kNWnzKTf>alprr6rzd2P!N@+V5+F!`o){5%XL7!Ol5EDN+8^8SS5fRd2 zn8wTV^9wq6fM{k&T{I%q+W2~nZM24hKWMI?Fsgo}lBT~-2vrB&v*jfOU` z?LaMs_3_mFj-h5R+nlA`acNwh{V5uhTU6?wI2SEw#Az<&O7QunbId?4A3Flw{K9PR z&6~yD`vu1bgOrf3EQV#Db$xc_#sNC3Ay;a1C0n6E6#&ExK~3oq7Eg8c z_oGk#{=+@Ow4J7>kKg(CfAQ5PAL)9%OsHi#I6QoIaPnmCxNa+e+uO{% zmCK_@N+iWimLkcLVkveOS0(YM{Nz;SQz|Z3WXZB*SrWy4dF0!dS$ew{$OiyD$Slch$Ruc*qanD0O<-V_mZxMOT|kftNJtlR$Y9xOMvO~q z)z9uK13h`9zQ)0|u5yy4*(u<+lOvvFf?weZI`MNM{;z)Z;(*(%*jQIwF~`BqC5FSAS}mgFLAM-WdKdZvy1Ch5g12nt}zAh$wR2MHW5X_fXEDy!lN_!@#iOX z-O%yz{onlNr$2vNwl$5a=KTE5r=LCF-R=5bm_t>iw!MD$?xRN!M{DCww3`m$zhyj2RLQV*&4+MdbQ;N*&cS{5Sh*46YsZ5X)6INAue$tnts*h3nzUxwe zOmn0>A4dpOtrStf!alG3p92*LMJk)SED&3443On@ZWu;v(-aa>7w z9XD)a{{>x7ubCzUGJ&^{r@tCTWH5y#0#Ox^NqzLy5Ye*+4Ya6R_dNR$mn69zqe*oE zkZp`3kS%5&XiR@+j~aTUjJolB+b(2z7%e#Z8+-j?B^NdumsN2b`ynCgNJC+lQ4K{p z8jk|yWR2Gp*r$JKuE8J-5FPk1(bF0J`Rj*LFZ#p1JD>gP(c{Nl&#S6j^ih)JlTn(U z$37AW1nTQ16h*&S5Qe7dHm_X$=8u2SK5+qnlpv+pr|pd@0yJ$BL1HFOHd%lIW*Gp+ zl*k%6AlV%sJewa|%lg1#fmxH-u!+^|O~wA2CU8W`%k?o+V3s6;*)X6A01=5Ih26vR zfFM~oKR!i)>G>2x$U+tfQs1P$9j%QKcs6IuL*F-T(*_g<8`9NBz}OR{Zo2R%upEFb zrpp8pL?Ny2pss!QHea-lhaS2GVURhXP;}W7t79gBm1Co+lMIg4%LxR_u_uP|eMg(# zzGQC>qBzP42!lB0OmWy_U<}Vv^0_=6OV;0<5<2c#@h0;{;Nk1BXi$3AusC1;_AKkA3uIhDH4TtHXp682S}VGC1Hj>_5q0n z!`j-}`CN3ur*f^R;5kD8X31?1Gz#k4R=YjyETHMv6g~q4YtTf~O5?IBjNr38&~#J+ z49p+`AxkM@9}xgp`_m8u9iFwX56>`A)6`wth@_$%rMB<7zOL&c%gUkz=4w2e*F6_` zUX)c;c6}e)TAxVY_Yz2u7WEVmb!CgyrXY}HOy*SG_Qaf@*$e&+CI;Z;CPM->Bp4)_ zq%8pAo)>}8CJ_TNsWVqeob!^h+IA*5+)+`1F~Lv}(d5-P$D*6Km|I1?!$5*)`?w6O z!$3yqZ!{^J(bm0Afrb0HH~!@4jU zPaJfM%;4?Ch(Q3rp>`P=b~RC3VA3n6fBtML3H?>-VJ61Kne#_eDeHN zRu-7$()S@`<1)mq!+>Q~ATsxDUX3NI&K4aKrM^YPs;rzvLm|%c98ebX89CI3<@I^w za`SOt#)GN@fKZ3odMJZsLM+3iPXE{}HwOn0>B8LOPJ@o9|!r(^-}0P1{|5>uS%i zIG<;PG4=hTzWLt!PoC`7^&-TsDyt0S#`_Vl`uWuh|Mtr} zpZ?3QCp%ZOqRfjTBT9({P=ybGfpuRP1w_a|keNv3Um#xlWn4Me=pzg5c<8M#7Jm4l zOp!_GjmefkR8$2dDY8NYGTTj$F0{rNvfU{lFjdv%ogEb|L6I?0*YwSz9gQZFwNY13 zv(fnJeuIQr$h*1?1VpydD-Tr&NQ6~2HhmrHGe8Fkh@f4Ox*5r9cHo0%#77-k@H1um zFi42CU(4@^i0&6dHbzJsriqOqk2OPfQlFz8esK?q{&9MGn$ zh;_^i+5^%(=81lAl-@bo$|JjQwFQHjn-q z)~mT0i)Qgi1Q{hTV-X_IzzjY;2S99?n|>;rDx)`0oIKGJq_ebi@^g<60ybR~WF}$e z0Dytq_y7?*38yV*h}GI!)Aaz7B&AN8#R3tkQQ0=Fq!dC?6vg9*&oE>Zuox9x7a>M9 z$-Kx|fGE$aOp{7YI!S%5>39(!I93r{F#ud{Pu6gtLrV1SBo#t=Nyy@d+4Eo}j>+xZ zSORTYtY-*KJRL#60H7e-C|j!zC3f`#0}!4;`PYYg zUES4P42bP~apB^XsCK>OQ5dovTltJl_fZHqI~H zy!i5DKDl+{WgCC`^2f6`d+&ez@vGB=Y($V3vF~C^p^y1E0~@9SB&g8`hyW#}B&^IE zQ|>VkwOFRAP+hj9D2dEv4h^ab;}F@HJxI75{MIbyvF`*#`X0wcV&_Q+1@W|%)AL0Z zXgZx?4uNR2wsv%||MsdUY{b80R`CUGFUGI5=&kaP+LG( zWytbct-28G5`1yImNmSoau6MuM+S>ET8L3h=%cLd#0o%CvlVAaSL+X}KRj(17%xAM z%kMNE31Q{^?VO?CK*jomI)TP?qKZ0MxA$tFBg|>^?Ss9=w3*eZZQ3qIsb}xpd+*u9 zN8Hxc+6L!k*EGfU_KU}lrKvai=H_S|W{dvt_-g3C`0W?fwaX`?jqLK(KY#t##mkq? z{@#e&>1-Yd0I6>lfv|15vdYxKF#-~4{gMa)F)s>^Q2|?^5M{}5>U>Xe5vZrRV6zmK zW6M@Vu5|k+2}Jh~#;nA}_TCf*`Ms;}1VPVWPTObWJNFqsjVsH11PzH{Sz zfA`%yjkn5+Z(T31Umx!;4)*rz^^4!UK8sz%zLP8u^%-uApl#p&@S~r;|F%G8PO<@*5I}?(k=&fB zoO%pN@MNASD})m!CIf{Sv+VhifN)ujwy$1z^Wr6CArLI;mbOP2lQi}5(;v&MS}#LA zoe}`21U=vX;L674=E?Vuw1ASwS9QMt01AjnL_t*N0gIx{MqNDInZL~ACE(|oh zx?qL@_iM3FJ2u6*a?lyVAkJo@(TL<6vFJ`>2MA{JLfU3vIt3li1^^&|tlv+}qaY4R zB>7ZO=NrV&nZ+*s7-X@40bPoO=5%c)g`-o_{(BS`VA~}R6u1B448bx8;0if}&g~5U z?*0uF1jsNy3xI|f*Z-w{*KofDe*^%msoZNP4<0+!eW2}rwGeEzS$`=9^%&&_cOoJLii z05bw)NJ$#Wy2JCoyLYW;>$4;?2V3+;6k-=eP}cznVFD2WBAp1WkyyZ3w;}J+`-a{V z0si?xL8)W<343&PAJmUz91CU(ofGY#ig6)IX=R?Z@JN9@L zs2U2=)W87K(#!$9&sfX?j79?g($J2h|8*!e1ExXNj{pDxOcAOGhm_tCH+g+SuXZ7! zkgyk<%riyWz5xcu*TP5(0;Z>7_SVnm>Xy7`W3IJOGG4O7t1Z<~9Z@ zRbMCr(539G!=scpScK}yQ9PNSK-V-eLS9CJW;(rb=l#RulZ)MAGsG)bFBMlVO&9&n z-J3Pg!`7Ln?R6gJDSRA8vZ_`S1A;h+-J6Hw(e zN7&t)jyAJYNS+5q6s?VfFi*61c$y>5XXhDhfJl~Q=clKsZL@qLT|43QaTSWuXuTT0 znjPe2j(J7>IkXF=GOtQ?e=z}~bbTM%HaB~OLHsWR2r>ta-eZ^$!1oCax%}TI3F_4h z8lWLpASSl@CuxpEXh7EsP2iPOw^L0_0g`S776YW2ms{8ey92sqFa3&HC;P5u6pL)+ zDXf0`pnzIFniVjn(vIZ~8H{`xA*_TujFI#0lH$i?`TFJoG_jGT)B{!`24!qQ2Nww; zwORT7ljF&ycb7wCZF9cFKngFtBBQ!4fJTRN4Z+EbWp^E+~f_Ugx<%DTOF=f>fyXYI+!`glx~ z*XPsq`|m$}^5ynqt!|nuFPH?{IgQ6GvUcI>!ND;LMH4Zgst^anG2_cA=4EH zoVtJ{B9pBRYuX7&f;0lufW2;GMzb=N({^Yq*A&ma7F`@K8Q zA3yG!mH@LXj|`KoiwB3NB_O1}K)QbW-r3&Xcw@W8Y&M-=zjyC&@70K9-1i$Hvw3`Z z=mcVlm{PEk23Y}GsR+#w69Xbsz+q^fJq;_~*#-c2LyDHIvaLhZEXbkCUG-s~F4C*R zGZyIj7-L);m4zeC9s{ml07>JmEfOyB3=vTzc5S)7IXgOCpX8H`LSHh^a5i565dn-c zjImFGArA>aL_$_(0RcGA3u`U3fwQ{Q!21n_R+N+eL5FaTILuNQq97Pa!r;o%Gk^V&(Zj)QC{hO;WK_R7Py$;3E>+dqabB$hPh{%lAu?h-UV~24s z=orN}fOr`Jv;hqa!~wFkE2vqAm9Q`%B0G43&ITHoQnHkN9NiKTd)DJO5d;x35)23w z!f6vH+`s?n2gm!zTleoC%x7<2AJx;NrtZ#mU;groPu?8v*C)r5@wn|+=JV^n`uyqR zCtVUrOhvJn&jOWa(`gw1^Ri8{^X~1JuU_@-bRuyyo@}m-wwklM|MA;)ee3CqgTs^8 zfvE3e0FE&t2qR{IfW*Qm_DBN-449bBqie0si(mFo0RUv!$cZaANQ8w1rCIJ{B z2tYM1t3@YG5|L`X$_ir2xoZJ{0V4=fAqZ_#M~N;BKm)YO657ZX_1gp{{y>D_BN9Xi zf&>u}R9MFXHo*jiM1YB{J=$Q8(;(`Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FZT01FZU(%pXi00007bV*G`2igb@ z1tTKD++B4503ZNKL_t(|+GM>+lVnM9CZ?)p_7-2mW68*fjLfXeti7vh&Vld9?a}{G+13- zT^;G+{`|R`>ZjlLsXG1-|NVbJLP(N(%nItCUED9O?z6S=<>}e-_O_R%jkDEs`inpP z&HlmB^8P*{vcmQC<=21t*Y6LH=XbZ*R%vQLX)--E7~LMd>kmd%Rc}9ec6NTgX4D!q z*>G@nJO7iv`d9bXegEBSp3O(wJ7+)t^;9pg4yJ0stTa zh=}Lb{Ez?Zn|C)$$1WSJS$1E2Jo$@Pqd(coQ{eyOP5r<8?vUDAj|Ta8IGf(FfXNIw z-hKM?w-f&Lt3HX-qy+Jw4vPH}-<)5kx&#CeUY#la6cD;M zB8Uh`fJ_cS{EGu901*U20T2R(fCMDy00j^b2!Q-k00D&O12O^lyXoJ){~Z8|KM)8HM?fG!WT1sgju-alJ6r6=j&^0Al$NJAf@$udi8jBr>`H z_I&5#Km8XwUwnEst$zHw-%m6yFU}rqKeDKW*_L8&nTPq^YLAa+tNO_t* zS{r0WU7TMvt%zVj>1{>vT>yxHh`$Laf`S0yqZU9EK!23t&64$EI|+!Opwz= zI|cy|f%)Au(MX7{sZ&HBXW=a%N{s#(1S}!eNq_(aNC5nY2|_FgfQ-NZfFK9}D1^%2 z4@N-%K?VQ-3O5qiX8}MYKm_s8k0=C8A2!!DQ{76cG6sesD|z01>+wegzC zvZifVkdpM~{CxY-W^dGIrHZC0Tg#}b*>q!PFGJo=@Nq`7!?$~1|6=_4r$_Vl;_6PL zv*n_vWn*`{oX^Pg8ixH3M=+cmemF6Sxt}eWSp*#TTdj;z>!W;qEnChPmshvWi4fg5 zT?!$H_@gcYfWSVd`12sh9M3xXFvO4;y0ZWZ1b~NmhJub+fNBd?vj6%2{P{n=Uo=Th zAxW0g_P2r2aR3+#m>&0Cn$NVkG&R5klF=KcK%O zG2qBQu@5Q)e;A|-yI6g~Vek(V^w;QwoXHY+j=lrH~FwA>UL2oW#0Yp-S+m5Y3V z-&6LFKOVjP!w>V5GeR|(Oz!WdkDhFw9efxJ*Q}GGg%9tJmo*jhVmT|Cwgt9GBtVFy z6!kK*vo%gqeRF-gSk%l^V|r7O_{l1OV zyuWqMifd0!PiGbU?#GL}#sDdQa1=QL00GB>sJLyM20Z5=r{}JGHhys8})at_*R3Zcsih%M@f*9YPC?6mIA+EyH zAOIr!x+o|81$E<`?crxXI1 z670^QFWiEwKo^KdTJYf$QY=K!RRfG69qtQ~f7%XI0U(Cd=o3GB+yzL2LfxbCUXM&7 zh^&*_)3eFiT56QmsW_EMS+)lP0wN9FrFRpJEjXOHO(|LY% zJ$Er@2_g`Y(UZyG(Z;YY>(jGqDk}gO9P7iNH=N+6(! zAf~B7SEs$)71O-e(?s`|7i{`hH&ar|-)E(;u3PcXBbHHt&*O+BNGz#>fq{OW0Sj1* zz+!FE?un=r)8v>~uT~B%d|Hk8su2_)-*eh3}=9{J{qVQ65HNsM-E} zD)PT&0Fp#oCmKPe`uya$KO9<8snM+iD+F2>bp_7ly`IVYNW|J)ou4I&*0OAvX9>4^ z8UE(8my~F|y?f#G>$hj`zW*sj)zoe49Gc|(?9}u#$JGjsVvr(i&}nu^Fgw~ zhYu%d-kZ%UVCO$T1_adFBwOplK|h%n#r56Nvb4&aSLA%CBZyBxBH`a+K0=Z3=MY*x zUm8F}KoC(F2w~9go8AbOPWt2Cctb1o=Jng-vn$j_08kkbaLh^(0BAx&YB=0)25qtW0WeVq$5d={P z93mhv`8Vi06W>$>L?;2a#7-Fy#UHl-Ry>ju-^<3T>~PrLPywV(Fx+5`_$q_WG<$Jzp%Frdk##LPQ2>w6!^1 z6m`|8BwZF2vaAjJ1Gc;4-qTM%+WqG9%Jhz}?xyFLc5&a-6@gCr!={*`bFOK2UVMCU zeh!WSNvWi)nr42V3zv@TWiffQL9W$Fnx%=+zFPwV5Co%%0WYp*Wz~$wBcq80Gq4%5 zAc_Rwr?`W>q1glS9dkG<9{w>P0@kFzeShBy5Yn=RvM5O4yk#+&20$h}FY(mOBZ-PPi{(RXFl^w#bg_2&5Q?B*U?*HonI+DTQnu z{?McTki9(`0zgn5x(@9mFsxoZ5)05>l~BAQ-@SBv4Lh=AB9ea>s63nF z3to5Ja8=Xr0bB{EhyYM1G_Zko3f)vFi6{Zl#oM}~f&$JISd|{s5D62bso&Q%r+Gq( z<@C+#FMs=&e>gn{hH5dNOx8-!SI0-c`Qpp>?+$IXTpRRpIGP_HjCOWjy?l~yZM1pz z9Zey|Lw*3E!p8{GP<~$KG|I-1OZ|c05V!{k9)JN!O`jTVE^okPxo5VmyPb{oG|;o z7XcV4WOtv)5D-=gvvf>I2_Q*;SmGE2^VG<6j_hnXhtXO#SS!n-D5^BAlz?lY7MtdI zwJh}@=e8Ar|Ma&%yg!`enV#3>?M>Oti(XG#QB7UG`MYm{1x42S`R=n_=h!Gfc1kOR z#)9?apP+9RJZ2B%1w{VNKL!G&L$TNK5P}s@R}VY^8lh6;1_I^b2#ACNH3Nvq-3jZc z89)~Fr%@1nf>)~x>hK6gmLb1=?p>MVfJ`Th(v^><7y*4>Z^w@ z9}0m5B1asGgv8D}Kt&AgN@#Oqo$-(J?~)KuLg&q0uMa?;^A!{!VMCCnM$)tf5@V{i zE$*g+^$iB8K}si1C9|@+JHOc5-OY{3ZT-ol_sut-XM+qTo2M0i``zK`PjB5~c5{5x z8;r`TMiJ-Qs$4b>>bfOk&OW@^+}c{)Pe=WHQ7(F5zx?L27r*{0U7tMth)r+$H*c2GoukmkPsAw#LjPY|()F z{_p=`bA7lq$Tu>z`+Rrji%-TcUz}Y}kM>V)j!&d2H1gf$#iQ-rWm$rVPR#Z3QGdKq zx0ao&mh;hQoTPcuv>$DZ+S%3Gr!S_M{_b!7(93#_?!W%&1DpKp^kT87TE_wmAi%x3>m~#-sfcW^t%bZF28?U53bLiJ*v&Ew2)YhzNsdakB=dtN?_VQ3Mc$8JM@$ zC!SnLOlqCeNiMcQkVRE5XY<+Z{Qj;k?#t`5ySuCDo9}=j-=LH zCD10+rV6$v>kX4@TgO&F%9;{FrN~wd0EZ65e>O4H9?&3w08CwzARXZ!*-Q|M?LnYQ zd?A-m;(fOoBNAer355?Sq*0)N{ef}SF8FFe5k&ZM+Cd}ege8Bw!*78QFd$Q>Sz$QS z5c_~YS^@(y1WK2@)Q2570Z)Gsfe&bZTL?Q+sXGzAg^jQl;Q^P1K%fEv6}T%U{*3}* z=t&Sjg@Z@p#*+zVeFVO`zNnXFYIM^y1VAQd!7T45~eAW=Jl(WyW5|?;*G8S zo8=GR{+y>7K`Y`K>qG!G5vkUpI8KyqrnfIY{v*)$y}D` zB=E&39VzO2N8lhA2mz45`lR>wuctLCK@i~pkwmmY6e|KqB$iE@6A=U4UR^9MPm8OI z_U2rb)Ar^P7WXi_tf%L$wWPH+Dos57CdaO= zO8}%G%1FFopXo#*Yx#f>r0xMiF4COr?@{tG6(>HMbgZ)po+2~=YSn4(&O>%<@xsG zP35ez%~~&in!%rZ{mF1+gGcL&Wbo$0$>si0yIhvjMXFMrrOUdi>lT&1JlWrU@zRMP zQj+)cysrSqxla4~=IHQ~=i5)d{(>Iw92{R|$}Dbfc6T>sX9ttXx?{Y)pIu(h-o8Ig z()4~-1VUeYb3?;k_IP8MrTXyjvTiI96*^zA$E*V6c`b<@0D|~v2v0KXr$fjQL*agS+AcBducyUheOGAcp*~tk%{$%0>!6u-x~W4K7cQYWc`B%m_nk5R{^L_(OLfNaB&A z=VfPi_v5uSuG`ckt&;{+iR$F=a6IVkY>c0;^_~rqmtTGQ8nr1S=y^-G*VlJTYgu%9 z+v*mTh&(Vy#I7&!>wyv_WGDFlzPT?fv4Ai~d?3b{ASi&aut{@d(F&DV#g^DQ*8n?h zv{qyi4TL}jRpJn}NtM<}#3BqRNVRj!wyG+kL=cKn(k#)W%K3bip2FpZY|qGmh@v5+ zL|h4BLA9hv(5Ilq#KCn5c%l-vI zsTG3Qh62Zo6S{M?axak}06FkR2QPbjJ-0iD9XN^nW`HZGp}Pw7h^6yFfS>{-idZga zi=p|(t|mZ`{vHVEQ6LPWv5$|ob%~~YJT|=nq}ly+>guLy-P_;&-S(*e>ecSEKm7`} zwoc~lkFWQ+v0&TET4vD%v&AidFgp=()+R=!{r>XywkYdjwy2BZs#wj zzy8HdVSoPq9W9rG%$#3duRnY2(gc92qDlK3Rm)2Y-~R3ImzLV5y}Fz-0F#n{-Y89y z$Lsx#QF8F^psZRZJ;!8jNxUK!8$$vS5T`n~R&0_*ZfpF*Nih@c{JDtgkN-uFnN(sx z>t$tC-cRyer+L%bs<90Iw&}8LM47U6MPm!=D$BLAjT7tG*|sisj#_(yaM7#iFVgneD0Yo}oP$8<|DnJ$JU@r^_VW4FY zP`r01;{Hx?3x1!NHABF8dARFIV$?>D9B4q*6$%1I6ouTenE=FINJfRA(T8$$GXyJ< z1T$Qu^8@w+RQ}2_cDg}GKu6#Z;u(u9XFRoC^mmRT!j&%~&<@n;&8%p8e!0H6(OOB; zBqiL2`jbg-_sLFCmTRAWI!#C4y+42Z{oCcu&Gq?3*6)+1qOgF<I?Ju$xm-Sa8-$b6BMG$i&HYWOVZl9+w-#*pL|A5 zOLe=b5E#mpfFJU6g4mKw>1_7 z=!xxND*)dfmiuL2kVK%U+GySirXds&29u=h+;Um9t!?T`95b_R8UbvYT00?IlWVm& zjiQB9fJ|YcRHjv)nO-k7go8m(1e$W8dc(SHip3(_bs&PMP2wtNM~zcdP;-D{79$Dp z_kj-w#Pdh~#3Lax`3e&=T|_?opq=%G&=n?<=%5S@ciX{0H`P>00Ak8o>GwLc#A}Spl+jQD*z_xpdBCqD(_+;Wa0YY9)uQ;yoJSBJ_ck<`nF9h=2^}JelLM z4M)7>@f83fDnSxd6kgYLbQgd_WB~Th&{4yP8UO%XP{9H#Op#oQ927oOlL5Pf?Un3s zR+$yyys@+Mvyb;4KieF^SBsa&${WKwk#e7LZ zIv0=Lau;^Of3Mui6&Jo8SK7hnliQQQuCN*4mK9Q2|hzCOcchG^L}HtDZ;SbsWO-VwC46wGf@%+;-5W#4({q)H%|NUQY zK79(nn|boz{x`q;#jkb%#0hYqn$USWE8uuzqd)1Hq^Fe#OWRZ_wTM(q@07P|P)BY) z5Syar?=9YlOyXrJ1>Q6Kfa^d&5+cx@nCdG@G$i|Qv?!pYvxfoU%638CHt1&$kUOXq z9TXTn&y2u;>@}kfZ3PYj)2pNN+k=CYP@_uIlvxJ7G|BSo^YgqnkhaCTNVLMVcXf8M@n{Q4nbeFkJ=S=) z|8DZ^Ic;wJ{PyJX__Aq)8&N1|OjDM|C{U^exIRAK+J5Y2(?_YwQhYfQ1EsMXW&CGK&LYU?u1Xg%KAXaKX((3n&iGud9#8URq3 zS%5{j8#MqJ4)VG|;HG6@5pZp*a}j8oy7M_o@F{v=z=WNJDfrMhSm7m32%rQOC@`7m z!&fl0uz}Px-dgNgR03R;4tfwH*r5Z8l?YbE!D_mKfw()XxN4n!8ny&1C`_)i98ieM zV4Z;IyY^S?u^)Eu4FP~9fI#u883dFcq&`0)6OTcFh|$u4fZnGB=(&FsMCYYM00Cm( z-uc=>fEea-Fqni8K!c3Ye)W9wH-GhKXS1Tshex;7Pd^=B9UNmZ8*fdnPtUe@cd~xM zh#-_`EjlS@MQ=EEgeEbL)O^0!SYI1vCfB;>+80~Hzxa3m`fgs$Dq7s#p{p;B_MJ)% z83(fe?(KMccUiM-*gDzW-reXYn|oW6r%&!?<$9jwNj4r181U+LI<4&f$wdQHRt69f42_?uP#pn4($!0TU>XhMN5PJ(K!ygM ze(|Ee_t@+{IlZ`D+|HnGTE@0+w8E2vgJHj?l+MP3N*D=MnjF3Tar?<*?2pf`ZmhL6 z)8XqkJ6oHNGJ3qbK60T@J)Av7@tnY5`r}L_f-7pe~K(C)a-x(v@{eyFE+tK>) zbOFo~nG$bg6ae99qeQ^Il8-hM@w_Pl0l4Ly+FEgCz><_23QY`bP2N|e0Kf^PS>86S zYaIwW0q120B=GZH68-`d5kPKLHW*}No6JHSh0He>3NUK1-Xk5S2;!^b14Y_Lyhnq92#U%D1$-626|JO? zNGb$y7^H9t?FVA0P!4IS^sS{2r?*G1-%D#jT)(H&)Cd_wQ2qRT|3jK3NVKeK*IH6! znd@a?bf#67+H%-42XEd$UGF}7oIibbHml#i**`lx?2U#ZKp;t;70VLR%mOsRIig}2 z0(>;-J^N^xEQ;l9exLNmb=@u+_x|0{#eFHLude5UfjVTiTG7^8 z|LN}J@cqGj(Sm}hn7P$H61$=-5Y2J^zzcl5J0=h(B7j;cKtD*VkWguZMKyf@03ZNK zL_t&oq>xnWxGWZ4MQ~2ENv&J7ZOej<696!Ze5vse=mD)S?0{_5vTYjcL>w~_2t!>} zO%2@~3E)G+LO0t*008772oLid5(fFm+v^E}kP~Co8)H?Reo`y7HBteQqKQN}28}n+ zC=jzoH%Qfim!L98b^lUuNZ_m&3 zJg@79jA0!@nraAsTS@@S;@ zp@X&{Ade?H!(bdIrF4>#R;UyyO-d0dR7q3UP21FUBOs+i(229Iwag+*>uMGv@*2HA zZyd-(6aZ#hF^C0&&WTudt_1-`Yn`j2l!FXlg{@=DzQyaF8H6FCNZOs_r64I-8+H=ar2H z6D6Q^VZV@b8a?{-#geky`)avpmqj@lk9C^fonHcwb*{Ejx7D!U&ydt$aJ>KFm%sWK>yI|i zX3MM7>*t^RLI~Ts1q7X^_vcHUq`6i*{r+cPeL4gE;mr@DUwv_Ld2Q>#-tI&ZI!`Do zJsf0DpRWJYcgG)&Za#iG0n&F>`KaI7$2>h2Y`b0yO*Q0sGMl#`poox^rzZfw36qGG zRwv0~HoH4N7Xj6ER7HB%$*#{G2cG)4~GfpV4D*J4DE0HIiRdY>xko-VF2aLO89VSJv8E8W@hM+ z48)EM(N7a~lVuo`5cGz*ZWjOo0P2`qe6e&st-CM-5MMAnhQj=2=(QhA;5_tNA*g@< zZ@y{kRvXpm^!Vx?tgvm+XsDX;)}zI2s*`NKtOU?9wTs20kDe{dC6cO_OQQ{=F0L+K z?mb@bso~Szdomy19E}FOd08%I^R_4up`I7JAAf#vdhBeglYBB>Yszv&ytlV=HJy&0 zzBqpUPHelF&rv5_ml~-BeQ|y|7z~Q5t1rL)G~L>$RR8$!pt)ZT27__W)K$|TWT9PS zM#R+Urgg7he|Y}tBb}&vK7TYYDi~qC8{&b%T|fX1ubZ2tbpY1#<@CO7TiZGjcCB^J z2|JYzmy0E{698wMqO7gux@ftnLFnkVI+?ZSr&rF}*0#=Z+qSK38*AIDdiT@M=cgCf zr8s^BdP-ndRdLwTrx#$Y80GB}0CS}-Qtr~(J?I3Xf1biRUaX1nU1 zY3g3e7n5#W#*fD!qF;96BU=F?0tcT`7^vr9B2c@God>E2C3*fCwU?qMFGzLgKQ_l(r>-G|ev0&enz_QAtr1Rb4G_?@|S` z`@3G6I8m77CP~)vv`11e7j09mefIgarFX9n>igO3W|sGIC)iqx0-z)@Xc?fcwzoEq zKkPr=-g!J3KmYR6wI_Smm)9U{t({(;=2>PLYNVU<)8TlSxq5vvbiL92vbsAx9j@=( z%oZ0n_eW<}f>_n9#9a`AXcDurvyQ#qx8J_C7MvqSu;k||<$;70{;60#f6^lm5>SLB zTsM}T6=qVz0OEwW1)_SnC>Qt5a^Buu7N!AN?!H|&mm9ssxG&>Aje4mDtHg2`BMeH9V4&#z z_6YQo?~$e?ArM6%LN67n#Z1VKmvA`mO!&=f?MHiBPL;3JhV z8Y*Ztg%cY9Aja5|`T_Qs&R1jf{zHolPnbvZ{;gozB>)w1kGKBwO3B7m3lk^$DXzK* z)}U3Pz^;CF!D zJ=s<4z_}j6^R?b@e*5b}u!QvL^io-;j5$9&N|eepy0!(xBu&rWz24e+GR(97C|k~F z^$1ZCnm`kmsdUQo<4hK0e*ge zSVDSoadR^*oMS%>k3xj1gzSE4PYzCnm5QiuHS!ui{BET6*>;|R0}(>(XQ}cX8(`S6 zL+F|^O^jgpkco(t0;NQV1ss4NIRMM-2M-icP}7_RVFJ-ad7Aat23D}KH3%!E5@WQ{ zS{qH;D3d4I=K45M)D-s!=s7-sNW*&~C9v`s(>G9HGrj7kJfY`3%)#>%bmTB3@L)Mg zw1kExb=BYkpb`~021G$(R1!91NqlmS&qf@Z&Og#GI%}$@9idxxp&nW@eCI+P_lo#% zj|^v>9MY_1?(K&;axdcIo%YB@x2fD!-Fg1&uXs>0w|@*)`}n^*kX=78z)ygG5_bU9wXInm}q)CF^vNuGX z=GIyuByJO}G${lSP)J6Qbds7hC!I2o6GWW?C8#n{DU%jTn36_R<)E;9U$yhXA%b%@ z$?`PKk}MaKwxpLVbIbDv*2X!CJw4bDSw38<^2>bU0xT6v8FvgLJXjIcO-6RKY8WPu zjWSSXt!XH-~Tp%n>@ra#+fhSnsBHM)uKoN3aL$LF@ax88XHwJOA90CClua@MXMnol? zn?x7|P-Q(QYIb>*YMrLZ_0h@WPd~qAnZ*Ej<&wl#ht8YHkM1L)@iZvwT#9+QY`iIv3Z9}-|BVeb4vz9JC7Xps8*nP`=yi86^+3Qg+Ru^>7j zt~H`Ci*Qp{tz%#Yu91j{*tQ_-g9HJ+wSuDM-sf^ss;z6sB2KKe%VM6Sc`;ikLZcKB zwpEc1J~l*`C&%mGFoX6V9w4hQ(k=kndz~eOnkCS(+T1B9N{FFrZR0RRT!h+%8N_=K z{w2~!zD-hIVHNOBsK9S_Jt!iDL>Ic%oX_lSCA1@)VTmxDxzO{^I$X*P`t*67)B$oW0sUB!)ZllA(2){FdQ0gYfyT* zSh%99$`;#pkmqGpDP+r5D^ji1cR+b>$rB-Z0m&HAuev=F4f(&I&iZxSEW6=O;%Fkee2Odi^o8^s_wC>f+tI zM<2hum@ewud##PvTCL;DtIO%#U9RX?|ME}s(b(jf164D%&H)iBO{A^$GrnSdGbMn+ znpsu@P+cStfH*-U@8S|tgi0eB7EmT{s!ACH%;ft+LZwI(LbXKOXkY_QxjH3C4Q7e- z6eQ$QZ8HO@p)`eFPN`8IS2zL74nRcOBu%+lrp9E(q$V**Mu@#Zo)|s7IZM#`IRO$y zVRqZ+P!?dnG1uFG8CRYj0Ek&_wPm#1Nr+)6i#lH7{=)257@L+H(t2n8q9?-~s z`)BY|c}yQI_llxlgFq|M(XTIpENB6ogjFb>p$aQ_MZ9oktrERU^D;o3jsZ zx1PVaJ2@S3yR|j$KY4sp%XCq0FdJ=ZE7rMI81t+y@B3>bD}Y&E746l*$;;0_e|>k0 zRr&PUHg2rnA78nuPPA&9`uzQy$>tU$rh)$D$x)JLJ!#ijMBd45r37 zgAuk0Rds2UN>F+GL7r!Mp0KmR(ApLdbebE|%uZ`fC_oxfSQxz$Mnt5nV{2O=BBZiu zNvX6yWP8l0P^7KOM3Ev)l-hcRE5^>FM?T)!|`p*tcXBvjUx4-`TS|wW6kH z$4~bjWo-98|CsxUt8G&@WmVi=947sKC3tgkxVOFY$%|*NzWVHN{}{PNLLxz`N~cMd8)Fbr8$B2d z`u#yK&-!^kOLUf`nKnt1W@(ygtqFmx(V9R#dG(1R0zhMwRwTfQHi=HtBZJXoz0x?x;tNI`b(Ha4$z)UH-f2WNA1r+HGu zqY(wf7|vVQ4|s{oXHd#Ab%;^munN5j!LGTP+WkyZlatYrl8t3m)<+e#zQa;SshAYcq3FF*S1 zs=Bosq)k4Y^!nqrSOm^p#9FqFo3tX2{e8*1OPx( zhiN1@?nO`}F6N9YbYff683#}t35Oj*tFg)8P*{N)>BjNNOG^RlM}I_MHa&|k5Og;X z^vh3tYwL;86~QWAjtIF{Fpd=02eZ~B9tQ~kz5Q&)+|8sayfzx?daetEsL z@82FT?`|Bo0+J2-R~P5&lZhzJO=Ad>e%_Ee`S7kkSreo_!qY+e+kf*{SF`2iv|x5^ z+mcovetMlG1`<;u9lif~`|yP&Y$th}D7^JWY`}9Td)-Zd#gGkssOvA>43T|_>ltjhB1s5p}0jPvgX~K zcv!{X?Pg{_(GuOu5}5MnVR1#m*&ke_4 z^u`T8>cxNz#6issY!5sHOYti>!u|*X@_&a6PaQuLmkT44muh_D)b&db7B7;J<~Wli zq-%iY@^XDLUff)zC?hU6pFYmFA0J)ZDRAf-RW1{vwv|*VG1>I`YOU9|gMo8aDPuvM zzJ2}GU;b5{o;41_%*p}0~tyg=l zDeJ1BzU~$m3V3s}LVs9+Bz&bn9Gvtf0AK{<@Z~O{1)$a3n12$W2cu*hdGUXKK+tvl zayRuN@dS25v=W5iIKdy+93dzG4xMf{dl@7+&yD&GMLL?8JbaP|!^d5nCRkaOx+lR0 zTe;w$6`u%qC=T*>d$5@I&h|ckA(QoYho=`8 z=eMWlgY|V%3T@jmSI$wI?tlN|qsQB6FBhHE4Kr$&kL$%^XWV=G@iV=#_4mL3>GJqA zNe6c~cfvw|gSCxB>BY@;%B{}RlQ(ZScOK!|W*`bo{y`pkS6}|0OSxsNt}n9N1e40y`AUXFkn$G3i!c zjv@5G&f~K_#J$ZBXMJoO#|flVWV#4Ii+50a6E(8W1l`VE4`YK>TkyeG$9NTmR))Cl zmjKDNmHW|Ovme&Wz<3T>3-;aBJHCi)SDz2#)OWV|K z>zdiZWIg9Bal776j8RA5eZMvt!`kNl=}mceySzFd_VR{ZQ504r%X=3GM=w76vY(iB z1#4@=!r{T&_c_60UWiH@3#R$S@kwty9-8EnPd=U%?cuxQ@gQ&7k{#dPUf&s8TUQEQlBXW3^fLjr_p>R+r4fj(gDtXJn?~KJZsbq=BIdXq1s?CRko2#JnE36g{g$n1p zTM08RKKh^p(Bi6V(@TdMyUD7Kw(HK_CFXm;V_DIfMOlz zN`17wnQv^LoK5cvIXStS-ONyD_qTJa((B`6ZPG?(Et=`gmEpEOSwB5IoNR3%Y7&?v z`o%E&^}qh@`?H&q%jxX;))=C!cX@n{n3gRstJVq^ZP_2@ZR?&sdGzGdm&-<$_p>B7 zr~B`>|39|gq{)sfyYoB4z3%?TcrgKi8Hq#=RmG|zi^XD-Et$!zTfOb2Hrn;)&{C$4 zppCwOOx6pTOeV87ZPa9&C?i!Qi&e>-kVqgAh(OE{Z*=#2&e7uD>;6)bRasSL0trOm zx!-$+|Nr-Y^bnk@#h@&oeDtvgJ^biNLypSIF)c364<9^2)#YMoK%#0AKdH3tFPw{U z87fLHz9J@wn)XtOnAIUI4Ur3%hh@=5Z@^@xfLKju>`V5QbL|{1Ho9DSfvc*e!PjAOuM_*#(Yui{R7^MIA%}3UwhJ zon zIDh@!a6DRy-re3le)haz3hRYxwEc>3&IvM@Rm2Pm*ai?p0ab_zc@SAJTW@~)n*rmt zA=bKtB>+MOBr#I}CSUrpa2|=7s4Pm)PC}zeX(ZyQOoE@K5TL zlF0*$mQTxw2v4$RaFk{y1f3?i7o>6a*+c~!=VdKtQk~`AI4;PP(!10LjG<9iUtt#j zkglv4^2KPJk*R1%h%U;%JCzY8dpqTwUFX&3tq{%p3I8ZWhm;_1jgyj_m=L`SO*_!` z=;;wnC+|OeSg$uc@aVA#VPk$BY%m>P*ScOTt!}54-@A8EQ+YdIK{0&u&tE=ycyxbM zJo@BWJ(<0Fd)nOI4F;o4)2^3u29S0$^scNb1|5_<9u)KQ_rt^c$0rx_tJ{mSYkcn;>NJ@aWO~$Iplekwk?MRRvW6ap-J+ zZ^+D{U4wI)0u(jI!%#1ivCd^hpxG-596d7;zZKJ04M0s*8);h!M1){!+DcGWVn(7S zv~f4phG4`&tgV~R_AcwnjkIN#{|>szSCrm+BO+O|>Tot=p%R<+QoBUsI^ z0Yet&u#qMpWY+&$T96TJkG;1@fL&aYVjNdSX`KQZ8+Cb&ed`VyJ8#qKjh#^bavzwdCEK5)TRwPNf=)CU52>HQI%YZoxE9>tpa}i^(l4a0&j$ZB4 zKcWjXKlZ5E1KH(3ZnZnug{Jh$IRr#vYCvXIRfYNT`er_@xEPh|o4cy2JOZHwn@%g8gb1O>#! zd}-|KroMRn&F8=Vr5hCN7yuYpB~1+&j1hN6#nHW)E1fruRwc{3%{2W@MNkqIaKeaV zqNL=jvEFR@X`&h=gs34RLAv%%XL$Fx48P?(^VcvH<)AOwmOwAGyqXM@&J%PZ@)8wc1bW` z1jw+(){iGaT9;+4es>0A%399#LgoVXnJ;O`N_qd4S9Nh}WcKf~001BWNkllgBk6o-;hPmhNKpA8F2OD@m=)?<@I4+d=M=4>gM?B=au9t}9)@942 zPiY8|8zw>%1a*ict+Um%EK26dY;yX;52Mkre!ivHW#DXu2 z+0cFV^66r|Sp&X5IcuBR&?Ly)FTQyB>C0*~3W%$^xj1`2oetb+yt+8weQ@utZD`Yo zD7%7~Pu`ubR&|B2T&}EM4~K5|`J?Z?{#IHmha)Qd)#=;EPoErC{{DlZT_>!h9pkaiO}KL!NEs%a_PY7i6H zg43942Dw=fY1@DR#n71_TwmWf_K)x1KN#(Vn@cqlFk;6{4haFmrXDyO6;8$KdQ}d* z)Jt?mV2nZlon1Yje3n&d7SpjiiM^$$Ak5g4T-fFEWlK4a*iYg+54_|X!~hi{Vvj60 z;+&yWuH)5Zk0NE#GG(__zog0mPntzU@lDf?ebq}ku-~#Jl0}-ck|7&`AzLbVu;blQ z4lE z$=T6t^6{^Jz9Bw-{qE-SoSY}K!DQ$30k)_|OS{TWF$T~ddmM2Qeb=Ww zfge+NvLYnZVKRYm4uF)HP=m1?@8&9rv#lFsyEtW>W0(H17<2{ zswySO{*VaQqtZQm_Uz5quSSE>>h`uE8_lMJ$#_r=E^k({s;k1!Dt9<3?!S0)v5{}S zezTdc*$tZIW`1>5Fjv#r`SJVVbgBwW-+ifdL#_Y-P;DEPHh5wK z5>r##Y{JF)&8Dt7r)FojT}CgbA z2xcNGW+60yi0BO{w%c`(RV&|Lfr|RVQ&A$aAMX-Ci7kh1ip(< zJewh?gBl|zJrS?EKria%o0Kphz0HeqT2}lyLa-$p?#ORM2nJir;#4lD+*OQeTF5zG zCFR9;972lFFYExc)SafC^(=Fk9fBu}j`alOLZA%xa$p|8Q`fv80r=z^%RO%1M-ZeY zBUXNL}7h?uyc9&R>M%}82ax_@(z2nzpiD&?zfF5mc=m!OQhcupq)oMJfcBUgg z7}Xo~j607X{NcC%2)DNf1Go3d%Nz7J*EhcKZ(qF{jmN>Xo!^$8z~SxX<Lz7^3QAHW^EEcz}UO1AKtlYM?_}32&AOrypM~>v1(*ZtBfy!_}~G#jq?7 zrV{|XTZRws-dvo0*nj*ye!LEih@+erBq8zs=v@2=X(yX*uX;^Esf_6h; z^}|2@y>p0!=O<^5a5yXh;b1h_uYBQ)q9{vWc<0(iJ;A}j48iKxS^|;%xt5Z|rz~Hq^o|*Bfc(rV33c zOMiWJF&+>0M_hS&|J^qS`;&Q7pS(Rj`*6Ovy(_DsmE*JbKkV)AK7RP%{>RT(>sAb| zPv0CI>}fjQW6f>B)XZ45ELp*t&5|7_lTdO-AOjjj%5b8Klq!GmavJB=P187EXkz=t z6%!8zqiQg!hSO>|E{n1(t6?=Pi$Pfoyel0$=PKt)=L=U<-VeAaj5z=grqjt}sHVqn zUMrGt!AP7^b3qNnEQkUSn9OFQK~aF|X#YNk&HU^%j==i__^ju&q^HO1R3tpME-f`TXSa^5)`f=idEbFd7Z3-2fl_?v>A7I7QTmxixB zyKHRF1#24bbMh!tX1in`Wj^yQMeTKj)UF&tiUBi5Xk^9)2&$>LRTC-O&F9bekM{7R zrw3)_7FSnQ8;*9zlgAI=onMEx<;u0DLaqrI%+AlxXVVEgs;X+Xvs0GUVpE@d^X1-0 zFW!H+Mn&iS)%&xeEZ2aSSJ%a0e06f}20KG8?!9=?8m;R(1PN_(^x*M&e#eWul4-fB zFRt&L+G=rIl$DwO@cNYknkpd~k*HEKr&{3|5koB1BLOPUJz*=FJvOfa!J&NeaD)Kk z(GX3CJG<;$8^UI@0W(zqGa@7cFc7gIB4%PDaWK@2&ikQ?f$i??%=UIb&3i7Z$>r%8 zAYQIEE9J5pRmGt4MOhS^x@FSe{U86=VE<56Lu-YnoA>W9t$Xsi>c_ss4jUS4KBR7@ zfdst@CyzC)_o1X;p>L)WQ8B@RG}_^_4w*V~L>D;_FPNmd$(H&&QjKN+%rfaD=Fvof z*G`rfCrgM1C>%HW;3*&d`8AVnVvoJXDPpC$^Zf&vky%C?ahE2U)_9a7Svv}77bQmh z5(NA61yGGtNzFx9waRSh_9yb>;kaZQdz?LaG+(!&wY$@^!~KIm{`~AJtX3tV_`$2+ ze=!>Gn40r`XEOTy`IFJ%(fR3heYN!76Z5zK{6*nBGgsar=!eToA2vsyz4+Zf{Ql(i z>vA+D13%t*_v&jJjjUe%JLnFcdc6+|>MH4_N{O6hMg;-}*^Bo+rj5f=ys zFeosD#;lD~zv;-E^A>l~7FnWZrbM2>ruzpWv?_9OaXYH2`Rx^@VBKEal3`SsDi%l& zLbf+{QL2WKDB6?Yw(+B#z972!W0-|JSy5{yh%9 zk5|Sm^=Zt=>e3_(!BkWNXoxlpukvW(|M(ZrhWnGd)f$`i!NjX~(ipnx=Hj+eIXv2< z(ct*?n~H2WDgkW5@ZuMrLFL!YI!Fks8WD-H0I7=7gH;&rjf%VZe9;#3>l??wXjl}= zbn@!kk6(N=9*sj$y#4y?Vc|BbbzL`AIb>IicMeQ~A+*6nHF+Hg3DJ9}s;#IJidrUN z0|H1FlB+4{hs?lWHu8Yx86D%zujZOio@!Td3wJwe6^wt{A$ ztNi1CQ*2&V0WkrC#o$1*go?xG!rPODX6j;gH0rET591-epOm+RyuYP%Ue%l5!ba%_us%};{mq!Qt zpZ(EKi3tHLNKq79F<8+TLIh-FZMIP;Y{!>Fx8#q9qX%<{%YM>F2o9z&}`C@%{ap_0H!(sWLqH#6Y z8I5;FGtAgIvq*7VURq|i$dviBDNeJsT-iEv;$UC}VtP8blQXqkZ$@-1)c;v3^~g_A}!1};Urrj8=5 z7m^=8{R+61hDlvUKre9Z_`Q^8JSj$!8OQ-J5E;5`k0AMH=Etw zt+Wki$H%^!%vWple!gD6fAjr#HW-h}hmQ_nIQ-%5@nm=a6cqvj~#1O1s zGQtkU94mV?M_Hhsg$Xe)EPjJgo0KO~{p*VOV+U7P%cSnNrvn*d%ogBuv836NMGu6* zR`u9tU}AQ?b%+$}{K&SIo(vY3cSNG9h(=_lo^5wj?i70TV0LwVwR^Bv4hQ4$a5^0g zN7cG%Pv86iqsb4)AFSE5p;;~$yR#`FS`;UM2`Q3bZeRWf^yMFin(bE^ZoLem1eayUA=e@~Wov)R<7t()fH!NZ%=H*S2;050nKcD1^m&#&)p z)vRK)&1Ua#*Oe84?oOs84TkmBO>O-VoEw^Gi%g0g$}Y4dC9m5NA0t{gw3Q5zM_z_X&5Ur1zGNYp5hT;zr8{w8HAe9AiI3*gF`4*C@H@k){ z@h&mTV8|?(21_E03ET6d$-(|`R1WG*qb9y|(_#7Z&tH80o8K(vi}kX;x>_KjF&}^R z<-^Ah!EA4T7j=E|`i&b5-e26*t989xzW@IF+5SF|D++&cdNT6Gy^o*2`s%ycY-S4M z>G<~ca<;cKo(%4P^jy1`XahtN31DUz`C#z^2SpNyyS?cA03kDkZfS1aM%~OY76rvo zPht)O8Wo@lSxZ_?`$#AQTmEvFioqh*>ltb?>cl1)K1{?S$-pT9U77puLU zL0J?{-TL)<_tE`#=O35|*y@|BgZ&-w{`|w4cO?>Sf=!(JlfV4Uhl@)LVZEt~qMYpR z9^E@A%K>`6dVh@09lt+iqPx@gyZd_pP)??>nm_!>Prmr(yW7jl@$R9Ssi`UiAxe3f zsm4(-)eMNu&wRYvH0}NSDCkJga!kx@NW^TaK-4zP#1m`yH~-~d+#e4f&UW?(<%98X zIv5}`vaiMJ&`w6fglr{;L`6BAOm{#2M zhPpuDJmZhKs7Y8BTOC7+S~R2pDYVqGz_M#QEia%l%{S?>8Nl^}_?X!Wjx7yLJK8$u zgvox6-&J1Fi!X9huapRl7PC|>8eUU5)Cb#8QvLLJb_6}#eGemGjIS-*(&1XAP zsW`5*msbAEbsu=D1d zS3KSO_Mg9;I``S1{rPvl|9e8T$lW$ogUB9;%|0`cCV`^HK&{S44H&IM@iv#(6BEZ? znaCNaYA8|v?SJ;X9Jtxu@ag@LVo`ZU2yf4p|NejZkAkQwN4wJzaU7w=Q_MMbj`#L= z_9}W+kKUYZ)Vx}|3EI}p?%w|8httqDAre2in9N2skpe$_aj53LdV6}kY|5gn!={36 zl$eRg=>U&a1X+%mgp5E;p+kW2Xzn?9Nkb;_NsK?=()Ko|7y&0zOjdDrkY!70zJ?fj z$awOtSymf&yD-UeQKN(aVnZPamcv~Dfgogm{&p-)hcCjO3Z0i6mW-NN-qEM2ri2g! zvknr0lop^->4Vf8=_6Gj{aQc*3B4``K}|JP$5DFm>z#3NbA2%`akRS=(5*KOJAd-cxA%{Z_D3a-#&6%Ay#Ds9*=)AIH#2Q- zu5aJIc|9uJ?!e8C?teJ`uwI5?!EQ1d52qXBF~BeW;!o#`B^s>OD+?+b-FvQX)8&O= zU>d0>JgTBVKcXf(HaKOQc>Lxi?hqp)PK6OgLQ--S)z$6Yy~C+TQ`LYr-YGYAJFe(2 zfBiF44MFeLO{)-8O-)TjL(^;)cXw~zol7j%Fc~by;*6V^2GuF6IEGE&~F$-kt5rH$IDT zO5<|j!SSC15|C!0C}G@)0mXlZBZ3}XA3)S2%wsE=yy}sjlIK4Jz=*<8bd%=))G1Qa zkcJS5yNV~Pl;dDGQc4-o7$vbT01z|-xdg~824p6pW3&s4p~bY!2%qDQPKwz$8v7{k zUHm4LP!R(_3l^d`B(3t44UlQET4_)Xf~Iksr%6z2qQ-<(iB4AsC)fU^d&Y_6}QQHZkwp%MbTHdi?h7F^awX$)~<5 zipg}fm{(;ref;?N!}(LwOXN0LroKRX6 zedMU}cxb7D8lox_nx*}}BE7#3^G$nmwYYb;R~oM?@Ok_kt1M)!v_y97PX;z@i+STm;cp& z^Wwkwcg5i+Sd1(a?0VsEf()7xD5=GzY|4+oZq^x_W{r(sh7G3R12i-T-TV=VKoFIX za(qiv$_ao6QSwn$9 znzKPbQ+v%(#%#dRiV(-OnRwU{B4cUh@~R|evv$$jmg8nqjYtgOonvxQSRNIxiV(mg zHo|HcS~l~8L8A)HW~e5j3Wg!d{x}ga*dal?J1Ixw!QEmxoebSz0EQ*g!OqCdX6vs* z;dshu%iAl8uqr?eW~vFY1Q4V(fFPn^DryFn(qXLgMHzxnyfHfpW*WCA;WQv2KD@v8 z;rOzu3WqQmmWU1jtI?n=N(k++tm?W3_6X?NQ9j_>rge@!dikuZJb*Hycf48L`Knw7 ztVJ7%=7s1wp?B}D#FTA~gURsWPs`m0{rsn+9isu6Qa=WYo1|>t*`fhuyBHbe&}jr9 zickwz$XgyfelE34V_^w?K2B8x?wskLv*Qc*-iuq4HXU8 zlu)9)PLY(X^E6`@*_+=mp~&Qd+?s1NZBo9SVrOJ2R#lNSrgnGe>5fhpg?=56mpfi0 z0#bC&4#wO49M=xGJTAW|* z3q9*zdDzx~z~<$&22 z#p#Ee4L7MePFF*EW<;!wCzXnq?;nEw5peYD|GBYAHi#q}q0~3Kx3TKFbA&Vt? zWB~xjjxs++(d9TO{o(zY5+mW!v!jd4TV$>rvnxVq9zK0a>@1@Fx?E}i1Z&%NzG*+4 zovW&esRANuXiv{>5P>4ol-ZHHxx72QTnJYo7_3(vt}_nkFlm4z78AKw|98(jQRmuC za0|*{pO~)I-3iI)-eo30mvez&6oXFVUMcmmTe}8B6pFadob8^ciE*$)@urH3+ngL0 zzgCWdJx-ApoCXP4)8!Nzi&CpCJ8t*$eIke(@jaT_yAd4 zILB#jcSm%eR9u1hDj079)IsCNBk}tqPNENDu!JE{FhtfwlUEZpGeoBbs)}l4hRlLM z5FYIhjvh`%*nITj(fz}{ayB}B_x}9&w5SHd={ShNaA#ewszEvQu=n!$$@?=iU$+6& z2IKLA`}gK&=YRZXzo^C~n$DMtb=_3Or~o>8^30dRsKxQj5%Z@}4*_5R(g-KXTddcj zltm?axw;8s+Ta*dFT{$Y5(Nkb)5-AW;#z^6Xj=#N4jGLI4Idrt`LgV|;?~m$2+YE| zK_Yezofp;Nc5M)>l4A=}p=;Pfouq}nib0k`%PBUjacZ3q`fIkFV z%IGftl)xdHCS^pPF-FNl))FIgeLL*Vc{8E`A0!g1u4Jq6=a!3))z{le| zi|@5R)e)3HbDfcwTb$xrx6Gf`VN8G!oe&%L`clJ=WP=PuX*gzP98U_$L$gj1m172> z&(6!N2&%zWtBpe>aGMsICOFI}ULs(w)mk+Lz!;PhgaG212Wr}?G%XsKSuhpT_}s;& zd0f!F!^vz|KK|(^D(WQMUR?}FLk7CKxg+P^ee-Ik9K87Hr*Gb#)yu{F{N(WdgViS7 z-rlu~&4Z)E0CN8RWLOP}+@=Z3+w-R%J$v%vaasB}P9&yO-A4$Vi@EJ+Aew-2*bO(J z6Qf05ZX9dpW`HmgR*>7aZPpDF9^5-vuN&1c+utjTl8_L&ESzH;kH%frHFi!}045^G zs-{7jrry+b-E2?-N-Lq>H0xDeuj+MOuRPOqe|Oz(3>*e8nve;qfT~CY<47L8#9AoMp(dqy2&mSCwwz25tQe2Rh1;1{ck{&$Uw*kke|vdh zqPJJq2ag_s_lEF~fAgOXpFh94zN;SPFi$iYvjLPPpI_doQ8B7~;S2~s4)*tE z(_!J#^u70|ni-gg7%_m8q)Z@Ucel~Sx*3*L>5D-%7?y+4V6>{+qTZfp<<{Cht6+WTditS_1=?XWo|*^ z@+rOnsEEP9K-JXDL_v*!R83>^NhC-CK+Ooks0<%{bW~RU{hPPb(P%K441Mw9`NNNX z`P1cMy_he&0Rlkn}E6E$SyM^Eovon0~_D6~Lr zBcFWovaXvLjh)kw@^1hrBB5zigNUlC0xnnU)02~{o7?Z+pZn1?ZRO0w`2L8e!wP~H zv;{AQek~K7fCk*j%P3Jods}=CfinV5!Ha-|0U_jS0e%F7*b)z7;yc7mS-e0%sY`)R zBNs%qUQQFklwww&88SctP$afom*q$Z6euYNGVebnnOd*(>1qD)OZNaylY=bheI(B@ zD!6_Z*4cl_qIazKWn`%{!T*aF3ES;jy2}`$EDCaN6J%XCCQ_gc2L%;XBdD5AF=VG^ z;5b&>))5fY(4x%`BnpV5#59LwW@WhUj@;*;9PJ%Wxo!6M#+$|R@Y&NJ-kprc6#-Vm zYE_5p)3e#Z!2s#;%jbj1pq{Ue?#Rt@675X}ZPPSuT{oMdv)N9uTcIlGa*fy{{rZMHYJVul zP(yFRibu6Y_;cLcVw+lWk{*K4I|{b4O#2n9B4~uH#~o}GT2P;=L5dE+CsQskTCt_2 zLjwmOfPo?%F`eeAu8c6YbXrGr4N%WPOmvEm@tmmUT961FCfU0O#H5nj- zNunR5JcwYRW@;8h@)0k$Y` zk;h(euGn+DN97G>rfRkf4SjAlbDQVctnJENB`H5C$sN zwn~<{!)d7w0M@p0csM&fKEGZxrg(k5D7{^OxH_K0@4r94+l1-3p!~*@QBJSpsFz~r zed)@oEURi*`l>3PJbB`XWU~ep%6I4h?aAR7tu>I&#%>869);|Ls6g6hpkU;KV>iRG z)ZJuRN8Gq{;c1K(Wmzdaa84w;kc|5;a4hN&P*!9Jg7=nSQdhdFvKO|zIs(_(tR;)*RZ+~T_;fI2XX$WGb zXqG)%&8$49(>ekaJOu zCjuduh#9%b?BLhG`iw#6%f+(U+^yHk^~w>~g7^1EBI1YRq~1))4wTJ`+QBYUsTWW8 zbo6E&4#u^sl`>ir^7^)I|dzU|cmyRw9F;*VHV}4={V!bt|@B5z!gD4rP$Zckz|ss9Loy5umHOpvy&5 z&aa1cRb@|@NrhS)B-CpP8zK<3&;}6IHlPS#blI2#WhRr>fq0NIeh@$ateMzo7#}@T zjeUWcYETmqm7peKCaR(q0E0n`5ZTI=x0f#;AAk4N-tGi696h)nG)#9Um1iJ3`TpD8 zo$0}3JU%!e=aIP;d;97eL>Fr?u@E=loYHD3fnzKNB7p)b<+d{KK{Q1{Mi>;NJ% z6+{%3O)HCyqVuobp3OH>2N2@F|Lxa*@h?9A%Rm3sFMs}#2lE9XV)Vzy(ppsOR@z{I z99!>Jf*K5~@_H52@b>z)@MYmE@2hoFhgL>IcYA&}#)iPozWxVJM1&mOwdG8Y%HYiC zjL)SaAORzIODf0|gql>UXb1t4as_)|NLoBa!30qkmKMcAJtCJ8JrKv_;HbDpbYvYY z(Tox~6!P{gK72XgHJ9QkmmAdK7J|j`k%VSC^q>CZ>1gPyVYPE~aDIAv`u!`Oj05@r zen@=(`I9%V->w&{!C+JrWz*ClggAKd$SRV$^62bh-$ z`l2Yy!h2s8Rpt2klY9Gn)1oNW>m?yF8X+`I+ca(AS>`v3bpvRZ$KQ7QAnZ-Jlo5rH z!vUa+Q_lm9Hl70c$AKW^uxTHoe51jIx;Y?fl*nU5pQlD4CJ-x9&c@3`bcze&Sj3~G zJt+bib!I}y!K$(RP)@ceBaFdBh!kzRg`tZg zxhRWBZAjuYDBHR=h!69(;5HZl8;L5v#pm5BL1`ssV&06bKj9r#Cgr=?Qx|JXnGg(-W z+q%)vdM0L$1V|!ppVzT??H}5WQ>#KRVZRxvLuQw9@`ak~7^?dX4vlsKV31Gdc88KE( zYNn=O79?!y4JCI-EWWL2+CTi&|Gow{D63&nO{deU8gABtriIzF2Yb@A9yV7WURy3< zjUu?b6R4&E(T|2e2!>6@WibH|Dq-Nf8$v`z={H=c$!L#?*aEbGnwb5m#xSEeav_b% z8jwsM1%xKAD=44EnnieNySwGGNmcXK%IY=pfBb7h|QJmxuT+@%yeQFMU&a`p>L>$AUIp2Q<;2@5QlM)n&P_sJH zz`C5EWM@jlTuNS!R1wi&=gkkNhetmesnsy1qMKTiUT9s>W5DYWi3K zDJGq0blejWNCQxKVl)Af!tp}Edk$RLy8i01V zBIwsC;9NvTu@f^EYs6x8*QlbHnpwSK_A%y4S^*b3<_u=&GIak=tiW5$OwW2pvsP)P#0@1|}@BZXp z{^sxg_U}7$P}=e4$C^}P!O&`u*tA4@P;^ULl4!;3^C)& zYxI>`iYNa5&HJ{g@9ySbe0z=Tq;1sVtrDfirYXugJ8uC*+V!ReLj`R$sDU)*oHz5E zz+WDp)vj!oSJx-6v|i6I-t8WJoQ#j40K^E2AqU;Xt}xl%_(yyFga)TL`~y*vo+&G#3FhvVU>bco2L zj38hFASxh=8kkfK+eS2)5xBxc)f5V^2~0|+MrO<$LWt{FQ8hvd7&SX;n35#KvKJQ( zB~oULF&Vl+qP$Q|3gkxz(*~%l{P!o<4~M&&*a84! z0STZ0oV4aZV8LnZgJX<|MG?4j#@stGBLB+b{M~G}yLWeWwR3Pk2DK34`T5mkG#Jbd zKD_V`qyukfcKs~S*>f4 z=GFiCAAa?3{~fvkrwz5G__xG=Hb7O>)O1F@4Rk~X%dvC>Aeb^5^Z4I703hcrSl2aj z^2Y!uL?-rx!&2>AzS?rG7WM|040gV}vxn)vO zRtO>zIfSavHsni13Y&(#H;r2+=;ZaHf(8!Jh}ZRs*lXNI0VUVHsTl+nqPTU>zJ8IY zdIVwxYo#raJ+hw+it9V?5Y)f?`n^k2J_kVzll&&M^$T=>` z!Mbj9Qi=n1gQ6IDcO8(OR}%$j)nvI`&(HAwv#Z-h2u)M3e)#tHzh(ky)p<&;yUu}V z0A@KTAV)yOd^kZs1C7QV00nS4CLA-2gfbC14S%v@MkuaOQfhB1iG(mSC~yl_ouzhJ zdretIl?m3m%_EG3hNa&<#wB%-x!Cd=pzjleBPl39*4!zX;~p-(8@>pI~eq?a=~G zmS&QV#E28eBotlC6AENG}>%6wgK z(0LP$9S#viN1~{R2m%d9WeCC^qT#glV^YUlU=_itbPgIb$86)A>XR6DtYYNz?Uy<3pKs@JQM1Ej9HLvMi@lm!>wWs?dJ zaoZ%Bu3B>On~1U-l>W)l{wbsAIs`Fe1IGsc^dJ7G>&3;v(bG@<^4}E25TWBg#7&qO zu*CubLQV@-1eY-=oOMc3r@&j(E8f(Rq>6v*Ht2;9`eUgq^|Mjy zWBk&Oy2nLxjaZxCn+((@W)RfYo3;)isMXDqiF{cYa#3Ok#KJ*TMYU}KF|;AHYSthC zdryvuT?BZkn6*Mk?Abt3Ou<43W~hpw;+QOeVj|9(nfHu>g28;@5d}chJQ4==XrDgc zIlgY&W-}TOH5HvEhNv2?dU1#oMX4@%cPw9preelGhMIRQIUf(nr2-~?8HDB-eK`uv zW>^dZz+`79HtcaFT5s0N<*Kcl*-+CmAhKdG2FWOU?@-VL6GgH8>dUVt&bOgiHNx6B zW<;(EchlI;(-%{Ow|CNP-jOfrn=70yXar;+Q{HI2=v79XpPY@+*{Fmx>ua2^MeKw5(2}o!s`2 z#78UpgH$ogax;@ZM-*cY9#%{IlCG-R7E5b^Zx#9$e;V}*vTg^Q z`k{xs`n+5{_p1Y34N<)#?|3p9&2}c$U|{SwqRYi52-dZL=%8>_RdQL9^I*Vcu3#io zgL<{DSL=GU3QYs5jNl56qmdvIRFO%8h^PPwxKY!c%s^B_WH851IIc)zYP|e^8!5J~_l+Vs4T@Nl zRmtMWm=g{p3iem^MpOtjb2zMvYcMcm5)lS$+SY&oKm>2*iLj~u`usECq~m^Dwu5z| z=lCDaK^I2AIT1B(ubkVWk7Oxzr=sZQC!MM;874WBrV?jM^Li>x=NO|}LGl0L>dj&; z%g*z#e^_hpbIu*As;g(tRC5qbQKU^#jwss_Y-NOF#Bl^GPLKpf^5Dlj1wjS`fq@J! z@k8Q=7(rfQ#Wo<>iWDhAWLY*P$}QOx$!1%vW;dHXR9Dw@tL|{l*?X=3|MKv!wa;Y) z3Jo^cx9gs>_geq|jT9~d7C^X$;JZvhT2LueG~|-tZ5wynKykSW>wX zQMtGXE#Wl-1TCV`_S1w?ViEGEQoXHpkNJ|u`=(c>tejKMIaOOtbE&1kVJcUZy;c^^ z;~*)OQn*$PtanJ&P-i1Ar0PzbQ!KY-o|1}{DopMc3~`HAa!wKeBvEyeiU`q5>d|ej z+S9y6N_pl;p8E8S7oPq6%fJ7cI#g6t=i<4=P4ymRC9hEc1SWEJ7J(aB$c;psbRC4Q zy5hF}wg6~%U*!-s>%Lg4E{~?^YF0~Kx1PE2+Hd{xo8S7UpZl|a@zY=WD%e}# z!UA!`d&qPx@k``dL26tGAn9d9=nZ(0gBv_UV|IIY20F&t61JBg-UF)I-Kwo>`%qWO zouH1r8x0&2VHSWSP7No(H8De5&p}s}UK4jN4Yqu3xW{sqw^ZwX_jMQpOioUN#;@J` z@ve<_a?LK&kYpleS}|_%?h|_TlAb@0izDpUiL=mV$Vcnddb1)D_i9ANX_{sLIp<-> zIVT-*{0<;Y)#hm~(^Pho&GWq5W+f$8W>ID$uO(>WsaP>8&U1x1gV_uOHV0}Yiqsv8 z;D;FWGh@a6$){F-{-?k2BcJ~mU?S|AcT*)IM`fl}5;z%26q>?KoMiEPM1)YgUVBJu zBtkE@r-R)GrCZ0N*q&jXP7sY?ZugWDdj8*1GEaz7Vd#+7M>mGyD6daXpZU;wwVAIT z&-;t3{dPakbFmt`4*Au^_@+R`?(kX z*{}cIdw1SuRy}0!%b^XUN$v$b)NPUTAmC96n^p3z`f=(S);1|O7kWz^;_J!eBFqoJ z@msI{-f!1d8pcZtOEa>G3401TMpvyxxRerLAxOZi5>sp*=?|L}?g#oGm85vqd3sY74~02JLG*&3igiI$zBE%uU`RB0prG^Q(` z&q&UZCRWX9P@Svoip}#(A$F*Sxk^qUSAr_poO7zBvdC0sOjN3ey_iG^5>cul6f)3m znsd&hN`+XFv87Ntz~`X5Vh>(?d3^iRt8YV^&%o zM8{5ug;inZD#_rDKNcZ~AdD5#!!3hR9#zIsPG$YUlXE(prtuz;RxWG)40Fj50=#XzezY(}Qo_+D-SMR;S%5^GS z^o5VU^ub%Nv*-X^T%0}EoB=J2ws+%sw@+4%aqhrUHAX4ipc=Q^65|Z%BK!Cu%P%O) zU>zSv;`uwj^~?6$CqDh9A8}e&mT}D2cy{OBQL-qOiC9}kqAy{-;-yYk#0m#+lNSfi_2}jW)mW~Argp}nk}^uv354#44Y zL?`S=E8AN=oBZ*V_Gv}KXjCL=sb;mZLvjlGL^Zj)bEKgPsNmLq2tXU%F)v16c`-fPxl|+) z7Ql(w(SviBPII)WK8TEVdxC%}G6dO|l#jBy@e9wMepA@oCHi^dR?*Z52y%yl32>rN zz0x@9Fs>wxlEz^eYT2&Zb=1w$L?GIloISpni>-%gx4Yz&pFDd1_}LH7^Zw}M#(uXu zyZ3#R?fKb*^Cu6^-uW(n?vF36cRdL7kQT_Ta)Nr*qlRQ!NQhiWoEwCn0)Zwllh&&} zr97;A{b-j|vn;SszIdP6=ez&n@BHWgu}S*U&;6&L|KmTlqL${<`nM^J3h`OyphlR{ z#YMdG?JK|X_ufC>{rJ!Psj|IH7I!csqH{ssnqwpy+^BUFpqF9xTlR2QEO)~-WkhVt zR+5W|S}ihUW)^twlRZGFiMp9fn1Ep94z|2Nh1ZI4MYmVBt5+AkJ0sab_mWB;3R`tI zv&ctFqLfuMm11=+)gqiq!EO#SGXsc86_Q9Zi8RY4urG$~TrzYY4}Dy9%}V>-_Re=-WmeUEdNP1&LVf?;x310~-+k-5p?F2h`pm7> zs|lo=SQ2bZDf9(Ry}%%5BLs)6i@=CP39tXdU$BpS;ZuL?OPvWuCy`pNkW%^ncfPd; zquTp#zr{zl$Y+%(Rl#+dwLw$N#5LfLB$QaE-Hs(`rU&=$U2HG6AH4g)Td&`E|NHx= zj&z;QA75dv<7S+81$8>w411&LYL`Sb%e31jMP9G3wlkHIQ?6E3bzCJPvi*E~vYAPy z?bVP6*1SJ|e0Bf54_nEf~1001BWNklBx$-jQ~Jo5q&TM} z%wljRNO1KatIpbm)E!U+lfwl*Xh=i_1Xu-Os%1;Vus(`)hB#Hp%;YX_zVpGyUU&iJ zYJKB{`RxAs=!OuTKY7R`tJUV#)6dwnW6^j1#qWRryRUxYQ=b=hCU&j|KB~247`NF?Y-e_Spv ztyC@h55Ds|ZXhk00FKT|HTyK8;eI+`XHU>H75Y(FY&A`9>Z`9afiT4;Yrl z(Sge+XCV5{*Z)ba<^JFN?_M5OweFKB5ml=ZC5;|{WNu!Is)DtaDXEfhEj6pexIyrw z2_jbJoDvDorLYK?&8#VnnE9J8=ah%l$?X?E`eXmj&)%qZOXBXQ)bf&=8@k2j#NuHw zG(8(&XGEx#jL^(8E&aIlXMLNz5Rdo>u zIbm33z^lzHxtf`BPcL#}af>KFE}odh45S+)y*NM1nt%KM{e`JcAj&zfkB{DZ>+R#y zTPMo*@4ol?%fI=FPk(_r{nXGr?jFkPj;9vhu%9lk=F78r-qp!{zT9oM)8*OSJ9p~t z>dxzLh)(m>r3wG;-~M09v?JD#Gr>(bBpwEGDO1TG|NIO&wR^3tsE3TjU6iewnTMY;C6%0! zHK4L;PL8DF?w)nMN~xpuI7}|x3Peau&amnrY>tntdU6+Z!<|sr9-Ck%vMME_LRI8Y zn%P!n;A*lT{`_bE;1AyXkuQEKNnI8Pz>P@F09z6-2qCA5@`Mlu2;fmvL++$X#MADw zu|q^61<+C}!wb@r{iTyn^K|pZv1nSYj<&mt4}bI%5AWaor@#L9$z4^3aeV8WUoU^@ zuddd|o&BYS9V7PWOK;B;aQ25^|NH;*e_y;5Gq_i)D$Sb$H@LM9;D~r`ZLN@C`sy4@Eyr&V6BGDUVLgNdsHpfN$ZXm^zpITY223kXfT7_kZL zB7|6TqCi{Pkmrkduz%DJz(00O=b!obw_bhs=8MlMc@B*yi9|Ah8G(tN5H*_)2MN_` za5#@}2y=CEH)a`Adge$TPeq5LxOyt5%O_7FlJ|RWzc1q{wvVmOfS%sCwcGFB{@!=T zVR-sOFTVG^w}>dEbaeYzhoPe^Jpiup0#WeTsIh_ezxX%)`c>WM#78-dDjI!8AONbY z*W!9WtkR-_sr5@m&r#Eiws8M&TZp9iC*@E!a-GD*A>O~WkP00@)utX>1Q%#;TB|+g zYtQ;pxj~Ckh_0!U(5@FgphL1Sb|Rw8CrOSuZIUMKG12YxbZ)&JfOk=NJn|u%U6cZ0 zAaRi>PU^ME9I@+Q5=LsdlE^DLb-Jqlc-lVN*{EaMtnxVSrb1I82RV7I%uJ%H3^+<* za}{M4c=hV@-pJD+qdTmaDi^C;OZ)Tft>e{dP+@HyNWy?imy-;+O#pMPGA1KSA&TY( z2s(l#imxc%25@MjLnRfhnam)R{rt)2kIybnUw`AhAo?9h(vwqKMdP9d1jv~)h~4RE z96+!ZK;a;S^^hCj2ACuB?OV6rKR*Mk8tr%Irzg*qa;COFz44qdo_+Bn!t&(d1(9sl zM^o8upFDVQ@9h^p^wL2FCbAePr8Ux;Kcw4c#BJmdPSf_m-9%jt4qOWn zZ_q~b&p{+Uqj*Uzz%xP1=4e?&%q=7tiLepUk=H5h=JNRB(h4UTX*H;m7b^xUMTN;} zHDp;0W|c}&GEo&F2FQHg&kWPeNUS0PugqMkJ8@!L4Jt_hnyTmUi<&1@B9OVH!=K;uS;=zPP-a=jr_N{xE2@{e$~&Z#JiQ-+SxRpZnsp zy%b@mdh4lY#-r1FZ~WnlA9`tVu?S?LuF!ftHI<96{lfpj;tUKq4=J~2zaff;v{ohpE@!%+5u_{v)RSCJ zv?EOnR&CXdJ-1_adTe=HDUYjK%fMwAy7_O(#0JQnm<=?UJf19%!?fRzgX9zq8@vKG z7x&J;`SpMPwSV^6zxWrPyLtNfdvAXKl~><*<=gMQ`&Oce1@0G0gSGi^u|;q@8cf^O z3lY1|VQr!2M~zp+8?~xTqY!6KH-?jf%V~aiadlC6SRL_ZG#hFu?p8}x)1*9X)&x^G z6;hFLmE8>PHWxNat1P5Bsgc8AB6X@8$T()_yq%|$l@Qa7;}Oi4Q>o5#HD?xg5;mAz zM|Rt9+a3btAN0b+cSeAtRyU{TpS$&Y`)y{ipiB5*#YRh<=g=0r8&R@qB9WrqLc5%K zuJd_e&gi&<9lAj($f!kO7c%GK3&v)OEpZ(Od<>cjiQ{_x@UXn%3`;67c` z;(H59A&J8uLgMd!>+9#|4;i?9axx^+l&<%G0`#P&9i@2k2iT2ldc7o+n@A*v_fq8{ z9nThZLVT00rbt<3H}Fk>|mm%5hM-MrC}jjRN`_`JJ({KmKb;O(#d?rVSa z%GGXvcJ^Si9&=9n-99ZKcAw)wU=8&dUCX>&D8ZIX)MhCO4#Uv%3rHxm9X)!VNrhA5 zBcd_s>~g-Jp6qPqJgim~fK`DrlbH=!bCz*P1XI*uOe`$QtX$?oR)?b%X=YJWlf(ee zb4@w(xZ2IrILMfwDpWyb)+7|(24*+#l9TA9MBd(c;BfDvHE0llrS7kod0*LGVAUf- z4Iq#MIVHfESw$ix9t4R{duC!Dlk(EINdO6)fJhc^!cTlv3C;-XV`#%XBra^kv_}2qzx6j9HfBB@(|SEbrCvuf zm_QSyyH9qvpL^lq{SRKex#DZ)m{yu=M2EIs%=`W2To|6$8_L?cAv`d znwe@l{?Uvp(bwMcuzHF{0~QWyqva%uKu%&&5fMp&)GecbAHBL(sXdv7Sy>FG&Ug`=Xo*ZDfb*5}CP61+CsMY+=TsuJoIug#F(C#rBO z2^~^1MMQ*E<#d&wKOLW6)3IN!%H=>lu7=fmwO+4MQV{`=QX1CdxEY2lNs!n_!JzOu zQJuw09@+vYL|&^C&1slihCxMXvq?EAlSGq{FiTd7CRA!)aQp5Wd490hwLh@ipZGLF*9KStQ($VJ8Fm2$?;114H4gH*k9&(U#9)M-%Y#SZnrI^)LNM# zLc?lw_lStDrLK?G!?T4vHtT8VDh==evon;5U;8J& zI>VUh_R(fc%G7=Sbof8fOicsFvIH+I;#rGlh`hyW$80SD)<}$s@M{8PX#zQBRn<65 z{8|P3V%miV-E>grp!csXdv71sA~hNSwM<1^|2#eDlqO@R?%WrVsD6Z-!<@>zJ-eEV z-MYCs8ncKpOT@QDvnsrI{k7C$T5<^p3%T6qqXq=_KL;&gNXvD!?EfM0Ye;42%vz&~ zGOv=}+zij3XiDR1T&;#-Ow8_XR%b7>)VUqsVGAgg z%&!W&OCE-!Ra&i*Bw<}ns-W5g9I+lPSs=dhved^5_a)z6{)5-k(d|2TA4ga!0AYez zVj(wXl9aBIUj_sm)XkB@0BX<)h-RlJdt(tzDk)3OX~-zsCufg>4xgquGPZ_6lk&8? zQsL_Osekp~xN+mAyAjjH#iNw-r@s8>avq3@BuS4uZ8NJ>X8Op#^e_J>|I^R^nLq#U zZB`?v)aLi{k14{(a2H_)}8D-8>d2wFIahV;PQ5Wfgfb${>f z-I8-kIS=`Gv!ZI#c6a{p@x6ENqy+|8lt@AhZ^GH`bVO5N5nDuxz@tYzlm`7H>y9HV z3Pg&0PCgtxEw>3EZDA_38T8o`BJ#amPL*YSq$yfip#o)5mXwHjP-R%DUbTXm_LC2l zhB0#zcPKd*{M1)oy8rH7Ns)uH92p#~&?e&f}5 zCK?-EB5Ll$j!OIOC7-Y(U^5VjyR{rhcxriq*3n7gJSKrOmez^5vX$zFL?q^+W0w7P zzd2c(8#oE!)t7(g!M(dF4Y!_t;q2af?)ACPeKrn#>A4BYMj_5;fH{wwao9Zb^m8BN zf&1y&P|Ri80IR6OiQw*s+(LJ1k%b-tHttz^ATf7|0B~YnRDjInRBH|02Z*YnL;Z`5 z1>}w;sLlK6eMs}Um;dpp@F)MoSE+fy(m~fvOKQG9c>6U;308uE=Gbo9c1y)3XsWde zt65NnZ6-uZNrMC*LhN4W$)i;%LSG@V=>-o514^CpFo>p{liSuHsb3=i!F@8%NexvK z#OG-$c~EIF8YBWDcZ3kt$$h_{efCvKn72fL*GWcFjR&y(KTxZYsF|(AMqIjkc+a$O z@u+j+>N}Gh{x{BPbF>ngb4p`Qsr?zXMgJNvwUf>JAE(vwYH}Q_aqfr2Br0n_*3xHN z`%vqT6tYF6$^qN4HN8RKy_=$nl`$}{*>8=U)m_SYna<~w)*ICj;!~0k<>#~-yw*sZ zGl*)1BoT$?O-^&2y)@@z{0Z2CU?dWWUnp4c##Hv4fq=9f2(uXx)E<<8r$fAT9o74;uXATFSR*$$b9#9)2; z6F>amjc*tLA_Mz1vct^hsf;O4muFdcnru=v0)Z^f2_vw^C25YU-L#gpVRCn>UiN9) ztfE|%98T=DZm5jPf-O~274~G;?7K{UW56*Ug(Ff$7+^CZiZNBho5(LtC8ndzuwHw_ z%@dPQ7CG=^+%5u_6tiCxo3Th*w$7%*2+feDtci#y=T%N@^O#kIQ+u|1wYV&!KKFGS zz4f8*yN!$kNkiGWwF>v}`9$Q)1Qf?kmxxD$H!n_RgmkNAK{j_OvoMsgVZXH|Q7^o` zFy3N?lqHFo5wUA>r&UggYB8%;sTS2FRGE04azP`xJ?JggUhanA9^(RLB5554T}0gP zDRYklQHfa8ti~=c!j*_vouUhbyILd!CG6&)8o7}jY=?-z9B^mW_TlmR==kdV(KwEr z24SgInRwn8Pdbdpx1W9C@%_6XQq5ND`)~hI9+S=W^I!gI=VpUiwU)NPg=vVRCNU8p zPPl8!01JMZi{Ki>I+Z;gBYW`w%m&iC4Y2hhv!$;yG-YPHey5 zUX{RHH7UWWdjbPr8?3K$W?fUwz7UIT#A~BefTTT6 zJ7C@g35e3?2$VWR!-n5GlOH91Y5?+)#kG9G~wsTkCVjC2?Jbs^mt#1XM0vbCCw=9%F8Q zu9^dY;dNgprj$bxppgC5leN+nc)#1l&ZkL+q&f`4$lrhSwHH40VY#mix_NTr-h=lx z>-Evi4}o1<+|?4n)1ra6sr*sNVofb(i4%vERTy9)BGuOOz~U59081rCWF|92*uB*( z$FmW^1Lh9r4jKdegF=V}@o9Oh@X$}iCL+y2>K2LAZHd-yU257SS|Fq@r)zgCmPNR= zl`gGx-H>xwKBBS$+uiQ*&Rm+-DG3dO5KF0++B+m3d@q(osS)SBXPV#~2mvnuSkE87 zwp+ENed;ZP zd2z+8!VaSCRMt!)H0|rhUivf~@4xf*`}gjoq}Ba1Kk-#2Bd;tZlzS|$w9wpE*w9yh zAjQkhZ6gvQcWb%3jT?80VoLIMAXBL2Ixf>O0*6OlSSvB0#ea5fTU>gAn%X27Wpy)> z)&~Y=>u$#ixQG05p}8U$CC*xo@)ag)34XCr6DKA!GmoBQFtK@HqiFX`1U_4Z^6gt2 z@v7uWSVbRQP3M>OVm~J|H4??XL(6YRf(7teKF)3<7qBh50`G&rgGm$wMre=)#DEf6 zo2h!zS$kKO46weyaWm#FAz%!ImKmYM7f!^&v|>BWK4spyJ}jDLs73dc%53A1$0H@c z<^ZEwbT2P7C#XAET2gGHu7yQ-rloql`{41HK7IQN>G6XzHzg4#aRPkFVn$?Nw}qcH zawnL0uC|@Ad|%zk&C>bFCai=zkW~Hh5j>fjyQwB7i*Avev7h#5_wRk=lP|sV=4)1M zv)+8}%U@AZqBPjmZ~yY&{_(%??>dNCy-tJAG_GCO@kfl-o z95Uu`qzVy8+>MAJ;!aFPq@`t~u#@Kqvk_$ixfx{c&6Eyi)Rp$s&+r;M_7>p~OhB!s zOh*H8C|+myft396YP#}97=(@PbTgceIWT_(U2Z2+Sq~{OU0&{<%+*;!#LTdy za_eL>sAOfIu6!;xHsdHPLRRfOlw_I{frK0&?_$4LI~o_v@eH?{!P-33+!jE@C~|;? zmB`7RrNzZ{&0MenhhRE71V5t9$k*@Aj)=)pch+Jr#EAqJ4sB*8UJI|tPKG*XzQ}w* zdD?7dqpR~vA>NQh!_YFVbzTZ>7z2@+ON+pv2;%C0Gz0G3J^K@%eeUY?sqg;YYh={{ zK{QOZED~?mcIah;=lObJ-CZz zDBh2Z~tGv@NfQye~sB(h9CKJ|2F9m%m(G; zbWB9TPUnxl_xt~-n9l|VCiZGJS67v+GCQ8kn2D2!GQs_1&@pSUx(iq4tveZyt}sC> zYJByB`0>dq^D(2w%%u5b&_Tk@01`SK^Gc9=TOVM| zDM|_2%6onMY5YA28aL>?WYV<+@`W}AHLc@e3ThW$=PMRLA#b{#goR#4OV?P7 zY5?r!fDeECg*RS*J+7=sPjPrV&A4f;n@CFp@Z!XTK)~83C2a0HM;h0IHUoDWR_k#S zUur^$EFcyxWgZ93L%#jOhwtCHQ>}jIpa0Y9wqC792LIz5C+Kw&AOW)i zU`?ktHIK2kh_adO*3Ue-clY**RP$18SI8JOC1Fm)IZ2;tTjo@kIT46fNoPu#l7X3N zonm6=_B=8l9j&*s2ulWmIZ+*Z(^9)sRaQeTF3chPDGo` zl-3%X#I@S(&XD_c;G+GVS~^sR7THS(3Yk02$jq(C*RdMcW))=2e6-n2rLxG?*~KS6 z`^Q$}=Go_8eCFvFo_Y2~9aewzjo(Yui$fWSSeqfND$UAOxnO^}Iyt3|+oZ&De)pLZ zSt+dsJzC|QvJ4x@W^$cv*`-5#AiW%*cVMv0NIRt2W$)5bAkk-Ez@13PZJ|QLu5wV+ zO=*H)mjTXGW$4jvW|MItnt0J&H@_;ng@6chc~y$(Zgy6^PSh-l>t*Et@#S`|oVUAT z5bxVw7kM(AcT;`5D^DtKt(Lk&*`|i)a9f3znZHHHgo_W|C3USAIyg4&Xa7>P3&J%( zot&^_@}n;ityZnQIUR(L(`2#w@bwqI9m;Vssrw`7T7LR1fV$M~|C00A*k1 zLYm^&m5MwL&#X_F*=<%KGlH9y`FJzF@R3iy_R6 zgXi>Co=ps^^>QjII*hp$)As&W?oP4o)$Zt6Ybi3M_5^o-9EeF0u{lu6G;T6**e>HK z^Xmf7?pbhxlXc&^eep2)vLFH{d-+si<#r-xa!dd2un7i&AG!`)Qs_rQqLs znQr?xJCVh1-dY#QV!v%rB@kWlO>NQN4W?)tJ^WTg7LK*$M(J9jE-YO}lCIQWe&B+k zMpv{SnA@(hXe)AWFIlXTvNXcW!BE%!=*_9uqoLdD+9dn5I0<7Eb}Ml?H0pc#te7Jc zsi%;WNb0`QpcA3O6(AX}byY!CZ=M{BKvHHMH03mm>-8$2mXrsO!nwNdW}6MuwEx8C zzVPgaKC-*G+?VO(=2H(Jy#J*?`IBG!)n6hGQCiW~pk?8H&*ba1zWa^eef^a`uv$YF zNks0xpC&^GF+jo3IfYS=ugm4yU%g4A`g8(-+~#;-yR2x5PhfImVR!2XUpvV=EbiPA zk*zfmhSVoC7S|sebpAf{68*o&c6vZp>6*l^Jv`2>AT%=T17d(V9y~t(XRm+%n|B|- zakjg6Ssy;xUTn*5_I)vdlR34%cTn$GCjuK$Wp*%}9f;mj^vBT|?iBCa(wp6JQtp=+ zU%#U02OKwjuJIqpJVMjr^AdX$Hdk-Wj>`qv776vPN)Kl$z}JP{jhyBK02h;&GMU8| zv2ZK#g(oWX761Ss07*naRMu8UC{I82)Q4U;y}a6*N0fqE90M&X1Gp~hphly&a1Ewn zG~~2M6@yaaM#L@GYG8|PqR^a)VSotdycx&ivfU2Hn{;%tSsx`$s_C_FfBR!U{KK#Q z!9V8+1Q3K_BigU%^6Y>A>;Ki)e&g4+bw;q79(lo(Q(n5w+jAL1EPk5D(dFb$?j88R!brgF;>r2S@$APxe&_z>#o3c6P>WyK(djW9DjJ#z zuzlA;M5{65pxsg@nkt-Rn&-KcYIT}+)753nQq^gmc3?`9s@v1gz4+euU$0g&dm`GL zoCv2c{@9;N!+84K3qSIuFA#e?zsjE2r9R>P6H@&2U-=Kbmi5Vv?d%c1*X5i|pX?6n zuL4k)BYx3B1Kdxvczeh_Y6`-F+t2?#dAGsAERc9^Ch5ar)v-Q9J4Rt{@v?Z=l6G8p zx&IeGrr=P*PKWEFy-`b-B+M$@qS<8mr2|C=!yU7EDGmn{a?UwtCQi+e)D_$4awuTI z#XFJN$6xC2T>p>9-*3-iA6RPqr+-fI_w6tUk%M$;d_UN4+NT>YTQ+iLZAMiv6Qqgy z2~I4+@Q@=kD)~T~H<2unupm6dQF=uJZ_Tc)E{t1#%JQ`_+=RdV*2CwXKYro)Tkl@c z_Q_cr^=QfZ{=s|rnyH4|OD*f8BRqQCjjk~Fosq1LHeq>nq}679e0q6RR;$buLJ0yY zv3%+?pTBx?cIT}(eA=B~KKUy@_j7mNc~ghezxrSN*EgSkUW0S#9dy%^M}POf`OhlR zy$9!eb5hDx5=CRIC)I0be>FbGCQ2O1Yh2jOzF=8`j!f%CAAqlWu#-L-XK6037c zIrPaK-DFGIOME%i;AE&GV%35j>?_oPx;+faj(MKl-Cc#n%#rB&jsS{7H}Y7#6suO% z!emt~ld+p)DrK6hLvuxcwe276(4a;mw*jkt8yueW6p>s@ryNn#v;gAmRABOOwv)uf6+PVulFUPx-kpuD z8wM<75GDxNyH_sq_kzD-@<73e<;BZ&q{x` zjFU34IchP5FCKLB)~MIVhIaisNvU<-3s4+2fK)gCe}3ujY&K&l^!?9q+QW_xvEK$Q_`eg_dTa%Bu-aTl0P=dhJwL~yjOv!y zCb6XJS}v$66LOY?d<&_*Pg`R}WOFf9AYbHRJ$&%+(aCB!I==bj$)lEBPQKgj3AEqO zAWC^)rrR$*^UCkO`Hz0(*Z-}5|7QhE;sV}2e(-<){a;ef`-18fI^MW_+omhyVduQv zPqsHcJ*h^6w<<_-uhW&z7fB>BGhtgdY4JBU@)Z#&N}x)1D*;p(PRxn2nLrqTnHN$c zf$FrMHM6if*g&N?B~6U*2HsflQJ9J%9af;+B+aTM(j{*oArj>*<8hziScEyNGGD9D zSatv+9#;8iNb#*TAp^5p0hiO`Ba7ltQ70v4t3l7WTaAB)xW~jVx1>?vBW>+&Xi_`A z!vPqg@#x2mc9A|owsEhm^fAi=J$VZVVQ8e4@PUWpm_9xJ6(sSK1DgZ0^-5-s>QRyA zU4St>f<%o0K$})Y*dq5H(n^fD4Nk%gY3=r~b`bqQ1snB+sT~Gc6BAV1q;HV{M3uXC zhP$UJcDgiQ#t^f9ac>MU$M?d=EvfbT&_Gw|=49>%#NtHO+ zW;b7*B&v*@g=3I~Zt@Yl*TOnl(nW{jnAvS74o$`({81L{Nlt~%0W7~>2)tgz% zqiK@enIRI_N9*qBbEID@FYS*=e{7UlRGG-kIHIF?8I%rU6j~yWrE#fkS#X=@c`Ai8 z3$wdv_b(cZymeM5G_`Ojp~1xNizyirLhM8eazb+S=x;RXC&yOY zfMm3~Lokb^L%&R$Ly6oGRj)lqy0tGiQo0FL+6mQJ9|K9#SJqn0+TPe`zE&i9*o^y2 zUaOC*RCoL1VFS^mDk|=rhIP)8hB2vr{Wt#M&-{gd{gcP}&MU9%E*@L;&HB`JD!Z%I zFrGhrlm=bpL6p^t2n&qBNk|EBpNomgp$v_ik2u5%Xde(Q^4)M2_Kv=Tma*-D-WD}8 z->8v`bY8r@1REeBfl6h~*@MaMSCL}(i?x<>Cm{D`u z8<90Qra`CmSPVg6Op(J z9OS6PE&QHbmeqyXsb`3LbO(9t9vvQnIAvh*y7q_xS|1&MGMC# zoU6y%1V{PyZ~ykIzyED!7j_mFmT|M$`c@pfeWfkt;~N80k;p>=vp8s;@%BZTOBp80 zsvN;Jk<&oE-+-A(3=SrTD;uLLE9Pc-To7dE>0&er}^5W7cU+s4uqH#^;u9}AR z(b4hoDyxVl!2$Abj=PBEi~S2?9>+YK_j7fEs$APj4!x88Ndh&DcX2N-X_;`$%j~)dSR(H-AIX5HLA9_La3(&Rz_VAFp4=G&kD!pH9J>AP=y@7_D_7z;Qs5b0YD8j6C2VrW}L zRuxS|V2NE_&2cq551ST30;JVuTpcNKW*L;%D{X!V=Hd8;u;iSEgLZH;*SZ>F6i6|g zZZEHLQbq|YQBIUoj_4I(nx>gV05f<>NtBIDC3U2Wh^)gf_|S0P_54H*Ybsq;$s$W@syEzO zx)dfX>e7Qc!HdiF0Asc24<;2BVF{x)k)YOMJ3>uK2uNsz>w@o5ztG7@u0;a@AnPR% z4tDpji&+0KV;t&K1vkzZ*Px*$q+?pp)+G=oz}CjcG2l*82|^HOXVfT%4i8bohS-=> zs4d`zIPj1ob&VqL5ezZ|D~S^`x@G|8PTU#@`Xt$*sK$u-H{Ln_q0dZ5M9)68`P3J_ zFjfAe?|j=k#uqz`_eIRi*6ejXP*3J!q(dlHHn~lAmX1=6_@gQ6 zUmM~mD`9Y*!{5Ll<@D4u&rgrO&rKP~%A(OlMLriEbMlfPq9VePrP4av9p0Vj5&_HA zO)jc^Gi zjGME&5_u^jdp=$(lf?*qNK$6>!++61xkHnRBDQFG2jgtX@N%aYC8ggK>ANI()tx0s#Ye)hrHJAn*)i^5JKB90_Hh+H}GFoYpZ z+5<<24E4ilPAa-o6ve^ZtVAr)RTcj@S&b(}CB-zT#3V_y0rgh)hjN)Nq37n_WhN3~ z)Urs-LgC)dZnvH&Mk3j$Ro62)`oFiAUoGiaf<=_oXxMlgz>#JjU4CIGq44y?yFn>> z3-uu4?5RV5QH%TZro&;-Vg501tZL9u@hVyjFy07202U!j%Zzl5H1GKgfj7Y;*2~GH z{d^T}e>{gv6teh%fM-%iyGu#TTnQzmU;M_CtDV_g6@IGt$gTYF%CWQcm%jMHVpu8vz|k5!*%tClVnzedH4_ee>ntPb?tP7B<>hu|v`m!ks7Zo2N$% zTKWq`&viPI2}U5*_HZ)$Txm>fwcdUA z1G#30)iySmyIU7`JpIgvgzVzpd*MkJz>Lm!bDZ?YM;o#^EM@KV?Lc;ez8#kr`@+IR zc^FSdCDc+2tE#9FBn@tUes)&js_Eq9giza5*c2!(oaT8C&F;=3L(7+pi>NbB@qWd? zLvnF`E}N5SyVpTCLvCe+xZdcEWijBOMS~%Bcdro~6a6QU(8@IOKw2;dCtLK)3ytZm zzLok{(%7yzhp=cO$lB$=747n{zCgQ&Fhj00rPtY3USjaLtSKGPNN}$XAE}tBi_2$mYuOxOwv~>1HHuP%9?i^k! z*+XCwV;c)Ov#wVRI8$P2Nt9?9f4568h}^0fW;2a0UKY5wK3|D78r))aLXX2Kk7PS# zS0+f(tfn&6d6l#)n-~lgQG^|bhGxd9GK`o+sS=5ko7HLin21t3YOw<-kM6vwA}UNE zb0-FAp3TbXp_WVmb2F*c=?onUUxtdcLDJff5{OP%Na zTvjQ87nv@YI0+l4%2~x!6kezatDH`wRfxtVXip?_}Z%u$hWfu(p7R(7|=jKN{Kt(2#V$-M;dhzZDRfarkPz z$J@95#kjVeFdI!3bG#s}w~Hbv!a(zG#{>t05~I~I+%%;+1;fBu^G7~>Gbatrf-@3J z@M-SWdOoPVUC%uI+@swi)GH9o0D+_%s;a_f6?EN;*`FIYGilB#=drbI2j9XCJBfCb zenfyd4I{IHxHSV_Qv!Oe#^m5SmjHN5sYfTLTqkdyCxBppri5sFIc%Ek&x57~>Pka` z!BvtF4U$EcUwT1eoM3js? zgPoy>q_>6%Rc2*Ug2hJcUcFQ+a4SYh^{ub{j-KAir?WgyC=jWA=ph&&6V6WK8;=zyA%;O%EGJ)gv4AUT4nLT>Ho*p zyEIv{9M^ij+#_?>qaWu5f&@riU0u5}>S2;5Gz~P+Z`J>i$uyJf8VREa5X2j&yQ^yN z%n0|Tfk#Ba(Priv^L5k6A5}%ZonaN6$usV5aGUy zV`&jR0X&8lBji-G;Lz^~`prQN(qr(0$&l;^dbvMVzkLSEzAa7>5hqAuL{@Yna}Y{; zKs6Dwa6!w`AvXmf3q`HJS80hFAnVAqu%=1gN%5+OySpr_U4xf;ZNI-No5w>&P%0=W z982pF5#{;NU6zO6{NMlY|N0OA@$vB|KiU(1`xdWn&Iv&fZw^_ayP7&?s zF~=9qe};)82bl{IV%N3%W9n(j;<2w{TCr9 zi7M^|j|L$qo*6TV0nOqXwp9mkSqh`d5m!1QY|}qC?6fd*7Z)!qhbmzxCi4l6To=Ja zPY{9}9mNnNQw}dyLZXtCDpImf(%$Y&F9Ku;6sF}M1~@#r_^cbg@_z8X@$8@!Pa$n| zek%Kvljm<~mVH5h;>_@)zWTKY7gX(`4C^Ey_lT%afl~G%T5?iF_K1<0C3&Ws$p7;5 z%m49T-u}10|GU5c`T7tw-!|7A=_Ts#@HA#-Is~C=+`t75{mj^4? zw_iX0hyNJVx?f?XnE&oy{^_>8i7vKW*7f19fA;fIE+OW>{cWTA^WWk6`~A}&tSn2p z?7pu?Gr06bRzM6oF_C+9DHk<0eGEb7G!AbdJOYAj^gAN*vLxQU*g`oH(-QQv*XF5Z zO`bq&SRdX!{b1tPPk)HSGm^{t&>{zD+WmxmY@j-%7$MC2qBU13!BzkW+?xpjoY?47 z+sd3QGa~xxRYAIk9mdr&=Xs1Bfzo&+MNE^H%XB}UE}N;)@8^0x?o&HHG|$ohT7*R3 zd3D|B@C)=W>m$Wm`udci5+MyVO6_167-JXhvqh5(X;cML5F-5rHfA(I{KJ3qeiKl> z|3Ck)U;OX?^MCcOvIw8;0UJb!b}G}=q+MUTt;YC zk4ebA3`Y%{qx+wFh&@Bh1^>ic$S`dTgk)-}jI7@f#4_bolIz0V`J z>+7{uVc8X=G{t&ZF3Xb0lZjZP2%R47%jX}dC8z(csD{VKr$ud`F_@gJj%j8Hq`iH5 zxqe25-oAYDkmgiXKw#zLhxgLYf|HGj5Yk)w^76$;l=F@+PVl}pCStbbYUz@w*_fvM z{@T}IYx_Ws<^F8H)?M(|KRjuK|MahZBJ~rN_x1X=Gye4-|DThmIgWvxyz5k%bt zWwZ6qFR$+|OD*>0TDNVxkVQLdRUoRy6m<73l#6Trh-H0vC~Hnp7_O=rcQnz4=@M<> zA`rEw58v_tMx|sYT5qqrWLTkHZ`e^KP$ihKMb-7;aeeY|56=;tDx$TWK~hUm!s!?> z)l^*{o_gC0h=@T=5v>ZvJyUjFbg}huUIU`Tiz&irL3b88(og7-uu8E(-zhax!h-Sc zjR-IvqSLM}${|5Voie0L)8^JJy^;NqN>RZOho)vDPLoh@>L4Trm^KKAG$*VZ?+3oq zGQ~3>WiTi15GGxg*mvs%*ePmD4XJ@}nw7Ubu8oV()CqV{&D9Wn5Itmhm|i9XS*x4U zohjJOboN}N0Lqadl5G@+{Wv0aXKf)2WMDhgY>7w_F`%GCG#6NEC4_YF!OX3Q*%f&D z?r&ay`!5u^Xkm*^u23^o7ijFQ`3^SGn&5$87wtNshr%FlC&eP52~y!&fS7<_)n0?7 zXH&$qP(pR^JzItxXM*FPvysy0C8#0Pg2D92WxYEo)NoZ(TcRa#*AjJ>an{j;Hni`1 zauyX4L8?jbu6l^Ahq!=Hs)cydnx)PWQrVpv$hIK)J61F$=K}jq}>=ODTk2TM`!HVO>?kn{Tyk9syg{%kuQ$ z$ePb|G!wRZR28_tt6>f0eC<2L-H7gBB<>!o60gNHHx+pzMr(nDTV|byyFMqG(dk zj@9op0Gy&~?%n~;|1r_?=T<(E{V{}x4Dp_uoKqf53Im)JHWlrVISgnoG4kA6qJM^A zJCEiq1R;3?+-kfz77{uG{jo3YBlyXw6IsEz4rE z8LWjs%dLqlYpvT}w+A&7;CgeYGn@wS(_8!I{lmhp*>rc&XtmNT7pAT5PNCq_>+Qok z-S?#g=lIwB~#s7k$FZGBwUb-i?@V~n)NunUN`-)eJb z^7DMfQHpGp9u(|DzX*`&&-<*D6dKeDx?}-61)aMl5 z`Ql|tow`Xqf#q|ZHr9PDYib%5Mq{;v{JZ!L5-H7pmD-a!gdkH0 ze4Z+%Sj}|Nby-ad#v1$GyGO6S?`_*|FI(I`{i_1&)AQxef1*%92{kJUxfp85QdG-A z=r8{1ANOtltH1f#@9L&6Es1LaFRDL&z9I$FW*HnF+zra0na#;wSuSszZ>k;Ll}d?z zr?w+K2rxBSo>cg7Z59$f7yk-{_KNDK%iD~XahM?%x16~`fD(x zdM6qT zsx2Zd4^D|l)DA{xUu$)Dp(a1e(kKjB$mTxc)kxuX+uMHIwkl$ z8h}NFqLdVQmjz`FUVrnC|0SM2eDmQuIi)uX`srr9;*x*k^D?Lk3k* z28UlTci%#s@&!1dkVjWA{)%dcqu7LHjD+(XTg2ecri5HmxiLS!-wrrRI~B1-bh%gt17J3XR~ab1X-2%w(y;K9i0_Q-L- zm=;N=n!uwyefaqD<%^Tzi102o3*z-vdU~Ehb#Ja}d)=~<2?4p^1@n|tBKK>rBhL3+JWP`KDep8(wy^+#Kz_dh7_@lIM{!&NAyRw}Wkyc= zG;Jx)TA+bZJHbFWbhB~#_D8#nW8*95U;pGZPvu!xkq4NBhI~_j1R#cH1TO~Nmh(Ux z==%OzNk?~fm|QsJRwY2F2(deFjfu3@BlzjyK2A5-{60zfbgir5S{dX{hFII{e%l_O z-|_bL{A2^k0*Ku`X+bi)RaIrv+qPex>|tFQ9#J(#kpdKLt@hbXS)pjHEsND~4Tu@3 z2_|VR%#@_SL@mO#Tz>J-|NOWA>Azjg4u{%cM#_QsI8xvb3JIs}uQy&Z`SWmT@RWy} zufYjcd3r|AC+_gApNrl3oZ~cYIR(L-pY?yO#**VNt zrL@5D51vAPAoQ3opG;ar&d;Y+GUuT@66eOhHo>r?(g9DOLb8}SRt(aI&w*pYIp!%y z%g>CX%oRPRx4?Mn8PYAv)Yvs*+ap9^7L?s%Yh;9uZxize!3jt+7al=Zf4kOAv4=#B z2nL&^n_dR0?%-*sA-SXcAOb~M*Ro#JmdmONsr0D3h&11VWWFAxdxJPz?Czy33}*xs zY2wXlfnZ3eEheS5M)Z_O(=uP()7d{m&8IeCh?DdE&>jKNkpm*uldKMb!noJbarGED zn+7QP}#(De5{cSQ75A!W5 zxrUrn966`k9LGS{{o^>``^YjEOB13sD;}N(BOU7?rzR(DxyN-pwWkxW+?``N?<<3J;cJk{&RB2#{Z1Uc#G~hu4>D zxTuiD3e{{G@wzV1)UOLdiXD7xn5Z&*Z`E5IdWNt#6jhsF%^LGNhQ zQ4a7_CLI~?$8)Vm33kBvLlBqcEP86XVyI9eIB0C;~h9z88O=%%u4HA z3gW1Ndh1cT^6RdFBJbX;Q)`PO3c73A`??*0b2b=HMLq_rrN6q-&wz8d#L*$A&@yG# z(~NWa&quHid%V#+`)8?$DApQbvUqQpA>skO&}krlt(Fg%NwJ**LcrZQo#a(aW&mx=9Mr z($q;t3n`bUt-80i3uq`>%6`2$rQ{qyRjt5Ez<&7t2SkG=<3Z2I=`k`p%jos!hP!zr zMIF8A(wUV8LFS>4qw&|A;u*^p05d<{wQB$98WAy(`A`D zFP@3{Q}r*$j*j!qny=ZI_8&+*5h?EDS2RoMuiwJ^cR)H0{#4heJOVQmwpTGcAX78g ztgHS`&DeNk`?qoQaY$BY$Z3Sy8!6s@i$kfQBjh28mhO!q2zUz*y0E(Vc=UiyZJD8{ z`5WJ%DN~Z5AePXi~y1R8R!Blx?IY#FnGIO_v%IABovp& z_VD=J8<=3hLg7W$ZWK;GAr^xu;_dUF-`-vxAJ?+1+TIoh1!Y|$;B+%vA0CFWNl&E% zM@$z~HN6@mjJp3C`*A)$8lFNH$No6;LPmo#4qeQvzPFe-9qE0*HzKz=`_O}8GRHM? zJflN@eHt}#{x=*y;pu#pyAtWB^atE=H1Bu4$k8~AMZ7=+#bju8M=hBU6o|}eYR@9m zzM011$&@p)acDZYvhCYeJ>2)FcORU9VBfZ~t{D?XMzme^!=JwF&*rHiFs*_swV*Cg zdw4E{F6-l78%cK&sJC#B+!U2kq#&~yV`#e+uu>9?5c^hdZ|kx!*jg>ZAeW_>qA`fV zXbLs6nUXk-yz{&Wx4;|0j-301b zhmDTuR~`1U8izy6YR4|?6ceYajzI(=54R;-k=tkgwp zfvV8|`fva1-~Z;<`FpiI`?~VC|574o22!9VBCRz*7`1KNUN`lkrmXU082u|Xy`lq8 zqN+Ub*8zd54(SUiyu<7CCM!;-?|lAK(jOh&c8b6{itT` z5(mrwsNOimokK->3QZl~&Ww(k0H^%)XyGF$rec;;7v(VPecf7(a*3y(?({d3 zi`~}+s(n&Fb|dL%8v&rFPg<7<-S*qaswH9TvVb(R^8De$(>n;3xRrLRl`w6L%;t*5 z>YEj+hOU>W4dnMf{do_D%g0wOCqL-{5Jt;BK2p)n)^>@u-`>P7!C03INrfX&t6wgQ zM})B)DOH4y00lzQdnr`QP@A+d>kK_-PnwwVgk5bm!n2Oe6MAqR=JKHjg5+y0n#EoPu|`^bn4^z z$U!oSAfvkBX(l3Pk=IdK%?b@OmcF;%{Z$ewg8K=<5EpZ#r4x?dwkxvTl4yW z(DJ~bLAPyNAD;_Ugst9`p^LJGWmpkBu_soIp| z#P8(@aHlRiZG$0qpkp~+?uphqUY9bgpK|wH&hq`MFMiY+IL%=0Nk2T`U9+|6`j2A> zE5{^RdN}r}pP`b2OE*^3CrZU>rOBa5JMJ+PzFU<(66|ukmtu*elnN+v4Ot)^ZzcNU zt=&+b-hcS%^Ebcx)vqHwDDE!sh}6hg0{QB`MXLd>359eQbs^j%D9ciyeEY*MOIe|6 z>jNbKOH!zD^tbSTw0SA3J#Kd5ObD=C6SFApdy1Xe79s%YEItcZw} z<@^M6BH(ed%uF>Z3OfP$h-wz3sl1CpGBp?&vClcB9^1=Qh9}QWW|r*{GjhtliZgl} zou(IG6)!mHHpbBiJ*H4I9r9d&obM>y&sO>GwZ+GtjUrOc@(bQcLVL#jEP`;luEwc9 zl^!@S(qs6=PMMD}LmT_2@j@!^hgviqP4PWV!Ksn3g~JW;-ON4Qp}pW zn%1_FWNRNk`~Wrgng-f_9)-_mU(EmspPrKuGteJMe*WFBNx)XMRZs{hVXAH43}VH4 zdTe^rBIa(XLn0xeVy#DG9o0xe zr}K;g@9L2QBR2KI^C8L951A<-TdZjC$g7+KGY z$%?3>>>|i=5(OwAN(1Qf+n12%cTeA~?<|+jn#L@KKo_tI#hWk7dfhfDrFq59?d=Q1 zquT=T85&gz_@P@dH_4z?)y7s@=GW>T|u z<5#cCNKhWzyCcLGn0k+ybtZ=Mh%*E0VoY@8q{NWZZGH@%Mb4gQ96!YnW*p10>SZa_oaYjs3_HP%u)B2&_@x3 zw?-98tL^deS%tOUB3cBRv$m>eS>@GQ=|k-;L83a>MMWgK4G;6e1P7A8?_Od|rhGEy zTV(0w2yfNR^ni4bbhlP%J*idEYj#{NZQlS@HAN4LRwz3^v1QA@FCC{XLt1{! zTgkjAR20zULz8!P7=#gHjipnIMF@PBOWklfY!NSRzq{(w$M@fSP}7W|A#}+Q9*+Yca+ERFDY4KQ>+x2Q{dBfz_ z)np0G$!T*cIwgg(DNKA&kE)slKMozF=*%`%j?YbJ(S$?XI~R>vLF--2#8lVyWF4KR zLC!LTQ#pSqH!vOY#Ca8j6I)c~>Xf*fOr6$dJY~%n-p{Xk>mi-nbgabgM1sVfrD6^x zF}ED&mi>g77zNzuJ!P_$x*!QbP+%z_iWueaF)Ns@QcCc-4jJbbsD(>^-nAfxsQ1hab>-#D4Q$GBWl(0H;P4Emo6qK9MC=Q@njvm%4LKX*iOTGq`7 z`I8fBeAdSzb%q6ur#sG5p`-YS^Lv0Y=kz!&k>}qQoCiug539aCF2dCM!f*6I;$Z*Q-!m&*mwH0K^^w8tWJA-%q4&u?bAs0)JLbWE(fTU1;i z%3#Fh@u}@Q%pxF=+FCHyB34Q;(5mXvi)=tup_X`NHB}LlP+beu@U+*hD8#R#hKW-T zQ8Twk1&ocp)1727tI;|jK!|YfurG9VL26>Uwsv6g0Qcw-gU9$8fjLF$Fs#10qT?^8 zF{iZwj!DO1Sm^(`=&W?^7gxEY&)NADU!NjK=D?J_{iK}7^5>cAX-#%#Bk1pEIlJeM zUOUMK2PlJru?a8Cni7;bneAaf3O6kntI@XH=#w~wwuT6c_>3baa8$Ei{g&w?+ zljzU4_~R|g^YgbqdlqloZOg>Z!G)xmMK{*;X0C>NYuC5y>)S0eO3YTWX^41Drgomf zeJ6v`JmxnRBB@$}^vXmvX^1AI*CtT12fvl2$PB5q5>jSESj=v>>w0;@2*DM>g#myUwg>;HZghS%#{l^fw{`e=mJceY_qB>^3mZ!6hIl@q=Xo4K0 z+YE5>7WM)=-=Y~Ne7CQhJFK%+3z))6o>oaGBRri6A+i{aIGJ}T$>_{){9fgwehpYeC;^E!%x8FXRs)Scgt>^g55eyfzbi6^e?X|V` z=Rf`NcDq_xiOvRxm=vmLhW3c6lFQ{1`(BFqbYG~JLvwz3Tb;3##jF4-bZAkaLrDAL zDKZVEhqbGOq9~p7) zzWZUj-ohKGQXmnM7RuoflhnY?!3>~;T4ve=PLsr#I$Vk>=7ev?rS7+KV)3qL!l51>2WTU*3KE#(nqTr_Z08(`-#CrP=E4s-{TdpCEi) z*Tfm>dhs^Y)(N!eX)zIkvaCUupu!|r+m?59DZw#G?`2_Puya{RH#Lfs1Whza_<9DzAKaXB;v=(Pw*lFW%NQX+?Nhqg7_pF9E`kK2=?Nnu*)^%rX=HXvI zS4=!5GLKhtIPC8%ZeoHNPMmrY7l^HDYqV>G-*)-aYulIQ{f7@fSy!l(+-{0^YVYs- zO7zwe%3XuCd9AJP+vm?Ot+jBsWl_~6S1zSMb-%vpvLc#jfm++Qq86kUqq|T=6;N+A z!pr5!_qS-fmerOX)mN591t|yeeJhts8Nr}EH7TK-?i67QGIYJDh!$(!)U=c&p#!4L zow4PCJyLS18ty}XV5YU&vb5%iS0o4#Vj`Ev$J(5&hKrCXnZ`j(=+#C4bYj~6Mzbms z^vTK>X({B4-elaXj5%Sj-Ez-p!?3|~o4|tr(ko#mNkH51}}9s&}`nnyUpfkh$Z@{sdIyF9C6 zMv<7Rs*Vku-$maXplzUg4nC`-(vLt{}3VW{jafFe;P0P-N`B3uOFu8PA9ILe)nu1+06YFYP})Npr&LRN-y z2o}H@{La+M-N_rJ2hD$_!#!c5GOKZp>l1f-9O6@-2~2-J52MuS2_Fg?gz(&24uit6 z)G9d1kM39&v#sSxay0yQz`vtAJuh~1l5@5ioqcALDb&$WW4x;UB*0O)tJ>4|c>Y#m zqbRrQ>z6+S9F@!4xj^j|4!29b!Md9zc+JB;|^sDlq4q>FB_K<_~cKP08jFU`%>L(Aa!PI1AKFVnh->D~uq-WGBdMFyG zCsnC*vh?99oDhrrne+sS;340mPLn6@dV{mKhd}7%^4;Iuu3y^i_UAwT_~pxsEX%|D z=fyYmCbkqPRh!pCml{dsRzecU=RWQ$)fQ;A?%NIxAf;lM-Bd&yM_u%YI4cDRcNZTE zU1woXBkKco_JUm`sUw`|{U%qX(_3`2H zPrY1jGOc8~3YTIYe3B?8K_N6KG|T+d!eqvQ-5F~!j{8|I{FN)*OZ0O&xl zlZTq3=XahoFge5My!QNx!LM~Zr|_08p6I^Kpia!0{T$Ta-2{^xaHs<@jgaTr?|cVNuKTRjk~9ff9`)m2 zh0Dut{`K?QzwKHc9@h8kb40i|Q44p9!ito|_vW6VyZ!Q>KC`Tapz5{J7KrS%?YGz0 zm)8&9eovw5rKt8EfhUp&MNQ4#w^oH*Y#H&JA);oGqQQ(9Q?*N;o5I3yidb10;)s?j zYIvUQYNl#&+ma`2rDOReya(0vr@Rw9+^b4Y5cQ~5R&UMBAPCZyMM5Q77xSgYr@5I% zW-h93yFWZE3=glWMN|pPpV5kiDR=Ovw-ulIUC*s6BABxH-l~SH!XBRYx@)Cs35Kc)J(@Rfs%B=U=Fv#Bwrg4PnpYK2%5vGa%}QCy3e|{c z&B@SidgPFfsi+uGmL(#ni;$VWn}Guv>tNc0R=YEuQpzQlvPD5zQZLPDLNr>DwJg-A zU=vD&nXrBg0gJ4eOZetLSU*9;jK=>xE2fdrI@Qm^I#yOLqcHe^xnaZiVjfd zSAK}VgP~;Yu)b0I0w<m4 zx3|}q&!6|(bzLucw3MRd@*q}(v6O`(DgH?rEXpEkOCH!ls97bOrEvfNAOJ~3K~yOo zAzJ!|p|!)9pz3vJbTjT^CL?62?~3|E5Q|v{2@PMwQVcLKv=7|}raeD4)v^>3S&A-2 z#}0c2hseXjqd_FRhsOs!yY}V=v9w~EP4Y|j@kDNU^Btg>iH9j*Mo2{DQ%{d!T|<0D zq3RC2bFKt3-shmLp55bzI4C(4r)qZ^-A`+;4kO5fO@57~IJYCmJQQa=r{0^!rqGAy z=P-Y^a^PNgM-}6pt@5Ci^cG|MDrO2_w+kKoxhcn+ycEc3!V^Q9PPKUc$@2WoZ-4Pm zFR$D3{CIg+R4u&M!r_^!sGzEcWBtoq~B)kgI4sl}`>qV7j%u!UBmR#;< zAKjV*RFsWu`*kU+ETL8mie>2*BVhzfDf9})0+hw7cN3$B&tXdhlP1-hgT9t^K*^xa zh}gLgA3g4n4NVMee>Syya!$&aUNg*O>-)|$dv%$rS zZB=LG#@!7t5X`56@3i-x95P2y6tiHAK`E%uH)* z$|l)PvRYYkkkZ^$;iAESkkDdS)!Zw?FILnvpN}AmK}6Q|DN|Di8M5SxbXhMDkqoW& zs^wBj$=z|di@=~mNQ91RCo35dxb0)MLT6aclz<3d3zRjyHA0&!Qh|pUpEb+`(t@gD zYGtvlR;{g+0xOzb6DeQ|sv29kXKL_}e&idKPoMQ7yHA?$kW6|`{Fw{o{B7tU(R6Q9 zUyt=n!K@rS#!$q)qm#Pf5EHbS--dHK0&&lW8v3K?!BBG#2lHN6BP_CNjSpUIi{ zfca0~HOHgM8I-+wu;W}bjn|R$z|SKAZ47n7;T^SX7a-*n0;FtrFW_RT}78`GjS8&3`j zFaTAv1SsJYppst)6FG6(tepsB6PX6N=gui~%8Q20^aRG5vDJ4(^?6+kAMHJsr}N%$ z7r!uZk13Z8oA*Wtbj++Et?|>#{)e~5Qa*h1!BqDaF^JQ>VfNgnXg=02FRy?6^N;%Y zSk&_59{J^(CqYu&RH>!ZZF~9j#ig6n#57MP3Zk`Wn>{>4i1u*sNO?>|5W3&4C`F;} zyDdv!*hLG_d7z1d(L<@+0fc*h?p0GroZ7MoN`#uq`d9`hLDd4P5fZJnXst(#7c)kX zU1Fe$QikQx+q#z9TYbE&5Otx7IH`}{$^MDu{i@WsW`(LyMqF>r9-d0kr;p3)pZ^&B z(3L(d2nHFcUP9mD<%o-2R^gFqvvgJGb9Tgkog|tZg2e>u=6EzlmIH@cSCrkiF;<~N zIOGvJav;Y6iOIVpd2Vb$kc?dg!%hEUwSl;YP{Syn=~ z+f6K&#u*gU3k6VN? zjPd^apWMED=5W{x!IW47Fp%ikqNZeMdRL+73j$C@p{j@zux;`^Vr1&3awLaw1MfYr zxXkG(${D0}NNIFPCnoD7=$$BJs>lH2b6{N`ER4B(U$%%qY=RL^)qiK}cpt_bz#*g@ zdUD@SO~Ty>^(%kbaF?BzaEDHCvH}K$69Ca_{NYRe^A=)w|KXxydv!r4AVl5`?uV)a z_|-rE^TPVgU;kX!hel_Dg+MhGX!9+r&Dh<_VpeXiFSqMPhQNXjh!)Gyp-8v6_k;QR zx?CQD9iIjfakq~C6WO;L1+8hPT{WUeDNul}<>IX>G$N!daFYl?!&`0^TWy}OPAyp# zmsN$*2C-V)11hRw#)j$NY%r_DN5^Ff?znR#gU zmGzM)kk5}!V+fR8WprXE&e_adX6ew?Cw~hziur(iEzU=;GY(?aG!V-@QF;uoGV4$v zD6^*^ITv1&AwSisau0{kVSNz?nYH9B8Uy6@-;6P8+kHiR@Ytdr(}+x*Mz%6Oo8IMvBUi z@Z2Yad)UZGUerXjZmmUFQ58NuEFR0PHrck4zpj*h!=w+3uoNpDQ=nl>-QQd&5!&<7 zDm_m;4}rparVEi)dr|Dy7ux0N-E-Tv73v-WF|+i%2SiWlSJ|tTw5kE>xfNAaanIi& zEmNZJH~R-5E>`oCqmnlp3>nIU=Q%d5?}WBbQuXUh5xT>Q(UYu>8%_ zq7h>H=^70h5o~e_`lAZ!+bg2k^9K;y?dHN6-RZ5a#d6$W*=?C^wV{-UhsWF7?d@#~ zQXifb8f|}jc`56qEGxZbaIlzl6{LhhTWeZMpjsDi;#^8S$+{tn;>_UVzi=L8d(R1zGn%ZXP=Vr8DzI+dP!QVNSe z&r{2eKLF-ZX)t@JbKju-AUhV!{R^H^CU;>3L%W*=;zNnwRE#rE-gp=MNoeIt6zQh@%{7TJHp;>*WN`k zAT)@si<;GagB2*%?D_fGo4>xi))rb!lM~ontvrADn0c$2W}U7=2+jKMw5YlC7*?~D z5)qB9QBBJOp+VPhQAkZMA?h;-ukIe(yR?OX7nkucVH4N)hvrFM- z0_gx1HIY>jl- z4xeUBes-~ROKzLbxD_5DxZJs7d=_15_M z=~_vYq6&$~9W74Dm@i*mT5Cxqp<>%>XU;+?y5F`ZlTy~@>0Nrk)XMA2TLkxgUmqTZ zp@Ml`khD?~c9NTQ?Ur+MC#;0uiWaIWWZ!QJ3e1)zog!U6q-ep`ZV++M%B7T2iZNV* zwKjo;2&|amQc4Eg1KPr)Rd>HUEF#hz?vZe!vMekM8S(JW>#kh2n767hRdrfu$+ZJm z2ow5cU3XP)P0TK)b+6_z3^TTnH8M;6YyZXbZeQjw#*a$gdiZ-$w$kIF%ioD@Z_`_ZpV?v?3=amCg7;*yq zjPN!Jp{6H$G3ItmL86hC>Wq|;0Y{yMgk9(fdU(QQjf_!|v_yUtSTw%iUC0zCZ{d`n z386@f*tYoN=iBEd`tYIGpf_~?cwQN7JhZxn>R$1b@kQ~y(pqlYw{FQk>An8?CD8JZn!&AQxM$i zCU6lb)c0MjkX2nE!oFnC5In9IRTXyYR+r^4ifQB_+FT*c0}{1Wr7z0@k*#_sf&!(O ziP&29z0vWq-5|Tlqglx{g<3%$6*gp!s+HTeElYt}+iOHKv(y7;wihD|Tf;?cF)@8j^06_%VvUZ6Pk}6K>q2!OVy>Pr56O|V8Q9Arj(7uUN zm9(yl2>lLAixV<;#6qXK;^W7glLiQ_2H7# z;0Vt-@!q!2zx%hP=+k#U5nU*<@7qv#6A*7rVC;P%E)P#CBI_enO=a6QhPVfy^|t3g zV_i$TU8mACyoomv(XvJ~y1-1_p(@%p1J0l=41~LQ1sUQ>I$dpnE!*vSxvUS%5^b+j zLA;hy>g`5b#7r3_`RUMr(g7je?e>XKJbhgEFN8Ar?||pEN1A|UY&#Uo za@lXUQY?{jBkD5-03nb*U_d8xVT4ljk^eO9cDtXBV?BmN3*GCMQ{#i=H2jqYo|a-f z@&JyM_r4B}$l*vFXd?(t(PZ5_pf)6MDS;UiSe;Rr3dKFa1R|wRb8(D5<1WzRFfHJe z#u~ww*ZTV}w=4DX{{2tCd3U*#gtjt5%2Jy{7luo?X7T5ql86xg{&&CIK7ac7;r)or z6Gn)chr7F&St%k9nUbNf58wT;m_0pSwzunzz4=$uVg-t5Zf4QrN;y`EMYC^HQIu46 z3dK6iU%XZ<3rY#E$u56;d4XAoDAeG>SRWrr**(Z$P;F6#C=8U?>0W3-2O|ZRE@H)s zlI!E!9%iOP7#q=pRVcDoUqp(kz5BSmy=FdSe$1jJOSQ}8Qm=1Vio3h$Dk0Pc&2z_; zMIno|=CqOnc#W-XH@!T$SScYckcd{b6p9pGJoxhY$7Ovi&+jC-uBg>@@MGyAsu7_v zbunG@bJ(Sl_upx7i6uf>!$wAMKT8oLT&A^!F_pj+BC?8(1K^*}YX*Ux@{MrXf{vdLb3-(PFy@dpLO#E2e|p((#QN_2PrrHh zu$m?EPE|;UF3Zxk|DUXPZ<6FXvi$tG`;E-%YCK5pfaFNKt672|Ia)J){|_XSX~ZFb z?yky=xc<-|?l&@I`8i~Ms1*LlyvMnu`;s?%g1l0S#5iVKm|>pObV6^Kc&QH%L^`l@Oth$Y`y*x zcg)mM>nwn6B#`02lRX1C3H;9_lZP{8QR_JWDW(3Iw}6Jg*`+X zhd=EvhzQDfri#)N;pVYF;1#L+%a{Eh@ADq?;oFaY`2ORjEG!UR*}QE~@~q7hQ{x~X z-ktied>SW#CBl_~gviJ^h&d^h<>lqWm-lyKfeu!^y}d=I=s@^(y@-x*_v45)O{;#r z-ar7NBQvPDgJlwk;0Pjecej}7V{B0c>lkJ%+9MoMt+O!0GS!Zq5qh~&5>v_;<}(6{ zY@ov`2ZRwokL)|%0!bv`2%j-kwu-PPkxV%2aofk(hDa3>5aF|BU70#m#UF7 z4B;s9bKUwB8%Pemr46Ms+R za6wjje5F#;O3le*6aG zI>KYlxgSJjs+DB+{fKF14hC~;aJl4VZe1WuFo#M+P?$i{-6PYZKvx}lr`q9JWpwTaBZCs6rQb+506y>5b83NbhG5kC zwb&uG1>>911`&m2VjCUQk!%|Mtnw*pS>!vS)X)*1nJm9do4V|^Sbz`Y}vbJ^Ht2@z7BNwEXKD20L z%z%$A=DzWjg}td9(J?@7f(Z8(K833eCQ7%+oaUkw?SkU`9WDQMfv>54;B3hdqqul5uAwb7=qWYP+o{wmrUJoDV zm;Y2|7WFU&A&Bc0Es4zK#g2nPfcWig`|wS&AWTM*)f6{|a>;R{e2~3VDs=Md486TC zB_XX>I!nOIrG}&KnwUD7YGs7Ax}x2-ZSyTr9z6-#8=b!>Ax~NH_0CDH-umyZ;CALG zAj6Z1AQw55L1)0hVp(V#Ye3IPhDf~M{pYv&c{;Z7@rU1j|K01x91#(vR-owZWyEss z0I2v9Auwb)XXNnXOk|G8W8Z)KyYB&J9j!DCB4*iMEI0@;Cm=R`Y?uD@l_dy>Xj--MeC1d!9NFmPIAk7p6=XWc_t~xmZNubZX?f(A zoB#ZFyv>ly_U#YfefQmm(Y|boVn|m5lJn_B%-YUCkett z%n?ap;Q}!K3$W%=w%W{J-{&v4d9&2(<@?`#{Py*#T+-Go7IGvNwKa*V z9zMgQ*8W5q9tTQyH)F;zE&GzlM1%*3k6(U$`Qcx5yReEtK7R9|3aNeHFP9JDwkac1 zkZCi)V4lYzES+6PwZ_dB^y`R(XTal38m=#lAQ47EASa3*i>p%Dw3(3>AtFrS(VS;t zaiZgxyhaKUX@_NarW4@5d;+6*Q>-JCSU*rY3&2WYj;aJB!aJA@Quw`+pw3LmaF4LL zZJXN>1fMS4Gx#1SL|tKC(Gs*`fMK4%K@e3l8=^!B$QXPax8MO8={vK{6!*9?3D}PV zfT#jQq8H-2mwKuE^wf>#%UTescNeZxthz??=G=T26+jc44C4swha*uGoy}heX zMmdVH2}MfW?}0Hse3u}tb0lKU$z}KrXBG>8ih4K)w}Q+e0FT-z6}>e)CXuCu&GU61}lr|xLgFkw&{QH`PAZ23&Nu{etgqu&Z!uLF7 zaHptl*UJzUuRCEkC-w%^f9@-j_piBTd zv~u1eQ^2&~+BK$7ZnCV;9m0TsJM#gHt48kgxRa{trXu84+k*%XJKD5L6~ER1peaNqBe zv5l>?w{^~o;PhZ6Aj}1Q!5Q^{l%>e%d3z(C7Sjq}!#eBGa$m<+#r*_B&M^BYfb4>l zMAE~B&L@AIAy0`$#feywrDC>H`#fMO2}h#8vZD z$?oQEX6C*m9wplz0s!N(T|d0242HJ#7!sLgcFa9in4Wuvd$s4XT|T_LUM?@!%f;Pm zhJU$SdJq`l^JqIZH(jUxEFGZ4Tn9N=Dhar%@(e0P{wRAZ!H6K zi0&KLxu6N>1HJZ)ElOHGn~vkdGOM%T33-Ck_6|H_tey@0-F6cbK|g-jRFoJ&$V44E z=Pt}6tdmU7JdO|$fT1eFT<=jcF1Y%di+w`$QS)0Ub*#~>#Q0(k%cAOJ~3K~xG=U1JT%by(8zek;93 z`TvNyl~w38qV}?bBY|(1!Wpk!Jk#+8y@O;x8=fU|SMR=!G}x>Q@&0G(>;R*#nd|Epy6CuSTu5y}7g zKmS_D$V|9r(Z%`|I8(l;L6Afw0udS8AQnKIRtYNFFRNO_e!Eri7Vd@Yt_+}>$iKb4 zfBy3BHW?^JM}k?!0E|F$zr6-iPs$GF#uhV+uxO`cg_+Mu3=xDoMPxd;5pdDr5gF6= z+onymO1J8R;ZA9G+^@pHl0Mz-l&Hfe8V#4svW+1+Aj-_0FICr4=BESF7f?n6c) zQmCiUL=4tZTZMW;GeHp4Jr|PUj4c$tWX%F!xM| zb>o;m@0o!pz(k+`j^P;fDKu|) zz9q_O{4>)-IrhLKpOPCe_Y9gEh*kWE-k;KXe3!ntwm%DVc$SDywLekmbV?cg;M6{} z5o=z^@)X^ED&e{wlE3`>k7gc0wRGv;c9Ep&ajRQ6iG+ngup{<+5`|lBno90bTjFH7 zzu%%j0^Rv@B!%0t9}z8z1~P3DrA08~^FRL6rmaDt6H(c>ffUA2H7|NpA*mv)p0Kbv zt2B0xsAME}pXL!s$TAfWz!L5ZC}XHbl7cp={VueYm_focfK5T5a0@~W7Ly1?8DWTS ziUh++lGwlwE~A4}%>5ofK$3-Z46QyMl-`#@_&jb&WOJr_t1;6fEHeZ|NfyBrjNWpH zh$UOyKOHuPP<`*#n4Y6r8l*#ewI5T>B02yKFlE$Yi~ z%ZP*!xOVj-Oc^bVTcDW|rjHKK&91siQc9GO^Efhc2$w+C=v5kK?fW?sG?a+Jqaz5RvnMS-XWID9f-xgCWXwMv#vBCEoYB z>7YjdQWjA0>`>4DxxBsfL{UBs@cb;)JV$HwZl5`)jE4Yvo#5Pjokdq(&B3EEf0$O{ z@&2uA;K8?g7W@-PdQ!whDS!U!kJZH%o9<+quiWkEy&GfOhRuTotfEB@uX??{J%Sw* z;M?uZ-N6Fpu??Sd-u7e8%p^CU7vlg_TZx2at6t$sPDI($&vb*R?ODGX7C@LY$6h!T;TiD*$hMf9I=tRgbT0JP=D_4zWNW2OGQ z2}4+if(7Wxs+Qjn$?#wXt7keS!5%r?oppzVsM(yEcZ+cMhVG zj2J2~1I@xk8lBsij!bIQ{{mPgqd0VMrldHN^6>jgga6R`0a?6$i zFQz7h5>Y>% z2}L=!qKdMP?tQp$lT^JyfG(Fy8|~V?)PD*KNB7h``5UoY^ zIy$)K~D`>SyD%^26Oiy+C846kwvFFgGdPK8Wju}m0=wP7^RIP7kY1>XHik$!b zNssinY0iZ0_A#EREOa)>XU+}Dpa1$l&QSKGjBq!vez_h66%o-$D#HdZ2w_1X>%}ik zJU|{W` zA(cXGgj-}1O9}K@7zq}oblolhq)5H0ZnJ#lRaSYDh1bQ(Xaq6B2g5z?zxER~h!fS8f;pqoM&J-gNjqr{$ED+lEyBr^hfY_zBY(&KJexECzOE@FbNtBZI{XS|o zxE?RA_V45Y*6fn;1Quf^jtpu~;i+PvW}UJ;r3U09uym~)u!JqS)>buoe4=+gCi$%x zJRj$LCgNsK8t6n@O?>U`SV|X?7=D!Nz;4{Kr3`=ODOZm4CWfSlye}@I1pw5 zQJP0s^$%~KzwG<&ZfzoOy>zr3Zw}&i_ir@ zUbazgn=%ti-BMEZ5i$63xl}&eJPsn{yr15AX3{e>6I{Nl`lNzjNy$vALqx!t!OWfQ z?g1by>fSg*5-X-4%pO=TN`u@F6V(>|7cG>fj6NOA)y1bT7B`qhw$blgnUUMB5K@Js zj((kv8}lH_2$Sul*E5-5t&=&9_q={ne#7t?VGKcA=IT?DEdO#O0Nu7@?$-~mLF8e= z0t%quVpXrSSEf$!8Z+Rzl*1WUij$jrj(TdZQcLcy@cgGme$B}!E0=pwIUo5G`9yin zbI)*E@6YGGtnf=w@pWtlAV2=?$MZ);c%111%({*3BbmIzrFR&G0!zptN%_1MSf{>%4QmfoqOY|^2x%zaMbU%!jx1agNZKJO+Z7``)U@-Tr*!}`Z~}hm&}$$GLpIEASL8_L=pl# zm|0{$?%`9$2C(nAq&`X3>X01?SgfBp06%M6R8tny2kFPAF_ZpVp)pe3Fr0C+(=lGYH3Vw6T)l8E(dqELB+~%YdpAs}6{WikbDbklz&cjw zblLH+irfNMfN51TzN~5x7BI1(D;%~t36PRS;36yXe^Gu7K#aELvx` z#sw3tZC(?BPHJMyMPsEDJ*{c`tYI|N`3ZK|F82k8sx4^EKhBnV1&mi!Q=ITM3|%R) zIO&dAn(Y3=K58gD1-p{2OEs$Y0U$D3GYk$t&Qzt9>z2$?k4O}jKQsKe-|wG3e=ZOF zD6+mCkj}ZdG+>=&sP(hzTfh5U7 zU4)1`WchgsnO>h`iM?3Mo5mR#h;UBMa1iI*DUq%CHBVYbWJ+#JirWO(Y~h)fC#rT9 zL$$`og(CLMl3yFW`0afNc#Pr(or7@iKoE58!I}|fQ-l*5Zl}N`%DSMJFSobvFW34* z%=BeCC}m9rAv`iw@W7CttKmFh|EH>>wFh-Np`|_$&LHOH zj9If+taMEx5|%hgJB){G;7pT$N@VJ&p&x(xw}Q}RZ3&oJL;zt>XQp$JD8Ia0_B__b|6eVoLY)5Zxf$BJmD0;Y3Aq0L)gpUlmUvtO{!BXt&boD^la>WMgm2yO?fGP8hXF{_E&M4ptwBqCa58Guv_#(yT;B3Q#ex zdS&N@egH?3n^8JqW`vuCTW0a0gWM=XL^2#{LN%645ysepH6m#qtUApi+cwqI!Ayk5 ze(xzlwHT14@2S=^SVp+hJgzUV?#2YG4n+8$0J3Yq!%}HaV64lbikU~?3$Gfc0Aq`Y z)fz@#J?r|poM+PdW01olD{Si#nYU&>yzY~heVn22)K>wX5fEDRjRcD7g`}`qru}T4 zce|1pOb}vN+odI^efjk1{q2oe%-sXu|L;G3*v6;7|G&)655EMYMe*De>`Z_?kc>zK zNSMYpC<;?+EuID^g%Yu98=plyE7J<4aw``(F{Q6ID*{ACm&i=_AR<+!peQ6G#4{x` z0Af_i3#mjVc|b-Kyg5TCy(b;040K}7NFhFK=X8D?FQtTbvV)RXG|N9{Rv`A34MR|s z^vias3e8A(DX24(Ra7?*6h@X+GtzbIV#h7rvML%@%T%Alz!|970X`Rt8FVKrZNg*;!QJ*@FbQD-?o?i{$)G%ZM%5HMc5eD|B%=TATX z{S%~zB`fa}jp{vnep=4Yk~u?F818O|dGy~6B0xn!k)@^vv#QO5`wWci-0GyJcn1NQ zu47X{^t7R;?<8!V=_bNVLq+RI6d>FnL%@-Fy}lfCqWjup)EgotNETEK3CXz7(bxMj zhoyx>H;?3Sg?J>vbzJtDlp&3vAM~JQA$R1?ywt9z7D2C54@~9#&** zq7Vjbz67=cq_E8+9mX*uRW^_mz9c9R?rtgq2uV4K+0Bx` z+spfY|8`silwrc0s&n7R#*)sZjr_61P@Td;YZBDmZ z{qagG8N!|AMs3;761NdSgd$M0=`}a#1sx?Qb!?Rj<>v0^P%4+z*T7%6P3A&|@98 z8jnYo-kRE+PdV__e?Bq%*TnRJ_RrISdJ=WNO4kDuKiq2aryu_&@KvQCJa@h|v9C9qKIH-*!^0dJy3Dho;yEvh4*BWM|{>c=4};dLH3FR+ZN)a~mh z%(bOQq$f)oWzErq&?)04B1XD%Mn(uFGsflW9t?PREfy0LZkuk^9j$wiYsPiv%!){V z!^|f*e`VTn#c@}yQdZ`unJEa&e%wU1(rIp0uB<0b5v}m)2RgR^flQBhUw-mo<|CLJEdTb?pNQoYl!8)3+&$dEqCAI+M8Po5dvLQ)|UC=afv=t)!L=NcY665Y8+|NF|N7 z+z0(PGnj=7g00(D2$}}h0z%|T7?(oMoYPXuAQ?nyQ9~-Wfb$1p74j4%=3~Ek5V3A! z1CT6~$s)q+?#i?T{gAP_TY<#6Rn{F8P}{UVcX^5FTKeDk%3MX}1K5m59P49g+ae1( zw*e1*QJx9CO{@Fb_mxkzHXgAsPf~44lAr$emv*FP&)72@w+>iwVhduHn8g+%}o(UOSD8V=S#x@2>-)E(^#o0GcGmFNb_^xq>g0<<3{= zD8FXaya`04B4upvpFh>cWgFv6N~sX}B|4~a4lRgX@7f-5it85W^)RDp_4KS{tBHB= zd9N*0tBjCFZ=6)n{s#XO44{QPDX;-(g1yev5)nihn^qRSd0!@eJ4Pl0+E8<~)tJs;wsDPFEKsd4z@Y za%a@DxV}i=E*EMcdxFK>%e7Hr4ek&D50BCdL|GTXB2sy)Ljjxev z2H5KKq7&VaYU2C+oF5LvZX71NC+>g6Ql8zy|h%ST^i)U7bj5DUZ zi7oEUcqw>|XkF;*o_8G@Hf#EE+L@W9gu1GORR!b;9?BvV$+d;%(wJ5JM^UKie?mmu z4kjv!Iul*DAp});MFN)`!VhkkLk8fHqT1b5DKsI-s8eRzti4Z zqiSBu@Vb{G!tJ8s?nzW>u&B)%WyBog(h*wcgsQ9RUaLd} zs3t3itc%{q4)!{eILiu?p+Xrih4n zgdN4gTJ<)_b45}I)@C%zl9Gh_RP-<{!#!9BCB;0jifM|~K{1mV zGlps_W+P9~9-dByb4al?I5nV+Ic*GO3V^~r2`a42QRKT^p&mUMZ>n{ z{nM)Mq(wX$0|Lp9fBUKE9QCDBWK6rgzrWw^X5Q%TaXf{ik_6Zt7kGcVVRm-M1lE5vK!lSNZof$y<0 zhtr)|$~s8g89@||+Q?)I$lL-XI;Pp;>GqRaIIVuds;VKtC$lCfrc-*&>C>HAt$feb z*R#lq11j}@q3@o*13)Tv5D+E^^K|E=1Ofu^LYYWU6;G1pa(|a9IWuY?+EIcmP{~Xc zWz}>KpTt8T<>;$lw5DgAiDGxT#dw8T5zVrM>oEnvHO`_FK2jQoKtxVUVBc@omsfHV zmU_0sJ!+kM}c4j_s%9^rQE5Dub!+IW54t}m+NEQOeB zDzjXaoi*YM}7@B}(;sgvgpgQdO&k^@|E547V6#MCKR+K&f=<`CL|#%A77W zkuoq+hEY&GU&W#N?M0Ut_v17>)axr z+`jApo=0OTKmPk)Ba$NLoO3_!xBGs~#g)t6t(NP9Sy(gja@n@A)h4xiueJ(hFbEy0 zeo}=g6JGk_Y30e3im<)FLV`HnX9_UheRzOa58#W&>uL!dTFzmzuBaE zMtqI$VL4G+NWGxgJl9uB@_(ggH~dfIO`j^p(zk9r`#)vR&m@tU<;(6qP^! z?Jqvfj^jA&zTc;nZ8tL0-N0Hl)Qi-9!$t)t_*5Qq9 zC~NgEtz8;-&Pu~po0+#F?@A|3l{3j0WAmDohUempoW4^meFx(aQ(j_M5x#6!FA9YDI(U@n%XATvuHAj~I7xvD^lsHtKxNNwK3Nvg1^lAs=9IpxA6 zkIwZZ<*nDOD-~lox8EIYw0M837Rj6;)6hUW&?E%py}~x`*iKk~+Ii_sF6qm9!@s zfffKi$y{q95X<9JX%s=Nc!rir$-MIen46D>wt<%F4iVWY03)#ClxzG~8eJM%0Wq&$eRi+MaHPEO0NLFrq|| zfBEAdj(zUOj7P{>qMt=75U1z`U?D@VA-}#|p2()P_NnTpT%^mP+}T(aJ=7jiE`sb@ z)-Kvb@vM8j!hCv)bd2R#FLwLl%XdN2q}$#}5>eUV2~3=nEKFhBxQGf7SR_2An@GV{ zu?}@|n;9m{R!_~rr8Z@2fKe|8q{Ax0pBA6gw2k@VTALFG?HW;(GJtxA(qfQ<4nMBqV*0~5+i0BjDjwb;N=AFXYil2=G##7!wM)`^QGh;AVXl0;-QPO|Tp!D|Bxz`&W=c_7OZBaxpqaMxG zI<--`9L5z#wSu4Wv^cVej6o5FyXj)Fj8K^%AF4zUZUplBtwoxHC35vWIKh|a%6sLH zFk5{NENQ)}^C;RyAx@3U9#9Vb%uIt`0J6CkL)$aAF@(yA(f03oyaCdE01@*FBRkCr z&sv}d4vIU?bX}SyEOR%3u5ewCWfsP0Z zuZLTN$K}N>?EV>MGA`w7Ec1$GfVy&6;nrj%m~9tn*4Mz1U7Bx(J`-&5RVTQ4uOT ztSCtjm173UKw0Xhp{Ro`K`p!=Hw7S~mpoL$txBfTqU0sP_*$CQOv`YedlcP=tCMLW zLXk6Bx8r`F$J_SuQFSY4Pj=p>K4b++kQTQ=Z=KUPxpZHJu|Ds3AEDY$ zJyCNPPx)sDPAq_Jmc8Cd85gCn65NSfRtb0^*Bg4%wiFL) zz9|qbtOBuQX31Iwa1T!q4_2uRVNXhPE(aX5cN!YfClNW=NTyrlSyU!RxXrW~;cf?K zq|LeC{Fv?@WQ0)B<2WLWs6#PGI6+j|FkuyrlHsx6sbaJvBD@Yxn-lKD+L^Q!!R@}H zh3nRhELrXfDlEwzM{+p8e%vWi1ohO^3T@6g-NT&`6}6NZ9$7?drb33@bMCZ#3>LUC z8Pbt{j?QX}R~5axSI&rT<9dBLEc|#g+qajGQXp4I&*eI}r$@O_kps&qkNOj}ZtD!< zDA!hLl<_!3nxdW$#SNYV_D;(5GaodcQkmAoJd+6W`#=6ZSGY|?*narF2a$|XZb{1E z@~SYWTRo%|Y}*D+FXqpw&_vgX>%Qa2n1?3-E}mM(!eSI6-|U3?W=0tmcxcPrq6cKc zoQ=s(7N(Y6Ze3Cq{ckOLn4u~nP_C(H5VuM*-MVOGK$IwoL7Sw75DaK|teI*b+|@dI zL>6%yAkic^fn-2cFP9|dais`mN!A*z>bRCxkO}kHXPVg?Ln5(95i>ZFDiD)Ncx=vU z=1_6lle4x7o^4U9xK0nx2q4pEW~T4qyWMZ|{+2%7rq_fz6Wy~R2vq*>`m)2L{llC@ zIW!_zH<0JN$+!Z}X{@7K`wU0Djm!!5V~?-~z5|0nM0;csjhBzrm$FDuk_VQFXxUiW zqeu^6!;(*zt`1KfFo=i*t%~5zI%0Z^YaVua!kJIDTsP-03_i;$YPWG}E(J~|dC>IK z%Vkrof1pB2s#bI}EWM;qrdtI?_Ejy!KWTDuXchpNUd=B!o9fH=;;%Qz0O^ym*8Y zMUuN4a~wCNBXzhPCw^q%lD?P9JS6p7Mf~=A(2_mD?KNiM1gq1SQ3@uGD z06{DE7)W=@Xoh8wQ*JuYL2GUEXP^>rA496llb(cvGgTee2Mk3Y1q`YFg6A}hjR6Hk z-$GdXa%!4hIr_mtzPg+hM3U?ERwhb>b5SX4Vq1}A+2ew2_i*J#Xk%+ig4%0Vv9Pz# z@Aogeyndrv1sFH?l{txvA1QqOc-c0fo=^u9GnuE)aIbSTii8zB296^*Om$nwT9&(( z*On+%!#$(&)H$HR6C_DBd2<4p9q$o?)tv11Y0S6l%Xc!aU=DM42hxvs*3Ic7Jeebo zU+I3^#}*UN!I_*hMKcqs#b5;>5i~R{%_hbrj(xs=67b8*#~`k#^Ev0H8h%I{U+QU1 zl(M+vCCd;S(p&tp8Fq7tbAPbH9`R5(2cG3_^~n_eV~t%;5J`LYK&KH+{`g=2H3>c~ zDaX*#d}os><>6i{hmJ54nR^@CGOK{bvhdYe>+Tjo;~E*G6tnFeK$Pk(npwmm#6?uC zq((q0L#k&2;RXV$)~1k8YgsTvFWV)-C#AGh2JILEm%G12HM!>Jpe!eTahiuf>$#cx zs&6PGDif*hGN_h%vIdSdo^PX0g}+0Rh;`!+AL->qhB8n#04M0>gXl<~LH8j;M3qsU zIG$8mPrB1a_*iyKe+xU8 zXqZpY$c&h&mUdR4AU=OT{9JOx_!D4aPDQO1zBFuqA$vA51vdd5cSp{DkudKy)=RA4 zY2MrRh?}eRrGop_o^%6qJ3sW7-+s+V=2Ae-yF5a4gfc5+~cOhcGG3qfXCG;jU z7J*o0j@R+_?kbYef+Jf6ebJKGRN&_FW$q<}Zrf_l_U=`3uZ15L3DGyIc9)TA2Fq8| z#7STy(d#GJmr7R-epT_5H=E%3`B)XYG*|c76)$$2?!LF^Rfnyn2GV@gJG~&MZZ=d- z^G>-l35??$6}exJSW7}`SjsI#;Q9Ra`Q#WKiWiRatlvhgC?0pjRsWY&ladOwD;>%k zj$T2c)?QglvD()Nl0>XdsF4Ek<2yaSf2=jHiww;i6|-cTGUSaqbR5iSKm3c2?}iWP zX*NtC{(b7ZjW-p0JI4DkKhL(rQ|0}ib-Y3C}NLDXF4Ki3r(<20$n*7m#gS z-j`nRjltQU(#>&Hb7}>%1{h|hkhvCBAQrj6^l^;gL;DCAYm%uxG8QxTMz%sf-BXr~ zm>**lwgj4e&j?c(mA1)@nM^gtc3c&aqU>%`5G2V=<-*;h3yQg^nrY7G%4urIj9y*c z#f35>#&FFhUH3BIT*^nVp6j0UnvDoCh-5AS z)koHLqM9cw!3el{swpTjeVnPB*8>pq!BC1zJQ>jAyO4L$(FQ~T1)*cX6RxCV4K?9h z0Xu&f=iBR!HZ-3`W4_>BxxYauS#NBCEz7$bPRy(@?ecBU8v zMaA3@c{@ytJA-JGN#2dqMU>Dc{1h*wZ6q5pY(CbUs#cSY`B3+mmx#K+$y{qaKIb*F z&9PsH>vkK~B|^c9CD)VJ6w?LWs}e+JWVBJ6P-) aZ(VX0%S+2IqG7LJ$k%IEM?F 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 gzu0c{O&$9G0mpF07*qoM6N<$g7G7xPXGV_ literal 0 HcmV?d00001 diff --git a/examples/textures/skymap_nx.jpg b/examples/textures/cube/skybox/nx.jpg similarity index 100% rename from examples/textures/skymap_nx.jpg rename to examples/textures/cube/skybox/nx.jpg diff --git a/examples/textures/skymap_ny.jpg b/examples/textures/cube/skybox/ny.jpg similarity index 100% rename from examples/textures/skymap_ny.jpg rename to examples/textures/cube/skybox/ny.jpg diff --git a/examples/textures/skymap_pz.jpg b/examples/textures/cube/skybox/nz.jpg similarity index 100% rename from examples/textures/skymap_pz.jpg rename to examples/textures/cube/skybox/nz.jpg diff --git a/examples/textures/skymap_px.jpg b/examples/textures/cube/skybox/px.jpg similarity index 100% rename from examples/textures/skymap_px.jpg rename to examples/textures/cube/skybox/px.jpg diff --git a/examples/textures/skymap_py.jpg b/examples/textures/cube/skybox/py.jpg similarity index 100% rename from examples/textures/skymap_py.jpg rename to examples/textures/cube/skybox/py.jpg diff --git a/examples/textures/skymap_nz.jpg b/examples/textures/cube/skybox/pz.jpg similarity index 100% rename from examples/textures/skymap_nz.jpg rename to examples/textures/cube/skybox/pz.jpg diff --git a/examples/textures/cube/skybox_test/nx.jpg b/examples/textures/cube/skybox_test/nx.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b795935072aa4044e8686fc38567a73570530c12 GIT binary patch literal 62211 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 z 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 z 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 K0qg%a_x}Mx)gK`M literal 0 HcmV?d00001 diff --git a/examples/textures/cube/skybox_test/nz.jpg b/examples/textures/cube/skybox_test/nz.jpg new file mode 100644 index 0000000000000000000000000000000000000000..86f543dce112c3f7a1b2ef87590847aeb273b740 GIT binary patch literal 59480 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 z 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�*gUun_+n;= z8j&CHi(}l>SHMMq>_Gmds}+m*iBFZWg&Fsyd`Wjiqh-%fU1knM^ zMa4?J&#Q4=O<<&?{Vz7l)5oZ4RB@09ig?TP-7PyarIMlkY_&zRp|smj^L6mLyAi)r z`l(EmPK|u$Ao2weGw}&Xl@p|EU<@RQhG+OZbdt}dchwoszQ(v4jKhG^hJio`wN9A1 z&=xW6;Xc?dg5J3W`xaCyy4>8F&Ml63D}so=)DYvxe5seJn`8Blh(+Kia+Q+1@gPAG z7N|ObNo5s{f@m_L_Bp5AZhhk`PQii!2Jl1`$i_H^EGU+6x8H>uYT^6~g{Ykdq(_MM zLa;3sR@1$1NhCR@Ykx0TeXL*4Yo4F_((`h}J#@7E_U?at=FdhS@tpqHVWE1nKjlyZ zMtDeI^|ldDI#uV~>u;coiY?45&1k7xLPUyZCpn>dEMz!(F&c(PKO6=V$GU1B^wpp~|EU1B%uAJi?REJE18s~>N`AF>j z1Tu&p-w$Z-JjYKcd*P5m6LZ73Y9Zgx1kFBBfyJr#o(9=<0tS?QsuR#6&z=i6e!a!5 zhb{+|o>>N5`Ol>O01X``h27CN=97D(iK?t{5I>0rFS&?8QYZ(m zPSzL%LLcr6+#)EXWKf=2&|)191*PNY~du7 z=)KoEH#hGCHy$>FBSuE<2D} z3Trfq0P0fci0_*i} zTod%nE4BrZr#?HK_72-LFpCb-4jXKwZz$occT&r1Zq%X2+nO9KmX#1#JSVn-I7<6w z*U{z9ESOz|_~L8`%45EprX$#t_JPParIAUm+cPcSnmEl(R&58W57Jt8%U1KpI}EMz zBR!{I4ew*QJQEf!lFKnzh?h_%FPTfX2fO_QO5au|W%!}=kpnGM2F)PO1MAcOlC`+J*+-j3LV+NbRR*tSC5ZFZOB^PRI pk3h~<*;JsZ`1J3p(w3rQw-MovCJiQ22e_Hn56Oh$KmTv${{a;kK{x;a literal 0 HcmV?d00001 diff --git a/examples/textures/cube/skybox_test/px.jpg b/examples/textures/cube/skybox_test/px.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a6907d1689a4d303a5528fa16dba460effcaf9c0 GIT binary patch literal 68338 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 g1shR7!1+@f1tlp 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 U63`kr6y_*W5oYFo@qh3B4}P~#l>h($ literal 0 HcmV?d00001 diff --git a/src/extras/primitives/Cube.js b/src/extras/primitives/Cube.js index 5b6c2a37..a197ac26 100644 --- a/src/extras/primitives/Cube.js +++ b/src/extras/primitives/Cube.js @@ -37,12 +37,12 @@ var Cube = function ( width, height, depth, segments_width, segments_height, mat } - buildPlane( 'z', 'y', - 1 * flip, - 1, depth, height, width_half, this.materials[ 0 ] ); // right - buildPlane( 'z', 'y', 1 * flip, - 1, depth, height, - width_half, this.materials[ 1 ] ); // left - buildPlane( 'x', 'z', - 1 * flip, - 1, width, depth, height_half, this.materials[ 2 ] ); // top - buildPlane( 'x', 'z', - 1 * flip, 1, width, depth, - height_half, this.materials[ 3 ] ); // bottom - buildPlane( 'x', 'y', 1 * flip, - 1, width, height, depth_half, this.materials[ 4 ] ); // back - buildPlane( 'x', 'y', - 1 * flip, - 1, width, height, - depth_half, this.materials[ 5 ] ); // front + buildPlane( 'z', 'y', 1 * flip, - 1, depth, height, - width_half, this.materials[ 0 ] ); // px + buildPlane( 'z', 'y', - 1 * flip, - 1, depth, height, width_half, this.materials[ 1 ] ); // nx + buildPlane( 'x', 'z', 1 * flip, 1, width, depth, height_half, this.materials[ 2 ] ); // py + buildPlane( 'x', 'z', 1 * flip, - 1, width, depth, - height_half, this.materials[ 3 ] ); // ny + buildPlane( 'x', 'y', 1 * flip, - 1, width, height, depth_half, this.materials[ 4 ] ); // pz + buildPlane( 'x', 'y', - 1 * flip, - 1, width, height, - depth_half, this.materials[ 5 ] ); // nz mergeVertices(); diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index 444cef95..a5e5ae0b 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -5,73 +5,73 @@ */ THREE.WebGLRenderer = function ( scene ) { - + // Currently you can use just up to 4 directional / point lights total. // Chrome barfs on shader linking when there are more than 4 lights :( - + // It seems problem comes from having too many varying vectors. - + // Weirdly, this is not GPU limitation as the same shader works ok in Firefox. - // This difference could come from Chrome using ANGLE on Windows, + // This difference could come from Chrome using ANGLE on Windows, // thus going DirectX9 route (while FF uses OpenGL). - + var _canvas = document.createElement( 'canvas' ), _gl, _program, _modelViewMatrix = new THREE.Matrix4(), _normalMatrix, - + BASIC = 0, LAMBERT = 1, PHONG = 2, DEPTH = 3, NORMAL = 4, CUBE = 5, // material constants used in shader - + maxLightCount = allocateLights( scene, 4 ); - + this.domElement = _canvas; this.autoClear = true; initGL(); initProgram( maxLightCount.directional, maxLightCount.point ); - + // Querying via gl.getParameter() reports different values for CH and FF for many max parameters. // On my GPU Chrome reports MAX_VARYING_VECTORS = 8, FF reports 0 yet compiles shaders with many // more varying vectors (up to 29 lights are ok, more start to throw warnings to FF error console // and then crash the browser). - + //alert( dumpObject( getGLParams() ) ); - - + + function allocateLights( scene, maxLights ) { // heuristics to create shader parameters according to lights in the scene // (not to blow over maxLights budget) - + if ( scene ) { var l, ll, light, dirLights = pointLights = maxDirLights = maxPointLights = 0; - + for ( l = 0, ll = scene.lights.length; l < ll; l++ ) { - + light = scene.lights[ l ]; - + if ( light instanceof THREE.DirectionalLight ) dirLights++; if ( light instanceof THREE.PointLight ) pointLights++; - + } - + if ( ( pointLights + dirLights ) <= maxLights ) { - + maxDirLights = dirLights; maxPointLights = pointLights; - + } else { - + maxDirLights = Math.ceil( maxLights * dirLights / ( pointLights + dirLights ) ); maxPointLights = maxLights - maxDirLights; - + } - + return { 'directional' : maxDirLights, 'point' : maxPointLights }; - + } - + return { 'directional' : 1, 'point' : maxLights - 1 }; - + }; this.setSize = function ( width, height ) { @@ -111,32 +111,32 @@ THREE.WebGLRenderer = function ( scene ) { } else if( light instanceof THREE.PointLight ) { pointLights.push( light ); - + } } - + // sum all ambient lights r = g = b = 0.0; - + for ( l = 0, ll = ambientLights.length; l < ll; l++ ) { - + r += ambientLights[ l ].color.r; g += ambientLights[ l ].color.g; b += ambientLights[ l ].color.b; - + } - + _gl.uniform3f( _program.ambientLightColor, r, g, b ); // pass directional lights as float arrays - + colors = []; positions = []; - + for ( l = 0, ll = directionalLights.length; l < ll; l++ ) { - + light = directionalLights[ l ]; - + colors.push( light.color.r * light.intensity ); colors.push( light.color.g * light.intensity ); colors.push( light.color.b * light.intensity ); @@ -144,25 +144,25 @@ THREE.WebGLRenderer = function ( scene ) { positions.push( light.position.x ); positions.push( light.position.y ); positions.push( light.position.z ); - + } - + if ( directionalLights.length ) { _gl.uniform1i( _program.directionalLightNumber, directionalLights.length ); _gl.uniform3fv( _program.directionalLightDirection, positions ); _gl.uniform3fv( _program.directionalLightColor, colors ); - + } // pass point lights as float arrays - + colors = []; positions = []; - + for ( l = 0, ll = pointLights.length; l < ll; l++ ) { - + light = pointLights[ l ]; - + colors.push( light.color.r * light.intensity ); colors.push( light.color.g * light.intensity ); colors.push( light.color.b * light.intensity ); @@ -170,17 +170,17 @@ THREE.WebGLRenderer = function ( scene ) { positions.push( light.position.x ); positions.push( light.position.y ); positions.push( light.position.z ); - + } - + if ( pointLights.length ) { _gl.uniform1i( _program.pointLightNumber, pointLights.length ); _gl.uniform3fv( _program.pointLightPosition, positions ); _gl.uniform3fv( _program.pointLightColor, colors ); - + } - + }; this.createBuffers = function ( object, mf ) { @@ -217,12 +217,12 @@ THREE.WebGLRenderer = function ( scene ) { if ( meshMaterial instanceof THREE.MeshFaceMaterial ) { for ( i = 0, l = materialFaceGroup.material.length; i < l; i++ ) { - + if ( needsSmoothNormals( materialFaceGroup.material[ i ] ) ) { - + useSmoothNormals = true; break; - + } } @@ -230,18 +230,18 @@ THREE.WebGLRenderer = function ( scene ) { } else { if ( needsSmoothNormals( meshMaterial ) ) { - + useSmoothNormals = true; break; - + } } - + if ( useSmoothNormals ) break; } - + for ( f = 0, fl = materialFaceGroup.faces.length; f < fl; f++ ) { fi = materialFaceGroup.faces[f]; @@ -263,23 +263,28 @@ THREE.WebGLRenderer = function ( scene ) { if ( vertexNormals.length == 3 && useSmoothNormals ) { - normalArray.push( vertexNormals[0].x, vertexNormals[0].y, vertexNormals[0].z ); - normalArray.push( vertexNormals[1].x, vertexNormals[1].y, vertexNormals[1].z ); - normalArray.push( vertexNormals[2].x, vertexNormals[2].y, vertexNormals[2].z ); + for ( i = 0; i < 3; i ++ ) { + + normalArray.push( vertexNormals[ i ].x, vertexNormals[ i ].y, vertexNormals[ i ].z ); + + } } else { - normalArray.push( normal.x, normal.y, normal.z ); - normalArray.push( normal.x, normal.y, normal.z ); - normalArray.push( normal.x, normal.y, normal.z ); + for ( i = 0; i < 3; i ++ ) { + + normalArray.push( normal.x, normal.y, normal.z ); + + } } if ( uv ) { - uvArray.push( uv[0].u, uv[0].v ); - uvArray.push( uv[1].u, uv[1].v ); - uvArray.push( uv[2].u, uv[2].v ); + for ( i = 0; i < 3; i ++ ) { + + uvArray.push( uv[ i ].u, uv[ i ].v ); + } } @@ -307,26 +312,28 @@ THREE.WebGLRenderer = function ( scene ) { if ( vertexNormals.length == 4 && useSmoothNormals ) { - normalArray.push( vertexNormals[0].x, vertexNormals[0].y, vertexNormals[0].z ); - normalArray.push( vertexNormals[1].x, vertexNormals[1].y, vertexNormals[1].z ); - normalArray.push( vertexNormals[2].x, vertexNormals[2].y, vertexNormals[2].z ); - normalArray.push( vertexNormals[3].x, vertexNormals[3].y, vertexNormals[3].z ); + for ( i = 0; i < 4; i ++ ) { + + normalArray.push( vertexNormals[ i ].x, vertexNormals[ i ].y, vertexNormals[ i ].z ); + + } } else { - normalArray.push( normal.x, normal.y, normal.z ); - normalArray.push( normal.x, normal.y, normal.z ); - normalArray.push( normal.x, normal.y, normal.z ); - normalArray.push( normal.x, normal.y, normal.z ); + for ( i = 0; i < 4; i ++ ) { + + normalArray.push( normal.x, normal.y, normal.z ); + + } } if ( uv ) { - uvArray.push( uv[0].u, uv[0].v ); - uvArray.push( uv[1].u, uv[1].v ); - uvArray.push( uv[2].u, uv[2].v ); - uvArray.push( uv[3].u, uv[3].v ); + for ( i = 0; i < 4; i ++ ) { + + uvArray.push( uv[ i ].u, uv[ i ].v ); + } } @@ -342,7 +349,7 @@ THREE.WebGLRenderer = function ( scene ) { lineArray.push( vertexIndex + 2, vertexIndex + 3 ); vertexIndex += 4; - + } } @@ -384,76 +391,76 @@ THREE.WebGLRenderer = function ( scene ) { mAmbient, mSpecular, mShininess, mMap, envMap, mixEnvMap, mRefractionRatio, useRefract; - + if ( material instanceof THREE.MeshPhongMaterial || material instanceof THREE.MeshLambertMaterial || material instanceof THREE.MeshBasicMaterial ) { - + mColor = material.color; mOpacity = material.opacity; - + mWireframe = material.wireframe; mLineWidth = material.wireframe_linewidth; - + mBlending = material.blending; - + mMap = material.map; envMap = material.env_map; mixEnvMap = material.combine == THREE.Mix; mReflectivity = material.reflectivity; - + useRefract = material.env_map && material.env_map.mapping == THREE.RefractionMap; mRefractionRatio = material.refraction_ratio; - + _gl.uniform4f( _program.mColor, mColor.r * mOpacity, mColor.g * mOpacity, mColor.b * mOpacity, mOpacity ); - + _gl.uniform1i( _program.mixEnvMap, mixEnvMap ); _gl.uniform1f( _program.mReflectivity, mReflectivity ); - + _gl.uniform1i( _program.useRefract, useRefract ); _gl.uniform1f( _program.mRefractionRatio, mRefractionRatio ); - + } - + if ( material instanceof THREE.MeshNormalMaterial ) { - + mOpacity = material.opacity; mBlending = material.blending; - + _gl.uniform1f( _program.mOpacity, mOpacity ); - + _gl.uniform1i( _program.material, NORMAL ); - + } else if ( material instanceof THREE.MeshDepthMaterial ) { - + mOpacity = material.opacity; - + mWireframe = material.wireframe; mLineWidth = material.wireframe_linewidth; - + _gl.uniform1f( _program.mOpacity, mOpacity ); - + _gl.uniform1f( _program.m2Near, material.__2near ); _gl.uniform1f( _program.mFarPlusNear, material.__farPlusNear ); _gl.uniform1f( _program.mFarMinusNear, material.__farMinusNear ); - + _gl.uniform1i( _program.material, DEPTH ); - + } else if ( material instanceof THREE.MeshPhongMaterial ) { mAmbient = material.ambient; mSpecular = material.specular; mShininess = material.shininess; - + _gl.uniform4f( _program.mAmbient, mAmbient.r, mAmbient.g, mAmbient.b, mOpacity ); _gl.uniform4f( _program.mSpecular, mSpecular.r, mSpecular.g, mSpecular.b, mOpacity ); _gl.uniform1f( _program.mShininess, mShininess ); - + _gl.uniform1i( _program.material, PHONG ); } else if ( material instanceof THREE.MeshLambertMaterial ) { - + _gl.uniform1i( _program.material, LAMBERT ); } else if ( material instanceof THREE.MeshBasicMaterial ) { @@ -463,11 +470,11 @@ THREE.WebGLRenderer = function ( scene ) { } else if ( material instanceof THREE.MeshCubeMaterial ) { _gl.uniform1i( _program.material, CUBE ); - + envMap = material.env_map; - } - + } + if ( mMap ) { if ( !material.__webGLTexture && material.map.image.loaded ) { @@ -491,76 +498,74 @@ THREE.WebGLRenderer = function ( scene ) { _gl.uniform1i( _program.enableMap, 1 ); } else { - + _gl.uniform1i( _program.enableMap, 0 ); - + } - + if ( envMap ) { - - if ( material.env_map && - material.env_map instanceof THREE.TextureCube && - material.env_map.image.length == 6 ) { - - if ( !material.env_map.image.__webGLTextureCube && !material.env_map.image.__cubeMapInitialized && material.env_map.image.loadCount == 6 ) { - + + if ( material.env_map && material.env_map instanceof THREE.TextureCube && + material.env_map.image.length == 6 ) { + + if ( !material.env_map.image.__webGLTextureCube && + !material.env_map.image.__cubeMapInitialized && material.env_map.image.loadCount == 6 ) { + material.env_map.image.__webGLTextureCube = _gl.createTexture(); - + _gl.bindTexture( _gl.TEXTURE_CUBE_MAP, material.env_map.image.__webGLTextureCube ); - + _gl.texParameteri( _gl.TEXTURE_CUBE_MAP, _gl.TEXTURE_WRAP_S, _gl.CLAMP_TO_EDGE ); _gl.texParameteri( _gl.TEXTURE_CUBE_MAP, _gl.TEXTURE_WRAP_T, _gl.CLAMP_TO_EDGE ); - + _gl.texParameteri( _gl.TEXTURE_CUBE_MAP, _gl.TEXTURE_MAG_FILTER, _gl.LINEAR ); _gl.texParameteri( _gl.TEXTURE_CUBE_MAP, _gl.TEXTURE_MIN_FILTER, _gl.LINEAR_MIPMAP_LINEAR ); - + //_gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, true ); - - _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, material.env_map.image[0] ); - _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_NEGATIVE_X, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, material.env_map.image[1] ); - _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_Y, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, material.env_map.image[2] ); - _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_NEGATIVE_Y, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, material.env_map.image[3] ); - _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_Z, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, material.env_map.image[4] ); - _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_NEGATIVE_Z, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, material.env_map.image[5] ); - + + for ( var i = 0; i < 6; ++i ) { + + _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, material.env_map.image[ i ] ); + } + //_gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, false ); - + _gl.generateMipmap( _gl.TEXTURE_CUBE_MAP ); - + _gl.bindTexture( _gl.TEXTURE_CUBE_MAP, null ); - + material.env_map.image.__cubeMapInitialized = true; - + //log( "texture cube initialised " + material ); - + } - + _gl.activeTexture( _gl.TEXTURE1 ); _gl.bindTexture( _gl.TEXTURE_CUBE_MAP, material.env_map.image.__webGLTextureCube ); _gl.uniform1i( _program.tCube, 1 ); - + } - + _gl.uniform1i( _program.enableCubeMap, 1 ); - + } else { - + _gl.uniform1i( _program.enableCubeMap, 0 ); - + } - + // vertices - + _gl.bindBuffer( _gl.ARRAY_BUFFER, materialFaceGroup.__webGLVertexBuffer ); _gl.vertexAttribPointer( _program.position, 3, _gl.FLOAT, false, 0, 0 ); // normals - + _gl.bindBuffer( _gl.ARRAY_BUFFER, materialFaceGroup.__webGLNormalBuffer ); _gl.vertexAttribPointer( _program.normal, 3, _gl.FLOAT, false, 0, 0 ); // uvs - + if ( mMap ) { _gl.bindBuffer( _gl.ARRAY_BUFFER, materialFaceGroup.__webGLUVBuffer ); @@ -575,14 +580,14 @@ THREE.WebGLRenderer = function ( scene ) { } // render triangles - + if ( ! mWireframe ) { _gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, materialFaceGroup.__webGLFaceBuffer ); _gl.drawElements( _gl.TRIANGLES, materialFaceGroup.__webGLFaceCount, _gl.UNSIGNED_SHORT, 0 ); // render lines - + } else { _gl.lineWidth( mLineWidth ); @@ -594,9 +599,9 @@ THREE.WebGLRenderer = function ( scene ) { }; this.renderPass = function ( object, materialFaceGroup, blending ) { - + var i, l, m, ml, material, meshMaterial; - + for ( m = 0, ml = object.material.length; m < ml; m++ ) { meshMaterial = object.material[ m ]; @@ -607,10 +612,10 @@ THREE.WebGLRenderer = function ( scene ) { material = materialFaceGroup.material[ i ]; if ( material && material.blending == blending ) { - + this.setBlending( material.blending ); this.renderBuffer( material, materialFaceGroup ); - + } } @@ -619,7 +624,7 @@ THREE.WebGLRenderer = function ( scene ) { material = meshMaterial; if ( material && material.blending == blending ) { - + this.setBlending( material.blending ); this.renderBuffer( material, materialFaceGroup ); } @@ -627,15 +632,15 @@ THREE.WebGLRenderer = function ( scene ) { } } - + }; this.render = function( scene, camera ) { - + var o, ol; - + this.initWebGLObjects( scene ); - + if ( this.autoClear ) { this.clear(); @@ -648,40 +653,40 @@ THREE.WebGLRenderer = function ( scene ) { this.setupLights( scene ); // opaque pass - + for ( o = 0, ol = scene.__webGLObjects.length; o < ol; o++ ) { - + webGLObject = scene.__webGLObjects[ o ]; - + this.setupMatrices( webGLObject.__object, camera ); this.renderPass( webGLObject.__object, webGLObject, THREE.NormalBlending ); - + } - + // transparent pass - + for ( o = 0, ol = scene.__webGLObjects.length; o < ol; o++ ) { - + webGLObject = scene.__webGLObjects[ o ]; - + this.setupMatrices( webGLObject.__object, camera ); this.renderPass( webGLObject.__object, webGLObject, THREE.AdditiveBlending ); this.renderPass( webGLObject.__object, webGLObject, THREE.SubtractiveBlending ); - + } - + }; - + this.initWebGLObjects = function( scene ) { - + var o, ol, object, mf, materialFaceGroup; - + if ( !scene.__webGLObjects ) { - + scene.__webGLObjects = []; - + } - + for ( o = 0, ol = scene.objects.length; o < ol; o++ ) { object = scene.objects[ o ]; @@ -689,13 +694,13 @@ THREE.WebGLRenderer = function ( scene ) { if ( object instanceof THREE.Mesh ) { // create separate VBOs per material - + for ( mf in object.materialFaceGroup ) { materialFaceGroup = object.materialFaceGroup[ mf ]; // initialise buffers on the first access - + if( ! materialFaceGroup.__webGLVertexBuffer ) { this.createBuffers( object, mf ); @@ -703,20 +708,20 @@ THREE.WebGLRenderer = function ( scene ) { scene.__webGLObjects.push( materialFaceGroup ); } - + } - } else if ( object instanceof THREE.Line ) { - + }/* else if ( object instanceof THREE.Line ) { + } else if ( object instanceof THREE.Particle ) { - - } - + + }*/ + } - + }; - - + + this.setupMatrices = function ( object, camera ) { object.autoUpdateMatrix && object.updateMatrix(); @@ -738,65 +743,65 @@ THREE.WebGLRenderer = function ( scene ) { }; - + this.setBlending = function( blending ) { - + switch ( blending ) { case THREE.AdditiveBlending: _gl.blendEquation( _gl.FUNC_ADD ); _gl.blendFunc( _gl.ONE, _gl.ONE ); - + break; case THREE.SubtractiveBlending: //_gl.blendEquation( _gl.FUNC_SUBTRACT ); _gl.blendFunc( _gl.DST_COLOR, _gl.ZERO ); - + break; - + default: - + _gl.blendEquation( _gl.FUNC_ADD ); _gl.blendFunc( _gl.ONE, _gl.ONE_MINUS_SRC_ALPHA ); - + break; } - + }; - + this.setFaceCulling = function( cullFace, frontFace ) { - + if ( cullFace ) { - + if ( !frontFace || frontFace == "ccw" ) { - + _gl.frontFace( _gl.CCW ); - + } else { - + _gl.frontFace( _gl.CW ); } - + if( cullFace == "back" ) { - + _gl.cullFace( _gl.BACK ); - + } else if( cullFace == "front" ) { - + _gl.cullFace( _gl.FRONT ); - + } else { - + _gl.cullFace( _gl.FRONT_AND_BACK ); } - + _gl.enable( _gl.CULL_FACE ); - + } else { - + _gl.disable( _gl.CULL_FACE ); } @@ -826,7 +831,7 @@ THREE.WebGLRenderer = function ( scene ) { _gl.frontFace( _gl.CCW ); _gl.cullFace( _gl.BACK ); _gl.enable( _gl.CULL_FACE ); - + _gl.enable( _gl.BLEND ); //_gl.blendFunc( _gl.SRC_ALPHA, _gl.ONE_MINUS_SRC_ALPHA ); //_gl.blendFunc( _gl.SRC_ALPHA, _gl.ONE ); // cool! @@ -836,22 +841,22 @@ THREE.WebGLRenderer = function ( scene ) { }; function generateFragmentShader( maxDirLights, maxPointLights ) { - + var chunks = [ "#ifdef GL_ES", "precision highp float;", "#endif", - + maxDirLights ? "#define MAX_DIR_LIGHTS " + maxDirLights : "", maxPointLights ? "#define MAX_POINT_LIGHTS " + maxPointLights : "", - + "uniform int material;", // 0 - Basic, 1 - Lambert, 2 - Phong, 3 - Depth, 4 - Normal, 5 - Cube "uniform bool enableMap;", "uniform bool enableCubeMap;", "uniform bool mixEnvMap;", - + "uniform samplerCube tCube;", "uniform float mReflectivity;", @@ -866,97 +871,97 @@ THREE.WebGLRenderer = function ( scene ) { "uniform float m2Near;", "uniform float mFarPlusNear;", "uniform float mFarMinusNear;", - + "uniform int pointLightNumber;", "uniform int directionalLightNumber;", - + maxDirLights ? "uniform mat4 viewMatrix;" : "", maxDirLights ? "uniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];" : "", - + "varying vec3 vNormal;", "varying vec2 vUv;", - + "varying vec3 vLightWeighting;", maxPointLights ? "varying vec3 vPointLightVector[ MAX_POINT_LIGHTS ];" : "", - + "varying vec3 vViewPosition;", - + "varying vec3 vReflect;", - + "uniform vec3 cameraPosition;", - + "void main() {", "vec4 mapColor = vec4( 1.0, 1.0, 1.0, 1.0 );", "vec4 cubeColor = vec4( 1.0, 1.0, 1.0, 1.0 );", // diffuse map - + "if ( enableMap ) {", - + "mapColor = texture2D( tMap, vUv );", - + "}", // cube map - + "if ( enableCubeMap ) {", - + "cubeColor = textureCube( tCube, vec3( -vReflect.x, vReflect.yz ) );", - + "}", // Cube - + "if ( material == 5 ) { ", "vec3 wPos = cameraPosition - vViewPosition;", "gl_FragColor = textureCube( tCube, vec3( -wPos.x, wPos.yz ) );", // Normals - + "} else if ( material == 4 ) { ", - + "gl_FragColor = vec4( 0.5*normalize( vNormal ) + vec3(0.5, 0.5, 0.5), mOpacity );", - + // Depth - + "} else if ( material == 3 ) { ", - - // this breaks shader validation in Chrome 9.0.576.0 dev + + // this breaks shader validation in Chrome 9.0.576.0 dev // and also latest continuous build Chromium 9.0.583.0 (66089) // (curiously it works in Chrome 9.0.576.0 canary build and Firefox 4b7) //"float w = 1.0 - ( m2Near / ( mFarPlusNear - gl_FragCoord.z * mFarMinusNear ) );", "float w = 0.5;", - + "gl_FragColor = vec4( w, w, w, mOpacity );", - + // Blinn-Phong // based on o3d example - - "} else if ( material == 2 ) { ", + + "} else if ( material == 2 ) { ", "vec3 normal = normalize( vNormal );", "vec3 viewPosition = normalize( vViewPosition );", // point lights - + maxPointLights ? "vec4 pointDiffuse = vec4( 0.0, 0.0, 0.0, 0.0 );" : "", maxPointLights ? "vec4 pointSpecular = vec4( 0.0, 0.0, 0.0, 0.0 );" : "", maxPointLights ? "for( int i = 0; i < MAX_POINT_LIGHTS; i++ ) {" : "", - + maxPointLights ? "vec3 pointVector = normalize( vPointLightVector[ i ] );" : "", maxPointLights ? "vec3 pointHalfVector = normalize( vPointLightVector[ i ] + vViewPosition );" : "", - + maxPointLights ? "float pointDotNormalHalf = dot( normal, pointHalfVector );" : "", maxPointLights ? "float pointDiffuseWeight = max( dot( normal, pointVector ), 0.0 );" : "", // Ternary conditional is from the original o3d shader. Here it produces abrupt dark cutoff artefacts. // Using just pow works ok in Chrome, but makes different artefact in Firefox 4. // Zeroing on negative pointDotNormalHalf seems to work in both. - + //"float specularCompPoint = dot( normal, pointVector ) < 0.0 || pointDotNormalHalf < 0.0 ? 0.0 : pow( pointDotNormalHalf, mShininess );", //"float specularCompPoint = pow( pointDotNormalHalf, mShininess );", //"float pointSpecularWeight = pointDotNormalHalf < 0.0 ? 0.0 : pow( pointDotNormalHalf, mShininess );", @@ -967,28 +972,28 @@ THREE.WebGLRenderer = function ( scene ) { maxPointLights ? "float pointSpecularWeight = 0.0;" : "", maxPointLights ? "if ( pointDotNormalHalf >= 0.0 )" : "", maxPointLights ? "pointSpecularWeight = pow( pointDotNormalHalf, mShininess );" : "", - + maxPointLights ? "pointDiffuse += mColor * pointDiffuseWeight;" : "", maxPointLights ? "pointSpecular += mSpecular * pointSpecularWeight;" : "", - + maxPointLights ? "}" : "", // directional lights maxDirLights ? "vec4 dirDiffuse = vec4( 0.0, 0.0, 0.0, 0.0 );" : "", maxDirLights ? "vec4 dirSpecular = vec4( 0.0, 0.0, 0.0, 0.0 );" : "", - + maxDirLights ? "for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {" : "", maxDirLights ? "vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );" : "", maxDirLights ? "vec3 dirVector = normalize( lDirection.xyz );" : "", maxDirLights ? "vec3 dirHalfVector = normalize( lDirection.xyz + vViewPosition );" : "", - + maxDirLights ? "float dirDotNormalHalf = dot( normal, dirHalfVector );" : "", - maxDirLights ? "float dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );" : "", - + maxDirLights ? "float dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );" : "", + maxDirLights ? "float dirSpecularWeight = 0.0;" : "", maxDirLights ? "if ( dirDotNormalHalf >= 0.0 )" : "", maxDirLights ? "dirSpecularWeight = pow( dirDotNormalHalf, mShininess );" : "", @@ -999,66 +1004,66 @@ THREE.WebGLRenderer = function ( scene ) { maxDirLights ? "}" : "", // all lights contribution summation - + "vec4 totalLight = mAmbient;", maxDirLights ? "totalLight += dirDiffuse + dirSpecular;" : "", maxPointLights ? "totalLight += pointDiffuse + pointSpecular;" : "", // looks nicer with weighting - + "if ( mixEnvMap ) {", - + "gl_FragColor = vec4( mix( mapColor.rgb * totalLight.xyz * vLightWeighting, cubeColor.rgb, mReflectivity ), mapColor.a );", - + "} else {", - + "gl_FragColor = vec4( mapColor.rgb * cubeColor.rgb * totalLight.xyz * vLightWeighting, mapColor.a );", - + "}", - + // Lambert: diffuse lighting - - "} else if ( material == 1 ) {", + + "} else if ( material == 1 ) {", "if ( mixEnvMap ) {", - + "gl_FragColor = vec4( mix( mColor.rgb * mapColor.rgb * vLightWeighting, cubeColor.rgb, mReflectivity ), mColor.a * mapColor.a );", - + "} else {", - + "gl_FragColor = vec4( mColor.rgb * mapColor.rgb * cubeColor.rgb * vLightWeighting, mColor.a * mapColor.a );", - + "}", - + // Basic: unlit color / texture - - "} else {", + + "} else {", "if ( mixEnvMap ) {", "gl_FragColor = mix( mColor * mapColor, cubeColor, mReflectivity );", - + "} else {", "gl_FragColor = mColor * mapColor * cubeColor;", - + "}", - + "}", "}" ]; - + return chunks.join("\n"); - + }; - + function generateVertexShader( maxDirLights, maxPointLights ) { - + var chunks = [ - + maxDirLights ? "#define MAX_DIR_LIGHTS " + maxDirLights : "", maxPointLights ? "#define MAX_POINT_LIGHTS " + maxPointLights : "", - + "attribute vec3 position;", "attribute vec3 normal;", "attribute vec2 uv;", @@ -1067,12 +1072,12 @@ THREE.WebGLRenderer = function ( scene ) { "uniform bool enableLighting;", "uniform bool useRefract;", - + "uniform int pointLightNumber;", "uniform int directionalLightNumber;", - + "uniform vec3 ambientLightColor;", - + maxDirLights ? "uniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];" : "", maxDirLights ? "uniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];" : "", @@ -1087,29 +1092,29 @@ THREE.WebGLRenderer = function ( scene ) { "varying vec3 vNormal;", "varying vec2 vUv;", - + "varying vec3 vLightWeighting;", maxPointLights ? "varying vec3 vPointLightVector[ MAX_POINT_LIGHTS ];" : "", - + "varying vec3 vViewPosition;", - + "varying vec3 vReflect;", "uniform float mRefractionRatio;", "void main(void) {", // world space - + "vec4 mPosition = objMatrix * vec4( position, 1.0 );", "vViewPosition = cameraPosition - mPosition.xyz;", - + // this doesn't work on Mac //"vec3 nWorld = mat3(objMatrix) * normal;", "vec3 nWorld = mat3( objMatrix[0].xyz, objMatrix[1].xyz, objMatrix[2].xyz ) * normal;", - + // eye space - + "vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );", "vec3 transformedNormal = normalize( normalMatrix * normal );", @@ -1120,54 +1125,54 @@ THREE.WebGLRenderer = function ( scene ) { "} else {", "vLightWeighting = ambientLightColor;", - + // directional lights - + maxDirLights ? "for( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {" : "", maxDirLights ? "vec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );" : "", maxDirLights ? "float directionalLightWeighting = max( dot( transformedNormal, normalize(lDirection.xyz ) ), 0.0 );" : "", maxDirLights ? "vLightWeighting += directionalLightColor[ i ] * directionalLightWeighting;" : "", maxDirLights ? "}" : "", - + // point lights - + maxPointLights ? "for( int i = 0; i < MAX_POINT_LIGHTS; i++ ) {" : "", maxPointLights ? "vec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );" : "", maxPointLights ? "vPointLightVector[ i ] = normalize( lPosition.xyz - mvPosition.xyz );" : "", maxPointLights ? "float pointLightWeighting = max( dot( transformedNormal, vPointLightVector[ i ] ), 0.0 );" : "", maxPointLights ? "vLightWeighting += pointLightColor[ i ] * pointLightWeighting;" : "", maxPointLights ? "}" : "", - + "}", "vNormal = transformedNormal;", "vUv = uv;", "if ( useRefract ) {", - + "vReflect = refract( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz), mRefractionRatio );", - + "} else {", - + "vReflect = reflect( normalize(mPosition.xyz - cameraPosition), normalize(nWorld.xyz) );", - + "}", - + "gl_Position = projectionMatrix * mvPosition;", "}" ]; - + return chunks.join("\n"); - + }; - + function initProgram( maxDirLights, maxPointLights ) { _program = _gl.createProgram(); - + //log ( generateVertexShader( maxDirLights, maxPointLights ) ); //log ( generateFragmentShader( maxDirLights, maxPointLights ) ); - + _gl.attachShader( _program, getShader( "fragment", generateFragmentShader( maxDirLights, maxPointLights ) ) ); _gl.attachShader( _program, getShader( "vertex", generateVertexShader( maxDirLights, maxPointLights ) ) ); @@ -1180,12 +1185,12 @@ THREE.WebGLRenderer = function ( scene ) { alert( "VALIDATE_STATUS: " + _gl.getProgramParameter( _program, _gl.VALIDATE_STATUS ) ); alert( _gl.getError() ); } - + _gl.useProgram( _program ); // matrices - + _program.viewMatrix = _gl.getUniformLocation( _program, "viewMatrix" ); _program.modelViewMatrix = _gl.getUniformLocation( _program, "modelViewMatrix" ); _program.projectionMatrix = _gl.getUniformLocation( _program, "projectionMatrix" ); @@ -1195,77 +1200,77 @@ THREE.WebGLRenderer = function ( scene ) { _program.cameraPosition = _gl.getUniformLocation( _program, 'cameraPosition' ); // lights - + _program.enableLighting = _gl.getUniformLocation( _program, 'enableLighting' ); - + _program.ambientLightColor = _gl.getUniformLocation( _program, 'ambientLightColor' ); - + if ( maxDirLights ) { - + _program.directionalLightNumber = _gl.getUniformLocation( _program, 'directionalLightNumber' ); _program.directionalLightColor = _gl.getUniformLocation( _program, 'directionalLightColor' ); _program.directionalLightDirection = _gl.getUniformLocation( _program, 'directionalLightDirection' ); - + } if ( maxPointLights ) { - + _program.pointLightNumber = _gl.getUniformLocation( _program, 'pointLightNumber' ); _program.pointLightColor = _gl.getUniformLocation( _program, 'pointLightColor' ); _program.pointLightPosition = _gl.getUniformLocation( _program, 'pointLightPosition' ); - + } // material - + _program.material = _gl.getUniformLocation( _program, 'material' ); - + // material properties (Basic / Lambert / Blinn-Phong shader) - + _program.mColor = _gl.getUniformLocation( _program, 'mColor' ); _program.mOpacity = _gl.getUniformLocation( _program, 'mOpacity' ); _program.mReflectivity = _gl.getUniformLocation( _program, 'mReflectivity' ); // material properties (Blinn-Phong shader) - + _program.mAmbient = _gl.getUniformLocation( _program, 'mAmbient' ); _program.mSpecular = _gl.getUniformLocation( _program, 'mSpecular' ); _program.mShininess = _gl.getUniformLocation( _program, 'mShininess' ); // texture (diffuse map) - + _program.enableMap = _gl.getUniformLocation( _program, "enableMap" ); _gl.uniform1i( _program.enableMap, 0 ); - + _program.tMap = _gl.getUniformLocation( _program, "tMap" ); _gl.uniform1i( _program.tMap, 0 ); // cube texture - + _program.enableCubeMap = _gl.getUniformLocation( _program, "enableCubeMap" ); _gl.uniform1i( _program.enableCubeMap, 0 ); - + _program.tCube = _gl.getUniformLocation( _program, "tCube" ); _gl.uniform1i( _program.tCube, 1 ); // it's important to use non-zero texture unit, otherwise it doesn't work _program.mixEnvMap = _gl.getUniformLocation( _program, "mixEnvMap" ); _gl.uniform1i( _program.mixEnvMap, 0 ); - + // refraction - + _program.mRefractionRatio = _gl.getUniformLocation( _program, 'mRefractionRatio' ); - + _program.useRefract = _gl.getUniformLocation( _program, "useRefract" ); _gl.uniform1i( _program.useRefract, 0 ); - + // material properties (Depth) - + _program.m2Near = _gl.getUniformLocation( _program, 'm2Near' ); _program.mFarPlusNear = _gl.getUniformLocation( _program, 'mFarPlusNear' ); _program.mFarMinusNear = _gl.getUniformLocation( _program, 'mFarMinusNear' ); - + // vertex arrays - + _program.position = _gl.getAttribLocation( _program, "position" ); _gl.enableVertexAttribArray( _program.position ); @@ -1307,37 +1312,37 @@ THREE.WebGLRenderer = function ( scene ) { } return shader; - + }; /* DEBUG function getGLParams() { - + var params = { - + 'MAX_VARYING_VECTORS': _gl.getParameter( _gl.MAX_VARYING_VECTORS ), 'MAX_VERTEX_ATTRIBS': _gl.getParameter( _gl.MAX_VERTEX_ATTRIBS ), - + 'MAX_TEXTURE_IMAGE_UNITS': _gl.getParameter( _gl.MAX_TEXTURE_IMAGE_UNITS ), 'MAX_VERTEX_TEXTURE_IMAGE_UNITS': _gl.getParameter( _gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS ), 'MAX_COMBINED_TEXTURE_IMAGE_UNITS' : _gl.getParameter( _gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS ), - + 'MAX_VERTEX_UNIFORM_VECTORS': _gl.getParameter( _gl.MAX_VERTEX_UNIFORM_VECTORS ), 'MAX_FRAGMENT_UNIFORM_VECTORS': _gl.getParameter( _gl.MAX_FRAGMENT_UNIFORM_VECTORS ) } - + return params; }; - + function dumpObject( obj ) { - + var p, str = ""; for ( p in obj ) { - + str += p + ": " + obj[p] + "\n"; - + } - + return str; } */