BLENDER_v220REND T1SRd?IdSRscreenPnmh%D )DATAJDATAJ@)DATA@J )DATAJ@ DATAJDATAJ@ DATA@J DATA J @ DATA JP DATAPJ DATAK0?@DATA0?K>DATA>K>0?DATA>K@>>DATA@>K=>DATA=K=@>@DATA=KP==@ DATAP=K== @DATA=K<P= DATA<K`<= DATA`<Ko<P@DATAoKo`<P DATAoK0ooP DATA0oKno DATAnK0o@DATAmLkdGEJGGmmDATAmBDdCIzաDdCC(BDC?z?DATAkLjm@@   dE0G0GDATAjLhk@P | m==o?bbbc)3dtGExFtGtG i iDATA i?????????| m==o?p=AW?o?   !ZdtGExFtGtG yuDATA y?p3??3?3 @?B3?D(3??2 ? @?y2oy>W3o.yW?ofrv#?̝Yw@5H@3?7 ? @??Yw@ B?=C@ P"  Y N DATAXpG0x y  T?=?3GDATA0xA`wpzC AzC A #< #<`jFzD OBDATA`wBu0xDdCDv@CC(BDC?z?DATA<uD`wn LOAD TEXT FILEc:\Alex\3D\Blender\Plugins\LFEXPORT.PYblend aGSRdPuIdSRscreen.002uq@qKJ-%D )DATAuJtDATAtJ`tu)DATA`tJtt )DATAtJs`t DATAsJpstDATApsJ ss DATA sJrpsDATArJr s DATArJ0rrXDATA0rJqr XDATAqJq0rXDATAqJqDATA@qKp`ttDATApKp@qtuDATApKPppsuDATAPpKOppstDATAOKOPppssDATAOK0OO stDATA0OKNOr`tDATANKN0Or sDATANK@NNrsDATA@NKMNr sDATAMKM@N0rrDATAMKPMM0rpsDATAPMKMM0rrDATAMKLPMqrDATALK`LMq0rDATA`LKLLq sDATALKK`LqrDATAKKLqqDATAJLHuspstdGEJGGIIDATAIBDdCIzաDdCC(BDC?z?DATAHLGJ st`tr  dE0G0GDATAGLBHsr0rps8=i>o?dGEpvO GGCDATAGC@EzCAzCA A@FB= A DATA@E?CG????????8=i>o?fffAD&@??fffA B? #<CP"DATA<CD@ESAVE FILE/pics/blender/rt1.blendkDATABL-Gqqr0r8=H>o?UUUdGEpvO GB.DATABC@@zCAzCA1||1 A@FB= A DATA@@?.B????????8=H>o?fffA*@??fffA B? #<CP">>DATA<.D@@SAVE FILE/pics/blender/rt1.blendkDATA-LBr sqq8=>o?OOOPdGEN0G0G,)DATA,A*B̽̌?B̽̌? #< #<`jFzD SQB̽̌?DATA*?),????????8=>o?fffA@??fffA B? #<CP"zzDATA<)D*SAVE FILE/pics/blender/rt1.blendkSC%=SC1P"p0%% (|>#d6dd??d@??_@??///render///#DATAp;0(K@DATA0;Pp@&DATAP;`0DATA`;P*@DATA;I`)=DATAI;%=@mDATA%;0%IWDATA0%;%\P"OBW8P"OBBottle_AS80`!Zҧs?@yڏ=yڏ=yڏ=??yڏ=yڏ=yڏ=Zҧs?@????? @A@ɴH6cA@@TSnrAۮ@?Dd?? #=?=?@???DATAOBP"8@WOBCamera V6{pHĻ@yڏ=yڏ=yڏ=?)ަm??5s=`=$T423yڏ=`=5s2:6{pHĻ@?????cAS:/rAr)cA~2/rA4cA 4U6L{2?d??)d??)d?????OB@8@&P"OBCap_AS30P0fڧ, ?*@63=63=63=??63=63=63=fڧ, ?*@?????>AlTBA+5=N׶ATBA=wB7Ah%G6?Dd?? #=?=?@???DATA0OB@&8@OBCube_AS30PT>?z@y=y=>S>??y=y=>S>>?z@?????A|rA~y6ɿ6PH@rA"w5qA~N/@?Dd?? #=?=?@???DATATOB8@&OBLabel_AS80phere.001PIx?@===??===x?@?????Zf=A@47~zmA@`f=!nAbͳ??Dd?? #=?=?@???DATAPIOB8@mOBLamp.001 0D?@yڏ=yڏ=yڏ=??yڏ=yڏ=yڏ=D?@?????@A@X؁4|5acA@@XAX?Dd?? #=?=?@???OB@m8@OBLamp 0@ɲ=Q1@yڏ=yڏ=yڏ=??yڏ=yڏ=yڏ=ɲ=Q1@?????@A@*5 K6۪ecA@@<`)ۗ0l)8?Dd?? #=?=?@???OB@8@mOBNeon_AS30P@:C?@yڏ=yڏ=yڏ=??yڏ=yڏ=yڏ=@:C?@?????@A@x942<6cA@@AY6:?Dd?? #=?=?@???DATAMEP4P0@MECube.002ppP ,Ab 2jAZFA_>DATAP4DATA@1NJAeT_ƾNJA_ƾg:A_ƾh:AcT_ƾȊAgT^>IIIŊA^>IIIf:A^>IIIg:AdT^>III~Au@~Au@_ƾI~Au@~Au_ƾIAuzAu_ƾwAuAu@_ƾAu@vAu@ _>IIItAu@Au _>IIIAuxAu _>III|Au~Au@ _>IIIDATA, I&F&    @  &  F  &MEP40PMECylinder.001`a`a4hA @43#T?T?%/?$DATADATA<hA1 ??WAA.?N?WLG5m?Mj?W/TA'-?>WY 좳?gu=W\좳?CuW\-?WYm?IjW/T/?NWL?WARN?*WG5Vj?mWA'ѫ>-W Hu=ꢳWxt뢳Wxꮺ-WH?jmWѫ|N/WWRR(NW곹~mSjWѫ-WH袳uWx颳 u=Wx->WH mBj?WѫA'/N?WL?WRAN(?WLXjm?W/T -?WYu뢳?W\t=좳?W\宺>-?W Y閿Y X뢳?'v=閿\X?t閿\X-?Ю閿YXm?3j閿/TX6?rN閿LX?閿ARXN?#閿G5Xkj?{m閿A'ѫXH>-閿 HXvv=颳閿xX3t좳閿xX-閿HX)jm閿ѫXhN6閿X閿RRX N閿곹Xxmnj閿ѫX-O閿HX碳v閿xXꢳt=閿xX->閿H Xm'j?閿ѫA'X7gN?閿G5X?閿RAXN ?閿LXsjym?閿/TXY-?閿YXvꢳ?閿\Xs=?閿xX>-?閿HX!j?m?閿A'/TXbN?;?閿G5LX@4v3W@4v3閿??۽AAIH?&O?۽LG5*??۽/TA'ٮ?g>۽Y T?n=۽\T?n۽\ٮ?g۽Y+? ۽/TJH?#O۽L?۽AR,O?GH۽L?(۽A'ѫg>ٮ۽ HZn=T۽xmT۽xgٮ۽H,۽A'/TOLH۽۽RRFH.O۽곹(۽ѫٮg۽HThn۽xTm=۽xٮg>۽H -?۽ѫA'MHO?۽L?۽RA4ODH?۽L&?۽/Tgٮ?۽YnT?۽\}m=T?۽\g>ٮ?۽ Y?.?۽A'/TO?OH?۽??YY BH?:O?6hH %?&?Ms5 ٮ?g>z T?n=~ T?Bm~ ٮ?zgz 0?Ms< QH?O6h  ?Y @O?@HHʗ ,?#5 g>ٮ  o=T D mTD kgٮ 1<ʳ  OSHʗ   >HFOʗ "3< ٮg TVoD Tl=D ٮ]g> 3?5 UHO?ʗH ? Y LOٮ? z ?4?5Ms O?WH?H6h ۽TN?U?^C`0??^13k04>?^@r0=-?^O u0-?^u05 ?^c@r0?^3k0TNU?^(`0]~_]~?^]S0UTN?^C0?^͔105>^0-"=^,O 0-^,05^c0^͔0UTN^(0d]~]~^]]0TNU^)0^͔05^c0^-^,0n=-^O ,05>^0 ?^1͔0TN?U^C0]~?j]~^S]0U?TN^`)0?^3k0?5^@rc0-?^u0-?3=^uO 0?5>^@r0??^3k10U?TN?^`C0o]~?]~?^SS0y?y?2<9=9=D^1?J?2222<_hD^dF?2<$D^DJ?2<1D^yy?2<9=D^ҘJ+?2!?2?9=2|A=ZǨ?9=2|CVǨ?9=N2|f}?9=2|4?9= 2|ZBȊ?9=AY2|oo?9=2|ȊZB?9=2|Ō3?9= 2|f>9=2|YǨ>A=9=-2|VǨC9=-N2|~f9=2|49=2|ȊZB9=A2|oo9=2|ZBȊ9=A2|3Ì9=2|(f9=2|vAYǨ9=N-2|hC=VǨ9=-2|f>9=2|4?9= 2|ZB?Ȋ9=2|o?o9=2|Ȋ?ZB9=YA2|Œ?39= 2|?6f9=2|YǨ?A9=N2|WǨ?0C=9=2|?f>9=2|?4?9=  2|Ȋ?ZB?9=Y2|Ùo?o?9=2|7w?(8w?ݽSS/!?)]?ݽ[MK/*Y?X=B?ݽbA/*?$?ݽh7/??ݽml-/3H?z>ݽqu"/Os?Fk>ݽkt(/?{ >ݽ v /@Ϯ?7ݽv s0<稫?RWܽ',h >Et?޽ 4y]'>۰?޽sw^'gb>?޽Z#t]' ??޽.p]'f*??޽i9ik]']H??޽CDe]' d?c?޽1nR(r?zq?޽3ZQ'S?4V?޽aH'${?/9?޽jh>'Т? ?޽ n 4'?>޽r)'%?v >޽v''?lS>޽kx'm?j=޽y'=~c?ݽCİj% L>?ݽfIu40x>]?ݽs40I>id?ݽ'o40M?՝?ݽ2/k403?•?ݽ'޽'| >#޽ꉈ'>޽)b' ?Т޽ 4'/9?#{޽>'5V?R޽H9'{q?r޽Qͥ'c?d޽nOR(?]H޽CeV]'?c*޽ik]'? ޽pe]'?`bѾ޽t]'۰?޽sw>]'S?h ޽i(n7>Ϯݽwd+ >ݽ /Lk>Nsݽ(/>2Hݽu"j/?ݽl-W/$?*ݽ7R/Z=B?)YݽAO/+]?!ݽMK?/)8w?}7wݽS/%8w}7w?ݽS/(]!?ݽ[/W=B)Y?ݽb/$*?ݽ Ȯh/?ݽҩm/zʾ2H?ݽݖq/GkOs?ݽkt/{ ?ݽ^ v/!h?^^ݽɻ}Ph >޽:(۰>޽]']b>޽t[#]' ?޽{.]'b*?޽i9]']H?޽C]'cd?޽'1R(xqr?޽?3Z'2VR?޽|a'/9#{?޽jjh' Т?޽ n'򾨓?޽֞r'w $?޽lv'lS'?޽#kx'jl?޽Cy&S浿=ݽ^'L>ݽ].]m>ݽ40hd|I>ݽ]'40՝M?ݽє240•3?ݽM<40=P?ݽĠF40r6q?޽pf(1qr޽-p(P=ݽ^Ġ503•ݽ M40M՝ݽNє40tIidݽ]40e]ݽ150Lݽ40W}cݽPX+j㳿j޽i''lS޽#'"z ޽l'޽aֈ'Т ޽ˈ' {/9޽j'O5V޽9{'r{q޽ͥ?'dc޽O'R(]H޽V]']*޽Ɨ]' ޽e{]'TbѾ޽t^'۰޽>荈^'h Dt޽̆]'=Ϯ/ݽ,s0 ݽ^/LsIkݽ//H}ʾݽj/ݽV/*$ݽR /&YY=BݽO/!*]ݽ?/x7w(8wݽ/x7w(8w__!*]_t'_&YY=B_ա_*$___^_/H}ʾ_ _LsIk__ _J_=Ϯ/_Vph DtDU۰D9TbѾDp Dp]*D]HDڽdcDZr{qDڧO5VDr" {/9DТ Dt#D"z D'lSDRj㳿jD-*W}c^L^l<e]^ftIid^ٞM՝^ܙ3•^P=^?1qrDߛ r6q?D!d =P?_@OC•3?_:՝M?_ݙO0hd|I>_&]m>_ftL>_S浿=_Ajl?D?+w}lS'?Duw $?Dgs򾨓?Dp Т?D"͌k/9#{?D f2VR?D"_xqr?D&Xcd?Du0Z]H?D&Bb*?D 8 ?D-]b>D"۰>D9:Ph >D**9!h?ח2{ ?^p_GkOs?^o`zʾ2H?^ al`?^ԣh`$*?^c`W=B)Y?^+^`(]!?^'W`%8w}7w?_P_)8w?}7w^P`+]?!^Gt`Z=B?)Y^>ա`$?*^d5`?^W+]`>2H^ `Lk>Ns^a >^ J`n7>Ϯ^w [S?h CfƝ۰?Ct?`bѾCqp? Cnp?c*Ci?]HCbڽc?dCl[{q?rCOڧ5V?RCFr/9?#{C)= ?ТC2t>C(| >#ClS>'CuRj=k㳿D-V?^vy?L^q ]?p^mjd?I^bj՝?M^$f•?3^`=?P^Zr?8qC>ޛ :q?r?C!d> P?=?^OCZ3?•?^:`M?՝?^O0$fI>id?^&cjx>]?^tm L>?^o=~c?^awgm?j=Cv'?lS>Cuu%?v >Cgs?>Cp(Т? ?Ck2${?/9?C f)=S?4V?C_Fr?zq?C&XO d?c?Cv0l[]H??C&Bcf*??C!8i ??C-ngb>?C"q>۰?C:t ,h >Et?C ~v <稫?Jꖿ[7@Ϯ?7^Xp q?{ >^p `Os?Fk>^o`3H?z>^al `??^hW+a*?$?^cd5`*Y?X=B?^+^>`!?)]?^WG`7w?(8w?^PP`v?v?(FF?u]?(ZI7?B?(2?:$?([?o?( 4!?)>(%% XK?zK>(%-ϭ?>(Z?]7(orTm<〫?$4G >qJ?):闌>L?)` /91>f?)7 ?q?)O5)??)|k3/H?˕?)d z0d?nC?) 3$@4v3)S?q?)*&?/bV?)P.Z"!W?9?)u1&?$?)!4!l?b|>)K6mk?>)7]?~;S>) 9v}?I=)9=:?(,BL>B?(z0鋩>D6?(j>>?(G *??( \3??(,pO?W?(-֮q?S?).S?Ӯq)ѶW?mO(?\3(,P?*(>?(D6?⋩(B?4L(!ﻵ?(9HI=|)hƻ;S>\)vƻ>j)Ȼg|> l)mɻ&?%)˻9? W)λ1bV?)Z"ѻq?S)&Gջ@4z㩺)oC?d) 3+$˕?/H)z0?))k3q? )5f?1Ѿ)7L?ᗌ)/9ʰ?&G )i)6&J7(؍>,ϭ(K>WK(%.>3!(% q?[( <$?(7B?G7(w]?(v?v(Fvv?(Ft]?(ZBG7?(19$?('n[?()ʾ3!?(%zKXK?(-ϭ?(YL{@?:&ʰ!G >) Iޗ>)_ f1>)6q ?)$O➿)?){˕.H?)d mCd?)$ w:)'qS?)Gٹ*.bV?)P.9 W?)[u1#%?)Y 4b| l?)J6䮾k?)7~;S]?) 9I}?)y;̎컵=(4ƹ?.L>(aA6ދ>(gj>>(EG *?(k \3?(UlO?(~-SҮq?)Q.ͮqS)Q涋gOW(~粃\3(P岃*(k䲃>(E㲃֋C6(gⲃLA(ᲃc:((zI)i,Z;S)Ɗh䮾)le|)ɓ컍"&)Y绍W9)[⻍0bV)ѧݻSq)GGٻha$)dnC),$.H˕)߆)➿) q)#1Ѿf)6֗K)G pJ)I} (Wr*ϭ(UK}K(0!,ʾ([p(;$(8'E7B(v](vv(w7wP۽z]P۽Fz:BP۽z [$P۽z^P۽yIz\$ʾP۽4zNNP۽Iڀzwҭ&P۽<zΩ P۽ zI M&۽Dk&۽k}5Ѿi&۽BkX t&۽k)垿&۽ik2H{Ε&۽kdF&۽ónFk&&۽CVq&۽OilUAfV&۽Yxil Z@9&۽il8&۽~ilUo&۽il箾&۽xil?S&۽il伳L&۽ il%>N۽ vLN۽#szy9O۽sz5AO۽rsz-O۽Psz*`3󡕿O۽ szXOO۽szdqhV&۽BogVjq?&۽67Bo]O?P۽3sz񡕿/`3?P۽ )sz-?P۽Osz4A>P۽܎ szw9>P۽ szL>P۽ D>y`o=Q۽Nl|L漳?&۽PEk?S?&۽NCil箾?&۽xBilWo?&۽@il;?&۽=il>9Z?&۽]:il?fVW?&۽xצ6ilqEV?&۽Oj2ilz:[#۽'F d?&۽nyΕ2H?&۽+&k垿)?&۽jc kt] ?&۽Jki5>&۽Bk>&۽g kkͰI >&۽7rC?.~ڽP yҭ?N۽_$M۽) 4zN>NN۽Iz+>xҭN۽zM7ϩN۽gWvnͰ?I &۽c1r?&۽aCki?5Ѿ&۽Akt?^ &۽y?k?)&۽Wo&۽il>&۽il?S>&۽ ilL=弳&۽V ilc?}K۽Dl?LL۽(>yz9?L۽'$sz6A?L۽#rsz?-L۽!sz?0`3L۽sz?^OL۽sziV?kq&۽Bomq?hV?&۽67BoaO??M۽3sz3`3??M۽)sz-??M۽!sz$>5A?M۽ #sz!>z9?M۽ &$sz&L>?N۽w$szI=&>?N۽{O4Hq缳?{L=&۽CVil??S>&۽OC il?>&۽BilYo?>&۽@ili?&۽Ak>?&۽g aCkI >M?&۽_Dkq<$?Zwٽѩ?Q7L۽#%zzҭ? >L۽E&zN?N>L۽%z`$?>L۽$) z^??L۽#z ?Z$?L۽! z :?B?L۽]z?]?L۽ezw?7w?L۽10zDATA-4,H"I%$"H"I&%"H"I'&"H"I('"H"I)("H"I*)"H"I+*"H"I,+"H "I-,"H "I.-"H "I/."H "I0/"H "I10"H "I21"H"I32"H"I43"H"I54"H"I65"H"I76"H"I87"H"I98"H"I:9"H"I;:"H"I<;"H"I=<"H"I>="H"I?>"H"I@?"H"IA@"H"IBA"H"ICB"H "IDC"H !"IED"H!""IFE"H"#"IGF"#HI$G"$%@%&@&'@'(@()@)*@*+@+,@,- @ -.  ./  /0  01  12 23 34 45 56 67@78@89@9:@:;@;<@<=@=>H>?A?@ @A AB BC CD $ DE!&!EF"""FG#($#G$JK"KL"LM"MN"NO"OP"PQ"QR"RS"ST"TU"UV"VW"WX"XY"YZ"Z["[\"\]"]^"^_"_`"`a"ab"bc"cd"de"ef"fg"gh"hi"ij"jk"kl"lm"mJJnoK@KopL@LpqM@MqrN@NrsO@OstP@PtuQ@QuvR@RvwS@SwxT(TxyU!UyzV Vz{W W{|X X|}Y Y}~Z(Z~[![\ \]@]^@^_@_`@`a@ab@bc@cdHdeAef fg gh hi ij jk kl lm(nJm$n         @@@@@@@@@ ~ ~} }| |{ {z zy yx xw wv@vu@ut@ts@sr@rq@qp@po@on@@@@@@@@@@         @@@@@@@@@                                              I 8h _xY@AQ@BR@CS@DT@EU@FV@GW HX JZ@WK[ L\ M] N^ O_ P`@`A _P@u^O@u]N@u\M@u[L@uZK@uYJ@XI&WH VG UF TE SD RC QB p o ~n }m |l {k zj@yi@wg vf@ue@td@sc@rb@qa a@bq ucr uds uet ufu ugv uhw uix@jy@kz@l{@m|@n}@o~@p@(@@0@?/@>.@=-@<,@;+@:* 9) 7'@W6& 5% 4$ 3# 2" 1!@!@ "1@u#2@u$3@u%4@u&5@u'6@u(7@)8 *9 +: ,; -< .= /> 0?       @@ )u   @ @ @@@   @ u u u  u  u  u  @@@@@@@@@@@@@    > > >  >! >" >##"!     44444444C3 B2 A1 @0 ?/ >.=-<,;+:*>9)@>8(@>7'@>6&@>5%@>D$$5%6&7'8(9):*;,=4->4.?4/@40A41B42C43D4+ 4u@t@s@r@q@po~n}m>|l>{k >zj >yi >xh >wg >ffwgxhyizj{k|l}n4o4p4q4r4s4t4u4FV GW HX IY JZ K[L\M]N^O_>P`@>Qa@>Rb@>Sc@>Td@>EeeTdScRbQaP`O_N]L4\K4[J4ZI4YH4XG4WF4VE4^~4m<M      !"##"!     C344B24A14@04?/4>.4=-4<,4;+4:*49)48(47'46&45%4D$$54%64&74'84(94):4*;4,=4->4.?4/@40A41B42C43D4 4+uvvtvsvrvqvpvov~nv}mv|lv{kvzjvyivxhvwgvffwvgxvhyvizvj{vk|vl}vnvovpvqvrvsvtvuvFVUUGWUHXUIYUJZUK[UL\UM]UN^UO_UP`UQaURbUScUTdUEeeTUdSUcRUbQUaPU`OU_NU]LU\KU[JUZIUYHUXGUWFUVEU~vU^4vm<v4vU UM@I  h8 ^Yx@QA@RB@SC@TD@UE@VF@WG XH ZJ@\[K ~\L ~]M ~^N ~_O ~`PA` tP_@O^@N]@M\@L[@KZ@JY@tIX)tHW tGV tFU tET tDS tCR tBQ tp o n~ m} l| k{ jz@iy@gw ~fv@~eu@~dt@~cs@~br@~aqa@tqb rc sd te uf vg wh xi@tyj@tzk@t{l@t|m@t}n@t~o@tp@t(@0@@/?@.>@-=@,<@+;@*: )9 '7@\&6 ~%5 ~$4 ~#3 ~"2 ~!1@! t1"@2#@3$@4%@5&@6'@7(@t8) t9* t:+ t;, t<- t=. t>/ t?0 t         @@ &T  ~ @~ @~ @~@~@~   @t           @t@t@t@t@t@t @t @t                                                         0        @@ME`!400MESphereUaa<<pb<We@PM@߹N@tAP$DATA9DATAp1b(Tjd:X*jnJqN@ y`*|UM@ǿ>;bX~K@}CxvG@:{x\R(E@.7|H C@I|EE>@u%0#y}Nx5@d=` mgMB<&@MQp.za@V""ʉ,<0@ VQ)6lJKL@?ƟL%ʽɱ?pa<#_Iޣ+?$)tǸW-?H#Jᦅ`«>4aw `b>S :|~+Q*?D%4*yP?{1F֢?eEMzv̾Y?XVT=׫n?lehWDDq @xfgH)Ȟ!@]t)sT6&1@LzlŽ-;@26y;|+KA@}30x@@X|oi@stB@myDzE@ϗUzCG@ǿ\{>?7xH@ޡ{5<@t,;@j,ȿsd9@!8s3EC7@hJuL4WJA6@qx 7@y*xyN2@H 6vHˎҷ%@"c/n"n@\w]jϡj.@kE]3ۢMn?Q}_*.?(l`B׆h?B>SmZɏؾ\t??9P'!?O(8@vؗXǝ> W-?j>!C1, оK?J+D6C4^?}mARgǃHH?V\`,ZNu/?ط~\Ʉ?8݉SF J?'0᷿V@r /]ȿ@^vT'h_mؿO @Xf-kO&@`54x9m ZyD*@h nk&@jSU7['@Yh忞](@$ȿ(L.?Ό r>"*츾n>>%"K!ܓ{m7>-7R4c?CDEïpwD?cFկq? ;جRֿn? {K8آ?Y_7&A#?9<σ?{.p ?\;N'y?.70CM(8?{F '5?Ιe}FH(?@Fs(/?S$ȿ͔E0)o?F;?7 t0!:!?ȿW/!:?l`/ub+:Q?OщJ0 <ǜ?;.a/p9?C2C*zL2U?R1" Lr%?mQ 5Q z?mj R`? ̈́ qD?GrOBʿ&?9s8լ\ܤm?FYfFĴiz>>DUM(>+5rȾڇ>!BwѾ=v!"L닆&2r>i)8:f؃8rN>g9IK>jO?PͶֿ>d?E50yD>8r!d.&p>piu >m46/$c ?^ޗ,& vu2 ml+K4/+r J^ח$P<,GBq+׃}.Gʂ6SEnhe_xqT3EUF`2ȿ\Fjb;,s%:0*{ȿU$0:̚d\|g,:\̉ D=B(l%+53 rȾ!!z+W=̓" #7plbOPs3V<8ŦRZ/S_BY<36!g\hпZϿ9@CdW2+ҒR2~9P X#='4CTB* {8㿋' ޗS忴 (# (ǿݵO% )&ǏCg룿<~]Rq;χǿ :zB:='Ȋ+@=zX䛿`7&+ׂ^i2!IBˎ%dҿ|uy­ǡjB0ҢMd:]1.lɿot_+ibIpUrY8U پu:-P6ғGq!(?t'QB6X;\!,1gw/ ,*z%3#2y2F6j`MHMY>̾׿ [ySC1hhV ?q VjFR!a&٩;&8 17O Ȓm .E< 7mA+AEV'xw3;BX sS|@DP凃 D*F\ÄC{G{ǿ~/T?H3ʏ[zbnN ҏ8f|MHsǿM~6L)u΁gҵx|HZjREFB3IoC? +FM?1'9O5!@C k8tB.&6Q(Hp.HyZ!}#<t#Z(nK޿;P%=Ax˽??h#Mɠ'"ln*& ;q΀W.$_\ 4`{”8 %-=”.r=.$\ 4Ӫ=ln*߳;q4=??Mɠr>K޿;P|=Ax(>t#Z >>HyZ%}pR>.&6Q}(H_>5!@k8\V>M?1'x9uY>oCST .n>EFBS;(W>|H(NS>6L) ΁g#9>MHsǿQ \~>N ҏM 8C?H3ʏ ![G?{G{ǿ=!~/7H?*F\vÄD?DP= D?;BX ij 0?AEl !2?E< 7Ar*?8 17OȒ.?!aVٙ٩w ?VjtRZ>hq _>׿ [C1ho>MHY>>2Z6j^<>*z%#J)>w/ U$h>;\!Qӂ1(>Gq!(*t'QM>u:ӯ6?IpU8U2?lɿo+i Q?d:41n?&0?|uy­^֐?%dvҿ?^i2!I?`7&+l*+?=zX/]g_?:=';4+ͦ?:z/5{?Rq;χǿD6 !?<5~A? )&ǏIg?(ǿ#JO^? (#I=?' KK~w?J%"/K<?='4Dsx?>P XS9# ?xM*\?<Xߢ``?9(ۉM?տ#y?:Wdۤn2zL?Sb=?^`B:S->`@,ѻ*Ƒ> "E 6ޫ>Gq "Ҋ1?vit.2PEF?= FԳPC:ޞ?]zjg0Hn=?~9<%D,^?d+Ғxs?ZϿ96 @A?!<?<3 N @Z/S_TYl\@<8YwP8@ .Z<@plbZS@[(F@Rǿ\!A݇@ُ[צU6*@]kﹷ")@.Aῂȿ=k1Q)@Ǩ%$kv(@M߿Gjx} '@ݿ j )@8غ7k!@տç\ibN@ƿ{\erG @NdX~ͥ?⢿(9)Ċ]?֋vJ'?r"W7Te?D\ dй5QG-g?Q]DH?t?.?ľ.9>W=̓".#^>!F!z -?l%+C3 S~?˾>t=Bt?rYLgM?e&wsǽSJ?JDS0@b`a*L:HW@?z|=Zw&@/mkNSR3@}\VSs:@lH2w9@mޘvC1;@\$v!u;@̚d¦v|;@0*{ȿv$<@,v%G@} G@`2ȿ}èF@}YF@nhe_4}* D@g}C@q+7}=@,GNvĭ0@+r J^)h$D!@ mP+K+@ vuE2?aȾDrޤ>?.L,d,:H?: |Om2ܩ?5:Nq9)9K=6?)<͢)znB>ʌv!eݼ9>4!F:@! uF9?90( kc?8r17Uӛ %?gB0K'?`a]v)V@n $j%"@︺l$@JeK ^94@_We'A@?Bvx~HJ@PT҆(R;G@PV,aI@'TZJ@ț:^J@RǿK@uG@?M}V G@y%?ȿ}4}F@?}GYF@\?4`2}M% D@^?g}uC@?+7}j=@m?!GLv9 ƭ0@$c ?^"hD!@>mP4+@p>piu?D>8rWޯd?>d50?>jO?8rN>g9=6?r>i)Ųf^>=v!VL닆>ڇ>!Bw9 -?>+!ʌ~?>>BUMx?m?CYĴlM?&?9s"լ?qD?GrJ@R`? ̈́* W@ z?mZjw&@?mk 5 R3@U?Rs" :@?C2wI+9@cɘ?v/@0;@Q?O v/s;@?l¢v/u;@!?ȿv/<@?7 v0!w6*@o? kF()@/?S$ȿ3kEsN)@?@ kFs(@5?Ι6j(F '@r?jeF)@y?.7kC!@?\h;P@σ?{e.tG @#?9X<?8آ?Y_'&]?n? 时K'?q? mج?D?cկlg??CDxï?7>-tR>n>>%"ާܓ{ث>r>"9??>(L.dΌ\+F?=?qE`➀?-z?f%r=??+c??ʎF<}s?L?rc9A?v?!:AI?#?t6MuQz @,@m^iTV*R@@8YZm9@ @5)Z4ZW3@M5@IZY<@~@ᅵ[/Y"G@9?@$ȿ[YΈ@D@D돿[3Y6Ž?(@ꏿIh?](@$ȿIhqB?['@Hhw?&@kGi?%@AEjk?&@`54Bl{x?O @X8-k ?@^v('h?V@r | /]b?J?S0?Ʉ?8݉y?/?ط~cL??V\`ԥN|?4^?}mA,gǃt>K?F+76>j>!,wh>ǝ> ҉?͛>'!?O(ȿvؗP>\t??9>??B>Sɏ2??(lqB׆Q?n?Q}* n?.@]3?"n@\w]je֐?ҷ%@"cG/n?N2@H6v?7@y*)XxVΠ?JA6@0%v26P?C7@h1t?d9@!8]4s3?,;@j,ȿ6s?<@5tC?7xH@!{5SG?G@ǿt!\{>!,H?zE@ϗ< UzD?stB@(z+D?0x@@9|a/?KA@} -1?;@268y;*?1@LzlŽ/?!@]sT6} ?@xf)Ȟi>n?leDj>Y?X=׫(=>?eE^zv}>P?{1Q֢Z<>Q*?D%s(>b>S |;=«>4a`==-?H#ᦅU=+?$)tǸs~=ɱ?paL@?ƟLڒ (>0@ V6l>>za@VEݬ"ʉCR><&@MQ]W_>x5@d=mΞU>>@q%#yY> C@V|>(E@.7,}s>vG@: {iX>K@ }CA>UM@ǿs >; ~>JqN@ T yz>d:XT&M>ͷN@O m9?GI@6[_N|?h=@K4t r?)@<H[i} @|@;<[Ye+"+@3 ?LjF=@f?hhv0II@o?&} M@ZWII@t֊}r=@Righv~!+@Hjt @1>[Am|?))Hl?<=u24$9?KIrF^#M>Ns p@`@C`@G?`@iAO5zGU?3@iA/sK`?!@iA9EgP @" @iAXXS#@=?iAg7EVd4@?iAs/Xp@@?iA1zMZC@8*iA|Zn@@iA1zZb4@򔿠iAsSX#@)=ؿiAgɺV @$ iAXSW?!iA9EhPU?3iA/K?>iAO˅Gh͘<BiA]040BiA]>iA˅GJ3iAQK;ؿ!iAǺhP. $ iAS!)=ؿiAiɺV3򔿠iASX ?iAυZ(B8*iAkZ ??iAυMZ3?iA挭/X!=?iAi7EV2 " @iAXSDؿ!@iAǺgPJ3@iAQsK>@iA5zG=0B@iAn|]x2@@3 AeJrY9@ r/@@3 ABpJ9%D%@@3 A5ԻiR9Zǿ@@3 An$_Y97?@3 AP_9w?@3 Aࠏ?d9b%?@3 AO+h9А/y ?@3 AΏQj93P@3 Ak9ΐ/ @3 AΏj9b%鈿@3 AO9h9ƿ@3 Aqd97@3 A_9Rǿ@3 AnܠY9%D%@3 A5ER93 r/@3 A龏J9Xg2@3 AeY9Z<2@3 AY9k&?r/@3 ATJ90?D%@3 A+ER9n ?@3 A?ܠY9B?@3 AP_9|@ƿ@3 A _qd9bh&@鈿@3 Ai9h9^0@ @3 A2pj9N4@P@3 Adrk9^0@y ?@3 A2pQj9bh&@?@3 Ai+h9~@w?@3 A _?d9B??@3 APP_9v ?@@3 A?$_Y90?D%@@3 A+iR9x&?r/@@3 ATBpJ9<2@@3 AJrY9LJ@6A`XRl?L @6A}%Z_RIҪ?0?6Aj6pQfRU??6A=E>EmR?ݻ?6AhQd6rRBW @sh?6AqZv%uR|@r>6A`xRt@6AaxRz@6A`xR@W @sh6AqZuR?㻨6AgQrRN?ֿ6A=EºmRBҪ?/6Aj6fRul? L 6A}%~_R[>F6AXRC<@6APR@6A4PR.F6AXR;h L 6A~_R&Ǩ/6AɐfR2ֿֿ6AúºmRy㻨6ArRQ sh6AuR6AxR6AxRr>6AxRQ sh?6Av%uRݻ?6Ad6rR9ֿ?6Aú>EmR-Ǩ0?6ApQfRHhL @6AڂZ_R.J@6A`XRѴB@6A4aR ͹:2n?$AClt?$ACBl6u4?$A)d>lքB?$A 8lM?$AJз/lƿ9?$Az%lݿ@7?$Al꿖׺>$Aݽ( l? $Al꿥׺$Aݽlݿ@7$A1lƿ=$AdžlM$AJIlք@ǿ$Aǿl6q4ݿ$A)lp$A򽽶lع:.n$AlRn<.n$APl1J>p$A- l:?q4ݿ$Al?@ǿ$A%ǿl.*?M$A/Il?=$A8l?@7$AO>1l?׺$A#BlJ? $AnCl?׺>$A#B( l?@7?$AO>l?9?$A8z%l4*?M?$A//l?B?$A% 8l:?u4?$Ad>lBJ>t?$A- CBlhTn<2n?$APClѣMzt?"Aj h>o^??"AV:od"A:N o? >"AH>c !oC?@"A?!o? "AH>!o哛?"A: oK-?-9"A4on?^k"A,odoz>vt"Aj oM<="A#n_;="An+Nvt"Ao>\"A>oIN8"A$oj^k"Ao/"-9"A.˵oɈ"ASŲ o "A!oh8@"A!o >"Ac !oˈ>"ASN o3"-9?"A.K#ojZk?"A,oQN8?"A4oL\?"A:o7Nzt?"Ah>oҨ_;A?"A@n[;Y?%AV ^pO?%A!TX^8;z?%AO_^?a?%AGf^i>??%A=l^{`?%A+/p^\y>%A3!t^)S>%AKv^)%Aw^'S%AK'v^XyϾ%A3t^u`%A+p^b>?%Al^8a%A!f^,;z%A_^vpO%A!*X^;U%A_ ^?%A*X^>z%A!_^p?a%A0!f^B??%A=l^d?%AGp^}?Ͼ%AOt^C?S%AT'v^4?%A]Vw^E?S>%ATv^}?>%AO!t^d??%AG/p^B???%A==l^w?a?%A0Gf^>z?%A!O_^j_>?%ATX^ؼ?IZ?))Ah*F>ȞM?))A(b1F;> 9?))As;X9F3 ?_?))AKK?F;?L>))AXp;DFqP?dW>))Ab(HF]?->))AhJFba?>))AjKF]?-))Ah"JFqP?aW))AbHF;?L))AXDF3 ?_))AKX?F1> 9))As;9Fz>M))A(1F8>IZ))A*F4<ŏ^))AHДEѕ;ŏ^))AДE(IZ))A*FѧM))A 1F 9))A9F_))AXX?Fw7L))A DF[LaW))A,HFY-))A"JFL]>))A KFY->))AJF[LdW>))A,(HF|7L>))A p;DF_?))AXK?F 9?))AX9FѧȞM?))A b1F(IZ?))Ah*Ft;͏^?))A0kEBα;p:?.AT}:, 6?.A {lꋾ?,?.Asp b̾?.AQMhsqG?.AOXwXF)>.AEy*>.A0{w5}>.Ax| 92.A}w5}.A|*񱎾.A{SD)Ͼ.APyqF.AOMwb̾.AQsꋾ?,.Ap 6.Algϱ;p:.A:>,6.Awl%>?,.A0pu>.AEs݇?F.AXMw?D)Ͼ.AKhPy&.?񱎾.As{.9?}.A{|G#=?2.An}}/9?}>.A{x|(.?>.As0{?F)>.AKhEy?G?.AXXw}>?.AEMhs,>?,?.A0sp H>6?.Aw {l,6?3AU,>?,?3A|!P}>?3A0H?G?3A==?F)>3AH0(.?>3AP|!/9?}>3AUG#=?23AW.9?}3AU&.?񱎾3APޖ?D)Ͼ3AHdϖ݇?F3A=!–u>3A0@%>?,3A|!*G>63A/>,3A/*>3A*|!XF)>3A@0qG?3A!= b̾?3AdHꋾ?,?3AP, 6?3AUBα;p:?3AXW;8^?3A~[(gZ?3A`[<V駾ϻM?3AYV<'9?3A>wM<"3/v?3A A<7o>3A3<xLoo>3A#<$Y:->3A-<%l]?3A֢<$Y6-3A<xLlo3AY<7o3A><30v3A <'93A>̉<M駾ǻM3AY<(gZ3A<;0^3A~<4<0^3A<9>gZ3A-<>ǻM3A#<S>'93A3<UI ?0v3AA <;?o3AwM><P?lo3AVY<:]?6-3A`[<]a??3A*]<:]?:->3A`[-<P?oo>3AV#<;?o>3AwM3<ZI ?/v?3AAA<\>'9?3A3wM<>ϻM?3A#V<9>gZ?3A-`[<4<8^?3A[4<8^?3A[Y9>gZ?3A-`[W>ϻM?3A#VW\>'9?3A3wMWZI ?/v?3AAAW;?o>3AwM3WP?oo>3AV#W:]?:->3A`[-W]a??3A*]W:]?6-3A`[WP?lo3AVYW;?o3AwM>WUI ?0v3AA WS>'93A3W>ǻM3A#W9>gZ3A-W4<0^3A<Y;0^3A~<Y(gZ3AWM駾ǻM3AYW'93A>̉W30v3A W7o3A>WxLlo3AYW$Y6-3AW%l]?3A֢W$Y:->3A-WxLoo>3A#W7o>3A3W"3/v?3A AW'9?3A>wMWV駾ϻM?3AYVW(gZ?3A`[WW;8^?3A~[Y8;y;?3AX[ !8?3AUj]댾s-?3APj]&;?3AdHj]$^?3A!=j]5 >3A@0j],>3A*|!j]6R>3A/j][:|23Aj]6I3A/j],3A*j]0о3A@dj]^3A!!j];3Ad@j]댾r-3A*j]| !83A/j]9;q;3A[,!83A/j].>r-3A|!*j]>3A0@j]Wt?3A=!j]h?о3AHdj]&0?3APj]:?I3AUj]9q>?|23AWj]:?R>3AUj]&0?>3AP|!j]m? >3AH0j]\t??3A==j]>?3A0Hj]4>s-?3A|!Pj]hP>!8?3AUj],!8?;Aq*64>s-?;Aa,!k/6>?;Al@h`36\t??;AQQ66m? >;Ag`i@96&0?>;Ak],<6:?R>;Aq=69q>?|2;As>6:?I;Aqc=6&0?;Ak<6h?о;Ag`96Wt?;AQ66>;Al@36.>r-;Aa,ߔ/6ZP>!8;AC*6,66R>;AK=6,>;A],<65 >;Ai@96$^?;AQ66&;?;Ah`36댾s-?;A!k/6 !8?;A_q*68;y;?;A_s6Z;x7? )wjɾԖ?    3 D) ϖ    Ԗ? L)? )w>3? ;0? R&? ?    3?W| > 3?N|  R& 30      L.A=X§_F> L.Ag=$Jɉ> L.AJs?Љ'/W| > L.Adz`2T3 L.A|'/N| L.AdzX:$Eɉ L.AJs/\FȾ L.AgUE L.A=X>X6ž L.ATEgR& L.A/Ms30 L.AWhz谴;4 L.A)|}5+<4 L.A|/>30 L.Ahz">R& L.A?Msb> L.Ag? L.Aç>X\?Ⱦ L.A>UEr(?Eɉ L.A/ >3?N| L.AX6?T3 L.A7 >3?W| > L.Au(?Jɉ> L.A?Љ\?> L.A>?> L.Aç§b>? L.A<">R&? L.A?г/>;0? L.A瘅6+<4? L.AL&;d]?(Ai1H (3Y?(AoigH+AL?(AdaHxr8?(AsŢWHi!?(A}JH.7|>(Ae:HҮKȩ>(AQ(HwNX->(AH\е(AHtNX-(AsHЮKȩ(AׯH.7L}(AewŬHdT(A}|Hnr8(As^H!AL(AלH (_Y(Ao뗘H;](Ap1H/4<](A3p1He8>_Y(AHm>L(AV(H!>r8(A:^H?T(AJ|HE;?L}(AWwŬHO?ȩ(AUaׯHd\?-(ARgsH`?е(AXiHd\?->(ARgH O?ȩ>(AUaQ(H$E;?|>(AW:H?!?(AJJH!>r8?(A:WHm>L?(AV(daHe8>3Y?(AigH4V?݃%ATX^* >y?݃%A!O_^pJ?`?݃%A0Gf^,IB?J??݃%A==l^c?-L?݃%AG/p^|? >݃%AO!t^s)?S>݃%ATv^ˆ?ص݃%A]Vw^q)?S݃%AT'v^|? Ͼ݃%AOt^c?dL݃%AGp^%IB?K?݃%A=l^iJ?`݃%A0!f^ >y݃%A!_^_>l݃%A*X^?K?݃%Al^_dL݃%A+p^x Ͼ݃%A3t^US݃%AK'v^ص݃%Aw^WS>݃%AKv^x >݃%A3!t^_-L?݃%A+/p^2>J??݃%A=l^84`?݃%AGf^̾y?݃%AO_^ NV?݃%A!TX^l;C?݃%AV ^`;?jp"A@nƾ?jp"Ah>oȄw?jp"A:oR7?jp"A4om jj?jp"A,oْ8?jp"A.K#ojE>jp"ASN oP{s>jp"Ac !ohHjp"A!oN{ߠjp"A!ohCFjp"ASŲ o8jp"A.˵oe j,jjp"AoJ7jp"A$owjp"A>o뢿jp"Ao`;jp"AndM<jp"A#n >뢿jp"Aj oX?wjp"AV>o;?jp"AQ#$o n?,jjp"A,oθ?8jp"A4o?CFjp"A: oj?ߠjp"AH>!o?Hjp"A?!ol?s>jp"AH>c !o?E>jp"A:N oҸ?ْ8?jp"A4K#o n?j?jp"A,,o;??jp"AQ#4oX?w?jp"AV:o >?jp"Aj h>o&eM<?jp"A#@n`m?A- CBl_:?<{?Ad>lq?m?A% 8lƛ??A//lI?ҕ?A8z%l:W?6?AO>l?:>A#B( l?AnCl?p;A#Bl7W?A6AO>1lI?𕄿A8l?߿A/Ilq?mƿA%ǿl_:?R{ܿAl>A- lm<ͥAPl:ͥAl~A򽽶lH6R{ܿA)lfmƿAǿl߿AJIlo>ƿ𕄿AdžlLܿA6A1lp;AݽlvAl:>Aݽ( lLܿ6?Alu>ƿҕ?Az%l?AJз/lfm?A 8lH6<{?A)d>l~?ACBlX:?ACl\@A4aRd쾖s@A`XRg @AڂZ_R 9?ApQfRֿ?Aú>ElR6.?Ad6rR g?Av%uRx:>AxRUa/AxRxW;AxR 3gAuR0.ArRֿ4ֿAúºlR9׳AɐfRg A~_Rd쾟sAXR P(\A4PR*`<(\APR>sAXRk? A}%~_RD?׳Aj6fR#?4ֿA=EºlRL?.AgQrR\ @3gAqZuRZ~@W;A`xRf@/AaxR\~@:>A`xR^ @g?AqZv%uRR?.?AhQd6rR#??A=E>ElR%D??Aj6pQfR!k? @A}%Z_R.>s@A`XR2a<\@AaRO{< M2@@ AJrY9?.@@ ATBpJ9)?$@@ A+iR9d?w@@@ A?$_Y9m?'?@ APP_9uc@?@ A _?d9%@)w?@ Ai+h90@# ?@ A2pQj9p3@L @ Adrk90@# @ A2pj9%@Jw@ Ai9h9sc@)ƿ@ A _qd9m?'@ AP_9c?@@ A?ܠY9"?$@ A+ER9u? .@ ATJ9z<M2@ AY93M2@ AeY9= .@ A龏J9$@ A5ER9Xƿ@@ AnܠY9b'@ A_9])ƿ@ Aqd9$Jw@ AO9h9i.# @ AΏj9xj2L @ Ak9k.# ?@ AΏQj9$)w?@ AO+h9]?@ Aࠏ?d9b'?@ AP_9Xƿw@@@ An$_Y9 $@@ A5ԻiR9J .@@ ABpJ9xD M2@@ AeJrY94-,A@#An|] ?>@#A5zG̔?53@#AQsK׿mH!@#AǺgPnT ( @#AXSs!?#Ai7EV`3u?#A挭/Xj>k^?#AυMZ$B#AkZj>^#AυZ`3 v#ASXs!2׿#AiɺVjT ( #AS׿xH!#AǺhP̔J53#AQKw ?>#A˅G-5A#A]<<5A#A]"??>#AO˅G ؖ?J53#A/K.?xH!#A9EhPY @( #AXS{y"@2׿#AgɺVMf4@ v#AsSXp?@^#A1zZ;*C@#A|Zp?@k^?#A1zMZOf4@u?#As/Xy"@?#Ag7EVY @( @#AXXS7?mH!@#A9EgPؖ??53@#A/sK"??>@#AO5zG<,A@#An|]f<`H@ @DO9!?7D@ @f}ʛ?! 9@ @0v?ț&@ @GOj/@Z @ @hZhZ'@? @OjGV:@\? @ v0E@]? @f}I@ @E@?^ @f}V:@] @ v'@ ޿ @Oj)@i @hZ?ӛ& @Gʛ?* 9 @0A9!?BD @d<`H @DLD`H @L #BD @皂g* 9 @߿ӛ& @ i @& ޿ @`Q9] @vD?^ @H @%xD]? @bQ9\? @0 &? @G Z @ @hZ߿ț&@ @Ojo! 9@ @v#7D@ @f}D`H@ @II@"E@<EE@"E@}њg:@"E@?vW'@"E@kjG@"E@ZZ'I0?"E@G|:yl?"E@0Fr?"E@xI@$?R&=}v'M@͵:&=R>I@%R&=},vɣ=@9R&=Nv&>*@WR&=jn@4R&=Z@?F)R&=yGԕ-&?iNs p)9?PHG^F!?j<,34$?ud)*H!@02>[An*@R⿌Ijt>3=@p替hhv~СH@8D}r^L@#WۡH@ ?}`3=@?Xihv0V*@O?MjF@@|<<[Ye?Ta)@D=H[i}#?'f<@hL4t ,9?hH@[_N|pL> N@ȁ my>c:X}>rM@8T yԅ>;L@Jſs >:>K@~ }B)> RG@{ {i >vD@,}gX>hB@V|T>>@$#y>^>o4@J&@wLQ0>>g@9+UEݬ"ʉ(>8@T6l1> ?SKڒ=/4?";q_Iԩ=@?]k(tǸՋ=f-?V"ᦅ=2>:`r(>?֦>|;>v)?o$U>2?WF0Q֢>=?D^zv>c7?kIW=׫c4>(?߯cD ?k@Ye)Ȟ&?'!@M\sT6=*?q0@KzlŽ%1?kB;@48y;T/?{@@} zC? ?@9|aC?A@3y(zFG?!E@< UzCG?F@:ƿt!\{=GC?`G@x>!{5p?nh;@t>5t~?:@Iƿ6sl$?.9@n-]4s3ǣ?6@V1t?5@0%v21?̀6@7J))XxV?Ӹ1@vG6v^?-%@aG/npO?X@u]jm?~U@]3: Q?p?{* Q2??jqB׆dd? ?Qɏ~%>Vs?v8>N>3 ?)"'ȿvؗg>C>w҉?zF>> ,p >?*76= ?}z]?*@,gǃL?p?^ԥN9$y??A}c4??j_??ȋS05R?|@^| /]a?=@|u('ht?[@V8-kQ.?Kg&@2BlR?g%@/Ejڷ?l0&@YkGi? '@&Hhv?'@AƿIh?r(@15Ihg@;@5[3Y6@H@)Bƿ[Y_k@I@[/Y@; @ZY @l @7 Z4Z@3U@7YZmO @@]iTV??}^~6MuQz~?V?[:AI,?l?rc9??F<?{?$+4? \y?]e%.E?=?+D`2? n>s-dΌ L>r>e!9Oz>8G>>OW!ާܓ?>,tR\f?Zc?UByïj?C?c'bկw?E2q?Mmج?"?Ɋ时K ?O?—'&@ ?`vX</@?*ze.: @q7?*[h;w(@8?m6kC]&@_?'jeF><(@ ?Q6j(F&(@? kFs.)@Gs?Aƿ3kEh)@T?&B kF;@?Sv0!X;@3?4ƿv/ :@9??bv/u:@EЙ?O v/s},9@pI?v/@9@d? 1wI+[2@ْ?yQs" %@6G?g lk 5j@t =BUM{,?B>*!ʌ>W>3 Bw?]> 6=N VL닆=5?S>s(Ųft?M>+8e?ʒ>NR ?^b>b508?М>ϜpWޯd@>3sb!@0>lP4M0@[ ?c\"h9=@ )?FLv9 i?C@n?U*7}jD@?Kg}uE@?O2}M%F@H?쿪}CzF@?b#ƿ}4BG@?b}VK@0{)i5J@6ƿݱI@Ԃ5I@fg'TEF@3vI@UX'R"@@"=Avx3@& Ve'"B$@$"ydK w@hxukh@;h%"@? }\v)?n[I'h?8I5Uӛ+8?9' k >E: u#]>zN eݼs5?s(znv?M58)9>f?ߗ.Nm2ܩP ? z}b,:H6?YǾͭpޤ>@]tE2b!@4lP+KK0@ \)h$b9=@Q9FNv?C@*7}D@Og}E@N4}*F@zT쿫}DzF@ "ƿ}BG@,b}x;@Qv%X;@Y/ƿv$0:@yJZv|:@{ۙ$v!ur,9@^)vC9@qq1wa2@.ᒿQs%@N3lkNSi@Ky=Zya@:_"*L:HI?C`ЁS0 F!za|>տ?N[ib{|(@H߿=6k&@0ܿ;j?(@)߿zGjx_(@߿ޮ$ky.)@0ƿ=k1)@U"Y;kﹷw@HC?$[צU@ƿ\!A:s@Hv[(y@= ZS @u Z@c7YwN @`]TY? ~ N~?t` ‹<'?sοn6 @? 4+Ғ? }%D,4? ybf0H E?8=DԳPC:OB?KKA-2Q>}p!q!ҊDP>Ci E <>+ѻ*uѮ9ӯ6>< '*t'QNg>QQӂ1(>| U;>P$*$#>1Z6j>!sFY>>AֿZC1hT4>)vgq  ?MM 83̅>M'ſQ q>#K 쿋 ΁f>OFH(>ES;(0X>)BST U>>&x9D_>4 >k8#R>F&O}(H0>># 5"Y%}(>` X U>{ݿN|=Ax|==MɠR=#)߳;qL =H."\ 4T=)]n)]n8  VH."_\ 4֠#)& ;qʽ=h#Mɠl{ݿN%=Ax۵` X(-# 5"Y!}AF&O(H N4 >C k80WE>&9PH)B? +qQEwOFHZjr}#K u΁f?{M'ſmM8+?EG["CJGſ~.zCEjS쿊Ä{?xCa@凃2 TBse+@ŏV'x-;m6mAE&0M Ȓ/!_&٩{, y1F6j.o+P$*$3#/| lzWQ,1S< '?t'QwgؾuѮ9-P6&N#TrY8U:.kJɿǞmt_+iL=0~]1ik`B0MDcx­R:,% cҿ 1EHa6)ׂ;,8=?O h9Ȋ+27}*:qilp:ſ `f{; ~C(Cg'ſݵO ' Z&ޗ+d)}{8Jg&f3CQ׿fW#Vȿ?3v\Gj'ߢ`>6H$M)Կ4+P# uyQ%[n2HMؒţ`X=4Q]mAR:Sо+/D*#Ci r0E S%}p!q!*Ҋ,KKA-?2֊A8=D,LPC:Q| ybfOH }JD, 4W2+Ғ Ͽsοn@vst` ‹g ~nI`]BYsc7Ŧk= mHv(ƿ!AHC?$6צUw(U"Y;ﹷ((0ƿÔ1Ӿ'߿ޮܔ:')߿zL9(O5k\v'H߿=6[y>տ?N[bzſdzf_O~ͥYbэ֣Ċտ%.& vJYKqv~:7TeKDb0F5QGWbof!CEH?þu,.79OC`ЁS0[:_"}L:HKyå[$N3l:NSӶ1.ᒿQ)~8qq1Ջ c;K+` 9{ۙ̉ 9yJZ\|S:Y/ƿU$:Qs%1=F,bjtE "ƿ\TDzTUbDNxqTF]6j:B*׃}34ֿ z}bE,:H"[ߗ.NPm2ܩkM58?K)9;1s(0:zn0ѾzN "WԾE: $u49'< kL8I5Oӛn[IW'k5ڿ }\O)b;h,%"|hxuk<#$"yd ]2& Vg'?"=AxHUX'$I(˸b B0Hfg/MHԂl0I6ƿJ0{)i:=F?bjVtE?b#ƿ\4DH?VD?OyXF?}6t9Bn?U*؃v3< )?F9 /[ ?c\ޗ 0>l4>3sМ>Ϝp!d5ֿ^b>b?E50sZʒ>N?PiM>+8IK1S>s(8:f0Ѿ 6=N "L닆kǾW>3 Bwd(B>*5DyH> =DUMQ:?[5XfFĴ$ɿ$&?Kq8լ>C?[_?z t,7RM8G>>OW!K!ܓr>e!*v n>s-?ΌpA=?+DL`Q| \y?]eQ%{?$zL+?4<Ͽl?c9}sV?[CAI?}^~ʲuQzrI@]V73U@7 Z)@ۥZ~; @QYeI@d/YcH@)BƿY ;@5@3Y6r(@15WhZ忦'@Aƿ C1,bWC>wW-?"3 ?)"'8@vؗ׾Vs?v8P,N ?QmZɏ:.?j`B׆Lp?{_*i~U@kE]3TDX@u]jR-%@a/nwӸ1@vG 6vk&̀6@7J)xyyӛ5@qx h6@VJuLP.9@n-s3r:@Iƿsenh;@t>tQ1?`G@x>ޡ{5w-CF@:ƿ\{= pC!E@Uz?A@3ymy2 ?@X| +{@@}-kB;@4y;r'&q0@KzlŽ'!@M\t)sT6k@YegH)Ȟ(?߯chWDB˾c7?kIWVT=׫H=?DMzvRx2?WF0F֢*+v)?o$4?֦>:|Ք2>:w `.HVf-?V"Iᦅ"@?]k(tǸ@ʽ/4?";#_I ?SK%8@TQ)6l-g@9+U""ʉA&@wLQ^JNo4@J<` mD>@$0#yHhB@I|RvD@|w RG@{{x|}K@~}BrP{;L@Jſ>:mrM@8y(ic:XDATAf<<, J  ^  ^  ^  ^  ~ ~ ~      "! #" $# %$ &% '& (' )( *)s+*@s,+@Q-,@C.-@/.0/010012/$/23.&.34-@&-45,@f,56+@v+67**78))89( (9:' ':;& &;<% %<=$ $=># #>?" "?@! ?BA@ >CB? =DC> <ED= ;FE< :GF; 9HG: 8IH9 7JI86KJ75LK6@4ML5@3NM4@2ON31PO2P1QQPSPQROORSNNSTM@MTUL LUVKKVWJJWXIIXYH@HYZG@GZ[F@F[\E@E\]D@D]^C@C^_B@B_`A@_ba`@^cb_@]dc^@\ed]@[fe\@Zgf[@YhgZ@XihY@WjiXVkjWUlkV TmlU SnmT RonSQpoRpQ@qppqroorsnnstmmtulFluvkVkvwjVjwxiixyh@hyzg@gz{f@f{|e@e|}d@d}~c@c~b@ba@@~@}~@|}@{|@z{@yz@xy@SwxSvwSuvStuCstrsqrqFVVV@V@v@@@@@@@@@@@@@@ssSSC&$ & f vv@@@@@@@@@@@@@@@@  QR@@@                @@@A@@F@V@                 S  S  S  S  R C! %              W w      | \         @  @  @, @   !!BBF@F@f@     T v      |    @@t@\\\!T!VVV@T v@@@@@v@@@@@@@|@@@@  < !!&@@@@@v@@T@T@T@@@|@@@@,   !!&@@@@@v@@@T@T~@T~}@}|@||{@{z@zy@yx@xwwvvuut,ts sr rq !q!qpFqropFrsnoBstmn Ftulm fuvkl vwjkwxijxyhi@yzgh@z{fg@{|ef@|}de@v}~cd@~bc@ab@ba`_@cb_^@dc^]@ed]\@|fe\[@gf[Z@hgZY@ihYX@jiXWkjWVlkVUmlUT tnmTS \onSR\poRQ\!pQT!QPRQROPRRSNOVSTMN@TTULM@vUVKL@VWJKWXIJXYHI YZGH Z[FG [\EF \]DE v]^CD ^_BC _`AB BA@? CB?> DC>= |ED=< FE<; GF;: HG:9 IH98 JI87KJ76LK65@ML54@<NM43@ON32PO21!P1!1012/023./34-.@45,-@&56+,@67*+@78)*89() 9:'( :;&' ;<%& v<=$% =>#$ v>?"# ?@!" "!  #" $# |%$ &% '& (' )( *)+*,+-,.-,/. 0/ !0       "            !!   Q  Q  Q  Q Q Q Q       C"  23  !12 !@01 @A/0 A`./ `a-.@a,-@+,@*+@)*@()@'(@&'@%& $% #$  "# 34 45 56 67 78@89@9:@:;@;<@a<=@`a=>@A`>?@@A?@ !@@A  !AB  BC CBED BAFE A@GF @?HG ?>IH@>=JI@=<KJ@<;LK@;:ML@:9NM@98ON@87PO@76QP 65RQ 54SR 43TS #"ed $#dc %$cb &%ba '&a`@('`_@)(_^@*)^]@+*]\@,+\[@-,[Z@.-ZY@/.YX 0/XW 10WV 21VU 2UT3 "CDe eDf UvwT uUVuv VWtu WXst XYrs YZqr@Z[pq@[\op@\]no@]^mn@^_lm@_`kl@`ajk@abij bchi cdgh defg STwx RSxy QRyz PQz{ OP{|@NO|}@MN}~@LM~@KL@JK@IJ@HI@GH FG EF DE     @@@@~@~}@}|@|{@{z zy yx xw gf hg ih ji kj@lk@ml@nm@on@po@qp@rq@sr ts ut vu vw f       @@@@@@@@        @@@@@@@@        @@@@@@@@        @@@@@@@@            @@@@@@@@        @@@@@ @  @  @                    100//..--,,++**))((''&&%%$$##""!! 11S2!BC !"AB"#@A#$?@$%>?%&=>&'<='(;<():;)*9:*+89+,78,-67-.56./45/0340123 CDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSRUTRQVUQPWVPOXWONYXNMZYML[ZLK\[KJ]\JI^]IH_^HG`_GFa`FEbaEDcbDCdc32ut43ts54sr65rq76qp87po98on:9nm;:ml<;lk=<kj>=ji?>ih@?hgA@gfBAfeBedCR2STuuTv ed Wef fg ghhiijjkkl@lm~@mn}~@no|}@op{|pqz{qryzrsxystwx tuvw cd bc ab`a_`^_]^@\]@[\@Z[@YZXYWXVWUV TU     @@@@@@@@    wv xw yx zy {z@|{@}|@~}@~@@@@     Rv       @@@@@@@@        @@@@@@@@    DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD               @ @@@@@@@        @@@@@@@@    ! "!#"$#%$&%'&(')(*)+*,+-,.-/.0/A@@??>>==<<;;::99887 76  65  54  43  32 2110 AA cB 01RS 12QR 23PQ 34OP 45NO 56MN@67LM@78KL@89JK@9:IJ@:;HI@;<GH@<=FG@=>EF >?DE ?@CD @ABC /0ST ./TU -.UV ,-VW +,WX@*+XY@)*YZ@()Z[@'([\@&'\]@%&]^@$%^_@#$_` "#`a !"ab  !bc cbedbafea`gf`_hg_^ih^]ji]\kj\[lk[ZmlZYnmYXonXWpoWVqpVUrqUTsrTStsCBDCEDFEGFHGIH~JI~}KJ}|LK|{ML{zNMzyONyxPOxwQPwvRQvuSRutBcddTtuTuvTvwTwxTxyTyzTz{T{|T|}T}~T~TTTTTTTstTrsTqrTpqTopTnoTmnTlmTklTjkTijThiTghTfgTefTdeT ^ V V V@V@V@V@V@V@V@V@V V V V V ^ \ \ \@\@\@\@\@\@\@\@\ \ \ \ \ T aPQQPORRONSSNMTJTMLU^ULKV^VKJW^WJIX^XIHY ~YHGZ ~ZGF[ ~[FE\ \ED] ]DC^ ^CB_ _BA` B?@A C>?B D=>C E<=D F;<E G:;F H9:G I89H J78IsK67J@sL56K@QM45L@CN34M@O23NP12Oa1Pa0110/2$2/.3&3.-4@&4-,5@f5,+6@v6+*77*)88)(9 9(': :'&; ;&%< <%$= =$#> >#"? ?"!@ " ! #" $# %$ &% '& (' )( *)+*,+@-,@.-@/.0/a0QaS @          @@@@@@@ @@@@@@@@ @            a@aFVV@@@@@@@@@@@@@@@@SSSSCaaFVVV@V@v@@@@@@@@@@@@@@ssSSCaa&$ & f vv@@@@@@@@@@@@@@@@  aQaR@@@         ~ }~ |} {| z{ yz xy wxvwuv@tu@st@rsqraqAapqqporronssnmt@tmlu@Fulkv@Vvkjw@wjixxihy yhgz zgf{ {fe| |ed} }dc~ ~cb ba b_`a c^_b d]^c e\]d f[\e gZ[f hYZg iXYh SjWXiSkVWjSlUVkSmTUlRnSTmCoRSnpQRoaQp@PQPORQONSRNMTS%MLUTLKVUKJWVJIXWIHYX HGZY GF[Z FE\[ ED]\ WDC^] wCB_^ BA`_ _`ab ^_bc ]^cd |\]de \[\ef Z[fg YZgh XYhi WXijVWjk@UVkl@TUlm@,STmn@ RSno QRop @Qp@pqBporqBonsrFnmts@Fmlut@flkvu@kjwvjixwihyx hgzy gf{z fe|{ ed}| Tdc~} vcb~ ba  ~ }~ |} |{| z{ yz xy wxvwuv@tu@tst@\rs\qr\@qT@VVV@T v@@@@@v@@@@@@@|@@@@  < @@&@@@@@v@@T@T@T@@@|@@@@,   @@&@@@@@v@@@T@T@T@@|@@@@,   @@FFB F f @@@@@v@@@@@@@|@@@ @         t  \\\@T@RRV @T  @v  @          v     !" "# #$ |$% %& &' '( () )**++,@,-@<-.@.//0@0@010/21/.32.-43@-,54@&,+65@+*76@*)87)(98 (':9 '&;: &%<; v%$=< $#>= v#"?> "!@? ?@AB >?BC =>CD |<=DE ;<EF :;FG 9:GH 89HI 78IJ67JK56KL45LM34MN,23NO 12OP @1P`_BA _^CB ^]DC ]\ED \[FE [ZGF "ZYHG YXIH XWJIWVKJVULKUTMLTSNMSRONRQPOa@PQaQP@ROPQSNORTMNSULMTQVKLUQWJKVQXIJWQYHIX QZGHY Q[FGZ Q\EF[ ]DE\ ^CD] _BC^ `AB_ A`? A/.` A@0/ @!10 ! 21  32 43@54@65@76@87@98@:9@;:@<; a=< a`>= `A?> a`.- a-, ,+ +* *)@)(@('@'&@&%@%$@$#@ #"@! "! @!!  A@  `A     ! !" "#@#$@$%@%&@&'@'(@()@)*@*+ +, ,- -.  >? => <= ;< :;@9:@89@78@67@56@45@34@23  12   01   /0   /  . ?     u           @@@@@@@@         @@@@@@@@        @@@@@@@@        @@@@@@@@            @@@@@@@@        @@@@@@@@        @@@@@@@@    tu uv vw wx xy@yz@z{@{|@|}@}~@~@@     t tRs cb dc ed fe gf hg@~ih@~}ji@}|kj@|{lk@{zml@zynm@yxon@xwpo wvqp vurq utsr ba a` `_ _^ ^]@]\@\[@[Z@ZY@YX@XW@WV@VU UT TS SR RSPQSTOPTUNOUVMNVWLMWXKLXYJKYZIJZ[HI[\GH\]FG]^EF^_DE_`CD`aBCabABrs01qr12pq23op34no45mn56lm67kl78jk89ij9:hi:;gh;<fg<=ef=>de>?cd?@c@AbsRQ00Q/@A@? ?>! >="!=<#"<;$#;:%$:9&%98'&87('76)(65*)54+*43,+32-,21.-10/.BACBDCEDFEGFHGIHJIKJLKMLNMONPOQP         ./-.,-+,*+)*()'(&'%&$%#$"#!" ! R/    w  @@@@    @@@@           LZLRLRLRLRLR,R,R,R,r#(,R,R,R,RLRLRLRLRLRLRLRLR,R,R,R,R,R,R,R,R,RLRLPME4P0MESphere.0010qKhX:ԩ=zP@8O@J@PDATA0qPSDATA1451mJ@.@x yF@ǣ@BuY;@@ VoaX⿽O(@@`d#@3;@lCU)?3;@|Cj;.?3;@J;.V?G&?3;@a#K3;@3T?Ga3;@RZPh;K3;@.l)3;@g'#3;@翠(@)Y;u@W: F'@ċ ?F3;@^ Y?;3;@T.TX?O(3;@@CI@'#3;@U]z)@3;@d]h;@K3;@o>T?G@a3;@v]#K@3;@xT?G@&?3;@vj;@.?3;@o6.)@?3;@wdC@#@3;@U>U]X?O(@@CcqY?;@c@0n ?yF@5@\2vH5<1mJ@@zy'9<N@IJ3}+F#?8#J@IJ{/?h>@IJW0|t4s?*]+@IJNFht@@IJYeYV,@?IJtiQF!?@~?IJt0 ^J@ ?IJ{<N@П&}_\J@ IJm{v_!?@IJCt^O,@IJh\t@IJXY+s?,]+IJE\V/?h>IJ(0S8#?8#JIJ6P@#8#JIJf/h>IJ>1~+vtIJ#O,IJЖ!?IJ^\J IJv_NП&*g^J ?IJ;f!?~?IJ0fU,?IJ^E\t@IJXY8s*]+@IJhV/h>@IJFtSN#8#J@IJtp{O)9N@IJ}+6<,K@B7G6,K@B7j4'?Gn7g1?M<B7u1D?7)B7G7@jB7Z)@"B7lj <@ÛB7?vQH@B7} :L@@<̵QH@?B7}!<@Û?B7?v0)@"?B7_kESX@`@B7ZZM?7)@B7E*kn1?J<@B70?vQ!?G@B7}K!GB7څj1M<B7Rӈ)2/g=8jB7)"B7d <ÛB7QHB7x :L@<̵QH?B7x"<Û?B70)"?B7G=`@B7ZQ㿴7)@B7ljr1J<@B7?vY!G@B7}&U7L@8u("#H@8u }Z6J@u?=!HG@u? }Ŝj;@u?@v/*<@8u9vY⿸(@u?ljI,俰)@8ufj<@u?Z\K@8u|Zz)?u?Gc*?8uG;=z.?8ulj0Gd?u?x:H=?8u~K u?zL`ru G8du?x 8H=8u~ ;< Yu?|>=.8uljz)u?uc*8uOp? 83O(ƚ?!lLI)AQTŜo;u?ѹ'+<8u|=!LGu?چ"#H8uڌX6=@z.?8u9v0G@d?u?}8H@=?8u}K@ u?zL@`ruG@8du?} 8H@=8u} ;<@ Yu??v|>=@.8u9vz)@u?ljc*@8ufj<@ȅu?ZV@ K8u|ZL?(u?G<,?)8uGŜ?o;u?71ډ$?+<8u61t=!?LGu?wN"?#H8u{m':O@ y))%K@ Xv) C@@ o)y,@ d)_@ KU!)-"? 9UC%) @m ? K5.M'ԤLv>"?O9 r%zP38 1oO'ҤL>" "_*) @} ))-6翴 9%)Y OL!)?-C E)C@ 9"*}#FLܷ*)%?K X )?C@ e.)y?, YC8)Y@ UM!)-@6翴 d%) @@} o))ҤL@>" v_*)zP@38 1y+)ԤL@v>"? w% @@m ?7 yr 0$-@"? gD]@@ W,W y?,@De#?C@@.pD&)%?K@ +w(6:_H@ږ@aǝ?<@Q@ *[h?X)@?@y9Rd(@Dx@@TGFɰw*@?@S7Ѱo=@g?@\&UI@n?@bL@ :@dEUI@yB@"c[uo=@$D@]W٦q*@⿆@QTױ^(@f@GGh?)@80ǝ?̭<@&UI"?vMH@>"vMHQ@wB̭<@f:-z迷)@Ѥh%f@+v{*⿆@l=$D@D?] IyB@O± L :@ؚ_ In?@fl=g?@Ӣ&:*?@A8l%Dx@@FbX)@?@0RӰ<@;|@bG\>">_H@@caq6KL@a@YYc֭Lt@aϙC O 7;4IlຂK8uj GiJu?t nhVtgK?,_l xj=IIq&ZOQ1_`E~@V`DATA K,b /. .- -, ,+@+*@*)@)(@('@'&@&%@%$@$# #" "! ! 10} 21}{ 32{y 43yw@54wu@65us@76sq@87qo@98om@:9mk@;:ki@<;ig =<ge >=ea bc A`a_ U^dc_ U]fd^ Q\hf] Q[jh\@QZlj[@QYnlZ@QXpnY@QWrpX@QVtrW@QUvtV@QTxvU@qSzxT qR|zS qQ~|R Q@P UPO TON TNM ML@LK@TKJ@TJI@TIH@THG@TGF@TFE@TED TDC TCB @`A Q ?` V W S S@S@S@S@S@S@S@S@S S S S R~| W| z z x x v@v t@Vt r@Vr p@Vpn@Vnl@Vlj@Vjh@Vhf Vfd Vdc R`?>a RbA_c Qe^_a Qg]^e Qi\]g Qk[\i@QmZ[k@QoYZm@QqXYo@QsWXq@QuVWs@QwUVu@QyTUw@{STy Q}RS{ QQR} Q@P TPO TON TNM tML@tLK@TKJ@TJI@TIH@THG@TGF@TFE@TED TDC TCB t@Ab P>? ? => <= ;< :;@9:@89@78@67@56@45@34@23 12 01  ! !" "# #$ $%@%&@&'@'(@()@)*@*+@+,@,- -. ./   @@@ @ @ @ @ @      @@@@@@@      ~/ B t B /     t  v >  <    '@@c d  fMEP4MECubeRRT`  CzAɮef@QA`B@DATATUDATA@ 12?BnA]XI2?B5j_XIn3jYXnnAWX2?BnA=oAIII2?B9j?????????L??2 ????MA#9PSMAMaterial.001?????????????' ????MA9#UMAMaterial.002o>gB?o>????????L?<}?VC ????MAU#49MAMaterial.003=[ ?D'*?L?????????L??2 ????MA4#UMANeonL?L?L??????????L??2 ????CAl VCACamera=B?A B?LA0@!00LALamp???0Y>A4B>??? B4B?@@LA0!0@LALamp.001???ܡ:?A4B>??? B4B?@@TXdTXLFEXPORT.PY0 UDATA(c:\Alex\3D\Blender\Plugins\LFEXPORT.PYMDATA0p6DATAp0'DATApP6DATA@1 #;DATA@6DATA@6DATApFREEDATAp&DATAЯppDATAЯ0DATA0Я@DATA0@DATAЭ 6DATAЭ`6DATAPЭ6DATAP DATA0PD@DATA0Ъ(DATAЩ0 -DATAЩ0DATA0Щ DDATA0`BFREEDATA:DATA`=DATA`&DATA`7DATA` @DATA` DATA0XaDATA0p:DATAp0>DATAp@9DATA@'DATA@0 e:\|DATA@0DATA@(DATA > DATAPDATAP-DATAPPall.DATAP6:28 DATA@P --- DATA@ser DATA@Pser DATA@*ser DATA@%DATA@*attlDATA@@`:44 DATA@:54 DATA@@%:02 DATA@>ser DATAP@Dws.eDATAP0:55 DATA@P6:35 DATA@,ot.JDATA@D--- DATApser DATAp `ser DATA pp ser DATApЊ --- DATAЊ pp$--- DATA ЉЊ eDATAЉ0 DATA0ЉDATA00)DATAd boDATA0!d boDATA@:59 DATA0 :02 DATA0$ser DATA0--- DATA00&--- DATA|eDATA@FREEDATAPDATAP0DATA@P0:10 DATA@#:47 DATA@@ser DATA@`0ser DATA`@@DATA@`lDATA@@`k)lDATA@pj lendDATApR@2lendDATARPpelendDATAP`bRP)opyrDATA`bzP TythoDATAzPq`b4ninsDATAPqoz 4 ninsDATAonPq& lDATAneoOlDATAemn@ndDATAm!e&mDATA!mPP\!DATA!PDATA`  DATA`   'DATA ` ` 5 DATA`  FREEDATA  ` |DATA   p DATA   DATA 0  DATA0  BDATA 0 @ DATA pw DATAPDATAP 5DATAPP,DATAPDATAP`CDATApDATApH DATAp HDATAPHDATAP*DATAPP_DATAP__P2DATA_`^P_^BDATA`^^_6 DATA^]`^S DATA] ]^p]XaDATA ]\]\DATA\[ ]0\lendDATA[@[\[FREEDATA@[Z[ZDATAZZ@[PZDATAZPYZY,DATAPYYZ S DATAYXPYpDATAX`XYXDATA`XWXXFREEDATAWW`XPW:DATAWPVWV e:\|DATAPVUWU,DATAUPUPVDATAPU@U DATA@@8PU DATA@8`N@@R 7DATA`N@8PL8DATA `N`DATA ooDATAon 0onderDATAn@nonnderDATA@nmnmADERDATAml@nmUasesDATAl lmpl|eDATA lklp|eDATAk0k lkFREEDATA0kjkj*FREEDATAji0kj4atchDATAi0ijiser DATA0ihih:04 DATAhg0i@h:36 DATAgPghg:11 DATAPgfgf3:16 DATAfePg@f--- DATAe`efe --- DATA`ede eser DATAdd`e`d::34 DATAdpcdcDATApcbd cDATAb bpcpb)DATA bpaba*DATApa` b aFREEDATA`pa`FREEDATA0`HAPTDATA0hatbDATA0PheesDATA`FREEDATA`*FREEDATA`@5lip.DATA@)ser DATA@--- DATA@@%--- DATAP--- DATAP!--- DATAPPDATAPu`DATA`arazyDATAubanDATA0DATA HDATA@:44 DATA@4isasDATA@Eser DATA proolDATA DATAO POurhhDATAOpNN--- DATApNMON4ser DATAMLpN MP--- DATAL@LML:47 DATA@LKLKace DATAKJ@LJace DATAJIK@J--- DATAI0IJI4ser DATA0IPHIHP--- DATAPHG0IH:37 DATAG GPHpGILESDATA GpFGF$ine DATApFE G F:43 DATAEDpF@ES:44 DATADCEDreewDATAC CDpCzeroDATA C`BCB2|eDATA`BA CA@:38 DATAA@`BAZFREEDATA@?Ap@--- DATA??@0@un.bDATA?>?@?:35 DATA>P>?>and DATAP>=>=)eadpDATA=<P>0=1:23 DATA<@<=<--- DATA@<;<;--- DATA;;@<`;--- DATA;:;:ser DATA:9;:?ser DATA909:9ذDATA09898--- DATA87097ser DATA7686bDATA6576bDATA5465bndDATA4354DATA3 34p3:34 DATA 3@232\:51 DATA@2`1 31\e frDATA`10@20\FREEDATA000`1/\--- DATA00/0P/--- DATA/`.00.--- DATA`.-/-=--- DATA--`.P-ightDATA-,-`,iinksDATA,+-+ogo.DATA+*,+2|eDATA*0*+*:06 DATA0*@)*)fATERDATA@)(0*)elt.DATA((@)P(!pDATA(P'('!etalDATAP'&(&!:52 DATA&%P'@&!ser DATA%@%&%!--- DATA@%$%%|eDATA$ $@%p$--- DATA $#$#ser DATA#" $@#ser DATA"P"#":42 DATAP"!"!.:16 DATA!!P"`!cingDATA!! 0--- DATA!`<an.bDATA`~~)ser DATA`~}~+--- DATA}|`~@};FREEDATA|P|}|:22 DATAP|{||:03 DATA{`{P|` :28 DATA`{z{ { :40 DATAz0z`{zPX CDATA0zyzyPX iDATAyy0zPyPX lDATAy`xyxeDATA`xwyw0eDATAwv`x0w;pxtoDATAvPvwvser DATAPvuvv:35 DATAu0uPvuurplDATA0utut*DATAts0utFuartDATAs stps--- DATA srs`rser DATAr q spqbDATA q0rbd1EDATA0@ qbeal DATA@0 0 eal DATA0  @ eallDATA  0 P blenDATA 0 J1eDATA0  ser DATA  0 0 8:05 DATA P --- DATAP   ser DATA P p:07 DATA  :42 DATA @obotDATAPobotDATAP obotDATAPP:21 DATA@5ser DATA@/dDATA@ 5copeDATA p/ser DATA `5FREEDATA` /:01 DATA_``ser DATA_0__now DATA0_^_^paceDATA^^0_P^ pikeDATA^p]^] blenDATAp]\^]5--- DATA\\p]P\/tretDATA\@[\[5:34 DATA@[Z\Z/--- DATAZY@[ Z5wordDATAY YZpY/ser DATA Y`XYX5--- DATA`XW YX/:15 DATAWW`X`W--- DATAWpVWV--- DATApVUW V--- DATAU0UpVU--- DATA0UTUT --- DATATT0U`T ser DATATSTSser DATASRT S :19 DATAR RSpR ser DATA RQRQ--- DATAQP R0Q--- DATAP@PQP--- DATA@PP--- DATA0@P0 FREEDATA0,DATA0@h-DATAP-DATAPH.DATA Pp.DATA |eDATA 0|eDATA@|eDATA@ |eDATA@P#FREEDATA`|eDATA`|eDATA``&|eDATA`&3DATA`&DATA``DATAP5DATAPC DATAP8eDATA@C|eDATA08DATA0`C DATA``08eDATA`` |eDATA`P"pDATAP"FREEDATAPDATA PpDATA лFREEDATAк &FREEDATAк p&DATA pк&eDATAp &FREEDATA ppeDATA `7|eDATA` C<DATAе` 8FREEDATAеPCDATA@е8|eDATA@pC$DATAp@8FREEDATAp0CDATA p8DATA p DATApp "DATApp"DATAp`"eDATApFREEDATAp FREEDATAp0FREEDATA:|eDATAP:FREEDATA@3eDATA@7FREEDATA@@DATAPDATAP'DATAP`DATA`,DATA`!dDATA `pDATA DATA 4DATA p|eDATA `1|eDATA` FREEDATA``4FREEDATA*DATA`1DATApFREEDATAp0FREEDATA@peDATA@+eDATA@PFREEDATA`eDATA`eDATA``,eDATAFREEDATA0eDATA0,eDATA0FREEDATA0PeDATAP+eDATAPFREEDATAPP4eDATA@6|eDATA@DATA@`DATAP5DATAPDATAPP7DATAp|eDATAp`5DATA`p0DATAp`DATApЍ DATAЍ@pDATA@`ЍUFREEDATA`@!DATA`P!DATAP!TDATAP!DATAP@!|eDATA` DATA`Ї |eDATAЇ@`DATA@Ї)DATA@@DATAP`DATApeDATAp1DATAp@9FREEDATA0<DATA0`GDATA``0vFREEDATA```6|DATA``4eDATA`PDATAp FREEDATAp!FREEDATApu|eDATAP9FREEDATA`eDATA`2eDATA`@/|eDATA@/DATA@`_DATA`@)FREEDATAХ` [DATAХ p(DATA `Х;DATA` C|eDATA`PDATA0EFREEDATA0FREEDATA0@#eDATAPFREEDATAPПFREEDATAP@$DATA`QDATAP9FREEDATAPDATAP@2DATA@/FREEDATA@/DATA@_DATAИ SFREEDATAИ@[FREEDATAИ`RDATA@CDATA@|eDATA@0EFREEDATAP4DATAP#DATAPPĻDATA`DATA`Б TDATAБ@`DATA@БА4|eDATA0@4DATA0`DATA0DATA@ FREEDATA@!FREEDATA@@uFREEDATA@@ pDATAP@DATAPDATAPDATA: DATA p|eDATA |eDATA QDATADATA:FREEDATA peDATA eDATA PDATAP-FREEDATAP DATA_P`!FREEDATA_^ _uDATA^]_]DATA]]^P]FREEDATA]\]p|eDATA\p[][tDATAp[Z\ [ DATAZ@Zp[Z DATA@ZYZZ|eDATAYY@ZPY*pbDATAYpXYX|eDATApXWY XpdDATAW0WpXWDATA0WVWV XDATAVV0WPVDATAV`UVU,DATA`UTVU|eDATAT T`UpT|eDATA TSTS|eDATASR T0S|eDATAR@RSR|eDATA@RQRR|eDATAQQ@R`QDATAQPQPDATAPQ0P|!DATA@PDATA@|eDATA@`DATA`  +DATA`   |eDATA 0 ` |eDATA0  DATA  0 ` DATA p DATAp  !DATA p p|eDATA p!|eDATAp 0FREEDATAPpeDATAPDATAPP DATA`FREEDATA`FREEDATA `pFREEDATA FREEDATAO @FREEDATAO0OODATA0ONONDATANM0O@NDATAM@MNM DATA@MLMMFREEDATAL L@MpLFREEDATA L@KLKVeDATA@KJ LK FREEDATAJJ@KPJ'pDATAJPIJI'FREEDATAPIHJIDATAHHPI`HDATAHPGHG7DATAPGFHFADATAFEPG@FFREEDATAE0EFE0FREEDATA0EDED(DATADC0E D%|eDATAC0CDCDATA0CBCB(DATABA0CB1 DATAA@B0AV|eDATA@Ap@1FREEDATA@PCDATA@~~4|eDATA@~P}}b|eDATAP}|@~|0FREEDATA|{P}0|)DATA{ {|p{4 DATA {z{z|eDATAzy {@zDATAy`yzy KDATA`yxyy' DATAxx`yPx'MDATAx`wxw|eDATA`wvxw|eDATAvv`wPv7|eDATAv0uvuAFREEDATA0utvtFREEDATAts0u@t&eDATAs0sts5FREEDATA0srsrDATArq0s0r%DATAqPqrqDATAPq/qqDATA//Pq`/;DATA/`./.-DATA`.-/.)DATA-,`.@-0DATA,`,-,FREEDATA`,+, , eDATA++`,`+1DATA+p*+*FREEDATAp*)+*&FREEDATA))p*`)(eDATA)`()((,DATA`(')((|eDATA''`(P'(DATA'p&'& FREEDATAp&%'0&,DATA%P%p&% |eDATAP%$%$HDATA$#P%0$DATA#"$@#k|eDATA"`"#"FREEDATA`"`!"!seDATA`! `" !|eDATA  `!VDATA  bDATA `|eDATA`&DATA`@|eDATAP` 0DATAP+ 0DATAPQ|eDATA0|eDATA0~DATA0PDATAp ٺDATAp0DATA@p,DATA@FREEDATA @pFREEDATA eDATA PDATApFREEDATAp0FREEDATApDATA8######################################################DATA(# BLENDER TO LIGHTFLOW EXPORTER #DATA8P#----------------------------------------------------#DATA4# ORIGINAL SCRIPT BY Jaan Oras a.k.a. 'Montz' #DATA8# MODIFICATIONS BY Alfredo de Greef a.k.a. 'Eeshlo' #DATA8######################################################DATAllDATA(import Blender, Blender210, string, osDATApfrom math import *DATAfrom struct import packDATA@mvDATA@DATA8 ######################################################DATA8`#!!!!!! MODIFY THESE BEFORE YOU RUN THE SCRIPT !!!!!!#DATA8######################################################DATA DATAH# NAME OF THE ROOT DIRECTORY WHERE ALL LFEXPORT FILES WILL BE SAVED.DATA,Ъ# YOU ONLY NEED TO CHANGE THIS ONE ONCE,DATA0 # OR NOT IF YOU FIND THE DEFAULT GOOD ENOUGH.DATAroot = "C:\LFexport"DATA DATAD`# IF YOU WANT TO EXPERIMENT WITH MATERIALS, OR RENDER AN ANIMATIONDATA<# WHERE ONLY THE CAMERA CHANGES THEN SET THIS TO 1 (save).DATA@`# THAT WAY SHADOW MAPS AND RADIOSITY WILL BE CALCULATED ONCE,DATA(# AND RE-USED FOR NEXT FRAMES/RENDERS.PDATA8# TO MAKE USE OF THESE SAVED FILES SET THIS TO 2 (load)DATAD # IF YOU DON'T WANT TO DO ANY OF THIS, SET IT TO 0 (don't care).DATA`savestuff = 0DATADATA<# WHEN THIS IS SET TO 1, THE SCRIPT WILL TEST IF MESHFILESDDATA@# ALREADY EXIST AND SKIP THE LONG CALCULATIONS IT NEEDS TO DO.DATA<@# SET THIS TO 0 IF YOU WANT TO MAKE SURE FILES ARE SAVED,DATA(# LIKE WHEN YOU HAVE EDITED THE MESHES.DATA0autocheck = 1DATA0DATA,@# WANT TO USE RADIOSITY? 1 = YES, 0 = NODATA >radiosity = 1DATADATA0# THATS IT! NOTHING MORE TO MODIFY AFTER THIS uDATADATA8###################################################### DATA DATADATAPDATA,@########################################## DATA(# CREATING DIRECTORY'S FOR OUTPUT #DATA,##########################################eDATA`DATADATA(# EXTRACT A NAME FROM THIS BLENDFILE. 7DATA@# THIS WILL BE USED FOR THE DIRECTORY NAMES, .PY, & .TGA FILES7DATAH# ALSO USED FOR .RAD (RADIOSITY RESULTS) AND .LAMP (SHADOWMAP) FILESparDATA0DATA8outname = Blender.Get('filename') # NAME OF BLENDFILE DATA0HT = os.path.split(outname) # (DIR, FILE)0 bDATAHoutname = os.path.splitext(HT[1])[0] # FILE MINUS EXTENSION (.blend)-- DATADATA`DATA$# creating root output directoryer DATA if not os.path.exists(root): uDATA(p print "%s directory created" % root-- DATA  try:DATA os.mkdir(root)eDATA except OSError:eDATA,0 raise "Could not create root directory"DATAelse:DATA$0 print "%s already exists" % rootinDATA@DATA$0# creating file output directory52 DATA(outdir = os.path.join(root, outname)5-JDATA if not os.path.exists(outdir):uDATA(0 print "%s directory created" % outdir DATA try:DATA@ os.mkdir(outdir)DATA except OSError:DATA4 raise "Could not create file output directory"ndDATA0else:DATA$ print "%s already exists" % outdirDATADATA0DATA# OPEN FILE FOR RESULT .PYDATADATA,`k# APPEND THE FRAME NUMBER TO THE FILENAMEDATA$jcframe = Blender.Get('curframe')iDATA4pyname = outname + "_" + ("%04d" % cframe) + ".py"DATAe56 DATA,Ppyfilename = os.path.join(outdir, pyname)@DATA Tfile = open(pyfilename, 'w')DATA421 DATA 4meshlist=[]DATA &areaList=[]DATAO%DATA@ndef multiply3x3(A, B):DATA( C = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]DATAPP for i in range(3):DATAP for j in range(3):DATA  for k in range(3):ADATA(  C[i][j] = C[i][j] + A[i][k]*B[k][j]DATA 5 return C 1DATA%DATA|%DATAp def multiply3x1(A, B):DATA C = [0,0,0]nd1DATA  for i in range(3):DATA  for j in range(3):DATA @  C[i] = C[i] + A[i][j]*B[j]DATA pw return CDATAwDATA 5xeDATA0def parallelVector(rotX, rotY, rotZ, oAxis): 1DATA rotX = rotX * pi/180xDATA` rotY = rotY * pi/180DATA rotZ = rotZ * pi/180DATAL Tx = [[1, 0, 0], [0, cos(rotX), -sin(rotX)], [0, sin(rotX), cos(rotX)]]DATAL  Ty = [[cos(rotY), 0, sin(rotY)], [0, 1, 0], [-sin(rotY), 0, cos(rotY)]]DATALP Tz = [[cos(rotZ), -sin(rotZ), 0], [sin(rotZ), cos(rotZ), 0], [0, 0, 1]]DATA, Tm = multiply3x3(multiply3x3(Tz, Ty), Tx)DATA  return multiply3x1(Tm, oAxis)DATA2mvDATA^def ad_info(lfaces, lv):DATA 6 index = 0DATAS adlist = []DATAp] for i in xrange(len(lv)):DATA\ adlist.append([]);DATA0\ for face in lfaces:DATA [ adlist[face[0]].append(index)DATA Z adlist[face[1]].append(index)DATA PZ adlist[face[2]].append(index)DATA0Y if(face[3]): adlist[face[3]].append(index)DATA S index += 1DATAp return adlistDATAdDATAXdef normalize(vec):DATA<PW len = sqrt(vec[0]*vec[0] + vec[1]*vec[1] + vec[2]*vec[2])DATA$V if (len==0.0): return [0, 0, 0]REEDATA0U return [vec[0]/len, vec[1]/len, vec[2]/len]DATADATA def v_normal(va, vb, vc):DATA fv = [0,0,0]DATA@R sv = [0,0,0]DATAP fv[0] = vb[0]-va[0]DATA` fv[1] = vb[1]-va[1]DATAo fv[2] = vb[2]-va[2]ateDATA0o sv[0] = vc[0]-va[0]ateDATAn sv[1] = vc[1]-va[1]ed-DATAm sv[2] = vc[2]-va[2]socDATAXm normal = [fv[1]*sv[2]-fv[2]*sv[1], fv[2]*sv[0]-fv[0]*sv[2], fv[0]*sv[1]-fv[1]*sv[0]]gaDATApl return normalize(normal)DATAp44 DATA kdef face_normal(face,vlist):DATA,j vai, vbi, vci = face[0], face[1], face[2]DATA8j return v_normal(vlist[vai], vlist[vbi], vlist[vci])BulDATAier DATAhdef vangle(va, vb):DATA@h nva = normalize(va) DATAg nvb = normalize(vb) 1DATA4f sp = nva[0]*nvb[0] + nva[1]*nvb[1] + nva[2]*nvb[2]DATA@f if sp<0.0: sp = -sp-- DATA e return sp DATA eer DATA<`ddef auto_normal(fnormal, adlist, flist, vlist, cos_angle):DATAc resul = [0, 0, 0]DATA c for facei in adlist:DATA,pb cnorm = face_normal(flist[facei],vlist)DATA,a if (vangle(fnormal,cnorm) >= cos_angle):DATA a resul[0] += cnorm[0]DATA` resul[1] += cnorm[1]DATA resul[2] += cnorm[2]DATA return normalize(resul).blDATAPromDATAdef add_lamp(lamp):DATA, lampObj = Blender210.getObject(lamp.name)DATA8@ if lampObj==None: return # DELETED LAMPS RETURN NONEenDATA, lampx = Blender210.getLamp(lampObj.data)-0DATA # USE LAMP.DIST AS WELL-- DATA(@ emult = lamp.Energ * lamp.Dist * 2.5- DATA if lampx.type=='Lamp':DATA$ print lamp.name, lamp.name[-3:]- DATAP if lamp.name[-3:]=="RAY":DATAxP file.write("s.lightOn(s.newLight('point',[ 'position', vector3(%s, %s, %s), 'color', vector3(%s, %s, %s)]))\n\n" %DATAd` (lampObj.loc[0], lampObj.loc[1], lampObj.loc[2], lampx.R*emult, lampx.G*emult, lampx.B*emult))zyDATA else:DATA0 if savestuff==0:DATA  file.write("s.lightOn(s.newLight('soft',[ 'position', vector3(%s, %s, %s), 'color', vector3(%s, %s, %s), 'radius', %s]))\n\n" %DATA ( DATA8 lampObj.loc[0], lampObj.loc[1], lampObj.loc[2], cuDATAH lampx.R*emult, lampx.G*emult, lampx.B*emult, 0.03+lamp.SpoBl/10)-NDATAp )t.DATA if savestuff==1:DATAPO file.write("s.lightOn(s.newLight('soft',[ 'position', vector3(%s, %s, %s), 'color', vector3(%s, %s, %s), 'radius', %s, 'file', '%s.lamp', 'save']))\n\n" %DATAN (- DATA8N lampObj.loc[0], lampObj.loc[1], lampObj.loc[2],5-JDATAT M lampx.R*emult, lampx.G*emult, lampx.B*emult, 0.03+lamp.SpoBl/10, lamp.name)er DATAL ) DATAK if savestuff==2:DATAJ file.write("s.lightOn(s.newLight('soft',[ 'position', vector3(%s, %s, %s), 'color', vector3(%s, %s, %s), 'radius', %s, 'file', '%s.lamp', 'load']))\n\n" %DATA@J (- DATA8I lampObj.loc[0], lampObj.loc[1], lampObj.loc[2],1-DDATATH lampx.R*emult, lampx.G*emult, lampx.B*emult, 0.03+lamp.SpoBl/10, lamp.name)er DATAH ) 2DATApG if lampx.type=='Spot':DATA(F # LAMP ANGLE IS HALF BLENDER ANGLEineDATA F angle = 0.5*lamp.SpoSi6 8DATAT@E lookAt = parallelVector(lampObj.rot[0], lampObj.rot[1], lampObj.rot[2], (0,0,-1))DATAD file.write("s.lightOn(s.newLight('soft-conic', [ 'position', vector3(%s, %s, %s), 'color', vector3(%s, %s, %s), 'radius', %s, 'direction', vector3(%s, %s, %s), 'angle', %s, %s]))\n\n" %DATApC (DATA4B lampObj.loc[0], lampObj.loc[1], lampObj.loc[2],EDATADA lamp.R*emult, lamp.G*emult, lamp.B*emult, 0.03+lamp.SpoBl/10,35 DATA\A lookAt[0],lookAt[1],lookAt[2], (angle - lamp.SpoBl * angle * 0.5)*pi/180, angle*pi/180)DATAp@ )DATA0@-- DATA@?46 DATA>def add_arealight(name):-raDATA,= blendobject = Blender210.getObject(name)blDATA40= blendmesh = Blender210.getMesh(blendobject.data)5 DATA< face = blendmesh.faces[0] DATA; ve = blendmesh.vertices-- DATA`;-- DATA: if face[3]==0:DATA@: print "ERROR! use only a 4 point face to export an arealight"DATA 9 return DATA8-- DATA7 file.write("s.transformBegin(transform().translation( vector3(%s, %s, %s) ))\n" % (blendobject.LocX, blendobject.LocY, blendobject.LocZ))0DATAd6 file.write("s.transformBegin(transform().rotationAroundZ( %s ) )\n" % (blendobject.RotZ*pi/ 180))DATAd6 file.write("s.transformBegin(transform().rotationAroundY( %s ) )\n" % (blendobject.RotY*pi/ 180))DATAd5 file.write("s.transformBegin(transform().rotationAroundX( %s ) )\n" % (blendobject.RotX*pi/ 180))DATA4 file.write("s.transformBegin(transform().scaling( vector3( %s,%s,%s) ))\n" % (blendobject.SizeX,blendobject.SizeY,blendobject.SizeZ))DATAp334 DATA`2 file.write("p1 = vector3(%s, %s, %s)\n" % (ve[face[0]][0], ve[face[0]][1], ve[face[0]][2]))5 kDATA`1 file.write("p2 = vector3(%s, %s, %s)\n" % (ve[face[1]][0], ve[face[1]][1], ve[face[1]][2]))DATA`0 file.write("p3 = vector3(%s, %s, %s)\n" % (ve[face[2]][0], ve[face[2]][1], ve[face[2]][2]))DATA`/ file.write("p4 = vector3(%s, %s, %s)\n" % (ve[face[3]][0], ve[face[3]][1], ve[face[3]][2]))dDATAP/eDATA. if blendobject.materials :DATA@- material = Blender210.getMaterial(blendobject.materials[0]) uDATAP- en = material.HardlowDATAl`, file.write("color = vector3(%s, %s, %s)\n" % (material.R*200*en, material.G*200*en, material.B*200*en))bmDATA+ else :DATA4+ file.write("color=vector3(200.0,200.0,200.0)\n")DATA*06 DATAh) file.write("s.lightOn( s.newLight( \"patch\", [ \"color\", color,\"position\", p1, p2, p3, p4] ))\n")dDATA)ltcDATA$P( file.write("s.transformEnd()\n")DATA$' file.write("s.transformEnd()\n")alDATA$& file.write("s.transformEnd()\n")1 DATA$@& file.write("s.transformEnd()\n")r DATA$% file.write("s.transformEnd()\n")- DATA%REEDATAp$-- DATA#def addmesh(name): DATA@#er DATA " # CREATE MESH FILE PATHNAME6 nDATA0! meshpath = os.path.join(outdir, name+".mesh")nDATA`!DATA4  # TEST TO SEE IF THE EXACT FILE ALREADY EXISTS.-- DATA@` # IF SO, SKIP THE LONG PROCESS OF RE-CALCULATING EVERYTHINGzipDATA,~ # UNLESS OTHERWISE SPECIFIED (autocheck)-0DATA,~ if autocheck and os.path.exists(meshpath):DATA<@} print "Meshfile already exists, no need to re-calculate"DATA| mesh_exists = 19 DATA| else: mesh_exists = 01DATA` 02 DATA { numfaces = 0 PDATAz numvertlist = [] iDATAy facepointlist = []DATAPyx lDATAx if (name[-5:-2]=="_AS"):DATA4w cos_angle = cos(string.atoi(name[-2:])*pi/180)-- DATA<0w print "Applying autosmooth %d" % (string.atoi(name[-2:]))DATAv else:MDATAv cos_angle = 1DATAuTHODATA,t blendobject = Blender210.getObject(name);DATAHt if not mesh_exists: blendmesh = Blender210.getMesh(blendobject.data);iDATAps-- DATA`r file.write("s.transformBegin(transform().translation( vector3(%s,%s,%s ) ))\n" % (blendobject.LocX,blendobject.LocY,blendobject.LocZ));y-0DATAdpq file.write("s.transformBegin(transform().rotationAroundZ( %s ) )\n" % (blendobject.RotZ*pi/ 180))EDATAd file.write("s.transformBegin(transform().rotationAroundY( %s ) )\n" % (blendobject.RotY*pi/ 180)) DATAd file.write("s.transformBegin(transform().rotationAroundX( %s ) )\n" % (blendobject.RotX*pi/ 180)) DATA  file.write("s.transformBegin(transform().scaling( vector3( %s,%s,%s) ))\n" % (blendobject.SizeX,blendobject.SizeY,blendobject.SizeZ)).DATA bo DATAP  if not mesh_exists:DATAL  if cos_angle < 1.0: adlist = ad_info(blendmesh.faces,blendmesh.vertices)DATA er DATA<0  ## Lets add points and tex coords and normals and.....1 2DATA  i = 0DATA  textlist = []DATAp facetextlist = []DATA  f_i = 0 5DATA@ if blendmesh.texture:DATA print "Exporting uv";JPGDATA$ for bface in blendmesh.faces:botDATAP if bface[3]==0:DATA8 textlist.append([blendmesh.texcoords[f_i][0][0],-NDATA0 1.0 - blendmesh.texcoords[f_i][0][1]])DATA8  textlist.append([blendmesh.texcoords[f_i][1][0],O.DATA0p 1.0 - blendmesh.texcoords[f_i][1][1]])DATA8 textlist.append([blendmesh.texcoords[f_i][2][0],DATA0 1.0 - blendmesh.texcoords[f_i][2][1]])DATA` facetextlist.append(i)DATA _ facetextlist.append(i+1)DATA ^ facetextlist.append(i+2)leDATA P^ i += 3DATA ] else:DATA8] textlist.append([blendmesh.texcoords[f_i][0][0],- DATA0P\ 1.0 - blendmesh.texcoords[f_i][0][1]])DATA8[ textlist.append([blendmesh.texcoords[f_i][1][0], 0DATA0Z 1.0 - blendmesh.texcoords[f_i][1][1]])DATA8 Z textlist.append([blendmesh.texcoords[f_i][2][0],f DATA0pY 1.0 - blendmesh.texcoords[f_i][2][1]])DATA8X textlist.append([blendmesh.texcoords[f_i][3][0],- DATA0X 1.0 - blendmesh.texcoords[f_i][3][1]])DATA`W facetextlist.append(i)DATA V facetextlist.append(i+1) uDATA V facetextlist.append(i+2) uDATA U facetextlist.append(i+3) uDATA T i += 4DATA`T f_i += 122DATA S else :r-0DATA$ S textlist.append([0.0, 0.0]);33 DATA$pR for bface in blendmesh.faces:er DATAQ if bface[3]==0:DATA0Q facetextlist.append(0)DATAP facetextlist.append(0)DATA facetextlist.append(0)DATA 0 else:DATA facetextlist.append(0)DATA@ facetextlist.append(0)DATA facetextlist.append(0)DATA facetextlist.append(0)DATApREEDATA facenormallist = []DATA0 faceindexnormal = []DATA normalindex = []DATA fnindex = 0DATA$P for blendface in blendmesh.faces:DATA if blendface[3]==0:DATA numvertlist.append(3)DATA(` facepointlist.append(blendface[0])DATA( facepointlist.append(blendface[1])DATA( facepointlist.append(blendface[2])DATA` if cos_angle < 1.0:DATA8 normal=face_normal(blendface,blendmesh.vertices)eDATAD facenormallist.append(auto_normal(normal,adlist[blendface[0]],DATA< blendmesh.faces,blendmesh.vertices,cos_angle))DATAD@ facenormallist.append(auto_normal(normal,adlist[blendface[1]],DATA< blendmesh.faces,blendmesh.vertices,cos_angle))DATAD facenormallist.append(auto_normal(normal,adlist[blendface[2]],DATA< blendmesh.faces,blendmesh.vertices,cos_angle))DATA$ normalindex.append(fnindex)REEDATA$P normalindex.append(fnindex+1)DATA$ normalindex.append(fnindex+2)DATA fnindex += 3DATA p else:*DATAл numvertlist.append(4)EEDATA(  facepointlist.append(blendface[0])DATA(p facepointlist.append(blendface[1])DATA( facepointlist.append(blendface[2])DATA( facepointlist.append(blendface[3])DATAp if cos_angle < 1.0:DATA8 normal = face_normal(blendface,blendmesh.vertices)DATAD facenormallist.append(auto_normal(normal,adlist[blendface[0]],DATA<  blendmesh.faces,blendmesh.vertices,cos_angle))DATADP facenormallist.append(auto_normal(normal,adlist[blendface[1]],DATA< blendmesh.faces,blendmesh.vertices,cos_angle))DATAD facenormallist.append(auto_normal(normal,adlist[blendface[2]],DATA< blendmesh.faces,blendmesh.vertices,cos_angle))DATAD0 facenormallist.append(auto_normal(normal,adlist[blendface[3]],DATA<p blendmesh.faces,blendmesh.vertices,cos_angle))DATA$ normalindex.append(fnindex)DATA$ normalindex.append(fnindex+1)DATA$ normalindex.append(fnindex+2)DATA$` normalindex.append(fnindex+3)DATA fnindex += 4eDATA  numfaces += 1eDATA0eDATA< print("number of points %s" % (len(blendmesh.vertices)))DATA<P print("number of normals %s" % (len(blendmesh.normals)))EDATA4 print("number of texcoords %s" % (len(textlist)))DATA8 print("number of faces %s " % (len(blendmesh.faces)))DATA@ a=0DATA  for i in numvertlist: a += iDATA( print "number of total points %s" % aDATA`DATA0 print "Mesh file saved to: %s " % meshpathDATA$ meshfile = open(meshpath, 'wb')DATApeDATA  meshfile.write(pack("l", 1))DATA8 meshfile.write(pack("l", len(blendmesh.vertices)))DATAp if cos_angle < 1.0:DATA4 meshfile.write(pack("l", len(facenormallist)))EEDATA  else:DATA8` meshfile.write(pack("l", len(blendmesh.normals)))DATA, meshfile.write(pack("l", len(textlist)))DATA4` meshfile.write(pack("l", len(blendmesh.faces)))DATA  meshfile.write(pack("l", a))EDATA0eDATA  for i in blendmesh.vertices:DATA, for a in i: meshfile.write(pack("f", a))DATAPeDATA if(cos_angle<1):DATA for i in facenormallist:DATA0` for a in i: meshfile.write(pack("f", a))DATA  else :DATA 0 for i in blendmesh.normals:DATA0 for a in i: meshfile.write(pack("f", a))DATAeDATAP for i in textlist:DATA, for a in i: meshfile.write(pack("f", a))DATAeDATA8P for i in numvertlist: meshfile.write(pack("l", i))DATA8 for i in facepointlist: meshfile.write(pack("l", i))DATADATA` if cos_angle < 1.0:DATA8 for i in normalindex: meshfile.write(pack("l", i))DATA else:DATA8P for i in facepointlist: meshfile.write(pack("l", i))DATAREEDATA8 for i in facetextlist: meshfile.write(pack("l", i))DATA0eDATA meshfile.close()DATA  # END PACKED MESH WRITEDATADATAX file.write("s.addObject( s.newObject( 'mesh', [ 'file', '%s.mesh', 0] ) )\n" % name)DATA$ file.write("s.transformEnd()\n")EEDATA$P file.write("s.transformEnd()\n")EEDATA$ file.write("s.transformEnd()\n")DATA$ file.write("s.transformEnd()\n")eDATA$@ file.write("s.transformEnd()\n")EEDATAeDATA REEDATAeDATA,#########################################DATA@# CUSTOM MATERIALSDATAdP# USES SOME OF BLENDER'S MATERIAL PARAMETERS WHICH CAN'T BE USED IN LIGHTFLOW FOR OTHER PURPOSESeDATADATA4def WRITE_GLASS(material, texname, matnum, disp):DATA<@ # material Ref + 1.0 is used to set the refraction indexDATA@ # material mirror color is used to set the reflection colorDATAH # material specular color is used to set the specular reflection colorDATAx # if no texture, material RGB is used for transmission and specular transmission, otherwise the texture color is usedDATA8 # If radiosity is not used, fake caustics are enabledDATA8 km = 1.0 - ((float(material.Hard) / 256.0) ** 0.25)DATAP ksg = material.Spec * 0.5DATA if texname:DATA$ PN = texname.replace('\\', '/')eDATAx file.write("LFPAT%d = s.newPattern( 'map', [ 'texture', s.newTexture('%s'), 'type', 'surface'] )\n" % (matnum, PN))DATA<P st = "LFMAT%d = s.newMaterial( 'generic', [\n" % matnumEEDATA  st += "\t\t 'fresnel', 1,\n"DATA4 st += "\t\t 'IOR', %f,\n" % (material.Ref + 1.0)DATA0@ st += "\t\t 'kdr', vector3(0.0, 0.0, 0.0),\n"DATA0 st += "\t\t 'kdt', vector3(0.0, 0.0, 0.0),\n"DATA` st += "\t\t 'ksr', vector3(%f, %f, %f),\n" % (material.SpecR, material.SpecG, material.SpecB)DATA, st += "\t\t 'kst', LFPAT%d,\n" % matnumEEDATA\  st += "\t\t 'kr', vector3(%f, %f, %f),\n" % (material.MirR, material.MirG, material.MirB)DATA,p st += "\t\t 'kt', LFPAT%d,\n" % matnumDATA< if disp: st += "\t\t 'displacement', LFPAT%d,\n" % matnumDATAD st += "\t\t 'km', %f, 'ksg', %f, 'shinyness', 1.0,\n" % (km, ksg)DATAP if radiosity:DATAH st += "\t\t 'transmission', 0, 'radiosity', 0, 'caustics', 2, 2\n"DATA else:DATA$@ st += "\t\t 'transmission', 1\n"DATA st += "\t ] )\n\n"eDATAП file.write(st)DATA@ else:DATAT` if disp: print "WARNING: Mesh has no texture, no displacement mapping done !!!"EEDATA< st = "LFMAT%d = s.newMaterial( 'generic', [\n" % matnumDATA  st += "\t\t 'fresnel', 1,\n"DATA4@ st += "\t\t 'IOR', %f,\n" % (material.Ref + 1.0)DATA0 st += "\t\t 'kdr', vector3(0.0, 0.0, 0.0),\n"DATA0 st += "\t\t 'kdt', vector3(0.0, 0.0, 0.0),\n"DATA` st += "\t\t 'ksr', vector3(%f, %f, %f),\n" % (material.SpecR, material.SpecG, material.SpecB)DATAT  st += "\t\t 'kst', vector3(%f, %f, %f),\n" % (material.R, material.G, material.B)DATA\@ st += "\t\t 'kr', vector3(%f, %f, %f),\n" % (material.MirR, material.MirG, material.MirB)DATAT` st += "\t\t 'kt', vector3(%f, %f, %f),\n" % (material.R, material.G, material.B)DATAD st += "\t\t 'km', %f, 'ksg', %f, 'shinyness', 1.0,\n" % (km, ksg)DATA if radiosity:DATAH0 st += "\t\t 'transmission', 0, 'radiosity', 0, 'caustics', 2, 2\n"DATA else:DATA$ st += "\t\t 'transmission', 1\n"DATAP st += "\t ] )\n\n"DATA file.write(st)DATA DATAREEDATA8Аdef WRITE_STANDARD(material, texname, matnum, disp):DATA8 km = 1.0 - ((float(material.Hard) / 256.0) ** 0.25)DATA` ksg = material.Spec * 0.5DATA kd = 1.0 - ksgDATA@ if texname:DATA$ PN = texname.replace('\\', '/')EEDATAx file.write("LFPAT%d = s.newPattern( 'map', [ 'texture', s.newTexture('%s'), 'type', 'surface'] )\n" % (matnum, PN))DATA  if disp:DATA st = "LFMAT%d = s.newMaterial( 'standard', [ 'kc', vector3(%s, %s, %s), 'kc', LFPAT%d, 'displacement', LFPAT%d, 'kd', %f, 'ksg', %f, 'km', %f" % (matnum, material.R, material.G, material.B, matnum, matnum, kd, ksg, km)DATA else:DATA st = "LFMAT%d = s.newMaterial( 'standard', [ 'kc', vector3(%s, %s, %s), 'kc', LFPAT%d, 'kd', %f, 'ksg', %f, 'km', %f" % (matnum, material.R, material.G, material.B, matnum, kd, ksg, km)DATA< if radiosity: st += " ,'radiosity', 1, 'caustics', 4, 4"DATA p file.write("%s ] )\n\n" % st)DATA else:DATAT if disp: print "WARNING: Mesh has no texture, no displacement mapping done !!!"eDATA st = "LFMAT%d = s.newMaterial( 'standard', [ 'kc', vector3(%s, %s, %s), 'kd', %f, 'ksg', %f, 'km', %f" % (matnum, material.R, material.G, material.B, kd, ksg, km)DATA< if radiosity: st += " ,'radiosity', 1, 'caustics', 4, 4"EDATA p file.write("%s ] )\n\n" % st)DATADATAPDATA0def WRITE_AMBIENT(material, texname, matnum):DATA if texname:DATA$` PN = texname.replace('\\', '/')DATAx _ file.write("LFPAT%d = s.newPattern( 'map', [ 'texture', s.newTexture('%s'), 'type', 'surface'] )\n" % (matnum, PN))DATA] st = "LFMAT%d = s.newMaterial( 'standard', [ 'ka', vector3(1.0, 1.0, 1.0), 'ka', LFPAT%d, 'kc', vector3(0.0, 0.0, 0.0), 'kd', 0.0, 'shadowing', 0.0 " % (matnum, matnum)DATA P] file.write("%s ] )\n\n" % st)DATAp else:DATA[ st = "LFMAT%d = s.newMaterial( 'standard', [ 'ka', vector3(%s, %s, %s ), 'kc', vector3(0.0, 0.0, 0.0), 'kd', 0.0, 'shadowing', 0.0 " % (matnum, material.R, material.G, material.B)DATA [ file.write("%s ] )\n\n" % st)DATAZDATAZREEDATA,PY##########################################DATAXREEDATA X#########################DATAW# MAIN PART STARTS HERE #DATAV#########################DATAPVREEDATA Uprint("Getting List of Meshes")DATA Ufor i in Blender.Object.Get():DATA pT if Blender210.isMesh(i.name) :DATAS if i.name[:6]=="PLIGHT":DATA0S print("found arealight")DATAR areaList.append(i.name)DATAR else:DATA`Q meshlist.append(i.name)DATAPeDATA0Pprint("Got Meshes")DATAREEDATAREEDATA `# START WRITING THE .PY FILEREEDATA, file.write("from lightflowPM import *\n\n")DATA  file.write("s = scene()\n\n")DATA if radiosity:DATA  if savestuff==0:eDATA`  file.write('s.newInterface( "default",["trace-depth", 6,"radiosity-depth", 6,"radiosity-samples", 400,"radiosity-threshold", 0.1,"radiosity-reuse-distance", 0.25, 0.4, 0.01,"photon-count", 300000,"photon-clustering-count", 2000, 100 ])\n')eDATA  if savestuff==1:DATA$ file.write('s.newInterface( "default",["radiosity-file",\"%.rad\",\"save\" , "trace-depth", 6,"radiosity-depth", 6,"radiosity-samples", 400,"radiosity-threshold", 0.1,"radiosity-reuse-distance", 0.25, 0.4, 0.01,"photon-count", 300000,"photon-clustering-count", 2000, 100 ])\n' % outname)DATAp if savestuff==2:EEDATA$ file.write('s.newInterface( "default",["radiosity-file",\"%.rad\",\"load\" , "trace-depth", 6,"radiosity-depth", 6,"radiosity-samples", 400,"radiosity-threshold", 0.1,"radiosity-reuse-distance", 0.25, 0.4, 0.01,"photon-count", 300000,"photon-clustering-count", 2000, 100 ])\n' % outname)EEDATA0eDATADATAprint("Adding Lights:")DATA$Pfor light in Blender.Lamp.Get():DATA print "%s\n" % light.nameEDATA add_lamp(light)DATA pprint("Done adding lights.")DATADATA @print("\nAdding Arealights:")EEDATAOfor area in areaList:DATAN print "%s\n" % areaDATA@N add_arealight(area)DATA$Mprint("Done adding Arealights.")DATAMDATApLeDATAXK# LIGHTFLOW DOESN'T LIKE MIXING UP OBJECTS AND MATERIALS, SO WRITE THE MATERIALS FIRSTDATA Kmatnum = 0EDATA(PJfor material in Blender.Material.Get():DATA(I print "Material: [%s]" % material.nameDATAI for meshname in meshlist:DATA`H print "%s" % meshnameDATA8G if len(Blender210.getObject(meshname).materials) > 0:DATADF if material.name==Blender210.getObject(meshname).materials[0]:eDATA@F matnum += 1DATA4E print "writing material: %s" % material.nameeDATA,D mob = Blender210.getObject(meshname)DATA( D me = Blender210.getMesh(mob.data)DATA C mat_id = material.name[-5:]DATA,B if mat_id=='_GLAS': # REGULAR GLASSDATA4B WRITE_GLASS(material, me.texture, matnum, 0)DATAX0A elif mat_id=='_DIGL': # REGULAR GLASS PLUS DISPLACEMENT MAPPING (NEEDS UV TEXTURE)DATA4p@ WRITE_GLASS(material, me.texture, matnum, 1)DATADP elif mat_id=='_DISP': # DISPLACEMENT MAPPING (NEEDS UV TEXTURE)DATA8~ WRITE_STANDARD(material, me.texture, matnum, 1)DATAd} elif mat_id=='_AMBI': # AMBIENT (SHADELESS) MATERIAL, USEFUL WITH RADIOSIY TO EMULATE LIGHTINGEDATA4| WRITE_AMBIENT(material, me.texture, matnum)eDATA,0| else: # DEFAULT STANDARD MATERIALDATA8p{ WRITE_STANDARD(material, me.texture, matnum, 0)DATAzREEDATA@z# NOW WRITE THE MESHESDATA ymatnum = 0DATA(yfor material in Blender.Material.Get():DATA(Px print "Material: [%s]" % material.nameDATAw for meshname in meshlist:DATAw print "%s" % meshnameDATA8Pv if len(Blender210.getObject(meshname).materials) > 0:DATADu if material.name==Blender210.getObject(meshname).materials[0]:DATAt matnum += 1DATA(@t print "adding mesh: %s" % meshnameDATA8s file.write("s.materialBegin(LFMAT%d)\n" % matnum)eDATAr addmesh(meshname)DATA(0r file.write('s.materialEnd()\n\n')DATAqDATAqprint("Adding Scene info:")DATA<`/cameraObj = Blender210.getCurrentScene().getCurrentCamera()DATA0.camera = Blender210.getCamera(cameraObj.data)DATA,.display = Blender210.getDisplaySettings()EEDATA4@-aspect = display.xResolution/display.yResolutionDATA,eDATA ,focal = 0DATA4`+for mesh in Blender210.getCurrentScene().objects:DATA* if mesh=="FOCUS":DATA(* meshObj = Blender210.getObject(mesh)DATA,`) dx = cameraObj.loc[0] - meshObj.loc[0](DATA,( dy = cameraObj.loc[1] - meshObj.loc[1]DATA,( dz = cameraObj.loc[2] - meshObj.loc[2]'DATA,P' distance = sqrt(dx*dx + dy*dy + dz*dz)DATA & focal = 1DATA0&DATA %if focal:DATAL$ file.write("dof = s.newImager(\"dof\", [ \"depth\", %s])\n" % distance)DATA 0$ print "[DOF]: %f" % distanceDATAl@# file.write("saver = s.newImager(\"tga-saver\", [ \"file\", \"%s.tga\", \"imager\", dof ] )\n\n" % outname)DATA"else:DATAt! file.write("saver = s.newImager(\"tga-saver\", [ \"file\", \"%s.tga\", \"alpha\",0, \"depth\", 0])\n\n" % outname)DATA !DATAXlookAt = parallelVector(cameraObj.rot[0], cameraObj.rot[1],cameraObj.rot[2], (0,0,-1))DATAdlookAt = [cameraObj.loc[0] + lookAt[0], cameraObj.loc[1] + lookAt[1],cameraObj.loc[2] + lookAt[2]]DATA`REEDATA(file.write("s.imagerBegin( saver )\n")DATA@file.write("camera = s.newCamera( \"pinhole\", [ \"eye\", vector3( %s,%s,%s ), \"aim\", vector3(%s,%s,%s), \"fov\",%s] )\n"%(cameraObj.loc[0],cameraObj.loc[1], cameraObj.loc[2] , lookAt[0], lookAt[1], lookAt[2],aspect * 24 / camera.Lens))DATA file.write("s.imagerEnd()\n\n")DATA,if radiosity: file.write("s.radiosity()\n")DATATfile.write("s.render(camera,%s,%s)\n"%(display.xResolution, display.yResolution))DATAREEDATA print("Done adding Scene info")DATAPDATAfile.close()DATA0eDATA print("This is the End....")DATADATApeDATADATAPDATADATA0eDATAGLOB LMdDNA1xBraSDNANAME*next*prev*first*lasttag1len*name*nextnameleveltag2tag3padxyzwxminxmaxyminymax*newid*libname[24]usflagid*idblock*filedataname[160]totcurvecurblocktypeshowkeypostotelemtypert*data*refkeyelemstr[32]elemsizecurvalblock*ipo*fromtotkeyslurphactkey**scripts*flagactscripttotscript*lineblenflagsnlineslines*curl*sellcurcselc*undo_bufundo_posundo_len*compiledsizeseekdrawzoomholdclipstaclipendnetstanetendlensdrawsizehololenhololen1scriptlink*anim*ibuf*mipmap[10]oklastframelastqualitytpageflagtotbindxrepyreptwstatwendbindcode*repbind*packedfiletexcomaptomaptonegblendtype*object*texprojxprojyprojzmappingofs[3]size[3]texflagcolormodelrgbkdef_varcolfacnorfacvarfac*handle*pname*stnamesstypesvars*varstr*result*cfradata[32](*doit)()(*callback)()versionaipotypedata[16]*ima*cube[6]imat[4][4]stypenotlaycuberesnoisesizeturbulbrightcontrastrfacgfacbfacfiltersizenoisedepthnoisetypeimaflagcropxmincropymincropxmaxcropymaxxrepeatyrepeatextendframesoffsetsfrafie_ima*nor*plugin*coba*envfradur[4][2]modetotexenergydistspotsizespotblendhaintatt1att2bufsizesampshadspotsizebiassofttexactshadhalostep*mtex[8]layspecrspecgspecbmirrmirgmirbambrambbambgambemitangspectraalpharefspeczoffsaddkfacharseed1seed2mode2flarecstarclinecringchasizeflaresizesubsizeflareboostrgbselpr_typeseptexpr_backpr_lamppad1*renfrictionfhreflectfhdistxyfrictdynamodename[255]namenullscaleselcolexpxexpyexpzradrad2smaxrad2*mat*imat*bbelemsdisp**mattotcolloc[3]rot[3]wiresizerendersizethreshvec[3][3]alfas[3][2]h1h2f1f2f3hidevec[4]s[2]mat_nrpntsupntsvresoluresolvorderuordervflaguflagv*knotsu*knotsv*bp*beztnurb*bevobj*textoncurve*path*keybev*orcopathlenbevresolwidthext1ext2spacemodespacinglinedistshearfsizexofyof*strfamily[24]*vfontmaxrcttotrctadrcodevartypetotvertipoextrapbitmaskv1v2v3v4punoedcodeuv[4][2]col[4]no[3]transptile*tpage*clutdef_nrweight*dwtotweightreserved1co[3]co[2]effect*mface*dface*tface*mvert*dvert*mcol*msticky*texcomesh*oc*sumohandletotfacesmoothreshsubdivcubemapsizertfpntswtypeutypevtypew*defmax**obname[32]partypepar1par2par3parsubstr[32]*parent*track*action*posenetworkdefbase*lifedloc[3]orig[3]dsize[3]drot[3]quat[4]dquat[4]obmat[4][4]parentinv[4][4]colbitstransflagipoflagtrackflagupflagipowinscaflagscavisflagboundtypedupondupoffdupstadupendsfctimemassdampinginertiardampingsizefacdtdtxactcolpropsensorscontrollersactuatorslbufportbbsize[3]dfrasactdefgameflaggameflag2anisotropicFriction[3]constraintsmistypehorrhorghorbhorkzenrzengzenbzenkambkfastcolexposuregravityactivityBoxRadiusskytypemisimiststamistdistmisthistarrstargstarbstarkstarsizestarmindiststardiststarcolnoisedofstadofenddofmindofmaxhemiresmaxiterdrawtypesubshootpsubshootenodelimmaxsublamppamapamielmaelmimaxnodeconvergenceradfacgammasxsycfraefraimagesframaptoframelenblurfacedgeRedgeGedgeBmaximsizexschyschxaspyaspxpartsypartssafetyborderwinposplanesimtypebufflagqualityscemodealphamodedogammaosafrs_secedgeintpostmulpostgammapostaddpostigammabackbuf[160]pic[160]ftype[160]movie[160]*camera*world*setbase*basact*groupcursor[3]*fcam*ed*radiozoomblendximyim*rectspacetypeviewmat[4][4]viewinv[4][4]persmat[4][4]persinv[4][4]viewquat[4]perspviewlocalviewlayactscenelockaroundcamzoomgridnearfarmxmymxomyopr_xminpr_xmaxpr_yminpr_ymaxpr_sizexpr_sizeygridlinesviewbutpr_facxpr_facy*bgpic*localvdverthormaskmin[2]max[2]minzoommaxzoomscrollkeeptotkeepaspectkeepzoomrowbutv2d*editipoipokeytotipopinbutofschannelmenunrlockcursenscuractmainbmainbo*lockpointexnrtexfromshowgrouprectxrectycurymodeltypescriptblockpad2*filelisttotfiletitle[24]dir[160]file[80]ofssortmaxnamelencollums*libfiledataretvalmenuact(*returnfunc)()oopsvisiflag*imageimanrcurtileleft*texttopviewlinesfont_idlheightpix_per_linetxtscrolltxtbar*py_draw*py_event*py_buttondupflagsavetimetempdir[64]fontdir[64]renderdir[64]textudir[64]plugtexdir[64]plugseqdir[64]pythondir[64]sounddir[64]versionsvertbaseedgebaseareabase*scenestartxendxstartyendysizexsizeyscenenrscreennrfullmainwinwinakt*newvvec*v1*v2*v3*v4*full*headqueue*hq*winqueue*wqwinmat[4][4]headrctwinrctheadwinwinheadertypebutspacetypewinxwinyhead_swaphead_equalwin_swapwin_equalheadbutlenheadbutofscursor(*headchange)()(*winchange)()(*headdraw)(void)(*windraw)(void)(*headqread)()(*winqread)()spacedatauiblocks*curscreendisplaymodefileflagsname[40]*se1*se2*se3nrdone*stripdatadir[80]orxoryname[80]*newseqstartstartofsendofsstartstillendstillmachinedepthstartdispenddispmulhandsize*strip*curelemfacf0facf1*seq1*seq2*seq3seqbase*seqbasepmetastackbuttypestaendlifetimetotpartseednormfacobfacrandfactexfacrandlifeforce[3]dampnablavectsizedefvec[3]mult[4]life[4]child[4]mat[4]texmapcurmultstaticstep*keysheightnarrowspeedminfactimeoffs*obpremat[4][4]postmat[4][4]vec[3]faclenoalphaoeff[2]iterlastfralimbbaseeff[3]effg[3]effn[3]memslowtotytotxxyconstrainttotdefdef_scrolllimb_scrolldxdy*idlinkfasesubfasemouse_move_redrawimafasedirslidirsli_linesdirsli_sxdirsli_eydirsli_exdirsli_himaslifileselmenuitemimasli_sximasli_eyimasli_eximasli_hdssxdssydsexdseydesxdesydeexdeeyfssxfssyfsexfseydsdhfsdhfesxfesyfeexfeeyinfsxinfsyinfexinfeydnsxdnsydnwdnhfnsxfnsyfnwfnhfole[128]dor[128]file[128]dir[128]*firstdir*firstfiletopdirtotaldirshilitetopfiletotalfilesimage_sliderslider_heightslider_spacetopimatotalimacurimaxcurimay*first_sel_ima*hilite_imatotal_selectedima_redraw*cmapotypedataold*poin*oldpoinresetdistlastval*makeyqualqual2targetName[32]toggleName[32]value[32]maxvalue[32]materialName[32]damptimeranglerangeaxisdelaypropname[32]matname[32]axisflag*fromObjectsubject[32]body[32]pulsefreqtotlinks**linksinvertfreq2str[128]*mynewinputstotslinkspad3**slinksvalvalopad5time*actreserved2reserved3reserved4sndnr*soundmakecopycopymadepad[1]*melinVelocity[3]localflagforceloc[3]forcerot[3]linearvelocity[3]angularvelocity[3]butstabutendminvisifacminloc[3]maxloc[3]minrot[3]maxrot[3]distributionint_arg_1int_arg_2float_arg_1float_arg_2toPropName[32]*toObjectbodyTypegoaccellerationmaxspeedmaxrotspeedmaxtiltspeedrotdamptiltdampspeeddamptotportactport*portals*campos*camframe*dynamesh*texmeshtotcamtotfra*sectoroldloc[3]speed[3]oldloc1[3]loc1[3]speed1[3]startloc[3]startrot[3]rotspeed[3]oldimat[4][4]frictrotfrictaxsizefrictfacaeropadf*sensors*contact*collision*floor*oldmeshtotsensactsenstimerdflagstate[4]colloc[3]floorloc[3]links*sample*snd_soundvolumepanningattenuationpitchmin_gainmax_gaindistancechannelspad[7]gaindopplerfactordopplervelocitynumsoundsblendernumsoundsgameengine*gkeyokeygobjectgkey*activechildbaserollhead[3]tail[3]parmat[4][4]defmat[4][4]bonebasechainbaseres1res2res3chanbase*achan*pchanactnrenforceoffset[3]orient[3]roll[3]*tartoleranceiterationssubtarget[32]zminzmaxTYPEcharucharshortushortintlongulongfloatdoublevoidLinkListBaseMemHeadMemTailvec2svec2ivec2fvec2dvec3ivec3fvec3dvec4ivec4fvec4drctirctfIDLibraryIpoKeyBlockKeyScriptLinkTextLineTextPackedFileCameraImageanimImBufMTexObjectTexPluginTexCBDataColorBandEnvMapLampWaveMaterialVFontVFontDataMetaElemMetaBallBoundBoxBezTripleBPointNurbCurvePathIpoCurveMFaceMFaceIntTFaceMDeformWeightBoneMDeformVertMVertMColMStickyMeshOcInfoLatticeLBufbDeformGroupbActionbPoseLifeWorldRadioBaseRenderDataSceneGroupFreeCameraBGpicView3DView2DSpaceIpoSpaceButsSpaceSeqSpaceFiledirentrySpaceOopsSpaceImageSpaceTextUserDefbScreenScrVertScrEdgeScrAreaFileGlobalStripElemStripPluginSeqSequenceEditingEffectBuildEffPartEffParticleWaveEffDeformLimbIkaOopsSpaceImaSelImaDirOneSelectableImabPropertybNearSensorbMouseSensorbTouchSensorbKeyboardSensorbPropertySensorbCollisionSensorbRadarSensorbRandomSensorbRaySensorbMessageSensorbSensorbControllerbExpressionContbPythonContbActuatorbAddObjectActuatorbActionActuatorbSoundActuatorbSoundbEditObjectActuatorbSceneActuatorbPropertyActuatorbObjectActuatorbIpoActuatorbCameraActuatorbConstraintActuatorbGroupActuatorbRandomActuatorbMessageActuatorSectorbSamplebSoundListenerSpaceSoundGroupKeyObjectKeyGroupObjectbArmaturebPoseChannelbActionChannelSpaceActionbConstraintbKinematicConstraintbTrackToConstraintbRotateLikeConstraintbLocateLikeConstraintbFollowPathConstraintbRotationConstraintTLEN   0Ptdl PPx4@H<0P H l L ,@x(D($p<X d @l8(,@0,HhH,(lDLP< 4@Lh0848l@0pP<`,,,,STRC                                   !  "#$% & '()* +,-$./01234  56! 78 9 : ;<=>?@ A"BC7 &#$DEFGHIJKLM,N$%O&P&QRSTUVWXYZ[\"]'^_`a(b)cdefghijklmnopqrs* tuvwx yz{|} ~ +lmn",+- (b$$$FGRS)#$r,$*,-.$klmnoFG',N/,0:klmn^_',0 N1%2&"]333$   45 ,0ji6 7888$     769&5  ((,:0 ij9" !"#$%1&;;;76'( )*+,-%.*</01234=/01234> 56789 : ;?<=@&A?>?@BA7ClmnDBE5 C ,0 D E FBGAHCIDJEKFL M+NjiOPQRG STUV$ 7W,HX (YIIIZ &(L$[\]^_(`(a,:5JbKc & C d e0Lfghiijklmnopqrstuvwxyz{|}~N     MHH6  M+k,'NNOOO(bP+}BQ(MQ$ ORS N MPlNT $)c"#BU*UUJh(     TUV  !WWW"V# $ %,-&'()! *+@XXX,-V#.*'/ 012345678uYYYV#.9ZZZ [:;<=>$?@ABCDEF G\ \\ V# H'I% 0]]] V#$J9'KL"#+^^^M!NOP7*QRSTU V W X_ YZ[\]^_`abc%` d e fQghijklmnop%qraaaastbbbauav c&ccauavawax`yz{|}~(%        d e&PeeeR f ff%e g  tux y{| } ~h hhh $fe,Qg%Oghhh i   % jjj$%kkk$%lll$. mnnn$hjo ([\]^ p pp q[ ,(`\]^oWr rr$   sNss<      !"t#t$%&'()*+,-./0u1u234 &5 Gv vvZ$678 9 :wZ;< x$9yZ0= z>?$@AB{$ ZCD|ZEF9}ZGHI~ZJZHKLM(NOP$6QRS9Z &T(UV W!NX$YS6Z9[Z &T\]^_` ( Ja$Z@bcd ef$ghi `$(EjZkl $ Qg($ZC(  mngjop $Zqr(sXItuvwx $ZqrRyz{|}K~(O9P X$6Z &(S ~ ($ H   ,EE%ilmnL- ~lmn 0((- EEE$H ,"] ,7  V#fe"#+9Z[ \]^(`(a,ghiijklmnpqrs|}( R  @@@@` Z=giiklm    ikmZ@K , Z@J  +V#Jb'@  &,$6Z`((@b(@(@(ENDB