gH]kDwP~trueSpace7.51[VS_O93Y*I Clinton Reese, RUR`d8pM*#ͺO PNG  IHDR`Z IDATxswuVv-Ku[ٺĆ@ `R{鄐x4iS<-O4Ӿt BB -ǎo.F]ɺۇUZ{~ߞvY3$"+p g<#AxF3 g<#AxF3 g<#AxF3 g<#AxF3 g<#AxFw6g V+6n hiiiiieYb'"R]]Vϝ;>>p}7"0;A=^ns80 <:pN4D"]eEEA*JROjZV*,˶8^rze߿+_k{v 8vv\O>;t&DrB0l!zFeU*Uss3ŅB>_^.p.s}D&66x@ .p-aZ]UUAPKKVU(G]Yxeg[nʱ\.MAlhI?Y;A$IBDtMMJ2 AZƩ6D욛C[Z\S-ۿ5{n $I4Mqd*K9 ȻRTT:A^o4QR!?.3v^@{zmrrwttwkN21Gq+AD.j#GcltGS Nul:ξqp|ZG{;mD}}^ `0 N.T[OZNbbbwžEVMHR)t:V 4TUUZ,cQrGkgΦh߹s' d2zԌ:H_=|36B$8N%Ͻ@ќ|#MOOxޙl6 qŞ mrT[P-&!0seYV,07B!x (]8999555;;;<JE^mvd6& (jjjdlRb6G8  ޘcMӅB L&ưw~ݳ{gϞE"ahŹ\R`=0L:&Irjjaۍ˿{URh5A8s[se]3 AEQ 8&Z( 2͊Xf"6c]PHet:fj_l& X,tR4HƓ [ XVV(:77CV c}O%`0jE"x7$i4RbI&٬zPhnsY#_*8}ͮmQ(2 D"0D,:hԪ&Fca wbBTBNcL;ZNW,MF HT*U]]ggj`D\.h4J`$l6k0 D46Q:tiAZ-˲E X\red2Y]]\.gYe١ѱKH۷T*cǎnt#y,_aAƒmF0 ˲2eI%e2V[L&+u,y}Rap3$fq !˲MMM/,: @D**J i:͔X0"b,ĥ #`yH$bܛXPӓGK+g]P(CVk~ĚStu($ <>M`aFTj4rK8I,dH-'̾ ,.,,\&( X,FQT7}Ξ;Yp @QABazHh+A1`B,+sih(*dt:] |fr=~xqq*5IMOO{p0x>>77yHAP0XeS]к@A~Dv:N@<9k7jmH$'YVrfǪ}}}?C?0g v UkL6 ~09he/OR)ElUUUׅnrt-M._:::vƍI5){.*p;<01 ;> xu9?r#DɤX}M@gwW dKKKه/0trG6DH$cû>2{;wW]wBlAqԏ|^"dYAfff8rdY7c>\~ÅTmn)--O_u|(JQ(>u<]7n\.q D2 JRp8L˲':cۿ>'#tu/BP(qA-o[h4B~'N)z4\M?.+-s!t:r`Nxl68nZ?>73=dJ VS!͛_5^~ɌsMJUU VҥK|nɓ= S=LNjwE<|< pGQX"(''tumCCC_}z /X; fv~~.O[[OUk_~ Aݻw"^>1?;6h3IENDB`/tfѭ8Lwb"qjf܂dKu=<"Fdoom3 MD5 Mesh Loader ts75 dec2007x!.;]kI 忞@.;]kI 忞@"SubObject*Encapsulated objects"k Es8!8r)&Hh,b0 q4W}@O{4W}@O{$ Owner4Owner of the Encapsulator$K 0-1OSM n-1OSM n"LayoutLayout 럆L<_ї"k(XFҦV(XFҦV"LE2Data$LE2 Data for node >g'JNjn*p" (NffMCONffMCODMyFileName\`ܾ(z@Hoz@Ho Control InTransitionIn (XFҦV>g'JNjn*p^D C~@@X@tveDCE`"IWJ}? B?NffMCOC:\Documents and Settings\Clinton\My Documents\doom3\zfat.md5mesh-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%' + '/MD5MeshImport')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@Ho5 F47m2O  %doomTransform(<ĠF姁J]<ĠF姁J]DMatrix,Object's input matrix `^02eE{|@DqpQ@QWAGWAGOwnerMatrixOwner's matrix `^02eE{|@pQq偢jD%~`8偢jD%~`8BObjMatrix Object's matrix `^02eE{|@BpQ׊;Jf|ڢ׊;Jf|ڢBWldMatrixWorld matrix `^02eE{|@Bk 4W}@O{$x!Ng(XFҦV"Rg-1OSM n"偢jD%~`8(XFҦV>g'JNjn*pFnCmCb@@T@?׊;Jf|ڢWAG<ĠF姁J]-1OSM n 럆L<_ї(48@J g'JNjn*pHsceZU@䑧rceZU@䑧r$_scriptData*Internal Script data [җJs@ %Es4W}@O{$x! (XFҦVLE2Data, 1#-J@#QLJ@#QLLE2Data$LE2 Data for node >g'JNjn*pLE2Data, 3DsMT^RwL~YYTMT^RwL~YYTޢLE2Data$LE2 Data for node >g'JNjn*p`ܾNffMCOD ( 2|=Bynj2|=Bynj Control OutTransitionOut z@Ho( 2|=Bynj2AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ NewCommand// Doom3 md5mesh import // nov 2005 // clinton reese // // joint position is good // no way to parent in script // next do mesh // mesh more involved than I thought // test mesh with cubes first, uses quat rotation to position points relative to the joints // // nov 19 - file data is all being read properly // next get actual point positions and create a box at each vertex(or every other or third or fourth...) // // NOTE: need parseInt(), parseFloat() in some cases to make sure saved as a number // any time you add 2 things they both must be numbers or they add as strings // // mesh successful // but how handle multiple meshes - test has 4 meshes // would also like to import shaders incl normal map // PLAN: // get textures for test model // do uv assignment // try use normal map with color map etc // multiple mesh creation on the fly or select single mesh to load via list box // problem: invisible in player unless copy, then can see copy in player // // multi-mesh problem solved, objects created outside via node create and // copy mesh, material and transform nodes from within owner of this script // use registered mesh attribute so dont need copy and hookup shape node // meshes still not vivible in player without copy or modeller mesh edit // uv harder than expected - little info available // got info but looks like uv stuff is broken // do bones as group object next // // April 22 // build heiarchy of skeleton // hiearchy is good now attach transform to geo // Hierarchy of md5mesh import is good, joints are all in the correct locations // *geo is for looks only, manipulate the group/encapsulated node // can't do much more until ts7.5 skeleton is done // // April 23 // new skeleton geometry requires import with player view not model view // loads much faster if set matrix of objects // all is good one thing left rotate the joints // ROTATE JOINTS WONT WORK PUT BACK TO SIMPLE GEOMETRY // // Nov 19 2006 // start first ts75 version // if joints not connected to bones then positioning is perfect // joint positions a little crazy when connected to bones // ? // reason unknown // Reason Found - matrix def changes when bones are involved - only true when set matrix programatically // joint position is absolute when no bones are attached // with bones attached position is relative to parent // it's weird but should make the animation import easier - assuming nothing changes(it is tS75 BETA) // // TODO - clear out code for fake skeleton // LATER - skin the skeleton when possible // // May 27 2007 - prepare ts75 non beta release // // Dec 22 2007 - important discovery need to make initial "empty" skeleton in front view drawn top to bottom // then rename and delete extra joint and reset matrix and move skeleton to origin and will line up with mesh // also changed so initial skeleton template has a joint and bone already, so can rotate origin // // 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 // read entire file then process while( !connToFile.AtEndOfStream ) { rline[count] = connToFile.ReadLine(); count++; } connToFile.Close(); // finished reading file now process data var msg = ""; var jointCnt = -1; var vertCnt = -1; var numtris = -1; var curmesh = -1; jointMesh = new Array(); firstWeight = new Array(); weightElem = new Array(); //number of weights assigned to vertex triface = new Array(); UVTri = new Array();//uv triangles like triface but with uv instead of vertices meshes = new Array(); meshName = 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(); // weight arrays wtJoint = new Array();//joint index weight = new Array(); //weight value(add to 1 for single vertex) wtX = new Array(); // XYZ relative to joint position and orientation wtY = new Array(); wtZ = new Array(); //april boneName = new Array(); boneFullName = new Array(); //march2007 pBoneIndex = new Array(); myMatrix = System.CreateDO("Math Package/Matrix Float Data"); myMatrixA = System.CreateDO("Math Package/Matrix Float Data");//absolute for ts75 matrix - no local space adjustments scene = Space.CurrentScene(); for(i = 0; i < rline.length; i++) { msg = rline[i]; // scoop one line from msg array. msgtag = msg.split(" "); if (msgtag[0] == "numJoints") { var numJoints = msgtag[1]; System.Trace("numJoints = " + numJoints); } if (msgtag[0] == "numMeshes") { var numMeshes = msgtag[1]; System.Trace("numMeshes = " + numMeshes); } if (msgtag[0] == "mesh") { curmesh = curmesh + 1; } if (msgtag[0] == "\t//") { if (msgtag[1] == "meshes:") { meshName[curmesh] = msgtag[2]; System.Trace("mesh name is " + meshName[curmesh]); scene = Space.CurrentScene(); encapsO = Node.Create('Kernel Package/Object', scene);//create empty node in scene encaps = Node.Rename(encapsO, meshName[curmesh]); owner = System.ThisOwner(); Node.Copy(owner + "/doomShape", encaps);//copy blank mesh to new node Node.ExportConnector(encaps + "/doomShape","Mesh","",1,1); 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); Node.Copy(owner + "/doomBlankDXMaterial", encaps);//copy material to new node } } if (msgtag[0] == "\tnumverts") { var numverts = msgtag[1]; vertCnt = 0; System.Trace("numverts = " + numverts); dT = System.CreateDO("Space 3D Package/UV Coordinate Stream Data"); dT.SetNumUVCoords(numverts); } if (msgtag[0] == "\tvert") { //read uv and index vertCnt = msgtag[1]; dT.u(vertCnt) = msgtag[3]; dT.v(vertCnt) = msgtag[4]; firstWeight[vertCnt] = parseInt(msgtag[6]);// index of first weight for vertex weightElem[vertCnt] = msgtag[7]; // number of weights assigned to vertex if (vertCnt < 2) System.Trace("firstWeight=" + firstWeight[vertCnt] + " count=" + weightElem[vertCnt]); if (vertCnt == numverts-1) { vertCnt = -1; } } if (msgtag[0] == "\tnumtris") { numtris = msgtag[1]; triCnt = 0; // define faces triface[curmesh] = System.CreateDO("Space 3D Package/Triangle Vertices Stream Data"); // testdUV = System.CreateDO("Space 3D Package/UV Coordinate Stream Data"); UVTri[curmesh] = System.CreateDO("Space 3D Package/UV Triangle Stream Data"); UVTri[curmesh].SetNumUVTripleIndices(numtris); triface[curmesh].SetNumTripleIndices(numtris); triface[curmesh].BeginWrite(); System.Trace("num triangles = " + numtris); } if (msgtag[0] == "\ttri") { triCnt = msgtag[1]; triface[curmesh].i(triCnt) = msgtag[4];//reverse order so face normal is good triface[curmesh].j(triCnt) = msgtag[3]; triface[curmesh].k(triCnt) = msgtag[2]; UVTri[curmesh].i(triCnt) = msgtag[4]; UVTri[curmesh].j(triCnt) = msgtag[3]; UVTri[curmesh].k(triCnt) = msgtag[2]; if (triCnt < 2) System.Trace("face ijk= " + triface[curmesh].i(triCnt) + ", " + triface[curmesh].j(triCnt) + ", " + triface[curmesh].k(triCnt)); if ( triCnt == numtris-1) { triCnt = -1; triface[curmesh].EndWrite(); } } if (msgtag[0] == "\tnumweights") { numweights = msgtag[1]; weightCnt = 0; System.Trace("num weights = " + numweights); } if (msgtag[0] == "\tweight") { weightCnt = msgtag[1]; wtJoint[weightCnt] = msgtag[2]; weight[weightCnt] = msgtag[3]; wtX[weightCnt] = msgtag[5]; wtY[weightCnt] = msgtag[6]; wtZ[weightCnt] = msgtag[7]; if (weightCnt < 2) { System.Trace("index,joint,weight=" + weightCnt + ", "+ wtJoint[weightCnt] + ", " + weight[weightCnt]); System.Trace("XYZ=" + wtX[weightCnt] + ", " + wtY[weightCnt] + ", " + wtZ[weightCnt]); } if ( weightCnt == numweights - 1) { //build mesh System.Trace("build the mesh"); dV = System.CreateDO("Space 3D Package/Vertex Stream Data"); dV.SetNumVertices(numverts); dV.BeginWrite(); for (vt = 0; vt < numverts ; vt++) { posX = 0; posY = 0; posZ = 0; wtCnt = weightElem[vt]; if (vt<2) System.Trace("weight count=" + wtCnt); fw = firstWeight[vt]; if (vt<2) System.Trace("first weight=" + fw); for (wt = 0; wt < wtCnt; wt++) { //find vertex from weight, weightXYZ, joint pos and joint quat //joint rotation matrix(quaternion) wi = fw + wt;//weight index jointIndex = wtJoint[wi]; if(vt<2) System.Trace("wi, joint index=" + wi + ", " + jointIndex); qx = xq[jointIndex]; qy = yq[jointIndex]; qz = zq[jointIndex]; qw = wq[jointIndex]; if(vt<2) System.Trace("xyzw=" + qx + ", " + qy + ", " + qz +", " + qw); 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; // rm dot XYZ = rotated position rposX = rm11*wtX[wi] + rm21*wtY[wi] + rm31*wtZ[wi]; rposY = rm12*wtX[wi] + rm22*wtY[wi] + rm32*wtZ[wi]; rposZ = rm13*wtX[wi] + rm23*wtY[wi] + rm33*wtZ[wi]; posX = posX +(jx[jointIndex] + rposX)*weight[wi]; posY = posY +(jy[jointIndex] + rposY)*weight[wi]; posZ = posZ +(jz[jointIndex] + rposZ)*weight[wi]; } dV.x(vt) = posX * myScale; dV.y(vt) = posY * myScale; dV.z(vt) = posZ * myScale; //create cube at position of vertex posXYZ if (vt < 0) { curCube = Space.Cube(0.1, 0.1, 0.1, 1, 1, 1); Node.Value(curCube, "tx") = posX * myScale; Node.Value(curCube, "ty") = posY * myScale; Node.Value(curCube, "tz") = posZ * myScale; System.Trace("vert position = " + posX + ", " + posY + ", " + posZ); } } // verts done, triangles done try create TS mesh dV.EndWrite(); dM = System.CreateDO("Space 3D Package/Mesh Data"); dM.AttachVerticesStream(dV); dM.AttachTrianglesStream(triface[curmesh]); dM.AttachCustStream(dT); dM.AttachTrianglesStream(UVTri[curmesh]); Node.Value(encaps + "/doomShape","Mesh") = dM; myMatrix.LoadIdentity(); Node.Value(encaps, "Matrix") = myMatrix; } } // read joint data if (jointCnt != -1) { msgtagSub = msgtag[0].split("\t"); jointName = msgtagSub[1].substr(1,msgtagSub[1].length-2); parentName = ""; if(jointCnt != 0) parentName = msgtag[11].substr(0,msgtag[11].length);//april //april boneName[jointCnt] = jointName; boneFullName[jointCnt] = "error"; if(jointCnt == 0) { pBoneIndex[jointCnt] = -1;//first bone no parent //dec 2007 comment out the old //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"); ////donet add new bone use skeleton bone for 1st 2 joints ////Node.Copy(owner + "/Bone", scene + "/characterBase");//copy bone in ////temp = Node.Rename(scene + "/characterBase/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 + "/characterBase/" + jointName + "Joint","Joint",scene + "/characterBase/" + jointName + "Bone","Root"); //temp = Node.Rename(scene + "/Skeleton/skeletonBone", jointName + "Bone"); //dec 2007 use existing MyJoint and MyBone in Skeleton 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"); Node.ConnectTo(scene + "/Skeleton/MyBone","Bone",scene + "/Skeleton/" + jointName + "Joint","Bone"); Node.ConnectTo(scene + "/Skeleton/" + jointName + "Joint","Joint",scene + "/Skeleton/" + jointName + "Bone","Root"); Node.Copy(owner + "/doom3jointgeo", scene); jointMesh[jointCnt] = Node.Rename(scene + "/doom3jointgeo", "theJoint"); boneFullName[jointCnt] = jointName ; encaps1 = Node.Create('Kernel Package/Object', encaps); //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(encaps + "/Transform","WldMatrix",encaps + "/" + jointName,"OwnerMatrix"); } else { for(ii=0; ii<jointCnt; ii++) { if(parentName == boneName[ii]) { parentIndex = ii; pBoneIndex[jointCnt] = parentIndex;//save for leaf joint creation zscale = (msgtag[4]-jz[parentIndex])*myScale; // this works but scale from center need pivot point 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"); Node.Copy(owner + "/doom3jointgeo", scene); jointMesh[jointCnt] = Node.Rename(scene + "/doom3jointgeo", "theJoint"); boneFullName[jointCnt] = boneFullName[ii] + "/" + jointName ; 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(encaps + "/" + boneFullName[ii] + "/Transform","WldMatrix",encapsCurrent,"OwnerMatrix"); } } } //System.Trace(boneName[jointCnt]); //System.Trace(boneFullName[jointCnt]); jointMesh[jointCnt] = Node.Rename(jointMesh[jointCnt], jointName + "geo"); //the joint positions are in absolute world space so take diff to get local space myMatrix.LoadIdentity(); if(jointCnt == 0) { myMatrix.SetTransX(msgtag[2]*myScale); myMatrix.SetTransY(msgtag[3]*myScale); myMatrix.SetTransZ(msgtag[4]*myScale); } else { myMatrix.SetTransX((msgtag[2]-jx[parentIndex])*myScale); myMatrix.SetTransY((msgtag[3]-jy[parentIndex])*myScale); myMatrix.SetTransZ((msgtag[4]-jz[parentIndex])*myScale); } Node.Value(encapsCurrent,"Matrix") = myMatrix; // save joint position - unscaled jx[jointCnt] = parseFloat(msgtag[2]); jy[jointCnt] = parseFloat(msgtag[3]); jz[jointCnt] = parseFloat(msgtag[4]); xq[jointCnt] = msgtag[7];//rotation of joint in quaternion form yq[jointCnt] = msgtag[8]; zq[jointCnt] = msgtag[9]; wq[jointCnt] = 1 - xq[jointCnt]*xq[jointCnt] - yq[jointCnt]*yq[jointCnt] - zq[jointCnt]*zq[jointCnt]; if (wq[jointCnt] < 0) { wq[jointCnt] = 0; } else { wq[jointCnt] = Math.sqrt(wq[jointCnt]) } //dec 2007 rotate root joint if(jointCnt == 0) { qw = wq[jointCnt]; qx = xq[jointCnt]; qy = yq[jointCnt]; qz = zq[jointCnt]; sqx = qx*qx; sqy = qy*qy; sqz = qz*qz; sqw=qw*qw; //try pure transform myMatrix.LoadIdentity(); myMatrix.SetAt(3,0,msgtag[2]*myScale);//x myMatrix.SetAt(3,1,msgtag[3]*myScale);//y myMatrix.SetAt(3,2,msgtag[4]*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 transform test //true bone Node.Value(scene + "/Skeleton/" + boneName[jointCnt] + "Joint","Matrix") = myMatrix;//set matrix of ts75 root joint //end true bone } else { //joint position is absolute when no bones are attached //with bones attached position is relative to parent myMatrixA.LoadIdentity(); myMatrixA.SetTransX(msgtag[2]*myScale); myMatrixA.SetTransY(msgtag[3]*myScale); myMatrixA.SetTransZ(msgtag[4]*myScale); //myMatrixA.SetScaleX(2.0); myMatrixA.SetScaleY(2.0); myMatrixA.SetScaleZ(2.0);//set size of floating test joints to 4 Node.Value(scene + "/Skeleton/" + jointName + "Joint","Matrix") = myMatrix;//set matrix of ts75 joint - try rel } Node.Copy(jointMesh[jointCnt], encapsCurrent); Node.Delete(jointMesh[jointCnt]); // hook up transform to geometry Node.ConnectTo(encapsCurrent + "/Transform","WldMatrix",encapsCurrent + "/" + jointName + "geo","OwnerMatrix"); //march 2007 get transofrm from fake skel myMatrix = Node.Value(encapsCurrent,"ObjMatrix"); Node.Value(scene + "/Skeleton/" + jointName + "Joint","Matrix") = myMatrix; //dec 2007 rotate root joint if(jointCnt == 0) { } jointCnt = jointCnt + 1; if (jointCnt == numJoints) { jointCnt = -1; myMatrix.LoadIdentity(); Node.Value(encaps, "Matrix") = myMatrix; //add leaf joints for(cj=0;cj<numJoints;cj++) { //check if exist in parent list leafBone = 1; for(ci=0;ci<numJoints;ci++) { if(pBoneIndex[ci]==cj) { leafBone = 0; } } //if not then needs a leaf joint if(leafBone==1) { System.Trace(boneName[cj] + "Leaf"); //new joint pos at joint + joint - parent //note march 2007 orientation of joints is not set only position //so import is not good for later export //leaf orientation not matter in any case //Node.Copy(owner + "/Joint", scene + "/characterBase");//copy joint in //temp = Node.Rename(scene + "/characterBase/Joint", boneName[cj] + "Leaf");//add leaf postfix //Node.ConnectTo(scene + "/characterBase/" + boneName[cj] + "Bone","Bone",scene + "/characterBase/" + boneName[cj] + "Leaf","Bone");//connect leaf joint to bone //myMatrixA.LoadIdentity(); //myMatrix.SetTransX((jx[cj]-jx[pBoneIndex[cj]])*myScale/4); //myMatrix.SetTransY((jy[cj]-jy[pBoneIndex[cj]])*myScale/4); //myMatrix.SetTransZ((jz[cj]-jz[pBoneIndex[cj]])*myScale/4); //Node.Value(scene + "/characterBase/" + boneName[cj] + "Leaf","Matrix") = myMatrix; } } } } if (msgtag[0] == "joints") { jointCnt = 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); } // 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~൱D<\a#^cstringMyFileNameNffMCO4W}@O{(XFҦV>g'JNjn*pn0D<z@@V@2|=Bynj|?z@Hoۙ>?NffMCOC:\Documents and Settings\Clinton\My Documents\doom3\zfat.md5meshJ@#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=~#(doomBlankDXMaterialH.;]kI 忞@"q op  =x8!4W}@O{$x!q.F_P#.F_P#Material Output material __W8E#(@mU@Ra.U@Ra.LE2Data, 7$LE2 Data for node >g'JNjn*p՞'fA5-_՞'fA5-_D3DEYED3DEYE =xNT{~-1OSM n"r?(XFҦVLE2Data, 1"@ J@#QLLE2Data, 24W}@O{(XFҦV>g'JNjn*pFC b@@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;]2TE#Material.F_P#.F_P#Material Output material __W8E#(q S^M~b S^M~b Alpha_shaderAlpha shader RnчINN 5OD.GWf55OD.GWf5Color_shaderColor shader zdU@AUʂ*زHqΤIGGIqΤIGGIModel_shaderModel shader @SrE8㲻topս,S@vTV,S@vTVNormal_shaderNormal shader Xb"ٲN+48- p> зVJilзVJil Texcoord_shader Texcoord shader lrMH;e{q4W}@O{$HU@Ra.U@Ra.LE2Data$LE2 Data for node >g'JNjn*p`m -1OSM n"Hϐ (XFҦVLE2Data, 1"PkF_kF_Vertex_shaderVertex shader k|eKwj9CqVertexShaderWt@*Nt@*N Constant_shader Constant shader QVO Pk@(<;vHw<;vHwAlphaTest Alpha Test type :KrbSx@̆  0S̤@+R 0S̤@+RAlphaTestValue"Alpha Test Value,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=!,DefaultTexCoordShadera (gD9f<(gD9f<TCMoveYTCMoveYu) R:>a[EH*M\R:>a[EH*M\LE2Data, 2$LE2 Data for node >g'JNjn*p 7wCH7wCHLE2Data$LE2 Data for node >g'JNjn*pH% wkd@Xywkd@XyTCScaleXTCScaleX  4W}@O{$Hv y݀J}Ny݀J}N FloatInput floatTCMoveX`fP5ĦBZĦBZTCScaleYTCScaleY=X )rޙG )rޙG ˣLE2Data, 2$LE2 Data for node >g'JNjn*pLE2Data, 40S4(XFҦVLE2Data, 3"t3%%u5E b%%u5E bLE2Data$LE2 Data for node >g'JNjn*pLE2Data, 6xrQA@y:l1QA@y:l1LE2Data, 5$LE2 Data for node >g'JNjn*p$c$Q/G|]8$Q/G|]8LE2Data, 1$LE2 Data for node >g'JNjn*pc -1OSM n#.;]kI 忞@" @.GF\ x?X,`;Z C- {зVJilp> hxR:>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:i<2#ShaderTexcoordhxзVJil{r)#,OrR)#,OrRTexcoord*Input texcoord brick F 1+5?N>/Uhx@.4W}@O{$hѨ %%u5E b%%u5E bLE2Data, 10$LE2 Data for node >g'JNjn*pF+-1OSM n"`"(XFҦVLE2Data, 1` r!"I = 8r!"I = 8Texcoord2,Input texcoord2 brick F 1+5?N>/hx%%u5E b>g'JNjn*pFEDA`@P@?4W}@O{зVJil(XFҦV>g'JNjn*pFEDA`@P@?)#,OrRr!"I = 8-1OSM n 럆L<_ї(L{0nBg)`! ,"Add`x P)\Fvq3P)\Fvq3$PrivateShaderData$PrivateShaderData wk0.DX?_p:JF>*U:JF>*UInputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/WU'=#2 |L?¢Fh#2 |L?¢FhInputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/ UU,8A fKھ,8A fKھResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/rG4W}@O{%]p%%u5E bM1-1OSM 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)`! $#Modulate8 P)\Fvq3 2x2֣K!dE52x2֣K!dE5InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/W4W0zTXGy5֣ TXGy5֣ InputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/4 WW dE9@ dE9@ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/pF4W}@O{%%%u5E b`ӓ -1OSM n"/(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)`! 4"*VectorFromComponents P)\Fvq30Gx:G<l5Gx:G<l5XTX : RtFloat - Scalar floating point value F 1+5?N>/-&W4"? LDs(e LDs(eYTY : RtFloat - Scalar floating point value F 1+5?N>/I=W4v ?8[GVTI?8[GVTIZTZ : RtFloat - Scalar floating point value F 1+5?N>/W4Hax"PZKLь"PZKLьWTW : RtFloat - Scalar floating point value F 1+5?N>/W4W4JN۪BP JN۪BP ResultnResult : RtFloat4 - The four component vector or color F 1+5?N>/ \ 4W}@O{%@?%%u5E bp4F(XFҦVLE2Data, 1A -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)\Fvq3eGx:G<l5    LDs(e ?8[GVTI @<9"PZKLь JN۪BP '=x?4W}@O{%x~%%u5E b8 (XFҦVLE2Data, 1\-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 T?ڵfA'7(?ڵfA'7(EyePos8Eye position in world space F 1+5?N>/G%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>/~3^@A툷^@A툷PositionNShading point position in world space. F 1+5?N>/4 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>/0z }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>/pw `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>/ 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>/P` 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>/4B_;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>/ HRSEpFCHRSEpFCLightColorLight 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>/y ٻzEuSٻzEuSWorldToObjectnTransformation matrix from world space to object space F 1+5?N>/ؽ SaI7֏bSaI7֏bObjectToWorldTransformation matrix from object space to world space. Note that this is inverse matrix to WorldToObject. F 1+5?N>/X,4W}@O{$%%u5E bPN4-1OSM n"_(XFҦVLE2Data, 1oy"WMB]y"WMB]*ObjectToWorld_NormalA 3x3 Transformation matrix for normal and tangent vectors from object space to world space. F 1+5?N>/5)5FYP)5FYPObjectToClipPerspective transformation matrix from object space to screen space. F 1+5?N>/8 x*yIx*yIWorldToClipPerspective transformation matrix from world space to screen space. F 1+5?N>/ #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& "InputFloat`f+kCY5]BtO+kCY5]BtO FloatInput floatv  uM@n;LAuM@n;LAFloatBrickFloat brick F 1+5?N>/e \/3Kf͈,\/3Kf͈,oFloatOutput float,MGqiFE0IN GqiFE0IN Input usageVThe usage specification for this parameter `;4W}@O{$ %%u5E b8;(XFҦVLE2Data, 1r-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& D:"InputFloat, 1u)+kCY5]BtOa Q%uM@n;LA Q%\/3Kf͈,IGqiFE0IN Z 4W}@O{$9 %%u5E bp(XFҦVLE2Data, 1 1-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 +kCY5]BtOH% X -&-&uM@n;LA0X \/3Kf͈,pGqiFE0IN -&C-4W}@O{$:%%u5E b p (XFҦVLE2Data, 1Z-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& \M"InputFloat, 3=+kCY5]BtOP5~.I=I=uM@n;LA"?~.\/3Kf͈,h2GqiFE0IN I= 4W}@O{$ DW%%u5E b`C (XFҦVLE2Data, 1;-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=l"&DefaultModelShader R:>a[EH*M\R:>a[EH*M\LE2Data$LE2 Data for node >g'JNjn*pM7wCHN.;]kI 忞@" P/м=/S IGK0ċ o4W}@O{$Ho)rޙG )rޙG ˢLE2Data$LE2 Data for node >g'JNjn*p8o(XFҦVLE2Data, 3"o%%u5E bLE2Data, 6p- QA@y:l1oqΤIGGIP po$Q/G|]81-1OSM n#kL QNIM5G&L QNIM5G&BitmapInput bitmap eSBgc@= L QNIM5G&eSBgcm J/Project/Space 3D/doomSkeleton/LkneejwbVA/t-jmx}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)`! a"Phong Lighting O3P)\Fvq3Pp:6~KAM:6~KAMDiffuseColorzDiffuseColor : RtFloat4 - The four component vector or color F 1+5?N>/pЕ PgR]JĀ7R]JĀ7SpecularColor|SpecularColor : RtFloat4 - The four component vector or color F 1+5?N>/D Е 0 vJ ~~vJ ~~ShininessdShininess : RtFloat - Scalar floating point value F 1+5?N>/x/1Е l$&*2HӁdń$&*2HӁdńNormalVectorjNormalVector : RtFloat3 - The three component vector F 1+5?N>/ Е ?qZ[G {/,Z[G {/,EyeDirectionjEyeDirection : RtFloat3 - The three component vector F 1+5?N>/h Е   zE%Sf zE%SfLightDirectionnLightDirection : RtFloat3 - The three component vector F 1+5?N>/{<Е (.w!XCLw!XCLLightColorvLightColor : RtFloat4 - The four component vector or color F 1+5?N>/QgЕ Е  B#A)[(d B#A)[(dResultColorxResultColor : RtFloat4 - The four component vector or color F 1+5?N>/.=P4W}@O{%N %%u5E bp-1OSM n"2(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(h %dLrQn0?qح piDM7p^@A툷op1M@o= 0 p}E[2CV)Pp `MOWIB"ѥlHGHtO{/(v qQ@Rj{<ҥY@e& B_;OKFJ*rQgHRSEpFC(.0Y~__um1CR¬5pٻzEuS`yjSaI7֏b/4W}@O{$No%%u5E b1-1OSM n"(M{(XFҦVLE2Data, 1 4y"WMB]G)5FYP<x*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ڳ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{ot"ShaderModelP qΤIGGIo.=C/-~CxrEC/-~CxrE Color$Input color brick F 1+5?N>/Е P м=4W}@O{$NS%%u5E bM]-1OSM n"(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)`! L"Color texturep P)\Fvq3]z 1frHsOP5 1frHsOP5ColorSamplerrColorSampler : RtSampler2D - The two dimensional sampler (TpFޚ@':# PR3HBPPR3HBP&TextureCoordinatesvTextureCoordinates : RtFloat3 - The three component vector F 1+5?N>/o##z(J.Ďz(J.Ď ColorlColor : RtFloat4 - The four component vector or color F 1+5?N>/4/4W}@O{$N`(XFҦVz(J.Ď(XFҦV>g'JNjn*pF5CnCb@@P@?P)\Fvq3wk0.DX?_К~k,J6 PR3HBP 1frHsOP5nEԑ#InputBitmap, 1@=L QNIM5G&k 4::5%Kլy|5%Kլy|SamplerBrickBitmap brick (TpFޚ@'C]z 4Q])JNЈQ])JNЈoBitmapOutput bitmap eSBgcXGqiFE0IN : tA ?gŘrA ?gŘrMinFilterbMinification filter (Point, Linear, Anisotropic):' 5 B%OK5 B%OKMagFilterdMagnification filter (Point, Linear, Anisotropic):m>Muf2BޠQTMuf2BޠQTMipFilter^Mipmapping filter (Point, Linear, Anisotropic):  T?cCx%K T?cCx%KU_AddressModexU Addressing mode (Wrap, Mirror, Clamp, Border, MirrorOnce):Xֈ QnfM9M$ QnfM9M$ V_AddressModexV Addressing mode (Wrap, Mirror, Clamp, Border, MirrorOnce):HoD9QbJF}~b{9QbJF}~b{Border colorBorder color -n,Njlpg: TKAIzc(TKAIzc(MaxAnisotropy2Maximum anisotropy level: d b/IG  b/IG MipMapLODBias"Mip map LOD Bias:@qЎeJf6KЎeJf6KMaxMipLevel*Maximum mipmap level:5hdzCqIjAhdzCqIjA$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 :S 4W}@O{$N (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)`! U!"Color texture, 1@KP)\Fvq3C 1frHsOP5:D 0 PR3HBPoD D z(J.ĎPgIG4W}@O{$N ?(XFҦVz(J.Ď(XFҦV>g'JNjn*pFCb@@P@?P)\Fvq3wk0.DX?_К~k,J6 PR3HBP 1frHsOP5L{0nBg)`! !Negatexy4P)\Fvq34thE@ d0gthE@ d0g InputInput : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/#HWHWAi\tDw Ai\tDw ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/ȫi4W}@O{$NG(XFҦVthE@ d0gAi\tDw (XFҦV>g'JNjn*pFC{Cb@H@?P)\Fvq3wk0.DX?_%[ipAO9]&L{0nBg)`! B!Negate, 1 P)\Fvq3ȫithE@ d0gthE@ d0g InputInput : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/HWW W Ai\tDw Ai\tDw ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/K4W}@O{$Nxz(XFҦVthE@ d0gAi\tDw (XFҦV>g'JNjn*pFD}Cb@H@?P)\Fvq3wk0.DX?_%[ipAO9]&z€ L&  #InputFloatPS +kCY5]BtOY x/1x/1uM@n;LA0 Y \/3Kf͈,l GqiFE0IN x/10ċ 4W}@O{$N (XFҦVGqiFE0IN +kCY5]BtO@(XFҦV>g'JNjn*pFCpBb@@T@?uM@n;LA\/3Kf͈,@܂dKu= "SolidColorShader4 .;]kI 忞@"Xp4p 4W}@O{$H |%%u5E bh -1OSM n"PD"uI̎4)]"uI̎4)] ColorInput color -n,Njlpgh'35OD.GWf5-X (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ߦt ShaderColor-5OD.GWf53 ֶ C/-~CxrE( -X4W}@O{$4 [%%u5E bش -1OSM n"a (XFҦVLE2Data, 1%%u5E b>g'JNjn*pFChB`@P@?5OD.GWf54W}@O{(XFҦV>g'JNjn*pFChB`@P@?C/-~CxrE-1OSM n 럆L<_ї(]IDjdclInputColorh'"uI̎4)]PD0 ( ( \PtIL;I1\PtIL;I1ColorBrickColor brick F 1+5?N>/ ֶ 0 q\W D ɭq\W D ɭoColorOutput color -n,NjlpgESGqiFE0IN ( p44W}@O{$4 ?%%u5E bm -1OSM n"(˥ (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=~ NormalMapShader8J.;]kI 忞@" hP16  4W}@O{$H@/L QNIM5G&NormalMapнZ %%u5E b%%u5E bLE2Data$LE2 Data for node >g'JNjn*p_-1OSM n"8- ,S@vTVpս0٢ `t (XFҦVLE2Data, 1",S@vTVL QNIM5G&eSBgc C:\Development\Caligari\cvs\tS7\Runtime\Common\Scripts\D3D\DefaultNormalMap.ddsjwbVA/t-?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̿=,lShaderNormal0٢ ,S@vTV8- 8  T"\E  T"\E Normal&Input Normal brick F 1+5?N>/0F0٢ xQ=0G-|00r=0G-|00rTangent(Input Tangent brick F 1+5?N>/0٢ 4W}@O{$8J) %%u5E bm-1OSM n"8٨(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|YShaderInputxl?ڵfA'7(Hu %dLrQn0RpiDM7wo^@A툷P3p1M@o= `;}E[2CV)^ `MOWIB"ѥ"xHtO{/(  qQ@Rj蝷 ҥY@e&膬 B_;OKFJ*rh HRSEpFC~__um1CR¬5n[G ٻzEuS:rSaI7֏bhP4W}@O{$8JHe %%u5E b`I-1OSM n"8 (XFҦVLE2Data, 18 y"WMB])5FYPH x*yI3 #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)`! FNormal-Map, 1 P)\Fvq3`x<{O:r{O:rNormalMaplNormalMap : RtSampler2D - The two dimensional sampler (TpFޚ@'(6x0F f F?f F?TextureCoordslTextureCoords : RtFloat3 - The three component vector F 1+5?N>/P30Fn[jn.Fd7ajn.Fd7aTangentToWorldZTangentToWorld : RtFloat3x3 - The 3x3 matrix F 1+5?N>/0F0F5p˚FudTQ95p˚FudTQ9NormalVectorjNormalVector : RtFloat3 - The three component vector F 1+5?N>/8 14W}@O{%8J %%u5E b1 -1OSM n"l (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?nE InputBitmapнL QNIM5G&@/HG(6x(6x5%Kլy|`x<HGQ])JNЈQ])JNЈoBitmapoBitmap eSBgcx'GqiFE0IN (6x0OA ?gŘr(6xj 5 B%OK(6x Muf2BޠQT(6x@b  T?cCx%K(6x QnfM9M$ (6xT 9QbJF}~b{(6x ʏ TKAIzc((6xh%\ b/IG (6x`^ЎeJf6K(6x8 hdzCqIjA(6xoC~Oܝ3 (6x6 4W}@O{$8J %%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= TextureShader 9.;]kI 忞@"؀ Ⱥ.`nxp=x4W}@O{$Hp.lL QNIM5G&H `wo%%u5E b( -1OSM n#زH5OD.GWf5 y*(XFҦVLE2Data, 1#L QNIM5G&eSBgcp rC:\Development\Caligari\IconImages\mid-res_leaf_logo.jpgjwbVA/t-UoJFIFXXC    $.' ",#(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| ShaderInputG?ڵfA'7(x?4%dLrQn0piDM7k^@A툷(p1M@o=(p(u}E[2CV)z`MOWIB"ѥ8-HtO{/(y qQ@RjHvҥY@e&$B_;OKFJ*ryHRSEpFC`۫ ~__um1CR¬5pٻzEuSpSaI7֏b؀ 4W}@O{$ 9Q %%u5E b -1OSM n#8$(XFҦVLE2Data, 1x{ y"WMB];)5FYP0kNx*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*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ߦ>AShaderColory5OD.GWf5زH3tC/-~CxrEx; yȺ.4W}@O{$ 98K+%%u5E b^-1OSM n#PE(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)`! g'JNjn*pFCB`@T@?z(J.Ď4W}@O{(XFҦV>g'JNjn*pFCBb@@T@?P)\Fvq3wk0.DX?_К~k,J6 PR3HBP 1frHsOP5-1OSM n 럆L<_ї(nEInputBitmapH L QNIM5G&p.lcamNmN5%Kլy|XcaQ])JNЈ8uGqiFE0IN mNȭA ?gŘrmN(5 B%OKmN@f3Muf2BޠQTmN/d T?cCx%KmNx=AQnfM9M$ mNw9QbJF}~b{mNUJTKAIzc(mNȶk b/IG mN]ЎeJf6KmNc hdzCqIjAmN.oC~Oܝ3 mNp4W}@O{$ 9?#%%u5E bxH-1OSM n#0?Y(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=doom3jointgeo q.;]kI 忞@"(qvXɩ 4W}@O{$x!  G?ŋ G?ŋ tSObjLtrueSpace object synchronization data W5f@(䐈ZHOv(G% %zH1׊;Jf|ڢZh:(9x6T偢jD%~`8ZȮ{ש WAGm <ĠF姁J]\XVP-V?XM%-V?XM%Material ListMaterial List +N⩊8=M}(XFҦV"-V?XM%偢jD%~`8(XFҦV>g'JNjn*pFBb@ b@?׊;Jf|ڢWAG`^02eE{|@B???? G?ŋl罸[Hq2>$?>^?>$"?>#!??UnitObRQOLayOLayeMat1Z)pa ?fff?ShBxZZplaincolourW5f@(䐈%z(q4W}@O{$qV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_-V?XM%&zB}J?w3OǜD܂dKu=xl$Material Chunk, 1@/.;]kI 忞@"8 HmXvS:4W}@O{$hd @|>gYأC۲+?gYأC۲+?Material ChunkMaterial Chunk |E8y`GrtgYأC۲+?b=h0CRf-z.Material Chunk ManagertgYأC۲+?@|>Y!EJGWM!EJGWMMaterial IndexMaterial Indextt6~qK;2t&6~qK;2t&Active Info4Active and validity flags NOI/)[&t8 4W}@O{$@/ X}*A'H{'x!}*A'H{'x!Mat Item 0BDynamic material input connector tpg  |[o4A]w |[o4A]wMat Item 1BDynamic material input connector5t!EJGWM6~qK;2t&NOI/)[&|z@*GV}*A'H{'x!gYأC۲+? |[o4A]w~wC쇀D.2 Solid  .F_P#.F_P#Material Output material __W8E#( X n%⟀A}aJn%⟀A}aJDiffuseColorDiffuseColor -n,Njlpg M >]zJ4 >]zJ4 (VertexColorStrength(VertexColorStrength !J.HE /*gJ.HE /*gShininessShininess 868VnZN:W p8VnZN:W p DiffuseStrength DiffuseStrength H%ll-#Ez k^ll-#Ez k^"SpecularStrength"SpecularStrength HmX4W}@O{$@/(,K#uiL$K#uiL$AlphaTestAlphaTest :KrbSx ?9,L?D},L?D}AlphaTestValueAlphaTestValue J.HE /*g@@>]zJ4 n%⟀A}aJ-n,NjlpgL'޽lL]>L NameShader nameYPz 4W}@O{$(a ("!agNc +A!agNc +Acolour0colour : Shader - Color -n,NjlpgYP{[f(@-L*;'޽lL]>L plain!agNc +A-n,NjlpgL x\"4W}@O{$(a AoF5SO/oF5SO/ambient factor@ambient factor : Shader - Model 3m{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 [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? 7G5f2PureLWDisplacementShader<I˕XMӍJS9I˕XMӍJS9,LWDisplacement_shader2Pure Displacement shader yᮍGM޴"@8o'޽lL]>L< 4W}@O{$(a '޽lL]>LI˕XMӍJS9 EvmE|Kc\2PureLWTransparencyShader C fO*EI,SfO*EI,S,LWTransparency_shader2Pure Transparency shader yᮍGM޴"PHF'޽lL]>L C P4W}@O{$(a fO*EI,S'޽lL]>Ln':hF% IdoomShape 8~ÁM{ 9_[~ÁM{ 9_[$"Reference matrix `^02eE{|@$& mG[ & mG[ $Local space `^02eE{|@$ٰ =&VIQGіF͡T ٰ ׊;Jf|ڢB رyWAGٰ (?e<ĠF姁J]D 偢jD%~`8B tveDCE`"IWJBHwi /nkUCEHLj/nkUCEHLjSelection.Mesh selected elements >`g4RJLUD 8r)4W}@O{$x!x (XFҦV" /nkUCEHLj偢jD%~`8`^02eE{|@BN dlW?dlWN ?@Ҋ>?(XFҦV>g'JNjn*pFCBb@ `@?VIQGіF͡T>W5f@(䐈Vٸ*ćIC7 =@ۅ>@Vw>.@/N=>^@=~@#^@̽.@/N=@Vw=@ۅL@Vw@/N=Ә@̽v@{]Ә@=@/N=>L@Vw>O@iub?ۅ>+@:v]?Vw>)@9Y?/N=>Ϻ@0eV?=@fU?#Ϻ@0eV?̽)@9Y?/N=+@:v]?VwO@iub?ۅ]s@tg?Vw@ k?/N=3@n?̽@o?{]3@n?=@ k?/N=>]s@tg?Vw> @x?ۅ>@4?Vw>@C ?/N=>C}@F?=|@M?#C}@F?̽@C ?/N=@4?Vw @x?ۅ@?Vwㄋ@)?/N=1@[?̽qȍ@?{]1@[?=ㄋ@)?/N=>@?Vw>FJq@9!@ۅ>Pk@@Vw>sg@Ѧ@/N=>od@@=`c@@#od@@̽sg@Ѧ@/N=Pk@@VwFJq@9!@ۅ=v@H$@Vw {@V'@/N=$~@5)@̽3@\*@{]$~@5)@= {@V'@/N=>=v@H$@Vw>M3M@M3M@ۅ>2H@2H@Vw>D@D@/N=>DB@DB@=j^A@j^A@#DB@DB@̽D@D@/N=2H@2H@VwM3M@M3M@ۅhQ@hQ@Vw U@ U@/N=!X@!X@̽0Y@0Y@{]!X@!X@= U@ U@/N=>hQ@hQ@Vw>9!@FJq@ۅ>@Pk@Vw>Ѧ@sg@/N=>@od@=@`c@#@od@̽Ѧ@sg@/N=@Pk@Vw9!@FJq@ۅH$@=v@VwV'@ {@/N=5)@$~@̽\*@3@{]5)@$~@=V'@ {@/N=>H$@=v@Vw>x? @ۅ>4?@Vw>C ?@/N=>F?C}@=M?|@#F?C}@̽C ?@/N=4?@Vwx? @ۅ?@Vw)?ㄋ@/N=[?1@̽?qȍ@{][?1@=)?ㄋ@/N=>?@Vw>iub?O@ۅ>:v]?+@Vw>9Y?)@/N=>0eV?Ϻ@=fU?@#0eV?Ϻ@̽9Y?)@/N=:v]?+@Vwiub?O@ۅtg?]s@Vw k?@/N=n?3@̽o?@{]n?3@= k?@/N=>tg?]s@Vw> %=@ۅ>|%@Vw> %.@/N=>놗%^@=Ӗ%~@#놗%^@̽ %.@/N=|%@Vw %=@ۅ%L@Vw%@/N=7%Ә@̽ H%v@{]7%Ә@=%@/N=>%L@Vw>iubO@ۅ>:v]+@Vw>9Y)@/N=>0eVϺ@=fU@#0eVϺ@̽9Y)@/N=:v]+@VwiubO@ۅtg]s@Vw k@/N=n3@̽o@{]n3@= k@/N=>tg]s@Vw>x޿ @ۅ>4ٿ@Vw>C տ@/N=>FҿC}@=Mѿ|@#FҿC}@̽C տ@/N=4ٿ@Vwx޿ @ۅ@Vw)ㄋ@/N=[1@̽qȍ@{][1@=)ㄋ@/N=>@Vw>9!FJq@ۅ>Pk@Vw>Ѧsg@/N=>od@=`c@#od@̽Ѧsg@/N=Pk@Vw9!FJq@ۅH$=v@VwV' {@/N=5)$~@̽\*3@{]5)$~@=V' {@/N=>H$=v@Vw>M3MM3M@ۅ>2H2H@Vw>DD@/N=>DBDB@=j^Aj^A@#DBDB@̽DD@/N=2H2H@VwM3MM3M@ۅhQhQ@Vw U U@/N=!X!X@̽0Y0Y@{]!X!X@= U U@/N=>hQhQ@Vw>FJq9!@ۅ>Pk@Vw>sgѦ@/N=>od@=`c@#od@̽sgѦ@/N=Pk@VwFJq9!@ۅ=vH$@Vw {V'@/N=$~5)@̽3\*@{]$~5)@= {V'@/N=>=vH$@Vw> x?ۅ>4?Vw>C ?/N=>C}F?=|M?#C}F?̽C ?/N=4?Vw x?ۅ?Vwㄋ)?/N=1[?̽qȍ?{]1[?=ㄋ)?/N=>?Vw>Oiub?ۅ>+:v]?Vw>)9Y?/N=>Ϻ0eV?=fU?#Ϻ0eV?̽)9Y?/N=+:v]?VwOiub?ۅ]stg?Vw k?/N=3n?̽o?{]3n?= k?/N=>]stg?Vw>= &ۅ>|&Vw>. &/N=>^&=~&#^&̽. &/N=|&Vw= &ۅL#&Vw&&/N=Ә7(&̽v H)&{]Ә7(&=&&/N=>L#&Vw>Oiubۅ>+:v]Vw>)9Y/N=>Ϻ0eV=fU#Ϻ0eV̽)9Y/N=+:v]VwOiubۅ]stgVw k/N=3n̽o{]3n= k/N=>]stgVw> x޿ۅ>4ٿVw>C տ/N=>C}Fҿ=|Mѿ#C}Fҿ̽C տ/N=4ٿVw x޿ۅVwㄋ)/N=1[̽qȍ꿕{]1[=ㄋ)/N=>Vw>FJq9!ۅ>PkVw>sgѦ/N=>od=`c#od̽sgѦ/N=PkVwFJq9!ۅ=vH$Vw {V'/N=$~5)̽3\*{]$~5)= {V'/N=>=vH$Vw>M3MM3Mۅ>2H2HVw>DD/N=>DBDB=j^Aj^A#DBDB̽DD/N=2H2HVwM3MM3MۅhQhQVw U U/N=!X!X̽0Y0Y{]!X!X= U U/N=>hQhQVw>9!FJqۅ>PkVw>Ѧsg/N=>od=`c#od̽Ѧsg/N=PkVw9!FJqۅH$=vVwV' {/N=5)$~̽\*3{]5)$~=V' {/N=>H$=vVw>x޿ ۅ>4ٿVw>C տ/N=>FҿC}=Mѿ|#FҿC}̽C տ/N=4ٿVwx޿ ۅVw)ㄋ/N=[1̽qȍ{][1=)ㄋ/N=>Vw>iubOۅ>:v]+Vw>9Y)/N=>0eVϺ=fU#0eVϺ̽9Y)/N=:v]+VwiubOۅtg]sVw k/N=n3̽o{]n3= k/N=>tg]sVw>Zp=ۅ>:jVw>Jf./N=>`Jc^=y`uLVw>iub?Oۅ>:v]?+Vw>9Y?)/N=>0eV?Ϻ=fU?#0eV?Ϻ̽9Y?)/N=:v]?+Vwiub?Oۅtg?]sVw k?/N=n?3̽o?{]n?3= k?/N=>tg?]sVw>x? ۅ>4?Vw>C ?/N=>F?C}=M?|#F?C}̽C ?/N=4?Vwx? ۅ?Vw)?ㄋ/N=[?1̽?qȍ{][?1=)?ㄋ/N=>?Vw>9!@FJqۅ>@PkVw>Ѧ@sg/N=>@od=@`c#@od̽Ѧ@sg/N=@PkVw9!@FJqۅH$@=vVwV'@ {/N=5)@$~̽\*@3{]5)@$~=V'@ {/N=>H$@=vVw>M3M@M3Mۅ>2H@2HVw>D@D/N=>DB@DB=j^A@j^A#DB@DB̽D@D/N=2H@2HVwM3M@M3MۅhQ@hQVw U@ U/N=!X@!X̽0Y@0Y{]!X@!X= U@ U/N=>hQ@hQVw>FJq@9!ۅ>Pk@Vw>sg@Ѧ/N=>od@=`c@#od@̽sg@Ѧ/N=Pk@VwFJq@9!ۅ=v@H$Vw {@V'/N=$~@5)̽3@\*{]$~@5)= {@V'/N=>=v@H$Vw> @x޿ۅ>@4ٿVw>@C տ/N=>C}@Fҿ=|@Mѿ#C}@Fҿ̽@C տ/N=@4ٿVw @x޿ۅ@Vwㄋ@)/N=1@[̽qȍ@꿕{]1@[=ㄋ@)/N=>@Vw>O@iubۅ>+@:v]Vw>)@9Y/N=>Ϻ@0eV=@fU#Ϻ@0eV̽)@9Y/N=+@:v]VwO@iubۅ]s@tgVw@ k/N=3@n̽@o{]3@n=@ k/N=>]s@tgVw> h* 6H?BJ             !!!"""###$$$%%%&&&'''((()))***+++,,,---...///  0!01!!1"12""2#23##3$34$$4%45%%5&56&&6'67''7(78((8)89))9*9:**:+:;++;,;<,,<-<=--=.=>..>/>?//? ?0 0@1@A11A2AB22B3BC33C4CD44D5DE55E6EF66F7FG77G8GH88H9HI99I:IJ::J;JK;;K<KL<<L=LM==M>MN>>N?NO??O0O@0@PAPQAAQBQRBBRCRSCCSDSTDDTETUEEUFUVFFVGVWGGWHWXHHXIXYIIYJYZJJZKZ[KK[L[\LL\M\]MM]N]^NN^O^_OO_@_P@P`Q`aQQaRabRRbSbcSScTcdTTdUdeUUeVefVVfWfgWWgXghXXhYhiYYiZijZZj[jk[[k\kl\\l]lm]]m^mn^^n_no__oPo`P`papqaaqbqrbbrcrsccsdstddtetueeufuvffvgvwggwhwxhhxixyiiyjyzjjzkz{kk{l{|ll|m|}mm}n}~nn~o~oo`p`pqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~pp                                !!!"""###$$$%%%&&&'''((()))***+++,,,---...///  0!01!!1"12""2#23##3$34$$4%45%%5&56&&6'67''7(78((8)89))9*9:**:+:;++;,;<,,<-<=--=.=>..>/>?//? ?0 0@1@A11A2AB22B3BC33C4CD44D5DE55E6EF66F7FG77G8GH88H9HI99I:IJ::J;JK;;K<KL<<L=LM==M>MN>>N?NO??O0O@0@PAPQAAQBQRBBRCRSCCSDSTDDTETUEEUFUVFFVGVWGGWHWXHHXIXYIIYJYZJJZKZ[KK[L[\LL\M\]MM]N]^NN^O^_OO_@_P@P`Q`aQQaRabRRbSbcSScTcdTTdUdeUUeVefVVfWfgWWgXghXXhYhiYYiZijZZj[jk[[k\kl\\l]lm]]m^mn^^n_no__oPo`P`papqaaqbqrbbrcrsccsdstddtetueeufuvffvgvwggwhwxhhxixyiiyjyzjjzkz{kk{l{|ll|m|}mm}n}~nn~o~oo`p`pqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~pp           8{EE%D7[              !""###$$$%%%&&&'''((()))***+++,,,---...///00 01 1!12!"3#34##4$45$$5%56%%6&67&&7'78''8(89((9)9:)):*:;**;+;<++<,<=,,=-=>-->.>?..?/?@//@0@A00A1AB11B2BC23D4DE44E5EF55F6FG66G7GH77H8HI88I9IJ99J:JK::K;KL;;L<LM<<M=MN==N>NO>>O?OP??P@PQ@@QAQRAARBRSBBSCSTCDUEUVEEVFVWFFWGWXGGXHXYHHYIYZIIZJZ[JJ[K[\KK\L\]LL]M]^MM^N^_NN_O_`OO`P`aPPaQabQQbRbcRRcScdSSdTdeTUfVfgVVgWghWWhXhiXXiYijYYjZjkZZk[kl[[l\lm\\m]mn]]n^no^^o_op__p`pq``qaqraarbrsbbscstcctdtuddueuvefwgwxggxhxyhhyiyziizjz{jj{k{|kk|l|}ll}m}~mm~n~nnooopppqqqrrrssstttuuuvvwxxxyyyzzz{{{|||}}}~~~                               !!"""###$$$%%%&&&'''((()))***+++,,,---...///00 01 !2"23""3#34##4$45$$5%56%%6&67&&7'78''8(89((9)9:)):*:;**;+;<++<,<=,,=-=>-->.>?..?/?@//@0@A00A1AB12C3CD33D4DE44E5EF55F6FG66G7GH77H8HI88I9IJ99J:JK::K;KL;;L<LM<<M=MN==N>NO>>O?OP??P@PQ@@QAQRAARBRSBCTDTUDDUEUVEEVFVWFFWGWXGGXHXYHHYIYZIIZJZ[JJ[K[\KK\L\]LL]M]^MM^N^_NN_O_`OO`P`aPPaQabQQbRbcRRcScdSTeUefUUfVfgVVgWghWWhXhiXXiYijYYjZjkZZk[kl[[l\lm\\m]mn]]n^no^^o_op__p`pq``qaqraarbrsbbscstcctdtudevfvwffwgwxggxhxyhhyiyziizjz{jj{k{|kk|l|}ll}m}~mm~n~nnooopppqqqrrrssstttuuvwwwxxxyyyzzz{{{|||}}}~~~                                !!!"""###$$$%%%&&&'''((()))***+++,,,---...///0y'HNLjUb)R  !!!!!!""""""######$$$$$$%%%%%%&&&&&&''''''(((((())))))******++++++,,,,,,------......//////000000111111222222333333444444555555666666777777888888999999::::::;;;;;;<<<<<<======>>>>>>??????@@@@@@AAAAAABBBBBBCCCCCCDDDDDDEEEEEEFFFFFFGGGGGGHHHHHHIIIIIIJJJJJJKKKKKKLLLLLLMMMMMMNNNNNNOOOOOOPPPPPPQQQQQQRRRRRRSSSSSSTTTTTTUUUUUUVVVVVVWWWWWWXXXXXXYYYYYYZZZZZZ[[[[[[\\\\\\]]]]]]^^^^^^______``````aaaaaabbbbbbccccccddddddeeeeeeffffffgggggghhhhhhiiiiiijjjjjjkkkkkkllllllmmmmmmnnnnnnooooooppppppqqqqqqrrrrrrssssssttttttuuuuuuvvvvvvwwwwwwxxxxxxyyyyyyzzzzzz{{{{{{||||||}}}}}}~~~~~~                                    !!!!!!""""""######$$$$$$%%%%%%&&&&&&''''''(((((())))))******++++++,,,,,,------......//////000000111111222222333333444444555555666666777777888888999999::::::;;;;;;<<<<<<======>>>>>>??????@@@@@@AAAAAABBBBBBCCCCCCDDDDDDEEEEEEFFFFFFGGGGGGHHHHHHIIIIIIJJJJJJKKKKKKLLLLLLMMMMMMNNNNNNOOOOOOPPPPPPQQQQQQRRRRRRSSSSSSTTTTTTUUUUUUVVVVVVWWWWWWXXXXXXYYYYYYZZZZZZ[[[[[[\\\\\\]]]]]]^^^^^^______``````aaaaaabbbbbbccccccddddddeeeeeeffffffgggggghhhhhhiiiiiijjjjjjkkkkkkllllllmmmmmmnnnnnnooooooppppppqqqqqqrrrrrrssssssttttttuuuuuuvvvvvvwwwwwwxxxxxxyyyyyyzzzzzz{{{{{{||||||}}}}}}~~~~~~89Ig"1=>@>>>>>?? ?0?@?P?`?p??====>=@>=>=>=>=>=?=?= ?=0?=@?=P?=`?=p?=?====>=@>=>=>=>=>=?=?= ?=0?=@?=P?=`?=p?=?====>=@>=>=>=>=>=?=?= ?=0?=@?=P?=`?=p?=?>>=>>>@>>>>>>>>>>?>?> ?>0?>@?>P?>`?>p?>? > >= >> >@> >> >> >> >> >? >? > ? >0? >@? >P? >`? >p? >?@>@>=@>>@>@>@>>@>>@>>@>>@>?@>?@> ?@>0?@>@?@>P?@>`?@>p?@>?`>`>=`>>`>@>`>>`>>`>>`>>`>?`>?`> ?`>0?`>@?`>P?`>`?`>p?`>?>>=>>>@>>>>>>>>>>?>?> ?>0?>@?>P?>`?>p?>?>>=>>>@>>>>>>>>>>?>?> ?>0?>@?>P?>`?>p?>?>>=>>>@>>>>>>>>>>?>?> ?>0?>@?>P?>`?>p?>?>>=>>>@>>>>>>>>>>?>?> ?>0?>@?>P?>`?>p?>?>>=>>>@>>>>>>>>>>?>?> ?>0?>@?>P?>`?>p?>?>>=>>>@>>>>>>>>>>?>?> ?>0?>@?>P?>`?>p?>?>>=>>>@>>>>>>>>>>?>?> ?>0?>@?>P?>`?>p?>?>>=>>>@>>>>>>>>>>?>?> ?>0?>@?>P?>`?>p?>???=?>?@>?>?>?>?>????? ??0??@??P??`??p?????=?>?@>?>?>?>?>????? ??0??@??P??`??p?????=?>?@>?>?>?>?>????? ??0??@??P??`??p?????=?>?@>?>?>?>?>????? ??0??@??P??`??p??? ? ?= ?> ?@> ?> ?> ?> ?> ?? ?? ? ? ?0? ?@? ?P? ?`? ?p? ??(?(?=(?>(?@>(?>(?>(?>(?>(??(??(? ?(?0?(?@?(?P?(?`?(?p?(??0?0?=0?>0?@>0?>0?>0?>0?>0??0??0? ?0?0?0?@?0?P?0?`?0?p?0??8?8?=8?>8?@>8?>8?>8?>8?>8??8??8? ?8?0?8?@?8?P?8?`?8?p?8??@?@?=@?>@?@>@?>@?>@?>@?>@??@??@? ?@?0?@?@?@?P?@?`?@?p?@??H?H?=H?>H?@>H?>H?>H?>H?>H??H??H? ?H?0?H?@?H?P?H?`?H?p?H??P?P?=P?>P?@>P?>P?>P?>P?>P??P??P? ?P?0?P?@?P?P?P?`?P?p?P??X?X?=X?>X?@>X?>X?>X?>X?>X??X??X? ?X?0?X?@?X?P?X?`?X?p?X??`?`?=`?>`?@>`?>`?>`?>`?>`??`??`? ?`?0?`?@?`?P?`?`?`?p?`??h?h?=h?>h?@>h?>h?>h?>h?>h??h??h? ?h?0?h?@?h?P?h?`?h?p?h??p?p?=p?>p?@>p?>p?>p?>p?>p??p??p? ?p?0?p?@?p?P?p?`?p?p?p??x?x?=x?>x?@>x?>x?>x?>x?>x??x??x? ?x?0?x?@?x?P?x?`?x?p?x????=?>?@>?>?>?>?>????? ??0??@??P??`??p???ZpߘHXOXG`{?{X_ɉT?^%T(h ?yĽF>yĽF^%T(h {W_ɉTZG`{vG>`<{j?_=ՉT^%T?'=i y?=Fy?=F>^%T?'=i ?j?_=։T?tG>`<{?J@ i{?[%ʉT?NK߅wb ?BPpˑF>BPpˑFOK߅wa ]%ʉTJ@ i{@>2 i={J?%>׉TGK?߅w>l @Pp?ˑ>F@Pp?ˑ>F>FK?w>l ?I?%>׉T?@>/ i={?1{8{?ΉT?Vfy]쾯FV8={>>ȉTQp dy]?>Fdy]?>F>Qo ?>>ljT?1>8={?%{?Dܾ͉T?$0<o ?B2PF>B3PF$0<n BܾΉT%{ %>ߥ={N>>ˉT$?<<?U B?-P?/FB?/P?$F>$?<<?U ?R>>ljT?%>ߥ={?%{?DܾΉT?1<$m ?3PB{F>4PBzF0<$m @ܾΉT%{ۥ= %>{>W>ƉT9<?$?Z .P?B?F/P?B?*F>9<?$?Z ?>T>ƉT?ޥ= %>{?z81{?ωT?FȾVfy]FFȾV{>>ȉT>>Rcy]?F>dy]?F>?>S>ɉT?8=1>{? iK@{?%\ʉT?wPK` ?ˑ@PpF>ˑBPpF߅wNKb %[ʉT iK@{/ i=@>{%>J?؉Tޅw>DK?n ˑ>@Pp?Fˑ>@Pp?F>߅w>FK?m ?%>K?։T?0 i=@>{?`WG{?Z_|ʉT?(^%Th ?ĽyF>ĽyF(]%Th Z_|ʉT`WG{`{ _=j?։T'=^%T?i =y?F=y?F>'=^%T?i ? _=j?։T?`{?`=yF(=^%Th W_={ɉT`{ _k?։T'^%T?i Ľy?FĽy?F>'^%T?i ?_j?։T?`tG>{? i=J@{?%>[ʉT?߅w>NKb ?ˑ>@PpF>ˑ>APpF߅w>OKa %>]ʉT i=J@{2 i@>{%J?։TޅwFK?j ˑ@Pp?Fˑ@Pp?F>wFK?l ?%I?׉T?1 i@>{?y8=1{?>ΉT?F>Vdy]F>>fy]FF>VωTx8=1{81>{>ȉT>ȾQ>ȾQʉT?81>{?=%{?>BܾΉT?2<?$m ?3P?BF>3P?BF0<?$n >BܾΉT=%{ߥ %>{V>ƉT:<$?Y .PB?#F/PB?F>:<$?Z ?V>ƉT?ߥ %>{?%>{?D>ΉT?$?1<m ?B?4PF>B?4PzF$?0<m @>ΉT%>{ %ޥ={Tܾ>ƉT$9<?Z B.P?FB/P?*F>$9<?Z ?Tܾ>ƉT? %ޥ={?1>z8{?>ωT?Vfy]?쾶FVЉT1>{8{18={>ȉTR<>>o cy]>Fdy]>F>R<=>n ?>ɉT?18={?K@> i{?\?%ʉT?NK?ޅw_ ?BPp?ˑF>BPp?ˑFNK?߅wb [?%ʉTK@> i{@. i={I%>։TDKޅw>n @Ppˑ>F@Ppˑ>F>FK߅w>m ?K%>։T?@0 i={?WG>`{?|?Z_ʉT?^%T?(h ?y?ĽF>y?ĽF]%T?(h |?Z_ʉTWG>`{tG`<{j _=։T^%T'=i y=Fy=F>^%T'=i ?j _=։T?vG`<{?XG>`<{?{?X_=ɉT?^%T?(=h ?y?=F>y?=F^%T?(=h {?W_=ɉTZG>`<{vG`{j_ՉT^%T'i yĽFyĽF>^%T'i ?j_։T?tG`{?J@> i={?[?%>ʉT?NK?߅w>b ?BPp?ˑ>F>BPp?ˑ>FOK?߅w>a ]?%>ʉTJ@> i={@2 i{J%׉TGK߅wl @PpˑF@PpˑF>FKwl ?I%׉T?@/ i{?1>{8={?>>ΉT?Vh ?fy]?>F>fy]?>FVg >>ωT1>x8={18{ȉTQQ={?B>>ΉT?$?2<?m ?B?3P?F>B?3P?F$?0<?n B>>ΉT%>={ %ߥ{VܾƉT$:<Y B.P#FB/PF>$:<Z ?VܾƉT? %ߥ{?=%>{?>D>ΉT?1<?$?m ?4P?B?F>4P?B?zF0<?$?m >@>ΉT=%>{ޥ %{TܾƉT9<$Z .PBF/PB*F>9<$Z ?TܾƉT?ޥ %{?z8=1>{?>>ωT?F>Vfy]?F>>fy]?FF>V>ЉT{8=1>{81{ȉT>ȾR=ȾR{?%>\?ʉT?ޅw>NK?_ ?ˑ>BPp?F>ˑ>BPp?F߅w>NK?b %>[?ʉT i=K@>{. i@{%I։TޅwDKn ˑ@PpFˑ@PpF>߅wFKm ?%K։T?0 i@{?`{?Z_=|?ʉT?(=^%T?h ?=y?F>=y?F(=]%T?h Z_=|?ʉT`{`tG{ _j։T'^%Ti ĽyFĽyF>'^%Ti ? _j։T?`vG{?`XG>{?X_{?ɉT?(^%T?h ?Ľy?F>Ľy?F(^%T?h W_{?ɉT`ZG>{`'=^%Ti ?_=j։T?`{?%[?ʉT?߅wNK?b ?ˑBPp?F>ˑBPp?F߅wOK?a %]?ʉT iJ@>{2 i=@{%>J׉T߅w>GKl ˑ>@PpFˑ>@PpF>w>FKl ?%>I׉T?/ i=@{?{81>{?>ΉT?FȾVfy]?FFȾVωTx81>{8=1{>ȉT?>Q

dy]F>dy]F>?>QljT?8=1{?%>{?B>ΉT?2<$?m ?3PB?F>3PB?F0<$?n B>ΉT%>{ߥ= %{>VܾƉT:<?$Y .P?B#F/P?BF>:<?$Z ?>VܾƉT?ߥ= %{?%={?Dܾ>ΉT?$1<?m ?B4P?F>B4P?zF$0<?m @ܾ>ΉT%={ %>ޥ{T>ƉT$?9<Z B?.PFB?/P*F>$?9<Z ?T>ƉT? %>ޥ{?1z8={?>ωT?Vg ?fy]>F>fy]>FVh >ЉT1{8={1>8{>ȉTRȾo cy]?Fdy]?F>RɉT?1>8{?K@ i={?\%>ʉT?NKޅw>_ ?BPpˑ>F>BPpˑ>FNK߅w>b [%>ʉTK@ i={@>. i{I?%։TDK?ޅwn @Pp?ˑF@Pp?ˑF>FK?߅wm ?K?%։T?@>0 i{?WG`<{?|Z_=ʉT?^%T(=h ?y=F>y=F]%T(=h |Z_=ʉTWG`<{tG>`{j? _։T^%T?'i y?ĽFy?ĽF>^%T?'i ?j? _։T?vG>`{?׊;Jf|ڢWAG~ÁM{ 9_[`^02eE{|@B????<ĠF姁J]tveDCE`"IWJ& mG[ `^02eE{|@BN dlW?dlWN ?@Ҋ>?4HFh-F׵Ԃ(t Joint%XҴ .;]kI 忞@"4W}@O{$x!YݫK^BUݫK^BU Joint"Joint parameters jh/L/VV׬ rcAۏOrcAۏOTag(Joint semantics tagYH3(XFҦV"I~O ,LJO ,LJ Bone4Parent bone for the joint DZ5 O*\p -1OSM n"` -5bACuۚ-5bACuۚ Size$Joint size factorYWAG$cPJpY `CG%S;>Y `CG%S;>AngSprZ*Z angle limit spreadYc.*ÿ@;f.*ÿ@;fAngCntX*X angle limit centerY0+Z׾JBoͰw׾JBoͰwAngCntY*Y angle limit centerY gIR"q3gIR"q3AngCntZ*Z angle limit centerYpv xf?Iq -xf?Iq -AngSprX*X angle limit spreadYh4@:WvZD,@:WvZD,AngSprY*Y angle limit spreadYOD}ITBK}ITBKAngStiX$X angle stiffnessYX@r<|ݔK .ǻKr<|ݔK .ǻKAngStiY$Y angle stiffnessYߗ te6N'te6N'AngStiZ$Z angle stiffnessY^@BI zzBI zzAngDamX X angle dampingYX'7=B;;'7=B;;AngDamY Y angle dampingYy/6zsMf6 /6zsMf6 AngDamZ Z angle dampingY:6[v!D6[v!DMovMinX2X movement limit minimumY# @N1vx @N1vxMovMinY2Y movement limit minimumYoﶌWMS'ﶌWMS'MovMinZ2Z movement limit minimumY3 avE/b+ avE/b+ MovMaxX2X movement limit maximumY0ȏ u'eDguu'eDguMovMaxY2Y movement limit maximumY 'R<&d@ d|R<&d@ d|MovMaxZ2Z movement limit maximumY.!lMp[msd!lMp[msdMovStiX*X movement stiffnessYX/~Nc>I=ܯ~Nc>I=ܯMovStiY*Y movement stiffnessYhe гh@jгh@jMovStiZ*Z movement stiffnessYt bb Bu4Ǫ/bb Bu4Ǫ/MovDamX&X movement dampingY@g^0A p Yg^0A p YMovDamY&Y movement dampingYX#(roACp"G,1(roACp"G,1MovDamZ&Z movement dampingY@1 0_BEP1@0_BEP1@"SklMatrix@Skeleton space transform matrix `^02eE{|@"89<ĠF姁J]Dc׊;Jf|ڢBpd'kJ^U*d'kJ^U*Symmetry2Joint semantics symmetry :KrbSxY#bb Bu4Ǫ/? @N1vxg^0A p Y?6[v!DrcAۏO'7=B;;?gIR"q3.*ÿ@;fO ,LJavE/b+ (XFҦV>g'JNjn*pFD(k@ j@?@:WvZD,4C׾JBoͰwd'kJ^U*:KrbSx8 right left right׊;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=ܯ?!lMp[msd?-1OSM n 럆L<_ї3. GFʠN=00@$}}MinZ`Ez]UO GFʠN=@0P$}}MaxZ`Ez]UO GFʠN=`0p*}} StiffnessZ`Ez]UO GFʠN= 00)}}PositionZ`Ez]UO GFʠN=P0`(}}DampingZ`Ez]UO GFʠN=@9 }}Limb tagrcAۏOZ`Ez]UO1釥GP>a@<rcAۏOZ`Ez]UO GFʠN=@ 1 }}d'kJ^U*Z`Ez]UO GFʠN= 1 }}-5bACuۚZ`Ez]UO1釥GP>a <8-5bACuۚZ`Ez]UO GFʠN=p0)}}RotationZ`Ez]UO GFʠN=0 h0"}}XZ`Ez]UO GFʠN=h 0"}}YZ`Ez]UO GFʠN= 0"}}ZZ`Ez]UO GFʠN=0ph"}}XZ`Ez]UO GFʠN=hp"}}YZ`Ez]UO GFʠN=p"}}ZZ`Ez]UO GFʠN=0'}}CenterZ`Ez]UO GFʠN=0'}}SpreadZ`Ez]UO GFʠN=0(}}DampingZ`Ez]UO GFʠN=0*}} StiffnessZ`Ez]UO1釥GP>a00h@<86[v!DZ`Ez]UO1釥GP>ah0@<8 @N1vxZ`Ez]UO1釥GP>a0@<8ﶌWMS'Z`Ez]UO1釥GP>a0@hP<8avE/b+ Z`Ez]UO1釥GP>ah@P<8u'eDguZ`Ez]UO1釥GP>a@P<8R<&d@ d|Z`Ez]UO1釥GP>a0Ph`<8bb Bu4Ǫ/Z`Ez]UO1釥GP>ahP`<8g^0A p YZ`Ez]UO1釥GP>aP`<8(roACp"G,1Z`Ez]UO1釥GP>a0`hp<8!lMp[msdZ`Ez]UO1釥GP>ah`p<8~Nc>I=ܯZ`Ez]UO1釥GP>a`p<8гh@jZ`Ez]UO1釥GP>a0h<8.*ÿ@;fZ`Ez]UO1釥GP>ah<8׾JBoͰwZ`Ez]UO1釥GP>a<8gIR"q3Z`Ez]UO1釥GP>a0h<8xf?Iq -Z`Ez]UO1釥GP>ah<8@:WvZD,Z`Ez]UO1釥GP>a<8Y `CG%S;>Z`Ez]UO1釥GP>a0h<8BI zzZ`Ez]UO1釥GP>ah<8'7=B;;Z`Ez]UO1釥GP>a<8/6zsMf6 Z`Ez]UO1釥GP>a0h<8}ITBKZ`Ez]UO1釥GP>ah<8r<|ݔK .ǻKZ`Ez]UO1釥GP>a<8te6N'Z`Ez]UOnevG4'@ XJd'kJ^U*right leftZ`Ez]UOR<&d@ d|^@ﶌWMS'^@/6zsMf6 ?ݫK^BUгh@j?u'eDgur<|ݔK .ǻK?oQbKl&.ʹCGUܩH4;e Bone P..;]kI 忞@"&H4W}@O{$x!y.(ѻD3Ϳ.(ѻD3Ϳ RootHRoot joint. Attach to parent joint. jh/L/VVh" g!Jg!J Bone Bone parameters DZ5 O*\K IbEM K1gIbEM K1g MassBone massh" Ш"Ydg'JNjn*pF2DCb@@X@?g!J׊;Jf|ڢ`^02eE{|@B??o:?IbEM K1g?0_BEP1@`^02eE{|@Bx99]"'?@*RQ??@>')x%@i@>?ۻJfHkG/.(ѻD3Ϳ"Ydq\7LO#q\7LO#Pos color(Position lock color -n,Njlpg /' 4h6>"IM6 Ex>"IM6 ExRot color(Rotation lock color -n,Njlpg 4LƒsF2ƒsF2Dynamic LocksLSet of active locks for dynamic tools u|H '$Dg(IДl/(IДl/Show locksShow IK locks 0$ 4h /'a#G @=^V("'a#G @=^V("Show handlesShow handles А: 48w`ZL. 5w`ZL. 5Show structure>Show skeleton joints and bones xA 4>"IM6 Ex-n,Njlpg%?>h>? 6Jѳ( S $hKnPSVmw`ZL. 5 'a#G @=^V(" 偢jD%~`8m6EfH-n,Njlpg???~?JmCb4IP}K^:KrbSxSolid defaultSolid diamondWire diamondWire thinSolid defaultd_@ cB8E(XFҦV>g'JNjn*pFDCk@ a@CC?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??l׭ 9|47m2O lX#Transforml<ĠF姁J]DtHx SWAGPx H偢jD%~`8B _x ׊;Jf|ڢBxvoȻ.sp4W}@O{$9 0N (XFҦV"hu-1OSM n"偢jD%~`8(XFҦV>g'JNjn*pFX@1@?׊;Jf|ڢWAG<ĠF姁J]-1OSM n 럆L<_ї(qU F3f4o2Object Render Attributes~pS $hKnPSVm(?l8Ns2]8Ns2] Surface Opacity Surface Opacity~pH^mګA~Ksi[^mګA~Ksi[Points opacityPoints opacity~p4(lrsGr(lrsGrPoints Size>Point Size in Point rendering.~py\Eh{5\Eh{5Points ColorLColor of points during the rendering. -n,Njlpg~pv"PbEGDߗr"PbEGDߗr0Ignore mesh point color0Ignore mesh point color ~p@;F?N dF?N d.Ignore mesh point size.Ignore mesh point size ~p@G]*qBCx]*qBCxEdges opacityEdges opacity~p\J:I%7u\J:I%7uEdges ColorEdges Color -n,Njlpg~p+piA޲1rIK>XiA޲1rIK>X0Ignore mesh edges color0Ignore mesh edges color ~p2,ot"AaY,ot"AaY$Show hidden lines`Do not use ZBuffer in point and wireframe modes ~pNg^RI8ÿR^RI8ÿRShow backfaceslEnable two-sided rendering when Color mode is enabled ~p(YçwH5#VçwH5#V0Ignore layer attributesvDo not combine render attributes with layer defined values ~pp=4W}@O{%9 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:l׭ Skeleton root [|BL=ew!4BL=ew!4TagSkeleton tag@ w8(~ .0F $1LӤ.0F $1LӤSymmetry$Skeleton symmetry @ w8Px0_BEP1@"Ȼ.WAGx ]׊;Jf|ڢB@ wݫK^BU@a8d_@ cB8EJp<ĠF姁J]Dx4W}@O{$9 `(XFҦV"}-1OSM n" d_@ cB8E(XFҦV>g'JNjn*pFX@1@?BL=ew!4׊;Jf|ڢ`^02eE{|@B??n͵n5?2#|Z?0_BEP1@`^02eE{|@B??n͵n5?2#|Z?WAG.0F $1LӤ <ĠF姁J]`^02eE{|@B??n͵n5?2#|Z?-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=t$Skeleton material{.;]kI 忞@"d8 0o:6@v1@3NS%4W}@O{$9 s .F_P#.F_P#Material Output material __W8E#(W `# U@Ra.g1՞'fA5-_X -1OSM n"N (XFҦVLE2Data, 1"$HJ@#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;]2oMaterial .F_P#.F_P#Material Output material __W8E#(s pXS^M~b 8L 5OD.GWf5 ! qΤIGGI0_  Pe ,S@vTV pзVJil d4W}@O{${sU@Ra.Xa-1OSM n"H(XFҦVLE2Data, 1"@zkF_VertexShader | t@*Nt@*N Constant_shader Constant shader QVO Pk@ P'<;vHw  0S̤@+R ,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|lShaderInput8:?ڵfA'7(x:%dLrQn0p@ XK<piDM7x?^@A툷޻ p1M@o=y}E[2CV)`? u `MOWIB"ѥ0Ѵ $HtO{/(H+z qQ@Rjr ҥY@e&h B_;OKFJ*r(>=HRSEpFCs~__um1CR¬5`ٻzEuS@SSaI7֏b8 4W}@O{${%%u5E b05-1OSM n"W(XFҦVLE2Data, 1"pMy"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ڳ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& ]&InputFloatz+kCY5]BtO8~J(#4(#4uM@n;LAA 8~J\/3Kf͈,@ GqiFE0IN (#40o:4W}@O{${b=%%u5E bO-1OSM n"xl(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<_ї(]IDjdc8InputColorq"uI̎4)]8Phvhv\PtIL;I1h*m8Pq\W D ɭݨGqiFE0IN hv64W}@O{${h%%u5E b/-1OSM n">q(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 x}YP)\Fvq3`? :6~KAMy 7sh*mR]JĀ7hv 7sA vJ ~~(#4 7s0Ѵ $&*2HӁdńu  7sp@ Z[G {/,x: 7sh zE%Sf  7sw!XCL(>= 7s 7s B#A)[(dw @v14W}@O{%{\%%u5E bPsD-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{o$0ShaderModel0_ qΤIGGI! w C/-~CxrE 7s0_ @34W}@O{${ H%%u5E b -1OSM n"8LA(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;WlShaderAlpha8LS^M~b pXr ;MF~B;MF~B Alpha$Input alpha brick F 1+5?N>/H+z8LN4W}@O{${hq%%u5E b-1OSM n"n(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>zV|."Skeleton display:D x&:D x&SkeletonSkeleton [}Nj28@rv[IL'KIU@rjv 6Jѳ(h9 @r8] oJmCb4IP}K^U@r8]an1LH_rՀ@r8]PWm6EfHP @r8] /'q\7LO#H>@r8] >"IM6 Exh6@r8]졉E/~ݾ '@r8]0$(IДl/Dg@rА:'a#G @=^V("h /@rxAw`ZL. 58@r@rtveDCE`"IWJBh 8] 2"IM6 Ex 6Jѳ( w`ZL. 5 'a#G @=^V(" m6EfHJmCb4IP}K^(XFҦV>g'JNjn*pFX@>@? 2H8 .*ÿ@;fH`d|׾JBoͰwHP<gIR"q3Hx-<xf?Iq -Hw<@:WvZD,H<}ITBKH1r<|ݔK .ǻKHwXte6N'HP~BI zzHȋw'7=B;;HI /6zsMf6 Hxw86[v!DH  @N1vxH ﶌWMS'H avE/b+ HYu'eDguHvR<&d@ d|H>!lMp[msdHpӤ ~Nc>I=ܯHEгh@jHxJYbb Bu4Ǫ/H\g^0A p YHC(roACp"G,1Hxo0_BEP1@"i<ĠF姁J]DH5׊;Jf|ڢBBe(XFҦV"#bb Bu4Ǫ/? @N1vxg^0A p Y?6[v!DrcAۏO'7=B;;?gIR"q3.*ÿ@;fO ,LJ(XFҦV>g'JNjn*pF Db@@?avE/b+ @:WvZD,4C׾JBoͰw׊;Jf|ڢ(roACp"G,1?BI zz?Y `CG%S;>4Cd'kJ^U*:KrbSx8 right left right0_BEP1@`^02eE{|@B??n͵n5?2#|Z?xf?Iq -4CWAG`^02eE{|@B??n͵n5?2#|Z?-5bACuۚ>te6N'?}ITBK?<ĠF姁J]`^02eE{|@B????~Nc>I=ܯ?!lMp[msd?-1OSM n 럆L<_ї3. GFʠN=00@$}}MinZ`Ez]UO GFʠN=@0P$}}MaxZ`Ez]UO GFʠN=`0p*}} StiffnessZ`Ez]UO GFʠN= 00)}}PositionZ`Ez]UO GFʠN=P0`(}}DampingZ`Ez]UO GFʠN=@9 }}Limb tagrcAۏOZ`Ez]UO1釥GP>a@<rcAۏOZ`Ez]UO GFʠN=@ 1 }}d'kJ^U*Z`Ez]UO GFʠN= 1 }}-5bACuۚZ`Ez]UO1釥GP>a <8-5bACuۚZ`Ez]UO GFʠN=p0)}}RotationZ`Ez]UO GFʠN=0 h0"}}XZ`Ez]UO GFʠN=h 0"}}YZ`Ez]UO GFʠN= 0"}}ZZ`Ez]UO GFʠN=0ph"}}XZ`Ez]UO GFʠN=hp"}}YZ`Ez]UO GFʠN=p"}}ZZ`Ez]UO GFʠN=0'}}CenterZ`Ez]UO GFʠN=0'}}SpreadZ`Ez]UO GFʠN=0(}}DampingZ`Ez]UO GFʠN=0*}} StiffnessZ`Ez]UO1釥GP>a00h@<86[v!DZ`Ez]UO1釥GP>ah0@<8 @N1vxZ`Ez]UO1釥GP>a0@<8ﶌWMS'Z`Ez]UO1釥GP>a0@hP<8avE/b+ Z`Ez]UO1釥GP>ah@P<8u'eDguZ`Ez]UO1釥GP>a@P<8R<&d@ d|Z`Ez]UO1釥GP>a0Ph`<8bb Bu4Ǫ/Z`Ez]UO1釥GP>ahP`<8g^0A p YZ`Ez]UO1釥GP>aP`<8(roACp"G,1Z`Ez]UO1釥GP>a0`hp<8!lMp[msdZ`Ez]UO1釥GP>ah`p<8~Nc>I=ܯZ`Ez]UO1釥GP>a`p<8гh@jZ`Ez]UO1釥GP>a0h<8.*ÿ@;fZ`Ez]UO1釥GP>ah<8׾JBoͰwZ`Ez]UO1釥GP>a<8gIR"q3Z`Ez]UO1釥GP>a0h<8xf?Iq -Z`Ez]UO1釥GP>ah<8@:WvZD,Z`Ez]UO1釥GP>a<8Y `CG%S;>Z`Ez]UO1釥GP>a0h<8BI zzZ`Ez]UO1釥GP>ah<8'7=B;;Z`Ez]UO1釥GP>a<8/6zsMf6 Z`Ez]UO1釥GP>a0h<8}ITBKZ`Ez]UO1釥GP>ah<8r<|ݔK .ǻKZ`Ez]UO1釥GP>a<8te6N'Z`Ez]UOnevG4'@ XJd'kJ^U*right leftZ`Ez]UOR<&d@ d|[AﶌWMS'[A/6zsMf6 ?ݫK^BUгh@j?u'eDgur<|ݔK .ǻK?ÖOKN1CGUܩHMyBone 0 .;]kI 忞@" 4W}@O{$9 @a.(ѻD3Ϳ@ wag!J05IbEM K1ga "Ydg'JNjn*pF^CBX@1@?g!J׊;Jf|ڢ`^02eE{|@B??n͵H\0n:2#|Z?IbEM K1g?0_BEP1@`^02eE{|@B??n͵n5?2#|Z?ۻJfHkG/.(ѻD3Ϳ"Yd