BLENDER_v248REND TSceneGLOB H 0xSRx7SSR1-Animation(pR X H (x DATA(pR  ץ DATA ץ ե (pR DATAե ӥ ץ  DATAӥ Х ե DATAХ Υ ӥ DATAΥ ̥ Х DATḀ ʥ Υ DATAʥ ȥ ̥ DATAȥ ƥ ʥ DATAƥ ĥ ȥ DATAĥ ¥ ƥ DATA¥ p ĥ DATAp X ¥ DATAX p DATAH 8 ե ץ DATA8 ( H (pR ӥ DATA(  8 Υ ץ DATA  ( ̥ ե DATA   ̥ Υ DATA 该  ʥ Х DATA该 ح ȥ ̥ DATAح ȫ 该 ȥ ʥ DATAȫ  ح ̥ Х DATA  ȫ (pR ƥ DATA  ĥ Х DATA  ĥ ӥ DATA x ĥ ƥ DATAx ` ¥ ʥ DATA` P x p Υ DATAP @ ` p ȥ DATA@ 0 P p ¥ DATA0  @ X ƥ DATA  0 X ĥ DATA  ¥ Х DATA   X ¥ DATA  ƥ Υ DATA  X p DATA@Z(pR ƥ ĥ ӥ OP2RGjDATAGhFLink and MaterialsEditing>DATAhFPEGMeshEditingF>DATAPE8DhFAnim settingsObject>DATA8D CPEDrawObjectF>DATA CB8DConstraintsObject>DATAB CEffectsObjectDATA@Q}BHooksObjectF>8DDATA@Q}HWParticle InteractionObject> CDATAHW@Q}SoftbodyObject> CDATAؚHWOutputRender>DATAؚiRenderRenderF>DATAijؚAnimRender>DATAjiFormatRender>DATAP2R333?V,@DhCDhCC(BDC?z?DATAP2R333?V,/9DATA@ZΥ ץ ե ̥  !  DATAxk@Z¥ p ȥ ʥ G==o?@" HmYDATATransform PropertiesView3d>DATA3D Viewport propertiesView3d>"DATA@" HmY333?V<????????G==o? A*A?G==o??????*A B??=C ݢM@ݢM@ݢM@? DATAHmY@" 333?V</9DATAxk`ʥ ȥ ̥ Х ??PףHp`vDATATransform PropertiesIpo!>DATAXp`p333?V\zC̽̌?zC@ #< #<`jFzD OBzC̽̌?DATAp% p`333?V\CC|||??l|DATA% p 333?V\zCCHBC|||?CFC= ADATA@`% 333?V\o =rttDATA@`pݺ 333?V\?zDzDBCl||ll|zDzD=HB DATApݺ@` 333?V\BzB@l|llFzD #<HB DATAvpݺ333?V\??? ???? A???PA A!O?j?}GCHB? A B? #<C DATAv333?V\/9DATA`(xkX ¥ Х ĥ  {hkx`DATAx`Link and MaterialsEditing>DATA`xMeshEditingF>DATA{p& 333?VLzCB{ µCB ?BFB= ADATAp& P' { 333?VLzCCHBC$?CFC= ADATAP' hkp& 333?VL#DhC`DpJgChCC(BDC?z?DATAhkP' 333?VL/9DATA(`ƥ Υ p X } ?=o?.H>@H0DATAH0Transform PropertiesView3d>DATA0H3D Viewport propertiesView3d>"DATAH>333?Y333?Y????????} ?=o?f?*A?} ?=o??????*A B??=C X7@X7@X7@? DATA@333?Y/9SRx>v7SSR2-Model Ќ t q J YTxDATAЌ  DATA  Ќ DATA  DATA  DATA  DATA p DATAp X~ DATAX~ H| p DATAH| 8z X~ (DATA8z (x H| (DATA(x v 8z (8DATAv t (x 8DATAt v 8DATAq o DATAo m q Ќ DATAm k o Ќ DATAk i m DATAi g k DATAg e i p DATAe c g X~ DATAc xa e X~ p DATAxa `_ c H| DATA`_ P] xa H| DATAP] @[ `_ 8z p DATA@[ 0Y P] 8z X~ DATA0Y  W @[ (x H| DATA W U 0Y (x 8z DATAU S W v X~ DATAS P U v DATAP N S v (x DATAN L P t DATAL J N t p DATAJ L t (x DATAYT[TЌ ?@Pף80n/H2(DATAPreviewLamp>DATAxLampLampF>DATAx`SpotLamp>DATA`HxTexture and InputLamp>DATAH `Map ToLamp>`DATA HPreviewMaterial>DATA MaterialMaterialF>DATA@PPreviewWorld>DATA@P(OWorldWorldF>DATA(OV@PMist Stars PhysicsWorld>DATAVU(OTexture and InputWorld>DATAUpQVMap ToWorld>VDATApQ QUOutputRender>DATA Q QpQRenderRenderF>DATA QN QAnimRender>DATANC QFormatRender>DATACNLink and MaterialsEditing>DATA0CMeshEditingF>DATA0HMesh ToolsEditing^>DATAH`0Mesh Tools 1Editing^>DATA`xHCameraEditingF>DATAx`ShadersMaterial>DATAxTextureMaterial^>DATAAnim settingsObject>DATADrawObjectF>DATAConstraintsObject>DATAScriptlinksScript>DATA EffectsObjectDATA 8Map InputMaterial>DATA8P  Map ToMaterial>DATAP h 8AnimAnim>DATAh  P SoundSound>DATA  h ListenerSoundF>DATA XR} SequencerSound>DATAXR}  ArmatureEditingF>DATA XR}RampsMaterialF>DATA Mirror TranspMaterial>DATAMist / Stars / PhysicsWorld>DATAAmb OccWorld>DATA(Shadow and SpotLamp>DATA(@ModifiersEditing>DATA@X(ShapesEditing>(DATAXp@MultiresEditing>DATApXLinks and PipelineMaterial>DATApSSSMaterial>xDATAp,Render LayersRender>pQDATAp,3|BakeRender> QDATA3|(p,StampRender>NDATA((3|Mesh Tools MoreEditing>DATA((UV CalculationEditing>XDATA8Q 333?YTR EhC(DМ hCC(BDC?z?(mDATA$Q H8333?YTDATAHTQ 333?YT??? ???? A??@PA Aj?c3>}GCHB? A B? #<C DATAT0nH333?YT Q Q Q??DATA0nT333?YTLoad Libraryfront OBJc:\muray\Scenes\RoboButterfly.blend\Object\\\cylinder3_copy4.014KvMDATA[T@pTYTp X~ | | DATA@pTxT[TH| (x v gN?1@AHM) 7) #)$7 #2n6nh| h| 4|H=DATA4|H=Transform PropertiesView3d,>DATAH=4|View PropertiesView3dT>"DATA2ny333?@pT>?}=>1#є*[2>G9&{w?(>ܵ*?9k?>?ϔ*{&}=>[2>{w?2#G9(> \A??}>;M$?1#?w H>g9?G9?GN@ہ( ?>DM~hA9kA3l?S5(8==z>P*0B8B:֟܊.l|5#v9B(@ gN?1@AHM>?}=>1#є*[2>G9&{w?(>ܵ*?9k?O2ޓ>{IA@ B??N_;=C7?X<{p@{p@{p@I<@ z<? DATAXy?S2n333?@pTzC̽̌?zC@22 #< #<`jFzD OBzC̽̌?DATA?Sx}y333?@pT 6 62 6??2DATAx}5n?S 333?@pT?zDzB@22FzD #<HB DATA5n6nx}333?@pTDdC8CnD fCC(BDC?z?DATA6n5n333?@pTLSave FileNT PICTURES/Users/ton/Desktop/umpbug Folder/ender.app/Contents/Resources/untitled.blend DATAxT@pT t (x H| w=g>o?' 7' #'$7  (x`(>nH| H| `>3DATA`>3Transform PropertiesView3d,>DATA3`>View PropertiesView3dT>"DATAx`Q 333?xT k ? DATA$Q 8nx`333?xTDATA8n9nQ 333?xTzCCHBC?CFC= ADATA9n8n333?xT????????w=g>o?{IA@@y?w=g>o??????{IA B??Y!==C7?X<r=@r=@r=@? DATAXX"9n333?xTzC̽̌?zC@22 #< #<`jFzD OBzC̽̌?DATAX"h~333?xT 6 62 6??2DATAh~=nX" 333?xT?zDzB@22FzD #<HB DATA=n(>nh~333?xTDdC8CnD fCC(BDC?z?DATA(>n=n333?xT z>Open Text Fileont OBJC:\GWeb\urbine\\der Foundation\..\der\..\tents/Resources/processing_export.py '1@`LDATAxT(x 8z X~ v R>5>o?)9)9S)T x# s$s@#@#5@ZDATA5@ZTransform PropertiesView3d,>DATA@Z5View PropertiesView3dT>"DATA s333????0=@ž.???% ??%.0=>?RoR>5̤5>o!qW?h2?W@v &v v @yy.0=>?R>5>o????0=@ž.???W@? B?=3Z<=C.?0=@ž7?X<N5>;w?pQ>l3pQ>;w??l3N5I<@ z<? f+?! >+l>DATAXS s333?zC̽̌?zC@22 #< #<`jFzD OBzC̽̌?DATAS@@333? 6 62 6??2DATA@@#sS 333??zDzB@22FzD #<HB DATA#s$s@@333?DdC8CnD fCC(BDC?z?DATA$s#s333?Save AseNT PICTURESC:\SGWeb\Turbine\umpbug Folder/ender.app/Contents/Resources/turbinetompBot2.blendADATAt p 8z (x ܋==o?'9'9S'T(x&s(-sXZ(0DATAXZ(0Transform PropertiesView3d,>DATA(0XZView PropertiesView3dT>"DATA&s0*s333?????????܋==o?DAAAy?܋==o??????DAA? B??C3==C7?X<R@R@R@I<@ z<? DATAX0*s@W&s333?zC̽̌?zC@22 #< #<`jFzD OBzC̽̌?DATA@W0A0*s333? 6 62 6??2`( +sDATA,`( +sBOp=ADATA,+s`( CS@ffxDATA0A,s@W 333??zDzB@22FzD #<HB DATA,s(-s0A333?DdC8CnD fCC(BDC?z?DATA(-s,s333?Save AseNT PICTURESC:\SGWeb\Turbine\umpbug Folder/ender.app/Contents/Resources/turbineBlade.blenddot2.blended.blendASRx>vr[SR3-Materialodel SingH - + X Rx DATAH F DATAF D H DATAD B F  DATAB p@ D DATAp@ X> B <DATAX> H< p@ <DATAH< 8: X> DATA8: (8 H< DATA(8 6 8: ,<DATA6 4 (8 ,DATA4 1 6 DATA1 / 4 ,DATA/ - 1 DATA- / DATA+ ) D F DATA) ' + B H DATA' % ) p@ H DATA% # ' X> B DATA# x! % X> p@ DATAx! ` # H< F DATA` P x! 8: D DATAP @ ` 8: H< DATA@ 0 P 8: X> DATA0   @ (8 p@ DATA   0 (8 X> DATA   6 8: DATA   6 (8 DATA   4 p@ DATA   4 H< DATA   1 6 DATA  1 (8 DATA  1 4 DATA   / 4 DATA   / 1 DATA p  - H< DATAp X  - 6 DATAX p - / DATAPH p@ X> B ?@Pף;;!xd]@1DATA@1ZOutputRender>DATAZZ@1RenderRenderF>DATAZZAnimRender>DATAZFormatRender>DATA /s333?V\~CA~CA!?AFA= ADATA /s`] 333?V\zCCHBC ?CFC= ADATA`](a] /s333?V\DhC?DhCC(BDC?z?mDATA(a]@`]333?V\??? ???? A??@PA Aj?c3>}GCHB? A B? #<C DATA@xd](a]333?V\@̌AR|B1@lA A@CC #<@DATAxd]@333?V\/9DATAP/H< F D 8:  !  DATA/P(8 6 8: X> G@? JL-=-=W-X~pf]Xl]DATApuQOutputRender>DATApuQvQRenderRender>DATAvQНpuQAnimRender0>DATAНvQFormatRenderH>DATAzНPreviewMaterial>DATAz(zMaterialMaterial>DATA(zXc}zShadersMaterial0>DATAXc}pd}(zTextureMaterialD>DATApd}`Xc}Map InputMaterial\>DATA`xpd}Map ToMaterial`>DATAx`RampsMaterial>zDATAxMirror TranspMaterialH>DATApf]g]333?VChCCvgCC(BDC?z?DATAg]j]pf]333?VJ>H!?)xu?i6>Pbܗ=(?^L?a?滎z?J>#xu?ܗ=Hi6>(? ?Pb^L?\FAA?4[?[!?@jG>gb>Pb>4Im>k&?]M^L<0@AzA=>Kc<2֍7&> ?:x¸A1vB,jB~@G@? JLJ>H!?)xu?i6>Pbܗ=(?^L?a?滎z?@?$$OA B?=Ch?j(4?t'>d DATAXj]Xl]g]333?VzC AzC A #< #<`jFzD OBDATAXl]j]333?V;SAVE FILE/usr/home/intrr/blender/blend/untitled.blendDATAR/p@ 4 1 (8 U.=w=o?+=+=W+X,XPn]8t]DATAPn]q]333?W???h?j(4?t'>????hj(4t'?U.=w=o??OA B??=Ch?j(4?t'>dEh@Eh@Eh@? DATAq]r]Pn]333?WDdC>9C,DeCC(BDC?z?DATAXr]8t]q]333?WzC AzC A #< #<`jFzD OBDATA8t]r]333?W SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATARR/ - 6 1 e?B$?AHM+++US0v]|]DATA0v]y]333?W |ݕ/?U~'?3F:?>T8165e?2>Z& 4?ߕ/?7F:?81W~>85e?'?T2>ne@>M@?4z?'''䷄?K??T?v|@?l211A 4Atp>?@@FC>G ?4xB֟&BĭeA(@e?B$?AHMݕ/?U~'?3F:?>T8165e?2>Z& 4?H?N,Z#OA B??=Ch?j(4?t'>dA@A@A@? DATAy]z]0v]333?W |DdC>9C,DeCC(BDC?z?DATAXz]|]y]333?W |zC AzC A #< #<`jFzD OBDATA|]z]333?W | SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATARR4 H< - / &=+=o?US~]]DATA~]`]333?W ?3?3:-vk(4??3?3;@k(40v@?&=PU1n;+=ꉖø;ZO{:?JXA54U0AC;@j(40v@?&=+=o??3?3:-vk(4?5?5IXA B??=C:j(4?.vdٚ@ٚ@ٚ@? DATA`]p]~]333?W DdC>9C,DeCC(BDC?z?DATAXp]]`]333?W zC AzC A #< #<`jFzD OBDATA]p]333?W SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendSRxr[ Y>vSR4-SequenceH x `ߤ } (R?\x DATAH 8 DATA8 ( H DATA(  8  DATA  ( DATA   DATA   DATA  DATA  DATA  DATA  DATA  TDATA  TDATA x DATAx  DATA`ߤ Pݤ ( 8 DATAPݤ @ۤ `ߤ  H DATA@ۤ 0٤ Pݤ  H DATA0٤  פ @ۤ  DATA פ դ 0٤  DATAդ Ӥ פ 8 DATAӤ դ ( DATA_cӤ DATA_c( DATA( _c DATA ( DATA  DATA y}  DATAy} W DATAWRYy} DATARYW DATAXRY  DATAX DATA|Xx DATA|} x DATA} |x DATA(R(RH   ]] DATA OutputRender>DATA RenderRenderF>DATAAnimRender>DATAFormatRender>DATA]]333?WDhCvDhCC(BDC?z?DATA]]333?W/9DATA(R(R 8 (  !  DATA8(R x 8=i>o? (H]DATA(333?W&~CB~CB ?BFB= ADATA](333?W&zCAzCA  A@FB= A ?DATA]H]333?W&????????8=i>o?fffAD&@??fffA B? #<C DATAH]]333?W&AVE TARGA/t1.blend9DATA8F\ 8=H>o?UUU P}]DATAP}@]333?W*zCAzCA1||1 A@FB= A ?DATA@]]P}333?W*????????8=H>o?fffA*@??fffA B? #<C DATA]@]333?W*AVE TARGA/t1.blend9DATAF\?\8 8=>o?SSST]`]DATAX]]333?W.B̽̌?B̽̌? #< #<`jFzD SQB̽̌?DATA]`]]333?W.????????8=>o?fffA@??fffA B? #<C DATA`]]333?W.OAD FILE/9DATA?\F\ x 8=i>o? T]DATATX]333?W1zCAzCA A@FB= A ?DATAX]]T333?W1????????8=i>o?fffAD&@??fffA B? #<C DATA]X]333?W1AVE TARGA/t1.blend9SRx Yr[SR5-ScriptingFQX0W8sqx DATAFFDATAFFF DATAFGF DATAGGFDATAG0 GGDATA0 GPGGDATAPG`G0 GDATA`GYPGDATAYQ`GDATAQYDATAX;RFFDATA;RERXF0 GDATAER);RFPGDATA)PER0 GPGDATAPp)G`GDATApPY0 GDATApYPGDATA`WY`GDATA`WXWG0 GDATAXWPW`WFGDATAPWHWXWQFDATAHW@WPWQGDATA@W8WHWQ`GDATA8W0W@WYQDATA0W8WGPGDATA8qq0 GFFPG !  DATA8qq8rqG0 GY`Gz==o?С] ]]]DATA]]Transform PropertiesView3d>DATA]]3D Viewport propertiesView3d>"DATAС] ]333?Y.|????????z==o?&A*A?z==o??????*A B??=C ?@?@?@? DATA ]С]333?Y.|/9DATA8rq8sq8qqQYPGG??Pף Lx`(0]]DATA]Transform PropertiesIpo!>DATAx`O 333?Y/|o> =DATAO0]x`333?Y/|CCx??|?DATAX0]QO333?Y/|zC̽̌?zC@;; #< #<`jFzD OBzC̽̌?DATAQ]0]333?Y/|CC|||??l|]]DATA,]BOp=ADATA]]Q 333?Y/|zCCHBC|||?CFC= ADATA]u] 333?Y/|?zDzDBCl||ll|zDzD=HB DATAu]] 333?Y/|BzB@l|llFzD #<HB DATA](0u333?Y/|??? ???? A???PA A!O?j?}GCHB? A B? #<C DATA(0]333?Y/|/9DATA8sq8rqFG`GQOpAB 2X@DATA 283Link and MaterialsEditing>DATA83P4 2MeshEditingF>DATAP4h583Anim settingsObject>DATAh56P4DrawObjectF>DATA67h5ConstraintsObject>DATA786EffectsObjectDATA897HooksObjectF>h5DATA9:8Particle InteractionObject>6DATA:;9SoftbodyObject>6DATA;=:OutputRender>DATA=(>;RenderRenderF>DATA(>@?=AnimRender>DATA@?X@(>FormatRender>DATAX@@?ScriptlinksScript>DATApAB333?Y0|ChC#DhCC(BDC?z?DATABpA333?Y0|/9SC`xSCScenetageainȔhY z`hY R?п@I<@ z??_?D [DATAhY zz`I8<DATAz`zhY .oDATA((0y,d'=A@DATA(tL?B ?o: ??22 2d 22 22 22 22 22 > #<=2 #< #`fff?Ou<?DATAH1 RenderLayerCA8CACameraamera.001L>DB=B B@?WOdȔxWOWorld???===??A@pA A@L= ף;>xo`DATA xo`TXx koTXprocessing_export.pyH( QYHADATAHC:\processing_export.pyDATA( Q R DATA x( Q| FREEDATAx Q  DATA Qp QxDATAp Q Q_DATA Qp Q8 DATA QP Q@DATAP Q Q QxDATA Q(P QDATA( QPzDATA(xUs.blDATAPhDATAPDATAPPDATAHDATAD32] +DATAxҤ %1] +DATAx0 E[1] DATA0xpE29-JDATA0E29-JDATAdȚ09-ADATAdd09-ADATAdXdd;09-ADATAXdddЌ09-ADATAdcXd`09-ADATAccd13-ADATAc8{cH13-ADATA8{zc29-ADATAzz8{h 29-ADATAz`zz06-FDATA`zzzd} (06-FDATAzy`z0Y(08-ODATAy(>z@Q29-JDATA(>=y8%03-NDATA==(> 11-SDATA=P==@09-JDATAP===29-JDATA=<P=xP16-SDATA<h=н04-SDATAh <~30-SDATA ؿhP13-SDATAؿ ~12-JDATAHؿ E11-SDATAH8G=24-SDATAYH` =25-FDATAYxY@~12-ADATAxY0YY~=29-JDATA0YYxYT929-JDATAYY0YpT:25-SDATAYXYYQ06-ADATAXY!YT20-JDATA!H!XY29-JDATAH!!!829-JDATA! H!29-JDATA p !ȗ16-FDATAp (  H905-FDATA( _p 907-NDATA_x_( 925-SDATAx_0__ :27-SDATA0_^x_(w29-JDATA^^0_pw11-SDATA^X^^w.uv[DATAX^h:^x--- DATAh: :X^xDATA :9h:HqZ#ton(DATA99 :)DATA9H990!11-SDATAH999<DATA984H9[}!29-JDATA8439`FREEDATA3384Pb}!25-SDATA3`338$[FREEDATA`333!18-ODATA32`3$[FREEDATA2P3R !03-SDATAP2$[FREEDATAP8R !04-SDATAx(%[FREEDATAx0Q23-SDATA0xFREEDATA0(^11-MDATAp^29-JDATAxQ $FREEDATAx0^19-DDATA0xFREEDATA0^11-SDATA_DATA_8_806-MDATA8_^_({DATA^^8_p{d3.jDATA^`^^0n(miDATA`^^{10DATAx`^hDATAx0x DATA0xDATA0R DATAXR DATAxT DATAx0 {DATA0xF}DATA0XF}DATAF}DATA@SDATA`F}DATA`hDATA`DATAzDATAzhz@DATAhz zzXNRDATA zzhzX/ DATAzz zNRDATAz zNRDATA z8ORADATA X,DATAH>S 'FREEDATAH_DATA`H((DATA`8`0DATA`( '*DATA`0DATA@x(DATA@/^@R 2DATA/^/^@)DATA/^8/^/^x-DATA8/^.^/^P:(DATA.^~ 8/^3/FREEDATA~ @.^h.)=' +DATA@|~ @-FREEDATA|@S= TeDATA|AR FREEDATAx|R % == DATA(Q;[eNamDATA(Q=RPAR 7DATA=RPR (Q`BHDATAPR =R7 C theDATApPR PpDATAp7p4DATA7np2 EDATAnn7aDATAn+ nSh+@DATA+ , nSDATA, H, + `Sh+@DATAH, / , 8 F;g>DATA/ 1 H, (? FܡDATA1 0 / p"*;g>DATA0 @2 1 qܡDATA@2 ; 0 Xq(DATA; : @2 oQ DATA: : ; SdDATA: = :  DATA= A : 8YtonHDATAA `A =  bcolDATA`A HD A #(DATAHD @F `A 8 DATA@F E HD YDATAE E @F /R DATAE hE E  DATAhE  E E X 0XDATA E D hE  DATAD G E T'DATAG xG D ^ DATAxG 0G G b DATA0G F xG Va|DATAF  0G 8P^DATA  F  0DATA  oDATA  HYDATA x  0DATAx  X MDATA  x @K DATA  K DATA P K DATAP  (L  DATA  P $/] DATA   DATA  xL DATA  8%(DATA p 8 DATAp  hDATA  p PIR %DATA  8 DATA  h/DATA  DATA  WDATA H  @9  DATAH   9 7quadDATA  P H Wure,DATAP p   DATAp   P Wmt(xDATA   p 8 0DATA    ;mverDATA   xR poinDATA    we dDATA   R DATA P  Ѝh daDATAP   ),.GetDATA  P [R $= 'CDATA x  R  objDATAx Ԥ  +.()yDATAԤ Ӥ x ne.GDATAӤ @֤ Ԥ pory DATA@֤ դ Ӥ Q $DATAդ ؤ @֤ x,*DATAؤ pޤ դ ȄR 2DATApޤ (ޤ ؤ DATA(ޤ ݤ pޤ 8-.DATAݤ ݤ (ޤ 7DATAݤ ( ݤ nDATA(  ݤ oDATA  ( ;DATA P pDATAP  DATA  P 2DATA   DATA   DATA  ` DATA  mb DATA 8  DATA8  8mb DATA H8 xnR DATAH@K} H;g>DATA@K}J}Hpf ܡDATAJ}@K} ;g>DATAZJ}R !ܡDATAZP0R ";g>DATAP`PZpmbܡDATA`PPR DATA8`PmbDATA8`XR 0;g>DATA`Hm88HS ի DATAHmxw`R &DATAxw@oHmR ffDATA@oxwR DATAw@oQ "DATAwX`(Q &DATAX`owmbmeraDATAo@X`PR DATA@oR DATA@Q( DATA@QDATAЀR trinDATAЀ`0R ADATA`U ЀxR DATAU `xQDATAU R 4| 1DATA{1DATAJR @{DATAJR |{DATA|`7JR {DATA`7x| DATAx `7QDATA Zx@inDATAZ+ ({DATA+Z8QDATA0+HDATA0pQVDATApQQ05 EDATAQQpQ( DATAQ@oQ DATA@oYQDATAYpY@opDATApYY DATA(PpYDATA(P DATA r(PDATArp  DATAprp1DATAZp_DATAZ`_DATA(ZXR $DATA(|PDATA||( DATA|`{|Q DATA`{X |@oDATAX `{_DATAX DATAH/_DATAH/- xEWDATA- 00 H/0]FDATA00 3 - 0N|DATA3 4 00 DATA4 6 3 ؝_DATA6 ; 4 HrDATA; A 6 @ oDATAA C ; @_DATAC  A DATA X C P~DATAX 0 EWDATA0 ` X `F FDATA`  0 `DATA  ` PZDATA (  8DATA(    DATA  ( DATA h  & DATAh 8Ԥ  ~2DATA8Ԥ Ӥ h DATAӤ Xؤ 8Ԥ DATAXؤ פ Ӥ hDATAפ  ڤ Xؤ 8DATA ڤ x٤ פ pSlidDATAx٤ ܤ ڤ Y/DATAܤ ۤ x٤ СDATAۤ ߤ ܤ 8u* idDATAߤ J}ۤ DATAJ}PZߤ DATAPZ.^J}8DATA.^PZS DATA .^ S "DATA 8 DATA8   HS @eDATA C 8 - xDATAC 2 ȐDATA2 . C xpDATA. 2 h] DATAF. S hDATAFPQXE AxDATAPQSFe`DATAS PQEPPDATA FS(\XDATAF  {(DATA FS PDATA(@ 0S ̄DATA(@1 S HDATA1 ( (@S ׄDATA( 1 8S @DATA8( S 8DATA8;S 1(_DATA;JR 8PR DATAJR Y;R  DATAYJR R @DATAY(R pDATAx@QpR DATAx@Q/XDATA//x@QR DATA//XxDATA/xDATApxDATAp0@xDATApxUDATAyhR paDATAy@z8DATA@zzyJR @ DATAzz@z DATAz( z6ght,DATA( p zFKDATAp  ( }&DATA  p H#DATA nR  BDATAnR oR DATAoR `oR nR   DATA`oR oR oR 0DATAoR `oR DATA؉oR pJR DATA؉ DATA h؉P DATAh !DATAPh DATAPDATAPTDATA(ЍTADATA(pTDATAp(?(  DATAp`TmtexDATA@\,DATA@8f DATAз@TDATAзe DATA@зPD @DATA@MDATAЩ@@EQDATAЩd DATA Щ@S DATA  xbDATA 8  8cDATA8    R DATA ]8 R DATA]8^ PDATA8^^]KtDATA^^8^ FDATA^^؀DATA^DATAHDATAH[DATAȲYHPbDATAȲYY[DATAYXYȲYpIyFREEDATAXYYYZFREEDATAYp XYFREEDATAp  YJFREEDATA  p OFREEDATA H  TFREEDATAH ( DATA(pH O";DATAp(PFREEDATApDATA2@B DATA22CFREEDATA232'[DATA3X32HDDATAX3Z3D$DATAZZX3X'[derDATAZ ZZDDATA ZhZZxZ0)DATAhZH ZPFREEDATAHhZ0EREEDATAHH}R 8FREEDATA xDATA  }R REEDATA h DATAh ~R putDATAhH~R DATA`ADATA`~R DATA`gTinerDATA`@s %xDATAQjR FEDATAQ؝Q`S DATA؝Q QQ؍S DATA QhQ؝Q0пDATAhQh QkR ADATAhhQ(}b DATAh8 GDATA@DATA@hPkR DATAh@@DATAhkR DATAR import BlenderDATA |import osicDATA import structEEDATAfrom Blender import *mDATA_from Blender import LampDATA$8from Blender.Scene import RenderDATA@from Blender.Draw import *DATAxfrom Blender.BGL import *DATA from Blender import RegistryDATAfrom Blender import TextDATAxU DoDATAhfrom math import *EDATA inDATA P#globalsrdDATAHGGUDATA4D#get the root directory that the current file is inDATA(Ҥ #we'll write the muray files there. EDATA Epath = Blender.Get('filename')DATApEtokens = path.split('\\')DATAEfileName = tokens.pop();DATAȚfile = fileName.split('.')DATAfileName = file[0] DATA;GShDATA Ќpath =''wsDATA`for i in tokens:er DATA path = path + i + '\\' DATAHhadDATAkyTDATAhdef export():EEDATA #open a file to export toDATA,d}  f = open(path + fileName + '.mra','wb')DATA,0Y s = open(path + fileName + '.mrb','wb')x2DATA@Q rfDATA(8 f.write('muRay scene description\n')EDATA  f.write(' ')DATA@ def writeln(out): DATA f.write(out + '\n')-ODATAxP tdDATAн def fmt(input):er DATA~ return '%5.5f' %inputDATAPrafDATA~ def point_by_matrix(p, m):DATAH  return [p[0] * m[0][0] + p[1] * m[1][0] + p[2] * m[2][0] + m[3][0],EDATA@8G p[0] * m[0][1] + p[1] * m[1][1] + p[2] * m[2][1] + m[3][1],EEDATA@`  p[0] * m[0][2] + p[1] * m[1][2] + p[2] * m[2][2] + m[3][2]]EDATA @~ def vector_by_matrix(p, m):DATA@~ return [p[0] * m[0][0] + p[1] * m[1][0] + p[2] * m[2][0],EEDATA<T p[0] * m[0][1] + p[1] * m[1][1] + p[2] * m[2][1],amDATA<pT p[0] * m[0][2] + p[1] * m[1][2] + p[2] * m[2][2]] nDATAQ eeDATA T def contain(min, max, point):DATA for v in point:r DATA8 if v[0] < min[0]:0-SDATA min[0] = v[0]r DATAȗ if v[1] < min[1]:6-FDATAH9 min[1] = v[1]r DATA9 if v[2] < min[2]:0-SDATA9 min[2] = v[2]r DATA : if v[0] > max[0]:4-SDATA(w max[0] = v[0]r DATApw if v[1] > max[1]:umSDATAw max[1] = v[1]- DATAx if v[2] > max[2]:DATAx max[2] = v[2] DATA$HqZ def containSphere(min,max,sphere):DATA  radius = sphere.getSize()[0]DATA$0 if min[0] > sphere.LocX-radius:awDATA  min[0] = sphere.LocX-radiusDATA$[} if min[1] > sphere.LocY-radius:EEDATA ` min[1] = sphere.LocY-radiusDATA$Pb} if min[2] > sphere.LocZ-radius:EEDATA 8$[ min[2] = sphere.LocZ-radiusDATA$ if max[0] < sphere.LocX+radius:EEDATA $[ max[0] = sphere.LocX+radiusDATA$R  if max[1] < sphere.LocY+radius:EEDATA $[ max[1] = sphere.LocY+radiusDATA$8R  if max[2] < sphere.LocZ+radius:seDATA (%[ max[2] = sphere.LocZ+radiusDATAQ lDATAurbDATA(^ #Grab the sceneDATAp^ scn = Scene.GetCurrent()DATA(Q  context = scn.getRenderingContext()DATA^ obj = Blender.Object.Get()DATA rlDATA^ #export general scene dataDATAortDATA8eb2DATA({ #background colorDATAp{ w=Blender.World.Get():DATA0rigDATA4{ scene = Blender.Scene.GetCurrent().getChildren()doDATAh DoDATAx writeln('')REEDATA DATA$R  #create the baked textures listREEDATAXR  baked_maps=[]EDATAT  DATA { #create a materials listDATAF} material_array =[]DATAXF} materials = Material.get()DATAF} for m in materials:DATA@S DATAF} refFile = "NULL";DATAh textureFile = "NULL";DATA alphaFile = "NULL";DATA normalFile = "NULL";EDATA@ emitFile = "NULL";DATAXNR specFile = "NULL";REEDATAX/  REEDATA NR for mtex in m.getTextures():DATANR if mtex: DATA 8OR #check if there is an imageDATA0X if mtex.tex.type == Texture.Types.IMAGE:DATA(>S  print mtex.tex.image.getFilename()DATA_ #map to colorDATA,( if mtex.mapto == Texture.MapTo.COL:DATA48` textureFile = mtex.tex.image.getFilename()yTeDATA,( ' if mtex.mapto == Texture.MapTo.ALPHA:DATA4` alphaFile = mtex.tex.image.getFilename() rfiDATA,x if mtex.mapto == Texture.MapTo.NOR:DATA4@R  normalFile = mtex.tex.image.getFilename() lDATA, if mtex.mapto == Texture.MapTo.EMIT:DATA0x emitFile = mtex.tex.image.getFilename()DATA,P: if mtex.mapto == Texture.MapTo.REF:DATA03 refFile = mtex.tex.image.getFilename() DATA,h. if mtex.mapto == Texture.MapTo.SPEC:DATA0@ specFile = mtex.tex.image.getFilename()DATAS DATA AR  print m.getDiffuseShader()DATA(x|R  material_array.append(m.getName()) )DATA\; writeln('shad=' + str(m.rgbCol) + '|' +str(m.getRayMirr()) + '|' + str(m.getHardness()) +DATA8PAR  '|' + str(m.getAlpha()) +'|'+ str(m.getIOR()) +'|'+DATAL`B str(m.getSpec())+'|'+ str(m.getEmit())+'|' + str(m.getRef()) + '|' + DATAD7  str(m.getDiffuseShader()) +'|' + str(m.getSpecShader()) + '|' +DATA Pp str(m.getSpecCol()) +'|' +DATA8p str(textureFile) + '|' + str(alphaFile) + '|' + cEDATAH2  str(normalFile) + '|' + str(emitFile)+'|' + str(refFile) + '|' + EEDATAa str(specFile)DATASDATAS ) DATA`SDATAH8  #while looping through the scene, we will need to collect the maximumEDATAH(?  #extents of the scene. These will be written to the head of the fileEDATA,p" #after all mesh objects have been measureDATAq min = [1e300,1e300,1e300];DATA Xq max = [-1e200,-1e300,-1e300];DATA numObjects = 0DATASDATA  for obj in scene:oDATA8YDATA   if obj.getType() == 'Camera':DATA,# cam_mat = obj.getMatrix('worldspace')DATA8  print 'Exporting camera'DATAYDATA$/R  height = context.imageSizeY()REEDATA   width = context.imageSizeX()DATA X  lens = obj.getData().lens DATA  fov = lens; DATA(T writeln('cam=' + str(camType.val) + DATA` '['+str(cam_mat[0][0]) + ',' + str(cam_mat[0][1]) + ',' + str(cam_mat[0][2]) + ']' + '|' +DATAd '['+str(cam_mat[1][0]) + ',' + str(cam_mat[1][1]) + ',' + str(cam_mat[1][2]) + ']' + '|' + DATAdV '['+str(-cam_mat[2][0]) + ',' + str(-cam_mat[2][1]) + ',' + str(-cam_mat[2][2]) + ']' + '|' +e DATA`8P '['+str(cam_mat[3][0]) + ',' + str(cam_mat[3][1]) + ',' + str(cam_mat[3][2]) + ']' + '|' +EDATA4  str(width) + ',' + str(height) + ']' + '|' +eeDATAp str(fov) + ',' + str(fov) + ']' + str(obj.getData().getClipStart()) + '|' + str(camRadiusSlider.val) + '|' DATAHY )EEDATA0 DATA X  elif obj.getType() == 'Lamp':DATA@K  print 'Exporting Lamp' DATA K  l=Lamp.Get(obj.getName())DATAK  m = obj.getMatrix()DATA(L  if l.getType() == 0: DATA0$ #lamp=location,color,size,energy for a lampDATA writeln('lamp=[' + str(obj.getLocation()) + ']|['+ str(3*l.getEnergy()*l.col[0]) +','+ str(3*l.getEnergy()*l.col[1]) + ','+str(3*l.getEnergy()*l.col[2]) )EDATAxL  elif l.getType() == 1:DATA,8% #sun=location,color,energy,directionDATA 8  print 'Exporting the sun'DATAh DATA(PIR  vec = vector_by_matrix([0,0,1],m)EEDATA8  print str(vec)DATAh/ writeln('sun=['+ str(vec) + ']|[' + str(3*l.getEnergy()*l.col[0]) +','+ str(3*l.getEnergy()*l.col[1]) + ','+str(3*l.getEnergy()*l.col[2]) )DATA REEDATAWDATA @9  elif obj.getType() =='Surf':DATA89  material_index = material_array.index(obj.getName())DATAWDATA   containSphere(min,max,obj)DATAWDATA48  writeln('sphere=[' + str(obj.getLocation()) +rbiDATA<  ']|['+ str(obj.size[0]) + ']|['+ str(material_index))DATAxR  DATA   elif obj.getType() == 'Mesh':DATAR  DATAЍ #get standard mesh dataDATA0) m = NMesh.GetRawFromObject(obj.getName())DATA([R  mat = obj.getMatrix('worldspace')EDATAR  EDATA0+ #for every mesh, we dump a list of verticesDATA  numverts = len(m.verts)DATAp numTris = 0 DATA(Q  print 'verts ' + str(numverts) EDATA,x, writeln('numverts=' + str(numverts)) DATAȄR  DATA  for i in range(numverts): DATA08- x,y,z = point_by_matrix(m.verts[i].co,mat)DATA8 writeln('v=' + fmt(x) + '|' + fmt(y) +'|' + fmt(z))DATAn DATAo DATA< #iterate through faces - then split faces into trianglesDATAp faces = m.facesDATA DATA  #lastDATA DATA lastUVTexture = 0 DATA` lastidx = 0;DATAmb DATA for fa in faces:DATA8mb DATA$xnR  #each face may have an imageREEDATA H if str(fa.image) == 'None':DATApf  idx = -1EEDATA  else:pgDATA$R  #is this image the last one?DATA$0R  if lastUVTexture == fa.image:)DATApmb DATAR  idx = lastidxDATAmb EEDATA4XR  #different texture, have we seen it before?rteDATA 8HS try:pgDATA(R  idx = baked_maps.index(fa.image)DATAR  #create new entry DATAR  except ValueError:DATA$Q  baked_maps.append(fa.image) )DATA((Q  idx = baked_maps.index(fa.image)DATAmb DATA PR  lastUVTexture = fa.imageDATAR  lastidx = idx;DATAQ DATA@Q REEDATAR  if len(fa.v) == 3: DATA0R  numTris += 1EEDATAxR  numObjects+=1DATAxQ DATA R  #check for uv coordinatesDATA4{ #there has got to be a better way to do this20DATA@{ if len(fa.uv) == 0:DATA{ zers=[0,0];DATA { fa.uv = [zers,zers,zers];DATA  gDATAQ DATAp@i trans = [point_by_matrix(fa.v[0].co,mat),point_by_matrix(fa.v[1].co,mat),point_by_matrix(fa.v[2].co,mat)]EDATA({ contain(min,max,trans)DATA8Q EEDATAH writeln('t=' + DATAX str(fa.v[0].index) + '|' + str(fa.v[1].index) + '|' + str(fa.v[2].index) + '|' + DATAH5  str(material_array.index(m.materials[fa.mat].getName())) + '|' +EEDATA(  fmt(fa.uv[0][0]) + '|' + fmt(1-fa.uv[0][1]) + '|' + fmt(fa.uv[1][0]) + '|' + fmt(1-fa.uv[1][1]) + '|' + fmt(fa.uv[2][0]) + '|' + fmt(1-fa.uv[2][1]) + '|' + DATA str(idx)EEDATA )DATAp DATA  else:pgDATA numTris += 2DATA numObjects+=2DATA EEDATA  #check for uv coordinatesDATA4p #there has got to be a better way to do thisghDATA_ if len(fa.uv) == 0:DATA`_ zers=[0,0];DATA(XR  fa.uv = [zers,zers,zers,zers]; DATAP DATA  DATA Q try:pgDATAp@ trans = [point_by_matrix(fa.v[0].co,mat),point_by_matrix(fa.v[1].co,mat),point_by_matrix(fa.v[2].co,mat)]DATA _ contain(min,max,trans)DATADATA_ writeln('t=' + DATAXxE str(fa.v[0].index) + '|' + str(fa.v[1].index) + '|' + str(fa.v[2].index) + '|' + DATAH0] str(material_array.index(m.materials[fa.mat].getName())) + '|' +EDATA0N| fmt(fa.uv[0][0]) + '|' + fmt(1-fa.uv[0][1]) + '|' + fmt(fa.uv[1][0]) + '|' + fmt(1-fa.uv[1][1]) + '|' + fmt(fa.uv[2][0]) + '|' + fmt(1-fa.uv[2][1]) + '|' + DATA str(idx)EDATA؝_ )DATAHr DATAp@  trans = [point_by_matrix(fa.v[2].co,mat),point_by_matrix(fa.v[3].co,mat),point_by_matrix(fa.v[0].co,mat)]DATA @_ contain(min,max,trans)DATA DATAP~ writeln('t=' + DATAXE str(fa.v[2].index) + '|' + str(fa.v[3].index) + '|' + str(fa.v[0].index) + '|' + DATAH`F  str(material_array.index(m.materials[fa.mat].getName())) + '|' +EDATA` fmt(fa.uv[2][0]) + '|' + fmt(1-fa.uv[2][1]) + '|' + fmt(fa.uv[3][0]) + '|' + fmt(1-fa.uv[3][1]) + '|' + fmt(fa.uv[0][0]) + '|' + fmt(1-fa.uv[0][1]) + '|' + DATAPZ str(idx)EDATA8 )DATA DATA DATA& except:REEDATA4~ print 'caught quad exception on ' + str(fa) .DATADATA DATAh DATA< #if the background is set pass that in, else pass coloramDATAp if Background.val:DATA0Y writeln('bgimage=' + str(BackgroundText.val))DATAС else:EDATA,8u writeln('bgcolor=' + str(w[0].getHor()))DATA DATA  #write out the baked texturesDATA8DATAS  for tex in baked_maps:DATA$ S  s.write('b=' + str(tex) + '\n') EDATADATAHS  #done with the scene DATA -  f.closepgDATA  s.closejpgDATAx DATAh]def render():EEDATA S  spawnPath = path + fileNameDATADXE  os.spawnl(os.P_NOWAIT,executable,'foo ' + path + ' ' + fileName)DATAh #os.spawnl(os.P_NOWAIT,"/home/sheemwaza/base/optimized/src/base","monkey","/home/sheemwaza/out.mra")EEDATATE #retcode=Popen(["/home/sheemwaza/base/src/base","/home/sheemwaza/out.mra"]).pid#DATA(\ print 'no op'EDATA{DATAS mSampleSlider = Create(0)DATA0S camRadiusSlider = Create(1)DATAS imageSamples = Create(1)DATAS shadowSamples = Create(4)DATA8S muonSlider = Create(0)DATAS Muon = Create(0)DATA4S BackgroundText = Create('using background color')m.DATAPR Background = Create(0)DATAR numSample = Create(4)DATAR hemiToggle = Create(0)DATA(R camType = Create(1)DATApR iCacheToggle = Create(0)DATAsamplerWindow = Create(1)DATAR GIWindow = Create(0)WDATAXpartOutput = Create(0)DATAbounce = Create(0) DATAfilterWidth = Create(0)DATA0jitter = Create(0)DATAxsbackground = Create(1)DATAhR DATAmaterialsDrop = Create(0)DATAJR  DATA def draw():DATA8 global mSampleSlider, muonSlider, Muon,BackgroundTextEDATALF global Background, numSample, hemiToggle, bounce, ExitButton, iCacheToggleDATA(} global Button2, camType, exportButtonEDATA$H global imageSamples, shadowSamplesDATA global camRadiusSliderDATA  global samplerWindow, GIWindowDATA global partOutputDATA0 global filterWidth, jitterDATA global sbackground DATApJR  DATADATAPDATA$ glClearColor(1.0, 1.0, 1.0, 0.0)seDATA  glClear(GL_COLOR_BUFFER_BIT)DATAR DATAT leftMargin = 10;DATAЍT bottomMargin = 15;DATAT columnWidth = 170;DATA,? buttonWidth = columnWidth - leftMargin;DATA`T columnHeight = 35;DATA0\ buttonHeight = columnHeight - bottomMargin;DATA8f s DATA T #always display these buttonsDATAe , DATADPD  Button('Exit', 3, leftMargin, 5, buttonWidth, buttonHeight, '')1DATAP Button('Export', 1, leftMargin+columnWidth,5, buttonWidth, buttonHeight, '')EEDATAT@E Button('Render', 2, leftMargin+ 2*columnWidth, 5, buttonWidth, buttonHeight, '')#DATAd  = DATA@S  camType = Menu('Camera Model%t|Perspective %x1|Spherical %x2|Architecture %x3|DOF %x4', 5, leftMargin, 5*columnHeight, buttonWidth, buttonHeight, camType.val, 'Select which type of camera to use.')EDATAxb imageSamples = Slider('Image', 11, leftMargin , 6*columnHeight, buttonWidth, buttonHeight, imageSamples.val, 1, 20, imageSamples.val,'')enDATA8c shadowSamples = Slider('Shadow', 12, leftMargin + columnWidth, 6*columnHeight, buttonWidth, buttonHeight, shadowSamples.val, 1, 20, 1,'') DATA R DATAR  DATAP #these are the GI settingsDATAxK #Background = Toggle('Set Background', 7,leftMargin, 4*columnHeight, buttonWidth, buttonHeight, Background.val, '')REEDATA F DATA؀ DATA sbackground = Menu('Background%t|Uniform %x1|CIE Clear Sky %x2|CIE Overcast %x3|Sky Model %x4', 102, leftMargin, 3*columnHeight, buttonWidth, buttonHeight,sbackground.val, 'Set Background')DATA |DATA[dDATAPb numSample = Slider('Samples', 6, leftMargin + columnWidth, 2*columnHeight, buttonWidth, buttonHeight,numSample.val, 1, 64, 4, 'The number of hemisphere samples.')DATA[bleDATApIy bounce = Slider('Bounce', 0, leftMargin + 2 * columnWidth, 2*columnHeight, buttonWidth, buttonHeight, bounce.val, 1, 5, 0,'') DATAZ 1DATA if Background.val == 1:DATAJ BackgroundText = String('', 6, leftMargin + columnWidth, 4*columnHeight, buttonWidth, buttonHeight, BackgroundText.val, 512, '')DATAO eDATAT if camType.val == 4:EEDATA camRadiusSlider = Slider('Radius', 0, leftMargin + columnWidth, 5*columnHeight, buttonWidth, buttonHeight, camRadiusSlider.val, 1, 20, 1,'')DATAO_maDATAP DATAdef setBackground(fname):DATA@B  print fnameREEDATAC BackgroundText.val=fnameDATA'[ralDATAHDdef event(evt, val):DATA(D if (evt== QKEY and not val): Exit()EDATAX'[ = DATADdef bevent(evt):e(4DATAxZounDATAP2: DATA 0E if evt == 7: #setBackgroundDATA<H}R  Blender.Window.FileSelector(setBackground,'OPEN FILE')aphDATAxvalDATA}R  elif evt == 10:+ DATA 50DATA~R  print 'Materials'DATAH~R  Blender.Redraw()DATA`A DATA~R  elif evt == 3: #ExitButtonDATA gT Exit()pgDATA@REEDATAjR  elif evt == 2: #Button2DATA `S export()DATA ؍S render()DATA0:DATA kR  elif evt == 1: #exportButtonDATA (}b export()DATA DATA else:DATAPkR  Blender.Redraw() DATA@ blDATA kR Register(draw, event, bevent)TXxo kTXTextkR kR kR kR {DATAkR EERFDATATXxoTXmuxport.pyJ XR Hӥ FR FR k0VADATAJc:\muxport.pyEEDATA XR hXR ODATAhXR XR XR  FREEDATAXR XR hXR w ODATAXR @YR XR ӥ FREEDATA@YR YR XR ӥ FREEDATAYR ER @YR (ԥ FREEDATAER ER YR ԥ FREEDATAER FR ER Xե FREEDATAFR `FR ER ե *n,DATA`FR FR FR ե DATAFR FR `FR |DATAFR FR H֥ FREEDATAFR `|FREEDATA8FREEDATA8|FREEDATAȡ8֥ 3R DATAȡhץ %R DATAȡץ 1R DATAإ dR DATA(`إ FREEDATA(pإ FREEDATAp(H FREEDATAp{FREEDATA FREEDATAМ@I R DATAМI FREEDATA`М{nd DATA`Hz}KFREEDATA`xRFREEDATAK FREEDATAQ FREEDATA(Q FREEDATA(pZ FREEDATAp(I FREEDATAp.(FREEDATAXh2(Q DATAX(J %1Q DATAXwFREEDATA0GFREEDATA0xGFREEDATAx0pQ FREEDATAQ x(GFREEDATAQ PQ HC EFREEDATAPQ Q Q xG=FREEDATAQ Q PQ G=FREEDATAQ (Q Q d DATA(Q pQ Q H=d1 DATApQ R (Q 9FREEDATAR 8R pQ (:FREEDATA8R R R 8Q FREEDATAR R 8R JFREEDATAR R R (KFREEDATAR XR R pKFREEDATAXR -R R KFREEDATA-R .R XR LFREEDATA.R X.R -R HLFREEDATAX.R .R .R wnd DATA.R .R X.R wDATA.R 0/R .R 0wFREEDATA0/R R .R xwFREEDATAR ȲR 0/R wFREEDATAȲR R R wFREEDATAR XR ȲR PR FREEDATAXR R R R FREEDATAR R XR R #FREEDATAR wYR 8R FREEDATAwYwYR R !FREEDATAwY xYwY FREEDATA xYhxYwY !FREEDATAhxYxY xY0 FREEDATAxYxYhxY !FREEDATAxYPܾxY FREEDATAPܾܾxY !FREEDATAܾܾPܾ FREEDATAܾ(ݾܾ@ !FREEDATA(ݾpݾܾ FREEDATApݾݾ(ݾ !FREEDATAݾPpݾ! FREEDATAPݾ8T FREEDATAPU FREEDATA(" FREEDATA(pX" DATAp(" $FREEDATAp# FREEDATAȆXU FREEDATAȆ# DATAXȆX 1DATAX+ FREEDATAX $ FREEDATA@h$ FREEDATA@X+ FREEDATAд@$ 1FREEDATAд* FREEDATA`д FREEDATA`* FREEDATAxY `% DATAxY Y % dDATAY Z xY (& FREEDATAZ PZ Y x& DATAPZ Z Z `- FREEDATAZ Z PZ & FREEDATAZ [ Z ' FREEDATA[ [ Z P' FREEDATA[ \ [ ' FREEDATA\ `\ [ 8( FREEDATA`\ \ \ ( FREEDATA\ \ `\ a dDATA\ ] \ ( FREEDATA] ] \ ) FREEDATA] (^ ] `) hDATA(^ p^ ] @3,FREEDATAp^ ^ (^ M 'DATA^ _ p^ pM FREEDATA_ a ^ 4( DATAa b _ M 0DATAb Pb a 4*DATAPb b b N 0DATAb b Pb ](DATAb (c b 2DATA(c c b 8])DATAc d (c \-DATAd `d c x\(DATA`d d d \/DATAd d `d [)DATAd 8e d Z-DATA8e e d , DATAe (f 8e N DATA(f pf e H %DATApf f (f 8\[DATAf g pf 7DATAg Hg f HDATAHg g g @B CDATAg 8h Hg  FREEDATA8h h g 4FREEDATAh h 8h 8A EDATAh i h X DATAi Xi h , DATAXi j i P/ DATAj Hj Xi @"FREEDATAHj j j !FREEDATAj j Hj %FREEDATAj  k j (Z(DATA k hk j W^DATAhk l k X. DATAl Xl hk . DATAXl l l HDATAl l Xl  DATAl 0m l 0@ GDATA0m xm l 2ZDATAxm  n 0m X1 FREEDATA n hn xm `Y/DATAhn n n  DATAn n hn Y/FREEDATAn @o n 0 FREEDATA@o o n HghtDATAo 0p @o mFREEDATA0p xp o 3 ry DATAxp p 0p > FFREEDATAp q xp = FDATAq Pq p pR*FREEDATAPq q q ps:DATAq @r Pq 躾e DATA@r r q c0)DATAr r @r H3 DATAr s r H[FREEDATAs `s r 5 FREEDATA`s s s HH[FREEDATAs Pt `s R(FREEDATAPt t s H[FREEDATAt t Pt 4 FREEDATAt (u t H[ FREEDATA(u pu t @I[FREEDATApu u (u XQextDATAu `v pu I[DATA`v v u Q'FREEDATAv v `v P^FREEDATAv 8w v tbFREEDATA8w w v a(1)DATAw w 8w (P^FREEDATAw px w Q0(0)DATApx x w 06|oFREEDATAx y px P4 0)DATAy Hy x 7 DATAHy y y hQFREEDATAy y Hy Q0)DATAy z y H DATAz z y FREEDATAz { z FREEDATA{ X{ z Xn/FREEDATAX{ { { iFREEDATA{ { X{ 0()EDATA{ | { h(FREEDATA| | { DATA|  } | 7 ;DATA } h} | Ш%REEDATAh} } } Q FREEDATA} } h} Q FREEDATA}  } X7 FREEDATA  } 7 DATA H Q DATAH  Q 7FREEDATA ؁ H 6 EEDATA؁  R FREEDATA Ȃ ؁ `6 REEDATAȂ  PR 0FREEDATA X Ȃ R ;lenDATAX   p8 FREEDATA 胥 X (R )DATA胥 0 ;  DATA0 ؄ 胥 xR DATA؄  0 8,)EEDATA h ؄ $FREEDATAh  X; DATA  h ,.DATA @ HDATA@ 膥 DATA膥 0 @ $DATA0 x 膥 C/DATAx  0 = DATA  x XcDATA P 8DATAP   %DATA @ P < DATA@  N}DATA Љ @ `$.DATAЉ  pN}'DATA ` Љ N}'DATA`   O}'DATA P ` < DATAP   PC DATA  P B DATA ( xO};DATA( p hzDATAp  ( zDATA ` p DATA`   zDATA  ` @zDATA 8 zDATA8  X ODATA ( 8 zODATA( p ^1^ODATAp  ( ^ODATA  p h^ODATA H ^ODATAH   ODATA 8 H HODATA8  x(|nODATA ȑ 8 ^WODATAȑ  uODATA X ȑ P^!ODATAX   x/ODATA H X 9#ODATAH  MODATA ؓ H H#ODATAؓ  ODATA h ؓ ODATAh   ?ODATA X h ODATAX  ODATA 蕥 X DATA蕥 0 DATA0 x 蕥 0DATAx  0 1DATA h x DATAh  DATA  h $DATA @ DATA@  x DATA И @  DATAИ x oDATAx  И (DATA  x x"ventDATA P }0xporDATAP   x}:und DATA  P <NonWiDATA  }#undTDATA Л z ght,DATAЛ   es',DATA ` Л KoOverDATA`   @}se aDATA  ` }"ht, DATA  h0DATA  Pi: DATA ( ? NdDATA( p i#d1DATAp  ( FREEDATA  p H FREEDATA  菏 FREEDATA  j2FREEDATA P h FREEDATAP   =FREEDATA ࢥ P FREEDATAࢥ ( (FREEDATA( У ࢥ jFREEDATAУ  ( ` %x,trDATA ` У  ))DATA`   x ,maxDATA  `  ()) DATA 8 8ShadDATA8 ॥ p 8.blDATA॥ ( 8 /DATA( p ॥ @{DATAp  ( *DATA  p uDATA H ~DATAH  X;DATA 8 H Ⱦ DATA8  + EDATA Ȩ 8 HQ DATAȨ  P DATA X Ȩ DATAX   Q DATA H X )wDATAH  DATA ت H + DATAت  DATA h ت XcADATAh  HxeDATA X h 8QPDATAX   `ʺDATA 謥 X XTDATA謥 0 `DATA0 x 謥 DATAx  0 DATA h x DATAh  (DATA  h pDATA @ 1n.blDATA@  DATA 0 @ hDATA0 x hDATAx  0 8iDATA  x iDATA P iDATAP   jDATA @ P hjDATA@  S DATA в @ S DATAв  S DATA ` в `S DATA`   9DATA P ` S DATAP  {_DATA ഥ P  DATAഥ ( S 6DATA( p ഥ KDATAp  ( S &DATA ` p x S #DATA`  S DATA  ` !S DATA 8 h!S DATA8  !S DATA ȷ 8 P&S DATAȷ p cDATAp  ȷ DATA  p '|DATA H &S !DATAH  &S DATA ع H wDATAع  @'S DATA Ⱥ ع 'S DATAȺ  'S DATA X Ⱥ 8(DATAX   ,S DATA 軥 X ,DATA軥  `uDATA ؼ 軥 ,S DATAؼ  DATA h ؼ b@DATAh  xzMDATA  h EQDATA  0^DATA  ADATA H -S DATAH  4S DATA  H (DATA  ¥ H5DATA ¥ ¥ -S DATA¥ å ¥ @<tDATAå Xå ¥ 5DATAXå å å 5DATAå å Xå xDATAå 0ĥ å SZDATA0ĥ ĥ å hwDATAĥ  ť 0ĥ zDATA ť hť ĥ hwDATAhť ť ť 8 DATAť ť hť iwDATAť @ƥ ť (.S DATA@ƥ ƥ ť 5S DATAƥ 0ǥ @ƥ fwDATA0ǥ xǥ ƥ @6S DATAxǥ ǥ 0ǥ HPDATAǥ ȥ xǥ fwDATAȥ Pȥ ǥ XoDATAPȥ ȥ ȥ PDATAȥ @ɥ Pȥ  DATA@ɥ ɥ ȥ XPDATAɥ ɥ @ɥ FDATAɥ ʥ ɥ PDATAʥ `ʥ ɥ P$DATA`ʥ ˥ ʥ FDATA˥ P˥ `ʥ uDATAP˥ ˥ ˥ peDATA˥ ˥ P˥ fDATA˥ (̥ ˥ @vDATA(̥ p̥ ˥ v8DATAp̥ ͥ (̥ pFDATAͥ `ͥ p̥ wDATA`ͥ ͥ ͥ 6S DATAͥ ͥ `ͥ HwDATAͥ 8Υ ͥ wDATA8Υ Υ ͥ jDATAΥ (ϥ 8Υ 6DATA(ϥ pϥ Υ {DATApϥ ϥ (ϥ zDATAϥ Х pϥ (7DATAХ HХ ϥ  DATAHХ Х Х v DATAХ 8ѥ HХ 8DATA8ѥ ѥ Х x7DATAѥ ѥ 8ѥ  DATAѥ ҥ ѥ P# DATAҥ Xҥ ѥ R DATAXҥ ҥ ҥ 7DATAҥ Hӥ Xҥ 0lR DATAHӥ ҥ 8DATAimport BlenderEDATA import osucDATAwimport structEEDATAӥ from Blender import *ODATAӥ from Blender import Lamp()[DATA$(ԥ from Blender.Scene import RenderREEDATAԥ from Blender.Draw import *tDATAXե from Blender.BGL import *):DATA ե from Blender import RegistryREEDATAե from Blender import TextoDATA|DATAH֥ from math import *DATA`|DATA #globalsendDATA|DATA4֥ #get the root directory that the current file is inDATA(hץ #we'll write the muray files there. RDATA ץ path = Blender.Get('filename')EDATAإ tokens = path.split('\\')DATA`إ fileName = tokens.pop();DATAإ file = fileName.split('.')DATAH fileName = file[0]DATA{DATA path =''DATA@I for i in tokens:DATAI  path = path + i + '\\' meDATA{DATALHz}executable = 'c:/Documents and Settings/Matt/Desktop/New Folder/muray.exe' DATATxrenderMonkeyPath = '/mnt/aqua/sheemwaza/public_html/matt/widgets/renderMonkey.png'DATAK DATAQ DATAQ  DATAZdef export():EEDATAI  #open a file to export to DATA,. f = open(path + fileName + '.mra','wb')me(DATA,h2 b = open(path + fileName + '.mrb','wb')DATA((J  f.write('muRay scene description\n')RDATAw f.write(' '))DATAG def writeln(out):DATAG f.write(out + '\n')EEDATApQ ODATA(G def point_by_matrix(p, m):DATAHHC  return [p[0] * m[0][0] + p[1] * m[1][0] + p[2] * m[2][0] + m[3][0],DATA@xG p[0] * m[0][1] + p[1] * m[1][1] + p[2] * m[2][1] + m[3][1],EEDATA@G p[0] * m[0][2] + p[1] * m[1][2] + p[2] * m[2][2] + m[3][2]]EEDATA  def vector_by_matrix(p, m):DATA@H return [p[0] * m[0][0] + p[1] * m[1][0] + p[2] * m[2][0],pDATA< p[0] * m[0][1] + p[1] * m[1][1] + p[2] * m[2][1],DATA<( p[0] * m[0][2] + p[1] * m[1][2] + p[2] * m[2][2]] DATA8Q  ODATA J def contain(min, max, point):DATA(K for v in point:DATApK if v[0] < min[0]:DATAK min[0] = v[0]DATAL if v[1] < min[1]:REEDATAHL min[1] = v[1]ndDATAw if v[2] < min[2]:d1DATAw min[2] = v[2]DATA0w if v[0] > max[0]:REEDATAxw max[0] = v[0]DATAw if v[1] > max[1]:REEDATAw max[1] = v[1]EEDATAPR  if v[2] > max[2]:DATAR  max[2] = v[2] REEDATA$R  def containSphere(min,max,sphere):DATA 8R  radius = sphere.getSize()[0]EDATA$R  if min[0] > sphere.LocX-radius: DATA   min[0] = sphere.LocX-radiusEDATA$  if min[1] > sphere.LocY-radius:DATA 0  min[1] = sphere.LocY-radiusEDATA$  if min[2] > sphere.LocZ-radius:DATA   min[2] = sphere.LocZ-radiusDATA$  if max[0] < sphere.LocX+radius:EEDATA   max[0] = sphere.LocX+radiusDATA$@  if max[1] < sphere.LocY+radius:EEDATA   max[1] = sphere.LocY+radiusEDATA$  if max[2] < sphere.LocZ+radius:DATA !  max[2] = sphere.LocZ+radiusDATA8T  DATAU ODATA"  #Grab the scenend1DATAX"  scn = Scene.GetCurrent()DATA("  context = scn.getRenderingContext()REEDATA#  obj = Blender.Object.Get()DATAXU  ODATA#  #export general scene dataDATAX DATA+ DATA $  #background colorDATAh$  w=Blender.World.Get()EDATAX+ DATA4$  scene = Blender.Scene.GetCurrent().getChildren()DATA* DATA writeln('')REEDATA*  DoDATA%  #create a materials listDATA%  material_array =[]DATA(&  materials = Material.get()DATAx&  for m in materials:DATA`-  lDATA&  refFile = "NULL";DATA'  textureFile = "NULL";DATAP'  alphaFile = "NULL";EEDATA'  normalFile = "NULL";DATA8(  emitFile = "NULL";REEDATA(  specFile = "NULL";REEDATAa REEDATA (  for mtex in m.getTextures():EDATA)  if mtex: DATA `)  #check if there is an imageDATA0@3 if mtex.tex.type == Texture.Types.IMAGE: DATA(M  print mtex.tex.image.getFilename()DATApM  #map to colorDATA,4 if mtex.mapto == Texture.MapTo.COL:DATA4M  textureFile = mtex.tex.image.getFilename() DATA,4 if mtex.mapto == Texture.MapTo.ALPHA:(DATA4 N  alphaFile = mtex.tex.image.getFilename() DATA,] if mtex.mapto == Texture.MapTo.NOR:DATA4  normalFile = mtex.tex.image.getFilename() DATA,8] if mtex.mapto == Texture.MapTo.EMIT:DATA0\ emitFile = mtex.tex.image.getFilename()EEDATA,x\ if mtex.mapto == Texture.MapTo.REF:DATA0\ refFile = mtex.tex.image.getFilename() DATA,[ if mtex.mapto == Texture.MapTo.SPEC:ODATA0Z specFile = mtex.tex.image.getFilename()EEDATA,  uDATA N  print m.getDiffuseShader()1EDATA(H  material_array.append(m.getName()) EDATA\8\ writeln('shad=' + str(m.rgbCol) + '|' +str(m.getRayMirr()) + '|' + str(m.getHardness()) +DATA8  '|' + str(m.getAlpha()) +'|'+ str(m.getIOR()) +'|'+DATAL str(m.getSpec())+'|'+ str(m.getEmit())+'|' + str(m.getRef()) + '|' +' DATAD@B  str(m.getDiffuseShader()) +'|' + str(m.getSpecShader()) + '|' +DATA   str(m.getSpecCol()) +'|' +DATA8 str(textureFile) + '|' + str(alphaFile) + '|' + REEDATAH8A  str(normalFile) + '|' + str(emitFile)+'|' + str(refFile) + '|' + )DATAX  str(specFile)DATA, uilDATAP/  )dDATA$@ #export binary material header rDATA$ #b.write(struct.pack("B",0x59))rtDATA( #b.write(struct.pack("iiiiddddddf",EDATA,(Z # m.rgbcol[0],m.rgbcol[1],m.rgbcol[2],DATA`W # m.getRayMirr(),m.getHardness(),m.getAlpha(),m.getIOR(),m.getSpec(),m.getEmit(),m.getRef(),EDATAX. istDATA . rcDATA H #export the hemilight optionsDATA$ b.write(struct.pack("=B",0x60))t()DATAH0@  b.write(struct.pack("=iii",numSample.val,iCacheToggle.val,bounce.val))DATA\2 writeln('hemi=|'+str(numSample.val) + '|' + str(iCacheToggle.val) +'|'+ str(bounce.val) )(DATAX1  c.DATA0`Y #export whether to use the rendermonkey optionDATA if partOutput.val == 1:DATA0Y writeln('renderMonkey=' + renderMonkeyPath) DATA0  DoDATA H #export the sampling optionspDATAm writeln('sample=|'+str(imageSamples.val ) + '|' + str(shadowSamples.val) + '|' + str(filterWidth.val) + '|' + str(jitter.val))DATA3 UIDDATAH >  #while looping through the scene, we will need to collect the maximumEDATAH=  #extents of the scene. These will be written to the head of the fileDATA,pR #after all mesh objects have been measureDATA min = [1e300,1e300,1e300];DATA 躾 max = [-1e200,-1e300,-1e300];DATAc numObjects = 0DATAH3 risDATAH[ for obj in scene:DATA5 eplDATA HH[ if obj.getType() == 'Camera':DATA,R cam_mat = obj.getMatrix('worldspace')DATAH[ print 'Exporting camera'DATA4 absDATA$H[ height = context.imageSizeY()REEDATA @I[ width = context.imageSizeX()DATA XQ lens = obj.getData().lens DATAI[ fov = lens; DATA(Q writeln('cam=' + str(camType.val) + DATA`P '['+str(cam_mat[0][0]) + ',' + str(cam_mat[0][1]) + ',' + str(cam_mat[0][2]) + ']' + '|' +EDATAdt '['+str(cam_mat[1][0]) + ',' + str(cam_mat[1][1]) + ',' + str(cam_mat[1][2]) + ']' + '|' + "DATAd '['+str(-cam_mat[2][0]) + ',' + str(-cam_mat[2][1]) + ',' + str(-cam_mat[2][2]) + ']' + '|' +rDATA`(P '['+str(cam_mat[3][0]) + ',' + str(cam_mat[3][1]) + ',' + str(cam_mat[3][2]) + ']' + '|' +DATA4Q str(width) + ',' + str(height) + ']' + '|' +DATAp06| str(fov) + ',' + str(fov) + ']' + str(obj.getData().getClipStart()) + '|' + str(camRadiusSlider.val) + '|' DATAP4  )DATA7  goDATA hQ elif obj.getType() == 'Lamp':DATAQ print 'Exporting Lamp' DATA H l=Lamp.Get(obj.getName())DATA m = obj.getMatrix()EDATA if l.getType() == 0: DATA0Xn #lamp=location,color,size,energy for a lampDATAi writeln('lamp=[' + str(obj.getLocation()) + ']|['+ str(3*l.getEnergy()*l.col[0]) +','+ str(3*l.getEnergy()*l.col[1]) + ','+str(3*l.getEnergy()*l.col[2]) )DATA0 elif l.getType() == 1:DATA,h #sun=location,color,energy,directionDATA  print 'Exporting the sun'DATA7  DATA(Ш vec = vector_by_matrix([0,0,1],m)EDATAQ  print str(vec)DATAQ  writeln('sun=['+ str(vec) + ']|[' + str(3*l.getEnergy()*l.col[0]) +','+ str(3*l.getEnergy()*l.col[1]) + ','+str(3*l.getEnergy()*l.col[2]) )DATAX7  5DATA 7 oooDATA Q  elif obj.getType() =='Surf':DATA8Q  material_index = material_array.index(obj.getName())DATA6 uRaDATA R  containSphere(min,max,obj)DATA`6 ystDATA4PR  writeln('sphere=[' + str(obj.getLocation()) +DATA<R  ']|['+ str(obj.size[0]) + ']|['+ str(material_index))DATAp8  trDATA (R  elif obj.getType() == 'Mesh':DATA;  DATAxR  #get standard mesh dataDATA08 m = NMesh.GetRawFromObject(obj.getName())DATA( mat = obj.getMatrix('worldspace')EDATAX;  eDATA0, #for every mesh, we dump a list of verticesDATAH numverts = len(m.verts)DATA numTris = 0 DATA( print 'verts ' + str(numverts) EDATA0C b.write(struct.pack("?Д*&}=>[2>{w?1#H9(> \A?????? 2J)3r>]3?Dٲ-B$C?*C!4??'3 2΀2?Y2%Jܿ?ًb44?OBd??)d??>)d?u=?????OBH8<pOBCylinder^X~ I<@ z<????׆?D5`,w?lI>l3lI`,w??l3D5I<@ z<??????I'y'U8&?_,Wo%kI?04x?4&G>>?>qsc?}=>V"#>2# >@K??DOBd?? #=?>=??????@???>зXyDATAMAl(*(X MAblacko:o:o:??????????L?????3?? ף; ף;AA ????????@?=?==???5????L?L?L?L==ff????DATA 5 DATACsBsAr@q?q>p=o=op?q@qArBsGwFvEuDuDtCsBsArAr@r@q@rArArBsCsDtDuEuFvLzKyJyIxHxHwGvFvFvFvGvHwHxIxJyKyQ~P}O|N|M{M{LzKzLzM{M{N|O|P}VUTSRRRSTU[ZYXXXYZ`_^^]^^_eedcdekjjjppopvu|{  ###&&&!!!  +++;;;@@@888'''  :::OOOVVVJJJ333  <<p=o=op?q@qArBsGwFvEuDuDtCsBsArAr@r  @q@rArArBsCsDtDuEuFvLzKyJyIxHxHwGvFv FvFvGvHwHxIxJyKyQ~P}O|N|M{M{Lz!!!$$$%%%&&&'''&&&%%%$$$"""KzLzM{M{N|O|P}VUTSR$$$(((+++---......///...---,,,***(((%%%!!! RRSTU[ZYX&&&---222555666777888777666666555333222000---)))%%%!!!&&&XXYZ`_^^ ---555:::>>>AAABBBBBBCCCBBBAAA???===:::888666444111---)))### (((]^^_eed"""222;;;BBBFFFIIIKKKLLLMMMMMMMMMKKKIIIGGGDDDAAA===:::777333///***$$$'''...777cdekj444@@@HHHMMMQQQSSSUUUVVVWWWWWWVVVUUUSSSPPPNNNJJJFFFBBB===999555000+++,,,444===JJJjjpp333CCCLLLRRRWWW[[[]]]___`````````___^^^\\\YYYVVVRRRNNNJJJEEE???:::666000222999AAAMMMopv(((CCCOOOWWW]]]aaadddggghhhiiiiiiiiihhhfffdddaaa^^^ZZZVVVRRRMMMGGGAAA:::555777===FFFQQQdddu|<<}&>ؽEg4:]>bዽؽ׊]=]ؽY(ꊈ~&Ekؽ˻:྾=ؽ#d>ؽ c7d > >=lO]d] ?P_='Fbf_>] =G؉b ̾ ̾=]d] 9_>=_c}_] ?=))aE_c,̼<<ؽؽ,̼<<ؽ྾=ؽ?ܟ@X.]P?ܟ@X=r8⟬|?@XҢDP⟬|?@X=U8IZXIRX=$l=VX)VX=]53DATA,H<'hDATAh7< !! !   # !" ! ! # # " " # # """" " " """"""""" "#"#"#"" " """"""" """"""DATA,.'FDATAF6!                     DNA1ة(_SDNANAMEF *next*prev*data*first*lastxyzwxminxmaxyminymax*pointergroupvalval2name[32]typesubtypeflagsaveddatalentotallen*newid*libname[24]usicon_id*propertiesid*idblock*filedataname[240]filename[240]totpad*parentw[2]h[2]changed[2]pad0pad1*rect[2]*obblocktypeadrcodename[128]*bp*beztmaxrcttotrctvartypetotvertipoextraprtbitmaskslide_minslide_maxcurval*drivercurvecurshowkeymuteipoposrelativetotelempad2*weightsvgroup[32]sliderminslidermax*refkeyelemstr[32]elemsizeblock*ipo*fromtotkeyslurph**scripts*flagactscripttotscript*line*formatblenlinenostartendflagscolor[4]pad[4]*namenlineslines*curl*sellcurcselcmarkers*undo_bufundo_posundo_len*compiledmtimesizeseekpassepartalphaangleclipstaclipendlensortho_scaledrawsizeshiftxshiftyYF_dofdistYF_apertureYF_bkhtypeYF_bkhbiasYF_bkhrotscriptlink*dof_obframenrframesoffsetsfrafie_imacyclokmulti_indexlayerpassmenunribufs*gputexture*anim*rrsourcelastframetpageflagtotbindxrepyreptwstatwendbindcode*repbind*packedfile*previewlastupdatelastusedanimspeedgen_xgen_ygen_typeaspxaspy*vnodetexcomaptomaptonegblendtype*object*texuvname[32]projxprojyprojzmappingofs[3]size[3]texflagcolormodelpmaptopmaptonegnormapspacepad[3]rgbkdef_varcolfacnorfacvarfacdispfacwarpfacname[160]*handle*pname*stnamesstypesvars*varstr*result*cfradata[32](*doit)()(*instance_init)()(*callback)()versionaipotype*ima*cube[6]imat[4][4]obimat[3][3]stypeviewscalenotlaycuberesdepthrecalclastsizenoisesizeturbulbrightcontrastrfacgfacbfacfiltersizemg_Hmg_lacunaritymg_octavesmg_offsetmg_gaindist_amountns_outscalevn_w1vn_w2vn_w3vn_w4vn_mexpvn_distmvn_coltypenoisedepthnoisetypenoisebasisnoisebasis2imaflagcropxmincropymincropxmaxcropymaxxrepeatyrepeatextendcheckerdistnablaiuser*plugin*coba*envloc[3]rot[3]mat[4][4]min[3]max[3]pad3modetotexshdwrshdwgshdwbshdwpadenergydistspotsizespotblendhaintatt1att2*curfallofffalloff_typeshadspotsizebiassoftbufsizesampbuffersfiltertypebufflagbuftyperay_sampray_sampyray_sampzray_samp_typearea_shapearea_sizearea_sizeyarea_sizezadapt_threshray_samp_methodtexactshadhalostepsun_effect_typeskyblendtypehorizon_brightnessspreadsun_brightnesssun_sizebackscattered_lightsun_intensityatm_turbidityatm_inscattering_factoratm_extinction_factoratm_distance_factorskyblendfacsky_exposuresky_colorspacepad4YF_numphotonsYF_numsearchYF_phdepthYF_useqmcYF_bufsizeYF_padYF_causticblurYF_ltradiusYF_glowintYF_glowofsYF_glowtypeYF_pad2*mtex[18]specrspecgspecbmirrmirgmirbambrambbambgambemitangspectraray_mirroralpharefspeczoffsaddtranslucencyfresnel_mirfresnel_mir_ifresnel_trafresnel_tra_ifiltertx_limittx_falloffray_depthray_depth_traharseed1seed2gloss_mirgloss_trasamp_gloss_mirsamp_gloss_traadapt_thresh_miradapt_thresh_traaniso_gloss_mirdist_mirfadeto_mirshade_flagmode_lflarecstarclinecringchasizeflaresizesubsizeflarebooststrand_stastrand_endstrand_easestrand_surfnorstrand_minstrand_widthfadestrand_uvname[32]sbiaslbiasshad_alphaseptexrgbselpr_typeuse_nodespr_backpr_lampml_flagdiff_shaderspec_shaderroughnessrefracparam[4]rmsdarkness*ramp_col*ramp_specrampin_colrampin_specrampblend_colrampblend_specramp_showrampfac_colrampfac_spec*nodetree*groupfrictionfhreflectfhdistxyfrictdynamodesss_radius[3]sss_col[3]sss_errorsss_scalesss_iorsss_colfacsss_texfacsss_frontsss_backsss_flagsss_presetYF_arYF_agYF_abYF_dscaleYF_dpwrYF_dsmpYF_presetYF_djitgpumaterialname[256]scale*bbi1j1k1i2j2k2selcol1selcol2quat[4]expxexpyexpzradrad2s*mat*imatelemsdisp**mattotcolwiresizerendersizethreshvec[3][3]alfaweightradiush1h2f1f2f3hidevec[4]mat_nrpntsupntsvresoluresolvorderuordervflaguflagv*knotsu*knotsvtilt_interpradius_interpcharidxkernhnurb*bevobj*taperobj*textoncurve*path*keybevpathlenbevresolwidthext1ext2resolu_renresolv_renspacemodespacinglinedistshearfsizewordspaceulposulheightxofyoflinewidth*strfamily[24]*vfont*vfontb*vfonti*vfontbisepchartotboxactbox*tbselstartselend*strinfocurinfoeffect*mface*mtface*tface*mvert*medge*dvert*mcol*msticky*texcomesh*mselectvdataedatafdatatotedgetotfacetotselectact_facecubemapsizesmoothreshsubdivsubdivrsubsurftype*mr*pv*tpageuv[4][2]col[4]transptileunwrapv1v2v3v4edcodecreasebweightdef_nr*dwtotweightco[3]no[3]uv[2]co[2]indexfis[256]v[4]midpad[2]v[2]*faces*colfaces*edges*edge_boundary_states*vert_edge_map*vert_face_map*map_mem*vertslevelslevel_countcurrentnewlvledgelvlpinlvlrenderlvluse_col*edge_flags*edge_creases*vert_map*edge_map*old_faces*old_edges*errormodifiersubdivTyperenderLevels*emCache*mCachedefaxispad[6]lengthrandomizeseed*ob_arm*start_cap*end_cap*curve_ob*offset_oboffset[3]scale[3]merge_distfit_typeoffset_typecountaxistolerance*mirror_obsplit_anglevalueresval_flagslim_flagse_flagsbevel_angledefgrp_name[32]*texturestrengthdirectionmidleveltexmapping*map_objectuvlayer_name[32]uvlayer_tmp*projectors[10]*imagenum_projectorsaspectxaspectypercentfaceCountfacrepeat*objectcenterstartxstartyheightnarrowspeeddampfallofftimeoffslifetimedeformflagmulti*prevCosparentinv[4][4]cent[3]*indexartotindexforce*clothObject*sim_parms*coll_parms*point_cache*x*xnew*xold*current_xnew*current_x*current_v*mfacesnumvertsnumfacesabsorptiontime*bvhtreeoperationvertextotinfluencegridsizeneedbind*bindweights*bindcostotcagevert*dyngrid*dyninfluences*dynverts*pad2dyngridsizedyncellmin[3]dyncellwidthbindmat[4][4]*psys*dmtotdmverttotdmedgetotdmfacepsysrt[2]*facepavgroupprotect*fss*target*auxTargetvgroup_name[32]keepDistshrinkTypeshrinkOptsprojAxissubsurfLevels*originfactorlimit[2]originOptspntswopntsuopntsvopntswtypeutypevtypewfufvfwdudvdw*defvec[8][3]partypepar1par2par3parsubstr[32]*track*proxy*proxy_group*proxy_from*action*poselib*poseconstraintChannelsdefbasemodifiersdloc[3]orig[3]dsize[3]drot[3]obmat[4][4]constinv[4][4]laycolbitstransflagipoflagtrackflagupflagnlaflagprotectflagipowinscaflagscavisflagboundtypedupondupoffdupstadupendsfctimemassdampinginertiaformfactorrdampingsizefacmargindtdtxactcolempty_drawtypepad1[3]empty_drawsizedupfacescapropsensorscontrollersactuatorsbbsize[3]actdefgameflaggameflag2*bsoftsoftflaganisotropicFriction[3]constraintsnlastripshooksparticlesystem*pd*soft*dup_groupfluidsimFlagrestrictflagshapenrshapeflagrecalcobody_type*fluidsimSettings*derivedDeform*derivedFinallastDataMaskstateinit_stategpulampcurindexactivedeflectforcefieldpdef_damppdef_rdamppdef_permpdef_frictpdef_rfrictf_strengthf_powerf_distf_dampmaxdistmindistmaxradminradf_power_rpdef_sbdamppdef_sbiftpdef_sboftclump_facclump_powkink_freqkink_shapekink_ampfree_endtex_nablatex_modekinkkink_axisrt2*rngf_noisesimframestartframeendframeeditframelinStiffangStiffvolumeviterationspiterationsditerationsciterationskSRHR_CLkSKHR_CLkSSHR_CLkSR_SPLT_CLkSK_SPLT_CLkSS_SPLT_CLkVCFkDPkDGkLFkPRkVCkDFkMTkCHRkKHRkSHRkAHRcollisionflagsnumclusteriterations*particlestotpointtotspring*bpoint*bspringnodemassgravmediafrictrklimitphysics_speedgoalspringgoalfrictmingoalmaxgoaldefgoalvertgroupfuzzynessinspringinfrictefraintervallocalsolverflags**keystotpointkeysecondspringcolballballdampballstiffsbc_modeaeroedgeminloopsmaxloopschokesolver_IDplasticspringpreload*scratchshearstiffinpush*pointcacheshow_advancedoptionsresolutionxyzpreviewresxyzrealsizeguiDisplayModerenderDisplayModeviscosityValueviscosityModeviscosityExponentgravxgravygravzanimStartanimEndgstarmaxRefineiniVelxiniVelyiniVelz*orgMesh*meshSurface*meshBBsurfdataPath[240]bbStart[3]bbSize[3]typeFlagsdomainNovecgenvolumeInitTypepartSlipValuegenerateTracersgenerateParticlessurfaceSmoothingsurfaceSubdivsparticleInfSizeparticleInfAlphafarFieldSize*meshSurfNormalscpsTimeStartcpsTimeEndcpsQualityattractforceStrengthattractforceRadiusvelocityforceStrengthvelocityforceRadiuslastgoodframemistypehorrhorghorbhorkzenrzengzenbzenkambkfastcolexposureexprangelinfaclogfacgravityactivityBoxRadiusskytypephysicsEnginemisimiststamistdistmisthistarrstargstarbstarkstarsizestarmindiststardiststarcolnoisedofstadofenddofmindofmaxaodistaodistfacaoenergyaobiasaomodeaosampaomixaocolorao_adapt_threshao_adapt_speed_facao_approx_errorao_approx_correctionao_samp_methodao_gather_methodao_approx_passes*aosphere*aotableshemiresmaxiterdrawtypesubshootpsubshootenodelimmaxsublamppamapamielmaelmimaxnodeconvergenceradfacgammaselcolsxsy*lpFormat*lpParmscbFormatcbParmsfccTypefccHandlerdwKeyFrameEverydwQualitydwBytesPerSeconddwFlagsdwInterleaveEveryavicodecname[128]*cdParms*padcdSizeqtcodecname[128]codecaudio_codecvideo_bitrateaudio_bitrategop_sizerc_min_raterc_max_raterc_buffer_sizemux_packet_sizemux_ratemixratemain*mat_override*light_overridelay_zmasklayflagpassflagpass_xor*avicodecdata*qtcodecdataffcodecdatacfrapsfrapefraimagesframaptothreadsframelenblurfacedgeRedgeGedgeBfullscreenxplayyplayfreqplayattribrt1stereomodedimensionspresetmaximsizexschyschxpartsypartswinposplanesimtypesubimtypequalityrpadrpad1rpad2scemoderendererocresalphamodeosafrs_secedgeintsafetyborderdisprectlayersactlayxaspyaspfrs_sec_basegausspostmulpostgammaposthuepostsatdither_intensitybake_osabake_filterbake_modebake_flagbake_normal_spacebake_quad_splitbake_maxdistbake_biasdistbake_padGIqualityGIcacheGImethodGIphotonsGIdirectYF_AAYFexportxmlYF_nobumpYF_clamprgbyfpad1GIdepthGIcausdepthGIpixelspersampleGIphotoncountGImixphotonsGIphotonradiusYF_raydepthYF_AApassesYF_AAsamplesyfpad2GIshadowqualityGIrefinementGIpowerGIindirpowerYF_gammaYF_exposureYF_raybiasYF_AApixelsizeYF_AAthresholdbackbuf[160]pic[160]stampstamp_font_idstamp_udata[160]fg_stamp[4]bg_stamp[4]simplify_subsurfsimplify_shadowsamplessimplify_particlessimplify_aossscineonwhitecineonblackcineongammaparticle_percsubsurf_maxshadbufsample_maxao_errorcol[3]framename[64]*brushtoolstepinverttotrekeytotaddkeybrushtypebrush[7]emitterdistdraw_timedname[36]mat[3][3]cornertypeeditbutflagjointrilimitdegrturnextr_offsdoublimitsegmentsringsverticesunwrapperuvcalc_radiusuvcalc_cubesizeuvcalc_mapdiruvcalc_mapalignuvcalc_flagautoik_chainlenimapaintparticleselect_threshclean_threshretopo_moderetopo_paint_toolline_divellipse_divretopo_hotspotmultires_subdiv_typeskgen_resolutionskgen_threshold_internalskgen_threshold_externalskgen_length_ratioskgen_length_limitskgen_angle_limitskgen_correlation_limitskgen_symmetry_limitskgen_optionsskgen_postproskgen_postpro_passesskgen_subdivisions[3]edge_modepad3[4]dirview*session*cumapdrawbrushsmoothbrushpinchbrushinflatebrushgrabbrushlayerbrushflattenbrushpivot[3]brush_typetexnrtexrepttexfadetexsepaveragingtablet_sizetablet_strengthsymmrakeaxislock*camera*world*setbase*basactcursor[3]twcent[3]twmin[3]twmax[3]editbutsizeselectmodeproportionalprop_modeautomergepad5pad6autokey_mode*ed*radioframing*toolsettingsaudiotransform_spacesjumpframesnap_modesnap_flagsnap_target*theDagdagisvaliddagflagssculptdataframe_stepzoomblendximyimspacetypeblockscale*areablockhandler[8]viewmat[4][4]viewinv[4][4]persmat[4][4]persinv[4][4]winmat1[4][4]viewmat1[4][4]viewquat[4]zfaclay_usedpersp*ob_centre*bgpic*localvd*ri*retopo_view_data*depthsob_centre_bone[32]localviewlayactscenelockaroundcamzoompivot_lastgridgridviewpixsizenearfarcamdxcamdygridlinesviewbutgridflagmodeselecttwtypetwmodetwflagtwdrawflagtwmat[4][4]clip[4][4]*clipbbafterdrawzbufxrayflag2gridsubdivkeyflagsndofmodendoffilter*properties_storage*gpdlviewquat[4]lpersplviewlastview_setverthormaskmin[2]max[2]minzoommaxzoomscrollkeeptotkeepaspectkeepzoomoldwinxoldwinycursor[2]rowbutv2d*editipoipokeyactname[32]constname[32]bonename[32]totipopinbutofschannellockmedian[3]cursenscuractaligntabomainbmainbo*lockpointexfromshowgroupmodeltypescriptblockre_alignoldkeypresstab[7]chanshownzebra*filelisttotfiletitle[24]dir[240]file[80]ofssortmaxnamelencollumsf_fpfp_str[8]*libfiledataretvalmenuact(*returnfunc)()(*returnfunc_event)()(*returnfunc_args)()*arg1*arg2*menup*pupmenuoopsvisiflagtree*treestoresearch_string[32]search_tsesearch_flagsdo_outlinevisstoreflagdeps_flagsimanrcurtileimtypenrdt_uvstickydt_uvstretchpad[5]centxcentyautosnap*texttopviewlinesfont_idlheightleftshowlinenrstabnumbercurrtab_setshowsyntaxoverwritepix_per_linetxtscrolltxtbarwordwrapdoplugins*py_draw*py_event*py_button*py_browsercallback*py_globaldictlastspacescriptname[256]scriptarg[256]*script*but_refsredraws*idaspect*curfont*edittreetreetype*filesactive_filenumtilesxnumtilesyselstateviewrectbookmarkrectscrollposscrollheightscrollareaactive_bookmarkprv_wprv_h*imgoutline[4]neutral[4]action[4]setting[4]setting1[4]setting2[4]num[4]textfield[4]textfield_hi[4]popup[4]text[4]text_hi[4]menu_back[4]menu_item[4]menu_hilite[4]menu_text[4]menu_text_hi[4]but_drawtypeiconfile[80]back[4]header[4]panel[4]shade1[4]shade2[4]hilite[4]grid[4]wire[4]select[4]lamp[4]active[4]group[4]group_active[4]transform[4]vertex[4]vertex_select[4]edge[4]edge_select[4]edge_seam[4]edge_sharp[4]edge_facesel[4]face[4]face_select[4]face_dot[4]normal[4]bone_solid[4]bone_pose[4]strip[4]strip_select[4]cframe[4]vertex_sizefacedot_sizebpad[2]syntaxl[4]syntaxn[4]syntaxb[4]syntaxv[4]syntaxc[4]movie[4]image[4]scene[4]audio[4]effect[4]plugin[4]transition[4]meta[4]editmesh_active[4]handle_vertex[4]handle_vertex_select[4]handle_vertex_sizehpad[7]solid[4]tuitbutstv3dtfiletipotinfotsndtacttnlatseqtimatimaseltexttoopsttimetnodetarm[20]bpad[4]bpad1[4]spec[4]dupflagsavetimetempdir[160]fontdir[160]renderdir[160]textudir[160]plugtexdir[160]plugseqdir[160]pythondir[160]sounddir[160]yfexportdir[160]versionsvrmlflaggameflagswheellinescrolluiflaglanguageuserprefviewzoomconsole_bufferconsole_outmixbufsizefontsizeencodingtransoptsmenuthreshold1menuthreshold2fontname[256]themesundostepsundomemorygp_manhattendistgp_euclideandistgp_erasergp_settingstb_leftmousetb_rightmouselight[3]tw_hotspottw_flagtw_handlesizetw_sizetextimeouttexcollectratememcachelimitprefetchframesframeserverportpad_rot_angleobcenter_diarvisizervibrightrecent_filessmooth_viewtxglreslimitndof_panndof_rotatecurssizepad[8]versemaster[160]verseuser[160]glalphaclipautokey_flagcoba_weightvertbaseedgebaseareabase*sceneendxendysizexsizeyscenenrscreennrfullmainwinwinakthandler[8]*newvvec*v1*v2panelname[64]tabname[64]drawname[64]ofsxofsycontrolsnapold_ofsxold_ofsysortcounter*paneltab*v3*v4*fullwinmat[4][4]headrctwinrctheadwinwinheadertypebutspacetypewinxwinyhead_swaphead_equalwin_swapwin_equalheadbutlenheadbutofscursorspacedatauiblockspanelssubvstr[4]subversionpadsminversionminsubversiondisplaymode*curscreen*curscenefileflagsglobalfname[80]*ibuf*ibuf_comp*se1*se2*se3nrbottomrightxofsyofslift[3]gamma[3]gain[3]saturationdir[160]donestartstillendstill*stripdataorxory*crop*transform*color_balance*tstripdata*tstripdata_startstill*tstripdata_endstill*ibuf_startstill*ibuf_endstill*instance_private_data**current_private_data*tmpstartofsendofsmachinestartdispenddispmulhandsizeanim_preseek*stripfacf0facf1*seq1*seq2*seq3seqbase*sound*hdaudiolevelpancurposstrobe*effectdataanim_startofsanim_endofsblend_modeblend_opacity*oldbasep*parseq*seqbasepmetastackedgeWidthforwardwipetypefMinifClampfBoostdDistdQualitybNoCompScalexIniScaleyIniScalexFinScaleyFinxInixFinyIniyFinrotInirotFininterpolation*frameMapglobalSpeedlastValidFramebuttypeuserjitstatotpartnormfacobfacrandfactexfacrandlifeforce[3]vectsizemaxlendefvec[3]mult[4]life[4]child[4]mat[4]texmapcurmultstaticstepomattimetexspeedtexflag2negvertgroup_vvgroupname[32]vgroupname_v[32]*keysminfacusedusedelemdxdylinkotypeold*poin*oldpoinresetdistlastval*makeyqualqual2targetName[32]toggleName[32]value[32]maxvalue[32]delaydurationmaterialName[32]damptimerpropname[32]matname[32]axisflag*fromObjectsubject[32]body[32]pulsefreqtotlinks**linksjoyindexaxisfbuttonhathatfprecisionstr[128]*mynewinputstotslinks**slinksvalostate_mask*actframeProp[32]blendinpriorityend_resetstrideaxisstridelengthsndnrpad1[2]makecopycopymadepad2[1]track*melinVelocity[3]angVelocity[3]localflagdyn_operationforceloc[3]forcerot[3]linearvelocity[3]angularvelocity[3]butstabutendminmaxvisifacrotdampminloc[3]maxloc[3]minrot[3]maxrot[3]matprop[32]distributionint_arg_1int_arg_2float_arg_1float_arg_2toPropName[32]*toObjectbodyTypefilename[64]loadaniname[64]int_argfloat_arggoaccellerationmaxspeedmaxrotspeedmaxtiltspeedtiltdampspeeddamp*sample*stream*newpackedfile*snd_soundpanningattenuationpitchmin_gainmax_gaindistancestreamlenchannelshighpriopad[10]gaindopplerfactordopplervelocitynumsoundsblendernumsoundsgameengine*lamprengobjectdupli_ofs[3]childbaserollhead[3]tail[3]bone_mat[3][3]arm_head[3]arm_tail[3]arm_mat[4][4]xwidthzwidthease1ease2rad_headrad_tailbonebasechainbasepathflaglayer_protectedghostepghostsizeghosttypepathsizeghostsfghostefpathsfpathefpathbcpathacconstflagikflagselectflagagrp_index*bone*childiktree*b_bone_mats*dual_quat*b_bone_dual_quatschan_mat[4][4]pose_mat[4][4]pose_head[3]pose_tail[3]limitmin[3]limitmax[3]stiffness[3]ikstretch*customchanbaseproxy_layerstride_offset[3]cyclic_offset[3]agroupsactive_groupcustomColcs*grpreserved1groupsactive_markeractnractwidthtimeslidename[30]ownspacetarspaceenforceheadtail*tarsubtarget[32]matrix[4][4]space*proptarnumtargetsiterationsrootbonemax_rootbone*poletarpolesubtarget[32]poleangleorientweightgrabtarget[3]reserved2minmaxflagstuckcache[3]lockflagfollowflagvolmodeplaneorglengthbulgepivXpivYpivZaxXaxYaxZminLimit[6]maxLimit[6]extraFzinvmat[4][4]fromtomap[3]expofrom_min[3]from_max[3]to_min[3]to_max[3]zminzmaxchannel[32]no_rot_axisstride_axiscurmodactstartactendactoffsstridelenblendoutstridechannel[32]offs_bone[32]hasinputhasoutputdatatypesockettype*new_socknslimitstack_indexinternstack_index_extlocxlocyown_indexto_index*tosock*link*new_nodeusername[32]lastyoutputs*storageminiwidthcustom1custom2need_execexectotrbutrprvr*typeinfo*fromnode*tonode*fromsocknodeslinks*stack*threadstackinitstacksizecur_indexalltypes*owntype*selin*selout(*timecursor)()(*stats_draw)()(*test_break)()cyclicmoviesamplesminspeedpercentxpercentybokehcurvedimage_in_widthimage_in_heightcenter_xcenter_yspiniterwrapsigma_colorsigma_spacehuesatt1t2t3fstrengthfalphakey[4]x1x2y1y2colname[32]bktyperotationpreviewgamcono_zbuffstopmaxblurbthresh*dict*nodeangle_ofscolmodmixthresholdfademcjitprojfitshortymintablemaxtableext_in[2]ext_out[2]*curve*table*premultablecurrcliprcm[4]black[3]white[3]bwmul[3]sample[3]offset[2]innerradiusratergb[3]cloneactive_rnd*layerstotlayermaxlayertotsize*pooleditflagvel[3]rot[4]ave[3]numparentpa[4]w[4]fuv[4]foffsetrand[3]*stick_obprev_state*hairi_rot[4]r_rot[4]r_ave[3]r_ve[3]dietimebanksizemulnum_dmcachebpialiveloopdistrphystyperotmodeavemodereacteventdrawdraw_asdraw_sizechildtypedraw_stepren_stephair_stepkeys_stepadapt_angleadapt_pixrotfromintegratornbetweenboidneighboursbb_alignbb_uv_splitbb_animbb_split_offsetbb_tiltbb_rand_tiltbb_offset[2]simplify_flagsimplify_refsizesimplify_ratesimplify_transitionsimplify_viewporttimetweakjitfackeyed_timeeff_hairgrid_respartfactanfactanphasereactfacavefacphasefacrandrotfacrandphasefacrandsizereactshapeacc[3]dragfacbrownfacdampfacabslengthrandlengthchild_nbrren_child_nbrparentschildsizechildrandsizechildradchildflatchildspreadclumpfacclumppowrough1rough1_sizerough2rough2_sizerough2_thresrough_endrough_end_shapebranch_thresdraw_line[2]max_velmax_lat_accmax_tan_accaverage_velbankingmax_bankgroundzboidfac[8]boidrule[8]*eff_group*dup_ob*bb_ob*pd2*part*edit**pathcache**childcachepathcachebufschildcachebufs*target_ob*keyed_ob*latticeeffectorsreacteventstotchildtotcachedtotchildcachetarget_psyskeyed_psystotkeyedbakespacebb_uvname[3][32]vgroup[12]vg_negrt3*renderdata*cacheCdisCvi[3]structuralbendingmax_bendmax_structmax_shearavg_spring_lentimescaleeff_force_scaleeff_wind_scalesim_time_oldstepsPerFrameprerollmaxspringlensolver_typevgroup_bendvgroup_massvgroup_structpresets*collision_listepsilonself_frictionselfepsilonself_loop_countloop_countpressure*pointstotpointsthicknessstrokesframenum*actframegstepinfo[128]sbuffer_sizesbuffer_sflag*sbufferTYPE_charucharshortushortintlongulongfloatdoublevoidLinkLinkDataListBasevec2svec2ivec2fvec2dvec3ivec3fvec3dvec4ivec4fvec4drctirctfIDPropertyDataIDPropertyIDLibraryFileDataPreviewImageIpoDriverObjectIpoCurveBPointBezTripleIpoKeyBlockKeyScriptLinkTextLineTextMarkerTextPackedFileCameraImageUserImageGPUTextureanimRenderResultMTexTexPluginTexCBDataColorBandEnvMapImBufTexMappingLampCurveMappingWaveMaterialbNodeTreeGroupVFontVFontDataMetaElemBoundBoxMetaBallNurbCharInfoTextBoxCurvePathMeshMFaceMTFaceTFaceMVertMEdgeMDeformVertMColMStickyMSelectCustomDataMultiresPartialVisibilityMDeformWeightMTexPolyMLoopUVMLoopColMFloatPropertyMIntPropertyMStringPropertyOrigSpaceFaceMultiresColMultiresColFaceMultiresFaceMultiresEdgeMultiresLevelMultiresMapNodeModifierDataSubsurfModifierDataLatticeModifierDataCurveModifierDataBuildModifierDataMaskModifierDataArrayModifierDataMirrorModifierDataEdgeSplitModifierDataBevelModifierDataBMeshModifierDataDisplaceModifierDataUVProjectModifierDataDecimateModifierDataSmoothModifierDataCastModifierDataWaveModifierDataArmatureModifierDataHookModifierDataSoftbodyModifierDataClothModifierDataClothClothSimSettingsClothCollSettingsPointCacheCollisionModifierDataBVHTreeBooleanModifierDataMDefInfluenceMDefCellMeshDeformModifierDataParticleSystemModifierDataParticleSystemDerivedMeshParticleInstanceModifierDataExplodeModifierDataFluidsimModifierDataFluidsimSettingsShrinkwrapModifierDataSimpleDeformModifierDataLatticebDeformGroupbActionbPoseBulletSoftBodyPartDeflectSoftBodyObHookRNGSBVertexBodyPointBodySpringSBScratchWorldRadioBaseAviCodecDataQuicktimeCodecDataFFMpegCodecDataAudioDataSceneRenderLayerRenderDataRenderProfileGameFramingTimeMarkerImagePaintSettingsBrushParticleBrushDataParticleEditSettingsTransformOrientationToolSettingsBrushDataSculptDataSculptSessionSceneDagForestBGpicView3DSpaceLinkScrAreaRenderInfoRetopoViewDataViewDepthsbGPdataView2DSpaceInfoSpaceIpoSpaceButsSpaceSeqSpaceFiledirentryBlendHandleSpaceOopsTreeStoreTreeStoreElemSpaceImageSpaceNlaSpaceTextScriptSpaceScriptSpaceTimeSpaceNodeSpaceImaSelFileListThemeUIThemeSpaceThemeWireColorbThemeSolidLightUserDefbScreenScrVertScrEdgePanelFileGlobalStripElemTStripElemStripCropStripTransformStripColorBalanceStripProxyStripPluginSeqSequencebSoundhdaudioMetaStackEditingWipeVarsGlowVarsTransformVarsSolidColorVarsSpeedControlVarsEffectBuildEffPartEffParticleWaveEffOopsbPropertybNearSensorbMouseSensorbTouchSensorbKeyboardSensorbPropertySensorbActuatorSensorbDelaySensorbCollisionSensorbRadarSensorbRandomSensorbRaySensorbMessageSensorbSensorbControllerbJoystickSensorbExpressionContbPythonContbActuatorbAddObjectActuatorbActionActuatorbSoundActuatorbCDActuatorbEditObjectActuatorbSceneActuatorbPropertyActuatorbObjectActuatorbIpoActuatorbCameraActuatorbConstraintActuatorbGroupActuatorbRandomActuatorbMessageActuatorbGameActuatorbVisibilityActuatorbTwoDFilterActuatorbParentActuatorbStateActuatorFreeCamerabSamplebSoundListenerSpaceSoundGroupObjectBonebArmaturebPoseChannelbActionGroupbActionChannelSpaceActionbConstraintChannelbConstraintbConstraintTargetbPythonConstraintbKinematicConstraintbTrackToConstraintbRotateLikeConstraintbLocateLikeConstraintbMinMaxConstraintbSizeLikeConstraintbActionConstraintbLockTrackConstraintbFollowPathConstraintbStretchToConstraintbRigidBodyJointConstraintbClampToConstraintbChildOfConstraintbTransformConstraintbLocLimitConstraintbRotLimitConstraintbSizeLimitConstraintbDistLimitConstraintbActionModifierbActionStripbNodeStackbNodeSocketbNodeLinkbNodebNodePreviewbNodeTypeNodeImageAnimNodeBlurDataNodeDBlurDataNodeBilateralBlurDataNodeHueSatNodeImageFileNodeChromaNodeTwoXYsNodeTwoFloatsNodeGeometryNodeVertexColNodeDefocusNodeScriptDictNodeGlareNodeTonemapNodeLensDistCurveMapPointCurveMapBrushCloneCustomDataLayerHairKeyParticleKeyChildParticleParticleDataParticleSettingsParticleEditParticleCacheKeyLinkNodebGPDspointbGPDstrokebGPDframebGPDlayerTLEN   L4( H\$8Tpx(x T8l|LDlh88,< L   @ 84DX`D`t@<l<<\hd4Dd@L@@@<lht(T8pd(4H8P HP`<$$X P$88 x P4 088,@0,Hh(H,(lDLP<< \PLhT`<8l (DtH@,@t<h4,,D,@,4` l\4<$x( (@   ,<8HSTRC6                     !"#$%&'()*+, -./0!!!"1#234./56789  :;<=>$ ?@.AB%%%%C=/DEF GHIJ& %KLM= N$OPQR'STUV%(((WXY) ))Z[\+]^_*`]a b(c(def ghij kl+mn]% ,opqrstuvwxyz{|$O'} ~- . " /01%++ 2 394   %5C@6$@57 .8qr35-$O.4679 -:P     ;Fqr !"#$%&'()*++,-./0123456789:;<=>?@ABCDEFGH2I$O'}<$O=JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs tuvwxyz{|}~+<662I>$O?F'} @%A+BBBCDC  $O=# "%EEE"1#2F%FGH9C     $OI&= FbC  @ @ @ @%GFFJ'C $O&=KLMNOPQRJ S!T"T#T$6%&'()%*+,-U.V/ M 0123 45K6789%:O67;<W=PW>?N@A<QX.03 45YBZ%RCSDL1.03 45[E\F]G^1_`_2aHIJbKIcccaL`MbNO P QdR6&%%NSU TNSUVWXYZ[T"T$\]V^_K`Oa&%6%eee bfecdTe] f ggec hec hiiec[jkljec mH k ec n o p qrsjtuv]wlecxy zmec{]n ec|}%]~oec%p ec3 %q ec .]%recsectec muec 3 %+vecF w ec xecyecz{|}~ecNNNNNNK%ec %ec %6ec9ec -ecec} ec  i ec  x%F%"$O&PC% m &    $OIC      =      '} ! " # $%D&2'()*+ , - . /01?23456*789:;<=>F ? &@A$BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_3`a%}bcdefghijklmnopqrstuvwxyz{|}~,%Q}0JJJ$ONB +PRQ  +  $O2I'}     !"#$%&'(%) * +,F- ./012]3456789 =:?;<=%>?x@ABCDEFGHIJKLMNOPQRS_TUmVWXYZ[\]^_`abc defghijkl mn%opqrstuvwxyz{|}~ +F+Fm*mJ2I;+]J+ .      > '} g <% .-m !"K#$%&'()*+,-./0  123456789:;<=+s>?@ABCDEFGHIJKLMNCO PQ3RSTUVW XYZ[\] $@^_`abcdefghijk;i#$%&#$%&#$%&lFm n o$OPpqrstuvA.wx$#$%4&yz{|m}t~  %+#$%&m}%Y!#$%&+F     #$%&m t9  #$%&m.-;  wtY #$%&wm#$%&*]      ] #$%]+ #$%m#$%&mP >>%Y*#$%&m b%+     86     _ !"#$%&'(%)*+,-./0123456789:;%2<B=>?@ABCDEFGHIJKLMNOPQRSTUVWX YZ[\]^_`abcdefghijklmnopqrstu%vwxyz6{ | } ~% k%A4#'}    [  88%988      -  [$O0  %    %9p    %  ]j99-\Ql% !"#$%S&'()*?+,E- ./ 0 12% 3 456%+F=7%89:;<%=>%?@%AB Fpxl?CD +E FGH1IJK+F L -% MxNOPQRS*TUK1VF LWXY% - Z\[\]^_` a\bcdea\fh  -Jghi%jk%  = -  1lmno  \[+@pq  -rsxt   u%vwxyz \@pq?l{|}~C G+FH\_*_ -` T1  - u% ++ $Oh]#$%m awF - %? & j  " ,&       % $O    g% #$%&m tw!!!$O" "" %$O# ## %$*  %  & ]%' ( ) +F* + [\rs%Z, - . /  %+F0 S1 % 2     3    S4    S5    S6  %7 77 -888 $OZ [\\ 9rs  !"::::#9$%&'(+)*+,:-;.<<<</01& U 2 3)*456789:;=><;;;<=<>:?:-> @ A9B CDEF G>H:I:J K LM?NO%@PQDRSTU%VWA XYpZ[\%B]^[%C_`D]^_.EabcdefFghijGHkIJ lmnoPpqrsK t uL _[pvmJwxyzM8E{|N}~%OP OOO; @PQ.X%  mX+%2IQRA_ TR% S@%T@UV T=TST*m%Q_Wp # ]^\9mjYWX   ?2?   $O0 %W VUX Y Y 1     Cl   9   *      }{"Z   ! " # $ % & ' ( ) * + , ]- . / 0 1 2 3 %F|Z4 5 6 7 ]8 9 [: \\\[; < = ]]] > ? ^ ^^ ]@ = A ^B  mC D E ENDB