gH]kDwP|trueSpace7.5[VS_O93Y*I Clinton Reese, RUR`d8pM*#ͺO0PNG  IHDRk`TXIDATxo$y{I7q8͘ڬ$1lÁ1?!@Hqb_ıUd-3YwWW۾lQ3CCZO!uU7~{ϯi1}o IN:GO9x'w'yOo ]<`BO9O'+mvW%APփ$ItE3Ʀ|'0Ʀx'V cl|܊a r+16LpaC&G8y qAc!$2ǽq+16> q16> $ "#y!GW-s w!:eO|x 8&JݙO=ĪP)Z9GDRJ"@4x!@$"#:"g?[_{JJLyhy$D\YZ=JERZJ6 Q^LDLrђRAA,Zyrs{V)e(؁ipvojqoO{/eƽNwo<EOq+{;;^qOB+a4m)L_o DpW0l:KWN?Xh4p87~ ALkD{z~cl7evuy>˲Ņ+a}Y*1jν_0gr6" ^qxWo޿ SA g"(eX|[EY#TJI)wҾu?],{~j|νz]LFworh !v{IyB)=؊pyiכ-" jRlomIb(@ ^RˈH؟N)l*o&,][YBye0" J:6t$<"Riy'2v@! 3y9ֹ0SZ :""BG{09`ͳ*:!"Zc#D*aI)O-m@R9:HOY$"΃dz=XQp][]l =zG3HJ}sVƝQswZ`n# ǿ[(8Vଫ*GTV4˔: m\ەrqgg'9M8NVoQ(m~7_{zG\\iN?R)J\_{=˲Ũ`]\Z(% ! Sijuӊ/p׏L-|k{`g>yvB!,( ~q.o߹K{JF0(DAeJ !z:IfYAܾ}^["aE( zsݏ6qzmRw͵k+Az蹙-j;?5N:΃\sn&609W,g6`!vDp0 @Zq "NYr9Ry!?.Vc̰t\B8kQ!yq:Zg;3@BsX)PevEQuǯ^(""HG#OZh'ggCɅDt֑!boooaaRITnkRZcYYgБ"DT,??>y~)uFU  ZvG ډDKXkcKiyC@!P~Zzű燾kz%2qЏIN^<JΑի \]1fJ0 bB ff,08۟;88B߹sN\.Jy!P"^|P}k;;;J;o[LsG Ƙ^nLo^w}!bwo|~$Io||kCwo•f7]zL?_}aľAJ+#mPYO~fSmZғyDH:6Z%Ti‚BDބ2q.Iĥ(q(Oz7RQZL9A$G(0L$oE1d0N4}"fYVT*`0y[[[ׯ_/I!Zl“^l*> CkBpDpι RVH)$qζ|dT~GaY/KZ gYt1P7z559֘L-ǞF$R*su+0n2b"iRJOGDGUa)54Ș"wGv"@$Mv?BPT B[y;۵QD(F><@|0BcRG[ ͛7@kNeA؉;|~aavv9GsB(#zm5K8R<=?͍+Vh +{pށDaPsbF-W+RZ&{I Lr\xy-QklR&4IP~wmTT 0˲& B8 1iC&4j=Dq$In7_\ý"r{kZ~>r,6g4 D anQ{/k- #N#P4K~9q+\>68v+*?&=]y7p4)[oY! "TCzs!ra\Z㟈AߟF6bf"RA4vpd(&(9O0W'$s JB*Lpf@TJQa8!@)Ick8e|Ba{^A24O A&A vZ)sA1tk=AJߨU )#~6Us4<Ȅ|z*K^{ƫ/Jb!Ozzԑ/ȹIMn:FíIL3 rt׮.͟FZ&zcq&t-"P%,kC{pK4WA>9ԷHJюPqj](sެ{.<3]:΃LT ~eGo GÞ9Ty1 n0&fbcAc\Ʀ@}~Nc9X<&2HSm[=.d |6|EA0J1Mh'YqlU]"bcV cl|AcG80ǽqo.cl|܊a#cl|Ac?cߏ|ho5q;Sx:S>icS?aYHʼblxCMDQ<_BuIENDB`/tfѭ8Lwb"qN:܂dKu=\RFdoom3 Animation Import ts75release`.;]kI 忞@.;]kI 忞@"SubObject*Encapsulated objects"Zh8w XN>`4W}@O{4W}@O{$ Owner4Owner of the Encapsulator$'c-1OSM n-1OSM n"LayoutLayout 럆L<_ї"'c(XFҦV(XFҦV"LE2Data$LE2 Data for node >g'JNjn*p"&cNffMCONffMCODMyFileName\x=r z@Hoz@Ho Control InTransitionIn^(XFҦV>g'JNjn*p^CB~@@X@tveDCE`"IWJ}?A ?NffMCO<D:\Server2\zfat\walk1.md5anim-1OSM n 럆L<_ї˰Default Asp4 GFʠN=XGF; }} MyFileNameNffMCOZ`Ez]UO1釥GP>aXGF<NffMCOZ`Ez]UO#nKSM2P@GF4(\VVNffMCOZ`Ez]UOOˁ CRih[P@GF(^Activity.Run('%THIS_NAME%' + '/MD5AnimImport')ImportZ`Ez]UO GFʠN=@GF]}}<Click "..." to choose a file and then "Import" to read it inZ`Ez]UO GFʠN=F G1 }}NffMCOZ`Ez]UO1釥GP>aHG<NffMCOZ`Ez]UOz@HoEͤ*EgbĬ}doomShape2AEHM'2AEHM'LE2Data$LE2 Data for node >g'JNjn*pH\ceZU@䑧rceZU@䑧r$_scriptData*Internal Script data [җJs@ %Z4W}@O{$` r (XFҦV#yr.;]kI 忞@"p-1OSM n#8q tveDCE`"IWJtveDCE`"IWJB Mesh"Ouput Shape Mesh >W5f@(䐈B2AEHM'>g'JNjn*pFBC`@0@?ceZU@䑧r[җJs@ NewObject// OnComputeOutputs // Called to compute values of all output connectors function OnComputeOutputs(params) { // TODO: put your computation here // Mesh = System.CreateDO('Space 3D Package/Mesh Data'); // params.conValue("Mesh") = Mesh } NScript Object Package/jScript language6Space 3D Package/Mesh Data Mesh"Ouput Shape MeshdJ4``w uNY4W}@O{(XFҦV>g'JNjn*pFB Bb@@@?.;]kI 忞@tveDCE`"IWJ>W5f@(䐈-1OSM n 럆L<_ї(48@J g'JNjn*pLE2Data, 3pn MT^RwL~YYTMT^RwL~YYTޢLE2Data$LE2 Data for node >g'JNjn*pxNffMCOD&cxr2|=Bynj2|=Bynj Control OutTransitionOut^z@Ho=r  2|=Bynj2AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ NewCommand// Doom3 md5anim import // April 2006 // clinton reese // // header 2 lines and an empty line // numFrames // numJoints // frameRate // numAnimatedComponents // hierarchy one line for each joint // name, parent index, 6bit anim flag and start index of animation then comment with parent name and human readable anim flag // bounds section // baseframe // all other frames - same format as baseframe except only animated elements listed // each line corresponds to non zero anim flag of joints // plan modify this code to read the md5anim format // // first build hierarchy then position and rotate joints into position // hierarchy is good and transforms are connected // TODO: read pos and rot info and apply // // reading in xyz and quat good TODO transform from data // 25 April 2006 IT WORKS! // had to use quat to euler for NASA Standard Airplane euler rotations // 2 problems // can't move origin // left and right are reversed on resulting skeleton // // April 30 animation read looks good // problem: can only read limited num of frames if try read too many get little or no animation // long animations - getting a key at the start and at the end but not any in between // solved: place a key at the end of the animation first // // 20 Nov 2006 // tS75 version start // try to use player animation on fake bone // don't know how do new bones animation or if it is even possible // // 17 Jan 2007 // not possible to do keyframe on subobjects so fake skeleton anim not possible at this time // // 10 Feb 2007 // can now keyframe subobjects // select "origin" and animate only selected to see animation // use pure quat rotation to matrix and now everything works perfectly // one thing left - access to true bones for animation and skinning // // 27 May 2007 - ts75 release not beta version // // Execute // Called to execute the command function Execute(params) { MyFileName = params.conValue('MyFileName'); // TODO: put your action code here System.Trace("start of import"); var forReading = 1, forWriting = 2, forAppending = 8; rline = new Array(); fs = new ActiveXObject("Scripting.FileSystemObject"); f = fs.GetFile(MyFileName); connToFile = f.OpenAsTextStream( forReading, 0); var count = 0; var myScale = 0.1; // 1 inch in doom3 = 0.1 meter in truespace while( !connToFile.AtEndOfStream ) { rline[count] = connToFile.ReadLine(); count++; } connToFile.Close(); // finished reading file var msg = ""; var jointCnt = -1; var baseframeCnt = -1; var hierarchyCnt = -1;//flag for hiarchy section var frameLine = -1;// flag read frame data jointMesh = new Array(); // joint position arrays jx = new Array(); jy = new Array(); jz = new Array(); // quaternion arrays for joints xq = new Array(); yq = new Array(); zq = new Array(); wq = new Array(); boneName = new Array(); boneFullName = new Array(); pBoneIndex = new Array(); animFlags = new Array(); animStart = new Array(); myMatrix = System.CreateDO("Math Package/Matrix Float Data"); rad2deg = 180/Math.PI; scene = Space.CurrentScene(); myCube = Space.Cube(1, 1, 1, 2, 2, 2); for(i = 0; i < rline.length; i++) { msg = rline[i]; // scoop one line from msg array. msgtag = msg.split(" "); if (msgtag[0] == "numFrames") { var numFrames = msgtag[1]; System.Trace("numFrames = " + numFrames); //set key at last frame solves "long" animation problem //tSBridge.PutActiveFrame(myCube, numFrames); //tSBridge.AnimationFrame = numFrames; //RsAnimKeying.AddAttribute(myCube,'Matrix'); RsAnim.SetAttrKeyFrame(myCube,'tx',0); //RsAnim.SetKeyFrame(myCube, numFrames); } if (msgtag[0] == "numJoints") { var numJoints = msgtag[1]; System.Trace("numJoints = " + numJoints); } if (msgtag[0] == "frameRate") { var frameRate = msgtag[1]; System.Trace("frameRate = " + frameRate); } if (msgtag[0] == "numAnimatedComponents") { var numAnimatedComponents = msgtag[1]; System.Trace("numAnimatedComponents = " + numAnimatedComponents); } // read hierarchy data if(hierarchyCnt != -1) { msgtagSub = msgtag[0].split("\t"); jointName = msgtagSub[1].substr(1,msgtagSub[1].length-2); //System.Trace(jointName); boneName[hierarchyCnt] = jointName; boneFullName[hierarchyCnt] = "error"; pBoneIndex[hierarchyCnt] = msgtagSub[2];// parent index //msgtagSub = msgtag[1].split("\t"); animFlags[hierarchyCnt] = msgtag[1];// msgtagSub = msgtag[2].split("\t"); animStart[hierarchyCnt] = msgtagSub[0];// //System.Trace(pBoneIndex[hierarchyCnt] + " ? " + animFlags[hierarchyCnt] + " ? " + animStart[hierarchyCnt]); //System.Trace("animFlags " + hierarchyCnt + " ? " + msgtag[1]); if(hierarchyCnt == 0) { encaps1 = Node.Create('Kernel Package/Object', encaps); //encaps is the root node of the skeleton encapsCurrent = Node.Rename(encaps1, jointName);//create first node inside skeleton Node.Copy(owner + "/doom3jointgeo", encapsCurrent);//copy geometry into the new node jointMesh[hierarchyCnt] = Node.Rename(encapsCurrent + "/doom3jointgeo", jointName + "geo"); boneFullName[hierarchyCnt] = encapsCurrent ; //System.Trace(boneFullName[hierarchyCnt]); Node.Copy(owner + "/doomTransform", encapsCurrent);//copy transform to new node Node.Rename(encapsCurrent + "/doomTransform", "Transform"); Node.ExportConnector(encapsCurrent + "/Transform","Matrix","",1,1); Node.ExportConnector(encapsCurrent + "/Transform","WldMatrix","",1,1); Node.ExportConnector(encapsCurrent + "/Transform","ObjMatrix","",1,1); Node.ExportConnector(encapsCurrent + "/Transform","OwnerMatrix","",1,1); Node.ConnectTo(encaps + "/Transform","WldMatrix",encaps + "/" + jointName,"OwnerMatrix");//hook node to transform Node.ConnectTo(encapsCurrent + "/Transform","WldMatrix",encapsCurrent + "/" + jointName + "geo","OwnerMatrix");//geo to transform // true bones here Node.Copy(owner + "/Skeleton", scene);//copy ts75 character to scene Node.Copy(owner + "/Joint", scene + "/Skeleton");//copy joint in temp = Node.Rename(scene + "/Skeleton/Joint", jointName + "Joint"); Node.Copy(owner + "/Bone", scene + "/Skeleton");//copy bone in temp = Node.Rename(scene + "/Skeleton/Bone", jointName + "Bone"); // note: order of arguments matters in ConnectTo, order of connections may matter //todo connect origin joint and skeleton bone node Node.ConnectTo(scene + "/Skeleton/" + "skeletonBone","Bone",scene + "/Skeleton/" + jointName + "Joint","Bone"); //todo connect origin joint and origin bone Node.ConnectTo(scene + "/Skeleton/" + jointName + "Joint","Joint",scene + "/Skeleton/" + jointName + "Bone","Root"); // end true bones } else { //for(ii=0; ii<jointCnt; ii++) //{ //if(parentName == boneName[ii]) //{ parentIndex = pBoneIndex[hierarchyCnt]; //zscale = (msgtag[4]-jz[parentIndex])*myScale; // this works but scale from center need pivot point //jointMesh[jointCnt] = Space.Cube(0.15, 0.15 ,zscale ,1 ,1 ,1); //Node.Copy(owner + "/doom3jointgeo", scene); //jointMesh[jointCnt] = Node.Rename(scene + "/doom3jointgeo", "theJoint"); boneFullName[hierarchyCnt] = boneFullName[parentIndex] + "/" + jointName ; //System.Trace(boneFullName[hierarchyCnt]); encaps1 = Node.Create('Kernel Package/Object', boneFullName[parentIndex]); //create node inside parent encapsCurrent = Node.Rename(encaps1, jointName);//rename node inside parent Node.Copy(owner + "/doom3jointgeo", encapsCurrent);//copy geometry into the new node jointMesh[hierarchyCnt] = Node.Rename(encapsCurrent + "/doom3jointgeo", jointName + "geo"); //encaps1 = Node.Create('Kernel Package/Object', encaps + "/" + boneFullName[ii]); //encaps is the root node of the skeleton //encapsCurrent = Node.Rename(encaps1, jointName); Node.Copy(owner + "/doomTransform", encapsCurrent);//copy transform to new node Node.Rename(encapsCurrent + "/doomTransform", "Transform"); Node.ExportConnector(encapsCurrent + "/Transform","Matrix","",1,1); Node.ExportConnector(encapsCurrent + "/Transform","WldMatrix","",1,1); Node.ExportConnector(encapsCurrent + "/Transform","ObjMatrix","",1,1); Node.ExportConnector(encapsCurrent + "/Transform","OwnerMatrix","",1,1); Node.ConnectTo(boneFullName[parentIndex] + "/Transform","WldMatrix",encapsCurrent,"OwnerMatrix"); Node.ConnectTo(encapsCurrent + "/Transform","WldMatrix",encapsCurrent + "/" + jointName + "geo","OwnerMatrix");//geo to transform //true bones parentName = boneName[parentIndex]; Node.Copy(owner + "/Joint", scene + "/Skeleton");//copy joint in temp = Node.Rename(scene + "/Skeleton/Joint", jointName + "Joint"); Node.Copy(owner + "/Bone", scene + "/Skeleton");//copy bone in temp = Node.Rename(scene + "/Skeleton/Bone", jointName + "Bone"); //todo connect joint Joint to bone Root //order of ConnectTo args is important, order of connections may be important test now // connect bone Bone to joint Bone Node.ConnectTo(scene + "/Skeleton/" + parentName + "Bone","Bone",scene + "/Skeleton/" + jointName + "Joint","Bone"); Node.ConnectTo(scene + "/Skeleton/" + jointName + "Joint","Joint",scene + "/Skeleton/" + jointName + "Bone","Root"); // end true bones //} //} } //test for end hierarchyCnt = hierarchyCnt + 1; if (hierarchyCnt == numJoints) { hierarchyCnt = -1; //myMatrix.LoadIdentity(); //Node.Value(encaps, "Matrix") = myMatrix; } } // read baseframe loc rot data if(baseframeCnt != -1) { jx[baseframeCnt] = parseFloat(msgtag[1]); jy[baseframeCnt] = parseFloat(msgtag[2]); jz[baseframeCnt] = parseFloat(msgtag[3]); xq[baseframeCnt] = msgtag[6];//rotation of joint in quaternion form yq[baseframeCnt] = msgtag[7]; zq[baseframeCnt] = msgtag[8]; curX = parseFloat(msgtag[1]); curY = parseFloat(msgtag[2]); curZ = parseFloat(msgtag[3]); myMatrix.LoadIdentity(); myMatrix.SetTransX(curX*myScale); myMatrix.SetTransY(curY*myScale); myMatrix.SetTransZ(curZ*myScale); // rotate the joint here before encapsulation qx = xq[baseframeCnt]; qy = yq[baseframeCnt]; qz = zq[baseframeCnt]; wq[baseframeCnt] = 1 - xq[baseframeCnt]*xq[baseframeCnt] - yq[baseframeCnt]*yq[baseframeCnt] - zq[baseframeCnt]*zq[baseframeCnt]; if (wq[baseframeCnt] < 0) { wq[baseframeCnt] = 0; } else { wq[baseframeCnt] = Math.sqrt(wq[baseframeCnt]) } qw = wq[baseframeCnt]; sqx = qx*qx; sqy = qy*qy; sqz = qz*qz; sqw=qw*qw; //try pure transform myMatrix.LoadIdentity(); myMatrix.SetAt(3,0,curX*myScale);//x myMatrix.SetAt(3,1,curY*myScale);//y myMatrix.SetAt(3,2,curZ*myScale);//z rm11=1-2*qy*qy-2*qz*qz; rm12=2*qx*qy-2*qw*qz; rm13=2*qx*qz+2*qw*qy; rm21=2*qx*qy+2*qw*qz; rm22=1-2*qx*qx-2*qz*qz; rm23=2*qy*qz-2*qw*qx; rm31=2*qx*qz-2*qw*qy; rm32=2*qy*qz+2*qw*qx; rm33=1-2*qx*qx-2*qy*qy; myMatrix.SetAt(0,0,rm11); myMatrix.SetAt(1,0,rm21); myMatrix.SetAt(2,0,rm31); myMatrix.SetAt(0,1,rm12); myMatrix.SetAt(1,1,rm22); myMatrix.SetAt(2,1,rm32); myMatrix.SetAt(0,2,rm13); myMatrix.SetAt(1,2,rm23); myMatrix.SetAt(2,2,rm33); // end pure trasnform test Node.Value(boneFullName[baseframeCnt],"Matrix") = myMatrix; //true bone Node.Value(scene + "/Skeleton/" + boneName[baseframeCnt] + "Joint","Matrix") = myMatrix;//set matrix of ts75 joint //end true bone baseframeCnt = baseframeCnt + 1; //test for end if (baseframeCnt == numJoints) { baseframeCnt = -1; //myMatrix.LoadIdentity(); //Node.Value(encaps, "Matrix") = myMatrix; } } if (msgtag[0] == "hierarchy") { hierarchyCnt = 0; scene = Space.CurrentScene(); encapsO = Node.Create('Kernel Package/Object', scene);//create empty node in scene encaps = Node.Rename(encapsO, "doomSkeleton"); //transform node owner = System.ThisOwner(); Node.Copy(owner + "/doomTransform", encaps);//copy transform to new node Node.Rename(encaps + "/doomTransform", "Transform"); Node.ExportConnector(encaps + "/Transform","Matrix","",1,1); Node.ExportConnector(encaps + "/Transform","WldMatrix","",1,1); Node.ExportConnector(encaps + "/Transform","ObjMatrix","",1,1); Node.ExportConnector(encaps + "/Transform","OwnerMatrix","",1,1); } if (msgtag[0] == "baseframe") { baseframeCnt = 0; } // end of frame data if (frameLine != -1 && msgtag[0] == "}") frameLine = -1; // process animation line if (frameLine != -1) { while (animFlags[jointAnimCnt] == 0) { jointAnimCnt++; } compIndex = 1;// 0 is starting tab quatFlag = -1;//assume no quat anim //myMatrix = Node.Value(boneFullName[jointAnimCnt],"Matrix"); myMatrix.LoadIdentity(); curX = jx[jointAnimCnt]; curY = jy[jointAnimCnt]; curZ = jz[jointAnimCnt]; theFlag = animFlags[jointAnimCnt]; if((theFlag & 1) == 1) { curX = msgtag[compIndex]; //myMatrix.SetTransX(curX*myScale); compIndex++; } if((theFlag & 2) == 2) { curY = msgtag[compIndex]; //myMatrix.SetTransY(curY*myScale); compIndex++; } if((theFlag & 4) == 4) { curZ = msgtag[compIndex]; //myMatrix.SetTransZ(curZ*myScale); compIndex++; } qx = xq[jointAnimCnt]; qy = yq[jointAnimCnt]; qz = zq[jointAnimCnt]; if((theFlag & 8) == 8) { qx = msgtag[compIndex]; quatFlag = 0; compIndex++; } if((theFlag & 16) == 16) { qy = msgtag[compIndex]; quatFlag = 0; compIndex++; } if((theFlag & 32) == 32) { qz = msgtag[compIndex]; quatFlag = 0; } //test quatFlag = 0; if (jointAnimCnt == 0) { System.Trace(curX + " ? " + curY + " ? " + curZ); } //System.Trace(qx + "?" + qy + "?" + qz); if (quatFlag == 0) { //System.Trace(qx + "?" + qy + "?" + qz + "?" + qw); sqx = qx*qx; sqy = qy*qy; sqz = qz*qz; qw = 1 - sqx - sqy - sqz; if (qw < 0) { qw = 0; } else { qw = Math.sqrt(qw) } sqw=qw*qw; //try pure transform myMatrix.LoadIdentity(); myMatrix.SetAt(3,0,curX*myScale);//x myMatrix.SetAt(3,1,curY*myScale);//y myMatrix.SetAt(3,2,curZ*myScale);//z rm11=1-2*qy*qy-2*qz*qz; rm12=2*qx*qy-2*qw*qz; rm13=2*qx*qz+2*qw*qy; rm21=2*qx*qy+2*qw*qz; rm22=1-2*qx*qx-2*qz*qz; rm23=2*qy*qz-2*qw*qx; rm31=2*qx*qz-2*qw*qy; rm32=2*qy*qz+2*qw*qx; rm33=1-2*qx*qx-2*qy*qy; myMatrix.SetAt(0,0,rm11); myMatrix.SetAt(1,0,rm21); myMatrix.SetAt(2,0,rm31); myMatrix.SetAt(0,1,rm12); myMatrix.SetAt(1,1,rm22); myMatrix.SetAt(2,1,rm32); myMatrix.SetAt(0,2,rm13); myMatrix.SetAt(1,2,rm23); myMatrix.SetAt(2,2,rm33); // end pure trasnform test } Node.Value(boneFullName[jointAnimCnt],"Matrix") = myMatrix; //tSBridge.PutActiveFrame(boneFullName[jointAnimCnt], curFrame); //tSBridge.AnimationFrame = curFrame; RsAnim.SetKeyFrame(boneFullName[jointAnimCnt], curFrame); //RsAnim.SetAttrKeyFrame(boneFullName[jointAnimCnt],'Matrix',curFrame); //System.Trace("set frame # " + curFrame); //System.Trace("jointAnimCnt = " + jointAnimCnt); //true bone RsAnim.SetKeyFrame(scene + "/Skeleton", curFrame);//set anim for full skel encapsulator Node.Value(scene + "/Skeleton/" + boneName[jointAnimCnt] + "Joint","Matrix") = myMatrix;//set matrix of ts75 joint RsAnim.SetKeyFrame(scene + "/Skeleton/" + boneName[jointAnimCnt], curFrame); //end true bone jointAnimCnt++; } // set frame flag if (msgtag[0] == "frame") { curFrame = msgtag[1]; System.Trace("reading frame # " + curFrame); frameLine = 0; jointAnimCnt = 0; Node.Value(myCube, "tx") = curFrame; //tSBridge.PutActiveFrame(myCube, curFrame); //tSBridge.AnimationFrame = curFrame; RsAnim.SetKeyFrame(myCube, curFrame); //RsAnim.SetAttrKeyFrame(myCube,'tx',curFrame); //try set matrix of doomSkeleton myMatrix.LoadIdentity(); scene = Space.CurrentScene(); Node.Value(scene + "/doomSkeleton","Matrix") = myMatrix; RsAnim.SetAttrKeyFrame("doomSkeleton",'Matrix',curFrame); } // vertex position is weighted sum of weights relative to the bone // need to use quat rotation of bone on point, weight it and add them together // weights add to a value of 1.0 // } System.Trace("end of import"); }NScript Object Package/jScript language u stringMyFileNameNffMCO4W}@O{(XFҦV>g'JNjn*pnBBz@@V@2|=Bynj|?z@Hoۙ>?NffMCO<D:\Server2\zfat\walk1.md5animJ@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_їControlOˁ CRih[  nKs 8Activity.Run('%THIS_NAME%')ImportZ`Ez]UOOˁ CRih[0HnKq:Activity.Stop('%THIS_NAME%') StopZ`Ez]UO GFʠN=`  nK]}}<Click "..." to choose a file and then "Import" to read it inZ`Ez]UO1釥GP>a 0nK<NffMCOZ`Ez]UO#nKSM2` nK4` \VVNffMCOZ`Ez]UOMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho܂dKu=T 1(doomBlankDXMaterial.;]kI 忞@" Xs q xZq HyHs 8w 4W}@O{$`8.F_P#.F_P#Material Output material __W8E#(Xr ZU@Ra.U@Ra.LE2Data, 7$LE2 Data for node >g'JNjn*p0՞'fA5-_՞'fA5-_D3DEYED3DEYE =xNT{0-1OSM n"菢(XFҦVLE2Data, 1"`J@#QLLE2Data, 24W}@O{(XFҦV>g'JNjn*pFBrCb@@P@B?՞'fA5-_.F_P#J@#QL>g'JNjn*pF4CtCd@@@?.;]kI 忞@-1OSM n 럆L<_їˇ Main GFʠN=GF.F_P#U@Ra.>g'JNjn*pFjCCd@T@?Pc|B;]2(w MaterialXr .F_P#.F_P#Material Output material __W8E#(82S^M~b S^M~b Alpha_shaderAlpha shader RnчINNXr .5OD.GWf55OD.GWf5Color_shaderColor shader zdU@AUʂ*Xr .qΤIGGIqΤIGGIModel_shaderModel shader @SrE8㲻tP?Xr ,S@vTV,S@vTVNormal_shaderNormal shader Xb"ٲN+4Xr 'зVJilзVJil Texcoord_shader Texcoord shader lrMH;eXr 4W}@O{$p U@Ra.r -1OSM n"t (XFҦVLE2Data, 1"xkF_kF_Vertex_shaderVertex shader k|eKwj9CqVertexShaderXr @|t@*Nt@*N Constant_shader Constant shader QVO Pk@Xr o <;vHw<;vHwAlphaTest Alpha Test type :KrbSxXr XF 0S̤@+R 0S̤@+RAlphaTestValue"Alpha Test ValueXr ,S@vTV 0S̤@+R5OD.GWf54W}@O{зVJil(XFҦV>g'JNjn*pFDnCb@v@?<;vHw:KrbSxbDisabledEnabledAs OpaqueDisabledS^M~b .F_P#t@*NkF_-1OSM n 럆L<_ї(U@Ra.>g'JNjn*pFDnC`@\@?qΤIGGI܂dKu=$v ,DefaultTexCoordShader+(gD9f<(gD9f<TCMoveYTCMoveY+R:>a[EH*M\R:>a[EH*M\LE2Data, 2$LE2 Data for node >g'JNjn*pXp 7wCH7wCHLE2Data$LE2 Data for node >g'JNjn*pؾp wkd@Xywkd@XyTCScaleXTCScaleX s Xs 4W}@O{$؞s y݀J}Ny݀J}N FloatInput floatTCMoveXxzh ĦBZĦBZTCScaleYTCScaleY{m )rޙG )rޙG ˣLE2Data, 2$LE2 Data for node >g'JNjn*pLE2Data, 4Ⱦ(XFҦVLE2Data, 3"7%%u5E b%%u5E bLE2Data, 14$LE2 Data for node >g'JNjn*pLE2Data, 66QA@y:l1QA@y:l1LE2Data, 5$LE2 Data for node >g'JNjn*pH b$Q/G|]8$Q/G|]8LE2Data, 1$LE2 Data for node >g'JNjn*p8 -1OSM n#p .;]kI 忞@" P ݰk  ]8peC4n зVJil'R:>a[EH*M\>g'JNjn*pFBC`@d@?(gD9f<wkd@Xy?7wCH>g'JNjn*pFCC`@0@?%%u5E b>g'JNjn*pF`CCb@\@KAC?4W}@O{зVJilĦBZ?y݀J}N(XFҦV>g'JNjn*pFBCb@ `@KAC?)rޙG >g'JNjn*pFBC`@d@?$Q/G|]8>g'JNjn*pFCCC`@d@?QA@y:l1>g'JNjn*pF:idav ShaderTexcoordзVJil})#,OrR)#,OrRTexcoord*Input texcoord brick F 1+5?N>/ݰP4W}@O{$p %%u5E b%%u5E bLE2Data, 10$LE2 Data for node >g'JNjn*p-1OSM n"((XFҦVLE2Data, 1 {r!"I = 8r!"I = 8Texcoord2,Input texcoord2 brick F 1+5?N>/%%u5E b>g'JNjn*pFEDA`@P@?4W}@O{зVJil(XFҦV>g'JNjn*pFEDA`@P@?)#,OrRr!"I = 8-1OSM n 럆L<_ї(L{0nBg)`! <+Add P)\Fvq3P)\Fvq3$PrivateShaderData$PrivateShaderData wk0.DX?_ :JF>*U:JF>*UInputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/ o ݰXq#2 |L?¢Fh#2 |L?¢FhInputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/pm ݰݰ,8A fKھ,8A fKھResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/} ݰ4W}@O{%p 4m %%u5E b%%u5E bLE2Data$LE2 Data for node >g'JNjn*p3m -1OSM n" {n (XFҦVLE2Data, 1,8A fKھ:JF>*U%%u5E b>g'JNjn*pFD`B`@P@?4W}@O{(XFҦV>g'JNjn*pFD`B`@P@?#2 |L?¢FhP)\Fvq3wk0.DX?_Gp.HOV-1OSM n 럆L<_ї(L{0nBg)`! е ModulateXzn P)\Fvq3n 2x2֣K!dE52x2֣K!dE5InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/7 o H o TXGy5֣ TXGy5֣ FullLightColorInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/Pޭ o o  dE9@ dE9@ AttenuatedColorResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/ k 4W}@O{%p k %%u5E bp -1OSM n"q (XFҦVLE2Data, 1%%u5E b>g'JNjn*pFC`@P@?4W}@O{(XFҦV>g'JNjn*pFC`@P@?P)\Fvq3wk0.DX?_M0(rHH dE9@TXGy5֣ 2x2֣K!dE5-1OSM n 럆L<_ї(L{0nBg)`!  ;*VectorFromComponents q P)\Fvq3q Gx:G<l5Gx:G<l5XTX : RtFloat - Scalar floating point value F 1+5?N>/БC7,r  LDs(e LDs(eYTY : RtFloat - Scalar floating point value F 1+5?N>/x07<?8[GVTI?8[GVTIZTZ : RtFloat - Scalar floating point value F 1+5?N>/787"PZKLь"PZKLьWTW : RtFloat - Scalar floating point value F 1+5?N>/77JN۪BP JN۪BP ResultnResult : RtFloat4 - The four component vector or color F 1+5?N>/n 4W}@O{%p h˵ %%u5E b;(XFҦVLE2Data, 1{\-1OSM n" "PZKLь%%u5E b>g'JNjn*pFC`@\@??8[GVTI LDs(e4W}@O{(XFҦV>g'JNjn*pFC`@\@?Gx:G<l5JN۪BP P)\Fvq3wk0.DX?_JEG0-1OSM n 럆L<_ї(L{0nBg)`! \0VectorFromComponents, 1 P)\Fvq3ap Gx:G<l5zpm bp  LDs(e股pm h?8[GVTIpm 02"PZKLьpm pm JN۪BP Xq4W}@O{%p l %%u5E b(XFҦVLE2Data, 1H-1OSM n" "PZKLь%%u5E b>g'JNjn*pFCB`@\@??8[GVTI LDs(e4W}@O{(XFҦV>g'JNjn*pFCB`@\@?Gx:G<l5JN۪BP P)\Fvq3wk0.DX?_JEG0-1OSM n 럆L<_ї(/|V FK|*ShaderInputԭ?ڵfA'7(?ڵfA'7(EyePos8Eye position in world space F 1+5?N>/%dLrQn0%dLrQn0EyeDirNormalized eye vector in world space. Note that this is vector pointing from surface to the eye F 1+5?N>/piDM7piDM7EyeDistNDistance from current point to the eye F 1+5?N>/^@A툷^@A툷PositionNShading point position in world space. F 1+5?N>/Pޭp1M@o=p1M@o=TexCoords3D texture coordinates for given surface point. Any undefined channel (u, v or w) is replaced with 0. Initialized to interpolated vertex texture coords. Replaced by output of TextCoord shader. F 1+5?N>/H o @}E[2CV)}E[2CV) ColornColor specified by color shader. RGB portion is used to specify color (and is not limited to range 0-1). Initialized to interpolated vertex color. Replaced by output of Color shader. F 1+5?N>/@n `MOWIB"ѥ`MOWIB"ѥNormalNormalized normal of the surface for given pixel. Normal vector is expected to be in world space. Initialized with denormalized interpolated vertex normal. Replaced by output of Normal shader. F 1+5?N>/n HtO{/(HtO{/(TangentNormalized tangent of the surface for given pixel. Tangent vector is expected to be in world space. Initialized with denormalized interpolated vertex tangent. Replaced by output of Normal shader. F 1+5?N>/o  qQ@Rj qQ@Rj AlphaRTransparency specified for given pixel. Value should be specified in range 0& 1 (full transparency & fully opaque). Initialized to 1. Replaced by output of Alpha shader. F 1+5?N>/0ҥY@e&ҥY@e&LightDirNormalized light direction vector for given pixel. Light vector is expected to be in world space. Note that this is vector pointing from surface to the light. Initialized in the Vertex light shader. Replaced by output of Light shader. F 1+5?N>/Ps B_;OKFJ*rB_;OKFJ*rLightDistDistance of the current point to the light. Initialized in the Vertex light shader. Replaced by output of Light shader. F 1+5?N>/OHRSEpFCHRSEpFCLightColorLight color for given pixel. Replaced by output of Light shader. F 1+5?N>/~__um1CR¬5~__um1CR¬5TangentToWorldTransformation matrix from tangent space to world space for vectors. F 1+5?N>/ٻzEuSٻzEuSWorldToObjectnTransformation matrix from world space to object space F 1+5?N>/PSaI7֏bSaI7֏bObjectToWorldTransformation matrix from object space to world space. Note that this is inverse matrix to WorldToObject. F 1+5?N>/ ]4W}@O{$p 8]%%u5E b]-1OSM n"(XFҦVLE2Data, 1Hu y"WMB]y"WMB]*ObjectToWorld_NormalA 3x3 Transformation matrix for normal and tangent vectors from object space to world space. F 1+5?N>/@)5FYP)5FYPObjectToClipPerspective transformation matrix from object space to screen space. F 1+5?N>/{x*yIx*yIWorldToClipPerspective transformation matrix from world space to screen space. F 1+5?N>/@z#h"mO('#h"mO('TexCoords2`A secondary set of texture coordinates for given surface point. Any undefined channel (u, v or w) is replaced with 0. Initialized to interpolated second vertex texture coords. F 1+5?N>/B_;OKFJ*rڳVܯ]FՃ尲+%tsxi_GetInputLightDistRtFloat qQ@RjڳVܯ]FՃ尲'!tsxi_GetInputAlphaRtFloatp1M@o=ڳVܯ]FՃ尲,&tsxi_GetInputTexCoordsRtFloat3^@A툷ڳVܯ]FՃ尲+%tsxi_GetInputPositionRtFloat4)5FYP%%u5E b>g'JNjn*pF CA`@0@?HRSEpFCڳVܯ]FՃ尲-'tsxi_GetInputLightColorRtFloat4ٻzEuSڳVܯ]FՃ尲2,tsxi_GetInputWorldToObject RtFloat4x44W}@O{SaI7֏bڳVܯ]FՃ尲2,tsxi_GetInputObjectToWorld RtFloat4x4~__um1CR¬5ڳVܯ]FՃ尲3-tsxi_GetInputTangentToWorld RtFloat3x3x*yI(XFҦV>g'JNjn*pF CA`@0@?#h"mO('ҥY@e&ڳVܯ]FՃ尲+%tsxi_GetInputLightDirRtFloat3`MOWIB"ѥڳVܯ]FՃ尲)#tsxi_GetInputNormalRtFloat3?ڵfA'7(ڳVܯ]FՃ尲)#tsxi_GetInputEyePosRtFloat4%dLrQn0ڳVܯ]FՃ尲)#tsxi_GetInputEyeDirRtFloat3y"WMB]}E[2CV)ڳVܯ]FՃ尲("tsxi_GetInputColorRtFloat4-1OSM n 럆L<_ї(HtO{/(ڳVܯ]FՃ尲*$tsxi_GetInputTangentRtFloat3piDM7ڳVܯ]FՃ尲)#tsxi_GetInputEyeDistRtFloatz€ L& JInputFloatxz+kCY5]BtO+kCY5]BtO FloatInput float؞s XzzuM@n;LAuM@n;LAFloatBrickFloat brick F 1+5?N>/ap X\/3Kf͈,\/3Kf͈,oFloatOutput floatGqiFE0IN GqiFE0IN Input usageVThe usage specification for this parameterz4W}@O{$p u %%u5E bu (XFҦVLE2Data, 1Pu -1OSM n"GqiFE0IN C_TCMOVEX%%u5E b>g'JNjn*pFtBb@X@?4W}@O{+kCY5]BtO(XFҦV>g'JNjn*pFtBb@X@?uM@n;LA\/3Kf͈,?-1OSM n 럆L<_ї(z€ L& l"InputFloat, 1+kCY5]BtO+qe股股uM@n;LAbp qe\/3Kf͈,qeGqiFE0IN 股8pe4W}@O{$p 0s %%u5E bhs (XFҦVLE2Data, 1s -1OSM n"GqiFE0IN C_TCMOVEY%%u5E b>g'JNjn*pF8Cb@X@?4W}@O{+kCY5]BtO(XFҦV>g'JNjn*pF8Cb@X@?uM@n;LA\/3Kf͈,?-1OSM n 럆L<_ї(z€ L& InputFloat, 2 s +kCY5]BtOؾp CБCБCuM@n;LAq C\/3Kf͈,|GqiFE0IN БCC4W}@O{$p t %%u5E b|m (XFҦVLE2Data, 10|m -1OSM n"GqiFE0IN C_TCSCALEX%%u5E b>g'JNjn*pF'b@X@?4W}@O{+kCY5]BtO?(XFҦV>g'JNjn*pF'b@X@?uM@n;LA\/3Kf͈,?-1OSM n 럆L<_ї(z€ L& \o InputFloat, 3{m +kCY5]BtOh /x0x0uM@n;LA,r /\/3Kf͈,0/GqiFE0IN x04n 4W}@O{$p 83n %%u5E bp2n (XFҦVLE2Data, 1iq -1OSM n"GqiFE0IN C_TCSCALEY%%u5E b>g'JNjn*pFXb@X@?4W}@O{+kCY5]BtO?(XFҦV>g'JNjn*pFXb@X@?uM@n;LA\/3Kf͈,?-1OSM n 럆L<_ї(܂dKu=w&DefaultModelShader gq R:>a[EH*M\R:>a[EH*M\LE2Data$LE2 Data for node >g'JNjn*ppgq 7wCHq .;]kI 忞@" q o ps u  `s 3!Uq 4W}@O{$8q )rޙG )rޙG ˢLE2Data$LE2 Data for node >g'JNjn*p^(XFҦVLE2Data, 3"]%%u5E bLE2Data, 6X]QA@y:l1P?qΤIGGI.ps >$Q/G|]8=-1OSM n#t L QNIM5G&L QNIM5G&BitmapInput bitmap eSBgcv  L QNIM5G&eSBgcm J/Project/Space 3D/doomSkeleton/LkneeA 9jmx}l[םMw,j;f-`LiSOْe˲iӦiQhQDѢDĉ5n8ZQ± cmz@+T[l3;8,;KK9W<0>8E^wgGlXe2rHOJWA?+{oՑJK i <3_R_NM;|oO}?y '>)p?9̏ή&3?%LOM;d'gWa[dv;|O299yD&VoJ q)7B؈r85%y1*}<0::08Rpz5k8V+qVX9rlxexf RzK}8 8,aa!)+{vh;w8lÑgM}ލc} h1!Cw@{f8yf `@fT|@C*(=EK[{u*vG66 ; pІuza(1sC x6 wylGSW=Xcvcq_b#8v|nՌͥ?~'ށO˔#oW@$-kwo%DyP9Pq8 6hJ!Lڽߌ:࿍hp܍|1 u³{m߫^C/Q42\pý1P^6P5lU=}磭94EmH3~)\b ~/$D" `?"~{zlv҅k΅áQDy1oF撝96*8\9i܌wącɟT>|*~䙁f.#`Tswwr\em"ΤM[\>]Ty?B k,c؇*>6EzׂpO//`y| ;$^pG]?۴Ăk?>~=(@@] |1o/5-T1Pyϸ;#eݻ ~WrRa__y6x]4{1ghp;Gb( EG`}8ox U;E>7* 'yQS1p?tzXض?tXLK-g"ݣ1%7{ XgC];gxsc{՝'tO ;7Y,po8ϛyný6y}>P r'Ν 3@}k<{C\ӭ1Pu@=_I-1W,2_k {Eӿ忙11@'%@ccQ0Y[M_7K_F_ 8NងY%?ǿb?w^OOw|뽂 ^kz:G',\Icٯ?{ޭ ޴\mȥĿOxko(Z&0e_wꁻu:|K/O_ee/?Ϻmz?["oY/Ϳ,KQyl{6gߞ:JWR@=x'8s&6yodq:s佫q\?*܏X!yo (·z=eY"f~u}OPpc hshx  V*+|dk8fW }|z/Ϲt"ϼQeqWWR:a;ꄪ BMuA_wdyY7 !oeڲSӏ| 1?|lx +?=|zL%f׆(-}_(X 7<GUnxp_Ma^8BXDp|*>\z8`{Y_Z >^#,4p},"x_IItDyOJ\sZ/[ X;;e׼wiU 4/߻ĿUSUFb`ee#;ޗ KWF>ۑpߌBtO$P1R@-F>G/?J/[t{?}GKxu{@t/y=m30*t>\DOWu9ϡ@^'  {bd?YS3/-owsz ǿ0Jp972oq'3{v -zFWBv8}(Y+ ctO=pWPz@R:K 8ps=n/ot 9s}Y r)1e/ה6g߇Ye9Ż})o)RzYIWf&([] DOlɑO;:ymuЈ ?RR˭ZދxXϓI%ҹ헫AN}rkv^kk.[pS7ɞ-g ց-+ة?A"&_9jS ת~vγbT!X?X7_q&ׁ, (f'd^˶2h&h;(8 q7oۤ{́LyY\=: J;<ߗ7@<-x_T1@w=Gdw>m{,Ch( F߷*|bvoW [>l[O1 ''491cs@(*?=IKόOhG(ѕ,/[<NfŀnU7#-/ ҟ3eq@3ׂȒt'1#M D?ݣ\{S8{0GuK 1L*0@r.x_'8ə=y}f]s =n@+܈aPyw\EgӽFb9,`8yFsVtWqj [ޣ Q=1:rb*Qp[罺qp U {NE>ݏo^}w~"WſrgdQg:cޜr#Hѵ9%ʿQǁϧVy<; <ǒ:wXo~:G8no-HxgDF' iX8a g*Vynn>3Єrw7^K VE5֚e| ϟ ~WΟL`{_빩B:^|E\W/ajK^[l._ޚޚyԷ1W}by{Pν:$D3!LH7< dRmG \` }O c?(Kk,n'ڽPbu8XZ" :0?f18ipܛ(WwkfMprY\c >9/붶2^ gk3&3m{ù\lW~/8U/ЯOE?3` 0 K poo?\8ym ]3}?A_; /(]tǒ߁t=T <}$ZTi+J<:~~//Q~880H~8]Dp&t}+ `ΑdgWN_$ȇ E.Kt{xߥp}q1z oIJۅ|qJ8yxC}prJ=_+7b@K%q-{>puΡ >.s'8\>Cfϣ1@ %{#O}?o?ԡ??ľ'_Hkϧ`o/X5=ýOϱWF7 #>+&eo|uGٖ9mz&5'<kAk~RI/ƴOwݟ| `uOL-43{k׌>&pL1㣯NH厩n=خ=4㵕'uVLMtyz(IK8>ڊեRVbڊȹ0+{A< wGU|8Xm(K@ qO(;kߢwJ! : t?S홳ۻ'u=컃'&{3?:Xh6G k1=ƁES3ywwvj(qߜX!:nY*PV"L{ wNudxd/Gvc >*X$= k.]C vvU C ۋsd9rz/``7ƀ"z)FVpu:5}ε$kQw?s>yPL6ཫYo> '3w8$}wWO}C? vE~(v< ($#z~tXxw ?r!"]W!WF$;)DR .B  Pe8E]K̳.Ālwyݛ'ٟ.~۹EgKJM͸f፠.pM}L}Es/+$2! 1t]<>3 V> ]hO ɕ{z]o&p}ia$596=>nO`4kYB{W =7bttt3f?s{38?±Fi6= ک^O(@=y1ݡa?iMw½kp=֎kfs;A9(O7Eowq*Phrb2+QaƂ~ⵉpqcU+~継ޥ7#w/ā=3cQG lhQ[>3;?ݧ%v8f >W8ovzG=Pr?GWXx߈2 Joӹ#!x߄܎Y $up3+}- BǾJt=?2ցOVgA T@~cT;D8Mw#ZAt@=PwwN,l@ 8lF6mxdz*ޯFT_xw7|.R o=l{ov;X$;[6 ? xOm ׸ .T#Mk(qxwy5mA[mE#W48]ScDB$ 9k\G:x4r BJS?Ξ=6I'9;#vxn+Wx[DPq3XM> znqo,+e xxz)U3~>̞K=Q^K' |qOPl_w/&H^}w\ygnl3bʿo 6`kuƶwXZ_a`M5.zw?~ 1ݣrZ_ϴ,ؿ]Vպ59R_oxto׽ 1pO~wvrIUEo׬Y_A;RBܼZJ / {6We[ uJi?{?k|)lD!x8HO̞%"(  xϫv98wPc0G+ _Gn~=Q?s+?tn<՟=xO&c_˪ eg&~+3K[<v |>`?p_`+iϿ3=#aC3@YxB{ob1dD3r}r@;3ynyhM^S~ml-漞gk紷m{dӬA]U} mKO!(rIZ8b1$3zθghkYΛ{.#? ;':޿+>X3h}gϿ>׿?K| 9z@g̋G/>p|gBswgs~1xiWo/6` ڿw{=9MQ:$:'i: s\8p. F^p#=lzwx o>O^ߢzOz>1>oH P/F_?^cZU;IOI'?_r^鞠 >X!^เqy(ߎO9]Y(K5;ym濌1Q1{ƀ+9&/ 5ʿ$|:XlYD@:Z=&?[0ٱu.=>x<q ݫ~W` q.KuGd<"s .x{eS/{l-/sBs9]k\FHp]}t#PHc ڊGG"ODT*.6^7`O$<xqS$] YЮνwv 5*wסL9UbGl][nҹΝ*k6eo+;|L9M.ps|b1_OVRҝs asܖض+\7˹_l7p|#Dw8.,mg9X m܆z~3g/#]WaO5uO(^M㞗 R_RrU1E=l.^1˶?yrW,z{t;h{ʸNù|wB<@> rx3±(o/&jF眽R5Blw&sK:x{]j$ -nR0oA^#稈x;<+f (z-sh;:I/gCF˿3ϼ_91C{.497VL_ֿv|XT-=^ONu<3-?y;u ѵwg<ݳ`Y/(f__K%cn͹|Pu9ýΧ{Bts |9&kcc |`<#bQyוw oW+uD989sl;gĩ]WqU#}\uoZ fߜ̔gد!NԁGⱻkK#>E_փv_'O>n&g~lOe:;b[x526z5r'Ze)]4#rG~E'gOIOB D7ĩ3m0,ȱm@(:Vh|E'xk&Uo?5mo=:l_Wѵg{bAw#zWyhNmg?$ס|DW ?R^ۧ^!2/?sA<;Jx/t#.- Vq! i+"9WoiN$@]HJ]/)=[j[86{缪 RIv7( ڿ=OLĿ89hϱD¹u MəSN{Mp/eܷb@͹fǣY7x?柅( JG^P1}߃ct .w$v}]`[E5K":RztoϽڹ\QG7P73X_1?fsڿm.Fǧosy>R'&&?=؎rXmyռ_DQ $Yj:{elg9rY7~u"kXyHro, (9-6y}e::#W_ϯ`s+Tk-s1HLlA[0\˼P~>}>y?~ߕL$"socɏO5~vUyrUxE)LNNA3wwl򾦞**v1s?$w&]~|;ʏV&CvLOM4ۿĖ_wʽW??W=˺8\H<8?9*5:eG)K9Mt_o}&`[rFFN^V W;7EYn8vCr[D\Ӌ\yMYgV?J^Sq?r_@}G_9н^_(A>^?znou ey{Yߎ:Qxyppz{99߬+|eÿGt+Y!ӵcQĵb]g_߀%{39{^C_{m sCXRϳz:mZjKW=8?Z$^{9fQT 8sMKtڿ>ODZZ{@λݫ[g{L;}N:<2'yܳg'K k ?%y eF/BuٮĜ8YOʾ S}c:9S;BSߝYF3y^sݛJۀwي`hey59urcvR4ryŊ\QnGRqgu#^?V^#낅H8Bu;ڹ/vP̼Pznnd15ߞ;Qh;rykqwvy??dq=Yߧ%z $f oc ;ϵ?k||L_>s )%P~ |J?V]_5$s^3/ߦ7s}ZsSv{zKrA^G8;3Ei)XxwJ.χY޻k}x:_R;ޛ8ߍRvǙ%BA*?{?ǿ:DO8).?'o*A_sPR\U_K}?u\تc>|.~D9\ >/A n[w߯;<9x,N z,CVu8k\9~Ǟ:>1Kj<n27>sNaa_/κu=/NLNDFGG#(Weq4aj<}TqvELf>L;:6κ ?7I7ʇ&ߚ^V6n,3M(w`[52n%Tk꘠M[ [_- ym AsT֕"ܞzkj OG6u`+ v:fl zp{@/կ 1}1v es}Mˌ^EqN7 {A`QKk0㼇 ?={^_+Ռ ?5ʿb)/j eiG3Ab`h=;&Ow)%}svlJHgNkȋ[`/ܷ0v2Y5jW1 t?KR}RR1`8>/8>_@DlV1HKpޛcXxYпrO}3?wa8(A9O 8Ok:k.8fJ|ʼW)` 41}+vλcuR E}ƀ7T?m9g;?I˩`vz~@Pt+I ;Ž`^|)m3}{D~69>l{@Ƌs=/uuϥsNAz@Ec1㓂=>[r^#fz5ĄlkυF7  .+1K/|iN#kN=-Bw%^Rc6[z}hc{},޸7cc☮qcY_=vb|{ۼ="8:dfkS6{Ą?{u5}`)?cziäJw,˜kƒbE%>7w~?ώK)u;5dz=(acWʹlR)#JǞ_P3WFkAˣ݊$h.dH<&z~sSo?cYzO(_Lc/1:ARҥD|> 1mB8H};RGSG_.`{:|8򬓨y:QW6|Kw@0`"auWљ1?ܣ|.EljDJ)>O s }pP?R~hf8#3ho%u2K~y H#qAmPpJ;1Ozr[8 Oێs^ۉx(//$z#7M?mK#c8Ŷ$^±yP2dup.}7 Q)v{>,ҙPQ/{;WȮm1- _yߝvs'bB)(% jbBI7)`- 1 k=n bx>k?AMH<1@`nض= gA @4{s|fCA>qx}7\S6sw/;*љcĀ^y?˶wûc?ܳڽKu }% "S+qΪMϺ/8@{g?+ <g 4uk.88 zg.=sqޱrAWo)PjFy?sgv ;ɶv:uҜzG 8?DSSS+=^5e\k\o jH)c@b- OnƫR݃C2ѡF2A,HX[|u[TK>_얹=9GFҝoòVꖨ֣EX$g-M/0cw%?6g< C}gv%b@ӿRiqDž<*P-{A1}:Ȝ{:$ĀkĮAhyO1rp5*,c;J{BӿRmNݞb;,`[GByX/_sY3O^NK{YqW׻r @5}MJw5瘰lQ׆E7ly4xOW+5q?wWXq_m{W3[@m_~#c_R!wD@*/}V"b;kͱy HsFuokJ]<{fIn,`N?ݳ/+{8 \-|,Ẋ#s<9_E\C]pONXv;W]/c@忥K3U?SqF,4V΃C+Կ~W:U\{΁N&?rJZ{u9'/?bc81r5ꠕ3=rKϱ@z[[p.D{qņE¢̓hh-%}Qڽ`gy1ҩWuu@'3^30fkʽ3/xU|80?z~_^\s:g*W NϔpcYk[;7ʜ;[-M1_uj\>x Μ:HS@?6L~ <D9'2}I'jnZ9_~Qϣef뜷rMX!Bә0B2utˌFGǪG~ձ+yŁ KRc6Y(迈x߈g5*;X1P[5?׽NxLcεB}_ZỦڿlMKCf{O( kyѾ 9-baݿ׿_1&R9muߒ5}~Gp^1ݫh8#q:~Vp%j; p/A=?m?lĿCrܗ>gN %Kj?:[_ǀR<1pa,p&I8?"Zs \.r-B~~mU?WN}wfxv܁k=\2# &aMsf3 ލ?*;arrkߟuىl:6^:&!d4in<[McJ{o|bONnuxx |j7hs@[q1##/q|e;їGa1`~+tm *cFG^-a{mCx6G~opyι(˕{=?I韈sb>Aݏgm*^c@}opzD{J(VÌ{u,L{8hUc[9I\ʿ9_3rAp'޴992(Ɠc23{~S .g'hAYrne33zZEׄf'7axtJ7_[S':a299١@7Q})58Ts \T d`8r(՘nfa9CJhñ X3c>P|,xp9yn#+:Yr+。NWٮpݣJC?o_QKѦApk6D 7#'Y?ze/ʝt|UŀWvQ忍~4xG^c lF=@ >f h/RF^Ns"7:Cplo,?ܯGAi3&牿ľ=^Qn{Р.؊kGu#pWl9} ʻfw5;{1Nc=x?2?u%^ChR[E Ilr }o&zZj(lwUm~7ߩƜe#/D Q>xc=[m v\ǀ1[1ي ybi/ݏ.NT ࿢t%Y21s239}oMs,|+ʿwlW||s&_s5tTyވEnϦ&\=eB]WlNH" qC{< qWԼFcr\=Q^Eϩs:_yqD3tPFo- xUpcU^p _}>D[gךmث($@~yuo]?Ĺ.rNcpZ쪚SLv/H8'\{ϵ޿_B_)xe_ZXvY-=sʹV./?# U._a'OB0.H4* j ayۑ+Wj}μa~.J^ϕ̿v;0x1Rl\zS@7;9YS835x_[=n޳< kR}lwNڿ/&o(3odm7ro ʿ hmc84zGkY?`Ϋڿ׀5s"hKH1 EψE+dڽk-8t?Zg~pfK7,/_ {lCEnڀ_->?BX˿_ru J;?#XW˿R4X?ߛwP65_Η}mqW@}/K"၅رgQk^2K/WUK9 m7=}(c\?jٙ8v]EzBiUo!y/PN)"! sbpΓplR5rGt οb\Wn ԇ(ϵ,E!P4=3Y"FFd?.Xw>W̡;3nJ=}E9b]x~|Dvޭ~kX?3Т\ӿ_o5&'b jC@Ye4-.))T$Xq%@`h&DY”YŘ93  EډۉY$ssy{_Z~9ylZ=pvNeZ/{8q_cOhҼj!_~4[<=I Ͽx JZJ{Kw'?gZ@ c2-g]1ɟZS~.܇p'{+j0?#_"sG%cT쇗.-5 @I|ß,ɞ= `DoÓ3Py%{ĿX}~|lXGr@1 }nA{附d2w|$5_;rŗϺϖ^rX~? )@yn.rǟ_d/zOu /c j>H%z˶1#w<=_t_0w;/vbI+k-9?+1P E3kW췴1F ;yNr>w &O`McM/|bHڠXC _DjgOFgGY~+33f i9(Fg d}2Y؛PPPk 6#YV)kݬw(GV {oqq ߰1`{cLwB>}A[W9 ;ɟϖmeϥ9@eXrwzlKgO}{zʽ㯍Q/17޹T)U?0|;?³(Gi+#%ޅ=soI~Bu6dv1Bx /??}E-5Kv(mǖRc^襽8pkOpυ<'y@j_3/9 p*V[߭9+5 9D7QRܟf{ +k#{ xE3C~=`[ǀ"yse {?s@  oʿ`O٫s?2!?v_;Hw;^'F7Y{# [~&U21@o8^^+7&5/^Z6{狇("|WEfQk?Wuڍǿ1u?fC@1F>~g_n:,N_9vfL\`Ezv#y$\+SO5Ps?/OM?WE7>{e6͹Q?%ȱd2c$} {h%T.o|cC~D@ߧJzW"&q^w {/#!ދYszEs`O}|y9>ǿ@+]cLvWG`oMb7"z?E?3w_46u+þ?=>5"Y'~&u ah /߭*(qG_N^s>^{|H?{aܓᏯdhیC6[&OcϸWgn]uƿ}v`A)<~#>p?F!]ARNµimkWٓ /ƿĿb놿g:'wʗi3Gs?_۰-do,}`&{f3 .-՜?w6H&EkW{S:;j ~yU1!>btσP. m~yP[~1{( n}tUW_ڈ|q9GmވF-g3z\K8I{= N 0ߘ몳ӎǬx\Hڱ֠-1γqB-`]-ǻ:Wuށ;{`=aO{vl 6dݢ!B$)_:3A0w꟬sA2DSϞw[^//xVfmhz {m*>@t6b/.t`O)pgdO}"Źc؛.9~?{r>ioH{w` H(vhw; ͻ2__(g?RɟkO9>|=3Js;>=s9Of=-α [uQ ྡBޯ  xWM﫧M7ku@~ 1>;??'{ß}`߄Mi 9d/^3:K~#G׀"6qʾ _Qrv<+Gd{gn]dO?'{5s"/vDdpQ=mX_o#[bp~P3|6ݭEڋM܇Q; q^˿_,5@_7k —b<@ {hp%4ys*:|Dz*aL}pŽlo_acFKɞ72ͰUE#6O9cΎӓi~'0f z\Zɲk~a\p:[s>P_[s,H`,hӂyQ}v1F -jlaWmr]9|2 ~z ]/0uHuף{gCUѱjѧ^b=C;0^ّΦ'ߘOubzv Mբ&&'G_o}uerj%{&27?c~~d?e>.ewN΋`^=RfvC m])7nGx̙-欿 tAt6[F~ωkT _7ծ6ͽ=0l6ւ|-daf|Ͼ}t+tj`Gvz=3g2O&Z_caub`O|eї_/ ܥ?:ө'.k]TY=Ԕð?|aŋ , X-녆(UٳywX>33sRI"?858߇I4*}#3ԐgWH=]E:DɞgA-:d}5r&'&A{<\@>QpgM(w/G_)@5>O5 U6]EP]5ػzeL`Er=er[?LmQ{Zxo>Pc,b=66#VjʵPM}{N.mQ""ZfؒLMg25ү]M c-NgLoKaľVPDx[ b3of]ëZ/OE9R:>a[EH*M\>g'JNjn*pFCA`@T@?7wCH>g'JNjn*pF[C)C`@T@?%%u5E b>g'JNjn*p^CCb@T@y݀J}N Ԡ>KC~B?4W}@O{(XFҦV>g'JNjn*p^Cb@@\@y݀J}N Ԡ>C8C?)rޙG >g'JNjn*pFCA`@T@?$Q/G|]8>g'JNjn*pFC`B`@T@?QA@y:l1>g'JNjn*pFAC`@@@?.;]kI 忞@-1OSM n 럆L<_ї(qΤIGGIL{0nBg)`! -Phong Lighting XSP)\Fvq3n :6~KAM:6~KAMDiffuseColorzDiffuseColor : RtFloat4 - The four component vector or color F 1+5?N>/~ q 8n R]JĀ7R]JĀ7SpecularColor|SpecularColor : RtFloat4 - The four component vector or color F 1+5?N>/s  q q vJ ~~vJ ~~ShininessdShininess : RtFloat - Scalar floating point value F 1+5?N>/`NS q q $&*2HӁdń$&*2HӁdńNormalVectorjNormalVector : RtFloat3 - The three component vector F 1+5?N>/} q q Z[G {/,Z[G {/,EyeDirectionjEyeDirection : RtFloat3 - The three component vector F 1+5?N>/ q hq  zE%Sf zE%SfLightDirectionnLightDirection : RtFloat3 - The three component vector F 1+5?N>/k  q q w!XCLw!XCLLightColorvLightColor : RtFloat4 - The four component vector or color F 1+5?N>/Pk  q q  B#A)[(d B#A)[(dResultColorxResultColor : RtFloat4 - The four component vector or color F 1+5?N>/s q 4W}@O{%q %%u5E b-1OSM n"X(XFҦVLE2Data, 1 %%u5E b>g'JNjn*pFCLb@d@?4W}@O{(XFҦV>g'JNjn*pFDPb@ b@?Z[G {/,:6~KAM B#A)[(dP)\Fvq3wk0.DX?_|X?dK;,w!XCL$&*2HӁdńvJ ~~-1OSM n 럆L<_ї( zE%SfR]JĀ7/|V FK|<ShaderInput?ڵfA'7(%dLrQn0 q ȚpiDM7^@A툷8p1M@o=u s ~}E[2CV)n }`MOWIB"ѥ q p}HtO{/(| qQ@Rjk ҥY@e&hq n B_;OKFJ*rPk HRSEpFCq xrp ~__um1CR¬5qp ٻzEuSo SaI7֏bo 4W}@O{$q o %%u5E bo -1OSM n"o (XFҦVLE2Data, 1o y"WMB]o )5FYPo x*yIs #h"mO('B_;OKFJ*rڳVܯ]FՃ尲+%tsxi_GetInputLightDistRtFloat qQ@RjڳVܯ]FՃ尲'!tsxi_GetInputAlphaRtFloatp1M@o=ڳVܯ]FՃ尲,&tsxi_GetInputTexCoordsRtFloat3^@A툷ڳVܯ]FՃ尲+%tsxi_GetInputPositionRtFloat4)5FYPڳVܯ]FՃ尲1+tsxi_GetInputObjectToClip RtFloat4x4%%u5E b>g'JNjn*pFC`@0@?HRSEpFCڳVܯ]FՃ尲-'tsxi_GetInputLightColorRtFloat4ٻzEuSڳVܯ]FՃ尲2,tsxi_GetInputWorldToObject RtFloat4x44W}@O{SaI7֏bڳVܯ]FՃ尲2,tsxi_GetInputObjectToWorld RtFloat4x4~__um1CR¬5ڳVܯ]FՃ尲3-tsxi_GetInputTangentToWorld RtFloat3x3x*yIڳVܯ]FՃ尲0*tsxi_GetInputWorldToClip RtFloat4x4(XFҦV>g'JNjn*pFC<b@t@?#h"mO('ڳVܯ]FՃ尲-'tsxi_GetInputTexCoords2RtFloat3ҥY@e&ڳVܯ]FՃ尲+%tsxi_GetInputLightDirRtFloat3`MOWIB"ѥڳVܯ]FՃ尲)#tsxi_GetInputNormalRtFloat3?ڵfA'7(ڳVܯ]FՃ尲)#tsxi_GetInputEyePosRtFloat4%dLrQn0ڳVܯ]FՃ尲)#tsxi_GetInputEyeDirRtFloat3y"WMB]ڳVܯ]FՃ尲93!tsxi_GetInputObjectToWorld_Normal RtFloat3x3}E[2CV)ڳVܯ]FՃ尲("tsxi_GetInputColorRtFloat4-1OSM n 럆L<_ї(HtO{/(ڳVܯ]FՃ尲*$tsxi_GetInputTangentRtFloat3piDM7ڳVܯ]FՃ尲)#tsxi_GetInputEyeDistRtFloatfC{o04ShaderModelps qΤIGGIP?s C/-~CxrEC/-~CxrE Color$Input color brick F 1+5?N>/ q ps ps 4W}@O{$q s %%u5E bps -1OSM n"s (XFҦVLE2Data, 1%%u5E b>g'JNjn*pF DA`@P@?4W}@O{(XFҦV>g'JNjn*pF0Db@@T@?C/-~CxrE-1OSM n 럆L<_ї(qΤIGGIL{0nBg)`! Color textureps P)\Fvq3xu  1frHsOP5 1frHsOP5ColorSamplerrColorSampler : RtSampler2D - The two dimensional sampler (TpFޚ@'xu u PR3HBPPR3HBP&TextureCoordinatesvTextureCoordinates : RtFloat3 - The three component vector F 1+5?N>/8xu xu z(J.Ďz(J.Ď ColorlColor : RtFloat4 - The four component vector or color F 1+5?N>/2u 4W}@O{$q @sp (XFҦVz(J.Ď(XFҦV>g'JNjn*pF5CnCb@@P@?P)\Fvq3wk0.DX?_К~k,J6 PR3HBP 1frHsOP5nE4zp InputBitmap, 1v L QNIM5G&t f5%Kլy|5%Kլy|SamplerBrickBitmap brick (TpFޚ@'P{xu fQ])JNЈQ])JNЈoBitmapOutput bitmap eSBgc0o GqiFE0IN hA ?gŘrA ?gŘrMinFilterbMinification filter (Point, Linear, Anisotropic)5 B%OK5 B%OKMagFilterdMagnification filter (Point, Linear, Anisotropic)Muf2BޠQTMuf2BޠQTMipFilter^Mipmapping filter (Point, Linear, Anisotropic) T?cCx%K T?cCx%KU_AddressModexU Addressing mode (Wrap, Mirror, Clamp, Border, MirrorOnce)QnfM9M$ QnfM9M$ V_AddressModexV Addressing mode (Wrap, Mirror, Clamp, Border, MirrorOnce)9QbJF}~b{9QbJF}~b{Border colorBorder color -n,NjlpgxTKAIzc(TKAIzc(MaxAnisotropy2Maximum anisotropy level b/IG  b/IG MipMapLODBias"Mip map LOD Bias8ЎeJf6KЎeJf6KMaxMipLevel*Maximum mipmap level`hdzCqIjAhdzCqIjA$EnableCompressionEnable the DirectX texture compression to save memory and increase speed (details of the texture might be decreased) ஶoC~Oܝ3 oC~Oܝ3  GenerateMipMapsPGenerate mip-maps to increase the speed  4W}@O{$q (XFҦV9QbJF}~b{-n,Njlpg===?GqiFE0IN 5%Kլy|L QNIM5G&QnfM9M$  WrapQ])JNЈhdzCqIjA  b/IG ЎeJf6K(XFҦV>g'JNjn*pFb@t@?oC~Oܝ3 Muf2BޠQTLinear5 B%OKAnisotropicA ?gŘrAnisotropicTKAIzc( T?cCx%K WrapL{0nBg)`!  p "Color texture, 1zP)\Fvq3P{ 1frHsOP5s s PR3HBP8s s z(J.Ď8n `s 4W}@O{$q (s (XFҦVz(J.Ď(XFҦV>g'JNjn*pFCb@@P@?P)\Fvq3wk0.DX?_К~k,J6 PR3HBP 1frHsOP5L{0nBg)`! {<Negatev P)\Fvq32thE@ d0gthE@ d0g InputInput : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/xu @3@3Ai\tDw Ai\tDw ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/f34W}@O{$q Xp (XFҦVthE@ d0gAi\tDw (XFҦV>g'JNjn*pFC{Cb@H@?P)\Fvq3wk0.DX?_%[ipAO9]&L{0nBg)`! `Negate, 1n P)\Fvq3fthE@ d0gthE@ d0g InputInput : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/@3؃؃Ai\tDw Ai\tDw ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/4W}@O{$q (XFҦVthE@ d0gAi\tDw (XFҦV>g'JNjn*pFD}Cb@H@?P)\Fvq3wk0.DX?_%[ipAO9]&z€ L& t InputFloath+kCY5]BtO8 U`NS`NSuM@n;LA q 8 U\/3Kf͈,!UGqiFE0IN `NS!U4W}@O{$q pp (XFҦVGqiFE0IN +kCY5]BtO@(XFҦV>g'JNjn*pFCpBb@@T@?uM@n;LA\/3Kf͈,@܂dKu=Dz"SolidColorShader8p .;]kI 忞@"`p (n xZq 4W}@O{$o %%u5E b8"-1OSM n"\#"uI̎4)]"uI̎4)] ColorInput color -n,Njlpg8u %5OD.GWf50(\(XFҦVLE2Data, 1""uI̎4)]-n,Njlpg>>>?%%u5E b>g'JNjn*pFDC`@0@?5OD.GWf54W}@O{(XFҦV>g'JNjn*pFBxBb@@T@?.;]kI 忞@-1OSM n 럆L<_ї("YMڿ$ZߦShaderColor05OD.GWf5%lC/-~CxrEXz0`p 4W}@O{$8p %%u5E b@-1OSM n"Ls (XFҦVLE2Data, 1%%u5E b>g'JNjn*pFChB`@P@?5OD.GWf54W}@O{(XFҦV>g'JNjn*pFChB`@P@?C/-~CxrE-1OSM n 럆L<_ї(]IDjdcInputColor8u "uI̎4)]\#H#XzXz\PtIL;I1\PtIL;I1ColorBrickColor brick F 1+5?N>/lH#q\W D ɭq\W D ɭoColorOutput color -n,NjlpgPGqiFE0IN Xz(n 4W}@O{$8p H%%u5E b p -1OSM n"F (XFҦVLE2Data, 1GqiFE0IN DIFFUSECOLOR\PtIL;I1"uI̎4)]%%u5E b>g'JNjn*pFBdBb@X@?4W}@O{(XFҦV>g'JNjn*pFBdBb@X@?q\W D ɭ-1OSM n 럆L<_ї(܂dKu=$Iw  NormalMapShaderPv .;]kI 忞@"Z((~  Hy4W}@O{$0FyL QNIM5G&NormalMapIHr]%%u5E b%%u5E bLE2Data$LE2 Data for node >g'JNjn*p9q-1OSM n",S@vTV(hȥ(XFҦVLE2Data, 1",S@vTVL QNIM5G&eSBgc C:\Development\Caligari\cvs\tS7\Runtime\Common\Scripts\D3D\DefaultNormalMap.ddsA 9?xDwx[ו/ JKItKʻWg2'U؛#[vbYvlK;;%N)ɪrM2/_$Soƶ "s[н4~~+D [H,]1 w*?VD]rѝ"ZQXDY U"Z@Js$Tl%z+PjMw^`kGq惝#.򃼣0rF;z|`i_s闪Mo؊LuXQ2" q2aCb*l3i8~3QeF$!P?SB"Ukư߆yz+P$\a&OZ 2i3hIqVS`H" {{~v,`;%Av Ή˕HU"~c4b>aK<|.q*QU GiiC~ dY#([ *`3N{ Ga.fo T EY(% +,Y+qZ{b% syb`׀Pi˗eU ڑA9ӵ3gΕNm!gz{ĵHF;7'=UuGỲr^]Io֓K'Zϖyӹ np_k~qbIo]>=醈K8Ơ=t͂-OD,faђ>Rm2JPjE 41ΥFΝ]JgCm鷩MJeWIOcp=c`荔Um靬S%ZƑe]VDK X/!ܙ:66uԖ{*\XVxq.=K;$Wf{ؙ[K94RLCԑi9E6ѓɸVѡ6mj EikgA,W8":[io(M[m=Vk9Z}ughu6%vGm7zstVCp.z^Zg T/=J֤w[cL HZPg޲_=xƠSm]ڞ-;#[iyޝiV%O.\t`&sVH'ٶCoI8 Ԩ_c.zq;w3v!to,YQ~_bV]ZcХNQ?\Z= []Z+0sj- (ڳ{yu]C8v֡ڞ#{ ll];\Zx x}+V$Ӗ徳O||wwd[Xxf:֥ .VҦ5ZkȩJRyLdCVڕ%ٳZ$ܟf]\B/9Ҥd˭J=שՆmZ]p941.zyLku34{#Gӏ$Khf{pvdavjKݳyW%[i5GZ/`Qx2Wb]s1W==kmɏnn>[ wn~>=B!~ro|aRʎYp}m?Ol]ND ~΢S)=XNW}wҫb^V@.1U!Ooy138>:60CZ=5 96Z05Kx68^v?s.N7#_osVܦO8x0 3 Q[Kj|oz3R뿘n \j3؜LfPsjpQm&պ ~l}?f-J3N$?Cxɚ㧬*١pW^Fh0J hG[L!ox!xtPg[Σ-4 Yn|>m3sm,U߳~86%A!# W d8I!㔌>T ".2nx*A>|Gן}tB%6gNKeZdޥE )[&0Yb`$tu/eIuY.e C1R)'F%X9zoP Ƀ:o-וvޅ-9oݜ\@q- $X@`{:`,B`m'`? 5a@G%;?[^KN'# L`Ɠ%U)agLrwۙA O`_ c[?"y: S A`Sȝ U[ ߀e)534]_fdgrX~ nGq.e S<n8 `sFDB(ֆIq׀/&K%2dW6O>0]*By"^Ѕ1KLd@acca X V_}T+őyM?{W=:4E_h´CSiq<¼6r`sCLAv/2 }p~!C%DKVO1AZ;ԟUU++˝H3I8Pl w;p31">!\1>9txf^kTrC tm5GBG<0ԽKx7`>[wP2"`g  WF;3Rʋ8?u)8U0'0g.oU]=`) כ:[/Nn ^)a 'Jxa9etslҠJ17/Fl;ڻmJt% YT[;5avsFϗ=?2h<ؓp[;^`Ǽ&"[6ev*_*%6aשiJy&*z +O@bcIl X @e,puP;arkIx j*^x/G(i ̡K.Yo3hutp8*`^Tq6x/#pɬ%ʌ{dJ >bLØŹ8GD7y0BBiflj֍Dނ ,8uaBM@~@& -I}.: <+b  @up@҄h[yNs 6$*DU. .=2P9{GqbHże*!]4؜ a)GSfKJܟü0\DYJ#jśAދq bz C,?,r8ͻRCD,# n |(}j@m|[96E/OY2t2] ++{{2?p C] 9 pEm1/FK8Սef58/-ZkU ;r񸦇& "[G#pF_ͮү"0_yi)1mvS,p.eWA0 Eނs~k>;<oA\1*C*Î"ՏnJ@U6@TO)Dʭvwɭ~[`{Q*wbƊ Cl1{1d4 x~kLP&\=+ҁ*M*P?M۵]8n"͛ .a]p'anX\醚 R͇s cE|M @ PkZtvґl\bכ#Śߑ-9|t v8 +_?5 _zdӈB}# f;'$V5x Ћ*q|3׉#A,bdj4fo2T"8_J%67lƸQ!"%`[¾ɤ GAc>]~0RY#Yɪunp!CYtjʑ%Yrnu/~jK:Yc~ ip\`>0WA_^!?ӇV)1\df5TF"a֣2+Lz$5 K| WR_ԈŸ1" ) #:l[avWi]FZƒfE~jE>Q&pƘQ|'a b$wF}]Ti2}<~߶ʒ M8coh `SjabE>zw@A^vb _go Z=~),ݾ9˶JQ|ɣOGp˕ķT>t47>”x:'Q4΃e=ת v:T6^^S sy D)q2˥JQs`bK/wsSYnfX$F@bB0 Xa|732`dfPf7J[ ?6߯VZU~v!0ñ]w'}016pMH.;>5H!1זmw_J].G.Z1X ?l ]?yb`%AI Gj<̓%SA($Q!~!cM65\GBUH58 =Y_.qrJ^6O!#!C:~pL P30/Ρb'ggnp] W-6!3nUZ&0 `qޯ)O P&qo* tч@(wa`} ̇q^Y"Ҿr-˩Ě=(RK-: wx_ 4[{+}x }~sp|Vnٴ,쯂Z؉h VDU68kgm{1 ` { >8ێPjTd0prpR/ȗ)~F204ѩIm.,h,-_q =:q/!c؇w\V2=A2z1J@3 A @ |\.hH%YroN-9'V (Ԍ[1C?щR q|O"$[ 5o02 ~t?2bPn?d jNrV7 e W}ߦKu}́i)xޗ,"b6ĵ>AhKsF(FjmZJ38]X"#:Ubƥ*c`AG#ZFRW&M/~)e5Oj-<"ZH/n#Pw[H] R[9{.vfB Qa8p G}`C?>{?^h?hȀ A?Ak$V_89RM~(䣥H$$cxWڱn6=D` r|^া6e&:j_C?J(r6w"Q|=1H2u#J?pj/6/5-x醘=tq|,#9`@DWߏ/DFNj0ҙhg>ͫG5j%k:<7?͕8nq 9! U8ǏyB1dǝ(2> (ry9j.FOْ\NSU+Eit|{ ڏXqMG̗x qTcH hts2nZY ٕSv+;޶1ԗ 9`;^nt *q>ZRkǁ?7m C1y:?-2?CˑJ- ոE$mQ9wvMO^Ȍ1M~Am1b1TXA> c|yїZ( 8?82zֱOw^ ;_Nv/uq/A%B]ϋa.+ր|O'SyП3wJ )Dn4m=Nm zЂPWdz+CノK6$|S? ȉؘX} }ҵ^4<(sQ[˳.[:݉3Dpޖ&YfҪ.`|/$`8;Qme4.Bpٯ^y&U[hu/'.p7#61C7dcPǚdS5J-EJ|:N|=b?X o\ ;@~NgGOL9͞&_s^kFtfIwd:f / |sd}op.y}WD;?_gkdzuhL< EQ1dG4<6Ejp). E/9WȷTE F,F r`U19V @GE߁n#*t CC_{AMr-\TC݅SC?Nvd5 y9<`GDpQ< S | ϛs3H ZQ FDX@#ll]w2Dr-[~߼Q> [% x#ЋAQ 5)3wx ~·s)8xȴ~l_z٭vWjM\U칎k%uSRP|_G;'ٓe?7oP>Q/)s:Ō)W`|$|~o@[xo#5mǭ77|/co\y7>|B=jGo_~~d.Q =KC3O,,M&T:U =zu濽uΩ'/Ӏ४S{e5Ŏ*amSSãaL`ƕ >㙷F##KT,sc$w.H%a,{էz2G~+'>?[_1 G2_Y>:SokBy{KPo--t~ٛM"zTOg.r39erp>s{GC'G|v@&3geiMoִ^[*FÔ%;AU޼B;iRLľ4g7]ne˪OF*K:WbkÄsk9EU-']V΋`6KΚDC=eKw;QĺkKy2\{ܹsT+g}wg:GWy߽7\f/uoZ>W6LS~v&yov2Z鰪\Wf'r}(Oϟ+S~g>] 6?TޏԅC]MR:\o˝9j;c/UZu_!2 5`Ѷ}nYnߧ?s_K+эڴQԳQ?7;o̞Kܭ_6eύ/ݳ۠-3/2R*w>XII3EtD|m kNHZ4ѥT ףx])oa]ʬ}Wzpuf&Y|{O~ƟO˵ <_A״[, q)Wž̇sZZ_,&~>xPM:7ݗ#;g' 21T Wf&&j*L_꨾Q}Kkv>RҥC&etiSn|/௾zaחc6P]pǥR+w]ɓyӲK@9Kgf.YpԚeڕYTofa@f.QoKzWk;?ѧbsֳ4\VgՋ-{{%0c 4앎`K_)Ӵd:?sըs~_t&e:t)S!Of!Qդ ܘ~-Zp-ٺ8bé\ !Ҧ9U}̤er=%ƙg3Ӭ'}\aī\ 5Lzi:ѓ {ߣ.~n]zޚ{9ɭ̃?̳ՙ+Gyϣv{)FĹ2Nm/{>}?뿦\JlQY~+eiݢE@;3zY\`^{/c+Ӕg2]s_y@;.mz5KG!2 Š8}Bef0$,xAM jd=_(g0R [~qcfhx#{۰JE4P3nc*)m@|ɒEe^NePXf:252  .n`ːw0 6[=.m Asa=yǣ /7}]e/J]y{y9' -غR~')3#{֯ ov>oI>,fAjh [P'uh[Tɞ\(K^P{7#z@_ 8QND-e @?`s}-Ԇɯ?{-*թ{o'b_r#طnM( `0` ;6{ ~a=аl1kgA}dY DضpO2tb[\X2֛poJ-htȚgn#]dK~O>8v 4sw"e_< z:C"˷`z!<[/$@vzg!{ݹ2 2}y'L♧!=}xYnwiV/ձ[ t-[SnrKmܙ=Gm=zcܙi }}CO}3v5K-SibܙPu4ՙFf݉G·܈#!pk/\zp6_^OiJ]ؓ~ے ,>޳u'mw+M W+-^q/Q[mj} Gn1ȸ#mKۙ-J-V36,+/Ao8;L4 ˾S[ݣ#\bmhvr+ՙf֣Kt-`pChK1R.(Gm5zjϭ3j#\Jwk_4SX&oYzXrb,~w`kz+CCeGkt>x!׿}Cׯmxpi[l^T@5^ԊhK;$==nR>(:+#V8Ȃ_KCl6Tioݬav P6}}[|X@s=UJӐK \qĪAmg]nYp*4y7bc+]^v'Bwgszڡ`+\a\ev7~o/϶ s{nbeWbSw/c .^z9eܘUay&sPU++ulrir^^~vi-cLb}owdZ;o6w'kVھTRo =Tw_h %˭}޾So'F'+֕z5]Q oE]z=TZviu3ϭ1V Öe͞%9 :7,E^VށUkpZ%r;e[ǃɪ?٤MسϼV9blUJgvW* qc6{ώ"%#~ϓ!PCSN?xw{K{{|W-윲S<ɞN+ ң}S6bFOuR pmBm=B|L]Қ9xOeg՝ˋ{&? g>}gVȷYsz'Gt xu W|C#7,xkkSu+ TwnN2MCҋћS݋w{R?{Vfv`%C_֙?ުL-Tz;uh1񤺷ܾ3_}"xL/5wOeCJxHM?<=ts{LCmSw@ ˚Q2D,K_Ԥ+ ۧϜVRUm`ZGJg ]V!PmQoem8#o'Sk)}Vt˵?;TIMΥX E«>zU-;phO.  DH$*x)-@=Rq)0\ip Aˡ[XKa7ˌ#U/=:CzQ"G2/!HFpH+ZïJ O˨ _2{"pzzrA!^ITTF1ol^;NvdEǂYxޑ.unI~!;3HA??b##A|A|Q_RG4{ #?=urfr٦:Q4!sѥ Nqi@(  [[ҥ]@'( ǃ{ *tndGgvmģ[~f]̱շs5D7%EpBD7coJa@ b_ #|C * >/C4ή,nS&WF?4aQAYCga³6E0q؈6æ;la 6aawa@F(DȠ(v"~ 6wC;97Oٗ=.eaX!.*5jʖ OtnbMw^S)T3ȥwIz)T"P!1Yk_@6D8oНdiz4h_zmKɻi|2{֩^CZS2I7IFH7)7y7yq ؖ 1 uyNQ~X o"-6MhttXC zwe {+8MO `/|6`{_Ɂ}eؚ 3-6FFwؠa? )0 KG4@UkkcN:.Xf䟰 ʦ qLqf}<}xΟ()|cwbA?<1? =a4Q;RGz'JHW*<9[:9Czt0Oŵ_=n?ٍ wїҫ旃G g^s㵨 ނ⼑w\Єrm`S6^\ =5'Ҧ3e!X??]`zG(131$.3F5uDC#*FEc],{x!<[sAJ@w6`[`F4)k 'H``"pZrCeI~o&]pU'qcITӉL?v]|| 2BhzX"c|q`nʁv$TYNO83oRU/F^SccP2 g}4B2((IYLbkd}EijHkgdfm Y0Ux˭*-dp7CA_MB !~c>FFy38#;üAxC: >W?++흺2vǽ3.wd R7O~:t,RSvkĿ\RG < 0]\Ns rp!0qm.à C0 4~p!t#x8'#vj1Ͷ,'e~wBL6=""Ȑ11~.!#[oi/\ANjc V $KyXCy_=+O{Gy]yA e=N۶$&Q,٢}`'%"U/JȤd=cw;J"QHU$%ٞ3>NR y;HDU{)M޻7R^#G-]j7a0x͊,쵄2s9ވB"⹒(|X#σ ^UH9Og2W%M,Dq/ŇS#c/>\׼+K]'VLj,XVjܣ ߴ2G .z$VjIi?3 xqt/d/`H;G L4<&E;Tc"qCKω _l=&A xYgЗuЋ`ڕJzY[?^{ C$ow9>G_llA΀ݛy#` #<87Nk= 409#ykrI C]1b:or: JDj &Rx | W5KlLOZ1*mtۯ4x k .d/M% UܟܟJ l0F?{ň?z:}~)h-*^a`8 q+q_ Bk2퇑2Wȇ3)AalSOHЦdV^;~o|$ :nK>[\~ XOu,)oI#:'KbNąn~zR5 pGyxxp&bMVl7jnvm3n#6a1jHIظR=X^HR,cv ^{>c<xzq@ѥLY"BUJH,![+/ 6F!'R`ry`dKzab.}s 6bSKXle'yoiO~uSOV[o"^S_h̟A݇/&P4b`Sx.Ԅ[+HD + WW /H,1RǷj#4 ׹vCYB1pVA߭ XdW#^( =sgp}tZ"oʍQ/rtvګʀǽSntk!յ`啵ar=6fџ+T(wt`lzdkEJ Ȁr\s*`_KU/ha ! '*]: gtJCI ! H`* ܟl& `=ܟ xOH\+t';Z/utZf|ؔUa=H+ Ge1\=)~Gi,Xn_f@.9J'}:!8} gb16 BєvCZQWܑ~9qy+Zv֠`o 'N>f)75 )$x W{`B^^d_q{5 ir7K@/xo'^ւⷤE+$>3w?!M}7~]Wh0 Ẏp\c2~z^< #ropdr=5C5<`쿉?ޕ5ek J9/#]о!B>2md" ( /$}(N̾ ד@8N0GE_ LKcVo{bZZ:N}T<䬀e<yܕu#]@/b)?*-˃˃ ;#]So!ֿUgW_I3;A{pY_m:C}[5@ ,6Ґ`|ywwzN^dSLio3vkfi6#=]3$gkpm&!?Ma]J 0.NSbȿSג ]nc3q)CˣhԐxxE_ײS'f G-?v&>5.<Ў|ql!RJ=:5x/#tŽvN ^/'j/>`WA2]1{5YONטj'W2.ςEWݞ(챾?u/iWGz.ĄQM:/}\NQj俆?̵X'nͽH?z"Sq_b&ݛWA){LS 1%;I@>[ -;ɷox^CDNjϧi|\(@T *ܟ /#XWu!YF'G,BZO75JK%]~WzxW!䕺4;^> >\n >OiZ&`)O,`CtH)Lw.lRd[9k݉%;e2]i|!o;6GYiw!7@ \ZQ:⼯&Lfկ4@L5BH9? >y`}䭽<v"@x/IfSvxLp3S ט=Uag$|зVp't|Ox2vgPV܈Ƚ?O K]˹\wなb`/4EY02[EʡN~;gB0P{!(qڏ14X )~f~F%DɎMt0)V+qMڌAL1A OeGST/y'G"%}놨G*FyTafd϶7s*n00ҥ˸V=$kh&X4dUwϧs#p|]$ WԢ|N~Kܿء3o=찋|vN~[}1o a; 7'О^NH;LuBjȧ|#{29i+EO-uˇ<:Csꜻo蠓2ŧ0C)D)>cQsXnjeb}kz.`Jg.8[';M5&V3jCߏ=O(Ԟ,HtA.uk⅘/"LdSvLj臚Wv 7{[r)djIFTގ9%Mo!_`\ Bk0 Aqc`+&sr-d/=FVŒhw Ussso/r9yqBN#{IyYx-k sSX6ʩs+biEc]^VMc)RYo[eTެoZEn^Q[YW[B6Ze}(17EoKonfC͜jos/#\:3VEb"j!s-;lneGΛK;1׹s16a49b-<7d/CF1aF޽#\}'sZ?7U#$-rxW O Q}zg=N9yX/[˕--Yek-}~=]60ϘkMYcSlK̳[bOkK7=l9OsKiނ4m(meM~(qo[cޒjTʉ7?ToP-**geoyU+M_8#g}NNrdxFpgf~oPז w>;{-i2VIjvهβx8bgm=\]`۪<>X[t׆Ij9z"%J8u{yɤ[n}sS{#r6%O ,i\W=Ί9YG663ڊc>;Kc+7b' J+ڋ/z;;%ڠO!s=o2gN8AZvQ Ԋ#@UҾݹ6{C쬮$}%׳׸b 1fN LUvtg70 ypS"]8szCP:zjr<-*A;Bv#vrVSAg TW]d>Z^{/h%|.P*.t?-Mx\Q&|]z2`nAsS 9k$z ":js<nago.NvD‡b4,*5>`Ι:K#p*'Bf96'Cƺ6`7%~0GN߭k-ot|khm!s~k^a`.]xj` 7d'XS>si<ׇo|$&E[yM-7>U Hlfb!Owb. Ƕcwo%wE`f .675XE%d-!{I=XYNM˼}6na&F> P|rÕ[B7_-;A˙]NLvr6f;䰵%5>k'.l[ÿqw?lltݛd>ڌʇr>;ec %l/A{AZ0r1=:4J{Tx?S[N?s{쨵:l7&e.UYBR>;bYE1hY7ӊr%; a{EƜbxtlv±Ve.\` ~1TPc\nCdgH~BRȤ[HV}I_a񌻎 3)ׄ$"uc0N$p/|v$L[pJ"Ix_ ŞIxsV# STZWžX4$ȣߋ5!h3ZWv#Zk#7yp![ݳH";O '38f0IZK5Xˏs${QdK3cN}wº}Gh/O2MLt.c?1Enw>y1; ?cNRYcoCuEHky(#g3ҴW(+ 3wwyIRg==Hv-m~mLJF@g8[/ω5"Ĵ\>ŽQ=Z s3o>0w)l+?VyDVwsܡ⇚/F5} i>ȓp 2oeh14nt@I-؛sF๤Fu{ɁcfL=Db ; &LD\blqqhϨO[u}8=5Sqapv!9;sZ8Z9%to&wq q:e]g?-Hwo*n|р2'i>\9~ɧc;ţrwm+֣_ȿ~)Ω_J;d?8k{+OvuWFetB|Z>j`ˁ '`OI!\9=alLI|:1hw^bܾ`H|UBi5Oam _Ae1oG9zرlx&Ͻ.$y< ʙ1s`}ntoOl#C{OjVNfO>T=yLбI՟ T?T?iwsm 6vF;0'0nW=b/vF;Hl& @WZ-ֽώۜ B}V8lIYvC^HPTϧpSmvoq2aRڬ3v+ugF=:joUg}>M51K&5{kֹ';Ag,wQN縗l8]9TN3;Ԭ}6_>1'6{Oz&ibaG^F߹l>#0H;ǙVXXh pS|rvsdfobf>"Qh/-zk͉_k7ٙRsH.AR_"#lט^ 866)^d`9./s[l.{^9Ҫl!@z#%uhk87 s"&a :o&N9lOw-5s5O%YjFa@~O0G -S&R_!:e/.o: %VM:Y5SFa:[`H!ui| B`4)Z{sRg_%dq@1W={tdO}QK"K!BYV\6Iy))tF^;9'p/rco>B9jiʏg= h9?wo07{TWS{kxƗL3rqvU XL^vRGPy,Hd s+h%ׂ5 dB,!m#qѱbs|񌜸$cHY)W&Q$MiRlӻ¥97`R ܍,myA֑GdУd_ ʱ/<|@.fwgYi]\%!ЛH*^S i]99{/B:ȴT%qGQcUx&:u}-rYrOzoGaކ$R^$Jȅ;? ;?Qqm*Ѻx#~_1Ro][onP=rCkL.$y' Tqd~S{(8uzwc~b*WvfL/o;#߽>#On_?Dw\:ԫ?h)B"<ٳmUo\Gc:)l-u%P<9Kvԁ,3RFa4I9t'Y\ߐ/A l'&{ "Zln5\8l- 爮BS{C[%ɿ}l<k^TĀʗjvcIRˍ Cm\fb>3< JȔ26Ts J U,R5G:>Q@,/عb) G,u\n<5oy 㴯r%srC^ۘ8(. Fly `z[H*b7WrЊo^#rb}*RÔTxƊogSR,EaI?_ WgfLQMO`bk]luA)O!"I,îV糒 ѭ3yi쿢B-y 4 Uٵ~u\2:$G{A /qkh.D{D4~(Q><3dGkVpU˞NRHtVSu ,{*$rSO6.[ C0hh?7 l-{HxteZVӋmVjs`] ֛`M+ϿawkTZx6OW]ra5 ZL:֡3SY~Q8E\ )myk()KesccƘ!(El%iؘ1W`\MJsr\|xmuL_(4=C{>0)~(F*ՃJ'Xr";fw/wFN d'~ϞFGU\T[3x? Fvc|Wޑ!{./v 1W\,YkU&]Z_G+m_Zr?*km ^A%Ax(ing IB*ZCf?={7^t%,v3h2[/#Wx1q(ksk2yyxy z_vF儃<ɩt7b_Whݶ X_ls-/:\Dk3AOz+B@]Z <̀+"ۉK߶ߎv˛bǕL|3kS--}=6xҗWT3k`^>_r]NDV4EHɨ x^Þ:rz\ /\䯶ZzK3u'rغxGyn/S|~M~.ErnS2"@А8ŐA>fD}曐%< #sP M8)Z'@/уܯ)|r V_Gx=IvK\ ?0ePv-#%~&KPqpI*{?qGROl!UK^+}v9b _U_봳 QTSǞv"布(O["Vc#5[a}eW8w* x-AA[-b9FuƍC~!,]/ʠ! Wn/Dm1/G~g(5L*%Yl3[DroyZϢqX q1^8WZF&J&fhB8@޷YTe35p5 kcGS ܌Tk)(4#ǯ 2˜ ]b?;J}Ǽ%L>  H.?C smS .v~Hk5*q&3~{qQ!bZٹjpUfG5~WKaIk3DIܵ[u}11 ey/rn4^dfƌ$' \ـ>Dʹ.;bmnp$9vέ3jGk]8} 7f. b U rPb?l12]tr?jǡoSǓN|}&Ks{S C.ܵbͣ-iGk%Q~DXzr.co]1>^[d1ևa0 kqߨ0N쩳 {O>O W'acIs=:lak$ҥF |?b\%KyQ:U ۸yew}q-Q9㸊Ͽ\/yLk1.G]JdQv^\91$K#K]?h&}1P2Z:I N!{boN g#dV|m ) PDk` =1Z#Zl {[yte3Dy_$6r%3i{ WǺ/o YBo5Z!uqHcxڴWsN,@>l8I0$ܵ3bK_x* M;ySSoiDoMh\O@!i`-^ ]q|F6N41r=VD=s?3GCooUi˖{+ Vݍ)!]{ڞN׾uތGTHB̬Ѿ@%~=IX_vW#% yb}uON{;G UZ3&=c;߿vtTN'^Eo2kSd-C~SGu= \ny4'b}6I0*9s**?$3 W RlM>ہ?L7}nVCԕ#5wD:u]'}1.G`έwkQcDB:,_0SN %dܝq8mqWƘ^sG{2@9Xbl`_qw i)2b'A_7ai-j1䁏Qa]Z]z /3 x s3TǟZgdJ ~`7B_o&A.ؗQ`ӀDq@< >$q ׊%k} ^h%\ޙ]zo_ TᗏJiHה+ 4~ I<g\?sW#D!zb:mSm1Va-`g,Q')vF:(sq=>0sWFq_p$w0/%[Vy,L !7[iqp7-OgG龮'2Cȑd dgiḦϼY/vVK+?wwUuzc KKji?( 7&`.t\B[gz<БUx>Bqb#3Sl0Lde1, r-5fbtE氟ZלJ96?)bseu+f{"jwsq0oX2T̿a࿍mtܕTjjR5i 9-Lp<ߑӽO`8?_p{&LK_ox3\tCoLxiԱ7) >0OrgjU?RӰK#S2 GY,`X44E(Aix(H4oܙH2` 0bO.`@MYN-.`uĂL[L Zw×]v[x"Pw 뮰h] cyFq/9뎷}2H"`BĀxft 4b~&n:I$nq +Rio ^<㚐Nmc^>ĒY#k= \pn4alϏڅl\|S;?QUoM05ŽR+[H>e.eRS/g dS3$u|L$m[xj"|;:ǩ[jf[:߸|Q3}IjFr{<Io$1wp%\ȋu,tю;l ga5ԅ.;[!#+M 9Pɽ0ZLIjoHc%Q%"fJDa2 9k$CNK3?ӯV# @1E8k_+ W+-"$lpAnIǔyka.^@0363p7btVN_ F_.,ƍ[+[܌yKf^{wAWoV*?a ڵ\f❷Gx\I]3Ŏkurb) li7  o)n?kr3Yf;~63n3sVb(kֺl &he,72`׭M_27sKƝQ4o;ooRWnT6RP l7XIfZL̿3o1nlI3z⚵vr򝿕;LƼLԬ&^3n-+)\OMҔ)LX5L'tmyv'_n7'|OWung~ݷWﮥ9_3J܊\6 떸 kKX5Jy{ۀ9^4UT+oK7bzLi/f6͕ro<.w ~G8Ӂ=vovz \Ί[k uDލR|cxS^(ѹ}}GĎRcw^xAʗ﷘ BAsm:aܑ;gSos6Xta=G3ګ#zHg%u6'*1mfYi7 m{ä0}-;jiwC}{s{#ouvq,m֊,MS<\3/i:%MF[[=7*u5';}:h'"p-yӇ=X]H?XKTl7{먮Gj+‘ݹM!cͩû\Ίt*FR)m7?q[- ulUފw; -`n !(%هu*= Doj]J2P}[?9_cYP.F*d3k5Ye!׾YnsJw_W~ks&h W(]z!U!dux~{g9 37報J񐽕 ŇM%X-A91mYN> Qr]YqOo,^yA{y' 7_Qfn1٠`^R77?' 5+@49Wmis^l}KMww6o_{~w)} XCxCx#7duA"}5f?hͱ^ԫΆ=DثP^ܟ@<Ġ[OmJ .z0PҭA&D'-ٛ=4dAl.bָI < זs:Х0Ak˸W+yAL{=G!5Go\#4ĝ'zQ{քSkKCKoZ VB^0^eWěl7wo$ Ʃ{^sg'o8Q9 >0O5彸Avxkg?|ci!o"si/ѣ^ڣ7sn%VN!n5эw Al0`S~oGg;FuuJ> dYC|{3נ2^ߣyr{dwM\SAw7c$`>waF:dr.þoԿ!Րo8{K6.Ϸ Dg[]G7ky}giTv-"m+$脳DR:+D.~|x;}ԕ?v[(ߠK9-(Em=8qB/]ou'jy?7Ih#b0ܸ];.}kW[A֥f .{ a.?`Q8v /{fa,~HyWd(VU=6u[vh~0VюkQgb30?C,;CIw$vOKsܥs ցEpM6R?z*}6nh́mZ YoIo->{`mrXpK5-Boͷ ژ{CAȵK5ж;?Xnњ}[o[Q_*lPz+Aj)tQ%eۛf}p-}B|&'Ks۳w:]҄V7&^2JlsGijJخs-3J3ݮ T;3JԞön)8OhWvG!mvV-jk⨶W|[ǚ]:=i٤Xqn]tx[HNew` MKz4~n4#_)ڈ |HIG&cWs1Й9cj)4'숈dn_|]>6gFh0B#Bx-!!!4G4HqT Z|x^V&@0vnE<85d$y Kc7'Tۋy`ްx\ܹHsMq]qqڵSkq,>h )x]V$^'}Fb50*BkoP8*GxGGS)u3niyA? ehSLg{P˧h|6ėGuG햀Gwy#yp[< lcp:!Or]}Zɩy/x(UQD ;*\_Gu~$;*i|1{{W^3H;"QJWN=X;ҙ'\fo8R6*uw!6c:s_#uuH׼5~. <| "AԏJ?`dv!Ej֤ڼpĮ +zH&mWr񅺬49VX* D̚2|-ì}ޜJg % 0/ʠQ}x-~[ڳ%G.[kGfd#b'_ _yDsRɽNQ;REjWbGQ, yX|~4<cޔ| :0?wHbOl(&؊ԓvlUрן mJrtFFg%l=&(*I]֞HZ{C#xT}A>JxF)mvߍ⺿"9V*{\p j7ޏ[{q=.{Y,Z=ӍI^Qe~}:FV9`6hg=&?\WcN*G }/nYB`,/> D[ x]1@dƜZbk9}aw`C=?='~v$t4Dyb4Fkx_BRC6ݯA,Q<3nϑs%:q=bsg7F#އk0 Я3 だpa %O؏^kOoYNu=ͮ ^x_ޘ?^}L/dC8뜏)3AA: W`{-,w.n &<JJ9_A1MRBƎ$qvD&oy@>s`c NR럱7D,aȁW(H%(t.ԲBI60)EG.[+c`?3CFUSuX k> i0cr0wßj'w<~ϕ#AS[%)2q.@,DUK-n)+zxy&pO_ qI e&P)G7˺G[oY ),?Q.y?KH16n{C1F._;+# 3|{/}<-Y %o`N8f+HLAl@%5}_!Fv@ϛUk?90x:[X)?0&FDqs`>d–H]%(sC@-O.sO6)&i U E}[Vğ~g^B%eitwse4x \!rb1`REyi5gſj! 1]fzϸC_S˪1 vP鄈Kq̘O9f ZPp=34Y*/Rn+ﱗ3MMyqҙțW!Url_{u/s@ px12o/`w6d 11m}y^Z& Vcc<;jsNnG" ~0س0N:3 wewS%v,:O$kq牎K8f`lbl[}Q:dKBA@G,wjw?IWq<_{b&c?`|&̾OJQ*u~ >/%Q90}AVy6' R:0.$&k!h*sV^ߦͽ(IYd@ς7Y^5Х \tT a${sa f: |}0!,䭘1d@aS n D#|‰Ltզ ]j-=/Wg710ƌV] sg$ *>XDs Z,8llbwGaw9U2b6v{᧶~-<U$e_Fݘ7:q1Y1̗WI)kd}Y3#1/ >/%;Lߐ%m˓-jץnq FO ]g1юX%˯״y#= ę3G({5YX0pxtT ~>gVyO3WkUiqC{a cu>k/`{y a]2o >v*[>(b̞ij {0BD_/*;m)q"q?%_ p?* vrtEkd)TJ> R0@RF?ğ8 PV?9E CS"Z%pQ1_H;ǩ{Nܭb'ZW;ҷZE j:eT}޿>mC e~~Yl{F.ɝ G/W@GMN7\ 1@D3fX9 ?ܞEHȋ券Q.z̜ _ub;N?9ÖL9a0s>=(At`~hS!͇:iqh? |lQ .mɦ?Xܺ1gDf_r,c1ar72_O{A ATfLj;UIџQ[_ O}}*A]NN?͚{;1 yWtP嫀]u&Nؖv?lMoww”HN/1r>ȏyI`xDsG\q HOJ S/x%Ɍ=' ‘o=߅q.^rsl? o?ci`cqb̏sAJR朏|\G/^WfވDI,vG>vȡEM^S3<-^ٜyc|cЏ Yp?Χ!_==}ެ0!T_=52.& ~\l7V7W7Si"OVQ}ɸV,:UZ%>w !`<h>xRDe0* q\x>G#|ob@OAz9t|SX=7бROLك۔n"/7B13s(= ^w c``>sq;/ q1'g 4^n`"eQ}yA5mEs?NriaMnqȎb؏+ 0羔^yVXHo%)}[iY2/QA=CH$k+h5!^ykc{h1Z}ycHS?Zds/j0̆`ZI{?5~F[􅾯^:'+A+7["UN0pςq-}|С%8`tBR}>Uis0{Y&Zbq+=$:ygvG00m<sr1 q|,xabU*Y^SrG(I~r O{x%TZRlY&8*׉a.E_vp*?7;[V{] (F|+v|7{n$xNf9kƑyYEr4ֺӱ~-ʗO[Y{"kWuNgGMxt!W̔GQ~5z|6_Y%Y!~}l0m!AIq{4ɥZP֥)W5gP49_ 8oJe֚@'˟Y'\9f p?Dttgf{Q9Ob_>0G4 v P CLy>^ݜ\a\CFJOG 6\rRG:=F}w)B][Gjg|:ד#ۇu!&z?T t;+]%pO^g>qAwԩǛ]/?pg[:zx1X:KLg<'dD 9x1Kx 1!9b#.|H%-[ j٣xo\WyiQ'0ss82xdːb[~lCc`\4cd:ۑ' pX,g:5(Fk4A]cf߇$vއ%╕}||/'A4 r{/ڋ=c . -[ܣ Y'wE|z{JG%mz]0+4S1.]rWjuf-sA>)A3"Z:p ZQ9߉c` f :9Mc&+x|| ;J)R;C_]|~__~PzYsO|BgJ)7 7~2o:667oÐes&2?O;4?=A$38̀NH~C"jEFEq&rA/"Cxݺ0,6U34<9ʚAh0Ȝvmt 1!BY?X0"CIJbՖ[jbǬHUzOf̆5uQ;} OJDkdZ U5gFk'O]JV/a!+ko3ݒ)-6:hC]BTqh)ئ1r{E30ۭQQyc ;S^/F" .|7oHf5 9Y]?#WYnZ|6p dDA {,KR?<2^{C4` z_@bx}ā pҁ0I2h!]O9ݍ( 䬧@O/JT >BN5؃VyC\` 'qsNs7Z!߆xA١7 SuvAGuƜ^~T: , xIc@ |ȷ=X>n˅^_mG9HWktz]FC+`xO/2}9f@Vngx^{֚?bD^ 7 mp=BQٌ 7 x`Yd!c&9SvfO9{8{|`Р3m~nO*?sȑ[5rxJ9*[7B~TKU8Z<ph&_ zyA6'@&/ї?YAD+KيO"mukP,VӶ=2`2?nгhOBr:D = ctN>=^:FE#I?MW[nOW3]ӛwm5qơD>,e&dWաA$щlA @+#2 `@9Jܣ<r$?5.6"z lvυN/E= c"x y4 |0^yZ+oޣr<;M#>Xo=A~g ?G.A"{#q?daQ aΑZD55eBG~΅}>:fbcxtVLNܸ>Wfyb~>rMVn.hfU1uѮ Ya&%8^ _P/vg3gx>j[@i y_|t^jQ&1ާOz>CMnO& }ԭ. ?D:|6EI/8c?j/ 4rj ;n'G?t$=E]QgYhnm}+t{~|Z*4GUvuiWG{G92ϵ+ 3m)cOx^e9ןc?mbӮUiȨ:uxnӿo_/t^]~w~-{htbz=!| 9rx]c~sp-S7D+yYSrZiIU_Dpr.D-_"*+l)Vxz`Bx)u"{Cŷ-o/ [N=w.1UD|q{ UZ[%wx׈'<{~ћrkշîP_Mڊwj7R[iDݗ#/dƖpaGa:mOɎl/NPjɩϱ%W~w.1"ω~ۉ+LppIV)^#qҹ|I*^bvlGBڬ *;A YP:us'm{j>8b=v+ >n)̤5ƅͅiiKqoPw kV}ƮN?6F;sIϕsO6xm  ͷ{D@½Q^e<:Q{ ǭ]g\`c.u:V>b=KJKۗu3;lPf{sdܡOa{ʭ.m.~6>w>2ytu1}h 1WapsS鳼[?Y74!>wiK\1xtsAiȺYkcO?G-d3οM_z=D&oɏʇ]hƮsp a Z~_bk |Ǽ2|qWҠޡ S7rVRkZ8_λ7 8Mfs| s3lj{Sup& L2N.eAƝs-߳HO96o_!crWt_v󟄆[Ix1#Kyʮvm+EPfgv^߈rCֆn*j`eA3|2}¡W_gO|#鑥Et0U&BNe,P'y~O.f]Eҹ(s7XW^O9YɦNtm@Tf+ߨDµ(X ,@>9a8^$Id-bj gwtN:CLb"~`ۗ?^{|&i7F/m\ ;+i_jY!zk(!9 6cGq/e;uk/˯ڍ>ZIGm/\I:4 !}-2d]HWL=Hԡd$5{  kc&x5fTc ab0$Q8 ^ >yDz?i<:Dsʋmh=K>3Ψ`m(աQ@FA]3+Βp r`k-UzDٚJ$FZ %%u5E b>g'JNjn*pF:CCb@X@?4W}@O{(XFҦV>g'JNjn*pFCCb@@\@?.;]kI 忞@-1OSM n 럆L<_ї(`# JS5̿=ShaderNormal(h,S@vTVh  T"\E  T"\E Normal&Input Normal brick F 1+5?N>/'n (hh) =0G-|00r=0G-|00rTangent(Input Tangent brick F 1+5?N>/(hZ4W}@O{$Pv s %%u5E b-1OSM n"(r (XFҦVLE2Data, 1=0G-|00r,S@vTV%%u5E b>g'JNjn*pF@DC`@T@?4W}@O{ T"\E (XFҦV>g'JNjn*pF@DC`@T@?-1OSM n 럆L<_ї(/|V FK|,ShaderInput?ڵfA'7(14%dLrQn0MpiDM7m ^@A툷pJs p1M@o=&n 8ow }E[2CV)s `MOWIB"ѥ؈HtO{/( qQ@RjXҥY@e&@|B_;OKFJ*r`HRSEpFC"~__um1CR¬5&n ٻzEuS`SaI7֏b(4W}@O{$Pv %%u5E b(-1OSM n"H(XFҦVLE2Data, 1y"WMB])5FYPx*yI#h"mO('B_;OKFJ*rڳVܯ]FՃ尲+%tsxi_GetInputLightDistRtFloat qQ@RjڳVܯ]FՃ尲'!tsxi_GetInputAlphaRtFloatp1M@o=ڳVܯ]FՃ尲,&tsxi_GetInputTexCoordsRtFloat3^@A툷ڳVܯ]FՃ尲+%tsxi_GetInputPositionRtFloat4)5FYP%%u5E b>g'JNjn*pFBC`@0@?HRSEpFCڳVܯ]FՃ尲-'tsxi_GetInputLightColorRtFloat4ٻzEuSڳVܯ]FՃ尲2,tsxi_GetInputWorldToObject RtFloat4x44W}@O{SaI7֏bڳVܯ]FՃ尲2,tsxi_GetInputObjectToWorld RtFloat4x4~__um1CR¬5ڳVܯ]FՃ尲3-tsxi_GetInputTangentToWorld RtFloat3x3x*yI(XFҦV>g'JNjn*pFBC`@0@?#h"mO('ҥY@e&ڳVܯ]FՃ尲+%tsxi_GetInputLightDirRtFloat3`MOWIB"ѥڳVܯ]FՃ尲)#tsxi_GetInputNormalRtFloat3?ڵfA'7(ڳVܯ]FՃ尲)#tsxi_GetInputEyePosRtFloat4%dLrQn0ڳVܯ]FՃ尲)#tsxi_GetInputEyeDirRtFloat3y"WMB]}E[2CV)ڳVܯ]FՃ尲("tsxi_GetInputColorRtFloat4-1OSM n 럆L<_ї(HtO{/(ڳVܯ]FՃ尲*$tsxi_GetInputTangentRtFloat3piDM7ڳVܯ]FՃ尲)#tsxi_GetInputEyeDistRtFloatL{0nBg)`! е Normal-Map, 1 0q P)\Fvq3q {O:r{O:rNormalMaplNormalMap : RtSampler2D - The two dimensional sampler (TpFޚ@'HI'n &n f F?f F?TextureCoordslTextureCoords : RtFloat3 - The three component vector F 1+5?N>/pJs 'n &n jn.Fd7ajn.Fd7aTangentToWorldZTangentToWorld : RtFloat3x3 - The 3x3 matrix F 1+5?N>/"'n 'n 5p˚FudTQ95p˚FudTQ9NormalVectorjNormalVector : RtFloat3 - The three component vector F 1+5?N>/h (~ 4W}@O{%Pv ~ %%u5E bp~ -1OSM n"8~ (XFҦVLE2Data, 1 %%u5E b>g'JNjn*pFCB`@T@?jn.Fd7a4W}@O{(XFҦV>g'JNjn*pFCB`@T@?P)\Fvq3wk0.DX?_^CCU {O:r-1OSM n 럆L<_ї(5p˚FudTQ9f F?nESInputBitmapIL QNIM5G&0FyHIHI5%Kլy|q Q])JNЈQ])JNЈoBitmapoBitmap eSBgcHGqiFE0IN HIx A ?gŘrHI 5 B%OKHIx!Muf2BޠQTHI@" T?cCx%KHI#QnfM9M$ HIPi9QbJF}~b{HIiTKAIzc(HIk b/IG HI lЎeJf6KHI0mhdzCqIjAHImoC~Oܝ3 HI4W}@O{$Pv @%%u5E b-1OSM n"(XFҦVLE2Data, 19QbJF}~b{-n,Njlpg????GqiFE0IN NORMALMAP5%Kլy|L QNIM5G&%%u5E b>g'JNjn*pFBHBb@u@?QnfM9M$  WrapQ])JNЈhdzCqIjA  b/IG 4W}@O{ЎeJf6K(XFҦV>g'JNjn*pFBHBb@u@?oC~Oܝ3 Muf2BޠQTAnisotropic5 B%OKAnisotropicA ?gŘrAnisotropicTKAIzc(-1OSM n 럆L<_ї( T?cCx%K Wrap܂dKu=ЪTextureShaders .;]kI 忞@"u ~ 8Hs 4W}@O{$s L QNIM5G&UP%%u5E b-1OSM n#5OD.GWf5.x PY(XFҦVLE2Data, 1#L QNIM5G&eSBgcp rC:\Development\Caligari\IconImages\mid-res_leaf_logo.jpgA 9UoJFIFXXC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222"K!1AQa"2Bq#6RtTbr$3CSUc45*1!"AQ2B3Raq# ?PjK=0 뀎SEi.M$ 4$hI4Bh@$&Bh@$&M$ I4i B Є@I4$BIhI4@$& !4hBHM=T<2M&3K=z+.m oc{i $Z _־TN"Ps1.jx_56n}}g6|SA.hI& !&hB!4 BB0OԀI)nG6z)gMB6z\ۻ`JEH: !4@ВhBI hBB@ nzA7YEU) V=s[n9FJ#vn-5}P9)jewHt=Dv =hpt+;pf/ut|۩ ,caj-?{"!T:.l<)a@G–0x@G–p- &&0<"8GDewgvyR^B 9Fݝ&ВHE+C_BNE0xe8mW}-R!B*4W{t/]ʮMe.WD6ZqýZkQ}^@*&o{@> = c~q2BHْ7zQ*Ny[˼٠cw6Q(`Ҹ7R4w'P6v7s{uױp\0A .TnjSe|':;ryPh!$ В~ 'tH>7|@/;3C/ګfrk)~^?7[zS!4)!$9z_u_X,wQhG+rs g`y/Dߢ+KKR!7'GߍkH扲7湧 W+aZj7maAhY-ө2\iX뭎]0}gz/rFɢ|r49i;*|WyN:ĕktEޜ SFyWeg1!4/LA$&HM M4 tI]<ίVԿjŬUxlV-oOIHВ !BcF܎=!ccwlȾ1#K\H{Z+fnF!+6OqQODSяC8tc $n 'O5!a6=9<(#aIRB8F$ #aI@G’0 #aI{lFިO;$ tA+ȅ?>FM%{Cܴۧǹf9-H]k3ܷ; f)X{:z›gÐ/Mlۄٚ[\(j%+ȷrKGMZ.p^m4 ss;t㐵T4Җqˎ83>Ps53X.eC7l{Ǵ9 !aiI|# ?.Ӻ8ݼw,ܞ*Mm0Ӥp7tF=OF! S6v<DZyՉ6M+_[I8dt.i W%۪oVҧu]dǶF59kA!bש3gԙ0ٜٛ۴OVW4~U[h**$'1`KjJ5MsRG*y'68Mf=`8wZ71Km<=['+&6Iv昌AkhjKlO[^h;رL shBTM@oܐ}o.\ۦOu_urUxlV-e5/ګfrK|J4IHM$B 64% 2p758wx(!BqqW HUghz =c\0B̯E8Ku_h|Y;?=ݪB e`:{QOLƑM'`wVC㱚$-&8Fhp aVY|MiWSbWPhte5=no|A\斸G+F:\*n6QN2A qK>$ogZ6w .h]nDۍ]Fz%VlX^O;2湮iuGZuU)el!3H+zkUn|d<NoJ+厎 vYS~szGq]Ɋ4p3uMfִskǢbMY(hzx%CO -B} 'tH>7|@/;3C/ګfrk)~^?7[zSI4BI4 $sF>TH n©78F.#aKClxX :5̬aS%5|*v<Raa8CSv0*0!8S gCۃXI )Z 7=)$#tm%^-7mԢ*(>g ɕAV\<{:SO{-~kW᧮W[!gs29{K^摂*?:~QF9>daSRnp,V-jѮ2+[Dp)# DRF0a,aS\#hwX!:rxJ8t2 V g"K}Wwzy,U[4̴|9cwpWdĔ4e*=>:"fj3,XG0yQD͚Z8 oq YΚFkK XFY# XF4ƆCpoK;% K## :pA 9ku pń;୽3WbQS8 yihu=N=MsN|CVL"FHVUwkFԱдW} >tzy'Z:s?(?G뻼@ar28*/cSlb^GֲkSI =0B߹ tI]M4 3mK鿜R_Wb(hBHB֗84 p^l;sސoHC&t<)aT$a# H@G–$a(6 SNyvNDr:7cRM xVl^4hn#_l, : :v[-[ b{[FKh,# R7&5~Q$蓮;{yACB].d<|5^'Q5{  ˪TS2X;F;de/D ;A/PΩIi{]a9t.?wOɂOP{~m )%wX'.H?dyFt`tQٰC+̟F_ySNkBH^i!rA鿆s#ni> ~g!ڗU9XԿj-=)P& &r.j>vvGv[",# (R0 ",#K(R0UR#hWjk=W^ y3%eμԯRg3k0MΏcwkJ墇y4jOpai"uO9=wU[L WD#ArK]jʺblۗg"M6=t^}ɪ\]ox͟>!\cl=sNA,u/x0\*9h$G,n-s\0A VGYc-cI>O&1{_]hw*Ǘ=fJÚA+Y$Ҝk f(*&{q,o?.x`d"{NAsI4W8q'Cjg c֫:^ rmH6Jk(&[OoQSc{ C B5>nCFgo__œ^s]zh&,# 6٭+i݉ax{{{=mn9;:ǴR&vܡngў>>$Y߹ٖ e=7F14 oxx&ZA /_j(yܱ Z{[=IK 펞ǽCWO[Cd*WK3MYݞ ~Y-vWIxh GQb*jn)3 ޵^]hXFB!at%ˬYɒ~7s⹹9%dv̩μlԯJf];`WAǷЩҜ~0 & ٰ wJ.+xe4wњY6;C>]T ue==nLѽџ+gSP>64|6Ur[hy= {sEJ+=FhI\\oܐ}o.\ۦOu_urUxlV)eu7ګfrk|JI GFh@l6lGr|W L͚X/gC,#p,# XK XF0at>]ffwz@UZ4ZF#v9F#dcr4yAl7Gpwcjϖ"#wҎ/wR_{ 8 -gTh=@O=xs:}W#.Q YS\uRo_zBh6'8F.$#r\(M;q_dac HvkLIk7~UGҷX'RK&7z'dkpZҤXҤm8[GUO8G?|{GTʸvIEz0i\*]\k^mޕLMl|}k頵:>yҸCޯrqуՊm0uK|~6zt- TҥnT@ '|i\x~{.J&l`R8zhx2>/L6H-Cg?xvu~UH{Ǵ9 =t&wNܥ&, Ѩa,)aWHR0\UӻfX^jvS@|ɘzGq\arg|%2\O#o*ӵ7;^s[V_.ˎ8?Xwq \ֽxSd6+aǜpQ_v 2 y ؾ!L_W877 iw/͆Wb<Sާ{4wOn zP>߬0<4v?\tU_]Ewh*X˩ ȅv`[\ɚ=5]ԭ.xmPv2Cfofˁ>\FۅލD/Grk=pÚpA*#CKDPKY߹ tI]M4 3mK鿜Zj_Wb(i!5#6ַ ',qaOaOaOaOaOlުYKWQA79tح[#*lع +cX*I<yڪIF|Uy\=C|4ձmQszUҕzlp7{QVRmwlN8Օa|3"xØBm(aoz@C[ik8?gXZ.Kh6m xFI)d:9Z|WJIz iRQS)5Cf3uʘDV<0GP:l1jOr,ߔl9A ^)kk>޿zc{ea}Zi 9igZ2kLibd>)XZdz9t;\|Ǜ?tDZfBWD>?CY:{Q!.i|ViXL)G#ᕲ2F湧ҳZNTi뉅}<0ˏHuаZMmMm.lknop}[M45SF!.kYU,9v\צu%nSg=c1F<ػ_r^N06G)&O]s]%fR;Bo*Եi|Rf<%r->LV+KŅ*,Oi!| /E+FVdrX=\Z&wÞwdy+sgue@O9 =mmn7`;50}Tdxzu-x6'˽U"5ئR>e[Fs|nG1-{I*8[(? ,{ݎzK[6w-a{u^C}sٝ Ä.'_-*jIsIezjnˮ2F1g޴+ܓs$pjG WO}Ƒ\wG$#]ArPT͵*gru"IN+!ZT$ {FI_4.F9s$2d#v架//|R\%ĒI'y'$]&nڒvXxY p)a@G–p)a@G–p)a@G–Җz*TSJa^ӂ];l {?# 5 !xկ'D3TX.u+8)גlQ]i2~.gxU TBɡF񖽧 cjQϵ4>'E3 8WMP }۱;G7;EzWXjܭ^;hXaK™i㮡md8 \#|2:9CpBܰ+xi 7d^2ȭxf&p4srq`Fxaiic\ 6E4>GbϺ;s_SkBɣ9u666V,c]EQY+%qe]1D+6HF\]{M-%Srok;Il6;uM7BWJkž:WF-= &` 0ˍ?#ҩrز8z|fucviؾU5i*,37xhlk幕w= ߬tkg/ w_*N4O_ Mw=1Ю{Ut HjrrC[Erk士f̱; :jCA첲 L2=SURTIOEa<# XF0XBxF O# @,# @$a<#ӺOeqqoQX,# 'i5^TQ=fa!})nT-w:m*M[j188uu%1p'sZz}V{156TTPǝvv[ ;+AI[f`kp?SY>Q[ oѽ{K^ӂ Tp4T47xa͠q{GOj/ٖE{1.\ i9-qr&hC.5 yFצuz L c+ XiC#v?m:?TU..Ï6~#~Q6.+yպ^;9kkVCRH&|Ȓp.c$mcZrZb ,⡏&29ueS-O%2g?x^ ABXW5TZgA4uh^4Vt.Ԏf+nH֎oWkPO\D.hQq?VQxkUPߩ`6@pNJajOkf,)+Dqp*8FAݵ4NJHÄ$;>嬝'xFK*|!# ]$$'a'qW9nu7>ل 2^6@zf2+b7#4O` bYQ8%HiX} F)k EA$ziGT6 Ph;|zljXQ+E8E=,gz{uUG[#k#||np M$O 9~KpfDWD=bl&}3K}3BeҜr}hwTno_Tڕ Fʎeo֊vp6Fz:ݥRF6Zvm-p qC9Ÿw:ZXG  -4y.cfD#|׶5{THs/MpzBh]M 6==&,Y|-sO˱ZU֨Q# HP GG救F'Nh%M㑧k@|)!# H@G 4 #aIЀ$ ":7qkrӂ 4ƼlQ^ ?[!Ax!s4ֲTOCg>tة^ϓɻM#I}a ҁݎ>**Un `xWS\iYSI3e4 nsX*1φW+K =teb-#;Fa+&kT5ů&{=^bG#ᑲF4Ҽ.;?%|^2fj\3HMׅTK;eã: szAPג7:7FZdqϪk-7 >nWH}Բtb͋G\i=roQGcUB,Nfrv KL N MkWK%e;^q79“x0K'R۟Q tIc`r4*aR0H,#R0a# XF0a_+lu\,iw>*ױj*+>؝!qMIPtRi  bW41BF5 [m %e{:NJk b[ _d-PC3'XQ{# F=*Ժ* ]l5\ {UiSK=CਉJÇ5-j5Ek-i08 l5FoiK '8` 윺'z{ViZfbvZpGk:l;&9]m{ec^5 ]k+fe6qF@p;z=Nv|2|# YEa.F},|֎'hW+eެLdyBa]S)3# XF0 #altZ.]nuc"k2;.x]=<Գ:|R4x ER~yM=LS7ldu+fZZ**"{Hzr%i GBBH5|FՒzQQhpT<8 jӫ$VWԲ9r7sHNw\_inW|QJrCzOfT1mm2=rVe5vKKa9s!8`q=*Bewh:c^#٬k Ucgw;>/=N?x-Ϭm]&?wR3V:(ԯj[{cܵ'Y#Ǵ+cnuᘫi~7J볕~E(^4uԴ.F1 -Q7=ikW*OLҮ!K(RX]BPa)a\V禵[wG:Z~ +N0? J_D-$okrX枢݉>f91ثKMv/wuiڮwQ=$CazfKbTUL+}ϒTEUiЯ*{3骢l?]X=Qh.ڞqGVM_6>JJ ku4f9Ǐ?%Q[Nb{ִIh xz[&3lҵoMkK6[IP0cGglTԹz*rE XFHBEfjz6Fa}igu-\5 {^=q\!SDaxp'8qoԭ+Ks>pa/c}̌lLK\25h.IяYMao׵51Gkk)xV9ʩ<|țiɶ{",# K(R0 Fj]Ec-u f׻iJO~.$Э,hB!@B $ЀhIiz>|[՚(*EYҷcl9kA!f:{(:{ # HU0p)a V\1yq8hˮfO'?JqxSa  ^)X˭xaqctޫFڶc<)ahՖ˶A S\T3:(njZ#phwOwjc X^|%Y㿧Nr)# j{Ԕta7Gj4M*h]$G–AWzye1O⑼Zh?S#s.sT|{p]!)('qo ȓMSZ)# v 6Iϳ4ǰ> O itSn׌> &p|pT eSji%1ޮu.K_Oj[2b 7Nvxx{Zr8 -w^<7n1tHT?-<: e=[[Go>+T[S߹{ҽėI$䔰wC+pwCi*Ѹ݇dv0`Ჷ-2hw5hКXX-V0A3;Fm6KK78+#szEzy#hVުyFno#5 ,g1V,AlkƸmݧ}mnJY S>QS)'1ykioV_=[4ˤ{i`z֖=9W*OLڮ M(ES#|qI#H=%sI=i#\ <0.#aK8Fp)!>r}fU8= Z||¡Gcٕv-ݴ]ݵ%8>|p3V*(׮ j[lQi=ZhZ;# / Cub`n7Wg+%_^ۥ=5-΢ I$v2qLJjIHM EZqilk ɡiij0v7w;=1Ńh_;͝ȀmCFQZrMGR/+4wD`8 XKYM@9cdxAT-eD1TA!{OX[%R^Yk7:Ū0V WWU[{=̌<&bIp^KHHM DЀHMЀHMC7wk]ᏂĴcKOvFI&BI$&HBh$!!@MmuXdw=aoQJl9*fW!xPY#~Q^Hߔn(R rHFc9)a@ER0 #aK)0-:mَWyTՐv;畽Z-b&wu*!B24^+uv۸.nc,{޴N۶cTv̇|V]l3lLx&wu*(qQ.6nڒT֌yv啮y=LnH=}SI-.6ݩ#o=x;[Ҷ/, 3;[ܵޕbI>ĝxջ-Sv*#O7 {fWJ^zyWuawـBGR0A 'po- eEզI\2!n8t, |Ӱ˃r9[>V[s38J n9UmvIvz bGϽSZJ n<n¶]mumW=5l#V&dڒ`ma#:U6jz ,yd8-==`_˜K}+ji@sG>kYV$9:ȶ74-K_:<.OQ^,Pa)a@E XFF ")a@G -\7{ynPyE,d=B4+Ԑ4!4 $BH@ NܙkMld~ ɖ %l>7[}dzڬ/S1f`V=wmekNU&KD0zK]*ZrR̋CI^;vXǸ^ɖd)}jgcz筟̖;}^ضŕ#mFu20|)4>7!2h%CW*yxp騠8/a υф000HxF pGHObk+uʠ>xר-f&rp%8BBeuhW:xaG^Z jZξf:P|޷kevhy1?swOrFzRyu];n8YUnkS~H;0Eqva]h=,# LXF0i[vd+Low>a 8piT*ڸY TѰk$ {oeWUGa0#588UH|8%q%I$䔰3J!HbVqœӗZW˔ʭ|MQ];gLpذUҷFz`Y-u\||Gjȶ-iZp(C4uX  aO ЀXF0XFlM]<8@gr,֨殼`wx Kٲ^Ƅ!HBHhBHVƪPH3H:7{X Rk<gZXoSQ۩j42cq$x+QqXߓ5OɪUh: 2i&<|TKY0M ;'w u u9Nf223z8*:ҏ< X7h{ǐAWbTۨXes>%gE9+.E'ɍߑ9Xj3rikX%YenU:ZKh#GLD;oXaK7M4Oa<#tXF –  GRxF xF O NdZc,2vˢdɍ҇sӖj2*$3ܾ.PǹsÛ5M[ʺ5RA|O-$tTkDcypC/.Ҹ,# C0XZχVR7x1vղa<)M9{GfAlbLo=ao1Hɢl9t~6}o=nڱV;3d8,=a[IZJr7a sdcG XBxF RX@,# @,# XK wVmP߃?ՑrmDsϴo*Zp΍qh! M$r>)Y$n-{s\88 :oE}UahT8xTftx> ;;w: rrvllU&n 0\/@r uwʿ8ts{ol~ E5'=޵-KҾ-Kw9췿-ɪ% ٢{GW4Jb{4&oR֋қZa8`af)3*hPuLs_%]0@ ,OMo \Ҧ֊1=ydѽiiTv2*x.5 avlK$oSU6S`yW:+Cx6`UQ4'c\4VTk=VIln=1at.ɥ{:#CFNXZ*0+'F|FV^f)q+ڝv&6G8~q[)YspFՑY߹Ka ٩[*QBIݓ S4О*K",YWFJk"ҙ4;h7F? {j{[Dp)a]:G ΍{Ii#alqoV 8{G :;2f A<҉`89V> k |=P(z*[c2lp.Xl)ėOIK k-KKDp)a]:G–p)a@G [j[[vӗvi4[=A&Ǿ3[\װ9kAq _)n&ǯ;5]ox$ӓO[RwImJ&a6 :S¤,# XF0a*Kwjv;ՑL:ոhhIj4I&i&B I/m lv }M1&[ݭj *`j"Ÿ+krnVwcTu)rr.HgV2[E%}||\ <$3KO 15O)Vuҋd,{0ZW5[BVbQvO-ܶ\bn6iKy~Jq䢺L%qZ^=> Zf˭*g F۹`UxmWQ;i[eRY.$>e_;${c)#.qvTs[jVHIu5R%Qv%͙LH=(ݹ{:=g/!cXk}W=~ԑjU {KOb*tڛ%opU&M\sZr t7Z)at料)1Vˁ=etxC0ix-gȸ7mmoxhxoYzkնl$ .>UxF^4VϱT]Pr9{,~)h,# G TLba|;-h+f൞OP7f}4Ez׷"&0[]5\*i|XĎ*~ rdiS0qin7,cxZj*5H8_$zNVVT:j)Ml_q0aL,#R0,#R0°:T `[&٧/hӗhy%Yw1ݚZ58׵46 〓V}/V38o+]kJt5{C摐GII# XF0a,}m537OOgSR&/!a;lܱr{[6I B@4! !MBI4 hIВhI2U~`Q]hproQqV={ہ(V8Q .w-vۅ։VK ӱ՜X\̒X|x(בXi*K(uS;K?"w*zլ`jc>*kٔWGKgCMO Cvf9U:ZQӏLN#Âmܷpm}4wmT~H[27<Ӑ/=UE#'u*lmvʏ9xk~zN:ﯻV\*泲p{ R#)aR$G–p)a@ER0,# XFߴ.l3*8?{ꦞM=DTBn{dc^1!w Whۈ<n6P18-/2PiOrZ8FCpr=ltw:*j?w8p;U2P<q!hZ*\/L2\JٍR)uX내MH;& iBQj{kǏy9KHCXcY_q\ܭGuE40Mlr:C-1q~Gn쎼ƻ6ǸFVmAz%<Ji]OQ܌GN4nWV긯QCT4nqvt)4̩P<6F գQ۬~}$Z $@doRR3΀Puc+.$$It%H#,6`G[)h^v&|S0*ibuSk;\nGUP)eMrǓ!= xϻaS+MyQ㘭pivGU e*[b(gx>b\ɁQO4'p[Hm_Ux櫢y>+ pzBMrAa4. ЀXHAd !^t̴#f.d;F&q/}RrV [~\I"#py=JR6 # SYg6;-oT*\$*\DF 軴4b'5ն/nf8r*x &ľ'f>77W4Yk[)k9&ayN5 kCZZb'8siZ&:+8KOviwx4>s\װ=kA R7y55&tҺ)qů>:; z_GQ'|}ouwuNJ>:>NN.B}z_GQ'|}ouwuNJ>:>NN.B}z_GQ'|}ouwuNJ>:;䏣SKPv޿rW $}[G]j>SNN#?T'ݿ}ouwGQ'|Z>^jOEm{p^X.zz=1ixF89tkqQhdd>*f r笾4j<]AZǶgi1=-\uu@ )<@q;t-]loq!4+UZ:Wz3NϰCج2Dʇ6A%GyĪ>wEQA]AK=YiHQEYی:sS^MxQ\lc+$ KpFzrrhAANx$d6 w+æm:bXd;R=.s$Ar{iO ÃxNW1[ᷓ3hB 4BH4kOYUJsOQ,GB& 6:fL++/MFUCtOғPxxe6` D#d,=]5P=DRx?- G˧©ZLsU`t=CrA0ix* \x+ذp-Z]IQM4'p,6Uc!>*En)r1͑psOBH0a)/lNݙ%oߘZ5*Grc'%|ji`TD#p)iY7!"psJ7-6{eKT:TP!vo-yANH&jTN Qڍ$mn!ϋz;!Z΍/UՊՊI%a`-ŭ`N?mZO8R,ը@uǯg5/VB9?V?Mz g~jB}c,^B9?A?V'>?5-Ók[?'$8Y_ArZ?Mz gZG 'ը?POGP~l֫d'>?5-Ój[?'48Y?ArZ?Mz gZG 'ר?POGP~l֫TCdh5j-Ól8Xͩ%:{t$ď{ZeuN&KR5ƍø,jPBjd$@5jΙζU{A &46)FI;vlmwvej)2BfejP&$!MIM$!!@ !4i!zwmA4;#YjmYy+GDⰉOq|6T176́/=dxeVɨ<0<0~m1[v>{U&4*OhS^@*OOˍk]1Q<8n?%Sk;9Tr7 kV;y')iԜAu+-F]L{1W|WU;{C{ܥ{mo+󠩍 tw)G޴Jg'JNjn*pFC\Bb@X@?5OD.GWf54W}@O{(XFҦV>g'JNjn*pFCtBb@ `@?.;]kI 忞@-1OSM n 럆L<_ї(/|V FK|ӔShaderInputr ?ڵfA'7(r %dLrQn0@DpiDM7D^@A툷Ep1M@o=Є F}E[2CV)F`MOWIB"ѥHtO{/( qQ@Rj`ҥY@e&(B_;OKFJ*rhu HRSEpFC0u ~__um1CR¬5u ٻzEuS0u SaI7֏bu 4W}@O{$s xu %%u5E bu -1OSM n#(XFҦVLE2Data, 1Py"WMB])5FYPHx*yIxh#h"mO('B_;OKFJ*rڳVܯ]FՃ尲+%tsxi_GetInputLightDistRtFloat qQ@RjڳVܯ]FՃ尲'!tsxi_GetInputAlphaRtFloatp1M@o=ڳVܯ]FՃ尲,&tsxi_GetInputTexCoordsRtFloat3^@A툷ڳVܯ]FՃ尲+%tsxi_GetInputPositionRtFloat4)5FYP%%u5E b>g'JNjn*pFCC`@0@?HRSEpFCڳVܯ]FՃ尲-'tsxi_GetInputLightColorRtFloat4ٻzEuSڳVܯ]FՃ尲2,tsxi_GetInputWorldToObject RtFloat4x44W}@O{SaI7֏bڳVܯ]FՃ尲2,tsxi_GetInputObjectToWorld RtFloat4x4~__um1CR¬5ڳVܯ]FՃ尲3-tsxi_GetInputTangentToWorld RtFloat3x3x*yI(XFҦV>g'JNjn*pF:DLCb@t@?#h"mO('ҥY@e&ڳVܯ]FՃ尲+%tsxi_GetInputLightDirRtFloat3`MOWIB"ѥڳVܯ]FՃ尲)#tsxi_GetInputNormalRtFloat3?ڵfA'7(ڳVܯ]FՃ尲)#tsxi_GetInputEyePosRtFloat4%dLrQn0ڳVܯ]FՃ尲)#tsxi_GetInputEyeDirRtFloat3y"WMB]}E[2CV)ڳVܯ]FՃ尲("tsxi_GetInputColorRtFloat4-1OSM n 럆L<_ї(HtO{/(ڳVܯ]FՃ尲*$tsxi_GetInputTangentRtFloat3piDM7ڳVܯ]FՃ尲)#tsxi_GetInputEyeDistRtFloat"YMڿ$ZߦQShaderColorx 5OD.GWf5~ C/-~CxrE x ~ 4W}@O{$s ~ %%u5E b~ -1OSM n#`~ (XFҦVLE2Data, 1%%u5E b>g'JNjn*pFDB`@P@?5OD.GWf54W}@O{(XFҦV>g'JNjn*pFDBb@@T@?C/-~CxrE-1OSM n 럆L<_ї(L{0nBg)`! T'"Color texture, 1@Ņ P)\Fvq3Xƅ  1frHsOP5pt Є PR3HBPE z(J.Ď~ 84W}@O{%s 8%%u5E b8-1OSM n#8(XFҦVLE2Data, 1%%u5E b>g'JNjn*pFCB`@T@?z(J.Ď4W}@O{(XFҦV>g'JNjn*pFCBb@@T@?P)\Fvq3wk0.DX?_К~k,J6 PR3HBP 1frHsOP5-1OSM n 럆L<_ї(nEInputBitmapUL QNIM5G&s tptpt5%Kլy|Xƅ tQ])JNЈuGqiFE0IN ptvA ?gŘrptw5 B%OKptMuf2BޠQTptx T?cCx%Kpt@QnfM9M$ pt9QbJF}~b{ptHTKAIzc(pt b/IG ptЎeJf6Kpt@hdzCqIjAptoC~Oܝ3 pt4W}@O{$s P%%u5E bLk-1OSM n#Mk(XFҦVLE2Data, 19QbJF}~b{-n,Njlpg????GqiFE0IN DIFFUSEMAP5%Kլy|L QNIM5G&%%u5E b>g'JNjn*pFB`Bb@u@?QnfM9M$  WrapQ])JNЈhdzCqIjA  b/IG 4W}@O{ЎeJf6K(XFҦV>g'JNjn*pFB`Bb@t@?oC~Oܝ3 Muf2BޠQTAnisotropic5 B%OKAnisotropicA ?gŘrAnisotropicTKAIzc(-1OSM n 럆L<_ї( T?cCx%K Wrap܂dKu=5doom3jointgeo P̭.;]kI 忞@"0HHX4W}@O{$`؝ G?ŋ G?ŋ tSObjLtrueSpace object synchronization data g'JNjn*pFBCb@ b@?׊;Jf|ڢWAG`^02eE{|@B???? G?ŋl罸[Hq2>$?>^?>$"?>#!??UnitObRQOLayOLayeMat1Z)pa ?fff?ShBxZZplaincolourW5f@(䐈P#o 04W}@O{$P̭VIQGіF͡T>W5f@(䐈ZpߘHXOlxRƾz>dL?PSƾs>dLPSƾCд®?ٸ*ćIC7lq2l=>l=[H=q2> h* 6H?BJ8{EE%D7[LjUb)R ʽt Aqry'HNű_,lLo '89Ig"$?&?^?{?$"??#!??ZpߘHXO YW?Yx>YW?Yx>YW?Yx>B[x?cnB[x>B[x?cnB[x>B[x?cnB[x>YWYx>YWYx>YWYx>qwB]zJ4 >]zJ4 (VertexColorStrength(VertexColorStrength8&d't J.HE /*gJ.HE /*gShininessShininess8&d(t 8VnZN:W p8VnZN:W p DiffuseStrength DiffuseStrength8&dw ll-#Ez k^ll-#Ez k^"SpecularStrength"SpecularStrength8&dHw 4W}@O{$Pw K#uiL$K#uiL$AlphaTestAlphaTest :KrbSx8&dw ,L?D},L?D}AlphaTestValueAlphaTestValue8&dJ.HE /*g@@>]zJ4 n%⟀A}aJ-n,NjlpgL'޽lL]>L NameShader name(Co4W}@O{$0hp!agNc +A!agNc +Acolour0colour : Shader - Color -n,Njlpg(C{[f(@-L*;'޽lL]>L plain!agNc +A-n,NjlpgL褞X&4W}@O{$0&oF5SO/oF5SO/ambient factor@ambient factor : Shader - Model褞'{a>% AGJXs>{{a>% AGJXs>{diffuse factor@diffuse factor : Shader - Model褞 (f`e'O@f`e'O@ specular factorBspecular factor : Shader - Model褞(A퉠C i 8A퉠C i 8exponent4exponent : Shader - Model褞or Kj=N1RKj=N1R specular colourBspecular colour : Shader - Model -n,Njlpg褞oF5SO/f`e'O@='޽lL]>L phongA퉠C i 8@@Kj=N1R-n,Njlpg????r鷅wOq=0{a>% AGJXs>{fff? 7G5fL0rr X 4W}@O{$0'޽lL]>LI˕XMӍJS9 EvmE|Kc\,2PureLWTransparencyShader fO*EI,SfO*EI,S,LWTransparency_shader2Pure Transparency shader yᮍGM޴"8'޽lL]>L ཪ4W}@O{$0fO*EI,S'޽lL]>L47m2O |o doomTransformpo <ĠF姁J]D@WAG偢jD%~`8B׊;Jf|ڢB4W}@O{$`(XFҦV"Pڞ-1OSM n"偢jD%~`8(XFҦV>g'JNjn*pF D Bb@@T@?׊;Jf|ڢWAG<ĠF姁J]-1OSM n 럆L<_ї(HFh-F׵Ԃ(D Joint%8.;]kI 忞@"4W}@O{$`8ݫK^BUݫK^BU Joint"Joint parameters jh/L/VVPrcAۏOrcAۏOTag(Joint semantics tag0uֱMQ uֱMQ Symmetry2Joint semantics symmetry O ,LJO ,LJ Bone4Parent bone for the joint DZ5 O*\x-1OSM n"R-5bACuۚ-5bACuۚ Size$Joint size factor8`SWAG$\w (TY `CG%S;>Y `CG%S;>AngSprZ*Z angle limit spread8T.*ÿ@;f.*ÿ@;fAngCntX*X angle limit center8U׾JBoͰw׾JBoͰwAngCntY*Y angle limit center8m gIR"q3gIR"q3AngCntZ*Z angle limit center8m xf?Iq -xf?Iq -AngSprX*X angle limit spread85@:WvZD,@:WvZD,AngSprY*Y angle limit spread85}ITBK}ITBKAngStiX$X angle stiffness8P5r<|ݔK .ǻKr<|ݔK .ǻKAngStiY$Y angle stiffness85te6N'te6N'AngStiZ$Z angle stiffness85BI zzBI zzAngDamX X angle damping8'7=B;;'7=B;;AngDamY Y angle damping8p/6zsMf6 /6zsMf6 AngDamZ Z angle damping86[v!D6[v!DMovMinX2X movement limit minimum8h @N1vx @N1vxMovMinY2Y movement limit minimum8w ﶌWMS'ﶌWMS'MovMinZ2Z movement limit minimum8hw avE/b+ avE/b+ MovMaxX2X movement limit maximum80w u'eDguu'eDguMovMaxY2Y movement limit maximum80R<&d@ d|R<&d@ d|MovMaxZ2Z movement limit maximum8!lMp[msd!lMp[msdMovStiX*X movement stiffness8x~Nc>I=ܯ~Nc>I=ܯMovStiY*Y movement stiffness8@гh@jгh@jMovStiZ*Z movement stiffness8bb Bu4Ǫ/bb Bu4Ǫ/MovDamX&X movement damping8{g^0A p Yg^0A p YMovDamY&Y movement damping8X|(roACp"G,1(roACp"G,1MovDamZ&Z movement damping8@[w 0_BEP1@0_BEP1@"SklMatrix@Skeleton space transform matrix `^02eE{|@"[w <ĠF姁J]D\w ׊;Jf|ڢBP]w (XFҦV"#bb Bu4Ǫ/? @N1vxg^0A p Y?6[v!DrcAۏO'7=B;;?gIR"q3.*ÿ@;fO ,LJ(XFҦV>g'JNjn*pF@eDKCk@ j@?avE/b+ @:WvZD,4C׾JBoͰw׊;Jf|ڢ(roACp"G,1?BI zz?Y `CG%S;>4C0_BEP1@`^02eE{|@Bx99]"'?@*RQ??@>')x%@i@>?xf?Iq -4CWAG`^02eE{|@B????-5bACuۚ>te6N'?}ITBK?<ĠF姁J]`^02eE{|@B????~Nc>I=ܯ?uֱMQ !lMp[msd?-1OSM n 럆L<_ї</ GFʠN=00@G$}}MinZ`Ez]UO GFʠN=@0PG$}}MaxZ`Ez]UO GFʠN=`0pG*}} StiffnessZ`Ez]UO GFʠN= 00G)}}PositionZ`Ez]UO GFʠN=P0`G(}}DampingZ`Ez]UO GFʠN=PG1 }}rcAۏOZ`Ez]UO1釥GP>aPG,PZ`Ez]UO GFʠN=@ G1 }}uֱMQ Z`Ez]UOͽ>fdN*5Ւh@P G(Z`Ez]UO GFʠN=Ph G1 }}-5bACuۚZ`Ez]UO1釥GP>ah G<8-5bACuۚZ`Ez]UO GFʠN= G!}}Z`Ez]UO GFʠN=p0G)}}RotationZ`Ez]UO GFʠN=0 h0G"}}XZ`Ez]UO GFʠN=h 0G"}}YZ`Ez]UO GFʠN= 0G"}}ZZ`Ez]UO GFʠN=0phG"}}XZ`Ez]UO GFʠN=hpG"}}YZ`Ez]UO GFʠN=pG"}}ZZ`Ez]UO GFʠN=0G'}}CenterZ`Ez]UO GFʠN=0G'}}SpreadZ`Ez]UO GFʠN=0G(}}DampingZ`Ez]UO GFʠN=0G*}} StiffnessZ`Ez]UO1釥GP>a00h@G<86[v!DZ`Ez]UO1釥GP>ah0@G<8 @N1vxZ`Ez]UO1釥GP>a0@G<8ﶌWMS'Z`Ez]UO1釥GP>a0@hPG<8avE/b+ Z`Ez]UO1釥GP>ah@PG<8u'eDguZ`Ez]UO1釥GP>a@PG<8R<&d@ d|Z`Ez]UO1釥GP>a0Ph`G<8bb Bu4Ǫ/Z`Ez]UO1釥GP>ahP`G<8g^0A p YZ`Ez]UO1釥GP>aP`G<8(roACp"G,1Z`Ez]UO1釥GP>a0`hpG<8!lMp[msdZ`Ez]UO1釥GP>ah`pG<8~Nc>I=ܯZ`Ez]UO1釥GP>a`pG<8гh@jZ`Ez]UO1釥GP>a0hG<8.*ÿ@;fZ`Ez]UO1釥GP>ahG<8׾JBoͰwZ`Ez]UO1釥GP>aG<8gIR"q3Z`Ez]UO1釥GP>a0hG<8xf?Iq -Z`Ez]UO1釥GP>ahG<8@:WvZD,Z`Ez]UO1釥GP>aG<8Y `CG%S;>Z`Ez]UO1釥GP>a0hG<8BI zzZ`Ez]UO1釥GP>ahG<8'7=B;;Z`Ez]UO1釥GP>aG<8/6zsMf6 Z`Ez]UO1釥GP>a0hG<8}ITBKZ`Ez]UO1釥GP>ahG<8r<|ݔK .ǻKZ`Ez]UO1釥GP>aG<8te6N'Z`Ez]UOR<&d@ d|^@ﶌWMS'^@/6zsMf6 ?ݫK^BUгh@j?u'eDgur<|ݔK .ǻK?oQbKl&.ʹ܂dKu=|SkeletonM.;]kI 忞@"s chWX @w N4W}@O{$`N(XFҦV"O-1OSM n"O׊;Jf|ڢZ@s ^偢jD%~`8Zs p^<ĠF姁J]\v ^WAG@s p^ G?ŋ^tveDCE`"IWJZ}q S $hKnPSVmS $hKnPSVm"RenderAttributes"RenderAttributes HEoq5v7k}q d_@ cB8Ed_@ cB8ESkeleton*Skeleton data object [}Nj2~q  2< >"IM6 Ex>"IM6 ExRot color(Rotation lock color -n,Njlpg ?<@ ƒsF2ƒsF2Dynamic LocksLSet of active locks for dynamic tools u|H '$腶 (IДl/(IДl/Show locksShow IK locks @<h 'a#G @=^V("'a#G @=^V("Show handlesShow handles xA<膶 w`ZL. 5w`ZL. 5Show structure>Show skeleton joints and bones >"IM6 Ex-n,Njlpg%?>h>? 6Jѳ( S $hKnPSVmw`ZL. 5 'a#G @=^V(" 偢jD%~`8m6EfH-n,Njlpg???~?JmCb4IP}K^:KrbSxSolid defaultSolid diamondWire diamondWire thinSolid diamondd_@ cB8E(XFҦV>g'JNjn*pFDBk@ a@5CC?n1LH_r-n,Njlpg!? ?>~? 2>'??WAG`^02eE{|@B????(IДl/  G?ŋfdN*5Ւh GF8 v[IL'KIZ`Ez]UOͽ>fdN*5Ւh 0GF8 (IДl/Z`Ez]UO GFʠN= p0GF1 }}(IДl/Z`Ez]UOͽ>fdN*5Ւhp 0GF8 'a#G @=^V("Z`Ez]UO GFʠN= 0GF1 }}'a#G @=^V("Z`Ez]UO GFʠN= GF.}} Show SkeletonZ`Ez]UOͽ>fdN*5Ւhp GF8 w`ZL. 5Z`Ez]UOͽ>fdN*5Ւh8HGF8  6Jѳ(Z`Ez]UO GFʠN=8HGFT }}#Use Character Editor color settings 6Jѳ(Z`Ez]UO B>IHHpXGF5(\VVn1LH_rZ`Ez]UO GFʠN=HHXGF1 }}n1LH_rZ`Ez]UO B>IHXGF5(\VVm6EfHZ`Ez]UO GFʠN=pHXGF1 }}m6EfHZ`Ez]UO B>IHXphGF5(\VVq\7LO#Z`Ez]UO GFʠN=XHhGF> }} Position lockq\7LO#Z`Ez]UO GFʠN=hHxGF> }} Rotation lock>"IM6 ExZ`Ez]UO B>IHhpxGF5(\VV>"IM6 ExZ`Ez]UO GFʠN=pXhGF: }} Full lock졉E/~ݾZ`Ez]UO B>IXhGF5(\VV졉E/~ݾñZ`Ez]UO GFʠN=phxGF!}}Z`Ez]UO GFʠN=08GF!}}Z`Ez]UOv[IL'KI q\7LO#-n,Njlpg>"?I??4C47m2O v Transformv <ĠF姁J]Dp^s @s @s WAG^@s s 偢jD%~`8B^@s ׊;Jf|ڢBOs 4W}@O{$M@s (XFҦV"l-1OSM n"偢jD%~`8(XFҦV>g'JNjn*pFX@1@?׊;Jf|ڢWAG<ĠF姁J]-1OSM n 럆L<_ї(qU F3fl2Object Render Attributes7kS $hKnPSVm}q h8Ns2]8Ns2] Surface Opacity Surface Opacity7kh^mګA~Ksi[^mګA~Ksi[Points opacityPoints opacity7kh(lrsGr(lrsGrPoints Size>Point Size in Point rendering.7kh\Eh{5\Eh{5Points ColorLColor of points during the rendering. -n,Njlpg7k(h"PbEGDߗr"PbEGDߗr0Ignore mesh point color0Ignore mesh point color 7k]jF?N dF?N d.Ignore mesh point size.Ignore mesh point size 7k]j]*qBCx]*qBCxEdges opacityEdges opacity7kP^j\J:I%7u\J:I%7uEdges ColorEdges Color -n,Njlpg7k_jiA޲1rIK>XiA޲1rIK>X0Ignore mesh edges color0Ignore mesh edges color 7k_j,ot"AaY,ot"AaY$Show hidden lines`Do not use ZBuffer in point and wireframe modes 7kc^RI8ÿR^RI8ÿRShow backfaceslEnable two-sided rendering when Color mode is enabled 7kxcçwH5#VçwH5#V0Ignore layer attributesvDo not combine render attributes with layer defined values 7kc4W}@O{%MbJ@#QLb-1OSM n#`b(XFҦV"bW0@zdW0@zd%VersionVersion%bȅ8vDCxZȅ8vDCxZInvisibleInvisible flag 7kPF+2MGF+2MGCast shadows$Cast shadows flag 7kЍI2GWM:).$I2GWM:).$ Receive shadows Receive shadows 7kmBޖw pmBޖw pLayer index(Modeler layer index7kȽ[o[nfFo[nfF Overlay opacity Overlay opacity7k[zgGFohN)zgGFohN)Overlay ColorOverlay Color. -n,Njlpg7kX[vhD zʔvhD zʔ4Ignore mesh overlay color6Ignore mesh overlay color. 7k [fB #^fB #^$Transparency Mode@Quality of transparency solving :KrbSx7k[|$}mK;)|$}mK;) OverlayEnable*Enable color overlay  7kt rg@*oHrg@*oH OverlayColor*Color of the overlay -n,Njlpg 7kPt !eLZE^N!eLZE^N OverlayStrengthJStrength (visibility) of the overlay 7kzgGFohN)I2GWM:).$ vhD zʔ]*qBCx?S $hKnPSVmrg@*oHçwH5#V 4W}@O{fB #^:KrbSxv No Hidden FacesNo SortTriangle SortNo Sort\J:I%7u-n,Njlpg?\Eh{5-n,Njlpg?(XFҦV>g'JNjn*pF X@>@?F?N d ȅ8vDCxZ 8Ns2]?F+2MG "PbEGDߗr J@#QL>g'JNjn*pFCBb@ h@?(lrsGr?^mګA~Ksi[o[nfFW0@zdmBޖw p-1OSM n 럆L<_ї+ DefaultAdvanced GFʠN=0(@6 }}Color\J:I%7uZ`Ez]UO B>I(0h@5@\VV\J:I%7uZ`Ez]UO GFʠN=@(P8 }}Opacity]*qBCxZ`Ez]UON\q+nN-K^(@hPH?}}?]*qBCxZ`Ez]UO GFʠN=h@P@ }}Enable Obj ModeçwH5#VZ`Ez]UOͽ>fdN*5Ւh@P8 çwH5#VZ`Ez]UO GFʠN=h 6 }}Color\Eh{5Z`Ez]UO B>I 5H\VV\Eh{5Z`Ez]UO GFʠN=h 08 }}Opacity^mګA~Ksi[Z`Ez]UON\q+nN-K^ 0HG}}?^mګA~Ksi[Z`Ez]UO GFʠN=h0@5 }}Size(lrsGrZ`Ez]UON\q+nN-K^0@HG}}?$@(lrsGrZ`Ez]UO GFʠN=( 8 }}Opacity8Ns2]Z`Ez]UON\q+nN-K^(h H?}}?8Ns2]Z`Ez]UO GFʠN=h(}}SurfaceZ`Ez]UO GFʠN= h0&}}EdgesZ`Ez]UO GFʠN=h'}}PointsZ`Ez]UO GFʠN=Ph`1 }}fB #^Z`Ez]UOnevG4'hP`̖pfB #^VNo hidden faces No solving Triangle sortZ`Ez]UO GFʠN=1 }}^RI8ÿRZ`Ez]UOͽ>fdN*5Ւh8 ^RI8ÿRϱZ`Ez]UO GFʠN= 1 }},ot"AaYZ`Ez]UOͽ>fdN*5Ւh 8 ,ot"AaYZ`Ez]UO GFʠN= 01 }}ȅ8vDCxZZ`Ez]UOͽ>fdN*5Ւh 08 ȅ8vDCxZZ`Ez]UO GFʠN=0@1 }}F+2MGZ`Ez]UOͽ>fdN*5Ւh0@8 F+2MGZ`Ez]UO GFʠN=@P1 }}I2GWM:).$Z`Ez]UOͽ>fdN*5Ւh@P8 I2GWM:).$Z`Ez]UO GFʠN=P`1 }}mBޖw pZ`Ez]UO1釥GP>aP`<mBޖw pZ`Ez]UO,ot"AaY !eLZE^N|$}mK;)^RI8ÿR iA޲1rIK>X qNoJi:4CSkeleton root CBL=ew!4BL=ew!4TagSkeleton taghC.0F $1LӤ.0F $1LӤSymmetry$Skeleton symmetry C0_BEP1@"WAG@s 8׊;Jf|ڢBݫK^BU(*/d_@ cB8E}q m H<ĠF姁J]D4W}@O{$M Y(XFҦV" Y-1OSM n" d_@ cB8E(XFҦV>g'JNjn*pFX@1@?BL=ew!4׊;Jf|ڢ`^02eE{|@Bx69]'?>*PQ??>>%)x.8D$o;?0_BEP1@`^02eE{|@Bx99]"'?@*RQ??@>')x%@i@>?WAG.0F $1LӤ <ĠF姁J]`^02eE{|@Bx99]"'?@*RQ??@>')x%@i@>?-1OSM n 럆L<_ї  GFʠN=? }}Root transform<ĠF姁J]Z`Ez]UO GFʠN= C }}Skeleton transformWAGZ`Ez]UO GFʠN= 01 }}.0F $1LӤZ`Ez]UOͽ>fdN*5Ւh 08 .0F $1LӤZ`Ez]UO GFʠN=0F@1 }}BL=ew!4Z`Ez]UO1釥GP>aF0@<PBL=ew!4Z`Ez]UO GFʠN=@P: }} Root boneݫK^BUZ`Ez]UO GFʠN=P`1 }}d_@ cB8EZ`Ez]UO GFʠN=`p1 }}׊;Jf|ڢZ`Ez]UOݫK^BU܂dKu=fW$Skeleton materialgW.;]kI 忞@"wRXMpB'Lw 8v hW4W}@O{$MV.F_P#.F_P#Material Output material __W8E#((IS8VU@Ra.U@Ra.LE2Data$LE2 Data for node >g'JNjn*pV՞'fA5-_՞'fA5-_D3DEYED3DEYE =xNT{8V-1OSM n"V(XFҦVLE2Data, 1"TJ@#QLLE2Data, 24W}@O{(XFҦV>g'JNjn*pF@X@>@BA?՞'fA5-_.F_P#J@#QL>g'JNjn*pF4CtCd@@@?.;]kI 忞@-1OSM n 럆L<_ї(U@Ra.>g'JNjn*pFjCCd@T@?Pc|B;]2 TMaterial(IS.F_P#.F_P#Material Output material __W8E#(V KSS^M~b w (ISKS5OD.GWf5(ISuRqΤIGGIXw (IS@vR,S@vTV(ISvRзVJil(ISwR4W}@O{$gWxRU@Ra.xR-1OSM n"xѹ(XFҦVLE2Data, 1"@ҹkF_VertexShader(ISӹt@*Nt@*N Constant_shader Constant shader QVO Pk@(ISQ<;vHw(ISQ 0S̤@+R(IS,S@vTV 0S̤@+R #<5OD.GWf54W}@O{зVJil(XFҦV>g'JNjn*pFDCX@@@?<;vHw:KrbSxdDisabledEnabledAs OpaqueAs OpaqueS^M~b .F_P#t@*NkF_-1OSM n 럆L<_ї(U@Ra.>g'JNjn*pFDnC`@\@?qΤIGGI/|V FK|PShaderInputO?ڵfA'7(PO%dLrQn0OpiDM7O^@A툷%Op1M@o=%O}E[2CV)XDP&O`MOWIB"ѥ'OHtO{/('O qQ@RjHw RNҥY@e&RNB_;OKFJ*rTNHRSEpFCM~__um1CR¬5ȀMٻzEuSMSaI7֏bXM4W}@O{$gW؂M%%u5E b-1OSM n"(XFҦVLE2Data, 1"y"WMB]h)5FYPxKx*yI K#h"mO('B_;OKFJ*rڳVܯ]FՃ尲+%tsxi_GetInputLightDistRtFloat qQ@RjڳVܯ]FՃ尲'!tsxi_GetInputAlphaRtFloatp1M@o=ڳVܯ]FՃ尲,&tsxi_GetInputTexCoordsRtFloat3^@A툷ڳVܯ]FՃ尲+%tsxi_GetInputPositionRtFloat4)5FYPڳVܯ]FՃ尲1+tsxi_GetInputObjectToClip RtFloat4x4%%u5E b>g'JNjn*pFC`@0@?HRSEpFCڳVܯ]FՃ尲-'tsxi_GetInputLightColorRtFloat4ٻzEuSڳVܯ]FՃ尲2,tsxi_GetInputWorldToObject RtFloat4x44W}@O{SaI7֏bڳVܯ]FՃ尲2,tsxi_GetInputObjectToWorld RtFloat4x4~__um1CR¬5ڳVܯ]FՃ尲3-tsxi_GetInputTangentToWorld RtFloat3x3x*yIڳVܯ]FՃ尲0*tsxi_GetInputWorldToClip RtFloat4x4(XFҦV>g'JNjn*pFCAX@1@?#h"mO('ڳVܯ]FՃ尲-'tsxi_GetInputTexCoords2RtFloat3ҥY@e&ڳVܯ]FՃ尲+%tsxi_GetInputLightDirRtFloat3`MOWIB"ѥڳVܯ]FՃ尲)#tsxi_GetInputNormalRtFloat3?ڵfA'7(ڳVܯ]FՃ尲)#tsxi_GetInputEyePosRtFloat4%dLrQn0ڳVܯ]FՃ尲)#tsxi_GetInputEyeDirRtFloat3y"WMB]ڳVܯ]FՃ尲93!tsxi_GetInputObjectToWorld_Normal RtFloat3x3}E[2CV)ڳVܯ]FՃ尲("tsxi_GetInputColorRtFloat4-1OSM n 럆L<_ї(HtO{/(ڳVܯ]FՃ尲*$tsxi_GetInputTangentRtFloat3piDM7ڳVܯ]FՃ尲)#tsxi_GetInputEyeDistRtFloatz€ L& InputFloat+kCY5]BtO@`@`@uM@n;LA@\/3Kf͈,AGqiFE0IN `@pB4W}@O{$gW8%%u5E b-1OSM n"(XFҦVLE2Data, 1"GqiFE0IN SHININESS%%u5E b>g'JNjn*pFPb@X@?4W}@O{+kCY5]BtOA(XFҦV>g'JNjn*pFCCX@1@?uM@n;LA\/3Kf͈,?-1OSM n 럆L<_ї(]IDjdc]InputColor]"uI̎4)]&]]\PtIL;I1 D&q\W D ɭ&GqiFE0IN ]'4W}@O{$gW(%%u5E b(-1OSM n"(XFҦVLE2Data, 1"GqiFE0IN SPECULARCOLOR\PtIL;I1"uI̎4)]-n,Njlpg>>>?%%u5E b>g'JNjn*pFX@@b@X@?4W}@O{(XFҦV>g'JNjn*pFCCX@1@?q\W D ɭ-1OSM n 럆L<_ї(L{0nBg)`! Phong Lighting DP)\Fvq3XD:6~KAM%OL DR]JĀ7]LvJ ~~`@L$&*2HӁdńP&OLZ[G {/,POL zE%SfRNLw!XCLTNLL B#A)[(dPw L4W}@O{%gWL%%u5E b`L-1OSM n"(XFҦVLE2Data, 1" %%u5E b>g'JNjn*pFCLb@d@?4W}@O{(XFҦV>g'JNjn*pFCCX@1@?Z[G {/,:6~KAM B#A)[(dP)\Fvq3wk0.DX?_|X?dK;,w!XCL$&*2HӁdńvJ ~~-1OSM n 럆L<_ї( zE%SfR]JĀ7fC{obDShaderModelXw qΤIGGIuRPw C/-~CxrELXw w 4W}@O{$gWw %%u5E bX-1OSM n"ؤ(XFҦVLE2Data, 1"%%u5E b>g'JNjn*pF DA`@P@?4W}@O{(XFҦV>g'JNjn*pFCCX@1@?C/-~CxrE-1OSM n 럆L<_ї(qΤIGGIWG.3;W|w ShaderAlphaw S^M~b  KSHw ;MF~B;MF~B Alpha$Input alpha brick F 1+5?N>/'Ow 8v 4W}@O{$gWv %%u5E b8v -1OSM n"v (XFҦVLE2Data, 1"%%u5E b>g'JNjn*pFLD`B`@P@?4W}@O{(XFҦV>g'JNjn*pFCAX@1@?S^M~b ;MF~B-1OSM n 럆L<_ї(MYMJJ>zVm "Skeleton displaym :D x&:D x&SkeletonSkeleton [}Nj2n v[IL'KIq Pn 6Jѳ((q nJmCb4IP}K^nn1LH_rnm6EfH><q\7LO# ?<>"IM6 Ex ?<졉E/~ݾ@<(IДl/腶 xA<'a#G @=^V("h w`ZL. 5膶 tveDCE`"IWJB^ 2"IM6 Ex 6Jѳ( w`ZL. 5 'a#G @=^V(" m6EfHJmCb4IP}K^(XFҦV>g'JNjn*pFX@>@? 2(XFҦV" ދGy (XFҦV>g'JNjn*pFB|CX@1@?g!J׊;Jf|ڢ`^02eE{|@Bx69]'?>*PQ??%i~.8D$o;?IbEM K1g?0_BEP1@`^02eE{|@Bx99]"'?@*RQ??@>')x%@i@>?ۻJfHkG/.(ѻD3Ϳ"Yd Bone >.;]kI 忞@">4W}@O{$`f.(ѻD3ͿHfg!JfIbEM K1gHf i"Ydg'JNjn*pFDCCb@@\@?g!J׊;Jf|ڢ`^02eE{|@B??o:?IbEM K1g?0_BEP1@`^02eE{|@Bx99]"'?@*RQ??@>')x%@i@>?ۻJfHkG/.(ѻD3Ϳ"Yd