From 0985ae86e8a04a07bb0b2764bafcad17b53b3ed0 Mon Sep 17 00:00:00 2001 From: Zigy <105124180+ZigyTheBird@users.noreply.github.com> Date: Fri, 17 Jul 2026 17:38:05 +0330 Subject: [PATCH] Added some missing functions + UV fix --- .gitignore | 1 + addons/bl_datasmith/export_material.py | 7 ++++++- .../MaterialFunctions/VectFaceforward.uasset | Bin 0 -> 9354 bytes .../MaterialFunctions/VectMultiplyAdd.uasset | Bin 0 -> 8099 bytes .../Content/MaterialFunctions/VectRefract.uasset | Bin 0 -> 8469 bytes 5 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 ue_template/Plugins/DatasmithBlenderContent/Content/MaterialFunctions/VectFaceforward.uasset create mode 100644 ue_template/Plugins/DatasmithBlenderContent/Content/MaterialFunctions/VectMultiplyAdd.uasset create mode 100644 ue_template/Plugins/DatasmithBlenderContent/Content/MaterialFunctions/VectRefract.uasset diff --git a/.gitignore b/.gitignore index 684a2c2..363088a 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ /screenshots /startup /www +/.idea diff --git a/addons/bl_datasmith/export_material.py b/addons/bl_datasmith/export_material.py index e0905a1..b022c00 100644 --- a/addons/bl_datasmith/export_material.py +++ b/addons/bl_datasmith/export_material.py @@ -1169,7 +1169,7 @@ def exp_uvmap(socket, exp_list): m = material_owner.data if type(m) is bpy.types.Mesh: for idx, uv in enumerate(m.uv_layers): - if uv.name == id: + if uv.name == socket.node.uv_map: uv_index = idx return exp_texcoord(exp_list, uv_index) @@ -2454,6 +2454,8 @@ def exp_math(socket, exp_list): "MULTIPLY", "DIVIDE", "ABSOLUTE", + "POWER", + "SIGN", "MINIMUM", "MAXIMUM", "FLOOR", @@ -2473,6 +2475,9 @@ def exp_math(socket, exp_list): "FRACTION": (1, "Frac"), } VECT_MATH_FUNCTIONS = { # tuples are (input_count, path) + "MULTIPLY_ADD": (3, "/DatasmithBlenderContent/MaterialFunctions/VectMultiplyAdd"), + "REFRACT": (3, "/DatasmithBlenderContent/MaterialFunctions/VectRefract"), + "FACEFORWARD": (3, "/DatasmithBlenderContent/MaterialFunctions/VectFaceforward"), "WRAP": (3, "/DatasmithBlenderContent/MaterialFunctions/VectWrap"), "SNAP": (2, "/DatasmithBlenderContent/MaterialFunctions/VectSnap"), "PROJECT": (2, "/DatasmithBlenderContent/MaterialFunctions/VectProject"), diff --git a/ue_template/Plugins/DatasmithBlenderContent/Content/MaterialFunctions/VectFaceforward.uasset b/ue_template/Plugins/DatasmithBlenderContent/Content/MaterialFunctions/VectFaceforward.uasset new file mode 100644 index 0000000000000000000000000000000000000000..39ab9c50608383bad13b12415328f027722767ed GIT binary patch literal 9354 zcmcIq2Ut_t@;@mQ!9od&6)8#+MWt9C5E4R@76?9;@2wI@gs@032_h(hxHeqd+SYZI zCJ?cpPsFvbuH~)e`BVh^ioF1VCD6~4MmtUjkR6XP&D&kJ?tg;&(z6v_{Snf|V|hzoo3sR`F7A1C zPKkZhgmI&B-#?B_aaa4_(|!6q+B6JZX7#^9%(MpRJ|p0FjZ^4!L{ zj2`XHaUSR6=E~)b8#~U$+1+RKc#b#6jpydWA-I9r0N2?12=&0_6|fdle$Njj@Q`i0 zUI@W6sh?&Xet$H$y!oH6&jc&I)sPPf zg>tcz>qvKE9HFLvUF={SzeLc??bY8xWe(Om*+$bx{^GT4gM|VRqbXx7+#VGXCzGTo zMscMwab#$0BE}BA4si19LmA^G$4ipMXd!z+0CorDjeei*a|^)m=FLbICdoOdnQmp+ z8#?@CVxdAT6C?+`PXm|-s7tP~lZp+uU@l_n)& z1aJ+p+?w2tJ{lzCqoI$>=&<%5UXr6(12-H8t9+BBLOg4&RqE2ZRzS%&HCZE4_I&>m z9o*rUDiI-W*xLjMtN;;G>{m|%#(?BFiAbERK)ToOj{yfEG=^aBM$xC;vq5V>@(20F zHEw}}abGYXE)gbum=VQ{op+D!81Pvp4H!}A@T+ULI^*~T={Fu;1n&H)BEpha{m@QW z9GK{P<8z+t2ZF63QtUY@#(#Rjs%re}J&*VGJq=($m@w`;VZ1m<8YfJWWC#I%kR?yS zL5xfk>5Bo2aPc&;Oq`5+zS&o-0(}uu83scll}WG*txzwv#370z6c`PRsi^qST2L9G zkfp|bz|0x_(gNL)7)Upl_cNK2@~({eYV!l*^GK zZPu!Rxb-PaTq$-#Azs+U`-~5Le#v~KFi8=fD;lzGj5TQgR1WD$8c&R{3hxK|SjT*! zsR|qt=-RTZDd6XyG6qaT7IXf}`uwbeQVGseGz|H)znwI%V{^bC5bUDB4bo60&T~;cKTqgNPVGNVfX$9eUr4ZTHEP^H7E7yX?ey% zNKr`JP4rOfo!Q6GGJZ}UoR)y6jh1HubpdccRR^`+nZBW&=!27rs&5MHVicn4pw_#h zucaNH5E~!^^a-@Wa>z*6>ZIzR);rS|re##O(+4pIL!d7NfW>qPwlxY-bx`Y_=?m1# zdfQGP#44$;pH`TS6-AkLob2hUK2t5@8;U-V;j9$|SFs#V{7X)hVAa;?BQ%{J1%Iv2bbp`;P2=b z8X4j%VEg&=KnSg8uU^J|j4e$}EO{esNAkK&ZNDR9eV7x2W`*d+G=?#)?Kr}2PSc?g zM3@5>(HTq~T|NCC28NhnuMwit7z{d-p`*jZXwx$BIAR*>m{^YX)-~k|^{i&F#>`t) zpl{9DeZ(xh`l-#>SXoXFgTDRD`wtj4+}6(C!Nt|hecbp7TpymVpMOALgdlSAKcl{h zjuVNe#V1G-<%-mqX|vKZ=6}Cn;iAP$a(`UCX6?H5KW+HAuxLwhNvU#c*}wNx?5*7Q z>;3~rj~)NdA16+pI(?z0_Tr_>SFT>Wedq4I`wt#Is&9Dq{Dtb}tLE2l-hy3VCrKL1 z+Sz4{?V>Z845l8~MWd&I;l@lI%h9?f-h4gb3{$Hy^YmGqRRz0`^spWq{?sg1R&CJN z#^v^~XJ8s(S=S89`6|oa8}`AjYp5qa6zIkbW8{Ti1P0pW(~GhWB}OlK_bgwxn#ZEq zWTibTt+7@gUgnu?kd!xbQ}F61?_6kuS$uZy&_fQhIKGy|R2z_R=BqNZ3NX0^O3(19r4pJ`eG1>sst9>OGrp2j??OPc*N% zupx9s(*X2iu3f(F;Tx`Ifo(`pD?ofa0}r#luU;0-&N$E9Yub9(_tnc%yPjikOCdPe z@4~XB_3R!NH(DgBKPL9>SL_aK6<0kU`_?2iq^ruBCLU(q$}m71wg_-j`Ln#m+RTiF z?);UpyQG?jSa>SL^KxxX(Eu@vCLDQE-IzBcV#_I8?zw_8R+tVk$Fft7_77J*O8j&B zpuDv5f_&YYB6V%+(t7`6F(>b259aZzsuJqzDp0e!q_8w6>XxcBX=)(K&0Qb+mcKjG zj_zPrm~F7u^O3Slpw7YktayfPG4ivmD{FEWx76FNKa(`-hQ$sZTL;71;e&47!}E<^ z_|R)a-lkyN8!g{?7B3GklBf@#&bHlB{FsLvGH-|11~f02L-- zf9ai*$M>ppLB9!KmDPlZ-uM}|)KAO0ZLy5ovC?)EGT{!dS%?+xOpmL*lo?&Q-pkse z7zGK2o@}uHO{iius}~mL>!mL`&wpT%hynFr-E^K^{h$w*-CH?r`UVfRU~^1!nf%lP z{~6~M`TCCvbCF$FA3Z(m9e73VuRgQLLtT@2D1^WJ%FAt2zIlZ`HRSoZy+eo^kA*Hz zSB7S63qSkk0+mvU3Ulqc_3Y4}dgcey%T@6gm--zud-)*S3F4sdAF86b3_->6nMD@f z?EX(=_tZ5BcvWF#yYtKm{&%FO>a-ohFXL@>Rc4~u_^?c#6AI;@one^i5V-tq>!dK9 zZb_tQA8}l6URq<>h6MI16fvv~O_r#x>c&}RJ75zan7aGW=H6@#tlc|^VN`x$OTK~X zhcR0+ayM$cnlT}F&bG?QLsX}`zJ%|WdXxEo=QXhh=(`oJ@Xn21Iy<8phY&p)+v4!; zPILEivnl0gHj6}Q4Gs%FL@61qUntE+7@m>_=I-!4XwoX}8%!*2ex){buFe!-=Sf$Beo4vO5b|v;ze&=ZfZg=tb|pzanF~&eeHuYE|gm zh}qS+naZN+u-ecFHUEAdpWSO~#1n(~b(veaOmhz<-SMYAFO+XDMxTG7S0z~IQR>*7 zwHEPstT0+vo(N9f@hk)Xm@#usJZVD{_J9I9j`|4tn(;2_^XsxLcw^5DQE6&eCXRPk zC!aPn>pUIy(kcGA%Z{ym7dbe=uQ~Km!Mf|?6W+cJ(}}hlI)DD9&O^~5%JRiPr)Iy# zNrOCYKHp~C+H^GAhQVMI;~k<`)`3KaweN0gqK*D-W25iOmr7-RkF@d~E;+|noh%V- zZRVk|aT)yGRSwa1wA`6J-C2(t8-rFi&1GFfilu|{W|u3=%1!O>J{VHCJ)%f`a{=NP zmLIaW<)2e32UIV*5i_@fHYHc?Ti?7UcRIx<0*yE3yP!3KZ8Wc0cZ#DfPUxMPKxfUn zS*ceQj8XtmQPC}?x|}}Bl~9<064V5m=)L`UEkF! z{q>Z3jS*gdx|*S}r@1XI>Gt(+Yw(+`o4uY~SZr-^)Ls=vXY#ArEe^KoKT4E&O+TaQ z7(Ele=Bxp!Ze9mp*C6T6+fRj!2|8n zA0u#5Yn1jo6<+*YiexD6CsVeXwCqSStMfi91KAN!8jBNxQn^?l4U)vlgtBxZQSXcM zwPMsk+7xcbqn*c$Ly#FJ)2f;zk|wVTS72uZiAW!@oJbr)suT#a*IGSXoPmqSSvj1C z1?u~`5rKG?g2;c{g+v5}as|97ft?j;$%jOy)rg^1!4i4g`_kT?kVkToHb=^F{*bt| z`-rCrao&mmK$}12B#Dzn!BUYJLDrBH#0&A68k!=Ukt!x+X}L&|KGNwzNiu?urC^__ z5vj6ikc9-mBIRP422v4Mm_j6paWC=tz=riA$y{3j!%2eg6vW04nTPmfFbrc0X;>gD zO#vSe1hCMgYJfI)hra8*-)+kKI$&JlztO9f z=sKK`UIn72ec<~N0d_#(KtNPzAZCE5SVNmw+I{tICwd4F#y%FeF^N99y}3uJ5K_4`t1@T$wYJ z5Tn^uv{fPrK!Esl7(rgB+Za{usoEE$oFBaL>9YRgX1|X78!#eMPTj_6_@?Fem;Wl@ zR1{p_X>@(_^A0hBp#M6IAVJb?jH(QJaN_qp9?yvaO0q{rAIqyI;5>WbxX=>mcSkR+`$WFPJjmVC_G zAuL~Y01nx?v-C`CId{o-YofwAuPeI_3tWwXKDmIwrQDJj`q%|Ky#qL(RbJdRo)@xy zPQ0D$bhSMQ0kYN<#4q9dkeLPg$gSYE3q*BJ^1o6b49QRg9zOiQAI5V!Z literal 0 HcmV?d00001 diff --git a/ue_template/Plugins/DatasmithBlenderContent/Content/MaterialFunctions/VectMultiplyAdd.uasset b/ue_template/Plugins/DatasmithBlenderContent/Content/MaterialFunctions/VectMultiplyAdd.uasset new file mode 100644 index 0000000000000000000000000000000000000000..4b8a1a710e0235b2b9519ffcb095071497e7f3f2 GIT binary patch literal 8099 zcmcH;30RX?^5x(b6%2}aaCi_<6qQ4?T!sLNNQeZN@^zI!qJ)hElOTd3h($3}T@Q5C zwjc;Z6w&qQT1BgMJy^GjpslvzO+{2Zf~f>#-z51pA|Uv6=i}vn$Gn+0^JeC~H=J7O z`mMU7qa&7rkU1HlR{RAB|Lq&jf8!s_-XuJ0x3fYKFUk6>de{(zjPY1O-XGR&?3CPo z*O!&LR85;Y3HN<=YOc2?^uF=4FVW%Ui(JQ2ao;N25wTx#1bgdi2bW(v_sH@N?ptv+ zL$oK5)9{$fE~g*)?nD~y^Ov_>$_m=gxJBErN#-zO$Qa!BBw_#k#u=Mc7B?mp1s)5Y zK*xO!xJ(S;FBDEpsi>*PKic!hgsdq{UEV{_YDnMBCT` zD+Cu88{Ihk(psiow5-oz?_mG;%b&7qPVmsLyx5kZ&VtS67Effp+ zGNGI21aIv)Ld{=X?PeTL(n9W>Ii*mE!F(n5x<29;?_~#U)JWVRGZ>@c_Qc3|sVG@K zks*-^qd0MiSa;|TmYd%IgE3~(0#T9>tqRCtVRJx%=!bW} z11tfOAJxoURDu zPT;QxAAtZ7{P@4|7YM^7@qDo;oez2iTC!w*ybxK-({h1&q(q8E7fGZdYy|5yxsG7l zk#a0MR+ymVcs?+QluJ|M-)YDleccA#QCMwW9&h>1P5wgcfV)5D(v3BlkHHZcV!lj< zC%P<7|2z#-FcxwQLJPhkS@gwX-W55qc zI_v4;dkOkVU;hH)MmGTb2%bIh%hk_sHQ)!AB)YyIj?~rq`ooX#)1#rD_^s3YT`5nJ>+(rZ0!K`3J!s8?u z>-ZI4TP#dX%}q@#%+1U#`&n384Y#%$Fu=-bs2y#%%jj{g^wG}FZj%GN-Q0cMot>wK z`S>!Jp{&qxUYw}#U|v8-C=-Z~`dM094X|>wwsvGraGt>IGj#lbtW04|6p|AnTahSM zq>eKXw@F4MEnum%Kq6D9M#d(lX66Q z*pa-bIe&@%JSJWsoWCGJlqi#@EKXgLmcH`KoK>rH*C;k_+MK^->p!+_FDl+uQd*|m zUH;F5hYlb4?q5g0KmFsGf1f>f{zCPY+PbUPe*We9jXQVm-G9*V`@_aZ&tJS$wY*aQ z@wye{0yzojQZ6ej7nw?>P)$HC5;+wYiWSw!agwohAlHPyXpqz76{fTq8+INzWj1Qc z>}NJ{(i-!@qdo47c@Cm!CF`AF*`FlYTfyGRbp!Ro0hnw>u|odnC7VqzBo}8MPmEdf z=6RuU4U1-;Pt6fX82esb|e$`S& z?>8B@#3^235*(Oq*o!);)i8r7fy6*QRxK{iqO;z4J{Ur5vx;fgmi-()a z?XtE}Ha0YL_i_4x(i$eB;iYIxOMY#!osdT2PdKk>Dp(Y`>w+`m(#~>PgpqcQ!40^VmqC z*c#W$J&-{syV8rY%=7&oD$9AAY>ZD^KyfZXA;#S?GZS1<#Nuv)t< z==OcQ-k4Rt`;Ra9W|s5Kw!it6teagd(wwZ$a^6+)go#`;?#!-ZsdHv(iS&DMu4-ho zx~wJuYDS8$`)3z${p&r@3I40{+Hk?^5R10P`I&d@*D|_i+G#=7jIp(=FvERm@pacS zVvcO}A7x*H!gvnnAGw_1t7vM?s-i-ZwAGin4fcsxp}w?R?n`SL1~3BpE9WoV=Bwd- z8>=ptU1$hhbXi_#`mjiW=)El_CZj6wjy%|Oaka0eHt~2k_rNbLd**)r3R`OUi%W+` zYHLgy`gx&}lfGy6Prv1;luA^jp!ca%n9jTS)u5lN7F^8>`O&7OAGF;i~ z?zPX1FzORU1McI`$ZX4M9Xk-uMTH{Abf7sR)pg@|rz}@20ytA&3u*bSc6Qz2;go@u zS9TSetG=4ND_yZeXVsKxie-C_%o(Yw?)?_N-Rf^_|Ffbwz|PdGXnmj}CU0qa4R#@N z43@?9ulsDhD{bahUi?-dNPXm*^Ug~NZ~e&EX1v7(30qMSd~9I<_J`VdGyS4pUE1m! z+nC7zqTkgy(bZl{N9M7nHPP>8RdBY2qRw~OY2f5s97+JJ8vRHE~ z2XTukkGnW?FDaFFHLGvNEL*K{uv2m z+KO98Osb+o7t8I}vg~jA$D|Z*~;bF2V3v?8d7uswRd zX;g-qC{3Co{eSbcK~t(3Z60YZjjgqKX8X7PPp{;TvOn#jiXcUiRg;{Ues6ZXp;hNa>D<2PZ zdXgh^eEGJ}zX@StSI>C|+)pIrbV;`fof8EJvQNM?4kwi)G9gbACW@2trD@uWYcO9d z6QXXCXmInLI4KBg%2vS)=LYX!x2w5}$$V}?FFmP690nYT`oE!jT zT|OA$375#xWIRF-j|}55c+6-X-HDLnT`J6Jyo1v$ku3i0*TqFkkH92SBT+J(fzm#e zf`s$=IIpV}U!PT+Ar>YHW=RA>q)jY_F~fuAagzCqQiNJsdMtuukYpiWl!V|JG%ILc zWQue?pt2C0+0iMU4=pbWFk!AIRVfq z8=&jd|H88apw~o+2|W=7sQ|!M2++<;#x1Y`fDZ;^u>eHo+Hg6L?FBHD587bGrdex( zCmQit?26%IOne^hw}Y(!Fw973S;M>Qy*0yh0I(wh;8Co7k--;ogaEx>%jLB7PQnrV zpzVeAYXnbLq;{)@{W!_dtr`k3%RZ|i`ikkjbNL}b2e`McwR_aK{RwIyHoDJhpoF;p zp3|QfczE~2(Leo*wS-8Xe6ZoLp`WIsPcjuJ8LMDl(36nWyBp^1m^R?EKS4*tW4_Ni z%HuOn~7lM zt7eEs=7wxH9{ce0%jvKGk2)nbp(mXZer*`mdOSwp>;~wGXt(Mt#3`(9)%grl?X!u# zT&`)}TRbYLOlfwaAeeK!_v(a{AixJ_1B87d+fD` z6$HVEb*o#gQrG9g@2euXS6omOsp1ku4al2wlZz37qTl<^_ub67XU?26XPKEh2aYdb zZ))x6=!l^qWJE>iEp7o~lyR>&3@I#)icavmy2;Ne`bbGxvpkN#g#LUP3~ga{L9(m?LJ`*fANAUSO*UNo{4E*ina@RzPmZM87o%FnZt*U z#{F`>lgu%9Cf(=72b&R>u$8kZpu3WOQ>ciePQoFYOLFB8Nma4$mc z_;~{p!f;z3A#2=@pXA4x;O^_{?(Q_vdAzHO3y15@b#`;|b(-MrFz$qWY54H3fQ z5CdMIHGbcMK=M5i)8Q#J*Yv~hc}Drhmt!)&+J0|S>6|}0eua5}7?_kE#%M^D)J`?S zZ)3+!^Jl}(7|({P9HZVL7XB&i@X;G;`Bg1=vcDvodJN! zWP;3anKV@-Q)HsR-SuMdN-RezkqA=dA|aZQve5!0#Rd!Hig1}IT`bDL=ccL*vB_REV*-1Wg@v8_knrXO(2fp*6cp$gHDZV=93C4sD3|4j^=#1{!~9q zBUK>Ti$hC6GD#qY&Wel^NCYzU%Ve)>V7PypSco{`Zxdlr1`3hlkUAdnFfc_ZnuB6C z|L~{g4SNF3D_HWa5z&X=Lh*t?(N*qwkZFWyIl9`s%Ak`09Ea*xWFLl!2BzTfXyaH` z;}!(#G%zdzJ2d|5;TR7QC`2-`K=R%o9WU&xKe1z2w@ey0N1>yyZrtgOV+Jy8I=UFA zXg7)o54;+Rc0zK1Rh<*fe_{QYIWdf##N@d9c3Ch{X{WkWn!HF%hgM)@h*WP71&ugRKl_&YrwaW3R$QADaU1_U|N`#7Wdxek7vNt8d3Y*J!2qG!{Kpr=@c?E^=rxBZF)gB4K71wa3lh`94Rv9toQ=IbrVKn z!5~Z969<^xGJKGoDAFckDD0gd3nKZ#(iD)3HE4Igv$Nd(*eH7k#jUgMH~*9z)oObU;^!F5a6ynU=A=i$5W^pbPZzwLCc^bd+iP zNlIV!g=-nxbo7A?SFIp8|G(4XmtdLq03e3c*_(Y!wByw}`e0jg)6(HUU7*EhGPOuI z4XF#ddefJy9Shq(Y`Qw0OzVf|aXQuUWh9hxI>} zlx`_2->TeJ@yp(Q`wtxa_0Vr8PM-SL=`&}~Rb8s7y?o{Bwd*(T-mAa=pyA=8#>dZJ zyi~QkYJL6YE!YKilAy7yi(RJJE-IZ)qZ@!-6lw+-Zc5j)o}h2$!!r=f9&F<@-;gnN z#pXT7`;BytcxE0et2P=k%H{6p=U^IPS>FuH|18To4SR3b4b-1T!NH@MA}{nZD2P=| zEzLcW6utD_^J4vKE`u^EH{iKM& zvGVb;92c~YpEED_HY2;lt2vy;D$m^3-h64ft4AWGg`Isoe38Ls{qnHiSd>~G7jbRt z+U)iVRHo| zT#uMz#ksL|4_7=&`ZL+GC}Y>=V*Q#@b!~fLW5CInv-k3bbGen3iFI}RP^-GUWNUuZ z9o1IJtRPfSurBs3Z%;Oh%4U`18Ljbrq^#hp^D#dofo5BV{B7$hn%zZhjkfE~OUB)@ z+QIeK!*1>IL3i%s`9?2#=w)BDF~s&(+c%zN-$#^+)kmxHY`2s>;UaeS-H6)2)`edY zLi)crQ#m54b!)XZV0r~V4ahIzdDXd~-vzHKYC?r?{Egch<8$v?E#vg8w9ACdIAdxS zVTC(0<7%&DM;}<{HPWgK1@oC_AKU#dP%&E7i%NkDpuJFp%Rt zKpCIB-b2mb6w_KEKi3d2`=X-Q@KH$tV)gYgFc`T5N94h(^NT&yHAzQ8d3&z4Y@a#f z70%Sq7Z>)AATTZiT}@VoWo?i6^D=+d)8(yzOkN*yv}=Go*q@@Hh09D*q^H3{BQlyBvi_!$J}Z8lt7m5K!Nle;Q|kX z=tB>dXML}Ceg2zT6}n(Qw;I2uF(`VB4rH(9Jt*RNn{11GYLu`xdmD#t;i06C{bBD* z<=e~A7hf7w^4EH79ow3_264HJa7tgE$f-rAa*YCFoaUW*+JPqT1qD>R>LaPEC%I%U zsLQkBI-eh*(qLF7Uhl3Bz8z@JMJnv2GXn~iom}&7+VDjG*03v^*WR3z`1WnMUNnoj zV8NB%mm)jL`sJ4nt^Q44S$f=lvE8)2`9$6*8jV(lcLe?z~ z_Z&L_4y|zdKAexP?;4c>21*=K>Bdt!@slusr zUbS}{+g5$LTv^ooBTB~JGxKlF9hTPK&=zU$V=$;|KNHi)(w?S#=SW`JJ8$Ap2?AxYxTqtQi}=!D zajZ-r%OpN>{R9%Z2=!2HgRkNVt_bRf9I2)jr@8iPigEDKJD!-5Zs`pZ5!5)fS~$2! zl7I^*xOfLJq`MxzXpREG^_LYI863vpbEEhy8`6&Vr6?PFrcH=g9@p90*%9(cPSWCO za$NEuu0+0~ctM&(L71;COHP%DQiLH;W+aM`!Q4>aSz)Py*=Zs|mX?bY=_^eZh*J<; zcS3w;MQX}6guAB6MKX;;g&aXDQ6yrAOr&d(tu518XUq40Cadr$blCaL|*5aWDjnMS&h~bASM91 zQlT6L&{ZnT+7JQ{V6ADo{U!T))NZ34_Q~2wN01u2Q&0Bws2vKj0H3TKZixV-2F=@t zzhobI@z*VI5aaXk)sVcUf7IzsL2&;fKsO|?NC9y72LOd>!-(vrDeLykMk$PB3D2E>=9;QtW%k za*MNN$ZDtm&tQ;+K{)UL`kbtjvTQE3s}Fjw)W7*A*7*d28ax2}p#lJW2FDEm;P8+@ zY{hV30`%y0*m8UHdQ5Li;MnJQefz3Jhm*N={%c1Dp58t{-u_?kI(ca5ItMM!_rlOuE9Mz`xsXD-`#J{<_>P-nFRS3u1kpB zz4FSzUY-4cH{f#+;GdwX;ICHz5K4GR-~s~Y765sk1B0$1#D`B$MOIQZ*@B?s_#YhBy(-Id boN}rfvW?UZeE{io6M6KiqjuyUZh-$kl7YNa literal 0 HcmV?d00001