From ddc07b09f8e4189675c848fb58072fa4466e0325 Mon Sep 17 00:00:00 2001 From: jamesbaber1 <31859220+jamesbaber1@users.noreply.github.com> Date: Tue, 10 Oct 2023 19:00:15 -0500 Subject: [PATCH] - fixed #669, #638, #637, #631 --- docs/send2ue/introduction/images/8.png | Bin 61882 -> 56901 bytes docs/send2ue/trouble-shooting/faq.md | 2 + requirements.txt | 6 +- send2ue/__init__.py | 2 +- send2ue/core/formatting.py | 12 +++- send2ue/core/utilities.py | 3 - send2ue/dependencies/remote_execution.py | 5 +- send2ue/dependencies/unreal.py | 60 +++++++++++++----- send2ue/release_notes.md | 20 ++++-- .../resources/setting_templates/default.json | 4 -- send2ue/resources/settings.json | 24 ------- send2ue/ui/addon_preferences.py | 1 - .../test_files/send2ue_templates/default.json | 4 -- .../send2ue_templates/template_1.json | 4 -- .../test01/Config/DefaultEngine.ini | 31 +++++++++ .../unreal_projects/test01/test01.uproject | 2 +- tests/utils/addon_packager.py | 12 +++- 17 files changed, 121 insertions(+), 71 deletions(-) diff --git a/docs/send2ue/introduction/images/8.png b/docs/send2ue/introduction/images/8.png index 1b71428fbe70b0cbf095b7382f93c5f9ef4dd70b..ba17d84d3ae5590f29ecf4cc3e71a8805e97dcb5 100644 GIT binary patch literal 56901 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

o>|H2S8tHobB~-vIQF72 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%0AeeUo_O^?>xN%G{E0c&+xbc z2G$JF&v~`4XWEemX>GsQCzUQdM zt1HV$i4_hKXv8SGlx3y0M8Rn%0Nz=0@s0#tc5{5CUVzdovEl zW!~DZ(u!OxpeOOHXyCda{_ZZ3Lo$Y0x5kkleW|>0ABQapMs($xZ&Q*il{1s^$c99T znAY925dob8R)m;~tE0>9_?y8A@TFPp_XJDUo;{e+Rzl%+(}*)1f?=mLj@|LzwjE6lGb+>shq>pkIJYtlArQ2RHk{x*y zqg!EnW%IMOM>fsmzb=o8 z+Lc{om=>th%McKVe;rz6a3_AmJ~N9K_4qguqtg-NpPP8P?|F?F&p%kWvk0t^rIm|6 z3v>kM_lfA2@CTdom<|}w0@BkI#I)h2$ntffhv@)^Zx?$IEJ=s5?<<>Fgx0Qqr{-xJ z2SVd%BqB$bAdf*M%3AV`M`R2(2Ty%n_&40%J^}>?H?8hrYxvdNDgY z@W;v&+r6swgz@YZ-2oV7p!NUvFWz^A)kZJk&xI9y24mfyYupDBHL~}K8jTQ&YV+Kj z@A&r!fdc#b;Ce1fD90aR$L#R-_B@K296y}*M{OXuuQp(MhzGSnG)U_Dfp)T=H(9&e z_4Lv-5PD0&y4n&wnNSZ;#c63T3H~0z3!!ct0+~ooZLNR=4uqmy#&fYeslck}g}~4` zB!faC7eKy)^_b7W0FAO#_k*Ue-P%a80P9@Q3dYc#`oN2O#p&=RRtkcUEFO<~0Mzco zvYBqu5i-@Fb8>-pybNi#pxJ)m)Sh;0eUyCd?A0&-AT|St#8qPIp)*_WRTm$I=|#J%#&g*+CLKu(BAPT=RZ146y4;AZs_ z>0P0L_;r_-p)L_L(H`x9E6ffoL7?oq7o4&lpL5ODrhwkn`&bXiBWnrG+cS21CE%oL z2|hmsFi(Aj4^Pq|2TqO0NV@=JX=gY}XeMXhtuYU~{NSrV;$`wvlZ4Y*G0M&J%Tf+^ z`wm|}ghjj@Kaie++AC1rf8DdTJ=*@Jshg2#^-U+zbn^NIXQk>L{=TPHrH*BuqbHza z?F?j%gHPnTkp-C|zHEdSJMsb0JvX2tyn=oHac{W*Fcf(OvI`{Lo(*NSEk=a3EJ=UR z5w3zj*!LC%g(t%+imZhj?gMc_5d_$1y%}kP@T(+j#M^67AvO;Jo&ie zI1tT=;SnB2a1vz99^;MlPL3TxAq3=oOlaE2F&6%Vy;*;mgkw4f<(?rf6Zy%y2#RfU zX77ynY-mn)2Q8=5Oge(Q9>P5D`vDL4*{>p=Xl6>=<0UQfYY$k&n1H3mb>2T{vD&a$ zzH#k{l?xvccWQC?dfJ0eo4i?bfK{x9bpUp#%KJ71Vr5~BL^3Vpf)QL96np=jzl<&{ zk2qS7)eZwtX_p3+9%UJc>()pzBNSRi#?FdXO&SWzmOX$+O|{&uqpxLm9R`<6#@04v z+i+f`qIYN9b#3wY@pG|5Yb0tEg#vHO&I#r_*X*M0&uz+&N(ew2a)Dx4DF(Y+n-^KG z_qf>yA>%`2kFU*Hl(SIS{2)_8X~(;ed{?fjumJhVPfxBQCxU!hbnH54kdd_`octT; zF4CUV*LxIbkPHwT+9@j1d0?ENw2}I=hG~*C&mfJf^_v@cW=;oHBmdHIN?>{+@!Hc( z7(g=!A*pHIkIUNjNhirE3K;ObcTUtL%{vi&0!~yJn!fa!FZq=G=(5&38%Ky*sy*A> zTBiBO8Fe6~aRSu*g_Ksuow{R$BxSMrosm%uD2-q?;Ly-zKtSp6iA_{pd+%DcWJsH| z1+NOC&w&w8kYSGsR|p9ORwgb5)-3gRfgwW+_|NhHjOcUl*Diz%uP}IzQ1P7GULT#% zNG4V@)M?Q8u(!LWu5LM5m*N`3kRxVelFbrUK;3Lm@%>;zk@Q*VB+iw2Ug?H6$lPhh z-nkzJLCgl#6R>-*0)N~mutMN&gv@8JIb<&)^?BAFO9<)LhI>aQZYmK@`FZseUa%$7 z_Y9>`UD#=fAi?~4?f$KwctFlKM#V?j5=M^Yo~dJE%rwMZ(2hO{0vB}ZzQY)sxF>oY zDRtB$ZX_-Z)|lEHOYbKr(3Y4Hv&xvE2;Q(I+saSj^E?mE2`b+89^Hsq6<9TgBDf)iOs)k1fw5-DXKBTJQ6d+pQ?bXoL6Etltm321q zynB}?(}2w8~maq|UO=mj|W zs#RZnM^;qicnE2oJ1r>urO&sZV7u6G)Tr;!>G$n|xE-zPDnl~J`kYe7PaR~7EKn%< zOhLw66+L^3F)~A^z?j7Jl^8LI8JKy94z6^8#s60l_8XYbp;_mj_)I449(sG_i?|=C zXH?A(t!mzf)SM3;zPt*;SUY)&bINRac$S7DLg$1?`SZp(#KsG zkibz8W!q?9YUJ7d@Z$yZ>M>^c3J)9fg$U#_^k&F|Y`O@^_edcSYDvWKm?&rDry+v+ z^T}jPg2E%52^%_NjVZhyn0FQo;|{%U9P*#fg_KYcaYV_SP#4;?>rfBwVhQG5=^6Pc z)prf^t&>y0#;NKiMj==QIA>+#PhFJ1!5DduNMg1J9)()9RtYPy*#|48+v{%kB`;J0 z`VykIdeP3@kr^7?{f7e|dQF z;i@ynBk!8;hv~~Kj;8@O7K+@K=c1aqLjMx?*@F@gRG@kQId~tz1%*K>+R=@l$>SQq zpZkxcX7aztwDa`Vipw6rb0UA_n;0qGBbS{0BV%{o1v0_P8f`k@nuSN|$oxBOLc%lS zP|;cXRqCzq9gzDrfpe*j;E%kf=MnmsnA`-<{cjhDtbgJ%-rA_@;4Jj#3U0Imq}G5F5CWd=9+-$OeE zv9}LOhVZw*7x2bHGC~g?lt-Z4d_VwSBUy{9+dX*jyaW30VYk&cg9i@|WhF#}l$>>T z=8!U!R`9wH&)=J7lEyf`P5weA5+_G;t%9shizVq-MBNxgkDe(Pb62w?HTp5XGwQ_* z=gfFk!~M0#dJ2qfa3HmQaF*wMeqrNYU~hVTATc-5W$3tNIQejFYAcZ;#B4U0A}YRYGDljhWl}#A4=D8vBaX;6b>- z{ossI0HS)p;;rE=qnT*AptZ-r#XR=Dr*Hn(EjaIw^NwEWizx(cjb3-=gKzR5u--ZD zv6>NS##Z}WpI8y`))uQvJ&fP7;KZG6t&O;imucVlDexSRWf#eCo8yio;e+mbMl{5_ zV$J&WqT?P{e9c3N6sazWy(Kx&SDQOXm*#You#9~y6AWLYaZ(k7bV-8 z-F0Yo4l!=GwX<%NA1o|#WA`_h9;EG1O`mu8@aas|KN*gG=7?WoSX`@Jx$Z00|0ca? zl3^R`G>(ho+NHZ1t6epEcQ*T0vs@U#3f-MSz1|{G-O|wbRukEMvr(tDY7;+qn_vf=W)x^g%SWD- zl=GIRUgl!^BnU+M6K@ZSe9gJd(g)S^yE4^=?S8l(>{Ya?hZHTfxa|6tN*$D2xe>Ws z8{I}!A`_B0Yg!Ami&^9wUYAo}+)*2GmQB8{(?0-{n5aISe6L=%yJXvXw;khfKik#l z;m`NANZ-!RP51F|x8>SyH}bu@UhCp>*x6i^!@y_0jdq6`mO8hC$M}>|XU4J<$^O7a zH4zb_x*h6TS?wF$**LcvG^g+I#Z{AR-}5RvHWnGKPlp*2Vhjr%9I_tb8#k{fa~kiq z84DhqwVz8IG!Gsdp8p^y8$IB3c7IOjZc(u}IfP@bUs`l;*xb4+@7%rGI=vB7t$5Ik z=RORN5P`;9bB}LKK(cLGKI~I;Tr=taY<40Up?jH?*4b(MoJ`?wZi zLHMqglw z`59s9Zud3+cIo+zO-aq>Tq{Aub(tMfTIFrP#^+(&@PQU}yMxyLx>kDi?xh>9wB~ik zl_Ik#uH&7#?1^nAG>>#R#;gt)G7(1o#+}D ziVQ8|Zwn1>4|TJPvW;buEfQgmhgqpEJlb3}d)`>NEmsUhTozp)?nmDrPVKs&@Mq5& zNKJ(NM6XZu@PD%Z#*F{Mv$}h`nbD_v**`_gI(0X>n*U-hy?Q8(wyeZ?!ltrCX=+Z> z?0&xD4C$`qfCzOXuA145`-1n7XTMVxOsO8dsy*aW4` z`0h?cKf}D%sKZ|UM#Irsf8$2F*SzNIs8_g*%{+7b(T!CWue4s1{{2KfafDfLUgItL zB>E_z|NZouZBG#9E|^67CC^>_1pCs%*rCI?N@2OUJNzX--|~op+xZciVleU`y2%+ zo8bI+TSkfggg6@IzGRGl-w4v}`o4dkGF?8%Tw}c&Db_%(m^bCl`)8tfTcgI@)RzSn zm*uC$Y~3gDXV<^>_t4~&&sZN&a3aGZYyKp)mEaLl)Eq8`A>PPTRoNkVGq}p`h zazD;B?29Rfp@m*W2mY+-XK0*iCAfPQ1WgAfruP6mPa>hiFZsP7$~0@r6l))Pubabe z%j5My4kDS;KfmXEQTaC;9Jbfv7uIMAR6rlx|!Ww;A9 zji!*%I^Ub4|NZBBEnc^&zGvvoHXVwj*{^R)aSYmjbUZH&t)%P?JVeOO-zK+(KqJU$ zta~(0qg<$VJa<6UbizunT9Q(`I;-QhYnV8i9l<{XhS0C=x|KWay)MPrY~ZmdLRS52 zSrB>$$WfnBR#ViM#4O_(w6%g>kTM zI9&u`+4RuqsF$+w@_3^WN5{GS_U3qaer6L{5dsdsYR#{;azDso&C zO2u`8-i+}1i%Sqy`Dz`V?X*R#iA zKDD?@@^8^E`9H%m@}|uGu4UUxKCfYXT%?b8O{PiwI>6=vSMj8uvGpX*mXYzv%|exF zv}U7YapP_cY&Ke!e`~K{o1xZd@YVKtQhJ98@6~4ZURlTU<2dBF{B+M58m7N*S$yf; zqJ-IW>^k9dCLCw#E)S=@UH2kSr;nAMz_Cv@9c zdgHibvT-}5A5lM)$^$##J46()ys*uGpE?_g%i2UPL80^dt~{Pzb3${)Jk8;-#q;kB z^on?p_>9{Pad(5k>AD|^TA3ZKO?9))T}Ojbls2!0*8X}Wm(Y39ds^TGX$q{Q6@OHs zJwnfm51Ii{714~#{nmSpcbM=-pcvYU;oE%SSx?Y6Pe|slm{BvF2S1!=Y5OLZ>0>sQ z6O_#7Rzojl`==nk!E`*YUNi)I`lv6KmL9D{KHEQ;+b$1}&E)GG(ZeMoubU-M7A(6B z6Jt2fhwJIp%GxaNdtOJ>VbQ8gv3NN3zO5hLdcW1``g-afyzHu#`||~_xFs^;4MwXRlXG0p*(7$eJ!=7jFqaY& zioun2eneMOV;!jCd0g4^1VGi}v%_I0j^XAvY(0wJV{Dk&d`3%@f8;`$)RpN#N*084m3`0 zdTTBuEk<_$#-=&?dYR|m>3*nCsX)OoMWiTBzl%-%N2Mb?Q}4@rf8scbh-TN*ii{E6 z^FG>AwQemIuh(MX_Sx^kY#aAm8ZGimS4YK&QonyNFwu~(-pc-TNMAeqkr6v0QW{6r zdN_@5E)e~-*7eygz1(wA0o5~o#I(J+#>Qd(>j60V3Vr;D&k=g9ViAOKEXH^dTLt-P zwiuM}?RC9ws~f@oYs$9hxG2YTEmSQ{OGWWU@-Rno{WxcQVPn@ogm2yUa1X4G8k9#$ zy!;o7z7~AmjQSJvpiDXvc}~P~+JM?QD@NpD;Jqy?aBJ|e99|}YslEAlhzGlewfXi8 zR`VVzJY=Pj2BcKCi@vC{$HM|v7{^7gx8jk#o4&_34hlUXFp!by%_2v^rGO((ntAax z9FKEICW)<=B}doeG!{Xmi05od-w6>@pTwDeEk=>fPCR-ZtSHU0&1@#jX$fmBxJk}= z=MJAA;E{e;RKZ(jnivgW`4D+twBJST(rY(V8DdYrdmPpFMIR0SMcGdbk?0RA%u%C+ zOnRT2O&#YPRAJcL{C2)OoYQ(fa&R^kyV6?L#AZ?m1}xQ{{;y7y89-Y>Sg=o7$2UwK zF*@Fw|Dppu6*A?=K=7o)aHE;R0j_4LgI*U)0da^@qSmi^K2#;tq0R2pz$`grRgRL( zN_w9Mx*JUO5Jn*w2&%x97;v(aIh)NjR3kLQ>*BZSwt8Z7jq%3iMJ;(K*!{5J9s*61 zE=1gK!DLXDn`4mWRuIeU{`UO&c`pl=k3;~5$kFnPpXi}zG5$op8Lpts%`4bHT{*to zNQddSY^1sERM&0gCDUoX+U9q{?k0cTS3mxXbFBWznb38U#H`R2TubvTj#$}eQ&zIl zBg^kKqCP9+8?dkHydOO=l08{6!0RUdzWEw2MX^_(iyA&QA;yP3Y#GTp&&zi6us+GPg4|$h6q^#ct>}olIAw*9PJ9sgK@5;hm zAYc*M^mei}k zI`qX*a}YgK=S>RjdetAD5tHGYC2YWk>-mL5R!xk3BIV+@9foLzsDMi0-VdVgXwO(; zYlDlh5g%TcAiYS*<|W~6Oe3dxmwc?itBaM0X7(smHq3~>b(z*b!axaqM3QwcuZjQ4 zo&_EW!Jm{plbnkD^*aZ(3TJ?wN)0u(RA0)>D8N(TChiV#_hB#hCirJ_^~;M9#PTU2cYJ1w z=^5&==wibhl%uwjW~R6@eV+_=a^9u)Mu1T>TLihjM#5-*9F4ZpW^OCJ@b*C+`98Hi z)WJ!&Xn6IL4(Bg$6LHd0uiMzLqRM)W|Sx`Up{z>!|1TTnx3MxsFH<(~M!fb`$r;-SxhJ)!*`dH1;8YV7=vX z9WQyoqIQlgyx`y6S4%(lpRE78i^!3Xp4mFKmCC;_$@UR~5rSPR|GSq9V@6!lzduK% zE8U3y`%6d4#H@;u|GQYaV4kAh-{~PGy`=n_SpPfu->A`h-5%zL{_n447ya+S$nFgg z@?J5$`|o11#EKG%|ILM%cQK78*}ofJQla(89lrkWCjy_kY5)5^&DVmZkN*vq2mv!L zSX`%2x3$G=q9{>j;O}(9r(7ijixZN(oHI`MsNi>GG5?tMuZmV7%uWn~w;=up-~FH+ zJJesF00vzuXA{`~KG+RBcY$K&TLddhvGN*-Oo=bWA6`y+8KwPRX8QlnHd!Ks=dBnj zpl+TlRjlne-I;8+2k71L`j{9onl+%Pc82|N)plVqhS;DqWRbJ7j(gS?saJLt>om_; z%r*RmDOeLYPJP%*wrVNAoO6VQwb?tW=(*MvQ+@N^GAnIf-)lbC;k1~k+Fd{H15jcX zs)wFeTa;E|fnOB$Ug15Y_ONsUZL-#JSEKgRZ<<=mxi__j{n%EhVA7}ygRy9h+F<}D z?15dp0@#dhtwC=T96^TvlRR(1ckQ@+CxzcjY$N#25^7@-AYKl^6NsBPAN)WmQ7zT6 z;UwZ+4tzZe_RbppZryB+g(gBSX_T3J`>!JPaWJyp+pFzT%lRf3M|LG4=uLlKfWP5b zVS`M&-wdCsn%+Z=G(cblI2E>C- zDl)n&49^ND(4R3RaCHK}{tr04cQ?nfwI-vaR>jcUu)i@{tbNom4mA0_ zSXG_!6*OX9`%%%FFr~B44-!9Zp4ujcrjLggymLc@0 zKkDc$|H+83C0I%mMvYGU^Oi#?++Xm(V?V5 zTRYR0bD#lPaH9+RKeZw9IEidrjgp!Ld~my@ZW(#oAOwJ=hC=1<8XGVG=chc%EC3Cx z+zq-~jh3aOl|p;tw5O%o?COwwF?t3bYvyvCGWMj=3aAtliHXDx0}0F}Rtqij*yz-u z7jR2I)QY63amwr3)@pYGzgX;aw73MJm;pd~7zZ{mS?htO&jRL6jX3=42asN13CL*m z8ld1jJaxJ3)F$XN#hRR|+3%idzR!h|zYH|0R4T}^+5oWok4ll+2h(+tk=B^Dll5dP z$J$xj5WZfg1&>;7+(psFPaOch?ax%387KbU8qcT9?ZbLV*}e|cj5Q9+S(8|f4td;@ zlE%G?^)6Zd%bdp32~89kO&j!SbfPPzg~0;Ztu(hiQ+ft4S2)aEh6J#w0FUD+I8gH< zPui`JJvGUq*mI>w7S`-vH!b<&%|1fqU9_-K2?=<`SB0HBgsT2assGLK2_v&K>pY}W zJbKR6mInx8H_gfw?r_T2;?*E>Lnr(xrXNiZ`9V~?n-i{;?K^|B7c1O95wtUh4=PkeB#Jw0&l6kfGDOS z%wvjEo^3oc!o5F^zL*^8cDY{gNdw{6pi_DK@bw0FBU_t@J4!8LgF3o}%mBhq-5&^a z^*rw}OBQX5B43L&2>CuXoJ2ZEelX7W`os|w?q>u?LCPp*a)W4#%{S-Mlt)aoXtW!=waD<>xiO7ta%mja$m*MNl<^FKetT4B844~d z27RkR?lVaRqKN+C_2fNJ;IMy=(d6nhyJD9eO?Mg3fXY++lHlRD2up0OwKWc2ii!&8 zmA`E9y$nM~ZFqowjV60YAd{}3A$EJz&$tKrj3anu6%OVrZ`pAo73o)CME8BXYd?i8 zy!nN1UPd+vjeqdmln+zQDa(HAK=%|O7U!)%S-oBi(PmWJ;#5$EVJB#a@!FShd(Te9 z77{aJCP>&8a^Z-&AK}WixFb5_?gfX~vn^y69I#Jn=@&~2PDJk^X^Di`<2MM)t%jjk zpUk1s53Mddq5ts1svDsdBBo)l*!$uDnj`bnLK~uPlt`D?;JP$vkQxhLpzyp60rVDD zUS}esFnHdDXJtMaW^DYmEF0zZ=1jsK()e3HBPXT%TvI$oewmnh8WPed4CE@m=d>6t zDRf#w2fVaHyLc`vt6ZJdn?FvGQLpx+8>n+qG@RnX+X`hbsw){^sKVq z8VmF?Js-fpuyA{GSFBVJg#}5b@kP{xxPhfDS2S*JIjy7$7Y7K7IQk(^Zh0>UGE8@T z5Kthn)B92`*_@+uqK-up>%^+{c4A_jEIxE&+Bkie|Nh2Ka|5WbGWK>2UT_*dauszN{ym zfy3?bdGhXaLf)yQOVC-xkH8p5EhX*KNjAx-Im{;LR9ihgP~L$)?WF0{OCCQZPVORq zO|cSC;AOG85X#0K&zO}~1Ny|wMul+vwEu0T&e?|r zgDh?|8J8j6W9f5%(p=4;b*Fs@BaK{IdCz~jx|0#J@9N*5GlD+uvXQzm?{)9dpR!yv z{=TxcAm*&26Da*0z+kOjQs3-GM`@?L6+{#i_EjL-Hks(>kF42$dKJf1vh@WCqbL!g zTse%MiU%;Cg_nm}tyEZ!xTP`jZ@JPQm{0S$6T6Ar0_nd| zmj>npCmmTv+}(zX_D!X}s#F6@)iz|==gulv1a92=hJ!?nUZ<(<*>O$fO3sEscU}|2 z-BBCZ_W15La@r|>8iJHIAu@1yi08BL;wEn@F#~h6?ZhI7H)?yZbZH2LoLqu@YH z6-?SJq&@E^geIyy5Sd!;guvs0Cg~_#;OIaiYqx)hl!5uU0g}PocTPYAT*CTXKv$}y z;Nm{zhVJmN758Gd%_`9O`#~PhZ~hnPy~bK=IlAId?*l4c(X3m&?b@%Os^HpBTahj- z+N|I`X%CXU7oPX_#pL;h>Ut$7yPQNmGZ*TN5Ft}mx}oB?FI^1DH=nL>EWvGXr2_k6 zb+jsOfgbRT^1E~%SUMZQ7aW1U1a31=qm|cxV8{r0q){~gxZuxPVPzfduzyZcHl$}@1Ofexc*~{QC@Jb82`tK6uXGL=z7ej4v017ly%T0Vzbm@IcvM~ z$=sV1s;%BfxzItBf-X^;7K3|YXbyvt@D&qMl23T`p zgnTo3!q2&XYJxR!7<}SaU8zVGc{ZLS0bHx3BeP(Nu@)X4EJNH%&-8Q`5#(SZ^at6jP$z(XuhlXFA;}XCuo=!7+YgSA z=Kj5;p^sj-W!7P5YE+X}ferI_o4v(#;a}%Ud`Zq|$|vVZ-oyCinxd;Kodnz7{~YkNFD0@8Y$`5b?G;`5C01AY3tp>2ISgz|vKs^Nd$ z_6YUlY-$v;YD$`p`gUMVpmFR$U>fxJqcg-$zYAmM7zdrpfoM6yq6jo}^HeaOU`FL* z8F3YLO0Bk9ldT(<4@@kI@8pQkaxZQ2@VRF2rNf7O)szF zee#-7a2Tpwh`dQ2ehhd{P^9~Zb(mLw`;qr&h>amcR~ipHg2iA1**=ZyNoHF2cenI{ z(CeGSHBR|(z42w`6!1>CS%JHY4s9?7$jm75xIVMIxj2j)Bsbf}F@t+ZwV_m^#r@X? z5gYPuseqW(T%Kb7d&~1Vr`lW78tJpsFwXh1HNZ>_&+Bt9qW_!8IIEQel>&v%q@jfAu ztYrglvjG^4#>LUd1rsnL&WhTVfbbc2qSGL-13{|%-A!7F0{#f9| zW=YQ&rn*(>pcEj^oi2$mXT+vc)AQ;8yL1Sd1pNC!&Hq9Oqwp+nEbZn8LMX*cQx2j|euY^}uVG4$v?pYFy?Up8)dB7{2(G_^`-?p4Z88P69{id?5 znqip4Y8=jPGq`(eIaStvcjf0tdRW`3csL<252Pt0gqSRu%)zi*Vs^HW|0J~f=w)}) zqsu|#Z1!<-s?$eZ;vRAx^cqz?cM7qbI(Ig=6wOOqD!|;fXi`9rv~QQw4BZ%5jUY%R z8e8KHhC_aQ#M^pv)Ia|U)Q1yHaf7B|`vX9eW)^^7&GwOLI!hGgy3uiWrq2K4C6Eet z8M|S?Teje*1bjL5Huv5kf zyF|dW!V-A1Q`WK50yeBX?TP)}e=kJ=>5ceKq;wobk;du+wrg_IBSR#n@#2HF>f%K8I)36glEN z-TO6pGEn2mMygYq_NsvzJA;n@GTaVS&xa3r_M7x0_Q#|cPiriPTXpZbbE`+mv z=BQ>Lfkv9=@gOJ1@VQJIRwP5Xd*-!(_$>(#vXQ@!4A+nFAN9Ud)(&na@HiPg%YBRT zLLLC?;4Q2!XSmBKaWM0_+@xoYzC%**4F#CUwiDH!)dfKn&m8w)or%@ z+^zyi4>t?vxh%eX_#uE}T6wmMDvPFw9bRnqy}h3*(Qec@z%PFP_I+t);Y3KFc%7h8 znVfm%hU)g3lt7buNuan6H^2^aemFWW%eN@Dr@HugLRvx=S%-GX@$<@~PbD&_9ex%3tSZ;_R=GJo|YvIR?n2Ajxj4e~^z!bL-Vy5}~T``ov+%a+a?M`ZxuOUNj zGomf(hv%K0>)Euio7>}Zfou8VJJ24=E(!Tur;f$r;wK&hO*n-INM6mF=8Q9D;!H!g z=sSQ~enG}O%PLbE^jPx4sR)sh2F5wf+u*>}ClyMd{Z%2)XSP#=B#owJMQEl8#};R5 zE;a2#DH^%Y;m4gLnZmVZX%gf3N#^U=GV-9JDHcZ;PwPKVa-kg1Pv4~?6Phhq17xelT@JH`zH*c0%UQc&7dJ{Gk2mey0mhqO zVVe+j*ZjgLtrfo$05DPZcR74u#>bQyYMUcfo?x0i*?s>7&rC7&6l4LfYD%;`rlYXi!dX7+G%T}Dr^`2(57E>u;(25NJx2^nQ z{|D-dSAXUKap%yX8k8~R!$5_b27Qfl8S_n=LzC_CD|vV%0|}RKZb|_+$`4hKba@}cyDg5%FRdb3IO6- z!DNa`1NB?;PlcC>N`>3+R?eqSD>I;5zg|RklF~tstP&-DW4qd;g^=63`hI&rL);rPFW{|&ho?7Kn$m{m5nm|WJci^5(tTg zs9i_`4MiRz;lXu4E7y!eXLCDEURS`aaXDTu0f4y%Kinwygq5s+1~?(R{`w>d4VzgZ zO}W3Wzz*4E?DPRf(wChFVS>qai#Le#M#E_q+bD4U>Y3j#+S!EXMkeh*%bK6qy;Kfz zxdW8J@;Jz#<@E>ggx0&O{_u{3e4w-D1Ips1>V>b+C6^mi9vIj&)OU5KVon1hV3G3f zK*HN$Y@ho|B5eLt@~*~eVLpt2X98yD22VE3dmM`30a7ECa3ZteAL<*N_R|QMa$o6t zjitxzv%(n+^$OfWnT|7D=8qz2sj?Lp>WXp>&f60`>?A#EFX~>1usnSx8hdkSXcux# ziZY0R(iP+ZlAm+HtSU-SiXh}Gn&#}75OK2tlz~iA9$0p2{yXhYhz2ajJ7V<>elOEiQ|iWQOdkf~OV{!H}Z^k+wU@8R||Iz4>?lCYzOa=Ue&du9|>`ATweKyg-lC`VIngjVEJL#fzh0%x0niXF>AMVKw(YF`(JWK1^Imcut_>JdWiw|G{$N@X|09Dlk-UfTH zG`pT+H&lM>dbYFm7g%-6yThHtHvnE?aS41M2dF<6|0kiX_8?1-H&R;xR#!~D4+Ozx zb|Lse;eh9-aXzp^rSm#gRSkBn|nH|Vv);bD|I?k;}iXn_(pmWoAyxL3my0ZcG^4hUO3hHA3$3Y))TOj4BcXIrmDAnDED1_7LZ`DTd z3Wj||f(cWdmxEN`sb3+J1C@6w)nz@Ahi#=3i84jcFLsl$Z-n)(++g3 zpZoSr^By1rRR}EOP1KCa)~|21D-44AdwK%vQi;?d&o~*dV2I~bOs;@{bw#UZ?7Vnw z#0F@RI*9Oa94E?v_0R|Mp3mCN0nWZ}F$g5>KlLDP+n}oB(%C>cBIAR+c9{!E&x8eO zB18S^3)&bly>1asw34B&*H|0T;YZgFU@INwdK|tkTzq%c&%^}(JF97S#CtaDh8#$gQ`En9b}R0O67%Zo4;H z8MB}aD84`(6S)D}O>K}1gVu|f4Kn2oNJ@#sYCP;pzT!Rog;67@NJ29m97v`)n8e;( z-}5ae702YyzW%_95{-u^W9`^Qs0NE=IC0KRP?L9{;mr(ZpUtQ+CZ;Yi`_7AhrLru|CV8{CVYh;It| zhV&nb?)OMS4k?s)k-2bx;qmNkxh~LLcDUDU2wXQaCEPq4A>cbSZ!Uc(Mu0 z4pH=HdL4N8yGvWo*#&TxV25$#t(|C$v;nW@^)6>WzwLdBK&{kC0=&u-BKI;Gu%;?u z(x3#Fj6gbDMKE#TYqT)(nM<;5c0Gac;d+}<;>ebtJl74EFFaa7-6N9{`~YUrHOqzk zZ8A{+sjrwd)~mX)oY>RIGTkcuOT>!0h12axH#6G^{ZXx?yl+4xtO@!|&FP_WYbSe> zFdHry_Bn!XGl5y3PQULCKFdJT6kF!OJJxyU%Z=#Z$p>tB;f|r=wytwj@M}2UZ#Giw znySk?-JsXnn~?`Hb*8~ax$qwh*4~cBAA+4Wr*OY5&+#~b2%QsN{Y-17W_g|f+%9jA-O0tu7tcZkjgXZLk&k9 ze2Dgy$&*zy&*XiwCfgEOw)nd!{TFreFA?D-F$GEc#TO)7>)x|1ZPad;G-^c8i1(Ph z7`gP|&z4wC;La?djR=4fTN-q>bK~bZel?OG-IAvjn1Rb!YV%EP*sEv~gnn~~5xF2l zVG6{7lYCGW6z6i|bv`{D0qPDthWJ^;2Lr_S->9TUQ-Su@RrDhXBgx7WoX$~k4$xPq zk2A_`0dB+(mQbYtL!#Cs9Ws2{6DYaC`&|!@dPR&_Z2ULCUocG!b<*z8C+AYcIP;;L z^T!hFW^MX)i#{l`)cGkNJ3~lMUBb?8HclFLi)c&gegunx$WxAFm(QgXD{7%`KXy3p zkvOMeA7(NRx&(#)c%UCM#qnE{QNcarD^)9M{RTnC(r87| z3#7*8lbSYAaaaKe!n>kSM?T)B0Ex)&17!%7qOf4Fi4O>Fpp#y_IKGc?`x1f!#SxR9 zDLxHc&tfAmsxJ$(8PwNz#!h<3`rh<|9HtH@$nZ76&Fg|TD%{qkmdS>b+cO5-+}Xc< zogRM^#TCf(8g|ow=eU`n)MOnr1OX%%TdvnWHsJeQ0R&7X=-K}!OR4b{#$zUpAY&DL zjsmU{C`^6^qSwDlBCf6dce;&w=O`y)3zWJQkZWS6{rMH|DI));UsUISdp5-Dxc1Hg z4YvdoS#bVE6!*@V2A>dECwt$r!;j*YTmR?fU|73+WrCs#P#DtCVEdijk z1c>o_AOvR*<$=S-<5XV^(s5eOIye3=7fRZ%)?}h?l-lrQ=51jx5%a;t{oT0$h#~UP z_78vF?2l(WuUQWb-2%*MR#n$yt=MJ{1o+FnfA*&N*lYp>w+URPHE<^FQ|)2EgA9H8 zN8|foK|t}uJrH~tB$Q6=3nh4CU-q!SKnK8IM(7}ndauXX>v5@AVYn4sR->sSNcLVI zO5IL#UPj^s_Wt*so(H@8&F5)uK)llihdOrae}W*FHaON%Y1LiMjXIQWr(OQh50BL- zR9W_9-wrrTD#|vK+D_G{0G?Ls2VokBR$s_(r3JW1L0Hq~#BU@EJNEA%Us020>%+Sj;Z}z(?BNRWsW?m@!AZ+y?T3m`Y zR(9!q_af!RqC9-yVwL;l(fq{EV$IqiI4QJW%EcPLNiE?-yK-Oufjk}aYXGe++&O)u zE24qPRed@e{=nsAbJP-uRdK1SO_DKGA7J2!kM7TbLU*vw_rS`o7Q6&;1cz=yx1w5d z7M~%YeAhuX<1;*tIuO3oq__a#!Lu_&!szaE5NuR8it`@(x2}=D7qzkN7am!HXsw}< z(F|{5M`{70^rA#t5O}FDi|L9^xCLN*sArPE@$W@sM6I^~JjtCcK_P3xWMtDylB9MDcZxAP@x;wUPLjMMBgFVH#@ zOj@McvotO1JK?6Cq4R9mJ!5ni3HsqS5SuH`cVV0!WijlVs))GOsxePgez~rN^rc{4 zD*YdvkIbTyg&PO!a0HIYhsCFD7Csl8@yS-MA>ef`;{m9>IQ^ThLwsHxd^*Usc{wU; z(kzTUiCwQ|Tgp8ch2pYU_6229_wSQ>=K*lUW>WkT*cN989Oq&JPD1!9;7fnQqJ;#i z;zjhX2qG)*Ef9y)>*r6xw<|gETGQ%XRm+s&@ zEnuwH55?r+d6~q6#ZZrcg6(W3O7`j*4unY+xN?l@5_qivS8D_(P|8N&bN^i|ir3{u z!roJwiFa3x2E8w~X%MMgAb{FcB6wg6^?^FWDhu!nX*l~@bs+2eu*(5xt-81ot<|B!zg zK0yK>GQhgVHpJS!J>T4@Oy&idy$|?SLRlfFWPKOi9tcKaPu;<;$}v#@$^IzWmqWps zc@2)c4cgXyAh8ARS>}BB@f;L$H73dRDD!pbd@YbUHbHF30PigLL*2`xU>{3}f#2dL zC*CF+XC=ANJ$uDgM$*{h|Kb_xCj60Z~Qde zVki1(ERAx7Ud)amFe~lz^3u`1EpnQ>vjdPd42$)(ci;sxRX%%e{vAy+O>8 z4S!lM>4oAmD8CiV0f7RENAO{w^chI{j5Sq#=y=R&y(ozC2E+hXO;GUx=~aq94;;hsq>O#kub^h&EKiM{{&tJ9xsWTFm;ROkcJ#a?T9!ji00SwSBPR^(y7`vYvj5ZXaH*EG-H|%4g|Xm4W{wIx(IH7pfw8us(Y`%`GVcG zS-?3qK+`uCn#GXijZBrF1EZyTB%yZ=ibErGtN_>{3%^11{&A%j=x1}FrI}wtuX7LV zzp~q&0Ydu`p_;Unuf-PgP4#YI8O{O_Ll=T4QDs*TMZQ7nHag~7{QPKV79=g!i-YKA zY}%Q@aS~7H=xJRVpIZZP;ToXDTEqNq1gN8S9@k3c7v+=wz9!OaL*mMWv z5c!>eXVwU+?nu&85Cnh?g7lp>II^|}QjgYrt|w)SFK^bk;5~u0TG1Af!KhVbN0MMU zlHvV~I0S%-Mo0)BOcz*)vwN{y$19LR*?ly84UP|2!JuCQ;nX-Dt%!tIZ{i+0f~)*F8hN6zwTD+eHqzZo(*l7~wmj-)T70wOWmAbecQ9Z32s0gw!P%8&G= z7C4CUygT!rQpN}Agi7IOJ(~MFo_Gkgt}HS?#p4(l%7h>`X!V0L-kFFc7~ZCP3-?j4#;t! zQ{(@W(u+6g*PheM-a3aG=*>LIV^an|`Wt)wGd^(mXhxkPTJNh-oq2u%tO_h=?mv;OwPw7bDh`3_Wv>V-ho`GZ}@+SGAhYVM)uyLA}f1D$Out(*|M^g zl8o#<5>gr2dnG%BlD&oOz4f~vozMFIzJGk*f1cCnyyx@W_jSLn>-IQA;J_U%eUpB5 zUp5Smd_N@Wcm$AgEfrf2KP0pv^6eek0W^l4LY}b@oKZPY&7u)e?~5Mi&p1qQwG|iy z;KR($c_b<&p~H`{7_$vx3QQ&2U5qHBtJB#uvuu&QAW`UKuECi90xwobreQ*CtVMgY ztH@s?8raX_n=R28;VX)4@+QJ9r;k9u(>#HL8DXs3>@Et)3f47W4$);+)XcGG|LNab5)m!`FLK03HYE- zW26X9`&~~Yn##&0olNCAMNolEQ&2ZtZ`LlKO8$DcsHcR*rraOOmJ+g@=L=jCwjV^m zVMKC5JxGh55_n&^z1!jZ1fgGM9r!Zk1gANa%%3X}52K`tDmZLL2BuPKIEekq@Z%PH zGjG?kZo`Ze9%&Wg<=X;jm#oujkk7O_tgD!5KiA-WG_Ab+-6`*W)YXL19n$p5v48nOiI^5uF=+DF;3W1s+-HMQ9cB70uA|TMBF;)7Hac}lV1l}t8SS)dKt|H3G zuN}$iGJ$0G>!p3{BHyVbFQH_Gw$;|fMcS8+o~wO8;8`X7Msy>{7QCH0#Vw2YStua| zxtlfT;e+?I1ym}d#KaBF6yUp<{6k#Mw5LPr4v6?2`ymMsICla^B8#sF0 z84pt}ha*5gZtK^Ejfe&uffy(3Y~>G!N4%MpBbX)>lijZd|JE=y!9 zu7I27iEg6s>KDRn1Fckhw+h>9i3TD&Z>T!)dyNwd7DVoyiPPj|C!Y-XnXUViQ&r0T z`)yf-(DwN)r)GVs^0G)(%-|PchJTW!EPCuv|EQDePjnA754j}OMt(c!dmQjZR=nr? z3*PC!!AkCds<{f8$Ji?92m(Ak@izXC&L85C5yr`a}~ zM9zT!Fz>`Eh=p;4Ic)JSXJg40UxYte3nT9z+$Dqfc^x5!Q(!!HhDy=dN4&Q2&Jna0 z&R3}eqIY81i>1pu;q+Qu(dH^0!>H(1Xbc`NK|S#{*UOgn$Uk(!S3e5?XmbPJieh(Y zwg#keM{LI7{C|{t4!k>gE8Ddoh8F93f(z`jNSJY##6iH%tK4`Rv*5d48_d&?W!t?W#55*qioNd+{hOb{#6}|c$koASn zpQPVkeJXa~l*cW|yFY5zL`m{(%}7KeYkjg9lN~b$lOB^C@Y;}J&JFj^@XoC`XZ4i@8O;SJxXX_|B0=_M87bt3bhSC80kr#{<hZDTo-4gghaORvB{xeQlH?DP0+HVY>=pMDjjE!TPyDoDVV#hl1<}6UdOHXJ5 zkKy8>)UU^Yv=t|vh*9{|Jh!Fy>0}9)L3L&Oi;2TF52EkeTz)}g+YC%&^n?oBD#_}M zzjS7V<~O%DZ74#Z?Co2>%*HouK!4wWfMq9w2MT?4W19m;ALB6OCT<&$YCR9{T|H`f zw%#WFdcAt2idehvmQu`~2LwdV6s8V#u2999ypm1Z#|#N#Of@zmAAL<-*BbMSGVbn+ z^F8RZCGc0$Efj0K5eBmdnxN({;TLM7wx=229fNgkzQ)PHVa zi+ik&BxO{OyNDFhe%lu^)9ahK7Pt{BS=%bOMG*S=%7wKupolG={R)AiqPe3SW_XRf z*q+`^1~vVc#eTK?{-zaV`gDOpd3F(-^_plq6Arf|-z8(=tLJ^#lrR3-nZ&nIRE4kU zi|g$)yAmxS)}HQ=s=?H?#J7>aQrH6>BQog-*-yz)6#L4ro%XwRlRP(@ne1nZ8XBtRuJStc zEUvsY=9tpSqMY=;x(!TB2S1xff7V!4mZo5dKKcwm%@$6TKMgHb^an7vq_M=+bQvrH z0#|SrkJuJWO>+yTUdDj{$}2p&D>r`KGjsLn>mwU}(!dB4@!3T(-4(cTi>lp;o?lVj zBrxWUz>8H~asdAk)FIk4B{1|Aa$3-ye8tHdQz`3Tp(!k-mhvFPJS3T>z0d;XtiuJyez|Pqgt3l1AOQ zY;V(7;(n52B`)l2*N~ULb5Fn%g33Z4H#MvS)K?0VP-zJZQMy`s^$u<^qOvuD*UwL< zTN+VsDf2V?jYbHmU8ubtcd)K>s>ed9@Cq+TZ;(Q?W%;Zx&vp~rf~wsVh1P|?#O znbP972Cw@^W9+o^Iq8m=7&EX4GYLts01``*H&GB`wLnMfchkqBRq=-`EB|xabqSWe z%I^R~KgzIgAlA|@k`r||l8;_T__@4bfY5En*axa8{Np8v5LRZYCu1ibZrl#y&ugcC zq$!14EiOUc5P_cr;;fsZ#N$l-ny|*&4vjUsx4YmU>FcvdX=#Dt!MMo~s|bNa+xYpAIq$U>I3PF#8ac(n~0D%qW!-1kMo>vzgDt zvc>w~sSwP1nhV{qlcW94%6N{~pCiq)wWP~NsK4kZ*HA(wvDJfn0B&J18nwPY8KJ{; zVLj2lm1PMkp|vRA%x{8_3H7tu!|jozB+ZQ0OS;UoR09;Slp^sIm4e1~6y!?1JcV_D z5m+Bu>I6?gh4-o2o>JJUFt7O@3jR_w4(*5+7ucw@_^s$C(Rg#R6x4Y~DD?6N^MZKB zT$HkmZ0$}LZQCHxZoa23^5&k7Dw%InZ1eHcg!V!O%k;APha3->sgVTw)@9G>sicqv z)CN|^qaL+;0@LQrp}2*n7Oi39V@NwUB!db{AGW5q zJ=`aSP6hYa#bohJcqsi-Hoq4q5?c!;u!NxtRy_0qwuFpIefMc*5GuAO^o>30=o~gC zZPO^Gi!rrDR9mSl0$KAuHQ(#r5W4I$hGMJwHCexfCNj*@>B^7xn1Ak!PvPIFM6L@6 zmiVw3hsC8|{=FmUrB&$ZtY1!NWjaqxfd#<DOtD*})SCU-=_Dp=eNO2EfdFz!O*;f70<6oE z&;g-t2v^S%V>&qoRu}X6mRgzc9@iey`cBI|^S!n`FmRb98(giyZvsfxnArF5rDyi4 z=)a#s3WoZH@1bwf45klu*Q<&oz^qbY82WP6ubKAw+e@5v3Rb&DRF%uxOPdc*g|hWr&t?$<0`GXq_kb=lB_$CDvv z6lxUn0}$h4T(pk1s&JhP<YCI3SNf%yH!6&lrkXu_iL<%4Omp?l^+&=`Iybvz~UPR z%P7Chi$(95i;b4{pMUzzSAh+RnkK#P^>^ae0_2Wh)Cv6?qXl>dyJk#P72?(gkXa8s zS<(NWJh>22wKdR&5Dvy);qQS&MD{O`z>^B*z<&D4Zdf|a7Uyat++rdZK7PAfPI{k^ zAha0?+uNWgl%vrHa&8IobY3rJI8KIO)yi4mxK{E{W7*f32GIg^MlIbxVv8Q#DZv6r zFjV6j2s&U)3l(lr=NQOMNPGw}H~B#UE^^j9q6c74pM?8)5(-AGZ8$~C!J61t48p@t z0ibBX3fKuimW^QW0oc#2;^idXb+)Hy5Q(Y5IKPDtp%3?yBttnUg{%`wBA#IJaA!m0 zA40u`;Dwe%e$-QeeGbqGw?7zoFxJzd&@ z@_DhC;S}kWtD|6+=+Y%DghT8&I>irUD+L{gO|!KR!l-7I!!VH_cS_ z-fuQ|jxNc1U~pf8zgS^*Jsq^m902D>)F9gRfBM$+OxD~u_}oWmPMDm1;Cq|#*E%mV zMQD(sm)1NIGf2CvoY-wM|t zx56Gy;*yWLB{?WHv@&~8vC*xBn;H78xY;n4bNC7%-#rS4JGj2O}BzfYs&Tv=WC3ylTdX($b2RiZ|x%qd>@llC9w67ExjX=g*LPTc9_c#4% zs38oN5DaARob7r$3}3ogPSk$J)E)rPHH5A-xcDst?=IzP=RJtJLAOuNW~A_^0A}y5 zj}lNeoxYDJ*j8w%*bdx55S>NzCMs~-lGd(XBkgqv*7KQ0kbsBV2z~jG-tG)7#&QF4 z4n@Igg(1ycnxe|q^lm{qYVHQ4DLUx_VcW11RAT~ z&ZE)`FgJ_kL(oEpj+CF(P}42eyB1mWH0JMq?O~7f5(a3k9EH(P@EXfGssAu93E8lD zR{i?TvOzfq(Z)7QEO5&QJ;(?NgALFZ21c2Z-Mf$Wa%zsAXcd?$w>=9WdfXa=s;3WO zFr}OO2trE^vg5)HQjBj^b3zU#K`2x*ON~L<$fK+G1@Kcbx|J?@6xScmp7(IOCfd)< zn`z7sv9$NaKIb79uD2~5gm(?aHXf2N0oJoY4tVuKpIj11~SkG+v?jR;<$-bU{U;_b@Rxe%viE4T8q*qd>#@ z{*%yEovJ5A?csM=p^-FUK_YgXpw&Yi&DX?1e&S)NEU4@jSf&7kj95;7N;~0&7pHO8 zP8~8e4^CF2#y0bBV@n)83$MSqV9OQePNkmWKxg&*x-fZQrrjab1T|AT#30(#N$?M zj9KDn)=$()i9n96VW&gZ*9foBXCBgNV|bY_fY;iaXcF;LZ|-=yFT&eRc7qSu+Y}C+g1tkl?E?$<#0HF}>!@Ph#!T79?LvUmRT3 zY~Kk1Pq2I6wp$PzutWLz7e>tIsa7g1OLU|?D#viQ(R)fE!S12 z!%Uy^I~!59;}KYST+Kfl8aLEsv!3$we7@2dvAyOeq3;8p)A(9m^q4Zw(aumJw^5vU zK*=_+`#kl83SjMvJg@ysuHrGubMBF>QB7@*-;j|>gvRwjm9xXed5_xbxHtr#!hYb( zJ}-b;P4nAvziMhq@VAG1vpnj1B)YlZzjoc{r;q46JYP@t ztN)*t^$AiewG5@Dy0OR^YnZ)5@-TG%pkXgx3n)r`_+Fm$bOU>~#_`7;Y!ul;h}~ZD z`m>)r9F=um*@sRbcH=g82(|ygh4fL%b|QztQMTT^)I=NRz2()LF&Ux8MsuWcVp8&) z&pqC}UsM(vHeTk-_dB~w$lB{B#FRI3W=N>P4=NtxwsG^`Lts;M8Y3Ohl+dX(<$qq) zG@swPP2ZG$D^->F9j(*%O(@}E zJrNbImD=Jq%O+oX%ACMqOUrpL@c4`j?5Ivhe@F}wS!+JeA!OcP=jQW@cKnXFwA%X= z59k30n{-Y2;~a>90Ym5Pd03ki`KW>UB+8JBjLWM`O-2S&AD?5 z{f!VkWUh)^!(x+02wuY2*#>Pr^)#Y{B(*2@C&2X)BP-RwnKJJ z{d>h$gLnH~sTsy)gDyqtS0}Bl9Gw^sbe7@qh56*5EuLQFIzc}^8Fy_X?OXDWV~7|% z8;$V~*L~hM>Z;(wiJ7&@l>S*Tw++rB8xMc@H6BM*In?7{C*O`)u$-L=@q-Y*v=wZk zi1U-ka8^x@8B~oNyWm-r9Z|Ez#)#Wi4NQRvpP(rjwcb$h$xk@kdlEsJ})-wOtOZ7{u0Q(C0w#7en%=G3avE#p#cTNjLxf ze2fMPEeO~|_d(nPngg@gnuE-TMe9rT!I~nTjD)mEPAkt?aV}h!g3SVlWV7yK&^*rX ziyL6$x~R&39w*iCnR7ti-cOxWn(i-ur7P7eZ6AyFNBwO`s@5!krr7%PGn~OYUPddA zPM3@vQ$uBt$Z)qn|AN0DXvz5*P%Z^%{|GTsHGHYyeKtXv&=5nfk^8L*Ub_!aa~70~ zEgcV;!4*Ql@;fu;0N%I3FO~jssTf!mQ%uh#QY;T3n&HtQDIoGUZ4@t1Kl2pqk?k?~ zb1H1LlWcT3E&Nt~2K5`t4UeO0{2LpuE1)bbV9IF@y~e<7YMFzAzceEm*~%y{Nx<6- zk9>?CU%>#DI_7qv*;B3B58jYv#pTt)TRe%}I!`@&jH8dRz2i)BKxVjzf|9g7g#|P9M5M ziT5XDH65B?Ul|PYkS3t#{^m^2|8w)>qWxLc6}7n%hzYbF|LoWMEc&yo#xz5%iDkCj zQ~7`3Gk4x7cKt-13Qb4d6zA_6WW>e&h|R zgv6azsf*!Ro5Fnga;$M{tlY$*v<$hYdj4ErSmvLNnItiA3wIIK?c+>9Zkb=Bn+!CUG!dT$HZl}awiE<)RNr{S2;dwW?v~akT zr9lO5BzhrQET@)>oq0x!;Q>~N92AN^hHZse5;1yQ==uDWoWwIvsKZYy-vy&Xs=?u_ z%d*hBLkypxkjo!nZe`3g?Pyq@-s1zHDm~qf`U&t+sePiSn{A&X6Lz3x`E69rSm2cX zuvii>49pME7L)}3w(bO>iNvaOT=3Lr6&(%oW?KfUE?3L1L+Ly+g4r&tst2YW_H76Zt{lVXtNww{{G% zg6OaW*r?N~Gv^Bv(5Sk7_Tbt=>v zrRXN#YK}P%3nGA|&>FckgRagJAWq6rA|>+M=sW(nv*lOvpaB;N)k3ao#)G-`)2%rm zQ!RO)I&X`TJKPXlQfSeW#lqFJ2#F){!p=D+*I@wS;@qPwR0f@5lL*R!*Ms=)Ebx@?n zLPq}VpS^2QQr-AJ7qaGlf$hbHp z&y+ZYI)oJ-_}E>sgSSA*vUzVfHu12WSv^B3$5+jk!nzIqrIaLAv337KdqxSEXUdS3 z{)B7&IUy8yayJFXR|JuuZ!fhR?;x%dc;qN5F5Q z8?wqEZ(31T2o&6oZB7@nKwTKw3x~QRc_iCu1G&ZETcmSAfh2N}>B(8pYpL!I(O0bK ze?SrrC9LciQ9Ei=R{cE~I|zXIIB_#OjfpFSz#6yfP5+wW=_R_lgHEo~~nwe!OH2$4;L+O1rIo>7M2b4q< zAPL-X18j{hkDQ415~eoS3ENl3>xbb5+9)T&`-%HjTt@TLoeSTxw$KzKB|YdjCL`XQ;*!|Dc-CA4z%$`Rb*76-~q~zjB?M&QOMedcE;p3&;)bY z@_M}J>DB`yIi&AAY(nTUHMf83<1635Bfn#RBau|e8Q)rsx8_u%3|QwzDGGDs-(>-c zCdZ4_j6q_&K{x$dh>$WAmQ>7G*;xa87j?(PoE$@9&u+xNjiZ-ch^W33HUKni-OMuT zrjItd2Xr5ab~lj=n1!~B8=1(PE`+9tyHs*CAMVfR0jjTPU!S?e|N7>g%lA=J8mjoRpW4j~&9_Q` zKu4*rBWkK?4s|GtlnNr5_C?<5zTkS-BwOqRR<-^m&)NOXBN0x~@JVT!_67`t+4T-P zP^_rfo;6LbHSFt2SKRPn@uNL{^J{yvsIjs75fCi)eJ6AcG^@K}x8e@MSQtLGh6JJP z+YjTsLudExrmqpTdnCKB$vcA~4+$epB8=_6?=ioIoMOd-$lcG#^Czt49%grzfF%z2 zD&sohI!0w-91)xcJD1-uU;fcH7mokoRW6#64w&!1NTsf-!IvOC80fcx!B!NNf+Jew+v6?qrZV0Cq63LVBpTb^7TTD|uB)y!&F&;y_Y zM#2j4o?s*fzapKa0l)lO1RHRhn*->whxzIUF;j#0n~%IO~~3;D7Nk8j2xj zg60X9cSdT{(F-R%;&<+UIf@8AUB{*Tba%CWwaklJY!<#UM(cU-CA=7vEI^+^yDrBV zs!8b{Mfe?N@zlMN&r)8nj=^c<`1SB+UMGkomdPQ7WaAFeOZX`&BJ@{K^4Xgq@cX)r7Ya?P8K*vNqx3!D}-@i`_#!RbzB#3WP})9NVphrkt|Fi zs6mW0?!pU_LcGYHvI{4kli*J{Y@;X~Z=0=!{$5_jdzfuU(!Q#fpZ+QrSw=7~UYKVi zU(yU~?;`mF2L4Hy;i|=8(t6}&ghRzEbI^v**KuQDOXE1Z(hcwlOMmjX@Eef0(N8|? zVjTjy+s{2{R|H!1fzRw6icxyuFUQY+Cf$Nbddz&du7M-Yxg%c4rb3g{{n&~c<+}bc zx@llkw#Hrb6i+NR-2r|RFE1PUu zV|>2sQhF)es*@KtRV4E zb12;~ilA1n?7UMr__XQLkq8)th)CdS&uYz57rvTAp_TIvrQtxqciTL2$vn2im__Wt z`@ttx95yU={A}s(#bO0t_aoy-!Bc78pp859pWfmy*MHj4sTrwqtALC;tLT@3g<^*k zWpa%d^irsq+VA3s&+XN^bnvsJ>zgJhy=L)HomRgsan~YMIjbZbR zWo#gWk&;T1NIx#YZR}tpn(i`NF_e0N^}!e)r?SO~*Yt7LOug*S3m+Z15_PPq^k_e||fB zd|5+()=NyUgB{GW7VQtjiFNeL&U2nN<_FdUEdKWEWjbV7r#tQ02A1>$4!=d|7n-+f z7rL034qvZhtNL5;$@y56r`TH-iWj6@`NY`l33Q9v(H;|Ft^_Eo*{TM-EC7Ma2V(T3 zXkcdeC^_;F6NJ+GTGJTQwA>@1Hx40h(gfc46D|>(=BFm~FTbbGncr`Y+A}AY5*zk? z_U6gw7uUhe#G-_;;fU(Pm!ux|9Uhrk!}s!7w1pdCsCh_@{F=~7#**>k)+4xJO9L4c zwaj{R?hKQlczax7Q0w~{OQc0uH8Nj+Teyk8G&+G=QwEu&_$c?s6ZTTcuFAba>rk@fI^ zzWZu}^;oSBLM=(O8EFrOuz!QfHIGm^UOp(Et|{`<{7q7ODQnmk)jndm_d%y1BcA)d zFT9*YWnd*80Cju}MQ0JsBk&WUP{5Iq4m46-f=B^7w}reHs1{>?{V&wo^2P(JQ{)Y( zTw0p{cecQc)6ggush(j8N~A$78gi{63+-YE*qh6RmrCo;QHu_3E{~27Uq>R@b-D*HQl6ZGw|xo3s;TqWrY_hl3W6?^48UWuK)VObABK3EE*s6)cLvo~ z!_y_nL;;1xDzqU#44k{=naZGx7@!(OwbNh{+{D|^UEIB}NGC03SbIV^7yfsnR26>* zS()O%3PbB6&D{$r{68Tdz7@LyMwg}FH)_t-E9)MlEB{y6fwzo$A40`_)3pbizl=PY z&qf}&9FS$KXTQBcJaG>AVw{A(sboW_0IG;cTu>;2a>CWFBFH1L9tDvGxW|NrU-=05 z-Z!F94h4A8x+wvC>Vpt`Rr&T;pg7>N(<9x2#*x<;w^a%ZFz#V&uQ<@TKrw_r450a9 zPT8-xXVf1hBHa{MC+RfRsi zyC#ICzZ{)Z`au0hO;=0=u)z||N;JRPhPS*NKC^PDa(XG@(}p4XVDk~d31qYIHN>a} z8$)X%ILbz{6ZYXPO(nT?CG+Fmq7RP07`)?Q4^|?VPCJPFI>|bF!QByCC`M+%h97RC z{9hGj33ksbfXQDdwW(ZvUgAiBVZa*;6MkEyvSTG2bLcYBgG~yb+IE4*n+e{&;KS9w z5X)y)j*y5b3b?VH;BTzJdT-PiX!mb5iI%onJnz9=GEce}iw_HV86sfg!og=T%qi4= z&$rf`T)}G)g`_|aG7WUu6x6Cf)7hB`mffhkq^t+!t6Bd&3{k2xO=EqSKC5Gw`=V1q z3|D{veGDY>O0o6LvFk1?hL6GqA?RM0w3DnzcwgJ%fzr22PuzaJKWN*7)Xp|v4c;PS zQ`beP72zRiBF(u$T@xC567gStPq*f1* zWC)8K>TkOA>d#e{f$wi_o@t}$S&m9UZL^fr7gB$s*)&3oH1HPm?a6kVg-J>vmYJPa z;x|;J9Q93PS(p<19_cNXnS{5l*7;tE>r*50|5Z>eH#n=z5n)ZmMK{_UG< z-2F{pT`L{++;8uQe^@@0y)64^ggx}rmf%^1MzA3gf^45O@>gFwXwS?LL9ExrMwg( zBF@w>_B$pJZfD!Z{+u?x)r#f1)HwCt%{^MHx8$5BiBEEF%NB=t=4=cHnxY_!1GL_b z#AT1zyzIsui}&t|C*+?;`$}oFFsu&(>#&G1Jw(%Y2uQ&Yycy;pes2u1huR|9%m#0E za_Cu8J*qUnq)d1Zm-=>OG=}_HFG3qWQ~0^yq?)Lk&oe?T$oQX;bAGVKEe>{UQ=H;i zhcYyVw^Gfrf)!GJN1yPxen(nP%d$J_=4MZGy!4+spR5}we;!vLW3K@2GN%9Z?)UkL z%J+OYy|Ge(6NbCMz=uWqSyC3 zlkRx~SIn)I86!)*0H)jcEEcU4%bysIuNxuQ0av20+DbOA^mRX0eG9I7_P_pU0(nBr zH)n6moJkiIyK164`vf#|&P7xtz@K?YW_AE4X$YBnK3K}=Ae4OG9Ucjyq+~eYSlxER6ggM7S}Bg#1^&)_TbaIi1ANF!&?s(2`2uGkCTx~u{`V!m zWar-fXal#-V~{t>kmQRZ#7g0Czu|@=Teh|WRAgkH3q=dV9UputhOwt3$;=vXzrXJ% z%_qAaMw{X>TE2eRW{Rhg44!J_?dscupv`*TC}f_1iLw7jxPG&90Vb{h;c1vHw{iky z0)gM~H?k`aYW`mrxD*(GPIL_Je!5?8sh@iBMki?HqjAgjUhw>?*mUyKvTFdM8G?wP zhwC&S-QfwlDRu((*q`nov-h$EI#rbmx0@IzyrX)-Vzd+`8!m(Z96&q`r0zmSPj$Vd>U8-YiB+2 z<)xEYS!lDXJttZucqr`ndkW^H3n&S7a2W<_h2p%hEgQ}(?G<@JQp_mKM7W!arlpqo z1}6U&iSm)+DcW^5pXFDiwsK(}-a8b1;v>j{BbqbEb7xv6baV%@NDP2KZ5Rb#qJ=qw znvkrkRrK)A{4?Ej1!5t$Ez5aog)!0)FuZ<4gYABGK&~n|Bwi+%fl{Og7kRb{$ILEN zP-O`55bTKc4qJZ+d48};GL8)r-Z|FEu**TOvDjy{PZr+aIX)ky?CCz4v}wX8d>y$* zAsclVF@R7En$9;f%1HJ?w001(Fpb1nAps828P0HJf+jLhh6Yx}cJsYENpu*sfM%Gg z@Q0p@oOQJirVw0+=|ZEEeJG6d;hkewS2!K{@+(&z!+N#Ul7ksFO7MUa$r{s%<=#*{ zN6dMV6>+?jSy|UXs}db?vNm*exXo_=Ji7_ac;6^0k%ob8=&g!s3ZbJl|3ugTa zya}Nf+`Io2K*bxSj8+-xLv5M;GFNO$C3QQtwdwEj;ET#M7Z_Gpn9V;c$b?uRXTOpG zJO8okpZM^~)f<3~WHnzvxg>ZUnLBNQaoxpWVyJk4mi<1`k=}D;WbIm?(ldYH237Q6 z8Mnr{c1sV;49rxKB>3=jO$#LbaIIms^7TBugF|v2)jzL}6_b|_&xudj_dRH~UvB_F zw1g^Guy_^y$_0&NeXEbEj><2P>|10;F@pYJ-$%!YOwm1zABayq2eZCK5UfbX?*BVR zsW`!3sx#a(J%Q`>*eyU*MV3 zXWJ`lmV=7LsikYk&2LNg+zB{=V(TC=*^k(--raLNR|7S_Y{To^HY{G>a}7p6*wMkt ztGj_KuG=tf)Rnfz&AuHJ|LT5W*4V^%V0<2urZfAJ1m7<<_gDp&fUbda0w|X`P$oNx zZH&(p7gmnZk`7-)bKpDG7FFZP_;)&3BuVGCs=qnR_zps-?-0a5nvANy8FWwRglp&F ze3=1j{66V#vZs5<3<_;!f#|lsV^ZK7%K6n76P~W3?p+;=po-gqjVr?qOvsCp6F>m{ zhDAgRBcA(Kj}9-+30_7@uu~GzvMwML$MI&cNHgLvrgWz{&#qnIr*`&9+)-(_v)?I8 z;fFkoNZH6=;hRq&e4{I``VUbFN{DB1mLuAe7cA#KUHrsgKpN+csRfDRALY3EwRDw+ zyWrvdg71!jDH>RxcWiTpJoNlmw#PYPFy_v3J8_brUIJ0H#rTudJ%N8vBmqj3@P465 zhDrUEPnz{IX}~0p60trNR3q2$%$YxfU+A5y8zv?A?g*Y{$X(q=dw!IdgpggjjXto*mJlR32c^f$PvRv7M8K=!XlX}FD$E9@mM>_+p05(TTd~J%Gx==3xMq-Hgc4bQ9uP)4UYoFVxF6-q z0hs!={4C1nLl)94rkhPiU-`PMXh?ALyTlR~E}iTGaOlCd#5an7$=B(x&di8{+jT!7 zJZZrfk)OrY{A+&@QLjZgdoz!xJ@*_Lwq+Zzyu zG|K5f?HP|M&&DKEG2VXTK={G#mo`QR&j=_r%tO%;M&a}I>jtN%M&1K%>B~pa8M1m3 z!NoUv4LpZzrDFn$4$_y+MM~IOy`<@P$sPo(zHE`&{f~ED?=>CSG+)S-x7eZ*;9OS> zSHnngso>{_MZ&1x5hM`Voqd5H_jNC3Ml{oZ2@a_3tbnW8n)Z_6ck(NhHX^s1l1}?A znCG_%1%6uoHhGU{ zXaT08FcWcZ^xtE$KiyCZDlL{wvTESel3LH-!Z|;;J$DB1_+;Z!2*4ad=HFX4HZ>~9 zX3hu_sl9bI2flaFrf|XFYCtB>2rprOuT*F@tQqjddT@ab0w`TovKUBeIC)yqO+^lR`F@t=}0bRbv&*IgK= zxvBgK1#j)_y8`onIv`dcihY9`c8a|-F_I0wT&Axo)uX(Fg*_n=uEFZehqCoX?#=)z zZnIA@FckHby8doggaA>y8qPzU>qf4iVY6p4x+$gGH=1wRbr`S5l;TrwH%wj!?-oZ- zlXmBui`P2k&~uX8zd+w36_0l+;U}D@R`VX?C98btXR&@wVl<*|{btOSLLIL4qdk|j ziA_M%TY|(_#cN@wVd#PQ{~GTx*)H>`MRgcN2L{sqFvZD$q4__a`$uYu#T>_;`<^rW zR2n(bv#+&02~9Ep;BCe68b=c_n*UMuijjt!ZrIHD{K+i6Z5MLf%8gpK!@J< zP`|c~;6hx&yhZromwYI<4AEjWKu3j?@zDOt>#r}C=1lOU9WSdBuv`xq_`C0)LfijiwLTeKamG~iNRC?f4UE-sD}WSG+!pz& zdr@8tZX^e=ajw8Tnw|+%!@Hwi3f-rAkhEj<4~{`EhN+h!#Pm-afsgUWYGmv`Z;JQD zf3+gXyn7>mG=6!Xc`_);8bG~Ry}yJ6wVeC)&#hr-WVc~~QiH4HLv1@N$r(n8Mr_D&b)y;1|F0Pm4o>sQvn>S1J5-boHJ}D~UORiO6-i{n zb}511VCZ9+41RFLl%6YTw<-qh05`X`m*b^Z-qbVi0?@UbOdcb1KiuW{AMvV@ECy+l zrO5an#RVUhLxWtOQ4k${;Gp2*&g1P^)1}%Afyk2 zrGbM1#UUO~tdIA6fDDua@{m&&O5#INL~&R29ohv1ksun}Qugip)rRLZbdW7P= z-5PB&BCxI7oNqyAHAEnLc^u*rosrn~L^u3}(HdofKMGRnFf+UCGUkJF1`t^B&&)qw z_pv=iqsRis^ew0ahR_M&{f^sP(ghRVUp3phw96vljn~;)o3P< z(SqFLt7VX!ZS)aRK7z0PB5Sj@Cyo+_3DM|do2tzyl+B@^n9gd8l6m1S)L$N{T8u#p zU?@XQJcfB`fr$a&_sDYl@m^K=KFs#m3%E_cl2r^t!itFwwy(|yymdM`scr*_)|e=e zs8NLLpa-WD&w=@vrv;-@F_FfaJLuaB#YDDa5MnRKYU{HAKv7%LK`Kw-*cfd; z{B#~Am!WhpEaQVQv@WD*gNBU3Q1ZQ6dKT^;=)h*m`n&FU4bi8D8Jbt@+%SZF-`OVM z>(rqQjK1t~tM(FnkUOr&VASIAGfRiBLi+45Co0(nU*NqMIs&w$kp0SxG7XY02Da-^ z*48i&lou;Ai-;H3RgJGB6W`?Bvqfd{B#@6A^uRx@yF_M{LeErP0;tJ;v8%ntby^jSz~RI-hHAeB1F6p zJT!v4$}S$5NuF02c;AfoEg5)h`)$c5UUSGmeN_9tWNz{LsfL*|33@-ychZNmjI~~q z?9`W{kKIw4ot~>R`@+m1{#`!W1Qr=yvE9UK1`aaqrT-}f6=ysUg6t2`g zzVom%V5ymc+U|_LdsSQWlO=@+w&nB7_9{-Q*EeIUt$X5#N05Uv6iW{jFxh7DH4|#l zU8BV3sr^J+2W128(d)!odiM$2tqG^keDwUquVF56F6Y+1`E@MMXLdy*?rUCsp&k%; zj^#^?LFg5ral+pNTM~x^TH_~psin3g_f$J%d$}KrXi-ZL=qP1C&&v3~LD`q}ZVvYi z$W+uc^v_82pV>-a3l~$lK=$%a4DHKpPud$cL)3!@Q8%hxg5_=79hw|2EDlW&FRuFK zyn8R;NL6`H-!C-=sS^G~=T& z=1ga@O`TR@ZLjPJrHl}~S7l`$%=yvA#MjK?#_ey1ou%8kwaRsA>FeQ2-|iA*MsqJZ zpLyx@6>Vv|wyG~qGYZSM7HC~Wq930d-}jjrCVi6g=E03>^Q$kAhpGBecmG}uX~pQM zXV5ri7k)i+^X_oDq2@SIi(^ET1Y_yekw z5!Ccui9Vew#ROy?fbA8J$QpFPQ8g;+26-N)KY=gvKdE_DbQ$Njy_*~Luwe7qdoV%W zy83=#3BN$HK#MiIr<`$Q|K&zy7gyAB5@f)3?NxSLMi0seGtP*gOos_x|Mmst6r3H4 z>aXif)rrE+9XVp&-yF^n&#y|~% z`5N*zf@RE95`XCSzH^^vG4gr-;PQ<)8J{d^b9H7fk$7+^TMN14ourMuQ?qPVSSzU0 zoYVc~72|zlP+8~=wV(fM3)Ssc&c{-tzg!1~PvCdVJH|@n;Xw~eHHg!m&@}{_%LqT7 zRsHx-@#Oh{GdCbfr@xMQcK+s{Tlolm~`X-~~L-c022l|Z}sneBBfdD)5Eys*xTOYrf@ zLvfZWm5gvZNt~TNWG~mf{c^=Ko5(LE6El(lN6Mn9-GG&41PXPOC{%3VLLx}aOeV?D zh@AcT?-KBI^l)`h7l@z%L8>IUq;A)4^9Zom6Bmom6wB0~n z3mFxatzWsQzH|j4XFKZRO-Su9hXIRRLx``M`T?^vf|DUQo%U1O2WxA_V6U2SxCa;c1BVm__*wcD3?<`uVC0naQB|{-({TKzic0e-SnwsJ8p1?>Jl6Kcn zjr?IT7wAbKE<3XID+CuaKpfKkqs6+a0zuEh4$!r+LC|R_-TE{s^`;ytrx1aZtrEOCseDNI!YLmvn)=E#A2!f>M&w{Cwalv7kwJV)UJWg6{#)L95_&Q2s;zQeKH0O>#{c;b zYqX@OZ2CJpq{8B@UgqEvcZ$BbIBf8&Hp0sWs!_9nYOh&?a{Flot#`L5bv0qj=R{;^ zs0&ZOi#4HDvT^piQ7>!2XB0dQ2eM~|W4T23{j*g8GV#-g+0GxwzERzQdzC)Mscrt- zebwgk1dnu6VFf6Q3+`RRauA36AnW7q1P<9G@w~P$h2F2iz=SOp5bcGcOCvBdghqzA z9Agk#PEniwoj?(DmF+E=6l z!sLAP^S?MOXz!;zpa3A^S33hIgO9}w#Zt4oH1v^a{&MeX`KemY(uPxBV6KgDA=n@; ztStofbW2N$KJLFM^I6kST^1ZAVaF-~hbhJ1Apc0;gqNm!of2ZjZt;44Ve^hSkhwGB zOA^zYrPBjs&eRKI%&KdYMrKQN#6A`}x(?D24(+kfumV2Sr@v~ouyS}k>i^lP% z+q3%9-Z&37ObdkuqN5v$S!jjNE00nx7SQW;aK|FI{BC1dFF3Aq-a z)_iv!3C!@nv_p~bK@6=TJuqpTU%Y}?FvIqNpyO{b5ramXvJi|QD)-?RJglyAV;V-7 zX6s5YbAg?hYOlCp!a287rlXCSFWP@RN(|kQ_Ey*`1Sk<9GH8OdR5}^lc3ur_MWFKB zxgSprCcVWrRTq@+;0O|BHHJxB#Hwk}C=}t-0Ic!YuoR(vAI=cU1Pdf4A1=WyrI+`h zp;BN_4_a1h0A>Ivcd}OX0O6y*3q1E6-zs4)sGzE`Z&&2ZY1fx^~ZnA7c3)8U_H_T>+oItD?l&AurUrE6!yz zYwp30l&P`LmdL;f@a$w<*h|lM2+=7a>Ia~}x`x6U7Et|!oJ^G2v<=n2o9-mxoE=g6 z%b!BsST0~vYAJo&>HW3o%vKRrTm{q*4ZnKMNlc)n$OzQeN|nM9f^*pBmBR~4rx>(~ zWwGtyKdH}-XpwpFAggB9zY?NNv47=;AZ@kkAG}jO=X?>{3yVL&#_>mSbLW z^B??P4`h+!NK|BGoDqXrT4qQ~4ch9_UIc6{D&P=!<0KNA`V3F58V;-fleix>a{oi` zYv{L3U3~_MBWf*!P5^xRYf8XM%ePehhQFr@d;`N^`L7bF%cw-2GSn~OWwEa(wpX+F zL_{yw!9Z^qd9#*)^k1`{TS(BMZbz9%p#JECglBoJx7v@glc7ccdDv0xbuq*$T7k&_ zzZn0OTl=5{T6)4V7YCnd9SIc)Tj-JpNb&3Xkz%SPSr?*I9nl#4Pa1WWPKO1BLDoMr zQ9EQVMIzKfTQFBAH2k_f)Jt3<%$s>tP{V9t%_19x2f_2-kVYFX>QPQP^S?=z{iHMo zY5do&&!vUy!FbNf1E3+3I@fOc7BL$!|KQCScM&GcqT}L5sB}j`wY6d7fK&X7^bne4 z;y1ugsSH@5fjux)4@m3yeuNn8zHOu1=lKa6=3D36=D*H!(1wv>fWvvyw1>3a`DG@K zLW^WrgK@tsA!W5Kb~$`ZkokDd)SJMHLc#>bnH&o5%5a+))MgYpsZgdMTM>feIUKT( zW&gO?TcG1k>txZnS53cbKZTpN48J58b!Hcchkp!11KZ6m>n5jaa~w@qs%9DotV^pR zj2&D*bZ7xrs6@7_*zU)*+qBuwu%$X7M{Z%c0&&}%-;-d-HJKx@rb7?JRK5pB9lT!PKUcQeK=JSZ4W~!e`b|xVf5=`x|A9NXKGFz?NWSg_DlMJ`ek=%&^EL`O5OX zlvAF(uJc_^i#vQZ1_}{l*+Qua;mwy!NuREtJE%7A&rj#r?}351;piYB(M9(lVi#{g zO{D5$fm)XL%Q1Vf1PR_i`Ha9(BRZnkv>aI!HruCKsoEcug|)h8Sw(~~y?(1rAVGD< ziM(>K23OIGnD_NH{re1L>0(TW*X!d2yYQnd83+^8S{^jg^)8yPDK_r-;&Faj7lo8Zid;Se5;q&4?=ESW=_Y7c z9-dnQ#_a_~mwb1l^;lV5M6YZ5ovDEAa}IW`fbkJ`+UtVX1|NyCi0nP=HTc)J?uHr( zi|K4aTdmuMTlrwp5euh6Dk4ARuj2|$6!y2tS06&zgvN8nzO#$wHRUkSi@OyaV5rdB<%i(cak2A24IEZZSjOPJHWFX?~ zv(DeS%_PrlN9c^+-SJVGi>;BpOx+kX{-*O<%iQHwK9yAYb6d{-4%)QZZr1JN>>W1O zX9(=iIB`$}MGie$RLdNCbWCVjzN^4gWewm_>IRXXA~OuD;LONdwSLefs%FRJ)+OZVQ_ z>=JF~&OON{-kw-HF>%6ZYZ$xqC8qa8h@x@mc?-SMCECKnpFdO&IUVg2u_row@WO19 zJ4N^A8||Y3HP}xwj|I8P5P&o84Grt^N=hg;RdS7bo=>7Q=Rs3s5_xG?^ORq5vBuGJ zccz9vH^SV(@Kze<&)r;fV}uajFz=gaNM_ESlGv=LHq6FK^lH7`yAP^~LQ6lc&w(5* zNY4VeCLhPJT*SPnBGx*Hx{f`!Ns59h&f4A+=T!ZE+}ir3$2wiOXvprAUf@ZCmvL{U z&wf9zu>AVA8F=izqfSaJ(LLW|$n~7a9*k`QZ1Q|Gd=6IqfuJ`7Ij^qB?+v&5v|7$0 zL(homJdq}qn_TvSvYv|>skZ8sWrsCI4=2Z7M-O&WJc2NnP!C)V8c&J)B@fLgzpBl$-q01u3t4arf$v5-NE}wt0pmCwqk2 zq(63?>+6a5jZnZ5UpE^bCH5bp{&wW+_NCgmZt?(Tx*GhRF+6DOR*6Th^++)=uYFng z!pOX3<3W_o9k3F4c${Xu-uAP5i#Zs*e}vm-Hfor97J@0I+O}`kbC+XBg(NC_7USx=bL zWY%7|^UX?{umhUU-MzYJ7%tzjxcY>oAAoKuc+4;^;My+WgvM8su z5jg3ZX7|L4%IELs(gWpzrM~#X;HMuon`^nmNYw9h_F3F$=z6o^3Lpr3vVU8qkBqvH z`jn^FNzuI9ttXn{CX+K@oYWgCpE!VBQhR!Tl)X+lR7KA@lLSx()Di+U}&v##Dc|*ixdy?%$P!tiD zW}|Kv!dH5ozXhq=QdrW}Vf(QaniI98kMqhxSN2VD9;t<ZTqS9vZ4}nfOrUT+ZSA zC%gJyyfg9NUL*O13oztV|N7+G!!@8pfSArb%hyyl^sq;;r;1d>3Kf7R0@6%% z#T9aUKbQ}${=;@w(qYSc?V6VPehf7Oyd-n)Unp?h`#Qmd}M zbI<91?_)WkBqcjV&p#Nk@$>Q%vvd8Ci(0@DrYY{X`a(7k(ar}x51Hf*a5K$j9Vvyr zjwYyxn+pS=@W&77$UmS$TMV<6o-x}epO*h)jrdCDjoK>>{J;1ngEh+$jYWF?F8c4Y zB*#DHBN{$%^zXC!|C)tBw^o=`UC^avDxw2jNNdXm|HF!?tHBGt6P68)z=jESfs#J& z^(OY;1Dw>IDmT+E1u>o=$gAH0>7l6)Nlayt{l0~OX?dY2mFfjfa|L^D5t1_Q2fbN~ zf7AizkTlAQkn5@)qEy4OYY%z<2m2RsibF{Bq6k$q==0;|FDlqUpY|_V1b9EEvUOhF za)8pL6q&aJ2&N2aEperu-MV#_4mvd;)#OU_t@iY*s zk%kd*8j`lyG6jFgSw>EOR}c{@1&~q+vU`ue^Sl&N??}{n3)!3)4{Yw>hd5ODyW7IzwNv5R4*qDCEX8j%3WMEb`5v*H~v! zw*^xkaUshSJ$&0`t7)t`RQ4t2!O7Orq$00%*(lycEFQ$`(X|O|2?uXp`LF; z6yJ5|nn9^C&+&2nQCUR}aFLNmlm#FT6^i!#$%T`18Q%Dg#QX;iK>Z;L5R9?d-QMUS z#^C?_dgP93W|+M7_m$XENBKRK*MVW3aPm74Yq-syc#2co;}D&dmyDiFT15Q;o!?S6 zh&=>wxYb`1ylVfWI3PW^^CHg9&9$!e+tRSlO{6ecGOQWI^H1VFT80)x@_d#3(iMdXElLyq&cZ8+*yc-1%$V` z!np4u9VJsR*)cz)a>qzm9W;B?{b^NY{J4=QmcP`Sp+tZFx`>79pEPWp&M-S3Vg6WI z{NRcYW6p;N)0dK3M=~|b8UaJ6Cxs@=APNbO@Fuh*vU+Af5<07ib>~K!j?^3Ni1k)W z?#>$#e>OTSCY$aNYh;sbLelLZ^-t1WZZ!AV8hL^XaGa8RR)R3uk1R;3r^})Bx){k3 zLPO>fefJ`#zTHf#z*0weY@UxDLyfZ7#Z&Dy%6gG~%b`H5GH{5E6SIonfR1tzji`o( z$7rZZIeYKOs4xYi$C-WRda!S5fU!Jw^KIB=l};J}uT(T=?tx^UEh5Vl8AL+xX?j-b z=OaAh5p+|2*&OEX`OdqmFf|!_!@4Ydd*Oi*>+P1Cm)H`N`p8Q7XrC?ekA^4#@*Me| z%mJThb+L1X<>#y}y^2jh*9cg|7Cij9j|TzEkOx`5@(Xje0K4dJHl2YiPhzcd zIz|1h0$0KA!}x3E^0iT{QU0vY3h0cpbK`Yq#^jY3FHJ~Osa_O$p#IUVWMAe^_}%UK z3v~UbPA0#c1he}0b4MjtOPU>Hx6Zd+n0&l;MYRZ_B21SM)-KuyzI6$rYYDWSyM;w| z*LAZYSv)_uOFE7Euj>yR{yc#Df2H$gSH7{*8S%Ora%*oP z?cPFj$M1Q;M>4?`4T(BlQK~h>8r@hys^svzf0!BpjLC8*za#L$dR(~j5h%W>vu7K$ zR&=*)g%4K-JUD#C=)O$lZnJF~E+b686iG*vHO=*xl~FKZy9=SM*s+fe4pX;D+g!~e_vg6duo8YAVlk1_>mcO7(;z#IiRu>F(K!{B7>9|`f&FY66Nx+txucD?Wi ztT*0iZYQ2*Cb(8b{h0IJcW89>u0KQCcw@yxb~AE;r>2EJU3~yXPX&`m18q;71Cv8~$n~f$q}+$ZFv_&Od%$C=d)11l3E({i1*sbl=<_}#_r=tl^nm@X za+V(Yq$TZJ+p5R*@ryQ$kVuL=mPRZT2}(P$x8ht)vbHq!?zlaOB%C_vF$>mN8m<4h-w zz#_z{uO#S6i;fTx(rA38>|UT#@Ots%l8oifC+?rK!$KT~gO8-XJ1G~r@c!Su0Q#Dm zmln_+NT*JvAfDH1;lXcZk|x<7cLD}&+PsGWL;@avIib@c`1aM6D#}|_?stz!kAufDQr4HTs}Et--BKFO z2OK+E)+`X}B0y;M{gIZr3v^YN8q8STsK`kMto-RBb)F;_41H&#JPr!84e8s9;qK1D z3H`z`!`?d2FEvGRHXR|j-qUW>bT@N6l_kMz5TKLnw%f3bsVZ4UBwp9LIsLn*hSO;s z;)&{>?&`T;uh!6E4EWKzn|%--bf+)hYz*fR5e5*`Wp8rETUu;>G*$GZE>llTyJtAqEvhy2}}QC&}{eaDUPFjKBv!+<}FB)@h~Q7b7UTaQ2KpaI?MGm4Qq_^L)SR*B^HHKZC? z$cO++^)nP=n?^3uZ+d}Mez#nxr&n^?xcZC>12_8^U*adqrW3ce0H50j4(aEGX*I6+ zuF~Nt^S-?>uyG!|Yl@{Or6riissCzw$a@Rw-1f1cI`@l?>qV6?vjSh_{rRkZlyyb# zRfBQ1Dcci$d%{C&cf@nl85-%h))~}qy-8tJO6~^brH53T`V^LwjeTh9yHACOsqgV- zCbitKm*;oACKT5fdIN_X#V)e&#zw-dG3G4;XS$ z`|Nck$h-Gn7x#!X3{18jpky9iUn#6k5m?@bw=Npi(#1%&hHDv~sFiw5!Q|(o&uxt9h#6wqI9hS9sUEE_JbsoO&8P3&}sO z9~Sgk>vU-b(f{=V<6y8IXqT-W3vrp(;wv3HhsVg_5LiFVnydc>gsL z`zgjXY~eqfPp#@%_k()E*WTx_Q{j`#Vg6zxC%EvmVQr%2O9Pm`jzQB#38Zt)ZF(=t z48NuEI9;QBk&9=P3|o6MIgLbGB7kAG;oA+c8sh~S4NKPf87KngV3o<;fG&RTb69FU zfZAVJ+dzKByA>Ft#ei@u0rAi>C_pSgq(Q`yib&IXjC!w_))zTY5`exi8YKTT?u zwhrb_{SYmw?bSf)rO0q#6M_zs?=e$^itaoGBNv_s593HBc{Ry}(#6fif36~UJbsCk zc?};H7QnpXhK{@AK2#-m&gi35vNDN?mLX3UO;9<7)jRdS6SXK-B{l8|d-xmGx}`1L zK;NcOH`gN#DT1=cg3Ng5nk{su_qowf7GH~eBmcwK{d@CA@adZa2NnnBXuDu@T}`K0 zl~qG}N_TxX0au26zDn>b*&mUK`_ma0oxAP^f(9Zi&*i)DkhJ7D~TJcvd? zrSumzoMRTXdZrQb4^q@M)s_S+qA;M;$IXH$(Wz+>H6ZFcLJ?TXp;=lCVpcA$)ttQJ z3h}pz1p@YsJdo+jlU_w-KhZUaIcuv_Ctft6f)P~=j&Ls2s|uS*jRg_`Z|X3_-VW=~ zT#WmwY8mIHxizGORVa=)KV>JK0B9?w(fHaZz!fEHFWnX2=K~ZKiBs)cWFd(w(0A&k z`06+Y!y-o~bJovGfHo`zhmvkLD5U$lb9K#QdanRN6)B=yERNJ7cNjeO%yt_K%Jzk2Ag(Sj^75`v9HVotok ze6RN!6Hgeg3O7S`s}9IWiufB!92h;7>685)f>?m&3ks%kbqE6DgW0CpCDmjMg59Vj znnUrjDO5RO^U~V4Wzah4{#Fvj4RZ}7@>S@WG%EJZrH|-5QH7$Fd`~E8DN0}5nR&t7 zJKALm3=+(ZZoo)HeM@U?f5Zu*exO7%zX8Hi7s_5tLg6*zeT{N3H(!yYq5{fuIs(FE zW&Zi{r9OZ&Q&|IMe(@@a9{rumqfl73xr0XJ4MvZZkEkL7*lLk;b}9#G>Wo!&sCv+i z-aikA$Ua^bz@L5a4Lk7{1!V7z{QtsU8}$|EX3?IgJwk9gwgt_NM#1vw8*1hk9@{?2 zoY)Pxh#BbiN^}I>VTa1x_h~PGm z?lfTI{gC%gfJs`}7p{b8Ly%&c{XGbl_7>A_xeUCjTpauqZpZW2do(+*ZJh5<86mI! zQjV0u;9i^&umPsy33aX$dK6ATP;XZs&NP*txa#26v}eDK(Eb%E67)-*B(vddTO_7mJCaN{?ZDGBAl9URr{xwv0k)=l;}~cWZHCW!XlH zwN|NJ8oO%V*BF;6R>$ji(>`Oo{KmUG4`Cm3c!zXGXs3|+Q{qeU!P=7ss)`pR5?WsX zfP6Q#&9LJ}`Z5*fcf5Efl|0+h9VTfs@CFm_-xC|+w^F<%?5`XAusU_ddGcBG)Tik_ zswO^_B?uoi*{HFm;gz0FLh|6Hx+7=I>?>UJxPQ#NF6-e6a0Z`&hvIOx7?piAi{|FB zbhVe*#gz&+U#tLilop`$vq$WzyoswqwkKWFHaaH7iwTwc12Gt7K|I6Tup2up_ndjz zlEi~XfN5;=+JUM)jo}LBD^U7QXD`GX6&xzy&!#vZ>XhDC#>EqIsl>eZ2CY1e@+J#( z#;jRG;M&?V`L>w7`ONZG{tJ)Vb8j*8=Tm=JzoXH^lM)h@_Suln!j4yn(@i#10*GE} z8d!I}XvJ@SOjkdxPF{SLL>!l%uA8m6>on<_r95O5dIlrKgW4|6=EFb z`X;q-v?Lg;cREYz(|cq@lb^MCi%^G3WijogWhg~IETh>R$%+=#b~IvHK8XHcp(PZ2 z!Da4;6zy8eL7(=UL3vt8n1V~VeLZr@j?KuoXxBrbNQq>#&w2V-`fmK`P^CN4E#~*1 zVbSg-KFhYd(m`{FTSjBWn>67JX=%Jwd8=ZJj4|HI^qt8c`N8Smg$KznEZXt8!zn(7 z4NjlPCY&R4vj(GmfdE?4g~Vd;Pw4{`zrpG{i4|Qb|4`n(nJ{%~(p#GLoI-z@qhrAH z7JBQQKi>)yE}QTu2AG{Fpg4uc0I4(9ZbvPL<7rZHuQlRoRNuCHu95?6dYP-lqUT>^ zF*3-ROuvwn8Z_tQ9Ut7h8F*MZI7-{k?&0z}4Uf3bn1td55=*r75-Eq&lezA6**DmIJd271 z8#c|-MdR_@m?=L7UT4FLJUu55CcA`bnN8l4zsfztk@rC~ZwDjfE~L z`+Ft#I7)m?<15f|*7uz*+fq3vOg^j{rm{G%P#V0(Z`wT4?^d8Vh$0`RJ|?{`;=D#@w|Z>lQPP<_Ys z@h77~)3leMR;DAV-H6&=`msj)wbv}6{K;A@YvH^6aA{al=2B zx(Gt3IqCRUORT7aPSZ~Hm#qb~dUrgUM}Ci+gU;jhYa|$qpInF1vRf}i<6;V)i;VOt z^xE{}<#GZTuU3lF+;)2FcqUJ~1JpdBD&*}k+{VGvB2IteW(O+=J7!-A7g+$gC_A1> zi16U2+SkfjXH~3~TH8On!PD6H`r$?9&=58j+;A|)CaCU=!s)c~_*-}84p-*S@bM-j z97F&^y8zvdaL*0eHMiFMd~Seu2AUd4GT|?)WG8VP#XSE+_5B+$4Tg$ryunxTh_q$- zWcHs$d{gO(+V1ren6Kxr65CimCdS8o_w90$jzT+u!sa&r`$-;|5 z2~(S$DJ4yQ)Qs*Z0S0sNc?4-uxH#MVci0ql*}?^kFKt@6D2HMzCeG-lrFaOI&GOi5 zLii*GQx_!h0L~Ex!y*@d=2_pV-TFLd3om6YOs)Sv2kYc-yg1C4EV?T>3Rk1%+tK9% zZJrmd5?ckIg`J}wCzQH1iLf04j&u2-ljAr3lsR6WMGv)tQ4UlHN>1KNXAeF$7Go9S zI0*NxFdHjQz7(RCck4y`aQbk@aON->M!)LAOlBM{1`}t69mL&Z4UYA{KKT<<=SPdZ zN9F?i>K_o?`sP5*DN)r$z&g_`6QaGAUoD4*%)ttbmzW|zA(4J5Qbmy{gM61rNvc}T zW0CTVkc-__WjE)d6&RQ!cTr*`(oX24BfnUnjIaz2{WgN$yn1EfFaTk!$yOxqx!OEI)WV(>GSl z0eRxgs#I=NZ5gB+@c9bvmDG0PnszOBp-%Xq^WAJ~b+!{)#EGoQP)vaU z2XEKwlh-~&kIeDM76FF(xgmAx<|hzdn1z(&@G~2PS8?dTsSw|(!AePeKnhlHj`$qo z6U%bp+#OD)8AO6tfE7RX3=_AUCU&ohMtL%6;*kd48_JMh*O=~#>`cn_7eg1Jhtp%> zrHwv5dS1WW z$s}>g*RV%4o9P6^&Et=VOHotlaWhlENPye#c6~DRgJ=^=(kG_%X*vh{piLIlarHSp*XAh zdC$$Z*uF)eRXO(pyfWa~QuZ1g_(sdhRFNnz-5vzkk|CDp;k{vz-7g@^tAjH8eH*M( z#?G-{)*(|Z(NV1$hvM5D_<9y@<+0QYO7{v@i}FD`7AmSJM*5;uK)sdfC{vZMLX{7v zy0Um^o8@rFn)qM=NLT$t(o64uO__Tl>wH zHlF|v69mh2T%ZERu_5&M>ih2C?~=QBXf8vQ-!oGCraxNk6c|*Mb+>71vdh^q??U^} zmR1=lm_T(+pQ6ghe%Hg8yeHF<1>Y&4k6xA9?G0v=4ae+=C3|ShdgqKO6 zxJ#^#TyifPE6b+W|Ju$4#S>CAr6v8!?=WKo;F|a|j7_e0 zc?ocXa{X}U&2gzJ6RK%AcV(OjX<1==`zp+DY-N6Lcb?<@4*-B8yBP_5dM@(sglfpf zo{DLp$uB`EE^Y7!*d?{~FMn?W*3^uL`pTKCK`j0eBflNX+f7~m`yh2tz$6vcjS##Z zZJ}&OF{w_1q$;l{l=^v42crMmlh#bT#}wrKc-+so9;wP$m-Rmn0pnVufklSiee0+@ z;*28!p=6r1K8}7L941|y22D7^u}KdVex(U~_!)x)8%VBs10@~DYj*IZWiGs>8QLL=Iv8ehV%O5QT{2gqIqhQn!hTI&iX;@>&xKk2 zo#}5{{W40^7hIB%lCjs7WqPf!P_DAFD-83DE~E^^A&QH>?f&d{=hjQZid<;hk2j{2 z2Bj(T;je33f1?i5CS4}Ejbk7FFGap7yt9k43p?YEO$#b9UL~r3l4Rwc*u|q zav(!iMj5i!O*bF-w}tGUCzF)1N0Vr6nokzGjqKnr5(_7`;c zyZ{<+Epenm>02dD4&pTIl45l7_QY>-rcc7El$6L``4y;(XB9Gwan`ez40 zCuX*#`;4peI=&C2Ir<3+_@4@?M=P~Zl&SN80b6!4V`ER8M&mLZFoD=$v_wes;=Vy&Tg zo<(A7yrjC}s!{g8*F)}S&nuZ}4tTSi#HFSCM`HJe@sVG#)SV6b=mAq@VVaQ9z)rW^ z4aSnR2giE!wHHeW+VSEZr(u~_x-t09sY8k)IuXej1^c_WLsFA!EiPBF1WG#>h+mbG z3IM5dZD1P-sqA>M%}ScMf1j9l(M1D~(7H5D0`uo;6F44{Xh&Vv^-dYN=$ypfOj|cd?mwsHveA?8 zJd;qWz!eppE#-@gB&@m2PK}S5PA&*bi)1T}m+zyACcundwwo`O`0^pvt(z?M>(#=Q zGO_q}^-vBEpu1W;z+-;i*R(P!R~zjJXsz7ott^>TNbgOui$h9!pA_uEHH@uIqE(E` zNCZQtR-lDX@4gy6kzMAE>nLgc7IwOSeb&-*TG1Z2=nUH{n{Ccp$rSD|Rmgba%;{kl zpBSvxVcSZa$YMSN6@g&HrIc9}(achA3^sh%B5`rIA}l|Dxj)R-_NC5YNkKNU&iO|Q z6OPw!G@PlG=~4#`KUg5C#>?NmDo@$#S|u|&d6Zhttl-=?EiDIOyvqwQa&eWE@wK#v z2kg_A606z#*W#Q*udo;?3(518#&L5Myifha1A^4OLC86?np5+61`bA`T_2(mno1vw$&9j_r=LkbNJ*tZ zC~1+jNLV5{`fVYwj+E}D@_?`6y-^vdjM;;-;^_kE_b;rx5)cZc$6)9faX8sybcPuH zTB&=r>_U=aWsdWWYdCvp`_EU5Tm*BFIrC(xNekzuMuF3SN<JJ=}kNE*A_>Wo-^Ho3e3wy*UKAZ}#t`B-UQZ*A!Ey`drFo^A$udlJ~Ex$fsv= z33;<_>K(u&EsBSVv*j?pm0dm1Cee2oR_2(M*Cl%!I==6ldHupms zA#(ll;)3H%~m z8vsjP*GET}`v1={MZq!Q(X1UJT^oW@59ivJ+>Q^72Ks{o2)g`)%*pT_>KWe!gfZOMXYyR=)pgAn)6=nv@Z|Hin~IieFizh zqU3rdL+Q&QJUD3hWRRW# zs{_CqdLgTvK`k3vVFk!l3ZUzv7q z4ibj@30iWQFlw;aUMQr*EGCA0n%H2*jbeJ<+a zpMgOkl0|Zu=^onbNMl-W{TY_}xl@w@>$-IrSwwa}JwiDXUb&6mlG&b=^E81;w(3=C zjMrgKszo^JZ@RP2x(@2jx>rXZq(nPJAYj!#6ulC} z`Yi`PI-pde^*JbBEE*YSj;X>LL`HYB8JVhB*+q(O4LP$x<t>pWGHa!LcLo7$<+t`Im?Mu znMk7K7=xe@YT-2=ArUgwZujr;6zVI z`ByaZK2Q9950Z0*P799&+}7WdnuQj&!!_6OUoWD>Bn$wrDX~f$W-POa=8o!FvKlE> zIs`2!dl*(E>jwC={o;|7i25e$Ww9Pc6Pz+ZE}=Z}$Mnx}wqY@C-B2zgEyY`7&{yT0QwB$H zs|{r44!n&^B%GSr+La%nnX~s+e{P^cU@-s23qt{dUr56q{2xk}pt^{jVcc7D!%N{L8{_9VJ$+)8v?M_{aw&veY4LlFCO+ zt`I9Tz1vBMlb=?ej8Erh5ychyaorNjA?ZYeL!|D0x#vn&q*-o2fAhGqC@ns21(eJj zqo{-0ZJD?b8fFx~=V)}Vbvl04G-QJ&uh68D7O42lWL zo&i6}%J|J6o?E?xeKP*w?bW0OGg}=t4CX|9(3&8{?r__iey`TA*z^rIjHFmDs}GYZ zCzpuvWEuPT7){mjKqqCBj7ajk@#2KKN+Cfano8ya<$Naz1F!hm4oHg+wC$O09gKPq z+T6{?nVvAIuTO7%0Oc~6kVBlz%o9@bCLK2_RXVQWbQy_da*QCK!(goP7H`LY%{EBC zZ@%Q(aecMjN$ghJ<)4?)dr_H!q|8o1tQd?W3)6;Eg5K9%0(LT@zW(0D3VtXDxj8Sx?$u2Nnt^bO9|Wzw0Cq!ekI-3 zAsP8iNQ&`$wqzidCRo!x4*gAdv5;#)F!F|H7+!T+Mtx6D4Kb$#I39pBSkgg1y3SQc zXISSj^g{XCHHs@nrr-M0?>RYjzItIn^qAF4Pl8?vgYlwNVzZaNqm_PUe=~7{PBe{2 zP$Lw!@2Yk4$CupwpGRv*eLmlsuYCxfP@N#N-W3}YgL>AsJLr>Mi$gw_U zj;BQP@GUq+PtKwDMV`d`B}gIj@vQ-JyMgp3)|hW|IAfGKt4A?7@g{va5V5jJqx*LB;bjp1 zjsdve12we>Fo0^WFoaW72tr>vCP<#BB)AK4$iUf9^K6;RipeyjcxYRq8)<;DoW`70 zb$%$d-5G#T$pTityfmGLd>mlN(F;1WGbtiF##ak;*y#H!Ju69XkSc+tH?Q{oqGYx< z*S`^#4Xx@BCgP;hgNhPXB(N>&vmExu(vJUt8&BQ=u;ry53j1fv$D%~{_PWn_av4D=e>P}0tQ-*K@~a3` z62EJV-5){d=&EP{zhE1H+Nu3JzR>ZFWmamx4!Dls`AHskI{TRa7L<;jU z^dpRX)&@j`1h-xsv514T1;G0JUF4Wr6rpa#s)Bl6vkHG}t7Gru$FI@D?KL8AJLK@s zQNy(HJ*>FJyU;g$OKVesHi!u!-+%7@-9LPE-G2BIeOP`$;;{6702r;gUVp^paxxNJ zgO+Wk^{`*pr|%%GmI=-Cs^e%YQBiDPKRi-YRLn%0O@@th>iI@NGQg>a|Dlm)*ETjb zc0j&OwoO8YXt)7(dg?$h@J>Vj>@~dbc_@x^zkv(-+$L|Bm% z7vS9*6-Br8g>hG>sL$pl>W|(4?!{7hUcknkb3Y%Tot9s4;v1TYJ$qCd?Mt7ba3i)np&j43_O_=yAY?C~hE(1{Rt80~e{pcy>XE%i%y$|3N-ir73Vu+4X z9l*$V^c@6|Ca}sgfiFxyV*!sZq7fjWmEQI=r7Y;|Texw*-T;!6HNF<+5H`c;l*gUF zw?6(heJ)iIxwKKedLbXj4@5Ve??`6N0mPzvP)!DPppaTbIzLJd_iv|SD>KF50m6w+j!gzz^DUZ5W! zJt=Iq|Ed_6rE~rC5197%>_XGK361^3tN|tc6KFt_gmcJB6+zVy;9$wGa1G8!1;~_N zJGsBWQ%ijAx|XGg_j7Id{@p5v*cp}sjTd+F_k&)?XC_d*7ss4Q!?a?l?12haEzZ2Et_~1IEd*HDYIasWtnpO=d zu~nOYk$>uJZ&BIoTzlG^Gxv2i5n;)LIG3am#LaY3C5qg7EjHMW__vk|uA-Gf^zJB= zOU2g<68^<1#9<4H@~5J;jXxn?rc}zl7Q)R?v-GF-d%HU|MCH(laxl&(SqxFj;O>X( zU!o|7Zy1wUkpkHlxF;QuHsA(>(=P&A3~ix*Ih95_Ll#yB9)=<8qr3Ir8ygFe#QVNM zIe!L5Wg0zpUV6XYF*)d@w~7%P0R9sa;-dgO3zelA1A>#o9-QP6`PwaSYm!urX!l-}m}JDSG$DW~+0rkQBAt^Bazvg_(hF4F351YdUEtoQaKD^SM% zgh7rjtls&kDGm)JS6*TMoYp7IG7)z9^^rf1!hT?=LmA&*a`;dVD(-nOCHmHpqr92! zEy&~24()@k!-@|Tm6SAV6H4K#lu^{Mbkr!HO{-~U(JY2ShQr4JxHcSbm7hqYr<^|a zT+{D8HmrkD>Xt5oi0$Ay)H`fA%4WEV8q^#fPJfrm+DN~c4^_KFo6{&v*ledufKlGZ zwd@oDS$`WLii%!ILq2Su5~bVP+BDPfSfQ0nd17Or>DxWlcnENqxyi%;;VHGRu;OQA zOsCnYhJI#SSAL&S8qanL=dRFk2bWQb9m0K)FbP$u`i)@9uDS?PoqZ8ES*G?eEKz3_ zFk?1VX0ST}r*8$LlDNXJ)h{uN(DalE>jU;3wh0tfy!4K5?wAjMc}erb>VS!x1bZ`~ zXr7-;7U!(^m;Wu&x(KF_Fy6(nR#^sRGRYQCYh)A z(^+Ni_!C9_w7YHI@BW**!}mh!msTE@f>%Y?22&TTQlQp=X5;Wy-Z(B>neV?vg$6rQ z9f01z)HYmapxuA;SR}M=&eSCD|22e?Q|!gxRfW!(hGcX9k1U56i1*+2S{%_IZ)V$H zh~l=L`1n-+Ta@bS{_R^ba$XiFInW04ss}JV_H6$z!Ss3ID2%oz3ctK${`(ZD6C(6tm3-CjXma#F@`5oqukmloFu41_;(pVAaUXpO z?n_$PKlhzM-O|8)b2%3YenPUx4m$9i*_x&q_p|blu~b9bKQWtKqqy1N$J>X{_;ws7 zrHt(C1p!o70BmU*XL=99f0iv!2x#A$P6N|Tc;0>h*Xt3;ycHt01#%nUM&BtqR2~?9 zdihc^q(f!O0}!W)b`oAFsEIw-wy@(suzrX5WvzluXn;mqs-o=@ z+ms8{3|sSlMnKg_szuoeQa0=Y0^qD*b_$jvdRd;Q`M`5b#78SY)V3QQh9!k8JXru- zE>IGe1=fwIaRz>_oiDQYlkq^29JQ5n7(4)AIj{l{(9oAXjvAb#M>{4I0vLoeE=a<1 zn-2l1xTcn6wg^sdXNj#L^#AnVKmE+wjlv2!3M*_DEL1i-xw3Xb=p1@&JL4{^kh@T- zxVV&Fu0_lW)XD^18vaPoh|CyIgO*Jf8P zl!4U+v_+Qs1d;jz!odQ8(Hw|9oybk)BYYt$JEvRmFB@WndTFja&;j8phqfd{-vkO= znc@TDiv1*ws{BVeIQAMrx)_TLX;4$y6rAqdn)CiRP&Qi1}S@sIRXIl1mzarEVKG2n_?+1+Ke~ z(+S5R(eE}+i8cUWNJ&Sk!WWQoK8?yM4CW>SXVe=?2yH0k=>i;nSy%Z~SB~Y@+Pugm ztNsetBFI@ePx6O(D-b7Ok1)V|05eK#hZ-SSapOt|83m2e0=;lRPnbsJ9;ciZRCI5%x;dlherLB)-m|=Z8}ca)D;EHD zm29-Owq_!(HXr&Lul0*=I&6Tb$riJPp~Vf)T{qgp2yBmUNaw~8BzxcI@l9%#6PmXJ zSW#8kQju=WvGC6s&jQ-nAcb)^M?fZ7Q@kB$gS6BCoaH~TNA+r0g5 zj!wp#*Y|6-YrZp?IR3t(|P)~wH#-E zj!xOoa95OT?_bgdD4@Q2XX9*O*|Mg#lGg(62do2lpVL1JGGxHj6m+^q2tWRpU-*p!o#V>Yt7Ja6Z)q<` zN8V^aYe!MV-bU=6F?w9#^F)7Rn}U|CEF5_L|F01X1&(knmo#KwIp^Nu45O&iDqOw5 z`QX*QRqr2OxCSEL`LH7oka~J?H`T8;5OF8&+XsE!=m)212Sn^K-alThKjrd|cs<&o zj}u;32CJHm^i#qPq%vR(rh&Qefb;;+x33sVJay=-J>hF0ewQc_PzWk>4}cV-d2bp@ zQgcWaR#CwK1toj}$g_HtVAWs_;~{Hy0R|G`0uAEMTxGV5;C4u!xM`MFD|35<-Ee0Yw3TPD48@Y(I5Nd-JtmpWigV+)L0u?sjwFj42~g!DuPTR$=5s3Z+?Id#@vF6s0=W?(csbVhijX<1MW{dy zWxijzWkcl#+0+zZ80+flZ1CX=EK_;9tn5x8hIj*Tn65BI)*!LoM*^Nu^B0co+`sdg zFLN?Sb?Ybh7Fhy=!psyPYgaGbejIa}<|p*)I?|NJ-+n4U?g-m2{5S+|1hP-%Q6Ij1 zSH-x>S>y{qulgJ$qIV~=>nClmu&YlNxhTshghz*C#g`7oVc7?YEMrZr?zOd_RRoygll@Lg z;I^`R>j$wMy(uXavD?c*H(g#e0G3!GlVZQ}Nlh&e!~@{+-ipMMYd;K=T#p$Iba{`-wX1Z* zR>1Je3=AYtzWo5<-C-_n)rNNNm)`Nyg1-m;#O{e9{KtVbloBx~D=Rv)rx50Q0Netm z2Wnb3qbUCc5essLbT?hw4_X&_Ihj-Jq@=$LU8Se*zqfxc+#SLvIo-0Xt#y5TT0mMt zBD_y?pwbzA6QK4&&2%CLeOTecwLR!^FZ}t;*8?AZQE?TQZnYfh@6SH={V!*D5+v_XO1=V}r1slSp7|fE%-8cj zqd@U^5{d&4s#jy~#DQ*Lf9Z}x=5D-EEOq=SUQ3EIF}yui;;iAMy7|UJ>>g1vCh&V5 z7kW!{cky7d*8R?Nys+2st21Ki|92kC*>DsY4=K<)pK9@68UNO!q6$vu62Jb_#1tfL zV`D-efO>Q2eFB5WR6d2z2|uIGJFt%XK) zkhDN>(8G7{B>M8oL#WoKgr8UTWzI;iIrsUkq(_f*CVnd>d--Zfal1dWDRy)qCDbRt z<9I{VtmiRLSMSl?B&`V7$S^BAmCfFW-}us?m`XwSiJy!};Ku(8v#v%#J;9E8WOFBz=Yr&GAyU{~#(o_F_*=I7u)TXk^{w{?EenP)^e zd^Okq$)0w4uk6Y@{msGNFVD$0EMJw^G-MpHa1Ppe^Lwws`KQWm?jMzjk7v|0MwZ6b zhgaNJB-XbS#$QQ$#wI1LZ^>#?WYu`yv-hOrv+y)_HnyLp?+^INJNB__Q+sdSb8EMl zZtvvQo!uJ-rL#?S%i~K$_u94#%H(KOpADAKCk}o0Xx@&X+1RSL@uW01wqJ3OS>9_K zG)~81TZC7;eg|}|iPp&VQmj@U2wL*Gv=Q4S;%~9HG2LPqFsJK&DeI1DhxIXPa zZSr1`wYj_t5?p<5rjT&p{9hzv^rP-)oRNUFgfFvwr-11H1yP)CeoG#Bd zuAYB3?62e}+8@l&%y?EQ?M`D}AyPS*<30p88Gc>LYO8aQp<=V<-eCO96`AGmA+4Q8 z&$7mI5n*LVWtJ*!f2M@yd+ce-Za`WkLOuI;bN7`(iKhz)j-O#JX>plLU|Bw6I^}l!eJ8}C? z^J&-lqSK?FUt;%%=$PsA_;dT?H5?p2_dd;`f7In3GYzMtR(AVDa@P@=Co+Ft(Q%Pu z>K`h9z52dK*6XGmU2o)7pF^wD-<*cs-=B`JKVIKaH;=YO=V5=lHDC0(aGrl`HIF`@ z#<@=K^S|e*{`cLTgM(=){%eZ+9gocCzs>K{y8QF1JBB(2{_*qolm3RY+;Q{A`P-&r z=#Hm9tnZ*ZR&HA4RmWGN{>X|V{o)U5 zALQ&c2k?juq z$Fs7(?e48^y!M@bueCT0Yk#`s_#-sjpngNEQL~o&jQV?V*K5Id*KL9RiR{kEfd5^I zTvuuTM!pXkpPA)f=LCPJ8JQXW{Qf8Q``!1~z0W^}{o8p}Wc%lx$h(~WiQ_$L4W002ovPDHLkV1leQtq}kK diff --git a/docs/send2ue/trouble-shooting/faq.md b/docs/send2ue/trouble-shooting/faq.md index 083e5eed..2db7988c 100644 --- a/docs/send2ue/trouble-shooting/faq.md +++ b/docs/send2ue/trouble-shooting/faq.md @@ -3,6 +3,8 @@ ### Could not find an open Unreal Editor instance! Toggle `remote execution` off and back on in your project settings. +Make sure the Multicast Bind Address in the unreal project is set to `127.0.0.1`. + Go through the quickstart again. If that doesn't work the issue is most likely due to a networking issue. Check your systems firewall for blender and python. Also check the ports `6766` and `9998` on your computer to see if they are blocked by another application. diff --git a/requirements.txt b/requirements.txt index 30057af5..650c9b1d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -docker==6.0.1 +docker==6.1.3 unittest-xml-reporting==3.2.0 -fake-bpy-module-latest==20220324 -PyGithub==1.57 +fake-bpy-module-latest==20231010 +PyGithub==2.1.1 diff --git a/send2ue/__init__.py b/send2ue/__init__.py index d8a8818e..47bdbd20 100644 --- a/send2ue/__init__.py +++ b/send2ue/__init__.py @@ -13,7 +13,7 @@ bl_info = { "name": "Send to Unreal", "author": "Epic Games Inc.", - "version": (2, 4, 1), + "version": (2, 4, 2), "blender": (3, 3, 0), "location": "Header > Pipeline > Send to Unreal", "description": "Sends an asset to the first open Unreal Editor instance on your machine.", diff --git a/send2ue/core/formatting.py b/send2ue/core/formatting.py index e03b9ba8..12ea97bd 100644 --- a/send2ue/core/formatting.py +++ b/send2ue/core/formatting.py @@ -241,7 +241,17 @@ def update_unreal_skeleton_asset_path(self, context): :param object self: This is a reference to the property data object. :param object context: The context when the property was called. """ - auto_format_unreal_asset_path('unreal_skeleton_asset_path', self) + name = 'unreal_skeleton_asset_path' + error_message = auto_format_unreal_asset_path(name, self) + value = getattr(self, name) + if value and not error_message: + asset_type = UnrealRemoteCalls.get_asset_type(value) + if asset_type != 'Skeleton': + error_message = f'This is a {asset_type} asset. This must be a Skeleton asset.' + set_property_error_message( + name, + error_message + ) def update_unreal_physics_asset_path(self, context): diff --git a/send2ue/core/utilities.py b/send2ue/core/utilities.py index 9ca93be5..a2ea3717 100644 --- a/send2ue/core/utilities.py +++ b/send2ue/core/utilities.py @@ -1087,9 +1087,6 @@ def setup_project(*args): :param args: This soaks up the extra arguments for the app handler. """ - # set the auth token variable - addon_properties = bpy.context.preferences.addons.get(ToolInfo.NAME.value) - # remove the cached files remove_temp_folder() diff --git a/send2ue/dependencies/remote_execution.py b/send2ue/dependencies/remote_execution.py index c2083ec6..1f80fb62 100644 --- a/send2ue/dependencies/remote_execution.py +++ b/send2ue/dependencies/remote_execution.py @@ -1,5 +1,6 @@ # Copyright Epic Games, Inc. All Rights Reserved. +import os import sys as _sys import json as _json import uuid as _uuid @@ -23,7 +24,7 @@ DEFAULT_MULTICAST_TTL = 0 # Multicast TTL (0 is limited to the local host, 1 is limited to the local subnet) DEFAULT_MULTICAST_GROUP_ENDPOINT = ('239.0.0.1', 6766) # The multicast group endpoint tuple that the UDP multicast socket should join (must match the "Multicast Group Endpoint" setting in the Python plugin) -DEFAULT_MULTICAST_BIND_ADDRESS = '0.0.0.0' # The adapter address that the UDP multicast socket should bind to, or 0.0.0.0 to bind to all adapters (must match the "Multicast Bind Address" setting in the Python plugin) +DEFAULT_MULTICAST_BIND_ADDRESS = '127.0.0.1' # The adapter address that the UDP multicast socket should bind to, or 127.0.0.1 to bind to all adapters (must match the "Multicast Bind Address" setting in the Python plugin) DEFAULT_COMMAND_ENDPOINT = ('127.0.0.1', 6776) # The endpoint tuple for the TCP command connection hosted by this client (that the remote client will connect to) DEFAULT_RECEIVE_BUFFER_SIZE = 8192 # The default receive buffer size @@ -540,7 +541,7 @@ def to_json(self): if self.data: json_obj['data'] = self.data return _json.dumps(json_obj, ensure_ascii=False) - + def to_json_bytes(self): ''' Convert this message to its JSON representation as UTF-8 bytes. diff --git a/send2ue/dependencies/unreal.py b/send2ue/dependencies/unreal.py index 1b5f678f..3655dae5 100644 --- a/send2ue/dependencies/unreal.py +++ b/send2ue/dependencies/unreal.py @@ -332,6 +332,24 @@ def get_skeletal_mesh_handle(component_handles, mesh_asset_path): return data_handle return None + @staticmethod + def get_bone_pose_for_frame(anim_sequence, bone_name, frame, extract_root_motion): + """ + Gets the local transform of the bone at the specified frame in the anim sequence. + + + :param object anim_sequence: An unreal anim sequence object. + :param str bone_name: A bone name. + :param float frame: The frame to get the transform at. + :param bool extract_root_motion: Whether to include root motion in the returned transform. + :returns: A transform. + :rtype: unreal.Transform + """ + pose_options = unreal.AnimPoseEvaluationOptions() + pose_options.set_editor_property('extract_root_motion', extract_root_motion) + pose = unreal.AnimPoseExtensions.get_anim_pose_at_frame(anim_sequence, frame, pose_options) + return unreal.AnimPoseExtensions.get_bone_pose(pose, bone_name) + @staticmethod def set_settings(property_group, data_object): """ @@ -985,6 +1003,17 @@ def get_lod_count(asset_path): lod_count = unreal.get_editor_subsystem(unreal.StaticMeshEditorSubsystem).get_lod_count(asset) return lod_count + @staticmethod + def get_asset_type(asset_path): + """ + Gets the asset type of the given asset. + + :param str asset_path: The path to the unreal asset. + :return str: The number of lods on the asset. + """ + asset = Unreal.get_asset(asset_path) + if asset: + return asset.__class__.__name__ @staticmethod def asset_exists(asset_path): @@ -992,7 +1021,7 @@ def asset_exists(asset_path): Checks to see if an asset exist in unreal. :param str asset_path: The path to the unreal asset. - :return bool: Whether or not the asset exists. + :return bool: Whether the asset exists. """ return bool(unreal.load_asset(asset_path)) @@ -1085,7 +1114,7 @@ def has_socket(asset_path, socket_name): :param str asset_path: The path to the unreal asset. :param str socket_name: The name of the socket to look for. - :return bool: Whether or not the asset has the given socket or not. + :return bool: Whether the asset has the given socket or not. """ mesh = Unreal.get_asset(asset_path) return bool(mesh.find_socket(socket_name)) @@ -1097,7 +1126,7 @@ def has_binding_groom_asset(binding_asset_path, groom_asset_path): :param str binding_asset_path: The path to the unreal binding asset. :param str groom_asset_path: The path to the unreal groom asset. - :return bool: Whether or not the binding asset has the given groom. + :return bool: Whether the binding asset has the given groom. """ binding_asset = unreal.load_asset(binding_asset_path) groom_asset = unreal.load_asset(groom_asset_path) @@ -1114,7 +1143,7 @@ def has_binding_target(binding_asset_path, target_mesh_path): :param str binding_asset_path: The path to the unreal binding asset. :param str target_mesh_path: The path to the unreal skeletal mesh asset. - :return bool: Whether or not the binding asset has the given skeletal mesh target. + :return bool: Whether the binding asset has the given skeletal mesh target. """ binding_asset = unreal.load_asset(binding_asset_path) mesh_asset = unreal.load_asset(target_mesh_path) @@ -1181,7 +1210,7 @@ def has_socket_outer(asset_path, socket_name): :param str asset_path: The path to the unreal asset. :param str socket_name: The name of the socket to look for. - :return bool: Whether or not the asset has the given socket and the owner (outer) is properly assigned or not. + :return bool: Whether the asset has the given socket and the owner (outer) is properly assigned or not. """ mesh = Unreal.get_asset(asset_path) socket = mesh.find_socket(socket_name) @@ -1196,7 +1225,7 @@ def delete_asset(asset_path): Deletes an asset in unreal. :param str asset_path: The path to the unreal asset. - :return bool: Whether or not the asset was deleted. + :return bool: Whether the asset was deleted. """ if unreal.EditorAssetLibrary.does_asset_exist(asset_path): unreal.EditorAssetLibrary.delete_asset(asset_path) @@ -1204,14 +1233,13 @@ def delete_asset(asset_path): @staticmethod def delete_directory(directory_path): """ - Deletes an folder and its contents in unreal. + Deletes a folder and its contents in unreal. :param str directory_path: The game path to the unreal project folder. - :return bool: Whether or not the directory was deleted. + :return bool: Whether the directory was deleted. """ - # API BUG:cant check if exists https://jira.it.epicgames.com/browse/UE-142234 - # if unreal.EditorAssetLibrary.does_directory_exist(directory_path): - unreal.EditorAssetLibrary.delete_directory(directory_path) + if unreal.EditorAssetLibrary.does_directory_exist(directory_path): + unreal.EditorAssetLibrary.delete_directory(directory_path) @staticmethod def import_asset(file_path, asset_data, property_data): @@ -1246,7 +1274,7 @@ def create_asset(asset_path, asset_class=None, asset_factory=None, unique_name=T :param str asset_path: The project path to the asset. :param str asset_class: The name of the unreal asset class. :param str asset_factory: The name of the unreal factory. - :param bool unique_name: Whether or not the check if the name is unique before creating the asset. + :param bool unique_name: Whether the check if the name is unique before creating the asset. """ asset_class = getattr(unreal, asset_class) factory = getattr(unreal, asset_factory)() @@ -1472,11 +1500,13 @@ def get_bone_transform_for_frame(asset_path, bone_name, frame): """ animation = Unreal.get_asset(asset_path) path = unreal.AnimationLibrary.find_bone_path_to_root(animation, bone_name) - transform = unreal.AnimationLibrary.get_bone_pose_for_frame(animation, bone_name, frame, True) + transform = Unreal.get_bone_pose_for_frame(animation, bone_name, frame, True) world_rotation = unreal.Rotator() world_location = unreal.Transform() + + # this walks the bone hierarchy to get the world transforms for bone in path: - bone_transform = unreal.AnimationLibrary.get_bone_pose_for_frame(animation, str(bone), frame, True) + bone_transform = Unreal.get_bone_pose_for_frame(animation, str(bone), frame, True) world_rotation = world_rotation.combine(bone_transform.rotation.rotator()) world_location = world_location.multiply(bone_transform) @@ -1502,7 +1532,7 @@ def get_bone_count(skeleton_path): @staticmethod def get_origin(asset_path): """ - Gets the location of the assets origin. + Gets the location of the asset origin. :param str asset_path: The project path to the asset. :return list: A list of bone name all the way to the root bone. diff --git a/send2ue/release_notes.md b/send2ue/release_notes.md index 28b74179..b51bbf57 100644 --- a/send2ue/release_notes.md +++ b/send2ue/release_notes.md @@ -1,13 +1,19 @@ ## Minor Changes -* Fixed rotations on instance assets extension. - * [602](https://github.com/EpicGames/BlenderTools/issues/602) - * [621](https://github.com/EpicGames/BlenderTools/issues/621) -* Fixed transformation bug with use object origin option. - * [610](https://github.com/EpicGames/BlenderTools/issues/610) +* Fixed positional argument bug with get_full_import_path. + * [631](https://github.com/EpicGames/BlenderTools/issues/631) +* Removed uniform scale option from UI that has no effect. + * [637](https://github.com/EpicGames/BlenderTools/issues/637) +* Added validation to check skeleton asset type. + * [638](https://github.com/EpicGames/BlenderTools/issues/638) +* Changed the default Multicast Bind Address. It is now `127.0.0.1`. + * [669](https://github.com/EpicGames/BlenderTools/issues/669) + +## Documentation Changes +* Updated [Errors](https://epicgames.github.io/BlenderTools/send2ue/trouble-shooting/errors.html) To include Multicast Bind Address setting ## Special Thanks -@abhiraaid +@DKingAlpha ## Tests Passing On -* Blender `3.3`, `3.5` (installed from blender.org) +* Blender `3.3`, `3.6` (installed from blender.org) * Unreal `5.1`, `5.2` diff --git a/send2ue/resources/setting_templates/default.json b/send2ue/resources/setting_templates/default.json index a478ce11..2e855aae 100644 --- a/send2ue/resources/setting_templates/default.json +++ b/send2ue/resources/setting_templates/default.json @@ -193,7 +193,6 @@ 0.0, 0.0 ], - "import_uniform_scale": 1.0, "material_curve_suffixes": "", "preserve_local_transform": true, "remove_redundant_keys": true, @@ -220,7 +219,6 @@ 0.0, 0.0 ], - "import_uniform_scale": 1.0, "morph_threshold_position": 0.014999999664723873, "normal_generation_method": "unreal.FBXNormalGenerationMethod.MIKK_T_SPACE", "normal_import_method": "unreal.FBXNormalImportMethod.FBXNIM_IMPORT_NORMALS_AND_TANGENTS", @@ -261,7 +259,6 @@ 0.0, 0.0 ], - "import_uniform_scale": 1.0, "normal_generation_method": "unreal.FBXNormalGenerationMethod.MIKK_T_SPACE", "normal_import_method": "unreal.FBXNormalImportMethod.FBXNIM_IMPORT_NORMALS_AND_TANGENTS", "one_convex_hull_per_ucx": true, @@ -299,7 +296,6 @@ 0.0, 0.0 ], - "import_uniform_scale": 1.0, "invert_normal_maps": false, "material_search_location": "unreal.MaterialSearchLocation.LOCAL" } diff --git a/send2ue/resources/settings.json b/send2ue/resources/settings.json index 3fd95efd..bb59c8b1 100644 --- a/send2ue/resources/settings.json +++ b/send2ue/resources/settings.json @@ -275,12 +275,6 @@ 0.0 ] }, - "import_uniform_scale": { - "name": "Import Uniform Scale", - "description": "Import Uniform Scale", - "type": "FLOAT", - "default": 1.0 - }, "reorder_material_to_fbx_order": { "name": "Reorder Material to FBX Order", "description": "The material list will be reorder to the same order has the FBX file", @@ -532,12 +526,6 @@ 0.0 ] }, - "import_uniform_scale": { - "name": "Import Uniform Scale", - "description": "Import Uniform Scale", - "type": "FLOAT", - "default": 1.0 - }, "reorder_material_to_fbx_order": { "name": "Reorder Material to FBX Order", "description": "The material list will be reorder to the same order has the FBX file", @@ -704,12 +692,6 @@ 0.0, 0.0 ] - }, - "import_uniform_scale": { - "name": "Import Uniform Scale", - "description": "Import Uniform Scale", - "type": "FLOAT", - "default": 1.0 } }, "texture_import_data": { @@ -862,12 +844,6 @@ 0.0, 0.0 ] - }, - "import_uniform_scale": { - "name": "Import Uniform Scale", - "description": "Import Uniform Scale", - "type": "FLOAT", - "default": 1.0 } } }, diff --git a/send2ue/ui/addon_preferences.py b/send2ue/ui/addon_preferences.py index 30048960..008b29d6 100644 --- a/send2ue/ui/addon_preferences.py +++ b/send2ue/ui/addon_preferences.py @@ -29,7 +29,6 @@ def draw(self, context): row.prop(self, 'extensions_repo_path', text='') row.operator('send2ue.reload_extensions', text='', icon='UV_SYNC_SELECT') - def register(): """ Registers the addon preferences when the addon is enabled. diff --git a/tests/test_files/send2ue_templates/default.json b/tests/test_files/send2ue_templates/default.json index a478ce11..2e855aae 100644 --- a/tests/test_files/send2ue_templates/default.json +++ b/tests/test_files/send2ue_templates/default.json @@ -193,7 +193,6 @@ 0.0, 0.0 ], - "import_uniform_scale": 1.0, "material_curve_suffixes": "", "preserve_local_transform": true, "remove_redundant_keys": true, @@ -220,7 +219,6 @@ 0.0, 0.0 ], - "import_uniform_scale": 1.0, "morph_threshold_position": 0.014999999664723873, "normal_generation_method": "unreal.FBXNormalGenerationMethod.MIKK_T_SPACE", "normal_import_method": "unreal.FBXNormalImportMethod.FBXNIM_IMPORT_NORMALS_AND_TANGENTS", @@ -261,7 +259,6 @@ 0.0, 0.0 ], - "import_uniform_scale": 1.0, "normal_generation_method": "unreal.FBXNormalGenerationMethod.MIKK_T_SPACE", "normal_import_method": "unreal.FBXNormalImportMethod.FBXNIM_IMPORT_NORMALS_AND_TANGENTS", "one_convex_hull_per_ucx": true, @@ -299,7 +296,6 @@ 0.0, 0.0 ], - "import_uniform_scale": 1.0, "invert_normal_maps": false, "material_search_location": "unreal.MaterialSearchLocation.LOCAL" } diff --git a/tests/test_files/send2ue_templates/template_1.json b/tests/test_files/send2ue_templates/template_1.json index bb3d3066..462db537 100644 --- a/tests/test_files/send2ue_templates/template_1.json +++ b/tests/test_files/send2ue_templates/template_1.json @@ -193,7 +193,6 @@ 0.0, 0.0 ], - "import_uniform_scale": 1.0, "material_curve_suffixes": "", "preserve_local_transform": true, "remove_redundant_keys": true, @@ -220,7 +219,6 @@ 0.0, 0.0 ], - "import_uniform_scale": 1.0, "morph_threshold_position": 0.014999999664723873, "normal_generation_method": "unreal.FBXNormalGenerationMethod.BUILT_IN", "normal_import_method": "unreal.FBXNormalImportMethod.FBXNIM_IMPORT_NORMALS_AND_TANGENTS", @@ -261,7 +259,6 @@ 0.0, 0.0 ], - "import_uniform_scale": 1.0, "normal_generation_method": "unreal.FBXNormalGenerationMethod.MIKK_T_SPACE", "normal_import_method": "unreal.FBXNormalImportMethod.FBXNIM_IMPORT_NORMALS_AND_TANGENTS", "one_convex_hull_per_ucx": true, @@ -299,7 +296,6 @@ 0.0, 0.0 ], - "import_uniform_scale": 1.0, "invert_normal_maps": false, "material_search_location": "unreal.MaterialSearchLocation.LOCAL" } diff --git a/tests/test_files/unreal_projects/test01/Config/DefaultEngine.ini b/tests/test_files/unreal_projects/test01/Config/DefaultEngine.ini index 520d777f..82caa850 100644 --- a/tests/test_files/unreal_projects/test01/Config/DefaultEngine.ini +++ b/tests/test_files/unreal_projects/test01/Config/DefaultEngine.ini @@ -44,4 +44,35 @@ ManualIPAddress= [/Script/PythonScriptPlugin.PythonScriptPluginSettings] bRemoteExecution=True +RemoteExecutionMulticastBindAddress=127.0.0.1 + +[/Script/WindowsTargetPlatform.WindowsTargetSettings] +DefaultGraphicsRHI=DefaultGraphicsRHI_Default +-D3D12TargetedShaderFormats=PCD3D_SM5 ++D3D12TargetedShaderFormats=PCD3D_SM5 ++D3D12TargetedShaderFormats=PCD3D_SM6 +-D3D11TargetedShaderFormats=PCD3D_SM5 ++D3D11TargetedShaderFormats=PCD3D_SM5 +Compiler=Default +AudioSampleRate=48000 +AudioCallbackBufferFrameSize=1024 +AudioNumBuffersToEnqueue=1 +AudioMaxChannels=0 +AudioNumSourceWorkers=4 +SpatializationPlugin= +SourceDataOverridePlugin= +ReverbPlugin= +OcclusionPlugin= +CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0) +CacheSizeKB=65536 +MaxChunkSizeOverrideKB=0 +bResampleForDevice=False +MaxSampleRate=48000.000000 +HighSampleRate=32000.000000 +MedSampleRate=24000.000000 +LowSampleRate=12000.000000 +MinSampleRate=8000.000000 +CompressionQualityModifier=1.000000 +AutoStreamingThreshold=0.000000 +SoundCueCookQualityIndex=-1 diff --git a/tests/test_files/unreal_projects/test01/test01.uproject b/tests/test_files/unreal_projects/test01/test01.uproject index cee5a315..03eaeed4 100644 --- a/tests/test_files/unreal_projects/test01/test01.uproject +++ b/tests/test_files/unreal_projects/test01/test01.uproject @@ -1,6 +1,6 @@ { "FileVersion": 3, - "EngineAssociation": "5.2", + "EngineAssociation": "5.3", "Category": "", "Description": "", "Plugins": [ diff --git a/tests/utils/addon_packager.py b/tests/utils/addon_packager.py index 9ea86455..827cb735 100644 --- a/tests/utils/addon_packager.py +++ b/tests/utils/addon_packager.py @@ -13,6 +13,12 @@ pass +IGNORE_PATTERNS = [ + "__pycache__", + "*.pyc" +] + + class AddonPackager: def __init__(self, addon_name, addon_folder_path, output_folder): @@ -148,7 +154,11 @@ def zip_addon(self): logging.warning(f'Could not delete {versioned_folder_path}!') # copy the addon module in to the versioned directory with its addon module name as a sub directory - shutil.copytree(self.addon_folder_path, os.path.join(versioned_folder_path, self.addon_name)) + shutil.copytree( + self.addon_folder_path, + os.path.join(versioned_folder_path, self.addon_name), + ignore=shutil.ignore_patterns(*IGNORE_PATTERNS) + ) # make a zip archive of the copied folder shutil.make_archive(versioned_folder_path, 'zip', versioned_folder_path)